agestra 4.8.4 → 4.9.0

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": "Orchestrate Ollama, Gemini, and Codex for multi-AI debates, cross-validation, and GraphRAG memory",
15
- "version": "4.8.4",
15
+ "version": "4.9.0",
16
16
  "author": {
17
17
  "name": "mua-vtuber"
18
18
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agestra",
3
- "version": "4.8.4",
3
+ "version": "4.9.0",
4
4
  "description": "Claude Code plugin — orchestrate Ollama, Gemini, and Codex for multi-AI debates, cross-validation, and GraphRAG memory",
5
5
  "mcpServers": {
6
6
  "agestra": {
@@ -0,0 +1,12 @@
1
+ description = "Run the Agestra setup workflow for provider selection and UI language."
2
+ prompt = """
3
+ You are executing the Agestra setup workflow inside Gemini CLI.
4
+
5
+ Use the shared workflow spec below as the source of truth and adapt it to the current Gemini host session:
6
+ @{commands/setup.md}
7
+
8
+ Gemini-specific rules:
9
+ - Start with `environment_check`, `provider_list`, and `setup_status`.
10
+ - Prefer Agestra MCP tools over ad-hoc shell edits.
11
+ - Keep all user-facing questions and the final answer in the user's language.
12
+ """
@@ -130,9 +130,9 @@ Idempotency: a second call on a terminal state (`approved`, `rejected`, `leader-
130
130
  ▼ │ ▼
131
131
  approved │ running (snapshot reloaded; max_rounds += additional_rounds)
132
132
  (snapshot │
133
- removed) │ _reject
133
+ kept) │ _reject
134
134
 
135
- rejected (snapshot removed)
135
+ rejected (snapshot kept)
136
136
 
137
137
  (ready-for-approval ─ 24h no tool call ─▶ leader-timeout [snapshot kept])
138
138
  (running ─ uncaught internal error ─▶ error)
@@ -367,7 +367,7 @@ If `max_rounds` is hit with open proposals, the moderator surfaces the choice to
367
367
  <Tool_Usage>
368
368
  - `provider_list` — check available providers at the start.
369
369
  - `agent_debate_structured` — **recommended entry point for Structured Debate**: runs individual reviews, alias-clarification phase (if needed), round loop with vote aggregation, parks the session in `ready-for-approval`, and writes the `{sessionId}.approval.json` snapshot. Does NOT write synthesis.
370
- - `agent_debate_approve` — write synthesis markdown, delete snapshot, close the session.
370
+ - `agent_debate_approve` — write synthesis markdown, mark the snapshot `approved`, close the session.
371
371
  - `agent_debate_continue` — force additional rounds on a `ready-for-approval` session.
372
372
  - `agent_debate_reject` — close without synthesis; optionally spawn an issue branch listing non-accepted proposals.
373
373
  - `agent_debate_create` / `agent_debate_turn` / `agent_debate_conclude` — legacy manual-mode tools used only by the pre-structured debate flow.
@@ -270,7 +270,7 @@ A 24h inactivity timer starts the moment the session enters `ready-for-approval`
270
270
  Before deciding, read the on-disk outputs — the debate writes three folders under the workspace:
271
271
 
272
272
  - `.agestra/workspace/individual/` — per-participant individual reviews (`individual_{participant}_{topic}_{date}_{seq}.md`). Includes auto-injected specialists like `claude-reviewer` / `claude-qa` when present.
273
- - `.agestra/workspace/debates/` — debate transcript (`debate_{topic}_{date}_{seq}.md`) plus the approval snapshot (`{sessionId}.approval.json`) while the session is parked.
273
+ - `.agestra/workspace/debates/` — debate transcript (`debate_{topic}_{date}_{seq}.md`) plus the approval snapshot (`{sessionId}.approval.json`). The snapshot remains after `approve` / `reject` for idempotent replays and audit.
274
274
  - `.agestra/workspace/synthesis/` — the final synthesis document, written only after `agent_debate_approve` succeeds.
275
275
 
276
276
  Use `Read` / `Grep` against these paths plus the in-result snapshot to judge whether the debate outcome matches the design.
@@ -279,8 +279,8 @@ Use `Read` / `Grep` against these paths plus the in-result snapshot to judge whe
279
279
 
280
280
  Pick exactly one of the three follow-up tools, based on inspection:
281
281
 
282
- 1. **Accept the outcome** → call `agent_debate_approve` with `debate_id` and an optional `leader_note` (appended to the synthesis footer under "Leader approval notes"). The moderator writes the synthesis markdown, deletes the snapshot, and returns `synthesisDocPath`. Proceed to Phase 7 and relay the path to the user.
283
- 2. **Need more deliberation** → call `agent_debate_continue` with `debate_id` and `additional_rounds` (typical values: `3`, `5`, or `10`; max `20`). The engine resumes the round loop from the prior snapshot and eventually re-parks the session in `ready-for-approval`. Loop back to 5M.2. Use this when the debate was close but unresolved, or when `escalated` came too early.
282
+ 1. **Accept the outcome** → call `agent_debate_approve` with `debate_id` and an optional `leader_note` (appended to the synthesis footer under "Leader approval notes"). The moderator writes the synthesis markdown, updates the snapshot to `approved`, and returns `synthesisDocPath`. Proceed to Phase 7 and relay the path to the user.
283
+ 2. **Need more deliberation** → call `agent_debate_continue` with `debate_id` and `additional_rounds` (`3`, `5`, or `10` only). The engine resumes the round loop from the prior snapshot and eventually re-parks the session in `ready-for-approval`. Loop back to 5M.2. Use this when the debate was close but unresolved, or when `escalated` came too early.
284
284
  3. **Reject the outcome** → call `agent_debate_reject` with `debate_id` and a `reason` (captured in the transcript footer). Optionally set `spawn_issue: true` to write a lightweight issue branch document into `individual/` listing non-accepted proposals for later handling. No synthesis is produced. The debate is closed.
285
285
 
286
286
  All three tools are idempotent on terminal states — re-calling returns the cached outcome.
@@ -401,7 +401,7 @@ The design document is the authority. If an AI's output conflicts with the desig
401
401
  - `trace_summary` / `trace_record` / `trace_compare` — provider quality tracking
402
402
  - `ai_chat` / `ai_analyze_files` / `ai_compare` — query external AI
403
403
  - `agent_debate_structured` — start a structured multi-AI debate (individual reviews → clarification → rounds → aggregation → `ready-for-approval`). Supports `auto_inject_specialists` (default `true`) to auto-add `claude-reviewer` / `claude-qa` based on topic, and `exclude_participants` as the escape hatch (also the way to keep Ollama or any other provider out — there is no automatic Ollama filter).
404
- - `agent_debate_approve` / `agent_debate_continue` / `agent_debate_reject` — leader-only finalization tools for a `ready-for-approval` session. `approve` writes the synthesis under `.agestra/workspace/synthesis/`; `continue(additional_rounds=N)` extends the debate (typical N ∈ {3, 5, 10}, max 20); `reject(reason=..., spawn_issue?=true)` closes the session with no synthesis.
404
+ - `agent_debate_approve` / `agent_debate_continue` / `agent_debate_reject` — leader-only finalization tools for a `ready-for-approval` session. `approve` writes the synthesis under `.agestra/workspace/synthesis/`; `continue(additional_rounds=N)` accepts only `3`, `5`, or `10`; `reject(reason=..., spawn_issue?=true)` closes the session with no synthesis.
405
405
  - `agent_debate_create/turn/status/summary/list/close/reset` — low-level debate primitives (legacy / diagnostic use).
406
406
  - `agent_cross_validate` — cross-validate outputs between providers
407
407
  - `cli_worker_spawn` / `cli_worker_status` / `cli_worker_collect` / `cli_worker_stop` — manage Codex/Gemini CLI workers
@@ -0,0 +1,84 @@
1
+ ---
2
+ description: "Select AI providers and UI language for Agestra workflows"
3
+ argument-hint: ""
4
+ ---
5
+
6
+ You are executing the `/agestra setup` command.
7
+
8
+ ## Step 1: Inspect current state
9
+
10
+ Call these tools first:
11
+ - `environment_check`
12
+ - `provider_list`
13
+ - `setup_status`
14
+
15
+ Use the results to identify:
16
+ - which providers are currently available
17
+ - which providers are already enabled in `providers.config.json`
18
+ - which locale is currently configured
19
+
20
+ ## Step 2: Handle the no-provider case
21
+
22
+ If `setup_status` shows that no providers are detected:
23
+ - Explain this in the user's language.
24
+ - Briefly tell the user they need to install at least one supported provider (Ollama, Gemini CLI, Codex CLI, or Claude CLI).
25
+ - Stop without calling `setup_apply`.
26
+
27
+ ## Step 3: Ask for provider selection
28
+
29
+ Use AskUserQuestion with **multiSelect: true** in the user's language.
30
+
31
+ Present one option per currently available provider from `setup_status`.
32
+ - Label: provider ID (`ollama`, `gemini`, `codex`, `claude-cli`, etc.)
33
+ - Description: short capability hint from `provider_list`
34
+
35
+ Guidance:
36
+ - If one or more providers are already enabled, pre-select them conceptually in your reasoning.
37
+ - Recommend enabling at least one external provider.
38
+ - If the user wants Claude-only operation, allow an empty selection only if they explicitly ask for it. Otherwise prefer at least one enabled provider.
39
+
40
+ ## Step 4: Ask for default provider
41
+
42
+ If the selected provider count is 0:
43
+ - Skip this step and use `default_provider = null`.
44
+
45
+ If the selected provider count is 1:
46
+ - Use that provider as `default_provider` automatically.
47
+
48
+ If the selected provider count is 2+:
49
+ - Use AskUserQuestion in the user's language to ask which selected provider should be the default.
50
+
51
+ ## Step 5: Ask for language
52
+
53
+ Use AskUserQuestion in the user's language with these choices:
54
+
55
+ | Option | Description |
56
+ |--------|-------------|
57
+ | **한국어** | Korean UI / moderator text |
58
+ | **English** | English UI / moderator text |
59
+ | **日本語** | Japanese UI / moderator text |
60
+ | **中文** | Chinese UI / moderator text |
61
+
62
+ Map these to locale codes:
63
+ - `한국어` → `ko`
64
+ - `English` → `en`
65
+ - `日本語` → `ja`
66
+ - `中文` → `zh`
67
+
68
+ ## Step 6: Apply setup
69
+
70
+ Call `setup_apply` with:
71
+ - `enabled_providers`: the selected provider IDs
72
+ - `default_provider`: the chosen default, if any
73
+ - `locale`: the selected locale code
74
+ - `selection_policy`: `default-only`
75
+
76
+ ## Step 7: Report result
77
+
78
+ Respond in the user's language with:
79
+ - enabled providers
80
+ - default provider
81
+ - selected language
82
+ - the path to `providers.config.json`
83
+
84
+ If the user changed providers, mention that future Agestra workflows will use the new setup on the next run/read of config.