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.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/.gemini/commands/agestra/setup.toml +12 -0
- package/agents/agestra-moderator.md +3 -3
- package/agents/agestra-team-lead.md +4 -4
- package/commands/setup.md +84 -0
- package/dist/bundle.js +155 -144
- package/package.json +1 -1
|
@@ -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
|
-
|
|
133
|
+
kept) │ _reject
|
|
134
134
|
▼
|
|
135
|
-
rejected (snapshot
|
|
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,
|
|
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`)
|
|
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,
|
|
283
|
-
2. **Need more deliberation** → call `agent_debate_continue` with `debate_id` and `additional_rounds` (
|
|
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)`
|
|
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.
|