@skillit/cli 0.5.0 → 1.0.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/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/npx-mode.d.ts +19 -0
- package/dist/npx-mode.d.ts.map +1 -0
- package/dist/npx-mode.js +37 -0
- package/dist/npx-mode.js.map +1 -0
- package/dist/program-loader.d.ts.map +1 -1
- package/dist/program-loader.js +17 -3
- package/dist/program-loader.js.map +1 -1
- package/dist/refine-source.d.ts +6 -0
- package/dist/refine-source.d.ts.map +1 -1
- package/dist/refine-source.js +2 -0
- package/dist/refine-source.js.map +1 -1
- package/package.json +2 -2
- package/skills/skillit-cli-docs/SKILL.md +23 -1
package/dist/index.d.ts
CHANGED
|
@@ -28,4 +28,6 @@ export type { LoadProgramOptions } from './program-loader.js';
|
|
|
28
28
|
export { readOptionsTags } from './options-jsdoc.js';
|
|
29
29
|
export { CliRefineSource } from './refine-source.js';
|
|
30
30
|
export type { CliRefineSourceOptions } from './refine-source.js';
|
|
31
|
+
export { applyNpxMode, resolveInvocationMode } from './npx-mode.js';
|
|
32
|
+
export type { CliInvocationMode } from './npx-mode.js';
|
|
31
33
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC9D,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC1E,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC9D,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC1E,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACpE,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -24,4 +24,5 @@ export { extractCliSkill, writeCliSkill } from './extract.js';
|
|
|
24
24
|
export { loadProgram } from './program-loader.js';
|
|
25
25
|
export { readOptionsTags } from './options-jsdoc.js';
|
|
26
26
|
export { CliRefineSource } from './refine-source.js';
|
|
27
|
+
export { applyNpxMode, resolveInvocationMode } from './npx-mode.js';
|
|
27
28
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG9D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG9D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ExtractedSkill, PackageMetadata } from '@skillit/core';
|
|
2
|
+
export type CliInvocationMode = 'npx' | 'global';
|
|
3
|
+
/**
|
|
4
|
+
* Determine the invocation mode for a CLI skill.
|
|
5
|
+
*
|
|
6
|
+
* Defaults to `npx` for public packages that advertise a `bin` entry;
|
|
7
|
+
* `global` otherwise. An explicit `override` always wins.
|
|
8
|
+
*/
|
|
9
|
+
export declare function resolveInvocationMode(meta: PackageMetadata, override?: CliInvocationMode): CliInvocationMode;
|
|
10
|
+
/**
|
|
11
|
+
* Populate `skill.cliInvocationPrefix`, `skill.readmeFeatures`,
|
|
12
|
+
* `skill.readmeTroubleshooting`, and `skill.examples` from package metadata.
|
|
13
|
+
*
|
|
14
|
+
* For public packages with a `bin` field, README content has the bare binary
|
|
15
|
+
* name substituted with `npx <fullPackageName>` so the skill works without
|
|
16
|
+
* a global install.
|
|
17
|
+
*/
|
|
18
|
+
export declare function applyNpxMode(skill: ExtractedSkill, meta: PackageMetadata, invocationMode?: CliInvocationMode): void;
|
|
19
|
+
//# sourceMappingURL=npx-mode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"npx-mode.d.ts","sourceRoot":"","sources":["../src/npx-mode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErE,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEjD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,eAAe,EACrB,QAAQ,CAAC,EAAE,iBAAiB,GAC3B,iBAAiB,CAInB;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,eAAe,EACrB,cAAc,CAAC,EAAE,iBAAiB,GACjC,IAAI,CAaN"}
|
package/dist/npx-mode.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Determine the invocation mode for a CLI skill.
|
|
3
|
+
*
|
|
4
|
+
* Defaults to `npx` for public packages that advertise a `bin` entry;
|
|
5
|
+
* `global` otherwise. An explicit `override` always wins.
|
|
6
|
+
*/
|
|
7
|
+
export function resolveInvocationMode(meta, override) {
|
|
8
|
+
if (override)
|
|
9
|
+
return override;
|
|
10
|
+
if (meta.bin && Object.keys(meta.bin).length > 0 && !meta.isPrivate)
|
|
11
|
+
return 'npx';
|
|
12
|
+
return 'global';
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Populate `skill.cliInvocationPrefix`, `skill.readmeFeatures`,
|
|
16
|
+
* `skill.readmeTroubleshooting`, and `skill.examples` from package metadata.
|
|
17
|
+
*
|
|
18
|
+
* For public packages with a `bin` field, README content has the bare binary
|
|
19
|
+
* name substituted with `npx <fullPackageName>` so the skill works without
|
|
20
|
+
* a global install.
|
|
21
|
+
*/
|
|
22
|
+
export function applyNpxMode(skill, meta, invocationMode) {
|
|
23
|
+
const mode = resolveInvocationMode(meta, invocationMode);
|
|
24
|
+
const binName = meta.bin ? Object.keys(meta.bin)[0] : undefined;
|
|
25
|
+
const pkgName = meta.fullPackageName;
|
|
26
|
+
const prefix = mode === 'npx' && pkgName ? `npx ${pkgName}` : undefined;
|
|
27
|
+
if (prefix)
|
|
28
|
+
skill.cliInvocationPrefix = prefix;
|
|
29
|
+
const sub = (s) => (prefix && binName ? s.replaceAll(binName, prefix) : s);
|
|
30
|
+
if (meta.readme?.features)
|
|
31
|
+
skill.readmeFeatures = sub(meta.readme.features);
|
|
32
|
+
if (meta.readme?.troubleshooting)
|
|
33
|
+
skill.readmeTroubleshooting = sub(meta.readme.troubleshooting);
|
|
34
|
+
if (meta.readme?.quickStart)
|
|
35
|
+
skill.examples = [sub(meta.readme.quickStart), ...skill.examples];
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=npx-mode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"npx-mode.js","sourceRoot":"","sources":["../src/npx-mode.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAqB,EACrB,QAA4B;IAE5B,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,IAAI,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAClF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAqB,EACrB,IAAqB,EACrB,cAAkC;IAElC,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC;IAErC,MAAM,MAAM,GAAG,IAAI,KAAK,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,IAAI,MAAM;QAAE,KAAK,CAAC,mBAAmB,GAAG,MAAM,CAAC;IAE/C,MAAM,GAAG,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3F,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ;QAAE,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5E,IAAI,IAAI,CAAC,MAAM,EAAE,eAAe;QAAE,KAAK,CAAC,qBAAqB,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACjG,IAAI,IAAI,CAAC,MAAM,EAAE,UAAU;QAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;AACjG,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program-loader.d.ts","sourceRoot":"","sources":["../src/program-loader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,WAAW,kBAAkB;IACjC,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,GAAG,EAAE,MAAM,CAAC;CACb;
|
|
1
|
+
{"version":3,"file":"program-loader.d.ts","sourceRoot":"","sources":["../src/program-loader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,WAAW,kBAAkB;IACjC,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,GAAG,EAAE,MAAM,CAAC;CACb;AAmDD;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAuD5E"}
|
package/dist/program-loader.js
CHANGED
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
import { readFileSync } from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { pathToFileURL } from 'node:url';
|
|
4
|
-
import { Command } from 'commander';
|
|
5
4
|
const LOAD_ERROR = 'Could not load a commander program; pass --program <file#export>';
|
|
6
5
|
function messageOf(error) {
|
|
7
6
|
return error instanceof Error ? error.message : String(error);
|
|
8
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* Duck-type check for a Commander {@link Command}.
|
|
10
|
+
*
|
|
11
|
+
* `instanceof Command` fails when the consumer's `commander` package is a
|
|
12
|
+
* different module instance than the one loaded here (e.g. separate monorepos
|
|
13
|
+
* with separate `node_modules`). Structural checks are cross-realm safe.
|
|
14
|
+
*/
|
|
15
|
+
function isCommanderCommand(value) {
|
|
16
|
+
if (typeof value !== 'object' || value === null)
|
|
17
|
+
return false;
|
|
18
|
+
const v = value;
|
|
19
|
+
return (typeof v['name'] === 'function' &&
|
|
20
|
+
Array.isArray(v['commands']) &&
|
|
21
|
+
typeof v['parseAsync'] === 'function');
|
|
22
|
+
}
|
|
9
23
|
/**
|
|
10
24
|
* Resolves a candidate export into a commander {@link Command}.
|
|
11
25
|
*
|
|
@@ -13,13 +27,13 @@ function messageOf(error) {
|
|
|
13
27
|
* function that returns one. Returns `undefined` for anything else.
|
|
14
28
|
*/
|
|
15
29
|
async function resolveCommand(candidate) {
|
|
16
|
-
if (candidate
|
|
30
|
+
if (isCommanderCommand(candidate)) {
|
|
17
31
|
return candidate;
|
|
18
32
|
}
|
|
19
33
|
if (typeof candidate === 'function' &&
|
|
20
34
|
candidate.length === 0) {
|
|
21
35
|
const result = await candidate();
|
|
22
|
-
if (result
|
|
36
|
+
if (isCommanderCommand(result)) {
|
|
23
37
|
return result;
|
|
24
38
|
}
|
|
25
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program-loader.js","sourceRoot":"","sources":["../src/program-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"program-loader.js","sourceRoot":"","sources":["../src/program-loader.ts"],"names":[],"mappings":"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"}
|
package/dist/refine-source.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type DraftedFix, type ExtractedSkill, type RefineSource, type TargetLocation } from '@skillit/core';
|
|
2
2
|
import { Command } from 'commander';
|
|
3
|
+
import { type CliInvocationMode } from './npx-mode.js';
|
|
3
4
|
export interface CliRefineSourceOptions {
|
|
4
5
|
/** Commander program to introspect. */
|
|
5
6
|
program: Command;
|
|
@@ -7,6 +8,11 @@ export interface CliRefineSourceOptions {
|
|
|
7
8
|
sourceGlob: string;
|
|
8
9
|
/** Working directory (reserved for future relative-path resolution). */
|
|
9
10
|
cwd: string;
|
|
11
|
+
/**
|
|
12
|
+
* Override the invocation mode used in generated command examples.
|
|
13
|
+
* Defaults to `npx` for public packages with a `bin` field, `global` otherwise.
|
|
14
|
+
*/
|
|
15
|
+
invocationMode?: CliInvocationMode;
|
|
10
16
|
}
|
|
11
17
|
/**
|
|
12
18
|
* {@link RefineSource} for `@skillit/cli` consumers.
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AAGpC,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAKrE,MAAM,WAAW,sBAAsB;IACrC,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,cAAc,CAAC,EAAE,iBAAiB,CAAC;CACpC;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,CA0EvC;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
|
@@ -4,6 +4,7 @@ import { fileURLToPath } from 'node:url';
|
|
|
4
4
|
import { findNearestPackageDir, readPackageMetadata, upsertJsDocTag } from '@skillit/core';
|
|
5
5
|
import { extractCliSkill } from './extract.js';
|
|
6
6
|
import { introspectCommander } from './introspect-commander.js';
|
|
7
|
+
import { applyNpxMode } from './npx-mode.js';
|
|
7
8
|
import { readOptionsTags } from './options-jsdoc.js';
|
|
8
9
|
const EXCLUDED_DIRS = new Set(['node_modules', 'dist', 'build', '.git', 'coverage', '.cache']);
|
|
9
10
|
/**
|
|
@@ -110,6 +111,7 @@ export class CliRefineSource {
|
|
|
110
111
|
skill.repository = meta.repository;
|
|
111
112
|
if (meta.readme !== undefined)
|
|
112
113
|
skill.readme = meta.readme;
|
|
114
|
+
applyNpxMode(skill, meta, this.opts.invocationMode);
|
|
113
115
|
return skill;
|
|
114
116
|
}
|
|
115
117
|
guidance() {
|
|
@@ -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,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EAQf,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,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": "1.0.0",
|
|
4
4
|
"description": "Extract CLI command structure from commander/yargs for AI agent skill generation",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent-skills",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
}
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@skillit/core": "
|
|
44
|
+
"@skillit/core": "3.0.0"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"commander": "^15.0.0"
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: skillit-cli-docs
|
|
3
3
|
description: 'CLI documentation conventions for generated skills. Use when improving Commander descriptions, help text, positional argument docs, and config-surface correlation.'
|
|
4
4
|
version: 0.3.13
|
|
5
|
-
|
|
5
|
+
skillit:
|
|
6
6
|
managed: bundled-guidance
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -18,6 +18,28 @@ Use this skill when documenting command-line programs for `@skillit/cli`.
|
|
|
18
18
|
- `.usage()` strings and example help text
|
|
19
19
|
- Environment-variable documentation and config-surface JSDoc correlation
|
|
20
20
|
|
|
21
|
+
## Routing Tags via Option Interfaces
|
|
22
|
+
|
|
23
|
+
For routing tags (`@useWhen`, `@avoidWhen`, `@pitfalls`), add them as JSDoc on
|
|
24
|
+
a `<PascalCommandName>Options` interface in a TypeScript source file.
|
|
25
|
+
The interface needs no properties — only the JSDoc block matters:
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
/**
|
|
29
|
+
* @useWhen - Server advertises callHierarchyProvider capability
|
|
30
|
+
* @avoidWhen - Server doesn't support call hierarchy; lsproxy will error
|
|
31
|
+
* @never - NEVER invoke without verifying server supports this capability. Fix: check --help output or use `lsproxy call` to probe the server first
|
|
32
|
+
*/
|
|
33
|
+
interface CallHierarchyOptions {}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
`CliRefineSource` discovers these interfaces via the source glob (`**/*.ts`) and
|
|
37
|
+
correlates their tags onto the corresponding command in the generated skill.
|
|
38
|
+
Create one per command that needs routing guidance; the filename is arbitrary
|
|
39
|
+
(e.g. `src/command-options.ts`). After adding the interface, re-run `skillit gen`
|
|
40
|
+
to regenerate — `resolveTargetLocation` will now resolve and `skillit refine`
|
|
41
|
+
can write tags into the interface directly.
|
|
42
|
+
|
|
21
43
|
## Fix Patterns
|
|
22
44
|
|
|
23
45
|
- Describe command intent in one sentence, not just the verb
|