// @bun
import {
  init_featureCheck,
  init_overlayContext,
  isSkillSearchEnabled,
  useRegisterOverlay
} from "./chunk-421yegj3.js";
import"./chunk-aaxz8a5g.js";
import"./chunk-2kcgxnvp.js";
import"./chunk-14p6wvsq.js";
import"./chunk-6s0q1s5r.js";
import"./chunk-0cpg8qh8.js";
import"./chunk-9phn5khx.js";
import"./chunk-vk9xcryd.js";
import"./chunk-9a9g5hbj.js";
import"./chunk-ptxteaeh.js";
import"./chunk-7fcmqvbz.js";
import"./chunk-rgyzsbs3.js";
import"./chunk-q3b4n194.js";
import"./chunk-zaqfb3tz.js";
import"./chunk-6hzx0kqr.js";
import"./chunk-71sdcaq6.js";
import"./chunk-9hn8e6h1.js";
import"./chunk-dxa3y9vh.js";
import"./chunk-gjvhjywj.js";
import"./chunk-1w20m7gw.js";
import"./chunk-3gam18xn.js";
import"./chunk-rpmntgyh.js";
import"./chunk-24kv69g3.js";
import"./chunk-tzcrwnrf.js";
import"./chunk-k7xszak2.js";
import"./chunk-ztmb7geg.js";
import"./chunk-tbdkekz3.js";
import"./chunk-65zbgg1n.js";
import"./chunk-4spgkgr3.js";
import"./chunk-60fkafk2.js";
import"./chunk-h5zz0vxy.js";
import"./chunk-6hygvrhn.js";
import"./chunk-7tfdhkpy.js";
import"./chunk-8gv2pjby.js";
import"./chunk-pn23dh3d.js";
import"./chunk-rpdh02rm.js";
import"./chunk-j1wktfe2.js";
import"./chunk-fjtzfz1t.js";
import"./chunk-6hr7742d.js";
import"./chunk-xyg1sk2w.js";
import"./chunk-935nrvdb.js";
import"./chunk-8zz4z1q3.js";
import"./chunk-hem4f4gz.js";
import"./chunk-hqxp6b72.js";
import"./chunk-ccw8pse0.js";
import"./chunk-wsnxtggw.js";
import"./chunk-k8nwt8yq.js";
import"./chunk-vxbjzggp.js";
import"./chunk-d6h68rz1.js";
import"./chunk-8yvsnrkr.js";
import"./chunk-5mmhfbxb.js";
import"./chunk-s2t5anwv.js";
import"./chunk-ga1jkyqy.js";
import"./chunk-9hbhydvp.js";
import"./chunk-ck9r8hpf.js";
import"./chunk-k7hexw3v.js";
import"./chunk-trqrj23e.js";
import"./chunk-za3k6h2h.js";
import"./chunk-8kf8h7xf.js";
import"./chunk-bgan4cpf.js";
import"./chunk-jmv7k0jn.js";
import"./chunk-hjxqmtg5.js";
import"./chunk-bzyzrq0k.js";
import"./chunk-vwenx8ke.js";
import"./chunk-q2h79ncs.js";
import"./chunk-v4ypszbb.js";
import"./chunk-qfsn720k.js";
import"./chunk-7qx3xhv3.js";
import"./chunk-j9475b46.js";
import"./chunk-fdwabr8p.js";
import"./chunk-e4dsy4g1.js";
import"./chunk-326zehp8.js";
import"./chunk-kc67kt75.js";
import"./chunk-40t1d75v.js";
import"./chunk-dbts5q5p.js";
import"./chunk-e3abfxpy.js";
import"./chunk-q44zc68f.js";
import"./chunk-fejeqe61.js";
import"./chunk-q1vrhh0q.js";
import"./chunk-hn4w9pkj.js";
import {
  Dialog,
  ThemedBox_default,
  ThemedText,
  init_src,
  use_input_default
} from "./chunk-2g0ytd9d.js";
import {
  require_jsx_dev_runtime,
  require_react
} from "./chunk-de0qnnf7.js";
import"./chunk-j1mep9ck.js";
import"./chunk-6x35ffpx.js";
import"./chunk-1zbwhcbt.js";
import"./chunk-92bjkrf2.js";
import"./chunk-10k5jfc5.js";
import"./chunk-n9g24mwe.js";
import"./chunk-e3j7m7k2.js";
import"./chunk-hzmzwte2.js";
import"./chunk-pdvg91cg.js";
import"./chunk-c696122m.js";
import"./chunk-xbj5keyy.js";
import"./chunk-c1yc761e.js";
import"./chunk-c5g9shkw.js";
import"./chunk-aeysytks.js";
import"./chunk-s3hafnk3.js";
import"./chunk-kb3758f7.js";
import"./chunk-9h9k5vz3.js";
import"./chunk-xmpgmeb8.js";
import"./chunk-2kz09j2s.js";
import"./chunk-c0k7b0jw.js";
import"./chunk-pecy49yr.js";
import"./chunk-azbab59e.js";
import"./chunk-3nk9q8dr.js";
import {
  __esm,
  __require,
  __toESM
} from "./chunk-hhsxm2yr.js";

