@lazyingart/agintiflow 0.20.49 → 0.20.50
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 +15 -2
- package/docs/aaps.md +70 -0
- package/docs/student-committee-supervisor.md +104 -0
- package/package.json +4 -2
- package/references/aaps-agintiflow-integration-design.md +710 -0
- package/references/student-committee-supervisor-mode.md +331 -0
- package/scripts/smoke-aaps-adapter.js +67 -0
- package/skills/aaps/SKILL.md +23 -2
- package/src/aaps-adapter.js +742 -0
- package/src/agent-runner.js +216 -5
- package/src/cli.js +57 -1
- package/src/config.js +24 -7
- package/src/i18n.js +1 -0
- package/src/interactive-cli.js +73 -1
- package/src/scs-controller.js +471 -0
- package/src/task-profiles.js +2 -1
package/README.md
CHANGED
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|

|
|
14
14
|

|
|
15
15
|

|
|
16
|
-

|
|
17
|
+

|
|
17
18
|

|
|
18
19
|

|
|
19
20
|
|
|
@@ -50,7 +51,7 @@ aginti --list-profiles
|
|
|
50
51
|
aginti --sandbox-status
|
|
51
52
|
```
|
|
52
53
|
|
|
53
|
-
When AgInTiFlow is installed globally from npm, normal `aginti`, `aginti chat`, `aginti resume`, and `aginti web` startup revalidates npm for a newer `@lazyingart/agintiflow` release before the session starts. If a newer version is found in an interactive terminal, AgInTiFlow shows an Up/Down selector with `Update now`, `Skip this time`, and `Skip this version`; updating runs `npm install -g @lazyingart/agintiflow@latest` and restarts the CLI once. Source checkouts, non-TTY automation, and utility commands skip this behavior. Force a check with `aginti update`, skip one run with `--no-auto-update`, disable it with `AGINTIFLOW_NO_AUTO_UPDATE=1`, or throttle startup checks with `AGINTIFLOW_AUTO_UPDATE_STARTUP_INTERVAL_MS`.
|
|
54
|
+
When AgInTiFlow is installed globally from npm, normal `aginti`, `aginti chat`, `aginti resume`, and `aginti web` startup revalidates npm for a newer `@lazyingart/agintiflow` release before the session starts. If a newer version is found in an interactive terminal, AgInTiFlow shows an Up/Down selector with `Update now`, `Skip this time`, and `Skip this version`; updating runs `npm install -g @lazyingart/agintiflow@latest` and restarts the CLI once. Source checkouts, non-TTY automation, and utility commands skip this behavior. If you skip or disable auto-update, AgInTiFlow runs as normal using your current version. Force a check with `aginti update`, skip one run with `--no-auto-update`, disable it with `AGINTIFLOW_NO_AUTO_UPDATE=1`, or throttle startup checks with `AGINTIFLOW_AUTO_UPDATE_STARTUP_INTERVAL_MS`.
|
|
54
55
|
|
|
55
56
|
On first interactive use, if no main model key is detected, `aginti` opens an auth wizard. Use Up/Down to choose DeepSeek, OpenAI, Qwen, or Venice, paste the key, and press Enter to save it to the project-local ignored file `.aginti/.env` with `0600` permissions. The wizard points to DeepSeek keys at `https://platform.deepseek.com/api_keys`, OpenAI keys at `https://platform.openai.com/api-keys`, and Venice at `https://venice.ai`. It then offers the optional auxiliary image key; press Esc to skip. You can rerun it even when keys already exist:
|
|
56
57
|
|
|
@@ -90,10 +91,14 @@ For code edits, AgInTiFlow routes patch/refactor/database-style tasks to DeepSee
|
|
|
90
91
|
|
|
91
92
|
Model choice is role-based: `/route` defaults to DeepSeek V4 Flash, `/model` or `/main` defaults to DeepSeek V4 Pro, `/spare` defaults to OpenAI GPT-5.4 medium, `/wrapper` defaults to Codex GPT-5.5 medium when enabled, and `/auxiliary` defaults to GRS AI/Nano Banana for image tools. See [docs/model-selection.md](docs/model-selection.md) and run `aginti models`.
|
|
92
93
|
|
|
94
|
+
AAPS large-workflow support is available through the optional adapter. Use `aginti aaps status`, `aginti aaps init`, `aginti aaps validate`, or `/aaps` in chat to manage project-local `.aaps` workflows without making AAPS a hard dependency of AgInTiFlow. This lets AAPS describe the top-down pipeline while AgInTiFlow remains the interactive agent/tool backend. See [docs/aaps.md](docs/aaps.md).
|
|
95
|
+
|
|
93
96
|
For larger repositories, use `--profile large-codebase` or choose **Large codebase engineering** in the web UI. The web default stays **Auto**, and Auto now escalates codebase/system/debugging prompts to the same engineering loop when needed. Complex work routes to DeepSeek v4 pro, starts with `inspect_project`, then uses search/read/patch/check loops inspired by Codex, Copilot SDK, Claude Code, Gemini CLI, Qwen, and Claw Code. See [docs/large-codebase-engineering.md](docs/large-codebase-engineering.md).
|
|
94
97
|
|
|
95
98
|
AgInTiFlow can also spend cheap DeepSeek calls on parallel scout notes before the main executor starts a complicated task. It first writes a bounded project map to `.aginti/codebase-map.json`, then runs scouts for architecture, implementation, review, research, context mapping, tests, git workflow, integration, symbol tracing, and dependency risks. A coordinator Swarm Board is injected for the main agent and saved as `artifacts/scout-blackboard.json` in the session. The executor still does the real file/shell/browser work itself. Disable with `--no-parallel-scouts` or set `--scout-count 1..10`.
|
|
96
99
|
|
|
100
|
+
For complicated tasks that need stricter quality control, enable Student-Committee-Supervisor mode with `/enabless`, `--enabless`, or `--enabless auto`. SCS uses the main model for a typed gate: committee drafts the next phase, student approves/monitors/rejects weak evidence, and supervisor executes with the normal guarded tools. It disables duplicate scout advice by default, logs typed `scs.*` events, caps retries to avoid deadlock, and stays off unless you opt in or choose auto mode. See [docs/student-committee-supervisor.md](docs/student-committee-supervisor.md).
|
|
101
|
+
|
|
97
102
|
The next productive-agent roadmap is tracked in [docs/productive-agent-roadmap.md](docs/productive-agent-roadmap.md): durable codebase maps, stronger scout blackboards, long-run checkpoints, LSP/symbol tools, test triage, and release automation. Runtime choices, Docker persistence, host full-access tradeoffs, tmux sessions, and rolling-plan autonomy are documented in [docs/runtime-modes-and-autonomy.md](docs/runtime-modes-and-autonomy.md). The supervised self-development protocol is in [docs/self-development-supervision.md](docs/self-development-supervision.md).
|
|
98
103
|
|
|
99
104
|
For current docs, install errors, package/toolchain setup, and source discovery, the agent has a guarded `web_search` tool. It returns compact search results without browser search-engine loops and respects configured domain allowlists. Disable with `--no-web-search`.
|
|
@@ -146,9 +151,15 @@ aginti resume --all-sessions
|
|
|
146
151
|
aginti resume latest
|
|
147
152
|
aginti resume <session-id> "continue with a short follow-up"
|
|
148
153
|
aginti queue <session-id> "extra instruction for the running agent"
|
|
154
|
+
aginti aaps status
|
|
155
|
+
aginti aaps init "Project Workflow"
|
|
156
|
+
aginti aaps validate
|
|
149
157
|
aginti chat
|
|
150
158
|
# then in chat: /review [focus]
|
|
159
|
+
# then in chat: /enabless auto
|
|
160
|
+
# then in chat: /aaps validate
|
|
151
161
|
aginti --profile code "write a small Python CLI app with tests"
|
|
162
|
+
aginti --enabless auto "fix this complicated project and verify it"
|
|
152
163
|
aginti --latex "draw a figure, write a short LaTeX report, and compile the PDF"
|
|
153
164
|
aginti "set up this project and run the tests"
|
|
154
165
|
```
|
|
@@ -159,6 +170,8 @@ Session cleanup is cwd-scoped by default. `aginti --remove-empty-sessions` shows
|
|
|
159
170
|
|
|
160
171
|
In interactive chat, `/review [focus]` starts a bounded repository review. It begins from git status/diff and project instructions, reads manifests/entry points/tests/changed files first, avoids generated or binary folders, limits discovery passes, and reports findings before any summary.
|
|
161
172
|
|
|
173
|
+
In interactive chat, `/enabless` turns on SCS for the session, `/enabless auto` activates it only for complex/risky work, `/enabless off` restores the normal fast pipeline, and `/enabless status` explains the current mode.
|
|
174
|
+
|
|
162
175
|
Run from a source checkout:
|
|
163
176
|
|
|
164
177
|
```bash
|
package/docs/aaps.md
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# AAPS Adapter
|
|
2
|
+
|
|
3
|
+
AgInTiFlow can use AAPS as a declarative control plane for large work. AAPS owns the top-down workflow script (`.aaps`), project manifest, validation contracts, compile reports, and run artifacts. AgInTiFlow remains the interactive agent runtime with model routing, file tools, shell policy, Docker mode, tmux, sessions, and canvas artifacts.
|
|
4
|
+
|
|
5
|
+
The integration is intentionally lightweight. AgInTiFlow does not vendor the AAPS parser or require AAPS as a hard dependency. It discovers AAPS at runtime in this order:
|
|
6
|
+
|
|
7
|
+
1. `AAPS_BIN` or `AGINTI_AAPS_BIN`.
|
|
8
|
+
2. `node_modules/.bin/aaps` in the current project.
|
|
9
|
+
3. `aaps` on `PATH`.
|
|
10
|
+
4. A sibling development checkout at `~/ProjectsLFS/AAPS/scripts/aaps.js` when present.
|
|
11
|
+
|
|
12
|
+
## CLI
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
aginti aaps status
|
|
16
|
+
aginti aaps init "My AAPS Project"
|
|
17
|
+
aginti aaps files
|
|
18
|
+
aginti aaps validate
|
|
19
|
+
aginti aaps parse
|
|
20
|
+
aginti aaps compile check
|
|
21
|
+
aginti aaps check workflows/main.aaps
|
|
22
|
+
aginti aaps dry-run workflows/main.aaps
|
|
23
|
+
aginti aaps run workflows/main.aaps
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Inside the interactive CLI, use the same commands with a slash:
|
|
27
|
+
|
|
28
|
+
```text
|
|
29
|
+
/aaps
|
|
30
|
+
/aaps on
|
|
31
|
+
/aaps init
|
|
32
|
+
/aaps validate
|
|
33
|
+
/aaps compile check
|
|
34
|
+
/aaps dry-run workflows/main.aaps
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
`/aaps on` switches the session to the AAPS task profile and raises the step budget for workflow work. `/aaps off` returns to the Auto profile.
|
|
38
|
+
|
|
39
|
+
## Safety
|
|
40
|
+
|
|
41
|
+
The adapter keeps paths project-relative and uses `execFile`, not shell interpolation. `status`, `files`, and `init` work without AAPS installed. Validation, parse, compile, check, and run require a discovered AAPS CLI.
|
|
42
|
+
|
|
43
|
+
`compile check` and `validate` are the recommended first checks. `run` can execute commands declared by the `.aaps` workflow, so treat it like any other project execution step and run only workflows you intend to execute.
|
|
44
|
+
|
|
45
|
+
`aginti aaps install` installs `@lazyingart/aaps` as a project dev dependency only when the current project has `package.json`. Use `aginti aaps install global` only when you intentionally want a global npm install.
|
|
46
|
+
|
|
47
|
+
## Project Shape
|
|
48
|
+
|
|
49
|
+
`aginti aaps init` creates a starter project without overwriting existing files:
|
|
50
|
+
|
|
51
|
+
```text
|
|
52
|
+
aaps.project.json
|
|
53
|
+
workflows/main.aaps
|
|
54
|
+
reports/
|
|
55
|
+
runs/
|
|
56
|
+
artifacts/
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
The starter workflow is deliberately simple: it defines a planner agent and a `draft_plan` task that writes `reports/aaps-plan.md`. Use it as a safe scaffold, then expand the workflow with blocks, validations, recovery steps, and review gates.
|
|
60
|
+
|
|
61
|
+
## When To Use AAPS
|
|
62
|
+
|
|
63
|
+
Use AAPS when a task is too large for a single chat-style loop and benefits from explicit phases:
|
|
64
|
+
|
|
65
|
+
- Multi-stage app development with review, tests, repair, screenshots, and release notes.
|
|
66
|
+
- Paper or book pipelines with outline, draft, figures, review, export, and publication checks.
|
|
67
|
+
- Data/research workflows with ingestion, cleaning, analysis, validation, and report artifacts.
|
|
68
|
+
- Recurring project maintenance with inspect, plan, patch, test, and commit stages.
|
|
69
|
+
|
|
70
|
+
For ordinary one-off coding or writing tasks, use normal AgInTiFlow prompts.
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Student-Committee-Supervisor Mode
|
|
2
|
+
|
|
3
|
+
Student-Committee-Supervisor mode, or SCS, is an optional quality gate for complicated AgInTiFlow tasks.
|
|
4
|
+
|
|
5
|
+
It is intentionally separate from the normal fast pipeline. Small requests should stay cheap and direct. SCS is for work where a weak plan, repeated failed action, or premature finish would be expensive.
|
|
6
|
+
|
|
7
|
+
## Commands
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
aginti --enabless "fix this complicated project and verify it"
|
|
11
|
+
aginti --enabless auto "migrate this app and run the checks"
|
|
12
|
+
aginti --no-enabless "answer this simple question"
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Inside interactive chat:
|
|
16
|
+
|
|
17
|
+
```text
|
|
18
|
+
/enabless
|
|
19
|
+
/enabless auto
|
|
20
|
+
/enabless off
|
|
21
|
+
/enabless status
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
`/scs` is also accepted as a serious alias.
|
|
25
|
+
|
|
26
|
+
## Role Contract
|
|
27
|
+
|
|
28
|
+
SCS uses the selected main model for every internal role.
|
|
29
|
+
|
|
30
|
+
| Role | Right | Boundary |
|
|
31
|
+
| --- | --- | --- |
|
|
32
|
+
| Committee | Draft one next-phase plan with acceptance criteria and stop conditions. | Cannot approve plans or call tools. |
|
|
33
|
+
| Student | Approve/veto the phase plan, review failure evidence, and approve/reject finish. | Cannot call tools or override runtime safety. |
|
|
34
|
+
| Supervisor | Execute the approved phase with the existing browser, shell, file, canvas, and wrapper tools. | Cannot replace the strategic plan without student review. |
|
|
35
|
+
|
|
36
|
+
The runtime remains the real authority for command policy, filesystem guardrails, secret redaction, session persistence, and user interruption.
|
|
37
|
+
|
|
38
|
+
## Runtime Behavior
|
|
39
|
+
|
|
40
|
+
When SCS is active:
|
|
41
|
+
|
|
42
|
+
- `config.provider` and `config.model` switch to the main model role, except mock mode keeps the local mock route for smoke tests.
|
|
43
|
+
- Parallel scouts are disabled by default unless explicitly requested, avoiding duplicate advisory layers.
|
|
44
|
+
- The normal `createPlan()` path is replaced by a committee draft plus student approval.
|
|
45
|
+
- An approved supervisor instruction is injected into the execution loop.
|
|
46
|
+
- Failed or blocked tools trigger a bounded student monitor review.
|
|
47
|
+
- Every fourth execution step triggers a bounded progress review for long runs.
|
|
48
|
+
- `finish` and assistant-content completion pass through a final student gate.
|
|
49
|
+
- Decisions are persisted as `scs.*` events and the phase pack is saved as a session artifact.
|
|
50
|
+
|
|
51
|
+
The current implementation is deliberately bounded:
|
|
52
|
+
|
|
53
|
+
- Committee plan retries are capped.
|
|
54
|
+
- Student monitor calls are capped.
|
|
55
|
+
- Finish rejections are capped to avoid deadlock.
|
|
56
|
+
- If the monitor cannot produce strict JSON, AgInTiFlow uses a conservative fallback decision and records the parser warning.
|
|
57
|
+
|
|
58
|
+
## Auto Mode
|
|
59
|
+
|
|
60
|
+
`/enabless auto` and `--enabless auto` activate SCS for complex, risky, or long-running work. Signals include:
|
|
61
|
+
|
|
62
|
+
- high smart-routing complexity score;
|
|
63
|
+
- profiles such as code, app, Android/iOS, large-codebase, GitHub, maintenance, security, LaTeX, research, and supervision;
|
|
64
|
+
- prompts mentioning multi-file work, regressions, builds, deployments, tmux, emulators, Docker, PDFs, or similar high-friction workflows.
|
|
65
|
+
|
|
66
|
+
Auto mode stays off for simple turns.
|
|
67
|
+
|
|
68
|
+
## When To Use It
|
|
69
|
+
|
|
70
|
+
Use SCS for:
|
|
71
|
+
|
|
72
|
+
- large coding tasks with ambiguous scope;
|
|
73
|
+
- Android/iOS/system tasks where environment checks matter;
|
|
74
|
+
- migrations, refactors, release work, and GitHub workflows;
|
|
75
|
+
- long-running tmux or simulator jobs;
|
|
76
|
+
- paper/LaTeX work where final artifacts need evidence;
|
|
77
|
+
- self-supervision or capability-training runs.
|
|
78
|
+
|
|
79
|
+
Avoid SCS for:
|
|
80
|
+
|
|
81
|
+
- `ls`, `pwd`, short factual answers, and small one-file edits;
|
|
82
|
+
- tasks where latency matters more than plan quality;
|
|
83
|
+
- already well-scoped prompts that normal routing handles reliably.
|
|
84
|
+
|
|
85
|
+
## Event Trail
|
|
86
|
+
|
|
87
|
+
SCS emits compact event names:
|
|
88
|
+
|
|
89
|
+
- `scs.enabled`
|
|
90
|
+
- `scs.committee.plan_drafted`
|
|
91
|
+
- `scs.student.approve_plan`
|
|
92
|
+
- `scs.student.veto_plan`
|
|
93
|
+
- `scs.student.rethink_plan`
|
|
94
|
+
- `scs.student.accept_phase`
|
|
95
|
+
- `scs.student.reject_phase`
|
|
96
|
+
- `scs.student.finish_allowed`
|
|
97
|
+
- `scs.student.finish_rejected`
|
|
98
|
+
- `scs.supervisor.phase_started`
|
|
99
|
+
|
|
100
|
+
These are saved in the normal session event log under `~/.agintiflow/sessions/<session-id>/events.jsonl`, with project pointers under `.aginti-sessions/`.
|
|
101
|
+
|
|
102
|
+
## Design Reference
|
|
103
|
+
|
|
104
|
+
The deeper design research lives in [references/student-committee-supervisor-mode.md](../references/student-committee-supervisor-mode.md). The important design choice is that SCS is a typed event gate, not a free-form debate. Internal roles emit structured decisions, and the runtime decides what those decisions are allowed to do.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lazyingart/agintiflow",
|
|
3
|
-
"version": "0.20.
|
|
3
|
+
"version": "0.20.50",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "AgInTiFlow is a web-first coding agent and CLI with DeepSeek routing, sandboxed tools, model providers, canvas artifacts, and optional wrappers.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
"scripts/real-deepseek-capabilities.js",
|
|
50
50
|
"scripts/smoke-auxiliary-tools.js",
|
|
51
51
|
"scripts/smoke-auth.js",
|
|
52
|
+
"scripts/smoke-aaps-adapter.js",
|
|
52
53
|
"scripts/smoke-canvas-artifacts.js",
|
|
53
54
|
"scripts/smoke-cli-chat.js",
|
|
54
55
|
"scripts/smoke-coding-tools.js",
|
|
@@ -77,6 +78,7 @@
|
|
|
77
78
|
"check": "node --check run.js && node --check web.js && node --check bin/aginti-cli.js && node --check src/*.js && node --check scripts/seed-supervised-homework.js",
|
|
78
79
|
"setup:toolchain-docker": "scripts/setup-agent-toolchain-docker.sh",
|
|
79
80
|
"smoke:coding-tools": "node scripts/smoke-coding-tools.js",
|
|
81
|
+
"smoke:aaps-adapter": "node scripts/smoke-aaps-adapter.js",
|
|
80
82
|
"smoke:auxiliary-tools": "node scripts/smoke-auxiliary-tools.js",
|
|
81
83
|
"smoke:auth": "node scripts/smoke-auth.js",
|
|
82
84
|
"smoke:canvas-artifacts": "node scripts/smoke-canvas-artifacts.js",
|
|
@@ -93,7 +95,7 @@
|
|
|
93
95
|
"real:deepseek": "node scripts/real-deepseek-capabilities.js",
|
|
94
96
|
"supervision:seed": "node scripts/seed-supervised-homework.js",
|
|
95
97
|
"storage:migrate": "node bin/aginti-cli.js storage migrate",
|
|
96
|
-
"test": "npm run check && npm run smoke:autoupdate && npm run smoke:web-api && npm run smoke:coding-tools && npm run smoke:auxiliary-tools && npm run smoke:auth && npm run smoke:canvas-artifacts && npm run smoke:capabilities && npm run smoke:model-roles && npm run smoke:platform && npm run smoke:skills && npm run smoke:skillmesh && npm run smoke:tmux-tools && npm run smoke:cli-chat && npm run smoke:inbox",
|
|
98
|
+
"test": "npm run check && npm run smoke:autoupdate && npm run smoke:web-api && npm run smoke:coding-tools && npm run smoke:aaps-adapter && npm run smoke:auxiliary-tools && npm run smoke:auth && npm run smoke:canvas-artifacts && npm run smoke:capabilities && npm run smoke:model-roles && npm run smoke:platform && npm run smoke:skills && npm run smoke:skillmesh && npm run smoke:tmux-tools && npm run smoke:cli-chat && npm run smoke:inbox",
|
|
97
99
|
"pack:dry-run": "npm pack --dry-run",
|
|
98
100
|
"smoke:capabilities": "node scripts/smoke-capabilities.js"
|
|
99
101
|
},
|