@kongyo2/kongyo-cli 0.1.1 → 0.1.2

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 (42) hide show
  1. package/dist/app.d.ts.map +1 -1
  2. package/dist/app.js +98 -2
  3. package/dist/app.js.map +1 -1
  4. package/dist/components/MainMenu.d.ts +8 -0
  5. package/dist/components/MainMenu.d.ts.map +1 -0
  6. package/dist/components/MainMenu.js +20 -0
  7. package/dist/components/MainMenu.js.map +1 -0
  8. package/dist/components/SkillsConfirm.d.ts +10 -0
  9. package/dist/components/SkillsConfirm.d.ts.map +1 -0
  10. package/dist/components/SkillsConfirm.js +8 -0
  11. package/dist/components/SkillsConfirm.js.map +1 -0
  12. package/dist/components/SkillsDownload.d.ts +15 -0
  13. package/dist/components/SkillsDownload.d.ts.map +1 -0
  14. package/dist/components/SkillsDownload.js +40 -0
  15. package/dist/components/SkillsDownload.js.map +1 -0
  16. package/dist/components/SkillsFetch.d.ts +10 -0
  17. package/dist/components/SkillsFetch.d.ts.map +1 -0
  18. package/dist/components/SkillsFetch.js +35 -0
  19. package/dist/components/SkillsFetch.js.map +1 -0
  20. package/dist/components/SkillsRepo.d.ts +8 -0
  21. package/dist/components/SkillsRepo.d.ts.map +1 -0
  22. package/dist/components/SkillsRepo.js +26 -0
  23. package/dist/components/SkillsRepo.js.map +1 -0
  24. package/dist/components/SkillsSelect.d.ts +11 -0
  25. package/dist/components/SkillsSelect.d.ts.map +1 -0
  26. package/dist/components/SkillsSelect.js +59 -0
  27. package/dist/components/SkillsSelect.js.map +1 -0
  28. package/dist/components/index.d.ts +6 -0
  29. package/dist/components/index.d.ts.map +1 -1
  30. package/dist/components/index.js +6 -0
  31. package/dist/components/index.js.map +1 -1
  32. package/dist/index.d.ts +1 -1
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/lib/skills.d.ts +32 -0
  35. package/dist/lib/skills.d.ts.map +1 -0
  36. package/dist/lib/skills.js +465 -0
  37. package/dist/lib/skills.js.map +1 -0
  38. package/dist/lib/types.d.ts +50 -0
  39. package/dist/lib/types.d.ts.map +1 -1
  40. package/dist/lib/types.js +16 -0
  41. package/dist/lib/types.js.map +1 -1
  42. package/package.json +1 -1
package/dist/app.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAOrD,wBAAgB,GAAG,IAAI,KAAK,CAAC,YAAY,CA8HxC"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAgCrD,wBAAgB,GAAG,IAAI,KAAK,CAAC,YAAY,CAkRxC"}
package/dist/app.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import React, { useState, useCallback } from "react";
3
3
  import { Box, Text, useApp } from "ink";
4
- import { Logo, FileSelector, PromptSelector, Summary } from "./components/index.js";
4
+ import { Logo, MainMenu, FileSelector, PromptSelector, Summary, SkillsRepo, SkillsFetch, SkillsSelect, SkillsConfirm, SkillsDownload, } from "./components/index.js";
5
5
  import { defaultPrompts } from "./prompts/index.js";
6
6
  import { writePromptsToFile } from "./lib/file.js";
