zidane 7.0.2 → 7.0.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.
@@ -3491,13 +3491,106 @@ function detectLibc() {
3491
3491
  }
3492
3492
  }
3493
3493
  //#endregion
3494
+ //#region src/chat/auto-update-companion.ts
3495
+ /**
3496
+ * Locate a globally installed companion. `null` when its bin is not on PATH
3497
+ * or no `package.json` with that name can be found behind it.
3498
+ */
3499
+ function findInstalledCompanion(spec, opts = {}) {
3500
+ const env = opts.env ?? process.env;
3501
+ const home = opts.home ?? homedir();
3502
+ const platform = opts.platform ?? process.platform;
3503
+ const binaryPath = findOnPath(spec.binName ?? spec.packageName, env.PATH ?? "", platform);
3504
+ if (!binaryPath) return null;
3505
+ const packageDir = resolvePackageDir(spec.packageName, binaryPath, home);
3506
+ if (!packageDir) return null;
3507
+ const version = readPackageVersion(packageDir, spec.packageName);
3508
+ if (!version) return null;
3509
+ return {
3510
+ packageName: spec.packageName,
3511
+ version,
3512
+ packageDir,
3513
+ binaryPath
3514
+ };
3515
+ }
3516
+ function findOnPath(binName, pathVar, platform) {
3517
+ const candidates = platform === "win32" ? [
3518
+ binName,
3519
+ `${binName}.cmd`,
3520
+ `${binName}.exe`
3521
+ ] : [binName];
3522
+ for (const dir of pathVar.split(delimiter)) {
3523
+ if (!dir) continue;
3524
+ for (const name of candidates) {
3525
+ const full = join(dir, name);
3526
+ try {
3527
+ if (statSync(full).isFile()) return full;
3528
+ } catch {}
3529
+ }
3530
+ }
3531
+ return null;
3532
+ }
3533
+ /**
3534
+ * From the bin to the package root. Two strategies:
3535
+ * 1. Follow the symlink (`<prefix>/bin/zidane-gui` → `…/node_modules/
3536
+ * zidane-gui/bin/zidane-gui.mjs`) and climb until a `package.json`
3537
+ * carries the expected name. Covers npm, pnpm, yarn and bun.
3538
+ * 2. Volta: the bin is a shim whose realpath is `volta-shim`, so nothing to
3539
+ * climb. Its global packages live at a fixed layout under `$VOLTA_HOME`
3540
+ * (the same one the GUI installer maps staging paths to).
3541
+ */
3542
+ function resolvePackageDir(packageName, binaryPath, home) {
3543
+ let resolved = binaryPath;
3544
+ try {
3545
+ resolved = realpathSync(binaryPath);
3546
+ } catch {}
3547
+ const climbed = climbToPackage(dirname(resolved), packageName);
3548
+ if (climbed) return climbed;
3549
+ const voltaHome = voltaHomeFor(binaryPath, resolved, home);
3550
+ if (voltaHome) {
3551
+ const dir = join(voltaHome, "tools", "image", "packages", packageName, "lib", "node_modules", packageName);
3552
+ if (existsSync(join(dir, "package.json"))) return dir;
3553
+ }
3554
+ return null;
3555
+ }
3556
+ function climbToPackage(start, packageName) {
3557
+ let dir = start;
3558
+ for (let depth = 0; depth < 6; depth++) {
3559
+ if (readPackageVersion(dir, packageName)) return dir;
3560
+ const parent = dirname(dir);
3561
+ if (parent === dir) break;
3562
+ dir = parent;
3563
+ }
3564
+ return null;
3565
+ }
3566
+ function voltaHomeFor(binaryPath, resolved, home) {
3567
+ const marker = `${sep}.volta${sep}`;
3568
+ for (const p of [binaryPath, resolved]) {
3569
+ const idx = p.indexOf(marker);
3570
+ if (idx !== -1) return p.slice(0, idx + marker.length - 1);
3571
+ }
3572
+ const fallback = join(home, ".volta");
3573
+ return existsSync(fallback) ? fallback : null;
3574
+ }
3575
+ function readPackageVersion(dir, packageName) {
3576
+ try {
3577
+ const pkg = JSON.parse(readFileSync(join(dir, "package.json"), "utf8"));
3578
+ if (pkg.name !== packageName || typeof pkg.version !== "string") return null;
3579
+ return pkg.version;
3580
+ } catch {
3581
+ return null;
3582
+ }
3583
+ }
3584
+ //#endregion
3494
3585
  //#region src/chat/auto-update-cli.ts
