@ranimontagna/agent-toolkit 0.1.16 → 0.1.18

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 (77) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/CONTRIBUTING.md +34 -0
  3. package/README.md +120 -24
  4. package/SECURITY.md +24 -0
  5. package/dist/src/args.js +37 -0
  6. package/dist/src/args.js.map +1 -1
  7. package/dist/src/doctor.d.ts +28 -0
  8. package/dist/src/doctor.js +78 -0
  9. package/dist/src/doctor.js.map +1 -0
  10. package/dist/src/installers/improve.d.ts +1 -0
  11. package/dist/src/installers/improve.js +72 -0
  12. package/dist/src/installers/improve.js.map +1 -0
  13. package/dist/src/lock-update.d.ts +22 -0
  14. package/dist/src/lock-update.js +130 -0
  15. package/dist/src/lock-update.js.map +1 -0
  16. package/dist/src/main.js +84 -1
  17. package/dist/src/main.js.map +1 -1
  18. package/dist/src/manifest.d.ts +26 -0
  19. package/dist/src/manifest.js +104 -0
  20. package/dist/src/manifest.js.map +1 -0
  21. package/dist/src/menu.js +6 -1
  22. package/dist/src/menu.js.map +1 -1
  23. package/dist/src/provenance.js +1 -1
  24. package/dist/src/provenance.js.map +1 -1
  25. package/dist/src/release.d.ts +4 -0
  26. package/dist/src/release.js +80 -0
  27. package/dist/src/release.js.map +1 -0
  28. package/dist/src/runtimes.js +49 -6
  29. package/dist/src/runtimes.js.map +1 -1
  30. package/dist/src/skills-audit.d.ts +10 -0
  31. package/dist/src/skills-audit.js +75 -0
  32. package/dist/src/skills-audit.js.map +1 -0
  33. package/dist/src/skills.js +26 -6
  34. package/dist/src/skills.js.map +1 -1
  35. package/dist/src/state.d.ts +14 -1
  36. package/dist/src/state.js +15 -0
  37. package/dist/src/state.js.map +1 -1
  38. package/dist/src/status.js +7 -0
  39. package/dist/src/status.js.map +1 -1
  40. package/dist/src/tool-lock.d.ts +6 -0
  41. package/dist/src/tool-lock.js +3 -0
  42. package/dist/src/tool-lock.js.map +1 -1
  43. package/dist/src/ui.js +2 -0
  44. package/dist/src/ui.js.map +1 -1
  45. package/dist/src/usage.js +14 -0
  46. package/dist/src/usage.js.map +1 -1
  47. package/docs/assets/install-plan.svg +2 -2
  48. package/docs/assets/install-status.svg +3 -3
  49. package/package.json +13 -7
  50. package/skills/frontend/gsap/gsap-core/LICENSE +21 -0
  51. package/skills/frontend/gsap/gsap-core/NOTICE.md +11 -0
  52. package/skills/frontend/gsap/gsap-core/SKILL.md +254 -0
  53. package/skills/frontend/gsap/gsap-frameworks/LICENSE +21 -0
  54. package/skills/frontend/gsap/gsap-frameworks/NOTICE.md +11 -0
  55. package/skills/frontend/gsap/gsap-frameworks/SKILL.md +266 -0
  56. package/skills/frontend/gsap/gsap-performance/LICENSE +21 -0
  57. package/skills/frontend/gsap/gsap-performance/NOTICE.md +11 -0
  58. package/skills/frontend/gsap/gsap-performance/SKILL.md +79 -0
  59. package/skills/frontend/gsap/gsap-plugins/LICENSE +21 -0
  60. package/skills/frontend/gsap/gsap-plugins/NOTICE.md +11 -0
  61. package/skills/frontend/gsap/gsap-plugins/SKILL.md +433 -0
  62. package/skills/frontend/gsap/gsap-react/LICENSE +21 -0
  63. package/skills/frontend/gsap/gsap-react/NOTICE.md +11 -0
  64. package/skills/frontend/gsap/gsap-react/SKILL.md +136 -0
  65. package/skills/frontend/gsap/gsap-scrolltrigger/LICENSE +21 -0
  66. package/skills/frontend/gsap/gsap-scrolltrigger/NOTICE.md +11 -0
  67. package/skills/frontend/gsap/gsap-scrolltrigger/SKILL.md +296 -0
  68. package/skills/frontend/gsap/gsap-timeline/LICENSE +21 -0
  69. package/skills/frontend/gsap/gsap-timeline/NOTICE.md +11 -0
  70. package/skills/frontend/gsap/gsap-timeline/SKILL.md +107 -0
  71. package/skills/frontend/gsap/gsap-utils/LICENSE +21 -0
  72. package/skills/frontend/gsap/gsap-utils/NOTICE.md +11 -0
  73. package/skills/frontend/gsap/gsap-utils/SKILL.md +284 -0
  74. package/skills/general/thermo-nuclear-code-quality-review/LICENSE +21 -0
  75. package/skills/general/thermo-nuclear-code-quality-review/NOTICE.md +12 -0
  76. package/skills/general/thermo-nuclear-code-quality-review/SKILL.md +192 -0
  77. package/tools.lock.json +21 -15
