fss-link 1.4.5 → 1.4.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 (2) hide show
  1. package/bundle/fss-link.js +585 -560
  2. package/package.json +1 -1
@@ -22379,7 +22379,7 @@ async function createContentGeneratorConfig(config, authType) {
22379
22379
  async function createContentGenerator(config, gcConfig, sessionId2) {
22380
22380
  if (DEBUG_CONTENT)
22381
22381
  console.log(`\u{1F41B} DEBUG createContentGenerator: authType=${config.authType}, apiKey=${config.apiKey}, baseUrl=${config.baseUrl}`);
22382
- const version = "1.4.5";
22382
+ const version = "1.4.7";
22383
22383
  const userAgent = `FSS-Link/${version} (${process.platform}; ${process.arch})`;
22384
22384
  const baseHeaders = {
22385
22385
  "User-Agent": userAgent
@@ -96074,7 +96074,7 @@ async function getPackageJson() {
96074
96074
  // packages/cli/src/utils/version.ts
96075
96075
  async function getCliVersion() {
96076
96076
  const pkgJson = await getPackageJson();
96077
- return "1.4.5";
96077
+ return "1.4.7";
96078
96078
  }
96079
96079
 
96080
96080
  // packages/cli/src/ui/commands/aboutCommand.ts
@@ -96126,7 +96126,7 @@ import open4 from "open";
96126
96126
  import process11 from "node:process";
96127
96127
 
96128
96128
  // packages/cli/src/generated/git-commit.ts
96129
- var GIT_COMMIT_INFO = "51b65f15";
96129
+ var GIT_COMMIT_INFO = "322fc89a";
96130
96130
 
96131
96131
  // packages/cli/src/ui/commands/bugCommand.ts
96132
96132
  init_dist2();
@@ -120421,7 +120421,6 @@ function LMStudioModelPrompt({
120421
120421
  init_dist2();
120422
120422
  import { useState as useState33, useEffect as useEffect32 } from "react";
120423
120423
  import { Box as Box19, Text as Text26, useInput as useInput4 } from "ink";
120424
- import TextInput from "ink-text-input";
120425
120424
 
120426
120425
  // packages/cli/src/utils/modelFetcher.ts
120427
120426
  async function fetchModelsFromCustomEndpoint(baseUrl, providerType, apiKey) {
@@ -120433,6 +120432,8 @@ async function fetchModelsFromCustomEndpoint(baseUrl, providerType, apiKey) {
120433
120432
  if (apiKey && apiKey.trim() !== "") {
120434
120433
  headers["Authorization"] = `Bearer ${apiKey}`;
120435
120434
  }
120435
+ console.error(`[DEBUG] fetchModelsFromCustomEndpoint: ${url2}`);
120436
+ console.error(`[DEBUG] Provider: ${providerType}, Has API key: ${!!apiKey}`);
120436
120437
  try {
120437
120438
  const controller = new AbortController();
120438
120439
  const timeoutId = setTimeout(() => controller.abort(), 1e4);
@@ -120463,21 +120464,45 @@ async function fetchModelsFromCustomEndpoint(baseUrl, providerType, apiKey) {
120463
120464
  object: m.object
120464
120465
  }));
120465
120466
  } catch (error) {
120467
+ console.error("[DEBUG] Fetch error caught:");
120468
+ console.error("[DEBUG] Error type:", error instanceof Error ? "Error" : typeof error);
120466
120469
  if (error instanceof Error) {
120470
+ console.error("[DEBUG] Error name:", error.name);
120471
+ console.error("[DEBUG] Error message:", error.message);
120472
+ console.error("[DEBUG] Error stack:", error.stack);
120473
+ console.error("[DEBUG] Error cause:", error.cause);
120467
120474
  if (error.name === "AbortError") {
120468
120475
  throw new Error("Connection timeout (10s) - endpoint did not respond");
120469
120476
  }
120470
120477
  if (error.message.includes("fetch failed")) {
120471
- throw new Error(`Network error - cannot reach ${normalizedBase}: ${error.message}`);
120478
+ throw new Error(`Network error - cannot reach ${normalizedBase}: ${error.message} (cause: ${error.cause})`);
120472
120479
  }
120473
120480
  throw error;
120474
120481
  }
120482
+ console.error("[DEBUG] Non-Error object:", error);
120475
120483
  throw new Error(`Connection failed: ${String(error)}`);
120476
120484
  }
120477
120485
  }
120478
120486
 
120487
+ // packages/cli/src/ui/components/shared/PasteAwareTextInput.tsx
120488
+ import TextInput from "ink-text-input";
120489
+ import { jsx as jsx24 } from "react/jsx-runtime";
120490
+ function stripBracketedPaste(value) {
120491
+ return value.replace(/\x1b\[200~/g, "").replace(/\x1b\[201~/g, "").replace(/~200~/g, "").replace(/~201~/g, "");
120492
+ }
120493
+ function PasteAwareTextInput({
120494
+ onChange,
120495
+ ...props
120496
+ }) {
120497
+ const handleChange = (value) => {
120498
+ const cleaned = stripBracketedPaste(value);
120499
+ onChange(cleaned);
120500
+ };
120501
+ return /* @__PURE__ */ jsx24(TextInput, { ...props, onChange: handleChange });
120502
+ }
120503
+
120479
120504
  // packages/cli/src/ui/components/AddCustomEndpointDialog.tsx
120480
- import { Fragment as Fragment4, jsx as jsx24, jsxs as jsxs22 } from "react/jsx-runtime";
120505
+ import { Fragment as Fragment4, jsx as jsx25, jsxs as jsxs22 } from "react/jsx-runtime";
120481
120506
  function AddCustomEndpointDialog({
120482
120507
  onSubmit,
120483
120508
  onCancel
@@ -120605,13 +120630,13 @@ function AddCustomEndpointDialog({
120605
120630
  switch (step) {
120606
120631
  case "name":
120607
120632
  return /* @__PURE__ */ jsxs22(Fragment4, { children: [
120608
- /* @__PURE__ */ jsx24(Text26, { bold: true, color: Colors.AccentBlue, children: "Step 1: Endpoint Name" }),
120609
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx24(Text26, { children: "Enter a friendly name for this endpoint:" }) }),
120610
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx24(Text26, { color: Colors.AccentGreen, children: 'Example: "RTX3090 Proxy" or "Inference Server"' }) }),
120633
+ /* @__PURE__ */ jsx25(Text26, { bold: true, color: Colors.AccentBlue, children: "Step 1: Endpoint Name" }),
120634
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx25(Text26, { children: "Enter a friendly name for this endpoint:" }) }),
120635
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx25(Text26, { color: Colors.AccentGreen, children: 'Example: "RTX3090 Proxy" or "Inference Server"' }) }),
120611
120636
  /* @__PURE__ */ jsxs22(Box19, { marginTop: 1, children: [
120612
- /* @__PURE__ */ jsx24(Text26, { color: Colors.AccentPurple, children: "> " }),
120613
- /* @__PURE__ */ jsx24(
120614
- TextInput,
120637
+ /* @__PURE__ */ jsx25(Text26, { color: Colors.AccentPurple, children: "> " }),
120638
+ /* @__PURE__ */ jsx25(
120639
+ PasteAwareTextInput,
120615
120640
  {
120616
120641
  value: name2,
120617
120642
  onChange: setName,
@@ -120619,21 +120644,21 @@ function AddCustomEndpointDialog({
120619
120644
  }
120620
120645
  )
120621
120646
  ] }),
120622
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx24(Text26, { color: Colors.Gray, children: "Press Enter to continue, Esc to cancel" }) })
120647
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx25(Text26, { color: Colors.Gray, children: "Press Enter to continue, Esc to cancel" }) })
120623
120648
  ] });
120624
120649
  case "url":
120625
120650
  return /* @__PURE__ */ jsxs22(Fragment4, { children: [
120626
- /* @__PURE__ */ jsx24(Text26, { bold: true, color: Colors.AccentBlue, children: "Step 2: Endpoint URL" }),
120627
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, children: /* @__PURE__ */ jsxs22(Text26, { children: [
120651
+ /* @__PURE__ */ jsx25(Text26, { bold: true, color: Colors.AccentBlue, children: "Step 2: Endpoint URL" }),
120652
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, children: /* @__PURE__ */ jsxs22(Text26, { children: [
120628
120653
  "Endpoint name: ",
120629
- /* @__PURE__ */ jsx24(Text26, { color: Colors.AccentGreen, children: name2 })
120654
+ /* @__PURE__ */ jsx25(Text26, { color: Colors.AccentGreen, children: name2 })
120630
120655
  ] }) }),
120631
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx24(Text26, { children: "Enter the base URL for this endpoint:" }) }),
120632
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx24(Text26, { color: Colors.AccentGreen, children: 'Example: "https://rtx3090.bobai.com.au/v1"' }) }),
120656
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx25(Text26, { children: "Enter the base URL for this endpoint:" }) }),
120657
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx25(Text26, { color: Colors.AccentGreen, children: 'Example: "https://rtx3090.bobai.com.au/v1"' }) }),
120633
120658
  /* @__PURE__ */ jsxs22(Box19, { marginTop: 1, children: [
120634
- /* @__PURE__ */ jsx24(Text26, { color: Colors.AccentPurple, children: "> " }),
120635
- /* @__PURE__ */ jsx24(
120636
- TextInput,
120659
+ /* @__PURE__ */ jsx25(Text26, { color: Colors.AccentPurple, children: "> " }),
120660
+ /* @__PURE__ */ jsx25(
120661
+ PasteAwareTextInput,
120637
120662
  {
120638
120663
  value: url2,
120639
120664
  onChange: setUrl,
@@ -120641,20 +120666,20 @@ function AddCustomEndpointDialog({
120641
120666
  }
120642
120667
  )
120643
120668
  ] }),
120644
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx24(Text26, { color: Colors.Gray, children: "Press Enter to continue, Esc to cancel" }) })
120669
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx25(Text26, { color: Colors.Gray, children: "Press Enter to continue, Esc to cancel" }) })
120645
120670
  ] });
120646
120671
  case "provider":
120647
120672
  return /* @__PURE__ */ jsxs22(Fragment4, { children: [
120648
- /* @__PURE__ */ jsx24(Text26, { bold: true, color: Colors.AccentBlue, children: "Step 3: Provider Type" }),
120649
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, children: /* @__PURE__ */ jsxs22(Text26, { children: [
120673
+ /* @__PURE__ */ jsx25(Text26, { bold: true, color: Colors.AccentBlue, children: "Step 3: Provider Type" }),
120674
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, children: /* @__PURE__ */ jsxs22(Text26, { children: [
120650
120675
  "Endpoint: ",
120651
- /* @__PURE__ */ jsx24(Text26, { color: Colors.AccentGreen, children: name2 }),
120676
+ /* @__PURE__ */ jsx25(Text26, { color: Colors.AccentGreen, children: name2 }),
120652
120677
  " (",
120653
120678
  url2,
120654
120679
  ")"
120655
120680
  ] }) }),
120656
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx24(Text26, { children: "Select the API type:" }) }),
120657
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, flexDirection: "column", children: providerOptions.map((option2, index) => {
120681
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx25(Text26, { children: "Select the API type:" }) }),
120682
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, flexDirection: "column", children: providerOptions.map((option2, index) => {
120658
120683
  const isSelected = index === selectedProviderIndex;
120659
120684
  const prefix = isSelected ? ">" : " ";
120660
120685
  return /* @__PURE__ */ jsxs22(
@@ -120671,24 +120696,24 @@ function AddCustomEndpointDialog({
120671
120696
  option2.value
120672
120697
  );
120673
120698
  }) }),
120674
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx24(Text26, { color: Colors.Gray, children: "\u2191/\u2193 to navigate, Enter to select, Esc to cancel" }) })
120699
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx25(Text26, { color: Colors.Gray, children: "\u2191/\u2193 to navigate, Enter to select, Esc to cancel" }) })
120675
120700
  ] });
120676
120701
  case "apikey":
120677
120702
  return /* @__PURE__ */ jsxs22(Fragment4, { children: [
120678
- /* @__PURE__ */ jsx24(Text26, { bold: true, color: Colors.AccentBlue, children: "Step 4: API Key (Optional)" }),
120679
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, children: /* @__PURE__ */ jsxs22(Text26, { children: [
120703
+ /* @__PURE__ */ jsx25(Text26, { bold: true, color: Colors.AccentBlue, children: "Step 4: API Key (Optional)" }),
120704
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, children: /* @__PURE__ */ jsxs22(Text26, { children: [
120680
120705
  "Endpoint: ",
120681
- /* @__PURE__ */ jsx24(Text26, { color: Colors.AccentGreen, children: name2 }),
120706
+ /* @__PURE__ */ jsx25(Text26, { color: Colors.AccentGreen, children: name2 }),
120682
120707
  " (",
120683
120708
  providerOptions[selectedProviderIndex].label,
120684
120709
  ")"
120685
120710
  ] }) }),
120686
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx24(Text26, { children: "Enter API key if required (leave empty if none):" }) }),
120687
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx24(Text26, { color: Colors.AccentYellow, children: "\u2139 External endpoints usually require authentication" }) }),
120711
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx25(Text26, { children: "Enter API key if required (leave empty if none):" }) }),
120712
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx25(Text26, { color: Colors.AccentYellow, children: "\u2139 External endpoints usually require authentication" }) }),
120688
120713
  /* @__PURE__ */ jsxs22(Box19, { marginTop: 1, children: [
120689
- /* @__PURE__ */ jsx24(Text26, { color: Colors.AccentPurple, children: "> " }),
120690
- /* @__PURE__ */ jsx24(
120691
- TextInput,
120714
+ /* @__PURE__ */ jsx25(Text26, { color: Colors.AccentPurple, children: "> " }),
120715
+ /* @__PURE__ */ jsx25(
120716
+ PasteAwareTextInput,
120692
120717
  {
120693
120718
  value: apiKey,
120694
120719
  onChange: setApiKey,
@@ -120696,66 +120721,66 @@ function AddCustomEndpointDialog({
120696
120721
  }
120697
120722
  )
120698
120723
  ] }),
120699
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx24(Text26, { color: Colors.Gray, children: "Press Enter to fetch models, Esc to cancel" }) })
120724
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx25(Text26, { color: Colors.Gray, children: "Press Enter to fetch models, Esc to cancel" }) })
120700
120725
  ] });
120701
120726
  case "model-fetch":
120702
120727
  if (fetchError) {
120703
120728
  return /* @__PURE__ */ jsxs22(Fragment4, { children: [
120704
- /* @__PURE__ */ jsx24(Text26, { bold: true, color: Colors.AccentRed, children: "Connection Failed" }),
120705
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, children: /* @__PURE__ */ jsxs22(Text26, { children: [
120729
+ /* @__PURE__ */ jsx25(Text26, { bold: true, color: Colors.AccentRed, children: "Connection Failed" }),
120730
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, children: /* @__PURE__ */ jsxs22(Text26, { children: [
120706
120731
  "Name: ",
120707
- /* @__PURE__ */ jsx24(Text26, { color: Colors.AccentCyan, children: name2 })
120732
+ /* @__PURE__ */ jsx25(Text26, { color: Colors.AccentCyan, children: name2 })
120708
120733
  ] }) }),
120709
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, children: /* @__PURE__ */ jsxs22(Text26, { children: [
120734
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, children: /* @__PURE__ */ jsxs22(Text26, { children: [
120710
120735
  "URL: ",
120711
- /* @__PURE__ */ jsx24(Text26, { color: Colors.AccentCyan, children: url2 })
120736
+ /* @__PURE__ */ jsx25(Text26, { color: Colors.AccentCyan, children: url2 })
120712
120737
  ] }) }),
120713
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, children: /* @__PURE__ */ jsxs22(Text26, { children: [
120738
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, children: /* @__PURE__ */ jsxs22(Text26, { children: [
120714
120739
  "Provider: ",
120715
- /* @__PURE__ */ jsx24(Text26, { color: Colors.AccentCyan, children: providerOptions[selectedProviderIndex].label })
120740
+ /* @__PURE__ */ jsx25(Text26, { color: Colors.AccentCyan, children: providerOptions[selectedProviderIndex].label })
120716
120741
  ] }) }),
120717
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, children: /* @__PURE__ */ jsxs22(Text26, { children: [
120742
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, children: /* @__PURE__ */ jsxs22(Text26, { children: [
120718
120743
  "API Key: ",
120719
- /* @__PURE__ */ jsx24(Text26, { color: Colors.AccentCyan, children: apiKey ? `${apiKey.substring(0, 20)}...` : "(none)" })
120744
+ /* @__PURE__ */ jsx25(Text26, { color: Colors.AccentCyan, children: apiKey ? `${apiKey.substring(0, 20)}...` : "(none)" })
120720
120745
  ] }) }),
120721
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, children: /* @__PURE__ */ jsxs22(Text26, { color: Colors.AccentRed, children: [
120746
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, children: /* @__PURE__ */ jsxs22(Text26, { color: Colors.AccentRed, children: [
120722
120747
  "\u2716 Error: ",
120723
120748
  fetchError
120724
120749
  ] }) }),
120725
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx24(Text26, { color: Colors.AccentYellow, children: "What would you like to do?" }) }),
120750
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx25(Text26, { color: Colors.AccentYellow, children: "What would you like to do?" }) }),
120726
120751
  /* @__PURE__ */ jsxs22(Box19, { marginTop: 1, flexDirection: "column", children: [
120727
- /* @__PURE__ */ jsx24(Text26, { color: Colors.AccentGreen, children: " [U] Edit URL" }),
120728
- /* @__PURE__ */ jsx24(Text26, { color: Colors.AccentGreen, children: " [K] Edit API Key" }),
120729
- /* @__PURE__ */ jsx24(Text26, { color: Colors.AccentGreen, children: " [P] Change Provider Type" }),
120730
- /* @__PURE__ */ jsx24(Text26, { color: Colors.AccentBlue, children: " [R] Retry Connection" }),
120731
- /* @__PURE__ */ jsx24(Text26, { color: Colors.Gray, children: " [Esc] Cancel and Exit" })
120752
+ /* @__PURE__ */ jsx25(Text26, { color: Colors.AccentGreen, children: " [U] Edit URL" }),
120753
+ /* @__PURE__ */ jsx25(Text26, { color: Colors.AccentGreen, children: " [K] Edit API Key" }),
120754
+ /* @__PURE__ */ jsx25(Text26, { color: Colors.AccentGreen, children: " [P] Change Provider Type" }),
120755
+ /* @__PURE__ */ jsx25(Text26, { color: Colors.AccentBlue, children: " [R] Retry Connection" }),
120756
+ /* @__PURE__ */ jsx25(Text26, { color: Colors.Gray, children: " [Esc] Cancel and Exit" })
120732
120757
  ] })
120733
120758
  ] });
120734
120759
  }
120735
120760
  return /* @__PURE__ */ jsxs22(Fragment4, { children: [
120736
- /* @__PURE__ */ jsx24(Text26, { bold: true, color: Colors.AccentBlue, children: "Fetching Models..." }),
120737
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, children: /* @__PURE__ */ jsxs22(Text26, { children: [
120761
+ /* @__PURE__ */ jsx25(Text26, { bold: true, color: Colors.AccentBlue, children: "Fetching Models..." }),
120762
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, children: /* @__PURE__ */ jsxs22(Text26, { children: [
120738
120763
  "Connecting to ",
120739
- /* @__PURE__ */ jsx24(Text26, { color: Colors.AccentGreen, children: url2 })
120764
+ /* @__PURE__ */ jsx25(Text26, { color: Colors.AccentGreen, children: url2 })
120740
120765
  ] }) }),
120741
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx24(Text26, { color: Colors.Gray, children: "Please wait..." }) })
120766
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx25(Text26, { color: Colors.Gray, children: "Please wait..." }) })
120742
120767
  ] });
120743
120768
  case "model-select":
120744
120769
  return /* @__PURE__ */ jsxs22(Fragment4, { children: [
120745
- /* @__PURE__ */ jsx24(Text26, { bold: true, color: Colors.AccentBlue, children: "Step 5: Select Model" }),
120746
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, children: /* @__PURE__ */ jsxs22(Text26, { children: [
120770
+ /* @__PURE__ */ jsx25(Text26, { bold: true, color: Colors.AccentBlue, children: "Step 5: Select Model" }),
120771
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, children: /* @__PURE__ */ jsxs22(Text26, { children: [
120747
120772
  "Endpoint: ",
120748
- /* @__PURE__ */ jsx24(Text26, { color: Colors.AccentGreen, children: name2 }),
120773
+ /* @__PURE__ */ jsx25(Text26, { color: Colors.AccentGreen, children: name2 }),
120749
120774
  " (",
120750
120775
  url2,
120751
120776
  ")"
120752
120777
  ] }) }),
120753
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, children: /* @__PURE__ */ jsxs22(Text26, { color: Colors.AccentGreen, children: [
120778
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, children: /* @__PURE__ */ jsxs22(Text26, { color: Colors.AccentGreen, children: [
120754
120779
  "\u2713 Found ",
120755
120780
  availableModels.length,
120756
120781
  " available models"
120757
120782
  ] }) }),
120758
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx24(Text26, { children: "Choose a model to use:" }) }),
120783
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx25(Text26, { children: "Choose a model to use:" }) }),
120759
120784
  /* @__PURE__ */ jsxs22(Box19, { marginTop: 1, flexDirection: "column", children: [
120760
120785
  availableModels.slice(0, 15).map((model, index) => {
120761
120786
  const isSelected = index === selectedModelIndex;
@@ -120786,7 +120811,7 @@ function AddCustomEndpointDialog({
120786
120811
  " more models"
120787
120812
  ] })
120788
120813
  ] }),
120789
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx24(Text26, { color: Colors.Gray, children: "\u2191/\u2193 to navigate, Enter to confirm, Esc to cancel" }) })
120814
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, children: /* @__PURE__ */ jsx25(Text26, { color: Colors.Gray, children: "\u2191/\u2193 to navigate, Enter to confirm, Esc to cancel" }) })
120790
120815
  ] });
120791
120816
  }
120792
120817
  };
@@ -120799,8 +120824,8 @@ function AddCustomEndpointDialog({
120799
120824
  padding: 1,
120800
120825
  width: "100%",
120801
120826
  children: [
120802
- /* @__PURE__ */ jsx24(Text26, { bold: true, color: Colors.AccentBlue, children: "Add Custom Endpoint" }),
120803
- /* @__PURE__ */ jsx24(Box19, { marginTop: 1, flexDirection: "column", children: renderStep() })
120827
+ /* @__PURE__ */ jsx25(Text26, { bold: true, color: Colors.AccentBlue, children: "Add Custom Endpoint" }),
120828
+ /* @__PURE__ */ jsx25(Box19, { marginTop: 1, flexDirection: "column", children: renderStep() })
120804
120829
  ]
120805
120830
  }
120806
120831
  );
@@ -120813,7 +120838,7 @@ init_modelManager();
120813
120838
  import { useState as useState34, useEffect as useEffect33 } from "react";
120814
120839
  import { Box as Box20, Text as Text27 } from "ink";
120815
120840
  init_database();
