aether-colony 3.1.1 → 3.1.3

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.
@@ -0,0 +1,85 @@
1
+ ---
2
+ name: ant:verify-castes
3
+ description: "Verify colony caste assignments and system status"
4
+ ---
5
+
6
+ You are the **Queen**. Display the caste assignments and system status.
7
+
8
+ ## Step 1: Show Caste Assignments
9
+
10
+ Display the colony caste structure:
11
+
12
+ ```
13
+ Aether Colony Caste System
14
+ ═══════════════════════════════════════════
15
+
16
+ CASTE ASSIGNMENTS
17
+ ─────────────────
18
+ 👑 Prime - Colony coordination and strategic planning
19
+ 🏺 Archaeologist - Git history analysis and pattern excavation
20
+ 🏛️ Architect - System design and documentation
21
+ 🔮 Oracle - Deep research and foresight
22
+ 🗺️ Route Setter - Task decomposition and planning
23
+ 🔨 Builder - Implementation and coding
24
+ 👁️ Watcher - Verification and testing
25
+ 🔍 Scout - Research and exploration
26
+ 🎲 Chaos - Edge case testing and resilience probing
27
+ 🧭 Colonizer - Environment setup and exploration
28
+
29
+ ───────────────────────────────────────────
30
+ ```
31
+
32
+ ## Step 2: Check System Status
33
+
34
+ Run using Bash tool: `bash .aether/aether-utils.sh version-check 2>/dev/null || echo "Utils available"`
35
+
36
+ Check LiteLLM proxy status:
37
+ ```bash
38
+ curl -s http://localhost:4000/health 2>/dev/null | grep -q "healthy" && echo "✓ Proxy healthy" || echo "⚠ Proxy not running"
39
+ ```
40
+
41
+ ## Step 3: Show Current Session Info
42
+
43
+ ```
44
+ SESSION INFORMATION
45
+ ───────────────────
46
+ All workers in this session use the same model configuration.
47
+ To change models, restart Claude Code with different settings:
48
+
49
+ export ANTHROPIC_BASE_URL=http://localhost:4000
50
+ export ANTHROPIC_AUTH_TOKEN=sk-litellm-local
51
+ export ANTHROPIC_MODEL=<model-name>
52
+ claude
53
+
54
+ Available models (via LiteLLM proxy):
55
+ • glm-5 - Complex reasoning, architecture, planning
56
+ • kimi-k2.5 - Fast coding, implementation
57
+ • minimax-2.5 - Validation, research, exploration
58
+ ```
59
+
60
+ ## Step 4: Summary
61
+
62
+ ```
63
+ ═══════════════════════════════════════════
64
+ System Status
65
+ ═══════════════════════════════════════════
66
+ Utils: ✓ Operational
67
+ Proxy: {status from Step 2}
68
+ Castes: 10 defined
69
+
70
+ Note: Model-per-caste routing was attempted but is not
71
+ possible with Claude Code's Task tool (no env var support).
72
+ See archived config: .aether/archive/model-routing/
73
+ Tag: model-routing-v1-archived
74
+ ```
75
+
76
+ ## Historical Note
77
+
78
+ A model-per-caste system was designed and implemented but cannot
79
+ function due to Claude Code Task tool limitations. The complete
80
+ configuration is archived in `.aether/archive/model-routing/`.
81
+
82
+ To view the archived configuration:
83
+ ```bash
84
+ git show model-routing-v1-archived
85
+ ```
package/CHANGELOG.md CHANGED
@@ -5,6 +5,20 @@ All notable changes to the Aether Colony project will be documented in this file
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [3.1.3] - 2026-02-15
9
+
10
+ ### Fixed
11
+ - **Nested Spawn Visualization** — When builders or watchers spawn sub-workers, the swarm display now updates to show those nested spawns with colors and emojis. Added `swarm-display-update` calls to workers.md spawn protocol (Step 3 and Step 5), builder prompts, and watcher prompts. (`.aether/workers.md`, `.claude/commands/ant/build.md`, `.opencode/commands/ant/build.md`)
12
+
13
+ ## [3.1.2] - 2026-02-15
14
+
15
+ ### Fixed
16
+ - **Swarm Display Integration in Build Command** — The visualization system was fully implemented but never integrated into `/ant:build`. Added `swarm-display-init` at build start, `swarm-display-update` calls when spawning builders/watchers/chaos ants, progress updates when workers complete (updating to 100% completion), and final `swarm-display-render` at build completion. The build now shows real-time ant-themed visualization with caste emojis, colors, tool usage stats, and chamber activity maps. (`.claude/commands/ant/build.md`, `.opencode/commands/ant/build.md`)
17
+ - **Missing swarm-display-render Command** — Added new `swarm-display-render` command to `aether-utils.sh` that executes the visualization script to render the current swarm state to terminal. (`.aether/aether-utils.sh`)
18
+
19
+ ### Changed
20
+ - **OpenCode Build Command Parity** — Synchronized OpenCode build.md with Claude version: added `--model` flag support, proxy health check (Step 0.6), colony state loading (Step 0.5), and full swarm display integration. (`.opencode/commands/ant/build.md`)
21
+
8
22
  ## [3.1.1] - 2026-02-15
