@flowscripter/dynamic-cli-framework 1.6.1 → 1.6.2

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.
Files changed (33) hide show
  1. package/cli-plugin.ts +77 -0
  2. package/dist/cli-plugin.d.ts +39 -0
  3. package/dist/cli-plugin.d.ts.map +1 -1
  4. package/dist/cli-plugin.js +155 -1
  5. package/dist/index.js +178 -164
  6. package/dist/src/api/service/core/CompletionService.d.ts +1 -1
  7. package/dist/src/api/service/core/CompletionService.d.ts.map +1 -1
  8. package/dist/src/command/CompletionCommand.d.ts.map +1 -1
  9. package/dist/src/command/PluginCommand.d.ts.map +1 -1
  10. package/dist/src/service/completion/CompletionServiceProvider.d.ts.map +1 -1
  11. package/dist/src/service/completion/DefaultCompletionService.d.ts +1 -1
  12. package/dist/src/service/completion/DefaultCompletionService.d.ts.map +1 -1
  13. package/dist/src/service/completion/shell/ShellHandler.d.ts +1 -1
  14. package/dist/src/service/completion/shell/ShellHandler.d.ts.map +1 -1
  15. package/dist/src/service/completion/shell/bash.d.ts +1 -1
  16. package/dist/src/service/completion/shell/bash.d.ts.map +1 -1
  17. package/dist/src/service/completion/shell/fish.d.ts +1 -1
  18. package/dist/src/service/completion/shell/fish.d.ts.map +1 -1
  19. package/dist/src/service/completion/shell/powershell.d.ts +1 -1
  20. package/dist/src/service/completion/shell/powershell.d.ts.map +1 -1
  21. package/dist/src/service/completion/shell/zsh.d.ts +1 -1
  22. package/dist/src/service/completion/shell/zsh.d.ts.map +1 -1
  23. package/package.json +5 -5
  24. package/src/api/service/core/CompletionService.ts +1 -1
  25. package/src/command/CompletionCommand.ts +6 -1
  26. package/src/command/PluginCommand.ts +20 -7
  27. package/src/service/completion/CompletionServiceProvider.ts +6 -1
  28. package/src/service/completion/DefaultCompletionService.ts +2 -2
  29. package/src/service/completion/shell/ShellHandler.ts +1 -1
  30. package/src/service/completion/shell/bash.ts +2 -2
  31. package/src/service/completion/shell/fish.ts +2 -2
  32. package/src/service/completion/shell/powershell.ts +5 -3
  33. package/src/service/completion/shell/zsh.ts +2 -2
