@lazyingart/agintiflow 0.20.115 → 0.20.117
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 +16 -4
- package/docs/large-codebase-engineering.md +18 -0
- package/docs/model-selection.md +2 -0
- package/docs/perception-and-web-research.md +48 -0
- package/docs/skills-and-tools.md +16 -1
- package/docs/student-committee-supervisor.md +6 -0
- package/i18n/README.ar.md +1 -1
- package/i18n/README.de.md +1 -1
- package/i18n/README.es.md +1 -1
- package/i18n/README.fr.md +1 -1
- package/i18n/README.ja.md +1 -1
- package/i18n/README.ko.md +1 -1
- package/i18n/README.ru.md +1 -1
- package/i18n/README.vi.md +1 -1
- package/i18n/README.zh-Hans.md +1 -1
- package/i18n/README.zh-Hant.md +1 -1
- package/package.json +6 -2
- package/references/dynamic-step-budget-and-scs-auto.md +241 -0
- package/references/model-routing-provider-design.md +9 -0
- package/references/multimodal-research-wrapper-design.md +455 -0
- package/references/student-committee-supervisor-mode.md +6 -0
- package/scripts/smoke-cli-chat.js +98 -1
- package/scripts/smoke-coding-tools.js +70 -1
- package/scripts/smoke-dynamic-step-budget.js +152 -0
- package/scripts/smoke-perception-research.js +128 -0
- package/skills/book-writing/SKILL.md +3 -0
- package/skills/latex-manuscript/SKILL.md +3 -0
- package/skills/novel-writing/SKILL.md +3 -0
- package/skills/writing-editing/SKILL.md +3 -1
- package/src/agent-runner.js +348 -10
- package/src/capabilities.js +1 -0
- package/src/cli.js +212 -25
- package/src/command-policy.js +2 -2
- package/src/config.js +25 -0
- package/src/engineering-guidance.js +60 -0
- package/src/guardrails.js +91 -0
- package/src/i18n.js +2 -1
- package/src/interactive-cli.js +197 -23
- package/src/model-client.js +191 -3
- package/src/model-routing.js +11 -1
- package/src/parallel-scouts.js +1 -1
- package/src/perception-tools.js +627 -0
- package/src/scs-controller.js +56 -0
- package/src/step-budget-controller.js +285 -0
- package/src/task-profiles.js +11 -11
- package/src/web-search.js +2 -1
- package/src/writing-specialist.js +287 -0
package/README.md
CHANGED
|
@@ -53,6 +53,8 @@ Most agent tools are either a chat box with hidden state or an expensive one-mod
|
|
|
53
53
|
| Inspectable beats mysterious | Plans, tool calls, file diffs, command output, canvas artifacts, and session events are saved and resumable. |
|
|
54
54
|
| Disciplined by default | `AGINTI.md` starts with a behavior contract: surface ambiguity, keep edits surgical, avoid speculative complexity, verify outcomes, and respect permission blockers. |
|
|
55
55
|
| Role-based models | Route, main, spare, wrapper, and auxiliary image roles are separate. You can use cheap route models, stronger main models, optional OpenAI/Qwen/Venice routes, and GRS AI/Venice image tools. |
|
|
56
|
+
| Writing without agent noise | `writing_specialist` drafts novels, books, scripts, essays, and paper prose in an isolated writing-only context, then the main agent handles files, formatting, citations, checks, and artifacts. |
|
|
57
|
+
| Visual and web evidence | `read_image` reads screenshots/figures with typed perception artifacts, `web_research` saves sourced research artifacts, and `research_wrapper` can ask Codex `gpt-5.4-mini` medium for a strict-JSON second opinion. |
|
|
56
58
|
| Scouts before big work | Parallel scouts can cheaply map architecture, tests, risks, symbols, and integration points before the main executor edits anything. |
|
|
57
59
|
| SCS for high-risk work | Student-Committee-Supervisor mode adds a typed gate: committee drafts, student approves/monitors, supervisor executes. Use `/scs` or `--scs auto`. |
|
|
58
60
|
| AAPS for large workflows | AAPS describes top-down agentic pipeline scripts; AgInTiFlow can act as the interactive backend that validates, compiles, and executes those workflows. |
|
|
@@ -132,12 +134,16 @@ aginti --language de
|
|
|
132
134
|
| Review current repo | `/review [focus]` |
|
|
133
135
|
| Toggle SCS quality gate | `/scs` |
|
|
134
136
|
| Use SCS only for complex work | `/scs auto` or `aginti --scs auto "task"` |
|
|
137
|
+
| Control dynamic step budgets | `--dynamic-steps auto\|on\|off` |
|
|
135
138
|
| Work with AAPS workflows | `aginti aaps status`, `/aaps validate` |
|
|
136
139
|
| Choose models | `/route`, `/model`, `/spare`, `/wrapper`, `/auxiliary model` |
|
|
137
140
|
| Switch permissions | `-s safe`, `-s normal`, `-s danger`, or `/safe`, `/normal`, `/danger` |
|
|
138
141
|
| Enable Venice shortcut | `/venice` |
|
|
139
142
|
| Generate images | `/auxiliary image`, then ask for an image |
|
|
140
|
-
|
|
|
143
|
+
| Read screenshots/images | `/image-read path/to/screenshot.png "what changed?"` |
|
|
144
|
+
| Research with sources | `/web-research latest Android Gradle plugin official docs` |
|
|
145
|
+
| Enable research wrapper | `/research-wrapper gpt-5.4-mini medium` |
|
|
146
|
+
| Resume current project | `aginti resume` (`1` is newest/latest; Space shows more) |
|
|
141
147
|
| Browse all sessions | `aginti resume --all-sessions` |
|
|
142
148
|
| Queue into a running session | `aginti queue <session-id> "extra instruction"` |
|
|
143
149
|
| Clean empty sessions | `aginti --remove-empty-sessions` |
|
|
@@ -145,7 +151,9 @@ aginti --language de
|
|
|
145
151
|
| Sync reviewed skills | `aginti skillmesh status`, `aginti skillmesh sync` |
|
|
146
152
|
| Update CLI | `aginti update` |
|
|
147
153
|
|
|
148
|
-
Interactive chat supports slash completion, Up/Down selectors, multiline input with `Ctrl+J`, full resume history, Markdown rendering, visible run status, ASAP pipe messages during a run, and clean interruption/resume with `Ctrl+C`. Installed interactive commands also check npm for a newer AgInTiFlow release and show an update/skip selector; source checkouts and non-TTY automation are left alone.
|
|
154
|
+
Interactive chat supports slash completion, Up/Down selectors, a newest-first resume selector with direct Space pagination, multiline input with `Ctrl+J`, full resume history, Markdown rendering, visible run status, ASAP pipe messages during a run, and clean interruption/resume with `Ctrl+C`. Installed interactive commands also check npm for a newer AgInTiFlow release and show an update/skip selector; source checkouts and non-TTY automation are left alone.
|
|
155
|
+
|
|
156
|
+
AgInTiFlow treats `maxSteps` as an initial budget, not a silent infinite loop. By default, real-provider runs can receive a bounded extension only near the limit, only when recent tool/file/artifact evidence shows concrete progress, and never to bypass permission, package, host, or secret guardrails. Use `--dynamic-steps off` for a strict hard stop, or `--dynamic-steps on` to test the budget gate in mock/offline runs.
|
|
149
157
|
|
|
150
158
|
For a fully controlled one-shot resume, use an explicit session id and choose the task profile deliberately. Use `auto` for normal routing or `android` when the work is Android/emulator-specific:
|
|
151
159
|
|
|
@@ -202,12 +210,14 @@ The website keeps the visual walkthrough in a carousel so this README can stay f
|
|
|
202
210
|
| --- | --- |
|
|
203
211
|
| CLI agent workspace | Persistent terminal chat with project cwd, session resume, visible model/tool state, and clean command hints. |
|
|
204
212
|
| Local web workspace | Browser UI for sessions, runtime logs, artifacts, model settings, project controls, canvas previews, and sandbox status. |
|
|
205
|
-
| File tools | `inspect_project`, `list_files`, `read_file`, `search_files`, `write_file`, `apply_patch`, `open_workspace_file`, and `
|
|
213
|
+
| File tools | `inspect_project`, `list_files`, `read_file`, `search_files`, `write_file`, `apply_patch`, `open_workspace_file`, `preview_workspace`, and `read_image`. |
|
|
206
214
|
| Shell tools | Guarded host or Docker workspace shell execution with package-install policy and command safety checks. |
|
|
207
215
|
| Browser tools | Playwright browser actions with lazy startup and optional domain allowlists. |
|
|
208
216
|
| Model routing | DeepSeek fast/pro defaults, manual OpenAI/Qwen/Venice/mock routes, spare models, wrapper models, and auxiliary image models. |
|
|
217
|
+
| Writing specialist | A dedicated writing-only LLM call for prose, chapters, scripts, books, essays, research-paper sections, and revisions, with formatter handoff notes for Markdown/LaTeX/Final Draft. |
|
|
209
218
|
| Patch workflow | Codex-style patch envelopes, unified diffs, exact replacements, hashes, compact diffs, and path guardrails. |
|
|
210
219
|
| Parallel scouts | Optional scout calls for architecture, implementation, review, tests, git flow, research, symbol tracing, and dependency risk. |
|
|
220
|
+
| Image reading and web research | `read_image` uses OpenAI vision for workspace images when `OPENAI_API_KEY` is configured. `web_research` preserves source lists, and optional OpenAI hosted web search or `research_wrapper` can be used for higher-confidence research. |
|
|
211
221
|
| SCS mode | Optional Student-Committee-Supervisor quality gate for complicated or risky tasks. |
|
|
212
222
|
| AAPS adapter | Optional `@lazyingart/aaps` integration for `.aaps` workflow init, validate, parse, compile, dry-run, and run commands. |
|
|
213
223
|
| Image generation | Optional GRS AI and Venice image tools with saved manifests and canvas artifact previews. |
|
|
@@ -224,7 +234,7 @@ AgInTiFlow does not treat "the model" as one global setting. It has roles:
|
|
|
224
234
|
| Route | `deepseek/deepseek-v4-flash` | Cheap planner, triage, short tasks, routing decisions. |
|
|
225
235
|
| Main | `deepseek/deepseek-v4-pro` | Complex coding, debugging, writing, research, long tasks. |
|
|
226
236
|
| Spare | `openai/gpt-5.4` medium | Optional fallback or cross-check route. |
|
|
227
|
-
| Wrapper | `codex/gpt-5.5` medium | Optional external coding-agent advisor. |
|
|
237
|
+
| Wrapper | `codex/gpt-5.5` medium | Optional external coding-agent advisor; `research_wrapper` defaults to `gpt-5.4-mini` medium for image/web second opinions. |
|
|
228
238
|
| Auxiliary | `grsai/nano-banana-2` | Image generation and other non-text helper tools. |
|
|
229
239
|
|
|
230
240
|
Useful selectors:
|
|
@@ -339,6 +349,7 @@ More detail:
|
|
|
339
349
|
|
|
340
350
|
- [docs/model-selection.md](docs/model-selection.md)
|
|
341
351
|
- [docs/auxiliary-image-generation.md](docs/auxiliary-image-generation.md)
|
|
352
|
+
- [docs/perception-and-web-research.md](docs/perception-and-web-research.md)
|
|
342
353
|
- [docs/cli-i18n.md](docs/cli-i18n.md)
|
|
343
354
|
- [docs/skillmesh.md](docs/skillmesh.md)
|
|
344
355
|
|
|
@@ -352,6 +363,7 @@ More detail:
|
|
|
352
363
|
| Large-codebase engineering | [docs/large-codebase-engineering.md](docs/large-codebase-engineering.md) |
|
|
353
364
|
| Runtime modes and autonomy | [docs/runtime-modes-and-autonomy.md](docs/runtime-modes-and-autonomy.md) |
|
|
354
365
|
| Skills and tools | [docs/skills-and-tools.md](docs/skills-and-tools.md) |
|
|
366
|
+
| Image reading and web research | [docs/perception-and-web-research.md](docs/perception-and-web-research.md) |
|
|
355
367
|
| Skill Mesh | [docs/skillmesh.md](docs/skillmesh.md) |
|
|
356
368
|
| Housekeeping logs | [docs/housekeeping.md](docs/housekeeping.md) |
|
|
357
369
|
| npm publishing | [docs/npm-publishing.md](docs/npm-publishing.md) |
|
|
@@ -52,6 +52,24 @@ Mature coding agents avoid keeping an entire growing project in the prompt. AgIn
|
|
|
52
52
|
|
|
53
53
|
This keeps the main executor sober: it knows where it is in the repo, but it still re-reads exact files before editing and validates with commands rather than trusting stale memory.
|
|
54
54
|
|
|
55
|
+
## Surgical Context Pack
|
|
56
|
+
|
|
57
|
+
For complex engineering tasks where parallel scouts are disabled or unavailable, AgInTiFlow now prepares a lightweight surgical context pack before planning/execution:
|
|
58
|
+
|
|
59
|
+
- refreshes `.aginti/codebase-map.json` with `inspect_project`
|
|
60
|
+
- saves a session artifact named `surgical-context-pack.json`
|
|
61
|
+
- injects a compact repo overview into the model history
|
|
62
|
+
- includes an explicit surgical editing contract and evidence-card template
|
|
63
|
+
- carries the context handle in runtime snapshots so later steps can rehydrate exact files by path/search
|
|
64
|
+
|
|
65
|
+
This is intentionally not a whole-repo dump. The context pack is an overview handle. The executor must still search and read exact files before patching, state the active boundary, patch the smallest coherent surface, inspect the diff, and run focused checks.
|
|
66
|
+
|
|
67
|
+
The effective loop is:
|
|
68
|
+
|
|
69
|
+
```text
|
|
70
|
+
overview map -> active evidence card -> exact file windows -> surgical patch -> focused check -> diff review -> broader check if needed
|
|
71
|
+
```
|
|
72
|
+
|
|
55
73
|
## Git Discipline
|
|
56
74
|
|
|
57
75
|
When asked to commit, pull, merge, or push, the agent should run `git status --short` and `git diff --stat` first. It should commit only intended changes, use `git fetch` and `git pull --ff-only` when remote state matters, and stop for the user on conflicts, divergence, unrelated dirty files, or any merge/rebase/reset choice. Web and CLI logs fold long command output but keep full command summaries visible.
|
package/docs/model-selection.md
CHANGED
|
@@ -14,6 +14,8 @@ AgInTiFlow treats model choice as a role-based control plane. A provider supplie
|
|
|
14
14
|
|
|
15
15
|
Smart routing still works as before: normal work goes to the route model, and complex work goes to the main model. Manual provider/model selection remains available for one-off runs.
|
|
16
16
|
|
|
17
|
+
Long writing tasks use an additional tool boundary: `writing_specialist`. The main model still plans the run, manages files, formats Markdown/LaTeX/Final Draft output, compiles/checks artifacts, and finishes. The specialist gets only the writing brief, canon, style guide, prior draft, target, audience, constraints, and format intent, then returns prose plus a formatter handoff. This avoids polluting fiction/manuscript drafting with shell, browser, safety, and agent-runtime context. Set `AGINTI_WRITING_PROVIDER` or `AGINTI_WRITING_MODEL` to route this isolated writer separately from the main agent.
|
|
18
|
+
|
|
17
19
|
## CLI Commands
|
|
18
20
|
|
|
19
21
|
```bash
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Image Reading And Web Research
|
|
2
|
+
|
|
3
|
+
AgInTiFlow separates visual understanding, web search, and wrapper advice so each output has a clear evidence trail.
|
|
4
|
+
|
|
5
|
+
## Tools
|
|
6
|
+
|
|
7
|
+
| Tool | Purpose | Evidence |
|
|
8
|
+
| --- | --- | --- |
|
|
9
|
+
| `read_image` | Read workspace screenshots, plots, scanned text, diagrams, or allowed remote image URLs. | Saves `artifacts/perception/*-read-image.json` in the central session store with image hashes, MIME type, size, model, prompt, and typed result. |
|
|
10
|
+
| `web_search` | Cheap raw search snippets. | Returns compact titles, URLs, snippets, and fallback search URL. |
|
|
11
|
+
| `web_research` | Sourced research unit for current or external information. | Saves `artifacts/research/*-web-research.json` with query, mode, source list, and answer. |
|
|
12
|
+
| `research_wrapper` | Read-only strict-JSON second opinion from the selected wrapper. | Saves `artifacts/wrappers/*-research-wrapper.json` with wrapper, model, reasoning, metadata, result, and raw fallback output. |
|
|
13
|
+
|
|
14
|
+
## Defaults
|
|
15
|
+
|
|
16
|
+
- `read_image` uses OpenAI Responses vision when `OPENAI_API_KEY` is configured.
|
|
17
|
+
- `read_image` defaults to `AGINTI_PERCEPTION_MODEL=gpt-5.4-mini` and `AGINTI_PERCEPTION_REASONING=medium`, then falls back through `AGINTI_PERCEPTION_FALLBACK_MODELS` or `gpt-4o-mini` if the account lacks access to the preferred model.
|
|
18
|
+
- `web_research` defaults to lightweight snippet mode; use `mode=openai` only when hosted OpenAI web search is needed and configured.
|
|
19
|
+
- `web_research mode=openai` defaults to `AGINTI_WEB_RESEARCH_MODEL=gpt-5.4-mini` / `medium`, then falls back through `AGINTI_WEB_RESEARCH_FALLBACK_MODELS` or `gpt-4o-mini`.
|
|
20
|
+
- `research_wrapper` defaults to `AGINTI_RESEARCH_WRAPPER_MODEL=gpt-5.4-mini` and `AGINTI_RESEARCH_WRAPPER_REASONING=medium`.
|
|
21
|
+
- Wrapper advice is not evidence by itself. Verify file paths, sources, hashes, and artifacts before claiming completion.
|
|
22
|
+
|
|
23
|
+
## Interactive Commands
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
/image-read artifacts/screenshots/app.png what looks wrong?
|
|
27
|
+
/web-research latest Android Gradle plugin official docs
|
|
28
|
+
/research-wrapper gpt-5.4-mini medium
|
|
29
|
+
/research-wrapper off
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Agent Usage
|
|
33
|
+
|
|
34
|
+
Use `read_image` when pixels matter. Do not guess from filenames or surrounding text if the user asks about a screenshot, chart, microscopy image, or scanned page.
|
|
35
|
+
|
|
36
|
+
Use `web_research` when freshness, sources, package docs, standards, or current external information matter. Use `domains` to restrict research to official or primary sources.
|
|
37
|
+
|
|
38
|
+
Use `research_wrapper` when a second model should cross-check image/web/research conclusions. The wrapper receives a strict JSON contract and should preserve uncertainty when it cannot directly inspect a source.
|
|
39
|
+
|
|
40
|
+
## Safety
|
|
41
|
+
|
|
42
|
+
- Local image paths must stay inside the workspace unless the run is explicitly trusted host mode.
|
|
43
|
+
- `.env`, credential files, private keys, and secret-looking paths are blocked.
|
|
44
|
+
- Remote images require web access and respect domain allowlists.
|
|
45
|
+
- Images are capped at 10 MB and four inputs per call.
|
|
46
|
+
- Artifacts preserve hashes and metadata but never store API keys.
|
|
47
|
+
|
|
48
|
+
See the design note in [references/multimodal-research-wrapper-design.md](../references/multimodal-research-wrapper-design.md).
|
package/docs/skills-and-tools.md
CHANGED
|
@@ -6,7 +6,7 @@ AgInTiFlow separates **skills** from **tools** so the agent can stay general whi
|
|
|
6
6
|
|
|
7
7
|
**Skill**: Markdown guidance stored at `skills/<id>/SKILL.md`. A skill describes when to use a workflow, what to inspect first, which outputs matter, and which tools are usually useful. Skills are prompt context, not executable code.
|
|
8
8
|
|
|
9
|
-
**Tool**: A deterministic callable capability exposed to the model, such as `inspect_project`, `read_file`, `apply_patch`, `run_command`, `web_search`, `generate_image`, `preview_workspace`, `tmux_capture_pane`, or `send_to_canvas`.
|
|
9
|
+
**Tool**: A deterministic or bounded callable capability exposed to the model, such as `inspect_project`, `read_file`, `apply_patch`, `run_command`, `web_search`, `web_research`, `read_image`, `writing_specialist`, `research_wrapper`, `generate_image`, `preview_workspace`, `tmux_capture_pane`, or `send_to_canvas`.
|
|
10
10
|
|
|
11
11
|
**Profile**: A broad runtime mode such as `auto`, `code`, `latex`, or `maintenance`. Profiles tune routing, max steps, and general behavior. Skills can combine across profiles.
|
|
12
12
|
|
|
@@ -56,3 +56,18 @@ Selected skills are injected into the plan and execution prompts. The LLM still
|
|
|
56
56
|
Create `skills/<id>/SKILL.md` with valid YAML frontmatter and a short Markdown body. Keep descriptions strings, not YAML arrays, because loaders expect `id`, `label`, and `description` as scalar strings.
|
|
57
57
|
|
|
58
58
|
Good skills are small, actionable, and tool-aware. They should say what to inspect, what to create or verify, and what to avoid. They should not hard-code one exact task.
|
|
59
|
+
|
|
60
|
+
For visual or current-information tasks, prefer:
|
|
61
|
+
|
|
62
|
+
- `read_image` for screenshots, plots, diagrams, microscopy images, scanned text, and UI debugging.
|
|
63
|
+
- `web_research` for sourced research artifacts with source URLs and optional domain restrictions.
|
|
64
|
+
- `research_wrapper` for strict-JSON second opinions from the selected read-only wrapper, usually Codex `gpt-5.4-mini` medium.
|
|
65
|
+
|
|
66
|
+
See [Image Reading And Web Research](perception-and-web-research.md).
|
|
67
|
+
|
|
68
|
+
For substantial writing tasks, prefer:
|
|
69
|
+
|
|
70
|
+
- `writing_specialist` for isolated prose, scene, chapter, paper-section, script, book, essay, and revision drafting.
|
|
71
|
+
- The main agent for all non-writing work around that draft: file names, workspace edits, citations, Markdown/LaTeX/Final Draft formatting, PDF compilation, canvas publishing, and verification.
|
|
72
|
+
|
|
73
|
+
The writer receives only writing context: brief, canon, style guide, prior draft, target, audience, constraints, length, and downstream format intent. It should not receive shell/file/browser policy or agent-runtime details.
|
|
@@ -66,6 +66,12 @@ The current implementation is deliberately bounded:
|
|
|
66
66
|
|
|
67
67
|
Auto mode stays off for simple turns.
|
|
68
68
|
|
|
69
|
+
## Dynamic Step Budgets
|
|
70
|
+
|
|
71
|
+
AgInTiFlow treats `maxSteps` as the initial run budget. Near the boundary, the runtime may grant a bounded extension only when recent tool/file/artifact evidence shows concrete progress and no permission blocker is being bypassed.
|
|
72
|
+
|
|
73
|
+
Normal mode uses a lightweight deterministic monitor. `/scs on` and activated `/scs auto` runs add the SCS student budget gate, which can emit `extend_steps`, `deny_extension`, or `rethink_plan`. More steps never escalate permissions, package policy, host access, destructive actions, or secret access. Use `--dynamic-steps off` when a strict hard stop is required. The detailed design is tracked in [references/dynamic-step-budget-and-scs-auto.md](../references/dynamic-step-budget-and-scs-auto.md).
|
|
74
|
+
|
|
69
75
|
## When To Use It
|
|
70
76
|
|
|
71
77
|
Use SCS for:
|
package/i18n/README.ar.md
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
**وكلاء منخفضو التكلفة وواعون بالمشروع للمشكلات الواقعية.**
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
AgInTiFlow هو مساحة عمل project-aware agent للبحث والتطوير hybrid wet-dry، والذكاء المدرك للعتاد، وأتمتة البرمجيات، وسير العمل الصناعي. من تخطيط المختبر إلى تحليل البيانات، ومن التحكم بالعتاد إلى سكربتات الإنتاج، ومن microscopy والطائرات بدون طيار والروبوتات إلى التقارير، يساعد الوكلاء على العمل عبر API أو Web أو CLI مع إشراف SCS وسير عمل AAPS والتنفيذ المحمي والأدلة الدائمة.
|
|
24
24
|
|
|
25
25
|
باختصار: شغّل `aginti` داخل مشروع، أعطه مهمة، افحص خطته، شاهد كل استدعاء أداة، استأنف لاحقاً، واحتفظ بالمخرجات داخل مساحة العمل.
|
|
26
26
|
|
package/i18n/README.de.md
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
**Günstige, projektbewusste Agenten für reale Probleme.**
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
AgInTiFlow ist ein project-aware Agent-Workspace für hybride Wet-Dry-R&D, hardware-aware Intelligence, Software-Automatisierung und industrielle Workflows. Von Laborplanung zu Datenanalyse, von Hardwaresteuerung zu Produktionsskripten und von Mikroskopie, Drohnen und Robotern zu Berichten hilft es Agenten, über API, Web oder CLI mit SCS-Supervision, AAPS-Workflows, geschützter Ausführung und dauerhafter Evidenz zu arbeiten.
|
|
24
24
|
|
|
25
25
|
Kurz gesagt: Führe `aginti` in einem Projekt aus, gib eine Aufgabe vor, prüfe den Plan, sieh jeden Tool-Call, setze später fort und behalte die Ergebnisse im Workspace.
|
|
26
26
|
|
package/i18n/README.es.md
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
**Agentes de bajo costo y conscientes del proyecto para problemas reales.**
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
AgInTiFlow es un workspace de agentes project-aware para I+D híbrida wet-dry, inteligencia hardware-aware, automatización de software y workflows industriales. Desde planificación de laboratorio hasta análisis de datos, desde control de hardware hasta scripts de producción, y desde microscopía, drones y robots hasta informes, ayuda a los agentes a trabajar mediante API, Web o CLI con supervisión SCS, workflows AAPS, ejecución protegida y evidencia duradera.
|
|
24
24
|
|
|
25
25
|
La idea breve: ejecuta `aginti` dentro de un proyecto, dale una tarea, revisa el plan, ve cada llamada de herramienta, reanuda más tarde y conserva las salidas dentro de tu workspace.
|
|
26
26
|
|
package/i18n/README.fr.md
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
**Des agents à faible coût, conscients du projet, pour des problèmes réels.**
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
AgInTiFlow est un espace de travail d'agents project-aware pour la R&D hybride wet-dry, l'intelligence hardware-aware, l'automatisation logicielle et les workflows industriels. De la planification de laboratoire à l'analyse de données, du contrôle matériel aux scripts de production, et de la microscopie, des drones et des robots aux rapports, il aide les agents à travailler via API, Web ou CLI avec supervision SCS, workflows AAPS, exécution protégée et preuves durables.
|
|
24
24
|
|
|
25
25
|
En bref : lancez `aginti` dans un projet, donnez-lui une tâche, inspectez son plan, voyez chaque appel d’outil, reprenez plus tard et gardez les sorties dans votre workspace.
|
|
26
26
|
|
package/i18n/README.ja.md
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
**実際の問題に向けた、低コストでプロジェクトを理解するエージェント。**
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
AgInTiFlow は、ハイブリッド wet-dry R&D、hardware-aware intelligence、ソフトウェア自動化、産業ワークフローのための project-aware agent workspace です。実験計画からデータ解析、ハードウェア制御から生産スクリプト、顕微鏡画像・ドローン・ロボットからレポートまで、SCS 監督、AAPS ワークフロー、保護された実行、永続的な証拠を備えて、API、Web、CLI からエージェントが作業できるようにします。
|
|
24
24
|
|
|
25
25
|
要するに、プロジェクト内で `aginti` を実行し、タスクを渡し、計画とツール呼び出しを確認し、後で再開し、成果物をワークスペースに残せます。
|
|
26
26
|
|
package/i18n/README.ko.md
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
**실제 문제를 위한 저비용, 프로젝트 인식 에이전트.**
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
AgInTiFlow는 hybrid wet-dry R&D, hardware-aware intelligence, software automation, industrial workflow를 위한 project-aware agent workspace입니다. 실험 계획부터 데이터 분석까지, 하드웨어 제어부터 production script까지, microscopy, drone, robot부터 report까지, SCS supervision, AAPS workflow, guarded execution, durable evidence와 함께 API, Web, CLI로 에이전트가 작업하게 합니다.
|
|
24
24
|
|
|
25
25
|
짧게 말하면, 프로젝트 안에서 `aginti`를 실행하고 작업을 맡긴 뒤 계획과 모든 도구 호출을 확인하며, 나중에 다시 이어서 실행하고 결과물을 작업공간에 남길 수 있습니다.
|
|
26
26
|
|
package/i18n/README.ru.md
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
**Недорогие, проектно-ориентированные агенты для реальных задач.**
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
AgInTiFlow — project-aware рабочее пространство для агентов, предназначенное для hybrid wet-dry R&D, hardware-aware intelligence, автоматизации software и промышленных workflow. От планирования лабораторных работ до анализа данных, от управления hardware до production scripts, от microscopy, drones и robots до отчетов, оно помогает агентам работать через API, Web или CLI с SCS supervision, AAPS workflows, guarded execution и долговечной доказательной базой.
|
|
24
24
|
|
|
25
25
|
Коротко: запустите `aginti` внутри проекта, дайте задачу, проверьте план, увидьте каждый tool call, возобновите работу позже и сохраняйте результаты в рабочей папке.
|
|
26
26
|
|
package/i18n/README.vi.md
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
**Agent chi phí thấp, hiểu dự án, cho các vấn đề thực tế.**
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
AgInTiFlow là một project-aware agent workspace cho hybrid wet-dry R&D, hardware-aware intelligence, software automation và industrial workflows. Từ lập kế hoạch thí nghiệm đến phân tích dữ liệu, từ điều khiển phần cứng đến production scripts, và từ microscopy, drones, robots đến reports, nó giúp agent làm việc qua API, Web hoặc CLI với SCS supervision, AAPS workflows, guarded execution và durable evidence.
|
|
24
24
|
|
|
25
25
|
Nói ngắn gọn: chạy `aginti` trong một dự án, giao nhiệm vụ, xem kế hoạch, kiểm tra từng tool call, tiếp tục lại sau, và giữ kết quả trong workspace.
|
|
26
26
|
|
package/i18n/README.zh-Hans.md
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
**面向真实问题的低成本、项目感知智能体。**
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
AgInTiFlow 是一个 project-aware agent 工作空间,面向混合干湿研发、硬件感知智能、软件自动化和工业工作流。从实验规划到数据分析,从硬件控制到生产脚本,从显微成像、无人机和机器人到报告,它帮助智能体通过 API、Web 或 CLI 工作,并配合 SCS 监督、AAPS 工作流、受保护执行和持久证据。
|
|
24
24
|
|
|
25
25
|
简短理解:在项目目录里运行 `aginti`,交给它一个任务,检查它的计划,看到每一次工具调用,之后还能恢复会话,并把输出保留在你的工作区里。
|
|
26
26
|
|
package/i18n/README.zh-Hant.md
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
**面向真實問題的低成本、專案感知智能體。**
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
AgInTiFlow 是一個 project-aware agent 工作空間,面向混合乾濕研發、硬體感知智能、軟體自動化與工業工作流。從實驗規劃到資料分析,從硬體控制到生產腳本,從顯微成像、無人機和機器人到報告,它幫助智能體透過 API、Web 或 CLI 工作,並配合 SCS 監督、AAPS 工作流、受保護執行與持久證據。
|
|
24
24
|
|
|
25
25
|
簡短理解:在專案目錄執行 `aginti`,交給它一個任務,檢查它的計畫,看見每一次工具呼叫,之後還能恢復會話,並把輸出保留在你的工作區裡。
|
|
26
26
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lazyingart/agintiflow",
|
|
3
|
-
"version": "0.20.
|
|
3
|
+
"version": "0.20.117",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "AgInTiFlow is a project-aware agent workspace for hybrid wet-dry R&D, hardware-aware intelligence, software automation, and industrial workflows.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -56,11 +56,13 @@
|
|
|
56
56
|
"scripts/smoke-canvas-artifacts.js",
|
|
57
57
|
"scripts/smoke-cli-chat.js",
|
|
58
58
|
"scripts/smoke-coding-tools.js",
|
|
59
|
+
"scripts/smoke-dynamic-step-budget.js",
|
|
59
60
|
"scripts/smoke-capabilities.js",
|
|
60
61
|
"scripts/smoke-auto-update.js",
|
|
61
62
|
"scripts/smoke-inbox.js",
|
|
62
63
|
"scripts/smoke-model-roles.js",
|
|
63
64
|
"scripts/smoke-platform.js",
|
|
65
|
+
"scripts/smoke-perception-research.js",
|
|
64
66
|
"scripts/smoke-permission-modes.js",
|
|
65
67
|
"scripts/smoke-skills.js",
|
|
66
68
|
"scripts/smoke-skillmesh.js",
|
|
@@ -82,6 +84,7 @@
|
|
|
82
84
|
"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",
|
|
83
85
|
"setup:toolchain-docker": "scripts/setup-agent-toolchain-docker.sh",
|
|
84
86
|
"smoke:coding-tools": "node scripts/smoke-coding-tools.js",
|
|
87
|
+
"smoke:dynamic-step-budget": "node scripts/smoke-dynamic-step-budget.js",
|
|
85
88
|
"smoke:aaps-adapter": "node scripts/smoke-aaps-adapter.js",
|
|
86
89
|
"smoke:auxiliary-tools": "node scripts/smoke-auxiliary-tools.js",
|
|
87
90
|
"smoke:auth": "node scripts/smoke-auth.js",
|
|
@@ -93,6 +96,7 @@
|
|
|
93
96
|
"smoke:inbox": "node scripts/smoke-inbox.js",
|
|
94
97
|
"smoke:model-roles": "node scripts/smoke-model-roles.js",
|
|
95
98
|
"smoke:platform": "node scripts/smoke-platform.js",
|
|
99
|
+
"smoke:perception-research": "node scripts/smoke-perception-research.js",
|
|
96
100
|
"smoke:permission-modes": "node scripts/smoke-permission-modes.js",
|
|
97
101
|
"smoke:tmux-tools": "node scripts/smoke-tmux-tools.js",
|
|
98
102
|
"smoke:web-api": "node scripts/smoke-web-api.js",
|
|
@@ -100,7 +104,7 @@
|
|
|
100
104
|
"real:deepseek": "node scripts/real-deepseek-capabilities.js",
|
|
101
105
|
"supervision:seed": "node scripts/seed-supervised-homework.js",
|
|
102
106
|
"storage:migrate": "node bin/aginti-cli.js storage migrate",
|
|
103
|
-
"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:permission-modes && npm run smoke:skills && npm run smoke:skillmesh && npm run smoke:tmux-tools && npm run smoke:cli-chat && npm run smoke:inbox",
|
|
107
|
+
"test": "npm run check && npm run smoke:autoupdate && npm run smoke:web-api && npm run smoke:coding-tools && npm run smoke:dynamic-step-budget && npm run smoke:aaps-adapter && npm run smoke:auxiliary-tools && npm run smoke:perception-research && 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:permission-modes && npm run smoke:skills && npm run smoke:skillmesh && npm run smoke:tmux-tools && npm run smoke:cli-chat && npm run smoke:inbox",
|
|
104
108
|
"pack:dry-run": "npm pack --dry-run",
|
|
105
109
|
"smoke:capabilities": "node scripts/smoke-capabilities.js"
|
|
106
110
|
},
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
# Dynamic Step Budget And SCS Auto Routing
|
|
2
|
+
|
|
3
|
+
This note documents the implemented design for dynamic `maxSteps` extension and SCS auto routing.
|
|
4
|
+
|
|
5
|
+
## Current State
|
|
6
|
+
|
|
7
|
+
AgInTiFlow treats `maxSteps` as the initial run budget for real-provider work. The runtime can extend that budget near the boundary when recent evidence shows concrete progress.
|
|
8
|
+
|
|
9
|
+
Relevant paths:
|
|
10
|
+
|
|
11
|
+
- `src/cli.js`: parses `--max-steps`, `--dynamic-steps`, and budget tuning flags.
|
|
12
|
+
- `src/config.js`: resolves `config.maxSteps`, `config.dynamicSteps`, and extension caps.
|
|
13
|
+
- `src/engineering-guidance.js`: recommends profile-aware initial step budgets.
|
|
14
|
+
- `src/agent-runner.js`: uses a mutable budget loop and emits `budget.*` events.
|
|
15
|
+
- `src/step-budget-controller.js`: owns deterministic progress/blocker checks, caps, serialization, and extension application.
|
|
16
|
+
- `src/scs-controller.js`: supports `off`, `on`, `auto`, and the SCS student step-budget gate.
|
|
17
|
+
|
|
18
|
+
SCS auto is supported:
|
|
19
|
+
|
|
20
|
+
- CLI: `--scs auto`.
|
|
21
|
+
- Interactive: `/scs auto`.
|
|
22
|
+
- Config: `enableScs: "auto"`.
|
|
23
|
+
- Router policy: `shouldActivateScs("auto", { goal, taskProfile, complexityScore })`.
|
|
24
|
+
- Active model policy: when SCS is active, committee/student/supervisor use the main model.
|
|
25
|
+
|
|
26
|
+
## Goal
|
|
27
|
+
|
|
28
|
+
Avoid both failure modes:
|
|
29
|
+
|
|
30
|
+
- Stopping at `maxSteps` while the agent is making good, verifiable progress.
|
|
31
|
+
- Letting a stuck or drifting agent run forever.
|
|
32
|
+
|
|
33
|
+
The design is not unlimited steps. It is a bounded step-extension application reviewed by a monitor.
|
|
34
|
+
|
|
35
|
+
## Implemented Concept
|
|
36
|
+
|
|
37
|
+
At a budget boundary, the runtime asks:
|
|
38
|
+
|
|
39
|
+
```text
|
|
40
|
+
Should this run receive more steps?
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
The monitor can approve an extension only when:
|
|
44
|
+
|
|
45
|
+
- the run is near the current budget limit;
|
|
46
|
+
- recent steps show concrete tool, file, or artifact progress;
|
|
47
|
+
- the requested extra steps fit under a hard cap;
|
|
48
|
+
- no repeated failure loop is active;
|
|
49
|
+
- no permission, install, secret, host, or destructive-action blocker is being bypassed.
|
|
50
|
+
|
|
51
|
+
## Modes
|
|
52
|
+
|
|
53
|
+
### Normal Mode
|
|
54
|
+
|
|
55
|
+
Normal mode uses a deterministic runtime budget gate.
|
|
56
|
+
|
|
57
|
+
It is deliberately cheap:
|
|
58
|
+
|
|
59
|
+
- no extra model call;
|
|
60
|
+
- no free-form debate;
|
|
61
|
+
- one extension by default;
|
|
62
|
+
- extension size is normally `+6` to `+12`;
|
|
63
|
+
- hard cap is normally about `2x` the initial budget.
|
|
64
|
+
|
|
65
|
+
### SCS On Mode
|
|
66
|
+
|
|
67
|
+
When `/scs on` is active, the deterministic runtime gate first checks that progress exists and no blocker loop is active. Then the SCS student budget gate can emit:
|
|
68
|
+
|
|
69
|
+
```json
|
|
70
|
+
{
|
|
71
|
+
"role": "student",
|
|
72
|
+
"decision": "extend_steps | deny_extension | rethink_plan",
|
|
73
|
+
"confidence": 0.82,
|
|
74
|
+
"extra_steps": 8,
|
|
75
|
+
"evidence": ["file changed", "artifact exists"],
|
|
76
|
+
"reason": "Progress is concrete; one focused verification pass remains.",
|
|
77
|
+
"next_required_action": "supervisor_continue"
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
SCS mode allows a slightly larger budget because the student gate is stricter:
|
|
82
|
+
|
|
83
|
+
- up to two extensions by default;
|
|
84
|
+
- extension size is normally `+8` to `+16`;
|
|
85
|
+
- hard cap is normally about `2.5x` the initial budget.
|
|
86
|
+
|
|
87
|
+
### SCS Auto Mode
|
|
88
|
+
|
|
89
|
+
`/scs auto` means the router may activate SCS for a specific turn. Signals include:
|
|
90
|
+
|
|
91
|
+
- high smart-routing complexity score;
|
|
92
|
+
- high-friction profiles such as Android, app, code, large-codebase, GitHub, maintenance, QA, research, review, security, supervision, or website;
|
|
93
|
+
- prompt language such as debug, failing, migration, emulator, deploy, PDF, refactor, monitor, or long-running.
|
|
94
|
+
|
|
95
|
+
If SCS auto activates, dynamic step extension uses the SCS student gate. If SCS auto does not activate, dynamic step extension uses the normal deterministic gate.
|
|
96
|
+
|
|
97
|
+
## Extension Evidence
|
|
98
|
+
|
|
99
|
+
The deterministic gate reads compact evidence only:
|
|
100
|
+
|
|
101
|
+
- user goal and current plan;
|
|
102
|
+
- initial and current step budgets;
|
|
103
|
+
- recent tool results;
|
|
104
|
+
- recent `tool.completed`, `file.changed`, and artifact events;
|
|
105
|
+
- repeated blocked/failed tool evidence;
|
|
106
|
+
- persisted budget state.
|
|
107
|
+
|
|
108
|
+
It does not include secrets. Tool and event payloads are redacted before persistence.
|
|
109
|
+
|
|
110
|
+
## Decision Criteria
|
|
111
|
+
|
|
112
|
+
Approve extension when:
|
|
113
|
+
|
|
114
|
+
- files or artifacts were created and need verification;
|
|
115
|
+
- a command/check produced useful output;
|
|
116
|
+
- a patch or workflow is mid-flight and the next step is bounded;
|
|
117
|
+
- the task is close to completion and one focused pass remains.
|
|
118
|
+
|
|
119
|
+
Deny extension when:
|
|
120
|
+
|
|
121
|
+
- the same command or tool failed repeatedly;
|
|
122
|
+
- a permission blocker requires user approval;
|
|
123
|
+
- host install, destructive action, publish, or outside-workspace access is blocked;
|
|
124
|
+
- no recent concrete progress exists;
|
|
125
|
+
- the hard cap or extension count is reached.
|
|
126
|
+
|
|
127
|
+
Request rethink in SCS when:
|
|
128
|
+
|
|
129
|
+
- progress exists but the current plan is stale;
|
|
130
|
+
- a failure class changed;
|
|
131
|
+
- the next phase must be smaller or safer.
|
|
132
|
+
|
|
133
|
+
## Runtime Events
|
|
134
|
+
|
|
135
|
+
Implemented compact events:
|
|
136
|
+
|
|
137
|
+
- `budget.initialized`
|
|
138
|
+
- `budget.near_limit`
|
|
139
|
+
- `budget.extension_requested`
|
|
140
|
+
- `budget.extension_approved`
|
|
141
|
+
- `budget.extension_denied`
|
|
142
|
+
- `scs.student.extend_steps`
|
|
143
|
+
- `scs.student.deny_extension`
|
|
144
|
+
- `scs.student.rethink_plan`
|
|
145
|
+
|
|
146
|
+
Typical event payload:
|
|
147
|
+
|
|
148
|
+
```json
|
|
149
|
+
{
|
|
150
|
+
"initialMaxSteps": 24,
|
|
151
|
+
"currentMaxSteps": 32,
|
|
152
|
+
"stepsCompleted": 23,
|
|
153
|
+
"extraSteps": 8,
|
|
154
|
+
"approvedExtraSteps": 8,
|
|
155
|
+
"extensionsUsed": 1,
|
|
156
|
+
"hardCap": 60,
|
|
157
|
+
"reason": "Recent verified tool progress exists."
|
|
158
|
+
}
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## User-Facing Output
|
|
162
|
+
|
|
163
|
+
Normal mode:
|
|
164
|
+
|
|
165
|
+
```text
|
|
166
|
+
budget: monitor approved +8 steps (23/32); Recent verified tool progress exists
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Denied:
|
|
170
|
+
|
|
171
|
+
```text
|
|
172
|
+
budget: extension denied; Recent blocker requires a different permission/setup path
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
SCS:
|
|
176
|
+
|
|
177
|
+
```text
|
|
178
|
+
SCS: student approved +8 steps (23/32); one focused verification pass remains
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
## Config
|
|
182
|
+
|
|
183
|
+
CLI:
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
aginti --max-steps 24 --dynamic-steps auto "..."
|
|
187
|
+
aginti --dynamic-steps off "..."
|
|
188
|
+
aginti --dynamic-steps on --provider mock "..."
|
|
189
|
+
aginti --dynamic-step-limit 2 "..."
|
|
190
|
+
aginti --dynamic-step-size 10 "..."
|
|
191
|
+
aginti --dynamic-step-hard-cap 72 "..."
|
|
192
|
+
aginti --scs auto "..."
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Environment:
|
|
196
|
+
|
|
197
|
+
```text
|
|
198
|
+
AGINTI_DYNAMIC_STEPS=off|auto|on
|
|
199
|
+
AGINTI_STEP_EXTENSION_LIMIT=2
|
|
200
|
+
AGINTI_STEP_EXTENSION_SIZE=10
|
|
201
|
+
AGINTI_STEP_EXTENSION_HARD_CAP=72
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
Defaults:
|
|
205
|
+
|
|
206
|
+
- `dynamicSteps=auto`.
|
|
207
|
+
- Real-provider runs can auto-extend when evidence justifies it.
|
|
208
|
+
- Mock runs do not auto-extend unless explicitly run with `--dynamic-steps on`.
|
|
209
|
+
|
|
210
|
+
## Interaction With `/scs auto`
|
|
211
|
+
|
|
212
|
+
Routing semantics:
|
|
213
|
+
|
|
214
|
+
- `/scs off`: never use SCS; dynamic budget uses normal deterministic monitoring if enabled.
|
|
215
|
+
- `/scs on`: always use SCS; dynamic budget uses the student budget gate.
|
|
216
|
+
- `/scs auto`: router decides per run; if activated, dynamic budget uses the student gate.
|
|
217
|
+
|
|
218
|
+
For observability, state preserves:
|
|
219
|
+
|
|
220
|
+
- configured mode: `enableScs = "auto"`;
|
|
221
|
+
- actual run activation: `scsActive = true|false`;
|
|
222
|
+
- budget state: `state.meta.stepBudget`.
|
|
223
|
+
|
|
224
|
+
## Guardrail
|
|
225
|
+
|
|
226
|
+
A step extension is not permission escalation.
|
|
227
|
+
|
|
228
|
+
If the run lacks permission to write outside the project, install host packages, publish, use credentials, read secrets, or run destructive commands, more steps should not help. The monitor denies extension and the normal permission advice/rerun path remains authoritative.
|
|
229
|
+
|
|
230
|
+
## Regression Coverage
|
|
231
|
+
|
|
232
|
+
`scripts/smoke-dynamic-step-budget.js` checks:
|
|
233
|
+
|
|
234
|
+
- dynamic mode normalization;
|
|
235
|
+
- `/scs auto` activation for complex prompts and non-activation for trivial prompts;
|
|
236
|
+
- deterministic approval when recent file/tool progress exists;
|
|
237
|
+
- denial for repeated permission/blocker loops;
|
|
238
|
+
- mock-provider auto disablement;
|
|
239
|
+
- a real runner smoke where a one-step mock run creates a file, earns a bounded extension, finishes, and persists `budget.extension_approved`.
|
|
240
|
+
|
|
241
|
+
This keeps AgInTiFlow persistent without making it unbounded.
|
|
@@ -24,6 +24,15 @@ The UI should be role-first rather than provider-first:
|
|
|
24
24
|
- **Wrapper (`/wrapper`):** external coding assistant. Default Codex with `gpt-5.5` medium reasoning, disabled unless wrapper tools are enabled.
|
|
25
25
|
- **Auxiliary (`/auxiliary`):** media/image tools. Default `grsai/nano-banana-2`; Venice image models are optional.
|
|
26
26
|
|
|
27
|
+
Writing has a separate tool boundary rather than a separate always-on agent identity:
|
|
28
|
+
|
|
29
|
+
- **`writing_specialist`:** isolated prose/argument/scene drafting. It receives only writing brief, canon, style guide, prior draft, target, audience, constraints, length, and downstream format intent.
|
|
30
|
+
- **Main agent:** owns project state, files, formatting, shell/browser/tool policy, citations, LaTeX/PDF compilation, canvas artifacts, and final verification.
|
|
31
|
+
|
|
32
|
+
This protects writing quality from agent-side context overload. The writer should not be told about shell tools, file tools, routing policy, guardrails, Docker, or browser state unless the user explicitly needs those details inside the text itself.
|
|
33
|
+
|
|
34
|
+
The specialist can follow the main provider/model, or be routed separately with `AGINTI_WRITING_PROVIDER` and `AGINTI_WRITING_MODEL`.
|
|
35
|
+
|
|
27
36
|
This keeps the mental model stable: providers are supply, roles are policy.
|
|
28
37
|
|
|
29
38
|
## Current Commands
|