7
7
  export function App() {
@@ -9,13 +9,25 @@ export function App() {
9
9
  const [state, setState] = useState({ phase: "logo" });
10
10
  const [outputFile, setOutputFile] = useState("CLAUDE.md");
11
11
  const [prompts, setPrompts] = useState(defaultPrompts.map((p) => ({ ...p, enabled: true })));
12
+ // Logo complete -> Main Menu
12
13
  const handleLogoComplete = useCallback(() => {
13
- setState({ phase: "fileSelect" });
14
+ setState({ phase: "mainMenu" });
14
15
  }, []);
16
+ // Main Menu selection
17
+ const handleMainMenuSelect = useCallback((choice) => {
18
+ if (choice === "prompts") {
19
+ setState({ phase: "fileSelect" });
20
+ }
21
+ else {
22
+ setState({ phase: "skillsRepo" });
23
+ }
24
+ }, []);
25
+ // File selection for prompts
15
26
  const handleFileSelect = useCallback((file) => {
16
27
  setOutputFile(file);
17
28
  setState({ phase: "promptSelect", currentIndex: 0 });
18
29
  }, []);
30
+ // Prompt confirmation
19
31
  const handlePromptConfirm = useCallback(() => {
20
32
  if (state.phase !== "promptSelect")
21
33
  return;
@@ -27,6 +39,7 @@ export function App() {
27
39
  setState({ phase: "summary" });
28
40
  }
29
41
  }, [state, prompts.length]);
42
+ // Prompt cancel (skip)
30
43
  const handlePromptCancel = useCallback(() => {
31
44
  if (state.phase !== "promptSelect")
32
45
  return;
@@ -39,6 +52,7 @@ export function App() {
39
52
  setState({ phase: "summary" });
40
53
  }
41
54
  }, [state, prompts.length]);
55
+ // Summary confirmation -> write file
42
56
  const handleSummaryConfirm = useCallback(() => {
43
57
  setState({ phase: "writing" });
44
58
  const result = writePromptsToFile(outputFile, prompts);
@@ -60,15 +74,87 @@ export function App() {
60
74
  }, 2000);
61
75
  }
62
76
  }, [outputFile, prompts, exit]);
77
+ // Summary cancel
63
78
  const handleSummaryCancel = useCallback(() => {
64
79
  setState({ phase: "done", success: false, message: "Cancelled by user" });
65
80
  setTimeout(() => {
66
81
  exit();
67
82
  }, 1000);
68
83
  }, [exit]);