3495
3586
  const UPGRADE_HELP = `Usage: zidane upgrade [options]
3496
3587
 
3497
- Update the zidane CLI to the latest release.
3588
+ Update the zidane CLI to the latest release. A globally installed
3589
+ zidane-gui is upgraded alongside it, through its own package manager.
3498
3590
 
3499
3591
  Options:
3500
3592
  --check Print the latest version and exit (no install).
3593
+ --tui-only Leave companion packages (zidane-gui) alone.
3501
3594
  --in-place Download the platform binary directly from npm
3502
3595
  and atomic-rename over the running binary.
3503
3596
  Skips the package manager. Refused on Volta.
@@ -3534,6 +3627,7 @@ async function runUpdateCommand(options) {
3534
3627
  out.write(UPGRADE_HELP);
3535
3628
  return { exitCode: 0 };
3536
3629
  }
3630
+ const flags = parsed;
3537
3631
  const channel = parsed.channel ?? options.defaultChannel ?? "latest";
3538
3632
  const registry = parsed.registry ?? options.registry;
3539
3633
  const status = await checkForUpdate({
@@ -3545,17 +3639,13 @@ async function runUpdateCommand(options) {
3545
3639
  force: true,
3546
3640
  timeoutMs: 8e3
3547
3641
  });
3642
+ const companions = parsed.tuiOnly ? [] : await resolveCompanions(options, channel, registry);
3548
3643
  if (parsed.check) {
3549
- if (status.source === "error") {
3550
- err.write(`Could not check \`${channel}\` (${status.error ?? "unknown error"}). Current: v${options.currentVersion}.\n`);
3551
- return { exitCode: 0 };
3552
- }
3553
- if (!status.latest) {
3554
- err.write(`Could not determine latest version on \`${channel}\`. Current: v${options.currentVersion}.\n`);
3555
- return { exitCode: 0 };
3556
- }
3557
- if (compareSemver(status.latest, options.currentVersion) > 0) out.write(`v${status.latest} is available on \`${channel}\` (current: v${options.currentVersion}).\n`);
3644
+ if (status.source === "error") err.write(`Could not check \`${channel}\` (${status.error ?? "unknown error"}). Current: v${options.currentVersion}.\n`);
3645
+ else if (!status.latest) err.write(`Could not determine latest version on \`${channel}\`. Current: v${options.currentVersion}.\n`);
3646
+ else if (compareSemver(status.latest, options.currentVersion) > 0) out.write(`v${status.latest} is available on \`${channel}\` (current: v${options.currentVersion}).\n`);
3558
3647
  else out.write(`Already on v${options.currentVersion} (latest on \`${channel}\` is v${status.latest}).\n`);
3648
+ for (const c of companions) out.write(`${companionStatusLine(c, channel)}\n`);
3559
3649
  return { exitCode: 0 };
3560
3650
  }
3561
3651
  if (status.source === "error") {
@@ -3565,52 +3655,121 @@ async function runUpdateCommand(options) {
3565
3655
  return { exitCode: 1 };
3566
3656
  }
3567
3657
  }
