@captain_z/zsk 1.0.0 → 1.0.1

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.
@@ -0,0 +1,33 @@
1
+ import type { Bundles } from "../core/bundles.js";
2
+ export declare const MANUAL_PATH_CHOICE: "__manual_path__";
3
+ export declare const DEFAULT_BUNDLE = "frontend-project";
4
+ export type PromptOption<T extends string> = {
5
+ value: T;
6
+ label: string;
7
+ hint?: string;
8
+ };
9
+ export type ExistingTargetAction = "append" | "refresh" | "exit";
10
+ export type PlanMode = "new" | "append" | "refresh" | "exit";
11
+ export type SkillMode = "bundle" | "custom";
12
+ type TargetLike = {
13
+ kind: string;
14
+ label: string;
15
+ };
16
+ export declare function isMaintenanceRun(args: {
17
+ targetProvided: boolean;
18
+ hasManifest: boolean;
19
+ hasExplicitPicks: boolean;
20
+ }): boolean;
21
+ export declare function buildTargetPromptModel<T extends TargetLike>(targets: T[], hints: Record<string, string>): {
22
+ presetOptions: Array<PromptOption<Exclude<T["kind"], "custom">>>;
23
+ manualPathOption: PromptOption<typeof MANUAL_PATH_CHOICE>;
24
+ };
25
+ export declare function buildSkillModeOptions(bundles: Bundles, availableSkillCount: number): PromptOption<SkillMode>[];
26
+ export declare function buildBundleOptions(bundles: Bundles): PromptOption<string>[];
27
+ export declare function resolvePlanMode(args: {
28
+ hasManifest: boolean;
29
+ hasExplicitPicks: boolean;
30
+ requestedAction?: ExistingTargetAction;
31
+ }): PlanMode;
32
+ export declare function inferBundleName(selectedBundleName: string | null, selectedSkills: string[], bundles: Bundles, availableSkills: string[]): string | null;
33
+ export {};
@@ -0,0 +1,80 @@
1
+ export const MANUAL_PATH_CHOICE = "__manual_path__";
2
+ export const DEFAULT_BUNDLE = "frontend-project";
3
+ export function isMaintenanceRun(args) {
4
+ return args.targetProvided && args.hasManifest && !args.hasExplicitPicks;
5
+ }
6
+ export function buildTargetPromptModel(targets, hints) {
7
+ const presetOptions = targets
8
+ .filter((target) => target.kind !== "custom")
9
+ .map((target) => ({
10
+ value: target.kind,
11
+ label: target.label,
12
+ hint: hints[target.kind],
13
+ }));
14
+ return {
15
+ presetOptions,
16
+ manualPathOption: {
17
+ value: MANUAL_PATH_CHOICE,
18
+ label: "手动输入路径...",
19
+ hint: hints.custom,
20
+ },
21
+ };
22
+ }
23
+ export function buildSkillModeOptions(bundles, availableSkillCount) {
24
+ const bundleCount = Object.values(bundles).filter((bundle) => bundle.skills.length > 0).length;
25
+ return [
26
+ {
27
+ value: "bundle",
28
+ label: "预设 bundle",
29
+ hint: `先选 1 个预设,再微调其中的 skill(${bundleCount} 个可选)`,
30
+ },
31
+ {
32
+ value: "custom",
33
+ label: "按 skill 自选",
34
+ hint: `按领域分组浏览 ${availableSkillCount} 颗`,
35
+ },
36
+ ];
37
+ }
38
+ export function buildBundleOptions(bundles) {
39
+ return Object.entries(bundles)
40
+ .filter(([, bundle]) => bundle.skills.length > 0)
41
+ .map(([name, bundle]) => ({
42
+ value: name,
43
+ label: name,
44
+ hint: `${bundle.skills.length} · ${bundle.hint}`,
45
+ }))
46
+ .sort((left, right) => {
47
+ if (left.value === DEFAULT_BUNDLE)
48
+ return -1;
49
+ if (right.value === DEFAULT_BUNDLE)
50
+ return 1;
51
+ return left.value.localeCompare(right.value);
52
+ });
53
+ }
54
+ export function resolvePlanMode(args) {
55
+ if (!args.hasManifest)
56
+ return "new";
57
+ if (args.hasExplicitPicks)
58
+ return "append";
59
+ return args.requestedAction ?? "exit";
60
+ }
61
+ export function inferBundleName(selectedBundleName, selectedSkills, bundles, availableSkills) {
62
+ if (!selectedBundleName)
63
+ return null;
64
+ const bundle = bundles[selectedBundleName];
65
+ if (!bundle)
66
+ return null;
67
+ const expected = bundleToAvailable(bundle, availableSkills);
68
+ return sameMembers(selectedSkills, expected) ? selectedBundleName : null;
69
+ }
70
+ function bundleToAvailable(bundle, availableSkills) {
71
+ const set = new Set(availableSkills);
72
+ return bundle.skills.filter((skill) => set.has(skill));
73
+ }
74
+ function sameMembers(left, right) {
75
+ if (left.length !== right.length)
76
+ return false;
77
+ const rightSet = new Set(right);
78
+ return left.every((value) => rightSet.has(value));
79
+ }
80
+ //# sourceMappingURL=add-flow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-flow.js","sourceRoot":"","sources":["../../src/commands/add-flow.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,14 @@
1
1
  // `zsk add` — adaptive install wizard.
2
2
  //