84
+ // Skills: Repository URL submitted
85
+ const handleSkillsRepoSubmit = useCallback((repoUrl) => {
86
+ setState({ phase: "skillsFetching", repoUrl });
87
+ }, []);
88
+ // Skills: Back to main menu
89
+ const handleSkillsBack = useCallback(() => {
90
+ setState({ phase: "mainMenu" });
91
+ }, []);
92
+ // Skills: Fetch complete
93
+ const handleSkillsFetchComplete = useCallback((skills) => {
94
+ if (state.phase !== "skillsFetching")
95
+ return;
96
+ setState({ phase: "skillsSelect", repoUrl: state.repoUrl, skills });
97
+ }, [state]);
98
+ // Skills: Fetch error
99
+ const handleSkillsFetchError = useCallback((error) => {
100
+ const message = error.type === "fetch_error"
101
+ ? error.message
102
+ : error.type === "parse_error"
103
+ ? `Parse error: ${error.message}`
104
+ : error.type === "network_error"
105
+ ? `Network error: ${error.message}`
106
+ : `Download error: ${error.message}`;
107
+ setState({ phase: "done", success: false, message });
108
+ setTimeout(() => {
109
+ exit();
110
+ }, 2000);
111
+ }, [exit]);
112
+ // Skills: Selection confirmed
113
+ const handleSkillsSelectConfirm = useCallback((selectedSkills) => {
114
+ setState({ phase: "skillsConfirm", skills: selectedSkills });
115
+ }, []);
116
+ // Skills: Selection back
117
+ const handleSkillsSelectBack = useCallback(() => {
118
+ setState({ phase: "skillsRepo" });
119
+ }, []);
120
+ // Skills: Confirm download
121
+ const handleSkillsConfirmDownload = useCallback(() => {
122
+ if (state.phase !== "skillsConfirm")
123
+ return;
124
+ setState({ phase: "skillsDownloading", skills: state.skills, currentIndex: 0 });
125
+ }, [state]);
126
+ // Skills: Cancel download
127
+ const handleSkillsConfirmCancel = useCallback(() => {
128
+ setState({ phase: "mainMenu" });
129
+ }, []);
130
+ // Skills: Download complete
131
+ const handleSkillsDownloadComplete = useCallback((results) => {
132
+ const successCount = results.filter((r) => r.success).length;
133
+ const failCount = results.filter((r) => !r.success).length;
134
+ let message;
135
+ if (failCount === 0) {
136
+ message = `Successfully downloaded ${successCount} skill(s) to .claude/skills/`;
137
+ }
138
+ else if (successCount === 0) {
139
+ message = `Failed to download all ${failCount} skill(s)`;
140
+ }
141
+ else {
142
+ message = `Downloaded ${successCount} skill(s), ${failCount} failed`;
143
+ }
144
+ setState({
145
+ phase: "done",
146
+ success: failCount === 0,
147
+ message,
148
+ });
149
+ setTimeout(() => {
150
+ exit();
151
+ }, 2000);
152
+ }, [exit]);
69
153
  switch (state.phase) {
70
154
  case "logo":
71
155
  return _jsx(Logo, { onComplete: handleLogoComplete });
156
+ case "mainMenu":
157
+ return _jsx(MainMenu, { onSelect: handleMainMenuSelect });
72
158
  case "fileSelect":
73
159
  return _jsx(FileSelector, { onSelect: handleFileSelect });
74
160
  case "promptSelect": {
@@ -83,6 +169,16 @@ export function App() {
83
169
  return (_jsx(Summary, { outputFile: outputFile, prompts: prompts, onConfirm: handleSummaryConfirm, onCancel: handleSummaryCancel }));
84
170
  case "writing":
85
171
  return (_jsx(Box, { children: _jsxs(Text, { children: ["Writing to ", outputFile, "..."] }) }));
172
+ case "skillsRepo":
173
+ return (_jsx(SkillsRepo, { onSubmit: handleSkillsRepoSubmit, onBack: handleSkillsBack }));
174
+ case "skillsFetching":
175
+ return (_jsx(SkillsFetch, { repoUrl: state.repoUrl, onComplete: handleSkillsFetchComplete, onError: handleSkillsFetchError }));
176
+ case "skillsSelect":
177
+ return (_jsx(SkillsSelect, { skills: state.skills, repoUrl: state.repoUrl, onConfirm: handleSkillsSelectConfirm, onBack: handleSkillsSelectBack }));
178
+ case "skillsConfirm":
179
+ return (_jsx(SkillsConfirm, { skills: state.skills, onConfirm: handleSkillsConfirmDownload, onCancel: handleSkillsConfirmCancel }));
180
+ case "skillsDownloading":
181
+ return (_jsx(SkillsDownload, { skills: state.skills, onComplete: handleSkillsDownloadComplete }));
86
182
  case "done":
87
183
  return (_jsx(Box, { flexDirection: "column", children: state.success ? (_jsx(Text, { color: "green", children: state.message })) : (_jsx(Text, { color: "red", children: state.message })) }));
88
184
  }
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import type { MainMenuChoice } from "../lib/types.js";
3
+ interface MainMenuProps {
4
+ onSelect: (choice: MainMenuChoice) => void;
5
+ }
6
+ export declare function MainMenu({ onSelect }: MainMenuProps): React.ReactElement;
7
+ export {};
8
+ //# sourceMappingURL=MainMenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MainMenu.d.ts","sourceRoot":"","sources":["../../src/components/MainMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,UAAU,aAAa;IACrB,QAAQ,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;CAC5C;AAED,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE,aAAa,GAAG,KAAK,CAAC,YAAY,CA4BxE"}
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { Box, Text } from "ink";
4
+ import { Select } from "@inkjs/ui";
5
+ export function MainMenu({ onSelect }) {
6
+ const options = [
7
+ {
8
+ label: "Generate Prompts (CLAUDE.md / AGENTS.md)",
9
+ value: "prompts",
10
+ },
11
+ {
12
+ label: "Download Skills from GitHub Repository",
13
+ value: "skills",
14
+ },
15
+ ];
16
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { bold: true, children: "What would you like to do?" }) }), _jsx(Select, { options: options, onChange: (value) => {
17
+ onSelect(value);
18
+ } }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: "Use arrow keys to navigate, Enter to select" }) })] }));
19
+ }
20
+ //# sourceMappingURL=MainMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MainMenu.js","sourceRoot":"","sources":["../../src/components/MainMenu.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAOnC,MAAM,UAAU,QAAQ,CAAC,EAAE,QAAQ,EAAiB;IAClD,MAAM,OAAO,GAAG;QACd;YACE,KAAK,EAAE,0CAA0C;YACjD,KAAK,EAAE,SAAkB;SAC1B;QACD;YACE,KAAK,EAAE,wCAAwC;YAC/C,KAAK,EAAE,QAAiB;SACzB;KACF,CAAC;IAEF,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YAClB,KAAC,IAAI,IAAC,IAAI,iDAAkC,GACxC,EACN,KAAC,MAAM,IACL,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,QAAQ,CAAC,KAAuB,CAAC,CAAC;gBACpC,CAAC,GACD,EACF,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,IAAI,IAAC,QAAQ,kEAAmD,GAC7D,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import type { SkillItem } from "../lib/types.js";
3
+ interface SkillsConfirmProps {
4
+ skills: SkillItem[];
5
+ onConfirm: () => void;
6
+ onCancel: () => void;
7
+ }
8
+ export declare function SkillsConfirm({ skills, onConfirm, onCancel, }: SkillsConfirmProps): React.ReactElement;
9
+ export {};
10
+ //# sourceMappingURL=SkillsConfirm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillsConfirm.d.ts","sourceRoot":"","sources":["../../src/components/SkillsConfirm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,UAAU,kBAAkB;IAC1B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,SAAS,EACT,QAAQ,GACT,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,CA+BzC"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { Box, Text } from "ink";
4
+ import { ConfirmInput } from "@inkjs/ui";
5
+ export function SkillsConfirm({ skills, onConfirm, onCancel, }) {
6
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { bold: true, children: "Confirm Download" }) }), _jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsxs(Text, { bold: true, color: "green", children: ["Skills to download (", skills.length, "):"] }), skills.map((skill) => (_jsx(Box, { marginLeft: 2, children: _jsxs(Text, { color: "green", children: ["+ ", skill.name] }) }, skill.id)))] }), _jsx(Box, { marginBottom: 1, children: _jsxs(Text, { children: ["Destination: ", _jsx(Text, { color: "cyan", children: ".claude/skills/" })] }) }), _jsx(Box, { marginBottom: 1, children: _jsx(Text, { bold: true, children: "Download these skills?" }) }), _jsx(ConfirmInput, { onConfirm: onConfirm, onCancel: onCancel })] }));
7
+ }
8
+ //# sourceMappingURL=SkillsConfirm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillsConfirm.js","sourceRoot":"","sources":["../../src/components/SkillsConfirm.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AASzC,MAAM,UAAU,aAAa,CAAC,EAC5B,MAAM,EACN,SAAS,EACT,QAAQ,GACW;IACnB,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YAClB,KAAC,IAAI,IAAC,IAAI,uCAAwB,GAC9B,EAEN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,aACzC,MAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,OAAO,qCACD,MAAM,CAAC,MAAM,UAC7B,EACN,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACrB,KAAC,GAAG,IAAgB,UAAU,EAAE,CAAC,YAC/B,MAAC,IAAI,IAAC,KAAK,EAAC,OAAO,mBAAI,KAAK,CAAC,IAAI,IAAQ,IADjC,KAAK,CAAC,EAAE,CAEZ,CACP,CAAC,IACE,EAEN,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YAClB,MAAC,IAAI,gCACU,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,gCAAuB,IACjD,GACH,EAEN,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YAClB,KAAC,IAAI,IAAC,IAAI,6CAA8B,GACpC,EAEN,KAAC,YAAY,IAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAI,IACtD,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ import React from "react";
2
+ import type { SkillItem } from "../lib/types.js";
3
+ interface DownloadResult {
4
+ skill: SkillItem;
5
+ success: boolean;
6
+ path?: string;
7
+ error?: string;
8
+ }
9
+ interface SkillsDownloadProps {
10
+ skills: SkillItem[];
11
+ onComplete: (results: DownloadResult[]) => void;
12
+ }
13
+ export declare function SkillsDownload({ skills, onComplete, }: SkillsDownloadProps): React.ReactElement;
14
+ export {};
15
+ //# sourceMappingURL=SkillsDownload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillsDownload.d.ts","sourceRoot":"","sources":["../../src/components/SkillsDownload.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,UAAU,cAAc;IACtB,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,mBAAmB;IAC3B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,UAAU,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;CACjD;AAED,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,UAAU,GACX,EAAE,mBAAmB,GAAG,KAAK,CAAC,YAAY,CAmF1C"}
@@ -0,0 +1,40 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React, { useEffect, useState } from "react";
3
+ import { Box, Text } from "ink";
4
+ import { Spinner, ProgressBar } from "@inkjs/ui";
5
+ import { downloadAndSaveSkill } from "../lib/skills.js";
6
+ export function SkillsDownload({ skills, onComplete, }) {
7
+ const [currentIndex, setCurrentIndex] = useState(0);
8
+ const [results, setResults] = useState([]);
9
+ const [currentSkill, setCurrentSkill] = useState("");
10
+ useEffect(() => {
11
+ let isMounted = true;
12
+ const downloadNext = async () => {
13
+ if (currentIndex >= skills.length) {
14
+ onComplete(results);
15
+ return;
16
+ }
17
+ const skill = skills[currentIndex];
18
+ if (!skill)
19
+ return;
20
+ setCurrentSkill(skill.name);
21
+ const result = await downloadAndSaveSkill(skill);
22
+ if (!isMounted)
23
+ return;
24
+ const downloadResult = result.isOk()
25
+ ? { skill, success: true, path: result.value }
26
+ : { skill, success: false, error: result.error.message };
27
+ setResults((prev) => [...prev, downloadResult]);
28
+ setCurrentIndex((prev) => prev + 1);
29
+ };
30
+ void downloadNext();
31
+ return () => {
32
+ isMounted = false;
33
+ };
34
+ }, [currentIndex, skills, onComplete, results]);
35
+ const progress = skills.length > 0 ? (currentIndex / skills.length) * 100 : 0;
36
+ const successCount = results.filter((r) => r.success).length;
37
+ const failCount = results.filter((r) => !r.success).length;
38
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { bold: true, children: "Downloading Skills..." }) }), _jsx(Box, { marginBottom: 1, children: _jsxs(Text, { children: ["Progress: ", currentIndex, " / ", skills.length] }) }), _jsx(Box, { marginBottom: 1, width: 40, children: _jsx(ProgressBar, { value: Math.round(progress) }) }), currentIndex < skills.length && (_jsx(Box, { marginBottom: 1, children: _jsx(Spinner, { label: `Downloading: ${currentSkill}` }) })), _jsx(Box, { flexDirection: "column", marginBottom: 1, children: results.map((result) => (_jsx(Box, { children: result.success ? (_jsxs(Text, { color: "green", children: ["+ ", result.skill.name] })) : (_jsxs(Text, { color: "red", children: ["x ", result.skill.name, ": ", result.error] })) }, result.skill.id))) }), _jsxs(Box, { children: [_jsxs(Text, { color: "green", children: ["Success: ", successCount] }), _jsx(Text, { children: " | " }), _jsxs(Text, { color: "red", children: ["Failed: ", failCount] })] })] }));
39
+ }
40
+ //# sourceMappingURL=SkillsDownload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillsDownload.js","sourceRoot":"","sources":["../../src/components/SkillsDownload.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import type { SkillItem, SkillError } from "../lib/types.js";
3
+ interface SkillsFetchProps {
4
+ repoUrl: string;
5
+ onComplete: (skills: SkillItem[]) => void;
6
+ onError: (error: SkillError) => void;
7
+ }
8
+ export declare function SkillsFetch({ repoUrl, onComplete, onError, }: SkillsFetchProps): React.ReactElement;
9
+ export {};
10
+ //# sourceMappingURL=SkillsFetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillsFetch.d.ts","sourceRoot":"","sources":["../../src/components/SkillsFetch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7D,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACtC;AAED,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,UAAU,EACV,OAAO,GACR,EAAE,gBAAgB,GAAG,KAAK,CAAC,YAAY,CA2CvC"}
@@ -0,0 +1,35 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React, { useEffect, useState } from "react";
3
+ import { Box, Text } from "ink";
4
+ import { Spinner } from "@inkjs/ui";
5
+ import { fetchSkillsFromRepo } from "../lib/skills.js";
6
+ export function SkillsFetch({ repoUrl, onComplete, onError, }) {
7
+ const [status, setStatus] = useState("Connecting to GitHub...");
8
+ useEffect(() => {
9
+ let isMounted = true;
10
+ const fetchSkills = async () => {
11
+ setStatus("Fetching repository contents...");
12
+ const result = await fetchSkillsFromRepo(repoUrl);
13
+ if (!isMounted)
14
+ return;
15
+ if (result.isOk()) {
16
+ setStatus(`Found ${result.value.length} skills`);
17
+ // Small delay to show the count
18
+ setTimeout(() => {
19
+ if (isMounted) {
20
+ onComplete(result.value);
21
+ }
22
+ }, 500);
23
+ }
24
+ else {
25
+ onError(result.error);
26
+ }
27
+ };
28
+ void fetchSkills();
29
+ return () => {
30
+ isMounted = false;
31
+ };
32
+ }, [repoUrl, onComplete, onError]);
33
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Spinner, { label: status }) }), _jsx(Box, { children: _jsxs(Text, { dimColor: true, children: ["Repository: ", repoUrl] }) })] }));
34
+ }
35
+ //# sourceMappingURL=SkillsFetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillsFetch.js","sourceRoot":"","sources":["../../src/components/SkillsFetch.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AASvD,MAAM,UAAU,WAAW,CAAC,EAC1B,OAAO,EACP,UAAU,EACV,OAAO,GACU;IACjB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAS,yBAAyB,CAAC,CAAC;IAExE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,IAAI,CAAC;QAErB,MAAM,WAAW,GAAG,KAAK,IAAmB,EAAE;YAC5C,SAAS,CAAC,iCAAiC,CAAC,CAAC;YAE7C,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAElD,IAAI,CAAC,SAAS;gBAAE,OAAO;YAEvB,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClB,SAAS,CAAC,SAAS,MAAM,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC;gBACjD,gCAAgC;gBAChC,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,SAAS,EAAE,CAAC;wBACd,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC3B,CAAC;gBACH,CAAC,EAAE,GAAG,CAAC,CAAC;YACV,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;QACH,CAAC,CAAC;QAEF,KAAK,WAAW,EAAE,CAAC;QAEnB,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAEnC,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YAClB,KAAC,OAAO,IAAC,KAAK,EAAE,MAAM,GAAI,GACtB,EACN,KAAC,GAAG,cACF,MAAC,IAAI,IAAC,QAAQ,mCAAc,OAAO,IAAQ,GACvC,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ interface SkillsRepoProps {
3
+ onSubmit: (repoUrl: string) => void;
4
+ onBack: () => void;
5
+ }
6
+ export declare function SkillsRepo({ onSubmit }: SkillsRepoProps): React.ReactElement;
7
+ export {};
8
+ //# sourceMappingURL=SkillsRepo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillsRepo.d.ts","sourceRoot":"","sources":["../../src/components/SkillsRepo.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAIxC,UAAU,eAAe;IACvB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CA2D5E"}
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React, { useState } from "react";
3
+ import { Box, Text } from "ink";
4
+ import { TextInput } from "@inkjs/ui";
5
+ export function SkillsRepo({ onSubmit }) {
6
+ const [error, setError] = useState(null);
7
+ const validateUrl = (url) => {
8
+ const githubPattern = /^https?:\/\/github\.com\/[^/]+\/[^/]+/;
9
+ return githubPattern.test(url);
10
+ };
11
+ const handleSubmit = (value) => {
12
+ const trimmed = value.trim();
13
+ if (!trimmed) {
14
+ setError("Please enter a URL");
15
+ return;
16
+ }
17
+ if (!validateUrl(trimmed)) {
18
+ setError("Invalid GitHub URL format");
19
+ return;
20
+ }
21
+ setError(null);
22
+ onSubmit(trimmed);
23
+ };
24
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { bold: true, children: "Enter GitHub Repository URL:" }) }), _jsxs(Box, { marginBottom: 1, flexDirection: "column", children: [_jsx(Text, { dimColor: true, children: "Supported formats:" }), _jsx(Text, { dimColor: true, children: " https://github.com/owner/repo" }), _jsx(Text, { dimColor: true, children: " https://github.com/owner/repo/tree/branch/path" })] }), _jsxs(Box, { marginBottom: 1, flexDirection: "column", children: [_jsx(Text, { dimColor: true, children: "Examples:" }), _jsx(Text, { dimColor: true, children: " https://github.com/anthropics/skills/tree/main/skills" }), _jsx(Text, { dimColor: true, children: " https://github.com/agentskills/agentskills" })] }), _jsxs(Box, { children: [_jsx(Text, { color: "cyan", children: "URL: " }), _jsx(TextInput, { placeholder: "https://github.com/...", onSubmit: handleSubmit })] }), error && (_jsx(Box, { marginTop: 1, children: _jsx(Text, { color: "red", children: error }) })), _jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: "Press Enter to confirm, Ctrl+C to cancel" }) })] }));
25
+ }
26
+ //# sourceMappingURL=SkillsRepo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillsRepo.js","sourceRoot":"","sources":["../../src/components/SkillsRepo.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAOtC,MAAM,UAAU,UAAU,CAAC,EAAE,QAAQ,EAAmB;IACtD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAExD,MAAM,WAAW,GAAG,CAAC,GAAW,EAAW,EAAE;QAC3C,MAAM,aAAa,GAAG,uCAAuC,CAAC;QAC9D,OAAO,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,KAAa,EAAQ,EAAE;QAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,QAAQ,CAAC,oBAAoB,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,QAAQ,CAAC,2BAA2B,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YAClB,KAAC,IAAI,IAAC,IAAI,mDAAoC,GAC1C,EAEN,MAAC,GAAG,IAAC,YAAY,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,aAC1C,KAAC,IAAI,IAAC,QAAQ,yCAA0B,EACxC,KAAC,IAAI,IAAC,QAAQ,sDAAuC,EACrD,KAAC,IAAI,IAAC,QAAQ,uEAAwD,IAClE,EAEN,MAAC,GAAG,IAAC,YAAY,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,aAC1C,KAAC,IAAI,IAAC,QAAQ,gCAAiB,EAC/B,KAAC,IAAI,IAAC,QAAQ,8EAA+D,EAC7E,KAAC,IAAI,IAAC,QAAQ,mEAAoD,IAC9D,EAEN,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,sBAAa,EAC/B,KAAC,SAAS,IACR,WAAW,EAAC,wBAAwB,EACpC,QAAQ,EAAE,YAAY,GACtB,IACE,EAEL,KAAK,IAAI,CACR,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,YAAE,KAAK,GAAQ,GAC5B,CACP,EAED,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,IAAI,IAAC,QAAQ,+DAAgD,GAC1D,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import type { SkillItem } from "../lib/types.js";
3
+ interface SkillsSelectProps {
4
+ skills: SkillItem[];
5
+ repoUrl: string;
6
+ onConfirm: (selectedSkills: SkillItem[]) => void;
7
+ onBack: () => void;
8
+ }
9
+ export declare function SkillsSelect({ skills, repoUrl, onConfirm, onBack, }: SkillsSelectProps): React.ReactElement;
10
+ export {};
11
+ //# sourceMappingURL=SkillsSelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillsSelect.d.ts","sourceRoot":"","sources":["../../src/components/SkillsSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,UAAU,iBAAiB;IACzB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IACjD,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,OAAO,EACP,SAAS,EACT,MAAM,GACP,EAAE,iBAAiB,GAAG,KAAK,CAAC,YAAY,CAkGxC"}
@@ -0,0 +1,59 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React, { useState } from "react";
3
+ import { Box, Text, useInput } from "ink";
4
+ export function SkillsSelect({ skills, repoUrl, onConfirm, onBack, }) {
5
+ const [selectedIds, setSelectedIds] = useState(new Set());
6
+ const [cursorIndex, setCursorIndex] = useState(0);
7
+ useInput((input, key) => {
8
+ if (key.upArrow) {
9
+ setCursorIndex((prev) => (prev > 0 ? prev - 1 : skills.length - 1));
10
+ }
11
+ else if (key.downArrow) {
12
+ setCursorIndex((prev) => (prev < skills.length - 1 ? prev + 1 : 0));
13
+ }
14
+ else if (input === " ") {
15
+ // Toggle selection
16
+ const skill = skills[cursorIndex];
17
+ if (skill) {
18
+ setSelectedIds((prev) => {
19
+ const next = new Set(prev);
20
+ if (next.has(skill.id)) {
21
+ next.delete(skill.id);
22
+ }
23
+ else {
24
+ next.add(skill.id);
25
+ }
26
+ return next;
27
+ });
28
+ }
29
+ }
30
+ else if (key.return) {
31
+ // Confirm selection
32
+ const selectedSkills = skills
33
+ .filter((s) => selectedIds.has(s.id))
34
+ .map((s) => ({ ...s, selected: true }));
35
+ if (selectedSkills.length > 0) {
36
+ onConfirm(selectedSkills);
37
+ }
38
+ }
39
+ else if (input === "a") {
40
+ // Select all
41
+ setSelectedIds(new Set(skills.map((s) => s.id)));
42
+ }
43
+ else if (input === "n") {
44
+ // Select none
45
+ setSelectedIds(new Set());
46
+ }
47
+ else if (key.escape || input === "q") {
48
+ onBack();
49
+ }
50
+ });
51
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { bold: true, children: "Select skills to download:" }) }), _jsx(Box, { marginBottom: 1, children: _jsxs(Text, { dimColor: true, children: ["From: ", repoUrl] }) }), _jsx(Box, { flexDirection: "column", marginBottom: 1, children: skills.map((skill, index) => {
52
+ const isSelected = selectedIds.has(skill.id);
53
+ const isCursor = index === cursorIndex;
54
+ const prefix = isCursor ? ">" : " ";
55
+ const checkbox = isSelected ? "[x]" : "[ ]";
56
+ return (_jsxs(Box, { children: [isCursor ? (_jsxs(Text, { color: "cyan", children: [prefix, " ", checkbox, " "] })) : (_jsxs(Text, { children: [prefix, " ", checkbox, " "] })), isCursor ? (_jsx(Text, { bold: true, color: "cyan", children: skill.name })) : (_jsx(Text, { children: skill.name })), skill.description && skill.description !== `Skill: ${skill.id}` && (_jsxs(Text, { dimColor: true, children: [" - ", skill.description] }))] }, skill.id));
57
+ }) }), _jsx(Box, { marginBottom: 1, children: _jsxs(Text, { children: ["Selected: ", _jsx(Text, { color: "green", children: selectedIds.size }), " / ", skills.length] }) }), _jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { dimColor: true, children: "Space: toggle, a: all, n: none" }), _jsx(Text, { dimColor: true, children: "Enter: confirm, q/Esc: back" })] })] }));
58
+ }
59
+ //# sourceMappingURL=SkillsSelect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillsSelect.js","sourceRoot":"","sources":["../../src/components/SkillsSelect.tsx"],"names":[],"mappings":"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"}
@@ -2,4 +2,10 @@ export { Logo } from "./Logo.js";
2
2
  export { FileSelector } from "./FileSelector.js";
