mewkit 1.7.0 → 1.7.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.
- package/package.json +1 -1
- package/dist/commands/budget.d.ts +0 -6
- package/dist/commands/budget.d.ts.map +0 -1
- package/dist/commands/budget.js +0 -95
- package/dist/commands/budget.js.map +0 -1
- package/dist/commands/doctor.d.ts +0 -4
- package/dist/commands/doctor.d.ts.map +0 -1
- package/dist/commands/doctor.js +0 -365
- package/dist/commands/doctor.js.map +0 -1
- package/dist/commands/init.d.ts +0 -13
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js +0 -354
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/memory.d.ts +0 -9
- package/dist/commands/memory.d.ts.map +0 -1
- package/dist/commands/memory.js +0 -217
- package/dist/commands/memory.js.map +0 -1
- package/dist/commands/migrate.d.ts +0 -21
- package/dist/commands/migrate.d.ts.map +0 -1
- package/dist/commands/migrate.js +0 -42
- package/dist/commands/migrate.js.map +0 -1
- package/dist/commands/setup.d.ts +0 -16
- package/dist/commands/setup.d.ts.map +0 -1
- package/dist/commands/setup.js +0 -413
- package/dist/commands/setup.js.map +0 -1
- package/dist/commands/task.d.ts +0 -10
- package/dist/commands/task.d.ts.map +0 -1
- package/dist/commands/task.js +0 -313
- package/dist/commands/task.js.map +0 -1
- package/dist/commands/upgrade.d.ts +0 -7
- package/dist/commands/upgrade.d.ts.map +0 -1
- package/dist/commands/upgrade.js +0 -143
- package/dist/commands/upgrade.js.map +0 -1
- package/dist/commands/validate.d.ts +0 -2
- package/dist/commands/validate.d.ts.map +0 -1
- package/dist/commands/validate.js +0 -139
- package/dist/commands/validate.js.map +0 -1
- package/dist/core/compute-checksums.d.ts +0 -25
- package/dist/core/compute-checksums.d.ts.map +0 -1
- package/dist/core/compute-checksums.js +0 -105
- package/dist/core/compute-checksums.js.map +0 -1
- package/dist/core/core-logger.d.ts +0 -9
- package/dist/core/core-logger.d.ts.map +0 -1
- package/dist/core/core-logger.js +0 -31
- package/dist/core/core-logger.js.map +0 -1
- package/dist/core/dependency-installer.d.ts +0 -29
- package/dist/core/dependency-installer.d.ts.map +0 -1
- package/dist/core/dependency-installer.js +0 -150
- package/dist/core/dependency-installer.js.map +0 -1
- package/dist/core/github-releases.d.ts +0 -32
- package/dist/core/github-releases.d.ts.map +0 -1
- package/dist/core/github-releases.js +0 -96
- package/dist/core/github-releases.js.map +0 -1
- package/dist/core/index.d.ts +0 -12
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -12
- package/dist/core/index.js.map +0 -1
- package/dist/core/merge-settings.d.ts +0 -7
- package/dist/core/merge-settings.d.ts.map +0 -1
- package/dist/core/merge-settings.js +0 -131
- package/dist/core/merge-settings.js.map +0 -1
- package/dist/core/skills-dependencies.d.ts +0 -25
- package/dist/core/skills-dependencies.d.ts.map +0 -1
- package/dist/core/skills-dependencies.js +0 -100
- package/dist/core/skills-dependencies.js.map +0 -1
- package/dist/core/smart-update-utils.d.ts +0 -10
- package/dist/core/smart-update-utils.d.ts.map +0 -1
- package/dist/core/smart-update-utils.js +0 -61
- package/dist/core/smart-update-utils.js.map +0 -1
- package/dist/core/smart-update.d.ts +0 -18
- package/dist/core/smart-update.d.ts.map +0 -1
- package/dist/core/smart-update.js +0 -177
- package/dist/core/smart-update.js.map +0 -1
- package/dist/core/substitute-placeholders.d.ts +0 -11
- package/dist/core/substitute-placeholders.d.ts.map +0 -1
- package/dist/core/substitute-placeholders.js +0 -28
- package/dist/core/substitute-placeholders.js.map +0 -1
- package/dist/core/validate-install.d.ts +0 -6
- package/dist/core/validate-install.d.ts.map +0 -1
- package/dist/core/validate-install.js +0 -97
- package/dist/core/validate-install.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -199
- package/dist/index.js.map +0 -1
- package/dist/lib/system-deps-registry.d.ts +0 -117
- package/dist/lib/system-deps-registry.d.ts.map +0 -1
- package/dist/lib/system-deps-registry.js +0 -234
- package/dist/lib/system-deps-registry.js.map +0 -1
- package/dist/logger.d.ts +0 -26
- package/dist/logger.js +0 -70
- package/dist/logger.js.map +0 -1
- package/dist/migrate/__tests__/frontmatter-parser.test.d.ts +0 -2
- package/dist/migrate/__tests__/frontmatter-parser.test.d.ts.map +0 -1
- package/dist/migrate/__tests__/frontmatter-parser.test.js +0 -73
- package/dist/migrate/__tests__/frontmatter-parser.test.js.map +0 -1
- package/dist/migrate/__tests__/md-strip-mewkit.test.d.ts +0 -2
- package/dist/migrate/__tests__/md-strip-mewkit.test.d.ts.map +0 -1
- package/dist/migrate/__tests__/md-strip-mewkit.test.js +0 -55
- package/dist/migrate/__tests__/md-strip-mewkit.test.js.map +0 -1
- package/dist/migrate/__tests__/migrate-scope-resolver.test.d.ts +0 -2
- package/dist/migrate/__tests__/migrate-scope-resolver.test.d.ts.map +0 -1
- package/dist/migrate/__tests__/migrate-scope-resolver.test.js +0 -53
- package/dist/migrate/__tests__/migrate-scope-resolver.test.js.map +0 -1
- package/dist/migrate/__tests__/process-lock.test.d.ts +0 -2
- package/dist/migrate/__tests__/process-lock.test.d.ts.map +0 -1
- package/dist/migrate/__tests__/process-lock.test.js +0 -63
- package/dist/migrate/__tests__/process-lock.test.js.map +0 -1
- package/dist/migrate/__tests__/provider-registry.test.d.ts +0 -2
- package/dist/migrate/__tests__/provider-registry.test.d.ts.map +0 -1
- package/dist/migrate/__tests__/provider-registry.test.js +0 -53
- package/dist/migrate/__tests__/provider-registry.test.js.map +0 -1
- package/dist/migrate/__tests__/reconciler.test.d.ts +0 -2
- package/dist/migrate/__tests__/reconciler.test.d.ts.map +0 -1
- package/dist/migrate/__tests__/reconciler.test.js +0 -180
- package/dist/migrate/__tests__/reconciler.test.js.map +0 -1
- package/dist/migrate/codex-capabilities.d.ts +0 -17
- package/dist/migrate/codex-capabilities.d.ts.map +0 -1
- package/dist/migrate/codex-capabilities.js +0 -95
- package/dist/migrate/codex-capabilities.js.map +0 -1
- package/dist/migrate/config-merger/merge-single-sections.d.ts +0 -20
- package/dist/migrate/config-merger/merge-single-sections.d.ts.map +0 -1
- package/dist/migrate/config-merger/merge-single-sections.js +0 -169
- package/dist/migrate/config-merger/merge-single-sections.js.map +0 -1
- package/dist/migrate/converters/claude-to-codex-hooks.d.ts +0 -23
- package/dist/migrate/converters/claude-to-codex-hooks.d.ts.map +0 -1
- package/dist/migrate/converters/claude-to-codex-hooks.js +0 -80
- package/dist/migrate/converters/claude-to-codex-hooks.js.map +0 -1
- package/dist/migrate/converters/direct-copy.d.ts +0 -3
- package/dist/migrate/converters/direct-copy.d.ts.map +0 -1
- package/dist/migrate/converters/direct-copy.js +0 -52
- package/dist/migrate/converters/direct-copy.js.map +0 -1
- package/dist/migrate/converters/fm-strip.d.ts +0 -4
- package/dist/migrate/converters/fm-strip.d.ts.map +0 -1
- package/dist/migrate/converters/fm-strip.js +0 -36
- package/dist/migrate/converters/fm-strip.js.map +0 -1
- package/dist/migrate/converters/fm-to-codex-toml.d.ts +0 -19
- package/dist/migrate/converters/fm-to-codex-toml.d.ts.map +0 -1
- package/dist/migrate/converters/fm-to-codex-toml.js +0 -93
- package/dist/migrate/converters/fm-to-codex-toml.js.map +0 -1
- package/dist/migrate/converters/fm-to-fm.d.ts +0 -3
- package/dist/migrate/converters/fm-to-fm.d.ts.map +0 -1
- package/dist/migrate/converters/fm-to-fm.js +0 -142
- package/dist/migrate/converters/fm-to-fm.js.map +0 -1
- package/dist/migrate/converters/fm-to-json.d.ts +0 -12
- package/dist/migrate/converters/fm-to-json.d.ts.map +0 -1
- package/dist/migrate/converters/fm-to-json.js +0 -55
- package/dist/migrate/converters/fm-to-json.js.map +0 -1
- package/dist/migrate/converters/fm-to-yaml.d.ts +0 -4
- package/dist/migrate/converters/fm-to-yaml.d.ts.map +0 -1
- package/dist/migrate/converters/fm-to-yaml.js +0 -62
- package/dist/migrate/converters/fm-to-yaml.js.map +0 -1
- package/dist/migrate/converters/gemini-hook-event-map.d.ts +0 -6
- package/dist/migrate/converters/gemini-hook-event-map.d.ts.map +0 -1
- package/dist/migrate/converters/gemini-hook-event-map.js +0 -41
- package/dist/migrate/converters/gemini-hook-event-map.js.map +0 -1
- package/dist/migrate/converters/index.d.ts +0 -12
- package/dist/migrate/converters/index.d.ts.map +0 -1
- package/dist/migrate/converters/index.js +0 -66
- package/dist/migrate/converters/index.js.map +0 -1
- package/dist/migrate/converters/md-strip.d.ts +0 -19
- package/dist/migrate/converters/md-strip.d.ts.map +0 -1
- package/dist/migrate/converters/md-strip.js +0 -290
- package/dist/migrate/converters/md-strip.js.map +0 -1
- package/dist/migrate/converters/md-to-kiro-steering.d.ts +0 -3
- package/dist/migrate/converters/md-to-kiro-steering.d.ts.map +0 -1
- package/dist/migrate/converters/md-to-kiro-steering.js +0 -90
- package/dist/migrate/converters/md-to-kiro-steering.js.map +0 -1
- package/dist/migrate/converters/md-to-mdc.d.ts +0 -3
- package/dist/migrate/converters/md-to-mdc.d.ts.map +0 -1
- package/dist/migrate/converters/md-to-mdc.js +0 -19
- package/dist/migrate/converters/md-to-mdc.js.map +0 -1
- package/dist/migrate/converters/md-to-toml.d.ts +0 -4
- package/dist/migrate/converters/md-to-toml.d.ts.map +0 -1
- package/dist/migrate/converters/md-to-toml.js +0 -25
- package/dist/migrate/converters/md-to-toml.js.map +0 -1
- package/dist/migrate/converters/skill-md.d.ts +0 -3
- package/dist/migrate/converters/skill-md.d.ts.map +0 -1
- package/dist/migrate/converters/skill-md.js +0 -18
- package/dist/migrate/converters/skill-md.js.map +0 -1
- package/dist/migrate/discovery/agents-discovery.d.ts +0 -3
- package/dist/migrate/discovery/agents-discovery.d.ts.map +0 -1
- package/dist/migrate/discovery/agents-discovery.js +0 -42
- package/dist/migrate/discovery/agents-discovery.js.map +0 -1
- package/dist/migrate/discovery/commands-discovery.d.ts +0 -3
- package/dist/migrate/discovery/commands-discovery.d.ts.map +0 -1
- package/dist/migrate/discovery/commands-discovery.js +0 -60
- package/dist/migrate/discovery/commands-discovery.js.map +0 -1
- package/dist/migrate/discovery/config-discovery.d.ts +0 -3
- package/dist/migrate/discovery/config-discovery.d.ts.map +0 -1
- package/dist/migrate/discovery/config-discovery.js +0 -17
- package/dist/migrate/discovery/config-discovery.js.map +0 -1
- package/dist/migrate/discovery/exclusions.d.ts +0 -5
- package/dist/migrate/discovery/exclusions.d.ts.map +0 -1
- package/dist/migrate/discovery/exclusions.js +0 -31
- package/dist/migrate/discovery/exclusions.js.map +0 -1
- package/dist/migrate/discovery/handlers-json-filter.d.ts +0 -17
- package/dist/migrate/discovery/handlers-json-filter.d.ts.map +0 -1
- package/dist/migrate/discovery/handlers-json-filter.js +0 -48
- package/dist/migrate/discovery/handlers-json-filter.js.map +0 -1
- package/dist/migrate/discovery/hooks-discovery.d.ts +0 -7
- package/dist/migrate/discovery/hooks-discovery.d.ts.map +0 -1
- package/dist/migrate/discovery/hooks-discovery.js +0 -45
- package/dist/migrate/discovery/hooks-discovery.js.map +0 -1
- package/dist/migrate/discovery/index.d.ts +0 -10
- package/dist/migrate/discovery/index.d.ts.map +0 -1
- package/dist/migrate/discovery/index.js +0 -10
- package/dist/migrate/discovery/index.js.map +0 -1
- package/dist/migrate/discovery/rules-discovery.d.ts +0 -3
- package/dist/migrate/discovery/rules-discovery.d.ts.map +0 -1
- package/dist/migrate/discovery/rules-discovery.js +0 -53
- package/dist/migrate/discovery/rules-discovery.js.map +0 -1
- package/dist/migrate/discovery/skills-discovery.d.ts +0 -5
- package/dist/migrate/discovery/skills-discovery.d.ts.map +0 -1
- package/dist/migrate/discovery/skills-discovery.js +0 -73
- package/dist/migrate/discovery/skills-discovery.js.map +0 -1
- package/dist/migrate/discovery/source-paths.d.ts +0 -13
- package/dist/migrate/discovery/source-paths.d.ts.map +0 -1
- package/dist/migrate/discovery/source-paths.js +0 -63
- package/dist/migrate/discovery/source-paths.js.map +0 -1
- package/dist/migrate/frontmatter-parser.d.ts +0 -4
- package/dist/migrate/frontmatter-parser.d.ts.map +0 -1
- package/dist/migrate/frontmatter-parser.js +0 -99
- package/dist/migrate/frontmatter-parser.js.map +0 -1
- package/dist/migrate/hooks/codex-features-flag.d.ts +0 -8
- package/dist/migrate/hooks/codex-features-flag.d.ts.map +0 -1
- package/dist/migrate/hooks/codex-features-flag.js +0 -146
- package/dist/migrate/hooks/codex-features-flag.js.map +0 -1
- package/dist/migrate/hooks/codex-hook-wrapper.d.ts +0 -10
- package/dist/migrate/hooks/codex-hook-wrapper.d.ts.map +0 -1
- package/dist/migrate/hooks/codex-hook-wrapper.js +0 -166
- package/dist/migrate/hooks/codex-hook-wrapper.js.map +0 -1
- package/dist/migrate/hooks/codex-path-safety.d.ts +0 -5
- package/dist/migrate/hooks/codex-path-safety.d.ts.map +0 -1
- package/dist/migrate/hooks/codex-path-safety.js +0 -99
- package/dist/migrate/hooks/codex-path-safety.js.map +0 -1
- package/dist/migrate/hooks/codex-toml-installer.d.ts +0 -15
- package/dist/migrate/hooks/codex-toml-installer.d.ts.map +0 -1
- package/dist/migrate/hooks/codex-toml-installer.js +0 -124
- package/dist/migrate/hooks/codex-toml-installer.js.map +0 -1
- package/dist/migrate/hooks/hooks-settings-merger.d.ts +0 -20
- package/dist/migrate/hooks/hooks-settings-merger.d.ts.map +0 -1
- package/dist/migrate/hooks/hooks-settings-merger.js +0 -273
- package/dist/migrate/hooks/hooks-settings-merger.js.map +0 -1
- package/dist/migrate/hooks/index.d.ts +0 -7
- package/dist/migrate/hooks/index.d.ts.map +0 -1
- package/dist/migrate/hooks/index.js +0 -7
- package/dist/migrate/hooks/index.js.map +0 -1
- package/dist/migrate/hooks/opencode-config-installer.d.ts +0 -31
- package/dist/migrate/hooks/opencode-config-installer.d.ts.map +0 -1
- package/dist/migrate/hooks/opencode-config-installer.js +0 -116
- package/dist/migrate/hooks/opencode-config-installer.js.map +0 -1
- package/dist/migrate/index.d.ts +0 -15
- package/dist/migrate/index.d.ts.map +0 -1
- package/dist/migrate/index.js +0 -15
- package/dist/migrate/index.js.map +0 -1
- package/dist/migrate/migrate-discover.d.ts +0 -28
- package/dist/migrate/migrate-discover.d.ts.map +0 -1
- package/dist/migrate/migrate-discover.js +0 -52
- package/dist/migrate/migrate-discover.js.map +0 -1
- package/dist/migrate/migrate-mode-resolver.d.ts +0 -10
- package/dist/migrate/migrate-mode-resolver.d.ts.map +0 -1
- package/dist/migrate/migrate-mode-resolver.js +0 -123
- package/dist/migrate/migrate-mode-resolver.js.map +0 -1
- package/dist/migrate/migrate-orchestrator.d.ts +0 -9
- package/dist/migrate/migrate-orchestrator.d.ts.map +0 -1
- package/dist/migrate/migrate-orchestrator.js +0 -204
- package/dist/migrate/migrate-orchestrator.js.map +0 -1
- package/dist/migrate/migrate-scope-resolver.d.ts +0 -19
- package/dist/migrate/migrate-scope-resolver.d.ts.map +0 -1
- package/dist/migrate/migrate-scope-resolver.js +0 -81
- package/dist/migrate/migrate-scope-resolver.js.map +0 -1
- package/dist/migrate/migrate-ui-summary.d.ts +0 -14
- package/dist/migrate/migrate-ui-summary.d.ts.map +0 -1
- package/dist/migrate/migrate-ui-summary.js +0 -65
- package/dist/migrate/migrate-ui-summary.js.map +0 -1
- package/dist/migrate/model-taxonomy.d.ts +0 -16
- package/dist/migrate/model-taxonomy.d.ts.map +0 -1
- package/dist/migrate/model-taxonomy.js +0 -58
- package/dist/migrate/model-taxonomy.js.map +0 -1
- package/dist/migrate/portable-installer.d.ts +0 -14
- package/dist/migrate/portable-installer.d.ts.map +0 -1
- package/dist/migrate/portable-installer.js +0 -159
- package/dist/migrate/portable-installer.js.map +0 -1
- package/dist/migrate/provider-overrides.d.ts +0 -8
- package/dist/migrate/provider-overrides.d.ts.map +0 -1
- package/dist/migrate/provider-overrides.js +0 -40
- package/dist/migrate/provider-overrides.js.map +0 -1
- package/dist/migrate/provider-registry-utils.d.ts +0 -23
- package/dist/migrate/provider-registry-utils.d.ts.map +0 -1
- package/dist/migrate/provider-registry-utils.js +0 -67
- package/dist/migrate/provider-registry-utils.js.map +0 -1
- package/dist/migrate/provider-registry.d.ts +0 -5
- package/dist/migrate/provider-registry.d.ts.map +0 -1
- package/dist/migrate/provider-registry.js +0 -327
- package/dist/migrate/provider-registry.js.map +0 -1
- package/dist/migrate/reconcile/checksum-utils.d.ts +0 -8
- package/dist/migrate/reconcile/checksum-utils.d.ts.map +0 -1
- package/dist/migrate/reconcile/checksum-utils.js +0 -32
- package/dist/migrate/reconcile/checksum-utils.js.map +0 -1
- package/dist/migrate/reconcile/conflict-resolver.d.ts +0 -8
- package/dist/migrate/reconcile/conflict-resolver.d.ts.map +0 -1
- package/dist/migrate/reconcile/conflict-resolver.js +0 -59
- package/dist/migrate/reconcile/conflict-resolver.js.map +0 -1
- package/dist/migrate/reconcile/diff-display.d.ts +0 -6
- package/dist/migrate/reconcile/diff-display.d.ts.map +0 -1
- package/dist/migrate/reconcile/diff-display.js +0 -40
- package/dist/migrate/reconcile/diff-display.js.map +0 -1
- package/dist/migrate/reconcile/index.d.ts +0 -10
- package/dist/migrate/reconcile/index.d.ts.map +0 -1
- package/dist/migrate/reconcile/index.js +0 -10
- package/dist/migrate/reconcile/index.js.map +0 -1
- package/dist/migrate/reconcile/output-sanitizer.d.ts +0 -3
- package/dist/migrate/reconcile/output-sanitizer.d.ts.map +0 -1
- package/dist/migrate/reconcile/output-sanitizer.js +0 -42
- package/dist/migrate/reconcile/output-sanitizer.js.map +0 -1
- package/dist/migrate/reconcile/portable-registry.d.ts +0 -142
- package/dist/migrate/reconcile/portable-registry.d.ts.map +0 -1
- package/dist/migrate/reconcile/portable-registry.js +0 -224
- package/dist/migrate/reconcile/portable-registry.js.map +0 -1
- package/dist/migrate/reconcile/process-lock.d.ts +0 -15
- package/dist/migrate/reconcile/process-lock.d.ts.map +0 -1
- package/dist/migrate/reconcile/process-lock.js +0 -77
- package/dist/migrate/reconcile/process-lock.js.map +0 -1
- package/dist/migrate/reconcile/reconcile-state-builders.d.ts +0 -24
- package/dist/migrate/reconcile/reconcile-state-builders.d.ts.map +0 -1
- package/dist/migrate/reconcile/reconcile-state-builders.js +0 -185
- package/dist/migrate/reconcile/reconcile-state-builders.js.map +0 -1
- package/dist/migrate/reconcile/reconcile-types.d.ts +0 -113
- package/dist/migrate/reconcile/reconcile-types.d.ts.map +0 -1
- package/dist/migrate/reconcile/reconcile-types.js +0 -42
- package/dist/migrate/reconcile/reconcile-types.js.map +0 -1
- package/dist/migrate/reconcile/reconciler.d.ts +0 -3
- package/dist/migrate/reconcile/reconciler.d.ts.map +0 -1
- package/dist/migrate/reconcile/reconciler.js +0 -445
- package/dist/migrate/reconcile/reconciler.js.map +0 -1
- package/dist/migrate/skill-directory-installer.d.ts +0 -23
- package/dist/migrate/skill-directory-installer.d.ts.map +0 -1
- package/dist/migrate/skill-directory-installer.js +0 -55
- package/dist/migrate/skill-directory-installer.js.map +0 -1
- package/dist/migrate/types.d.ts +0 -172
- package/dist/migrate/types.d.ts.map +0 -1
- package/dist/migrate/types.js +0 -45
- package/dist/migrate/types.js.map +0 -1
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import { existsSync, readdirSync, statSync, accessSync, constants } from "node:fs";
|
|
2
|
-
import { join } from "node:path";
|
|
3
|
-
import pc from "picocolors";
|
|
4
|
-
function check(label, pass, issues) {
|
|
5
|
-
if (pass) {
|
|
6
|
-
console.log(` ${pc.green("PASS")} ${label}`);
|
|
7
|
-
}
|
|
8
|
-
else {
|
|
9
|
-
console.log(` ${pc.red("FAIL")} ${label}`);
|
|
10
|
-
issues.push(label);
|
|
11
|
-
}
|
|
12
|
-
return pass;
|
|
13
|
-
}
|
|
14
|
-
/** Counts .md files in a directory (non-recursive) */
|
|
15
|
-
function countMdFiles(dir) {
|
|
16
|
-
if (!existsSync(dir))
|
|
17
|
-
return 0;
|
|
18
|
-
try {
|
|
19
|
-
return readdirSync(dir).filter((f) => f.endsWith(".md")).length;
|
|
20
|
-
}
|
|
21
|
-
catch {
|
|
22
|
-
return 0;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
/** Counts subdirectories in a directory */
|
|
26
|
-
function countSubdirs(dir) {
|
|
27
|
-
if (!existsSync(dir))
|
|
28
|
-
return 0;
|
|
29
|
-
try {
|
|
30
|
-
return readdirSync(dir).filter((f) => {
|
|
31
|
-
try {
|
|
32
|
-
return statSync(join(dir, f)).isDirectory();
|
|
33
|
-
}
|
|
34
|
-
catch {
|
|
35
|
-
return false;
|
|
36
|
-
}
|
|
37
|
-
}).length;
|
|
38
|
-
}
|
|
39
|
-
catch {
|
|
40
|
-
return 0;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
export function validate(targetDir) {
|
|
44
|
-
const issues = [];
|
|
45
|
-
const claude = join(targetDir, ".claude");
|
|
46
|
-
console.log(pc.bold("\nValidation Results:"));
|
|
47
|
-
// Core structure
|
|
48
|
-
check(".claude/ directory exists", existsSync(claude), issues);
|
|
49
|
-
check("CLAUDE.md exists", existsSync(join(targetDir, "CLAUDE.md")), issues);
|
|
50
|
-
check("meowkit.config.json exists", existsSync(join(claude, "meowkit.config.json")), issues);
|
|
51
|
-
// Agents (expect 10+ from real system)
|
|
52
|
-
const agentCount = countMdFiles(join(claude, "agents"));
|
|
53
|
-
check(`Agents: ${agentCount} files (need 10+)`, agentCount >= 10, issues);
|
|
54
|
-
// Skills (expect 30+ directories)
|
|
55
|
-
const skillCount = countSubdirs(join(claude, "skills"));
|
|
56
|
-
check(`Skills: ${skillCount} directories (need 30+)`, skillCount >= 30, issues);
|
|
57
|
-
// Commands
|
|
58
|
-
const cmdDir = join(claude, "commands");
|
|
59
|
-
const cmdExists = existsSync(cmdDir);
|
|
60
|
-
check("Commands directory exists", cmdExists, issues);
|
|
61
|
-
// Modes
|
|
62
|
-
const modeCount = countMdFiles(join(claude, "modes"));
|
|
63
|
-
check(`Modes: ${modeCount} files (need 5+)`, modeCount >= 5, issues);
|
|
64
|
-
// Rules
|
|
65
|
-
const ruleCount = countMdFiles(join(claude, "rules"));
|
|
66
|
-
check(`Rules: ${ruleCount} files (need 10+)`, ruleCount >= 10, issues);
|
|
67
|
-
// Hooks — all must be executable
|
|
68
|
-
const hooksDir = join(claude, "hooks");
|
|
69
|
-
if (existsSync(hooksDir)) {
|
|
70
|
-
const hookFiles = readdirSync(hooksDir);
|
|
71
|
-
for (const hookFile of hookFiles) {
|
|
72
|
-
const hookPath = join(hooksDir, hookFile);
|
|
73
|
-
let isExecutable = false;
|
|
74
|
-
try {
|
|
75
|
-
accessSync(hookPath, constants.X_OK);
|
|
76
|
-
isExecutable = true;
|
|
77
|
-
}
|
|
78
|
-
catch {
|
|
79
|
-
// Not executable
|
|
80
|
-
}
|
|
81
|
-
check(`Hook ${hookFile} is executable`, isExecutable, issues);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
check("Hooks directory exists", false, issues);
|
|
86
|
-
}
|
|
87
|
-
// Scripts
|
|
88
|
-
check("Scripts directory exists", existsSync(join(claude, "scripts")), issues);
|
|
89
|
-
// Settings
|
|
90
|
-
check("settings.json exists", existsSync(join(claude, "settings.json")), issues);
|
|
91
|
-
const valid = issues.length === 0;
|
|
92
|
-
console.log(valid
|
|
93
|
-
? `\n ${pc.green(pc.bold("All checks passed"))}`
|
|
94
|
-
: `\n ${pc.red(pc.bold(`${issues.length} issue(s) found`))}`);
|
|
95
|
-
return { valid, issues };
|
|
96
|
-
}
|
|
97
|
-
//# sourceMappingURL=validate-install.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validate-install.js","sourceRoot":"","sources":["../../src/core/validate-install.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
DELETED
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
DELETED
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import fs from "node:fs";
|
|
3
|
-
import { dirname, join } from "node:path";
|
|
4
|
-
import { fileURLToPath } from "node:url";
|
|
5
|
-
import minimist from "minimist";
|
|
6
|
-
import pc from "picocolors";
|
|
7
|
-
import { init } from "./commands/init.js";
|
|
8
|
-
import { upgrade } from "./commands/upgrade.js";
|
|
9
|
-
import { validate } from "./commands/validate.js";
|
|
10
|
-
import { budget } from "./commands/budget.js";
|
|
11
|
-
import { memory } from "./commands/memory.js";
|
|
12
|
-
import { doctor } from "./commands/doctor.js";
|
|
13
|
-
import { migrate } from "./commands/migrate.js";
|
|
14
|
-
import { setup } from "./commands/setup.js";
|
|
15
|
-
import { task } from "./commands/task.js";
|
|
16
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
17
|
-
const pkgJson = JSON.parse(fs.readFileSync(join(__dirname, "..", "package.json"), "utf-8"));
|
|
18
|
-
const VERSION = pkgJson.version;
|
|
19
|
-
function printHelp() {
|
|
20
|
-
console.log(`
|
|
21
|
-
${pc.bold(pc.cyan("meowkit"))} ${pc.dim(`v${VERSION}`)} — MeowKit runtime CLI
|
|
22
|
-
|
|
23
|
-
${pc.bold("Usage:")}
|
|
24
|
-
meowkit <command> [options]
|
|
25
|
-
|
|
26
|
-
${pc.bold("Commands:")}
|
|
27
|
-
${pc.green("init")} Scaffold or update MeowKit in the current project
|
|
28
|
-
${pc.green("upgrade")} Upgrade MeowKit to the latest version
|
|
29
|
-
${pc.green("validate")} Validate .claude/ project structure
|
|
30
|
-
${pc.green("budget")} View token usage and cost log
|
|
31
|
-
${pc.green("memory")} Manage agent memory (lessons & patterns)
|
|
32
|
-
${pc.green("setup")} Guided post-scaffold configuration
|
|
33
|
-
${pc.green("doctor")} Diagnose common environment issues
|
|
34
|
-
${pc.green("status")} Print version and config summary
|
|
35
|
-
${pc.green("task")} Create and list task files (new, list)
|
|
36
|
-
${pc.green("migrate")} Export MeowKit to external coding-agent tools (cursor, codex, ...)
|
|
37
|
-
|
|
38
|
-
${pc.bold("Options:")}
|
|
39
|
-
--help, -h Show help
|
|
40
|
-
--version, -v Show version
|
|
41
|
-
|
|
42
|
-
${pc.bold("Init flags for post-init migration:")}
|
|
43
|
-
--migrate After unpack, prompt for providers to export to (interactive)
|
|
44
|
-
--migrate-to <csv|all> After unpack, export to listed providers (e.g. cursor,codex)
|
|
45
|
-
--migrate-global Use global install paths (~/.cursor/, etc.) instead of project-local
|
|
46
|
-
`);
|
|
47
|
-
}
|
|
48
|
-
async function printStatus() {
|
|
49
|
-
const channel = VERSION.includes("-beta") || VERSION.includes("-rc") ? "beta" : "stable";
|
|
50
|
-
console.log(`${pc.bold(pc.cyan("meowkit"))} ${pc.dim(`v${VERSION}`)} ${pc.dim(`(${channel})`)}`);
|
|
51
|
-
console.log();
|
|
52
|
-
const configPath = ".claude/meowkit.config.json";
|
|
53
|
-
try {
|
|
54
|
-
const content = fs.readFileSync(configPath, "utf-8");
|
|
55
|
-
const config = JSON.parse(content);
|
|
56
|
-
console.log(`${pc.bold("Config:")} ${configPath}`);
|
|
57
|
-
for (const [key, value] of Object.entries(config)) {
|
|
58
|
-
console.log(` ${pc.dim(key)}: ${String(value)}`);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
console.log(`${pc.dim("No .claude/meowkit.config.json found.")}`);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
async function main() {
|
|
66
|
-
const args = minimist(process.argv.slice(2), {
|
|
67
|
-
boolean: [
|
|
68
|
-
"help",
|
|
69
|
-
"version",
|
|
70
|
-
"check",
|
|
71
|
-
"beta",
|
|
72
|
-
"list",
|
|
73
|
-
"monthly",
|
|
74
|
-
"clear",
|
|
75
|
-
"show",
|
|
76
|
-
"stats",
|
|
77
|
-
"report",
|
|
78
|
-
"all",
|
|
79
|
-
"dry-run",
|
|
80
|
-
"force",
|
|
81
|
-
"system-deps",
|
|
82
|
-
"yes",
|
|
83
|
-
"global",
|
|
84
|
-
"skip-config",
|
|
85
|
-
"skip-rules",
|
|
86
|
-
"skip-hooks",
|
|
87
|
-
"install",
|
|
88
|
-
"reconcile",
|
|
89
|
-
"reinstall-empty-dirs",
|
|
90
|
-
"respect-deletions",
|
|
91
|
-
"prefer-agents-md",
|
|
92
|
-
"migrate",
|
|
93
|
-
"migrate-global",
|
|
94
|
-
],
|
|
95
|
-
string: ["only", "type", "priority", "status", "source", "source-version", "migrate-to"],
|
|
96
|
-
alias: { h: "help", v: "version", y: "yes" },
|
|
97
|
-
});
|
|
98
|
-
if (args.version) {
|
|
99
|
-
console.log(VERSION);
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
const command = args._[0];
|
|
103
|
-
if (args.help && !command) {
|
|
104
|
-
printHelp();
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
switch (command) {
|
|
108
|
-
case "init":
|
|
109
|
-
await init({
|
|
110
|
-
dryRun: args["dry-run"],
|
|
111
|
-
force: args.force,
|
|
112
|
-
beta: args.beta,
|
|
113
|
-
migrate: args.migrate,
|
|
114
|
-
migrateTo: args["migrate-to"],
|
|
115
|
-
migrateGlobal: args["migrate-global"],
|
|
116
|
-
});
|
|
117
|
-
break;
|
|
118
|
-
case "upgrade":
|
|
119
|
-
await upgrade({
|
|
120
|
-
check: args.check,
|
|
121
|
-
beta: args.beta,
|
|
122
|
-
list: args.list,
|
|
123
|
-
});
|
|
124
|
-
break;
|
|
125
|
-
case "validate":
|
|
126
|
-
await validate();
|
|
127
|
-
break;
|
|
128
|
-
case "budget":
|
|
129
|
-
await budget({ monthly: args.monthly });
|
|
130
|
-
break;
|
|
131
|
-
case "memory":
|
|
132
|
-
await memory({
|
|
133
|
-
clear: args.clear,
|
|
134
|
-
show: args.show,
|
|
135
|
-
stats: args.stats,
|
|
136
|
-
});
|
|
137
|
-
break;
|
|
138
|
-
case "setup":
|
|
139
|
-
await setup({ only: args.only, systemDeps: args["system-deps"] });
|
|
140
|
-
break;
|
|
141
|
-
case "doctor":
|
|
142
|
-
await doctor({ report: args.report });
|
|
143
|
-
break;
|
|
144
|
-
case "status":
|
|
145
|
-
await printStatus();
|
|
146
|
-
break;
|
|
147
|
-
case "task": {
|
|
148
|
-
const subcommand = args._[1];
|
|
149
|
-
// positional description: everything after the subcommand that isn't a flag
|
|
150
|
-
const description = args._.slice(2).join(" ");
|
|
151
|
-
task({
|
|
152
|
-
subcommand,
|
|
153
|
-
type: args.type,
|
|
154
|
-
priority: args.priority,
|
|
155
|
-
all: args.all,
|
|
156
|
-
status: args.status,
|
|
157
|
-
description: description || undefined,
|
|
158
|
-
});
|
|
159
|
-
break;
|
|
160
|
-
}
|
|
161
|
-
case "migrate": {
|
|
162
|
-
const exitCode = await migrate({
|
|
163
|
-
_: args._.map(String),
|
|
164
|
-
all: args.all,
|
|
165
|
-
global: args.global,
|
|
166
|
-
yes: args.yes,
|
|
167
|
-
"dry-run": args["dry-run"],
|
|
168
|
-
force: args.force,
|
|
169
|
-
source: args.source,
|
|
170
|
-
only: args.only,
|
|
171
|
-
"skip-config": args["skip-config"],
|
|
172
|
-
"skip-rules": args["skip-rules"],
|
|
173
|
-
"skip-hooks": args["skip-hooks"],
|
|
174
|
-
install: args.install,
|
|
175
|
-
reconcile: args.reconcile,
|
|
176
|
-
"reinstall-empty-dirs": args["reinstall-empty-dirs"],
|
|
177
|
-
"respect-deletions": args["respect-deletions"],
|
|
178
|
-
"prefer-agents-md": args["prefer-agents-md"],
|
|
179
|
-
"source-version": args["source-version"],
|
|
180
|
-
});
|
|
181
|
-
if (exitCode !== 0)
|
|
182
|
-
process.exit(exitCode);
|
|
183
|
-
break;
|
|
184
|
-
}
|
|
185
|
-
default:
|
|
186
|
-
if (command) {
|
|
187
|
-
console.error(pc.red(`Unknown command: ${command}`));
|
|
188
|
-
console.log();
|
|
189
|
-
}
|
|
190
|
-
printHelp();
|
|
191
|
-
break;
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
main().catch((error) => {
|
|
195
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
196
|
-
console.error(pc.red(`Fatal: ${message}`));
|
|
197
|
-
process.exit(1);
|
|
198
|
-
});
|
|
199
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* system-deps-registry.ts
|
|
3
|
-
*
|
|
4
|
-
* Single source of truth for installable system dependencies.
|
|
5
|
-
*
|
|
6
|
-
* WHY THIS FILE EXISTS (Q4 / locked decision #2):
|
|
7
|
-
* The mewkit CLI used to hardcode ffmpeg + imagemagick directly in setup.ts and
|
|
8
|
-
* doctor.ts. This refactor extracts them into a typed registry so:
|
|
9
|
-
* 1. Skills can declare opt-in system deps via SKILL.md metadata (schema-driven).
|
|
10
|
-
* 2. The CLI iterates the registry instead of hardcoded if/else branches.
|
|
11
|
-
* 3. New deps (e.g. playwright-chromium) are registered here — not scattered.
|
|
12
|
-
*
|
|
13
|
-
* PARSE CONTRACT (optional_system_deps HTML comment):
|
|
14
|
-
* Claude Code's native frontmatter schema does NOT support custom fields like
|
|
15
|
-
* optional_system_deps — they are silently dropped. Skills instead declare deps in
|
|
16
|
-
* a MEOWKIT METADATA HTML comment block inside SKILL.md:
|
|
17
|
-
*
|
|
18
|
-
* <!--
|
|
19
|
-
* MEOWKIT METADATA ...:
|
|
20
|
-
* optional_system_deps: [playwright-chromium]
|
|
21
|
-
* -->
|
|
22
|
-
*
|
|
23
|
-
* parseOptionalSystemDepsFromSkillMd() finds this comment and extracts the list.
|
|
24
|
-
* validateSkillDeclaredKeys() then checks each key against SYSTEM_DEPS — unknown
|
|
25
|
-
* keys are rejected so no skill can request arbitrary package installs.
|
|
26
|
-
*
|
|
27
|
-
* Playwright version: 1.58.0 (pinned from PyPI on 2026-04-09 via WebFetch).
|
|
28
|
-
*/
|
|
29
|
-
export interface DoctorContext {
|
|
30
|
-
/** Absolute path to the project root (contains .claude/) */
|
|
31
|
-
projectRoot: string;
|
|
32
|
-
}
|
|
33
|
-
export interface DoctorResult {
|
|
34
|
-
status: "OK" | "MISSING_PACKAGE" | "MISSING_BINARY" | "ERROR";
|
|
35
|
-
message?: string;
|
|
36
|
-
}
|
|
37
|
-
export interface SystemDepEntry {
|
|
38
|
-
/** Registry key — referenced in SKILL.md optional_system_deps */
|
|
39
|
-
key: string;
|
|
40
|
-
/** Human-readable name shown in prompts */
|
|
41
|
-
name: string;
|
|
42
|
-
/**
|
|
43
|
-
* Shell command whose exit code 0 means the dep is present.
|
|
44
|
-
* For PATH-based deps with a single binary (e.g. ffmpeg), this is the canonical probe.
|
|
45
|
-
* When the dep may ship under multiple binary names (e.g. ImageMagick 6 uses "convert",
|
|
46
|
-
* ImageMagick 7+ uses "magick"), use detectCommands instead.
|
|
47
|
-
*/
|
|
48
|
-
detectCommand: string;
|
|
49
|
-
/**
|
|
50
|
-
* Optional fallback probes for deps that ship under multiple binary names.
|
|
51
|
-
* If ANY entry exits 0, the dep is considered present.
|
|
52
|
-
* When set, takes precedence over detectCommand for presence checks.
|
|
53
|
-
* Example: ImageMagick 6 ships "convert", IM 7+ ships "magick" (no "convert" shim).
|
|
54
|
-
*/
|
|
55
|
-
detectCommands?: string[];
|
|
56
|
-
/** Per-OS ordered list of install commands */
|
|
57
|
-
installCommands: Partial<Record<NodeJS.Platform, string[]>>;
|
|
58
|
-
/** Link shown to users when auto-install is unavailable */
|
|
59
|
-
manualUrl: string;
|
|
60
|
-
/** Approximate download size in bytes — shown as ~NMB in prompts */
|
|
61
|
-
sizeBytes: number;
|
|
62
|
-
/** Optional dedicated doctor check (overrides generic detectCommand probe) */
|
|
63
|
-
doctorCheck?: (ctx: DoctorContext) => Promise<DoctorResult>;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* All registered system dependencies.
|
|
67
|
-
* Insertion order = display order in prompts (ffmpeg, imagemagick, playwright-chromium).
|
|
68
|
-
*/
|
|
69
|
-
export declare const SYSTEM_DEPS: Record<string, SystemDepEntry>;
|
|
70
|
-
/** Return all registered entries in insertion order */
|
|
71
|
-
export declare function listDeps(): SystemDepEntry[];
|
|
72
|
-
/**
|
|
73
|
-
* Check whether a PATH-based dep's binary (or any of its aliases) is present.
|
|
74
|
-
* Uses detectCommands when set (multi-probe); falls back to single detectCommand probe.
|
|
75
|
-
*
|
|
76
|
-
* NOT suitable for venv-based deps (playwright-chromium) — callers must handle
|
|
77
|
-
* those separately (detectCommand includes ".venv").
|
|
78
|
-
*/
|
|
79
|
-
export declare function isDepCommandPresent(dep: SystemDepEntry, commandAvailableFn: (cmd: string) => boolean): boolean;
|
|
80
|
-
/** Look up a single entry by key */
|
|
81
|
-
export declare function getDep(key: string): SystemDepEntry | undefined;
|
|
82
|
-
/**
|
|
83
|
-
* Validate keys declared in a skill's optional_system_deps against the registry.
|
|
84
|
-
* Unknown keys are rejected to prevent skills from requesting arbitrary installs.
|
|
85
|
-
*
|
|
86
|
-
* @param declared Keys parsed from SKILL.md optional_system_deps comment
|
|
87
|
-
* @param skillName Used in warning messages for traceability
|
|
88
|
-
*/
|
|
89
|
-
export declare function validateSkillDeclaredKeys(declared: string[], skillName: string): {
|
|
90
|
-
valid: string[];
|
|
91
|
-
invalid: string[];
|
|
92
|
-
};
|
|
93
|
-
/**
|
|
94
|
-
* Parse optional_system_deps from a SKILL.md HTML comment block.
|
|
95
|
-
*
|
|
96
|
-
* PARSE CONTRACT:
|
|
97
|
-
* The parser looks for a comment starting with "MEOWKIT METADATA" and extracts
|
|
98
|
-
* the "optional_system_deps:" line from it. Handles both single-line and
|
|
99
|
-
* multi-line YAML-ish list formats:
|
|
100
|
-
*
|
|
101
|
-
* optional_system_deps: [playwright-chromium]
|
|
102
|
-
* optional_system_deps: [playwright-chromium, ffmpeg]
|
|
103
|
-
*
|
|
104
|
-
* Multi-line YAML block format (not currently used but handled):
|
|
105
|
-
* optional_system_deps:
|
|
106
|
-
* - playwright-chromium
|
|
107
|
-
*
|
|
108
|
-
* Returns an empty array if the comment or field is absent.
|
|
109
|
-
*
|
|
110
|
-
* WHY NOT NATIVE FRONTMATTER (Q4 decision):
|
|
111
|
-
* Claude Code's frontmatter schema only supports a fixed set of native fields.
|
|
112
|
-
* Custom fields like optional_system_deps are silently dropped. The HTML comment
|
|
113
|
-
* approach is the agreed MeowKit convention for skill metadata that the CLI needs
|
|
114
|
-
* but Claude Code should ignore.
|
|
115
|
-
*/
|
|
116
|
-
export declare function parseOptionalSystemDepsFromSkillMd(skillMdContent: string): string[];
|
|
117
|
-
//# sourceMappingURL=system-deps-registry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"system-deps-registry.d.ts","sourceRoot":"","sources":["../../src/lib/system-deps-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AASH,MAAM,WAAW,aAAa;IAC7B,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,IAAI,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,OAAO,CAAC;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC9B,iEAAiE;IACjE,GAAG,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,8CAA8C;IAC9C,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5D,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;CAC5D;AAuDD;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CA2DtD,CAAC;AAMF,uDAAuD;AACvD,wBAAgB,QAAQ,IAAI,cAAc,EAAE,CAE3C;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAG9G;AAED,oCAAoC;AACpC,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAE9D;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACxC,QAAQ,EAAE,MAAM,EAAE,EAClB,SAAS,EAAE,MAAM,GACf;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAiBxC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,kCAAkC,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CA+BnF"}
|