@aiiware/aii 0.17.27 → 0.18.2

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 (3) hide show
  1. package/README.md +44 -1
  2. package/bin/aii +710 -683
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -9,7 +9,7 @@ An autonomous AI assistant that lives in your terminal. Ask it anything — it r
9
9
  </p>
10
10
 
11
11
  <p align="center">
12
- <strong>npm:</strong> <code>@aiiware/aii</code> · <strong>Version:</strong> 0.17.4 · <strong>Node.js:</strong> >= 18
12
+ <strong>npm:</strong> <code>@aiiware/aii</code> · <strong>Version:</strong> 0.18.0 · <strong>Node.js:</strong> >= 20
13
13
  </p>
14
14
 
15
15
  ---
@@ -79,6 +79,21 @@ aii run git commit -y
79
79
 
80
80
  It reads your staged changes, writes a Conventional Commits message, and commits — one command.
81
81
 
82
+ Control the attribution footer (also on `aii run git pr`):
83
+
84
+ ```bash
85
+ aii run git commit -y --no-signature # this run: no footer
86
+ aii run git commit -y --signature "Reviewed-by: TT" # this run: your own footer
87
+ ```
88
+
89
+ ```yaml
90
+ # ~/.aii/config.yaml — persistent preference
91
+ git:
92
+ commit_signature: none # default | none | any literal footer text
93
+ ```
94
+
95
+ Precedence: `--no-signature` > `--signature "<text>"` > config > default. The footer is appended by the CLI after generation (never model-written), so it is byte-identical on every run. The interactive `/commit` and `/review` skills are separate surfaces and keep their own footer.
96
+
82
97
  ### Start an interactive session
83
98
 
84
99
  ```bash
@@ -160,6 +175,7 @@ During interactive sessions, type `/` to see all commands. Highlights:
160
175
  | `/theme [name]` | View or switch color theme |
161
176
  | `/auto` | Toggle auto-approve mode |
162
177
  | `/plan` | Toggle plan mode (read-only) |
178
+ | `/goal [objective]` | Set a session goal the agent works toward autonomously (see [Session Goals](#session-goals)) |
163
179
  | `/diff` | See all file changes this session |
164
180
  | `/undo` | Revert the last file change |
165
181
  | `/stats` | Session stats — tokens, cost, duration |
@@ -271,6 +287,33 @@ Pause takes effect between tool calls — the agent finishes what it's doing, th
271
287
 
272
288
  The status bar updates in real time with iteration count, token usage, estimated cost, and tool calls — you always know what the loop is doing and what it's costing.
273
289
 
290
+ ### Session Goals (`/goal`)
291
+
292
+ Give the interactive session a **persistent objective it keeps working toward until evidence says it's done** — no more typing "keep going" after every turn:
293
+
294
+ ```text
295
+ /goal Make the checkout suite pass, verified by `npm test -w checkout`,
296
+ without changing public API behavior. --budget 2.00
297
+ ```
298
+
299
+ While a goal is **active**, the agent sees the objective every turn; when a turn ends and you're not typing, Aii **auto-continues** — checking the evidence first, then either keeps working, declares `GOAL COMPLETE — evidence: …`, or declares `GOAL BLOCKED — <what it needs>`. Completion is evidence-based and shown verbatim; the lifecycle stays yours:
300
+
301
+ | Command | What It Does |
302
+ |---------|-------------|
303
+ | `/goal <objective>` | Set the goal (`--budget <usd>`, `--auto-turns <n>` — `0` = unlimited; `--max-time 2h`, `--max-tokens 5M`; `--verify "cmd"`; `--auto` = no approval prompts) |
304
+ | `/goal` | Status view — objective, status, verify, armed limits, time/tokens used, contextual next commands |
305
+ | `/goal draft <plain description>` | The model proposes a strong goal contract (outcome · verification · constraints); you edit + submit it |
306
+ | `/goal edit <text and/or flags>` | Revise in place (`/goal edit --budget 5` raises a limit without retyping) |
307
+ | `/goal pause` / `resume` / `clear` | Suspend / re-arm / remove |
308
+
309
+ **Verified completion** — arm `--verify "npm test"` and a `GOAL COMPLETE` claim only counts when that command exits 0: failures keep the goal active and feed the output back to the agent, so "done" means *provably* done. **Cloud-safe limits** — `--max-time` and `--max-tokens` work everywhere (including cloud mode, where `--budget` is unavailable by design).
310
+
311
+ **Unattended runs**: in Normal mode, approval prompts pause the goal (it never escalates its own authority) — add `--auto` at set time (or type `/auto`) to auto-approve mutating tools for the session and let it run hands-off.
312
+
313
+ Guardrails by default: auto-continuation caps at **10 turns** per arming (raise with `--auto-turns`, or `--auto-turns 0` for the run-until-done mode — loudly warned without a budget), budgets stop between turns with an honest summary (never claimed as "done"), a continuation that stops making tool calls pauses visibly, typing always wins the turn, Esc pauses the goal, and the `◎ Goal` status-bar segment keeps the state in view the whole time. Goals are session-scoped and survive restarts via `aii agent --continue` (same project only).
314
+
315
+ `/goal` vs `/loop`: a loop grinds a fixed prompt with fresh context each iteration; a goal keeps one **conversation** converging on an outcome — the evidence trail stays in context. Starting a loop auto-pauses an active goal.
316
+
274
317
  ### Telegram Integration
275
318
 
276
319
  Run the full agent from Telegram: