@skillit/cli 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/refine-source.d.ts +26 -5
- package/dist/refine-source.d.ts.map +1 -1
- package/dist/refine-source.js +83 -22
- package/dist/refine-source.js.map +1 -1
- package/package.json +3 -3
package/dist/refine-source.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type DraftedFix, type ExtractedSkill, type RefineSource, type TargetLocation } from '@skillit/core';
|
|
2
2
|
import { Command } from 'commander';
|
|
3
3
|
export interface CliRefineSourceOptions {
|
|
4
4
|
/** Commander program to introspect. */
|
|
@@ -17,14 +17,35 @@ export interface CliRefineSourceOptions {
|
|
|
17
17
|
*/
|
|
18
18
|
export declare class CliRefineSource implements RefineSource {
|
|
19
19
|
private readonly opts;
|
|
20
|
+
/** Cached metadata loaded during {@link extract} (always called first in the audit/refine loop). */
|
|
21
|
+
private cachedMetadata;
|
|
20
22
|
constructor(opts: CliRefineSourceOptions);
|
|
21
|
-
/**
|
|
22
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Candidate option-interface names for a command, in priority order.
|
|
25
|
+
*
|
|
26
|
+
* The documented convention is `<Command>Options` (e.g. `add-remote` →
|
|
27
|
+
* `AddRemoteOptions`, `db:migrate` → `DbMigrateOptions`), but real consumers —
|
|
28
|
+
* including skillit's own CLI — commonly name these `<Command>Opts` or
|
|
29
|
+
* `<Command>CommandOpts` (e.g. `init` → `InitOpts`, `refine` →
|
|
30
|
+
* `RefineCommandOpts`). We probe all three and use the first that a source
|
|
31
|
+
* file actually declares, so a non-conventional consumer still gets matched
|
|
32
|
+
* instead of silently skipped (or colliding with an unrelated `XOptions`).
|
|
33
|
+
*/
|
|
34
|
+
private interfaceNameCandidates;
|
|
23
35
|
extract(): Promise<ExtractedSkill>;
|
|
24
36
|
guidance(): string;
|
|
25
|
-
|
|
37
|
+
resolveTargetLocation(target: {
|
|
38
|
+
name: string;
|
|
39
|
+
kind: string;
|
|
40
|
+
file?: string;
|
|
41
|
+
}): Promise<TargetLocation | undefined>;
|
|
26
42
|
applyFixes(fixes: readonly DraftedFix[]): Promise<void>;
|
|
27
|
-
/**
|
|
43
|
+
/**
|
|
44
|
+
* Reads tags for the first candidate interface that a globbed source file
|
|
45
|
+
* declares with at least one tag. Candidates are tried in priority order so
|
|
46
|
+
* the documented `<Command>Options` name wins over the `Opts`/`CommandOpts`
|
|
47
|
+
* fallbacks when more than one is present.
|
|
48
|
+
*/
|
|
28
49
|
private readTagsAcross;
|
|
29
50
|
private readSources;
|
|
30
51
|
private findInterfaceFile;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refine-source.d.ts","sourceRoot":"","sources":["../src/refine-source.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"refine-source.d.ts","sourceRoot":"","sources":["../src/refine-source.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,UAAU,EAEf,KAAK,cAAc,EAEnB,KAAK,YAAY,EAEjB,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,MAAM,WAAW,sBAAsB;IACrC,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;GAMG;AACH,qBAAa,eAAgB,YAAW,YAAY;IAItC,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,oGAAoG;IACpG,OAAO,CAAC,cAAc,CAAuB;IAE7C,YAA6B,IAAI,EAAE,sBAAsB,EAAI;IAE7D;;;;;;;;;;OAUG;IACH,OAAO,CAAC,uBAAuB;IASzB,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC,CAyEvC;IAED,QAAQ,IAAI,MAAM,CAKjB;IAEK,qBAAqB,CAAC,MAAM,EAAE;QAClC,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAQtC;IAEK,UAAU,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA8B5D;IAED;;;;;OAKG;IACH,OAAO,CAAC,cAAc;YAmBR,WAAW;IAUzB,OAAO,CAAC,iBAAiB;CAQ1B"}
|
package/dist/refine-source.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { readFileSync } from 'node:fs';
|
|
2
2
|
import { glob, readFile, writeFile } from 'node:fs/promises';
|
|
3
3
|
import { fileURLToPath } from 'node:url';
|
|
4
|
-
import { upsertJsDocTag } from '@skillit/core';
|
|
4
|
+
import { findNearestPackageDir, readPackageMetadata, upsertJsDocTag } from '@skillit/core';
|
|
5
5
|
import { extractCliSkill } from './extract.js';
|
|
6
6
|
import { introspectCommander } from './introspect-commander.js';
|
|
7
7
|
import { readOptionsTags } from './options-jsdoc.js';
|
|
@@ -15,25 +15,41 @@ const EXCLUDED_DIRS = new Set(['node_modules', 'dist', 'build', '.git', 'coverag
|
|
|
15
15
|
*/
|
|
16
16
|
export class CliRefineSource {
|
|
17
17
|
opts;
|
|
18
|
+
/** Cached metadata loaded during {@link extract} (always called first in the audit/refine loop). */
|
|
19
|
+
cachedMetadata = {};
|
|
18
20
|
constructor(opts) {
|
|
19
21
|
this.opts = opts;
|
|
20
22
|
}
|
|
21
|
-
/**
|
|
22
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Candidate option-interface names for a command, in priority order.
|
|
25
|
+
*
|
|
26
|
+
* The documented convention is `<Command>Options` (e.g. `add-remote` →
|
|
27
|
+
* `AddRemoteOptions`, `db:migrate` → `DbMigrateOptions`), but real consumers —
|
|
28
|
+
* including skillit's own CLI — commonly name these `<Command>Opts` or
|
|
29
|
+
* `<Command>CommandOpts` (e.g. `init` → `InitOpts`, `refine` →
|
|
30
|
+
* `RefineCommandOpts`). We probe all three and use the first that a source
|
|
31
|
+
* file actually declares, so a non-conventional consumer still gets matched
|
|
32
|
+
* instead of silently skipped (or colliding with an unrelated `XOptions`).
|
|
33
|
+
*/
|
|
34
|
+
interfaceNameCandidates(command) {
|
|
23
35
|
const pascal = command
|
|
24
36
|
.split(/[-_:.\s]+/)
|
|
25
37
|
.filter((part) => part.length > 0)
|
|
26
38
|
.map((part) => part.charAt(0).toUpperCase() + part.slice(1))
|
|
27
39
|
.join('');
|
|
28
|
-
return `${pascal}Options
|
|
40
|
+
return [`${pascal}Options`, `${pascal}Opts`, `${pascal}CommandOpts`];
|
|
29
41
|
}
|
|
30
42
|
async extract() {
|
|
31
43
|
const surfaces = introspectCommander(this.opts.program);
|
|
32
44
|
const sources = await this.readSources();
|
|
45
|
+
// Load package metadata (package.json + README) from cwd; its fields are
|
|
46
|
+
// written onto the IR below so the audit reads them directly from the skill.
|
|
47
|
+
const pkgDir = await findNearestPackageDir(this.opts.cwd);
|
|
48
|
+
this.cachedMetadata = pkgDir ? await readPackageMetadata(pkgDir) : {};
|
|
33
49
|
const configSurfaces = [];
|
|
34
50
|
for (const surface of surfaces) {
|
|
35
|
-
const
|
|
36
|
-
const tags = this.readTagsAcross(
|
|
51
|
+
const candidates = this.interfaceNameCandidates(surface.name);
|
|
52
|
+
const tags = this.readTagsAcross(candidates, sources);
|
|
37
53
|
// Key the correlation-input surface by the COMMAND name (not the
|
|
38
54
|
// interface name) so `extractCliSkill`'s `<command>`/`<command>options`
|
|
39
55
|
// lookup matches colon-namespaced commands (e.g. `db:migrate`). Mark it
|
|
@@ -72,22 +88,60 @@ export class CliRefineSource {
|
|
|
72
88
|
configSurfaces.push(configSurface);
|
|
73
89
|
}
|
|
74
90
|
}
|
|
75
|
-
|
|
91
|
+
const meta = this.cachedMetadata;
|
|
92
|
+
const skill = await extractCliSkill({
|
|
93
|
+
program: this.opts.program,
|
|
94
|
+
configSurfaces,
|
|
95
|
+
metadata: {
|
|
96
|
+
...(meta.packageName !== undefined ? { name: meta.packageName } : {}),
|
|
97
|
+
...(meta.packageDescription !== undefined ? { description: meta.packageDescription } : {}),
|
|
98
|
+
...(meta.keywords !== undefined ? { keywords: meta.keywords } : {}),
|
|
99
|
+
...(meta.repository !== undefined ? { repository: meta.repository } : {})
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
// Write the audit-read project metadata onto the IR (the audit reads it
|
|
103
|
+
// directly from the skill — no separate context channel). extractCliSkill
|
|
104
|
+
// maps `description` onto the skill body but not these audit fields.
|
|
105
|
+
if (meta.packageDescription !== undefined)
|
|
106
|
+
skill.packageDescription = meta.packageDescription;
|
|
107
|
+
if (meta.keywords !== undefined)
|
|
108
|
+
skill.keywords = meta.keywords;
|
|
109
|
+
if (meta.repository !== undefined)
|
|
110
|
+
skill.repository = meta.repository;
|
|
111
|
+
if (meta.readme !== undefined)
|
|
112
|
+
skill.readme = meta.readme;
|
|
113
|
+
return skill;
|
|
76
114
|
}
|
|
77
115
|
guidance() {
|
|
78
116
|
const skillPath = fileURLToPath(new URL('../skills/skillit-cli-docs/SKILL.md', import.meta.url));
|
|
79
117
|
return readFileSync(skillPath, 'utf8');
|
|
80
118
|
}
|
|
81
|
-
|
|
82
|
-
|
|
119
|
+
async resolveTargetLocation(target) {
|
|
120
|
+
const sources = await this.readSources();
|
|
121
|
+
const candidates = this.interfaceNameCandidates(target.name);
|
|
122
|
+
for (const iface of candidates) {
|
|
123
|
+
const file = this.findInterfaceFile(iface, sources);
|
|
124
|
+
if (file)
|
|
125
|
+
return { file, declName: iface };
|
|
126
|
+
}
|
|
127
|
+
return undefined;
|
|
83
128
|
}
|
|
84
129
|
async applyFixes(fixes) {
|
|
85
130
|
const sources = await this.readSources();
|
|
86
131
|
for (const fix of fixes) {
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
132
|
+
const candidates = this.interfaceNameCandidates(fix.toolName);
|
|
133
|
+
let iface;
|
|
134
|
+
let file;
|
|
135
|
+
for (const candidate of candidates) {
|
|
136
|
+
const found = this.findInterfaceFile(candidate, sources);
|
|
137
|
+
if (found) {
|
|
138
|
+
iface = candidate;
|
|
139
|
+
file = found;
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
if (file === undefined || iface === undefined) {
|
|
144
|
+
process.stderr.write(`[skillit] no options interface (${candidates.join(', ')}) for command '${fix.toolName}'; skipped ${fix.tag}\n`);
|
|
91
145
|
continue;
|
|
92
146
|
}
|
|
93
147
|
const src = sources.get(file);
|
|
@@ -100,15 +154,22 @@ export class CliRefineSource {
|
|
|
100
154
|
}
|
|
101
155
|
}
|
|
102
156
|
}
|
|
103
|
-
/**
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
157
|
+
/**
|
|
158
|
+
* Reads tags for the first candidate interface that a globbed source file
|
|
159
|
+
* declares with at least one tag. Candidates are tried in priority order so
|
|
160
|
+
* the documented `<Command>Options` name wins over the `Opts`/`CommandOpts`
|
|
161
|
+
* fallbacks when more than one is present.
|
|
162
|
+
*/
|
|
163
|
+
readTagsAcross(candidates, sources) {
|
|
164
|
+
for (const iface of candidates) {
|
|
165
|
+
for (const src of sources.values()) {
|
|
166
|
+
if (!fileDeclaresInterface(src, iface)) {
|
|
167
|
+
continue;
|
|
168
|
+
}
|
|
169
|
+
const tags = readOptionsTags(iface, src);
|
|
170
|
+
if (Object.keys(tags).length > 0) {
|
|
171
|
+
return tags;
|
|
172
|
+
}
|
|
112
173
|
}
|
|
113
174
|
}
|
|
114
175
|
return {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refine-source.js","sourceRoot":"","sources":["../src/refine-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,cAAc,
|
|
1
|
+
{"version":3,"file":"refine-source.js","sourceRoot":"","sources":["../src/refine-source.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skillit/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Extract CLI command structure from commander/yargs for AI agent skill generation",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent-skills",
|
|
@@ -41,10 +41,10 @@
|
|
|
41
41
|
}
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@skillit/core": "
|
|
44
|
+
"@skillit/core": "2.0.0"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"commander": "^
|
|
47
|
+
"commander": "^15.0.0"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
50
|
"commander": ">=12.0.0"
|