politty 0.4.11 → 0.4.13

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 (86) hide show
  1. package/README.md +11 -8
  2. package/dist/{arg-registry-BDybpyo5.d.cts → arg-registry-6E4C5MTC.d.ts} +188 -2
  3. package/dist/arg-registry-6E4C5MTC.d.ts.map +1 -0
  4. package/dist/{arg-registry-CHmAzJOM.d.ts → arg-registry-CeIRoLaB.d.cts} +188 -2
  5. package/dist/arg-registry-CeIRoLaB.d.cts.map +1 -0
  6. package/dist/augment.d.cts +1 -1
  7. package/dist/augment.d.ts +1 -1
  8. package/dist/completion/index.cjs +1 -2
  9. package/dist/completion/index.d.cts +1 -1
  10. package/dist/completion/index.d.ts +1 -1
  11. package/dist/completion/index.js +1 -2
  12. package/dist/{completion-BADAzqT9.cjs → completion-D3LUac1o.cjs} +3 -3
  13. package/dist/completion-D3LUac1o.cjs.map +1 -0
  14. package/dist/{completion-Dj7ytbLu.js → completion-DzaT2YCN.js} +2 -2
  15. package/dist/completion-DzaT2YCN.js.map +1 -0
  16. package/dist/docs/index.cjs +89 -14
  17. package/dist/docs/index.cjs.map +1 -1
  18. package/dist/docs/index.d.cts +8 -3
  19. package/dist/docs/index.d.cts.map +1 -1
  20. package/dist/docs/index.d.ts +8 -3
  21. package/dist/docs/index.d.ts.map +1 -1
  22. package/dist/docs/index.js +89 -15
  23. package/dist/docs/index.js.map +1 -1
  24. package/dist/{index-DcwMaTvt.d.ts → index-BW02tH1-.d.cts} +2 -3
  25. package/dist/index-BW02tH1-.d.cts.map +1 -0
  26. package/dist/{index-DjU9BErU.d.cts → index-C3UtsvgY.d.ts} +2 -3
  27. package/dist/index-C3UtsvgY.d.ts.map +1 -0
  28. package/dist/index.cjs +3 -3
  29. package/dist/index.d.cts +3 -4
  30. package/dist/index.d.cts.map +1 -1
  31. package/dist/index.d.ts +3 -4
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +3 -3
  34. package/dist/{lazy-B_E2X0KR.cjs → lazy-qPy4cMnv.cjs} +8 -3
  35. package/dist/lazy-qPy4cMnv.cjs.map +1 -0
  36. package/dist/{lazy-D6nL_iKJ.js → lazy-xrzxwnru.js} +7 -2
  37. package/dist/lazy-xrzxwnru.js.map +1 -0
  38. package/dist/prompt/clack/index.cjs +34 -0
  39. package/dist/prompt/clack/index.cjs.map +1 -0
  40. package/dist/prompt/clack/index.d.cts +18 -0
  41. package/dist/prompt/clack/index.d.cts.map +1 -0
  42. package/dist/prompt/clack/index.d.ts +18 -0
  43. package/dist/prompt/clack/index.d.ts.map +1 -0
  44. package/dist/prompt/clack/index.js +32 -0
  45. package/dist/prompt/clack/index.js.map +1 -0
  46. package/dist/prompt/index.cjs +7 -0
  47. package/dist/prompt/index.d.cts +108 -0
  48. package/dist/prompt/index.d.cts.map +1 -0
  49. package/dist/prompt/index.d.ts +108 -0
  50. package/dist/prompt/index.d.ts.map +1 -0
  51. package/dist/prompt/index.js +3 -0
  52. package/dist/prompt/inquirer/index.cjs +49 -0
  53. package/dist/prompt/inquirer/index.cjs.map +1 -0
  54. package/dist/prompt/inquirer/index.d.cts +18 -0
  55. package/dist/prompt/inquirer/index.d.cts.map +1 -0
  56. package/dist/prompt/inquirer/index.d.ts +18 -0
  57. package/dist/prompt/inquirer/index.d.ts.map +1 -0
  58. package/dist/prompt/inquirer/index.js +47 -0
  59. package/dist/prompt/inquirer/index.js.map +1 -0
  60. package/dist/prompt-BKHqGrFw.js +172 -0
  61. package/dist/prompt-BKHqGrFw.js.map +1 -0
  62. package/dist/prompt-aXfSf27y.cjs +196 -0
  63. package/dist/prompt-aXfSf27y.cjs.map +1 -0
  64. package/dist/{runner-JZRo4pYu.js → runner-CnG-Ncz0.js} +33 -70
  65. package/dist/runner-CnG-Ncz0.js.map +1 -0
  66. package/dist/{runner-BgW1XWJw.cjs → runner-DA48D-3K.cjs} +33 -70
  67. package/dist/runner-DA48D-3K.cjs.map +1 -0
  68. package/dist/{subcommand-router-Bu3YTw_f.js → subcommand-router-BhYVuS83.js} +2 -2
  69. package/dist/{subcommand-router-Bu3YTw_f.js.map → subcommand-router-BhYVuS83.js.map} +1 -1
  70. package/dist/{subcommand-router-BTOzDQnY.cjs → subcommand-router-BnHpqyRk.cjs} +2 -2
  71. package/dist/{subcommand-router-BTOzDQnY.cjs.map → subcommand-router-BnHpqyRk.cjs.map} +1 -1
  72. package/package.json +51 -9
  73. package/dist/arg-registry-BDybpyo5.d.cts.map +0 -1
  74. package/dist/arg-registry-CHmAzJOM.d.ts.map +0 -1
  75. package/dist/completion-BADAzqT9.cjs.map +0 -1
  76. package/dist/completion-Dj7ytbLu.js.map +0 -1
  77. package/dist/index-DcwMaTvt.d.ts.map +0 -1
  78. package/dist/index-DjU9BErU.d.cts.map +0 -1
  79. package/dist/lazy-B_E2X0KR.cjs.map +0 -1
  80. package/dist/lazy-D6nL_iKJ.js.map +0 -1
  81. package/dist/runner-BgW1XWJw.cjs.map +0 -1
  82. package/dist/runner-JZRo4pYu.js.map +0 -1
  83. package/dist/schema-extractor-D1sJW-sc.d.ts +0 -117
  84. package/dist/schema-extractor-D1sJW-sc.d.ts.map +0 -1
  85. package/dist/schema-extractor-RainqdRn.d.cts +0 -117
  86. package/dist/schema-extractor-RainqdRn.d.cts.map +0 -1