@@ -14,7 +14,7 @@ export interface CompletionItem {
14
14
  */
15
15
  export default interface CompletionService {
16
16
  generateCompletions(shellType: ShellType, line: string, cursorPosition: number): Promise<ReadonlyArray<CompletionItem>>;
17
- getBootstrapScript(shellType: ShellType, cliName: string): string;
17
+ getBootstrapScript(shellType: ShellType, cliName: string, executablePath: string): string;
18
18
  getDefaultConfigPath(shellType: ShellType): string;
19
19
  validateShellEnvironment(shellType: ShellType): Promise<boolean>;
20
20
  formatCompletions(shellType: ShellType, completions: ReadonlyArray<CompletionItem>): string;
@@ -1 +1 @@
1
- {"version":3,"file":"CompletionService.d.ts","sourceRoot":"","sources":["../../../../../src/api/service/core/CompletionService.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,2DAA2D,CAAC;AAE9F,oBAAY,SAAS;IACnB,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,UAAU,eAAe;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,iBAAiB;IACxC,mBAAmB,CACjB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;IAE1C,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAElE,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC;IAEnD,wBAAwB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjE,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC;CAC7F"}
1
+ {"version":3,"file":"CompletionService.d.ts","sourceRoot":"","sources":["../../../../../src/api/service/core/CompletionService.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,2DAA2D,CAAC;AAE9F,oBAAY,SAAS;IACnB,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,UAAU,eAAe;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,iBAAiB;IACxC,mBAAmB,CACjB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;IAE1C,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC;IAE1F,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC;IAEnD,wBAAwB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjE,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC;CAC7F"}
@@ -1 +1 @@
1
- {"version":3,"file":"CompletionCommand.d.ts","sourceRoot":"","sources":["../../../src/command/CompletionCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,UAAU,MAAM,8BAA8B,CAAC;AAC3D,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAC5D,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,KAAK,cAAc,EAAyB,MAAM,uCAAuC,CAAC;AAMnG,qBAAa,+BAAgC,YAAW,UAAU;IAChE,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,WAAW,0CAA0C;IAC9D,QAAQ,CAAC,mBAAmB,SAAS;IAErC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAOrC;IAEF,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,CAO7C;IAEI,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAwD/E;AAED,qBAAa,4BAA6B,YAAW,UAAU;IAC7D,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,WAAW,gDAAgD;IACpE,QAAQ,CAAC,mBAAmB,SAAS;IAErC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAM;IAE7C,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,CAc7C;IAEI,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAqB/E;AAED,qBAAa,sBAAuB,YAAW,YAAY;IACzD,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,WAAW,kCAAkC;IACtD,QAAQ,CAAC,mBAAmB,SAAS;IACrC,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;gBAGpD,kBAAkB,EAAE,+BAA+B,EACnD,eAAe,EAAE,4BAA4B;IAKzC,OAAO,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAChD"}
1
+ {"version":3,"file":"CompletionCommand.d.ts","sourceRoot":"","sources":["../../../src/command/CompletionCommand.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,YAAY,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,UAAU,MAAM,8BAA8B,CAAC;AAC3D,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAC5D,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,KAAK,cAAc,EAAyB,MAAM,uCAAuC,CAAC;AAMnG,qBAAa,+BAAgC,YAAW,UAAU;IAChE,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,WAAW,0CAA0C;IAC9D,QAAQ,CAAC,mBAAmB,SAAS;IAErC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAOrC;IAEF,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,CAO7C;IAEI,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CA4D/E;AAED,qBAAa,4BAA6B,YAAW,UAAU;IAC7D,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,WAAW,gDAAgD;IACpE,QAAQ,CAAC,mBAAmB,SAAS;IAErC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAM;IAE7C,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,CAc7C;IAEI,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAqB/E;AAED,qBAAa,sBAAuB,YAAW,YAAY;IACzD,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,WAAW,kCAAkC;IACtD,QAAQ,CAAC,mBAAmB,SAAS;IACrC,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;gBAGpD,kBAAkB,EAAE,+BAA+B,EACnD,eAAe,EAAE,4BAA4B;IAKzC,OAAO,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAChD"}
@@ -1 +1 @@
1
- {"version":3,"file":"PluginCommand.d.ts","sourceRoot":"","sources":["../../../src/command/PluginCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,UAAU,MAAM,8BAA8B,CAAC;AAC3D,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAW9E,qBAAa,oBAAqB,YAAW,UAAU;IACrD,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,WAAW,oCAAoC;IACxD,QAAQ,CAAC,mBAAmB,SAAS;IACrC,QAAQ,CAAC,OAAO,UAAM;IACtB,QAAQ,CAAC,WAAW,UAAM;IAEpB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBhF;AAED,qBAAa,sBAAuB,YAAW,UAAU;IACvD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,WAAW,2BAA2B;IAC/C,QAAQ,CAAC,mBAAmB,SAAS;IACrC,QAAQ,CAAC,OAAO,UAAM;IACtB,QAAQ,CAAC,WAAW;;;;;QAOlB;IAEI,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAiB/E;AAED,qBAAa,mBAAoB,YAAW,UAAU;IACpD,QAAQ,CAAC,IAAI,SAAS;IACtB,QAAQ,CAAC,WAAW,6BAA6B;IACjD,QAAQ,CAAC,mBAAmB,SAAS;IACrC,QAAQ,CAAC,OAAO,UAAM;IACtB,QAAQ,CAAC,WAAW;;;;QAMlB;IAEI,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CA0B/E;AAED,qBAAa,sBAAuB,YAAW,UAAU;IACvD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,WAAW,uCAAuC;IAC3D,QAAQ,CAAC,mBAAmB,SAAS;IACrC,QAAQ,CAAC,OAAO,UAAM;IACtB,QAAQ,CAAC,WAAW;;;;QAMlB;IAEI,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAS/E;AAED,qBAAa,uBAAwB,YAAW,UAAU;IACxD,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,WAAW,uCAAuC;IAC3D,QAAQ,CAAC,mBAAmB,SAAS;IACrC,QAAQ,CAAC,OAAO,UAAM;IACtB,QAAQ,CAAC,WAAW,UAAM;IAEpB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAmBhF;AAED,qBAAa,kBAAmB,YAAW,YAAY;IACrD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,WAAW,wBAAwB;IAC5C,QAAQ,CAAC,mBAAmB,SAAS;IACrC,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;;IAYhD,OAAO,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAChD"}
1
+ {"version":3,"file":"PluginCommand.d.ts","sourceRoot":"","sources":["../../../src/command/PluginCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,UAAU,MAAM,8BAA8B,CAAC;AAC3D,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAW9E,qBAAa,oBAAqB,YAAW,UAAU;IACrD,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,WAAW,oCAAoC;IACxD,QAAQ,CAAC,mBAAmB,SAAS;IACrC,QAAQ,CAAC,OAAO,UAAM;IACtB,QAAQ,CAAC,WAAW,UAAM;IAEpB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBhF;AAED,qBAAa,sBAAuB,YAAW,UAAU;IACvD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,WAAW,2BAA2B;IAC/C,QAAQ,CAAC,mBAAmB,SAAS;IACrC,QAAQ,CAAC,OAAO,UAAM;IACtB,QAAQ,CAAC,WAAW;;;;;QAOlB;IAEI,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAiB/E;AAED,qBAAa,mBAAoB,YAAW,UAAU;IACpD,QAAQ,CAAC,IAAI,SAAS;IACtB,QAAQ,CAAC,WAAW,6BAA6B;IACjD,QAAQ,CAAC,mBAAmB,SAAS;IACrC,QAAQ,CAAC,OAAO,UAAM;IACtB,QAAQ,CAAC,WAAW;;;;QAMlB;IAEI,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAuC/E;AAED,qBAAa,sBAAuB,YAAW,UAAU;IACvD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,WAAW,uCAAuC;IAC3D,QAAQ,CAAC,mBAAmB,SAAS;IACrC,QAAQ,CAAC,OAAO,UAAM;IACtB,QAAQ,CAAC,WAAW;;;;QAMlB;IAEI,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAS/E;AAED,qBAAa,uBAAwB,YAAW,UAAU;IACxD,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,WAAW,uCAAuC;IAC3D,QAAQ,CAAC,mBAAmB,SAAS;IACrC,QAAQ,CAAC,OAAO,UAAM;IACtB,QAAQ,CAAC,WAAW,UAAM;IAEpB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAmBhF;AAED,qBAAa,kBAAmB,YAAW,YAAY;IACrD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,WAAW,wBAAwB;IAC5C,QAAQ,CAAC,mBAAmB,SAAS;IACrC,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;;IAYhD,OAAO,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAChD"}
@@ -1 +1 @@
1
- {"version":3,"file":"CompletionServiceProvider.d.ts","sourceRoot":"","sources":["../../../../src/service/completion/CompletionServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAGhD,OAAO,KAAK,wBAAwB,MAAM,+BAA+B,CAAC;AAY1E,MAAM,CAAC,OAAO,OAAO,yBAA0B,YAAW,eAAe;;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAyB;IACnD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;gBAId,eAAe,EAAE,MAAM,EAAE,iBAAiB,EAAE,wBAAwB;IAKhF,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAQpD,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAkJ1D"}
1
+ {"version":3,"file":"CompletionServiceProvider.d.ts","sourceRoot":"","sources":["../../../../src/service/completion/CompletionServiceProvider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAGhD,OAAO,KAAK,wBAAwB,MAAM,+BAA+B,CAAC;AAY1E,MAAM,CAAC,OAAO,OAAO,yBAA0B,YAAW,eAAe;;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAyB;IACnD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;gBAId,eAAe,EAAE,MAAM,EAAE,iBAAiB,EAAE,wBAAwB;IAKhF,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAQpD,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAsJ1D"}
@@ -4,7 +4,7 @@ import type CommandRegistry from "../../runtime/registry/CommandRegistry.ts";
4
4
  export default class DefaultCompletionService implements CompletionService {
5
5
  #private;
6
6
  setCommandRegistry(registry: CommandRegistry): void;
7
- getBootstrapScript(shellType: ShellType, cliName: string): string;
7
+ getBootstrapScript(shellType: ShellType, cliName: string, executablePath: string): string;
8
8
  getDefaultConfigPath(shellType: ShellType): string;
9
9
  validateShellEnvironment(shellType: ShellType): Promise<boolean>;
10
10
  formatCompletions(shellType: ShellType, completions: ReadonlyArray<CompletionItem>): string;
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultCompletionService.d.ts","sourceRoot":"","sources":["../../../../src/service/completion/DefaultCompletionService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,iBAAiB,MAAM,6CAA6C,CAAC;AACjF,OAAO,EAAE,KAAK,cAAc,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAC;AAC7F,OAAO,KAAK,eAAe,MAAM,2CAA2C,CAAC;AAS7E,MAAM,CAAC,OAAO,OAAO,wBAAyB,YAAW,iBAAiB;;IAUxE,kBAAkB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAInD,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAIjE,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM;IAIlD,wBAAwB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAIhE,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,MAAM;IAI3F,sBAAsB,CACpB,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAC1B;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE;IAI3C,mBAAmB,CACjB,UAAU,EAAE,SAAS,EACrB,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;CAgR1C"}
1
+ {"version":3,"file":"DefaultCompletionService.d.ts","sourceRoot":"","sources":["../../../../src/service/completion/DefaultCompletionService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,iBAAiB,MAAM,6CAA6C,CAAC;AACjF,OAAO,EAAE,KAAK,cAAc,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAC;AAC7F,OAAO,KAAK,eAAe,MAAM,2CAA2C,CAAC;AAS7E,MAAM,CAAC,OAAO,OAAO,wBAAyB,YAAW,iBAAiB;;IAUxE,kBAAkB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAInD,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM;IAIzF,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM;IAIlD,wBAAwB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAIhE,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,MAAM;IAI3F,sBAAsB,CACpB,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAC1B;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE;IAI3C,mBAAmB,CACjB,UAAU,EAAE,SAAS,EACrB,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;CAgR1C"}
@@ -5,7 +5,7 @@ export interface CompletionContext {
5
5
  }
6
6
  export default interface ShellHandler {
7
7
  getDefaultConfigPath(): string;
8
- getBootstrapScript(cliName: string): string;
8
+ getBootstrapScript(cliName: string, executablePath: string): string;
9
9
  validateEnvironment(): Promise<boolean>;
10
10
  formatCompletions(completions: ReadonlyArray<CompletionItem>): string;
11
11
  parseCompletionContext(args: ReadonlyArray<string>): CompletionContext;
@@ -1 +1 @@
1
- {"version":3,"file":"ShellHandler.d.ts","sourceRoot":"","sources":["../../../../../src/service/completion/shell/ShellHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAErF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,CAAC,OAAO,WAAW,YAAY;IACnC,oBAAoB,IAAI,MAAM,CAAC;IAC/B,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5C,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC;IACtE,sBAAsB,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC;CACxE"}
1
+ {"version":3,"file":"ShellHandler.d.ts","sourceRoot":"","sources":["../../../../../src/service/completion/shell/ShellHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAErF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,CAAC,OAAO,WAAW,YAAY;IACnC,oBAAoB,IAAI,MAAM,CAAC;IAC/B,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC;IACpE,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC;IACtE,sBAAsB,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC;CACxE"}
@@ -3,7 +3,7 @@ import type ShellHandler from "./ShellHandler.ts";
3
3
  import type { CompletionContext } from "./ShellHandler.ts";
4
4
  export default class BashShellHandler implements ShellHandler {
5
5
  getDefaultConfigPath(): string;
6
- getBootstrapScript(cliName: string): string;
6
+ getBootstrapScript(cliName: string, executablePath: string): string;
7
7
  validateEnvironment(): Promise<boolean>;
8
8
  formatCompletions(completions: ReadonlyArray<CompletionItem>): string;
9
9
  parseCompletionContext(args: ReadonlyArray<string>): CompletionContext;
@@ -1 +1 @@
1
- {"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../../../../src/service/completion/shell/bash.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAI3D,MAAM,CAAC,OAAO,OAAO,gBAAiB,YAAW,YAAY;IAC3D,oBAAoB,IAAI,MAAM;IAI9B,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAU3C,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAavC,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,MAAM;IAIrE,sBAAsB,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,iBAAiB;CAKvE"}
1
+ {"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../../../../src/service/completion/shell/bash.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAI3D,MAAM,CAAC,OAAO,OAAO,gBAAiB,YAAW,YAAY;IAC3D,oBAAoB,IAAI,MAAM;IAI9B,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM;IAUnE,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAavC,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,MAAM;IAIrE,sBAAsB,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,iBAAiB;CAKvE"}
@@ -3,7 +3,7 @@ import type ShellHandler from "./ShellHandler.ts";
3
3
  import type { CompletionContext } from "./ShellHandler.ts";
4
4
  export default class FishShellHandler implements ShellHandler {
5
5
  getDefaultConfigPath(): string;
6
- getBootstrapScript(cliName: string): string;
6
+ getBootstrapScript(cliName: string, executablePath: string): string;
7
7
  validateEnvironment(): Promise<boolean>;
8
8
  formatCompletions(completions: ReadonlyArray<CompletionItem>): string;
9
9
  parseCompletionContext(args: ReadonlyArray<string>): CompletionContext;
@@ -1 +1 @@
1
- {"version":3,"file":"fish.d.ts","sourceRoot":"","sources":["../../../../../src/service/completion/shell/fish.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAI3D,MAAM,CAAC,OAAO,OAAO,gBAAiB,YAAW,YAAY;IAC3D,oBAAoB,IAAI,MAAM;IAI9B,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAI3C,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAavC,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,MAAM;IAMrE,sBAAsB,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,iBAAiB;CAKvE"}
1
+ {"version":3,"file":"fish.d.ts","sourceRoot":"","sources":["../../../../../src/service/completion/shell/fish.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAI3D,MAAM,CAAC,OAAO,OAAO,gBAAiB,YAAW,YAAY;IAC3D,oBAAoB,IAAI,MAAM;IAI9B,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM;IAInE,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAavC,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,MAAM;IAMrE,sBAAsB,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,iBAAiB;CAKvE"}
@@ -3,7 +3,7 @@ import type ShellHandler from "./ShellHandler.ts";
3
3
  import type { CompletionContext } from "./ShellHandler.ts";
4
4
  export default class PowerShellShellHandler implements ShellHandler {
5
5
  getDefaultConfigPath(): string;
6
- getBootstrapScript(cliName: string): string;
6
+ getBootstrapScript(cliName: string, executablePath: string): string;
7
7
  validateEnvironment(): Promise<boolean>;
8
8
  formatCompletions(completions: ReadonlyArray<CompletionItem>): string;
9
9
  parseCompletionContext(args: ReadonlyArray<string>): CompletionContext;
@@ -1 +1 @@
1
- {"version":3,"file":"powershell.d.ts","sourceRoot":"","sources":["../../../../../src/service/completion/shell/powershell.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAI3D,MAAM,CAAC,OAAO,OAAO,sBAAuB,YAAW,YAAY;IACjE,oBAAoB,IAAI,MAAM;IAO9B,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAY3C,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAiBvC,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,MAAM;IAIrE,sBAAsB,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,iBAAiB;CAKvE"}
1
+ {"version":3,"file":"powershell.d.ts","sourceRoot":"","sources":["../../../../../src/service/completion/shell/powershell.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAI3D,MAAM,CAAC,OAAO,OAAO,sBAAuB,YAAW,YAAY;IACjE,oBAAoB,IAAI,MAAM;IAO9B,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM;IAYnE,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAmBvC,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,MAAM;IAIrE,sBAAsB,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,iBAAiB;CAKvE"}
@@ -3,7 +3,7 @@ import type ShellHandler from "./ShellHandler.ts";
3
3
  import type { CompletionContext } from "./ShellHandler.ts";
4
4
  export default class ZshShellHandler implements ShellHandler {
5
5
  getDefaultConfigPath(): string;
6
- getBootstrapScript(cliName: string): string;
6
+ getBootstrapScript(cliName: string, executablePath: string): string;
7
7
  validateEnvironment(): Promise<boolean>;
8
8
  formatCompletions(completions: ReadonlyArray<CompletionItem>): string;
9
9
  parseCompletionContext(args: ReadonlyArray<string>): CompletionContext;
@@ -1 +1 @@
1
- {"version":3,"file":"zsh.d.ts","sourceRoot":"","sources":["../../../../../src/service/completion/shell/zsh.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAI3D,MAAM,CAAC,OAAO,OAAO,eAAgB,YAAW,YAAY;IAC1D,oBAAoB,IAAI,MAAM;IAI9B,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAW3C,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAavC,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,MAAM;IAMrE,sBAAsB,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,iBAAiB;CAKvE"}
1
+ {"version":3,"file":"zsh.d.ts","sourceRoot":"","sources":["../../../../../src/service/completion/shell/zsh.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAI3D,MAAM,CAAC,OAAO,OAAO,eAAgB,YAAW,YAAY;IAC1D,oBAAoB,IAAI,MAAM;IAI9B,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM;IAWnE,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAavC,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,MAAM;IAMrE,sBAAsB,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,iBAAiB;CAKvE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowscripter/dynamic-cli-framework",
3
- "version": "1.6.1",
3
+ "version": "1.6.2",
4
4
  "description": "A framework for developing CLI applications which supports dynamic discovery and installation of new commands",
5
5
  "keywords": [
6
6
  "bun",
@@ -53,15 +53,15 @@
53
53
  "fastest-levenshtein": "^1.0.16",
54
54
  "figlet": "^1.11.0",
55
55
  "highlight.js": "^11.11.1",
56
- "prettier": "^3.8.4",
56
+ "prettier": "^3.9.4",
57
57
  "supports-color": "^10.2.2",
58
58
  "supports-terminal-graphics": "^0.1.0"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@types/bun": "^1.3.14",
62
- "@types/node": "^26.0.1",
63
- "oxfmt": "0.56.0",
64
- "oxlint": "1.71.0"
62
+ "@types/node": "^26.1.0",
63
+ "oxfmt": "0.57.0",
64
+ "oxlint": "1.72.0"
65
65
  },
66
66
  "peerDependencies": {
67
67
  "typescript": "^6.0.3"
@@ -22,7 +22,7 @@ export default interface CompletionService {
22
22
  cursorPosition: number,
23
23
  ): Promise<ReadonlyArray<CompletionItem>>;
24
24
 
25
- getBootstrapScript(shellType: ShellType, cliName: string): string;
25
+ getBootstrapScript(shellType: ShellType, cliName: string, executablePath: string): string;
26
26
 
27
27
  getDefaultConfigPath(shellType: ShellType): string;
28
28
 
@@ -1,3 +1,4 @@
1
+ import process from "node:process";
1
2
  import type GroupCommand from "../api/command/GroupCommand.ts";
2
3
  import type SubCommand from "../api/command/SubCommand.ts";
3
4
  import type Option from "../api/argument/Option.ts";
@@ -51,7 +52,11 @@ export class CompletionIntegrationSubCommand implements SubCommand {
51
52
 
52
53
  const configPath = configPathArg || completionService.getDefaultConfigPath(shellType);
53
54
  const cliName = context.cliConfig.name;
54
- const bootstrapScript = completionService.getBootstrapScript(shellType, cliName);
55
+ const bootstrapScript = completionService.getBootstrapScript(
56
+ shellType,
57
+ cliName,
58
+ process.execPath,
59
+ );
55
60
 
56
61
  const beginMarker = `# BEGIN ${cliName} completion`;
57
62
  const endMarker = `# END ${cliName} completion`;
@@ -98,17 +98,30 @@ export class PluginAddSubCommand implements SubCommand {
98
98
  break;
99
99
  }
100
100
  }
101
+
101
102
  if (!descriptor) {
102
- await printerService.error(`Plugin not found: ${pluginId}`, Icon.FAILURE);
103
- return;
103
+ // Search did not find an exact match - attempt direct install by plugin ID.
104
+ // This handles cases where the package exists on the registry but is not
105
+ // returned by search (e.g. recently published or low search ranking).
106
+ await printerService.info(
107
+ `Plugin not found via search, attempting direct install of ${pluginId}...`,
108
+ Icon.INFORMATION,
109
+ );
110
+ const parts = pluginId.startsWith("@") ? pluginId.slice(1).split("/") : [undefined, pluginId];
111
+ const scope = pluginId.startsWith("@") ? `@${parts[0]}` : undefined;
112
+ const name = pluginId.startsWith("@") ? parts[1]! : pluginId;
113
+ descriptor = {
114
+ pluginId,
115
+ scope,
116
+ name,
117
+ version: "latest",
118
+ extensionPoints: [],
119
+ };
104
120
  }
105
121
 
106
- await printerService.info(
107
- `Installing ${getPluginId(descriptor)}@${descriptor.version}...`,
108
- Icon.INFORMATION,
109
- );
122
+ await printerService.info(`Installing ${descriptor.pluginId}...`, Icon.INFORMATION);
110
123
  await pluginService.install(descriptor);
111
- await printerService.print(`Plugin ${getPluginId(descriptor)} installed.\n`, Icon.SUCCESS);
124
+ await printerService.print(`Plugin ${descriptor.pluginId} installed.\n`, Icon.SUCCESS);
112
125
  }
113
126
  }
114
127
 
@@ -1,3 +1,4 @@
1
+ import process from "node:process";
1
2
  import type { ServiceProvider } from "../../api/service/ServiceProvider.ts";
2
3
  import type { ServiceInfo } from "../../api/service/ServiceProvider.ts";
3
4
  import type CLIConfig from "../../api/CLIConfig.ts";
@@ -141,7 +142,11 @@ export default class CompletionServiceProvider implements ServiceProvider {
141
142
 
142
143
  async #installCompletion(context: Context, shellType: ShellType): Promise<void> {
143
144
  const configPath = this.#completionService.getDefaultConfigPath(shellType);
144
- const bootstrapScript = this.#completionService.getBootstrapScript(shellType, this.#cliName);
145
+ const bootstrapScript = this.#completionService.getBootstrapScript(
146
+ shellType,
147
+ this.#cliName,
148
+ process.execPath,
149
+ );
145
150
  const beginMarker = `# BEGIN ${this.#cliName} completion`;
146
151
  const endMarker = `# END ${this.#cliName} completion`;
147
152
  const block = `${beginMarker}\n${bootstrapScript}\n${endMarker}`;
@@ -23,8 +23,8 @@ export default class DefaultCompletionService implements CompletionService {
23
23
  this.#commandRegistry = registry;
24
24
  }
25
25
 
26
- getBootstrapScript(shellType: ShellType, cliName: string): string {
27
- return this.#getHandler(shellType).getBootstrapScript(cliName);
26
+ getBootstrapScript(shellType: ShellType, cliName: string, executablePath: string): string {
27
+ return this.#getHandler(shellType).getBootstrapScript(cliName, executablePath);
28
28
  }
29
29
 
30
30
  getDefaultConfigPath(shellType: ShellType): string {
@@ -7,7 +7,7 @@ export interface CompletionContext {
7
7
 
8
8
  export default interface ShellHandler {
9
9
  getDefaultConfigPath(): string;
10
- getBootstrapScript(cliName: string): string;
10
+ getBootstrapScript(cliName: string, executablePath: string): string;
11
11
  validateEnvironment(): Promise<boolean>;
12
12
  formatCompletions(completions: ReadonlyArray<CompletionItem>): string;
13
13
  parseCompletionContext(args: ReadonlyArray<string>): CompletionContext;
@@ -12,11 +12,11 @@ export default class BashShellHandler implements ShellHandler {
12
12
  return join(homedir(), ".bashrc");
13
13
  }
14
14
 
15
- getBootstrapScript(cliName: string): string {
15
+ getBootstrapScript(cliName: string, executablePath: string): string {
16
16
  return [
17
17
  `_${cliName}_completions() {`,
18
18
  ` local IFS=$'\\n'`,
19
- ` COMPREPLY=( $(${cliName} completions:complete bash "\${COMP_LINE}" "\${COMP_POINT}") )`,
19
+ ` COMPREPLY=( $("${executablePath}" completions:complete bash "\${COMP_LINE}" "\${COMP_POINT}") )`,
20
20
  `}`,
21
21
  `complete -F _${cliName}_completions ${cliName}`,
22
22
  ].join("\n");
@@ -12,8 +12,8 @@ export default class FishShellHandler implements ShellHandler {
12
12
  return join(homedir(), ".config", "fish", "config.fish");
13
13
  }
14
14
 
15
- getBootstrapScript(cliName: string): string {
16
- return `complete -c ${cliName} -f -a '(${cliName} completions:complete fish (commandline -cp) (commandline -C))'`;
15
+ getBootstrapScript(cliName: string, executablePath: string): string {
16
+ return `complete -c ${cliName} -f -a '("${executablePath}" completions:complete fish (commandline -cp) (commandline -C))'`;
17
17
  }
18
18
 
19
19
  validateEnvironment(): Promise<boolean> {
@@ -15,11 +15,11 @@ export default class PowerShellShellHandler implements ShellHandler {
15
15
  return join(homedir(), ".config", "powershell", "Microsoft.PowerShell_profile.ps1");
16
16
  }
17
17
 
18
- getBootstrapScript(cliName: string): string {
18
+ getBootstrapScript(cliName: string, executablePath: string): string {
19
19
  return [
20
20
  `Register-ArgumentCompleter -Native -CommandName ${cliName} -ScriptBlock {`,
21
21
  ` param($wordToComplete, $commandAst, $cursorPosition)`,
22
- ` $completions = & ${cliName} completions:complete powershell "$commandAst" "$cursorPosition"`,
22
+ ` $completions = & "${executablePath}" completions:complete powershell "$commandAst" "$cursorPosition"`,
23
23
  ` $completions -split '\\n' | ForEach-Object {`,
24
24
  ` [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)`,
25
25
  ` }`,
@@ -37,7 +37,9 @@ export default class PowerShellShellHandler implements ShellHandler {
37
37
  // try powershell fallback
38
38
  }
39
39
  try {
40
- const result = Bun.spawnSync(["powershell", "-Command", "echo ok"], { timeout: 2000 });
40
+ const result = Bun.spawnSync(["powershell", "-Command", "echo ok"], {
41
+ timeout: 2000,
42
+ });
41
43
  return Promise.resolve(result.exitCode === 0);
42
44
  } catch {
43
45
  return Promise.resolve(false);
@@ -12,11 +12,11 @@ export default class ZshShellHandler implements ShellHandler {
12
12
  return join(homedir(), ".zshrc");
13
13
  }
14
14
 
15
- getBootstrapScript(cliName: string): string {
15
+ getBootstrapScript(cliName: string, executablePath: string): string {
16
16
  return [
17
17
  `_${cliName}_completions() {`,
18
18
  ` local -a completions`,
19
- ` completions=("\${(@f)$(${cliName} completions:complete zsh "\${words}" "\${CURSOR}")}")`,
19
+ ` completions=("\${(@f)$("${executablePath}" completions:complete zsh "\${words}" "\${CURSOR}")}")`,
20
20
  ` _describe '${cliName}' completions`,
21
21
  `}`,
22
22
  `compdef _${cliName}_completions ${cliName}`,