aether-colony 3.1.2 → 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.
@@ -425,9 +425,12 @@ DO NOT spawn for work you can complete in < 10 tool calls.
425
425
  Before spawning:
426
426
  1. Check: bash .aether/aether-utils.sh spawn-can-spawn {depth}
427
427
  2. Generate name: bash .aether/aether-utils.sh generate-ant-name "{caste}"
428
- 3. Log: bash .aether/aether-utils.sh spawn-log "{your_name}" "{caste}" "{child_name}" "{task}"
429
- 4. Use Task tool with subagent_type="general"
430
- 5. After completion: bash .aether/aether-utils.sh spawn-complete "{child_name}" "{status}" "{summary}"
428
+ 3. Log spawn: bash .aether/aether-utils.sh spawn-log "{your_name}" "{caste}" "{child_name}" "{task}"
429
+ 4. Update swarm display: bash .aether/aether-utils.sh swarm-display-update "{child_name}" "{caste}" "excavating" "{task}" "{your_name}" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "fungus_garden" 10
430
+ 5. Use Task tool with subagent_type="general"
431
+ 6. After completion:
432
+ - Log completion: bash .aether/aether-utils.sh spawn-complete "{child_name}" "{status}" "{summary}"
433
+ - Update swarm display: bash .aether/aether-utils.sh swarm-display-update "{child_name}" "{caste}" "completed" "{task}" "{your_name}" '{"read":5,"grep":3,"edit":2,"bash":1}' 100 "fungus_garden" 100
431
434
 
432
435
  Full spawn format: .aether/workers.md section "Spawning Sub-Workers"
433
436
 
@@ -549,7 +552,9 @@ You are at depth {depth}. You MAY spawn sub-workers for:
549
552
  Spawn limits: Depth 1→4, Depth 2→2, Depth 3→0
550
553
 
551
554
  Before spawning:
552
- bash .aether/aether-utils.sh spawn-log "{your_name}" "{caste}" "{child_name}" "{task}"
555
+ 1. Log spawn: bash .aether/aether-utils.sh spawn-log "{your_name}" "{caste}" "{child_name}" "{task}"
556
+ 2. Update swarm display: bash .aether/aether-utils.sh swarm-display-update "{child_name}" "{caste}" "observing" "{task}" "{your_name}" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "nursery" 50
557
+ 3. After completion: bash .aether/aether-utils.sh swarm-display-update "{child_name}" "{caste}" "completed" "{task}" "{your_name}" '{"read":3,"grep":2,"edit":0,"bash":0}' 100 "nursery" 100
553
558
 
554
559
  --- CRITICAL ---
555
560
  - You did NOT build this code — verify it objectively
@@ -425,9 +425,12 @@ DO NOT spawn for work you can complete in < 10 tool calls.
425
425
  Before spawning:
426
426
  1. Check: bash .aether/aether-utils.sh spawn-can-spawn {depth}
427
427
  2. Generate name: bash .aether/aether-utils.sh generate-ant-name "{caste}"
428
- 3. Log: bash .aether/aether-utils.sh spawn-log "{your_name}" "{caste}" "{child_name}" "{task}"
429
- 4. Use Task tool with subagent_type="general"
430
- 5. After completion: bash .aether/aether-utils.sh spawn-complete "{child_name}" "{status}" "{summary}"
428
+ 3. Log spawn: bash .aether/aether-utils.sh spawn-log "{your_name}" "{caste}" "{child_name}" "{task}"
429
+ 4. Update swarm display: bash .aether/aether-utils.sh swarm-display-update "{child_name}" "{caste}" "excavating" "{task}" "{your_name}" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "fungus_garden" 10
430
+ 5. Use Task tool with subagent_type="general"
431
+ 6. After completion:
432
+ - Log completion: bash .aether/aether-utils.sh spawn-complete "{child_name}" "{status}" "{summary}"
433
+ - Update swarm display: bash .aether/aether-utils.sh swarm-display-update "{child_name}" "{caste}" "completed" "{task}" "{your_name}" '{"read":5,"grep":3,"edit":2,"bash":1}' 100 "fungus_garden" 100
431
434
 
432
435
  Full spawn format: .aether/workers.md section "Spawning Sub-Workers"
433
436
 
@@ -538,7 +541,9 @@ You are at depth {depth}. You MAY spawn sub-workers for:
538
541
  Spawn limits: Depth 1→4, Depth 2→2, Depth 3→0
539
542
 
540
543
  Before spawning:
541
- bash .aether/aether-utils.sh spawn-log "{your_name}" "{caste}" "{child_name}" "{task}"
544
+ 1. Log spawn: bash .aether/aether-utils.sh spawn-log "{your_name}" "{caste}" "{child_name}" "{task}"
545
+ 2. Update swarm display: bash .aether/aether-utils.sh swarm-display-update "{child_name}" "{caste}" "observing" "{task}" "{your_name}" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "nursery" 50
546
+ 3. After completion: bash .aether/aether-utils.sh swarm-display-update "{child_name}" "{caste}" "completed" "{task}" "{your_name}" '{"read":3,"grep":2,"edit":0,"bash":0}' 100 "nursery" 100
542
547
 
543
548
  --- CRITICAL ---
544
549
  - You did NOT build this code — verify it objectively
package/CHANGELOG.md CHANGED
@@ -5,6 +5,11 @@ 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
+
8
13
  ## [3.1.2] - 2026-02-15
9
14
 
10
15
  ### Fixed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aether-colony",
3
- "version": "3.1.2",
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
6
  "aether": "bin/cli.js"
@@ -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
  ---