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.
- package/.claude/commands/ant/build.md +66 -10
- package/.claude/commands/ant/continue.md +43 -1
- package/.opencode/commands/ant/build.md +116 -15
- package/.opencode/commands/ant/continue.md +43 -1
- package/.opencode/commands/ant/maturity.md +92 -0
- package/.opencode/commands/ant/verify-castes.md +85 -0
- package/CHANGELOG.md +14 -0
- package/package.json +2 -2
- package/runtime/aether-utils.sh +16 -0
- package/runtime/workers.md +22 -81
- package/.opencode/commands/ant/ant:build.md +0 -982
- package/.opencode/commands/ant/ant:verify-castes.md +0 -157
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: ant:verify-castes
|
|
3
|
-
description: "Verify model routing is working for all castes"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
You are the **Queen**. Verify that model routing configuration is correct and test that workers can self-report their assigned models.
|
|
7
|
-
|
|
8
|
-
## Step 1: Check Proxy Health
|
|
9
|
-
|
|
10
|
-
Run using the Bash tool: `node bin/cli.js caste-models list`
|
|
11
|
-
|
|
12
|
-
Capture the proxy status line. If proxy is unhealthy:
|
|
13
|
-
- Display warning about proxy not running
|
|
14
|
-
- Show instructions to start LiteLLM proxy
|
|
15
|
-
- Continue with verification anyway (will show limited functionality)
|
|
16
|
-
|
|
17
|
-
## Step 2: Verify Each Caste Assignment
|
|
18
|
-
|
|
19
|
-
For each caste in [prime, builder, watcher, oracle, scout, chaos, architect, archaeologist, colonizer, route_setter]:
|
|
20
|
-
|
|
21
|
-
1. Get assigned model using the Bash tool:
|
|
22
|
-
```
|
|
23
|
-
node -e "const mp = require('./bin/lib/model-profiles'); const p = mp.loadModelProfiles('.'); console.log(mp.getEffectiveModel(p, 'CASTE').model)"
|
|
24
|
-
```
|
|
25
|
-
Replace CASTE with the actual caste name.
|
|
26
|
-
|
|
27
|
-
2. Verify model is not "default" (should be specific model from profiles)
|
|
28
|
-
3. Log result with checkmark or X
|
|
29
|
-
|
|
30
|
-
Display results in a table:
|
|
31
|
-
```
|
|
32
|
-
Caste Verification:
|
|
33
|
-
─────────────────────────────────────────
|
|
34
|
-
✓ prime: glm-5 (z_ai)
|
|
35
|
-
✓ builder: kimi-k2.5 (kimi)
|
|
36
|
-
✓ watcher: kimi-k2.5 (kimi)
|
|
37
|
-
...
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
## Step 3: Test Worker Self-Reporting (Recommended)
|
|
41
|
-
|
|
42
|
-
Spawn a test worker from each caste to verify they correctly self-report their model assignment:
|
|
43
|
-
|
|
44
|
-
### 3.1 Spawn Test Workers
|
|
45
|
-
|
|
46
|
-
For each test caste in [builder, watcher, oracle]:
|
|
47
|
-
|
|
48
|
-
1. Get the model assignment:
|
|
49
|
-
```bash
|
|
50
|
-
node -e "const mp = require('./bin/lib/model-profiles'); const p = mp.loadModelProfiles('.'); console.log(mp.getEffectiveModel(p, 'CASTE').model)"
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
2. Spawn test worker via Task tool with `subagent_type="general"`:
|
|
54
|
-
|
|
55
|
-
**Test Worker Prompt:**
|
|
56
|
-
```
|
|
57
|
-
You are a test worker for model routing verification.
|
|
58
|
-
|
|
59
|
-
--- MODEL CONTEXT ---
|
|
60
|
-
Assigned model: {model} (from caste: {caste})
|
|
61
|
-
Expected: You should process this task using the model assigned above
|
|
62
|
-
|
|
63
|
-
--- YOUR TASK ---
|
|
64
|
-
Simply echo back the model context in the required JSON format.
|
|
65
|
-
|
|
66
|
-
--- OUTPUT ---
|
|
67
|
-
Return JSON:
|
|
68
|
-
{
|
|
69
|
-
"test_passed": true,
|
|
70
|
-
"model_context": {
|
|
71
|
-
"assigned": "{model}",
|
|
72
|
-
"caste": "{caste}",
|
|
73
|
-
"source": "caste-default"
|
|
74
|
-
},
|
|
75
|
-
"verification": "Model context received and will be echoed back"
|
|
76
|
-
}
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
3. Collect the worker's JSON response
|
|
80
|
-
|
|
81
|
-
### 3.2 Display Self-Reporting Results
|
|
82
|
-
|
|
83
|
-
After all test workers return, display results:
|
|
84
|
-
|
|
85
|
-
```
|
|
86
|
-
Model Self-Reporting Test:
|
|
87
|
-
─────────────────────────────────────────
|
|
88
|
-
✓ builder: Reported kimi-k2.5 ✓ (matches assignment)
|
|
89
|
-
✓ watcher: Reported kimi-k2.5 ✓ (matches assignment)
|
|
90
|
-
✓ oracle: Reported minimax-2.5 ✓ (matches assignment)
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
If a worker reports a different model than assigned:
|
|
94
|
-
```
|
|
95
|
-
⚠️ oracle: Reported kimi-k2.5 ✗ (expected: minimax-2.5)
|
|
96
|
-
→ Model routing may not be working for this caste
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
**Note:** Workers self-report based on the model context in their prompt. This verifies:
|
|
100
|
-
1. Queen correctly assigns models based on caste
|
|
101
|
-
2. Workers receive and can echo the assignment
|
|
102
|
-
3. The routing chain is intact from configuration → spawn → execution
|
|
103
|
-
|
|
104
|
-
## Step 4: Summary Report
|
|
105
|
-
|
|
106
|
-
Display final verification report:
|
|
107
|
-
```
|
|
108
|
-
═══════════════════════════════════════════
|
|
109
|
-
Model Routing Verification Complete
|
|
110
|
-
═══════════════════════════════════════════
|
|
111
|
-
Proxy Health: ✓ Healthy (or ✗ Not running)
|
|
112
|
-
Configuration: X/10 castes have model assignments
|
|
113
|
-
Self-Reporting: X/3 test workers echoed correctly
|
|
114
|
-
|
|
115
|
-
Status: {operational | needs attention}
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
### If All Checks Pass:
|
|
119
|
-
```
|
|
120
|
-
✓ Model routing is working correctly
|
|
121
|
-
|
|
122
|
-
All castes have model assignments and workers correctly
|
|
123
|
-
self-report their assigned models. The routing chain:
|
|
124
|
-
model-profiles.yaml → Queen spawn → Worker context
|
|
125
|
-
is functioning properly.
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
### If Issues Found:
|
|
129
|
-
```
|
|
130
|
-
⚠️ Issues Detected:
|
|
131
|
-
- Proxy: {status}
|
|
132
|
-
- Missing assignments: {castes without models}
|
|
133
|
-
- Self-report failures: {workers that didn't echo correctly}
|
|
134
|
-
|
|
135
|
-
Recommendations:
|
|
136
|
-
1. {specific fix for each issue}
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
## How Model Routing Actually Works
|
|
140
|
-
|
|
141
|
-
**Current Implementation (Self-Reporting):**
|
|
142
|
-
1. Caste-to-model mappings defined in `.aether/model-profiles.yaml`
|
|
143
|
-
2. Queen reads assignment before spawning worker
|
|
144
|
-
3. Queen includes model context in worker prompt
|
|
145
|
-
4. Worker echoes model_context in JSON output
|
|
146
|
-
5. Queen logs/display shows actual vs expected
|
|
147
|
-
|
|
148
|
-
**Note on Environment Variables:**
|
|
149
|
-
While the system documents `ANTHROPIC_MODEL` environment variables for
|
|
150
|
-
LiteLLM proxy routing, Claude Code's Task tool doesn't support explicit
|
|
151
|
-
environment variable passing. The self-reporting approach works within
|
|
152
|
-
this constraint by using prompt context instead.
|
|
153
|
-
|
|
154
|
-
For actual model routing through LiteLLM:
|
|
155
|
-
- Set ANTHROPIC_MODEL in your shell before starting Claude Code
|
|
156
|
-
- Or use the proxy's default model routing
|
|
157
|
-
- Check LiteLLM proxy logs to verify which models are being called
|