incur 0.3.5 → 0.3.6

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 (49) hide show
  1. package/README.md +61 -0
  2. package/dist/Cli.d.ts +15 -0
  3. package/dist/Cli.d.ts.map +1 -1
  4. package/dist/Cli.js +207 -11
  5. package/dist/Cli.js.map +1 -1
  6. package/dist/Filter.js +0 -18
  7. package/dist/Filter.js.map +1 -1
  8. package/dist/Help.d.ts +4 -0
  9. package/dist/Help.d.ts.map +1 -1
  10. package/dist/Help.js +17 -14
  11. package/dist/Help.js.map +1 -1
  12. package/dist/Parser.d.ts +2 -0
  13. package/dist/Parser.d.ts.map +1 -1
  14. package/dist/Parser.js +69 -37
  15. package/dist/Parser.js.map +1 -1
  16. package/dist/bin.d.ts +1 -0
  17. package/dist/bin.d.ts.map +1 -1
  18. package/dist/bin.js +17 -2
  19. package/dist/bin.js.map +1 -1
  20. package/dist/internal/command.d.ts +2 -0
  21. package/dist/internal/command.d.ts.map +1 -1
  22. package/dist/internal/command.js +1 -0
  23. package/dist/internal/command.js.map +1 -1
  24. package/dist/internal/configSchema.d.ts +8 -0
  25. package/dist/internal/configSchema.d.ts.map +1 -0
  26. package/dist/internal/configSchema.js +57 -0
  27. package/dist/internal/configSchema.js.map +1 -0
  28. package/dist/internal/helpers.d.ts +5 -0
  29. package/dist/internal/helpers.d.ts.map +1 -0
  30. package/dist/internal/helpers.js +9 -0
  31. package/dist/internal/helpers.js.map +1 -0
  32. package/examples/npm/.npmrc.json +21 -0
  33. package/examples/npm/config.schema.json +137 -0
  34. package/package.json +1 -1
  35. package/src/Cli.test-d.ts +39 -0
  36. package/src/Cli.test.ts +554 -3
  37. package/src/Cli.ts +266 -11
  38. package/src/Filter.ts +0 -17
  39. package/src/Help.test.ts +66 -0
  40. package/src/Help.ts +20 -13
  41. package/src/Parser.test-d.ts +22 -0
  42. package/src/Parser.test.ts +89 -0
  43. package/src/Parser.ts +86 -35
  44. package/src/bin.ts +21 -2
  45. package/src/e2e.test.ts +1 -1
  46. package/src/internal/command.ts +3 -0
  47. package/src/internal/configSchema.test.ts +193 -0
  48. package/src/internal/configSchema.ts +66 -0
  49. package/src/internal/helpers.ts +9 -0
package/README.md CHANGED
@@ -816,6 +816,67 @@ Every incur CLI includes these flags automatically:
816
816
  | `--token-offset <n>` | Skip first n tokens of output (for pagination) |
817
817
  | `--verbose` | Include full envelope (`ok`, `data`, `meta`) |
818
818
 
819
+ ### Config file
820
+
821
+ Load option defaults from a JSON config file. Opt in with `config` on `Cli.create()`:
822
+
823
+ ```ts
824
+ const cli = Cli.create('my-cli', {
825
+ config: {
826
+ flag: 'config',
827
+ files: ['my-cli.json', '~/.config/my-cli/config.json'],
828
+ },
829
+ })
830
+ ```
831
+
832
+ - `flag` — registers `--config <path>` and `--no-config` as global flags. The flag name is configurable (`{ flag: 'settings' }` → `--settings`/`--no-settings`). Omit to auto-load only.
833
+ - `files` — ordered search paths. First existing file wins. Supports resolving `~`. Defaults to `['<cli>.json']`.
834
+ - `loader` — custom loader function for non-JSON formats. Receives the resolved path (or `undefined`) and returns the config tree:
835
+
836
+ ```ts
837
+ const cli = Cli.create('my-cli', {
838
+ config: {
839
+ files: ['my-cli.toml'],
840
+ async loader(path) {
841
+ if (!path) return undefined
842
+ return TOML.parse(await readFile(path, 'utf8'))
843
+ },
844
+ },
845
+ })
846
+ ```
847
+
848
+ Config files use a structured format with `options` and `commands` keys, mirroring the `Cli.create()` / `.command()` hierarchy:
849
+
850
+ ```json
851
+ {
852
+ "options": {
853
+ "verbose": true
854
+ },
855
+ "commands": {
856
+ "echo": {
857
+ "options": {
858
+ "upper": true,
859
+ "prefix": "cfg"
860
+ }
861
+ },
862
+ "project": {
863
+ "commands": {
864
+ "list": {
865
+ "options": {
866
+ "limit": 25,
867
+ "save-dev": true
868
+ }
869
+ }
870
+ }
871
+ }
872
+ }
873
+ }
874
+ ```
875
+
876
+ Precedence is `argv > config > zod defaults`. Only command `options` are loaded — `args`, `env`, and built-in commands are unaffected.
877
+
878
+ Use `incur gen` to auto-generate a `config.schema.json` to distribute with your CLI for consumer autocomplete.
879
+
819
880
  ### Filtering output
820
881
 
821
882
  Use `--filter-output` to prune command output to specific keys. Supports dot-notation for nested keys, array slices, and comma-separated paths:
package/dist/Cli.d.ts CHANGED
@@ -126,6 +126,15 @@ export declare namespace create {
126
126
  aliases?: string[] | undefined;
127
127
  /** Zod schema for positional arguments. */
128
128
  args?: args | undefined;
129
+ /** Enable config-file defaults for command options. */
130
+ config?: {
131
+ /** Global flag name for specifying a config file path (e.g. `'config'` → `--config <path>`). Omit to auto-load only, with no CLI flag. */
132
+ flag?: string | undefined;
133
+ /** Ordered list of file paths to search. First existing file wins. Supports `~` for home dir. Defaults to `['<cli>.json']` relative to cwd. */
134
+ files?: string[] | undefined;
135
+ /** Custom config loader. Receives the resolved file path (or `undefined` if no file was found). Returns the parsed config tree, or `undefined` for no defaults. When omitted, the framework reads and parses JSON. */
136
+ loader?: ((path: string | undefined) => Record<string, unknown> | undefined | Promise<Record<string, unknown> | undefined>) | undefined;
137
+ } | undefined;
129
138
  /** A short description of what the CLI does. */
130
139
  description?: string | undefined;
131
140
  /** Zod schema for environment variables. Keys are the variable names (e.g. `NPM_TOKEN`). */
@@ -245,6 +254,12 @@ type InternalFetchGateway = {
245
254
  };
246
255
  /** @internal Maps CLI instances to their command maps. */
247
256
  export declare const toCommands: WeakMap<Cli<{}, undefined, undefined>, Map<string, CommandEntry>>;
257
+ /** @internal Maps root CLI instances to their command definitions. */
258
+ export declare const toRootDefinition: WeakMap<Root<_args, _options>, CommandDefinition<any, any, any, undefined, undefined, undefined>>;
259
+ /** @internal Maps CLI instances to their root options schema. */
260
+ export declare const toRootOptions: WeakMap<Cli<{}, undefined, undefined>, z.ZodObject<any, z.core.$strip>>;
261
+ /** @internal Maps CLI instances to whether config file loading is enabled. */
262
+ export declare const toConfigEnabled: WeakMap<Cli<{}, undefined, undefined>, boolean>;
248
263
  /** @internal A CTA block with a description and list of suggested commands. */
249
264
  type CtaBlock<commands extends CommandsMap = Commands> = {
250
265
  /** Commands to suggest. */
package/dist/Cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Cli.d.ts","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAO5B,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C,OAAO,EAAmB,KAAK,WAAW,EAAsB,MAAM,uBAAuB,CAAA;AAK7F,OAAO,KAAK,EAAgC,OAAO,IAAI,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACjG,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,YAAY,EAAE,iBAAiB,EAAE,CAAA;AAEjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAM7C,6FAA6F;AAC7F,MAAM,MAAM,GAAG,CACb,QAAQ,SAAS,WAAW,GAAG,EAAE,EACjC,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EACrD,GAAG,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,IAClD;IACF,uEAAuE;IACvE,OAAO,EAAE;QACP,kEAAkE;QAClE,CACE,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EAC3D,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EAC7D,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EAC9D,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,GAAG,SAAS,GAAG,SAAS,EAEtD,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,GACtE,GAAG,CACJ,QAAQ,GAAG;aAAG,GAAG,IAAI,IAAI,GAAG;gBAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;gBAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;aAAE;SAAE,EACxF,IAAI,EACJ,GAAG,CACJ,CAAA;QACD,2CAA2C;QAC3C,CAAC,KAAK,CAAC,IAAI,SAAS,MAAM,EAAE,KAAK,CAAC,GAAG,SAAS,WAAW,EACvD,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG;YAAE,IAAI,EAAE,IAAI,CAAA;SAAE,GACvC,GAAG,CAAC,QAAQ,GAAG;aAAG,GAAG,IAAI,MAAM,GAAG,GAAG,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC;SAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;QAC3F,6CAA6C;QAC7C,CACE,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,EAC/C,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,EAE/C,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG;YAAE,IAAI,EAAE,IAAI,CAAA;SAAE,GACrC,GAAG,CACJ,QAAQ,GAAG;aAAG,GAAG,IAAI,IAAI,GAAG;gBAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;gBAAC,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAA;aAAE;SAAE,EACrF,IAAI,EACJ,GAAG,CACJ,CAAA;QACD,+FAA+F;QAC/F,CAAC,KAAK,CAAC,IAAI,SAAS,MAAM,EACxB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE;YACV,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;YAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;YAChC,KAAK,EAAE,YAAY,CAAA;YACnB,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,GAAG,SAAS,CAAA;YACzC,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAA;SACxC,GACA,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;KAC5B,CAAA;IACD,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,6GAA6G;IAC7G,GAAG,EAAE,GAAG,CAAA;IACR,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,oGAAoG;IACpG,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IACtC,uFAAuF;IACvF,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9D,2DAA2D;IAC3D,GAAG,CAAC,OAAO,EAAE,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;IACpE,+GAA+G;IAC/G,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAED,wGAAwG;AACxG,MAAM,MAAM,IAAI,CACd,KAAK,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EACtD,QAAQ,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,IACvD,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;AAExB,0DAA0D;AAC1D,MAAM,MAAM,QAAQ,GAAG,QAAQ,SAAS;IAAE,QAAQ,EAAE,MAAM,QAAQ,SAAS,WAAW,CAAA;CAAE,GACpF,QAAQ,GACR,EAAE,CAAA;AAEN,sBAAsB;AACtB,MAAM,MAAM,GAAG,CAAC,QAAQ,SAAS,WAAW,GAAG,QAAQ,IACnD,CAAC,CAAC,MAAM,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,GACvF,CAAC,CAAC,MAAM,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAC7B;IACE,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAC1C,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;CAC9C,GAEG;KACG,IAAI,IAAI,MAAM,QAAQ,GAAG,MAAM,GAAG;QACjC,oDAAoD;QACpD,IAAI,CAAC,EACD;aAAG,GAAG,IAAI,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;SAAE,GAC9E,SAAS,CAAA;QACb,+BAA+B;QAC/B,OAAO,EAAE,IAAI,CAAA;QACb,oDAAoD;QACpD,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAChC,sDAAsD;QACtD,OAAO,CAAC,EACJ;aACG,GAAG,IAAI,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EACrC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAC9B,IAAI;SACT,GACD,SAAS,CAAA;KACd;CACF,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAC1B;IACE,+BAA+B;IAC/B,OAAO,EAAE,MAAM,GAAG,EAAE,CAAA;IACpB,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACjC,CAAC,CAAA;AAEd,+FAA+F;AAC/F,wBAAgB,MAAM,CACpB,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EAC3D,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EAC1D,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EAC3D,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,GAAG,SAAS,GAAG,SAAS,EACtD,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EAE3D,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG;IAAE,GAAG,EAAE,QAAQ,CAAA;CAAE,GAC5E,GAAG,CAAC;KAAG,GAAG,IAAI,OAAO,IAAI,GAAG;QAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAAC,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAA;KAAE;CAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;AACpG,uDAAuD;AACvD,wBAAgB,MAAM,CACpB,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EAC3D,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EAC1D,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EAC3D,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,GAAG,SAAS,GAAG,SAAS,EACtD,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EAC3D,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;AAC/F,sGAAsG;AACtG,wBAAgB,MAAM,CACpB,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EAC3D,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EAC1D,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EAC3D,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,GAAG,SAAS,GAAG,SAAS,EACtD,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EAE3D,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,QAAQ,CAAA;CAAE,GAC1F,GAAG,CACJ;KACG,GAAG,IAAI,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,GAAG;QAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAAC,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAA;KAAE;CAC9F,EACD,IAAI,EACJ,GAAG,CACJ,CAAA;AACD,6EAA6E;AAC7E,wBAAgB,MAAM,CACpB,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EAC3D,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EAC1D,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EAC3D,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,GAAG,SAAS,GAAG,SAAS,EACtD,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EAC3D,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;AAoHnG,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,sFAAsF;IACtF,KAAK,OAAO,CACV,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EACrD,GAAG,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EACpD,OAAO,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EACxD,MAAM,SAAS,CAAC,CAAC,OAAO,GAAG,SAAS,GAAG,SAAS,EAChD,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,IACnD;QACF,kDAAkD;QAClD,KAAK,CAAC,EAAE,OAAO,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GACpC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,GAChD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;QACtC,0IAA0I;QAC1I,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;QAC9B,2CAA2C;QAC3C,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAA;QACvB,gDAAgD;QAChD,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAChC,4FAA4F;QAC5F,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAA;QACrB,uCAAuC;QACvC,QAAQ,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,SAAS,CAAA;QAC/C,yHAAyH;QACzH,KAAK,CAAC,EAAE,YAAY,GAAG,SAAS,CAAA;QAChC,mEAAmE;QACnE,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAA;QACrC,0CAA0C;QAC1C,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC7B,uCAAuC;QACvC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC3B;;;;;;;WAOG;QACH,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAA;QACvC,uDAAuD;QACvD,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,SAAS,CAAA;QAC1C,0GAA0G;QAC1G,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAA;QACvB,uFAAuF;QACvF,GAAG,CAAC,EACA,CAAC,CAAC,OAAO,EAAE;YACT,8DAA8D;YAC9D,KAAK,EAAE,OAAO,CAAA;YACd,4BAA4B;YAC5B,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAA;YACvB,oCAAoC;YACpC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,CAAA;YACrB,iDAAiD;YACjD,KAAK,EAAE,CAAC,OAAO,EAAE;gBACf,IAAI,EAAE,MAAM,CAAA;gBACZ,GAAG,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;gBAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;gBAC7B,OAAO,EAAE,MAAM,CAAA;gBACf,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;aAChC,KAAK,KAAK,CAAA;YACX,uEAAuE;YACvE,MAAM,EAAE,SAAS,CAAC,MAAM,CAAA;YACxB,iEAAiE;YACjE,cAAc,EAAE,OAAO,CAAA;YACvB,oBAAoB;YACpB,IAAI,EAAE,MAAM,CAAA;YACZ,kEAAkE;YAClE,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE;gBAAE,GAAG,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;aAAE,KAAK,KAAK,CAAA;YAC/E,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;YAC7B,mCAAmC;YACnC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;SACrB,KACG,WAAW,CAAC,MAAM,CAAC,GACnB,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAC5B,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,GAC1D,SAAS,CAAA;QACb,kDAAkD;QAClD,GAAG,CAAC,EACA;YACE,4EAA4E;YAC5E,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;YAC7B,8FAA8F;YAC9F,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SAC7B,GACD,SAAS,CAAA;QACb,qDAAqD;QACrD,IAAI,CAAC,EACD;YACE,8IAA8I;YAC9I,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;YACxB,wFAAwF;YACxF,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;YAC1B,4GAA4G;YAC5G,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;YAC9B,kEAAkE;YAClE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;SACnC,GACD,SAAS,CAAA;QACb,8BAA8B;QAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC7B,CAAA;CACF;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,yDAAyD;IACzD,KAAK,OAAO,GAAG;QACb,uEAAuE;QACvE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAA;QACpD,yDAAyD;QACzD,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;QAC3C,kEAAkE;QAClE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;KAC3C,CAAA;CACF;AAg9CD,yEAAyE;AACzE,MAAM,MAAM,WAAW,GAAG,MAAM,CAC9B,MAAM,EACN;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CACpE,CAAA;AAED,uGAAuG;AACvG,KAAK,YAAY,GAAG,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,aAAa,GAAG,oBAAoB,CAAA;AAE3F,mJAAmJ;AACnJ,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,KAAK,CAAA;AAE/C,oCAAoC;AACpC,KAAK,YAAY,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AAElE,oDAAoD;AACpD,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,IAAI,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,WAAW,CAAC,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAA;IAC7C,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAA;IACvC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;CACpC,CAAA;AAED,uCAAuC;AACvC,KAAK,oBAAoB,GAAG;IAC1B,MAAM,EAAE,IAAI,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,KAAK,EAAE,YAAY,CAAA;IACnB,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAA;CACxC,CAAA;AAYD,0DAA0D;AAC1D,eAAO,MAAM,UAAU,mEAAgD,CAAA;AA+BvE,+EAA+E;AAC/E,KAAK,QAAQ,CAAC,QAAQ,SAAS,WAAW,GAAG,QAAQ,IAAI;IACvD,2BAA2B;IAC3B,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAA;IACzB,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACjC,CAAA;AAgYD,qHAAqH;AACrH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,SAAS,GACxC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,SAAS,CAWzD;AA0BD,2FAA2F;AAC3F,KAAK,OAAO,CACV,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,EACzC,OAAO,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,IAC1C;IACF,6CAA6C;IAC7C,IAAI,CAAC,EAAE,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,GAAG,SAAS,CAAA;IACtF,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,SAAS,CAAA;CAChG,CAAA;AAED,sDAAsD;AACtD,KAAK,KAAK,CACR,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,EACzC,OAAO,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,IAC1C;IACF,uEAAuE;IACvE,IAAI,CAAC,EAAE,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAChC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,SAAS,GACvD,SAAS,CAAA;IACb,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,SAAS,GAC1D,SAAS,CAAA;IACb,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC5B,CAAA;AAED,+FAA+F;AAC/F,KAAK,WAAW,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,IAC1D,MAAM,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;AAEzD,4DAA4D;AAC5D,KAAK,WAAW,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,GAAG,SAAS,IAAI,MAAM,SAAS,CAAC,CAAC,OAAO,GAC7E,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAChB,OAAO,CAAA;AAEX,0FAA0F;AAC1F,KAAK,SAAS,CAAC,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,IACtD,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;AA8CrD,mEAAmE;AACnE,KAAK,iBAAiB,CACpB,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EACrD,GAAG,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EACpD,OAAO,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EACxD,MAAM,SAAS,CAAC,CAAC,OAAO,GAAG,SAAS,GAAG,SAAS,EAChD,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EACrD,MAAM,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,IACrD,WAAW,CAAC,OAAO,CAAC,GAAG;IACzB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAA;IACvB,4FAA4F;IAC5F,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAA;IACrB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,SAAS,CAAA;IAC/C,mEAAmE;IACnE,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAA;IACrC,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAA;IACvC,mFAAmF;IACnF,UAAU,CAAC,EAAE,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,SAAS,CAAA;IAC1D,uDAAuD;IACvD,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,SAAS,CAAA;IAC1C,mGAAmG;IACnG,GAAG,CAAC,OAAO,EAAE;QACX,8DAA8D;QAC9D,KAAK,EAAE,OAAO,CAAA;QACd,4BAA4B;QAC5B,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAA;QACvB,oCAAoC;QACpC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,CAAA;QACrB,iDAAiD;QACjD,KAAK,EAAE,CAAC,OAAO,EAAE;YACf,IAAI,EAAE,MAAM,CAAA;YACZ,GAAG,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;YAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;YAC7B,OAAO,EAAE,MAAM,CAAA;YACf,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;SAChC,KAAK,KAAK,CAAA;QACX,uEAAuE;QACvE,MAAM,EAAE,SAAS,CAAC,MAAM,CAAA;QACxB,iEAAiE;QACjE,cAAc,EAAE,OAAO,CAAA;QACvB,oBAAoB;QACpB,IAAI,EAAE,MAAM,CAAA;QACZ,kEAAkE;QAClE,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;SAAE,KAAK,KAAK,CAAA;QAC/E,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;QAC7B,mCAAmC;QACnC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;QACpB,8BAA8B;QAC9B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;KAC5B,GACG,WAAW,CAAC,MAAM,CAAC,GACnB,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAC5B,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;CAC1D,CAAA"}
1
+ {"version":3,"file":"Cli.d.ts","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":"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"}
package/dist/Cli.js CHANGED
@@ -1,12 +1,16 @@
1
+ import * as fs from 'node:fs/promises';
2
+ import * as os from 'node:os';
3
+ import * as path from 'node:path';
1
4
  import { estimateTokenCount, sliceByTokens } from 'tokenx';
2
5
  import * as Completions from './Completions.js';
3
- import { IncurError, ValidationError } from './Errors.js';
6
+ import { IncurError, ParseError, ValidationError } from './Errors.js';
4
7
  import * as Fetch from './Fetch.js';
5
8
  import * as Filter from './Filter.js';
6
9
  import * as Formatter from './Formatter.js';
7
10
  import * as Help from './Help.js';
8
11
  import { builtinCommands, shells } from './internal/command.js';
9
12
  import * as Command from './internal/command.js';
13
+ import { isRecord } from './internal/helpers.js';
10
14
  import { detectRunner } from './internal/pm.js';
11
15
  import * as Mcp from './Mcp.js';
12
16
  import * as Openapi from './Openapi.js';
@@ -93,6 +97,7 @@ export function create(nameOrDefinition, definition) {
93
97
  return serveImpl(name, commands, argv, {
94
98
  ...serveOptions,
95
99
  aliases: def.aliases,
100
+ config: def.config,
96
101
  description: def.description,
97
102
  envSchema: def.env,
98
103
  format: def.format,
@@ -113,6 +118,10 @@ export function create(nameOrDefinition, definition) {
113
118
  };
114
119
  if (rootDef)
115
120
  toRootDefinition.set(cli, rootDef);
121
+ if (def.options)
122
+ toRootOptions.set(cli, def.options);
123
+ if (def.config !== undefined)
124
+ toConfigEnabled.set(cli, true);
116
125
  if (def.outputPolicy)
117
126
  toOutputPolicy.set(cli, def.outputPolicy);
118
127
  toMiddlewares.set(cli, middlewares);
@@ -124,7 +133,26 @@ export function create(nameOrDefinition, definition) {
124
133
  async function serveImpl(name, commands, argv, options = {}) {
125
134
  const stdout = options.stdout ?? ((s) => process.stdout.write(s));
126
135
  const exit = options.exit ?? ((code) => process.exit(code));
127
- const { verbose, format: formatFlag, formatExplicit, filterOutput, tokenLimit, tokenOffset, tokenCount, llms, llmsFull, mcp: mcpFlag, help, version, schema, rest: filtered, } = extractBuiltinFlags(argv);
136
+ const human = process.stdout.isTTY === true;
137
+ const configEnabled = options.config !== undefined;
138
+ const configFlag = options.config?.flag;
139
+ function writeln(s) {
140
+ stdout(s.endsWith('\n') ? s : `${s}\n`);
141
+ }
142
+ let builtinFlags;
143
+ try {
144
+ builtinFlags = extractBuiltinFlags(argv, { configFlag });
145
+ }
146
+ catch (error) {
147
+ const message = error instanceof Error ? error.message : String(error);
148
+ if (human)
149
+ writeln(formatHumanError({ code: 'UNKNOWN', message }));
150
+ else
151
+ writeln(Formatter.format({ code: 'UNKNOWN', message }, 'toon'));
152
+ exit(1);
153
+ return;
154
+ }
155
+ const { verbose, format: formatFlag, formatExplicit, filterOutput, tokenLimit, tokenOffset, tokenCount, llms, llmsFull, mcp: mcpFlag, help, version, schema, configPath, configDisabled, rest: filtered, } = builtinFlags;
128
156
  // --mcp: start as MCP stdio server
129
157
  if (mcpFlag) {
130
158
  await Mcp.serve(name, options.version ?? '0.0.0', commands, {
@@ -176,11 +204,6 @@ async function serveImpl(name, commands, argv, options = {}) {
176
204
  }
177
205
  return;
178
206
  }
179
- // Human mode: stdout is a TTY.
180
- const human = process.stdout.isTTY === true;
181
- function writeln(s) {
182
- stdout(s.endsWith('\n') ? s : `${s}\n`);
183
- }
184
207
  // Skills staleness check (skip for built-in commands)
185
208
  if (!llms && !llmsFull && !schema && !help && !version) {
186
209
  const isSkillsAdd = filtered[0] === 'skills' || (filtered[0] === name && filtered[1] === 'skills');
@@ -412,6 +435,7 @@ async function serveImpl(name, commands, argv, options = {}) {
412
435
  writeln(Help.formatCommand(name, {
413
436
  alias: cmd.alias,
414
437
  aliases: options.aliases,
438
+ configFlag,
415
439
  description: cmd.description ?? options.description,
416
440
  version: options.version,
417
441
  args: cmd.args,
@@ -432,6 +456,7 @@ async function serveImpl(name, commands, argv, options = {}) {
432
456
  else {
433
457
  writeln(Help.formatRoot(name, {
434
458
  aliases: options.aliases,
459
+ configFlag,
435
460
  description: options.description,
436
461
  version: options.version,
437
462
  commands: collectHelpCommands(commands),
@@ -474,6 +499,7 @@ async function serveImpl(name, commands, argv, options = {}) {
474
499
  writeln(Help.formatCommand(name, {
475
500
  alias: cmd.alias,
476
501
  aliases: options.aliases,
502
+ configFlag,
477
503
  description: cmd.description ?? options.description,
478
504
  version: options.version,
479
505
  args: cmd.args,
@@ -490,6 +516,7 @@ async function serveImpl(name, commands, argv, options = {}) {
490
516
  else {
491
517
  writeln(Help.formatRoot(helpName, {
492
518
  aliases: isRoot ? options.aliases : undefined,
519
+ configFlag,
493
520
  description: helpDesc,
494
521
  version: isRoot ? options.version : undefined,
495
522
  commands: collectHelpCommands(helpCmds),
@@ -507,6 +534,7 @@ async function serveImpl(name, commands, argv, options = {}) {
507
534
  writeln(Help.formatCommand(commandName, {
508
535
  alias: cmd.alias,
509
536
  aliases: isRootCmd ? options.aliases : undefined,
537
+ configFlag,
510
538
  description: cmd.description,
511
539
  version: isRootCmd ? options.version : undefined,
512
540
  args: cmd.args,
@@ -526,6 +554,7 @@ async function serveImpl(name, commands, argv, options = {}) {
526
554
  if (schema) {
527
555
  if ('help' in resolved) {
528
556
  writeln(Help.formatRoot(`${name} ${resolved.path}`, {
557
+ configFlag,
529
558
  description: resolved.description,
530
559
  commands: collectHelpCommands(resolved.commands),
531
560
  }));
@@ -558,6 +587,7 @@ async function serveImpl(name, commands, argv, options = {}) {
558
587
  }
559
588
  if ('help' in resolved) {
560
589
  writeln(Help.formatRoot(`${name} ${resolved.path}`, {
590
+ configFlag,
561
591
  description: resolved.description,
562
592
  commands: collectHelpCommands(resolved.commands),
563
593
  }));
@@ -817,9 +847,33 @@ async function serveImpl(name, commands, argv, options = {}) {
817
847
  ];
818
848
  if (human)
819
849
  emitDeprecationWarnings(rest, command.options, command.alias);
850
+ let defaults;
851
+ if (configEnabled) {
852
+ try {
853
+ defaults = await loadCommandOptionDefaults(name, path, {
854
+ configDisabled,
855
+ configPath,
856
+ files: options.config?.files,
857
+ loader: options.config?.loader,
858
+ });
859
+ }
860
+ catch (error) {
861
+ write({
862
+ ok: false,
863
+ error: {
864
+ code: error instanceof IncurError ? error.code : 'UNKNOWN',
865
+ message: error instanceof Error ? error.message : String(error),
866
+ },
867
+ meta: { command: path, duration: `${Math.round(performance.now() - start)}ms` },
868
+ });
869
+ exit(error instanceof IncurError ? (error.exitCode ?? 1) : 1);
870
+ return;
871
+ }
872
+ }
820
873
  const result = await Command.execute(command, {
821
874
  agent: !human,
822
875
  argv: rest,
876
+ defaults,
823
877
  env: options.envSchema,
824
878
  envSource: options.env,
825
879
  format,
@@ -868,7 +922,7 @@ async function serveImpl(name, commands, argv, options = {}) {
868
922
  writeln(formatHumanValidationError(name, path, command, new ValidationError({
869
923
  message: result.error.message,
870
924
  fieldErrors: result.error.fieldErrors,
871
- }), options.env));
925
+ }), options.env, configFlag));
872
926
  exit(1);
873
927
  return;
874
928
  }
@@ -1126,7 +1180,7 @@ async function executeCommand(path, command, rest, inputOptions, start, options)
1126
1180
  }, 200);
1127
1181
  }
1128
1182
  /** @internal Formats a validation error for TTY with usage hint. */
1129
- function formatHumanValidationError(cli, path, command, error, envSource) {
1183
+ function formatHumanValidationError(cli, path, command, error, envSource, configFlag) {
1130
1184
  const lines = [];
1131
1185
  for (const fe of error.fieldErrors)
1132
1186
  lines.push(`Error: missing required argument <${fe.path}>`);
@@ -1134,6 +1188,7 @@ function formatHumanValidationError(cli, path, command, error, envSource) {
1134
1188
  lines.push('');
1135
1189
  lines.push(Help.formatCommand(path === cli ? cli : `${cli} ${path}`, {
1136
1190
  alias: command.alias,
1191
+ configFlag,
1137
1192
  description: command.description,
1138
1193
  args: command.args,
1139
1194
  env: command.env,
@@ -1207,7 +1262,7 @@ function resolveCommand(commands, tokens) {
1207
1262
  };
1208
1263
  }
1209
1264
  /** @internal Extracts built-in flags (--verbose, --format, --json, --llms, --help, --version) from argv. */
1210
- function extractBuiltinFlags(argv) {
1265
+ function extractBuiltinFlags(argv, options = {}) {
1211
1266
  let verbose = false;
1212
1267
  let llms = false;
1213
1268
  let llmsFull = false;
@@ -1217,11 +1272,16 @@ function extractBuiltinFlags(argv) {
1217
1272
  let schema = false;
1218
1273
  let format = 'toon';
1219
1274
  let formatExplicit = false;
1275
+ let configPath;
1276
+ let configDisabled = false;
1220
1277
  let filterOutput;
1221
1278
  let tokenLimit;
1222
1279
  let tokenOffset;
1223
1280
  let tokenCount = false;
1224
1281
  const rest = [];
1282
+ const cfgFlag = options.configFlag ? `--${options.configFlag}` : undefined;
1283
+ const cfgFlagEq = options.configFlag ? `--${options.configFlag}=` : undefined;
1284
+ const noCfgFlag = options.configFlag ? `--no-${options.configFlag}` : undefined;
1225
1285
  for (let i = 0; i < argv.length; i++) {
1226
1286
  const token = argv[i];
1227
1287
  if (token === '--verbose')
@@ -1247,6 +1307,25 @@ function extractBuiltinFlags(argv) {
1247
1307
  formatExplicit = true;
1248
1308
  i++;
1249
1309
  }
1310
+ else if (cfgFlag && token === cfgFlag) {
1311
+ const value = argv[i + 1];
1312
+ if (value === undefined)
1313
+ throw new ParseError({ message: `Missing value for flag: ${cfgFlag}` });
1314
+ configPath = value;
1315
+ configDisabled = false;
1316
+ i++;
1317
+ }
1318
+ else if (cfgFlagEq && token.startsWith(cfgFlagEq)) {
1319
+ const value = token.slice(cfgFlagEq.length);
1320
+ if (value.length === 0)
1321
+ throw new ParseError({ message: `Missing value for flag: ${cfgFlag}` });
1322
+ configPath = value;
1323
+ configDisabled = false;
1324
+ }
1325
+ else if (noCfgFlag && token === noCfgFlag) {
1326
+ configPath = undefined;
1327
+ configDisabled = true;
1328
+ }
1250
1329
  else if (token === '--filter-output' && argv[i + 1]) {
1251
1330
  filterOutput = argv[i + 1];
1252
1331
  i++;
@@ -1268,6 +1347,8 @@ function extractBuiltinFlags(argv) {
1268
1347
  verbose,
1269
1348
  format,
1270
1349
  formatExplicit,
1350
+ configPath,
1351
+ configDisabled,
1271
1352
  filterOutput,
1272
1353
  tokenLimit,
1273
1354
  tokenOffset,
@@ -1281,6 +1362,117 @@ function extractBuiltinFlags(argv) {
1281
1362
  rest,
1282
1363
  };
1283
1364
  }
1365
+ /** @internal Loads config-backed option defaults for the active command. */
1366
+ async function loadCommandOptionDefaults(cli, path, options = {}) {
1367
+ if (options.configDisabled)
1368
+ return undefined;
1369
+ const { loader } = options;
1370
+ // Resolve the target file path
1371
+ let targetPath;
1372
+ if (options.configPath) {
1373
+ targetPath = resolveConfigPath(options.configPath);
1374
+ }
1375
+ else {
1376
+ const searchPaths = options.files ?? [`${cli}.json`];
1377
+ targetPath = await findFirstExisting(searchPaths);
1378
+ }
1379
+ // Load and parse the config
1380
+ let parsed;
1381
+ if (loader) {
1382
+ const result = await loader(targetPath);
1383
+ if (result === undefined)
1384
+ return undefined;
1385
+ if (!isRecord(result))
1386
+ throw new ParseError({ message: 'Config loader must return a plain object or undefined' });
1387
+ parsed = result;
1388
+ }
1389
+ else {
1390
+ if (!targetPath)
1391
+ return undefined;
1392
+ const result = await readJsonConfig(targetPath, !!options.configPath);
1393
+ if (!result)
1394
+ return undefined;
1395
+ parsed = result;
1396
+ }
1397
+ // Extract the command section from the config tree
1398
+ return extractCommandSection(parsed, cli, path);
1399
+ }
1400
+ /** @internal Resolves a config file path, expanding `~` to home dir. */
1401
+ function resolveConfigPath(filePath) {
1402
+ if (filePath.startsWith('~/') || filePath === '~') {
1403
+ return path.join(os.homedir(), filePath.slice(1));
1404
+ }
1405
+ return path.resolve(process.cwd(), filePath);
1406
+ }
1407
+ /** @internal Returns the first readable file from a list of paths, or `undefined`. */
1408
+ async function findFirstExisting(paths) {
1409
+ for (const p of paths) {
1410
+ const resolved = resolveConfigPath(p);
1411
+ try {
1412
+ await fs.access(resolved, fs.constants.R_OK);
1413
+ return resolved;
1414
+ }
1415
+ catch { }
1416
+ }
1417
+ return undefined;
1418
+ }
1419
+ /** @internal Reads and parses a JSON config file. */
1420
+ async function readJsonConfig(targetPath, explicit) {
1421
+ let raw;
1422
+ try {
1423
+ raw = await fs.readFile(targetPath, 'utf8');
1424
+ }
1425
+ catch (error) {
1426
+ if (error.code === 'ENOENT') {
1427
+ if (explicit)
1428
+ throw new ParseError({ message: `Config file not found: ${targetPath}` });
1429
+ return undefined;
1430
+ }
1431
+ throw error;
1432
+ }
1433
+ let parsed;
1434
+ try {
1435
+ parsed = JSON.parse(raw);
1436
+ }
1437
+ catch (error) {
1438
+ throw new ParseError({
1439
+ message: `Invalid JSON config file: ${targetPath}`,
1440
+ cause: error instanceof Error ? error : undefined,
1441
+ });
1442
+ }
1443
+ if (!isRecord(parsed))
1444
+ throw new ParseError({
1445
+ message: `Invalid config file: expected a top-level object in ${targetPath}`,
1446
+ });
1447
+ return parsed;
1448
+ }
1449
+ /** @internal Walks the nested config tree to extract option defaults for a command path. */
1450
+ function extractCommandSection(parsed, cli, path) {
1451
+ const segments = path === cli ? [] : path.split(' ');
1452
+ let node = parsed;
1453
+ for (const seg of segments) {
1454
+ if (!isRecord(node))
1455
+ return undefined;
1456
+ const commands = node.commands;
1457
+ if (!isRecord(commands))
1458
+ return undefined;
1459
+ node = commands[seg];
1460
+ if (node === undefined)
1461
+ return undefined;
1462
+ }
1463
+ if (!isRecord(node))
1464
+ throw new ParseError({
1465
+ message: `Invalid config section for '${path}': expected an object`,
1466
+ });
1467
+ const options = node.options;
1468
+ if (options === undefined)
1469
+ return undefined;
1470
+ if (!isRecord(options))
1471
+ throw new ParseError({
1472
+ message: `Invalid config 'options' for '${path}': expected an object`,
1473
+ });
1474
+ return Object.keys(options).length > 0 ? options : undefined;
1475
+ }
1284
1476
  /** @internal Collects immediate child commands/groups for help output. */
1285
1477
  function collectHelpCommands(commands) {
1286
1478
  const result = [];
@@ -1339,7 +1531,11 @@ export const toCommands = new WeakMap();
1339
1531
  /** @internal Maps CLI instances to their middleware arrays. */
1340
1532
  const toMiddlewares = new WeakMap();
1341
1533
  /** @internal Maps root CLI instances to their command definitions. */
1342
- const toRootDefinition = new WeakMap();
1534
+ export const toRootDefinition = new WeakMap();
1535
+ /** @internal Maps CLI instances to their root options schema. */
1536
+ export const toRootOptions = new WeakMap();
1537
+ /** @internal Maps CLI instances to whether config file loading is enabled. */
1538
+ export const toConfigEnabled = new WeakMap();
1343
1539
  /** @internal Maps CLI instances to their output policy. */
1344
1540
  const toOutputPolicy = new WeakMap();
1345
1541
  /** @internal Sentinel symbol for `ok()` and `error()` return values. */