@duyquangnvx/agent-cli 0.11.1 → 0.13.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/CHANGELOG.md CHANGED
@@ -4,6 +4,18 @@ What changed in each release of `@duyquangnvx/agent-cli` (the Runtime) and `@duy
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## v0.13.0 (2026-10-23)
8
+
9
+ ### Changed
10
+
11
+ - **Breaking:** `ctx.spawn`'s `progress: true` is now `onLine: ctx.progress`. `onLine` takes any callback, which receives each line of the child's stdout and stderr as it arrives, so a Command can parse a tool's progress output (`ffmpeg -progress pipe:1`) into its own `ctx.progress` lines; an `onLine` that throws kills the child and fails the run with its error. A lone `\r` now ends a line too, as in ffmpeg's `-stats` and curl's progress, instead of joining every status update into one line.
12
+
13
+ ## v0.12.0 (2026-10-23)
14
+
15
+ ### Added
16
+
17
+ - `ctx.spawn`'s `stdin` option writes a child's stdin: a string or bytes, or an `AsyncIterable<Uint8Array>` written as the child reads it, so a large input streams without being held in memory. Writing stops on `ctx.signal`; a stream that throws kills the child and fails the run with its error; a child that exits before reading it all is judged by its exit code. A fake `spawn` given to `runCli` receives it as `stdin`.
18
+
7
19
  ## v0.11.1 (2026-10-22)
8
20
 
9
21
  ### Changed
@@ -46,7 +46,7 @@ function portsBaseOf(scope, signal) {
46
46
  signal,
47
47
  clock,
48
48
  files,
49
- spawn: contextSpawn(options.spawn ?? realSpawn, { cwd, env, signal, progress }, fileError),
49
+ spawn: contextSpawn(options.spawn ?? realSpawn, { cwd, env, signal }, fileError),
50
50
  };
51
51
  }
52
52
  function contextOf(portsBase, control, parts) {
@@ -1 +1 @@
1
- {"version":3,"file":"run-command.js","sourceRoot":"","sources":["../src/run-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-command.js","sourceRoot":"","sources":["../src/run-command.ts"],"names":[],"mappings":"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"}
package/dist/spawn.d.ts CHANGED
@@ -7,15 +7,19 @@ export interface SpawnResult {
7
7
  readonly exitCode: number;
8
8
  }
9
9
  /**
10
- * Runs a child process to its end; a test replaces it through `runCli`. `onLine`, when given,
11
- * receives each line of the child's stdout and stderr as it arrives, without its line ending.
10
+ * Runs a child process to its end; a test replaces it through `runCli`. `onLine`, when given, is
11
+ * the caller's: call it with each line the child writes, as `SpawnOptions.onLine` describes.
12
+ * `stdin`, when given, is what the caller passed; a stream throws the caller's errors as it is read.
12
13
  */
13
14
  export type Spawn = (command: string, args: readonly string[], options: ChildOptions) => Promise<SpawnResult>;
15
+ /** What a child reads on stdin: text or bytes whole, or a stream of chunks. */
16
+ export type ChildInput = string | Uint8Array | AsyncIterable<Uint8Array>;
14
17
  interface ChildOptions {
15
18
  readonly cwd: string;
16
19
  readonly env: Env;
17
20
  readonly signal: AbortSignal;
18
21
  readonly onLine?: (line: string) => void;
22
+ readonly stdin?: ChildInput;
19
23
  }
20
24
  export interface SpawnOptions {
21
25
  /** `ctx.cwd` when absent. */
@@ -28,17 +32,25 @@ export interface SpawnOptions {
28
32
  */
29
33
  readonly check?: boolean;
30
34
  /**
31
- * Passes each line of the child's stdout and stderr through `ctx.progress` as it arrives; the
32
- * result still holds the whole output.
35
+ * Receives each line of the child's stdout and stderr as it arrives, without its line ending:
36
+ * `\n`, `\r\n`, or a lone `\r` that ends a status line, as ffmpeg's `-stats` writes them. The
37
+ * result still holds the whole output. `onLine: ctx.progress` shows each line as it comes. One
38
+ * that throws kills the child and rejects with its error.
33
39
  */
34
- readonly progress?: boolean;
40
+ readonly onLine?: (line: string) => void;
41
+ /**
42
+ * Written to the child's stdin, which then ends; ignored when absent. A stream is written as the
43
+ * child reads it and stops on `ctx.signal`; one that throws kills the child and rejects with its
44
+ * error. A child that exits before reading it all is judged by its exit code alone.
45
+ */
46
+ readonly stdin?: ChildInput;
35
47
  }
36
48
  export type ContextSpawn = (command: string, args?: readonly string[], options?: SpawnOptions) => Promise<SpawnResult>;
37
49
  /**
38
50
  * Runs a child process to its end; it is killed on abort, and the promise settles only once it has
39
51
  * exited. A `detached` child leaves the terminal's process group on POSIX, and so its Ctrl-C.
40
52
  */
41
- export declare function spawnChild(command: string, args: readonly string[], { cwd, env, signal, onLine, detached }: ChildOptions & {
53
+ export declare function spawnChild(command: string, args: readonly string[], { cwd, env, signal, onLine, stdin, detached, }: ChildOptions & {
42
54
  readonly detached?: boolean;
43
55
  }): Promise<SpawnResult>;
44
56
  export declare const realSpawn: Spawn;
@@ -47,6 +59,5 @@ export declare function contextSpawn(run: Spawn, defaults: {
47
59
  readonly cwd: string;
48
60
  readonly env: Env;
49
61
  readonly signal: AbortSignal;
50
- readonly progress: (message: string) => void;
51
62
  }, fileError: FileError): ContextSpawn;
52
63
  export {};
package/dist/spawn.js CHANGED
@@ -13,6 +13,12 @@ const CMD_SHIM = /\.cmd$/i;
13
13
  const CMD_META = /([()\][%!^"`<>&|;, *?])/g;