package/README.md CHANGED
@@ -13,6 +13,7 @@ From simple scripts to complex CLI tools with subcommands, validation, and auto-
13
13
  - **Lifecycle Management**: Guaranteed `setup` → `run` → `cleanup` execution order
14
14
  - **Signal Handling**: Proper SIGINT/SIGTERM handling with guaranteed cleanup execution
15
15
  - **Auto Help Generation**: Automatically generate help text from definitions
16
+ - **Interactive Prompts**: Prompt for missing arguments with pluggable adapters (clack, inquirer)
16
17
  - **Discriminated Union**: Support for mutually exclusive argument sets
17
18
 
18
19
  ## Requirements
@@ -278,14 +279,15 @@ if (result.success) {
278
279
 
279
280
  Attach metadata to an argument.
280
281
 
281
- | Metadata | Type | Description |
282
- | ------------- | ---------- | ------------------------------------ |
283
- | `positional` | `boolean?` | Treat as positional argument |
284
- | `alias` | `string?` | Short alias (e.g., `-v`) |
285
- | `description` | `string?` | Argument description |
286
- | `placeholder` | `string?` | Placeholder shown in help |
287
- | `env` | `string?` | Environment variable name (fallback) |
288
- | `completion` | `object?` | Shell completion configuration |
282
+ | Metadata | Type | Description |
283
+ | ------------- | ------------- | ------------------------------------------------------------------------ |
284
+ | `positional` | `boolean?` | Treat as positional argument |
285
+ | `alias` | `string?` | Short alias (e.g., `-v`) |
286
+ | `description` | `string?` | Argument description |
287
+ | `placeholder` | `string?` | Placeholder shown in help |
288
+ | `env` | `string?` | Environment variable name (fallback) |
289
+ | `completion` | `object?` | Shell completion configuration |
290
+ | `prompt` | `PromptMeta?` | Interactive prompt configuration ([docs](./docs/interactive-prompts.md)) |
289
291
 
290
292
  ## Shell Completion
291
293
 
@@ -375,6 +377,7 @@ For detailed documentation, see the `docs/` directory:
375
377
  - [Getting Started](./docs/getting-started.md) - Installation and creating your first command
376
378
  - [Essentials](./docs/essentials.md) - Core concepts explained
377
379
  - [Advanced Features](./docs/advanced-features.md) - Subcommands, Discriminated Union
380
+ - [Interactive Prompts](./docs/interactive-prompts.md) - Prompt for missing arguments interactively
378
381
  - [Recipes](./docs/recipes.md) - Testing, configuration, error handling
379
382
  - [API Reference](./docs/api-reference.md) - Detailed API reference
380
383
  - [Doc Generation](./docs/doc-generation.md) - Automatic documentation generation
@@ -1,5 +1,119 @@
1
1
  import { z } from "zod";
2
2
 
3
+ //#region src/core/schema-extractor.d.ts
4
+ /**
5
+ * Resolved metadata for an argument field
6
+ */
7
+ interface ResolvedFieldMeta {
8
+ /** Field name (camelCase, as defined in schema) */
9
+ name: string;
10
+ /** CLI option name (kebab-case, for command line usage) */
11
+ cliName: string;
12
+ /** Short alias (e.g., 'v' for --verbose) */
13
+ alias?: string | undefined;
14
+ /** Argument description */
15
+ description?: string | undefined;
16
+ /** Whether this is a positional argument */
17
+ positional: boolean;
18
+ /** Placeholder for help display */
19
+ placeholder?: string | undefined;
20
+ /**
21
+ * Environment variable name(s) to read value from.
22
+ * If an array, earlier entries take priority.
23
+ */
24
+ env?: string | string[] | undefined;
25
+ /** Whether this argument is required */
26
+ required: boolean;
27
+ /** Default value if any */
28
+ defaultValue?: unknown;
29
+ /** Detected type from schema */
30
+ type: "string" | "number" | "boolean" | "array" | "unknown";
31
+ /** Original Zod schema */
32
+ schema: z.ZodType;
33
+ /** True if this overrides built-in aliases (-h, -H) */
34
+ overrideBuiltinAlias?: true;
35
+ /** Enum values if detected from schema (z.enum) */
36
+ enumValues?: string[] | undefined;
37
+ /** Completion metadata from arg() */
38
+ completion?: CompletionMeta | undefined;
39
+ /** Prompt metadata from arg() for interactive input */
40
+ prompt?: PromptMeta | undefined;
41
+ /** Side-effect callback from arg() metadata */
42
+ effect?: ((value: unknown, context: EffectContext) => void | PromiseLike<void>) | undefined;
43
+ }
44
+ /**
45
+ * Extracted fields from a schema
46
+ */
47
+ interface ExtractedFields {
48
+ /** All field definitions */
49
+ fields: ResolvedFieldMeta[];
50
+ /** Original schema for validation */
51
+ schema: ArgsSchema;
52
+ /** Schema type */
53
+ schemaType: "object" | "discriminatedUnion" | "union" | "xor" | "intersection";
54
+ /** Discriminator key (for discriminatedUnion) */
55
+ discriminator?: string;
56
+ /** Variants (for discriminatedUnion) */
57
+ variants?: Array<{
58
+ discriminatorValue: string;
59
+ fields: ResolvedFieldMeta[];
60
+ description?: string;
61
+ }>;
62
+ /** Options (for union) */
63
+ unionOptions?: ExtractedFields[];
64
+ /** Schema description */
65
+ description?: string;
66
+ /**
67
+ * Unknown keys handling mode
68
+ * - "strict": Unknown keys cause validation errors (z.strictObject or z.object().strict())
69
+ * - "strip": Unknown keys trigger warnings (default, z.object())
70
+ * - "passthrough": Unknown keys are silently ignored (z.looseObject or z.object().passthrough())
71
+ */
72
+ unknownKeysMode: UnknownKeysMode;
73
+ }
74
+ /**
75
+ * Unknown keys handling mode for object schemas
76
+ * - "strict": Unknown keys cause validation errors
77
+ * - "strip": Unknown keys are silently ignored (default)
78
+ * - "passthrough": Unknown keys are passed through
79
+ */
80
+ type UnknownKeysMode = "strict" | "strip" | "passthrough";
81
+ /**
82
+ * Detect unknown keys handling mode from a Zod object schema
83
+ *
84
+ * In Zod v4:
85
+ * - Default (strip): _def.catchall is undefined
86
+ * - strict: _def.catchall is ZodNever (type = "never")
87
+ * - passthrough: _def.catchall is ZodUnknown (type = "unknown")
88
+ */
89
+ declare function getUnknownKeysMode(schema: z.ZodType): UnknownKeysMode;
90
+ /**
91
+ * Convert camelCase to kebab-case
92
+ * @example toKebabCase("dryRun") => "dry-run"
93
+ * @example toKebabCase("outputDir") => "output-dir"
94
+ * @example toKebabCase("XMLParser") => "xml-parser"
95
+ */
96
+ declare function toKebabCase(str: string): string;
97
+ /**
98
+ * Convert hyphen-separated sequences to camelCase.
99
+ *
100
+ * Replaces `-x` (hyphen followed by a lowercase letter) with the uppercase
101
+ * variant. Non-hyphenated input (e.g., already camelCase) is returned as-is.
102
+ *
103
+ * @param str - A string that may contain hyphens
104
+ * @example toCamelCase("dry-run") => "dryRun"
105
+ * @example toCamelCase("output-dir") => "outputDir"
106
+ * @example toCamelCase("dryRun") => "dryRun"
107
+ */
108
+ declare function toCamelCase(str: string): string;
109
+ /**
110
+ * Extract all fields from a schema
111
+ *
112
+ * @param schema - The args schema (ZodObject, ZodDiscriminatedUnion, etc.)
113
+ * @returns Extracted field information
114
+ */
115
+ declare function extractFields(schema: ArgsSchema): ExtractedFields;
116
+ //#endregion
3
117
  //#region src/lazy.d.ts
4
118
  /**
5
119
  * A lazily-loaded command that carries synchronous metadata for
@@ -184,6 +298,12 @@ type SubCommandValue = AnyCommand | (() => Promise<AnyCommand>) | LazyCommand;
184
298
  * Record of subcommands indexed by name
185
299
  */
186
300
  type SubCommandsRecord = Record<string, SubCommandValue>;
301
+ /**
302
+ * Async callback to resolve missing argument values interactively.
303
+ * Called after env fallback, before Zod validation.
304
+ * Provided by adapter subpath modules (e.g. `politty/prompt/clack`).
305
+ */
306
+ type PromptResolver = (rawArgs: Record<string, unknown>, extracted: ExtractedFields) => Promise<Record<string, unknown>>;
187
307
  /**
188
308
  * Options for runMain (CLI entry point)
189
309
  */
@@ -204,6 +324,10 @@ interface MainOptions {
204
324
  setup?: ((context: GlobalSetupContext) => void | Promise<void>) | undefined;
205
325
  /** Global cleanup hook (runs after command execution, always executes even on error) */
206
326
  cleanup?: ((context: GlobalCleanupContext) => void | Promise<void>) | undefined;
327
+ /** Whether to display errors to stderr before process.exit (default: true) */
328
+ displayErrors?: boolean;
329
+ /** Prompt resolver for interactive missing-arg prompts (e.g. from `politty/prompt/clack`). */
330
+ prompt?: PromptResolver | undefined;
207
331
  }
208
332
  /**
209
333
  * Options for runCommand (programmatic/test usage)
@@ -223,6 +347,8 @@ interface RunCommandOptions {
223
347
  setup?: ((context: GlobalSetupContext) => void | Promise<void>) | undefined;
224
348
  /** Global cleanup hook (runs after command execution, always executes even on error) */
225
349
  cleanup?: ((context: GlobalCleanupContext) => void | Promise<void>) | undefined;
350
+ /** Prompt resolver for interactive missing-arg prompts (e.g. from `politty/prompt/clack`). */
351
+ prompt?: PromptResolver | undefined;
226
352
  }