@@ -0,0 +1,130 @@
1
+ import { err } from "./logger.js";
2
+ import { capture, fetchJson } from "./system.js";
3
+ import { loadToolLock } from "./tool-lock.js";
4
+ function itemStatus(current, latest) {
5
+ if (!latest)
6
+ return "unknown";
7
+ return current === latest ? "current" : "update-available";
8
+ }
9
+ async function latestNpmVersion(packageName, clients) {
10
+ const result = clients.capture("npm", [
11
+ "view",
12
+ packageName,
13
+ "version",
14
+ "--silent",
15
+ ]);
16
+ if (!result.ok) {
17
+ throw new Error(result.stderr.trim() || `npm view failed for ${packageName}`);
18
+ }
19
+ const version = result.stdout.trim().split(/\r?\n/).at(-1)?.trim();
20
+ if (!version)
21
+ throw new Error(`npm did not return a version for ${packageName}`);
22
+ return version;
23
+ }
24
+ async function latestPyPiVersion(packageName, clients) {
25
+ const response = (await clients.fetchJson(`https://pypi.org/pypi/${encodeURIComponent(packageName)}/json`));
26
+ if (!response.info?.version) {
27
+ throw new Error(`PyPI did not return a version for ${packageName}`);
28
+ }
29
+ return response.info.version;
30
+ }
31
+ async function latestGitHubCommit(repository, clients) {
32
+ const repo = (await clients.fetchJson(`https://api.github.com/repos/${repository}`));
33
+ const branch = repo.default_branch || "main";
34
+ const commit = (await clients.fetchJson(`https://api.github.com/repos/${repository}/commits/${encodeURIComponent(branch)}`));
35
+ if (!commit.sha)
36
+ throw new Error(`GitHub did not return a commit for ${repository}`);
37
+ return commit.sha;
38
+ }
39
+ async function latestGitHubRelease(repository, clients) {
40
+ const release = (await clients.fetchJson(`https://api.github.com/repos/${repository}/releases/latest`));
41
+ if (!release.tag_name) {
42
+ throw new Error(`GitHub did not return a latest release for ${repository}`);
43
+ }
44
+ return release.tag_name;
45
+ }
46
+ async function collectItem(item, resolver) {
47
+ try {
48
+ const latest = await resolver();
49
+ return {
50
+ ...item,
51
+ latest,
52
+ status: itemStatus(item.current, latest),
53
+ };
54
+ }
55
+ catch (error) {
56
+ return {
57
+ ...item,
58
+ status: "unknown",
59
+ error: error instanceof Error ? error.message : String(error),
60
+ };
61
+ }
62
+ }
63
+ export async function buildLockUpdateReport(lock = loadToolLock(), clients = {}) {
64
+ const resolvedClients = {
65
+ capture: clients.capture || capture,
66
+ fetchJson: clients.fetchJson || fetchJson,
67
+ };
68
+ const items = await Promise.all([
69
+ collectItem({
70
+ name: "RTK",
71
+ source: "github-release",
72
+ current: lock.tools.rtk.tag,
73
+ }, () => latestGitHubRelease(lock.tools.rtk.repository, resolvedClients)),
74
+ collectItem({
75
+ name: "Caveman",
76
+ source: "github",
77
+ current: lock.tools.caveman.ref,
78
+ }, () => latestGitHubCommit(lock.tools.caveman.repository, resolvedClients)),
79
+ collectItem({
80
+ name: "Graphify",
81
+ source: "pypi",
82
+ current: lock.tools.graphify.version,
83
+ }, () => latestPyPiVersion(lock.tools.graphify.package, resolvedClients)),
84
+ collectItem({
85
+ name: "GSD",
86
+ source: "npm",
87
+ current: lock.tools.gsd.version,
88
+ }, () => latestNpmVersion(lock.tools.gsd.package, resolvedClients)),
89
+ collectItem({
90
+ name: "Improve",
91
+ source: "github",
92
+ current: lock.tools.improve.ref,
93
+ }, () => latestGitHubCommit(lock.tools.improve.repository, resolvedClients)),
94
+ collectItem({
95
+ name: "Agent Skills CLI",
96
+ source: "npm",
97
+ current: lock.tools.frontendSkills.skillsCli.version,
98
+ }, () => latestNpmVersion(lock.tools.frontendSkills.skillsCli.package, resolvedClients)),
99
+ collectItem({
100
+ name: "Impeccable",
101
+ source: "github",
102
+ current: lock.tools.frontendSkills.impeccable.ref,
103
+ }, () => latestGitHubCommit(lock.tools.frontendSkills.impeccable.repository, resolvedClients)),
104
+ collectItem({
105
+ name: "Taste Skill",
106
+ source: "github",
107
+ current: lock.tools.frontendSkills.tasteSkill.ref,
108
+ }, () => latestGitHubCommit(lock.tools.frontendSkills.tasteSkill.repository, resolvedClients)),
109
+ ...["claude", "codex", "opencode", "gemini"].map((runtime) => collectItem({
110
+ name: `${runtime} CLI`,
111
+ source: "npm",
112
+ current: lock.runtimeClis[runtime].version,
113
+ }, () => latestNpmVersion(lock.runtimeClis[runtime].package, resolvedClients))),
114
+ ]);
115
+ return { command: "update-lock", items };
116
+ }
117
+ export function formatLockUpdateReport(report) {
118
+ const lines = ["External source update report"];
119
+ for (const item of report.items) {
120
+ const latest = item.latest || "unknown";
121
+ const suffix = item.error ? ` (${item.error})` : "";
122
+ lines.push(`- ${item.name}: ${item.current} -> ${latest} [${item.status}]${suffix}`);
123
+ }
124
+ lines.push("", "This command reports candidates only; update tools.lock.json intentionally after reviewing checksums and changelogs.");
125
+ return lines.join("\n");
126
+ }
127
+ export function printLockUpdateError(error) {
128
+ err(error instanceof Error ? error.message : String(error));
129
+ }
130
+ //# sourceMappingURL=lock-update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lock-update.js","sourceRoot":"","sources":["../../src/lock-update.ts"],"names":[],"mappings":"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"}
package/dist/src/main.js CHANGED
@@ -1,18 +1,56 @@
1
1
  import process from "node:process";