14
14
  const PATH_SEPARATOR = /[\\/]/;
15
15
  const TRAILING_CR = /\r$/;
16
+ // A lone \r ends a status line that a terminal would overwrite, as ffmpeg's -stats and curl write
17
+ // them. One that ends a chunk waits for the next, which may start with the \n of a \r\n.
18
+ const LINE_END = /\r\n|\r(?!$)|\n/;
19
+ function isWhole(input) {
20
+ return typeof input === "string" || input instanceof Uint8Array;
21
+ }
16
22
  function escapedForCmd(text) {
17
23
  return text.replace(CMD_META, "^$1");
18
24
  }
@@ -59,28 +65,71 @@ function stop(child) {
59
65
  /** Calls `onLine` with each complete line pushed, and with the unterminated rest at the end. */
60
66
  function lineSplitter(onLine) {
61
67
  let rest = "";
62
- const emit = (line) => onLine?.(line.replace(TRAILING_CR, ""));
63
68
  return {
64
69
  push(text) {
65
70
  if (onLine === undefined)
66
71
  return;
67
- const lines = (rest + text).split("\n");
72
+ const lines = (rest + text).split(LINE_END);
68
73
  rest = lines.pop() ?? "";
69
74
  for (const line of lines)
70
- emit(line);
75
+ onLine(line);
71
76
  },
72
77
  end() {
73
78
  if (rest !== "")
74
- emit(rest);
79
+ onLine?.(rest.replace(TRAILING_CR, ""));
75
80
  rest = "";
76
81
  },
77
82
  };
78
83
  }
84
+ /** `onLine`, passing what it throws to `fail` and called no more once `failed()`. */
85
+ function guarded(onLine, failed, fail) {
86
+ if (onLine === undefined)
87
+ return undefined;
88
+ return (line) => {
89
+ if (failed())
90
+ return;
91
+ try {
92
+ onLine(line);
93
+ }
94
+ catch (error) {
95
+ fail(error);
96
+ }
97
+ };
98
+ }
99
+ /** Settles once the child has taken what was written, or its stdin has closed. */
100
+ function drained(stdin) {
101
+ return new Promise((resolve) => {
102
+ const done = () => {
103
+ stdin.off("drain", done);
104
+ stdin.off("close", done);
105
+ resolve();
106
+ };
107
+ stdin.on("drain", done);
108
+ stdin.on("close", done);
109
+ });
110
+ }
111
+ /**
112
+ * Writes `input` to the child's stdin and ends it, stopping once the child is gone or the run
113
+ * aborts.
114
+ */
115
+ async function feed(stdin, input, signal) {
116
+ // A child that exits before reading it all breaks its stdin (EPIPE, EOF on Windows); its exit code
117
+ // says what went wrong.
118
+ stdin.on("error", () => undefined);
119
+ const chunks = isWhole(input) ? [input] : input;
120
+ for await (const chunk of chunks) {
121
+ if (signal.aborted || stdin.destroyed)
122
+ return;
123
+ if (!stdin.write(chunk))
124
+ await drained(stdin);
125
+ }
126
+ stdin.end();
127
+ }
79
128
  /**
80
129
  * Runs a child process to its end; it is killed on abort, and the promise settles only once it has
81
130
  * exited. A `detached` child leaves the terminal's process group on POSIX, and so its Ctrl-C.
82
131
  */
83
- export async function spawnChild(command, args, { cwd, env, signal, onLine, detached = false }) {
132
+ export async function spawnChild(command, args, { cwd, env, signal, onLine, stdin, detached = false, }) {
84
133
  signal.throwIfAborted();
85
134
  const launch = process.platform === "win32"
86
135
  ? await windowsLaunch(command, args, env)
@@ -92,26 +141,38 @@ export async function spawnChild(command, args, { cwd, env, signal, onLine, deta
92
141
  env,
93
142
  shell: launch.shell,
94
143
  windowsHide: true,
95
- stdio: ["ignore", "pipe", "pipe"],
144
+ stdio: [stdin === undefined ? "ignore" : "pipe", "pipe", "pipe"],
96
145
  detached: detached && process.platform !== "win32",
97
146
  });
147
+ let stopped = Promise.resolve();
148
+ const kill = () => {
149
+ stopped = stop(child);
150
+ };
151
+ signal.addEventListener("abort", kill, { once: true });
152
+ let callerFailure;
153
+ // A caller's stream or onLine that throws kills the child: ending its stdin early would pass a
154
+ // truncated input off as whole.
155
+ const fail = (error) => {
156
+ if (callerFailure !== undefined)
157
+ return;
158
+ callerFailure = { error };
159
+ kill();
160
+ };
98
161
  let stdout = "";
99
162
  let stderr = "";
100
- const stdoutLines = lineSplitter(onLine);
101
- const stderrLines = lineSplitter(onLine);
102
- child.stdout.setEncoding("utf8").on("data", (chunk) => {
163
+ const lines = guarded(onLine, () => callerFailure !== undefined, fail);
164
+ const stdoutLines = lineSplitter(lines);
165
+ const stderrLines = lineSplitter(lines);
166
+ child.stdout?.setEncoding("utf8").on("data", (chunk) => {
103
167
  stdout += chunk;
104
168
  stdoutLines.push(chunk);
105
169
  });
106
- child.stderr.setEncoding("utf8").on("data", (chunk) => {
170
+ child.stderr?.setEncoding("utf8").on("data", (chunk) => {
107
171
  stderr += chunk;
108
172
  stderrLines.push(chunk);
109
173
  });
110
- let stopped = Promise.resolve();
111
- const kill = () => {
112
- stopped = stop(child);
113
- };
114
- signal.addEventListener("abort", kill, { once: true });
174
+ if (stdin !== undefined && child.stdin !== null)
175
+ feed(child.stdin, stdin, signal).catch(fail);
115
176
  child.on("error", (error) => {
116
177
  signal.removeEventListener("abort", kill);
117
178
  reject(error);
@@ -124,6 +185,11 @@ export async function spawnChild(command, args, { cwd, env, signal, onLine, deta
124
185
  }
125
186
  stdoutLines.end();
126
187
  stderrLines.end();
188
+ if (callerFailure !== undefined) {
189
+ const { error } = callerFailure;
190
+ void stopped.then(() => reject(error));
191
+ return;
192
+ }
127
193
  resolve({
128
194
  stdout,
129
195
  stderr,
@@ -150,22 +216,59 @@ function missingError(command, cause) {
150
216
  hint: `install ${command}, then run the same command again`,
151
217
  }, { cause });
152
218
  }
219
+ function startError(command, error, fileError) {
220
+ if (isMissingFile(error))
221
+ return missingError(command, error);
222
+ return fileError(error, { path: command, access: "read" });
223
+ }
224
+ async function* reported(stream, onError) {
225
+ try {
226
+ yield* stream;
227
+ }
228
+ catch (error) {
229
+ onError(error);
230
+ throw error;
231
+ }
232
+ }
233
+ /** `input`, a stream passing each error it throws to `onError` before the reader sees it. */
234
+ function reporting(input, onError) {
235
+ return input === undefined || isWhole(input) ? input : reported(input, onError);
236
+ }
237
+ /** `onLine`, passing each error it throws to `onError` before its caller sees it. */
238
+ function reportingLines(onLine, onError) {
239
+ if (onLine === undefined)
240
+ return undefined;
241
+ return (line) => {
242
+ try {
243
+ onLine(line);
244
+ }
245
+ catch (error) {
246
+ onError(error);
247
+ throw error;
248
+ }
249
+ };
250
+ }
153
251
  /** `ctx.spawn`: `spawn` bound to the run, its start failures classified by errno. */
154
252
  export function contextSpawn(run, defaults, fileError) {
155
253
  return async (command, args = [], options = {}) => {
254
+ let callerFailure;
255
+ const caller = (error) => {
256
+ callerFailure = { error };
257
+ };
156
258
  let result;
157
259
  try {
158
260
  result = await run(command, args, {
159
261
  cwd: options.cwd ?? defaults.cwd,
160
262
  env: options.env ?? defaults.env,
161
263
  signal: defaults.signal,
162
- onLine: options.progress === true ? defaults.progress : undefined,
264
+ onLine: reportingLines(options.onLine, caller),
265
+ stdin: reporting(options.stdin, caller),
163
266
  });
164
267
  }
165
268
  catch (error) {
166
- if (isMissingFile(error))
167
- throw missingError(command, error);
168
- throw fileError(error, { path: command, access: "read" });
269
+ // The caller's stream or onLine failed, not the command: its errno names none of the
270
+ // command's files.
271
+ throw callerFailure?.error === error ? error : startError(command, error, fileError);
169
272
  }
170
273
  if (options.check === true && result.exitCode !== 0) {
171
274
  throw failedError(command, result);
package/dist/spawn.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"spawn.js","sourceRoot":"","sources":["../src/spawn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;AAEzC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B,8EAA8E;AAC9E,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B,MAAM,UAAU,GAAG,iBAAiB,CAAC;AACrC,MAAM,QAAQ,GAAG,SAAS,CAAC;AAC3B,sEAAsE;AACtE,MAAM,QAAQ,GAAG,0BAA0B,CAAC;AAC5C,MAAM,cAAc,GAAG,OAAO,CAAC;AAC/B,MAAM,WAAW,GAAG,KAAK,CAAC;AAsD1B,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACvC,CAAC;AAED,kGAAkG;AAClG,wGAAwG;AACxG,SAAS,aAAa,CAAC,GAAW,EAAE,IAAa;IAC/C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC;IAClF,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACjD,CAAC;AAED,kGAAkG;AAClG,iGAAiG;AACjG,4BAA4B;AAC5B,SAAS,gBAAgB,CAAC,OAAe,EAAE,IAAY,EAAE,IAAuB;IAC9E,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5F,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,OAAe,EACf,IAAuB,EACvB,GAAQ;IAER,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACnF,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACzF,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACnF,CAAC;AAED,wGAAwG;AACxG,SAAS,IAAI,CAAC,KAAmB;IAC/B,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAC5D,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;YAC5D,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YAC1B,2EAA2E;YAC3E,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,gGAAgG;AAChG,SAAS,YAAY,CAAC,MAA4C;IAIhE,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,MAAM,IAAI,GAAG,CAAC,IAAY,EAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;IAC7E,OAAO;QACL,IAAI,CAAC,IAAI;YACP,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO;YACjC,MAAM,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,KAAK;gBAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QACD,GAAG;YACD,IAAI,IAAI,KAAK,EAAE;gBAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,GAAG,EAAE,CAAC;QACZ,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAe,EACf,IAAuB,EACvB,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,KAAK,EAAkD;IAE9F,MAAM,CAAC,cAAc,EAAE,CAAC;IACxB,MAAM,MAAM,GACV,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC1B,CAAC,CAAC,MAAM,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;QACzC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACtC,MAAM,CAAC,cAAc,EAAE,CAAC;IACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE;YAC/C,GAAG;YACH,GAAG;YACH,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;YACjC,QAAQ,EAAE,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;SACnD,CAAC,CAAC;QACH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACzC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAC5D,MAAM,IAAI,KAAK,CAAC;YAChB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAC5D,MAAM,IAAI,KAAK,CAAC;YAChB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,GAAS,EAAE;YACtB,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;YACnC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC1C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC/C,OAAO;YACT,CAAC;YACD,WAAW,CAAC,GAAG,EAAE,CAAC;YAClB,WAAW,CAAC,GAAG,EAAE,CAAC;YAClB,OAAO,CAAC;gBACN,MAAM;gBACN,MAAM;gBACN,QAAQ,EAAE,IAAI,IAAI,gBAAgB,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;aAC3F,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAU,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAE/F,SAAS,WAAW,CAAC,OAAe,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAe;IACrE,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAClD,OAAO,IAAI,QAAQ,CAAC;QAClB,IAAI,EAAE,WAAW;QACjB,OAAO,EACL,IAAI,KAAK,EAAE;YACT,CAAC,CAAC,GAAG,OAAO,gBAAgB,QAAQ,8BAA8B;YAClE,CAAC,CAAC,GAAG,OAAO,gBAAgB,QAAQ,uBAAuB,IAAI,EAAE;QACrE,IAAI,EAAE,iBAAiB,OAAO,2BAA2B;KAC1D,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,OAAe,EAAE,KAAc;IACnD,OAAO,IAAI,QAAQ,CACjB;QACE,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,GAAG,OAAO,0CAA0C;QAC7D,IAAI,EAAE,WAAW,OAAO,mCAAmC;KAC5D,EACD,EAAE,KAAK,EAAE,CACV,CAAC;AACJ,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,YAAY,CAC1B,GAAU,EACV,QAKC,EACD,SAAoB;IAEpB,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;QAChD,IAAI,MAAmB,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE;gBAChC,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG;gBAChC,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG;gBAChC,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,MAAM,EAAE,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;aAClE,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,aAAa,CAAC,KAAK,CAAC;gBAAE,MAAM,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC7D,MAAM,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YACpD,MAAM,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"spawn.js","sourceRoot":"","sources":["../src/spawn.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duyquangnvx/agent-cli",
3
- "version": "0.11.1",
3
+ "version": "0.13.0",
4
4
  "description": "Runtime for agent-first command-line tools: owns parsing, output, errors and exit codes.",
5
5
  "type": "module",
6
6
  "engines": {