3
- // ARCHITECTURE.md §6.4:
4
- // - Target-first; pre-check manifest to label each target in the prompt.
5
- // - Branch A (installed): refresh / append / exit + refresh scope.
6
- // - Branch B (empty): preset bundle vs cherry-pick groupMultiselect by domain.
7
- // - Flag preloading skips the corresponding clack step.
3
+ // Interactive flow:
4
+ // - Default path is payload-first: pick skills/bundle, then pick one target.
5
+ // - Explicit existing target + no payload enters maintenance mode (refresh/append).
6
+ // - "手动输入路径..." and "按 skill 自选" are actions, not fake multiselect items.
8
7
  // - Writes zsk-manifest.json on success so future runs can branch correctly.
9
8
  import pc from "picocolors";
10
9
  import { readFile, access } from "node:fs/promises";
11
10
  import { join } from "node:path";
12
- import { intro, outro, select, groupMultiselect, text, confirm, log, spinner, note, } from "../ui/prompts.js";
11
+ import { intro, outro, select, groupMultiselect, text, log, spinner, note, } from "../ui/prompts.js";
13
12
  import { loadBundles } from "../core/bundles.js";
14
13
  import { enumerateSkills, loadSkill, DOMAINS, } from "../core/skills.js";
15
14
  import { TARGET_OPTIONS, resolvePath, } from "../core/targets.js";
@@ -17,7 +16,7 @@ import { install } from "../core/installer.js";
17
16
  import { fileExists } from "../core/scaffolder.js";
18
17
  import { readManifest, writeManifest, buildManifest, detectDrift, sha256File, } from "../core/manifest.js";
19
18
  import { expandCapabilityFilters, classifyPattern, hasCapabilityFilter, } from "../core/capabilities.js";
20
- const CUSTOM_PACKAGE_CHOICE = "__custom__";
19
+ import { DEFAULT_BUNDLE, MANUAL_PATH_CHOICE, buildBundleOptions, buildSkillModeOptions, buildTargetPromptModel, inferBundleName, isMaintenanceRun, resolvePlanMode, } from "./add-flow.js";
21
20
  export async function run(positional, opts, zskVersion) {
22
21
  intro(`${pc.bold("zsk")} · add`);
23
22
  const isTTY = Boolean(process.stdout.isTTY);
@@ -44,18 +43,7 @@ export async function run(positional, opts, zskVersion) {
44
43
  process.exit(1);
45
44
  }
46
45
  }
47
- // Step 0 — offer project-init when project-config.md missing (interactive only)
48
- if (isTTY && !opts.yes) {
49
- await maybeOfferProjectInit();
50
- }
51
- // Step 1 — target (flag preloads)
52
46
  const bundles = await loadBundles();
53
- const targetPaths = await selectTargets(opts);
54
- if (targetPaths.length === 0) {
55
- log.warn("未选择任何安装位置,退出。");
56
- outro("bye");
57
- return;
58
- }
59
47
  const filters = capabilityFiltersFromOptions(opts);
60
48
  const allSkills = await enumerateSkills();
61
49
  const allSkillNames = allSkills.map((s) => s.name);
