incur 0.3.23 → 0.3.24
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/Cli.d.ts +9 -1
- package/dist/Cli.d.ts.map +1 -1
- package/dist/Cli.js +69 -35
- package/dist/Cli.js.map +1 -1
- package/dist/Completions.d.ts +3 -1
- package/dist/Completions.d.ts.map +1 -1
- package/dist/Completions.js +8 -1
- package/dist/Completions.js.map +1 -1
- package/dist/Mcp.d.ts.map +1 -1
- package/dist/Mcp.js +2 -0
- package/dist/Mcp.js.map +1 -1
- package/dist/internal/command.d.ts +48 -0
- package/dist/internal/command.d.ts.map +1 -1
- package/dist/internal/command.js +9 -0
- package/dist/internal/command.js.map +1 -1
- package/package.json +1 -1
- package/src/Cli.test.ts +67 -0
- package/src/Cli.ts +88 -37
- package/src/Completions.ts +8 -2
- package/src/Mcp.ts +1 -0
- package/src/internal/command.ts +12 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/internal/command.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/internal/command.ts"],"names":[],"mappings":"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"}
|
package/dist/internal/command.js
CHANGED
|
@@ -263,6 +263,7 @@ export const builtinCommands = [
|
|
|
263
263
|
},
|
|
264
264
|
{
|
|
265
265
|
name: 'skills',
|
|
266
|
+
aliases: ['skill'],
|
|
266
267
|
description: 'Sync skill files to agents',
|
|
267
268
|
subcommands: [
|
|
268
269
|
subcommand({
|
|
@@ -280,4 +281,12 @@ export const builtinCommands = [
|
|
|
280
281
|
],
|
|
281
282
|
},
|
|
282
283
|
];
|
|
284
|
+
/** @internal Finds a builtin command by its name or alias. */
|
|
285
|
+
export function findBuiltin(token) {
|
|
286
|
+
return builtinCommands.find((b) => b.name === token || b.aliases?.includes(token));
|
|
287
|
+
}
|
|
288
|
+
/** @internal Checks if a token matches a builtin command by name or alias. */
|
|
289
|
+
export function isBuiltin(token) {
|
|
290
|
+
return builtinCommands.some((b) => b.name === token || b.aliases?.includes(token));
|
|
291
|
+
}
|
|
283
292
|
//# sourceMappingURL=command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/internal/command.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/internal/command.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/Cli.test.ts
CHANGED
|
@@ -3732,6 +3732,15 @@ describe('fetch', async () => {
|
|
|
3732
3732
|
`)
|
|
3733
3733
|
})
|
|
3734
3734
|
|
|
3735
|
+
test('root-level fetch with typo of known command → did you mean', async () => {
|
|
3736
|
+
const cli = Cli.create('api', { description: 'API', fetch: app.fetch }).command('upgrade', {
|
|
3737
|
+
run: () => ({ upgraded: true }),
|
|
3738
|
+
})
|
|
3739
|
+
const { output, exitCode } = await serve(cli, ['upgra'])
|
|
3740
|
+
expect(exitCode).toBe(1)
|
|
3741
|
+
expect(output).toContain("Did you mean 'upgrade'?")
|
|
3742
|
+
})
|
|
3743
|
+
|
|
3735
3744
|
test('root-level fetch with no args → root path', async () => {
|
|
3736
3745
|
const cli = Cli.create('api', { description: 'API', fetch: app.fetch })
|
|
3737
3746
|
// Hono returns 404 for / since we don't have a root route
|
|
@@ -4551,3 +4560,61 @@ test('--token-offset with non-numeric value errors', async () => {
|
|
|
4551
4560
|
expect(exitCode).toBe(1)
|
|
4552
4561
|
expect(output).not.toContain('NaN')
|
|
4553
4562
|
})
|
|
4563
|
+
|
|
4564
|
+
describe('command aliases', () => {
|
|
4565
|
+
function makeAliasedCli() {
|
|
4566
|
+
return Cli.create('gh').command('extension', {
|
|
4567
|
+
aliases: ['extensions', 'ext'],
|
|
4568
|
+
description: 'Manage extensions',
|
|
4569
|
+
run: () => ({ result: 'ok' }),
|
|
4570
|
+
})
|
|
4571
|
+
}
|
|
4572
|
+
|
|
4573
|
+
test('resolves canonical command name', async () => {
|
|
4574
|
+
const { output } = await serve(makeAliasedCli(), ['extension'])
|
|
4575
|
+
expect(output).toContain('ok')
|
|
4576
|
+
})
|
|
4577
|
+
|
|
4578
|
+
test('resolves alias name', async () => {
|
|
4579
|
+
const { output } = await serve(makeAliasedCli(), ['extensions'])
|
|
4580
|
+
expect(output).toContain('ok')
|
|
4581
|
+
})
|
|
4582
|
+
|
|
4583
|
+
test('resolves short alias name', async () => {
|
|
4584
|
+
const { output } = await serve(makeAliasedCli(), ['ext'])
|
|
4585
|
+
expect(output).toContain('ok')
|
|
4586
|
+
})
|
|
4587
|
+
|
|
4588
|
+
test('root help does not show aliases', async () => {
|
|
4589
|
+
const { output } = await serve(makeAliasedCli(), ['--help'])
|
|
4590
|
+
const commandsSection = output.split('Commands:')[1]!.split('Integrations:')[0]!
|
|
4591
|
+
const names = commandsSection
|
|
4592
|
+
.trim()
|
|
4593
|
+
.split('\n')
|
|
4594
|
+
.map((l) => l.trim().split(/\s{2,}/)[0]!)
|
|
4595
|
+
expect(names).toContain('extension')
|
|
4596
|
+
expect(names).not.toContain('extensions')
|
|
4597
|
+
expect(names).not.toContain('ext')
|
|
4598
|
+
})
|
|
4599
|
+
|
|
4600
|
+
test('command help shows aliases line', async () => {
|
|
4601
|
+
const { output } = await serve(makeAliasedCli(), ['extension', '--help'])
|
|
4602
|
+
expect(output).toContain('Aliases: extensions, ext')
|
|
4603
|
+
})
|
|
4604
|
+
|
|
4605
|
+
test('aliases work inside command groups', async () => {
|
|
4606
|
+
const sub = Cli.create('repo', { description: 'Manage repos' }).command('list', {
|
|
4607
|
+
aliases: ['ls'],
|
|
4608
|
+
description: 'List repos',
|
|
4609
|
+
run: () => ({ repos: [] }),
|
|
4610
|
+
})
|
|
4611
|
+
const cli = Cli.create('gh').command(sub)
|
|
4612
|
+
const { output } = await serve(cli, ['repo', 'ls'])
|
|
4613
|
+
expect(output).toContain('repos')
|
|
4614
|
+
})
|
|
4615
|
+
|
|
4616
|
+
test('did-you-mean suggests aliases', async () => {
|
|
4617
|
+
const { output } = await serve(makeAliasedCli(), ['exten'])
|
|
4618
|
+
expect(output).toMatch(/did you mean.*extension/i)
|
|
4619
|
+
})
|
|
4620
|
+
})
|
package/src/Cli.ts
CHANGED
|
@@ -11,7 +11,13 @@ import * as Fetch from './Fetch.js'
|
|
|
11
11
|
import * as Filter from './Filter.js'
|
|
12
12
|
import * as Formatter from './Formatter.js'
|
|
13
13
|
import * as Help from './Help.js'
|
|
14
|
-
import {
|
|
14
|
+
import {
|
|
15
|
+
builtinCommands,
|
|
16
|
+
type CommandMeta,
|
|
17
|
+
findBuiltin,
|
|
18
|
+
type Shell,
|
|
19
|
+
shells,
|
|
20
|
+
} from './internal/command.js'
|
|
15
21
|
import * as Command from './internal/command.js'
|
|
16
22
|
import { isRecord, suggest } from './internal/helpers.js'
|
|
17
23
|
import { detectRunner } from './internal/pm.js'
|
|
@@ -239,6 +245,8 @@ export function create(
|
|
|
239
245
|
return cli
|
|
240
246
|
}
|
|
241
247
|
commands.set(nameOrCli, def)
|
|
248
|
+
if (def.aliases)
|
|
249
|
+
for (const a of def.aliases) commands.set(a, { _alias: true, target: nameOrCli })
|
|
242
250
|
return cli
|
|
243
251
|
}
|
|
244
252
|
const mountedRootDef = toRootDefinition.get(nameOrCli)
|
|
@@ -530,8 +538,8 @@ async function serveImpl(
|
|
|
530
538
|
})
|
|
531
539
|
}
|
|
532
540
|
} else if (nonFlags.length === 2) {
|
|
533
|
-
const parent = nonFlags[nonFlags.length - 1]
|
|
534
|
-
const builtin =
|
|
541
|
+
const parent = nonFlags[nonFlags.length - 1]!
|
|
542
|
+
const builtin = findBuiltin(parent)
|
|
535
543
|
if (builtin?.subcommands)
|
|
536
544
|
for (const sub of builtin.subcommands)
|
|
537
545
|
if (sub.name.startsWith(current))
|
|
@@ -546,9 +554,8 @@ async function serveImpl(
|
|
|
546
554
|
// Skills staleness check (skip for built-in commands)
|
|
547
555
|
let skillsCta: FormattedCtaBlock | undefined
|
|
548
556
|
if (!llms && !llmsFull && !schema && !help && !version) {
|
|
549
|
-
const isSkillsAdd =
|
|
550
|
-
|
|
551
|
-
const isMcpAdd = filtered[0] === 'mcp' || (filtered[0] === name && filtered[1] === 'mcp')
|
|
557
|
+
const isSkillsAdd = builtinIdx(filtered, name, 'skills') !== -1
|
|
558
|
+
const isMcpAdd = builtinIdx(filtered, name, 'mcp') !== -1
|
|
552
559
|
if (!isSkillsAdd && !isMcpAdd) {
|
|
553
560
|
const stored = SyncSkills.readHash(name)
|
|
554
561
|
if (stored) {
|
|
@@ -574,8 +581,9 @@ async function serveImpl(
|
|
|
574
581
|
const prefix: string[] = []
|
|
575
582
|
let scopedDescription: string | undefined = options.description
|
|
576
583
|
for (const token of filtered) {
|
|
577
|
-
const
|
|
578
|
-
if (!
|
|
584
|
+
const rawEntry = scopedCommands.get(token)
|
|
585
|
+
if (!rawEntry) break
|
|
586
|
+
const entry = resolveAlias(scopedCommands, rawEntry)
|
|
579
587
|
if (isGroup(entry)) {
|
|
580
588
|
scopedCommands = entry.commands
|
|
581
589
|
scopedDescription = entry.description
|
|
@@ -613,19 +621,11 @@ async function serveImpl(
|
|
|
613
621
|
}
|
|
614
622
|
|
|
615
623
|
// completions <shell>: print shell hook script to stdout
|
|
616
|
-
const completionsIdx = (
|
|
617
|
-
|
|
618
|
-
if (filtered[0] === 'completions') return 0
|
|
619
|
-
// e.g. `my-cli completions bash`
|
|
620
|
-
if (filtered[0] === name && filtered[1] === 'completions') return 1
|
|
621
|
-
// not a completions invocation
|
|
622
|
-
return -1
|
|
623
|
-
})()
|
|
624
|
-
// TODO: refactor built-in command handlers (completions, skills, mcp) into a generic dispatch loop on `builtinCommands`
|
|
625
|
-
if (completionsIdx !== -1 && filtered[completionsIdx] === 'completions') {
|
|
624
|
+
const completionsIdx = builtinIdx(filtered, name, 'completions')
|
|
625
|
+
if (completionsIdx !== -1) {
|
|
626
626
|
const shell = filtered[completionsIdx + 1]
|
|
627
627
|
if (help || !shell) {
|
|
628
|
-
const b =
|
|
628
|
+
const b = findBuiltin('completions')!
|
|
629
629
|
writeln(
|
|
630
630
|
Help.formatCommand(`${name} completions`, {
|
|
631
631
|
args: b.args,
|
|
@@ -652,9 +652,8 @@ async function serveImpl(
|
|
|
652
652
|
}
|
|
653
653
|
|
|
654
654
|
// skills add: generate skill files and install via `<pm>x skills add` (only when sync is configured)
|
|
655
|
-
const skillsIdx =
|
|
656
|
-
|
|
657
|
-
if (skillsIdx !== -1 && filtered[skillsIdx] === 'skills') {
|
|
655
|
+
const skillsIdx = builtinIdx(filtered, name, 'skills')
|
|
656
|
+
if (skillsIdx !== -1) {
|
|
658
657
|
const skillsSub = filtered[skillsIdx + 1]
|
|
659
658
|
if (skillsSub && skillsSub !== 'add' && skillsSub !== 'list') {
|
|
660
659
|
const suggestion = suggest(skillsSub, ['add', 'list'])
|
|
@@ -681,13 +680,13 @@ async function serveImpl(
|
|
|
681
680
|
return
|
|
682
681
|
}
|
|
683
682
|
if (!skillsSub) {
|
|
684
|
-
const b =
|
|
683
|
+
const b = findBuiltin('skills')!
|
|
685
684
|
writeln(formatBuiltinHelp(name, b))
|
|
686
685
|
return
|
|
687
686
|
}
|
|
688
687
|
if (skillsSub === 'list') {
|
|
689
688
|
if (help) {
|
|
690
|
-
const b =
|
|
689
|
+
const b = findBuiltin('skills')!
|
|
691
690
|
writeln(formatBuiltinSubcommandHelp(name, b, 'list'))
|
|
692
691
|
return
|
|
693
692
|
}
|
|
@@ -733,7 +732,7 @@ async function serveImpl(
|
|
|
733
732
|
return
|
|
734
733
|
}
|
|
735
734
|
if (help) {
|
|
736
|
-
const b =
|
|
735
|
+
const b = findBuiltin('skills')!
|
|
737
736
|
writeln(formatBuiltinSubcommandHelp(name, b, 'add'))
|
|
738
737
|
return
|
|
739
738
|
}
|
|
@@ -797,8 +796,8 @@ async function serveImpl(
|
|
|
797
796
|
}
|
|
798
797
|
|
|
799
798
|
// mcp add: register CLI as MCP server via `npx add-mcp`
|
|
800
|
-
const mcpIdx = filtered
|
|
801
|
-
if (mcpIdx !== -1
|
|
799
|
+
const mcpIdx = builtinIdx(filtered, name, 'mcp')
|
|
800
|
+
if (mcpIdx !== -1) {
|
|
802
801
|
const mcpSub = filtered[mcpIdx + 1]
|
|
803
802
|
if (mcpSub && mcpSub !== 'add') {
|
|
804
803
|
const suggestion = suggest(mcpSub, ['add'])
|
|
@@ -822,12 +821,12 @@ async function serveImpl(
|
|
|
822
821
|
return
|
|
823
822
|
}
|
|
824
823
|
if (!mcpSub) {
|
|
825
|
-
const b =
|
|
824
|
+
const b = findBuiltin('mcp')!
|
|
826
825
|
writeln(formatBuiltinHelp(name, b))
|
|
827
826
|
return
|
|
828
827
|
}
|
|
829
828
|
if (help) {
|
|
830
|
-
const b =
|
|
829
|
+
const b = findBuiltin('mcp')!
|
|
831
830
|
writeln(formatBuiltinSubcommandHelp(name, b, 'add'))
|
|
832
831
|
return
|
|
833
832
|
}
|
|
@@ -1008,7 +1007,7 @@ async function serveImpl(
|
|
|
1008
1007
|
writeln(
|
|
1009
1008
|
Help.formatCommand(commandName, {
|
|
1010
1009
|
alias: cmd.alias as Record<string, string> | undefined,
|
|
1011
|
-
aliases: isRootCmd ? options.aliases :
|
|
1010
|
+
aliases: isRootCmd ? options.aliases : cmd.aliases,
|
|
1012
1011
|
configFlag,
|
|
1013
1012
|
description: cmd.description,
|
|
1014
1013
|
version: isRootCmd ? options.version : undefined,
|
|
@@ -1080,9 +1079,18 @@ async function serveImpl(
|
|
|
1080
1079
|
const resolvedFormat = 'command' in resolved && (resolved as any).command.format
|
|
1081
1080
|
const format = formatExplicit ? formatFlag : resolvedFormat || options.format || 'toon'
|
|
1082
1081
|
|
|
1083
|
-
// Fall back to root fetch when no subcommand matches
|
|
1082
|
+
// Fall back to root fetch/command when no subcommand matches,
|
|
1083
|
+
// but only if the token doesn't look like a typo of a known command.
|
|
1084
|
+
const rootFallbackBlocked =
|
|
1085
|
+
'error' in resolved &&
|
|
1086
|
+
!resolved.path &&
|
|
1087
|
+
(() => {
|
|
1088
|
+
const candidates = [...resolved.commands.keys()]
|
|
1089
|
+
for (const b of builtinCommands) candidates.push(b.name)
|
|
1090
|
+
return suggest(resolved.error, candidates) !== undefined
|
|
1091
|
+
})()
|
|
1084
1092
|
const effective =
|
|
1085
|
-
'error' in resolved && options.rootFetch && !resolved.path
|
|
1093
|
+
'error' in resolved && options.rootFetch && !resolved.path && !rootFallbackBlocked
|
|
1086
1094
|
? {
|
|
1087
1095
|
fetchGateway: {
|
|
1088
1096
|
_fetch: true as const,
|
|
@@ -1093,7 +1101,7 @@ async function serveImpl(
|
|
|
1093
1101
|
path: name,
|
|
1094
1102
|
rest: filtered,
|
|
1095
1103
|
}
|
|
1096
|
-
: 'error' in resolved && options.rootCommand && !resolved.path
|
|
1104
|
+
: 'error' in resolved && options.rootCommand && !resolved.path && !rootFallbackBlocked
|
|
1097
1105
|
? { command: options.rootCommand, path: name, rest: filtered }
|
|
1098
1106
|
: resolved
|
|
1099
1107
|
|
|
@@ -1897,7 +1905,7 @@ function resolveCommand(
|
|
|
1897
1905
|
|
|
1898
1906
|
if (!first || !commands.has(first)) return { error: first ?? '(none)', path: '', commands, rest }
|
|
1899
1907
|
|
|
1900
|
-
let entry = commands.get(first)!
|
|
1908
|
+
let entry = resolveAlias(commands, commands.get(first)!)
|
|
1901
1909
|
const path = [first]
|
|
1902
1910
|
let remaining = rest
|
|
1903
1911
|
let inheritedOutputPolicy: OutputPolicy | undefined
|
|
@@ -1927,8 +1935,8 @@ function resolveCommand(
|
|
|
1927
1935
|
commands: entry.commands,
|
|
1928
1936
|
}
|
|
1929
1937
|
|
|
1930
|
-
const
|
|
1931
|
-
if (!
|
|
1938
|
+
const rawChild = entry.commands.get(next)
|
|
1939
|
+
if (!rawChild) {
|
|
1932
1940
|
return {
|
|
1933
1941
|
error: next,
|
|
1934
1942
|
path: path.join(' '),
|
|
@@ -1936,6 +1944,7 @@ function resolveCommand(
|
|
|
1936
1944
|
rest: remaining.slice(1),
|
|
1937
1945
|
}
|
|
1938
1946
|
}
|
|
1947
|
+
let child = resolveAlias(entry.commands, rawChild)
|
|
1939
1948
|
|
|
1940
1949
|
path.push(next)
|
|
1941
1950
|
remaining = remaining.slice(1)
|
|
@@ -2260,14 +2269,26 @@ function collectHelpCommands(
|
|
|
2260
2269
|
): { name: string; description?: string | undefined }[] {
|
|
2261
2270
|
const result: { name: string; description?: string | undefined }[] = []
|
|
2262
2271
|
for (const [name, entry] of commands) {
|
|
2272
|
+
if (isAlias(entry)) continue
|
|
2263
2273
|
result.push({ name, description: entry.description })
|
|
2264
2274
|
}
|
|
2265
2275
|
return result.sort((a, b) => a.name.localeCompare(b.name))
|
|
2266
2276
|
}
|
|
2267
2277
|
|
|
2278
|
+
/** @internal Finds the index of a builtin command token in the filtered argv. Returns -1 if not found. */
|
|
2279
|
+
function builtinIdx(filtered: string[], cliName: string, builtin: string): number {
|
|
2280
|
+
// e.g. `skills add` or `skill add`
|
|
2281
|
+
if (findBuiltin(filtered[0]!)?.name === builtin) return 0
|
|
2282
|
+
// e.g. `my-cli skills add`
|
|
2283
|
+
if (filtered[0] === cliName && findBuiltin(filtered[1]!)?.name === builtin) return 1
|
|
2284
|
+
// not a match
|
|
2285
|
+
return -1
|
|
2286
|
+
}
|
|
2287
|
+
|
|
2268
2288
|
/** @internal Formats group-level help for a built-in command (e.g. `cli skills`). */
|
|
2269
2289
|
function formatBuiltinHelp(cli: string, builtin: (typeof builtinCommands)[number]): string {
|
|
2270
2290
|
return Help.formatRoot(`${cli} ${builtin.name}`, {
|
|
2291
|
+
aliases: builtin.aliases,
|
|
2271
2292
|
description: builtin.description,
|
|
2272
2293
|
commands: builtin.subcommands?.map((s) => ({ name: s.name, description: s.description })),
|
|
2273
2294
|
})
|
|
@@ -2314,7 +2335,11 @@ export type CommandsMap = Record<
|
|
|
2314
2335
|
>
|
|
2315
2336
|
|
|
2316
2337
|
/** @internal Entry stored in a command map — either a leaf definition, a group, or a fetch gateway. */
|
|
2317
|
-
type CommandEntry =
|
|
2338
|
+
type CommandEntry =
|
|
2339
|
+
| CommandDefinition<any, any, any>
|
|
2340
|
+
| InternalGroup
|
|
2341
|
+
| InternalFetchGateway
|
|
2342
|
+
| InternalAlias
|
|
2318
2343
|
|
|
2319
2344
|
/** Controls when output data is displayed. `'all'` displays to both humans and agents. `'agent-only'` suppresses data output in human/TTY mode. */
|
|
2320
2345
|
export type OutputPolicy = 'agent-only' | 'all'
|
|
@@ -2350,6 +2375,27 @@ function isFetchGateway(entry: CommandEntry): entry is InternalFetchGateway {
|
|
|
2350
2375
|
return '_fetch' in entry
|
|
2351
2376
|
}
|
|
2352
2377
|
|
|
2378
|
+
/** @internal An alias entry that points to another command by name. */
|
|
2379
|
+
type InternalAlias = {
|
|
2380
|
+
_alias: true
|
|
2381
|
+
/** The canonical command name this alias resolves to. */
|
|
2382
|
+
target: string
|
|
2383
|
+
}
|
|
2384
|
+
|
|
2385
|
+
/** @internal Type guard for alias entries. */
|
|
2386
|
+
function isAlias(entry: CommandEntry): entry is InternalAlias {
|
|
2387
|
+
return '_alias' in entry
|
|
2388
|
+
}
|
|
2389
|
+
|
|
2390
|
+
/** @internal Follows an alias entry to its canonical target. Returns the entry unchanged if not an alias. */
|
|
2391
|
+
function resolveAlias(
|
|
2392
|
+
commands: Map<string, CommandEntry>,
|
|
2393
|
+
entry: CommandEntry,
|
|
2394
|
+
): Exclude<CommandEntry, InternalAlias> {
|
|
2395
|
+
if (isAlias(entry)) return commands.get(entry.target)! as Exclude<CommandEntry, InternalAlias>
|
|
2396
|
+
return entry
|
|
2397
|
+
}
|
|
2398
|
+
|
|
2353
2399
|
/** @internal Maps CLI instances to their command maps. */
|
|
2354
2400
|
export const toCommands = new WeakMap<Cli, Map<string, CommandEntry>>()
|
|
2355
2401
|
|
|
@@ -2672,6 +2718,7 @@ function collectIndexCommands(
|
|
|
2672
2718
|
): { name: string; description?: string | undefined }[] {
|
|
2673
2719
|
const result: { name: string; description?: string | undefined }[] = []
|
|
2674
2720
|
for (const [name, entry] of commands) {
|
|
2721
|
+
if (isAlias(entry)) continue
|
|
2675
2722
|
const path = [...prefix, name]
|
|
2676
2723
|
if (isGroup(entry)) {
|
|
2677
2724
|
result.push(...collectIndexCommands(entry.commands, path))
|
|
@@ -2706,6 +2753,7 @@ function collectCommands(
|
|
|
2706
2753
|
}[] {
|
|
2707
2754
|
const result: ReturnType<typeof collectCommands> = []
|
|
2708
2755
|
for (const [name, entry] of commands) {
|
|
2756
|
+
if (isAlias(entry)) continue
|
|
2709
2757
|
const path = [...prefix, name]
|
|
2710
2758
|
if (isFetchGateway(entry)) {
|
|
2711
2759
|
const cmd: (typeof result)[number] = { name: path.join(' ') }
|
|
@@ -2762,6 +2810,7 @@ function collectSkillCommands(
|
|
|
2762
2810
|
result.push(cmd)
|
|
2763
2811
|
}
|
|
2764
2812
|
for (const [name, entry] of commands) {
|
|
2813
|
+
if (isAlias(entry)) continue
|
|
2765
2814
|
const path = [...prefix, name]
|
|
2766
2815
|
if (isFetchGateway(entry)) {
|
|
2767
2816
|
const cmd: Skill.CommandInfo = { name: path.join(' ') }
|
|
@@ -2931,6 +2980,8 @@ type CommandDefinition<
|
|
|
2931
2980
|
vars extends z.ZodObject<any> | undefined = undefined,
|
|
2932
2981
|
cliEnv extends z.ZodObject<any> | undefined = undefined,
|
|
2933
2982
|
> = CommandMeta<options> & {
|
|
2983
|
+
/** Alternative names for this command (e.g. `['extensions', 'ext']` for an `extension` command). */
|
|
2984
|
+
aliases?: string[] | undefined
|
|
2934
2985
|
/** Zod schema for positional arguments. */
|
|
2935
2986
|
args?: args | undefined
|
|
2936
2987
|
/** Zod schema for environment variables. Keys are the variable names (e.g. `NPM_TOKEN`). */
|
package/src/Completions.ts
CHANGED
|
@@ -12,14 +12,16 @@ export type Candidate = {
|
|
|
12
12
|
value: string
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
/** @internal Entry stored in a command map — either a leaf definition or
|
|
15
|
+
/** @internal Entry stored in a command map — either a leaf definition, a group, or an alias. */
|
|
16
16
|
type CommandEntry = {
|
|
17
|
+
_alias?: true | undefined
|
|
17
18
|
_group?: true | undefined
|
|
18
19
|
alias?: Record<string, string | undefined> | undefined
|
|
19
20
|
args?: z.ZodObject<any> | undefined
|
|
20
21
|
commands?: Map<string, CommandEntry> | undefined
|
|
21
22
|
description?: string | undefined
|
|
22
23
|
options?: z.ZodObject<any> | undefined
|
|
24
|
+
target?: string | undefined
|
|
23
25
|
}
|
|
24
26
|
|
|
25
27
|
/**
|
|
@@ -61,7 +63,10 @@ export function complete(
|
|
|
61
63
|
for (let i = 0; i < index; i++) {
|
|
62
64
|
const token = argv[i]!
|
|
63
65
|
if (token.startsWith('-')) continue
|
|
64
|
-
|
|
66
|
+
let entry = scope.commands.get(token)
|
|
67
|
+
if (!entry) continue
|
|
68
|
+
// Follow alias to canonical entry
|
|
69
|
+
if (entry._alias && entry.target) entry = scope.commands.get(entry.target)
|
|
65
70
|
if (!entry) continue
|
|
66
71
|
if (entry._group && entry.commands) {
|
|
67
72
|
scope = { commands: entry.commands }
|
|
@@ -116,6 +121,7 @@ export function complete(
|
|
|
116
121
|
|
|
117
122
|
// Suggest subcommands (groups get noSpace so user can keep typing subcommand)
|
|
118
123
|
for (const [name, entry] of scope.commands) {
|
|
124
|
+
if (entry._alias) continue
|
|
119
125
|
if (name.startsWith(current))
|
|
120
126
|
candidates.push({
|
|
121
127
|
value: name,
|
package/src/Mcp.ts
CHANGED
|
@@ -173,6 +173,7 @@ export function collectTools(
|
|
|
173
173
|
): ToolEntry[] {
|
|
174
174
|
const result: ToolEntry[] = []
|
|
175
175
|
for (const [name, entry] of commands) {
|
|
176
|
+
if ('_alias' in entry) continue
|
|
176
177
|
const path = [...prefix, name]
|
|
177
178
|
if ('_group' in entry && entry._group) {
|
|
178
179
|
const groupMw = [
|
package/src/internal/command.ts
CHANGED
|
@@ -412,6 +412,7 @@ export const builtinCommands = [
|
|
|
412
412
|
},
|
|
413
413
|
{
|
|
414
414
|
name: 'skills',
|
|
415
|
+
aliases: ['skill'],
|
|
415
416
|
description: 'Sync skill files to agents',
|
|
416
417
|
subcommands: [
|
|
417
418
|
subcommand({
|
|
@@ -430,8 +431,19 @@ export const builtinCommands = [
|
|
|
430
431
|
},
|
|
431
432
|
] satisfies {
|
|
432
433
|
name: string
|
|
434
|
+
aliases?: string[] | undefined
|
|
433
435
|
args?: z.ZodObject<any> | undefined
|
|
434
436
|
description: string
|
|
435
437
|
hint?: ((name: string) => string) | undefined
|
|
436
438
|
subcommands?: (CommandMeta<z.ZodObject<any>> & { name: string })[] | undefined
|
|
437
439
|
}[]
|
|
440
|
+
|
|
441
|
+
/** @internal Finds a builtin command by its name or alias. */
|
|
442
|
+
export function findBuiltin(token: string) {
|
|
443
|
+
return builtinCommands.find((b) => b.name === token || b.aliases?.includes(token))
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
/** @internal Checks if a token matches a builtin command by name or alias. */
|
|
447
|
+
export function isBuiltin(token: string) {
|
|
448
|
+
return builtinCommands.some((b) => b.name === token || b.aliases?.includes(token))
|
|
449
|
+
}
|