2
2
  import { parseArgs } from "./args.js";
3
+ import { buildDoctorReport, formatDoctorReport } from "./doctor.js";
3
4
  import { installCaveman } from "./installers/caveman.js";
4
5
  import { installFrontendSkills } from "./installers/frontend-skills.js";
5
6
  import { installGraphify } from "./installers/graphify.js";
6
7
  import { installGsd } from "./installers/gsd.js";
8
+ import { installImprove } from "./installers/improve.js";
7
9
  import { installRtk } from "./installers/rtk.js";
8
10
  import { installSuperpowers } from "./installers/superpowers.js";
11
+ import { buildLockUpdateReport, formatLockUpdateReport, printLockUpdateError, } from "./lock-update.js";
9
12
  import { die, err, skip, warn } from "./logger.js";
13
+ import { savePendingManifest, uninstallFromManifest } from "./manifest.js";
10
14
  import { showMenu } from "./menu.js";
11
15
  import { checkExternalToolProvenance } from "./provenance.js";
12
16
  import { checkPrerequisites } from "./runtimes.js";
13
17
  import { installCustomSkills, listCustomSkills } from "./skills.js";
14
- import { anyRuntimeSelected, anyToolSelected, state } from "./state.js";
18
+ import { auditSkills, printSkillsAudit } from "./skills-audit.js";
19
+ import { anyRuntimeSelected, anyToolSelected, runtimeNames, state, toolNames, } from "./state.js";
20
+ import { detectInstallerStatus, formatInstallPlan } from "./status.js";
15
21
  import { printHeader, printSelections, printSummary } from "./ui.js";