227
353
  /**
228
354
  * Log level type
@@ -342,6 +468,52 @@ type CompletionMeta = {
342
468
  /** Glob patterns for file matching (only applies when type is "file") */matcher?: string[];
343
469
  extensions?: never;
344
470
  });
471
+ /**
472
+ * Prompt input type for interactive prompts
473
+ *
474
+ * - "text": free-form text input (default for string schemas)
475
+ * - "password": masked text input
476
+ * - "confirm": yes/no prompt (default for boolean schemas)
477
+ * - "select": single selection from choices (default for enum schemas)
478
+ * - "file": file path input (inherited from completion type)
479
+ * - "directory": directory path input (inherited from completion type)
480
+ */
481
+ type PromptType = "text" | "password" | "confirm" | "select" | "file" | "directory";
482
+ /**
483
+ * Prompt metadata for interactive input when a value is missing.
484
+ * Used by the `politty/prompt` module to request user input for unresolved arguments.
485
+ *
486
+ * @example
487
+ * ```ts
488
+ * // Custom prompt message
489
+ * name: arg(z.string(), {
490
+ * prompt: { message: "What is your name?" }
491
+ * })
492
+ *
493
+ * // Password input (masked)
494
+ * token: arg(z.string(), {
495
+ * prompt: { type: "password", message: "Enter API token" }
496
+ * })
497
+ *
498
+ * // Select with custom choices
499
+ * region: arg(z.string(), {
500
+ * prompt: { choices: ["us-east-1", "eu-west-1", "ap-northeast-1"] }
501
+ * })
502
+ * ```
503
+ */
504
+ interface PromptMeta {
505
+ /** Prompt message shown to the user. Defaults to the field's description or name. */
506
+ message?: string;
507
+ /** Explicit prompt type. Overrides auto-detection from schema/completion. */
508
+ type?: PromptType;
509
+ /** Choices for select prompt. Overrides enum values from schema. */
510
+ choices?: Array<string | {
511
+ label: string;
512
+ value: string;
513
+ }>;
514
+ /** Whether to enable prompting for this field (default: true when prompt is set) */
515
+ enabled?: boolean;
516
+ }
345
517
  /**
346
518
  * Context provided to effect callbacks.
347
519
  * When GlobalArgs is extended via declaration merging, `globalArgs` is typed accordingly.
@@ -381,6 +553,20 @@ interface BaseArgMeta<TValue = unknown> {
381
553
  env?: string | string[];
382
554
  /** Completion configuration for shell tab-completion */
