@duyquangnvx/create-agent-cli 0.16.0 → 0.17.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,17 @@ What changed in each release of `@duyquangnvx/agent-cli` (the Runtime) and `@duy
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## v0.17.0 (2026-10-27)
8
+
9
+ ### Added
10
+
11
+ - A fifth Effect, `act`, for a Command that changes the state of a program already running, such as a page in a browser tab, rather than files or remote services. It is declared as a read Command is, with `run` and the new `ActCommand` type, and cannot declare a Plan or `rows`. Its help says so and that running it again may act again, its `--help --json` gives `"effect": "act"`, and of the Standard flags it gets only `--json`. The agent-cli skill says when to pick `act` over `read` and `write`.
12
+ - The Scaffolder's `AGENTS.md` names the `act` and `serve` Effects beside `read`, `write` and `destructive`.
13
+
14
+ ### Upgrade from v0.16.0
15
+
16
+ - Nothing to do.
17
+
7
18
  ## v0.16.0 (2026-10-27)
8
19
 
9
20
  ### Changed
package/dist/bin.js CHANGED
@@ -6429,6 +6429,7 @@ const FORCE_FLAG = standardFlag("--force", {
6429
6429
  });
6430
6430
  const EFFECT_FLAGS = {
6431
6431
  read: [JSON_FLAG],
6432
+ act: [JSON_FLAG],
6432
6433
  write: [JSON_FLAG, DRY_RUN_FLAG],
6433
6434
  destructive: [
6434
6435
  JSON_FLAG,
@@ -9115,6 +9116,7 @@ function groupHelp(group, style) {
9115
9116
  }
9116
9117
  const EFFECT_NOTES = {
9117
9118
  read: "changes nothing",
9119
+ act: "changes the state of a running program, not files or services; may act again each time it runs",
9118
9120
  write: "changes something; show the Plan with --dry-run",
9119
9121
  destructive: "changes something hard to undo; show the Plan with --dry-run, run with --confirm",
9120
9122
  serve: "changes nothing; prints its data at once, then runs until Ctrl-C, which exits 0"
@@ -9504,7 +9506,7 @@ async function execute(command, input, ctx, { dryRun, confirm, yes, page, invoca
9504
9506
  ...input,
9505
9507
  ...page
9506
9508
  }, ctx), (data, style) => command.render(data, style));
9507
- if (command.effect === "read") return outcomeOf(await command.run(input, ctx), (data, style) => command.render(data, style));
9509
+ if (command.effect === "read" || command.effect === "act") return outcomeOf(await command.run(input, ctx), (data, style) => command.render(data, style));
9508
9510
  if (command.effect === "serve") {
9509
9511
  let end = () => {};
9510
9512
  const ended = new Promise((resolve) => {
@@ -10253,14 +10255,14 @@ async function runProcess(cli) {
10253
10255
  }
10254
10256
  //#endregion
10255
10257
  //#region package.json
10256
- var version$1 = "0.16.0";
10258
+ var version$1 = "0.17.0";
10257
10259
  var description = "Creates a new Agent CLI repository wired to @duyquangnvx/agent-cli.";
10258
10260
  //#endregion
10259
10261
  //#region src/build.ts
10260
10262
  const build = {
10261
- "sha": "648fa57",
10263
+ "sha": "8bb3938",
10262
10264
  "dirty": false,
10263
- "builtAt": "2026-10-27T10:21:48.000Z"
10265
+ "builtAt": "2026-10-27T10:54:44.000Z"
10264
10266
  };
10265
10267
  //#endregion
10266
10268
  //#region src/fill.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duyquangnvx/create-agent-cli",
3
- "version": "0.16.0",
3
+ "version": "0.17.0",
4
4
  "description": "Creates a new Agent CLI repository wired to @duyquangnvx/agent-cli.",
5
5
  "type": "module",
6
6
  "engines": {
@@ -20,7 +20,7 @@
20
20
  "access": "public"
21
21
  },
22
22
  "devDependencies": {
23
- "@duyquangnvx/agent-cli": "0.16.0",
23
+ "@duyquangnvx/agent-cli": "0.17.0",
24
24
  "tsdown": "0.23.0",
25
25
  "zod": "4.6.7"
26
26
  },
@@ -19,7 +19,7 @@ Greenfield with no deployments or users: change code directly. Breaking changes
19
19
  ## Coding standards
20
20
 
21
21
  - Every Command is declared in `src/cli.ts` with the `defineCommand` that `agentCli<Ports>()` returns: a description, realistic examples, Zod schemas for args and options (with `.describe()` on each field), and its Effect.
22
- - A Command never prints. A `read` Command returns data from `run` and turns it into short text in `render`. A `write` or `destructive` Command returns a Plan from `plan`, with no side effects, and performs it in `apply`; the Runtime adds `--dry-run`, and `--confirm` for a destructive one.
22
+ - A Command never prints. A `read` Command returns data from `run` and turns it into short text in `render`. An `act` Command, which changes the state of a program already running rather than files or services, does the same with no Plan. A `write` or `destructive` Command returns a Plan from `plan`, with no side effects, and performs it in `apply`; the Runtime adds `--dry-run`, and `--confirm` for a destructive one. A `serve` Command returns data from `start` and keeps running until `ctx.signal` aborts.
23
23
  - A Command that writes files names them in `outputs(plan)`, and the Runtime refuses to overwrite one without `--force`. A Command that costs money states it in `cost(plan)`, a sentence or `undefined` when cheap, and the Runtime refuses a costly run without `--yes`.
24
24
  - A Command reaches a remote service through a port: an interface in `src/ports.ts`, built by the `ports` factory passed to `defineCli` and read as `ctx.ports`. It writes files through `ctx.files` and runs programs through `ctx.spawn`, so a test replaces each of them.
25
25
  - Every error code is declared once in a `defineErrors` table passed to `defineCli({ errors })`, with the Exit class that must act on it and an optional `details` schema, and thrown through `cliError(errors, code, { message, hint })`, whose `hint` names the command to run next. An undeclared code, and anything else thrown, becomes an internal error (exit 70), whose stack trace `{{debugVariable}}=1` shows.