9
23
 
10
24
  ### Fixed
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "aether-colony",
3
- "version": "3.1.1",
3
+ "version": "3.1.3",
4
4
  "description": "Multi-agent system using ant colony intelligence for Claude Code and OpenCode — workers self-organize via pheromone signals",
5
5
  "bin": {
6
- "aether": "./bin/cli.js"
6
+ "aether": "bin/cli.js"
7
7
  },
8
8
  "files": [
9
9
  "bin/",
@@ -1953,6 +1953,22 @@ NODESCRIPT
1953
1953
  fi
1954
1954
  ;;
1955
1955
 
1956
+ swarm-display-render)
1957
+ # Render the swarm display to terminal
1958
+ # Usage: swarm-display-render [swarm_id]
1959
+ swarm_id="${1:-default-swarm}"
1960
+
1961
+ display_script="$SCRIPT_DIR/utils/swarm-display.sh"
1962
+
1963
+ if [[ -f "$display_script" ]]; then
1964
+ # Execute the display script
1965
+ bash "$display_script" "$swarm_id" 2>/dev/null || true
1966
+ json_ok '{"rendered":true}'
1967
+ else
1968
+ json_err "$E_FILE_NOT_FOUND" "Display script not found: $display_script"
1969
+ fi
1970
+ ;;
1971
+
1956
1972
  swarm-timing-start)
1957
1973
  # Record start time for an ant
1958
1974
  # Usage: swarm-timing-start <ant_name>
@@ -50,103 +50,42 @@ bash .aether/aether-utils.sh spawn-complete "Hammer-42" "completed" "auth module
50
50
 
51
51
  ---
52
52
 
53
- ## Model-Aware Spawning
53
+ ## Model Selection (Session-Level)
54
54
 
55
- Aether colony workers are spawned with model-specific configurations based on their caste. This enables optimal task routing through the LiteLLM proxy.
55
+ Aether can work with different AI models through a LiteLLM proxy, but **model selection happens at the session level**, not per-worker.
56
56
 
57
57
  ### How It Works
58
58
 
59
- 1. **Model Assignment**: Each caste is mapped to an optimal model in `.aether/model-profiles.yaml`
60
- 2. **Prompt Context**: Queen includes model assignment in worker's prompt via `--- MODEL CONTEXT ---` section
61
- 3. **Worker Self-Reporting**: Workers echo their assigned model in JSON output for verification
62
- 4. **Proxy Routing** (Optional): With LiteLLM proxy running, set `ANTHROPIC_MODEL` in parent shell for true model routing
59
+ Claude Code's Task tool does not support passing environment variables to spawned workers. All workers inherit the parent session's model configuration.
63
60
 
64
- ### Model Assignments by Caste
65
-
66
- | Caste | Model | Purpose |
67
- |-------|-------|---------|
68
- | prime | glm-5 | Long-horizon coordination, strategic planning (200K context) |
69
- | archaeologist | glm-5 | Historical pattern analysis across long timeframes |
70
- | architect | glm-5 | Pattern synthesis, documentation coordination (200K context) |
71
- | oracle | minimax-2.5 | Research, foresight, browse/search (76.3% BrowseComp) |
72
- | route_setter | kimi-k2.5 | Task decomposition, structured planning (256K context) |
73
- | builder | kimi-k2.5 | Code generation, refactoring (76.8% SWE-Bench) |
74
- | watcher | kimi-k2.5 | Validation, testing, verification |
75
- | scout | minimax-2.5| Research exploration, parallel sub-agent spawning |
76
- | chaos | kimi-k2.5 | Edge case probing, resilience testing |
77
- | colonizer | minimax-2.5| Environment setup, visual coding from screenshots |
78
-
79
- ### Worker Model Self-Reporting
80
-
81
- All workers must include model context in their JSON output:
82
-
83
- ```json
84
- {
85
- "status": "completed",
86
- "summary": "...",
87
- "model_context": {
88
- "assigned": "kimi-k2.5",
89
- "caste": "builder",
90
- "source": "caste-default",
91
- "reported_at": "2026-02-15T10:30:00Z"
92
- }
93
- }
94
- ```
95
-
96
- This enables:
97
- - **Visibility**: See which model each worker used
98
- - **Verification**: Confirm routing is working correctly
99
- - **Debugging**: Detect mismatches between expected and actual
100
-
101
- ### LiteLLM Proxy Integration (Optional)
102
-
103
- For true model routing through LiteLLM:
61
+ ### To Use a Specific Model
104
62
 
105
63
  ```bash
106
- # 1. Start proxy with your API keys
107
- litellm --config proxy.yaml
64
+ # 1. Start LiteLLM proxy (if using)
65
+ cd ~/repos/litellm-proxy && docker-compose up -d
108
66
 
109
- # 2. In parent shell (before starting Claude Code):
67
+ # 2. Set environment variables before starting Claude Code:
110
68
  export ANTHROPIC_BASE_URL=http://localhost:4000
111
69
  export ANTHROPIC_AUTH_TOKEN=sk-litellm-local
112
- export ANTHROPIC_MODEL=kimi-k2.5 # Or your preferred default
70
+ export ANTHROPIC_MODEL=kimi-k2.5 # or glm-5, minimax-2.5
113
71
 
114
- # 3. Start Claude Code - it will inherit these variables
72
+ # 3. Start Claude Code
115
73
  claude
116
74
  ```
117
75
 
118
- **Note:** Claude Code's Task tool doesn't support explicit environment variable passing,
119
- so proxy routing relies on parent shell inheritance. The self-reporting approach works
120
- regardless of proxy status.
121
-
122
- ### Available Models
123
-
124
- - **glm-5** (via Z_AI): Powerful reasoning for complex tasks, architecture, planning
125
- - **kimi-k2.5** (via Kimi): Fast code generation, refactoring, implementation
126
- - **minimax-2.5** (via MiniMax): Efficient validation, research, lightweight tasks
127
-
128
- ### Fallback Behavior
129
-
130
- If the model profile is missing or a caste is not mapped:
131
- - Default to `kimi-k2.5` (fastest, most cost-effective)
132
- - Log a warning to the activity log
133
- - Continue with worker spawn
134
-
135
- ### Sub-Worker Spawning
76
+ ### Available Models (via LiteLLM)
136
77
 
137
- When workers spawn sub-workers, they should:
138
- 1. Check if the sub-worker's caste differs from their own
139
- 2. If different, the sub-worker will automatically get their caste's model via the same mechanism
140
- 3. If spawning with the same caste, the model remains the same
78
+ | Model | Best For | Provider |
79
+ |-------|----------|----------|
80
+ | glm-5 | Complex reasoning, architecture, planning | Z_AI |
81
+ | kimi-k2.5 | Fast coding, implementation | Moonshot |
82
+ | minimax-2.5 | Validation, research, exploration | MiniMax |
141
83
 
142
- ### Model Context in Prompts
84
+ ### Historical Note
143
85
 
144
- Worker prompts include a MODEL CONTEXT section that informs the worker about:
145
- - Which model they are running on
146
- - The model's strengths and optimal use cases
147
- - Expected task complexity
86
+ A model-per-caste routing system was designed and implemented (archived in `.aether/archive/model-routing/`) but cannot function due to Claude Code Task tool limitations. The archive is preserved for future use if the platform adds environment variable support for subagents.
148
87
 
149
- This helps workers adjust their approach based on model capabilities.
88
+ See: `git show model-routing-v1-archived` for the complete configuration.
150
89
 
151
90
  ---
152
91
 
@@ -371,9 +310,10 @@ child_name=$(bash .aether/aether-utils.sh generate-ant-name "{caste}" | jq -r '.
371
310
  # Returns: "Hammer-42", "Vigil-17", etc.
372
311
  ```
373
312
 
374
- **Step 3: Log the spawn**
313
+ **Step 3: Log the spawn and update swarm display**
375
314
  ```bash
376
315
  bash .aether/aether-utils.sh spawn-log "{your_name}" "{child_caste}" "{child_name}" "{task_summary}"
316
+ bash .aether/aether-utils.sh swarm-display-update "{child_name}" "{child_caste}" "excavating" "{task_summary}" "{your_name}" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "fungus_garden" 10
377
317
  ```
378
318
 
379
319
  **Step 4: Use Task tool**
@@ -416,10 +356,11 @@ Return a compressed summary:
416
356
  }
417
357
  ```
418
358
 
419
- **Step 5: Log completion**
359
+ **Step 5: Log completion and update swarm display**
420
360
  ```bash
421
361
  # After Task tool returns
422
362
  bash .aether/aether-utils.sh spawn-complete "{child_name}" "{status}" "{summary}"
363
+ bash .aether/aether-utils.sh swarm-display-update "{child_name}" "{child_caste}" "completed" "{summary}" "{your_name}" '{"read":5,"grep":3,"edit":2,"bash":1}' 100 "fungus_garden" 100
423
364
  ```
424
365
 
425
366
  ---