383
555
  completion?: CompletionMeta;
556
+ /**
557
+ * Interactive prompt configuration for missing values.
558
+ * When set, the `politty/prompt` module will prompt the user interactively
559
+ * if this argument is not provided via CLI args or environment variables.
560
+ *
561
+ * @example
562
+ * ```ts
563
+ * name: arg(z.string(), {
564
+ * description: "User name",
565
+ * prompt: { message: "What is your name?" },
566
+ * })
567
+ * ```
568
+ */
569
+ prompt?: PromptMeta;
384
570
  /**
385
571
  * Side-effect callback executed after argument parsing and validation.
386
572
  * Runs before the command lifecycle (setup/run/cleanup).
@@ -455,5 +641,5 @@ type ValidateArgMeta<M> = M extends {
455
641
  declare function arg<T extends z.ZodType>(schema: T): T;
456
642
  declare function arg<T extends z.ZodType, M extends ArgMeta<z.output<T>>>(schema: T, meta: ValidateArgMeta<M>): T;
457
643
  //#endregion
458
- export { SubCommandValue as A, NonRunnableCommand as C, RunResultSuccess as D, RunResultFailure as E, LazyCommand as M, isLazyCommand as N, RunnableCommand as O, lazy as P, MainOptions as S, RunResult as T, IsEmpty as _, EffectContext as a, LogStream as b, ArgsSchema as c, Command as d, CommandBase as f, GlobalSetupContext as g, GlobalCleanupContext as h, CustomCompletion as i, SubCommandsRecord as j, SetupContext as k, CleanupContext as l, GlobalArgs as m, CompletionMeta as n, arg as o, Example as p, CompletionType as r, AnyCommand as s, ArgMeta as t, CollectedLogs as u, LogEntry as v, RunCommandOptions as w, Logger as x, LogLevel as y };
459
- //# sourceMappingURL=arg-registry-BDybpyo5.d.cts.map
644
+ export { RunResultSuccess as A, UnknownKeysMode as B, Logger as C, RunCommandOptions as D, PromptResolver as E, LazyCommand as F, getUnknownKeysMode as H, isLazyCommand as I, lazy as L, SetupContext as M, SubCommandValue as N, RunResult as O, SubCommandsRecord as P, ExtractedFields as R, LogStream as S, NonRunnableCommand as T, toCamelCase as U, extractFields as V, toKebabCase as W, GlobalCleanupContext as _, EffectContext as a, LogEntry as b, arg as c, CleanupContext as d, CollectedLogs as f, GlobalArgs as g, Example as h, CustomCompletion as i, RunnableCommand as j, RunResultFailure as k, AnyCommand as l, CommandBase as m, CompletionMeta as n, PromptMeta as o, Command as p, CompletionType as r, PromptType as s, ArgMeta as t, ArgsSchema as u, GlobalSetupContext as v, MainOptions as w, LogLevel as x, IsEmpty as y, ResolvedFieldMeta as z };
645
+ //# sourceMappingURL=arg-registry-6E4C5MTC.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arg-registry-6E4C5MTC.d.ts","names":[],"sources":["../src/core/schema-extractor.ts","../src/lazy.ts","../src/types.ts","../src/core/arg-registry.ts"],"mappings":"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"}
@@ -1,5 +1,119 @@
1
1
  import { z } from "zod";
2
2
 
3
+ //#region src/core/schema-extractor.d.ts
4
+ /**
5
+ * Resolved metadata for an argument field
6
+ */
7
+ interface ResolvedFieldMeta {
8
+ /** Field name (camelCase, as defined in schema) */
9
+ name: string;
10
+ /** CLI option name (kebab-case, for command line usage) */
11
+ cliName: string;
12
+ /** Short alias (e.g., 'v' for --verbose) */
13
+ alias?: string | undefined;
14
+ /** Argument description */
15
+ description?: string | undefined;
16
+ /** Whether this is a positional argument */
17
+ positional: boolean;
18
+ /** Placeholder for help display */
19
+ placeholder?: string | undefined;
20
+ /**
21
+ * Environment variable name(s) to read value from.
22
+ * If an array, earlier entries take priority.
23
+ */
24
+ env?: string | string[] | undefined;
25
+ /** Whether this argument is required */
26
+ required: boolean;
27
+ /** Default value if any */
28
+ defaultValue?: unknown;
29
+ /** Detected type from schema */
30
+ type: "string" | "number" | "boolean" | "array" | "unknown";
31
+ /** Original Zod schema */
32
+ schema: z.ZodType;
33
+ /** True if this overrides built-in aliases (-h, -H) */
34
+ overrideBuiltinAlias?: true;
35
+ /** Enum values if detected from schema (z.enum) */
36
+ enumValues?: string[] | undefined;
37
+ /** Completion metadata from arg() */
38
+ completion?: CompletionMeta | undefined;
39
+ /** Prompt metadata from arg() for interactive input */
40
+ prompt?: PromptMeta | undefined;
41
+ /** Side-effect callback from arg() metadata */
42
+ effect?: ((value: unknown, context: EffectContext) => void | PromiseLike<void>) | undefined;
43
+ }
44
+ /**
45
+ * Extracted fields from a schema
46
+ */
47
+ interface ExtractedFields {
48
+ /** All field definitions */
49
+ fields: ResolvedFieldMeta[];
50
+ /** Original schema for validation */
51
+ schema: ArgsSchema;
52
+ /** Schema type */
53
+ schemaType: "object" | "discriminatedUnion" | "union" | "xor" | "intersection";
54
+ /** Discriminator key (for discriminatedUnion) */
55
+ discriminator?: string;
56
+ /** Variants (for discriminatedUnion) */
57
+ variants?: Array<{
58
+ discriminatorValue: string;
59
+ fields: ResolvedFieldMeta[];
60
+ description?: string;
61
+ }>;
62
+ /** Options (for union) */
63
+ unionOptions?: ExtractedFields[];
64
+ /** Schema description */
65
+ description?: string;
66
+ /**
67
+ * Unknown keys handling mode
68
+ * - "strict": Unknown keys cause validation errors (z.strictObject or z.object().strict())
69
+ * - "strip": Unknown keys trigger warnings (default, z.object())
70
+ * - "passthrough": Unknown keys are silently ignored (z.looseObject or z.object().passthrough())
71
+ */
72
+ unknownKeysMode: UnknownKeysMode;
73
+ }
74
+ /**
75
+ * Unknown keys handling mode for object schemas
76
+ * - "strict": Unknown keys cause validation errors
77
+ * - "strip": Unknown keys are silently ignored (default)
78
+ * - "passthrough": Unknown keys are passed through
79
+ */
80
+ type UnknownKeysMode = "strict" | "strip" | "passthrough";
81
+ /**
82
+ * Detect unknown keys handling mode from a Zod object schema
83
+ *
84
+ * In Zod v4:
85
+ * - Default (strip): _def.catchall is undefined
86
+ * - strict: _def.catchall is ZodNever (type = "never")
87
+ * - passthrough: _def.catchall is ZodUnknown (type = "unknown")
88
+ */
89
+ declare function getUnknownKeysMode(schema: z.ZodType): UnknownKeysMode;
90
+ /**
91
+ * Convert camelCase to kebab-case
92
+ * @example toKebabCase("dryRun") => "dry-run"
93
+ * @example toKebabCase("outputDir") => "output-dir"
94
+ * @example toKebabCase("XMLParser") => "xml-parser"
95
+ */
96
+ declare function toKebabCase(str: string): string;
97
+ /**
98
+ * Convert hyphen-separated sequences to camelCase.
99
+ *
100
+ * Replaces `-x` (hyphen followed by a lowercase letter) with the uppercase
101
+ * variant. Non-hyphenated input (e.g., already camelCase) is returned as-is.
102
+ *
103
+ * @param str - A string that may contain hyphens
104
+ * @example toCamelCase("dry-run") => "dryRun"
105
+ * @example toCamelCase("output-dir") => "outputDir"
106
+ * @example toCamelCase("dryRun") => "dryRun"
107
+ */
108
+ declare function toCamelCase(str: string): string;
109
+ /**
110
+ * Extract all fields from a schema
111
+ *
112
+ * @param schema - The args schema (ZodObject, ZodDiscriminatedUnion, etc.)
113
+ * @returns Extracted field information
114
+ */
115
+ declare function extractFields(schema: ArgsSchema): ExtractedFields;
116
+ //#endregion
3
117
  //#region src/lazy.d.ts