3
3
  export { PromptSelector } from "./PromptSelector.js";
4
4
  export { Summary } from "./Summary.js";
5
+ export { MainMenu } from "./MainMenu.js";
6
+ export { SkillsRepo } from "./SkillsRepo.js";
7
+ export { SkillsFetch } from "./SkillsFetch.js";
8
+ export { SkillsSelect } from "./SkillsSelect.js";
9
+ export { SkillsConfirm } from "./SkillsConfirm.js";
10
+ export { SkillsDownload } from "./SkillsDownload.js";
5
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
@@ -2,4 +2,10 @@ export { Logo } from "./Logo.js";
2
2
  export { FileSelector } from "./FileSelector.js";
3
3
  export { PromptSelector } from "./PromptSelector.js";
4
4
  export { Summary } from "./Summary.js";
5
+ export { MainMenu } from "./MainMenu.js";
6
+ export { SkillsRepo } from "./SkillsRepo.js";
7
+ export { SkillsFetch } from "./SkillsFetch.js";
8
+ export { SkillsSelect } from "./SkillsSelect.js";
9
+ export { SkillsConfirm } from "./SkillsConfirm.js";
10
+ export { SkillsDownload } from "./SkillsDownload.js";
5
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export { App } from "./app.js";
2
2
  export { defaultPrompts } from "./prompts/index.js";
