agestra 4.13.4 → 4.13.5

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.
@@ -12,7 +12,7 @@
12
12
  "name": "agestra",
13
13
  "source": "./",
14
14
  "description": "Multi-host MCP orchestration across Claude, Ollama, Gemini, and Codex for review, QA, and cross-validation",
15
- "version": "4.13.4",
15
+ "version": "4.13.5",
16
16
  "author": {
17
17
  "name": "mua-vtuber"
18
18
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agestra",
3
- "version": "4.13.4",
3
+ "version": "4.13.5",
4
4
  "description": "Claude Code plugin — multi-host MCP orchestration across Claude, Ollama, Gemini, and Codex for review, QA, and cross-validation",
5
5
  "mcpServers": {
6
6
  "agestra": {
@@ -103,7 +103,29 @@ The JSON consensus ledger is the source of truth. Debate markdown and synthesis
103
103
 
104
104
  ### Phase 1: Individual reviews
105
105
 
106
- Before any consensus round, every participant produces independent source material unless `source_documents` were supplied. These documents are written or read under `.agestra/workspace/individual/`. Each document must include a `<proposals>` block with `<item id="..." title="..." severity="..." location="...">...</item>` entries; the engine keeps links back to these source documents in each consensus item.
106
+ Before any consensus round, every participant produces independent source material unless `source_documents` were supplied. These documents are written or read under `.agestra/workspace/individual/`. Each individual response or source document must be JSON-only with top-level `provider`, `phase: "individual"`, `mode`, and `items` fields. Each item uses provider-local `localId`; Agestra assigns the stable `ITEM-*` IDs. The engine validates this JSON directly, records format errors loudly, and keeps links back to these source documents in each consensus item.
107
+
108
+ Canonical individual response shape:
109
+
110
+ ```json
111
+ {
112
+ "provider": "provider-id",
113
+ "phase": "individual",
114
+ "mode": "review",
115
+ "items": [
116
+ {
117
+ "localId": "provider-id-1",
118
+ "kind": "finding",
119
+ "title": "Short title",
120
+ "severity": "HIGH",
121
+ "location": "file.ts:42",
122
+ "claim": "What the provider believes or proposes.",
123
+ "evidence": "Why the claim is grounded.",
124
+ "recommendation": "What should happen next."
125
+ }
126
+ ]
127
+ }
128
+ ```
107
129
 
108
130
  ### Phase 2: Consensus ledger creation
109
131
 
@@ -362,7 +362,8 @@ Default participant policy:
362
362
 
363
363
  Scale and reliability controls:
364
364
  - For whole-project, large-directory, or deep review/QA requests, create a bounded evidence packet before provider fan-out. Include changed files, key entry points, build/test evidence, relevant configs/docs, and explicit out-of-scope areas; do not expect every external CLI provider to discover a large repository from scratch inside one turn.
365
- - Use `participant_timeout_ms` of at least `600000` for broad or deep structured debates, and raise it further only when the user accepts the wait. If participants still time out, split the task by subsystem and run multiple narrower debates.
365
+ - Normal scoped debates inherit the 5-minute participant timeout. Use `participant_timeout_ms: 600000` (10 minutes) for broad or deep structured debates, and raise it further only when the user accepts the wait. If participants still time out, split the task by subsystem and run multiple narrower debates.
366
+ - Single-shot tools have the same 5-minute default. When dispatching a large review through `ai_chat`, `ai_compare`, or `ai_analyze_files`, pass `timeout_ms: 600000` (10 minutes; cap is 3600000 = 60 minutes). Without this override the call will be killed at the 5-minute mark even though the same content would survive inside a structured debate with `participant_timeout_ms`.
366
367
  - If Gemini reports a workspace trust issue, treat it as provider unavailable for that run, tell the user the project must be trusted in Gemini CLI, and continue with the remaining participants or retry after trust is fixed. Do not count trust failures as review disagreement.
367
368
 
368
369
  #### 5M.0b Host specialist pre-injection (REQUIRED on Claude-Code host)
@@ -375,12 +376,12 @@ Procedure (run before `agent_debate_structured`):
375
376
 
376
377
  1. Decide which Claude specialists belong in the brigade — typically `agestra-qa` for QA Brigade, `agestra-reviewer` for multi-AI review, `agestra-security` for multi-AI security. You may include more than one (e.g., QA Brigade may also pull in `agestra-reviewer` as a supporting lens).
377
378
  2. For each chosen specialist, invoke it via the `Agent` tool with the same scope/files/design references the external providers will see. Wait for the result.
378
- 3. Persist each specialist result as a workspace document via `workspace_create_document` (kind: `individual`). Capture the returned `document_id`.
379
+ 3. Persist each specialist result as a workspace document via `workspace_create_document` (kind: `individual`). The content must be the strict individual JSON contract: top-level `provider`, `phase: "individual"`, `mode`, and `items`; each item uses provider-local `localId`, never an `ITEM-*` id. Capture the returned `document_id`.
379
380
  4. Build the `agent_debate_structured` arguments so they self-describe the pre-injection:
380
381
  - `participants`: include the matching Claude specialist IDs (`claude-reviewer`, `claude-qa`, `claude-security`) alongside the external providers. The schema requires the `provider` field of every `source_documents` entry to be present in `participants`.
381
382
  - `source_documents`: one entry per specialist — `{ "document_id": "<id from workspace_create_document>", "provider": "claude-reviewer" | "claude-qa" | "claude-security" }`.
382
383
  - `auto_inject_specialists`: `false`. You already added the specialists manually; auto-inject would duplicate.
383
- 5. Start the debate. The moderator will load each pre-injected document as the specialist's individual review, parse its `<proposals>` block into ledger items, and skip that specialist in every consensus round. External providers fan out and debate as usual; they may vote on specialist-proposed items.
384
+ 5. Start the debate. The moderator will load each pre-injected document as the specialist's individual review, validate its JSON-only individual contract into ledger items, and skip that specialist in every consensus round. External providers fan out and debate as usual; they may vote on specialist-proposed items.
384
385
 
385
386
  Round-loop note (Phase C — host-turn handoff): pre-injected specialists still skip consensus rounds. Specialists that were NOT pre-injected (e.g. you let `auto_inject_specialists: true` add a Claude reviewer mid-debate, or you intentionally listed `claude-reviewer` in `participants` *without* a matching `source_documents` entry) now participate every round through the host-turn handoff protocol described in 5M.0c. Use 5M.0b when you only need a single up-front specialist read; use 5M.0c on top of it when you also want round-by-round specialist stances.
386
387
 
@@ -444,7 +445,7 @@ Call `agent_debate_structured` with:
444
445
  - `exclude_participants` — participant IDs to never include, applied regardless of `auto_inject_specialists`. Use this when the user explicitly wants a provider (including Ollama — there is no automatic Ollama filter anymore) kept out.
445
446
  - `leader` — omit unless you need to override the session-context leader.
446
447
  - `max_rounds` — default `10`. Raise for contested topics, lower for quick smoke-debates.
447
- - `participant_timeout_ms` — omit for normal scoped reviews; set at least `600000` for whole-project, large-directory, deep review, or provider timeouts.
448
+ - `participant_timeout_ms` — omit for normal scoped reviews (5-minute default); set `600000` (10 minutes) for whole-project, large-directory, deep review, or provider timeouts.
448
449
  - `individual_review_prompt` / `files` — optional framing for the individual-review fan-out.
449
450
  - `locale` — pass the locale resolved from `agestra.config.json` (fall back to providers.config locale). The moderator uses it for human-facing text; provider prompts remain English regardless.
450
451
 
@@ -85,7 +85,7 @@ Hand off to the `agestra:agestra-team-lead` agent with multi-AI mode **pre-selec
85
85
  - **Available providers:** from `environment_check`; include configured providers when their detected model capability is suitable, using read-only review tools for code/document critique
86
86
  - **Requested providers:** explicit names captured from user wording; otherwise "all available review-capable"
87
87
  - **Specialist pre-injection (Claude-Code host):** when the brigade should include the `claude-reviewer` specialist lens, team-lead MUST follow `agents/agestra-team-lead.md` Phase 5M.0b — run `agestra-reviewer` via the `Agent` tool first, persist the result through `workspace_create_document`, then pass it as a `source_documents` entry with `auto_inject_specialists: false`. Do NOT rely on `auto_inject_specialists: true` when a Claude specialist participant is wanted — the structured-debate engine cannot call back into the Claude-Code host's native subagents
88
- - **Scale controls:** if the target is a whole project, a large directory, or deep review, instruct team-lead to create a bounded review packet before fan-out: changed files, key entry points, relevant docs/config, and explicit exclusions. Do not ask external CLI providers to explore an unbounded large repository from scratch. Use `participant_timeout_ms: 600000` or higher for large/deep reviews, and split the review into narrower area debates if providers still time out.
88
+ - **Scale controls:** normal scoped reviews inherit the 5-minute participant timeout. If the target is a whole project, a large directory, or deep review, instruct team-lead to create a bounded review packet before fan-out: changed files, key entry points, relevant docs/config, and explicit exclusions. Do not ask external CLI providers to explore an unbounded large repository from scratch. Use `participant_timeout_ms: 600000` (10 minutes) for large/deep reviews, and split the review into narrower area debates if providers still time out.
89
89
  - **Locale:** from `setup_status`
90
90
  - **Original user request:** preserve verbatim
91
91