incur 0.3.23 → 0.3.25
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 +77 -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 +78 -0
- package/src/Cli.ts +95 -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":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE1D,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAEtC,wEAAwE;AACxE,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;AAyB7C,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAY,EAAE,OAAwB;IAClE,MAAM,EACJ,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,MAAM,EACN,cAAc,EACd,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,SAAS,GAAG,OAAO,CAAC,GAAG,EACvB,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,UAAU,EAChB,WAAW,GAAG,EAAE,GACjB,GAAG,OAAO,CAAA;IACX,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAA;IAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAA;IAE7C,MAAM,OAAO,GAA4B,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/E,IAAI,MAAkC,CAAA;IACtC,6FAA6F;IAC7F,6FAA6F;IAC7F,yFAAyF;IACzF,IAAI,cAAyC,CAAA;IAC7C,IAAI,qBAA+C,CAAA;IACnD,IAAI,kBAA4C,CAAA;IAChD,MAAM,WAAW,GAAG,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE;QAC1C,kBAAkB,GAAG,CAAC,CAAA;IACxB,CAAC,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;QAC5B,yBAAyB;QACzB,IAAI,IAA6B,CAAA;QACjC,IAAI,aAAsC,CAAA;QAE1C,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACzB,yDAAyD;YACzD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;gBAChC,KAAK,EAAE,OAAO,CAAC,KAA2C;gBAC1D,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC,CAAA;YACF,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;YAClB,aAAa,GAAG,MAAM,CAAC,OAAO,CAAA;QAChC,CAAC;aAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YACjC,6EAA6E;YAC7E,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;YACzD,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;YAClB,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAC5E,CAAC;aAAM,CAAC;YACN,0EAA0E;YAC1E,MAAM,KAAK,GAAG,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;YAChD,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YACzD,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAC7E,CAAC;QAED,YAAY;QACZ,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAE7E,yBAAyB;QACzB,MAAM,IAAI,GAAG,CAAC,IAAa,EAAE,OAAuC,EAAE,EAAS,EAAE,CAC/E,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAU,CAAA;QACtD,MAAM,OAAO,GAAG,CAAC,IAMhB,EAAS,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAU,CAAA;QAExD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;YACtB,KAAK;YACL,IAAI;YACJ,WAAW;YACX,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,OAAO;YACd,MAAM;YACN,cAAc;YACd,IAAI;YACJ,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,aAAa;YACtB,GAAG,EAAE,OAAO;YACZ,OAAO;SACR,CAAC,CAAA;QAEF,8EAA8E;QAC9E,qFAAqF;QACrF,mEAAmE;QACnE,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,cAAc,GAAG,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE;oBACvC,qBAAqB,GAAG,CAAC,CAAA;gBAC3B,CAAC,CAAC,CAAA;gBACF,KAAK,SAAS,CAAC,CAAC,OAAO;oBACrB,IAAI,CAAC;wBACH,KAAK,CAAC,CAAC,GAAgD,CAAA;oBACzD,CAAC;4BAAS,CAAC;wBACT,qBAAsB,EAAE,CAAA;oBAC1B,CAAC;gBACH,CAAC;gBACD,MAAM,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAA;gBAC9B,kBAAmB,EAAE,CAAA;gBACrB,MAAM,cAAc,CAAA;YACtB,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;YAC1B,CAAC;YACD,OAAM;QACR,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,GAAG,CAAA;QAEzB,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC/B,MAAM,EAAE,GAAG,OAAmB,CAAA;gBAC9B,MAAM,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAA;YACjF,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,OAAsB,CAAA;gBAClC,MAAM,GAAG;oBACP,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE;wBACL,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,OAAO,EAAE,GAAG,CAAC,OAAO;wBACpB,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;qBAC5E;oBACD,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC3C,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;iBACzE,CAAA;YACH,CAAC;YACD,OAAM;QACR,CAAC;QAED,MAAM,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;IACtC,CAAC,CAAA;IAED,IAAI,CAAC;QACH,sBAAsB;QACtB,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAErE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,CAAC,IAMhB,EAAS,EAAE;gBACV,0FAA0F;gBAC1F,MAAM,GAAG;oBACP,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE;wBACL,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;qBAC9E;oBACD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC7C,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;iBAC3E,CAAA;gBACD,OAAO,SAAkB,CAAA;YAC3B,CAAC,CAAA;YAED,MAAM,KAAK,GAAsB;gBAC/B,KAAK;gBACL,OAAO,EAAE,IAAI;gBACb,WAAW;gBACX,GAAG,EAAE,MAAM;gBACX,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,MAAa;gBACrB,cAAc;gBACd,IAAI;gBACJ,GAAG,CAAC,GAAW,EAAE,KAAc;oBAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;gBACtB,CAAC;gBACD,GAAG,EAAE,OAAO;gBACZ,OAAO;aACR,CAAA;YAED,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CACtC,CAAC,IAAyB,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE;gBAC5C,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YACvB,CAAC,EACD,UAAU,CACX,CAAA;YACD,6EAA6E;YAC7E,8EAA8E;YAC9E,iFAAiF;YACjF,sFAAsF;YACtF,MAAM,YAAY,GAAG,QAAQ,EAAE,CAAA;YAC/B,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAA;YAC/C,IAAI,cAAc;gBAAE,OAAO,MAAO,CAAA;YAClC,MAAM,YAAY,CAAA;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,EAAE,CAAA;QACpB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,eAAe;YAClC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACL,IAAI,EAAE,kBAAkB;oBACxB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,WAAW,EAAE,KAAK,CAAC,WAAW;iBAC/B;aACF,CAAA;QACH,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE;gBACL,IAAI,EAAE,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBAC1D,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC/D,GAAG,CAAC,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;aAC9E;YACD,GAAG,CAAC,KAAK,YAAY,UAAU,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;gBAC7D,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE;gBAC9B,CAAC,CAAC,SAAS,CAAC;SACf,CAAA;IACH,CAAC;IAED,OAAO,MAAM,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;AAChD,CAAC;AAED,6EAA6E;AAC7E,SAAS,WAAW,CAClB,MAA+B,EAC/B,OAAY;IAEZ,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAC5E,MAAM,CAAC,GAA4B,EAAE,CAAA;IACrC,MAAM,CAAC,GAA4B,EAAE,CAAA;IACrC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAC/C,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;;YAC/B,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IACrB,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAA;AAChC,CAAC;AA2DD,iDAAiD;AACjD,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,QAAQ,IAAI,KAAK,CAAA;AACzE,CAAC;AAED,iDAAiD;AACjD,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,MAAM,CAAC,aAAa,IAAI,KAAK;QAC7B,OAAQ,KAAa,CAAC,IAAI,KAAK,UAAU,CAC1C,CAAA;AACH,CAAC;AAcD,4EAA4E;AAC5E,SAAS,UAAU,CACjB,GAA4C;IAE5C,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,6CAA6C;AAC7C,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAU,CAAA;AAKjE,gFAAgF;AAChF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,kCAAkC;QAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACb,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;SACpE,CAAC;QACF,IAAI,CAAC,IAAI;YACP,MAAM,IAAI,GAAG;gBACX,CAAC,MAAM,EAAE,WAAW,IAAI,qBAAqB,EAAE,oBAAoB,CAAC;gBACpE,CAAC,MAAM,EAAE,GAAG,IAAI,4BAA4B,EAAE,qCAAqC,CAAC;gBACpF,CAAC,SAAS,EAAE,SAAS,IAAI,wBAAwB,EAAE,oBAAoB,CAAC;gBACxE,CAAC,KAAK,EAAE,WAAW,IAAI,oBAAoB,EAAE,mBAAmB,CAAC;aACzD,CAAA;YACV,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;YACxD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;YACtD,OAAO,CACL,UAAU;gBACV,IAAI;qBACD,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;qBACpF,IAAI,CAAC,IAAI,CAAC,CACd,CAAA;QACH,CAAC;KACF;IACD;QACE,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,wBAAwB;QACrC,WAAW,EAAE;YACX,UAAU,CAAC;gBACT,IAAI,EAAE,KAAK;gBACX,WAAW,EAAE,wBAAwB;gBACrC,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE;gBACvB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;oBAChB,KAAK,EAAE,CAAC;yBACL,MAAM,EAAE;yBACR,QAAQ,EAAE;yBACV,QAAQ,CAAC,oDAAoD,CAAC;oBACjE,OAAO,EAAE,CAAC;yBACP,MAAM,EAAE;yBACR,QAAQ,EAAE;yBACV,QAAQ,CAAC,iEAAiE,CAAC;oBAC9E,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;iBACpF,CAAC;aACH,CAAC;SACH;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,OAAO,CAAC;QAClB,WAAW,EAAE,4BAA4B;QACzC,WAAW,EAAE;YACX,UAAU,CAAC;gBACT,IAAI,EAAE,KAAK;gBACX,WAAW,EAAE,4BAA4B;gBACzC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;oBAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;oBACpF,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;iBACpF,CAAC;aACH,CAAC;YACF,UAAU,CAAC;gBACT,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,aAAa;aAC3B,CAAC;SACH;KACF;CAQA,CAAA;AAEH,8DAA8D;AAC9D,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;AACpF,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;AACpF,CAAC"}
|
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,72 @@ 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
|
+
|
|
4621
|
+
test('root CLI aliases register as command aliases', async () => {
|
|
4622
|
+
const update = Cli.create('update', {
|
|
4623
|
+
aliases: ['upgrade'],
|
|
4624
|
+
description: 'Update packages',
|
|
4625
|
+
run: () => ({ result: 'updated' }),
|
|
4626
|
+
})
|
|
4627
|
+
const cli = Cli.create('pkg').command(update)
|
|
4628
|
+
const { output } = await serve(cli, ['upgrade'])
|
|
4629
|
+
expect(output).toContain('updated')
|
|
4630
|
+
})
|
|
4631
|
+
})
|
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,11 +245,16 @@ 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)
|
|
245
253
|
if (mountedRootDef) {
|
|
246
254
|
commands.set(nameOrCli.name, mountedRootDef)
|
|
255
|
+
const rootAliases = toRootAliases.get(nameOrCli)
|
|
256
|
+
if (rootAliases)
|
|
257
|
+
for (const a of rootAliases) commands.set(a, { _alias: true, target: nameOrCli.name })
|
|
247
258
|
return cli
|
|
248
259
|
}
|
|
249
260
|
const sub = nameOrCli as Cli
|
|
@@ -300,6 +311,7 @@ export function create(
|
|
|
300
311
|
}
|
|
301
312
|
|
|
302
313
|
if (rootDef) toRootDefinition.set(cli as unknown as Root, rootDef)
|
|
314
|
+
if (rootDef && def.aliases) toRootAliases.set(cli as unknown as Root, def.aliases)
|
|
303
315
|
if (def.options) toRootOptions.set(cli, def.options)
|
|
304
316
|
if (def.config !== undefined) toConfigEnabled.set(cli, true)
|
|
305
317
|
if (def.outputPolicy) toOutputPolicy.set(cli, def.outputPolicy)
|
|
@@ -530,8 +542,8 @@ async function serveImpl(
|
|
|
530
542
|
})
|
|
531
543
|
}
|
|
532
544
|
} else if (nonFlags.length === 2) {
|
|
533
|
-
const parent = nonFlags[nonFlags.length - 1]
|
|
534
|
-
const builtin =
|
|
545
|
+
const parent = nonFlags[nonFlags.length - 1]!
|
|
546
|
+
const builtin = findBuiltin(parent)
|
|
535
547
|
if (builtin?.subcommands)
|
|
536
548
|
for (const sub of builtin.subcommands)
|
|
537
549
|
if (sub.name.startsWith(current))
|
|
@@ -546,9 +558,8 @@ async function serveImpl(
|
|
|
546
558
|
// Skills staleness check (skip for built-in commands)
|
|
547
559
|
let skillsCta: FormattedCtaBlock | undefined
|
|
548
560
|
if (!llms && !llmsFull && !schema && !help && !version) {
|
|
549
|
-
const isSkillsAdd =
|
|
550
|
-
|
|
551
|
-
const isMcpAdd = filtered[0] === 'mcp' || (filtered[0] === name && filtered[1] === 'mcp')
|
|
561
|
+
const isSkillsAdd = builtinIdx(filtered, name, 'skills') !== -1
|
|
562
|
+
const isMcpAdd = builtinIdx(filtered, name, 'mcp') !== -1
|
|
552
563
|
if (!isSkillsAdd && !isMcpAdd) {
|
|
553
564
|
const stored = SyncSkills.readHash(name)
|
|
554
565
|
if (stored) {
|
|
@@ -574,8 +585,9 @@ async function serveImpl(
|
|
|
574
585
|
const prefix: string[] = []
|
|
575
586
|
let scopedDescription: string | undefined = options.description
|
|
576
587
|
for (const token of filtered) {
|
|
577
|
-
const
|
|
578
|
-
if (!
|
|
588
|
+
const rawEntry = scopedCommands.get(token)
|
|
589
|
+
if (!rawEntry) break
|
|
590
|
+
const entry = resolveAlias(scopedCommands, rawEntry)
|
|
579
591
|
if (isGroup(entry)) {
|
|
580
592
|
scopedCommands = entry.commands
|
|
581
593
|
scopedDescription = entry.description
|
|
@@ -613,19 +625,11 @@ async function serveImpl(
|
|
|
613
625
|
}
|
|
614
626
|
|
|
615
627
|
// 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') {
|
|
628
|
+
const completionsIdx = builtinIdx(filtered, name, 'completions')
|
|
629
|
+
if (completionsIdx !== -1) {
|
|
626
630
|
const shell = filtered[completionsIdx + 1]
|
|
627
631
|
if (help || !shell) {
|
|
628
|
-
const b =
|
|
632
|
+
const b = findBuiltin('completions')!
|
|
629
633
|
writeln(
|
|
630
634
|
Help.formatCommand(`${name} completions`, {
|
|
631
635
|
args: b.args,
|
|
@@ -652,9 +656,8 @@ async function serveImpl(
|
|
|
652
656
|
}
|
|
653
657
|
|
|
654
658
|
// 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') {
|
|
659
|
+
const skillsIdx = builtinIdx(filtered, name, 'skills')
|
|
660
|
+
if (skillsIdx !== -1) {
|
|
658
661
|
const skillsSub = filtered[skillsIdx + 1]
|
|
659
662
|
if (skillsSub && skillsSub !== 'add' && skillsSub !== 'list') {
|
|
660
663
|
const suggestion = suggest(skillsSub, ['add', 'list'])
|
|
@@ -681,13 +684,13 @@ async function serveImpl(
|
|
|
681
684
|
return
|
|
682
685
|
}
|
|
683
686
|
if (!skillsSub) {
|
|
684
|
-
const b =
|
|
687
|
+
const b = findBuiltin('skills')!
|
|
685
688
|
writeln(formatBuiltinHelp(name, b))
|
|
686
689
|
return
|
|
687
690
|
}
|
|
688
691
|
if (skillsSub === 'list') {
|
|
689
692
|
if (help) {
|
|
690
|
-
const b =
|
|
693
|
+
const b = findBuiltin('skills')!
|
|
691
694
|
writeln(formatBuiltinSubcommandHelp(name, b, 'list'))
|
|
692
695
|
return
|
|
693
696
|
}
|
|
@@ -733,7 +736,7 @@ async function serveImpl(
|
|
|
733
736
|
return
|
|
734
737
|
}
|
|
735
738
|
if (help) {
|
|
736
|
-
const b =
|
|
739
|
+
const b = findBuiltin('skills')!
|
|
737
740
|
writeln(formatBuiltinSubcommandHelp(name, b, 'add'))
|
|
738
741
|
return
|
|
739
742
|
}
|
|
@@ -797,8 +800,8 @@ async function serveImpl(
|
|
|
797
800
|
}
|
|
798
801
|
|
|
799
802
|
// mcp add: register CLI as MCP server via `npx add-mcp`
|
|
800
|
-
const mcpIdx = filtered
|
|
801
|
-
if (mcpIdx !== -1
|
|
803
|
+
const mcpIdx = builtinIdx(filtered, name, 'mcp')
|
|
804
|
+
if (mcpIdx !== -1) {
|
|
802
805
|
const mcpSub = filtered[mcpIdx + 1]
|
|
803
806
|
if (mcpSub && mcpSub !== 'add') {
|
|
804
807
|
const suggestion = suggest(mcpSub, ['add'])
|
|
@@ -822,12 +825,12 @@ async function serveImpl(
|
|
|
822
825
|
return
|
|
823
826
|
}
|
|
824
827
|
if (!mcpSub) {
|
|
825
|
-
const b =
|
|
828
|
+
const b = findBuiltin('mcp')!
|
|
826
829
|
writeln(formatBuiltinHelp(name, b))
|
|
827
830
|
return
|
|
828
831
|
}
|
|
829
832
|
if (help) {
|
|
830
|
-
const b =
|
|
833
|
+
const b = findBuiltin('mcp')!
|
|
831
834
|
writeln(formatBuiltinSubcommandHelp(name, b, 'add'))
|
|
832
835
|
return
|
|
833
836
|
}
|
|
@@ -1008,7 +1011,7 @@ async function serveImpl(
|
|
|
1008
1011
|
writeln(
|
|
1009
1012
|
Help.formatCommand(commandName, {
|
|
1010
1013
|
alias: cmd.alias as Record<string, string> | undefined,
|
|
1011
|
-
aliases: isRootCmd ? options.aliases :
|
|
1014
|
+
aliases: isRootCmd ? options.aliases : cmd.aliases,
|
|
1012
1015
|
configFlag,
|
|
1013
1016
|
description: cmd.description,
|
|
1014
1017
|
version: isRootCmd ? options.version : undefined,
|
|
@@ -1080,9 +1083,18 @@ async function serveImpl(
|
|
|
1080
1083
|
const resolvedFormat = 'command' in resolved && (resolved as any).command.format
|
|
1081
1084
|
const format = formatExplicit ? formatFlag : resolvedFormat || options.format || 'toon'
|
|
1082
1085
|
|
|
1083
|
-
// Fall back to root fetch when no subcommand matches
|
|
1086
|
+
// Fall back to root fetch/command when no subcommand matches,
|
|
1087
|
+
// but only if the token doesn't look like a typo of a known command.
|
|
1088
|
+
const rootFallbackBlocked =
|
|
1089
|
+
'error' in resolved &&
|
|
1090
|
+
!resolved.path &&
|
|
1091
|
+
(() => {
|
|
1092
|
+
const candidates = [...resolved.commands.keys()]
|
|
1093
|
+
for (const b of builtinCommands) candidates.push(b.name)
|
|
1094
|
+
return suggest(resolved.error, candidates) !== undefined
|
|
1095
|
+
})()
|
|
1084
1096
|
const effective =
|
|
1085
|
-
'error' in resolved && options.rootFetch && !resolved.path
|
|
1097
|
+
'error' in resolved && options.rootFetch && !resolved.path && !rootFallbackBlocked
|
|
1086
1098
|
? {
|
|
1087
1099
|
fetchGateway: {
|
|
1088
1100
|
_fetch: true as const,
|
|
@@ -1093,7 +1105,7 @@ async function serveImpl(
|
|
|
1093
1105
|
path: name,
|
|
1094
1106
|
rest: filtered,
|
|
1095
1107
|
}
|
|
1096
|
-
: 'error' in resolved && options.rootCommand && !resolved.path
|
|
1108
|
+
: 'error' in resolved && options.rootCommand && !resolved.path && !rootFallbackBlocked
|
|
1097
1109
|
? { command: options.rootCommand, path: name, rest: filtered }
|
|
1098
1110
|
: resolved
|
|
1099
1111
|
|
|
@@ -1897,7 +1909,7 @@ function resolveCommand(
|
|
|
1897
1909
|
|
|
1898
1910
|
if (!first || !commands.has(first)) return { error: first ?? '(none)', path: '', commands, rest }
|
|
1899
1911
|
|
|
1900
|
-
let entry = commands.get(first)!
|
|
1912
|
+
let entry = resolveAlias(commands, commands.get(first)!)
|
|
1901
1913
|
const path = [first]
|
|
1902
1914
|
let remaining = rest
|
|
1903
1915
|
let inheritedOutputPolicy: OutputPolicy | undefined
|
|
@@ -1927,8 +1939,8 @@ function resolveCommand(
|
|
|
1927
1939
|
commands: entry.commands,
|
|
1928
1940
|
}
|
|
1929
1941
|
|
|
1930
|
-
const
|
|
1931
|
-
if (!
|
|
1942
|
+
const rawChild = entry.commands.get(next)
|
|
1943
|
+
if (!rawChild) {
|
|
1932
1944
|
return {
|
|
1933
1945
|
error: next,
|
|
1934
1946
|
path: path.join(' '),
|
|
@@ -1936,6 +1948,7 @@ function resolveCommand(
|
|
|
1936
1948
|
rest: remaining.slice(1),
|
|
1937
1949
|
}
|
|
1938
1950
|
}
|
|
1951
|
+
let child = resolveAlias(entry.commands, rawChild)
|
|
1939
1952
|
|
|
1940
1953
|
path.push(next)
|
|
1941
1954
|
remaining = remaining.slice(1)
|
|
@@ -2260,14 +2273,26 @@ function collectHelpCommands(
|
|
|
2260
2273
|
): { name: string; description?: string | undefined }[] {
|
|
2261
2274
|
const result: { name: string; description?: string | undefined }[] = []
|
|
2262
2275
|
for (const [name, entry] of commands) {
|
|
2276
|
+
if (isAlias(entry)) continue
|
|
2263
2277
|
result.push({ name, description: entry.description })
|
|
2264
2278
|
}
|
|
2265
2279
|
return result.sort((a, b) => a.name.localeCompare(b.name))
|
|
2266
2280
|
}
|
|
2267
2281
|
|
|
2282
|
+
/** @internal Finds the index of a builtin command token in the filtered argv. Returns -1 if not found. */
|
|
2283
|
+
function builtinIdx(filtered: string[], cliName: string, builtin: string): number {
|
|
2284
|
+
// e.g. `skills add` or `skill add`
|
|
2285
|
+
if (findBuiltin(filtered[0]!)?.name === builtin) return 0
|
|
2286
|
+
// e.g. `my-cli skills add`
|
|
2287
|
+
if (filtered[0] === cliName && findBuiltin(filtered[1]!)?.name === builtin) return 1
|
|
2288
|
+
// not a match
|
|
2289
|
+
return -1
|
|
2290
|
+
}
|
|
2291
|
+
|
|
2268
2292
|
/** @internal Formats group-level help for a built-in command (e.g. `cli skills`). */
|
|
2269
2293
|
function formatBuiltinHelp(cli: string, builtin: (typeof builtinCommands)[number]): string {
|
|
2270
2294
|
return Help.formatRoot(`${cli} ${builtin.name}`, {
|
|
2295
|
+
aliases: builtin.aliases,
|
|
2271
2296
|
description: builtin.description,
|
|
2272
2297
|
commands: builtin.subcommands?.map((s) => ({ name: s.name, description: s.description })),
|
|
2273
2298
|
})
|
|
@@ -2314,7 +2339,11 @@ export type CommandsMap = Record<
|
|
|
2314
2339
|
>
|
|
2315
2340
|
|
|
2316
2341
|
/** @internal Entry stored in a command map — either a leaf definition, a group, or a fetch gateway. */
|
|
2317
|
-
type CommandEntry =
|
|
2342
|
+
type CommandEntry =
|
|
2343
|
+
| CommandDefinition<any, any, any>
|
|
2344
|
+
| InternalGroup
|
|
2345
|
+
| InternalFetchGateway
|
|
2346
|
+
| InternalAlias
|
|
2318
2347
|
|
|
2319
2348
|
/** Controls when output data is displayed. `'all'` displays to both humans and agents. `'agent-only'` suppresses data output in human/TTY mode. */
|
|
2320
2349
|
export type OutputPolicy = 'agent-only' | 'all'
|
|
@@ -2350,6 +2379,27 @@ function isFetchGateway(entry: CommandEntry): entry is InternalFetchGateway {
|
|
|
2350
2379
|
return '_fetch' in entry
|
|
2351
2380
|
}
|
|
2352
2381
|
|
|
2382
|
+
/** @internal An alias entry that points to another command by name. */
|
|
2383
|
+
type InternalAlias = {
|
|
2384
|
+
_alias: true
|
|
2385
|
+
/** The canonical command name this alias resolves to. */
|
|
2386
|
+
target: string
|
|
2387
|
+
}
|
|
2388
|
+
|
|
2389
|
+
/** @internal Type guard for alias entries. */
|
|
2390
|
+
function isAlias(entry: CommandEntry): entry is InternalAlias {
|
|
2391
|
+
return '_alias' in entry
|
|
2392
|
+
}
|
|
2393
|
+
|
|
2394
|
+
/** @internal Follows an alias entry to its canonical target. Returns the entry unchanged if not an alias. */
|
|
2395
|
+
function resolveAlias(
|
|
2396
|
+
commands: Map<string, CommandEntry>,
|
|
2397
|
+
entry: CommandEntry,
|
|
2398
|
+
): Exclude<CommandEntry, InternalAlias> {
|
|
2399
|
+
if (isAlias(entry)) return commands.get(entry.target)! as Exclude<CommandEntry, InternalAlias>
|
|
2400
|
+
return entry
|
|
2401
|
+
}
|
|
2402
|
+
|
|
2353
2403
|
/** @internal Maps CLI instances to their command maps. */
|
|
2354
2404
|
export const toCommands = new WeakMap<Cli, Map<string, CommandEntry>>()
|
|
2355
2405
|
|
|
@@ -2368,6 +2418,9 @@ export const toConfigEnabled = new WeakMap<Cli, boolean>()
|
|
|
2368
2418
|
/** @internal Maps CLI instances to their output policy. */
|
|
2369
2419
|
const toOutputPolicy = new WeakMap<Cli, OutputPolicy>()
|
|
2370
2420
|
|
|
2421
|
+
/** @internal Maps root CLI instances to their command aliases. */
|
|
2422
|
+
const toRootAliases = new WeakMap<Root, string[]>()
|
|
2423
|
+
|
|
2371
2424
|
/** @internal Sentinel symbol for `ok()` and `error()` return values. */
|
|
2372
2425
|
const sentinel = Symbol.for('incur.sentinel')
|
|
2373
2426
|
|
|
@@ -2672,6 +2725,7 @@ function collectIndexCommands(
|
|
|
2672
2725
|
): { name: string; description?: string | undefined }[] {
|
|
2673
2726
|
const result: { name: string; description?: string | undefined }[] = []
|
|
2674
2727
|
for (const [name, entry] of commands) {
|
|
2728
|
+
if (isAlias(entry)) continue
|
|
2675
2729
|
const path = [...prefix, name]
|
|
2676
2730
|
if (isGroup(entry)) {
|
|
2677
2731
|
result.push(...collectIndexCommands(entry.commands, path))
|
|
@@ -2706,6 +2760,7 @@ function collectCommands(
|
|
|
2706
2760
|
}[] {
|
|
2707
2761
|
const result: ReturnType<typeof collectCommands> = []
|
|
2708
2762
|
for (const [name, entry] of commands) {
|
|
2763
|
+
if (isAlias(entry)) continue
|
|
2709
2764
|
const path = [...prefix, name]
|
|
2710
2765
|
if (isFetchGateway(entry)) {
|
|
2711
2766
|
const cmd: (typeof result)[number] = { name: path.join(' ') }
|
|
@@ -2762,6 +2817,7 @@ function collectSkillCommands(
|
|
|
2762
2817
|
result.push(cmd)
|
|
2763
2818
|
}
|
|
2764
2819
|
for (const [name, entry] of commands) {
|
|
2820
|
+
if (isAlias(entry)) continue
|
|
2765
2821
|
const path = [...prefix, name]
|
|
2766
2822
|
if (isFetchGateway(entry)) {
|
|
2767
2823
|
const cmd: Skill.CommandInfo = { name: path.join(' ') }
|
|
@@ -2931,6 +2987,8 @@ type CommandDefinition<
|
|
|
2931
2987
|
vars extends z.ZodObject<any> | undefined = undefined,
|
|
2932
2988
|
cliEnv extends z.ZodObject<any> | undefined = undefined,
|
|
2933
2989
|
> = CommandMeta<options> & {
|
|
2990
|
+
/** Alternative names for this command (e.g. `['extensions', 'ext']` for an `extension` command). */
|
|
2991
|
+
aliases?: string[] | undefined
|
|
2934
2992
|
/** Zod schema for positional arguments. */
|
|
2935
2993
|
args?: args | undefined
|
|
2936
2994
|
/** 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
|
+
}
|