agentic-skill-mill 1.0.3
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/README.md +135 -0
- package/dist/cache/cache-manager.d.ts +27 -0
- package/dist/cache/cache-manager.d.ts.map +1 -0
- package/dist/cache/cache-manager.js +139 -0
- package/dist/cache/cache-manager.js.map +1 -0
- package/dist/cli/commands/check-exports.d.ts +6 -0
- package/dist/cli/commands/check-exports.d.ts.map +1 -0
- package/dist/cli/commands/check-exports.js +7 -0
- package/dist/cli/commands/check-exports.js.map +1 -0
- package/dist/cli/commands/list-project.d.ts +6 -0
- package/dist/cli/commands/list-project.d.ts.map +1 -0
- package/dist/cli/commands/list-project.js +7 -0
- package/dist/cli/commands/list-project.js.map +1 -0
- package/dist/cli/commands/scaffold.d.ts +6 -0
- package/dist/cli/commands/scaffold.d.ts.map +1 -0
- package/dist/cli/commands/scaffold.js +11 -0
- package/dist/cli/commands/scaffold.js.map +1 -0
- package/dist/cli/commands/validate-manifest.d.ts +6 -0
- package/dist/cli/commands/validate-manifest.d.ts.map +1 -0
- package/dist/cli/commands/validate-manifest.js +7 -0
- package/dist/cli/commands/validate-manifest.js.map +1 -0
- package/dist/cli/commands/validate-skill.d.ts +6 -0
- package/dist/cli/commands/validate-skill.d.ts.map +1 -0
- package/dist/cli/commands/validate-skill.js +8 -0
- package/dist/cli/commands/validate-skill.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +268 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/output-formatter.d.ts +6 -0
- package/dist/cli/output-formatter.d.ts.map +1 -0
- package/dist/cli/output-formatter.js +19 -0
- package/dist/cli/output-formatter.js.map +1 -0
- package/dist/core/check-exports.d.ts +21 -0
- package/dist/core/check-exports.d.ts.map +1 -0
- package/dist/core/check-exports.js +67 -0
- package/dist/core/check-exports.js.map +1 -0
- package/dist/core/list-project.d.ts +31 -0
- package/dist/core/list-project.d.ts.map +1 -0
- package/dist/core/list-project.js +118 -0
- package/dist/core/list-project.js.map +1 -0
- package/dist/core/scaffold.d.ts +24 -0
- package/dist/core/scaffold.d.ts.map +1 -0
- package/dist/core/scaffold.js +168 -0
- package/dist/core/scaffold.js.map +1 -0
- package/dist/core/validate-manifest.d.ts +21 -0
- package/dist/core/validate-manifest.d.ts.map +1 -0
- package/dist/core/validate-manifest.js +151 -0
- package/dist/core/validate-manifest.js.map +1 -0
- package/dist/core/validate-skill.d.ts +24 -0
- package/dist/core/validate-skill.d.ts.map +1 -0
- package/dist/core/validate-skill.js +149 -0
- package/dist/core/validate-skill.js.map +1 -0
- package/dist/errors/types.d.ts +19 -0
- package/dist/errors/types.d.ts.map +1 -0
- package/dist/errors/types.js +40 -0
- package/dist/errors/types.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/package.json +56 -0
- package/skill/build/compile.mjs +385 -0
- package/skill/build/manifest.json +29 -0
- package/skill/fragments/meta/architecture-overview.md +37 -0
- package/skill/fragments/meta/cli-command-pattern.md +83 -0
- package/skill/fragments/meta/core-module-pattern.md +38 -0
- package/skill/fragments/meta/fragment-composition.md +40 -0
- package/skill/fragments/meta/rename-workflow.md +51 -0
- package/skill/fragments/meta/research-to-code.md +44 -0
- package/skill/skills/agentic-skill-mill/agentic-skill-mill.md +133 -0
package/README.md
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# Agentic Skill Mill
|
|
2
|
+
|
|
3
|
+
Forge and refine agent skill projects. The skill teaches agents how to work with the skill-system-template architecture; the companion CLI (`skillmill`) provides structured commands for inspecting, inventorying, and forging project components.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install
|
|
9
|
+
npm run build
|
|
10
|
+
npm run compile
|
|
11
|
+
bash install.sh # auto-detect installed tools
|
|
12
|
+
bash install.sh --all # or install for all tools
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Architecture
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
Skills (what to do) CLI Companion (tools to do it with)
|
|
19
|
+
skill/skills/*.md src/cli/commands/*.ts
|
|
20
|
+
skill/fragments/*.md src/core/*.ts
|
|
21
|
+
| |
|
|
22
|
+
v v
|
|
23
|
+
compiled/ (7 IDE formats) dist/ (npm link -> global CLI)
|
|
24
|
+
| |
|
|
25
|
+
+---------> Agent <----------+
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
**Skills** are step-by-step runbooks that agents follow. They reference the CLI by name.
|
|
29
|
+
|
|
30
|
+
**The CLI** (`skillmill`) provides structured JSON commands that skills invoke. Every command has `--json` support.
|
|
31
|
+
|
|
32
|
+
**Fragments** are shared knowledge blocks included by multiple skills. Edit a fragment once, recompile, and every skill gets the update.
|
|
33
|
+
|
|
34
|
+
## CLI Commands
|
|
35
|
+
|
|
36
|
+
| Command | Description |
|
|
37
|
+
|---------|-------------|
|
|
38
|
+
| `skillmill inspect-manifest [path]` | Inspect a manifest.json for correctness |
|
|
39
|
+
| `skillmill inspect-skill <path>` | Inspect a skill source .md file |
|
|
40
|
+
| `skillmill inventory` | Take stock of all skills, fragments, and targets |
|
|
41
|
+
| `skillmill forge <kind> <name>` | Forge scaffolding (command, skill, fragment) |
|
|
42
|
+
| `skillmill audit-exports` | Audit that src/index.ts exports match core modules |
|
|
43
|
+
|
|
44
|
+
All commands support `--json` for structured agent consumption.
|
|
45
|
+
|
|
46
|
+
## Project Layout
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
skill/
|
|
50
|
+
build/
|
|
51
|
+
manifest.json # Declares skills, fragment deps, compilation targets
|
|
52
|
+
compile.mjs # Compiler: resolves includes, transforms frontmatter
|
|
53
|
+
fragments/
|
|
54
|
+
meta/ # Knowledge about the skill system itself
|
|
55
|
+
skills/
|
|
56
|
+
agentic-skill-mill/ # The skill source
|
|
57
|
+
|
|
58
|
+
src/
|
|
59
|
+
cli/
|
|
60
|
+
index.ts # CLI entry point (commander)
|
|
61
|
+
output-formatter.ts # JSON + human-readable formatting
|
|
62
|
+
commands/ # One file per command
|
|
63
|
+
core/ # Domain logic modules
|
|
64
|
+
cache/ # Two-tier cache (memory + disk)
|
|
65
|
+
errors/ # Typed error hierarchy
|
|
66
|
+
|
|
67
|
+
compiled/ # Machine-generated, one subdir per IDE target
|
|
68
|
+
contributions/ # Field observations from real runs
|
|
69
|
+
install.sh # One-command setup: build CLI + install skills
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## How to Add a Skill
|
|
73
|
+
|
|
74
|
+
1. Create the source file at `skill/skills/<name>/<name>.md` with YAML frontmatter
|
|
75
|
+
2. Register it in `skill/build/manifest.json`
|
|
76
|
+
3. Add the skill name to the `SKILLS` array in `install.sh`
|
|
77
|
+
4. Compile and validate: `npm run compile && npm run compile:validate`
|
|
78
|
+
|
|
79
|
+
## How to Add a Fragment
|
|
80
|
+
|
|
81
|
+
1. Create the fragment at `skill/fragments/<category>/<name>.md` (no frontmatter)
|
|
82
|
+
2. Include it in skills with `{{include:<category>/<name>.md}}`
|
|
83
|
+
3. Declare it in `manifest.json` under each skill's `fragments` array
|
|
84
|
+
|
|
85
|
+
## How to Add a CLI Command
|
|
86
|
+
|
|
87
|
+
1. Create the core module at `src/core/<module>.ts`
|
|
88
|
+
2. Create the command wrapper at `src/cli/commands/<name>.ts`
|
|
89
|
+
3. Register the command in `src/cli/index.ts`
|
|
90
|
+
4. Export the public API from `src/index.ts`
|
|
91
|
+
5. Rebuild: `npm run build`
|
|
92
|
+
|
|
93
|
+
Or use the forge command: `skillmill forge command <name> --write`
|
|
94
|
+
|
|
95
|
+
## Compilation Targets
|
|
96
|
+
|
|
97
|
+
| Target | Output path | Frontmatter |
|
|
98
|
+
|--------|------------|-------------|
|
|
99
|
+
| `claude` | `compiled/claude/<skill>/SKILL.md` | Pass-through + managed_by |
|
|
100
|
+
| `cursor-rules` | `compiled/cursor/rules/<skill>.mdc` | description + alwaysApply |
|
|
101
|
+
| `cursor-skills` | `compiled/cursor/skills/<skill>/SKILL.md` | Pass-through + managed_by |
|
|
102
|
+
| `windsurf-rules` | `compiled/windsurf/rules/<skill>.md` | trigger + description |
|
|
103
|
+
| `windsurf-skills` | `compiled/windsurf/skills/<skill>/SKILL.md` | Pass-through + managed_by |
|
|
104
|
+
| `opencode` | `compiled/opencode/<skill>.md` | mode + description + tools |
|
|
105
|
+
| `codex` | `compiled/codex/<skill>/SKILL.md` | Pass-through + managed_by |
|
|
106
|
+
|
|
107
|
+
## Testing
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
npm run test # Run all tests
|
|
111
|
+
npm run test:watch # Watch mode
|
|
112
|
+
npm run test:coverage # Coverage report
|
|
113
|
+
npm run lint # ESLint
|
|
114
|
+
npm run typecheck # tsc --noEmit
|
|
115
|
+
npm run compile:validate # Validate skill compilation
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Automated npm Releases (GitHub Actions)
|
|
119
|
+
|
|
120
|
+
This repo includes `.github/workflows/release.yml` to build, test, bump patch version, and publish to npm when changes land on `main` (or when manually triggered).
|
|
121
|
+
|
|
122
|
+
Required GitHub repository secrets:
|
|
123
|
+
|
|
124
|
+
- `AGENT_TOKEN`: personal access token with `repo` scope (used to push the version bump commit + tag)
|
|
125
|
+
- `NPM_TOKEN`: npm automation token for publishing to npmjs
|
|
126
|
+
|
|
127
|
+
Workflow behavior:
|
|
128
|
+
|
|
129
|
+
1. `npm ci`
|
|
130
|
+
2. `npm run build`
|
|
131
|
+
3. `npm run test`
|
|
132
|
+
4. `npm run compile:validate`
|
|
133
|
+
5. `npm version patch`
|
|
134
|
+
6. `git push --follow-tags`
|
|
135
|
+
7. `npm publish --access public`
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface CacheEntry<T> {
|
|
2
|
+
data: T;
|
|
3
|
+
timestamp: number;
|
|
4
|
+
ttl: number;
|
|
5
|
+
}
|
|
6
|
+
export interface CacheStats {
|
|
7
|
+
entries: number;
|
|
8
|
+
sizeBytes: number;
|
|
9
|
+
expired: number;
|
|
10
|
+
}
|
|
11
|
+
export interface CacheOptions {
|
|
12
|
+
ttl: number;
|
|
13
|
+
}
|
|
14
|
+
export declare class CacheManager {
|
|
15
|
+
private cacheDir;
|
|
16
|
+
private memoryCache;
|
|
17
|
+
constructor(cacheDir: string);
|
|
18
|
+
get<T>(key: string): Promise<T | null>;
|
|
19
|
+
set<T>(key: string, data: T, options: CacheOptions): Promise<void>;
|
|
20
|
+
clear(): Promise<void>;
|
|
21
|
+
clearPrefix(prefix: string): Promise<void>;
|
|
22
|
+
getStats(): Promise<CacheStats>;
|
|
23
|
+
private isExpired;
|
|
24
|
+
private writeToDisk;
|
|
25
|
+
private readFromDisk;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=cache-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-manager.d.ts","sourceRoot":"","sources":["../../src/cache/cache-manager.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC;IACR,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAmC;gBAE1C,QAAQ,EAAE,MAAM;IAKtB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IA0BtC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBlE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBtB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B1C,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC;IAsCrC,OAAO,CAAC,SAAS;YAKH,WAAW;YASX,YAAY;CAW3B"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import fs from 'fs/promises';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { CacheError } from '../errors/types.js';
|
|
4
|
+
export class CacheManager {
|
|
5
|
+
cacheDir;
|
|
6
|
+
memoryCache;
|
|
7
|
+
constructor(cacheDir) {
|
|
8
|
+
this.cacheDir = cacheDir;
|
|
9
|
+
this.memoryCache = new Map();
|
|
10
|
+
}
|
|
11
|
+
async get(key) {
|
|
12
|
+
try {
|
|
13
|
+
const memEntry = this.memoryCache.get(key);
|
|
14
|
+
if (memEntry) {
|
|
15
|
+
if (!this.isExpired(memEntry)) {
|
|
16
|
+
return memEntry.data;
|
|
17
|
+
}
|
|
18
|
+
this.memoryCache.delete(key);
|
|
19
|
+
}
|
|
20
|
+
const diskEntry = await this.readFromDisk(key);
|
|
21
|
+
if (diskEntry && !this.isExpired(diskEntry)) {
|
|
22
|
+
this.memoryCache.set(key, diskEntry);
|
|
23
|
+
return diskEntry.data;
|
|
24
|
+
}
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
throw new CacheError(`Failed to retrieve key: ${key}`, 'read', error instanceof Error ? error : undefined);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
async set(key, data, options) {
|
|
32
|
+
try {
|
|
33
|
+
const entry = {
|
|
34
|
+
data,
|
|
35
|
+
timestamp: Date.now(),
|
|
36
|
+
ttl: options.ttl,
|
|
37
|
+
};
|
|
38
|
+
this.memoryCache.set(key, entry);
|
|
39
|
+
await this.writeToDisk(key, entry);
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
throw new CacheError(`Failed to set key: ${key}`, 'write', error instanceof Error ? error : undefined);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
async clear() {
|
|
46
|
+
try {
|
|
47
|
+
this.memoryCache.clear();
|
|
48
|
+
const exists = await fs
|
|
49
|
+
.access(this.cacheDir)
|
|
50
|
+
.then(() => true)
|
|
51
|
+
.catch(() => false);
|
|
52
|
+
if (exists) {
|
|
53
|
+
const files = await fs.readdir(this.cacheDir);
|
|
54
|
+
for (const file of files) {
|
|
55
|
+
await fs.unlink(path.join(this.cacheDir, file));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
throw new CacheError('Failed to clear cache', 'clear', error instanceof Error ? error : undefined);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async clearPrefix(prefix) {
|
|
64
|
+
try {
|
|
65
|
+
for (const key of this.memoryCache.keys()) {
|
|
66
|
+
if (key.startsWith(prefix)) {
|
|
67
|
+
this.memoryCache.delete(key);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
const exists = await fs
|
|
71
|
+
.access(this.cacheDir)
|
|
72
|
+
.then(() => true)
|
|
73
|
+
.catch(() => false);
|
|
74
|
+
if (exists) {
|
|
75
|
+
const files = await fs.readdir(this.cacheDir);
|
|
76
|
+
for (const file of files) {
|
|
77
|
+
if (file.startsWith(prefix.replace(/:/g, '_'))) {
|
|
78
|
+
await fs.unlink(path.join(this.cacheDir, file));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
throw new CacheError(`Failed to clear prefix: ${prefix}`, 'clear', error instanceof Error ? error : undefined);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
async getStats() {
|
|
88
|
+
try {
|
|
89
|
+
let entries = 0;
|
|
90
|
+
let expired = 0;
|
|
91
|
+
let sizeBytes = 0;
|
|
92
|
+
for (const entry of this.memoryCache.values()) {
|
|
93
|
+
entries++;
|
|
94
|
+
sizeBytes += JSON.stringify(entry).length;
|
|
95
|
+
if (this.isExpired(entry)) {
|
|
96
|
+
expired++;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
const exists = await fs
|
|
100
|
+
.access(this.cacheDir)
|
|
101
|
+
.then(() => true)
|
|
102
|
+
.catch(() => false);
|
|
103
|
+
if (exists) {
|
|
104
|
+
const files = await fs.readdir(this.cacheDir);
|
|
105
|
+
for (const file of files) {
|
|
106
|
+
const filePath = path.join(this.cacheDir, file);
|
|
107
|
+
const stats = await fs.stat(filePath);
|
|
108
|
+
sizeBytes += stats.size;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return { entries, sizeBytes, expired };
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
throw new CacheError('Failed to get cache stats', 'read', error instanceof Error ? error : undefined);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
isExpired(entry) {
|
|
118
|
+
const ageSeconds = (Date.now() - entry.timestamp) / 1000;
|
|
119
|
+
return ageSeconds > entry.ttl;
|
|
120
|
+
}
|
|
121
|
+
async writeToDisk(key, entry) {
|
|
122
|
+
await fs.mkdir(this.cacheDir, { recursive: true });
|
|
123
|
+
const filename = key.replace(/[:/]/g, '_') + '.json';
|
|
124
|
+
const filePath = path.join(this.cacheDir, filename);
|
|
125
|
+
await fs.writeFile(filePath, JSON.stringify(entry, null, 2));
|
|
126
|
+
}
|
|
127
|
+
async readFromDisk(key) {
|
|
128
|
+
try {
|
|
129
|
+
const filename = key.replace(/[:/]/g, '_') + '.json';
|
|
130
|
+
const filePath = path.join(this.cacheDir, filename);
|
|
131
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
132
|
+
return JSON.parse(content);
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=cache-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-manager.js","sourceRoot":"","sources":["../../src/cache/cache-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAkBhD,MAAM,OAAO,YAAY;IACf,QAAQ,CAAS;IACjB,WAAW,CAAmC;IAEtD,YAAY,QAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,GAAG,CAAI,GAAW;QACtB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC9B,OAAO,QAAQ,CAAC,IAAS,CAAC;gBAC5B,CAAC;gBACD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAI,GAAG,CAAC,CAAC;YAClD,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBACrC,OAAO,SAAS,CAAC,IAAI,CAAC;YACxB,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,UAAU,CAClB,2BAA2B,GAAG,EAAE,EAChC,MAAM,EACN,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,IAAO,EAAE,OAAqB;QACtD,IAAI,CAAC;YACH,MAAM,KAAK,GAAkB;gBAC3B,IAAI;gBACJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,GAAG,EAAE,OAAO,CAAC,GAAG;aACjB,CAAC;YAEF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACjC,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,UAAU,CAClB,sBAAsB,GAAG,EAAE,EAC3B,OAAO,EACP,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC;YACH,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YAEzB,MAAM,MAAM,GAAG,MAAM,EAAE;iBACpB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;iBACrB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;iBAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YAEtB,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,UAAU,CAClB,uBAAuB,EACvB,OAAO,EACP,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAc;QAC9B,IAAI,CAAC;YACH,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC1C,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC3B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,EAAE;iBACpB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;iBACrB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;iBAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YAEtB,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;wBAC/C,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;oBAClD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,UAAU,CAClB,2BAA2B,MAAM,EAAE,EACnC,OAAO,EACP,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC;YACH,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,IAAI,SAAS,GAAG,CAAC,CAAC;YAElB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC9C,OAAO,EAAE,CAAC;gBACV,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;gBAC1C,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1B,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,EAAE;iBACpB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;iBACrB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;iBAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YAEtB,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAChD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACtC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC;gBAC1B,CAAC;YACH,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,UAAU,CAClB,2BAA2B,EAC3B,MAAM,EACN,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,KAA0B;QAC1C,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QACzD,OAAO,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,WAAW,CAAI,GAAW,EAAE,KAAoB;QAC5D,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEnD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEpD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IAEO,KAAK,CAAC,YAAY,CAAI,GAAW;QACvC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC;YACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAEpD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type CheckExportsOptions, type CheckExportsResult } from '../../core/check-exports.js';
|
|
2
|
+
export interface CheckExportsCommandOptions extends CheckExportsOptions {
|
|
3
|
+
json: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare function checkExportsCommand(options: CheckExportsCommandOptions): Promise<CheckExportsResult>;
|
|
6
|
+
//# sourceMappingURL=check-exports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-exports.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/check-exports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAE9G,MAAM,WAAW,0BAA2B,SAAQ,mBAAmB;IACrE,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,kBAAkB,CAAC,CAI7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-exports.js","sourceRoot":"","sources":["../../../src/cli/commands/check-exports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAqD,MAAM,6BAA6B,CAAC;AAM9G,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAmC;IAEnC,OAAO,YAAY,CAAC;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type ListProjectOptions, type ListProjectResult } from '../../core/list-project.js';
|
|
2
|
+
export interface ListProjectCommandOptions extends ListProjectOptions {
|
|
3
|
+
json: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare function listProjectCommand(options: ListProjectCommandOptions): Promise<ListProjectResult>;
|
|
6
|
+
//# sourceMappingURL=list-project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-project.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/list-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE1G,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACnE,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,iBAAiB,CAAC,CAI5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-project.js","sourceRoot":"","sources":["../../../src/cli/commands/list-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAmD,MAAM,4BAA4B,CAAC;AAM1G,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAkC;IAElC,OAAO,WAAW,CAAC;QACjB,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type ScaffoldOptions, type ScaffoldResult } from '../../core/scaffold.js';
|
|
2
|
+
export interface ScaffoldCommandOptions extends ScaffoldOptions {
|
|
3
|
+
json: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare function scaffoldCommand(options: ScaffoldCommandOptions): Promise<ScaffoldResult>;
|
|
6
|
+
//# sourceMappingURL=scaffold.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/scaffold.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7F,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC7D,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,cAAc,CAAC,CAQzB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { scaffold } from '../../core/scaffold.js';
|
|
2
|
+
export async function scaffoldCommand(options) {
|
|
3
|
+
return scaffold({
|
|
4
|
+
kind: options.kind,
|
|
5
|
+
name: options.name,
|
|
6
|
+
cwd: options.cwd,
|
|
7
|
+
category: options.category,
|
|
8
|
+
description: options.description,
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=scaffold.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../src/cli/commands/scaffold.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA6C,MAAM,wBAAwB,CAAC;AAM7F,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAA+B;IAE/B,OAAO,QAAQ,CAAC;QACd,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type ValidateManifestOptions, type ValidateManifestResult } from '../../core/validate-manifest.js';
|
|
2
|
+
export interface ValidateManifestCommandOptions extends ValidateManifestOptions {
|
|
3
|
+
json: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare function validateManifestCommand(options: ValidateManifestCommandOptions): Promise<ValidateManifestResult>;
|
|
6
|
+
//# sourceMappingURL=validate-manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-manifest.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/validate-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,uBAAuB,EAAE,KAAK,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAE9H,MAAM,WAAW,8BAA+B,SAAQ,uBAAuB;IAC7E,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,sBAAsB,CAAC,CAIjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-manifest.js","sourceRoot":"","sources":["../../../src/cli/commands/validate-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA6D,MAAM,iCAAiC,CAAC;AAM9H,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAuC;IAEvC,OAAO,gBAAgB,CAAC;QACtB,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type ValidateSkillOptions, type ValidateSkillResult } from '../../core/validate-skill.js';
|
|
2
|
+
export interface ValidateSkillCommandOptions extends ValidateSkillOptions {
|
|
3
|
+
json: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare function validateSkillCommand(options: ValidateSkillCommandOptions): Promise<ValidateSkillResult>;
|
|
6
|
+
//# sourceMappingURL=validate-skill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-skill.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/validate-skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAElH,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;IACvE,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,mBAAmB,CAAC,CAK9B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { validateSkill } from '../../core/validate-skill.js';
|
|
2
|
+
export async function validateSkillCommand(options) {
|
|
3
|
+
return validateSkill({
|
|
4
|
+
skillPath: options.skillPath,
|
|
5
|
+
fragmentsDir: options.fragmentsDir,
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=validate-skill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-skill.js","sourceRoot":"","sources":["../../../src/cli/commands/validate-skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAuD,MAAM,8BAA8B,CAAC;AAMlH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAoC;IAEpC,OAAO,aAAa,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
|