4
118
  /**
5
119
  * A lazily-loaded command that carries synchronous metadata for
@@ -184,6 +298,12 @@ type SubCommandValue = AnyCommand | (() => Promise<AnyCommand>) | LazyCommand;
184
298
  * Record of subcommands indexed by name
185
299
  */
186
300
  type SubCommandsRecord = Record<string, SubCommandValue>;
301
+ /**
302
+ * Async callback to resolve missing argument values interactively.
303
+ * Called after env fallback, before Zod validation.
304
+ * Provided by adapter subpath modules (e.g. `politty/prompt/clack`).
305
+ */
306
+ type PromptResolver = (rawArgs: Record<string, unknown>, extracted: ExtractedFields) => Promise<Record<string, unknown>>;
187
307
  /**
188
308
  * Options for runMain (CLI entry point)
189
309
  */
@@ -204,6 +324,10 @@ interface MainOptions {
204
324
  setup?: ((context: GlobalSetupContext) => void | Promise<void>) | undefined;
205
325
  /** Global cleanup hook (runs after command execution, always executes even on error) */
206
326
  cleanup?: ((context: GlobalCleanupContext) => void | Promise<void>) | undefined;
327
+ /** Whether to display errors to stderr before process.exit (default: true) */
328
+ displayErrors?: boolean;
329
+ /** Prompt resolver for interactive missing-arg prompts (e.g. from `politty/prompt/clack`). */
330
+ prompt?: PromptResolver | undefined;
207
331
  }
