@take-out/cli 0.4.3 → 0.4.5
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.
- package/dist/cjs/cli.cjs +53 -35
- package/dist/cjs/commands/changed.cjs +133 -95
- package/dist/cjs/commands/docs.cjs +276 -203
- package/dist/cjs/commands/env-setup.cjs +45 -33
- package/dist/cjs/commands/onboard.cjs +668 -224
- package/dist/cjs/commands/run-all.cjs +54 -45
- package/dist/cjs/commands/run.cjs +80 -65
- package/dist/cjs/commands/script.cjs +263 -187
- package/dist/cjs/commands/skills.cjs +174 -118
- package/dist/cjs/commands/sync.cjs +193 -93
- package/dist/cjs/constants/ascii.cjs +14 -12
- package/dist/cjs/index.cjs +12 -10
- package/dist/cjs/types.cjs +7 -5
- package/dist/cjs/utils/env-categories.cjs +53 -48
- package/dist/cjs/utils/env-setup.cjs +214 -106
- package/dist/cjs/utils/env.cjs +65 -44
- package/dist/cjs/utils/files.cjs +186 -113
- package/dist/cjs/utils/parallel-runner.cjs +125 -75
- package/dist/cjs/utils/ports.cjs +21 -21
- package/dist/cjs/utils/prerequisites.cjs +42 -34
- package/dist/cjs/utils/prompts.cjs +66 -41
- package/dist/cjs/utils/script-listing.cjs +130 -60
- package/dist/cjs/utils/script-utils.cjs +29 -19
- package/dist/cjs/utils/sync.cjs +67 -45
- package/dist/esm/cli.mjs +40 -24
- package/dist/esm/cli.mjs.map +1 -1
- package/dist/esm/commands/changed.mjs +104 -68
- package/dist/esm/commands/changed.mjs.map +1 -1
- package/dist/esm/commands/docs.mjs +245 -174
- package/dist/esm/commands/docs.mjs.map +1 -1
- package/dist/esm/commands/env-setup.mjs +18 -8
- package/dist/esm/commands/env-setup.mjs.map +1 -1
- package/dist/esm/commands/onboard.mjs +631 -189
- package/dist/esm/commands/onboard.mjs.map +1 -1
- package/dist/esm/commands/run-all.mjs +26 -19
- package/dist/esm/commands/run-all.mjs.map +1 -1
- package/dist/esm/commands/run.mjs +52 -39
- package/dist/esm/commands/run.mjs.map +1 -1
- package/dist/esm/commands/script.mjs +230 -156
- package/dist/esm/commands/script.mjs.map +1 -1
- package/dist/esm/commands/skills.mjs +143 -89
- package/dist/esm/commands/skills.mjs.map +1 -1
- package/dist/esm/commands/sync.mjs +160 -62
- package/dist/esm/commands/sync.mjs.map +1 -1
- package/dist/esm/constants/ascii.mjs +2 -2
- package/dist/esm/constants/ascii.mjs.map +1 -1
- package/dist/esm/utils/env-categories.mjs +29 -26
- package/dist/esm/utils/env-categories.mjs.map +1 -1
- package/dist/esm/utils/env-setup.mjs +184 -78
- package/dist/esm/utils/env-setup.mjs.map +1 -1
- package/dist/esm/utils/env.mjs +50 -31
- package/dist/esm/utils/env.mjs.map +1 -1
- package/dist/esm/utils/files.mjs +171 -100
- package/dist/esm/utils/files.mjs.map +1 -1
- package/dist/esm/utils/parallel-runner.mjs +111 -63
- package/dist/esm/utils/parallel-runner.mjs.map +1 -1
- package/dist/esm/utils/ports.mjs +9 -11
- package/dist/esm/utils/ports.mjs.map +1 -1
- package/dist/esm/utils/prerequisites.mjs +30 -24
- package/dist/esm/utils/prerequisites.mjs.map +1 -1
- package/dist/esm/utils/prompts.mjs +40 -17
- package/dist/esm/utils/prompts.mjs.map +1 -1
- package/dist/esm/utils/script-listing.mjs +101 -33
- package/dist/esm/utils/script-listing.mjs.map +1 -1
- package/dist/esm/utils/script-utils.mjs +14 -6
- package/dist/esm/utils/script-utils.mjs.map +1 -1
- package/dist/esm/utils/sync.mjs +38 -18
- package/dist/esm/utils/sync.mjs.map +1 -1
- package/package.json +5 -5
|
@@ -12,23 +12,23 @@ try {
|
|
|
12
12
|
}
|
|
13
13
|
const SKILL_PREFIX = "takeout-";
|
|
14
14
|
function hasSkillFrontmatter(content) {
|
|
15
|
-
if (!content.startsWith("---")) return
|
|
15
|
+
if (!content.startsWith("---")) return false;
|
|
16
16
|
const endIndex = content.indexOf("---", 3);
|
|
17
|
-
if (endIndex === -1) return
|
|
17
|
+
if (endIndex === -1) return false;
|
|
18
18
|
const frontmatter = content.slice(3, endIndex);
|
|
19
19
|
return frontmatter.includes("name:") && frontmatter.includes("description:");
|
|
20
20
|
}
|
|
21
21
|
function isDevOnly(content) {
|
|
22
|
-
if (!content.startsWith("---")) return
|
|
22
|
+
if (!content.startsWith("---")) return false;
|
|
23
23
|
const endIndex = content.indexOf("---", 3);
|
|
24
|
-
if (endIndex === -1) return
|
|
24
|
+
if (endIndex === -1) return false;
|
|
25
25
|
const frontmatter = content.slice(3, endIndex);
|
|
26
26
|
return /\bdev:\s*true\b/.test(frontmatter);
|
|
27
27
|
}
|
|
28
28
|
function collectAllDocs(cwd) {
|
|
29
|
-
const docs = []
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
const docs = [];
|
|
30
|
+
const seen = /* @__PURE__ */new Set();
|
|
31
|
+
const localDocsDir = join(cwd, "docs");
|
|
32
32
|
if (existsSync(localDocsDir)) {
|
|
33
33
|
const files = readdirSync(localDocsDir).filter(f => f.endsWith(".md"));
|
|
34
34
|
for (const file of files) {
|
|
@@ -37,41 +37,55 @@ function collectAllDocs(cwd) {
|
|
|
37
37
|
name,
|
|
38
38
|
path: join(localDocsDir, file),
|
|
39
39
|
source: "local"
|
|
40
|
-
})
|
|
40
|
+
});
|
|
41
|
+
seen.add(name);
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
44
|
if (DOCS_DIR && existsSync(DOCS_DIR)) {
|
|
44
45
|
const files = readdirSync(DOCS_DIR).filter(f => f.endsWith(".md"));
|
|
45
46
|
for (const file of files) {
|
|
46
47
|
const name = file.replace(/\.md$/, "");
|
|
47
|
-
seen.has(name)
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
if (!seen.has(name)) {
|
|
49
|
+
docs.push({
|
|
50
|
+
name,
|
|
51
|
+
path: join(DOCS_DIR, file),
|
|
52
|
+
source: "package"
|
|
53
|
+
});
|
|
54
|
+
}
|
|
52
55
|
}
|
|
53
56
|
}
|
|
54
57
|
return docs;
|
|
55
58
|
}
|
|
56
59
|
async function generateDocSkills(cwd, clean) {
|
|
57
|
-
const skillsDir = join(cwd, ".claude", "skills")
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
if (docs.length === 0
|
|
60
|
+
const skillsDir = join(cwd, ".claude", "skills");
|
|
61
|
+
const docs = collectAllDocs(cwd);
|
|
62
|
+
const localDocsDir = join(cwd, "docs");
|
|
63
|
+
const expectedSkillNames = /* @__PURE__ */new Set();
|
|
64
|
+
if (docs.length === 0) {
|
|
65
|
+
console.info(pc.yellow("no documentation files found"));
|
|
66
|
+
} else {
|
|
67
|
+
console.info(pc.dim(`found ${docs.length} documentation files`));
|
|
68
|
+
}
|
|
69
|
+
if (clean && existsSync(skillsDir)) {
|
|
62
70
|
const existing = readdirSync(skillsDir);
|
|
63
|
-
for (const dir of existing)
|
|
64
|
-
|
|
71
|
+
for (const dir of existing) {
|
|
72
|
+
if (dir.startsWith(SKILL_PREFIX)) {
|
|
73
|
+
rmSync(join(skillsDir, dir), {
|
|
74
|
+
recursive: true
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (!existsSync(skillsDir)) {
|
|
80
|
+
mkdirSync(skillsDir, {
|
|
81
|
+
recursive: true
|
|
65
82
|
});
|
|
66
83
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
let
|
|
71
|
-
|
|
72
|
-
unchanged = 0,
|
|
73
|
-
removed = 0,
|
|
74
|
-
skipped = 0;
|
|
84
|
+
let symlinked = 0;
|
|
85
|
+
let generated = 0;
|
|
86
|
+
let unchanged = 0;
|
|
87
|
+
let removed = 0;
|
|
88
|
+
let skipped = 0;
|
|
75
89
|
const isDev = !!process.env.IS_TAMAGUI_DEV;
|
|
76
90
|
for (const doc of docs) {
|
|
77
91
|
const content = readFileSync(doc.path, "utf-8");
|
|
@@ -82,45 +96,70 @@ async function generateDocSkills(cwd, clean) {
|
|
|
82
96
|
if (!nameMatch) continue;
|
|
83
97
|
const skillName = nameMatch[1].trim();
|
|
84
98
|
expectedSkillNames.add(skillName);
|
|
85
|
-
const skillDir = join(skillsDir, skillName)
|
|
86
|
-
|
|
87
|
-
existsSync(skillDir)
|
|
88
|
-
|
|
89
|
-
|
|
99
|
+
const skillDir = join(skillsDir, skillName);
|
|
100
|
+
const skillFile = join(skillDir, "SKILL.md");
|
|
101
|
+
if (!existsSync(skillDir)) {
|
|
102
|
+
mkdirSync(skillDir, {
|
|
103
|
+
recursive: true
|
|
104
|
+
});
|
|
105
|
+
}
|
|
90
106
|
const relativePath = relative(skillDir, doc.path);
|
|
91
|
-
let shouldCreate =
|
|
107
|
+
let shouldCreate = true;
|
|
92
108
|
try {
|
|
93
|
-
|
|
109
|
+
const stat = lstatSync(skillFile);
|
|
110
|
+
if (stat.isSymbolicLink() && existsSync(skillFile)) {
|
|
111
|
+
const existingContent = readFileSync(skillFile, "utf-8");
|
|
112
|
+
if (existingContent === content) {
|
|
113
|
+
unchanged++;
|
|
114
|
+
shouldCreate = false;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (shouldCreate) {
|
|
118
|
+
unlinkSync(skillFile);
|
|
119
|
+
}
|
|
94
120
|
} catch {}
|
|
95
121
|
if (!shouldCreate) continue;
|
|
96
|
-
symlinkSync(relativePath, skillFile)
|
|
122
|
+
symlinkSync(relativePath, skillFile);
|
|
123
|
+
symlinked++;
|
|
97
124
|
const sourceLabel = doc.source === "local" ? pc.blue("local") : pc.dim("package");
|
|
98
125
|
console.info(` ${pc.green("\u27F7")} ${skillName} ${sourceLabel} ${pc.dim("(symlink)")}`);
|
|
99
|
-
} else
|
|
100
|
-
|
|
101
|
-
|
|
126
|
+
} else {
|
|
127
|
+
if (!hasFrontmatter) {
|
|
128
|
+
skipped++;
|
|
129
|
+
console.info(` ${pc.yellow("!")} skipped ${pc.dim(doc.name)} ${pc.dim("(missing skill frontmatter)")}`);
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
102
132
|
}
|
|
103
133
|
}
|
|
104
134
|
for (const dir of readdirSync(skillsDir)) {
|
|
105
135
|
if (expectedSkillNames.has(dir)) continue;
|
|
106
|
-
const skillDir = join(skillsDir, dir)
|
|
107
|
-
|
|
136
|
+
const skillDir = join(skillsDir, dir);
|
|
137
|
+
const skillFile = join(skillDir, "SKILL.md");
|
|
108
138
|
if (dir.startsWith(SKILL_PREFIX)) {
|
|
109
139
|
rmSync(skillDir, {
|
|
110
|
-
recursive:
|
|
111
|
-
force:
|
|
112
|
-
})
|
|
140
|
+
recursive: true,
|
|
141
|
+
force: true
|
|
142
|
+
});
|
|
143
|
+
removed++;
|
|
144
|
+
console.info(` ${pc.red("\u2715")} ${dir} ${pc.dim("(removed stale generated skill)")}`);
|
|
113
145
|
continue;
|
|
114
146
|
}
|
|
115
|
-
let shouldUnlink =
|
|
147
|
+
let shouldUnlink = false;
|
|
116
148
|
try {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
149
|
+
const stat = lstatSync(skillFile);
|
|
150
|
+
if (stat.isSymbolicLink()) {
|
|
151
|
+
const linkTarget = readlinkSync(skillFile);
|
|
152
|
+
const resolvedTarget = resolve(skillDir, linkTarget);
|
|
120
153
|
shouldUnlink = resolvedTarget.startsWith(`${localDocsDir}/`) || !!DOCS_DIR && resolvedTarget.startsWith(`${DOCS_DIR}/`);
|
|
121
154
|
}
|
|
122
155
|
} catch {}
|
|
123
|
-
|
|
156
|
+
if (!shouldUnlink) continue;
|
|
157
|
+
unlinkSync(skillFile);
|
|
158
|
+
if (readdirSync(skillDir).length === 0) {
|
|
159
|
+
rmdirSync(skillDir);
|
|
160
|
+
}
|
|
161
|
+
removed++;
|
|
162
|
+
console.info(` ${pc.red("\u2715")} ${dir} ${pc.dim("(removed stale symlink)")}`);
|
|
124
163
|
}
|
|
125
164
|
return {
|
|
126
165
|
symlinked,
|
|
@@ -131,48 +170,63 @@ async function generateDocSkills(cwd, clean) {
|
|
|
131
170
|
};
|
|
132
171
|
}
|
|
133
172
|
const generateCommand = defineCommand({
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
},
|
|
144
|
-
"skip-internal-docs": {
|
|
145
|
-
type: "boolean",
|
|
146
|
-
description: "Skip generating skills from internal documentation files",
|
|
147
|
-
default: !1
|
|
148
|
-
}
|
|
173
|
+
meta: {
|
|
174
|
+
name: "generate",
|
|
175
|
+
description: "Generate Claude Code skills from documentation"
|
|
176
|
+
},
|
|
177
|
+
args: {
|
|
178
|
+
clean: {
|
|
179
|
+
type: "boolean",
|
|
180
|
+
description: "Remove existing takeout-* skills before generating",
|
|
181
|
+
default: false
|
|
149
182
|
},
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
skillsDir = join(cwd, ".claude", "skills");
|
|
155
|
-
console.info(), console.info(pc.bold(pc.cyan("Generate all skills"))), console.info();
|
|
156
|
-
let symlinked = 0,
|
|
157
|
-
generated = 0,
|
|
158
|
-
unchanged = 0,
|
|
159
|
-
removed = 0,
|
|
160
|
-
skipped = 0;
|
|
161
|
-
if (!args["skip-internal-docs"]) {
|
|
162
|
-
const docStats = await generateDocSkills(cwd, args.clean);
|
|
163
|
-
symlinked = docStats.symlinked, generated = docStats.generated, unchanged = docStats.unchanged, removed = docStats.removed, skipped = docStats.skipped, console.info();
|
|
164
|
-
}
|
|
165
|
-
console.info(), console.info(pc.bold("summary:")), symlinked > 0 && console.info(` ${pc.green(`${symlinked} symlinked`)}`), generated > 0 && console.info(` ${pc.yellow(`${generated} generated`)} ${pc.dim("(add frontmatter to enable symlink)")}`), skipped > 0 && console.info(` ${pc.yellow(`${skipped} skipped`)} ${pc.dim("(missing skill frontmatter)")}`), unchanged > 0 && console.info(` ${pc.dim(`${unchanged} unchanged`)}`), removed > 0 && console.info(` ${pc.red(`${removed} removed`)}`), console.info(pc.dim(` skills in ${skillsDir}`)), console.info();
|
|
183
|
+
"skip-internal-docs": {
|
|
184
|
+
type: "boolean",
|
|
185
|
+
description: "Skip generating skills from internal documentation files",
|
|
186
|
+
default: false
|
|
166
187
|
}
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
188
|
+
},
|
|
189
|
+
async run({
|
|
190
|
+
args
|
|
191
|
+
}) {
|
|
192
|
+
const cwd = process.cwd();
|
|
193
|
+
const skillsDir = join(cwd, ".claude", "skills");
|
|
194
|
+
console.info();
|
|
195
|
+
console.info(pc.bold(pc.cyan("Generate all skills")));
|
|
196
|
+
console.info();
|
|
197
|
+
let symlinked = 0;
|
|
198
|
+
let generated = 0;
|
|
199
|
+
let unchanged = 0;
|
|
200
|
+
let removed = 0;
|
|
201
|
+
let skipped = 0;
|
|
202
|
+
if (!args["skip-internal-docs"]) {
|
|
203
|
+
const docStats = await generateDocSkills(cwd, args.clean);
|
|
204
|
+
symlinked = docStats.symlinked;
|
|
205
|
+
generated = docStats.generated;
|
|
206
|
+
unchanged = docStats.unchanged;
|
|
207
|
+
removed = docStats.removed;
|
|
208
|
+
skipped = docStats.skipped;
|
|
209
|
+
console.info();
|
|
175
210
|
}
|
|
176
|
-
|
|
211
|
+
console.info();
|
|
212
|
+
console.info(pc.bold("summary:"));
|
|
213
|
+
if (symlinked > 0) console.info(` ${pc.green(`${symlinked} symlinked`)}`);
|
|
214
|
+
if (generated > 0) console.info(` ${pc.yellow(`${generated} generated`)} ${pc.dim("(add frontmatter to enable symlink)")}`);
|
|
215
|
+
if (skipped > 0) console.info(` ${pc.yellow(`${skipped} skipped`)} ${pc.dim("(missing skill frontmatter)")}`);
|
|
216
|
+
if (unchanged > 0) console.info(` ${pc.dim(`${unchanged} unchanged`)}`);
|
|
217
|
+
if (removed > 0) console.info(` ${pc.red(`${removed} removed`)}`);
|
|
218
|
+
console.info(pc.dim(` skills in ${skillsDir}`));
|
|
219
|
+
console.info();
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
const skillsCommand = defineCommand({
|
|
223
|
+
meta: {
|
|
224
|
+
name: "skills",
|
|
225
|
+
description: "Manage Claude Code skills"
|
|
226
|
+
},
|
|
227
|
+
subCommands: {
|
|
228
|
+
generate: generateCommand
|
|
229
|
+
}
|
|
230
|
+
});
|
|
177
231
|
export { skillsCommand };
|
|
178
232
|
//# sourceMappingURL=skills.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["existsSync","lstatSync","mkdirSync","readdirSync","readFileSync","readlinkSync","rmSync","rmdirSync","symlinkSync","unlinkSync","createRequire","dirname","join","relative","resolve","defineCommand","pc","require2","import","meta","url","DOCS_DIR","SKILL_PREFIX","hasSkillFrontmatter","content","startsWith","endIndex","indexOf","frontmatter","slice","includes","isDevOnly","test","collectAllDocs","cwd","docs","seen","Set","localDocsDir","files","filter","f","endsWith","file","name","replace","push","path","source","add","has","generateDocSkills","clean","skillsDir","expectedSkillNames","length","console","info","yellow","dim","existing","dir","recursive","symlinked","generated","unchanged","removed","skipped","isDev","process","env","IS_TAMAGUI_DEV","doc","hasFrontmatter","nameMatch","match","skillName","trim","skillDir","skillFile","relativePath","shouldCreate","isSymbolicLink","sourceLabel","blue","green","force","red","shouldUnlink","linkTarget","resolvedTarget","generateCommand","description","args","type","default","run","bold","cyan","docStats","skillsCommand","subCommands","generate"],"sources":["../../../src/commands/skills.ts"],"sourcesContent":[null],"mappings":"AAIA,SACEA,UAAA,EACAC,SAAA,EACAC,SAAA,EACAC,WAAA,EACAC,YAAA,EACAC,YAAA,EACAC,MAAA,EACAC,SAAA,EACAC,WAAA,EACAC,UAAA,QAEK;AACP,SAASC,aAAA,QAAqB;AAC9B,SAASC,OAAA,EAASC,IAAA,EAAMC,QAAA,EAAUC,OAAA,QAAe;AAEjD,SAASC,aAAA,QAAqB;AAC9B,OAAOC,EAAA,MAAQ;AAIf,MAAMC,QAAA,GAAUP,aAAA,CAAcQ,MAAA,CAAAC,IAAA,CAAYC,GAAG;AAC7C,IAAIC,QAAA;AACJ,IAAI;EACFA,QAAA,GAAWV,OAAA,CAAQM,QAAA,CAAQH,OAAA,CAAQ,6BAA6B,CAAC;AACnE,QAAQ;EACNO,QAAA,GAAW;AACb;AAEA,MAAMC,YAAA,GAAe;AAErB,SAASC,oBAAoBC,OAAA,EAA0B;EACrD,IAAI,CAACA,OAAA,CAAQC,UAAA,CAAW,KAAK,GAAG,OAAO;EACvC,MAAMC,QAAA,GAAWF,OAAA,CAAQG,OAAA,CAAQ,OAAO,CAAC;EACzC,IAAID,QAAA,KAAa,IAAI,OAAO;EAC5B,MAAME,WAAA,GAAcJ,OAAA,CAAQK,KAAA,CAAM,GAAGH,QAAQ;EAC7C,OAAOE,WAAA,CAAYE,QAAA,CAAS,OAAO,KAAKF,WAAA,CAAYE,QAAA,CAAS,cAAc;AAC7E;AAEA,SAASC,UAAUP,OAAA,EAA0B;EAC3C,IAAI,CAACA,OAAA,CAAQC,UAAA,CAAW,KAAK,GAAG,OAAO;EACvC,MAAMC,QAAA,GAAWF,OAAA,CAAQG,OAAA,CAAQ,OAAO,CAAC;EACzC,IAAID,QAAA,KAAa,IAAI,OAAO;EAC5B,MAAME,WAAA,GAAcJ,OAAA,CAAQK,KAAA,CAAM,GAAGH,QAAQ;EAC7C,OAAO,kBAAkBM,IAAA,CAAKJ,WAAW;AAC3C;AAWA,SAASK,eACPC,GAAA,EACoE;EACpE,MAAMC,IAAA,GAA2E,EAAC;
|
|
1
|
+
{"version":3,"names":["existsSync","lstatSync","mkdirSync","readdirSync","readFileSync","readlinkSync","rmSync","rmdirSync","symlinkSync","unlinkSync","createRequire","dirname","join","relative","resolve","defineCommand","pc","require2","import","meta","url","DOCS_DIR","SKILL_PREFIX","hasSkillFrontmatter","content","startsWith","endIndex","indexOf","frontmatter","slice","includes","isDevOnly","test","collectAllDocs","cwd","docs","seen","Set","localDocsDir","files","filter","f","endsWith","file","name","replace","push","path","source","add","has","generateDocSkills","clean","skillsDir","expectedSkillNames","length","console","info","yellow","dim","existing","dir","recursive","symlinked","generated","unchanged","removed","skipped","isDev","process","env","IS_TAMAGUI_DEV","doc","hasFrontmatter","nameMatch","match","skillName","trim","skillDir","skillFile","relativePath","shouldCreate","stat","isSymbolicLink","existingContent","sourceLabel","blue","green","force","red","shouldUnlink","linkTarget","resolvedTarget","generateCommand","description","args","type","default","run","bold","cyan","docStats","skillsCommand","subCommands","generate"],"sources":["../../../src/commands/skills.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|