MCPcopy
hub / github.com/upstash/context7 / infoCommand

Function infoCommand

packages/cli/src/commands/skill.ts:783–825  ·  view source on GitHub ↗
(input: string)

Source from the content-addressed store, hash-verified

781}
782
783async function infoCommand(input: string): Promise<void> {
784 trackEvent("command", { name: "info" });
785 const parsed = parseSkillInput(input);
786 if (!parsed) {
787 log.blank();
788 log.error(`Invalid input format: ${input}`);
789 log.info(`Expected: /owner/repo or full GitHub URL`);
790 log.blank();
791 return;
792 }
793 const repo = `/${parsed.owner}/${parsed.repo}`;
794
795 log.blank();
796 const spinner = ora(`Fetching skills from ${repo}...`).start();
797
798 const data = await listProjectSkills(repo);
799
800 if (data.error) {
801 spinner.fail(pc.red(`Error: ${data.message || data.error}`));
802 return;
803 }
804
805 if (!data.skills || data.skills.length === 0) {
806 spinner.warn(pc.yellow(`No skills found in ${repo}`));
807 return;
808 }
809
810 spinner.succeed(`Found ${data.skills.length} skill(s)`);
811
812 log.blank();
813 for (const skill of data.skills) {
814 log.item(skill.name);
815 log.dim(` ${skill.description || "No description"}`);
816 log.dim(` URL: ${skill.url}`);
817 log.blank();
818 }
819
820 log.plain(
821 `${pc.bold("Quick commands:")}\n` +
822 ` Install all: ${pc.cyan(`ctx7 skills install ${repo} --all`)}\n` +
823 ` Install one: ${pc.cyan(`ctx7 skills install ${repo} ${data.skills[0]?.name}`)}\n`
824 );
825}
826
827async function suggestCommand(options: SuggestOptions): Promise<void> {
828 trackEvent("command", { name: "suggest" });

Callers 1

registerSkillCommandsFunction · 0.85

Calls 3

trackEventFunction · 0.85
parseSkillInputFunction · 0.85
listProjectSkillsFunction · 0.85

Tested by

no test coverage detected