22
+ function selectedTools() {
23
+ return toolNames.filter((tool) => state.tools[tool]);
24
+ }
25
+ function selectedRuntimes() {
26
+ return runtimeNames.filter((runtime) => state.runtimes[runtime]);
27
+ }
28
+ function printDryRun() {
29
+ checkExternalToolProvenance();
30
+ const status = detectInstallerStatus();
31
+ printHeader();
32
+ printSelections();
33
+ console.log("Install plan");
34
+ console.log(formatInstallPlan(status));
35
+ console.log("");
36
+ console.log("Dry run: no changes were made.");
37
+ }
38
+ function printDoctor() {
39
+ checkExternalToolProvenance();
40
+ const report = buildDoctorReport(detectInstallerStatus(), {
41
+ selectedTools: selectedTools(),
42
+ selectedRuntimes: selectedRuntimes(),
43
+ scope: state.gsdScope,
44
+ customSkillsDir: state.customSkillsDir,
45
+ installMissingClis: state.installMissingClis,
46
+ });
47
+ if (state.jsonOutput) {
48
+ console.log(JSON.stringify(report, null, 2));
49
+ }
50
+ else {
51
+ console.log(formatDoctorReport(report));
52
+ }
53
+ }
16
54
  export async function runInstaller(argv = process.argv.slice(2)) {
17
55
  if (!parseArgs(argv))
18
56
  return;
@@ -20,15 +58,50 @@ export async function runInstaller(argv = process.argv.slice(2)) {
20
58
  listCustomSkills();
21
59
  return;
22
60
  }
61
+ if (state.auditSkills) {
62
+ const passed = printSkillsAudit(auditSkills());
63
+ if (!passed)
64
+ process.exitCode = 1;
65
+ return;
66
+ }
67
+ if (state.updateLock) {
68
+ try {
69
+ const report = await buildLockUpdateReport();
70
+ console.log(state.jsonOutput
71
+ ? JSON.stringify(report, null, 2)
72
+ : formatLockUpdateReport(report));
73
+ }
74
+ catch (error) {
75
+ printLockUpdateError(error);
76
+ process.exitCode = 1;
77
+ }
78
+ return;
79
+ }
80
+ if (state.doctor) {
81
+ printDoctor();
82
+ return;
83
+ }
23
84
  if (!state.nonInteractive)
24
85
  await showMenu();
25
86
  if (!anyToolSelected())
26
87
  die("Select at least one tool.");
27
88
  if (!anyRuntimeSelected())
28
89
  die("Select at least one runtime.");
90
+ if (state.uninstall) {
91
+ uninstallFromManifest();
92
+ return;
93
+ }
94
+ if (state.dryRun) {
95
+ printDryRun();
96
+ return;
97
+ }
29
98
  checkExternalToolProvenance();
30
99
  printHeader();
31
100
  printSelections();
101
+ if (state.repair) {
102
+ console.log(" Repair mode: selected installs will be re-run.");
103
+ console.log("");
104
+ }
32
105
  checkPrerequisites();
33
106
  let hadError = false;
34
107
  if (state.tools.rtk) {
@@ -76,6 +149,15 @@ export async function runInstaller(argv = process.argv.slice(2)) {
76
149
  else {
77
150
  skip("GSD");
78
151
  }
152
+ if (state.tools.improve) {
153
+ if (!installImprove()) {
154
+ err("Improve install failed.");
155
+ hadError = true;
156
+ }
157
+ }
158
+ else {
159
+ skip("Improve");
160
+ }
79
161
  if (state.tools["frontend-skills"]) {
80
162
  if (!installFrontendSkills()) {
81
163
  err("Frontend Skills install failed.");
@@ -94,6 +176,7 @@ export async function runInstaller(argv = process.argv.slice(2)) {
94
176
  else {
95
177
  skip("Custom Skills");
96
178
  }
179
+ savePendingManifest();
97
180
  printSummary();
98
181
  if (hadError) {
99
182
  console.log("");
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { type InstallScope, type RuntimeName } from "./state.js";
2
+ export type ManifestEntry = {
3
+ kind: "skill";
4
+ runtime: RuntimeName;
5
+ source: string;
6
+ destination: string;
7
+ installedAt: string;
8
+ };
9
+ export type InstallManifest = {
10
+ version: 1;
11
+ scope: InstallScope;
12
+ generatedAt: string;
13
+ entries: ManifestEntry[];
14
+ };
15
+ type RemoveOptions = {
16
+ runtimes: RuntimeName[];
17
+ includeSkills: boolean;
18
+ };
19
+ export declare function manifestPathForScope(scope: InstallScope, cwd?: string, home?: string): string;
20
+ export declare function createManifest(scope: InstallScope): InstallManifest;
21
+ export declare function upsertManifestEntry(manifest: InstallManifest, entry: Omit<ManifestEntry, "installedAt">): void;
22
+ export declare function recordSkillInstall(runtime: RuntimeName, source: string, destination: string): void;
23
+ export declare function savePendingManifest(): void;
24
+ export declare function removeManifestEntries(manifest: InstallManifest, options: RemoveOptions): string[];
25
+ export declare function uninstallFromManifest(): boolean;
26
+ export {};
@@ -0,0 +1,104 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { HOME } from "./context.js";
4
+ import { ok, warn } from "./logger.js";
5
+ import { runtimeNames, state, } from "./state.js";
6
+ let pendingManifest = null;
7
+ function now() {
8
+ return new Date().toISOString();
9
+ }
10
+ export function manifestPathForScope(scope, cwd = process.cwd(), home = HOME) {
11
+ const baseDir = scope === "local"
12
+ ? path.join(cwd, ".agent-toolkit")
13
+ : path.join(home, ".agent-toolkit");
14
+ return path.join(baseDir, "install-manifest.json");
15
+ }
16
+ export function createManifest(scope) {
17
+ return {
18
+ version: 1,
19
+ scope,
20
+ generatedAt: now(),
21
+ entries: [],
22
+ };
23
+ }
24
+ function readManifest(filePath = manifestPathForScope(state.gsdScope)) {
25
+ if (!fs.existsSync(filePath))
26
+ return createManifest(state.gsdScope);
27
+ const parsed = JSON.parse(fs.readFileSync(filePath, "utf8"));
28
+ if (parsed.version !== 1 || !Array.isArray(parsed.entries)) {
29
+ throw new Error(`Unsupported Agent Toolkit manifest: ${filePath}`);
30
+ }
31
+ return parsed;
32
+ }
33
+ function writeManifest(manifest, filePath = manifestPathForScope(manifest.scope)) {
34
+ manifest.generatedAt = now();
35
+ fs.mkdirSync(path.dirname(filePath), { recursive: true });
36
+ fs.writeFileSync(`${filePath}.tmp`, `${JSON.stringify(manifest, null, 2)}\n`);
37
+ fs.renameSync(`${filePath}.tmp`, filePath);
38
+ }
39
+ export function upsertManifestEntry(manifest, entry) {
40
+ const installedAt = now();
41
+ const existingIndex = manifest.entries.findIndex((current) => current.destination === entry.destination);
42
+ const nextEntry = { ...entry, installedAt };
43
+ if (existingIndex === -1) {
44
+ manifest.entries.push(nextEntry);
45
+ }
46
+ else {
47
+ manifest.entries[existingIndex] = nextEntry;
48
+ }
49
+ }
50
+ export function recordSkillInstall(runtime, source, destination) {
51
+ pendingManifest ??= readManifest();
52
+ upsertManifestEntry(pendingManifest, {
53
+ kind: "skill",
54
+ runtime,
55
+ source,
56
+ destination,
57
+ });
58
+ }
59
+ export function savePendingManifest() {
60
+ if (!pendingManifest)
61
+ return;
62
+ writeManifest(pendingManifest);
63
+ ok(`Wrote install manifest at ${manifestPathForScope(pendingManifest.scope)}`);
64
+ pendingManifest = null;
65
+ }
66
+ export function removeManifestEntries(manifest, options) {
67
+ const selectedRuntimes = new Set(options.runtimes);
68
+ const removed = [];
69
+ const remaining = [];
70
+ for (const entry of manifest.entries) {
71
+ const shouldRemove = options.includeSkills &&
72
+ entry.kind === "skill" &&
73
+ selectedRuntimes.has(entry.runtime);
74
+ if (!shouldRemove) {
75
+ remaining.push(entry);
76
+ continue;
77
+ }
78
+ fs.rmSync(entry.destination, { recursive: true, force: true });
79
+ removed.push(entry.destination);
80
+ }
81
+ manifest.entries = remaining;
82
+ return removed;
83
+ }
84
+ export function uninstallFromManifest() {
85
+ const filePath = manifestPathForScope(state.gsdScope);
86
+ if (!fs.existsSync(filePath)) {
87
+ warn(`No Agent Toolkit manifest found at ${filePath}`);
88
+ return true;
89
+ }
90
+ const manifest = readManifest(filePath);
91
+ const selectedRuntimes = runtimeNames.filter((runtime) => state.runtimes[runtime]);
92
+ const removed = removeManifestEntries(manifest, {
93
+ runtimes: selectedRuntimes,
94
+ includeSkills: state.tools.skills,
95
+ });
96
+ writeManifest(manifest, filePath);
97
+ if (removed.length === 0) {
98
+ warn("No matching manifest entries found to uninstall.");
99
+ return true;
100
+ }
101
+ ok(`Removed ${removed.length} manifest-recorded item(s).`);
102
+ return true;
103
+ }
104
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAGL,YAAY,EACZ,KAAK,GACN,MAAM,YAAY,CAAC;AAsBpB,IAAI,eAAe,GAA2B,IAAI,CAAC;AAEnD,SAAS,GAAG;IACV,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,KAAmB,EACnB,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,IAAI,GAAG,IAAI;IAEX,MAAM,OAAO,GACX,KAAK,KAAK,OAAO;QACf,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC;QAClC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACxC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAmB;IAChD,OAAO;QACL,OAAO,EAAE,CAAC;QACV,KAAK;QACL,WAAW,EAAE,GAAG,EAAE;QAClB,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC;IAE/C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEpE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACvB,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CACf,CAAC;IACrB,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,uCAAuC,QAAQ,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CACpB,QAAyB,EACzB,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC;IAE/C,QAAQ,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC;IAC7B,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,EAAE,CAAC,aAAa,CAAC,GAAG,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9E,EAAE,CAAC,UAAU,CAAC,GAAG,QAAQ,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,QAAyB,EACzB,KAAyC;IAEzC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC;IAC1B,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAC9C,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,CACvD,CAAC;IACF,MAAM,SAAS,GAAG,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,CAAC;IAE5C,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;QACzB,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAAoB,EACpB,MAAc,EACd,WAAmB;IAEnB,eAAe,KAAK,YAAY,EAAE,CAAC;IACnC,mBAAmB,CAAC,eAAe,EAAE;QACnC,IAAI,EAAE,OAAO;QACb,OAAO;QACP,MAAM;QACN,WAAW;KACZ,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,IAAI,CAAC,eAAe;QAAE,OAAO;IAC7B,aAAa,CAAC,eAAe,CAAC,CAAC;IAC/B,EAAE,CACA,6BAA6B,oBAAoB,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAC3E,CAAC;IACF,eAAe,GAAG,IAAI,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,QAAyB,EACzB,OAAsB;IAEtB,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAoB,EAAE,CAAC;IAEtC,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,YAAY,GAChB,OAAO,CAAC,aAAa;YACrB,KAAK,CAAC,IAAI,KAAK,OAAO;YACtB,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEtC,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,SAAS;QACX,CAAC;QAED,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAC;IAC7B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC,sCAAsC,QAAQ,EAAE,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAC1C,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CACrC,CAAC;IACF,MAAM,OAAO,GAAG,qBAAqB,CAAC,QAAQ,EAAE;QAC9C,QAAQ,EAAE,gBAAgB;QAC1B,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;KAClC,CAAC,CAAC;IAEH,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAElC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,kDAAkD,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,EAAE,CAAC,WAAW,OAAO,CAAC,MAAM,6BAA6B,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC;AACd,CAAC"}
package/dist/src/menu.js CHANGED
@@ -205,6 +205,11 @@ function toolOptions(status) {
205
205
  label: "GSD",
206
206
  hint: detectionHint(status.tools.gsd, "phase-based project control"),
207
207
  },
208
+ {
209
+ value: "improve",
210
+ label: "Improve",
211
+ hint: detectionHint(status.tools.improve, "codebase audit and planning advisor"),
212
+ },
208
213
  {
209
214
  value: "frontend-skills",
210
215
  label: "Frontend Skills",
@@ -358,7 +363,7 @@ async function showReadlineMenu() {
358
363
  console.log("Detected status");
359
364
  console.log(formatDetectedStatus(status));
360
365
  console.log("");
361
- const toolsAnswer = await rl.question("Tools to install [comma list: rtk,caveman,superpowers,graphify,gsd,frontend-skills,skills, or all]: ");
366
+ const toolsAnswer = await rl.question("Tools to install [comma list: rtk,caveman,superpowers,graphify,gsd,improve,frontend-skills,skills, or all]: ");
362
367
  selectToolsFromAnswer(toolsAnswer);
363
368
  const runtimeAnswer = await rl.question("Runtimes to target [comma list: claude,codex,opencode,gemini,antigravity, or all]: ");
364
369
  selectRuntimesFromAnswer(runtimeAnswer);
@@ -1 +1 @@
1
- {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/menu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/menu.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@ export function checkExternalToolProvenance() {
30
30
  checkSource("Graphify", state.graphifyPackage);
31
31
  if (state.tools.gsd)
32
32
  checkSource("GSD", state.gsdPackage);
33
- if (state.tools["frontend-skills"]) {
33
+ if (state.tools["frontend-skills"] || state.tools.improve) {
34
34
  checkSource("Agent Skills CLI", state.frontendSkillsCliPackage);
35
35
  }
36
36
  if (!state.installMissingClis)
@@ -1 +1 @@
1
- {"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../src/provenance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,SAAS,WAAW,CAAC,KAAa,EAAE,IAAY;IAC9C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC;QAAE,OAAO;IAE3C,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAC9B,IAAI,CAAC,oDAAoD,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,GAAG,CACD,gDAAgD,KAAK,IAAI,IAAI,IAAI;QAC/D,4DAA4D,CAC/D,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB;IAC5B,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAAE,OAAO;IAE1D,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAC9B,IAAI,CAAC,kDAAkD,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,GAAG,CACD,oDAAoD,KAAK,CAAC,SAAS,IAAI;QACrE,gFAAgF,CACnF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B;IACzC,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG;QAAE,qBAAqB,EAAE,CAAC;IAC7C,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO;QAAE,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACtE,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ;QAAE,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IACzE,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG;QAAE,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACnC,WAAW,CAAC,kBAAkB,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,kBAAkB;QAAE,OAAO;IAEtC,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,SAAS;QACvC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW;YAAE,SAAS;QAC3B,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACvD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../src/provenance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,SAAS,WAAW,CAAC,KAAa,EAAE,IAAY;IAC9C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC;QAAE,OAAO;IAE3C,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAC9B,IAAI,CAAC,oDAAoD,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,GAAG,CACD,gDAAgD,KAAK,IAAI,IAAI,IAAI;QAC/D,4DAA4D,CAC/D,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB;IAC5B,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAAE,OAAO;IAE1D,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAC9B,IAAI,CAAC,kDAAkD,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,GAAG,CACD,oDAAoD,KAAK,CAAC,SAAS,IAAI;QACrE,gFAAgF,CACnF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B;IACzC,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG;QAAE,qBAAqB,EAAE,CAAC;IAC7C,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO;QAAE,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACtE,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ;QAAE,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IACzE,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG;QAAE,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAC1D,WAAW,CAAC,kBAAkB,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,kBAAkB;QAAE,OAAO;IAEtC,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,SAAS;QACvC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW;YAAE,SAAS;QAC3B,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACvD,CAAC;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ export type ReleaseKind = "patch" | "minor" | "major";
2
+ export declare function bumpVersion(version: string, kind: ReleaseKind): string;
3
+ export declare function updateReadmeReleaseTag(readme: string, version: string): string;
4
+ export declare function runReleaseCli(argv: string[]): void;
@@ -0,0 +1,80 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import process from "node:process";
4
+ import { fileURLToPath } from "node:url";
5
+ import { REPO_ROOT } from "./context.js";
6
+ import { die, info, ok } from "./logger.js";
7
+ import { run } from "./system.js";
8
+ function assertReleaseKind(value) {
9
+ if (value !== "patch" && value !== "minor" && value !== "major") {
10
+ die("Release kind must be patch, minor or major.");
11
+ }
12
+ }
13
+ export function bumpVersion(version, kind) {
14
+ const parts = version.split(".").map((part) => Number.parseInt(part, 10));
15
+ if (parts.length !== 3 ||
16
+ parts.some((part) => !Number.isInteger(part) || part < 0)) {
17
+ throw new Error(`Unsupported semver version: ${version}`);
18
+ }
19
+ const [major = 0, minor = 0, patch = 0] = parts;
20
+ switch (kind) {
21
+ case "patch":
22
+ return `${major}.${minor}.${patch + 1}`;
23
+ case "minor":
24
+ return `${major}.${minor + 1}.0`;
25
+ case "major":
26
+ return `${major + 1}.0.0`;
27
+ }
28
+ }
29
+ export function updateReadmeReleaseTag(readme, version) {
30
+ return readme
31
+ .replace(/git tag v[0-9]+\.[0-9]+\.[0-9]+/g, `git tag v${version}`)
32
+ .replace(/git push origin v[0-9]+\.[0-9]+\.[0-9]+/g, `git push origin v${version}`);
33
+ }
34
+ function readPackageJson(filePath) {
35
+ return JSON.parse(fs.readFileSync(filePath, "utf8"));
36
+ }
37
+ function writeJson(filePath, value) {
38
+ fs.writeFileSync(filePath, `${JSON.stringify(value, null, 2)}\n`);
39
+ }
40
+ function runChecked(command, args) {
41
+ const result = run(command, args);
42
+ if (!result.ok) {
43
+ throw new Error(`${command} ${args.join(" ")} failed with ${result.status}`);
44
+ }
45
+ }
46
+ export function runReleaseCli(argv) {
47
+ const kind = argv[0];
48
+ assertReleaseKind(kind);
49
+ const push = argv.includes("--push");
50
+ const noCheck = argv.includes("--no-check");
51
+ const packagePath = path.join(REPO_ROOT, "package.json");
52
+ const readmePath = path.join(REPO_ROOT, "README.md");
53
+ const packageJson = readPackageJson(packagePath);
54
+ const nextVersion = bumpVersion(packageJson.version, kind);
55
+ const tagName = `v${nextVersion}`;
56
+ packageJson.version = nextVersion;
57
+ writeJson(packagePath, packageJson);
58
+ fs.writeFileSync(readmePath, updateReadmeReleaseTag(fs.readFileSync(readmePath, "utf8"), nextVersion));
59
+ ok(`Prepared ${tagName}.`);
60
+ if (!noCheck) {
61
+ info("Running release gate: pnpm run check");
62
+ runChecked("pnpm", ["run", "check"]);
63
+ }
64
+ runChecked("git", ["add", "package.json", "README.md"]);
65
+ runChecked("git", ["commit", "-m", `chore: release ${nextVersion}`]);
66
+ runChecked("git", ["tag", tagName]);
67
+ ok(`Created release commit and tag ${tagName}.`);
68
+ if (push) {
69
+ runChecked("git", ["push", "origin", "main", tagName]);
70
+ ok(`Pushed main and ${tagName}.`);
71
+ }
72
+ else {
73
+ info(`Push with: git push origin main ${tagName}`);
74
+ }
75
+ }
76
+ const invokedPath = process.argv[1] ? path.resolve(process.argv[1]) : "";
77
+ if (invokedPath && invokedPath === fileURLToPath(import.meta.url)) {
78
+ runReleaseCli(process.argv.slice(2));
79
+ }
80
+ //# sourceMappingURL=release.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release.js","sourceRoot":"","sources":["../../src/release.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AASlC,SAAS,iBAAiB,CACxB,KAAyB;IAEzB,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QAChE,GAAG,CAAC,6CAA6C,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,IAAiB;IAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1E,IACE,KAAK,CAAC,MAAM,KAAK,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,EACzD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IAChD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,OAAO,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC1C,KAAK,OAAO;YACV,OAAO,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC;QACnC,KAAK,OAAO;YACV,OAAO,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,MAAc,EACd,OAAe;IAEf,OAAO,MAAM;SACV,OAAO,CAAC,kCAAkC,EAAE,YAAY,OAAO,EAAE,CAAC;SAClE,OAAO,CACN,0CAA0C,EAC1C,oBAAoB,OAAO,EAAE,CAC9B,CAAC;AACN,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB;IACvC,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAgB,CAAC;AACtE,CAAC;AAED,SAAS,SAAS,CAAC,QAAgB,EAAE,KAAc;IACjD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,UAAU,CAAC,OAAe,EAAE,IAAc;IACjD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,MAAM,EAAE,CAC5D,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAc;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACrB,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACxB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAE5C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAElC,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC;IAClC,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpC,EAAE,CAAC,aAAa,CACd,UAAU,EACV,sBAAsB,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,CACzE,CAAC;IAEF,EAAE,CAAC,YAAY,OAAO,GAAG,CAAC,CAAC;IAE3B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,IAAI,CAAC,sCAAsC,CAAC,CAAC;QAC7C,UAAU,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;IACxD,UAAU,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,kBAAkB,WAAW,EAAE,CAAC,CAAC,CAAC;IACrE,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IACpC,EAAE,CAAC,kCAAkC,OAAO,GAAG,CAAC,CAAC;IAEjD,IAAI,IAAI,EAAE,CAAC;QACT,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QACvD,EAAE,CAAC,mBAAmB,OAAO,GAAG,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,mCAAmC,OAAO,EAAE,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACzE,IAAI,WAAW,IAAI,WAAW,KAAK,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAClE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC"}