120816
- import { jsx as jsx25, jsxs as jsxs23 } from "react/jsx-runtime";
120841
+ import { jsx as jsx26, jsxs as jsxs23 } from "react/jsx-runtime";
120817
120842
  var COMMON_ENDPOINTS = [
120818
120843
  {
120819
120844
  name: "OpenAI Official",
@@ -120870,12 +120895,12 @@ function OpenAIEndpointDialog({
120870
120895
  }
120871
120896
  }, { isActive: true });
120872
120897
  if (isLoading) {
120873
- return /* @__PURE__ */ jsx25(Box20, { flexDirection: "column", padding: 1, children: /* @__PURE__ */ jsx25(Text27, { children: "Loading endpoints..." }) });
120898
+ return /* @__PURE__ */ jsx26(Box20, { flexDirection: "column", padding: 1, children: /* @__PURE__ */ jsx26(Text27, { children: "Loading endpoints..." }) });
120874
120899
  }
120875
120900
  return /* @__PURE__ */ jsxs23(Box20, { flexDirection: "column", padding: 1, children: [
120876
- /* @__PURE__ */ jsx25(Text27, { bold: true, color: Colors.AccentBlue, children: "Select OpenAI Endpoint" }),
120877
- /* @__PURE__ */ jsx25(Box20, { marginTop: 1, children: /* @__PURE__ */ jsx25(Text27, { children: "Choose an OpenAI API endpoint:" }) }),
120878
- /* @__PURE__ */ jsx25(Box20, { marginTop: 1, children: /* @__PURE__ */ jsx25(
120901
+ /* @__PURE__ */ jsx26(Text27, { bold: true, color: Colors.AccentBlue, children: "Select OpenAI Endpoint" }),
120902
+ /* @__PURE__ */ jsx26(Box20, { marginTop: 1, children: /* @__PURE__ */ jsx26(Text27, { children: "Choose an OpenAI API endpoint:" }) }),
120903
+ /* @__PURE__ */ jsx26(Box20, { marginTop: 1, children: /* @__PURE__ */ jsx26(
120879
120904
  RadioButtonSelect,
120880
120905
  {
120881
120906
  items: allEndpoints.map((e2) => ({
@@ -120886,13 +120911,13 @@ function OpenAIEndpointDialog({
120886
120911
  onSelect: handleSelect
120887
120912
  }
120888
120913
  ) }),
120889
- /* @__PURE__ */ jsx25(Box20, { marginTop: 1, children: /* @__PURE__ */ jsx25(Text27, { color: Colors.Gray, children: "(Press Escape to cancel)" }) })
120914
+ /* @__PURE__ */ jsx26(Box20, { marginTop: 1, children: /* @__PURE__ */ jsx26(Text27, { color: Colors.Gray, children: "(Press Escape to cancel)" }) })
120890
120915
  ] });
120891
120916
  }
120892
120917
 
120893
120918
  // packages/cli/src/ui/components/AuthDialog.tsx
120894
120919
  init_database();
120895
- import { jsx as jsx26, jsxs as jsxs24 } from "react/jsx-runtime";
120920
+ import { jsx as jsx27, jsxs as jsxs24 } from "react/jsx-runtime";
120896
120921
  function parseDefaultAuthType(defaultAuthType) {
120897
120922
  if (defaultAuthType && Object.values(AuthType).includes(defaultAuthType)) {
120898
120923
  return defaultAuthType;
@@ -121112,7 +121137,7 @@ function AuthDialog({
121112
121137
  { isActive: true }
121113
121138
  );
121114
121139
  if (showOpenAIEndpointDialog) {
121115
- return /* @__PURE__ */ jsx26(
121140
+ return /* @__PURE__ */ jsx27(
121116
121141
  OpenAIEndpointDialog,
121117
121142
  {
121118
121143
  onSelect: handleEndpointSelect,
@@ -121121,7 +121146,7 @@ function AuthDialog({
121121
121146
  );
121122
121147
  }
121123
121148
  if (showAddCustomEndpointDialog) {
121124
- return /* @__PURE__ */ jsx26(
121149
+ return /* @__PURE__ */ jsx27(
121125
121150
  AddCustomEndpointDialog,
121126
121151
  {
121127
121152
  onSubmit: handleCustomEndpointSubmit,
@@ -121130,7 +121155,7 @@ function AuthDialog({
121130
121155
  );
121131
121156
  }
121132
121157
  if (showOpenAIKeyPrompt) {
121133
- return /* @__PURE__ */ jsx26(
121158
+ return /* @__PURE__ */ jsx27(
121134
121159
  OpenAIKeyPrompt,
121135
121160
  {
121136
121161
  onSubmit: handleOpenAIKeySubmit,
@@ -121140,7 +121165,7 @@ function AuthDialog({
121140
121165
  );
121141
121166
  }
121142
121167
  if (showOllamaModelPrompt) {
121143
- return /* @__PURE__ */ jsx26(
121168
+ return /* @__PURE__ */ jsx27(
121144
121169
  OllamaModelPrompt,
121145
121170
  {
121146
121171
  onSubmit: handleOllamaModelSubmit,
@@ -121149,7 +121174,7 @@ function AuthDialog({
121149
121174
  );
121150
121175
  }
121151
121176
  if (showLMStudioModelPrompt) {
121152
- return /* @__PURE__ */ jsx26(
121177
+ return /* @__PURE__ */ jsx27(
121153
121178
  LMStudioModelPrompt,
121154
121179
  {
121155
121180
  onSubmit: handleLMStudioModelSubmit,
@@ -121166,9 +121191,9 @@ function AuthDialog({
121166
121191
  padding: 1,
121167
121192
  width: "100%",
121168
121193
  children: [
121169
- /* @__PURE__ */ jsx26(Text28, { bold: true, children: "Get started" }),
121170
- /* @__PURE__ */ jsx26(Box21, { marginTop: 1, children: /* @__PURE__ */ jsx26(Text28, { children: "How would you like to authenticate for this project?" }) }),
121171
- /* @__PURE__ */ jsx26(Box21, { marginTop: 1, children: /* @__PURE__ */ jsx26(
121194
+ /* @__PURE__ */ jsx27(Text28, { bold: true, children: "Get started" }),
121195
+ /* @__PURE__ */ jsx27(Box21, { marginTop: 1, children: /* @__PURE__ */ jsx27(Text28, { children: "How would you like to authenticate for this project?" }) }),
121196
+ /* @__PURE__ */ jsx27(Box21, { marginTop: 1, children: /* @__PURE__ */ jsx27(
121172
121197
  RadioButtonSelect,
121173
121198
  {
121174
121199
  items,
@@ -121176,10 +121201,10 @@ function AuthDialog({
121176
121201
  onSelect: handleAuthSelect
121177
121202
  }
121178
121203
  ) }),
121179
- errorMessage && /* @__PURE__ */ jsx26(Box21, { marginTop: 1, children: /* @__PURE__ */ jsx26(Text28, { color: Colors.AccentRed, children: errorMessage }) }),
121180
- /* @__PURE__ */ jsx26(Box21, { marginTop: 1, children: /* @__PURE__ */ jsx26(Text28, { color: Colors.AccentPurple, children: "(Use Enter to Set Auth)" }) }),
121181
- /* @__PURE__ */ jsx26(Box21, { marginTop: 1, children: /* @__PURE__ */ jsx26(Text28, { children: "Terms of Services and Privacy Notice for FSS Link" }) }),
121182
- /* @__PURE__ */ jsx26(Box21, { marginTop: 1, children: /* @__PURE__ */ jsx26(Text28, { color: Colors.AccentBlue, children: "https://github.com/FSSCoding/fss-link/blob/main/README.md" }) })
121204
+ errorMessage && /* @__PURE__ */ jsx27(Box21, { marginTop: 1, children: /* @__PURE__ */ jsx27(Text28, { color: Colors.AccentRed, children: errorMessage }) }),
121205
+ /* @__PURE__ */ jsx27(Box21, { marginTop: 1, children: /* @__PURE__ */ jsx27(Text28, { color: Colors.AccentPurple, children: "(Use Enter to Set Auth)" }) }),
121206
+ /* @__PURE__ */ jsx27(Box21, { marginTop: 1, children: /* @__PURE__ */ jsx27(Text28, { children: "Terms of Services and Privacy Notice for FSS Link" }) }),
121207
+ /* @__PURE__ */ jsx27(Box21, { marginTop: 1, children: /* @__PURE__ */ jsx27(Text28, { color: Colors.AccentBlue, children: "https://github.com/FSSCoding/fss-link/blob/main/README.md" }) })
121183
121208
  ]
121184
121209
  }
121185
121210
  );
@@ -121189,7 +121214,7 @@ function AuthDialog({
121189
121214
  import { useState as useState36, useEffect as useEffect34 } from "react";
121190
121215
  import { Box as Box22, Text as Text29, useInput as useInput5 } from "ink";
121191
121216
  init_modelManager();
121192
- import { jsx as jsx27, jsxs as jsxs25 } from "react/jsx-runtime";
121217
+ import { jsx as jsx28, jsxs as jsxs25 } from "react/jsx-runtime";
121193
121218
  function ProviderEndpointSelectionDialog({
121194
121219
  onSelect,
121195
121220
  onAddCustom,
@@ -121333,8 +121358,8 @@ function ProviderEndpointSelectionDialog({
121333
121358
  padding: 1,
121334
121359
  width: "100%",
121335
121360
  children: [
121336
- /* @__PURE__ */ jsx27(Text29, { bold: true, color: Colors.AccentBlue, children: "Provider / Endpoint Selection" }),
121337
- /* @__PURE__ */ jsx27(Box22, { marginTop: 1, children: /* @__PURE__ */ jsx27(Text29, { children: "Loading providers and endpoints..." }) })
121361
+ /* @__PURE__ */ jsx28(Text29, { bold: true, color: Colors.AccentBlue, children: "Provider / Endpoint Selection" }),
121362
+ /* @__PURE__ */ jsx28(Box22, { marginTop: 1, children: /* @__PURE__ */ jsx28(Text29, { children: "Loading providers and endpoints..." }) })
121338
121363
  ]
121339
121364
  }
121340
121365
  );
@@ -121349,8 +121374,8 @@ function ProviderEndpointSelectionDialog({
121349
121374
  padding: 1,
121350
121375
  width: "100%",
121351
121376
  children: [
121352
- /* @__PURE__ */ jsx27(Text29, { bold: true, color: Colors.AccentBlue, children: "Switching Model" }),
121353
- /* @__PURE__ */ jsx27(Box22, { marginTop: 1, children: /* @__PURE__ */ jsxs25(Text29, { children: [
121377
+ /* @__PURE__ */ jsx28(Text29, { bold: true, color: Colors.AccentBlue, children: "Switching Model" }),
121378
+ /* @__PURE__ */ jsx28(Box22, { marginTop: 1, children: /* @__PURE__ */ jsxs25(Text29, { children: [
121354
121379
  "Activating ",
121355
121380
  endpoints[selectedIndex]?.modelName || "model",
121356
121381
  "..."
@@ -121369,9 +121394,9 @@ function ProviderEndpointSelectionDialog({
121369
121394
  padding: 1,
121370
121395
  width: "100%",
121371
121396
  children: [
121372
- /* @__PURE__ */ jsx27(Text29, { bold: true, color: Colors.AccentRed, children: "Provider Selection Error" }),
121373
- /* @__PURE__ */ jsx27(Box22, { marginTop: 1, children: /* @__PURE__ */ jsx27(Text29, { children: error }) }),
121374
- /* @__PURE__ */ jsx27(Box22, { marginTop: 1, children: /* @__PURE__ */ jsx27(Text29, { color: Colors.Gray, children: "Press Esc to cancel" }) })
121397
+ /* @__PURE__ */ jsx28(Text29, { bold: true, color: Colors.AccentRed, children: "Provider Selection Error" }),
121398
+ /* @__PURE__ */ jsx28(Box22, { marginTop: 1, children: /* @__PURE__ */ jsx28(Text29, { children: error }) }),
121399
+ /* @__PURE__ */ jsx28(Box22, { marginTop: 1, children: /* @__PURE__ */ jsx28(Text29, { color: Colors.Gray, children: "Press Esc to cancel" }) })
121375
121400
  ]
121376
121401
  }
121377
121402
  );
@@ -121385,9 +121410,9 @@ function ProviderEndpointSelectionDialog({
121385
121410
  padding: 1,
121386
121411
  width: "100%",
121387
121412
  children: [
121388
- /* @__PURE__ */ jsx27(Text29, { bold: true, color: Colors.AccentBlue, children: "Model Selection" }),
121389
- /* @__PURE__ */ jsx27(Box22, { marginTop: 1, children: /* @__PURE__ */ jsx27(Text29, { children: "Select a model or provider:" }) }),
121390
- /* @__PURE__ */ jsx27(Box22, { marginTop: 1, flexDirection: "column", children: endpoints.map((endpoint, index) => {
121413
+ /* @__PURE__ */ jsx28(Text29, { bold: true, color: Colors.AccentBlue, children: "Model Selection" }),
121414
+ /* @__PURE__ */ jsx28(Box22, { marginTop: 1, children: /* @__PURE__ */ jsx28(Text29, { children: "Select a model or provider:" }) }),
121415
+ /* @__PURE__ */ jsx28(Box22, { marginTop: 1, flexDirection: "column", children: endpoints.map((endpoint, index) => {
121391
121416
  const isSelected = index === selectedIndex;
121392
121417
  const prefix = isSelected ? ">" : " ";
121393
121418
  if (endpoint.type === "recent-model") {
@@ -121436,8 +121461,8 @@ function ProviderEndpointSelectionDialog({
121436
121461
  `${endpoint.label}-${index}`
121437
121462
  );
121438
121463
  }) }),
121439
- /* @__PURE__ */ jsx27(Box22, { marginTop: 1, children: /* @__PURE__ */ jsx27(Text29, { color: Colors.Gray, children: "\u25CF = Active model | Recent models listed first" }) }),
121440
- /* @__PURE__ */ jsx27(Box22, { marginTop: 1, children: /* @__PURE__ */ jsx27(Text29, { color: Colors.Gray, children: "\u2191/\u2193 to navigate, Enter to select, Esc to cancel" }) })
121464
+ /* @__PURE__ */ jsx28(Box22, { marginTop: 1, children: /* @__PURE__ */ jsx28(Text29, { color: Colors.Gray, children: "\u25CF = Active model | Recent models listed first" }) }),
121465
+ /* @__PURE__ */ jsx28(Box22, { marginTop: 1, children: /* @__PURE__ */ jsx28(Text29, { color: Colors.Gray, children: "\u2191/\u2193 to navigate, Enter to select, Esc to cancel" }) })
121441
121466
  ]
121442
121467
  }
121443
121468
  );
@@ -121447,7 +121472,7 @@ function ProviderEndpointSelectionDialog({
121447
121472
  import { useState as useState37, useEffect as useEffect35 } from "react";
121448
121473
  import { Box as Box23, Text as Text30, useInput as useInput6 } from "ink";
121449
121474
  init_modelManager();
121450
- import { jsx as jsx28, jsxs as jsxs26 } from "react/jsx-runtime";
121475
+ import { jsx as jsx29, jsxs as jsxs26 } from "react/jsx-runtime";
121451
121476
  function EnhancedModelSelectionDialog({
121452
121477
  providerType,
121453
121478
  endpointUrl,
@@ -121551,7 +121576,7 @@ function EnhancedModelSelectionDialog({
121551
121576
  "Model Selection - ",
121552
121577
  endpointLabel
121553
121578
  ] }),
121554
- /* @__PURE__ */ jsx28(Box23, { marginTop: 1, children: /* @__PURE__ */ jsx28(Text30, { children: "Loading models..." }) })
121579
+ /* @__PURE__ */ jsx29(Box23, { marginTop: 1, children: /* @__PURE__ */ jsx29(Text30, { children: "Loading models..." }) })
121555
121580
  ]
121556
121581
  }
121557
121582
  );
@@ -121566,8 +121591,8 @@ function EnhancedModelSelectionDialog({
121566
121591
  padding: 1,
121567
121592
  width: "100%",
121568
121593
  children: [
121569
- /* @__PURE__ */ jsx28(Text30, { bold: true, color: Colors.AccentBlue, children: "Switching Model" }),
121570
- /* @__PURE__ */ jsx28(Box23, { marginTop: 1, children: /* @__PURE__ */ jsxs26(Text30, { children: [
121594
+ /* @__PURE__ */ jsx29(Text30, { bold: true, color: Colors.AccentBlue, children: "Switching Model" }),
121595
+ /* @__PURE__ */ jsx29(Box23, { marginTop: 1, children: /* @__PURE__ */ jsxs26(Text30, { children: [
121571
121596
  "Activating ",
121572
121597
  models[selectedIndex].modelName,
121573
121598
  "..."
@@ -121586,9 +121611,9 @@ function EnhancedModelSelectionDialog({
121586
121611
  padding: 1,
121587
121612
  width: "100%",
121588
121613
  children: [
121589
- /* @__PURE__ */ jsx28(Text30, { bold: true, color: Colors.AccentRed, children: "Model Selection Error" }),
121590
- /* @__PURE__ */ jsx28(Box23, { marginTop: 1, children: /* @__PURE__ */ jsx28(Text30, { children: error }) }),
121591
- /* @__PURE__ */ jsx28(Box23, { marginTop: 1, children: /* @__PURE__ */ jsx28(Text30, { color: Colors.Gray, children: "Press Esc to go back" }) })
121614
+ /* @__PURE__ */ jsx29(Text30, { bold: true, color: Colors.AccentRed, children: "Model Selection Error" }),
121615
+ /* @__PURE__ */ jsx29(Box23, { marginTop: 1, children: /* @__PURE__ */ jsx29(Text30, { children: error }) }),
121616
+ /* @__PURE__ */ jsx29(Box23, { marginTop: 1, children: /* @__PURE__ */ jsx29(Text30, { color: Colors.Gray, children: "Press Esc to go back" }) })
121592
121617
  ]
121593
121618
  }
121594
121619
  );
@@ -121606,14 +121631,14 @@ function EnhancedModelSelectionDialog({
121606
121631
  "Model Selection - ",
121607
121632
  endpointLabel
121608
121633
  ] }),
121609
- /* @__PURE__ */ jsx28(Box23, { marginTop: 1, children: /* @__PURE__ */ jsx28(Text30, { children: "Choose a model:" }) }),
121610
- /* @__PURE__ */ jsx28(Box23, { marginTop: 1, flexDirection: "column", children: models.map((model, index) => {
121634
+ /* @__PURE__ */ jsx29(Box23, { marginTop: 1, children: /* @__PURE__ */ jsx29(Text30, { children: "Choose a model:" }) }),
121635
+ /* @__PURE__ */ jsx29(Box23, { marginTop: 1, flexDirection: "column", children: models.map((model, index) => {
121611
121636
  const isSelected = index === selectedIndex;
121612
121637
  const prefix = isSelected ? ">" : " ";
121613
121638
  const active = model.isActive ? "\u25CF " : "";
121614
121639
  const favorite = model.isFavorite ? "\u2605 " : "";
121615
121640
  const label = `${prefix} ${active}${favorite}${model.modelName}`;
121616
- return /* @__PURE__ */ jsx28(
121641
+ return /* @__PURE__ */ jsx29(
121617
121642
  Text30,
121618
121643
  {
121619
121644
  color: isSelected ? Colors.AccentBlue : Colors.Foreground,
@@ -121623,9 +121648,9 @@ function EnhancedModelSelectionDialog({
121623
121648
  model.id || index
121624
121649
  );
121625
121650
  }) }),
121626
- /* @__PURE__ */ jsx28(Box23, { marginTop: 1, children: /* @__PURE__ */ jsx28(Text30, { color: Colors.Gray, children: "\u25CF = Active \u2605 = Favorite" }) }),
121627
- /* @__PURE__ */ jsx28(Box23, { marginTop: 1, children: /* @__PURE__ */ jsx28(Text30, { color: Colors.Gray, children: "Enter to switch, F to toggle favorite, Esc to go back" }) }),
121628
- /* @__PURE__ */ jsx28(Box23, { marginTop: 1, children: /* @__PURE__ */ jsxs26(Text30, { color: Colors.Gray, children: [
121651
+ /* @__PURE__ */ jsx29(Box23, { marginTop: 1, children: /* @__PURE__ */ jsx29(Text30, { color: Colors.Gray, children: "\u25CF = Active \u2605 = Favorite" }) }),
121652
+ /* @__PURE__ */ jsx29(Box23, { marginTop: 1, children: /* @__PURE__ */ jsx29(Text30, { color: Colors.Gray, children: "Enter to switch, F to toggle favorite, Esc to go back" }) }),
121653
+ /* @__PURE__ */ jsx29(Box23, { marginTop: 1, children: /* @__PURE__ */ jsxs26(Text30, { color: Colors.Gray, children: [
121629
121654
  "Endpoint: ",
121630
121655
  endpointUrl || "default"
121631
121656
  ] }) })
@@ -121636,7 +121661,7 @@ function EnhancedModelSelectionDialog({
121636
121661
 
121637
121662
  // packages/cli/src/ui/components/WelcomeBackDialog.tsx
121638
121663
  import { Box as Box24, Text as Text31 } from "ink";
121639
- import { Fragment as Fragment5, jsx as jsx29, jsxs as jsxs27 } from "react/jsx-runtime";
121664
+ import { Fragment as Fragment5, jsx as jsx30, jsxs as jsxs27 } from "react/jsx-runtime";
121640
121665
  var WelcomeBackDialog = ({
121641
121666
  projectSummary,
121642
121667
  onContinue,
@@ -121736,31 +121761,31 @@ var WelcomeBackDialog = ({
121736
121761
  }
121737
121762
  };
121738
121763
  return /* @__PURE__ */ jsxs27(Box24, { flexDirection: "column", padding: 1, children: [
121739
- /* @__PURE__ */ jsx29(Box24, { marginBottom: 1, children: /* @__PURE__ */ jsx29(Text31, { bold: true, color: Colors.AccentPurple, children: "Welcome Back to FSS Link" }) }),
121764
+ /* @__PURE__ */ jsx30(Box24, { marginBottom: 1, children: /* @__PURE__ */ jsx30(Text31, { bold: true, color: Colors.AccentPurple, children: "Welcome Back to FSS Link" }) }),
121740
121765
  /* @__PURE__ */ jsxs27(Box24, { flexDirection: "column", marginBottom: 2, paddingX: 1, children: [
121741
- projectSummary.projectGoal && /* @__PURE__ */ jsx29(Box24, { marginBottom: 1, children: /* @__PURE__ */ jsxs27(Text31, { color: Colors.Foreground, children: [
121742
- /* @__PURE__ */ jsx29(Text31, { bold: true, children: "Project:" }),
121766
+ projectSummary.projectGoal && /* @__PURE__ */ jsx30(Box24, { marginBottom: 1, children: /* @__PURE__ */ jsxs27(Text31, { color: Colors.Foreground, children: [
121767
+ /* @__PURE__ */ jsx30(Text31, { bold: true, children: "Project:" }),
121743
121768
  " ",
121744
121769
  projectSummary.projectGoal
121745
121770
  ] }) }),
121746
121771
  /* @__PURE__ */ jsxs27(Box24, { flexDirection: "row", marginBottom: 1, children: [
121747
- /* @__PURE__ */ jsx29(Text31, { color: Colors.Gray, children: "Last worked: " }),
121748
- /* @__PURE__ */ jsx29(Text31, { color: Colors.Foreground, children: projectSummary.timeAgo })
121772
+ /* @__PURE__ */ jsx30(Text31, { color: Colors.Gray, children: "Last worked: " }),
121773
+ /* @__PURE__ */ jsx30(Text31, { color: Colors.Foreground, children: projectSummary.timeAgo })
121749
121774
  ] }),
121750
121775
  /* @__PURE__ */ jsxs27(Box24, { flexDirection: "row", marginBottom: 1, children: [
121751
- /* @__PURE__ */ jsx29(Text31, { color: Colors.Gray, children: "Sessions: " }),
121752
- /* @__PURE__ */ jsx29(Text31, { color: Colors.Foreground, children: projectSummary.totalSessions }),
121776
+ /* @__PURE__ */ jsx30(Text31, { color: Colors.Gray, children: "Sessions: " }),
121777
+ /* @__PURE__ */ jsx30(Text31, { color: Colors.Foreground, children: projectSummary.totalSessions }),
121753
121778
  projectSummary.activeSessions > 0 && /* @__PURE__ */ jsxs27(Fragment5, { children: [
121754
- /* @__PURE__ */ jsx29(Text31, { color: Colors.Gray, children: " (" }),
121779
+ /* @__PURE__ */ jsx30(Text31, { color: Colors.Gray, children: " (" }),
121755
121780
  /* @__PURE__ */ jsxs27(Text31, { color: Colors.AccentGreen, children: [
121756
121781
  projectSummary.activeSessions,
121757
121782
  " active"
121758
121783
  ] }),
121759
- /* @__PURE__ */ jsx29(Text31, { color: Colors.Gray, children: ")" })
121784
+ /* @__PURE__ */ jsx30(Text31, { color: Colors.Gray, children: ")" })
121760
121785
  ] })
121761
121786
  ] }),
121762
121787
  /* @__PURE__ */ jsxs27(Box24, { flexDirection: "row", marginBottom: 1, children: [
121763
- /* @__PURE__ */ jsx29(Text31, { color: Colors.Gray, children: "Momentum: " }),
121788
+ /* @__PURE__ */ jsx30(Text31, { color: Colors.Gray, children: "Momentum: " }),
121764
121789
  /* @__PURE__ */ jsxs27(Text31, { color: getMomentumColor(projectSummary.momentum), children: [
121765
121790
  getMomentumEmoji(projectSummary.momentum),
121766
121791
  " ",
@@ -121769,8 +121794,8 @@ var WelcomeBackDialog = ({
121769
121794
  ] }),
121770
121795
  projectSummary.gitStatus && /* @__PURE__ */ jsxs27(Box24, { flexDirection: "column", marginBottom: 1, children: [
121771
121796
  /* @__PURE__ */ jsxs27(Box24, { flexDirection: "row", marginBottom: 1, children: [
121772
- /* @__PURE__ */ jsx29(Text31, { color: Colors.Gray, children: "Branch: " }),
121773
- /* @__PURE__ */ jsx29(Text31, { color: Colors.AccentBlue, children: projectSummary.gitStatus.branch }),
121797
+ /* @__PURE__ */ jsx30(Text31, { color: Colors.Gray, children: "Branch: " }),
121798
+ /* @__PURE__ */ jsx30(Text31, { color: Colors.AccentBlue, children: projectSummary.gitStatus.branch }),
121774
121799
  (projectSummary.gitStatus.ahead || projectSummary.gitStatus.behind) && /* @__PURE__ */ jsxs27(Text31, { color: Colors.Gray, children: [
121775
121800
  " ",
121776
121801
  "[",
@@ -121781,19 +121806,19 @@ var WelcomeBackDialog = ({
121781
121806
  ] })
121782
121807
  ] }),
121783
121808
  projectSummary.gitStatus.hasChanges && /* @__PURE__ */ jsxs27(Box24, { flexDirection: "row", marginBottom: 1, children: [
121784
- /* @__PURE__ */ jsx29(Text31, { color: Colors.Gray, children: "Changes: " }),
121809
+ /* @__PURE__ */ jsx30(Text31, { color: Colors.Gray, children: "Changes: " }),
121785
121810
  projectSummary.gitStatus.stagedFiles > 0 && /* @__PURE__ */ jsxs27(Text31, { color: Colors.AccentGreen, children: [
121786
121811
  projectSummary.gitStatus.stagedFiles,
121787
121812
  " staged"
121788
121813
  ] }),
121789
- projectSummary.gitStatus.stagedFiles > 0 && projectSummary.gitStatus.unstagedFiles > 0 && /* @__PURE__ */ jsx29(Text31, { color: Colors.Gray, children: ", " }),
121814
+ projectSummary.gitStatus.stagedFiles > 0 && projectSummary.gitStatus.unstagedFiles > 0 && /* @__PURE__ */ jsx30(Text31, { color: Colors.Gray, children: ", " }),
121790
121815
  projectSummary.gitStatus.unstagedFiles > 0 && /* @__PURE__ */ jsxs27(Text31, { color: Colors.AccentYellow, children: [
121791
121816
  projectSummary.gitStatus.unstagedFiles,
121792
121817
  " unstaged"
121793
121818
  ] })
121794
121819
  ] }),
121795
121820
  projectSummary.gitStatus.lastCommitMessage && /* @__PURE__ */ jsxs27(Box24, { flexDirection: "row", marginBottom: 1, children: [
121796
- /* @__PURE__ */ jsx29(Text31, { color: Colors.Gray, children: "Last commit: " }),
121821
+ /* @__PURE__ */ jsx30(Text31, { color: Colors.Gray, children: "Last commit: " }),
121797
121822
  /* @__PURE__ */ jsxs27(Text31, { color: Colors.Foreground, children: [
121798
121823
  projectSummary.gitStatus.lastCommitHash,
121799
121824
  ' "',
@@ -121803,34 +121828,34 @@ var WelcomeBackDialog = ({
121803
121828
  ] })
121804
121829
  ] }),
121805
121830
  (projectSummary.efficiency || projectSummary.recentActivity || projectSummary.tokenEfficiency) && /* @__PURE__ */ jsxs27(Box24, { flexDirection: "column", marginBottom: 1, paddingY: 1, borderStyle: "single", borderColor: Colors.Gray, children: [
121806
- /* @__PURE__ */ jsx29(Box24, { marginBottom: 1, children: /* @__PURE__ */ jsx29(Text31, { bold: true, color: Colors.AccentPurple, children: "Quick Status" }) }),
121807
- projectSummary.efficiency && /* @__PURE__ */ jsx29(Box24, { flexDirection: "row", marginBottom: 1, children: /* @__PURE__ */ jsxs27(Text31, { color: getEfficiencyColor(projectSummary.efficiency), children: [
121831
+ /* @__PURE__ */ jsx30(Box24, { marginBottom: 1, children: /* @__PURE__ */ jsx30(Text31, { bold: true, color: Colors.AccentPurple, children: "Quick Status" }) }),
121832
+ projectSummary.efficiency && /* @__PURE__ */ jsx30(Box24, { flexDirection: "row", marginBottom: 1, children: /* @__PURE__ */ jsxs27(Text31, { color: getEfficiencyColor(projectSummary.efficiency), children: [
121808
121833
  getEfficiencyEmoji(projectSummary.efficiency),
121809
121834
  " ",
121810
121835
  projectSummary.efficiency,
121811
121836
  " efficiency"
121812
121837
  ] }) }),
121813
- projectSummary.recentActivity && /* @__PURE__ */ jsx29(Box24, { marginBottom: 1, children: /* @__PURE__ */ jsx29(Text31, { color: Colors.Foreground, children: projectSummary.recentActivity }) }),
121814
- projectSummary.tokenEfficiency && /* @__PURE__ */ jsx29(Box24, { children: /* @__PURE__ */ jsx29(Text31, { color: Colors.Gray, children: projectSummary.tokenEfficiency }) })
121838
+ projectSummary.recentActivity && /* @__PURE__ */ jsx30(Box24, { marginBottom: 1, children: /* @__PURE__ */ jsx30(Text31, { color: Colors.Foreground, children: projectSummary.recentActivity }) }),
121839
+ projectSummary.tokenEfficiency && /* @__PURE__ */ jsx30(Box24, { children: /* @__PURE__ */ jsx30(Text31, { color: Colors.Gray, children: projectSummary.tokenEfficiency }) })
121815
121840
  ] }),
121816
- projectSummary.nextSuggestion && /* @__PURE__ */ jsx29(Box24, { marginBottom: 1, children: /* @__PURE__ */ jsxs27(Text31, { color: Colors.AccentPurple, children: [
121841
+ projectSummary.nextSuggestion && /* @__PURE__ */ jsx30(Box24, { marginBottom: 1, children: /* @__PURE__ */ jsxs27(Text31, { color: Colors.AccentPurple, children: [
121817
121842
  "\u{1F4A1} ",
121818
121843
  projectSummary.nextSuggestion
121819
121844
  ] }) }),
121820
- projectSummary.lastContent && /* @__PURE__ */ jsx29(Box24, { marginBottom: 1, children: /* @__PURE__ */ jsxs27(Text31, { color: Colors.Gray, children: [
121845
+ projectSummary.lastContent && /* @__PURE__ */ jsx30(Box24, { marginBottom: 1, children: /* @__PURE__ */ jsxs27(Text31, { color: Colors.Gray, children: [
121821
121846
  'Last message: "',
121822
121847
  projectSummary.lastContent,
121823
121848
  '"'
121824
121849
  ] }) })
121825
121850
  ] }),
121826
- /* @__PURE__ */ jsx29(
121851
+ /* @__PURE__ */ jsx30(
121827
121852
  RadioButtonSelect,
121828
121853
  {
121829
121854
  items,
121830
121855
  onSelect: handleSelection
121831
121856
  }
121832
121857
  ),
121833
- /* @__PURE__ */ jsx29(Box24, { marginTop: 1, paddingX: 1, children: /* @__PURE__ */ jsx29(Text31, { color: Colors.Gray, children: "Press C to continue, R to restart, Q to cancel, or use \u2191\u2193 arrows" }) })
121858
+ /* @__PURE__ */ jsx30(Box24, { marginTop: 1, paddingX: 1, children: /* @__PURE__ */ jsx30(Text31, { color: Colors.Gray, children: "Press C to continue, R to restart, Q to cancel, or use \u2191\u2193 arrows" }) })
121834
121859
  ] });
121835
121860
  };
121836
121861
 
@@ -121838,7 +121863,7 @@ var WelcomeBackDialog = ({
121838
121863
  import { useState as useState38, useEffect as useEffect36 } from "react";
121839
121864
  import { Box as Box25, Text as Text32, useInput as useInput7 } from "ink";
121840
121865
  init_database();
121841
- import { jsx as jsx30, jsxs as jsxs28 } from "react/jsx-runtime";
121866
+ import { jsx as jsx31, jsxs as jsxs28 } from "react/jsx-runtime";
121842
121867
  function SearchEngineConfigDialog({
121843
121868
  onSubmit,
121844
121869
  onCancel
@@ -121996,7 +122021,7 @@ function SearchEngineConfigDialog({
121996
122021
  }
121997
122022
  });
121998
122023
  if (isLoading) {
121999
- return /* @__PURE__ */ jsx30(
122024
+ return /* @__PURE__ */ jsx31(
122000
122025
  Box25,
122001
122026
  {
122002
122027
  borderStyle: "round",
@@ -122004,7 +122029,7 @@ function SearchEngineConfigDialog({
122004
122029
  flexDirection: "column",
122005
122030
  padding: 1,
122006
122031
  width: "100%",
122007
- children: /* @__PURE__ */ jsx30(Text32, { children: "Loading search engine configuration..." })
122032
+ children: /* @__PURE__ */ jsx31(Text32, { children: "Loading search engine configuration..." })
122008
122033
  }
122009
122034
  );
122010
122035
  }
@@ -122018,8 +122043,8 @@ function SearchEngineConfigDialog({
122018
122043
  padding: 1,
122019
122044
  width: "100%",
122020
122045
  children: [
122021
- /* @__PURE__ */ jsx30(Text32, { bold: true, color: Colors.AccentGreen, children: "\u{1F4BE} Saving API keys to database..." }),
122022
- /* @__PURE__ */ jsx30(Box25, { marginTop: 1, children: /* @__PURE__ */ jsx30(Text32, { color: Colors.Gray, children: "Please wait while your search engine configuration is saved." }) })
122046
+ /* @__PURE__ */ jsx31(Text32, { bold: true, color: Colors.AccentGreen, children: "\u{1F4BE} Saving API keys to database..." }),
122047
+ /* @__PURE__ */ jsx31(Box25, { marginTop: 1, children: /* @__PURE__ */ jsx31(Text32, { color: Colors.Gray, children: "Please wait while your search engine configuration is saved." }) })
122023
122048
  ]
122024
122049
  }
122025
122050
  );
@@ -122033,59 +122058,59 @@ function SearchEngineConfigDialog({
122033
122058
  padding: 1,
122034
122059
  width: "100%",
122035
122060
  children: [
122036
- /* @__PURE__ */ jsx30(Text32, { bold: true, color: Colors.AccentPurple, children: "Search Engine Configuration" }),
122037
- /* @__PURE__ */ jsx30(Box25, { marginTop: 1, children: /* @__PURE__ */ jsx30(Text32, { children: "Configure search engine APIs for web research. You need at least one API key." }) }),
122038
- /* @__PURE__ */ jsx30(Box25, { marginTop: 1, children: /* @__PURE__ */ jsx30(Text32, { bold: true, color: Colors.AccentBlue, children: "Brave Search (General Web Search)" }) }),
122039
- /* @__PURE__ */ jsx30(Box25, { marginTop: 1, children: /* @__PURE__ */ jsxs28(Text32, { color: Colors.Gray, children: [
122061
+ /* @__PURE__ */ jsx31(Text32, { bold: true, color: Colors.AccentPurple, children: "Search Engine Configuration" }),
122062
+ /* @__PURE__ */ jsx31(Box25, { marginTop: 1, children: /* @__PURE__ */ jsx31(Text32, { children: "Configure search engine APIs for web research. You need at least one API key." }) }),
122063
+ /* @__PURE__ */ jsx31(Box25, { marginTop: 1, children: /* @__PURE__ */ jsx31(Text32, { bold: true, color: Colors.AccentBlue, children: "Brave Search (General Web Search)" }) }),
122064
+ /* @__PURE__ */ jsx31(Box25, { marginTop: 1, children: /* @__PURE__ */ jsxs28(Text32, { color: Colors.Gray, children: [
122040
122065
  "Get API key: ",
122041
- /* @__PURE__ */ jsx30(Text32, { color: Colors.AccentBlue, children: "https://api.search.brave.com/" })
122066
+ /* @__PURE__ */ jsx31(Text32, { color: Colors.AccentBlue, children: "https://api.search.brave.com/" })
122042
122067
  ] }) }),
122043
122068
  /* @__PURE__ */ jsxs28(Box25, { marginTop: 1, flexDirection: "row", children: [
122044
- /* @__PURE__ */ jsx30(Box25, { width: 14, children: /* @__PURE__ */ jsx30(
122069
+ /* @__PURE__ */ jsx31(Box25, { width: 14, children: /* @__PURE__ */ jsx31(
122045
122070
  Text32,
122046
122071
  {
122047
122072
  color: currentField === "braveApiKey" ? Colors.AccentPurple : Colors.Gray,
122048
122073
  children: "Brave API Key:"
122049
122074
  }
122050
122075
  ) }),
122051
- /* @__PURE__ */ jsx30(Box25, { flexGrow: 1, children: /* @__PURE__ */ jsxs28(Text32, { children: [
122076
+ /* @__PURE__ */ jsx31(Box25, { flexGrow: 1, children: /* @__PURE__ */ jsxs28(Text32, { children: [
122052
122077
  currentField === "braveApiKey" ? "> " : " ",
122053
122078
  braveApiKey ? "\u2022".repeat(Math.min(braveApiKey.length, 20)) + (braveApiKey.length > 20 ? "..." : "") : "optional"
122054
122079
  ] }) })
122055
122080
  ] }),
122056
- /* @__PURE__ */ jsx30(Box25, { marginTop: 1, children: /* @__PURE__ */ jsx30(Text32, { bold: true, color: Colors.AccentBlue, children: "Tavily Search (Research Focus)" }) }),
122057
- /* @__PURE__ */ jsx30(Box25, { marginTop: 1, children: /* @__PURE__ */ jsxs28(Text32, { color: Colors.Gray, children: [
122081
+ /* @__PURE__ */ jsx31(Box25, { marginTop: 1, children: /* @__PURE__ */ jsx31(Text32, { bold: true, color: Colors.AccentBlue, children: "Tavily Search (Research Focus)" }) }),
122082
+ /* @__PURE__ */ jsx31(Box25, { marginTop: 1, children: /* @__PURE__ */ jsxs28(Text32, { color: Colors.Gray, children: [
122058
122083
  "Get API key: ",
122059
- /* @__PURE__ */ jsx30(Text32, { color: Colors.AccentBlue, children: "https://tavily.com/" })
122084
+ /* @__PURE__ */ jsx31(Text32, { color: Colors.AccentBlue, children: "https://tavily.com/" })
122060
122085
  ] }) }),
122061
122086
  /* @__PURE__ */ jsxs28(Box25, { marginTop: 1, flexDirection: "row", children: [
122062
- /* @__PURE__ */ jsx30(Box25, { width: 14, children: /* @__PURE__ */ jsx30(
122087
+ /* @__PURE__ */ jsx31(Box25, { width: 14, children: /* @__PURE__ */ jsx31(
122063
122088
  Text32,
122064
122089
  {
122065
122090
  color: currentField === "tavilyApiKey" ? Colors.AccentPurple : Colors.Gray,
122066
122091
  children: "Tavily API Key:"
122067
122092
  }
122068
122093
  ) }),
122069
- /* @__PURE__ */ jsx30(Box25, { flexGrow: 1, children: /* @__PURE__ */ jsxs28(Text32, { children: [
122094
+ /* @__PURE__ */ jsx31(Box25, { flexGrow: 1, children: /* @__PURE__ */ jsxs28(Text32, { children: [
122070
122095
  currentField === "tavilyApiKey" ? "> " : " ",
122071
122096
  tavilyApiKey ? "\u2022".repeat(Math.min(tavilyApiKey.length, 20)) + (tavilyApiKey.length > 20 ? "..." : "") : "optional"
122072
122097
  ] }) })
122073
122098
  ] }),
122074
122099
  /* @__PURE__ */ jsxs28(Box25, { marginTop: 1, flexDirection: "row", children: [
122075
- /* @__PURE__ */ jsx30(Box25, { width: 14, children: /* @__PURE__ */ jsx30(
122100
+ /* @__PURE__ */ jsx31(Box25, { width: 14, children: /* @__PURE__ */ jsx31(
122076
122101
  Text32,
122077
122102
  {
122078
122103
  color: currentField === "submit" ? Colors.AccentGreen : Colors.Gray,
122079
122104
  children: "Ready:"
122080
122105
  }
122081
122106
  ) }),
122082
- /* @__PURE__ */ jsx30(Box25, { flexGrow: 1, children: /* @__PURE__ */ jsxs28(Text32, { color: currentField === "submit" ? Colors.AccentGreen : Colors.Gray, children: [
122107
+ /* @__PURE__ */ jsx31(Box25, { flexGrow: 1, children: /* @__PURE__ */ jsxs28(Text32, { color: currentField === "submit" ? Colors.AccentGreen : Colors.Gray, children: [
122083
122108
  currentField === "submit" ? "> " : " ",
122084
122109
  "Save & Continue"
122085
122110
  ] }) })
122086
122111
  ] }),
122087
- /* @__PURE__ */ jsx30(Box25, { marginTop: 1, children: /* @__PURE__ */ jsx30(Text32, { color: Colors.Gray, children: "Press Enter to continue, Tab/\u2191\u2193 to navigate, Esc to cancel" }) }),
122088
- !braveApiKey && !tavilyApiKey && /* @__PURE__ */ jsx30(Box25, { marginTop: 1, children: /* @__PURE__ */ jsx30(Text32, { color: Colors.AccentYellow, children: "\u26A0\uFE0F At least one API key is required for search functionality" }) })
122112
+ /* @__PURE__ */ jsx31(Box25, { marginTop: 1, children: /* @__PURE__ */ jsx31(Text32, { color: Colors.Gray, children: "Press Enter to continue, Tab/\u2191\u2193 to navigate, Esc to cancel" }) }),
122113
+ !braveApiKey && !tavilyApiKey && /* @__PURE__ */ jsx31(Box25, { marginTop: 1, children: /* @__PURE__ */ jsx31(Text32, { color: Colors.AccentYellow, children: "\u26A0\uFE0F At least one API key is required for search functionality" }) })
122089
122114
  ]
122090
122115
  }
122091
122116
  );
@@ -122095,7 +122120,7 @@ function SearchEngineConfigDialog({
122095
122120
  import { useState as useState39, useEffect as useEffect37 } from "react";
122096
122121
  import { Box as Box26, Text as Text33 } from "ink";
122097
122122
  import Spinner2 from "ink-spinner";
122098
- import { jsx as jsx31, jsxs as jsxs29 } from "react/jsx-runtime";
122123
+ import { jsx as jsx32, jsxs as jsxs29 } from "react/jsx-runtime";
122099
122124
  function AuthInProgress({
122100
122125
  onTimeout
122101
122126
  }) {
@@ -122115,7 +122140,7 @@ function AuthInProgress({
122115
122140
  }, 18e4);
122116
122141
  return () => clearTimeout(timer);
122117
122142
  }, [onTimeout]);
122118
- return /* @__PURE__ */ jsx31(
122143
+ return /* @__PURE__ */ jsx32(
122119
122144
  Box26,
122120
122145
  {
122121
122146
  borderStyle: "round",
@@ -122123,8 +122148,8 @@ function AuthInProgress({
122123
122148
  flexDirection: "column",
122124
122149
  padding: 1,
122125
122150
  width: "100%",
122126
- children: timedOut ? /* @__PURE__ */ jsx31(Text33, { color: Colors.AccentRed, children: "Authentication timed out. Please try again." }) : /* @__PURE__ */ jsx31(Box26, { children: /* @__PURE__ */ jsxs29(Text33, { children: [
122127
- /* @__PURE__ */ jsx31(Spinner2, { type: "dots" }),
122151
+ children: timedOut ? /* @__PURE__ */ jsx32(Text33, { color: Colors.AccentRed, children: "Authentication timed out. Please try again." }) : /* @__PURE__ */ jsx32(Box26, { children: /* @__PURE__ */ jsxs29(Text33, { children: [
122152
+ /* @__PURE__ */ jsx32(Spinner2, { type: "dots" }),
122128
122153
  " Waiting for auth... (Press ESC or CTRL+C to cancel)"
122129
122154
  ] }) })
122130
122155
  }
@@ -122181,7 +122206,7 @@ var editorSettingsManager = new EditorSettingsManager();
122181
122206
  // packages/cli/src/ui/components/EditorSettingsDialog.tsx
122182
122207
  init_settings();
122183
122208
  init_dist2();
122184
- import { jsx as jsx32, jsxs as jsxs30 } from "react/jsx-runtime";
122209
+ import { jsx as jsx33, jsxs as jsxs30 } from "react/jsx-runtime";
122185
122210
  function EditorSettingsDialog({
122186
122211
  onSelect,
122187
122212
  settings,
@@ -122251,9 +122276,9 @@ function EditorSettingsDialog({
122251
122276
  focusedSection === "editor" ? "> " : " ",
122252
122277
  "Select Editor",
122253
122278
  " ",
122254
- /* @__PURE__ */ jsx32(Text34, { color: Colors.Gray, children: otherScopeModifiedMessage })
122279
+ /* @__PURE__ */ jsx33(Text34, { color: Colors.Gray, children: otherScopeModifiedMessage })
122255
122280
  ] }),
122256
- /* @__PURE__ */ jsx32(
122281
+ /* @__PURE__ */ jsx33(
122257
122282
  RadioButtonSelect,
122258
122283
  {
122259
122284
  items: editorItems.map((item) => ({
@@ -122272,7 +122297,7 @@ function EditorSettingsDialog({
122272
122297
  focusedSection === "scope" ? "> " : " ",
122273
122298
  "Apply To"
122274
122299
  ] }),
122275
- /* @__PURE__ */ jsx32(
122300
+ /* @__PURE__ */ jsx33(
122276
122301
  RadioButtonSelect,
122277
122302
  {
122278
122303
  items: scopeItems,
@@ -122282,16 +122307,16 @@ function EditorSettingsDialog({
122282
122307
  }
122283
122308
  )
122284
122309
  ] }),
122285
- /* @__PURE__ */ jsx32(Box27, { marginTop: 1, children: /* @__PURE__ */ jsx32(Text34, { color: Colors.Gray, children: "(Use Enter to select, Tab to change focus)" }) })
122310
+ /* @__PURE__ */ jsx33(Box27, { marginTop: 1, children: /* @__PURE__ */ jsx33(Text34, { color: Colors.Gray, children: "(Use Enter to select, Tab to change focus)" }) })
122286
122311
  ] }),
122287
122312
  /* @__PURE__ */ jsxs30(Box27, { flexDirection: "column", width: "55%", paddingLeft: 2, children: [
122288
- /* @__PURE__ */ jsx32(Text34, { bold: true, children: "Editor Preference" }),
122313
+ /* @__PURE__ */ jsx33(Text34, { bold: true, children: "Editor Preference" }),
122289
122314
  /* @__PURE__ */ jsxs30(Box27, { flexDirection: "column", gap: 1, marginTop: 1, children: [
122290
- /* @__PURE__ */ jsx32(Text34, { color: Colors.Gray, children: "These editors are currently supported. Please note that some editors cannot be used in sandbox mode." }),
122315
+ /* @__PURE__ */ jsx33(Text34, { color: Colors.Gray, children: "These editors are currently supported. Please note that some editors cannot be used in sandbox mode." }),
122291
122316
  /* @__PURE__ */ jsxs30(Text34, { color: Colors.Gray, children: [
122292
122317
  "Your preferred editor is:",
122293
122318
  " ",
122294
- /* @__PURE__ */ jsx32(
122319
+ /* @__PURE__ */ jsx33(
122295
122320
  Text34,
122296
122321
  {
122297
122322
  color: mergedEditorName === "None" ? Colors.AccentRed : Colors.AccentCyan,
@@ -122315,7 +122340,7 @@ import { Box as Box28, Text as Text36 } from "ink";
122315
122340
  // packages/cli/src/ui/utils/InlineMarkdownRenderer.tsx
122316
122341
  import React24 from "react";
122317
122342
  import { Text as Text35 } from "ink";
122318
- import { Fragment as Fragment6, jsx as jsx33, jsxs as jsxs31 } from "react/jsx-runtime";
122343
+ import { Fragment as Fragment6, jsx as jsx34, jsxs as jsxs31 } from "react/jsx-runtime";
122319
122344
  var BOLD_MARKER_LENGTH = 2;
122320
122345
  var ITALIC_MARKER_LENGTH = 1;
122321
122346
  var STRIKETHROUGH_MARKER_LENGTH = 2;
@@ -122324,7 +122349,7 @@ var UNDERLINE_TAG_START_LENGTH = 3;
122324
122349
  var UNDERLINE_TAG_END_LENGTH = 4;
122325
122350
  var RenderInlineInternal = ({ text }) => {
122326
122351
  if (!/[*_~`<[https?:]/.test(text)) {
122327
- return /* @__PURE__ */ jsx33(Text35, { children: text });
122352
+ return /* @__PURE__ */ jsx34(Text35, { children: text });
122328
122353
  }
122329
122354
  const nodes = [];
122330
122355
  let lastIndex = 0;
@@ -122333,7 +122358,7 @@ var RenderInlineInternal = ({ text }) => {
122333
122358
  while ((match2 = inlineRegex.exec(text)) !== null) {
122334
122359
  if (match2.index > lastIndex) {
122335
122360
  nodes.push(
122336
- /* @__PURE__ */ jsx33(Text35, { children: text.slice(lastIndex, match2.index) }, `t-${lastIndex}`)
122361
+ /* @__PURE__ */ jsx34(Text35, { children: text.slice(lastIndex, match2.index) }, `t-${lastIndex}`)
122337
122362
  );
122338
122363
  }
122339
122364
  const fullMatch = match2[0];
@@ -122341,22 +122366,22 @@ var RenderInlineInternal = ({ text }) => {
122341
122366
  const key = `m-${match2.index}`;
122342
122367
  try {
122343
122368
  if (fullMatch.startsWith("**") && fullMatch.endsWith("**") && fullMatch.length > BOLD_MARKER_LENGTH * 2) {
122344
- renderedNode = /* @__PURE__ */ jsx33(Text35, { bold: true, children: fullMatch.slice(BOLD_MARKER_LENGTH, -BOLD_MARKER_LENGTH) }, key);
122369
+ renderedNode = /* @__PURE__ */ jsx34(Text35, { bold: true, children: fullMatch.slice(BOLD_MARKER_LENGTH, -BOLD_MARKER_LENGTH) }, key);
122345
122370
  } else if (fullMatch.length > ITALIC_MARKER_LENGTH * 2 && (fullMatch.startsWith("*") && fullMatch.endsWith("*") || fullMatch.startsWith("_") && fullMatch.endsWith("_")) && !/\w/.test(text.substring(match2.index - 1, match2.index)) && !/\w/.test(
122346
122371
  text.substring(inlineRegex.lastIndex, inlineRegex.lastIndex + 1)
122347
122372
  ) && !/\S[./\\]/.test(text.substring(match2.index - 2, match2.index)) && !/[./\\]\S/.test(
122348
122373
  text.substring(inlineRegex.lastIndex, inlineRegex.lastIndex + 2)
122349
122374
  )) {
122350
- renderedNode = /* @__PURE__ */ jsx33(Text35, { italic: true, children: fullMatch.slice(ITALIC_MARKER_LENGTH, -ITALIC_MARKER_LENGTH) }, key);
122375
+ renderedNode = /* @__PURE__ */ jsx34(Text35, { italic: true, children: fullMatch.slice(ITALIC_MARKER_LENGTH, -ITALIC_MARKER_LENGTH) }, key);
122351
122376
  } else if (fullMatch.startsWith("~~") && fullMatch.endsWith("~~") && fullMatch.length > STRIKETHROUGH_MARKER_LENGTH * 2) {
122352
- renderedNode = /* @__PURE__ */ jsx33(Text35, { strikethrough: true, children: fullMatch.slice(
122377
+ renderedNode = /* @__PURE__ */ jsx34(Text35, { strikethrough: true, children: fullMatch.slice(
122353
122378
  STRIKETHROUGH_MARKER_LENGTH,
122354
122379
  -STRIKETHROUGH_MARKER_LENGTH
122355
122380
  ) }, key);
122356
122381
  } else if (fullMatch.startsWith("`") && fullMatch.endsWith("`") && fullMatch.length > INLINE_CODE_MARKER_LENGTH) {
122357
122382
  const codeMatch = fullMatch.match(/^(`+)(.+?)\1$/s);
122358
122383
  if (codeMatch && codeMatch[2]) {
122359
- renderedNode = /* @__PURE__ */ jsx33(Text35, { color: Colors.AccentPurple, children: codeMatch[2] }, key);
122384
+ renderedNode = /* @__PURE__ */ jsx34(Text35, { color: Colors.AccentPurple, children: codeMatch[2] }, key);
122360
122385
  }
122361
122386
  } else if (fullMatch.startsWith("[") && fullMatch.includes("](") && fullMatch.endsWith(")")) {
122362
122387
  const linkMatch = fullMatch.match(/\[(.*?)\]\((.*?)\)/);
@@ -122373,24 +122398,24 @@ var RenderInlineInternal = ({ text }) => {
122373
122398
  ] }, key);
122374
122399
  }
122375
122400
  } else if (fullMatch.startsWith("<u>") && fullMatch.endsWith("</u>") && fullMatch.length > UNDERLINE_TAG_START_LENGTH + UNDERLINE_TAG_END_LENGTH - 1) {
122376
- renderedNode = /* @__PURE__ */ jsx33(Text35, { underline: true, children: fullMatch.slice(
122401
+ renderedNode = /* @__PURE__ */ jsx34(Text35, { underline: true, children: fullMatch.slice(
122377
122402
  UNDERLINE_TAG_START_LENGTH,
122378
122403
  -UNDERLINE_TAG_END_LENGTH
122379
122404
  ) }, key);
122380
122405
  } else if (fullMatch.match(/^https?:\/\//)) {
122381
- renderedNode = /* @__PURE__ */ jsx33(Text35, { color: Colors.AccentBlue, children: fullMatch }, key);
122406
+ renderedNode = /* @__PURE__ */ jsx34(Text35, { color: Colors.AccentBlue, children: fullMatch }, key);
122382
122407
  }
122383
122408
  } catch (e2) {
122384
122409
  console.error("Error parsing inline markdown part:", fullMatch, e2);
122385
122410
  renderedNode = null;
122386
122411
  }
122387
- nodes.push(renderedNode ?? /* @__PURE__ */ jsx33(Text35, { children: fullMatch }, key));
122412
+ nodes.push(renderedNode ?? /* @__PURE__ */ jsx34(Text35, { children: fullMatch }, key));
122388
122413
  lastIndex = inlineRegex.lastIndex;
122389
122414
  }
122390
122415
  if (lastIndex < text.length) {
122391
- nodes.push(/* @__PURE__ */ jsx33(Text35, { children: text.slice(lastIndex) }, `t-${lastIndex}`));
122416
+ nodes.push(/* @__PURE__ */ jsx34(Text35, { children: text.slice(lastIndex) }, `t-${lastIndex}`));
122392
122417
  }
122393
- return /* @__PURE__ */ jsx33(Fragment6, { children: nodes.filter((node) => node !== null) });
122418
+ return /* @__PURE__ */ jsx34(Fragment6, { children: nodes.filter((node) => node !== null) });
122394
122419
  };
122395
122420
  var RenderInline = React24.memo(RenderInlineInternal);
122396
122421
  var getPlainTextLength = (text) => {
@@ -122399,7 +122424,7 @@ var getPlainTextLength = (text) => {
122399
122424
  };
122400
122425
 
122401
122426
  // packages/cli/src/ui/components/ShellConfirmationDialog.tsx
122402
- import { jsx as jsx34, jsxs as jsxs32 } from "react/jsx-runtime";
122427
+ import { jsx as jsx35, jsxs as jsxs32 } from "react/jsx-runtime";
122403
122428
  var ShellConfirmationDialog = ({ request: request2 }) => {
122404
122429
  const { commands, onConfirm } = request2;
122405
122430
  useKeypress(
@@ -122442,9 +122467,9 @@ var ShellConfirmationDialog = ({ request: request2 }) => {
122442
122467
  marginLeft: 1,
122443
122468
  children: [
122444
122469
  /* @__PURE__ */ jsxs32(Box28, { flexDirection: "column", marginBottom: 1, children: [
122445
- /* @__PURE__ */ jsx34(Text36, { bold: true, children: "Shell Command Execution" }),
122446
- /* @__PURE__ */ jsx34(Text36, { children: "A custom command wants to run the following shell commands:" }),
122447
- /* @__PURE__ */ jsx34(
122470
+ /* @__PURE__ */ jsx35(Text36, { bold: true, children: "Shell Command Execution" }),
122471
+ /* @__PURE__ */ jsx35(Text36, { children: "A custom command wants to run the following shell commands:" }),
122472
+ /* @__PURE__ */ jsx35(
122448
122473
  Box28,
122449
122474
  {
122450
122475
  flexDirection: "column",
@@ -122452,12 +122477,12 @@ var ShellConfirmationDialog = ({ request: request2 }) => {
122452
122477
  borderColor: Colors.Gray,
122453
122478
  paddingX: 1,
122454
122479
  marginTop: 1,
122455
- children: commands.map((cmd) => /* @__PURE__ */ jsx34(Text36, { color: Colors.AccentCyan, children: /* @__PURE__ */ jsx34(RenderInline, { text: cmd }) }, cmd))
122480
+ children: commands.map((cmd) => /* @__PURE__ */ jsx35(Text36, { color: Colors.AccentCyan, children: /* @__PURE__ */ jsx35(RenderInline, { text: cmd }) }, cmd))
122456
122481
  }
122457
122482
  )
122458
122483
  ] }),
122459
- /* @__PURE__ */ jsx34(Box28, { marginBottom: 1, children: /* @__PURE__ */ jsx34(Text36, { children: "Do you want to proceed?" }) }),
122460
- /* @__PURE__ */ jsx34(RadioButtonSelect, { items: options2, onSelect: handleSelect, isFocused: true })
122484
+ /* @__PURE__ */ jsx35(Box28, { marginBottom: 1, children: /* @__PURE__ */ jsx35(Text36, { children: "Do you want to proceed?" }) }),
122485
+ /* @__PURE__ */ jsx35(RadioButtonSelect, { items: options2, onSelect: handleSelect, isFocused: true })
122461
122486
  ]
122462
122487
  }
122463
122488
  );
@@ -123510,24 +123535,24 @@ init_database();
123510
123535
 
123511
123536
  // packages/cli/src/ui/components/Tips.tsx
123512
123537
  import { Box as Box29, Text as Text37 } from "ink";
123513
- import { jsx as jsx35, jsxs as jsxs33 } from "react/jsx-runtime";
123538
+ import { jsx as jsx36, jsxs as jsxs33 } from "react/jsx-runtime";
123514
123539
  var Tips = ({ config }) => {
123515
123540
  const geminiMdFileCount = config.getGeminiMdFileCount();
123516
123541
  return /* @__PURE__ */ jsxs33(Box29, { flexDirection: "column", children: [
123517
- /* @__PURE__ */ jsx35(Text37, { color: Colors.Foreground, children: "Tips for getting started:" }),
123518
- /* @__PURE__ */ jsx35(Text37, { color: Colors.Foreground, children: "1. Ask questions, edit files, or run commands." }),
123519
- /* @__PURE__ */ jsx35(Text37, { color: Colors.Foreground, children: "2. Be specific for the best results." }),
123542
+ /* @__PURE__ */ jsx36(Text37, { color: Colors.Foreground, children: "Tips for getting started:" }),
123543
+ /* @__PURE__ */ jsx36(Text37, { color: Colors.Foreground, children: "1. Ask questions, edit files, or run commands." }),
123544
+ /* @__PURE__ */ jsx36(Text37, { color: Colors.Foreground, children: "2. Be specific for the best results." }),
123520
123545
  geminiMdFileCount === 0 && /* @__PURE__ */ jsxs33(Text37, { color: Colors.Foreground, children: [
123521
123546
  "3. Create",
123522
123547
  " ",
123523
- /* @__PURE__ */ jsx35(Text37, { bold: true, color: Colors.AccentPurple, children: "LINK.md" }),
123548
+ /* @__PURE__ */ jsx36(Text37, { bold: true, color: Colors.AccentPurple, children: "LINK.md" }),
123524
123549
  " ",
123525
123550
  "files to customize your interactions with FSS Link."
123526
123551
  ] }),
123527
123552
  /* @__PURE__ */ jsxs33(Text37, { color: Colors.Foreground, children: [
123528
123553
  geminiMdFileCount === 0 ? "4." : "3.",
123529
123554
  " ",
123530
- /* @__PURE__ */ jsx35(Text37, { bold: true, color: Colors.AccentPurple, children: "/help" }),
123555
+ /* @__PURE__ */ jsx36(Text37, { bold: true, color: Colors.AccentPurple, children: "/help" }),
123531
123556
  " ",
123532
123557
  "for more information."
123533
123558
  ] })
@@ -123583,7 +123608,7 @@ var ConsolePatcher = class {
123583
123608
 
123584
123609
  // packages/cli/src/ui/components/DetailedMessagesDisplay.tsx
123585
123610
  import { Box as Box30, Text as Text38 } from "ink";
123586
- import { jsx as jsx36, jsxs as jsxs34 } from "react/jsx-runtime";
123611
+ import { jsx as jsx37, jsxs as jsxs34 } from "react/jsx-runtime";
123587
123612
  var DetailedMessagesDisplay = ({ messages, maxHeight, width }) => {
123588
123613
  if (messages.length === 0) {
123589
123614
  return null;
@@ -123599,11 +123624,11 @@ var DetailedMessagesDisplay = ({ messages, maxHeight, width }) => {
123599
123624
  paddingX: 1,
123600
123625
  width,
123601
123626
  children: [
123602
- /* @__PURE__ */ jsx36(Box30, { marginBottom: 1, children: /* @__PURE__ */ jsxs34(Text38, { bold: true, color: Colors.Foreground, children: [
123627
+ /* @__PURE__ */ jsx37(Box30, { marginBottom: 1, children: /* @__PURE__ */ jsxs34(Text38, { bold: true, color: Colors.Foreground, children: [
123603
123628
  "Debug Console ",
123604
- /* @__PURE__ */ jsx36(Text38, { color: Colors.Gray, children: "(ctrl+o to close)" })
123629
+ /* @__PURE__ */ jsx37(Text38, { color: Colors.Gray, children: "(ctrl+o to close)" })
123605
123630
  ] }) }),
123606
- /* @__PURE__ */ jsx36(MaxSizedBox, { maxHeight, maxWidth: width - borderAndPadding, children: messages.map((msg, index) => {
123631
+ /* @__PURE__ */ jsx37(MaxSizedBox, { maxHeight, maxWidth: width - borderAndPadding, children: messages.map((msg, index) => {
123607
123632
  let textColor = Colors.Foreground;
123608
123633
  let icon = "\u2139";
123609
123634
  switch (msg.type) {
@@ -123645,7 +123670,7 @@ var DetailedMessagesDisplay = ({ messages, maxHeight, width }) => {
123645
123670
 
123646
123671
  // packages/cli/src/ui/components/messages/UserMessage.tsx
123647
123672
  import { Text as Text39, Box as Box31 } from "ink";
123648
- import { jsx as jsx37, jsxs as jsxs35 } from "react/jsx-runtime";
123673
+ import { jsx as jsx38, jsxs as jsxs35 } from "react/jsx-runtime";
123649
123674
  var UserMessage = ({ text }) => {
123650
123675
  const prefix = "> ";
123651
123676
  const prefixWidth = prefix.length;
@@ -123663,8 +123688,8 @@ var UserMessage = ({ text }) => {
123663
123688
  marginY: 1,
123664
123689
  alignSelf: "flex-start",
123665
123690
  children: [
123666
- /* @__PURE__ */ jsx37(Box31, { width: prefixWidth, children: /* @__PURE__ */ jsx37(Text39, { color: textColor, children: prefix }) }),
123667
- /* @__PURE__ */ jsx37(Box31, { flexGrow: 1, children: /* @__PURE__ */ jsx37(Text39, { wrap: "wrap", color: textColor, children: text }) })
123691
+ /* @__PURE__ */ jsx38(Box31, { width: prefixWidth, children: /* @__PURE__ */ jsx38(Text39, { color: textColor, children: prefix }) }),
123692
+ /* @__PURE__ */ jsx38(Box31, { flexGrow: 1, children: /* @__PURE__ */ jsx38(Text39, { wrap: "wrap", color: textColor, children: text }) })
123668
123693
  ]
123669
123694
  }
123670
123695
  );
@@ -123672,12 +123697,12 @@ var UserMessage = ({ text }) => {
123672
123697
 
123673
123698
  // packages/cli/src/ui/components/messages/UserShellMessage.tsx
123674
123699
  import { Box as Box32, Text as Text40 } from "ink";
123675
- import { jsx as jsx38, jsxs as jsxs36 } from "react/jsx-runtime";
123700
+ import { jsx as jsx39, jsxs as jsxs36 } from "react/jsx-runtime";
123676
123701
  var UserShellMessage = ({ text }) => {
123677
123702
  const commandToDisplay = text.startsWith("!") ? text.substring(1) : text;
123678
123703
  return /* @__PURE__ */ jsxs36(Box32, { children: [
123679
- /* @__PURE__ */ jsx38(Text40, { color: Colors.AccentCyan, children: "$ " }),
123680
- /* @__PURE__ */ jsx38(Text40, { children: commandToDisplay })
123704
+ /* @__PURE__ */ jsx39(Text40, { color: Colors.AccentCyan, children: "$ " }),
123705
+ /* @__PURE__ */ jsx39(Text40, { children: commandToDisplay })
123681
123706
  ] });
123682
123707
  };
123683
123708
 
@@ -123691,7 +123716,7 @@ import { Text as Text42, Box as Box34 } from "ink";
123691
123716
  // packages/cli/src/ui/utils/TableRenderer.tsx
123692
123717
  import React25 from "react";
123693
123718
  import { Text as Text41, Box as Box33 } from "ink";
123694
- import { jsx as jsx39, jsxs as jsxs37 } from "react/jsx-runtime";
123719
+ import { jsx as jsx40, jsxs as jsxs37 } from "react/jsx-runtime";
123695
123720
  var TableRenderer = ({
123696
123721
  headers,
123697
123722
  rows,
@@ -123740,7 +123765,7 @@ var TableRenderer = ({
123740
123765
  const actualDisplayWidth = getPlainTextLength(cellContent);
123741
123766
  const paddingNeeded = Math.max(0, contentWidth - actualDisplayWidth);
123742
123767
  return /* @__PURE__ */ jsxs37(Text41, { children: [
123743
- isHeader ? /* @__PURE__ */ jsx39(Text41, { bold: true, color: Colors.AccentCyan, children: /* @__PURE__ */ jsx39(RenderInline, { text: cellContent }) }) : /* @__PURE__ */ jsx39(RenderInline, { text: cellContent }),
123768
+ isHeader ? /* @__PURE__ */ jsx40(Text41, { bold: true, color: Colors.AccentCyan, children: /* @__PURE__ */ jsx40(RenderInline, { text: cellContent }) }) : /* @__PURE__ */ jsx40(RenderInline, { text: cellContent }),
123744
123769
  " ".repeat(paddingNeeded)
123745
123770
  ] });
123746
123771
  };
@@ -123753,7 +123778,7 @@ var TableRenderer = ({
123753
123778
  const char = chars[type2];
123754
123779
  const borderParts = adjustedWidths.map((w) => char.horizontal.repeat(w));
123755
123780
  const border = char.left + borderParts.join(char.middle) + char.right;
123756
- return /* @__PURE__ */ jsx39(Text41, { children: border });
123781
+ return /* @__PURE__ */ jsx40(Text41, { children: border });
123757
123782
  };
123758
123783
  const renderRow = (cells, isHeader = false) => {
123759
123784
  const renderedCells = cells.map((cell, index) => {
@@ -123775,7 +123800,7 @@ var TableRenderer = ({
123775
123800
  renderBorder("top"),
123776
123801
  renderRow(headers, true),
123777
123802
  renderBorder("middle"),
123778
- rows.map((row, index) => /* @__PURE__ */ jsx39(React25.Fragment, { children: renderRow(row) }, index)),
123803
+ rows.map((row, index) => /* @__PURE__ */ jsx40(React25.Fragment, { children: renderRow(row) }, index)),
123779
123804
  renderBorder("bottom")
123780
123805
  ] });
123781
123806
  };
@@ -123794,7 +123819,7 @@ var useSettings = () => {
123794
123819
  };
123795
123820
 
123796
123821
  // packages/cli/src/ui/utils/MarkdownDisplay.tsx
123797
- import { Fragment as Fragment7, jsx as jsx40, jsxs as jsxs38 } from "react/jsx-runtime";
123822
+ import { Fragment as Fragment7, jsx as jsx41, jsxs as jsxs38 } from "react/jsx-runtime";
123798
123823
  var EMPTY_LINE_HEIGHT = 1;
123799
123824
  var CODE_BLOCK_PREFIX_PADDING = 1;
123800
123825
  var LIST_ITEM_PREFIX_PADDING = 1;
@@ -123805,7 +123830,7 @@ var MarkdownDisplayInternal = ({
123805
123830
  availableTerminalHeight,
123806
123831
  terminalWidth
123807
123832
  }) => {
123808
- if (!text) return /* @__PURE__ */ jsx40(Fragment7, {});
123833
+ if (!text) return /* @__PURE__ */ jsx41(Fragment7, {});
123809
123834
  const lines = text.split("\n");
123810
123835
  const headerRegex = /^ *(#{1,4}) +(.*)/;
123811
123836
  const codeFenceRegex = /^ *(`{3,}|~{3,}) *(\w*?) *$/;
@@ -123835,7 +123860,7 @@ var MarkdownDisplayInternal = ({
123835
123860
  const fenceMatch = line.match(codeFenceRegex);
123836
123861
  if (fenceMatch && fenceMatch[1].startsWith(codeBlockFence[0]) && fenceMatch[1].length >= codeBlockFence.length) {
123837
123862
  addContentBlock(
123838
- /* @__PURE__ */ jsx40(
123863
+ /* @__PURE__ */ jsx41(
123839
123864
  RenderCodeBlock,
123840
123865
  {
123841
123866
  content: codeBlockContent,
@@ -123874,7 +123899,7 @@ var MarkdownDisplayInternal = ({
123874
123899
  tableRows = [];
123875
123900
  } else {
123876
123901
  addContentBlock(
123877
- /* @__PURE__ */ jsx40(Box34, { children: /* @__PURE__ */ jsx40(Text42, { wrap: "wrap", children: /* @__PURE__ */ jsx40(RenderInline, { text: line }) }) }, key)
123902
+ /* @__PURE__ */ jsx41(Box34, { children: /* @__PURE__ */ jsx41(Text42, { wrap: "wrap", children: /* @__PURE__ */ jsx41(RenderInline, { text: line }) }) }, key)
123878
123903
  );
123879
123904
  }
123880
123905
  } else if (inTable && tableSeparatorMatch) {
@@ -123890,7 +123915,7 @@ var MarkdownDisplayInternal = ({
123890
123915
  } else if (inTable && !tableRowMatch) {
123891
123916
  if (tableHeaders.length > 0 && tableRows.length > 0) {
123892
123917
  addContentBlock(
123893
- /* @__PURE__ */ jsx40(
123918
+ /* @__PURE__ */ jsx41(
123894
123919
  RenderTable,
123895
123920
  {
123896
123921
  headers: tableHeaders,
@@ -123906,12 +123931,12 @@ var MarkdownDisplayInternal = ({
123906
123931
  tableHeaders = [];
123907
123932
  if (line.trim().length > 0) {
123908
123933
  addContentBlock(
123909
- /* @__PURE__ */ jsx40(Box34, { children: /* @__PURE__ */ jsx40(Text42, { wrap: "wrap", children: /* @__PURE__ */ jsx40(RenderInline, { text: line }) }) }, key)
123934
+ /* @__PURE__ */ jsx41(Box34, { children: /* @__PURE__ */ jsx41(Text42, { wrap: "wrap", children: /* @__PURE__ */ jsx41(RenderInline, { text: line }) }) }, key)
123910
123935
  );
123911
123936
  }
123912
123937
  } else if (hrMatch) {
123913
123938
  addContentBlock(
123914
- /* @__PURE__ */ jsx40(Box34, { children: /* @__PURE__ */ jsx40(Text42, { dimColor: true, children: "---" }) }, key)
123939
+ /* @__PURE__ */ jsx41(Box34, { children: /* @__PURE__ */ jsx41(Text42, { dimColor: true, children: "---" }) }, key)
123915
123940
  );
123916
123941
  } else if (headerMatch) {
123917
123942
  const level = headerMatch[1].length;
@@ -123919,28 +123944,28 @@ var MarkdownDisplayInternal = ({
123919
123944
  let headerNode = null;
123920
123945
  switch (level) {
123921
123946
  case 1:
123922
- headerNode = /* @__PURE__ */ jsx40(Text42, { bold: true, color: Colors.AccentCyan, children: /* @__PURE__ */ jsx40(RenderInline, { text: headerText }) });
123947
+ headerNode = /* @__PURE__ */ jsx41(Text42, { bold: true, color: Colors.AccentCyan, children: /* @__PURE__ */ jsx41(RenderInline, { text: headerText }) });
123923
123948
  break;
123924
123949
  case 2:
123925
- headerNode = /* @__PURE__ */ jsx40(Text42, { bold: true, color: Colors.AccentBlue, children: /* @__PURE__ */ jsx40(RenderInline, { text: headerText }) });
123950
+ headerNode = /* @__PURE__ */ jsx41(Text42, { bold: true, color: Colors.AccentBlue, children: /* @__PURE__ */ jsx41(RenderInline, { text: headerText }) });
123926
123951
  break;
123927
123952
  case 3:
123928
- headerNode = /* @__PURE__ */ jsx40(Text42, { bold: true, children: /* @__PURE__ */ jsx40(RenderInline, { text: headerText }) });
123953
+ headerNode = /* @__PURE__ */ jsx41(Text42, { bold: true, children: /* @__PURE__ */ jsx41(RenderInline, { text: headerText }) });
123929
123954
  break;
123930
123955
  case 4:
123931
- headerNode = /* @__PURE__ */ jsx40(Text42, { italic: true, color: Colors.Gray, children: /* @__PURE__ */ jsx40(RenderInline, { text: headerText }) });
123956
+ headerNode = /* @__PURE__ */ jsx41(Text42, { italic: true, color: Colors.Gray, children: /* @__PURE__ */ jsx41(RenderInline, { text: headerText }) });
123932
123957
  break;
123933
123958
  default:
123934
- headerNode = /* @__PURE__ */ jsx40(Text42, { children: /* @__PURE__ */ jsx40(RenderInline, { text: headerText }) });
123959
+ headerNode = /* @__PURE__ */ jsx41(Text42, { children: /* @__PURE__ */ jsx41(RenderInline, { text: headerText }) });
123935
123960
  break;
123936
123961
  }
123937
- if (headerNode) addContentBlock(/* @__PURE__ */ jsx40(Box34, { children: headerNode }, key));
123962
+ if (headerNode) addContentBlock(/* @__PURE__ */ jsx41(Box34, { children: headerNode }, key));
123938
123963
  } else if (ulMatch) {
123939
123964
  const leadingWhitespace = ulMatch[1];
123940
123965
  const marker = ulMatch[2];
123941
123966
  const itemText = ulMatch[3];
123942
123967
  addContentBlock(
123943
- /* @__PURE__ */ jsx40(
123968
+ /* @__PURE__ */ jsx41(
123944
123969
  RenderListItem,
123945
123970
  {
123946
123971
  itemText,
@@ -123956,7 +123981,7 @@ var MarkdownDisplayInternal = ({
123956
123981
  const marker = olMatch[2];
123957
123982
  const itemText = olMatch[3];
123958
123983
  addContentBlock(
123959
- /* @__PURE__ */ jsx40(
123984
+ /* @__PURE__ */ jsx41(
123960
123985
  RenderListItem,
123961
123986
  {
123962
123987
  itemText,
@@ -123971,20 +123996,20 @@ var MarkdownDisplayInternal = ({
123971
123996
  if (line.trim().length === 0 && !inCodeBlock) {
123972
123997
  if (!lastLineEmpty) {
123973
123998
  contentBlocks.push(
123974
- /* @__PURE__ */ jsx40(Box34, { height: EMPTY_LINE_HEIGHT }, `spacer-${index}`)
123999
+ /* @__PURE__ */ jsx41(Box34, { height: EMPTY_LINE_HEIGHT }, `spacer-${index}`)
123975
124000
  );
123976
124001
  lastLineEmpty = true;
123977
124002
  }
123978
124003
  } else {
123979
124004
  addContentBlock(
123980
- /* @__PURE__ */ jsx40(Box34, { children: /* @__PURE__ */ jsx40(Text42, { wrap: "wrap", children: /* @__PURE__ */ jsx40(RenderInline, { text: line }) }) }, key)
124005
+ /* @__PURE__ */ jsx41(Box34, { children: /* @__PURE__ */ jsx41(Text42, { wrap: "wrap", children: /* @__PURE__ */ jsx41(RenderInline, { text: line }) }) }, key)
123981
124006
  );
123982
124007
  }
123983
124008
  }
123984
124009
  });
123985
124010
  if (inCodeBlock) {
123986
124011
  addContentBlock(
123987
- /* @__PURE__ */ jsx40(
124012
+ /* @__PURE__ */ jsx41(
123988
124013
  RenderCodeBlock,
123989
124014
  {
123990
124015
  content: codeBlockContent,
@@ -123999,7 +124024,7 @@ var MarkdownDisplayInternal = ({
123999
124024
  }
124000
124025
  if (inTable && tableHeaders.length > 0 && tableRows.length > 0) {
124001
124026
  addContentBlock(
124002
- /* @__PURE__ */ jsx40(
124027
+ /* @__PURE__ */ jsx41(
124003
124028
  RenderTable,
124004
124029
  {
124005
124030
  headers: tableHeaders,
@@ -124010,7 +124035,7 @@ var MarkdownDisplayInternal = ({
124010
124035
  )
124011
124036
  );
124012
124037
  }
124013
- return /* @__PURE__ */ jsx40(Fragment7, { children: contentBlocks });
124038
+ return /* @__PURE__ */ jsx41(Fragment7, { children: contentBlocks });
124014
124039
  };
124015
124040
  var RenderCodeBlockInternal = ({
124016
124041
  content,
@@ -124029,7 +124054,7 @@ var RenderCodeBlockInternal = ({
124029
124054
  );
124030
124055
  if (content.length > MAX_CODE_LINES_WHEN_PENDING) {
124031
124056
  if (MAX_CODE_LINES_WHEN_PENDING < MIN_LINES_FOR_MESSAGE) {
124032
- return /* @__PURE__ */ jsx40(Box34, { paddingLeft: CODE_BLOCK_PREFIX_PADDING, children: /* @__PURE__ */ jsx40(Text42, { color: Colors.Gray, children: "... code is being written ..." }) });
124057
+ return /* @__PURE__ */ jsx41(Box34, { paddingLeft: CODE_BLOCK_PREFIX_PADDING, children: /* @__PURE__ */ jsx41(Text42, { color: Colors.Gray, children: "... code is being written ..." }) });
124033
124058
  }
124034
124059
  const truncatedContent = content.slice(0, MAX_CODE_LINES_WHEN_PENDING);
124035
124060
  const colorizedTruncatedCode = colorizeCode(
@@ -124042,7 +124067,7 @@ var RenderCodeBlockInternal = ({
124042
124067
  );
124043
124068
  return /* @__PURE__ */ jsxs38(Box34, { paddingLeft: CODE_BLOCK_PREFIX_PADDING, flexDirection: "column", children: [
124044
124069
  colorizedTruncatedCode,
124045
- /* @__PURE__ */ jsx40(Text42, { color: Colors.Gray, children: "... generating more ..." })
124070
+ /* @__PURE__ */ jsx41(Text42, { color: Colors.Gray, children: "... generating more ..." })
124046
124071
  ] });
124047
124072
  }
124048
124073
  }
@@ -124055,7 +124080,7 @@ var RenderCodeBlockInternal = ({
124055
124080
  void 0,
124056
124081
  settings
124057
124082
  );
124058
- return /* @__PURE__ */ jsx40(
124083
+ return /* @__PURE__ */ jsx41(
124059
124084
  Box34,
124060
124085
  {
124061
124086
  paddingLeft: CODE_BLOCK_PREFIX_PADDING,
@@ -124082,8 +124107,8 @@ var RenderListItemInternal = ({
124082
124107
  paddingLeft: indentation + LIST_ITEM_PREFIX_PADDING,
124083
124108
  flexDirection: "row",
124084
124109
  children: [
124085
- /* @__PURE__ */ jsx40(Box34, { width: prefixWidth, children: /* @__PURE__ */ jsx40(Text42, { children: prefix }) }),
124086
- /* @__PURE__ */ jsx40(Box34, { flexGrow: LIST_ITEM_TEXT_FLEX_GROW, children: /* @__PURE__ */ jsx40(Text42, { wrap: "wrap", children: /* @__PURE__ */ jsx40(RenderInline, { text: itemText }) }) })
124110
+ /* @__PURE__ */ jsx41(Box34, { width: prefixWidth, children: /* @__PURE__ */ jsx41(Text42, { children: prefix }) }),
124111
+ /* @__PURE__ */ jsx41(Box34, { flexGrow: LIST_ITEM_TEXT_FLEX_GROW, children: /* @__PURE__ */ jsx41(Text42, { wrap: "wrap", children: /* @__PURE__ */ jsx41(RenderInline, { text: itemText }) }) })
124087
124112
  ]
124088
124113
  }
124089
124114
  );
@@ -124093,12 +124118,12 @@ var RenderTableInternal = ({
124093
124118
  headers,
124094
124119
  rows,
124095
124120
  terminalWidth
124096
- }) => /* @__PURE__ */ jsx40(TableRenderer, { headers, rows, terminalWidth });
124121
+ }) => /* @__PURE__ */ jsx41(TableRenderer, { headers, rows, terminalWidth });
124097
124122
  var RenderTable = React27.memo(RenderTableInternal);
124098
124123
  var MarkdownDisplay = React27.memo(MarkdownDisplayInternal);
124099
124124
 
124100
124125
  // packages/cli/src/ui/components/messages/GeminiMessage.tsx
124101
- import { jsx as jsx41, jsxs as jsxs39 } from "react/jsx-runtime";
124126
+ import { jsx as jsx42, jsxs as jsxs39 } from "react/jsx-runtime";
124102
124127
  var GeminiMessage = ({
124103
124128
  text,
124104
124129
  isPending,
@@ -124108,8 +124133,8 @@ var GeminiMessage = ({
124108
124133
  const prefix = "\u2726 ";
124109
124134
  const prefixWidth = prefix.length;
124110
124135
  return /* @__PURE__ */ jsxs39(Box35, { flexDirection: "row", children: [
124111
- /* @__PURE__ */ jsx41(Box35, { width: prefixWidth, children: /* @__PURE__ */ jsx41(Text43, { color: Colors.AccentPurple, children: prefix }) }),
124112
- /* @__PURE__ */ jsx41(Box35, { flexGrow: 1, flexDirection: "column", children: /* @__PURE__ */ jsx41(
124136
+ /* @__PURE__ */ jsx42(Box35, { width: prefixWidth, children: /* @__PURE__ */ jsx42(Text43, { color: Colors.AccentPurple, children: prefix }) }),
124137
+ /* @__PURE__ */ jsx42(Box35, { flexGrow: 1, flexDirection: "column", children: /* @__PURE__ */ jsx42(
124113
124138
  MarkdownDisplay,
124114
124139
  {
124115
124140
  text,
@@ -124123,25 +124148,25 @@ var GeminiMessage = ({
124123
124148
 
124124
124149
  // packages/cli/src/ui/components/messages/InfoMessage.tsx
124125
124150
  import { Text as Text44, Box as Box36 } from "ink";
124126
- import { jsx as jsx42, jsxs as jsxs40 } from "react/jsx-runtime";
124151
+ import { jsx as jsx43, jsxs as jsxs40 } from "react/jsx-runtime";
124127
124152
  var InfoMessage = ({ text }) => {
124128
124153
  const prefix = "\u2139 ";
124129
124154
  const prefixWidth = prefix.length;
124130
124155
  return /* @__PURE__ */ jsxs40(Box36, { flexDirection: "row", marginTop: 1, children: [
124131
- /* @__PURE__ */ jsx42(Box36, { width: prefixWidth, children: /* @__PURE__ */ jsx42(Text44, { color: Colors.AccentYellow, children: prefix }) }),
124132
- /* @__PURE__ */ jsx42(Box36, { flexGrow: 1, children: /* @__PURE__ */ jsx42(Text44, { wrap: "wrap", color: Colors.AccentYellow, children: /* @__PURE__ */ jsx42(RenderInline, { text }) }) })
124156
+ /* @__PURE__ */ jsx43(Box36, { width: prefixWidth, children: /* @__PURE__ */ jsx43(Text44, { color: Colors.AccentYellow, children: prefix }) }),
124157
+ /* @__PURE__ */ jsx43(Box36, { flexGrow: 1, children: /* @__PURE__ */ jsx43(Text44, { wrap: "wrap", color: Colors.AccentYellow, children: /* @__PURE__ */ jsx43(RenderInline, { text }) }) })
124133
124158
  ] });
124134
124159
  };
124135
124160
 
124136
124161
  // packages/cli/src/ui/components/messages/ErrorMessage.tsx
124137
124162
  import { Text as Text45, Box as Box37 } from "ink";
124138
- import { jsx as jsx43, jsxs as jsxs41 } from "react/jsx-runtime";
124163
+ import { jsx as jsx44, jsxs as jsxs41 } from "react/jsx-runtime";
124139
124164
  var ErrorMessage = ({ text }) => {
124140
124165
  const prefix = "\u2715 ";
124141
124166
  const prefixWidth = prefix.length;
124142
124167
  return /* @__PURE__ */ jsxs41(Box37, { flexDirection: "row", marginBottom: 1, children: [
124143
- /* @__PURE__ */ jsx43(Box37, { width: prefixWidth, children: /* @__PURE__ */ jsx43(Text45, { color: Colors.AccentRed, children: prefix }) }),
124144
- /* @__PURE__ */ jsx43(Box37, { flexGrow: 1, children: /* @__PURE__ */ jsx43(Text45, { wrap: "wrap", color: Colors.AccentRed, children: text }) })
124168
+ /* @__PURE__ */ jsx44(Box37, { width: prefixWidth, children: /* @__PURE__ */ jsx44(Text45, { color: Colors.AccentRed, children: prefix }) }),
124169
+ /* @__PURE__ */ jsx44(Box37, { flexGrow: 1, children: /* @__PURE__ */ jsx44(Text45, { wrap: "wrap", color: Colors.AccentRed, children: text }) })
124145
124170
  ] });
124146
124171
  };
124147
124172
 
@@ -124155,7 +124180,7 @@ import { Box as Box39, Text as Text47 } from "ink";
124155
124180
 
124156
124181
  // packages/cli/src/ui/components/TodoDisplay.tsx
124157
124182
  import { Box as Box38, Text as Text46 } from "ink";
124158
- import { jsx as jsx44, jsxs as jsxs42 } from "react/jsx-runtime";
124183
+ import { jsx as jsx45, jsxs as jsxs42 } from "react/jsx-runtime";
124159
124184
  var STATUS_ICONS = {
124160
124185
  pending: "\u25CB",
124161
124186
  in_progress: "\u25D0",
@@ -124165,7 +124190,7 @@ var TodoDisplay = ({ todos }) => {
124165
124190
  if (!todos || todos.length === 0) {
124166
124191
  return null;
124167
124192
  }
124168
- return /* @__PURE__ */ jsx44(Box38, { flexDirection: "column", children: todos.map((todo) => /* @__PURE__ */ jsx44(TodoItemRow, { todo }, todo.id)) });
124193
+ return /* @__PURE__ */ jsx45(Box38, { flexDirection: "column", children: todos.map((todo) => /* @__PURE__ */ jsx45(TodoItemRow, { todo }, todo.id)) });
124169
124194
  };
124170
124195
  var TodoItemRow = ({ todo }) => {
124171
124196
  const statusIcon = STATUS_ICONS[todo.status];
@@ -124173,13 +124198,13 @@ var TodoItemRow = ({ todo }) => {
124173
124198
  const isInProgress = todo.status === "in_progress";
124174
124199
  const itemColor = isCompleted ? Colors.Foreground : isInProgress ? Colors.AccentGreen : Colors.Foreground;
124175
124200
  return /* @__PURE__ */ jsxs42(Box38, { flexDirection: "row", minHeight: 1, children: [
124176
- /* @__PURE__ */ jsx44(Box38, { width: 3, children: /* @__PURE__ */ jsx44(Text46, { color: itemColor, children: statusIcon }) }),
124177
- /* @__PURE__ */ jsx44(Box38, { flexGrow: 1, children: /* @__PURE__ */ jsx44(Text46, { color: itemColor, strikethrough: isCompleted, wrap: "wrap", children: todo.content }) })
124201
+ /* @__PURE__ */ jsx45(Box38, { width: 3, children: /* @__PURE__ */ jsx45(Text46, { color: itemColor, children: statusIcon }) }),
124202
+ /* @__PURE__ */ jsx45(Box38, { flexGrow: 1, children: /* @__PURE__ */ jsx45(Text46, { color: itemColor, strikethrough: isCompleted, wrap: "wrap", children: todo.content }) })
124178
124203
  ] });
124179
124204
  };
124180
124205
 
124181
124206
  // packages/cli/src/ui/components/messages/ToolMessage.tsx
124182
- import { jsx as jsx45, jsxs as jsxs43 } from "react/jsx-runtime";
124207
+ import { jsx as jsx46, jsxs as jsxs43 } from "react/jsx-runtime";
124183
124208
  var STATIC_HEIGHT = 1;
124184
124209
  var RESERVED_LINE_COUNT = 5;
124185
124210
  var STATUS_INDICATOR_WIDTH = 3;
@@ -124208,14 +124233,14 @@ var useResultDisplayRenderer = (resultDisplay) => React28.useMemo(() => {
124208
124233
  }, [resultDisplay]);
124209
124234
  var TodoResultRenderer = ({
124210
124235
  data
124211
- }) => /* @__PURE__ */ jsx45(TodoDisplay, { todos: data.todos });
124236
+ }) => /* @__PURE__ */ jsx46(TodoDisplay, { todos: data.todos });
124212
124237
  var StringResultRenderer = ({ data, renderAsMarkdown, availableHeight, childWidth }) => {
124213
124238
  let displayData = data;
124214
124239
  if (displayData.length > MAXIMUM_RESULT_DISPLAY_CHARACTERS) {
124215
124240
  displayData = "..." + displayData.slice(-MAXIMUM_RESULT_DISPLAY_CHARACTERS);
124216
124241
  }
124217
124242
  if (renderAsMarkdown) {
124218
- return /* @__PURE__ */ jsx45(Box39, { flexDirection: "column", children: /* @__PURE__ */ jsx45(
124243
+ return /* @__PURE__ */ jsx46(Box39, { flexDirection: "column", children: /* @__PURE__ */ jsx46(
124219
124244
  MarkdownDisplay,
124220
124245
  {
124221
124246
  text: displayData,
@@ -124225,9 +124250,9 @@ var StringResultRenderer = ({ data, renderAsMarkdown, availableHeight, childWidt
124225
124250
  }
124226
124251
  ) });
124227
124252
  }
124228
- return /* @__PURE__ */ jsx45(MaxSizedBox, { maxHeight: availableHeight, maxWidth: childWidth, children: /* @__PURE__ */ jsx45(Box39, { children: /* @__PURE__ */ jsx45(Text47, { wrap: "wrap", children: displayData }) }) });
124253
+ return /* @__PURE__ */ jsx46(MaxSizedBox, { maxHeight: availableHeight, maxWidth: childWidth, children: /* @__PURE__ */ jsx46(Box39, { children: /* @__PURE__ */ jsx46(Text47, { wrap: "wrap", children: displayData }) }) });
124229
124254
  };
124230
- var DiffResultRenderer = ({ data, availableHeight, childWidth }) => /* @__PURE__ */ jsx45(
124255
+ var DiffResultRenderer = ({ data, availableHeight, childWidth }) => /* @__PURE__ */ jsx46(
124231
124256
  DiffRenderer,
124232
124257
  {
124233
124258
  diffContent: data.fileDiff,
@@ -124258,8 +124283,8 @@ var ToolMessage = ({
124258
124283
  const displayRenderer = useResultDisplayRenderer(resultDisplay);
124259
124284
  return /* @__PURE__ */ jsxs43(Box39, { paddingX: 1, paddingY: 0, flexDirection: "column", children: [
124260
124285
  /* @__PURE__ */ jsxs43(Box39, { minHeight: 1, children: [
124261
- /* @__PURE__ */ jsx45(ToolStatusIndicator, { status }),
124262
- /* @__PURE__ */ jsx45(
124286
+ /* @__PURE__ */ jsx46(ToolStatusIndicator, { status }),
124287
+ /* @__PURE__ */ jsx46(
124263
124288
  ToolInfo,
124264
124289
  {
124265
124290
  name: name2,
@@ -124268,11 +124293,11 @@ var ToolMessage = ({
124268
124293
  emphasis
124269
124294
  }
124270
124295
  ),
124271
- emphasis === "high" && /* @__PURE__ */ jsx45(TrailingIndicator, {})
124296
+ emphasis === "high" && /* @__PURE__ */ jsx46(TrailingIndicator, {})
124272
124297
  ] }),
124273
- displayRenderer.type !== "none" && /* @__PURE__ */ jsx45(Box39, { paddingLeft: STATUS_INDICATOR_WIDTH, width: "100%", marginTop: 1, children: /* @__PURE__ */ jsxs43(Box39, { flexDirection: "column", children: [
124274
- displayRenderer.type === "todo" && /* @__PURE__ */ jsx45(TodoResultRenderer, { data: displayRenderer.data }),
124275
- displayRenderer.type === "string" && /* @__PURE__ */ jsx45(
124298
+ displayRenderer.type !== "none" && /* @__PURE__ */ jsx46(Box39, { paddingLeft: STATUS_INDICATOR_WIDTH, width: "100%", marginTop: 1, children: /* @__PURE__ */ jsxs43(Box39, { flexDirection: "column", children: [
124299
+ displayRenderer.type === "todo" && /* @__PURE__ */ jsx46(TodoResultRenderer, { data: displayRenderer.data }),
124300
+ displayRenderer.type === "string" && /* @__PURE__ */ jsx46(
124276
124301
  StringResultRenderer,
124277
124302
  {
124278
124303
  data: displayRenderer.data,
@@ -124281,7 +124306,7 @@ var ToolMessage = ({
124281
124306
  childWidth
124282
124307
  }
124283
124308
  ),
124284
- displayRenderer.type === "diff" && /* @__PURE__ */ jsx45(
124309
+ displayRenderer.type === "diff" && /* @__PURE__ */ jsx46(
124285
124310
  DiffResultRenderer,
124286
124311
  {
124287
124312
  data: displayRenderer.data,
@@ -124295,18 +124320,18 @@ var ToolMessage = ({
124295
124320
  var ToolStatusIndicator = ({
124296
124321
  status
124297
124322
  }) => /* @__PURE__ */ jsxs43(Box39, { minWidth: STATUS_INDICATOR_WIDTH, children: [
124298
- status === "Pending" /* Pending */ && /* @__PURE__ */ jsx45(Text47, { color: Colors.AccentGreen, children: "o" }),
124299
- status === "Executing" /* Executing */ && /* @__PURE__ */ jsx45(
124323
+ status === "Pending" /* Pending */ && /* @__PURE__ */ jsx46(Text47, { color: Colors.AccentGreen, children: "o" }),
124324
+ status === "Executing" /* Executing */ && /* @__PURE__ */ jsx46(
124300
124325
  GeminiRespondingSpinner,
124301
124326
  {
124302
124327
  spinnerType: "toggle",
124303
124328
  nonRespondingDisplay: "\u22B7"
124304
124329
  }
124305
124330
  ),
124306
- status === "Success" /* Success */ && /* @__PURE__ */ jsx45(Text47, { color: Colors.AccentGreen, children: "\u2714" }),
124307
- status === "Confirming" /* Confirming */ && /* @__PURE__ */ jsx45(Text47, { color: Colors.AccentYellow, children: "?" }),
124308
- status === "Canceled" /* Canceled */ && /* @__PURE__ */ jsx45(Text47, { color: Colors.AccentYellow, bold: true, children: "-" }),
124309
- status === "Error" /* Error */ && /* @__PURE__ */ jsx45(Text47, { color: Colors.AccentRed, bold: true, children: "x" })
124331
+ status === "Success" /* Success */ && /* @__PURE__ */ jsx46(Text47, { color: Colors.AccentGreen, children: "\u2714" }),
124332
+ status === "Confirming" /* Confirming */ && /* @__PURE__ */ jsx46(Text47, { color: Colors.AccentYellow, children: "?" }),
124333
+ status === "Canceled" /* Canceled */ && /* @__PURE__ */ jsx46(Text47, { color: Colors.AccentYellow, bold: true, children: "-" }),
124334
+ status === "Error" /* Error */ && /* @__PURE__ */ jsx46(Text47, { color: Colors.AccentRed, bold: true, children: "x" })
124310
124335
  ] });
124311
124336
  var ToolInfo = ({
124312
124337
  name: name2,
@@ -124328,15 +124353,15 @@ var ToolInfo = ({
124328
124353
  }
124329
124354
  }
124330
124355
  }, [emphasis]);
124331
- return /* @__PURE__ */ jsx45(Box39, { children: /* @__PURE__ */ jsxs43(
124356
+ return /* @__PURE__ */ jsx46(Box39, { children: /* @__PURE__ */ jsxs43(
124332
124357
  Text47,
124333
124358
  {
124334
124359
  wrap: "truncate-end",
124335
124360
  strikethrough: status === "Canceled" /* Canceled */,
124336
124361
  children: [
124337
- /* @__PURE__ */ jsx45(Text47, { color: nameColor, bold: true, children: name2 }),
124362
+ /* @__PURE__ */ jsx46(Text47, { color: nameColor, bold: true, children: name2 }),
124338
124363
  " ",
124339
- /* @__PURE__ */ jsx45(Text47, { color: Colors.Gray, children: description })
124364
+ /* @__PURE__ */ jsx46(Text47, { color: Colors.Gray, children: description })
124340
124365
  ]
124341
124366
  }
124342
124367
  ) });
@@ -124349,7 +124374,7 @@ var TrailingIndicator = () => /* @__PURE__ */ jsxs43(Text47, { color: Colors.For
124349
124374
  // packages/cli/src/ui/components/messages/ToolConfirmationMessage.tsx
124350
124375
  import { Box as Box40, Text as Text48 } from "ink";
124351
124376
  init_dist2();
124352
- import { jsx as jsx46, jsxs as jsxs44 } from "react/jsx-runtime";
124377
+ import { jsx as jsx47, jsxs as jsxs44 } from "react/jsx-runtime";
124353
124378
  var ToolConfirmationMessage = ({
124354
124379
  confirmationDetails,
124355
124380
  config,
@@ -124412,8 +124437,8 @@ var ToolConfirmationMessage = ({
124412
124437
  padding: 1,
124413
124438
  overflow: "hidden",
124414
124439
  children: [
124415
- /* @__PURE__ */ jsx46(Text48, { children: "Modify in progress: " }),
124416
- /* @__PURE__ */ jsx46(Text48, { color: Colors.AccentGreen, children: "Save and close external editor to continue" })
124440
+ /* @__PURE__ */ jsx47(Text48, { children: "Modify in progress: " }),
124441
+ /* @__PURE__ */ jsx47(Text48, { color: Colors.AccentGreen, children: "Save and close external editor to continue" })
124417
124442
  ]
124418
124443
  }
124419
124444
  );
@@ -124444,7 +124469,7 @@ var ToolConfirmationMessage = ({
124444
124469
  value: ToolConfirmationOutcome.Cancel
124445
124470
  });
124446
124471
  }
124447
- bodyContent = /* @__PURE__ */ jsx46(
124472
+ bodyContent = /* @__PURE__ */ jsx47(
124448
124473
  DiffRenderer,
124449
124474
  {
124450
124475
  diffContent: confirmationDetails.fileDiff,
@@ -124474,12 +124499,12 @@ var ToolConfirmationMessage = ({
124474
124499
  if (bodyContentHeight !== void 0) {
124475
124500
  bodyContentHeight -= 2;
124476
124501
  }
124477
- bodyContent = /* @__PURE__ */ jsx46(Box40, { flexDirection: "column", children: /* @__PURE__ */ jsx46(Box40, { paddingX: 1, marginLeft: 1, children: /* @__PURE__ */ jsx46(
124502
+ bodyContent = /* @__PURE__ */ jsx47(Box40, { flexDirection: "column", children: /* @__PURE__ */ jsx47(Box40, { paddingX: 1, marginLeft: 1, children: /* @__PURE__ */ jsx47(
124478
124503
  MaxSizedBox,
124479
124504
  {
124480
124505
  maxHeight: bodyContentHeight,
124481
124506
  maxWidth: Math.max(childWidth - 4, 1),
124482
- children: /* @__PURE__ */ jsx46(Box40, { children: /* @__PURE__ */ jsx46(Text48, { color: Colors.AccentCyan, children: executionProps.command }) })
124507
+ children: /* @__PURE__ */ jsx47(Box40, { children: /* @__PURE__ */ jsx47(Text48, { color: Colors.AccentCyan, children: executionProps.command }) })
124483
124508
  }
124484
124509
  ) }) });
124485
124510
  } else if (confirmationDetails.type === "info") {
@@ -124501,13 +124526,13 @@ var ToolConfirmationMessage = ({
124501
124526
  }
124502
124527
  );
124503
124528
  bodyContent = /* @__PURE__ */ jsxs44(Box40, { flexDirection: "column", paddingX: 1, marginLeft: 1, children: [
124504
- /* @__PURE__ */ jsx46(Text48, { color: Colors.AccentCyan, children: /* @__PURE__ */ jsx46(RenderInline, { text: infoProps.prompt }) }),
124529
+ /* @__PURE__ */ jsx47(Text48, { color: Colors.AccentCyan, children: /* @__PURE__ */ jsx47(RenderInline, { text: infoProps.prompt }) }),
124505
124530
  displayUrls && infoProps.urls && infoProps.urls.length > 0 && /* @__PURE__ */ jsxs44(Box40, { flexDirection: "column", marginTop: 1, children: [
124506
- /* @__PURE__ */ jsx46(Text48, { children: "URLs to fetch:" }),
124531
+ /* @__PURE__ */ jsx47(Text48, { children: "URLs to fetch:" }),
124507
124532
  infoProps.urls.map((url2) => /* @__PURE__ */ jsxs44(Text48, { children: [
124508
124533
  " ",
124509
124534
  "- ",
124510
- /* @__PURE__ */ jsx46(RenderInline, { text: url2 })
124535
+ /* @__PURE__ */ jsx47(RenderInline, { text: url2 })
124511
124536
  ] }, url2))
124512
124537
  ] })
124513
124538
  ] });
@@ -124545,9 +124570,9 @@ var ToolConfirmationMessage = ({
124545
124570
  );
124546
124571
  }
124547
124572
  return /* @__PURE__ */ jsxs44(Box40, { flexDirection: "column", padding: 1, width: childWidth, children: [
124548
- /* @__PURE__ */ jsx46(Box40, { flexGrow: 1, flexShrink: 1, overflow: "hidden", marginBottom: 1, children: bodyContent }),
124549
- /* @__PURE__ */ jsx46(Box40, { marginBottom: 1, flexShrink: 0, children: /* @__PURE__ */ jsx46(Text48, { wrap: "truncate", children: question }) }),
124550
- /* @__PURE__ */ jsx46(Box40, { flexShrink: 0, children: /* @__PURE__ */ jsx46(
124573
+ /* @__PURE__ */ jsx47(Box40, { flexGrow: 1, flexShrink: 1, overflow: "hidden", marginBottom: 1, children: bodyContent }),
124574
+ /* @__PURE__ */ jsx47(Box40, { marginBottom: 1, flexShrink: 0, children: /* @__PURE__ */ jsx47(Text48, { wrap: "truncate", children: question }) }),
124575
+ /* @__PURE__ */ jsx47(Box40, { flexShrink: 0, children: /* @__PURE__ */ jsx47(
124551
124576
  RadioButtonSelect,
124552
124577
  {
124553
124578
  items: options2,
@@ -124559,7 +124584,7 @@ var ToolConfirmationMessage = ({
124559
124584
  };
124560
124585
 
124561
124586
  // packages/cli/src/ui/components/messages/ToolGroupMessage.tsx
124562
- import { jsx as jsx47, jsxs as jsxs45 } from "react/jsx-runtime";
124587
+ import { jsx as jsx48, jsxs as jsxs45 } from "react/jsx-runtime";
124563
124588
  var ToolGroupMessage = ({
124564
124589
  toolCalls,
124565
124590
  availableTerminalHeight,
@@ -124595,7 +124620,7 @@ var ToolGroupMessage = ({
124595
124620
  ),
124596
124621
  1
124597
124622
  ) : void 0;
124598
- return /* @__PURE__ */ jsx47(
124623
+ return /* @__PURE__ */ jsx48(
124599
124624
  Box41,
124600
124625
  {
124601
124626
  flexDirection: "column",
@@ -124607,7 +124632,7 @@ var ToolGroupMessage = ({
124607
124632
  children: toolCalls.map((tool) => {
124608
124633
  const isConfirming = toolAwaitingApproval?.callId === tool.callId;
124609
124634
  return /* @__PURE__ */ jsxs45(Box41, { flexDirection: "column", minHeight: 1, children: [
124610
- /* @__PURE__ */ jsx47(Box41, { flexDirection: "row", alignItems: "center", children: /* @__PURE__ */ jsx47(
124635
+ /* @__PURE__ */ jsx48(Box41, { flexDirection: "row", alignItems: "center", children: /* @__PURE__ */ jsx48(
124611
124636
  ToolMessage,
124612
124637
  {
124613
124638
  callId: tool.callId,
@@ -124622,7 +124647,7 @@ var ToolGroupMessage = ({
124622
124647
  renderOutputAsMarkdown: tool.renderOutputAsMarkdown
124623
124648
  }
124624
124649
  ) }),
124625
- tool.status === "Confirming" /* Confirming */ && isConfirming && tool.confirmationDetails && /* @__PURE__ */ jsx47(
124650
+ tool.status === "Confirming" /* Confirming */ && isConfirming && tool.confirmationDetails && /* @__PURE__ */ jsx48(
124626
124651
  ToolConfirmationMessage,
124627
124652
  {
124628
124653
  confirmationDetails: tool.confirmationDetails,
@@ -124640,7 +124665,7 @@ var ToolGroupMessage = ({
124640
124665
 
124641
124666
  // packages/cli/src/ui/components/messages/GeminiMessageContent.tsx
124642
124667
  import { Box as Box42 } from "ink";
124643
- import { jsx as jsx48 } from "react/jsx-runtime";
124668
+ import { jsx as jsx49 } from "react/jsx-runtime";
124644
124669
  var GeminiMessageContent = ({
124645
124670
  text,
124646
124671
  isPending,
@@ -124649,7 +124674,7 @@ var GeminiMessageContent = ({
124649
124674
  }) => {
124650
124675
  const originalPrefix = "\u2726 ";
124651
124676
  const prefixWidth = originalPrefix.length;
124652
- return /* @__PURE__ */ jsx48(Box42, { flexDirection: "column", paddingLeft: prefixWidth, children: /* @__PURE__ */ jsx48(
124677
+ return /* @__PURE__ */ jsx49(Box42, { flexDirection: "column", paddingLeft: prefixWidth, children: /* @__PURE__ */ jsx49(
124653
124678
  MarkdownDisplay,
124654
124679
  {
124655
124680
  text,
@@ -124663,14 +124688,14 @@ var GeminiMessageContent = ({
124663
124688
  // packages/cli/src/ui/components/messages/CompressionMessage.tsx
124664
124689
  import { Box as Box43, Text as Text49 } from "ink";
124665
124690
  import Spinner3 from "ink-spinner";
124666
- import { jsx as jsx49, jsxs as jsxs46 } from "react/jsx-runtime";
124691
+ import { jsx as jsx50, jsxs as jsxs46 } from "react/jsx-runtime";
124667
124692
  var CompressionMessage = ({
124668
124693
  compression
124669
124694
  }) => {
124670
124695
  const text = compression.isPending ? "Compressing chat history" : `Chat history compressed from ${compression.originalTokenCount ?? "unknown"} to ${compression.newTokenCount ?? "unknown"} tokens.`;
124671
124696
  return /* @__PURE__ */ jsxs46(Box43, { flexDirection: "row", children: [
124672
- /* @__PURE__ */ jsx49(Box43, { marginRight: 1, children: compression.isPending ? /* @__PURE__ */ jsx49(Spinner3, { type: "dots" }) : /* @__PURE__ */ jsx49(Text49, { color: Colors.AccentPurple, children: "\u2726" }) }),
124673
- /* @__PURE__ */ jsx49(Box43, { children: /* @__PURE__ */ jsx49(
124697
+ /* @__PURE__ */ jsx50(Box43, { marginRight: 1, children: compression.isPending ? /* @__PURE__ */ jsx50(Spinner3, { type: "dots" }) : /* @__PURE__ */ jsx50(Text49, { color: Colors.AccentPurple, children: "\u2726" }) }),
124698
+ /* @__PURE__ */ jsx50(Box43, { children: /* @__PURE__ */ jsx50(
124674
124699
  Text49,
124675
124700
  {
124676
124701
  color: compression.isPending ? Colors.AccentPurple : Colors.AccentGreen,
@@ -124685,7 +124710,7 @@ import { Box as Box49 } from "ink";
124685
124710
 
124686
124711
  // packages/cli/src/ui/components/AboutBox.tsx
124687
124712
  import { Box as Box44, Text as Text50 } from "ink";
124688
- import { jsx as jsx50, jsxs as jsxs47 } from "react/jsx-runtime";
124713
+ import { jsx as jsx51, jsxs as jsxs47 } from "react/jsx-runtime";
124689
124714
  var AboutBox = ({
124690
124715
  cliVersion,
124691
124716
  osVersion,
@@ -124704,38 +124729,38 @@ var AboutBox = ({
124704
124729
  marginY: 1,
124705
124730
  width: "100%",
124706
124731
  children: [
124707
- /* @__PURE__ */ jsx50(Box44, { marginBottom: 1, children: /* @__PURE__ */ jsx50(Text50, { bold: true, color: Colors.AccentPurple, children: "About FSS Link" }) }),
124732
+ /* @__PURE__ */ jsx51(Box44, { marginBottom: 1, children: /* @__PURE__ */ jsx51(Text50, { bold: true, color: Colors.AccentPurple, children: "About FSS Link" }) }),
124708
124733
  /* @__PURE__ */ jsxs47(Box44, { flexDirection: "row", children: [
124709
- /* @__PURE__ */ jsx50(Box44, { width: "35%", children: /* @__PURE__ */ jsx50(Text50, { bold: true, color: Colors.LightBlue, children: "CLI Version" }) }),
124710
- /* @__PURE__ */ jsx50(Box44, { children: /* @__PURE__ */ jsx50(Text50, { children: cliVersion }) })
124734
+ /* @__PURE__ */ jsx51(Box44, { width: "35%", children: /* @__PURE__ */ jsx51(Text50, { bold: true, color: Colors.LightBlue, children: "CLI Version" }) }),
124735
+ /* @__PURE__ */ jsx51(Box44, { children: /* @__PURE__ */ jsx51(Text50, { children: cliVersion }) })
124711
124736
  ] }),
124712
124737
  GIT_COMMIT_INFO && !["N/A"].includes(GIT_COMMIT_INFO) && /* @__PURE__ */ jsxs47(Box44, { flexDirection: "row", children: [
124713
- /* @__PURE__ */ jsx50(Box44, { width: "35%", children: /* @__PURE__ */ jsx50(Text50, { bold: true, color: Colors.LightBlue, children: "Git Commit" }) }),
124714
- /* @__PURE__ */ jsx50(Box44, { children: /* @__PURE__ */ jsx50(Text50, { children: GIT_COMMIT_INFO }) })
124738
+ /* @__PURE__ */ jsx51(Box44, { width: "35%", children: /* @__PURE__ */ jsx51(Text50, { bold: true, color: Colors.LightBlue, children: "Git Commit" }) }),
124739
+ /* @__PURE__ */ jsx51(Box44, { children: /* @__PURE__ */ jsx51(Text50, { children: GIT_COMMIT_INFO }) })
124715
124740
  ] }),
124716
124741
  /* @__PURE__ */ jsxs47(Box44, { flexDirection: "row", children: [
124717
- /* @__PURE__ */ jsx50(Box44, { width: "35%", children: /* @__PURE__ */ jsx50(Text50, { bold: true, color: Colors.LightBlue, children: "Model" }) }),
124718
- /* @__PURE__ */ jsx50(Box44, { children: /* @__PURE__ */ jsx50(Text50, { children: modelVersion }) })
124742
+ /* @__PURE__ */ jsx51(Box44, { width: "35%", children: /* @__PURE__ */ jsx51(Text50, { bold: true, color: Colors.LightBlue, children: "Model" }) }),
124743
+ /* @__PURE__ */ jsx51(Box44, { children: /* @__PURE__ */ jsx51(Text50, { children: modelVersion }) })
124719
124744
  ] }),
124720
124745
  /* @__PURE__ */ jsxs47(Box44, { flexDirection: "row", children: [
124721
- /* @__PURE__ */ jsx50(Box44, { width: "35%", children: /* @__PURE__ */ jsx50(Text50, { bold: true, color: Colors.LightBlue, children: "Sandbox" }) }),
124722
- /* @__PURE__ */ jsx50(Box44, { children: /* @__PURE__ */ jsx50(Text50, { children: sandboxEnv }) })
124746
+ /* @__PURE__ */ jsx51(Box44, { width: "35%", children: /* @__PURE__ */ jsx51(Text50, { bold: true, color: Colors.LightBlue, children: "Sandbox" }) }),
124747
+ /* @__PURE__ */ jsx51(Box44, { children: /* @__PURE__ */ jsx51(Text50, { children: sandboxEnv }) })
124723
124748
  ] }),
124724
124749
  /* @__PURE__ */ jsxs47(Box44, { flexDirection: "row", children: [
124725
- /* @__PURE__ */ jsx50(Box44, { width: "35%", children: /* @__PURE__ */ jsx50(Text50, { bold: true, color: Colors.LightBlue, children: "OS" }) }),
124726
- /* @__PURE__ */ jsx50(Box44, { children: /* @__PURE__ */ jsx50(Text50, { children: osVersion }) })
124750
+ /* @__PURE__ */ jsx51(Box44, { width: "35%", children: /* @__PURE__ */ jsx51(Text50, { bold: true, color: Colors.LightBlue, children: "OS" }) }),
124751
+ /* @__PURE__ */ jsx51(Box44, { children: /* @__PURE__ */ jsx51(Text50, { children: osVersion }) })
124727
124752
  ] }),
124728
124753
  /* @__PURE__ */ jsxs47(Box44, { flexDirection: "row", children: [
124729
- /* @__PURE__ */ jsx50(Box44, { width: "35%", children: /* @__PURE__ */ jsx50(Text50, { bold: true, color: Colors.LightBlue, children: "Auth Method" }) }),
124730
- /* @__PURE__ */ jsx50(Box44, { children: /* @__PURE__ */ jsx50(Text50, { children: selectedAuthType.startsWith("oauth") ? "OAuth" : selectedAuthType }) })
124754
+ /* @__PURE__ */ jsx51(Box44, { width: "35%", children: /* @__PURE__ */ jsx51(Text50, { bold: true, color: Colors.LightBlue, children: "Auth Method" }) }),
124755
+ /* @__PURE__ */ jsx51(Box44, { children: /* @__PURE__ */ jsx51(Text50, { children: selectedAuthType.startsWith("oauth") ? "OAuth" : selectedAuthType }) })
124731
124756
  ] }),
124732
124757
  gcpProject && /* @__PURE__ */ jsxs47(Box44, { flexDirection: "row", children: [
124733
- /* @__PURE__ */ jsx50(Box44, { width: "35%", children: /* @__PURE__ */ jsx50(Text50, { bold: true, color: Colors.LightBlue, children: "GCP Project" }) }),
124734
- /* @__PURE__ */ jsx50(Box44, { children: /* @__PURE__ */ jsx50(Text50, { children: gcpProject }) })
124758
+ /* @__PURE__ */ jsx51(Box44, { width: "35%", children: /* @__PURE__ */ jsx51(Text50, { bold: true, color: Colors.LightBlue, children: "GCP Project" }) }),
124759
+ /* @__PURE__ */ jsx51(Box44, { children: /* @__PURE__ */ jsx51(Text50, { children: gcpProject }) })
124735
124760
  ] }),
124736
124761
  ideClient && /* @__PURE__ */ jsxs47(Box44, { flexDirection: "row", children: [
124737
- /* @__PURE__ */ jsx50(Box44, { width: "35%", children: /* @__PURE__ */ jsx50(Text50, { bold: true, color: Colors.LightBlue, children: "IDE Client" }) }),
124738
- /* @__PURE__ */ jsx50(Box44, { children: /* @__PURE__ */ jsx50(Text50, { children: ideClient }) })
124762
+ /* @__PURE__ */ jsx51(Box44, { width: "35%", children: /* @__PURE__ */ jsx51(Text50, { bold: true, color: Colors.LightBlue, children: "IDE Client" }) }),
124763
+ /* @__PURE__ */ jsx51(Box44, { children: /* @__PURE__ */ jsx51(Text50, { children: ideClient }) })
124739
124764
  ] })
124740
124765
  ]
124741
124766
  }
@@ -124819,20 +124844,20 @@ var computeSessionStats = (metrics2) => {
124819
124844
  };
124820
124845
 
124821
124846
  // packages/cli/src/ui/components/StatsDisplay.tsx
124822
- import { jsx as jsx51, jsxs as jsxs48 } from "react/jsx-runtime";
124847
+ import { jsx as jsx52, jsxs as jsxs48 } from "react/jsx-runtime";
124823
124848
  var StatRow = ({ title, children }) => /* @__PURE__ */ jsxs48(Box45, { children: [
124824
- /* @__PURE__ */ jsx51(Box45, { width: 28, children: /* @__PURE__ */ jsx51(Text51, { color: theme.text.link, children: title }) }),
124849
+ /* @__PURE__ */ jsx52(Box45, { width: 28, children: /* @__PURE__ */ jsx52(Text51, { color: theme.text.link, children: title }) }),
124825
124850
  children
124826
124851
  ] });
124827
124852
  var SubStatRow = ({ title, children }) => /* @__PURE__ */ jsxs48(Box45, { paddingLeft: 2, children: [
124828
- /* @__PURE__ */ jsx51(Box45, { width: 26, children: /* @__PURE__ */ jsxs48(Text51, { children: [
124853
+ /* @__PURE__ */ jsx52(Box45, { width: 26, children: /* @__PURE__ */ jsxs48(Text51, { children: [
124829
124854
  "\xBB ",
124830
124855
  title
124831
124856
  ] }) }),
124832
124857
  children
124833
124858
  ] });
124834
124859
  var Section = ({ title, children }) => /* @__PURE__ */ jsxs48(Box45, { flexDirection: "column", width: "100%", marginBottom: 1, children: [
124835
- /* @__PURE__ */ jsx51(Text51, { bold: true, children: title }),
124860
+ /* @__PURE__ */ jsx52(Text51, { bold: true, children: title }),
124836
124861
  children
124837
124862
  ] });
124838
124863
  var ModelUsageTable = ({ models, totalCachedTokens, cacheEfficiency }) => {
@@ -124842,12 +124867,12 @@ var ModelUsageTable = ({ models, totalCachedTokens, cacheEfficiency }) => {
124842
124867
  const outputTokensWidth = 15;
124843
124868
  return /* @__PURE__ */ jsxs48(Box45, { flexDirection: "column", marginTop: 1, children: [
124844
124869
  /* @__PURE__ */ jsxs48(Box45, { children: [
124845
- /* @__PURE__ */ jsx51(Box45, { width: nameWidth, children: /* @__PURE__ */ jsx51(Text51, { bold: true, children: "Model Usage" }) }),
124846
- /* @__PURE__ */ jsx51(Box45, { width: requestsWidth, justifyContent: "flex-end", children: /* @__PURE__ */ jsx51(Text51, { bold: true, children: "Reqs" }) }),
124847
- /* @__PURE__ */ jsx51(Box45, { width: inputTokensWidth, justifyContent: "flex-end", children: /* @__PURE__ */ jsx51(Text51, { bold: true, children: "Input Tokens" }) }),
124848
- /* @__PURE__ */ jsx51(Box45, { width: outputTokensWidth, justifyContent: "flex-end", children: /* @__PURE__ */ jsx51(Text51, { bold: true, children: "Output Tokens" }) })
124870
+ /* @__PURE__ */ jsx52(Box45, { width: nameWidth, children: /* @__PURE__ */ jsx52(Text51, { bold: true, children: "Model Usage" }) }),
124871
+ /* @__PURE__ */ jsx52(Box45, { width: requestsWidth, justifyContent: "flex-end", children: /* @__PURE__ */ jsx52(Text51, { bold: true, children: "Reqs" }) }),
124872
+ /* @__PURE__ */ jsx52(Box45, { width: inputTokensWidth, justifyContent: "flex-end", children: /* @__PURE__ */ jsx52(Text51, { bold: true, children: "Input Tokens" }) }),
124873
+ /* @__PURE__ */ jsx52(Box45, { width: outputTokensWidth, justifyContent: "flex-end", children: /* @__PURE__ */ jsx52(Text51, { bold: true, children: "Output Tokens" }) })
124849
124874
  ] }),
124850
- /* @__PURE__ */ jsx51(
124875
+ /* @__PURE__ */ jsx52(
124851
124876
  Box45,
124852
124877
  {
124853
124878
  borderStyle: "round",
@@ -124859,22 +124884,22 @@ var ModelUsageTable = ({ models, totalCachedTokens, cacheEfficiency }) => {
124859
124884
  }
124860
124885
  ),
124861
124886
  Object.entries(models).map(([name2, modelMetrics]) => /* @__PURE__ */ jsxs48(Box45, { children: [
124862
- /* @__PURE__ */ jsx51(Box45, { width: nameWidth, children: /* @__PURE__ */ jsx51(Text51, { children: name2.replace("-001", "") }) }),
124863
- /* @__PURE__ */ jsx51(Box45, { width: requestsWidth, justifyContent: "flex-end", children: /* @__PURE__ */ jsx51(Text51, { children: modelMetrics.api.totalRequests }) }),
124864
- /* @__PURE__ */ jsx51(Box45, { width: inputTokensWidth, justifyContent: "flex-end", children: /* @__PURE__ */ jsx51(Text51, { color: theme.status.warning, children: modelMetrics.tokens.prompt.toLocaleString() }) }),
124865
- /* @__PURE__ */ jsx51(Box45, { width: outputTokensWidth, justifyContent: "flex-end", children: /* @__PURE__ */ jsx51(Text51, { color: theme.status.warning, children: modelMetrics.tokens.candidates.toLocaleString() }) })
124887
+ /* @__PURE__ */ jsx52(Box45, { width: nameWidth, children: /* @__PURE__ */ jsx52(Text51, { children: name2.replace("-001", "") }) }),
124888
+ /* @__PURE__ */ jsx52(Box45, { width: requestsWidth, justifyContent: "flex-end", children: /* @__PURE__ */ jsx52(Text51, { children: modelMetrics.api.totalRequests }) }),
124889
+ /* @__PURE__ */ jsx52(Box45, { width: inputTokensWidth, justifyContent: "flex-end", children: /* @__PURE__ */ jsx52(Text51, { color: theme.status.warning, children: modelMetrics.tokens.prompt.toLocaleString() }) }),
124890
+ /* @__PURE__ */ jsx52(Box45, { width: outputTokensWidth, justifyContent: "flex-end", children: /* @__PURE__ */ jsx52(Text51, { color: theme.status.warning, children: modelMetrics.tokens.candidates.toLocaleString() }) })
124866
124891
  ] }, name2)),
124867
124892
  cacheEfficiency > 0 && /* @__PURE__ */ jsxs48(Box45, { flexDirection: "column", marginTop: 1, children: [
124868
124893
  /* @__PURE__ */ jsxs48(Text51, { children: [
124869
- /* @__PURE__ */ jsx51(Text51, { color: theme.status.success, children: "Savings Highlight:" }),
124894
+ /* @__PURE__ */ jsx52(Text51, { color: theme.status.success, children: "Savings Highlight:" }),
124870
124895
  " ",
124871
124896
  totalCachedTokens.toLocaleString(),
124872
124897
  " (",
124873
124898
  cacheEfficiency.toFixed(1),
124874
124899
  "%) of input tokens were served from the cache, reducing costs."
124875
124900
  ] }),
124876
- /* @__PURE__ */ jsx51(Box45, { height: 1 }),
124877
- /* @__PURE__ */ jsx51(Text51, { color: theme.text.secondary, children: "\xBB Tip: For a full token breakdown, run `/stats model`." })
124901
+ /* @__PURE__ */ jsx52(Box45, { height: 1 }),
124902
+ /* @__PURE__ */ jsx52(Text51, { color: theme.text.secondary, children: "\xBB Tip: For a full token breakdown, run `/stats model`." })
124878
124903
  ] })
124879
124904
  ] });
124880
124905
  };
@@ -124901,9 +124926,9 @@ var StatsDisplay = ({
124901
124926
  );
124902
124927
  const renderTitle = () => {
124903
124928
  if (title) {
124904
- return theme.ui.gradient && theme.ui.gradient.length > 0 ? /* @__PURE__ */ jsx51(Gradient3, { colors: theme.ui.gradient, children: /* @__PURE__ */ jsx51(Text51, { bold: true, children: title }) }) : /* @__PURE__ */ jsx51(Text51, { bold: true, color: theme.text.accent, children: title });
124929
+ return theme.ui.gradient && theme.ui.gradient.length > 0 ? /* @__PURE__ */ jsx52(Gradient3, { colors: theme.ui.gradient, children: /* @__PURE__ */ jsx52(Text51, { bold: true, children: title }) }) : /* @__PURE__ */ jsx52(Text51, { bold: true, color: theme.text.accent, children: title });
124905
124930
  }
124906
- return /* @__PURE__ */ jsx51(Text51, { bold: true, color: theme.text.accent, children: "Session Stats" });
124931
+ return /* @__PURE__ */ jsx52(Text51, { bold: true, color: theme.text.accent, children: "Session Stats" });
124907
124932
  };
124908
124933
  return /* @__PURE__ */ jsxs48(
124909
124934
  Box45,
@@ -124915,10 +124940,10 @@ var StatsDisplay = ({
124915
124940
  paddingX: 2,
124916
124941
  children: [
124917
124942
  renderTitle(),
124918
- /* @__PURE__ */ jsx51(Box45, { height: 1 }),
124943
+ /* @__PURE__ */ jsx52(Box45, { height: 1 }),
124919
124944
  /* @__PURE__ */ jsxs48(Section, { title: "Interaction Summary", children: [
124920
- /* @__PURE__ */ jsx51(StatRow, { title: "Session ID:", children: /* @__PURE__ */ jsx51(Text51, { children: stats.sessionId }) }),
124921
- /* @__PURE__ */ jsx51(StatRow, { title: "Tool Calls:", children: /* @__PURE__ */ jsxs48(Text51, { children: [
124945
+ /* @__PURE__ */ jsx52(StatRow, { title: "Session ID:", children: /* @__PURE__ */ jsx52(Text51, { children: stats.sessionId }) }),
124946
+ /* @__PURE__ */ jsx52(StatRow, { title: "Tool Calls:", children: /* @__PURE__ */ jsxs48(Text51, { children: [
124922
124947
  tools.totalCalls,
124923
124948
  " (",
124924
124949
  " ",
@@ -124933,11 +124958,11 @@ var StatsDisplay = ({
124933
124958
  ] }),
124934
124959
  " )"
124935
124960
  ] }) }),
124936
- /* @__PURE__ */ jsx51(StatRow, { title: "Success Rate:", children: /* @__PURE__ */ jsxs48(Text51, { color: successColor, children: [
124961
+ /* @__PURE__ */ jsx52(StatRow, { title: "Success Rate:", children: /* @__PURE__ */ jsxs48(Text51, { color: successColor, children: [
124937
124962
  computed.successRate.toFixed(1),
124938
124963
  "%"
124939
124964
  ] }) }),
124940
- computed.totalDecisions > 0 && /* @__PURE__ */ jsx51(StatRow, { title: "User Agreement:", children: /* @__PURE__ */ jsxs48(Text51, { color: agreementColor, children: [
124965
+ computed.totalDecisions > 0 && /* @__PURE__ */ jsx52(StatRow, { title: "User Agreement:", children: /* @__PURE__ */ jsxs48(Text51, { color: agreementColor, children: [
124941
124966
  computed.agreementRate.toFixed(1),
124942
124967
  "%",
124943
124968
  " ",
@@ -124947,7 +124972,7 @@ var StatsDisplay = ({
124947
124972
  " reviewed)"
124948
124973
  ] })
124949
124974
  ] }) }),
124950
- files && (files.totalLinesAdded > 0 || files.totalLinesRemoved > 0) && /* @__PURE__ */ jsx51(StatRow, { title: "Code Changes:", children: /* @__PURE__ */ jsxs48(Text51, { children: [
124975
+ files && (files.totalLinesAdded > 0 || files.totalLinesRemoved > 0) && /* @__PURE__ */ jsx52(StatRow, { title: "Code Changes:", children: /* @__PURE__ */ jsxs48(Text51, { children: [
124951
124976
  /* @__PURE__ */ jsxs48(Text51, { color: theme.status.success, children: [
124952
124977
  "+",
124953
124978
  files.totalLinesAdded
@@ -124960,9 +124985,9 @@ var StatsDisplay = ({
124960
124985
  ] }) })
124961
124986
  ] }),
124962
124987
  /* @__PURE__ */ jsxs48(Section, { title: "Performance", children: [
124963
- /* @__PURE__ */ jsx51(StatRow, { title: "Wall Time:", children: /* @__PURE__ */ jsx51(Text51, { children: duration }) }),
124964
- /* @__PURE__ */ jsx51(StatRow, { title: "Agent Active:", children: /* @__PURE__ */ jsx51(Text51, { children: formatDuration(computed.agentActiveTime) }) }),
124965
- /* @__PURE__ */ jsx51(SubStatRow, { title: "API Time:", children: /* @__PURE__ */ jsxs48(Text51, { children: [
124988
+ /* @__PURE__ */ jsx52(StatRow, { title: "Wall Time:", children: /* @__PURE__ */ jsx52(Text51, { children: duration }) }),
124989
+ /* @__PURE__ */ jsx52(StatRow, { title: "Agent Active:", children: /* @__PURE__ */ jsx52(Text51, { children: formatDuration(computed.agentActiveTime) }) }),
124990
+ /* @__PURE__ */ jsx52(SubStatRow, { title: "API Time:", children: /* @__PURE__ */ jsxs48(Text51, { children: [
124966
124991
  formatDuration(computed.totalApiTime),
124967
124992
  " ",
124968
124993
  /* @__PURE__ */ jsxs48(Text51, { color: theme.text.secondary, children: [
@@ -124971,7 +124996,7 @@ var StatsDisplay = ({
124971
124996
  "%)"
124972
124997
  ] })
124973
124998
  ] }) }),
124974
- /* @__PURE__ */ jsx51(SubStatRow, { title: "Tool Time:", children: /* @__PURE__ */ jsxs48(Text51, { children: [
124999
+ /* @__PURE__ */ jsx52(SubStatRow, { title: "Tool Time:", children: /* @__PURE__ */ jsxs48(Text51, { children: [
124975
125000
  formatDuration(computed.totalToolTime),
124976
125001
  " ",
124977
125002
  /* @__PURE__ */ jsxs48(Text51, { color: theme.text.secondary, children: [
@@ -124981,7 +125006,7 @@ var StatsDisplay = ({
124981
125006
  ] })
124982
125007
  ] }) })
124983
125008
  ] }),
124984
- Object.keys(models).length > 0 && /* @__PURE__ */ jsx51(
125009
+ Object.keys(models).length > 0 && /* @__PURE__ */ jsx52(
124985
125010
  ModelUsageTable,
124986
125011
  {
124987
125012
  models,
@@ -124996,7 +125021,7 @@ var StatsDisplay = ({
124996
125021
 
124997
125022
  // packages/cli/src/ui/components/ModelStatsDisplay.tsx
124998
125023
  import { Box as Box46, Text as Text52 } from "ink";
124999
- import { jsx as jsx52, jsxs as jsxs49 } from "react/jsx-runtime";
125024
+ import { jsx as jsx53, jsxs as jsxs49 } from "react/jsx-runtime";
125000
125025
  var METRIC_COL_WIDTH = 28;
125001
125026
  var MODEL_COL_WIDTH = 22;
125002
125027
  var StatRow2 = ({
@@ -125005,8 +125030,8 @@ var StatRow2 = ({
125005
125030
  isSubtle = false,
125006
125031
  isSection = false
125007
125032
  }) => /* @__PURE__ */ jsxs49(Box46, { children: [
125008
- /* @__PURE__ */ jsx52(Box46, { width: METRIC_COL_WIDTH, children: /* @__PURE__ */ jsx52(Text52, { bold: isSection, color: isSection ? void 0 : Colors.LightBlue, children: isSubtle ? ` \u21B3 ${title}` : title }) }),
125009
- values.map((value, index) => /* @__PURE__ */ jsx52(Box46, { width: MODEL_COL_WIDTH, children: /* @__PURE__ */ jsx52(Text52, { children: value }) }, index))
125033
+ /* @__PURE__ */ jsx53(Box46, { width: METRIC_COL_WIDTH, children: /* @__PURE__ */ jsx53(Text52, { bold: isSection, color: isSection ? void 0 : Colors.LightBlue, children: isSubtle ? ` \u21B3 ${title}` : title }) }),
125034
+ values.map((value, index) => /* @__PURE__ */ jsx53(Box46, { width: MODEL_COL_WIDTH, children: /* @__PURE__ */ jsx53(Text52, { children: value }) }, index))
125010
125035
  ] });
125011
125036
  var ModelStatsDisplay = () => {
125012
125037
  const { stats } = useSessionStats();
@@ -125015,14 +125040,14 @@ var ModelStatsDisplay = () => {
125015
125040
  ([, metrics2]) => metrics2.api.totalRequests > 0
125016
125041
  );
125017
125042
  if (activeModels.length === 0) {
125018
- return /* @__PURE__ */ jsx52(
125043
+ return /* @__PURE__ */ jsx53(
125019
125044
  Box46,
125020
125045
  {
125021
125046
  borderStyle: "round",
125022
125047
  borderColor: Colors.Gray,
125023
125048
  paddingY: 1,
125024
125049
  paddingX: 2,
125025
- children: /* @__PURE__ */ jsx52(Text52, { children: "No API calls have been made in this session." })
125050
+ children: /* @__PURE__ */ jsx53(Text52, { children: "No API calls have been made in this session." })
125026
125051
  }
125027
125052
  );
125028
125053
  }
@@ -125044,13 +125069,13 @@ var ModelStatsDisplay = () => {
125044
125069
  paddingY: 1,
125045
125070
  paddingX: 2,
125046
125071
  children: [
125047
- /* @__PURE__ */ jsx52(Text52, { bold: true, color: Colors.AccentPurple, children: "Model Stats For Nerds" }),
125048
- /* @__PURE__ */ jsx52(Box46, { height: 1 }),
125072
+ /* @__PURE__ */ jsx53(Text52, { bold: true, color: Colors.AccentPurple, children: "Model Stats For Nerds" }),
125073
+ /* @__PURE__ */ jsx53(Box46, { height: 1 }),
125049
125074
  /* @__PURE__ */ jsxs49(Box46, { children: [
125050
- /* @__PURE__ */ jsx52(Box46, { width: METRIC_COL_WIDTH, children: /* @__PURE__ */ jsx52(Text52, { bold: true, children: "Metric" }) }),
125051
- modelNames.map((name2) => /* @__PURE__ */ jsx52(Box46, { width: MODEL_COL_WIDTH, children: /* @__PURE__ */ jsx52(Text52, { bold: true, children: name2 }) }, name2))
125075
+ /* @__PURE__ */ jsx53(Box46, { width: METRIC_COL_WIDTH, children: /* @__PURE__ */ jsx53(Text52, { bold: true, children: "Metric" }) }),
125076
+ modelNames.map((name2) => /* @__PURE__ */ jsx53(Box46, { width: MODEL_COL_WIDTH, children: /* @__PURE__ */ jsx53(Text52, { bold: true, children: name2 }) }, name2))
125052
125077
  ] }),
125053
- /* @__PURE__ */ jsx52(
125078
+ /* @__PURE__ */ jsx53(
125054
125079
  Box46,
125055
125080
  {
125056
125081
  borderStyle: "single",
@@ -125060,15 +125085,15 @@ var ModelStatsDisplay = () => {
125060
125085
  borderRight: false
125061
125086
  }
125062
125087
  ),
125063
- /* @__PURE__ */ jsx52(StatRow2, { title: "API", values: [], isSection: true }),
125064
- /* @__PURE__ */ jsx52(
125088
+ /* @__PURE__ */ jsx53(StatRow2, { title: "API", values: [], isSection: true }),
125089
+ /* @__PURE__ */ jsx53(
125065
125090
  StatRow2,
125066
125091
  {
125067
125092
  title: "Requests",
125068
125093
  values: getModelValues((m) => m.api.totalRequests.toLocaleString())
125069
125094
  }
125070
125095
  ),
125071
- /* @__PURE__ */ jsx52(
125096
+ /* @__PURE__ */ jsx53(
125072
125097
  StatRow2,
125073
125098
  {
125074
125099
  title: "Errors",
@@ -125089,7 +125114,7 @@ var ModelStatsDisplay = () => {
125089
125114
  })
125090
125115
  }
125091
125116
  ),
125092
- /* @__PURE__ */ jsx52(
125117
+ /* @__PURE__ */ jsx53(
125093
125118
  StatRow2,
125094
125119
  {
125095
125120
  title: "Avg Latency",
@@ -125099,16 +125124,16 @@ var ModelStatsDisplay = () => {
125099
125124
  })
125100
125125
  }
125101
125126
  ),
125102
- /* @__PURE__ */ jsx52(Box46, { height: 1 }),
125103
- /* @__PURE__ */ jsx52(StatRow2, { title: "Tokens", values: [], isSection: true }),
125104
- /* @__PURE__ */ jsx52(
125127
+ /* @__PURE__ */ jsx53(Box46, { height: 1 }),
125128
+ /* @__PURE__ */ jsx53(StatRow2, { title: "Tokens", values: [], isSection: true }),
125129
+ /* @__PURE__ */ jsx53(
125105
125130
  StatRow2,
125106
125131
  {
125107
125132
  title: "Total",
125108
- values: getModelValues((m) => /* @__PURE__ */ jsx52(Text52, { color: Colors.AccentYellow, children: m.tokens.total.toLocaleString() }))
125133
+ values: getModelValues((m) => /* @__PURE__ */ jsx53(Text52, { color: Colors.AccentYellow, children: m.tokens.total.toLocaleString() }))
125109
125134
  }
125110
125135
  ),
125111
- /* @__PURE__ */ jsx52(
125136
+ /* @__PURE__ */ jsx53(
125112
125137
  StatRow2,
125113
125138
  {
125114
125139
  title: "Prompt",
@@ -125116,7 +125141,7 @@ var ModelStatsDisplay = () => {
125116
125141
  values: getModelValues((m) => m.tokens.prompt.toLocaleString())
125117
125142
  }
125118
125143
  ),
125119
- hasCached && /* @__PURE__ */ jsx52(
125144
+ hasCached && /* @__PURE__ */ jsx53(
125120
125145
  StatRow2,
125121
125146
  {
125122
125147
  title: "Cached",
@@ -125132,7 +125157,7 @@ var ModelStatsDisplay = () => {
125132
125157
  })
125133
125158
  }
125134
125159
  ),
125135
- hasThoughts && /* @__PURE__ */ jsx52(
125160
+ hasThoughts && /* @__PURE__ */ jsx53(
125136
125161
  StatRow2,
125137
125162
  {
125138
125163
  title: "Thoughts",
@@ -125140,7 +125165,7 @@ var ModelStatsDisplay = () => {
125140
125165
  values: getModelValues((m) => m.tokens.thoughts.toLocaleString())
125141
125166
  }
125142
125167
  ),
125143
- hasTool && /* @__PURE__ */ jsx52(
125168
+ hasTool && /* @__PURE__ */ jsx53(
125144
125169
  StatRow2,
125145
125170
  {
125146
125171
  title: "Tool",
@@ -125148,7 +125173,7 @@ var ModelStatsDisplay = () => {
125148
125173
  values: getModelValues((m) => m.tokens.tool.toLocaleString())
125149
125174
  }
125150
125175
  ),
125151
- /* @__PURE__ */ jsx52(
125176
+ /* @__PURE__ */ jsx53(
125152
125177
  StatRow2,
125153
125178
  {
125154
125179
  title: "Output",
@@ -125163,7 +125188,7 @@ var ModelStatsDisplay = () => {
125163
125188
 
125164
125189
  // packages/cli/src/ui/components/ToolStatsDisplay.tsx
125165
125190
  import { Box as Box47, Text as Text53 } from "ink";
125166
- import { jsx as jsx53, jsxs as jsxs50 } from "react/jsx-runtime";
125191
+ import { jsx as jsx54, jsxs as jsxs50 } from "react/jsx-runtime";
125167
125192
  var TOOL_NAME_COL_WIDTH = 25;
125168
125193
  var CALLS_COL_WIDTH = 8;
125169
125194
  var SUCCESS_RATE_COL_WIDTH = 15;
@@ -125176,13 +125201,13 @@ var StatRow3 = ({ name: name2, stats }) => {
125176
125201
  yellow: TOOL_SUCCESS_RATE_MEDIUM
125177
125202
  });
125178
125203
  return /* @__PURE__ */ jsxs50(Box47, { children: [
125179
- /* @__PURE__ */ jsx53(Box47, { width: TOOL_NAME_COL_WIDTH, children: /* @__PURE__ */ jsx53(Text53, { color: Colors.LightBlue, children: name2 }) }),
125180
- /* @__PURE__ */ jsx53(Box47, { width: CALLS_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ jsx53(Text53, { children: stats.count }) }),
125181
- /* @__PURE__ */ jsx53(Box47, { width: SUCCESS_RATE_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ jsxs50(Text53, { color: successColor, children: [
125204
+ /* @__PURE__ */ jsx54(Box47, { width: TOOL_NAME_COL_WIDTH, children: /* @__PURE__ */ jsx54(Text53, { color: Colors.LightBlue, children: name2 }) }),
125205
+ /* @__PURE__ */ jsx54(Box47, { width: CALLS_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ jsx54(Text53, { children: stats.count }) }),
125206
+ /* @__PURE__ */ jsx54(Box47, { width: SUCCESS_RATE_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ jsxs50(Text53, { color: successColor, children: [
125182
125207
  successRate.toFixed(1),
125183
125208
  "%"
125184
125209
  ] }) }),
125185
- /* @__PURE__ */ jsx53(Box47, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ jsx53(Text53, { children: formatDuration(avgDuration) }) })
125210
+ /* @__PURE__ */ jsx54(Box47, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ jsx54(Text53, { children: formatDuration(avgDuration) }) })
125186
125211
  ] });
125187
125212
  };
125188
125213
  var ToolStatsDisplay = () => {
@@ -125192,14 +125217,14 @@ var ToolStatsDisplay = () => {
125192
125217
  ([, metrics2]) => metrics2.count > 0
125193
125218
  );
125194
125219
  if (activeTools.length === 0) {
125195
- return /* @__PURE__ */ jsx53(
125220
+ return /* @__PURE__ */ jsx54(
125196
125221
  Box47,
125197
125222
  {
125198
125223
  borderStyle: "round",
125199
125224
  borderColor: Colors.Gray,
125200
125225
  paddingY: 1,
125201
125226
  paddingX: 2,
125202
- children: /* @__PURE__ */ jsx53(Text53, { children: "No tool calls have been made in this session." })
125227
+ children: /* @__PURE__ */ jsx54(Text53, { children: "No tool calls have been made in this session." })
125203
125228
  }
125204
125229
  );
125205
125230
  }
@@ -125228,15 +125253,15 @@ var ToolStatsDisplay = () => {
125228
125253
  paddingX: 2,
125229
125254
  width: 70,
125230
125255
  children: [
125231
- /* @__PURE__ */ jsx53(Text53, { bold: true, color: Colors.AccentPurple, children: "Tool Stats For Nerds" }),
125232
- /* @__PURE__ */ jsx53(Box47, { height: 1 }),
125256
+ /* @__PURE__ */ jsx54(Text53, { bold: true, color: Colors.AccentPurple, children: "Tool Stats For Nerds" }),
125257
+ /* @__PURE__ */ jsx54(Box47, { height: 1 }),
125233
125258
  /* @__PURE__ */ jsxs50(Box47, { children: [
125234
- /* @__PURE__ */ jsx53(Box47, { width: TOOL_NAME_COL_WIDTH, children: /* @__PURE__ */ jsx53(Text53, { bold: true, children: "Tool Name" }) }),
125235
- /* @__PURE__ */ jsx53(Box47, { width: CALLS_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ jsx53(Text53, { bold: true, children: "Calls" }) }),
125236
- /* @__PURE__ */ jsx53(Box47, { width: SUCCESS_RATE_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ jsx53(Text53, { bold: true, children: "Success Rate" }) }),
125237
- /* @__PURE__ */ jsx53(Box47, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ jsx53(Text53, { bold: true, children: "Avg Duration" }) })
125259
+ /* @__PURE__ */ jsx54(Box47, { width: TOOL_NAME_COL_WIDTH, children: /* @__PURE__ */ jsx54(Text53, { bold: true, children: "Tool Name" }) }),
125260
+ /* @__PURE__ */ jsx54(Box47, { width: CALLS_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ jsx54(Text53, { bold: true, children: "Calls" }) }),
125261
+ /* @__PURE__ */ jsx54(Box47, { width: SUCCESS_RATE_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ jsx54(Text53, { bold: true, children: "Success Rate" }) }),
125262
+ /* @__PURE__ */ jsx54(Box47, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ jsx54(Text53, { bold: true, children: "Avg Duration" }) })
125238
125263
  ] }),
125239
- /* @__PURE__ */ jsx53(
125264
+ /* @__PURE__ */ jsx54(
125240
125265
  Box47,
125241
125266
  {
125242
125267
  borderStyle: "single",
@@ -125247,50 +125272,50 @@ var ToolStatsDisplay = () => {
125247
125272
  width: "100%"
125248
125273
  }
125249
125274
  ),
125250
- activeTools.map(([name2, stats2]) => /* @__PURE__ */ jsx53(StatRow3, { name: name2, stats: stats2 }, name2)),
125251
- /* @__PURE__ */ jsx53(Box47, { height: 1 }),
125252
- /* @__PURE__ */ jsx53(Text53, { bold: true, children: "User Decision Summary" }),
125275
+ activeTools.map(([name2, stats2]) => /* @__PURE__ */ jsx54(StatRow3, { name: name2, stats: stats2 }, name2)),
125276
+ /* @__PURE__ */ jsx54(Box47, { height: 1 }),
125277
+ /* @__PURE__ */ jsx54(Text53, { bold: true, children: "User Decision Summary" }),
125253
125278
  /* @__PURE__ */ jsxs50(Box47, { children: [
125254
- /* @__PURE__ */ jsx53(
125279
+ /* @__PURE__ */ jsx54(
125255
125280
  Box47,
125256
125281
  {
125257
125282
  width: TOOL_NAME_COL_WIDTH + CALLS_COL_WIDTH + SUCCESS_RATE_COL_WIDTH,
125258
- children: /* @__PURE__ */ jsx53(Text53, { color: Colors.LightBlue, children: "Total Reviewed Suggestions:" })
125283
+ children: /* @__PURE__ */ jsx54(Text53, { color: Colors.LightBlue, children: "Total Reviewed Suggestions:" })
125259
125284
  }
125260
125285
  ),
125261
- /* @__PURE__ */ jsx53(Box47, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ jsx53(Text53, { children: totalReviewed }) })
125286
+ /* @__PURE__ */ jsx54(Box47, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ jsx54(Text53, { children: totalReviewed }) })
125262
125287
  ] }),
125263
125288
  /* @__PURE__ */ jsxs50(Box47, { children: [
125264
- /* @__PURE__ */ jsx53(
125289
+ /* @__PURE__ */ jsx54(
125265
125290
  Box47,
125266
125291
  {
125267
125292
  width: TOOL_NAME_COL_WIDTH + CALLS_COL_WIDTH + SUCCESS_RATE_COL_WIDTH,
125268
- children: /* @__PURE__ */ jsx53(Text53, { children: " \xBB Accepted:" })
125293
+ children: /* @__PURE__ */ jsx54(Text53, { children: " \xBB Accepted:" })
125269
125294
  }
125270
125295
  ),
125271
- /* @__PURE__ */ jsx53(Box47, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ jsx53(Text53, { color: Colors.AccentGreen, children: totalDecisions.accept }) })
125296
+ /* @__PURE__ */ jsx54(Box47, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ jsx54(Text53, { color: Colors.AccentGreen, children: totalDecisions.accept }) })
125272
125297
  ] }),
125273
125298
  /* @__PURE__ */ jsxs50(Box47, { children: [
125274
- /* @__PURE__ */ jsx53(
125299
+ /* @__PURE__ */ jsx54(
125275
125300
  Box47,
125276
125301
  {
125277
125302
  width: TOOL_NAME_COL_WIDTH + CALLS_COL_WIDTH + SUCCESS_RATE_COL_WIDTH,
125278
- children: /* @__PURE__ */ jsx53(Text53, { children: " \xBB Rejected:" })
125303
+ children: /* @__PURE__ */ jsx54(Text53, { children: " \xBB Rejected:" })
125279
125304
  }
125280
125305
  ),
125281
- /* @__PURE__ */ jsx53(Box47, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ jsx53(Text53, { color: Colors.AccentRed, children: totalDecisions.reject }) })
125306
+ /* @__PURE__ */ jsx54(Box47, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ jsx54(Text53, { color: Colors.AccentRed, children: totalDecisions.reject }) })
125282
125307
  ] }),
125283
125308
  /* @__PURE__ */ jsxs50(Box47, { children: [
125284
- /* @__PURE__ */ jsx53(
125309
+ /* @__PURE__ */ jsx54(
125285
125310
  Box47,
125286
125311
  {
125287
125312
  width: TOOL_NAME_COL_WIDTH + CALLS_COL_WIDTH + SUCCESS_RATE_COL_WIDTH,
125288
- children: /* @__PURE__ */ jsx53(Text53, { children: " \xBB Modified:" })
125313
+ children: /* @__PURE__ */ jsx54(Text53, { children: " \xBB Modified:" })
125289
125314
  }
125290
125315
  ),
125291
- /* @__PURE__ */ jsx53(Box47, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ jsx53(Text53, { color: Colors.AccentYellow, children: totalDecisions.modify }) })
125316
+ /* @__PURE__ */ jsx54(Box47, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ jsx54(Text53, { color: Colors.AccentYellow, children: totalDecisions.modify }) })
125292
125317
  ] }),
125293
- /* @__PURE__ */ jsx53(
125318
+ /* @__PURE__ */ jsx54(
125294
125319
  Box47,
125295
125320
  {
125296
125321
  borderStyle: "single",
@@ -125302,14 +125327,14 @@ var ToolStatsDisplay = () => {
125302
125327
  }
125303
125328
  ),
125304
125329
  /* @__PURE__ */ jsxs50(Box47, { children: [
125305
- /* @__PURE__ */ jsx53(
125330
+ /* @__PURE__ */ jsx54(
125306
125331
  Box47,
125307
125332
  {
125308
125333
  width: TOOL_NAME_COL_WIDTH + CALLS_COL_WIDTH + SUCCESS_RATE_COL_WIDTH,
125309
- children: /* @__PURE__ */ jsx53(Text53, { children: " Overall Agreement Rate:" })
125334
+ children: /* @__PURE__ */ jsx54(Text53, { children: " Overall Agreement Rate:" })
125310
125335
  }
125311
125336
  ),
125312
- /* @__PURE__ */ jsx53(Box47, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ jsx53(Text53, { bold: true, color: totalReviewed > 0 ? agreementColor : void 0, children: totalReviewed > 0 ? `${agreementRate.toFixed(1)}%` : "--" }) })
125337
+ /* @__PURE__ */ jsx54(Box47, { width: AVG_DURATION_COL_WIDTH, justifyContent: "flex-end", children: /* @__PURE__ */ jsx54(Text53, { bold: true, color: totalReviewed > 0 ? agreementColor : void 0, children: totalReviewed > 0 ? `${agreementRate.toFixed(1)}%` : "--" }) })
125313
125338
  ] })
125314
125339
  ]
125315
125340
  }
@@ -125317,14 +125342,14 @@ var ToolStatsDisplay = () => {
125317
125342
  };
125318
125343
 
125319
125344
  // packages/cli/src/ui/components/SessionSummaryDisplay.tsx
125320
- import { jsx as jsx54 } from "react/jsx-runtime";
125345
+ import { jsx as jsx55 } from "react/jsx-runtime";
125321
125346
  var SessionSummaryDisplay = ({
125322
125347
  duration
125323
- }) => /* @__PURE__ */ jsx54(StatsDisplay, { title: "Agent powering down. Goodbye!", duration });
125348
+ }) => /* @__PURE__ */ jsx55(StatsDisplay, { title: "Agent powering down. Goodbye!", duration });
125324
125349
 
125325
125350
  // packages/cli/src/ui/components/Help.tsx
125326
125351
  import { Box as Box48, Text as Text54 } from "ink";
125327
- import { jsx as jsx55, jsxs as jsxs51 } from "react/jsx-runtime";
125352
+ import { jsx as jsx56, jsxs as jsxs51 } from "react/jsx-runtime";
125328
125353
  var Help = ({ commands }) => /* @__PURE__ */ jsxs51(
125329
125354
  Box48,
125330
125355
  {
@@ -125334,34 +125359,34 @@ var Help = ({ commands }) => /* @__PURE__ */ jsxs51(
125334
125359
  borderStyle: "round",
125335
125360
  padding: 1,
125336
125361
  children: [
125337
- /* @__PURE__ */ jsx55(Text54, { bold: true, color: Colors.Foreground, children: "Basics:" }),
125362
+ /* @__PURE__ */ jsx56(Text54, { bold: true, color: Colors.Foreground, children: "Basics:" }),
125338
125363
  /* @__PURE__ */ jsxs51(Text54, { color: Colors.Foreground, children: [
125339
- /* @__PURE__ */ jsx55(Text54, { bold: true, color: Colors.AccentPurple, children: "Add context" }),
125364
+ /* @__PURE__ */ jsx56(Text54, { bold: true, color: Colors.AccentPurple, children: "Add context" }),
125340
125365
  ": Use",
125341
125366
  " ",
125342
- /* @__PURE__ */ jsx55(Text54, { bold: true, color: Colors.AccentPurple, children: "@" }),
125367
+ /* @__PURE__ */ jsx56(Text54, { bold: true, color: Colors.AccentPurple, children: "@" }),
125343
125368
  " ",
125344
125369
  "to specify files for context (e.g.,",
125345
125370
  " ",
125346
- /* @__PURE__ */ jsx55(Text54, { bold: true, color: Colors.AccentPurple, children: "@src/myFile.ts" }),
125371
+ /* @__PURE__ */ jsx56(Text54, { bold: true, color: Colors.AccentPurple, children: "@src/myFile.ts" }),
125347
125372
  ") to target specific files or folders."
125348
125373
  ] }),
125349
125374
  /* @__PURE__ */ jsxs51(Text54, { color: Colors.Foreground, children: [
125350
- /* @__PURE__ */ jsx55(Text54, { bold: true, color: Colors.AccentPurple, children: "Shell mode" }),
125375
+ /* @__PURE__ */ jsx56(Text54, { bold: true, color: Colors.AccentPurple, children: "Shell mode" }),
125351
125376
  ": Execute shell commands via",
125352
125377
  " ",
125353
- /* @__PURE__ */ jsx55(Text54, { bold: true, color: Colors.AccentPurple, children: "!" }),
125378
+ /* @__PURE__ */ jsx56(Text54, { bold: true, color: Colors.AccentPurple, children: "!" }),
125354
125379
  " ",
125355
125380
  "(e.g.,",
125356
125381
  " ",
125357
- /* @__PURE__ */ jsx55(Text54, { bold: true, color: Colors.AccentPurple, children: "!npm run start" }),
125382
+ /* @__PURE__ */ jsx56(Text54, { bold: true, color: Colors.AccentPurple, children: "!npm run start" }),
125358
125383
  ") or use natural language (e.g.",
125359
125384
  " ",
125360
- /* @__PURE__ */ jsx55(Text54, { bold: true, color: Colors.AccentPurple, children: "start server" }),
125385
+ /* @__PURE__ */ jsx56(Text54, { bold: true, color: Colors.AccentPurple, children: "start server" }),
125361
125386
  ")."
125362
125387
  ] }),
125363
- /* @__PURE__ */ jsx55(Box48, { height: 1 }),
125364
- /* @__PURE__ */ jsx55(Text54, { bold: true, color: Colors.Foreground, children: "Commands:" }),
125388
+ /* @__PURE__ */ jsx56(Box48, { height: 1 }),
125389
+ /* @__PURE__ */ jsx56(Text54, { bold: true, color: Colors.Foreground, children: "Commands:" }),
125365
125390
  commands.filter((command) => command.description).map((command) => /* @__PURE__ */ jsxs51(Box48, { flexDirection: "column", children: [
125366
125391
  /* @__PURE__ */ jsxs51(Text54, { color: Colors.Foreground, children: [
125367
125392
  /* @__PURE__ */ jsxs51(Text54, { bold: true, color: Colors.AccentPurple, children: [
@@ -125387,70 +125412,70 @@ var Help = ({ commands }) => /* @__PURE__ */ jsxs51(
125387
125412
  ] }),
125388
125413
  "- shell command"
125389
125414
  ] }),
125390
- /* @__PURE__ */ jsx55(Box48, { height: 1 }),
125391
- /* @__PURE__ */ jsx55(Text54, { bold: true, color: Colors.Foreground, children: "Keyboard Shortcuts:" }),
125415
+ /* @__PURE__ */ jsx56(Box48, { height: 1 }),
125416
+ /* @__PURE__ */ jsx56(Text54, { bold: true, color: Colors.Foreground, children: "Keyboard Shortcuts:" }),
125392
125417
  /* @__PURE__ */ jsxs51(Text54, { color: Colors.Foreground, children: [
125393
- /* @__PURE__ */ jsx55(Text54, { bold: true, color: Colors.AccentPurple, children: "Alt+Left/Right" }),
125418
+ /* @__PURE__ */ jsx56(Text54, { bold: true, color: Colors.AccentPurple, children: "Alt+Left/Right" }),
125394
125419
  " ",
125395
125420
  "- Jump through words in the input"
125396
125421
  ] }),
125397
125422
  /* @__PURE__ */ jsxs51(Text54, { color: Colors.Foreground, children: [
125398
- /* @__PURE__ */ jsx55(Text54, { bold: true, color: Colors.AccentPurple, children: "Ctrl+C" }),
125423
+ /* @__PURE__ */ jsx56(Text54, { bold: true, color: Colors.AccentPurple, children: "Ctrl+C" }),
125399
125424
  " ",
125400
125425
  "- Quit application"
125401
125426
  ] }),
125402
125427
  /* @__PURE__ */ jsxs51(Text54, { color: Colors.Foreground, children: [
125403
- /* @__PURE__ */ jsx55(Text54, { bold: true, color: Colors.AccentPurple, children: process.platform === "win32" ? "Ctrl+Enter" : "Ctrl+J" }),
125428
+ /* @__PURE__ */ jsx56(Text54, { bold: true, color: Colors.AccentPurple, children: process.platform === "win32" ? "Ctrl+Enter" : "Ctrl+J" }),
125404
125429
  " ",
125405
125430
  process.platform === "linux" ? "- New line (Alt+Enter works for certain linux distros)" : "- New line"
125406
125431
  ] }),
125407
125432
  /* @__PURE__ */ jsxs51(Text54, { color: Colors.Foreground, children: [
125408
- /* @__PURE__ */ jsx55(Text54, { bold: true, color: Colors.AccentPurple, children: "Ctrl+L" }),
125433
+ /* @__PURE__ */ jsx56(Text54, { bold: true, color: Colors.AccentPurple, children: "Ctrl+L" }),
125409
125434
  " ",
125410
125435
  "- Clear the screen"
125411
125436
  ] }),
125412
125437
  /* @__PURE__ */ jsxs51(Text54, { color: Colors.Foreground, children: [
125413
- /* @__PURE__ */ jsx55(Text54, { bold: true, color: Colors.AccentPurple, children: process.platform === "darwin" ? "Ctrl+X / Meta+Enter" : "Ctrl+X" }),
125438
+ /* @__PURE__ */ jsx56(Text54, { bold: true, color: Colors.AccentPurple, children: process.platform === "darwin" ? "Ctrl+X / Meta+Enter" : "Ctrl+X" }),
125414
125439
  " ",
125415
125440
  "- Open input in external editor"
125416
125441
  ] }),
125417
125442
  /* @__PURE__ */ jsxs51(Text54, { color: Colors.Foreground, children: [
125418
- /* @__PURE__ */ jsx55(Text54, { bold: true, color: Colors.AccentPurple, children: "Ctrl+Y" }),
125443
+ /* @__PURE__ */ jsx56(Text54, { bold: true, color: Colors.AccentPurple, children: "Ctrl+Y" }),
125419
125444
  " ",
125420
125445
  "- Toggle YOLO mode"
125421
125446
  ] }),
125422
125447
  /* @__PURE__ */ jsxs51(Text54, { color: Colors.Foreground, children: [
125423
- /* @__PURE__ */ jsx55(Text54, { bold: true, color: Colors.AccentPurple, children: "Enter" }),
125448
+ /* @__PURE__ */ jsx56(Text54, { bold: true, color: Colors.AccentPurple, children: "Enter" }),
125424
125449
  " ",
125425
125450
  "- Send message"
125426
125451
  ] }),
125427
125452
  /* @__PURE__ */ jsxs51(Text54, { color: Colors.Foreground, children: [
125428
- /* @__PURE__ */ jsx55(Text54, { bold: true, color: Colors.AccentPurple, children: "Esc" }),
125453
+ /* @__PURE__ */ jsx56(Text54, { bold: true, color: Colors.AccentPurple, children: "Esc" }),
125429
125454
  " ",
125430
125455
  "- Cancel operation"
125431
125456
  ] }),
125432
125457
  /* @__PURE__ */ jsxs51(Text54, { color: Colors.Foreground, children: [
125433
- /* @__PURE__ */ jsx55(Text54, { bold: true, color: Colors.AccentPurple, children: "Shift+Tab" }),
125458
+ /* @__PURE__ */ jsx56(Text54, { bold: true, color: Colors.AccentPurple, children: "Shift+Tab" }),
125434
125459
  " ",
125435
125460
  "- Toggle auto-accepting edits"
125436
125461
  ] }),
125437
125462
  /* @__PURE__ */ jsxs51(Text54, { color: Colors.Foreground, children: [
125438
- /* @__PURE__ */ jsx55(Text54, { bold: true, color: Colors.AccentPurple, children: "Up/Down" }),
125463
+ /* @__PURE__ */ jsx56(Text54, { bold: true, color: Colors.AccentPurple, children: "Up/Down" }),
125439
125464
  " ",
125440
125465
  "- Cycle through your prompt history"
125441
125466
  ] }),
125442
- /* @__PURE__ */ jsx55(Box48, { height: 1 }),
125467
+ /* @__PURE__ */ jsx56(Box48, { height: 1 }),
125443
125468
  /* @__PURE__ */ jsxs51(Text54, { color: Colors.Foreground, children: [
125444
125469
  "For a full list of shortcuts, see",
125445
125470
  " ",
125446
- /* @__PURE__ */ jsx55(Text54, { bold: true, color: Colors.AccentPurple, children: "docs/keyboard-shortcuts.md" })
125471
+ /* @__PURE__ */ jsx56(Text54, { bold: true, color: Colors.AccentPurple, children: "docs/keyboard-shortcuts.md" })
125447
125472
  ] })
125448
125473
  ]
125449
125474
  }
125450
125475
  );
125451
125476
 
125452
125477
  // packages/cli/src/ui/components/HistoryItemDisplay.tsx
125453
- import { jsx as jsx56, jsxs as jsxs52 } from "react/jsx-runtime";
125478
+ import { jsx as jsx57, jsxs as jsxs52 } from "react/jsx-runtime";
125454
125479
  var HistoryItemDisplay = ({
125455
125480
  item,
125456
125481
  availableTerminalHeight,
@@ -125460,9 +125485,9 @@ var HistoryItemDisplay = ({
125460
125485
  commands,
125461
125486
  isFocused = true
125462
125487
  }) => /* @__PURE__ */ jsxs52(Box49, { flexDirection: "column", children: [
125463
- item.type === "user" && /* @__PURE__ */ jsx56(UserMessage, { text: item.text }),
125464
- item.type === "user_shell" && /* @__PURE__ */ jsx56(UserShellMessage, { text: item.text }),
125465
- item.type === "gemini" && /* @__PURE__ */ jsx56(
125488
+ item.type === "user" && /* @__PURE__ */ jsx57(UserMessage, { text: item.text }),
125489
+ item.type === "user_shell" && /* @__PURE__ */ jsx57(UserShellMessage, { text: item.text }),
125490
+ item.type === "gemini" && /* @__PURE__ */ jsx57(
125466
125491
  GeminiMessage,
125467
125492
  {
125468
125493
  text: item.text,
@@ -125471,7 +125496,7 @@ var HistoryItemDisplay = ({
125471
125496
  terminalWidth
125472
125497
  }
125473
125498
  ),
125474
- item.type === "gemini_content" && /* @__PURE__ */ jsx56(
125499
+ item.type === "gemini_content" && /* @__PURE__ */ jsx57(
125475
125500
  GeminiMessageContent,
125476
125501
  {
125477
125502
  text: item.text,
@@ -125480,9 +125505,9 @@ var HistoryItemDisplay = ({
125480
125505
  terminalWidth
125481
125506
  }
125482
125507
  ),
125483
- item.type === "info" && /* @__PURE__ */ jsx56(InfoMessage, { text: item.text }),
125484
- item.type === "error" && /* @__PURE__ */ jsx56(ErrorMessage, { text: item.text }),
125485
- item.type === "about" && /* @__PURE__ */ jsx56(
125508
+ item.type === "info" && /* @__PURE__ */ jsx57(InfoMessage, { text: item.text }),
125509
+ item.type === "error" && /* @__PURE__ */ jsx57(ErrorMessage, { text: item.text }),
125510
+ item.type === "about" && /* @__PURE__ */ jsx57(
125486
125511
  AboutBox,
125487
125512
  {
125488
125513
  cliVersion: item.cliVersion,
@@ -125494,12 +125519,12 @@ var HistoryItemDisplay = ({
125494
125519
  ideClient: item.ideClient
125495
125520
  }
125496
125521
  ),
125497
- item.type === "help" && commands && /* @__PURE__ */ jsx56(Help, { commands }),
125498
- item.type === "stats" && /* @__PURE__ */ jsx56(StatsDisplay, { duration: item.duration }),
125499
- item.type === "model_stats" && /* @__PURE__ */ jsx56(ModelStatsDisplay, {}),
125500
- item.type === "tool_stats" && /* @__PURE__ */ jsx56(ToolStatsDisplay, {}),
125501
- item.type === "quit" && /* @__PURE__ */ jsx56(SessionSummaryDisplay, { duration: item.duration }),
125502
- item.type === "tool_group" && /* @__PURE__ */ jsx56(
125522
+ item.type === "help" && commands && /* @__PURE__ */ jsx57(Help, { commands }),
125523
+ item.type === "stats" && /* @__PURE__ */ jsx57(StatsDisplay, { duration: item.duration }),
125524
+ item.type === "model_stats" && /* @__PURE__ */ jsx57(ModelStatsDisplay, {}),
125525
+ item.type === "tool_stats" && /* @__PURE__ */ jsx57(ToolStatsDisplay, {}),
125526
+ item.type === "quit" && /* @__PURE__ */ jsx57(SessionSummaryDisplay, { duration: item.duration }),
125527
+ item.type === "tool_group" && /* @__PURE__ */ jsx57(
125503
125528
  ToolGroupMessage,
125504
125529
  {
125505
125530
  toolCalls: item.tools,
@@ -125510,12 +125535,12 @@ var HistoryItemDisplay = ({
125510
125535
  isFocused
125511
125536
  }
125512
125537
  ),
125513
- item.type === "compression" && /* @__PURE__ */ jsx56(CompressionMessage, { compression: item.compression })
125538
+ item.type === "compression" && /* @__PURE__ */ jsx57(CompressionMessage, { compression: item.compression })
125514
125539
  ] }, item.id);
125515
125540
 
125516
125541
  // packages/cli/src/ui/components/ContextSummaryDisplay.tsx
125517
125542
  import { Box as Box50, Text as Text55 } from "ink";
125518
- import { jsx as jsx57, jsxs as jsxs53 } from "react/jsx-runtime";
125543
+ import { jsx as jsx58, jsxs as jsxs53 } from "react/jsx-runtime";
125519
125544
  var ContextSummaryDisplay = ({
125520
125545
  geminiMdFileCount,
125521
125546
  contextFileNames,
@@ -125530,7 +125555,7 @@ var ContextSummaryDisplay = ({
125530
125555
  const blockedMcpServerCount = blockedMcpServers?.length || 0;
125531
125556
  const openFileCount = ideContext2?.workspaceState?.openFiles?.length ?? 0;
125532
125557
  if (geminiMdFileCount === 0 && mcpServerCount === 0 && blockedMcpServerCount === 0 && openFileCount === 0) {
125533
- return /* @__PURE__ */ jsx57(Text55, { children: " " });
125558
+ return /* @__PURE__ */ jsx58(Text55, { children: " " });
125534
125559
  }
125535
125560
  const openFilesText = (() => {
125536
125561
  if (openFileCount === 0) {
@@ -125576,7 +125601,7 @@ var ContextSummaryDisplay = ({
125576
125601
  const summaryParts = [openFilesText, geminiMdText, mcpText].filter(Boolean);
125577
125602
  if (isNarrow) {
125578
125603
  return /* @__PURE__ */ jsxs53(Box50, { flexDirection: "column", children: [
125579
- /* @__PURE__ */ jsx57(Text55, { color: Colors.Gray, children: "Using:" }),
125604
+ /* @__PURE__ */ jsx58(Text55, { color: Colors.Gray, children: "Using:" }),
125580
125605
  summaryParts.map((part, index) => /* @__PURE__ */ jsxs53(Text55, { color: Colors.Gray, children: [
125581
125606
  " ",
125582
125607
  "- ",
@@ -125584,7 +125609,7 @@ var ContextSummaryDisplay = ({
125584
125609
  ] }, index))
125585
125610
  ] });
125586
125611
  }
125587
- return /* @__PURE__ */ jsx57(Box50, { children: /* @__PURE__ */ jsxs53(Text55, { color: Colors.Gray, children: [
125612
+ return /* @__PURE__ */ jsx58(Box50, { children: /* @__PURE__ */ jsxs53(Text55, { color: Colors.Gray, children: [
125588
125613
  "Using: ",
125589
125614
  summaryParts.join(" | ")
125590
125615
  ] }) });
@@ -125653,7 +125678,7 @@ import process18 from "node:process";
125653
125678
  // packages/cli/src/ui/IdeIntegrationNudge.tsx
125654
125679
  init_dist2();
125655
125680
  import { Box as Box51, Text as Text56 } from "ink";
125656
- import { jsx as jsx58, jsxs as jsxs54 } from "react/jsx-runtime";
125681
+ import { jsx as jsx59, jsxs as jsxs54 } from "react/jsx-runtime";
125657
125682
  function IdeIntegrationNudge({
125658
125683
  ide,
125659
125684
  onComplete
@@ -125707,12 +125732,12 @@ function IdeIntegrationNudge({
125707
125732
  children: [
125708
125733
  /* @__PURE__ */ jsxs54(Box51, { marginBottom: 1, flexDirection: "column", children: [
125709
125734
  /* @__PURE__ */ jsxs54(Text56, { children: [
125710
- /* @__PURE__ */ jsx58(Text56, { color: "yellow", children: "> " }),
125735
+ /* @__PURE__ */ jsx59(Text56, { color: "yellow", children: "> " }),
125711
125736
  `Do you want to connect ${ideName ?? "your"} editor to FSS Link?`
125712
125737
  ] }),
125713
- /* @__PURE__ */ jsx58(Text56, { dimColor: true, children: installText })
125738
+ /* @__PURE__ */ jsx59(Text56, { dimColor: true, children: installText })
125714
125739
  ] }),
125715
- /* @__PURE__ */ jsx58(RadioButtonSelect, { items: OPTIONS, onSelect: onComplete })
125740
+ /* @__PURE__ */ jsx59(RadioButtonSelect, { items: OPTIONS, onSelect: onComplete })
125716
125741
  ]
125717
125742
  }
125718
125743
  );
@@ -125809,7 +125834,7 @@ import {
125809
125834
  useEffect as useEffect40,
125810
125835
  useState as useState43
125811
125836
  } from "react";
125812
- import { jsx as jsx59 } from "react/jsx-runtime";
125837
+ import { jsx as jsx60 } from "react/jsx-runtime";
125813
125838
  var VimModeContext = createContext5(void 0);
125814
125839
  var VimModeProvider = ({
125815
125840
  children,
@@ -125842,7 +125867,7 @@ var VimModeProvider = ({
125842
125867
  toggleVimEnabled,
125843
125868
  setVimMode
125844
125869
  };
125845
- return /* @__PURE__ */ jsx59(VimModeContext.Provider, { value, children });
125870
+ return /* @__PURE__ */ jsx60(VimModeContext.Provider, { value, children });
125846
125871
  };
125847
125872
  var useVimMode = () => {
125848
125873
  const context = useContext5(VimModeContext);
@@ -126410,15 +126435,15 @@ import * as fs67 from "fs";
126410
126435
 
126411
126436
  // packages/cli/src/ui/components/UpdateNotification.tsx
126412
126437
  import { Box as Box52, Text as Text57 } from "ink";
126413
- import { jsx as jsx60 } from "react/jsx-runtime";
126414
- var UpdateNotification = ({ message }) => /* @__PURE__ */ jsx60(
126438
+ import { jsx as jsx61 } from "react/jsx-runtime";
126439
+ var UpdateNotification = ({ message }) => /* @__PURE__ */ jsx61(
126415
126440
  Box52,
126416
126441
  {
126417
126442
  borderStyle: "round",
126418
126443
  borderColor: Colors.AccentYellow,
126419
126444
  paddingX: 1,
126420
126445
  marginY: 1,
126421
- children: /* @__PURE__ */ jsx60(Text57, { color: Colors.AccentYellow, children: message })
126446
+ children: /* @__PURE__ */ jsx61(Text57, { color: Colors.AccentYellow, children: message })
126422
126447
  }
126423
126448
  );
126424
126449
 
@@ -126603,14 +126628,14 @@ init_SearchEngineConfigProvider();
126603
126628
 
126604
126629
  // packages/cli/src/ui/components/ShowMoreLines.tsx
126605
126630
  import { Box as Box53, Text as Text58 } from "ink";
126606
- import { jsx as jsx61 } from "react/jsx-runtime";
126631
+ import { jsx as jsx62 } from "react/jsx-runtime";
126607
126632
  var ShowMoreLines = ({ constrainHeight }) => {
126608
126633
  const overflowState = useOverflowState();
126609
126634
  const streamingState = useStreamingContext();
126610
126635
  if (overflowState === void 0 || overflowState.overflowingIds.size === 0 || !constrainHeight || !(streamingState === "idle" /* Idle */ || streamingState === "waiting_for_confirmation" /* WaitingForConfirmation */)) {
126611
126636
  return null;
126612
126637
  }
126613
- return /* @__PURE__ */ jsx61(Box53, { children: /* @__PURE__ */ jsx61(Text58, { color: Colors.Gray, wrap: "truncate", children: "Press ctrl-s to show more lines" }) });
126638
+ return /* @__PURE__ */ jsx62(Box53, { children: /* @__PURE__ */ jsx62(Text58, { color: Colors.Gray, wrap: "truncate", children: "Press ctrl-s to show more lines" }) });
126614
126639
  };
126615
126640
 
126616
126641
  // packages/cli/src/ui/privacy/PrivacyNotice.tsx
@@ -126619,7 +126644,7 @@ import { Box as Box57 } from "ink";
126619
126644
 
126620
126645
  // packages/cli/src/ui/privacy/GeminiPrivacyNotice.tsx
126621
126646
  import { Box as Box54, Newline, Text as Text59 } from "ink";
126622
- import { jsx as jsx62, jsxs as jsxs55 } from "react/jsx-runtime";
126647
+ import { jsx as jsx63, jsxs as jsxs55 } from "react/jsx-runtime";
126623
126648
  var GeminiPrivacyNotice = ({ onExit }) => {
126624
126649
  useKeypress(
126625
126650
  (key) => {
@@ -126630,47 +126655,47 @@ var GeminiPrivacyNotice = ({ onExit }) => {
126630
126655
  { isActive: true }
126631
126656
  );
126632
126657
  return /* @__PURE__ */ jsxs55(Box54, { flexDirection: "column", marginBottom: 1, children: [
126633
- /* @__PURE__ */ jsx62(Text59, { bold: true, color: Colors.AccentPurple, children: "Gemini API Key Notice" }),
126634
- /* @__PURE__ */ jsx62(Newline, {}),
126658
+ /* @__PURE__ */ jsx63(Text59, { bold: true, color: Colors.AccentPurple, children: "Gemini API Key Notice" }),
126659
+ /* @__PURE__ */ jsx63(Newline, {}),
126635
126660
  /* @__PURE__ */ jsxs55(Text59, { children: [
126636
126661
  "By using the Gemini API",
126637
- /* @__PURE__ */ jsx62(Text59, { color: Colors.AccentBlue, children: "[1]" }),
126662
+ /* @__PURE__ */ jsx63(Text59, { color: Colors.AccentBlue, children: "[1]" }),
126638
126663
  ", Google AI Studio",
126639
- /* @__PURE__ */ jsx62(Text59, { color: Colors.AccentRed, children: "[2]" }),
126664
+ /* @__PURE__ */ jsx63(Text59, { color: Colors.AccentRed, children: "[2]" }),
126640
126665
  ', and the other Google developer services that reference these terms (collectively, the "APIs" or "Services"), you are agreeing to Google APIs Terms of Service (the "API Terms")',
126641
- /* @__PURE__ */ jsx62(Text59, { color: Colors.AccentGreen, children: "[3]" }),
126666
+ /* @__PURE__ */ jsx63(Text59, { color: Colors.AccentGreen, children: "[3]" }),
126642
126667
  ', and the Gemini API Additional Terms of Service (the "Additional Terms")',
126643
- /* @__PURE__ */ jsx62(Text59, { color: Colors.AccentPurple, children: "[4]" }),
126668
+ /* @__PURE__ */ jsx63(Text59, { color: Colors.AccentPurple, children: "[4]" }),
126644
126669
  "."
126645
126670
  ] }),
126646
- /* @__PURE__ */ jsx62(Newline, {}),
126671
+ /* @__PURE__ */ jsx63(Newline, {}),
126647
126672
  /* @__PURE__ */ jsxs55(Text59, { children: [
126648
- /* @__PURE__ */ jsx62(Text59, { color: Colors.AccentBlue, children: "[1]" }),
126673
+ /* @__PURE__ */ jsx63(Text59, { color: Colors.AccentBlue, children: "[1]" }),
126649
126674
  " ",
126650
126675
  "https://ai.google.dev/docs/gemini_api_overview"
126651
126676
  ] }),
126652
126677
  /* @__PURE__ */ jsxs55(Text59, { children: [
126653
- /* @__PURE__ */ jsx62(Text59, { color: Colors.AccentRed, children: "[2]" }),
126678
+ /* @__PURE__ */ jsx63(Text59, { color: Colors.AccentRed, children: "[2]" }),
126654
126679
  " https://aistudio.google.com/"
126655
126680
  ] }),
126656
126681
  /* @__PURE__ */ jsxs55(Text59, { children: [
126657
- /* @__PURE__ */ jsx62(Text59, { color: Colors.AccentGreen, children: "[3]" }),
126682
+ /* @__PURE__ */ jsx63(Text59, { color: Colors.AccentGreen, children: "[3]" }),
126658
126683
  " ",
126659
126684
  "https://developers.google.com/terms"
126660
126685
  ] }),
126661
126686
  /* @__PURE__ */ jsxs55(Text59, { children: [
126662
- /* @__PURE__ */ jsx62(Text59, { color: Colors.AccentPurple, children: "[4]" }),
126687
+ /* @__PURE__ */ jsx63(Text59, { color: Colors.AccentPurple, children: "[4]" }),
126663
126688
  " ",
126664
126689
  "https://ai.google.dev/gemini-api/terms"
126665
126690
  ] }),
126666
- /* @__PURE__ */ jsx62(Newline, {}),
126667
- /* @__PURE__ */ jsx62(Text59, { color: Colors.Gray, children: "Press Esc to exit." })
126691
+ /* @__PURE__ */ jsx63(Newline, {}),
126692
+ /* @__PURE__ */ jsx63(Text59, { color: Colors.Gray, children: "Press Esc to exit." })
126668
126693
  ] });
126669
126694
  };
126670
126695
 
126671
126696
  // packages/cli/src/ui/privacy/CloudPaidPrivacyNotice.tsx
126672
126697
  import { Box as Box55, Newline as Newline2, Text as Text60 } from "ink";
126673
- import { jsx as jsx63, jsxs as jsxs56 } from "react/jsx-runtime";
126698
+ import { jsx as jsx64, jsxs as jsxs56 } from "react/jsx-runtime";
126674
126699
  var CloudPaidPrivacyNotice = ({
126675
126700
  onExit
126676
126701
  }) => {
@@ -126683,28 +126708,28 @@ var CloudPaidPrivacyNotice = ({
126683
126708
  { isActive: true }
126684
126709
  );
126685
126710
  return /* @__PURE__ */ jsxs56(Box55, { flexDirection: "column", marginBottom: 1, children: [
126686
- /* @__PURE__ */ jsx63(Text60, { bold: true, color: Colors.AccentPurple, children: "Vertex AI Notice" }),
126687
- /* @__PURE__ */ jsx63(Newline2, {}),
126711
+ /* @__PURE__ */ jsx64(Text60, { bold: true, color: Colors.AccentPurple, children: "Vertex AI Notice" }),
126712
+ /* @__PURE__ */ jsx64(Newline2, {}),
126688
126713
  /* @__PURE__ */ jsxs56(Text60, { children: [
126689
126714
  "Service Specific Terms",
126690
- /* @__PURE__ */ jsx63(Text60, { color: Colors.AccentBlue, children: "[1]" }),
126715
+ /* @__PURE__ */ jsx64(Text60, { color: Colors.AccentBlue, children: "[1]" }),
126691
126716
  " are incorporated into the agreement under which Google has agreed to provide Google Cloud Platform",
126692
- /* @__PURE__ */ jsx63(Text60, { color: Colors.AccentGreen, children: "[2]" }),
126717
+ /* @__PURE__ */ jsx64(Text60, { color: Colors.AccentGreen, children: "[2]" }),
126693
126718
  " to Customer (the \u201CAgreement\u201D). If the Agreement authorizes the resale or supply of Google Cloud Platform under a Google Cloud partner or reseller program, then except for in the section entitled \u201CPartner-Specific Terms\u201D, all references to Customer in the Service Specific Terms mean Partner or Reseller (as applicable), and all references to Customer Data in the Service Specific Terms mean Partner Data. Capitalized terms used but not defined in the Service Specific Terms have the meaning given to them in the Agreement."
126694
126719
  ] }),
126695
- /* @__PURE__ */ jsx63(Newline2, {}),
126720
+ /* @__PURE__ */ jsx64(Newline2, {}),
126696
126721
  /* @__PURE__ */ jsxs56(Text60, { children: [
126697
- /* @__PURE__ */ jsx63(Text60, { color: Colors.AccentBlue, children: "[1]" }),
126722
+ /* @__PURE__ */ jsx64(Text60, { color: Colors.AccentBlue, children: "[1]" }),
126698
126723
  " ",
126699
126724
  "https://cloud.google.com/terms/service-terms"
126700
126725
  ] }),
126701
126726
  /* @__PURE__ */ jsxs56(Text60, { children: [
126702
- /* @__PURE__ */ jsx63(Text60, { color: Colors.AccentGreen, children: "[2]" }),
126727
+ /* @__PURE__ */ jsx64(Text60, { color: Colors.AccentGreen, children: "[2]" }),
126703
126728
  " ",
126704
126729
  "https://cloud.google.com/terms/services"
126705
126730
  ] }),
126706
- /* @__PURE__ */ jsx63(Newline2, {}),
126707
- /* @__PURE__ */ jsx63(Text60, { color: Colors.Gray, children: "Press Esc to exit." })
126731
+ /* @__PURE__ */ jsx64(Newline2, {}),
126732
+ /* @__PURE__ */ jsx64(Text60, { color: Colors.Gray, children: "Press Esc to exit." })
126708
126733
  ] });
126709
126734
  };
126710
126735
 
@@ -126822,7 +126847,7 @@ async function setRemoteDataCollectionOptIn(server, optIn) {
126822
126847
  }
126823
126848
 
126824
126849
  // packages/cli/src/ui/privacy/CloudFreePrivacyNotice.tsx
126825
- import { jsx as jsx64, jsxs as jsxs57 } from "react/jsx-runtime";
126850
+ import { jsx as jsx65, jsxs as jsxs57 } from "react/jsx-runtime";
126826
126851
  var CloudFreePrivacyNotice = ({
126827
126852
  config,
126828
126853
  onExit
@@ -126837,7 +126862,7 @@ var CloudFreePrivacyNotice = ({
126837
126862
  { isActive: true }
126838
126863
  );
126839
126864
  if (privacyState.isLoading) {
126840
- return /* @__PURE__ */ jsx64(Text61, { color: Colors.Gray, children: "Loading..." });
126865
+ return /* @__PURE__ */ jsx65(Text61, { color: Colors.Gray, children: "Loading..." });
126841
126866
  }
126842
126867
  if (privacyState.error) {
126843
126868
  return /* @__PURE__ */ jsxs57(Box56, { flexDirection: "column", marginY: 1, children: [
@@ -126845,32 +126870,32 @@ var CloudFreePrivacyNotice = ({
126845
126870
  "Error loading Opt-in settings: ",
126846
126871
  privacyState.error
126847
126872
  ] }),
126848
- /* @__PURE__ */ jsx64(Text61, { color: Colors.Gray, children: "Press Esc to exit." })
126873
+ /* @__PURE__ */ jsx65(Text61, { color: Colors.Gray, children: "Press Esc to exit." })
126849
126874
  ] });
126850
126875
  }
126851
126876
  if (privacyState.isFreeTier === false) {
126852
- return /* @__PURE__ */ jsx64(CloudPaidPrivacyNotice, { onExit });
126877
+ return /* @__PURE__ */ jsx65(CloudPaidPrivacyNotice, { onExit });
126853
126878
  }
126854
126879
  const items = [
126855
126880
  { label: "Yes", value: true },
126856
126881
  { label: "No", value: false }
126857
126882
  ];
126858
126883
  return /* @__PURE__ */ jsxs57(Box56, { flexDirection: "column", marginY: 1, children: [
126859
- /* @__PURE__ */ jsx64(Text61, { bold: true, color: Colors.AccentPurple, children: "Gemini Code Assist for Individuals Privacy Notice" }),
126860
- /* @__PURE__ */ jsx64(Newline3, {}),
126884
+ /* @__PURE__ */ jsx65(Text61, { bold: true, color: Colors.AccentPurple, children: "Gemini Code Assist for Individuals Privacy Notice" }),
126885
+ /* @__PURE__ */ jsx65(Newline3, {}),
126861
126886
  /* @__PURE__ */ jsxs57(Text61, { children: [
126862
126887
  "This notice and our Privacy Policy",
126863
- /* @__PURE__ */ jsx64(Text61, { color: Colors.AccentBlue, children: "[1]" }),
126888
+ /* @__PURE__ */ jsx65(Text61, { color: Colors.AccentBlue, children: "[1]" }),
126864
126889
  " describe how Gemini Code Assist handles your data. Please read them carefully."
126865
126890
  ] }),
126866
- /* @__PURE__ */ jsx64(Newline3, {}),
126867
- /* @__PURE__ */ jsx64(Text61, { children: "When you use Gemini Code Assist for individuals with Gemini CLI, Google collects your prompts, related code, generated output, code edits, related feature usage information, and your feedback to provide, improve, and develop Google products and services and machine learning technologies." }),
126868
- /* @__PURE__ */ jsx64(Newline3, {}),
126869
- /* @__PURE__ */ jsx64(Text61, { children: "To help with quality and improve our products (such as generative machine-learning models), human reviewers may read, annotate, and process the data collected above. We take steps to protect your privacy as part of this process. This includes disconnecting the data from your Google Account before reviewers see or annotate it, and storing those disconnected copies for up to 18 months. Please don't submit confidential information or any data you wouldn't want a reviewer to see or Google to use to improve our products, services and machine-learning technologies." }),
126870
- /* @__PURE__ */ jsx64(Newline3, {}),
126891
+ /* @__PURE__ */ jsx65(Newline3, {}),
126892
+ /* @__PURE__ */ jsx65(Text61, { children: "When you use Gemini Code Assist for individuals with Gemini CLI, Google collects your prompts, related code, generated output, code edits, related feature usage information, and your feedback to provide, improve, and develop Google products and services and machine learning technologies." }),
126893
+ /* @__PURE__ */ jsx65(Newline3, {}),
126894
+ /* @__PURE__ */ jsx65(Text61, { children: "To help with quality and improve our products (such as generative machine-learning models), human reviewers may read, annotate, and process the data collected above. We take steps to protect your privacy as part of this process. This includes disconnecting the data from your Google Account before reviewers see or annotate it, and storing those disconnected copies for up to 18 months. Please don't submit confidential information or any data you wouldn't want a reviewer to see or Google to use to improve our products, services and machine-learning technologies." }),
126895
+ /* @__PURE__ */ jsx65(Newline3, {}),
126871
126896
  /* @__PURE__ */ jsxs57(Box56, { flexDirection: "column", children: [
126872
- /* @__PURE__ */ jsx64(Text61, { children: "Allow Google to use this data to develop and improve our products?" }),
126873
- /* @__PURE__ */ jsx64(
126897
+ /* @__PURE__ */ jsx65(Text61, { children: "Allow Google to use this data to develop and improve our products?" }),
126898
+ /* @__PURE__ */ jsx65(
126874
126899
  RadioButtonSelect,
126875
126900
  {
126876
126901
  items,
@@ -126884,19 +126909,19 @@ var CloudFreePrivacyNotice = ({
126884
126909
  }
126885
126910
  )
126886
126911
  ] }),
126887
- /* @__PURE__ */ jsx64(Newline3, {}),
126912
+ /* @__PURE__ */ jsx65(Newline3, {}),
126888
126913
  /* @__PURE__ */ jsxs57(Text61, { children: [
126889
- /* @__PURE__ */ jsx64(Text61, { color: Colors.AccentBlue, children: "[1]" }),
126914
+ /* @__PURE__ */ jsx65(Text61, { color: Colors.AccentBlue, children: "[1]" }),
126890
126915
  " ",
126891
126916
  "https://policies.google.com/privacy"
126892
126917
  ] }),
126893
- /* @__PURE__ */ jsx64(Newline3, {}),
126894
- /* @__PURE__ */ jsx64(Text61, { color: Colors.Gray, children: "Press Enter to choose an option and exit." })
126918
+ /* @__PURE__ */ jsx65(Newline3, {}),
126919
+ /* @__PURE__ */ jsx65(Text61, { color: Colors.Gray, children: "Press Enter to choose an option and exit." })
126895
126920
  ] });
126896
126921
  };
126897
126922
 
126898
126923
  // packages/cli/src/ui/privacy/PrivacyNotice.tsx
126899
- import { jsx as jsx65 } from "react/jsx-runtime";
126924
+ import { jsx as jsx66 } from "react/jsx-runtime";
126900
126925
  var PrivacyNoticeText = ({
126901
126926
  config,
126902
126927
  onExit
@@ -126904,15 +126929,15 @@ var PrivacyNoticeText = ({
126904
126929
  const authType = config.getContentGeneratorConfig()?.authType;
126905
126930
  switch (authType) {
126906
126931
  case AuthType.USE_GEMINI:
126907
- return /* @__PURE__ */ jsx65(GeminiPrivacyNotice, { onExit });
126932
+ return /* @__PURE__ */ jsx66(GeminiPrivacyNotice, { onExit });
126908
126933
  case AuthType.USE_VERTEX_AI:
126909
- return /* @__PURE__ */ jsx65(CloudPaidPrivacyNotice, { onExit });
126934
+ return /* @__PURE__ */ jsx66(CloudPaidPrivacyNotice, { onExit });
126910
126935
  case AuthType.LOGIN_WITH_GOOGLE:
126911
126936
  default:
126912
- return /* @__PURE__ */ jsx65(CloudFreePrivacyNotice, { config, onExit });
126937
+ return /* @__PURE__ */ jsx66(CloudFreePrivacyNotice, { config, onExit });
126913
126938
  }
126914
126939
  };
126915
- var PrivacyNotice = ({ onExit, config }) => /* @__PURE__ */ jsx65(Box57, { borderStyle: "round", padding: 1, flexDirection: "column", children: /* @__PURE__ */ jsx65(PrivacyNoticeText, { config, onExit }) });
126940
+ var PrivacyNotice = ({ onExit, config }) => /* @__PURE__ */ jsx66(Box57, { borderStyle: "round", padding: 1, flexDirection: "column", children: /* @__PURE__ */ jsx66(PrivacyNoticeText, { config, onExit }) });
126916
126941
 
126917
126942
  // packages/cli/src/ui/hooks/useSettingsCommand.ts
126918
126943
  import { useState as useState46, useCallback as useCallback28 } from "react";
@@ -126936,7 +126961,7 @@ import React30, { useState as useState47, useEffect as useEffect43 } from "react
126936
126961
  import { Box as Box58, Text as Text62 } from "ink";
126937
126962
  init_settings();
126938
126963
  import chalk2 from "chalk";
126939
- import { jsx as jsx66, jsxs as jsxs58 } from "react/jsx-runtime";
126964
+ import { jsx as jsx67, jsxs as jsxs58 } from "react/jsx-runtime";
126940
126965
  var maxItemsToShow = 8;
126941
126966
  function SettingsDialog({
126942
126967
  settings,
@@ -127372,7 +127397,7 @@ function SettingsDialog({
127372
127397
  },
127373
127398
  { isActive: true }
127374
127399
  );
127375
- return /* @__PURE__ */ jsx66(
127400
+ return /* @__PURE__ */ jsx67(
127376
127401
  Box58,
127377
127402
  {
127378
127403
  borderStyle: "round",
@@ -127382,9 +127407,9 @@ function SettingsDialog({
127382
127407
  width: "100%",
127383
127408
  height: "100%",
127384
127409
  children: /* @__PURE__ */ jsxs58(Box58, { flexDirection: "column", flexGrow: 1, children: [
127385
- /* @__PURE__ */ jsx66(Text62, { bold: true, color: Colors.AccentBlue, children: "Settings" }),
127386
- /* @__PURE__ */ jsx66(Box58, { height: 1 }),
127387
- showScrollUp && /* @__PURE__ */ jsx66(Text62, { color: Colors.Gray, children: "\u25B2" }),
127410
+ /* @__PURE__ */ jsx67(Text62, { bold: true, color: Colors.AccentBlue, children: "Settings" }),
127411
+ /* @__PURE__ */ jsx67(Box58, { height: 1 }),
127412
+ showScrollUp && /* @__PURE__ */ jsx67(Text62, { color: Colors.Gray, children: "\u25B2" }),
127388
127413
  visibleItems.map((item, idx) => {
127389
127414
  const isActive = focusSection === "settings" && activeSettingIndex === idx + scrollOffset;
127390
127415
  const scopeSettings = settings.forScope(selectedScope).settings;
@@ -127437,8 +127462,8 @@ function SettingsDialog({
127437
127462
  );
127438
127463
  return /* @__PURE__ */ jsxs58(React30.Fragment, { children: [
127439
127464
  /* @__PURE__ */ jsxs58(Box58, { flexDirection: "row", alignItems: "center", children: [
127440
- /* @__PURE__ */ jsx66(Box58, { minWidth: 2, flexShrink: 0, children: /* @__PURE__ */ jsx66(Text62, { color: isActive ? Colors.AccentGreen : Colors.Gray, children: isActive ? "\u25CF" : "" }) }),
127441
- /* @__PURE__ */ jsx66(Box58, { minWidth: 50, children: /* @__PURE__ */ jsxs58(
127465
+ /* @__PURE__ */ jsx67(Box58, { minWidth: 2, flexShrink: 0, children: /* @__PURE__ */ jsx67(Text62, { color: isActive ? Colors.AccentGreen : Colors.Gray, children: isActive ? "\u25CF" : "" }) }),
127466
+ /* @__PURE__ */ jsx67(Box58, { minWidth: 50, children: /* @__PURE__ */ jsxs58(
127442
127467
  Text62,
127443
127468
  {
127444
127469
  color: isActive ? Colors.AccentGreen : Colors.Foreground,
@@ -127451,8 +127476,8 @@ function SettingsDialog({
127451
127476
  ]
127452
127477
  }
127453
127478
  ) }),
127454
- /* @__PURE__ */ jsx66(Box58, { minWidth: 3 }),
127455
- /* @__PURE__ */ jsx66(
127479
+ /* @__PURE__ */ jsx67(Box58, { minWidth: 3 }),
127480
+ /* @__PURE__ */ jsx67(
127456
127481
  Text62,
127457
127482
  {
127458
127483
  color: isActive ? Colors.AccentGreen : shouldBeGreyedOut ? Colors.Gray : Colors.Foreground,
@@ -127460,17 +127485,17 @@ function SettingsDialog({
127460
127485
  }
127461
127486
  )
127462
127487
  ] }),
127463
- /* @__PURE__ */ jsx66(Box58, { height: 1 })
127488
+ /* @__PURE__ */ jsx67(Box58, { height: 1 })
127464
127489
  ] }, item.value);
127465
127490
  }),
127466
- showScrollDown && /* @__PURE__ */ jsx66(Text62, { color: Colors.Gray, children: "\u25BC" }),
127467
- /* @__PURE__ */ jsx66(Box58, { height: 1 }),
127491
+ showScrollDown && /* @__PURE__ */ jsx67(Text62, { color: Colors.Gray, children: "\u25BC" }),
127492
+ /* @__PURE__ */ jsx67(Box58, { height: 1 }),
127468
127493
  /* @__PURE__ */ jsxs58(Box58, { marginTop: 1, flexDirection: "column", children: [
127469
127494
  /* @__PURE__ */ jsxs58(Text62, { bold: focusSection === "scope", wrap: "truncate", children: [
127470
127495
  focusSection === "scope" ? "> " : " ",
127471
127496
  "Apply To"
127472
127497
  ] }),
127473
- /* @__PURE__ */ jsx66(
127498
+ /* @__PURE__ */ jsx67(
127474
127499
  RadioButtonSelect,
127475
127500
  {
127476
127501
  items: scopeItems,
@@ -127482,9 +127507,9 @@ function SettingsDialog({
127482
127507
  }
127483
127508
  )
127484
127509
  ] }),
127485
- /* @__PURE__ */ jsx66(Box58, { height: 1 }),
127486
- /* @__PURE__ */ jsx66(Text62, { color: Colors.Gray, children: "(Use Enter to select, Tab to change focus)" }),
127487
- showRestartPrompt && /* @__PURE__ */ jsx66(Text62, { color: Colors.AccentYellow, children: "To see changes, Gemini CLI must be restarted. Press r to exit and apply changes now." })
127510
+ /* @__PURE__ */ jsx67(Box58, { height: 1 }),
127511
+ /* @__PURE__ */ jsx67(Text62, { color: Colors.Gray, children: "(Use Enter to select, Tab to change focus)" }),
127512
+ showRestartPrompt && /* @__PURE__ */ jsx67(Text62, { color: Colors.AccentYellow, children: "To see changes, Gemini CLI must be restarted. Press r to exit and apply changes now." })
127488
127513
  ] })
127489
127514
  }
127490
127515
  );
@@ -127755,17 +127780,17 @@ import { EventEmitter as EventEmitter5 } from "events";
127755
127780
  var appEvents = new EventEmitter5();
127756
127781
 
127757
127782
  // packages/cli/src/ui/App.tsx
127758
- import { Fragment as Fragment8, jsx as jsx67, jsxs as jsxs59 } from "react/jsx-runtime";
127783
+ import { Fragment as Fragment8, jsx as jsx68, jsxs as jsxs59 } from "react/jsx-runtime";
127759
127784
  var CTRL_EXIT_PROMPT_DURATION_MS = 1e3;
127760
127785
  var MAX_DISPLAYED_QUEUED_MESSAGES = 3;
127761
127786
  var AppWrapper = (props) => {
127762
127787
  const kittyProtocolStatus = useKittyKeyboardProtocol();
127763
- return /* @__PURE__ */ jsx67(
127788
+ return /* @__PURE__ */ jsx68(
127764
127789
  KeypressProvider,
127765
127790
  {
127766
127791
  kittyProtocolEnabled: kittyProtocolStatus.enabled,
127767
127792
  config: props.config,
127768
- children: /* @__PURE__ */ jsx67(SessionStatsProvider, { children: /* @__PURE__ */ jsx67(VimModeProvider, { settings: props.settings, children: /* @__PURE__ */ jsx67(App, { ...props }) }) })
127793
+ children: /* @__PURE__ */ jsx68(SessionStatsProvider, { children: /* @__PURE__ */ jsx68(VimModeProvider, { settings: props.settings, children: /* @__PURE__ */ jsx68(App, { ...props }) }) })
127769
127794
  }
127770
127795
  );
127771
127796
  };
@@ -128402,7 +128427,7 @@ ${queuedText}` : queuedText;
128402
128427
  geminiClient
128403
128428
  ]);
128404
128429
  if (quittingMessages) {
128405
- return /* @__PURE__ */ jsx67(Box59, { flexDirection: "column", marginBottom: 1, children: quittingMessages.map((item) => /* @__PURE__ */ jsx67(
128430
+ return /* @__PURE__ */ jsx68(Box59, { flexDirection: "column", marginBottom: 1, children: quittingMessages.map((item) => /* @__PURE__ */ jsx68(
128406
128431
  HistoryItemDisplay,
128407
128432
  {
128408
128433
  availableTerminalHeight: constrainHeight ? availableTerminalHeight : void 0,
@@ -128418,16 +128443,16 @@ ${queuedText}` : queuedText;
128418
128443
  const debugConsoleMaxHeight = Math.floor(Math.max(terminalHeight * 0.2, 5));
128419
128444
  const staticAreaMaxItemHeight = Math.max(terminalHeight * 4, 100);
128420
128445
  const placeholder = vimModeEnabled ? " Press 'i' for INSERT mode and 'Esc' for NORMAL mode." : " Type your message or @path/to/file";
128421
- return /* @__PURE__ */ jsx67(StreamingContext.Provider, { value: streamingState, children: /* @__PURE__ */ jsxs59(Box59, { flexDirection: "column", width: "90%", children: [
128422
- /* @__PURE__ */ jsx67(
128446
+ return /* @__PURE__ */ jsx68(StreamingContext.Provider, { value: streamingState, children: /* @__PURE__ */ jsxs59(Box59, { flexDirection: "column", width: "90%", children: [
128447
+ /* @__PURE__ */ jsx68(
128423
128448
  Static,
128424
128449
  {
128425
128450
  items: [
128426
128451
  /* @__PURE__ */ jsxs59(Box59, { flexDirection: "column", children: [
128427
- !settings.merged.hideBanner && /* @__PURE__ */ jsx67(Header, { version, nightly }),
128428
- !settings.merged.hideTips && /* @__PURE__ */ jsx67(Tips, { config })
128452
+ !settings.merged.hideBanner && /* @__PURE__ */ jsx68(Header, { version, nightly }),
128453
+ !settings.merged.hideTips && /* @__PURE__ */ jsx68(Tips, { config })
128429
128454
  ] }, "header"),
128430
- ...history.map((h) => /* @__PURE__ */ jsx67(
128455
+ ...history.map((h) => /* @__PURE__ */ jsx68(
128431
128456
  HistoryItemDisplay,
128432
128457
  {
128433
128458
  terminalWidth: mainAreaWidth,
@@ -128444,8 +128469,8 @@ ${queuedText}` : queuedText;
128444
128469
  },
128445
128470
  staticKey
128446
128471
  ),
128447
- /* @__PURE__ */ jsx67(OverflowProvider, { children: /* @__PURE__ */ jsxs59(Box59, { ref: pendingHistoryItemRef, flexDirection: "column", children: [
128448
- pendingHistoryItems.map((item, i) => /* @__PURE__ */ jsx67(
128472
+ /* @__PURE__ */ jsx68(OverflowProvider, { children: /* @__PURE__ */ jsxs59(Box59, { ref: pendingHistoryItemRef, flexDirection: "column", children: [
128473
+ pendingHistoryItems.map((item, i) => /* @__PURE__ */ jsx68(
128449
128474
  HistoryItemDisplay,
128450
128475
  {
128451
128476
  availableTerminalHeight: constrainHeight ? availableTerminalHeight : void 0,
@@ -128457,11 +128482,11 @@ ${queuedText}` : queuedText;
128457
128482
  },
128458
128483
  i
128459
128484
  )),
128460
- /* @__PURE__ */ jsx67(ShowMoreLines, { constrainHeight })
128485
+ /* @__PURE__ */ jsx68(ShowMoreLines, { constrainHeight })
128461
128486
  ] }) }),
128462
128487
  /* @__PURE__ */ jsxs59(Box59, { flexDirection: "column", ref: mainControlsRef, children: [
128463
- updateInfo && /* @__PURE__ */ jsx67(UpdateNotification, { message: updateInfo.message }),
128464
- startupWarnings.length > 0 && /* @__PURE__ */ jsx67(
128488
+ updateInfo && /* @__PURE__ */ jsx68(UpdateNotification, { message: updateInfo.message }),
128489
+ startupWarnings.length > 0 && /* @__PURE__ */ jsx68(
128465
128490
  Box59,
128466
128491
  {
128467
128492
  borderStyle: "round",
@@ -128469,18 +128494,18 @@ ${queuedText}` : queuedText;
128469
128494
  paddingX: 1,
128470
128495
  marginY: 1,
128471
128496
  flexDirection: "column",
128472
- children: startupWarnings.map((warning, index) => /* @__PURE__ */ jsx67(Text63, { color: Colors.AccentYellow, children: warning }, index))
128497
+ children: startupWarnings.map((warning, index) => /* @__PURE__ */ jsx68(Text63, { color: Colors.AccentYellow, children: warning }, index))
128473
128498
  }
128474
128499
  ),
128475
- shouldShowIdePrompt && currentIDE ? /* @__PURE__ */ jsx67(
128500
+ shouldShowIdePrompt && currentIDE ? /* @__PURE__ */ jsx68(
128476
128501
  IdeIntegrationNudge,
128477
128502
  {
128478
128503
  ide: currentIDE,
128479
128504
  onComplete: handleIdePromptComplete
128480
128505
  }
128481
- ) : isFolderTrustDialogOpen ? /* @__PURE__ */ jsx67(FolderTrustDialog, { onSelect: handleFolderTrustSelect }) : shellConfirmationRequest ? /* @__PURE__ */ jsx67(ShellConfirmationDialog, { request: shellConfirmationRequest }) : confirmationRequest ? /* @__PURE__ */ jsxs59(Box59, { flexDirection: "column", children: [
128506
+ ) : isFolderTrustDialogOpen ? /* @__PURE__ */ jsx68(FolderTrustDialog, { onSelect: handleFolderTrustSelect }) : shellConfirmationRequest ? /* @__PURE__ */ jsx68(ShellConfirmationDialog, { request: shellConfirmationRequest }) : confirmationRequest ? /* @__PURE__ */ jsxs59(Box59, { flexDirection: "column", children: [
128482
128507
  confirmationRequest.prompt,
128483
- /* @__PURE__ */ jsx67(Box59, { paddingY: 1, children: /* @__PURE__ */ jsx67(
128508
+ /* @__PURE__ */ jsx68(Box59, { paddingY: 1, children: /* @__PURE__ */ jsx68(
128484
128509
  RadioButtonSelect,
128485
128510
  {
128486
128511
  isFocused: !!confirmationRequest,
@@ -128494,8 +128519,8 @@ ${queuedText}` : queuedText;
128494
128519
  }
128495
128520
  ) })
128496
128521
  ] }) : isThemeDialogOpen ? /* @__PURE__ */ jsxs59(Box59, { flexDirection: "column", children: [
128497
- themeError && /* @__PURE__ */ jsx67(Box59, { marginBottom: 1, children: /* @__PURE__ */ jsx67(Text63, { color: Colors.AccentRed, children: themeError }) }),
128498
- /* @__PURE__ */ jsx67(
128522
+ themeError && /* @__PURE__ */ jsx68(Box59, { marginBottom: 1, children: /* @__PURE__ */ jsx68(Text63, { color: Colors.AccentRed, children: themeError }) }),
128523
+ /* @__PURE__ */ jsx68(
128499
128524
  ThemeDialog,
128500
128525
  {
128501
128526
  onSelect: handleThemeSelect,
@@ -128505,7 +128530,7 @@ ${queuedText}` : queuedText;
128505
128530
  terminalWidth: mainAreaWidth
128506
128531
  }
128507
128532
  )
128508
- ] }) : isSettingsDialogOpen ? /* @__PURE__ */ jsx67(Box59, { flexDirection: "column", children: /* @__PURE__ */ jsx67(
128533
+ ] }) : isSettingsDialogOpen ? /* @__PURE__ */ jsx68(Box59, { flexDirection: "column", children: /* @__PURE__ */ jsx68(
128509
128534
  SettingsDialog,
128510
128535
  {
128511
128536
  settings,
@@ -128513,7 +128538,7 @@ ${queuedText}` : queuedText;
128513
128538
  onRestartRequest: () => process18.exit(0)
128514
128539
  }
128515
128540
  ) }) : isAuthenticating ? /* @__PURE__ */ jsxs59(Fragment8, { children: [
128516
- /* @__PURE__ */ jsx67(
128541
+ /* @__PURE__ */ jsx68(
128517
128542
  AuthInProgress,
128518
128543
  {
128519
128544
  onTimeout: () => {
@@ -128523,8 +128548,8 @@ ${queuedText}` : queuedText;
128523
128548
  }
128524
128549
  }
128525
128550
  ),
128526
- showErrorDetails && /* @__PURE__ */ jsx67(OverflowProvider, { children: /* @__PURE__ */ jsxs59(Box59, { flexDirection: "column", children: [
128527
- /* @__PURE__ */ jsx67(
128551
+ showErrorDetails && /* @__PURE__ */ jsx68(OverflowProvider, { children: /* @__PURE__ */ jsxs59(Box59, { flexDirection: "column", children: [
128552
+ /* @__PURE__ */ jsx68(
128528
128553
  DetailedMessagesDisplay,
128529
128554
  {
128530
128555
  messages: filteredConsoleMessages,
@@ -128532,9 +128557,9 @@ ${queuedText}` : queuedText;
128532
128557
  width: inputWidth
128533
128558
  }
128534
128559
  ),
128535
- /* @__PURE__ */ jsx67(ShowMoreLines, { constrainHeight })
128560
+ /* @__PURE__ */ jsx68(ShowMoreLines, { constrainHeight })
128536
128561
  ] }) })
128537
- ] }) : isAuthDialogOpen ? /* @__PURE__ */ jsx67(Box59, { flexDirection: "column", children: /* @__PURE__ */ jsx67(
128562
+ ] }) : isAuthDialogOpen ? /* @__PURE__ */ jsx68(Box59, { flexDirection: "column", children: /* @__PURE__ */ jsx68(
128538
128563
  AuthDialog,
128539
128564
  {
128540
128565
  onSelect: handleAuthSelect,
@@ -128542,7 +128567,7 @@ ${queuedText}` : queuedText;
128542
128567
  initialErrorMessage: authError,
128543
128568
  onQuickModelSwitch: openProviderDialog
128544
128569
  }
128545
- ) }) : modelDialogState === "provider" ? /* @__PURE__ */ jsx67(Box59, { flexDirection: "column", children: /* @__PURE__ */ jsx67(
128570
+ ) }) : modelDialogState === "provider" ? /* @__PURE__ */ jsx68(Box59, { flexDirection: "column", children: /* @__PURE__ */ jsx68(
128546
128571
  ProviderEndpointSelectionDialog,
128547
128572
  {
128548
128573
  onSelect: (providerType, endpointUrl, endpointLabel) => {
@@ -128554,7 +128579,7 @@ ${queuedText}` : queuedText;
128554
128579
  },
128555
128580
  onCancel: closeModelDialogs
128556
128581
  }
128557
- ) }) : modelDialogState === "model" ? /* @__PURE__ */ jsx67(Box59, { flexDirection: "column", children: /* @__PURE__ */ jsx67(
128582
+ ) }) : modelDialogState === "model" ? /* @__PURE__ */ jsx68(Box59, { flexDirection: "column", children: /* @__PURE__ */ jsx68(
128558
128583
  EnhancedModelSelectionDialog,
128559
128584
  {
128560
128585
  providerType: selectedProvider,
@@ -128564,7 +128589,7 @@ ${queuedText}` : queuedText;
128564
128589
  onBack: goBackToProvider,
128565
128590
  onCancel: closeModelDialogs
128566
128591
  }
128567
- ) }) : shouldShowWelcomeBack && projectSummary ? /* @__PURE__ */ jsx67(Box59, { flexDirection: "column", children: /* @__PURE__ */ jsx67(
128592
+ ) }) : shouldShowWelcomeBack && projectSummary ? /* @__PURE__ */ jsx68(Box59, { flexDirection: "column", children: /* @__PURE__ */ jsx68(
128568
128593
  WelcomeBackDialog,
128569
128594
  {
128570
128595
  projectSummary,
@@ -128573,8 +128598,8 @@ ${queuedText}` : queuedText;
128573
128598
  onCancel: handleWelcomeBackCancel
128574
128599
  }
128575
128600
  ) }) : isEditorDialogOpen ? /* @__PURE__ */ jsxs59(Box59, { flexDirection: "column", children: [
128576
- editorError && /* @__PURE__ */ jsx67(Box59, { marginBottom: 1, children: /* @__PURE__ */ jsx67(Text63, { color: Colors.AccentRed, children: editorError }) }),
128577
- /* @__PURE__ */ jsx67(
128601
+ editorError && /* @__PURE__ */ jsx68(Box59, { marginBottom: 1, children: /* @__PURE__ */ jsx68(Text63, { color: Colors.AccentRed, children: editorError }) }),
128602
+ /* @__PURE__ */ jsx68(
128578
128603
  EditorSettingsDialog,
128579
128604
  {
128580
128605
  onSelect: handleEditorSelect,
@@ -128582,7 +128607,7 @@ ${queuedText}` : queuedText;
128582
128607
  onExit: exitEditorDialog
128583
128608
  }
128584
128609
  )
128585
- ] }) : isSearchDialogOpen ? /* @__PURE__ */ jsx67(Box59, { flexDirection: "column", children: /* @__PURE__ */ jsx67(
128610
+ ] }) : isSearchDialogOpen ? /* @__PURE__ */ jsx68(Box59, { flexDirection: "column", children: /* @__PURE__ */ jsx68(
128586
128611
  SearchEngineConfigDialog,
128587
128612
  {
128588
128613
  onSubmit: (result) => {
@@ -128599,7 +128624,7 @@ ${queuedText}` : queuedText;
128599
128624
  setIsSearchDialogOpen(false);
128600
128625
  }
128601
128626
  }
128602
- ) }) : isAddCustomEndpointDialogOpen ? /* @__PURE__ */ jsx67(Box59, { flexDirection: "column", children: /* @__PURE__ */ jsx67(
128627
+ ) }) : isAddCustomEndpointDialogOpen ? /* @__PURE__ */ jsx68(Box59, { flexDirection: "column", children: /* @__PURE__ */ jsx68(
128603
128628
  AddCustomEndpointDialog,
128604
128629
  {
128605
128630
  onSubmit: async (name2, url2, apiKey, providerType) => {
@@ -128628,14 +128653,14 @@ ${queuedText}` : queuedText;
128628
128653
  setIsAddCustomEndpointDialogOpen(false);
128629
128654
  }
128630
128655
  }
128631
- ) }) : showPrivacyNotice ? /* @__PURE__ */ jsx67(
128656
+ ) }) : showPrivacyNotice ? /* @__PURE__ */ jsx68(
128632
128657
  PrivacyNotice,
128633
128658
  {
128634
128659
  onExit: () => setShowPrivacyNotice(false),
128635
128660
  config
128636
128661
  }
128637
128662
  ) : /* @__PURE__ */ jsxs59(Fragment8, { children: [
128638
- /* @__PURE__ */ jsx67(
128663
+ /* @__PURE__ */ jsx68(
128639
128664
  LoadingIndicator,
128640
128665
  {
128641
128666
  thought: streamingState === "waiting_for_confirmation" /* WaitingForConfirmation */ || config.getAccessibility()?.disableLoadingPhrases ? void 0 : thought,
@@ -128648,10 +128673,10 @@ ${queuedText}` : queuedText;
128648
128673
  const preview = message.replace(/\s+/g, " ");
128649
128674
  return (
128650
128675
  // Ensure the Box takes full width so truncation calculates correctly
128651
- /* @__PURE__ */ jsx67(Box59, { paddingLeft: 2, width: "100%", children: /* @__PURE__ */ jsx67(Text63, { dimColor: true, wrap: "truncate", children: preview }) }, index)
128676
+ /* @__PURE__ */ jsx68(Box59, { paddingLeft: 2, width: "100%", children: /* @__PURE__ */ jsx68(Text63, { dimColor: true, wrap: "truncate", children: preview }) }, index)
128652
128677
  );
128653
128678
  }),
128654
- messageQueue.length > MAX_DISPLAYED_QUEUED_MESSAGES && /* @__PURE__ */ jsx67(Box59, { paddingLeft: 2, children: /* @__PURE__ */ jsxs59(Text63, { dimColor: true, children: [
128679
+ messageQueue.length > MAX_DISPLAYED_QUEUED_MESSAGES && /* @__PURE__ */ jsx68(Box59, { paddingLeft: 2, children: /* @__PURE__ */ jsxs59(Text63, { dimColor: true, children: [
128655
128680
  "... (+",
128656
128681
  messageQueue.length - MAX_DISPLAYED_QUEUED_MESSAGES,
128657
128682
  " ",
@@ -128668,8 +128693,8 @@ ${queuedText}` : queuedText;
128668
128693
  alignItems: isNarrow ? "flex-start" : "center",
128669
128694
  children: [
128670
128695
  /* @__PURE__ */ jsxs59(Box59, { children: [
128671
- process18.env["GEMINI_SYSTEM_MD"] && /* @__PURE__ */ jsx67(Text63, { color: Colors.AccentRed, children: "|\u2310\u25A0_\u25A0| " }),
128672
- ctrlCPressedOnce ? /* @__PURE__ */ jsx67(Text63, { color: Colors.AccentYellow, children: "Press Ctrl+C again to exit." }) : ctrlDPressedOnce ? /* @__PURE__ */ jsx67(Text63, { color: Colors.AccentYellow, children: "Press Ctrl+D again to exit." }) : showEscapePrompt ? /* @__PURE__ */ jsx67(Text63, { color: Colors.Gray, children: "Press Esc again to clear." }) : /* @__PURE__ */ jsx67(
128696
+ process18.env["GEMINI_SYSTEM_MD"] && /* @__PURE__ */ jsx68(Text63, { color: Colors.AccentRed, children: "|\u2310\u25A0_\u25A0| " }),
128697
+ ctrlCPressedOnce ? /* @__PURE__ */ jsx68(Text63, { color: Colors.AccentYellow, children: "Press Ctrl+C again to exit." }) : ctrlDPressedOnce ? /* @__PURE__ */ jsx68(Text63, { color: Colors.AccentYellow, children: "Press Ctrl+D again to exit." }) : showEscapePrompt ? /* @__PURE__ */ jsx68(Text63, { color: Colors.Gray, children: "Press Esc again to clear." }) : /* @__PURE__ */ jsx68(
128673
128698
  ContextSummaryDisplay,
128674
128699
  {
128675
128700
  ideContext: ideContextState,
@@ -128682,19 +128707,19 @@ ${queuedText}` : queuedText;
128682
128707
  )
128683
128708
  ] }),
128684
128709
  /* @__PURE__ */ jsxs59(Box59, { paddingTop: isNarrow ? 1 : 0, children: [
128685
- showAutoAcceptIndicator !== ApprovalMode.DEFAULT && !shellModeActive && /* @__PURE__ */ jsx67(
128710
+ showAutoAcceptIndicator !== ApprovalMode.DEFAULT && !shellModeActive && /* @__PURE__ */ jsx68(
128686
128711
  AutoAcceptIndicator,
128687
128712
  {
128688
128713
  approvalMode: showAutoAcceptIndicator
128689
128714
  }
128690
128715
  ),
128691
- shellModeActive && /* @__PURE__ */ jsx67(ShellModeIndicator, {})
128716
+ shellModeActive && /* @__PURE__ */ jsx68(ShellModeIndicator, {})
128692
128717
  ] })
128693
128718
  ]
128694
128719
  }
128695
128720
  ),
128696
- showErrorDetails && /* @__PURE__ */ jsx67(OverflowProvider, { children: /* @__PURE__ */ jsxs59(Box59, { flexDirection: "column", children: [
128697
- /* @__PURE__ */ jsx67(
128721
+ showErrorDetails && /* @__PURE__ */ jsx68(OverflowProvider, { children: /* @__PURE__ */ jsxs59(Box59, { flexDirection: "column", children: [
128722
+ /* @__PURE__ */ jsx68(
128698
128723
  DetailedMessagesDisplay,
128699
128724
  {
128700
128725
  messages: filteredConsoleMessages,
@@ -128702,9 +128727,9 @@ ${queuedText}` : queuedText;
128702
128727
  width: inputWidth
128703
128728
  }
128704
128729
  ),
128705
- /* @__PURE__ */ jsx67(ShowMoreLines, { constrainHeight })
128730
+ /* @__PURE__ */ jsx68(ShowMoreLines, { constrainHeight })
128706
128731
  ] }) }),
128707
- isInputActive && /* @__PURE__ */ jsx67(
128732
+ isInputActive && /* @__PURE__ */ jsx68(
128708
128733
  InputPrompt,
128709
128734
  {
128710
128735
  buffer,
@@ -128725,7 +128750,7 @@ ${queuedText}` : queuedText;
128725
128750
  }
128726
128751
  )
128727
128752
  ] }),
128728
- initError && streamingState !== "responding" /* Responding */ && /* @__PURE__ */ jsx67(
128753
+ initError && streamingState !== "responding" /* Responding */ && /* @__PURE__ */ jsx68(
128729
128754
  Box59,
128730
128755
  {
128731
128756
  borderStyle: "round",
@@ -128734,7 +128759,7 @@ ${queuedText}` : queuedText;
128734
128759
  marginBottom: 1,
128735
128760
  children: history.find(
128736
128761
  (item) => item.type === "error" && item.text?.includes(initError)
128737
- )?.text ? /* @__PURE__ */ jsx67(Text63, { color: Colors.AccentRed, children: history.find(
128762
+ )?.text ? /* @__PURE__ */ jsx68(Text63, { color: Colors.AccentRed, children: history.find(
128738
128763
  (item) => item.type === "error" && item.text?.includes(initError)
128739
128764
  )?.text }) : /* @__PURE__ */ jsxs59(Fragment8, { children: [
128740
128765
  /* @__PURE__ */ jsxs59(Text63, { color: Colors.AccentRed, children: [
@@ -128748,7 +128773,7 @@ ${queuedText}` : queuedText;
128748
128773
  ] })
128749
128774
  }
128750
128775
  ),
128751
- !settings.merged.hideFooter && /* @__PURE__ */ jsx67(
128776
+ !settings.merged.hideFooter && /* @__PURE__ */ jsx68(
128752
128777
  Footer,
128753
128778
  {
128754
128779
  model: currentModel,
@@ -131109,7 +131134,7 @@ function toPermissionOptions(confirmation) {
131109
131134
  }
131110
131135
 
131111
131136
  // packages/cli/src/gemini.tsx
131112
- import { jsx as jsx68 } from "react/jsx-runtime";
131137
+ import { jsx as jsx69 } from "react/jsx-runtime";
131113
131138
  var DEBUG_CLI = process.env["FSS_DEBUG"] === "true" || process.env["NODE_ENV"] === "development";
131114
131139
  function validateDnsResolutionOrder(order) {
131115
131140
  const defaultValue = "ipv4first";
@@ -131317,7 +131342,7 @@ async function main() {
131317
131342
  await detectAndEnableKittyProtocol();
131318
131343
  setWindowTitle(basename15(workspaceRoot), settings);
131319
131344
  const instance = render2(
131320
- /* @__PURE__ */ jsx68(React31.StrictMode, { children: /* @__PURE__ */ jsx68(SettingsContext.Provider, { value: settings, children: /* @__PURE__ */ jsx68(
131345
+ /* @__PURE__ */ jsx69(React31.StrictMode, { children: /* @__PURE__ */ jsx69(SettingsContext.Provider, { value: settings, children: /* @__PURE__ */ jsx69(
131321
131346
  AppWrapper,
131322
131347
  {
131323
131348
  config,