incur 0.1.6 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -21,6 +21,7 @@
21
21
  - [**Inferred types**](#inferred-types): generic type flow from schemas to `run` callbacks with zero manual annotations
22
22
  - [**Global options**](#global-options): `--format`, `--json`, `--verbose`, `--help`, `--version` on every CLI for free
23
23
  - [**Light API surface**](#light-api-surface): `Cli.create()`, `.command()`, `.serve()` – that's it
24
+ - [**Middleware**](#middleware): composable before/after hooks with typed dependency injection via `cli.use()`
24
25
 
25
26
  ## Quickprompt
26
27
 
@@ -484,6 +485,99 @@ cli.command('deploy', {
484
485
  })
485
486
  ```
486
487
 
488
+ ### Middleware
489
+
490
+ Register composable before/after hooks with `cli.use()`. Middleware executes in registration order, onion-style – each calls `await next()` to proceed to the next middleware or the command handler.
491
+
492
+ ```ts
493
+ const cli = Cli.create('deploy-cli', { description: 'Deploy tools' })
494
+ .use(async (c, next) => {
495
+ const start = Date.now()
496
+ await next()
497
+ console.log(`took ${Date.now() - start}ms`)
498
+ })
499
+ .command('deploy', {
500
+ run() {
501
+ return { deployed: true }
502
+ },
503
+ })
504
+ ```
505
+
506
+ ```sh
507
+ $ deploy-cli deploy
508
+ # → deployed: true
509
+ # took 12ms
510
+ ```
511
+
512
+ Per-command middleware runs after root and group middleware, and only for that command:
513
+
514
+ ```ts
515
+ import { Cli, middleware, z } from 'incur'
516
+
517
+ const cli = Cli.create('my-cli', {
518
+ description: 'My CLI',
519
+ vars: z.object({ user: z.custom<User>() }),
520
+ })
521
+
522
+ const requireAuth = middleware<typeof cli.vars>((c, next) => {
523
+ if (!c.var.user) throw new Error('must be logged in')
524
+ return next()
525
+ })
526
+
527
+ cli.command('deploy', {
528
+ middleware: [requireAuth],
529
+ run() {
530
+ return { deployed: true }
531
+ },
532
+ })
533
+ ```
534
+
535
+ ```sh
536
+ $ my-cli deploy
537
+ # Error: must be logged in
538
+
539
+ $ my-cli other-cmd
540
+ # per-command middleware does not run
541
+ ```
542
+
543
+ ### Variables
544
+
545
+ Declare a `vars` schema on `create()` to enable typed variables. Middleware sets them with `c.set()`, and both middleware and command handlers read them via `c.var`. Use `.default()` for vars that don't need middleware:
546
+
547
+ ```ts
548
+ type User = { id: string; name: string }
549
+
550
+ const cli = Cli.create('my-cli', {
551
+ description: 'My CLI',
552
+ vars: z.object({
553
+ user: z.custom<User>(),
554
+ requestId: z.string(),
555
+ debug: z.boolean().default(true),
556
+ }),
557
+ })
558
+
559
+ cli.use(async (c, next) => {
560
+ c.set('user', await authenticate())
561
+ c.set('requestId', crypto.randomUUID())
562
+ await next()
563
+ })
564
+
565
+ cli.command('whoami', {
566
+ run(c) {
567
+ return { user: c.var.user, requestId: c.var.requestId, debug: c.var.debug }
568
+ },
569
+ })
570
+ ```
571
+
572
+ ```sh
573
+ $ my-cli whoami
574
+ # → user:
575
+ # → id: u_123
576
+ # → name: Alice
577
+ # → requestId: 550e8400-e29b-41d4-a716-446655440000
578
+ # → debug: true
579
+ ```
580
+
487
581
  ### Global options
488
582
 
489
583
  Every incur CLI includes these flags automatically:
package/SKILL.md CHANGED
@@ -588,6 +588,120 @@ sub.command('sync', { run: () => ({ synced: true }) }) // inherits agent-only
588
588
  sub.command('status', { outputPolicy: 'all', run: () => ({}) }) // overrides
589
589
  ```
590
590
 
591
+ ## Middleware
592
+
593
+ Register composable before/after hooks with `cli.use()`. Middleware executes in registration order, onion-style. Each calls `await next()` to proceed.
594
+
595
+ ```ts
596
+ const cli = Cli.create('deploy-cli', { description: 'Deploy tools' })
597
+ .use(async (c, next) => {
598
+ const start = Date.now()
599
+ await next()
600
+ console.log(`took ${Date.now() - start}ms`)
601
+ })
602
+ .command('deploy', {
603
+ run() {
604
+ return { deployed: true }
605
+ },
606
+ })
607
+ ```
608
+
609
+ ```sh
610
+ $ deploy-cli deploy
611
+ # → deployed: true
612
+ # took 12ms
613
+ ```
614
+
615
+ Middleware on a sub-CLI only applies to its commands:
616
+
617
+ ```ts
618
+ const admin = Cli.create('admin', { description: 'Admin commands' })
619
+ .use(async (c, next) => {
620
+ if (!isAdmin()) throw new Error('forbidden')
621
+ await next()
622
+ })
623
+ .command('reset', { run: () => ({ reset: true }) })
624
+
625
+ cli.command(admin) // middleware only runs for `my-cli admin reset`
626
+ ```
627
+
628
+ ```sh
629
+ $ my-cli admin reset
630
+ # → reset: true
631
+
632
+ $ my-cli other-cmd
633
+ # middleware does not run
634
+ ```
635
+
636
+ Per-command middleware runs after root and group middleware, and only for that command:
637
+
638
+ ```ts
639
+ import { Cli, middleware, z } from 'incur'
640
+
641
+ const cli = Cli.create('my-cli', {
642
+ description: 'My CLI',
643
+ vars: z.object({ user: z.custom<{ id: string }>() }),
644
+ })
645
+
646
+ const requireAuth = middleware<typeof cli.vars>((c, next) => {
647
+ if (!c.var.user) throw new Error('must be logged in')
648
+ return next()
649
+ })
650
+
651
+ cli.command('deploy', {
652
+ middleware: [requireAuth],
653
+ run() {
654
+ return { deployed: true }
655
+ },
656
+ })
657
+ ```
658
+
659
+ ```sh
660
+ $ my-cli deploy
661
+ # Error: must be logged in
662
+
663
+ $ my-cli other-cmd
664
+ # per-command middleware does not run
665
+ ```
666
+
667
+ ### Vars — typed dependency injection
668
+
669
+ Declare a `vars` schema on `create()` to inject typed variables. Middleware sets them with `c.set()`, handlers read them via `c.var`. Use `.default()` for vars that don't need middleware:
670
+
671
+ ```ts
672
+ const cli = Cli.create('my-cli', {
673
+ description: 'My CLI',
674
+ vars: z.object({
675
+ user: z.custom<{ id: string; name: string }>(),
676
+ requestId: z.string(),
677
+ debug: z.boolean().default(false),
678
+ }),
679
+ })
680
+
681
+ cli.use(async (c, next) => {
682
+ c.set('user', await authenticate())
683
+ c.set('requestId', crypto.randomUUID())
684
+ await next()
685
+ })
686
+
687
+ cli.command('whoami', {
688
+ run(c) {
689
+ return { user: c.var.user, requestId: c.var.requestId, debug: c.var.debug }
690
+ },
691
+ })
692
+ ```
693
+
694
+ ```sh
695
+ $ my-cli whoami
696
+ # → user:
697
+ # → id: u_123
698
+ # → name: Alice
699
+ # → requestId: 550e8400-e29b-41d4-a716-446655440000
700
+ # → debug: false
701
+ ```
702
+
703
+ Middleware does **not** run for built-in commands (`--help`, `--llms`, `--mcp`, `mcp add`, `skills add`).
704
+
591
705
  ## Serving
592
706
 
593
707
  Call `.serve()` to parse `process.argv` and run:
package/dist/Cli.d.ts CHANGED
@@ -1,23 +1,25 @@
1
1
  import type { z } from 'zod';
2
2
  import * as Formatter from './Formatter.js';
3
+ import type { Handler as MiddlewareHandler } from './middleware.js';
4
+ export type { MiddlewareHandler };
3
5
  import type { Register } from './Register.js';
4
6
  /** A CLI application instance. Also used as a command group when mounted on a parent CLI. */
5
- export type Cli<commands extends CommandsMap = {}> = {
7
+ export type Cli<commands extends CommandsMap = {}, vars extends z.ZodObject<any> | undefined = undefined, env extends z.ZodObject<any> | undefined = undefined> = {
6
8
  /** Registers a root command or mounts a sub-CLI as a command group. */
7
9
  command: {
8
10
  /** Registers a command. Returns the CLI instance for chaining. */
9
- <const name extends string, const args extends z.ZodObject<any> | undefined = undefined, const env extends z.ZodObject<any> | undefined = undefined, const options extends z.ZodObject<any> | undefined = undefined, const output extends z.ZodType | undefined = undefined>(name: name, definition: CommandDefinition<args, env, options, output>): Cli<commands & {
11
+ <const name extends string, const args extends z.ZodObject<any> | undefined = undefined, const cmdEnv extends z.ZodObject<any> | undefined = undefined, const options extends z.ZodObject<any> | undefined = undefined, const output extends z.ZodType | undefined = undefined>(name: name, definition: CommandDefinition<args, cmdEnv, options, output, vars, env>): Cli<commands & {
10
12
  [key in name]: {
11
13
  args: InferOutput<args>;
12
14
  options: InferOutput<options>;
13
15
  };
14
- }>;
16
+ }, vars, env>;
15
17
  /** Mounts a sub-CLI as a command group. */
16
- <const name extends string, const sub extends CommandsMap>(cli: Cli<sub> & {
18
+ <const name extends string, const sub extends CommandsMap>(cli: Cli<sub, any, any> & {
17
19
  name: name;
18
20
  }): Cli<commands & {
19
21
  [key in keyof sub & string as `${name} ${key}`]: sub[key];
20
- }>;
22
+ }, vars, env>;
21
23
  /** Mounts a root CLI as a single command. */
22
24
  <const name extends string, const args extends z.ZodObject<any> | undefined, const opts extends z.ZodObject<any> | undefined>(cli: Root<args, opts> & {
23
25
  name: name;
@@ -26,14 +28,20 @@ export type Cli<commands extends CommandsMap = {}> = {
26
28
  args: InferOutput<args>;
27
29
  options: InferOutput<opts>;
28
30
  };
29
- }>;
31
+ }, vars, env>;
30
32
  };
31
33
  /** A short description of the CLI. */
32
34
  description?: string | undefined;
35
+ /** The env schema, if declared. Use `typeof cli.env` with `middleware<vars, env>()` for typed middleware. */
36
+ env: env;
33
37
  /** The name of the CLI application. */
34
38
  name: string;
35
39
  /** Parses argv, runs the matched command, and writes the output envelope to stdout. */
36
40
  serve(argv?: string[], options?: serve.Options): Promise<void>;
41
+ /** Registers middleware that runs around every command. */
42
+ use(handler: MiddlewareHandler<vars, env>): Cli<commands, vars, env>;
43
+ /** The vars schema, if declared. Use `typeof cli.vars` with `middleware<vars, env>()` for typed middleware. */
44
+ vars: vars;
37
45
  };
38
46
  /** Root CLI — a single command with no subcommands. Carries phantom generics for mounting inference. */
39
47
  export type Root<_args extends z.ZodObject<any> | undefined = undefined, _options extends z.ZodObject<any> | undefined = undefined> = Omit<Cli, 'command'>;
@@ -73,18 +81,18 @@ export type Cta<commands extends CommandsMap = Commands> = ([keyof commands] ext
73
81
  description?: string | undefined;
74
82
  });
75
83
  /** Creates a CLI with a root handler. Can still register subcommands which take precedence. */
76
- export declare function create<const args extends z.ZodObject<any> | undefined = undefined, const env extends z.ZodObject<any> | undefined = undefined, const opts extends z.ZodObject<any> | undefined = undefined, const output extends z.ZodType | undefined = undefined>(name: string, definition: create.Options<args, env, opts, output> & {
84
+ export declare function create<const args extends z.ZodObject<any> | undefined = undefined, const env extends z.ZodObject<any> | undefined = undefined, const opts extends z.ZodObject<any> | undefined = undefined, const output extends z.ZodType | undefined = undefined, const vars extends z.ZodObject<any> | undefined = undefined>(name: string, definition: create.Options<args, env, opts, output, vars> & {
77
85
  run: Function;
78
86
  }): Cli<{
79
87
  [key in typeof name]: {
80
88
  args: InferOutput<args>;
81
89
  options: InferOutput<opts>;
82
90
  };
83
- }>;
91
+ }, vars, env>;
84
92
  /** Creates a router CLI that registers subcommands. */
85
- export declare function create<const args extends z.ZodObject<any> | undefined = undefined, const env extends z.ZodObject<any> | undefined = undefined, const opts extends z.ZodObject<any> | undefined = undefined, const output extends z.ZodType | undefined = undefined>(name: string, definition?: create.Options<args, env, opts, output>): Cli;
93
+ export declare function create<const args extends z.ZodObject<any> | undefined = undefined, const env extends z.ZodObject<any> | undefined = undefined, const opts extends z.ZodObject<any> | undefined = undefined, const output extends z.ZodType | undefined = undefined, const vars extends z.ZodObject<any> | undefined = undefined>(name: string, definition?: create.Options<args, env, opts, output, vars>): Cli<{}, vars, env>;
86
94
  /** Creates a CLI with a root handler from a single options object. Can still register subcommands. */
87
- export declare function create<const args extends z.ZodObject<any> | undefined = undefined, const env extends z.ZodObject<any> | undefined = undefined, const opts extends z.ZodObject<any> | undefined = undefined, const output extends z.ZodType | undefined = undefined>(definition: create.Options<args, env, opts, output> & {
95
+ export declare function create<const args extends z.ZodObject<any> | undefined = undefined, const env extends z.ZodObject<any> | undefined = undefined, const opts extends z.ZodObject<any> | undefined = undefined, const output extends z.ZodType | undefined = undefined, const vars extends z.ZodObject<any> | undefined = undefined>(definition: create.Options<args, env, opts, output, vars> & {
88
96
  name: string;
89
97
  run: Function;
90
98
  }): Cli<{
@@ -92,14 +100,14 @@ export declare function create<const args extends z.ZodObject<any> | undefined =
92
100
  args: InferOutput<args>;
93
101
  options: InferOutput<opts>;
94
102
  };
95
- }>;
103
+ }, vars, env>;
96
104
  /** Creates a router CLI from a single options object (e.g. package.json). */
97
- export declare function create<const args extends z.ZodObject<any> | undefined = undefined, const env extends z.ZodObject<any> | undefined = undefined, const opts extends z.ZodObject<any> | undefined = undefined, const output extends z.ZodType | undefined = undefined>(definition: create.Options<args, env, opts, output> & {
105
+ export declare function create<const args extends z.ZodObject<any> | undefined = undefined, const env extends z.ZodObject<any> | undefined = undefined, const opts extends z.ZodObject<any> | undefined = undefined, const output extends z.ZodType | undefined = undefined, const vars extends z.ZodObject<any> | undefined = undefined>(definition: create.Options<args, env, opts, output, vars> & {
98
106
  name: string;
99
- }): Cli;
107
+ }): Cli<{}, vars, env>;
100
108
  export declare namespace create {
101
109
  /** Options for creating a CLI. Provide `run` for a leaf CLI, omit it for a router. */
102
- type Options<args extends z.ZodObject<any> | undefined = undefined, env extends z.ZodObject<any> | undefined = undefined, options extends z.ZodObject<any> | undefined = undefined, output extends z.ZodType | undefined = undefined> = {
110
+ type Options<args extends z.ZodObject<any> | undefined = undefined, env extends z.ZodObject<any> | undefined = undefined, options extends z.ZodObject<any> | undefined = undefined, output extends z.ZodType | undefined = undefined, vars extends z.ZodObject<any> | undefined = undefined> = {
103
111
  /** Map of option names to single-char aliases. */
104
112
  alias?: options extends z.ZodObject<any> ? Partial<Record<keyof z.output<options>, string>> : Record<string, string> | undefined;
105
113
  /** Zod schema for positional arguments. */
@@ -127,6 +135,8 @@ export declare namespace create {
127
135
  outputPolicy?: OutputPolicy | undefined;
128
136
  /** Alternative usage patterns shown in help output. */
129
137
  usage?: Usage<args, options>[] | undefined;
138
+ /** Zod schema for middleware variables. Keys define variable names, schemas define types and defaults. */
139
+ vars?: vars | undefined;
130
140
  /** The root command handler. When provided, creates a leaf CLI with no subcommands. */
131
141
  run?: ((context: {
132
142
  /** Whether the consumer is an agent (stdout is not a TTY). */
@@ -147,6 +157,8 @@ export declare namespace create {
147
157
  cta?: CtaBlock | undefined;
148
158
  }) => never;
149
159
  options: InferOutput<options>;
160
+ /** Variables set by middleware. */
161
+ var: InferVars<vars>;
150
162
  }) => InferReturn<output> | Promise<InferReturn<output>> | AsyncGenerator<InferReturn<output>, unknown, unknown>) | undefined;
151
163
  /** Options for the built-in `mcp add` command. */
152
164
  mcp?: {
@@ -194,11 +206,12 @@ export type OutputPolicy = 'agent-only' | 'all';
194
206
  type InternalGroup = {
195
207
  _group: true;
196
208
  description?: string | undefined;
209
+ middlewares?: MiddlewareHandler[] | undefined;
197
210
  outputPolicy?: OutputPolicy | undefined;
198
211
  commands: Map<string, CommandEntry>;
199
212
  };
200
213
  /** @internal Maps CLI instances to their command maps. */
201
- export declare const toCommands: WeakMap<Cli<{}>, Map<string, CommandEntry>>;
214
+ export declare const toCommands: WeakMap<Cli<{}, undefined, undefined>, Map<string, CommandEntry>>;
202
215
  /** @internal A CTA block with a description and list of suggested commands. */
203
216
  type CtaBlock<commands extends CommandsMap = Commands> = {
204
217
  /** Commands to suggest. */
@@ -235,8 +248,10 @@ type Usage<args extends z.ZodObject<any> | undefined, options extends z.ZodObjec
235
248
  type InferOutput<schema extends z.ZodObject<any> | undefined> = schema extends z.ZodObject<any> ? z.output<schema> : {};
236
249
  /** @internal Inferred return type for a command handler. */
237
250
  type InferReturn<output extends z.ZodType | undefined> = output extends z.ZodType ? z.output<output> : unknown;
251
+ /** @internal Inferred vars type from a Zod schema, or `{}` when no schema is provided. */
252
+ type InferVars<vars extends z.ZodObject<any> | undefined> = vars extends z.ZodObject<any> ? z.output<vars> : {};
238
253
  /** @internal Defines a command's schema, handler, and metadata. */
239
- type CommandDefinition<args extends z.ZodObject<any> | undefined = undefined, env extends z.ZodObject<any> | undefined = undefined, options extends z.ZodObject<any> | undefined = undefined, output extends z.ZodType | undefined = undefined> = {
254
+ type CommandDefinition<args extends z.ZodObject<any> | undefined = undefined, env extends z.ZodObject<any> | undefined = undefined, options extends z.ZodObject<any> | undefined = undefined, output extends z.ZodType | undefined = undefined, vars extends z.ZodObject<any> | undefined = undefined, cliEnv extends z.ZodObject<any> | undefined = undefined> = {
240
255
  /** Map of option names to single-char aliases. */
241
256
  alias?: options extends z.ZodObject<any> ? Partial<Record<keyof z.output<options>, string>> : Record<string, string> | undefined;
242
257
  /** Zod schema for positional arguments. */
@@ -264,6 +279,8 @@ type CommandDefinition<args extends z.ZodObject<any> | undefined = undefined, en
264
279
  * @default 'all'
265
280
  */
266
281
  outputPolicy?: OutputPolicy | undefined;
282
+ /** Middleware that runs only for this command, after root and group middleware. */
283
+ middleware?: MiddlewareHandler<vars, cliEnv>[] | undefined;
267
284
  /** Alternative usage patterns shown in help output. */
268
285
  usage?: Usage<args, options>[] | undefined;
269
286
  /** The command handler. Return a value for single-return, or use `async *run` to stream chunks. */
@@ -286,7 +303,8 @@ type CommandDefinition<args extends z.ZodObject<any> | undefined = undefined, en
286
303
  cta?: CtaBlock | undefined;
287
304
  }) => never;
288
305
  options: InferOutput<options>;
306
+ /** Variables set by middleware. */
307
+ var: InferVars<vars>;
289
308
  }): InferReturn<output> | Promise<InferReturn<output>> | AsyncGenerator<InferReturn<output>, unknown, unknown>;
290
309
  };
291
- export {};
292
310
  //# sourceMappingURL=Cli.d.ts.map
package/dist/Cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Cli.d.ts","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAI5B,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAM3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAM7C,6FAA6F;AAC7F,MAAM,MAAM,GAAG,CAAC,QAAQ,SAAS,WAAW,GAAG,EAAE,IAAI;IACnD,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,GAAG,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EAC1D,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,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,GACxD,GAAG,CAAC,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,CAAC,CAAA;QAChG,2CAA2C;QAC3C,CAAC,KAAK,CAAC,IAAI,SAAS,MAAM,EAAE,KAAK,CAAC,GAAG,SAAS,WAAW,EACvD,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG;YAAE,IAAI,EAAE,IAAI,CAAA;SAAE,GAC7B,GAAG,CAAC,QAAQ,GAAG;aAAG,GAAG,IAAI,MAAM,GAAG,GAAG,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC;SAAE,CAAC,CAAA;QAChF,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,CAAC,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,CAAC,CAAA;KAC9F,CAAA;IACD,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,uFAAuF;IACvF,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC/D,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,EAEtD,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG;IAAE,GAAG,EAAE,QAAQ,CAAA;CAAE,GACtE,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,CAAC,CAAA;AACzF,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,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,GAAG,CAAA;AAC1E,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,EAEtD,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,QAAQ,CAAA;CAAE,GACpF,GAAG,CAAC;KACJ,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,CAAC,CAAA;AACF,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,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAAA;AAyD9E,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,IAC9C;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,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,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,uFAAuF;QACvF,GAAG,CAAC,EACA,CAAC,CAAC,OAAO,EAAE;YACV,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,OAAO,EAAE,MAAM,CAAA;gBACf,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;aAChC,KAAK,KAAK,CAAA;YACX,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;SAC9B,KACI,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;AAwpBD,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,qFAAqF;AACrF,KAAK,YAAY,GAAG,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,aAAa,CAAA;AAEpE,mJAAmJ;AACnJ,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,KAAK,CAAA;AAE/C,oDAAoD;AACpD,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,IAAI,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAA;IACvC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;CACpC,CAAA;AAOD,0DAA0D;AAC1D,eAAO,MAAM,UAAU,6CAAgD,CAAA;AA2BvE,+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;AA6VD,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;AA4CX,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,IAC9C;IACF,kDAAkD;IAClD,KAAK,CAAC,EAAE,OAAO,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GACtC,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;IACpC,2CAA2C;IAC3C,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAA;IACvB,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,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,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7B,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAA;IACvC,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,OAAO,EAAE,MAAM,CAAA;YACf,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;SAChC,KAAK,KAAK,CAAA;QACX,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;KAC9B,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
@@ -13,9 +13,12 @@ export function create(nameOrDefinition, definition) {
13
13
  const def = typeof nameOrDefinition === 'string' ? (definition ?? {}) : nameOrDefinition;
14
14
  const rootDef = 'run' in def ? def : undefined;
15
15
  const commands = new Map();
16
+ const middlewares = [];
16
17
  const cli = {
17
18
  name,
18
19
  description: def.description,
20
+ env: def.env,
21
+ vars: def.vars,
19
22
  command(nameOrCli, def) {
20
23
  if (typeof nameOrCli === 'string') {
21
24
  commands.set(nameOrCli, def);
@@ -29,11 +32,13 @@ export function create(nameOrDefinition, definition) {
29
32
  const sub = nameOrCli;
30
33
  const subCommands = toCommands.get(sub);
31
34
  const subOutputPolicy = toOutputPolicy.get(sub);
35
+ const subMiddlewares = toMiddlewares.get(sub);
32
36
  commands.set(sub.name, {
33
37
  _group: true,
34
38
  description: sub.description,
35
39
  commands: subCommands,
36
40
  ...(subOutputPolicy ? { outputPolicy: subOutputPolicy } : undefined),
41
+ ...(subMiddlewares?.length ? { middlewares: subMiddlewares } : undefined),
37
42
  });
38
43
  return cli;
39
44
  },
@@ -41,19 +46,27 @@ export function create(nameOrDefinition, definition) {
41
46
  return serveImpl(name, commands, argv, {
42
47
  ...serveOptions,
43
48
  description: def.description,
49
+ envSchema: def.env,
44
50
  format: def.format,
45
51
  mcp: def.mcp,
52
+ middlewares,
46
53
  outputPolicy: def.outputPolicy,
47
54
  rootCommand: rootDef,
48
55
  sync: def.sync,
56
+ vars: def.vars,
49
57
  version: def.version,
50
58
  });
51
59
  },
60
+ use(handler) {
61
+ middlewares.push(handler);
62
+ return cli;
63
+ },
52
64
  };
53
65
  if (rootDef)
54
66
  toRootDefinition.set(cli, rootDef);
55
67
  if (def.outputPolicy)
56
68
  toOutputPolicy.set(cli, def.outputPolicy);
69
+ toMiddlewares.set(cli, middlewares);
57
70
  toCommands.set(cli, commands);
58
71
  return cli;
59
72
  }
@@ -339,7 +352,7 @@ async function serveImpl(name, commands, argv, options = {}) {
339
352
  ? { command: options.rootCommand, path: name, rest: filtered }
340
353
  : resolved;
341
354
  // Resolve outputPolicy: command/group → CLI-level → default ('all')
342
- const effectiveOutputPolicy = ('command' in resolved && resolved.outputPolicy) || options.outputPolicy;
355
+ const effectiveOutputPolicy = ('outputPolicy' in resolved && resolved.outputPolicy) || options.outputPolicy;
343
356
  const renderOutput = !(human && !formatExplicit && effectiveOutputPolicy === 'agent-only');
344
357
  function write(output) {
345
358
  const cta = output.meta.cta;
@@ -384,13 +397,23 @@ async function serveImpl(name, commands, argv, options = {}) {
384
397
  return;
385
398
  }
386
399
  const { command, path, rest } = effective;
387
- try {
400
+ // Collect middleware: root CLI + groups traversed + per-command
401
+ const allMiddleware = [
402
+ ...(options.middlewares ?? []),
403
+ ...('middlewares' in resolved
404
+ ? (resolved.middlewares ?? [])
405
+ : []),
406
+ ...(command.middleware ?? []),
407
+ ];
408
+ // Initialize vars from schema defaults
409
+ const varsMap = options.vars ? options.vars.parse({}) : {};
410
+ const envSource = options.env ?? process.env;
411
+ const runCommand = async () => {
388
412
  const { args, options: parsedOptions } = Parser.parse(rest, {
389
413
  alias: command.alias,
390
414
  args: command.args,
391
415
  options: command.options,
392
416
  });
393
- const envSource = options.env ?? process.env;
394
417
  const env = command.env ? Parser.parseEnv(command.env, envSource) : {};
395
418
  const okFn = (data, meta = {}) => {
396
419
  return { [sentinel]: 'ok', data, cta: meta.cta };
@@ -405,6 +428,7 @@ async function serveImpl(name, commands, argv, options = {}) {
405
428
  options: parsedOptions,
406
429
  ok: okFn,
407
430
  error: errorFn,
431
+ var: varsMap,
408
432
  });
409
433
  // Streaming path — async generator
410
434
  if (isAsyncGenerator(result)) {
@@ -464,6 +488,27 @@ async function serveImpl(name, commands, argv, options = {}) {
464
488
  },
465
489
  });
466
490
  }
491
+ };
492
+ try {
493
+ const cliEnv = options.envSchema ? Parser.parseEnv(options.envSchema, envSource) : {};
494
+ if (allMiddleware.length > 0) {
495
+ const mwCtx = {
496
+ agent: !human,
497
+ command: path,
498
+ env: cliEnv,
499
+ set(key, value) {
500
+ varsMap[key] = value;
501
+ },
502
+ var: varsMap,
503
+ };
504
+ const composed = allMiddleware.reduceRight((next, mw) => async () => {
505
+ await mw(mwCtx, next);
506
+ }, runCommand);
507
+ await composed();
508
+ }
509
+ else {
510
+ await runCommand();
511
+ }
467
512
  }
468
513
  catch (error) {
469
514
  const errorOutput = {
@@ -520,9 +565,12 @@ function resolveCommand(commands, tokens) {
520
565
  const path = [first];
521
566
  let remaining = rest;
522
567
  let inheritedOutputPolicy;
568
+ const collectedMiddlewares = [];
523
569
  while (isGroup(entry)) {
524
570
  if (entry.outputPolicy)
525
571
  inheritedOutputPolicy = entry.outputPolicy;
572
+ if (entry.middlewares)
573
+ collectedMiddlewares.push(...entry.middlewares);
526
574
  const next = remaining[0];
527
575
  if (!next)
528
576
  return {
@@ -542,6 +590,7 @@ function resolveCommand(commands, tokens) {
542
590
  const outputPolicy = entry.outputPolicy ?? inheritedOutputPolicy;
543
591
  return {
544
592
  command: entry,
593
+ middlewares: collectedMiddlewares,
545
594
  path: path.join(' '),
546
595
  rest: remaining,
547
596
  ...(outputPolicy ? { outputPolicy } : undefined),
@@ -600,6 +649,8 @@ function isGroup(entry) {
600
649
  }
601
650
  /** @internal Maps CLI instances to their command maps. */
602
651
  export const toCommands = new WeakMap();
652
+ /** @internal Maps CLI instances to their middleware arrays. */
653
+ const toMiddlewares = new WeakMap();
603
654
  /** @internal Maps root CLI instances to their command definitions. */
604
655
  const toRootDefinition = new WeakMap();
605
656
  /** @internal Maps CLI instances to their output policy. */