3568
- if (status.latest && !parsed.force) {
3569
- if (compareSemver(status.latest, options.currentVersion) <= 0) {
3570
- out.write(`Already on v${options.currentVersion} (latest on \`${channel}\` is v${status.latest}).\n`);
3571
- return { exitCode: 0 };
3658
+ const pendingCompanions = companions.filter((c) => parsed.force || c.outdated);
3659
+ for (const c of companions.filter((c) => c.status.source === "error" && !parsed.force)) err.write(`${companionStatusLine(c, channel)}\n`);
3660
+ const tuiUpToDate = status.latest !== null && !parsed.force && compareSemver(status.latest, options.currentVersion) <= 0;
3661
+ if (tuiUpToDate) {
3662
+ out.write(`Already on v${options.currentVersion} (latest on \`${channel}\` is v${status.latest}).\n`);
3663
+ for (const c of companions.filter((c) => !c.outdated)) out.write(`${companionStatusLine(c, channel)}\n`);
3664
+ if (pendingCompanions.length === 0) return { exitCode: 0 };
3665
+ }
3666
+ const tuiExit = tuiUpToDate ? 0 : await upgradeSelf();
3667
+ const companionExit = await upgradeCompanions(pendingCompanions, parsed, out, err, options);
3668
+ return { exitCode: tuiExit !== 0 ? tuiExit : companionExit };
3669
+ async function upgradeSelf() {
3670
+ if (flags.inPlace) {
3671
+ const platformPkg = resolvePlatformPackage({ prefix: options.platformPackagePrefix ?? `${options.packageName}-` });
3672
+ if (!platformPkg) {
3673
+ err.write(`No prebuilt binary for ${process.platform}/${process.arch}. Run \`${options.packageName}-upgrade\` via your package manager instead.\n`);
3674
+ return 1;
3675
+ }
3676
+ out.write(`Downloading ${platformPkg}@${channel}…\n`);
3677
+ const result = await performInPlaceSelfUpdate({
3678
+ packageName: platformPkg,
3679
+ channel,
3680
+ registry,
3681
+ dryRun: flags.dryRun
3682
+ });
3683
+ if (result.status === "success") {
3684
+ const verb = flags.dryRun ? "Would install" : "Installed";
3685
+ out.write(`${verb} v${result.installedVersion} at ${result.binaryPath}.\n`);
3686
+ return 0;
3687
+ }
3688
+ err.write(`In-place update failed: ${result.reason ?? "unknown error"}\n`);
3689
+ if (result.status === "refused") err.write("Falling back to package-manager path (drop --in-place to retry).\n");
3690
+ return 1;
3572
3691
  }
3573
- }
3574
- if (parsed.inPlace) {
3575
- const platformPkg = resolvePlatformPackage({ prefix: options.platformPackagePrefix ?? `${options.packageName}-` });
3576
- if (!platformPkg) {
3577
- err.write(`No prebuilt binary for ${process.platform}/${process.arch}. Run \`${options.packageName}-upgrade\` via your package manager instead.\n`);
3578
- return { exitCode: 1 };
3692
+ const detected = detectPackageManager({
3693
+ packageName: options.packageName,
3694
+ channel
3695
+ });
3696
+ if (detected.note) out.write(`${detected.note}\n`);
3697
+ out.write(`Running: ${detected.argv.join(" ")}\n`);
3698
+ if (flags.dryRun) return 0;
3699
+ const result = await (options.performSelfUpdate ?? performSelfUpdate)({
3700
+ packageName: options.packageName,
3701
+ channel,
3702
+ packageManager: flags.packageManager ?? "auto"
3703
+ });
3704
+ if (result.spawnError) {
3705
+ err.write(`Failed to launch \`${result.command.argv[0]}\`: ${result.spawnError}\n`);
3706
+ err.write("Is the package manager installed and on $PATH?\n");
3707
+ return 1;
3579
3708
  }
3580
- out.write(`Downloading ${platformPkg}@${channel}…\n`);
3581
- const result = await performInPlaceSelfUpdate({
3582
- packageName: platformPkg,
3709
+ return result.exitCode ?? 1;
3710
+ }
3711
+ }
3712
+ async function resolveCompanions(options, channel, registry) {
3713
+ const find = options.findCompanion ?? findInstalledCompanion;
3714
+ const found = (options.companions ?? []).map((spec) => find(spec)).filter((c) => c !== null);
3715
+ return await Promise.all(found.map(async (installed) => {
3716
+ const status = await checkForUpdate({
3717
+ packageName: installed.packageName,
3718
+ currentVersion: installed.version,
3583
3719
  channel,
3584
3720
  registry,
3585
- dryRun: parsed.dryRun
3721
+ cacheDir: options.cacheDir,
3722
+ force: true,
3723
+ timeoutMs: 8e3
3586
3724
  });
3587
- if (result.status === "success") {
3588
- const verb = parsed.dryRun ? "Would install" : "Installed";
3589
- out.write(`${verb} v${result.installedVersion} at ${result.binaryPath}.\n`);
3590
- return { exitCode: 0 };
3725
+ return {
3726
+ installed,
3727
+ status,
3728
+ outdated: status.latest !== null && compareSemver(status.latest, installed.version) > 0,
3729
+ command: detectPackageManager({
3730
+ packageName: installed.packageName,
3731
+ channel,
3732
+ binaryPath: installed.binaryPath
3733
+ })
3734
+ };
3735
+ }));
3736
+ }
3737
+ function companionStatusLine(c, channel) {
3738
+ const name = c.installed.packageName;
3739
+ if (c.status.source === "error") return `${name}: could not check \`${channel}\` (${c.status.error ?? "unknown error"}). Current: v${c.installed.version}.`;
3740
+ if (!c.status.latest) return `${name}: could not determine latest version on \`${channel}\`. Current: v${c.installed.version}.`;
3741
+ return c.outdated ? `${name}: v${c.status.latest} is available on \`${channel}\` (current: v${c.installed.version}).` : `${name}: already on v${c.installed.version}.`;
3742
+ }
3743
+ async function upgradeCompanions(pending, parsed, out, err, options) {
3744
+ let exitCode = 0;
3745
+ for (const c of pending) {
3746
+ const name = c.installed.packageName;
3747
+ if (c.status.source === "error" && !parsed.force) {
3748
+ err.write(`${name}: registry check failed (${c.status.error ?? "unknown error"}) — skipped. Pass --force to install anyway.\n`);
3749
+ exitCode = 1;
3750
+ continue;
3751
+ }
3752
+ if (c.status.latest) out.write(`${name}: v${c.installed.version} → v${c.status.latest}\n`);
3753
+ const pm = parsed.packageManager ?? c.command.id;
3754
+ if (c.command.note) out.write(`${c.command.note}\n`);
3755
+ out.write(`Running: ${c.command.argv.join(" ")}\n`);
3756
+ if (parsed.dryRun) continue;
3757
+ const result = await (options.performSelfUpdate ?? performSelfUpdate)({
3758
+ packageName: name,
3759
+ channel: parsed.channel ?? options.defaultChannel ?? "latest",
3760
+ packageManager: pm
3761
+ });
3762
+ if (result.spawnError) {
3763
+ err.write(`${name}: failed to launch \`${result.command.argv[0]}\`: ${result.spawnError}\n`);
3764
+ exitCode = 1;
3765
+ continue;
3766
+ }
3767
+ if (result.exitCode !== 0) {
3768
+ err.write(`${name}: install exited with ${result.exitCode ?? "unknown"}.\n`);
3769
+ exitCode = 1;
3591
3770
  }
3592
- err.write(`In-place update failed: ${result.reason ?? "unknown error"}\n`);
3593
- if (result.status === "refused") err.write("Falling back to package-manager path (drop --in-place to retry).\n");
3594
- return { exitCode: 1 };
3595
- }
3596
- const detected = detectPackageManager({
3597
- packageName: options.packageName,
3598
- channel
3599
- });
3600
- if (detected.note) out.write(`${detected.note}\n`);
3601
- out.write(`Running: ${detected.argv.join(" ")}\n`);
3602
- if (parsed.dryRun) return { exitCode: 0 };
3603
- const result = await performSelfUpdate({
3604
- packageName: options.packageName,
3605
- channel,
3606
- packageManager: parsed.packageManager ?? "auto"
3607
- });
3608
- if (result.spawnError) {
3609
- err.write(`Failed to launch \`${result.command.argv[0]}\`: ${result.spawnError}\n`);
3610
- err.write("Is the package manager installed and on $PATH?\n");
3611
- return { exitCode: 1 };
3612
3771
  }
3613
- return { exitCode: result.exitCode ?? 1 };
3772
+ return exitCode;
3614
3773
  }
3615
3774
  function parseArgs(argv) {
3616
3775
  let check = false;
@@ -3618,6 +3777,7 @@ function parseArgs(argv) {
3618
3777
  let dryRun = false;
3619
3778
  let force = false;
3620
3779
  let help = false;
3780
+ let tuiOnly = false;
3621
3781
  let channel;
3622
3782
  let registry;
3623
3783
  let packageManager;
@@ -3638,6 +3798,9 @@ function parseArgs(argv) {
3638
3798
  case "--force":
3639
3799
  force = true;
3640
3800
  break;
3801
+ case "--tui-only":
3802
+ tuiOnly = true;
3803
+ break;
3641
3804
  case "-h":
3642
3805
  case "--help":
3643
3806
  help = true;
@@ -3683,6 +3846,7 @@ function parseArgs(argv) {
3683
3846
  dryRun,
3684
3847
  force,
3685
3848
  help,
3849
+ tuiOnly,
3686
3850
  channel,
3687
3851
  registry,
3688
3852
  packageManager
@@ -15823,6 +15987,6 @@ function createApprovalHub(options) {
15823
15987
  };
15824
15988
  }
15825
15989
  //#endregion
15826
- export { supportsOAuth as $, buildUpdateHint as $n, chatReferenceTokensForPrompt as $r, runCompaction as $t, useSafeModeQueue as A, createDiscoverySlot as An, getArchivedTodosForRun as Ar, makeRequestInteraction as At, USAGE_CACHE_TTL_MS as B, hasClaudeCodeSetup as Bn, ACTIONS_WITH_CARE_DOCTRINE as Br, readFileSafe as Bt, resolveSessionExportTarget as C, GRUVBOX_LIGHT as Cn, TODOREAD_TOOL as Cr, InteractionsProvider as Ct, scopeCwd as D, CATPPUCCIN_MOCHA as Dn, TODO_WRITE_COUNTS_METADATA_KEY as Dr, createInteractionTools as Dt, resolveSessionCwd as E, CATPPUCCIN_MACCHIATO as En, TODO_STATUS_GLYPHS as Er, createAutomaticInteractionResponse as Et, matchesSafelistEntry as F, useConfig as Fn, sanitizeTodoItems as Fr, STALE_RUN_MARKER_MS as Ft, usageChecksOptedOut as G, buildMcpServers as Gn, INTERACTION_GUIDANCE_NO_PROMPTS as Gr, modelChainMetadata as Gt, fetchAllProviderUsage as H, mcpsWritePath as Hn, DOING_TASKS_DOCTRINE as Hr, serializePreview as Ht, projectsFilePath as I, resolveConfig as In, selectActiveTodos as Ir, createChatHost as It, fetchOAuthRedirect as J, discoverProjectMcps as Jn, SUBAGENT_GUIDANCE as Jr, buildPluginContributions as Jt, usageSourceFor as K, dedupMcpServersByName as Kn, PLAN_MODE_DOCTRINE as Kr, sessionModelFallbacks as Kt, readProjects as L, resolveStoragePaths as Ln, setTodosForRun as Lr, toTodosSnapshot as Lt, addToSafelist as M, useDiscovery as Mn, isTodoTool as Mr, serializeInteractionResponse as Mt, getSafelist as N, useDiscoveryOptional as Nn, pickActiveRunId as Nr, useInteractionsActions as Nt, SafeModeProvider as O, parseEditorCommand as On, applyTodosSnapshot as Or, isInteractionTool as Ot, isOnSafelist as P, ConfigProvider as Pn, pruneTodosByRun as Pr, useInteractionsQueue as Pt, runOAuthLogin as Q, bootTick as Qn, envSection as Qr, EditOutcomeLedger as Qt, suggestSafelistEntries as R, useCompletion as Rn, todoProgressLabel as Rr, createInteractionHub as Rt, renderSession as S, GRUVBOX_DARK as Sn, DEFAULT_MAX_TODO_ITEMS as Sr, HOST_INTERACTION_ID_PREFIX as St, folderlessCwd as T, CATPPUCCIN_LATTE as Tn, TODOWRITE_TOOL as Tr, buildResumedToolResultsTurn as Tt, fetchProviderUsage as U, removeMcpServer as Un, IDENTITY_PREFIX as Ur, createBuiltinCommands as Ut, clearProviderUsageCache as V, importFromClaudeCode as Vn, COMMUNICATION_DOCTRINE as Vr, resolveCwdPath as Vt, providerUsageSupported as W, upsertMcpServer as Wn, INTERACTION_GUIDANCE as Wr, createMainSession as Wt, redirectUriFromAuthUrl as X, tryOpenBrowser as Xn, buildBuildSystem as Xr, parsePluginScanPathEnv as Xt, normalizeRedirectPaste as Y, parseMcpsFile as Yn, TOKEN_DISCIPLINE_DOCTRINE as Yr, discoverProjectPlugins as Yt, oauthUsesManualCodePaste as Z, bootProfileEnabled as Zn, buildPlanSystem as Zr, attachMcpWarnLog as Zt, buildSpawnEndEvent as _, toolCallPreview as _i, BUILTIN_THEMES as _n, DEFAULT_PERSIST_EXCLUDE_TOOLS as _r, useMcpAuthState as _t, renderActiveTodoAnchor as a, eventsFromTurns as ai, shortChord as an, detectPackageManager as ar, subscribeMcpToolsCache as at, defaultSkillScanPaths as b, usageByModel as bi, resolveTheme as bn, resolveAgentId as br, ASK_USER_TOOL as bt, useSelectStyle as c, listSessionMeta as ci, DEFAULT_SETTINGS as cn, performSelfUpdate as cr, useMcpToolToggleSet as ct, useTheme as d, noticeTurnContent as di, SETTINGS_INPUTS as dn, discoverAgentsMd as dr, parentServerName as dt, createChatTurnsReadTool as ei, EMPTY_HINTS as en, useUpdateCheck as er, clearMcpToolsCache as et, discoverSystemMd as f, saveState as fi, SETTINGS_TOGGLES as fn, renderAgentsMdBlock as fr, createFileMcpCredentialStore as ft, useStreamBuffer as g, titleFromTurns as gi, useSettings as gn, DEFAULT_BUDGET_EXCLUDE_TOOLS as gr, useMcpAuthDispatch as gt, userSystemMdPath as h, sumRunCosts as hi, enforceSettingsInvariants as hn, DEFAULT_AGENT_ID as hr, McpAuthProvider as ht, createActiveTodoAnchorHooks as i, deriveSessionTitle as ii, buildHints as in, detectLibc as ir, saveMcpToolsCache as it, IMPLICITLY_SAFE_TOOLS as j, DiscoveryProvider as jn, getTodosForRun as jr, pendingInteractionsFromTurns as jt, useSafeModeActions as k, quoteForShell as kn, createTodoTools as kr, isModelInteraction as kt, useSurfaces as l, loadState as li, SETTINGS_CATEGORIES as ln, resolvePlatformPackage as lr, buildVisibleMcpRows as lt, userScopeOverridesLoad as m, stripSpawnTokensLine as mi, clampFps as mn, BUILTIN_AGENTS as mr, patchMcpCredential as mt, createMemoryApprovalsStore as n, compactSummaryEvent as ni, hintsLength as nn, checkForUpdate as nr, mcpToolsCachePath as nt, ThemeProvider as o, getSessionMeta as oi, listProjectFiles as on, parseSemver as or, buildToolToggle as ot, renderSystemMdSeed as p, serverToolResultSummary as pi, SettingsProvider as pn, BUILD_AGENT as pr, mcpCredentialsPath as pt, formatPathForCwd as q, defaultMcpsConfigPaths as qn, PLAN_MODE_DOCTRINE_NO_PROMPTS as qr, runEndNotice as qt, computeTurnAnchors as r, createStateStore as ri, truncateTrailing as rn, compareSemver as rr, refreshMcpToolsCatalog as rt, useColors as s, lastContextSizeFromTurns as si, useEnabledToggleSet as sn, performInPlaceSelfUpdate as sr, useMcpToolToggleMap as st, createApprovalHub as t, DEFAULT_SESSION_TITLE as ti, clipHintsToWidth as tn, runUpdateCommand as tr, loadMcpToolsCache as tt, useSyntaxStyles as u, marginTopFor as ui, SETTINGS_CHOICES as un, chatAutoCompactBehavior as ur, indexOfServerRow as ut, buildSpawnStartEvent as v, toolResultText as vi, DEFAULT_THEME as vn, PLAN_AGENT as vr, getMcpAuthStatus as vt, writeSessionExport as w, CATPPUCCIN_FRAPPE as wn, TODOS_METADATA_KEY as wr, PRESENT_PLAN_TOOL as wt, discoverProjectSkills as x, VAPORWAVE_THEME as xn, singleAgentRegistry as xr, AUTOMATIC_INTERACTION_INSTRUCTION as xt, buildSkillsConfig as y, updateToolEventOutcomes as yi, resolveChipColor as yn, accentColor as yr, reduceMcpAuth as yt, writeProjects as z, countClaudeSessionFiles as zn, useActiveTodos as zr, extractEditPayloadForGate as zt };
15990
+ export { supportsOAuth as $, buildUpdateHint as $n, envSection as $r, runCompaction as $t, useSafeModeQueue as A, createDiscoverySlot as An, createTodoTools as Ar, makeRequestInteraction as At, USAGE_CACHE_TTL_MS as B, hasClaudeCodeSetup as Bn, useActiveTodos as Br, readFileSafe as Bt, resolveSessionExportTarget as C, GRUVBOX_LIGHT as Cn, DEFAULT_MAX_TODO_ITEMS as Cr, InteractionsProvider as Ct, scopeCwd as D, CATPPUCCIN_MOCHA as Dn, TODO_STATUS_GLYPHS as Dr, createInteractionTools as Dt, resolveSessionCwd as E, CATPPUCCIN_MACCHIATO as En, TODOWRITE_TOOL as Er, createAutomaticInteractionResponse as Et, matchesSafelistEntry as F, useConfig as Fn, pruneTodosByRun as Fr, STALE_RUN_MARKER_MS as Ft, usageChecksOptedOut as G, buildMcpServers as Gn, INTERACTION_GUIDANCE as Gr, modelChainMetadata as Gt, fetchAllProviderUsage as H, mcpsWritePath as Hn, COMMUNICATION_DOCTRINE as Hr, serializePreview as Ht, projectsFilePath as I, resolveConfig as In, sanitizeTodoItems as Ir, createChatHost as It, fetchOAuthRedirect as J, discoverProjectMcps as Jn, PLAN_MODE_DOCTRINE_NO_PROMPTS as Jr, buildPluginContributions as Jt, usageSourceFor as K, dedupMcpServersByName as Kn, INTERACTION_GUIDANCE_NO_PROMPTS as Kr, sessionModelFallbacks as Kt, readProjects as L, resolveStoragePaths as Ln, selectActiveTodos as Lr, toTodosSnapshot as Lt, addToSafelist as M, useDiscovery as Mn, getTodosForRun as Mr, serializeInteractionResponse as Mt, getSafelist as N, useDiscoveryOptional as Nn, isTodoTool as Nr, useInteractionsActions as Nt, SafeModeProvider as O, parseEditorCommand as On, TODO_WRITE_COUNTS_METADATA_KEY as Or, isInteractionTool as Ot, isOnSafelist as P, ConfigProvider as Pn, pickActiveRunId as Pr, useInteractionsQueue as Pt, runOAuthLogin as Q, bootTick as Qn, buildPlanSystem as Qr, EditOutcomeLedger as Qt, suggestSafelistEntries as R, useCompletion as Rn, setTodosForRun as Rr, createInteractionHub as Rt, renderSession as S, GRUVBOX_DARK as Sn, singleAgentRegistry as Sr, HOST_INTERACTION_ID_PREFIX as St, folderlessCwd as T, CATPPUCCIN_LATTE as Tn, TODOS_METADATA_KEY as Tr, buildResumedToolResultsTurn as Tt, fetchProviderUsage as U, removeMcpServer as Un, DOING_TASKS_DOCTRINE as Ur, createBuiltinCommands as Ut, clearProviderUsageCache as V, importFromClaudeCode as Vn, ACTIONS_WITH_CARE_DOCTRINE as Vr, resolveCwdPath as Vt, providerUsageSupported as W, upsertMcpServer as Wn, IDENTITY_PREFIX as Wr, createMainSession as Wt, redirectUriFromAuthUrl as X, tryOpenBrowser as Xn, TOKEN_DISCIPLINE_DOCTRINE as Xr, parsePluginScanPathEnv as Xt, normalizeRedirectPaste as Y, parseMcpsFile as Yn, SUBAGENT_GUIDANCE as Yr, discoverProjectPlugins as Yt, oauthUsesManualCodePaste as Z, bootProfileEnabled as Zn, buildBuildSystem as Zr, attachMcpWarnLog as Zt, buildSpawnEndEvent as _, titleFromTurns as _i, BUILTIN_THEMES as _n, DEFAULT_BUDGET_EXCLUDE_TOOLS as _r, useMcpAuthState as _t, renderActiveTodoAnchor as a, deriveSessionTitle as ai, shortChord as an, detectLibc as ar, subscribeMcpToolsCache as at, defaultSkillScanPaths as b, updateToolEventOutcomes as bi, resolveTheme as bn, accentColor as br, ASK_USER_TOOL as bt, useSelectStyle as c, lastContextSizeFromTurns as ci, DEFAULT_SETTINGS as cn, performInPlaceSelfUpdate as cr, useMcpToolToggleSet as ct, useTheme as d, marginTopFor as di, SETTINGS_INPUTS as dn, chatAutoCompactBehavior as dr, parentServerName as dt, chatReferenceTokensForPrompt as ei, EMPTY_HINTS as en, useUpdateCheck as er, clearMcpToolsCache as et, discoverSystemMd as f, noticeTurnContent as fi, SETTINGS_TOGGLES as fn, discoverAgentsMd as fr, createFileMcpCredentialStore as ft, useStreamBuffer as g, sumRunCosts as gi, useSettings as gn, DEFAULT_AGENT_ID as gr, useMcpAuthDispatch as gt, userSystemMdPath as h, stripSpawnTokensLine as hi, enforceSettingsInvariants as hn, BUILTIN_AGENTS as hr, McpAuthProvider as ht, createActiveTodoAnchorHooks as i, createStateStore as ii, buildHints as in, compareSemver as ir, saveMcpToolsCache as it, IMPLICITLY_SAFE_TOOLS as j, DiscoveryProvider as jn, getArchivedTodosForRun as jr, pendingInteractionsFromTurns as jt, useSafeModeActions as k, quoteForShell as kn, applyTodosSnapshot as kr, isModelInteraction as kt, useSurfaces as l, listSessionMeta as li, SETTINGS_CATEGORIES as ln, performSelfUpdate as lr, buildVisibleMcpRows as lt, userScopeOverridesLoad as m, serverToolResultSummary as mi, clampFps as mn, BUILD_AGENT as mr, patchMcpCredential as mt, createMemoryApprovalsStore as n, DEFAULT_SESSION_TITLE as ni, hintsLength as nn, findInstalledCompanion as nr, mcpToolsCachePath as nt, ThemeProvider as o, eventsFromTurns as oi, listProjectFiles as on, detectPackageManager as or, buildToolToggle as ot, renderSystemMdSeed as p, saveState as pi, SettingsProvider as pn, renderAgentsMdBlock as pr, mcpCredentialsPath as pt, formatPathForCwd as q, defaultMcpsConfigPaths as qn, PLAN_MODE_DOCTRINE as qr, runEndNotice as qt, computeTurnAnchors as r, compactSummaryEvent as ri, truncateTrailing as rn, checkForUpdate as rr, refreshMcpToolsCatalog as rt, useColors as s, getSessionMeta as si, useEnabledToggleSet as sn, parseSemver as sr, useMcpToolToggleMap as st, createApprovalHub as t, createChatTurnsReadTool as ti, clipHintsToWidth as tn, runUpdateCommand as tr, loadMcpToolsCache as tt, useSyntaxStyles as u, loadState as ui, SETTINGS_CHOICES as un, resolvePlatformPackage as ur, indexOfServerRow as ut, buildSpawnStartEvent as v, toolCallPreview as vi, DEFAULT_THEME as vn, DEFAULT_PERSIST_EXCLUDE_TOOLS as vr, getMcpAuthStatus as vt, writeSessionExport as w, CATPPUCCIN_FRAPPE as wn, TODOREAD_TOOL as wr, PRESENT_PLAN_TOOL as wt, discoverProjectSkills as x, usageByModel as xi, VAPORWAVE_THEME as xn, resolveAgentId as xr, AUTOMATIC_INTERACTION_INSTRUCTION as xt, buildSkillsConfig as y, toolResultText as yi, resolveChipColor as yn, PLAN_AGENT as yr, reduceMcpAuth as yt, writeProjects as z, countClaudeSessionFiles as zn, todoProgressLabel as zr, extractEditPayloadForGate as zt };
15827
15991
 
15828
- //# sourceMappingURL=approvals-CqqxE5Vh.js.map
15992
+ //# sourceMappingURL=approvals-BF15XIhM.js.map