incur 0.1.17 → 0.2.0
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 +86 -0
- package/SKILL.md +42 -0
- package/dist/Cli.d.ts +23 -2
- package/dist/Cli.d.ts.map +1 -1
- package/dist/Cli.js +222 -22
- package/dist/Cli.js.map +1 -1
- package/dist/Fetch.d.ts +26 -0
- package/dist/Fetch.d.ts.map +1 -0
- package/dist/Fetch.js +150 -0
- package/dist/Fetch.js.map +1 -0
- package/dist/Openapi.d.ts +20 -0
- package/dist/Openapi.d.ts.map +1 -0
- package/dist/Openapi.js +136 -0
- package/dist/Openapi.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +4 -1
- package/src/Cli.test-d.ts +2 -2
- package/src/Cli.test.ts +205 -0
- package/src/Cli.ts +258 -23
- package/src/Fetch.test.ts +274 -0
- package/src/Fetch.ts +170 -0
- package/src/Openapi.test.ts +320 -0
- package/src/Openapi.ts +196 -0
- package/src/e2e.test.ts +175 -0
- package/src/index.ts +2 -0
package/README.md
CHANGED
|
@@ -239,6 +239,92 @@ $ my-cli --help
|
|
|
239
239
|
# --version Show version
|
|
240
240
|
```
|
|
241
241
|
|
|
242
|
+
### Mount APIs as CLIs
|
|
243
|
+
|
|
244
|
+
Mount any HTTP server as a command with the `fetch` property. Supports any API
|
|
245
|
+
framework that exposes a [Web Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) handler.
|
|
246
|
+
|
|
247
|
+
The CLI translates HTTP requests using curl-style flags.
|
|
248
|
+
|
|
249
|
+
```ts
|
|
250
|
+
import { Cli } from 'incur'
|
|
251
|
+
import { Hono } from 'hono'
|
|
252
|
+
|
|
253
|
+
const app = new Hono()
|
|
254
|
+
.get('/users', (c) => c.json({ users: [{ id: 1, name: 'Alice' }] }))
|
|
255
|
+
.post('/users', async (c) => c.json({ created: true, ...(await c.req.json()) }, 201))
|
|
256
|
+
|
|
257
|
+
Cli.create('my-cli', {
|
|
258
|
+
description: 'My CLI',
|
|
259
|
+
fetch: app.fetch,
|
|
260
|
+
// OR
|
|
261
|
+
// fetch: bunApp.fetch
|
|
262
|
+
// fetch: denoApp.fetch
|
|
263
|
+
// fetch: elysiaApp.fetch,
|
|
264
|
+
}).serve()
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
```sh
|
|
268
|
+
$ my-cli api users
|
|
269
|
+
# → users:
|
|
270
|
+
# → - id: 1
|
|
271
|
+
# → name: Alice
|
|
272
|
+
|
|
273
|
+
$ my-cli api users -X POST -d '{"name":"Bob"}'
|
|
274
|
+
# → created: true
|
|
275
|
+
# → name: Bob
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
#### As commands
|
|
279
|
+
|
|
280
|
+
You can also mount Hono apps onto commands:
|
|
281
|
+
|
|
282
|
+
```ts
|
|
283
|
+
import { Cli } from 'incur'
|
|
284
|
+
import { Hono } from 'hono'
|
|
285
|
+
|
|
286
|
+
const app = new Hono()
|
|
287
|
+
.get('/users', (c) => c.json({ users: [{ id: 1, name: 'Alice' }] }))
|
|
288
|
+
.post('/users', async (c) => c.json({ created: true, ...(await c.req.json()) }, 201))
|
|
289
|
+
|
|
290
|
+
Cli
|
|
291
|
+
.create('my-cli', { description: 'My CLI' })
|
|
292
|
+
.command('users', { fetch: app.fetch })
|
|
293
|
+
.serve()
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
#### OpenAPI
|
|
297
|
+
|
|
298
|
+
Pass an OpenAPI spec alongside `fetch` to generate typed subcommands with args, options, and descriptions extracted from the spec:
|
|
299
|
+
|
|
300
|
+
```ts
|
|
301
|
+
import { Cli } from 'incur'
|
|
302
|
+
import { app, spec } from './my-hono-openapi-app.js'
|
|
303
|
+
|
|
304
|
+
Cli.create('my-cli', { description: 'My CLI' })
|
|
305
|
+
.command('api', { fetch: app.fetch, openapi: spec })
|
|
306
|
+
.serve()
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
```sh
|
|
310
|
+
$ my-cli api --help
|
|
311
|
+
# Commands:
|
|
312
|
+
# listUsers List users
|
|
313
|
+
# createUser Create a user
|
|
314
|
+
# getUser Get a user by ID
|
|
315
|
+
|
|
316
|
+
$ my-cli api listUsers --limit 5
|
|
317
|
+
# → users: ...
|
|
318
|
+
|
|
319
|
+
$ my-cli api getUser 42
|
|
320
|
+
# → id: 42
|
|
321
|
+
# → name: Alice
|
|
322
|
+
|
|
323
|
+
$ my-cli api createUser --name Bob
|
|
324
|
+
# → created: true
|
|
325
|
+
# → name: Bob
|
|
326
|
+
```
|
|
327
|
+
|
|
242
328
|
## Walkthrough
|
|
243
329
|
|
|
244
330
|
### Agent discovery
|
package/SKILL.md
CHANGED
|
@@ -175,6 +175,48 @@ cli.command(pr)
|
|
|
175
175
|
// → gh pr review approve
|
|
176
176
|
```
|
|
177
177
|
|
|
178
|
+
### Fetch API
|
|
179
|
+
|
|
180
|
+
Mount an HTTP server as a command with `.command('name', { fetch })`. Argv is translated into HTTP requests using curl-style flags:
|
|
181
|
+
|
|
182
|
+
```ts
|
|
183
|
+
import { Cli } from 'incur'
|
|
184
|
+
import { Hono } from 'hono'
|
|
185
|
+
|
|
186
|
+
const app = new Hono()
|
|
187
|
+
app.get('/users', (c) => c.json({ users: [{ id: 1, name: 'Alice' }] }))
|
|
188
|
+
app.post('/users', async (c) => c.json({ created: true, ...(await c.req.json()) }, 201))
|
|
189
|
+
|
|
190
|
+
Cli.create('my-cli', { description: 'My CLI' })
|
|
191
|
+
.command('api', { fetch: app.fetch })
|
|
192
|
+
.serve()
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
```sh
|
|
196
|
+
my-cli api users # GET /users
|
|
197
|
+
my-cli api users -X POST -d '{"name":"Bob"}' # POST /users
|
|
198
|
+
my-cli api users --limit 5 # GET /users?limit=5
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Fetch API + OpenAPI
|
|
202
|
+
|
|
203
|
+
Pass an OpenAPI spec alongside `fetch` to generate typed subcommands with args, options, and descriptions from the spec:
|
|
204
|
+
|
|
205
|
+
```ts
|
|
206
|
+
Cli.create('my-cli', { description: 'My CLI' })
|
|
207
|
+
.command('api', { fetch: app.fetch, openapi: spec })
|
|
208
|
+
.serve()
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
```sh
|
|
212
|
+
my-cli api listUsers --limit 5 # GET /users?limit=5
|
|
213
|
+
my-cli api getUser 42 # GET /users/42
|
|
214
|
+
my-cli api createUser --name Bob # POST /users with body
|
|
215
|
+
my-cli api --help # shows typed subcommands
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Works with any `(Request) => Response` handler — Hono, Elysia, etc. Specs from `@hono/zod-openapi` are supported directly.
|
|
219
|
+
|
|
178
220
|
## Arguments & Options
|
|
179
221
|
|
|
180
222
|
All schemas use Zod. Arguments are positional (assigned by schema key order). Options are named flags.
|
package/dist/Cli.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { z } from 'zod';
|
|
2
|
+
import * as Openapi from './Openapi.js';
|
|
2
3
|
import * as Formatter from './Formatter.js';
|
|
3
4
|
import type { Handler as MiddlewareHandler } from './middleware.js';
|
|
4
5
|
export type { MiddlewareHandler };
|
|
@@ -29,6 +30,14 @@ export type Cli<commands extends CommandsMap = {}, vars extends z.ZodObject<any>
|
|
|
29
30
|
options: InferOutput<opts>;
|
|
30
31
|
};
|
|
31
32
|
}, vars, env>;
|
|
33
|
+
/** Mounts a fetch handler as a command, optionally with OpenAPI spec for typed subcommands. */
|
|
34
|
+
<const name extends string>(name: name, definition: {
|
|
35
|
+
basePath?: string | undefined;
|
|
36
|
+
description?: string | undefined;
|
|
37
|
+
fetch: FetchHandler;
|
|
38
|
+
openapi?: Openapi.OpenAPISpec | undefined;
|
|
39
|
+
outputPolicy?: OutputPolicy | undefined;
|
|
40
|
+
}): Cli<commands, vars, env>;
|
|
32
41
|
};
|
|
33
42
|
/** A short description of the CLI. */
|
|
34
43
|
description?: string | undefined;
|
|
@@ -120,6 +129,8 @@ export declare namespace create {
|
|
|
120
129
|
env?: env | undefined;
|
|
121
130
|
/** Usage examples for this command. */
|
|
122
131
|
examples?: Example<args, options>[] | undefined;
|
|
132
|
+
/** A fetch handler to use as the root command. All argv tokens are interpreted as path segments and curl-style flags. */
|
|
133
|
+
fetch?: FetchHandler | undefined;
|
|
123
134
|
/** Default output format. Overridden by `--format` or `--json`. */
|
|
124
135
|
format?: Formatter.Format | undefined;
|
|
125
136
|
/** Zod schema for named options/flags. */
|
|
@@ -202,10 +213,12 @@ export type CommandsMap = Record<string, {
|
|
|
202
213
|
args: Record<string, unknown>;
|
|
203
214
|
options: Record<string, unknown>;
|
|
204
215
|
}>;
|
|
205
|
-
/** @internal Entry stored in a command map — either a leaf definition or a
|
|
206
|
-
type CommandEntry = CommandDefinition<any, any, any> | InternalGroup;
|
|
216
|
+
/** @internal Entry stored in a command map — either a leaf definition, a group, or a fetch gateway. */
|
|
217
|
+
type CommandEntry = CommandDefinition<any, any, any> | InternalGroup | InternalFetchGateway;
|
|
207
218
|
/** Controls when output data is displayed. `'all'` displays to both humans and agents. `'agent-only'` suppresses data output in human/TTY mode. */
|
|
208
219
|
export type OutputPolicy = 'agent-only' | 'all';
|
|
220
|
+
/** A standard Fetch API handler. */
|
|
221
|
+
type FetchHandler = (req: Request) => Response | Promise<Response>;
|
|
209
222
|
/** @internal A command group's internal storage. */
|
|
210
223
|
type InternalGroup = {
|
|
211
224
|
_group: true;
|
|
@@ -214,6 +227,14 @@ type InternalGroup = {
|
|
|
214
227
|
outputPolicy?: OutputPolicy | undefined;
|
|
215
228
|
commands: Map<string, CommandEntry>;
|
|
216
229
|
};
|
|
230
|
+
/** @internal A fetch gateway entry. */
|
|
231
|
+
type InternalFetchGateway = {
|
|
232
|
+
_fetch: true;
|
|
233
|
+
basePath?: string | undefined;
|
|
234
|
+
description?: string | undefined;
|
|
235
|
+
fetch: FetchHandler;
|
|
236
|
+
outputPolicy?: OutputPolicy | undefined;
|
|
237
|
+
};
|
|
217
238
|
/** @internal Maps CLI instances to their command maps. */
|
|
218
239
|
export declare const toCommands: WeakMap<Cli<{}, undefined, undefined>, Map<string, CommandEntry>>;
|
|
219
240
|
/** @internal A CTA block with a description and list of suggested commands. */
|
package/dist/Cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cli.d.ts","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Cli.d.ts","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":"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"}
|
package/dist/Cli.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import * as Completions from './Completions.js';
|
|
2
2
|
import { IncurError, ValidationError } from './Errors.js';
|
|
3
|
+
import * as Fetch from './Fetch.js';
|
|
4
|
+
import * as Openapi from './Openapi.js';
|
|
3
5
|
import * as Formatter from './Formatter.js';
|
|
4
6
|
import * as Help from './Help.js';
|
|
5
7
|
import { detectRunner } from './internal/pm.js';
|
|
@@ -13,8 +15,10 @@ export function create(nameOrDefinition, definition) {
|
|
|
13
15
|
const name = typeof nameOrDefinition === 'string' ? nameOrDefinition : nameOrDefinition.name;
|
|
14
16
|
const def = typeof nameOrDefinition === 'string' ? (definition ?? {}) : nameOrDefinition;
|
|
15
17
|
const rootDef = 'run' in def ? def : undefined;
|
|
18
|
+
const rootFetch = 'fetch' in def ? def.fetch : undefined;
|
|
16
19
|
const commands = new Map();
|
|
17
20
|
const middlewares = [];
|
|
21
|
+
const pending = [];
|
|
18
22
|
const cli = {
|
|
19
23
|
name,
|
|
20
24
|
description: def.description,
|
|
@@ -22,6 +26,28 @@ export function create(nameOrDefinition, definition) {
|
|
|
22
26
|
vars: def.vars,
|
|
23
27
|
command(nameOrCli, def) {
|
|
24
28
|
if (typeof nameOrCli === 'string') {
|
|
29
|
+
if (def && 'fetch' in def && typeof def.fetch === 'function') {
|
|
30
|
+
// OpenAPI + fetch → generate typed command group (async, resolved before serve)
|
|
31
|
+
if (def.openapi) {
|
|
32
|
+
pending.push(Openapi.generateCommands(def.openapi, def.fetch, { basePath: def.basePath }).then((generated) => {
|
|
33
|
+
commands.set(nameOrCli, {
|
|
34
|
+
_group: true,
|
|
35
|
+
description: def.description,
|
|
36
|
+
commands: generated,
|
|
37
|
+
...(def.outputPolicy ? { outputPolicy: def.outputPolicy } : undefined),
|
|
38
|
+
});
|
|
39
|
+
}));
|
|
40
|
+
return cli;
|
|
41
|
+
}
|
|
42
|
+
commands.set(nameOrCli, {
|
|
43
|
+
_fetch: true,
|
|
44
|
+
basePath: def.basePath,
|
|
45
|
+
description: def.description,
|
|
46
|
+
fetch: def.fetch,
|
|
47
|
+
...(def.outputPolicy ? { outputPolicy: def.outputPolicy } : undefined),
|
|
48
|
+
});
|
|
49
|
+
return cli;
|
|
50
|
+
}
|
|
25
51
|
commands.set(nameOrCli, def);
|
|
26
52
|
return cli;
|
|
27
53
|
}
|
|
@@ -44,6 +70,8 @@ export function create(nameOrDefinition, definition) {
|
|
|
44
70
|
return cli;
|
|
45
71
|
},
|
|
46
72
|
async serve(argv = process.argv.slice(2), serveOptions = {}) {
|
|
73
|
+
if (pending.length > 0)
|
|
74
|
+
await Promise.all(pending);
|
|
47
75
|
return serveImpl(name, commands, argv, {
|
|
48
76
|
...serveOptions,
|
|
49
77
|
aliases: def.aliases,
|
|
@@ -54,6 +82,7 @@ export function create(nameOrDefinition, definition) {
|
|
|
54
82
|
middlewares,
|
|
55
83
|
outputPolicy: def.outputPolicy,
|
|
56
84
|
rootCommand: rootDef,
|
|
85
|
+
rootFetch,
|
|
57
86
|
sync: def.sync,
|
|
58
87
|
vars: def.vars,
|
|
59
88
|
version: def.version,
|
|
@@ -363,8 +392,8 @@ async function serveImpl(name, commands, argv, options = {}) {
|
|
|
363
392
|
}));
|
|
364
393
|
return;
|
|
365
394
|
}
|
|
366
|
-
if (options.rootCommand) {
|
|
367
|
-
// Root command with no args — treat as root invocation
|
|
395
|
+
if (options.rootCommand || options.rootFetch) {
|
|
396
|
+
// Root command/fetch with no args — treat as root invocation
|
|
368
397
|
}
|
|
369
398
|
else {
|
|
370
399
|
writeln(Help.formatRoot(name, {
|
|
@@ -379,7 +408,15 @@ async function serveImpl(name, commands, argv, options = {}) {
|
|
|
379
408
|
}
|
|
380
409
|
const resolved = filtered.length === 0 && options.rootCommand
|
|
381
410
|
? { command: options.rootCommand, path: name, rest: [] }
|
|
382
|
-
:
|
|
411
|
+
: filtered.length === 0 && options.rootFetch
|
|
412
|
+
? { fetchGateway: { _fetch: true, fetch: options.rootFetch, description: options.description }, middlewares: [], path: name, rest: [] }
|
|
413
|
+
: resolveCommand(commands, filtered);
|
|
414
|
+
// --help on a fetch gateway → show fetch-specific help
|
|
415
|
+
if (help && 'fetchGateway' in resolved) {
|
|
416
|
+
const commandName = resolved.path === name ? name : `${name} ${resolved.path}`;
|
|
417
|
+
writeln(formatFetchHelp(commandName, resolved.fetchGateway.description));
|
|
418
|
+
return;
|
|
419
|
+
}
|
|
383
420
|
// --help after a command → show help for that command
|
|
384
421
|
if (help) {
|
|
385
422
|
if ('help' in resolved || 'error' in resolved) {
|
|
@@ -417,24 +454,25 @@ async function serveImpl(name, commands, argv, options = {}) {
|
|
|
417
454
|
}));
|
|
418
455
|
}
|
|
419
456
|
}
|
|
420
|
-
else {
|
|
457
|
+
else if ('command' in resolved) {
|
|
458
|
+
const cmd = resolved.command;
|
|
421
459
|
const isRootCmd = resolved.path === name;
|
|
422
460
|
const commandName = isRootCmd ? name : `${name} ${resolved.path}`;
|
|
423
461
|
const helpSubcommands = isRootCmd && options.rootCommand && commands.size > 0
|
|
424
462
|
? collectHelpCommands(commands)
|
|
425
463
|
: undefined;
|
|
426
464
|
writeln(Help.formatCommand(commandName, {
|
|
427
|
-
alias:
|
|
465
|
+
alias: cmd.alias,
|
|
428
466
|
aliases: isRootCmd ? options.aliases : undefined,
|
|
429
|
-
description:
|
|
467
|
+
description: cmd.description,
|
|
430
468
|
version: isRootCmd ? options.version : undefined,
|
|
431
|
-
args:
|
|
432
|
-
env:
|
|
469
|
+
args: cmd.args,
|
|
470
|
+
env: cmd.env,
|
|
433
471
|
envSource: options.env,
|
|
434
|
-
hint:
|
|
435
|
-
options:
|
|
436
|
-
examples: formatExamples(
|
|
437
|
-
usage:
|
|
472
|
+
hint: cmd.hint,
|
|
473
|
+
options: cmd.options,
|
|
474
|
+
examples: formatExamples(cmd.examples),
|
|
475
|
+
usage: cmd.usage,
|
|
438
476
|
commands: helpSubcommands,
|
|
439
477
|
root: isRootCmd,
|
|
440
478
|
}));
|
|
@@ -452,10 +490,12 @@ async function serveImpl(name, commands, argv, options = {}) {
|
|
|
452
490
|
// Resolve effective format: explicit --format/--json → command default → CLI default → toon
|
|
453
491
|
const resolvedFormat = 'command' in resolved && resolved.command.format;
|
|
454
492
|
const format = formatExplicit ? formatFlag : resolvedFormat || options.format || 'toon';
|
|
455
|
-
// Fall back to root
|
|
456
|
-
const effective = 'error' in resolved && options.
|
|
457
|
-
? {
|
|
458
|
-
: resolved
|
|
493
|
+
// Fall back to root fetch when no subcommand matches
|
|
494
|
+
const effective = 'error' in resolved && options.rootFetch && !resolved.path
|
|
495
|
+
? { fetchGateway: { _fetch: true, fetch: options.rootFetch, description: options.description }, middlewares: [], path: name, rest: filtered }
|
|
496
|
+
: 'error' in resolved && options.rootCommand && !resolved.path
|
|
497
|
+
? { command: options.rootCommand, path: name, rest: filtered }
|
|
498
|
+
: resolved;
|
|
459
499
|
// Resolve outputPolicy: command/group → CLI-level → default ('all')
|
|
460
500
|
const effectiveOutputPolicy = ('outputPolicy' in resolved && resolved.outputPolicy) || options.outputPolicy;
|
|
461
501
|
const renderOutput = !(human && !formatExplicit && effectiveOutputPolicy === 'agent-only');
|
|
@@ -508,6 +548,111 @@ async function serveImpl(name, commands, argv, options = {}) {
|
|
|
508
548
|
exit(1);
|
|
509
549
|
return;
|
|
510
550
|
}
|
|
551
|
+
// Fetch gateway execution path
|
|
552
|
+
if ('fetchGateway' in effective) {
|
|
553
|
+
const { fetchGateway, path, rest: fetchRest } = effective;
|
|
554
|
+
const fetchMiddleware = [
|
|
555
|
+
...(options.middlewares ?? []),
|
|
556
|
+
...(effective.middlewares ?? []),
|
|
557
|
+
];
|
|
558
|
+
const runFetch = async () => {
|
|
559
|
+
const input = Fetch.parseArgv(fetchRest);
|
|
560
|
+
if (fetchGateway.basePath)
|
|
561
|
+
input.path = fetchGateway.basePath + input.path;
|
|
562
|
+
const request = Fetch.buildRequest(input);
|
|
563
|
+
const response = await fetchGateway.fetch(request);
|
|
564
|
+
// Streaming path — NDJSON responses pipe through handleStreaming
|
|
565
|
+
if (Fetch.isStreamingResponse(response)) {
|
|
566
|
+
const generator = Fetch.parseStreamingResponse(response);
|
|
567
|
+
await handleStreaming(generator, {
|
|
568
|
+
name,
|
|
569
|
+
path,
|
|
570
|
+
start,
|
|
571
|
+
format,
|
|
572
|
+
formatExplicit,
|
|
573
|
+
human,
|
|
574
|
+
renderOutput,
|
|
575
|
+
verbose,
|
|
576
|
+
write,
|
|
577
|
+
writeln,
|
|
578
|
+
exit,
|
|
579
|
+
});
|
|
580
|
+
return;
|
|
581
|
+
}
|
|
582
|
+
const output = await Fetch.parseResponse(response);
|
|
583
|
+
if (output.ok) {
|
|
584
|
+
write({
|
|
585
|
+
ok: true,
|
|
586
|
+
data: output.data,
|
|
587
|
+
meta: {
|
|
588
|
+
command: path,
|
|
589
|
+
duration: `${Math.round(performance.now() - start)}ms`,
|
|
590
|
+
},
|
|
591
|
+
});
|
|
592
|
+
}
|
|
593
|
+
else {
|
|
594
|
+
write({
|
|
595
|
+
ok: false,
|
|
596
|
+
error: {
|
|
597
|
+
code: `HTTP_${output.status}`,
|
|
598
|
+
message: typeof output.data === 'object' && output.data !== null && 'message' in output.data
|
|
599
|
+
? String(output.data.message)
|
|
600
|
+
: typeof output.data === 'string' ? output.data : `HTTP ${output.status}`,
|
|
601
|
+
},
|
|
602
|
+
meta: {
|
|
603
|
+
command: path,
|
|
604
|
+
duration: `${Math.round(performance.now() - start)}ms`,
|
|
605
|
+
},
|
|
606
|
+
});
|
|
607
|
+
exit(1);
|
|
608
|
+
}
|
|
609
|
+
};
|
|
610
|
+
try {
|
|
611
|
+
const cliEnv = options.envSchema ? Parser.parseEnv(options.envSchema, options.env ?? process.env) : {};
|
|
612
|
+
if (fetchMiddleware.length > 0) {
|
|
613
|
+
const varsMap = options.vars ? options.vars.parse({}) : {};
|
|
614
|
+
const errorFn = (opts) => ({ [sentinel]: 'error', ...opts });
|
|
615
|
+
const mwCtx = {
|
|
616
|
+
agent: !human,
|
|
617
|
+
command: path,
|
|
618
|
+
env: cliEnv,
|
|
619
|
+
error: errorFn,
|
|
620
|
+
name,
|
|
621
|
+
set(key, value) { varsMap[key] = value; },
|
|
622
|
+
var: varsMap,
|
|
623
|
+
version: options.version,
|
|
624
|
+
};
|
|
625
|
+
const handleMwSentinel = (result) => {
|
|
626
|
+
if (!isSentinel(result) || result[sentinel] !== 'error')
|
|
627
|
+
return;
|
|
628
|
+
const cta = formatCtaBlock(name, result.cta);
|
|
629
|
+
write({
|
|
630
|
+
ok: false,
|
|
631
|
+
error: { code: result.code, message: result.message, ...(result.retryable !== undefined ? { retryable: result.retryable } : undefined) },
|
|
632
|
+
meta: { command: path, duration: `${Math.round(performance.now() - start)}ms`, ...(cta ? { cta } : undefined) },
|
|
633
|
+
});
|
|
634
|
+
exit(1);
|
|
635
|
+
};
|
|
636
|
+
const composed = fetchMiddleware.reduceRight((next, mw) => async () => { handleMwSentinel(await mw(mwCtx, next)); }, runFetch);
|
|
637
|
+
await composed();
|
|
638
|
+
}
|
|
639
|
+
else {
|
|
640
|
+
await runFetch();
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
catch (error) {
|
|
644
|
+
write({
|
|
645
|
+
ok: false,
|
|
646
|
+
error: {
|
|
647
|
+
code: error instanceof IncurError ? error.code : 'UNKNOWN',
|
|
648
|
+
message: error instanceof Error ? error.message : String(error),
|
|
649
|
+
},
|
|
650
|
+
meta: { command: path, duration: `${Math.round(performance.now() - start)}ms` },
|
|
651
|
+
});
|
|
652
|
+
exit(1);
|
|
653
|
+
}
|
|
654
|
+
return;
|
|
655
|
+
}
|
|
511
656
|
const { command, path, rest } = effective;
|
|
512
657
|
// Collect middleware: root CLI + groups traversed + per-command
|
|
513
658
|
const allMiddleware = [
|
|
@@ -708,6 +853,17 @@ function resolveCommand(commands, tokens) {
|
|
|
708
853
|
let remaining = rest;
|
|
709
854
|
let inheritedOutputPolicy;
|
|
710
855
|
const collectedMiddlewares = [];
|
|
856
|
+
// Fetch gateway — all remaining tokens go to the fetch handler
|
|
857
|
+
if (isFetchGateway(entry)) {
|
|
858
|
+
const outputPolicy = entry.outputPolicy ?? inheritedOutputPolicy;
|
|
859
|
+
return {
|
|
860
|
+
fetchGateway: entry,
|
|
861
|
+
middlewares: collectedMiddlewares,
|
|
862
|
+
path: path.join(' '),
|
|
863
|
+
rest: remaining,
|
|
864
|
+
...(outputPolicy ? { outputPolicy } : undefined),
|
|
865
|
+
};
|
|
866
|
+
}
|
|
711
867
|
while (isGroup(entry)) {
|
|
712
868
|
if (entry.outputPolicy)
|
|
713
869
|
inheritedOutputPolicy = entry.outputPolicy;
|
|
@@ -728,6 +884,16 @@ function resolveCommand(commands, tokens) {
|
|
|
728
884
|
path.push(next);
|
|
729
885
|
remaining = remaining.slice(1);
|
|
730
886
|
entry = child;
|
|
887
|
+
if (isFetchGateway(entry)) {
|
|
888
|
+
const outputPolicy = entry.outputPolicy ?? inheritedOutputPolicy;
|
|
889
|
+
return {
|
|
890
|
+
fetchGateway: entry,
|
|
891
|
+
middlewares: collectedMiddlewares,
|
|
892
|
+
path: path.join(' '),
|
|
893
|
+
rest: remaining,
|
|
894
|
+
...(outputPolicy ? { outputPolicy } : undefined),
|
|
895
|
+
};
|
|
896
|
+
}
|
|
731
897
|
}
|
|
732
898
|
const outputPolicy = entry.outputPolicy ?? inheritedOutputPolicy;
|
|
733
899
|
return {
|
|
@@ -778,17 +944,38 @@ function extractBuiltinFlags(argv) {
|
|
|
778
944
|
function collectHelpCommands(commands) {
|
|
779
945
|
const result = [];
|
|
780
946
|
for (const [name, entry] of commands) {
|
|
781
|
-
|
|
782
|
-
result.push({ name, description: entry.description });
|
|
783
|
-
else
|
|
784
|
-
result.push({ name, description: entry.description });
|
|
947
|
+
result.push({ name, description: entry.description });
|
|
785
948
|
}
|
|
786
949
|
return result.sort((a, b) => a.name.localeCompare(b.name));
|
|
787
950
|
}
|
|
951
|
+
/** @internal Formats help text for a fetch gateway command. */
|
|
952
|
+
function formatFetchHelp(name, description) {
|
|
953
|
+
const lines = [];
|
|
954
|
+
if (description)
|
|
955
|
+
lines.push(`${name} — ${description}`);
|
|
956
|
+
else
|
|
957
|
+
lines.push(name);
|
|
958
|
+
lines.push('');
|
|
959
|
+
lines.push(`Usage: ${name} <path> [options]`);
|
|
960
|
+
lines.push('');
|
|
961
|
+
lines.push('Path segments are joined into the request URL path.');
|
|
962
|
+
lines.push('');
|
|
963
|
+
lines.push('Options:');
|
|
964
|
+
lines.push(' -X, --method <METHOD> HTTP method (default: GET, POST if body present)');
|
|
965
|
+
lines.push(' -H, --header "Key: Val" Set a request header (repeatable)');
|
|
966
|
+
lines.push(' -d, --data <json> Request body (implies POST)');
|
|
967
|
+
lines.push(' --body <json> Request body (implies POST)');
|
|
968
|
+
lines.push(' --<key> <value> Query string parameter');
|
|
969
|
+
return lines.join('\n');
|
|
970
|
+
}
|
|
788
971
|
/** @internal Type guard for command groups. */
|
|
789
972
|
function isGroup(entry) {
|
|
790
973
|
return '_group' in entry;
|
|
791
974
|
}
|
|
975
|
+
/** @internal Type guard for fetch gateways. */
|
|
976
|
+
function isFetchGateway(entry) {
|
|
977
|
+
return '_fetch' in entry;
|
|
978
|
+
}
|
|
792
979
|
/** @internal Maps CLI instances to their command maps. */
|
|
793
980
|
export const toCommands = new WeakMap();
|
|
794
981
|
/** @internal Maps CLI instances to their middleware arrays. */
|
|
@@ -1040,7 +1227,13 @@ function collectCommands(commands, prefix) {
|
|
|
1040
1227
|
const result = [];
|
|
1041
1228
|
for (const [name, entry] of commands) {
|
|
1042
1229
|
const path = [...prefix, name];
|
|
1043
|
-
if (
|
|
1230
|
+
if (isFetchGateway(entry)) {
|
|
1231
|
+
const cmd = { name: path.join(' ') };
|
|
1232
|
+
if (entry.description)
|
|
1233
|
+
cmd.description = entry.description;
|
|
1234
|
+
result.push(cmd);
|
|
1235
|
+
}
|
|
1236
|
+
else if (isGroup(entry)) {
|
|
1044
1237
|
result.push(...collectCommands(entry.commands, path));
|
|
1045
1238
|
}
|
|
1046
1239
|
else {
|
|
@@ -1078,7 +1271,14 @@ function collectSkillCommands(commands, prefix, groups) {
|
|
|
1078
1271
|
const result = [];
|
|
1079
1272
|
for (const [name, entry] of commands) {
|
|
1080
1273
|
const path = [...prefix, name];
|
|
1081
|
-
if (
|
|
1274
|
+
if (isFetchGateway(entry)) {
|
|
1275
|
+
const cmd = { name: path.join(' ') };
|
|
1276
|
+
if (entry.description)
|
|
1277
|
+
cmd.description = entry.description;
|
|
1278
|
+
cmd.hint = 'Fetch gateway. Pass path segments and curl-style flags (-X, -H, -d, --key value).';
|
|
1279
|
+
result.push(cmd);
|
|
1280
|
+
}
|
|
1281
|
+
else if (isGroup(entry)) {
|
|
1082
1282
|
if (entry.description)
|
|
1083
1283
|
groups.set(path.join(' '), entry.description);
|
|
1084
1284
|
result.push(...collectSkillCommands(entry.commands, path, groups));
|