3
- export type { PromptItem, OutputFile, AppState, FileError } from "./lib/types.js";
3
+ export type { PromptItem, OutputFile, AppState, FileError, SkillItem, SkillMetadata, SkillError, MainMenuChoice, } from "./lib/types.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,YAAY,EACV,UAAU,EACV,UAAU,EACV,QAAQ,EACR,SAAS,EACT,SAAS,EACT,aAAa,EACb,UAAU,EACV,cAAc,GACf,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { Result } from "neverthrow";
2
+ import type { SkillItem, SkillError } from "./types.js";
3
+ /**
4
+ * Fetch skills from a GitHub repository
5
+ */
6
+ export declare function fetchSkillsFromRepo(repoUrl: string): Promise<Result<SkillItem[], SkillError>>;
7
+ /**
8
+ * Download skill content (SKILL.md and optionally related files)
9
+ */
10
+ export declare function downloadSkillContent(skill: SkillItem): Promise<Result<string, SkillError>>;
11
+ /**
12
+ * Download the entire skill directory including all resources
13
+ * Returns a map of relative paths to content
14
+ */
15
+ export declare function downloadSkillDirectory(skill: SkillItem): Promise<Result<Map<string, string>, SkillError>>;
16
+ /**
17
+ * Save skill content to a single file
18
+ */
19
+ export declare function saveSkillToFile(skillName: string, content: string): Result<string, SkillError>;
20
+ /**
21
+ * Save skill as a full directory with all resources
22
+ */
23
+ export declare function saveSkillDirectory(skillName: string, files: Map<string, string>): Result<string, SkillError>;
24
+ /**
25
+ * Download and save skill (single file mode)
26
+ */
27
+ export declare function downloadAndSaveSkill(skill: SkillItem): Promise<Result<string, SkillError>>;
28
+ /**
29
+ * Download and save skill with all resources (directory mode)
30
+ */
31
+ export declare function downloadAndSaveSkillWithResources(skill: SkillItem): Promise<Result<string, SkillError>>;
32
+ //# sourceMappingURL=skills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/lib/skills.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAW,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAiB,MAAM,YAAY,CAAC;AAqWvE;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,UAAU,CAAC,CAAC,CAenG;AAgCD;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CA6CrC;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CA8BlD;AAcD;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAuB9F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACzB,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAgC5B;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAOhG;AAED;;GAEG;AACH,wBAAsB,iCAAiC,CACrD,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAOrC"}