// src/commands/skill-search/skillSearchPanel.tsx
function getStatusText() {
  return [
    "Skill Search (\u81EA\u52A8\u6280\u80FD\u5339\u914D)",
    `Status: ${isSkillSearchEnabled() ? "enabled" : "disabled"}`,
    "",
    "When enabled, relevant skills are automatically matched and",
    "injected into conversation context each turn."
  ].join(`
`);
}
async function startSkillSearch() {
  if (isSkillSearchEnabled() && process.env.SKILL_SEARCH_ENABLED !== "0") {
    return "Skill Search: already enabled";
  }
  process.env.SKILL_SEARCH_ENABLED = "1";
  const lines = ["Skill Search: enabled (SKILL_SEARCH_ENABLED=1)"];
  try {
    const { clearSkillIndexCache } = await import("./chunk-dfhk2ntg.js");
    clearSkillIndexCache();
    lines.push("Skill index cache: cleared (will rebuild on next search)");
  } catch {
    lines.push("Skill index cache: clear skipped");
  }
  return lines.join(`
`);
}
async function stopSkillSearch() {
  if (!isSkillSearchEnabled()) {
    return "Skill Search: already disabled";
  }
  process.env.SKILL_SEARCH_ENABLED = "0";
  return "Skill Search: disabled (SKILL_SEARCH_ENABLED=0)";
}
function SkillSearchPanel({ onDone }) {
  useRegisterOverlay("skill-search-panel");
  const [selectedIndex, setSelectedIndex] = import_react.useState(0);
  const actions = import_react.useMemo(() => [
    {
      label: "Status",
      description: "Show whether automatic skill matching is active",
      run: () => Promise.resolve(getStatusText())
    },
    {
      label: "Start",
      description: "Enable automatic skill matching for this session",
      run: startSkillSearch
    },
    {
      label: "Stop",
      description: "Disable automatic skill matching for this session",
      run: stopSkillSearch
    },
    {
      label: "About",
      description: "How automatic skill matching works",
      run: () => Promise.resolve(ABOUT_TEXT)
    }
  ], []);
  const selectCurrent = () => {
    const action = actions[selectedIndex];
    if (!action)
      return;
    action.run().then((result) => {
      onDone(result, { display: "system" });
    });
  };
  use_input_default((_input, key) => {
    if (key.upArrow) {
      setSelectedIndex((index) => Math.max(0, index - 1));
      return;
    }
    if (key.downArrow) {
      setSelectedIndex((index) => Math.min(actions.length - 1, index + 1));
      return;
    }
    if (key.return) {
      selectCurrent();
    }
  });
  return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Dialog, {
    title: "Skill Search",
    subtitle: `${actions.length} actions`,
    onCancel: () => onDone("Skill search panel dismissed", { display: "system" }),
    color: "background",
    hideInputGuide: true,
    children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
      flexDirection: "column",
      children: [
        actions.map((action, index) => /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
          flexDirection: "row",
          children: [
            /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
              children: `${index === selectedIndex ? "\u203A" : " "} ${action.label}`.padEnd(ACTION_LABEL_COLUMN_WIDTH)
            }, undefined, false, undefined, this),
            /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
              dimColor: true,
              children: action.description
            }, undefined, false, undefined, this)
          ]
        }, action.label, true, undefined, this)),
        /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
          marginTop: 1,
          children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
            dimColor: true,
            children: "\u2191/\u2193 select \xB7 Enter run \xB7 Esc close"
          }, undefined, false, undefined, this)
        }, undefined, false, undefined, this)
      ]
    }, undefined, true, undefined, this)
  }, undefined, false, undefined, this);
}
async function call(onDone, _context, args) {
  const trimmed = args?.trim() ?? "";
  if (trimmed === "start") {
    onDone(await startSkillSearch(), { display: "system" });
    return null;
  }
  if (trimmed === "stop") {
    onDone(await stopSkillSearch(), { display: "system" });
    return null;
  }
  if (trimmed === "about") {
    onDone(ABOUT_TEXT, { display: "system" });
    return null;
  }
  if (trimmed === "status") {
    onDone(getStatusText(), { display: "system" });
    return null;
  }
  return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(SkillSearchPanel, {
    onDone
  }, undefined, false, undefined, this);
}
var import_react, jsx_dev_runtime, ACTION_LABEL_COLUMN_WIDTH = 28, ABOUT_TEXT;
var init_skillSearchPanel = __esm(() => {
  init_src();
  init_src();
  init_overlayContext();
  init_featureCheck();
  import_react = __toESM(require_react(), 1);
  jsx_dev_runtime = __toESM(require_jsx_dev_runtime(), 1);
  ABOUT_TEXT = `# Skill Search (\u81EA\u52A8\u6280\u80FD\u5339\u914D)

Skill Search \u63A7\u5236\u5BF9\u8BDD\u4E2D\u7684\u81EA\u52A8\u6280\u80FD\u5339\u914D\u529F\u80FD\u3002

\u542F\u7528\u540E\uFF0CRedScope AI \u4F1A\u5728\u6BCF\u8F6E\u5BF9\u8BDD\u4E2D\u81EA\u52A8\u641C\u7D22\u5E76\u52A0\u8F7D\u4E0E\u5F53\u524D\u4EFB\u52A1\u6700\u76F8\u5173\u7684 skill \u6587\u4EF6\uFF0C
\u65E0\u9700\u624B\u52A8\u6307\u5B9A\u3002\u641C\u7D22\u57FA\u4E8E TF-IDF \u5411\u91CF\u4F59\u5F26\u76F8\u4F3C\u5EA6\uFF0C\u652F\u6301\u82F1\u6587\u8BCD\u5E72\u5316\u548C CJK bi-gram \u5206\u8BCD\u3002

## \u5DE5\u4F5C\u539F\u7406
1. \u5BF9\u8BDD\u5F00\u59CB\u65F6\uFF0C\u81EA\u52A8\u7D22\u5F15 .claude/skills/ \u548C ~/.claude/skills/ \u4E0B\u7684 Markdown \u6587\u4EF6
2. \u6BCF\u8F6E\u5BF9\u8BDD\u6839\u636E\u4E0A\u4E0B\u6587\u81EA\u52A8\u5339\u914D\u6700\u76F8\u5173\u7684 skill
3. \u5339\u914D\u5230\u7684 skill \u5185\u5BB9\u4F1A\u4F5C\u4E3A\u4E0A\u4E0B\u6587\u6CE8\u5165\uFF0C\u6307\u5BFC RedScope AI \u7684\u884C\u4E3A

## \u63A7\u5236\u65B9\u5F0F
- /skill-search start  \u2014 \u542F\u7528\u81EA\u52A8\u5339\u914D
- /skill-search stop   \u2014 \u7981\u7528\u81EA\u52A8\u5339\u914D
- /skill-search status \u2014 \u67E5\u770B\u5F53\u524D\u72B6\u6001

\u5F53\u524D\u72B6\u6001: ${isSkillSearchEnabled() ? "\u5DF2\u542F\u7528" : "\u672A\u542F\u7528"}
`;
});
init_skillSearchPanel();

export {
  call
};