@@ -63,11 +51,15 @@ export async function run(positional, opts, zskVersion) {
63
51
  const bundlePatternsFromArgs = positional.filter((p) => classifyPattern(p, Object.keys(bundles)) === "bundle");
64
52
  const skillPatternsFromArgs = positional.filter((p) => classifyPattern(p, Object.keys(bundles)) !== "bundle");
65
53
  const hasExplicitPicks = positional.length > 0 || hasCapabilityFilter(filters);
66
- const targetStates = await Promise.all(targetPaths.map(async (targetPath) => {
67
- const manifest = await readManifest(targetPath);
68
- const drift = manifest ? await detectDrift(targetPath, manifest) : [];
69
- return { targetPath, manifest, drift };
70
- }));
54
+ const explicitTargetPath = opts.target ? resolvePath(opts.target) : null;
55
+ const explicitManifest = explicitTargetPath
56
+ ? await readManifest(explicitTargetPath).catch(() => null)
57
+ : null;
58
+ const maintenanceRun = isMaintenanceRun({
59
+ targetProvided: Boolean(explicitTargetPath),
60
+ hasManifest: Boolean(explicitManifest),
61
+ hasExplicitPicks,
62
+ });
71
63
  let sharedPickedPromise;
72
64
  async function getSharedPicked() {
73
65
  sharedPickedPromise ??= pickSkills({
@@ -80,122 +72,145 @@ export async function run(positional, opts, zskVersion) {
80
72
  });
81
73
  return sharedPickedPromise;
82
74
  }
83
- const plans = [];
84
- const multipleTargets = targetStates.length > 1;
85
- for (const state of targetStates) {
86
- if (multipleTargets) {
87
- log.step(`安装位置:${pc.cyan(state.targetPath)}`);
75
+ let plan;
76
+ if (maintenanceRun && explicitTargetPath && explicitManifest) {
77
+ const drift = await detectDrift(explicitTargetPath, explicitManifest);
78
+ const action = await askExistingAction(explicitManifest, drift, opts, false);
79
+ const mode = resolvePlanMode({
80
+ hasManifest: true,
81
+ hasExplicitPicks,
82
+ requestedAction: action,
83
+ });
84
+ if (mode === "exit") {
85
+ outro("取消");
86
+ return;
88
87
  }
89
- if (state.manifest) {
90
- // Explicit pattern/filter → user wants to install/reinstall those specific
91
- // skills, not a blanket refresh. Treat as append against the full pool
92
- // (existing entries merge + conflict policy takes over per-file).
93
- const action = hasExplicitPicks
94
- ? "append"
95
- : await askExistingAction(state.manifest, state.drift, opts);
96
- if (action === "exit") {
97
- outro("取消");
98
- return;
99
- }
100
- if (action === "refresh") {
101
- plans.push({
102
- targetPath: state.targetPath,
103
- manifest: state.manifest,
104
- mode: "refresh",
105
- skills: await askRefreshScope(state.manifest, state.drift, opts),
106
- bundle: state.manifest.bundle,
107
- });
108
- continue;
109
- }
88
+ if (mode === "refresh") {
89
+ plan = {
90
+ targetPath: explicitTargetPath,
91
+ manifest: explicitManifest,
92
+ mode,
93
+ skills: await askRefreshScope(explicitManifest, drift, opts),
94
+ bundle: explicitManifest.bundle,
95
+ };
96
+ }
97
+ else {
110
98
  const picked = await getSharedPicked();
111
99
  if (picked.skills.length === 0) {
112
100
  log.warn("未选任何 skill,退出。");
113
101
  outro("bye");
114
102
  return;
115
103
  }
116
- plans.push({
117
- targetPath: state.targetPath,
118
- manifest: state.manifest,
119
- mode: "append",
104
+ plan = {
105
+ targetPath: explicitTargetPath,
106
+ manifest: explicitManifest,
107
+ mode,
120
108
  skills: picked.skills,
121
- bundle: picked.bundle ?? state.manifest.bundle,
122
- });
123
- continue;
109
+ bundle: picked.bundle ?? explicitManifest.bundle,
110
+ };
124
111
  }
112
+ }
113
+ else {
125
114
  const picked = await getSharedPicked();
126
115
  if (picked.skills.length === 0) {
127
116
  log.warn("未选任何 skill,退出。");
128
117
  outro("bye");
129
118
  return;
130
119
  }
131
- plans.push({
132
- targetPath: state.targetPath,
133
- manifest: null,
134
- mode: "new",
135
- skills: picked.skills,
136
- bundle: picked.bundle,
120
+ const targetPath = explicitTargetPath ?? await selectTarget();
121
+ const manifest = explicitTargetPath && explicitTargetPath === targetPath
122
+ ? explicitManifest
123
+ : await readManifest(targetPath);
124
+ const drift = manifest ? await detectDrift(targetPath, manifest) : [];
125
+ const action = manifest && !hasExplicitPicks
126
+ ? await askExistingAction(manifest, drift, opts, true)
127
+ : undefined;
128
+ const mode = resolvePlanMode({
129
+ hasManifest: Boolean(manifest),
130
+ hasExplicitPicks,
131
+ requestedAction: action,
137
132
  });
133
+ if (mode === "exit") {
134
+ outro("取消");
135
+ return;
136
+ }
137
+ if (mode === "refresh" && manifest) {
138
+ plan = {
139
+ targetPath,
140
+ manifest,
141
+ mode,
142
+ skills: await askRefreshScope(manifest, drift, opts),
143
+ bundle: manifest.bundle,
144
+ };
145
+ }
146
+ else {
147
+ plan = {
148
+ targetPath,
149
+ manifest,
150
+ mode,
151
+ skills: picked.skills,
152
+ bundle: manifest ? picked.bundle ?? manifest.bundle : picked.bundle,
153
+ };
154
+ }
138
155
  }
139
156
  // Step 3 — conflict policy (flag preloads; refresh + drift defaults to backup)
140
- const onConflict = await askConflict(opts, plans.every((plan) => plan.mode === "refresh") ? "refresh" : "append");
157
+ const onConflict = await askConflict(opts, plan.mode === "refresh" ? "refresh" : "append");
141
158
  const dryRun = Boolean(opts.dryRun);
142
159
  // Step 4 — dry-run preview short-circuit
143
160
  if (dryRun) {
144
- const lines = plans
145
- .map((plan) => [
161
+ note([
162
+ `[dry-run] 将处理 1 个安装位置`,
163
+ "",
146
164
  `${pc.cyan(plan.targetPath)} · ${plan.mode} · ${plan.skills.length} 个 skill`,
147
- ...plan.skills.map((n) => ` + ${n}`),
148
- ].join("\n"))
149
- .join("\n\n");
150
- note(`[dry-run] 将处理 ${plans.length} 个安装位置\n\n${lines}`, "预览");
165
+ ...plan.skills.map((name) => ` + ${name}`),
166
+ ].join("\n"), "预览");
151
167
  outro("完成 (dry-run)");
152
168
  return;
153
169
  }
154
170
  // Step 5 — execute install
155
- for (const plan of plans) {
156
- const s = spinner();
157
- s.start(`${plan.mode === "refresh" ? "刷新" : "安装"} ${plan.skills.length} skill → ${plan.targetPath}`);
158
- let result;
159
- try {
160
- result = await install({
161
- skills: plan.skills,
162
- target: plan.targetPath,
163
- onConflict,
164
- dryRun: false,
165
- });
166
- s.stop(plan.mode === "refresh" ? "刷新完成" : "安装完成");
167
- }
168
- catch (err) {
169
- s.stop("失败");
170
- throw err;
171
- }
172
- // Step 6 update manifest (merge with existing for append mode)
173
- const records = await buildRecords(plan.skills, plan.targetPath, zskVersion);
174
- const mergedSkills = mergeSkillRecords(plan.mode === "append" ? plan.manifest?.skills ?? [] : [], records);
175
- await writeManifest(plan.targetPath, buildManifest({
176
- zskVersion,
177
- bundle: plan.bundle,
178
- skills: mergedSkills,
179
- }));
180
- // Step 7 — summary
181
- const summary = [
182
- `✓ 写入 ${result.written.length} 文件`,
183
- result.skipped.length > 0 ? `○ 跳过 ${result.skipped.length} 既存` : "",
184
- result.backedUp.length > 0
185
- ? `↶ 备份 ${result.backedUp.length} 文件 → ${result.backupDir}`
186
- : "",
187
- result.errors.length > 0 ? `✗ ${result.errors.length} 错误` : "",
188
- `✓ zsk-manifest.json 已更新(${mergedSkills.length} skill)`,
189
- ]
190
- .filter(Boolean)
191
- .join("\n");
192
- note(summary, `${plan.mode === "refresh" ? "刷新摘要" : "安装摘要"} · ${plan.targetPath}`);
193
- if (result.errors.length > 0) {
194
- for (const err of result.errors)
195
- log.error(`${err.skill}: ${err.message}`);
196
- }
171
+ const s = spinner();
172
+ s.start(`${plan.mode === "refresh" ? "刷新" : "安装"} ${plan.skills.length} skill → ${plan.targetPath}`);
173
+ let result;
174
+ try {
175
+ result = await install({
176
+ skills: plan.skills,
177
+ target: plan.targetPath,
178
+ onConflict,
179
+ dryRun: false,
180
+ });
181
+ s.stop(plan.mode === "refresh" ? "刷新完成" : "安装完成");
182
+ }
183
+ catch (err) {
184
+ s.stop("失败");
185
+ throw err;
186
+ }
187
+ // Step 6 — update manifest (merge with existing for append mode)
188
+ const records = await buildRecords(plan.skills, plan.targetPath, zskVersion);
189
+ const mergedSkills = mergeSkillRecords(plan.mode === "append" ? plan.manifest?.skills ?? [] : [], records);
190
+ await writeManifest(plan.targetPath, buildManifest({
191
+ zskVersion,
192
+ bundle: plan.bundle,
193
+ skills: mergedSkills,
194
+ }));
195
+ // Step 7 — summary
196
+ const summary = [
197
+ `✓ 写入 ${result.written.length} 文件`,
198
+ result.skipped.length > 0 ? `○ 跳过 ${result.skipped.length} 既存` : "",
199
+ result.backedUp.length > 0
200
+ ? `↶ 备份 ${result.backedUp.length} 文件 → ${result.backupDir}`
201
+ : "",
202
+ result.errors.length > 0 ? `✗ ${result.errors.length} 错误` : "",
203
+ `✓ zsk-manifest.json 已更新(${mergedSkills.length} skill)`,
204
+ ]
205
+ .filter(Boolean)
206
+ .join("\n");
207
+ note(summary, `${plan.mode === "refresh" ? "刷新摘要" : "安装摘要"} · ${plan.targetPath}`);
208
+ if (result.errors.length > 0) {
209
+ for (const err of result.errors)
210
+ log.error(`${err.skill}: ${err.message}`);
197
211
  }
198
- outro(`完成 · 已处理 ${plans.length} 个安装位置 · 运行 ${pc.cyan("zsk doctor")} 校验`);
212
+ await maybeRemindProjectInit();
213
+ outro(`完成 · 已处理 1 个安装位置 · 运行 ${pc.cyan("zsk doctor")} 校验`);
199
214
  }
200
215
  // ---- helpers ----------------------------------------------------------------
201
216
  function hasAnySource(positional, opts) {
@@ -217,67 +232,47 @@ function capabilityFiltersFromOptions(opts) {
217
232
  prompt: opts.prompt ?? [],
218
233
  };
219
234
  }
220
- async function maybeOfferProjectInit() {
235
+ async function maybeRemindProjectInit() {
221
236
  const cwd = process.cwd();
222
237
  const has = await fileExists(join(cwd, "project-config.md"));
223
238
  if (has)
224
239
  return;
225
- log.warn(`当前目录缺 ${pc.cyan("project-config.md")}(skill ${pc.yellow("{{config.*}}")} 解析源)`);
226
- const wantsBootstrap = await confirm("先跑 zsk project-init 创建 project-config.md + .raws/ + CLAUDE.md?", true);
227
- if (wantsBootstrap) {
228
- const { run: runProjectInit } = await import("./project-init.js");
229
- await runProjectInit({ target: cwd, yes: true });
230
- log.step("项目 bootstrap 完成,继续 skill 安装…");
231
- }
240
+ log.info(`当前目录仍缺 ${pc.cyan("project-config.md")};如需填充 ${pc.yellow("{{config.*}}")},稍后运行 ${pc.cyan("zsk project-init")}`);
232
241
  }
233
- async function selectTargets(opts) {
234
- if (opts.target)
235
- return [resolvePath(opts.target)];
242
+ async function selectTarget() {
236
243
  // pre-check each preset for manifest status to show in the label
237
- const precheck = await Promise.all(TARGET_OPTIONS.map(async (t) => {
238
- if (t.kind === "custom")
239
- return { kind: t.kind, hint: t.hint };
240
- const path = t.resolve();
244
+ const hints = {};
245
+ await Promise.all(TARGET_OPTIONS.map(async (target) => {
246
+ if (target.kind === "custom") {
247
+ hints.custom = target.hint;
248
+ return;
249
+ }
250
+ const path = target.resolve();
241
251
  const manifest = await readManifest(path).catch(() => null);
242
252
  if (manifest) {
243
- const bLabel = manifest.bundle
244
- ? `${manifest.bundle} v${manifest.zskVersion}`
245
- : `custom v${manifest.zskVersion}`;
246
- return {
247
- kind: t.kind,
248
- hint: `${t.hint} · 已装 ${manifest.skills.length} 颗 ${bLabel}`,
249
- };
253
+ hints[target.kind] = `${target.hint} · 已装 ${manifest.skills.length} 颗`;
254
+ return;
250
255
  }
251
256
  const exists = await directoryNonEmpty(path);
252
- return {
253
- kind: t.kind,
254
- hint: exists ? `${t.hint} · 目录存在(非 zsk 管理)` : `${t.hint} · 空`,
255
- };
257
+ hints[target.kind] = exists
258
+ ? `${target.hint} · 非 zsk 管理`
259
+ : `${target.hint} · 空`;
256
260
  }));
257
- const targetKinds = await groupMultiselect("选择安装位置(可多选)", {
258
- 安装位置: TARGET_OPTIONS.map((t, i) => ({
259
- value: t.kind,
260
- label: `${t.label.padEnd(24)} ${pc.dim(precheck[i]?.hint ?? t.hint)}`,
261
- })),
262
- });
263
- const targetPaths = [];
264
- for (const targetKind of targetKinds) {
265
- if (targetKind === "custom") {
266
- const input = await text("自定义安装路径(支持 ~ / 相对 / 绝对)", {
267
- placeholder: "./zsk-skills",
268
- validate: (v) => (v.trim().length === 0 ? "路径不能为空" : undefined),
269
- });
270
- targetPaths.push(resolvePath(input));
271
- continue;
272
- }
273
- const opt = TARGET_OPTIONS.find((t) => t.kind === targetKind);
274
- if (!opt)
275
- throw new Error(`unknown target kind: ${targetKind}`);
276
- targetPaths.push(opt.resolve());
261
+ const model = buildTargetPromptModel(TARGET_OPTIONS, hints);
262
+ const targetChoice = await select("安装到哪里?", [...model.presetOptions, model.manualPathOption]);
263
+ if (targetChoice === MANUAL_PATH_CHOICE) {
264
+ const input = await text("自定义安装路径(支持 ~ / 相对 / 绝对)", {
265
+ placeholder: "./zsk-skills",
266
+ validate: (value) => (value.trim().length === 0 ? "路径不能为空" : undefined),
267
+ });
268
+ return resolvePath(input);
277
269
  }
278
- return uniqueStrings(targetPaths);
270
+ const option = TARGET_OPTIONS.find((target) => target.kind === targetChoice);
271
+ if (!option)
272
+ throw new Error(`unknown target kind: ${targetChoice}`);
273
+ return option.resolve();
279
274
  }
280
- async function askExistingAction(manifest, drift, opts) {
275
+ async function askExistingAction(manifest, drift, opts, selectionPrepared) {
281
276
  const modifiedCount = drift.filter((d) => d.kind === "modified").length;
282
277
  const missingCount = drift.filter((d) => d.kind === "missing").length;
283
278
  if (opts.yes)
@@ -291,11 +286,14 @@ async function askExistingAction(manifest, drift, opts) {
291
286
  .filter(Boolean)
292
287
  .join(" ");
293
288
  log.info(`当前状态:${label}`);
294
- return select("接下来?", [
295
- { value: "refresh", label: "刷新到最新(按 manifest 重装)" },
296
- { value: "append", label: "追加其他 skill" },
289
+ return select(selectionPrepared ? "这个安装位置已经由 zsk 管理,接下来?" : "接下来?", [
290
+ {
291
+ value: "append",
292
+ label: selectionPrepared ? "把本次选择追加进去" : "追加其他 skill",
293
+ },
294
+ { value: "refresh", label: "按 manifest 刷新已装内容" },
297
295
  { value: "exit", label: "退出" },
298
- ], "refresh");
296
+ ], selectionPrepared ? "append" : "refresh");
299
297
  }
300
298
  async function askRefreshScope(manifest, drift, opts) {
301
299
  const modifiedNames = new Set(drift.filter((d) => d.kind === "modified").map((d) => d.name));
@@ -348,7 +346,9 @@ async function pickSkills(args) {
348
346
  }
349
347
  return {
350
348
  skills: selected,
351
- bundle: inferBundleName(bundlePatternsFromArgs, selected, bundles, availableSkills, false),
349
+ bundle: bundlePatternsFromArgs.length === 1
350
+ ? inferBundleName(bundlePatternsFromArgs[0] ?? null, selected, bundles, availableSkills)
351
+ : null,
352
352
  };
353
353
  }
354
354
  // Priority 3 — interactive two-level pick
@@ -359,32 +359,23 @@ function bundleToAvailable(bundle, available) {
359
359
  return bundle.skills.filter((s) => set.has(s));
360
360
  }
361
361
  async function interactiveTwoLevelPick(bundles, availableSkills) {
362
- // Level 1 choose one or more preset bundles, optionally with custom pick
363
- const presetEntries = Object.entries(bundles).filter(([, b]) => b.skills.length > 0);
364
- const selectedPackages = await groupMultiselect("你要安装哪些 skill 包?", {
365
- "Skill 包": [
366
- ...presetEntries.map(([name, b]) => ({
367
- value: name,
368
- label: `${pc.cyan(name.padEnd(32))} ${pc.dim(`${b.skills.length} · ${b.hint}`)}`,
369
- })),
370
- {
371
- value: CUSTOM_PACKAGE_CHOICE,
372
- label: `${pc.cyan("自选 skill".padEnd(32))} ${pc.dim(`按领域分组浏览 ${availableSkills.length} 颗`)}`,
373
- },
374
- ],
375
- }, presetEntries.find(([n]) => n === "frontend-project")?.[0]
376
- ? ["frontend-project"]
377
- : []);
378
- const selectedBundleNames = selectedPackages.filter((choice) => choice !== CUSTOM_PACKAGE_CHOICE);
379
- const selectedCustom = selectedPackages.includes(CUSTOM_PACKAGE_CHOICE);
380
- const defaultSkills = uniqueStrings(selectedBundleNames.flatMap((name) => {
381
- const bundle = bundles[name];
382
- return bundle ? bundleToAvailable(bundle, availableSkills) : [];
383
- }));
384
- const selected = await groupMultiselect("本次要安装哪些 skill?(可多选)", await groupByDomain(availableSkills), defaultSkills);
362
+ const skillMode = await select("你要安装什么?", buildSkillModeOptions(bundles, availableSkills.length), "bundle");
363
+ if (skillMode === "bundle") {
364
+ const bundleOptions = buildBundleOptions(bundles);
365
+ const initialBundle = bundleOptions.some((option) => option.value === DEFAULT_BUNDLE)
366
+ ? DEFAULT_BUNDLE
367
+ : bundleOptions[0]?.value;
368
+ const selectedBundle = await select("选择一个 bundle", bundleOptions, initialBundle);
369
+ const defaultSkills = bundleToAvailable(bundles[selectedBundle], availableSkills);
370
+ const selected = await groupMultiselect("本次要安装哪些 skill?(可多选)", await groupByDomain(availableSkills), defaultSkills);
371
+ return {
372
+ skills: selected,
373
+ bundle: inferBundleName(selectedBundle, selected, bundles, availableSkills),
374
+ };
375
+ }
385
376
  return {
386
- skills: selected,
387
- bundle: inferBundleName(selectedBundleNames, selected, bundles, availableSkills, selectedCustom),
377
+ skills: await groupMultiselect("本次要安装哪些 skill?(可多选)", await groupByDomain(availableSkills), []),
378
+ bundle: null,
388
379
  };
389
380
  }
390
381
  async function groupByDomain(skillNames) {
@@ -458,24 +449,6 @@ async function directoryNonEmpty(p) {
458
449
  return false;
459
450
  }
460
451
  }
461
- function inferBundleName(selectedBundleNames, selectedSkills, bundles, availableSkills, includesCustom) {
462
- if (includesCustom || selectedBundleNames.length !== 1)
463
- return null;
464
- const bundleName = selectedBundleNames[0];
465
- if (!bundleName)
466
- return null;
467
- const bundle = bundles[bundleName];
468
- if (!bundle)
469
- return null;
470
- const expected = bundleToAvailable(bundle, availableSkills);
471
- return sameMembers(selectedSkills, expected) ? bundleName : null;
472
- }
473
- function sameMembers(left, right) {
474
- if (left.length !== right.length)
475
- return false;
476
- const rightSet = new Set(right);
477
- return left.every((value) => rightSet.has(value));
478
- }
479
452
  function uniqueStrings(values) {
480
453
  return [...new Set(values)].sort((a, b) => a.localeCompare(b));
481
454
  }
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,EAAE;AACF,wBAAwB;AACxB,2EAA2E;AAC3E,qEAAqE;AACrE,mFAAmF;AACnF,0DAA0D;AAC1D,+EAA+E;AAE/E,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,gBAAgB,EAChB,IAAI,EACJ,OAAO,EACP,GAAG,EACH,OAAO,EACP,IAAI,GACL,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAA6B,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EACL,eAAe,EACf,SAAS,EACT,OAAO,GAER,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EACd,WAAW,GAEZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAqB,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,EACX,UAAU,GAIX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,uBAAuB,EACvB,eAAe,EACf,mBAAmB,GAEpB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAgB3C,MAAM,CAAC,KAAK,UAAU,GAAG,CACvB,UAAoB,EACpB,IAAgB,EAChB,UAAkB;IAElB,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEjC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE5C,gFAAgF;IAChF,4EAA4E;IAC5E,8BAA8B;IAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAC/B,KAAK,CAAC,KAAK,CAAC,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAClC,KAAK,CAAC,KAAK,CAAC,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACxE,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,aAAa,IAAI,CAAC,SAAS,EAAE,CAAC;YACjC,GAAG,CAAC,KAAK,CACP,sFAAsF,CACvF,CAAC;YACF,KAAK,CAAC,KAAK,CAAC,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,gFAAgF;IAChF,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,qBAAqB,EAAE,CAAC;IAChC,CAAC;IAED,kCAAkC;IAClC,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;IACpC,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC1B,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,MAAM,eAAe,EAAE,CAAC;IAC1C,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEnD,2DAA2D;IAC3D,MAAM,sBAAsB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACrD,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,QAAQ,CACtD,CAAC;IACF,MAAM,qBAAqB,GAAG,UAAU,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,QAAQ,CAC7D,CAAC;IAEF,MAAM,gBAAgB,GACpB,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAExD,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;QACnC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACzC,CAAC,CAAC,CACH,CAAC;IAEF,IAAI,mBAES,CAAC;IACd,KAAK,UAAU,eAAe;QAC5B,mBAAmB,KAAK,UAAU,CAAC;YACjC,OAAO;YACP,eAAe,EAAE,aAAa;YAC9B,sBAAsB;YACtB,qBAAqB;YACrB,OAAO;YACP,IAAI;SACL,CAAC,CAAC;QACH,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAUD,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IAEhD,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;QACjC,IAAI,eAAe,EAAE,CAAC;YACpB,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,2EAA2E;YAC3E,uEAAuE;YACvE,kEAAkE;YAClE,MAAM,MAAM,GAAG,gBAAgB;gBAC7B,CAAC,CAAE,QAAkB;gBACrB,CAAC,CAAC,MAAM,iBAAiB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC/D,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,CAAC;gBACZ,OAAO;YACT,CAAC;YACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC;oBACT,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,MAAM,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;oBAChE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;iBAC9B,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;YACvC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAC3B,KAAK,CAAC,KAAK,CAAC,CAAC;gBACb,OAAO;YACT,CAAC;YACD,KAAK,CAAC,IAAI,CAAC;gBACT,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM;aAC/C,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;QACvC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC3B,KAAK,CAAC,KAAK,CAAC,CAAC;YACb,OAAO;QACT,CAAC;QACD,KAAK,CAAC,IAAI,CAAC;YACT,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;IACL,CAAC;IAED,+EAA+E;IAC/E,MAAM,UAAU,GAAG,MAAM,WAAW,CAClC,IAAI,EACJ,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CACtE,CAAC;IACF,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEpC,yCAAyC;IACzC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,KAAK,GAAG,KAAK;aAChB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ;YACE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,UAAU;YAC5E,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;SACtC,CAAC,IAAI,CAAC,IAAI,CAAC,CACb;aACA,IAAI,CAAC,MAAM,CAAC,CAAC;QAChB,IAAI,CACF,iBAAiB,KAAK,CAAC,MAAM,aAAa,KAAK,EAAE,EACjD,IAAI,CACL,CAAC;QACF,KAAK,CAAC,cAAc,CAAC,CAAC;QACtB,OAAO;IACT,CAAC;IAED,2BAA2B;IAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;QACpB,CAAC,CAAC,KAAK,CACL,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,YAAY,IAAI,CAAC,UAAU,EAAE,CAC5F,CAAC;QAEF,IAAI,MAAM,CAAC;QACX,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,OAAO,CAAC;gBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,IAAI,CAAC,UAAU;gBACvB,UAAU;gBACV,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;YACH,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,iEAAiE;QACjE,MAAM,OAAO,GAAG,MAAM,YAAY,CAChC,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAU,EACf,UAAU,CACX,CAAC;QACF,MAAM,YAAY,GAAG,iBAAiB,CACpC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EACzD,OAAO,CACR,CAAC;QACF,MAAM,aAAa,CACjB,IAAI,CAAC,UAAU,EACf,aAAa,CAAC;YACZ,UAAU;YACV,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,YAAY;SACrB,CAAC,CACH,CAAC;QAEF,mBAAmB;QACnB,MAAM,OAAO,GAAG;YACd,QAAQ,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK;YAClC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE;YACnE,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;gBACxB,CAAC,CAAC,QAAQ,MAAM,CAAC,QAAQ,CAAC,MAAM,SAAS,MAAM,CAAC,SAAS,EAAE;gBAC3D,CAAC,CAAC,EAAE;YACN,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE;YAC9D,2BAA2B,YAAY,CAAC,MAAM,SAAS;SACxD;aACE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,IAAI,CACF,OAAO,EACP,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,MAAM,IAAI,CAAC,UAAU,EAAE,CACpE,CAAC;QAEF,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM;gBAAE,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,KAAK,CACH,YAAY,KAAK,CAAC,MAAM,eAAe,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAClE,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,SAAS,YAAY,CAAC,UAAoB,EAAE,IAAgB;IAC1D,OAAO,CACL,UAAU,CAAC,MAAM,GAAG,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAC7B,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,IAAgB;IACpD,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;QACvB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;QAC3B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;QACvB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;QACrB,YAAY,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;QAClC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;KAC1B,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,qBAAqB;IAClC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAC7D,IAAI,GAAG;QAAE,OAAO;IAChB,GAAG,CAAC,IAAI,CACN,SAAS,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAClF,CAAC;IACF,MAAM,cAAc,GAAG,MAAM,OAAO,CAClC,gEAAgE,EAChE,IAAI,CACL,CAAC;IACF,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAClE,MAAM,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,GAAG,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAAgB;IAC3C,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnD,iEAAiE;IACjE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7B,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/D,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM;gBAC5B,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE;gBAC9C,CAAC,CAAC,WAAW,QAAQ,CAAC,UAAU,EAAE,CAAC;YACrC,OAAO;gBACL,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,MAAM,MAAM,EAAE;aAC7D,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC7C,OAAO;YACL,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM;SAC9D,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,WAAW,GAAG,MAAM,gBAAgB,CACxC,aAAa,EACb;QACE,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAClC,KAAK,EAAE,CAAC,CAAC,IAAI;YACb,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;SACtE,CAAC,CAAC;KACJ,CACF,CAAC;IAEF,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,yBAAyB,EAAE;gBAClD,WAAW,EAAE,cAAc;gBAC3B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;aAChE,CAAC,CAAC;YACH,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YACrC,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QAC9D,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;QAChE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,aAAa,CAAC,WAAW,CAAC,CAAC;AACpC,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,QAAkB,EAClB,KAAmB,EACnB,IAAgB;IAEhB,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;IACxE,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IAEtE,IAAI,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC,CAAC,uCAAuC;IAEvE,MAAM,KAAK,GAAG;QACZ,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,QAAQ,CAAC,UAAU,EAAE;QACjE,QAAQ,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;QAChC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;QAC3D,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;KAC1D;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC;IAE1B,OAAO,MAAM,CACX,MAAM,EACN;QACE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,sBAAsB,EAAE;QACnD,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE;QACxC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE;KAC/B,EACD,SAAS,CACV,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,QAAkB,EAClB,KAAmB,EACnB,IAAgB;IAEhB,MAAM,aAAa,GAAG,IAAI,GAAG,CAC3B,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAC9D,CAAC;IAEF,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,8CAA8C;QAC9C,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,MAAM,CACxB,QAAQ,aAAa,CAAC,IAAI,SAAS,EACnC;QACE;YACE,KAAK,EAAE,cAAc;YACrB,KAAK,EAAE,aAAa,aAAa,CAAC,IAAI,MAAM;SAC7C;QACD;YACE,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,aAAa;SACrB;KACF,EACD,cAAc,CACf,CAAC;IAEF,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjE,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAOzB;IACC,MAAM,EACJ,OAAO,EACP,eAAe,EACf,sBAAsB,EACtB,qBAAqB,EACrB,OAAO,EACP,IAAI,GACL,GAAG,IAAI,CAAC;IAET,4EAA4E;IAC5E,MAAM,aAAa,GAAG,uBAAuB,CAC3C,OAAO,CAAC,KAAK,IAAI,EAAE,EACnB,eAAe,CAChB,CAAC;IACF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;QAC9E,qEAAqE;QACrE,8DAA8D;QAC9D,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACjD,CAAC;IAED,0DAA0D;IAC1D,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1E,MAAM,OAAO,GAAG,uBAAuB,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;QAChF,MAAM,QAAQ,GAAG,aAAa,CAAC;YAC7B,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACzC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC7B,OAAO,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,CAAC,CAAC;YACF,GAAG,OAAO;SACX,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,GAAG,CAAC,KAAK,CACP,gBAAgB;gBACd,GAAG,sBAAsB;gBACzB,GAAG,qBAAqB;aACzB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACf,CAAC;YACF,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACtC,CAAC;QACD,OAAO;YACL,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,eAAe,CACrB,sBAAsB,EACtB,QAAQ,EACR,OAAO,EACP,eAAe,EACf,KAAK,CACN;SACF,CAAC;IACJ,CAAC;IAED,0CAA0C;IAC1C,OAAO,uBAAuB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAc,EAAE,SAAmB;IAC5D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,OAAgB,EAChB,eAAyB;IAEzB,2EAA2E;IAC3E,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAClD,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAC/B,CAAC;IAEF,MAAM,gBAAgB,GAAG,MAAM,gBAAgB,CAC7C,iBAAiB,EACjB;QACE,SAAS,EAAE;YACT,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACnC,KAAK,EAAE,IAAqB;gBAC5B,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE;aACjF,CAAC,CAAC;YACH;gBACE,KAAK,EAAE,qBAAqB;gBAC5B,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,WAAW,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE;aAC5F;SACF;KACF,EACD,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC,kBAAmC,CAAC;QACvC,CAAC,CAAC,EAAE,CACP,CAAC;IAEF,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,MAAM,CACjD,CAAC,MAAM,EAAoB,EAAE,CAAC,MAAM,KAAK,qBAAqB,CAC/D,CAAC;IACF,MAAM,cAAc,GAAG,gBAAgB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,aAAa,CACjC,mBAAmB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACnC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CACrC,qBAAqB,EACrB,MAAM,aAAa,CAAC,eAAe,CAAC,EACpC,aAAa,CACd,CAAC;IACF,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,eAAe,CACrB,mBAAmB,EACnB,QAAQ,EACR,OAAO,EACP,eAAe,EACf,cAAc,CACf;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,UAAoB;IAEpB,MAAM,MAAM,GAA4D,EAAE,CAAC;IAC3E,KAAK,MAAM,MAAM,IAAI,OAAO;QAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;IAClD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,CAAC,MAAM,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,YAAY,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IACD,mDAAmD;IACnD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,IAAI,MAAM,CAAC,CAAC,CAAE,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,IAAgB,EAChB,IAAkC;IAElC,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC,UAAU,CAAC;IAC5D,IAAI,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE9D,OAAO,MAAM,CACX,eAAe,EACf;QACE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE;QACvC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;QAChC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE;KAC1C,EACD,QAAQ,CACT,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,CAAU;IAChC,OAAO,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,QAAQ,CAAC;AAC7D,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,UAAoB,EACpB,UAAkB,EAClB,UAAkB;IAElB,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,IAAI,WAAW,CAAC;YAC7C,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YACtD,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI;gBACJ,OAAO,EAAE,UAAU;gBACnB,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC;gBACvB,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,mEAAmE;QACrE,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,iBAAiB,CACxB,QAAyB,EACzB,KAAsB;IAEtB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC7C,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7C,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa;IACxD,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,CAAS;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CACtB,mBAA6B,EAC7B,cAAwB,EACxB,OAAgB,EAChB,eAAyB,EACzB,cAAuB;IAEvB,IAAI,cAAc,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpE,MAAM,UAAU,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAC1C,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC5D,OAAO,WAAW,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AACnE,CAAC;AAED,SAAS,WAAW,CAAC,IAAc,EAAE,KAAe;IAClD,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAChC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,aAAa,CAAC,MAAgB;IACrC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC"}
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@captain_z/zsk",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "ZNorth Standard Kit — CLI installer for zsk skill bundles (npx @captain_z/zsk add)",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -18,7 +18,7 @@
18
18
  "commander": "^12.1.0",
19
19
  "picocolors": "^1.1.1",
20
20
  "yaml": "^2.7.0",
21
- "@captain_z/zsk-skills": "1.0.0"
21
+ "@captain_z/zsk-skills": "1.0.1"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@types/node": "^22.10.0",