208
332
  /**
209
333
  * Options for runCommand (programmatic/test usage)
@@ -223,6 +347,8 @@ interface RunCommandOptions {
223
347
  setup?: ((context: GlobalSetupContext) => void | Promise<void>) | undefined;
224
348
  /** Global cleanup hook (runs after command execution, always executes even on error) */
225
349
  cleanup?: ((context: GlobalCleanupContext) => void | Promise<void>) | undefined;
350
+ /** Prompt resolver for interactive missing-arg prompts (e.g. from `politty/prompt/clack`). */
351
+ prompt?: PromptResolver | undefined;
226
352
  }
227
353
  /**
228
354
  * Log level type
@@ -342,6 +468,52 @@ type CompletionMeta = {
342
468
  /** Glob patterns for file matching (only applies when type is "file") */matcher?: string[];
343
469
  extensions?: never;
344
470
  });
471
+ /**
472
+ * Prompt input type for interactive prompts
473
+ *
474
+ * - "text": free-form text input (default for string schemas)
475
+ * - "password": masked text input
476
+ * - "confirm": yes/no prompt (default for boolean schemas)
477
+ * - "select": single selection from choices (default for enum schemas)
478
+ * - "file": file path input (inherited from completion type)
479
+ * - "directory": directory path input (inherited from completion type)
480
+ */
481
+ type PromptType = "text" | "password" | "confirm" | "select" | "file" | "directory";
482
+ /**
483
+ * Prompt metadata for interactive input when a value is missing.
484
+ * Used by the `politty/prompt` module to request user input for unresolved arguments.
485
+ *
486
+ * @example
487
+ * ```ts
488
+ * // Custom prompt message
489
+ * name: arg(z.string(), {
490
+ * prompt: { message: "What is your name?" }
491
+ * })
492
+ *
493
+ * // Password input (masked)
494
+ * token: arg(z.string(), {
495
+ * prompt: { type: "password", message: "Enter API token" }
496
+ * })
497
+ *
498
+ * // Select with custom choices
499
+ * region: arg(z.string(), {
500
+ * prompt: { choices: ["us-east-1", "eu-west-1", "ap-northeast-1"] }
501
+ * })
502
+ * ```
503
+ */
504
+ interface PromptMeta {
505
+ /** Prompt message shown to the user. Defaults to the field's description or name. */
506
+ message?: string;
507
+ /** Explicit prompt type. Overrides auto-detection from schema/completion. */
508
+ type?: PromptType;
509
+ /** Choices for select prompt. Overrides enum values from schema. */
510
+ choices?: Array<string | {
511
+ label: string;
512
+ value: string;
513
+ }>;
514
+ /** Whether to enable prompting for this field (default: true when prompt is set) */
515
+ enabled?: boolean;
516
+ }
345
517
  /**
346
518
  * Context provided to effect callbacks.
347
519
  * When GlobalArgs is extended via declaration merging, `globalArgs` is typed accordingly.
@@ -381,6 +553,20 @@ interface BaseArgMeta<TValue = unknown> {
381
553
  env?: string | string[];
382
554
  /** Completion configuration for shell tab-completion */
