@aiiware/aii 0.17.0 → 0.17.1
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 +47 -0
- package/bin/aii +599 -596
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -417,7 +417,9 @@ aii sessions info <id> # View stats (tokens, cost, tools)
|
|
|
417
417
|
|
|
418
418
|
```bash
|
|
419
419
|
aii config init # Interactive setup wizard
|
|
420
|
+
aii config init --project # Scaffold project config for this repo
|
|
420
421
|
aii config show # Current settings
|
|
422
|
+
aii config show --sources # Per-key provenance (env/local/project/global)
|
|
421
423
|
aii config validate # Check config + API key validity
|
|
422
424
|
aii config set <key> <value> # Set a specific value
|
|
423
425
|
aii config provider [name] # Show or switch provider
|
|
@@ -450,6 +452,51 @@ sessions:
|
|
|
450
452
|
|
|
451
453
|
Environment variables also work: `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, `DEEPSEEK_API_KEY`, etc.
|
|
452
454
|
|
|
455
|
+
### Project configuration (v0.17)
|
|
456
|
+
|
|
457
|
+
A repository can carry its own Aii config — committed for the team, layered under your personal settings:
|
|
458
|
+
|
|
459
|
+
```bash
|
|
460
|
+
aii config init --project # creates .aii/settings.json, gitignores .aii/settings.local.json
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
```jsonc
|
|
464
|
+
// .aii/settings.json (committed)
|
|
465
|
+
{
|
|
466
|
+
"llm": { "model": "deepseek-v4", "provider": "deepseek" },
|
|
467
|
+
"output_modes": { "default": "clean" },
|
|
468
|
+
"permissions": {
|
|
469
|
+
"deny_write": ["db/migrations/**"], // paths the agent may never write in this repo
|
|
470
|
+
"deny_tools": ["Bash"] // tools the agent may never use in this repo
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
```
|
|
474
|
+
|
|
475
|
+
Precedence: `flag > env > .aii/settings.local.json > .aii/settings.json > ~/.aii/config.yaml > defaults` — your env pins always win. `aii config show --sources` shows exactly where each effective value came from.
|
|
476
|
+
|
|
477
|
+
**A repo can only narrow, never widen.** Only safe keys are accepted (model, provider, temperature, output mode, persona, theme, deny rules); anything that would widen authority — `api.*`, `allow_write`, auto-approve flags — is rejected with a warning. Deny rules are enforced everywhere (file tools, Bash write targets, subagents) as hard tool errors. Project values are session-effective only: `aii config set` still writes exclusively to your `~/.aii/config.yaml`.
|
|
478
|
+
|
|
479
|
+
A repo's `.aii/hooks.json` never runs silently: the first interactive session shows each hook's event + command and asks for approval, remembered in `~/.aii/project-trust.json` until the file changes. Headless runs fail closed. Skip the whole project layer for one session with `aii --no-project-config`.
|
|
480
|
+
|
|
481
|
+
### Project slash commands (v0.17.1)
|
|
482
|
+
|
|
483
|
+
A repository can ship its own slash commands — one markdown file per command under `.aii/commands/`, committed and shared with the team:
|
|
484
|
+
|
|
485
|
+
```markdown
|
|
486
|
+
<!-- .aii/commands/deploy.md -->
|
|
487
|
+
---
|
|
488
|
+
description: Deploy the current branch to staging
|
|
489
|
+
argument-hint: <environment>
|
|
490
|
+
---
|
|
491
|
+
Deploy the current branch to $ARGUMENTS:
|
|
492
|
+
1. Run the test suite; abort on failure.
|
|
493
|
+
2. Build and push the image tagged with the short sha.
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
Typing `/deploy staging` expands the file's body (with `$ARGUMENTS` → `staging`) into the agent turn. The filename is the command name; frontmatter is optional (`description` and `argument-hint` are shown in the `/` menu and `/help`, where project commands carry a `[project]` badge).
|
|
497
|
+
|
|
498
|
+
**First use asks once.** A cloned repo's command is prompt content the agent will follow with your tools — so the first `/deploy` shows the file's full body and asks. Approve and it's remembered (per file content, in `~/.aii/project-trust.json`) until the file changes; decline and it's skipped. Headless runs fail closed. The same gate now also covers project `.aii/skills/` — repo-committed skills ask before they first run, and an unapproved one is never model-auto-invoked. Project commands are typed-slash only (never triggered by plain English), and `aii --no-project-config` disables commands and skills along with the rest of the project layer.
|
|
499
|
+
|
|
453
500
|
---
|
|
454
501
|
|
|
455
502
|
## CLI Reference
|