383
555
  completion?: CompletionMeta;
556
+ /**
557
+ * Interactive prompt configuration for missing values.
558
+ * When set, the `politty/prompt` module will prompt the user interactively
559
+ * if this argument is not provided via CLI args or environment variables.
560
+ *
561
+ * @example
562
+ * ```ts
563
+ * name: arg(z.string(), {
564
+ * description: "User name",
565
+ * prompt: { message: "What is your name?" },
566
+ * })
567
+ * ```
568
+ */
569
+ prompt?: PromptMeta;
384
570
  /**
385
571
  * Side-effect callback executed after argument parsing and validation.
386
572
  * Runs before the command lifecycle (setup/run/cleanup).
@@ -455,5 +641,5 @@ type ValidateArgMeta<M> = M extends {
455
641
  declare function arg<T extends z.ZodType>(schema: T): T;
456
642
  declare function arg<T extends z.ZodType, M extends ArgMeta<z.output<T>>>(schema: T, meta: ValidateArgMeta<M>): T;
457
643
  //#endregion
458
- export { SubCommandValue as A, NonRunnableCommand as C, RunResultSuccess as D, RunResultFailure as E, LazyCommand as M, isLazyCommand as N, RunnableCommand as O, lazy as P, MainOptions as S, RunResult as T, IsEmpty as _, EffectContext as a, LogStream as b, ArgsSchema as c, Command as d, CommandBase as f, GlobalSetupContext as g, GlobalCleanupContext as h, CustomCompletion as i, SubCommandsRecord as j, SetupContext as k, CleanupContext as l, GlobalArgs as m, CompletionMeta as n, arg as o, Example as p, CompletionType as r, AnyCommand as s, ArgMeta as t, CollectedLogs as u, LogEntry as v, RunCommandOptions as w, Logger as x, LogLevel as y };
459
- //# sourceMappingURL=arg-registry-CHmAzJOM.d.ts.map
644
+ export { RunResultSuccess as A, UnknownKeysMode as B, Logger as C, RunCommandOptions as D, PromptResolver as E, LazyCommand as F, getUnknownKeysMode as H, isLazyCommand as I, lazy as L, SetupContext as M, SubCommandValue as N, RunResult as O, SubCommandsRecord as P, ExtractedFields as R, LogStream as S, NonRunnableCommand as T, toCamelCase as U, extractFields as V, toKebabCase as W, GlobalCleanupContext as _, EffectContext as a, LogEntry as b, arg as c, CleanupContext as d, CollectedLogs as f, GlobalArgs as g, Example as h, CustomCompletion as i, RunnableCommand as j, RunResultFailure as k, AnyCommand as l, CommandBase as m, CompletionMeta as n, PromptMeta as o, Command as p, CompletionType as r, PromptType as s, ArgMeta as t, ArgsSchema as u, GlobalSetupContext as v, MainOptions as w, LogLevel as x, IsEmpty as y, ResolvedFieldMeta as z };
645
+ //# sourceMappingURL=arg-registry-CeIRoLaB.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arg-registry-CeIRoLaB.d.cts","names":[],"sources":["../src/core/schema-extractor.ts","../src/lazy.ts","../src/types.ts","../src/core/arg-registry.ts"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { t as ArgMeta } from "./arg-registry-BDybpyo5.cjs";
1
+ import { t as ArgMeta } from "./arg-registry-CeIRoLaB.cjs";
2
2
 
3
3
  //#region src/augment.d.ts
4
4
  declare module "zod" {
package/dist/augment.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { t as ArgMeta } from "./arg-registry-CHmAzJOM.js";
1
+ import { t as ArgMeta } from "./arg-registry-6E4C5MTC.js";
2
2
 
3
3
  //#region src/augment.d.ts
4
4
  declare module "zod" {
@@ -1,6 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- require('../lazy-B_E2X0KR.cjs');
3
- const require_completion = require('../completion-BADAzqT9.cjs');
2
+ const require_completion = require('../completion-D3LUac1o.cjs');
4
3
 
5
4
  exports.CompletionDirective = require_completion.CompletionDirective;
6
5
  exports.createCompletionCommand = require_completion.createCompletionCommand;
@@ -1,2 +1,2 @@
1
- import { C as CompletableSubcommand, D as CompletionResult, E as CompletionOptions, O as ShellType, S as CompletableOption, T as CompletionGenerator, _ as CompletionDirective, a as getSupportedShells, b as CompletionType, c as resolveValueCompletion, d as ShellFormatOptions, f as formatForShell, g as CompletionCandidate, h as CandidateResult, i as generateCompletion, l as extractCompletionData, m as hasCompleteCommand, n as createCompletionCommand, o as withCompletionCommand, p as createDynamicCompleteCommand, r as detectShell, s as ValueCompletionField, t as WithCompletionOptions, u as extractPositionals, v as generateCandidates, w as CompletionData, x as parseCompletionContext, y as CompletionContext } from "../index-DjU9BErU.cjs";
1
+ import { C as CompletableSubcommand, D as CompletionResult, E as CompletionOptions, O as ShellType, S as CompletableOption, T as CompletionGenerator, _ as CompletionDirective, a as getSupportedShells, b as CompletionType, c as resolveValueCompletion, d as ShellFormatOptions, f as formatForShell, g as CompletionCandidate, h as CandidateResult, i as generateCompletion, l as extractCompletionData, m as hasCompleteCommand, n as createCompletionCommand, o as withCompletionCommand, p as createDynamicCompleteCommand, r as detectShell, s as ValueCompletionField, t as WithCompletionOptions, u as extractPositionals, v as generateCandidates, w as CompletionData, x as parseCompletionContext, y as CompletionContext } from "../index-BW02tH1-.cjs";
2
2
  export { CandidateResult, CompletableOption, CompletableSubcommand, CompletionCandidate, CompletionContext, CompletionData, CompletionDirective, CompletionGenerator, CompletionOptions, CompletionResult, CompletionType, ShellFormatOptions, ShellType, ValueCompletionField, WithCompletionOptions, createCompletionCommand, createDynamicCompleteCommand, detectShell, extractCompletionData, extractPositionals, formatForShell, generateCandidates, generateCompletion, getSupportedShells, hasCompleteCommand, parseCompletionContext, resolveValueCompletion, withCompletionCommand };
@@ -1,2 +1,2 @@
1
- import { C as CompletableSubcommand, D as CompletionResult, E as CompletionOptions, O as ShellType, S as CompletableOption, T as CompletionGenerator, _ as CompletionDirective, a as getSupportedShells, b as CompletionType, c as resolveValueCompletion, d as ShellFormatOptions, f as formatForShell, g as CompletionCandidate, h as CandidateResult, i as generateCompletion, l as extractCompletionData, m as hasCompleteCommand, n as createCompletionCommand, o as withCompletionCommand, p as createDynamicCompleteCommand, r as detectShell, s as ValueCompletionField, t as WithCompletionOptions, u as extractPositionals, v as generateCandidates, w as CompletionData, x as parseCompletionContext, y as CompletionContext } from "../index-DcwMaTvt.js";
1
+ import { C as CompletableSubcommand, D as CompletionResult, E as CompletionOptions, O as ShellType, S as CompletableOption, T as CompletionGenerator, _ as CompletionDirective, a as getSupportedShells, b as CompletionType, c as resolveValueCompletion, d as ShellFormatOptions, f as formatForShell, g as CompletionCandidate, h as CandidateResult, i as generateCompletion, l as extractCompletionData, m as hasCompleteCommand, n as createCompletionCommand, o as withCompletionCommand, p as createDynamicCompleteCommand, r as detectShell, s as ValueCompletionField, t as WithCompletionOptions, u as extractPositionals, v as generateCandidates, w as CompletionData, x as parseCompletionContext, y as CompletionContext } from "../index-C3UtsvgY.js";
2
2
  export { CandidateResult, CompletableOption, CompletableSubcommand, CompletionCandidate, CompletionContext, CompletionData, CompletionDirective, CompletionGenerator, CompletionOptions, CompletionResult, CompletionType, ShellFormatOptions, ShellType, ValueCompletionField, WithCompletionOptions, createCompletionCommand, createDynamicCompleteCommand, detectShell, extractCompletionData, extractPositionals, formatForShell, generateCandidates, generateCompletion, getSupportedShells, hasCompleteCommand, parseCompletionContext, resolveValueCompletion, withCompletionCommand };
@@ -1,4 +1,3 @@
1
- import "../lazy-D6nL_iKJ.js";
2
- import { a as withCompletionCommand, c as formatForShell, d as generateCandidates, f as extractCompletionData, i as getSupportedShells, l as parseCompletionContext, m as resolveValueCompletion, n as detectShell, o as createDynamicCompleteCommand, p as extractPositionals, r as generateCompletion, s as hasCompleteCommand, t as createCompletionCommand, u as CompletionDirective } from "../completion-Dj7ytbLu.js";
1
+ import { a as withCompletionCommand, c as formatForShell, d as generateCandidates, f as extractCompletionData, i as getSupportedShells, l as parseCompletionContext, m as resolveValueCompletion, n as detectShell, o as createDynamicCompleteCommand, p as extractPositionals, r as generateCompletion, s as hasCompleteCommand, t as createCompletionCommand, u as CompletionDirective } from "../completion-DzaT2YCN.js";
3
2
 
4
3
  export { CompletionDirective, createCompletionCommand, createDynamicCompleteCommand, detectShell, extractCompletionData, extractPositionals, formatForShell, generateCandidates, generateCompletion, getSupportedShells, hasCompleteCommand, parseCompletionContext, resolveValueCompletion, withCompletionCommand };
@@ -1,5 +1,5 @@
1
- const require_subcommand_router = require('./subcommand-router-BTOzDQnY.cjs');
2
- const require_lazy = require('./lazy-B_E2X0KR.cjs');
1
+ const require_subcommand_router = require('./subcommand-router-BnHpqyRk.cjs');
2
+ const require_lazy = require('./lazy-qPy4cMnv.cjs');
3
3
  let zod = require("zod");
4
4
  let node_child_process = require("node:child_process");
5
5
 
@@ -1872,4 +1872,4 @@ Object.defineProperty(exports, 'withCompletionCommand', {
1872
1872
  return withCompletionCommand;
1873
1873
  }
1874
1874
  });
1875
- //# sourceMappingURL=completion-BADAzqT9.cjs.map
1875
+ //# sourceMappingURL=completion-D3LUac1o.cjs.map