aether-colony 5.0.0 → 5.2.1
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/.aether/aether-utils.sh +3226 -3345
- package/.aether/agents-claude/aether-ambassador.md +265 -0
- package/.aether/agents-claude/aether-archaeologist.md +327 -0
- package/.aether/agents-claude/aether-architect.md +236 -0
- package/.aether/agents-claude/aether-auditor.md +271 -0
- package/.aether/agents-claude/aether-builder.md +224 -0
- package/.aether/agents-claude/aether-chaos.md +269 -0
- package/.aether/agents-claude/aether-chronicler.md +305 -0
- package/.aether/agents-claude/aether-gatekeeper.md +330 -0
- package/.aether/agents-claude/aether-includer.md +374 -0
- package/.aether/agents-claude/aether-keeper.md +272 -0
- package/.aether/agents-claude/aether-measurer.md +322 -0
- package/.aether/agents-claude/aether-oracle.md +237 -0
- package/.aether/agents-claude/aether-probe.md +211 -0
- package/.aether/agents-claude/aether-queen.md +330 -0
- package/.aether/agents-claude/aether-route-setter.md +178 -0
- package/.aether/agents-claude/aether-sage.md +418 -0
- package/.aether/agents-claude/aether-scout.md +179 -0
- package/.aether/agents-claude/aether-surveyor-disciplines.md +417 -0
- package/.aether/agents-claude/aether-surveyor-nest.md +355 -0
- package/.aether/agents-claude/aether-surveyor-pathogens.md +289 -0
- package/.aether/agents-claude/aether-surveyor-provisions.md +360 -0
- package/.aether/agents-claude/aether-tracker.md +270 -0
- package/.aether/agents-claude/aether-watcher.md +280 -0
- package/.aether/agents-claude/aether-weaver.md +248 -0
- package/.aether/commands/archaeology.yaml +653 -0
- package/.aether/commands/build.yaml +1221 -0
- package/.aether/commands/chaos.yaml +653 -0
- package/.aether/commands/colonize.yaml +442 -0
- package/.aether/commands/continue.yaml +1484 -0
- package/.aether/commands/council.yaml +509 -0
- package/.aether/commands/data-clean.yaml +80 -0
- package/.aether/commands/dream.yaml +275 -0
- package/.aether/commands/entomb.yaml +863 -0
- package/.aether/commands/export-signals.yaml +64 -0
- package/.aether/commands/feedback.yaml +158 -0
- package/.aether/commands/flag.yaml +160 -0
- package/.aether/commands/flags.yaml +177 -0
- package/.aether/commands/focus.yaml +112 -0
- package/.aether/commands/help.yaml +167 -0
- package/.aether/commands/history.yaml +137 -0
- package/.aether/commands/import-signals.yaml +79 -0
- package/.aether/commands/init.yaml +502 -0
- package/.aether/commands/insert-phase.yaml +102 -0
- package/.aether/commands/interpret.yaml +285 -0
- package/.aether/commands/lay-eggs.yaml +224 -0
- package/.aether/commands/maturity.yaml +122 -0
- package/.aether/commands/memory-details.yaml +74 -0
- package/.aether/commands/migrate-state.yaml +174 -0
- package/.aether/commands/oracle.yaml +1224 -0
- package/.aether/commands/organize.yaml +446 -0
- package/.aether/commands/patrol.yaml +621 -0
- package/.aether/commands/pause-colony.yaml +424 -0
- package/.aether/commands/phase.yaml +124 -0
- package/.aether/commands/pheromones.yaml +153 -0
- package/.aether/commands/plan.yaml +1364 -0
- package/.aether/commands/preferences.yaml +63 -0
- package/.aether/commands/quick.yaml +104 -0
- package/.aether/commands/redirect.yaml +123 -0
- package/.aether/commands/resume-colony.yaml +375 -0
- package/.aether/commands/resume.yaml +407 -0
- package/.aether/commands/run.yaml +229 -0
- package/.aether/commands/seal.yaml +1214 -0
- package/.aether/commands/skill-create.yaml +337 -0
- package/.aether/commands/status.yaml +408 -0
- package/.aether/commands/swarm.yaml +352 -0
- package/.aether/commands/tunnels.yaml +814 -0
- package/.aether/commands/update.yaml +131 -0
- package/.aether/commands/verify-castes.yaml +159 -0
- package/.aether/commands/watch.yaml +454 -0
- package/.aether/docs/INCIDENT_TEMPLATE.md +32 -0
- package/.aether/docs/QUEEN-SYSTEM.md +11 -11
- package/.aether/docs/README.md +32 -2
- package/.aether/docs/command-playbooks/README.md +23 -0
- package/.aether/docs/command-playbooks/build-complete.md +349 -0
- package/.aether/docs/command-playbooks/build-context.md +282 -0
- package/.aether/docs/command-playbooks/build-full.md +1683 -0
- package/.aether/docs/command-playbooks/build-prep.md +284 -0
- package/.aether/docs/command-playbooks/build-verify.md +405 -0
- package/.aether/docs/command-playbooks/build-wave.md +749 -0
- package/.aether/docs/command-playbooks/continue-advance.md +524 -0
- package/.aether/docs/command-playbooks/continue-finalize.md +447 -0
- package/.aether/docs/command-playbooks/continue-full.md +1725 -0
- package/.aether/docs/command-playbooks/continue-gates.md +686 -0
- package/.aether/docs/command-playbooks/continue-verify.md +407 -0
- package/.aether/docs/context-continuity.md +84 -0
- package/.aether/docs/disciplines/DISCIPLINES.md +9 -7
- package/.aether/docs/error-codes.md +1 -1
- package/.aether/docs/known-issues.md +34 -173
- package/.aether/docs/pheromones.md +86 -6
- package/.aether/docs/plans/pheromone-display-plan.md +257 -0
- package/.aether/docs/queen-commands.md +10 -9
- package/.aether/docs/source-of-truth-map.md +132 -0
- package/.aether/docs/xml-utilities.md +47 -0
- package/.aether/rules/aether-colony.md +23 -13
- package/.aether/scripts/incident-test-add.sh +47 -0
- package/.aether/scripts/weekly-audit.sh +79 -0
- package/.aether/skills/.index.json +649 -0
- package/.aether/skills/colony/.manifest.json +16 -0
- package/.aether/skills/colony/build-discipline/SKILL.md +78 -0
- package/.aether/skills/colony/colony-interaction/SKILL.md +56 -0
- package/.aether/skills/colony/colony-lifecycle/SKILL.md +77 -0
- package/.aether/skills/colony/colony-visuals/SKILL.md +112 -0
- package/.aether/skills/colony/context-management/SKILL.md +80 -0
- package/.aether/skills/colony/error-presentation/SKILL.md +99 -0
- package/.aether/skills/colony/pheromone-protocol/SKILL.md +79 -0
- package/.aether/skills/colony/pheromone-visibility/SKILL.md +81 -0
- package/.aether/skills/colony/state-safety/SKILL.md +84 -0
- package/.aether/skills/colony/worker-priming/SKILL.md +82 -0
- package/.aether/skills/domain/.manifest.json +24 -0
- package/.aether/skills/domain/README.md +33 -0
- package/.aether/skills/domain/django/SKILL.md +49 -0
- package/.aether/skills/domain/docker/SKILL.md +52 -0
- package/.aether/skills/domain/golang/SKILL.md +52 -0
- package/.aether/skills/domain/graphql/SKILL.md +51 -0
- package/.aether/skills/domain/html-css/SKILL.md +48 -0
- package/.aether/skills/domain/nextjs/SKILL.md +45 -0
- package/.aether/skills/domain/nodejs/SKILL.md +53 -0
- package/.aether/skills/domain/postgresql/SKILL.md +53 -0
- package/.aether/skills/domain/prisma/SKILL.md +59 -0
- package/.aether/skills/domain/python/SKILL.md +50 -0
- package/.aether/skills/domain/rails/SKILL.md +52 -0
- package/.aether/skills/domain/react/SKILL.md +45 -0
- package/.aether/skills/domain/rest-api/SKILL.md +58 -0
- package/.aether/skills/domain/svelte/SKILL.md +47 -0
- package/.aether/skills/domain/tailwind/SKILL.md +45 -0
- package/.aether/skills/domain/testing/SKILL.md +53 -0
- package/.aether/skills/domain/typescript/SKILL.md +58 -0
- package/.aether/skills/domain/vue/SKILL.md +49 -0
- package/.aether/templates/QUEEN.md.template +23 -41
- package/.aether/templates/colony-state-reset.jq.template +1 -0
- package/.aether/templates/colony-state.template.json +4 -0
- package/.aether/templates/learning-observations.template.json +6 -0
- package/.aether/templates/midden.template.json +13 -0
- package/.aether/templates/pheromones.template.json +6 -0
- package/.aether/templates/session.template.json +9 -0
- package/.aether/utils/atomic-write.sh +63 -17
- package/.aether/utils/chamber-utils.sh +145 -2
- package/.aether/utils/council.sh +425 -0
- package/.aether/utils/emoji-audit.sh +166 -0
- package/.aether/utils/error-handler.sh +21 -7
- package/.aether/utils/file-lock.sh +182 -27
- package/.aether/utils/flag.sh +278 -0
- package/.aether/utils/hive.sh +572 -0
- package/.aether/utils/immune.sh +508 -0
- package/.aether/utils/learning.sh +1928 -0
- package/.aether/utils/midden.sh +520 -0
- package/.aether/utils/oracle/oracle.md +168 -0
- package/.aether/utils/oracle/oracle.sh +1023 -0
- package/.aether/utils/pheromone.sh +2029 -0
- package/.aether/utils/queen.sh +1710 -0
- package/.aether/utils/scan.sh +860 -0
- package/.aether/utils/semantic-cli.sh +10 -8
- package/.aether/utils/session.sh +816 -0
- package/.aether/utils/skills.sh +509 -0
- package/.aether/utils/spawn-tree.sh +103 -271
- package/.aether/utils/spawn.sh +260 -0
- package/.aether/utils/state-api.sh +389 -0
- package/.aether/utils/state-loader.sh +8 -6
- package/.aether/utils/suggest.sh +611 -0
- package/.aether/utils/swarm-display.sh +10 -1
- package/.aether/utils/swarm.sh +1004 -0
- package/.aether/utils/watch-spawn-tree.sh +11 -2
- package/.aether/utils/xml-compose.sh +2 -2
- package/.aether/utils/xml-convert.sh +9 -5
- package/.aether/utils/xml-core.sh +5 -9
- package/.aether/utils/xml-query.sh +4 -4
- package/.aether/workers.md +86 -67
- package/.claude/agents/ant/aether-ambassador.md +2 -1
- package/.claude/agents/ant/aether-archaeologist.md +6 -1
- package/.claude/agents/ant/aether-architect.md +236 -0
- package/.claude/agents/ant/aether-auditor.md +6 -1
- package/.claude/agents/ant/aether-builder.md +38 -1
- package/.claude/agents/ant/aether-chaos.md +2 -1
- package/.claude/agents/ant/aether-chronicler.md +1 -0
- package/.claude/agents/ant/aether-gatekeeper.md +6 -1
- package/.claude/agents/ant/aether-includer.md +1 -0
- package/.claude/agents/ant/aether-keeper.md +1 -0
- package/.claude/agents/ant/aether-measurer.md +6 -1
- package/.claude/agents/ant/aether-oracle.md +237 -0
- package/.claude/agents/ant/aether-probe.md +2 -1
- package/.claude/agents/ant/aether-queen.md +6 -1
- package/.claude/agents/ant/aether-route-setter.md +6 -1
- package/.claude/agents/ant/aether-sage.md +68 -3
- package/.claude/agents/ant/aether-scout.md +38 -1
- package/.claude/agents/ant/aether-surveyor-disciplines.md +2 -1
- package/.claude/agents/ant/aether-surveyor-nest.md +2 -1
- package/.claude/agents/ant/aether-surveyor-pathogens.md +2 -1
- package/.claude/agents/ant/aether-surveyor-provisions.md +2 -1
- package/.claude/agents/ant/aether-tracker.md +6 -1
- package/.claude/agents/ant/aether-watcher.md +37 -1
- package/.claude/agents/ant/aether-weaver.md +2 -1
- package/.claude/commands/ant/archaeology.md +1 -8
- package/.claude/commands/ant/build.md +43 -1159
- package/.claude/commands/ant/chaos.md +1 -14
- package/.claude/commands/ant/colonize.md +3 -14
- package/.claude/commands/ant/continue.md +40 -1026
- package/.claude/commands/ant/council.md +213 -15
- package/.claude/commands/ant/data-clean.md +81 -0
- package/.claude/commands/ant/dream.md +12 -9
- package/.claude/commands/ant/entomb.md +62 -87
- package/.claude/commands/ant/export-signals.md +57 -0
- package/.claude/commands/ant/feedback.md +18 -0
- package/.claude/commands/ant/flag.md +12 -0
- package/.claude/commands/ant/flags.md +22 -8
- package/.claude/commands/ant/focus.md +18 -0
- package/.claude/commands/ant/help.md +40 -8
- package/.claude/commands/ant/history.md +3 -0
- package/.claude/commands/ant/import-signals.md +71 -0
- package/.claude/commands/ant/init.md +349 -191
- package/.claude/commands/ant/insert-phase.md +105 -0
- package/.claude/commands/ant/interpret.md +11 -0
- package/.claude/commands/ant/lay-eggs.md +167 -158
- package/.claude/commands/ant/maturity.md +22 -11
- package/.claude/commands/ant/memory-details.md +77 -0
- package/.claude/commands/ant/migrate-state.md +6 -0
- package/.claude/commands/ant/oracle.md +317 -62
- package/.claude/commands/ant/organize.md +10 -5
- package/.claude/commands/ant/patrol.md +620 -0
- package/.claude/commands/ant/pause-colony.md +8 -22
- package/.claude/commands/ant/phase.md +26 -37
- package/.claude/commands/ant/pheromones.md +156 -0
- package/.claude/commands/ant/plan.md +199 -50
- package/.claude/commands/ant/preferences.md +65 -0
- package/.claude/commands/ant/quick.md +100 -0
- package/.claude/commands/ant/redirect.md +18 -0
- package/.claude/commands/ant/resume-colony.md +37 -22
- package/.claude/commands/ant/resume.md +60 -7
- package/.claude/commands/ant/run.md +231 -0
- package/.claude/commands/ant/seal.md +506 -78
- package/.claude/commands/ant/skill-create.md +286 -0
- package/.claude/commands/ant/status.md +171 -1
- package/.claude/commands/ant/swarm.md +11 -23
- package/.claude/commands/ant/tunnels.md +1 -0
- package/.claude/commands/ant/update.md +58 -135
- package/.claude/commands/ant/verify-castes.md +90 -42
- package/.claude/commands/ant/watch.md +1 -0
- package/.opencode/agents/aether-ambassador.md +1 -1
- package/.opencode/agents/aether-architect.md +133 -0
- package/.opencode/agents/aether-builder.md +3 -3
- package/.opencode/agents/aether-oracle.md +137 -0
- package/.opencode/agents/aether-queen.md +1 -1
- package/.opencode/agents/aether-route-setter.md +1 -1
- package/.opencode/agents/aether-scout.md +1 -1
- package/.opencode/agents/aether-surveyor-disciplines.md +6 -1
- package/.opencode/agents/aether-surveyor-nest.md +6 -1
- package/.opencode/agents/aether-surveyor-pathogens.md +6 -1
- package/.opencode/agents/aether-surveyor-provisions.md +6 -1
- package/.opencode/agents/aether-tracker.md +1 -1
- package/.opencode/agents/aether-watcher.md +1 -1
- package/.opencode/agents/aether-weaver.md +1 -1
- package/.opencode/commands/ant/archaeology.md +7 -14
- package/.opencode/commands/ant/build.md +54 -88
- package/.opencode/commands/ant/chaos.md +7 -24
- package/.opencode/commands/ant/colonize.md +10 -17
- package/.opencode/commands/ant/continue.md +595 -66
- package/.opencode/commands/ant/council.md +150 -18
- package/.opencode/commands/ant/data-clean.md +77 -0
- package/.opencode/commands/ant/dream.md +15 -17
- package/.opencode/commands/ant/entomb.md +28 -18
- package/.opencode/commands/ant/export-signals.md +54 -0
- package/.opencode/commands/ant/feedback.md +24 -5
- package/.opencode/commands/ant/flag.md +16 -4
- package/.opencode/commands/ant/flags.md +24 -10
- package/.opencode/commands/ant/focus.md +22 -5
- package/.opencode/commands/ant/help.md +41 -8
- package/.opencode/commands/ant/history.md +9 -0
- package/.opencode/commands/ant/import-signals.md +68 -0
- package/.opencode/commands/ant/init.md +396 -154
- package/.opencode/commands/ant/insert-phase.md +111 -0
- package/.opencode/commands/ant/interpret.md +16 -0
- package/.opencode/commands/ant/lay-eggs.md +184 -112
- package/.opencode/commands/ant/maturity.md +18 -2
- package/.opencode/commands/ant/memory-details.md +83 -0
- package/.opencode/commands/ant/migrate-state.md +12 -0
- package/.opencode/commands/ant/oracle.md +322 -67
- package/.opencode/commands/ant/organize.md +14 -12
- package/.opencode/commands/ant/patrol.md +626 -0
- package/.opencode/commands/ant/pause-colony.md +12 -29
- package/.opencode/commands/ant/phase.md +30 -40
- package/.opencode/commands/ant/pheromones.md +162 -0
- package/.opencode/commands/ant/plan.md +210 -57
- package/.opencode/commands/ant/preferences.md +71 -0
- package/.opencode/commands/ant/quick.md +91 -0
- package/.opencode/commands/ant/redirect.md +22 -5
- package/.opencode/commands/ant/resume-colony.md +41 -29
- package/.opencode/commands/ant/resume.md +80 -20
- package/.opencode/commands/ant/run.md +237 -0
- package/.opencode/commands/ant/seal.md +230 -25
- package/.opencode/commands/ant/skill-create.md +63 -0
- package/.opencode/commands/ant/status.md +125 -30
- package/.opencode/commands/ant/swarm.md +3 -345
- package/.opencode/commands/ant/tunnels.md +3 -9
- package/.opencode/commands/ant/update.md +63 -127
- package/.opencode/commands/ant/verify-castes.md +96 -42
- package/.opencode/commands/ant/watch.md +7 -0
- package/CHANGELOG.md +368 -1
- package/README.md +195 -324
- package/bin/cli.js +236 -429
- package/bin/generate-commands.js +186 -0
- package/bin/generate-commands.sh +128 -89
- package/bin/lib/spawn-logger.js +0 -15
- package/bin/lib/update-transaction.js +285 -35
- package/bin/npx-install.js +178 -0
- package/bin/validate-package.sh +85 -3
- package/package.json +16 -4
- package/.aether/CONTEXT.md +0 -160
- package/.aether/docs/QUEEN.md +0 -84
- package/.aether/exchange/colony-registry.xml +0 -11
- package/.aether/exchange/pheromones.xml +0 -87
- package/.aether/exchange/queen-wisdom.xml +0 -14
- package/.aether/model-profiles.yaml +0 -100
- package/.aether/utils/spawn-with-model.sh +0 -56
- package/bin/lib/model-profiles.js +0 -445
- package/bin/lib/model-verify.js +0 -288
- package/bin/lib/proxy-health.js +0 -253
- package/bin/lib/telemetry.js +0 -441
|
@@ -1,357 +1,15 @@
|
|
|
1
|
+
<!-- Generated from .aether/commands/swarm.yaml - DO NOT EDIT DIRECTLY -->
|
|
1
2
|
---
|
|
2
3
|
name: ant:swarm
|
|
3
4
|
description: "🔥🐜🗡️🐜🔥 Real-time colony swarm display + stubborn bug destroyer"
|
|
4
5
|
---
|
|
5
6
|
|
|
6
|
-
You are the **Queen Ant Colony**. Deploy the swarm to destroy a stubborn bug or view real-time colony activity.
|
|
7
|
-
|
|
8
|
-
## Instructions
|
|
9
|
-
|
|
10
7
|
### Step -1: Normalize Arguments
|
|
11
8
|
|
|
12
9
|
Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
|
|
13
10
|
|
|
14
11
|
This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
|
|
15
12
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
If `$normalized_args` is empty or equals "--watch":
|
|
19
|
-
|
|
20
|
-
Run the real-time swarm display:
|
|
21
|
-
```bash
|
|
22
|
-
bash .aether/utils/swarm-display.sh
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
This shows:
|
|
26
|
-
- Active ants with caste colors and emojis (🔨 Builder in blue, etc.)
|
|
27
|
-
- Tool usage stats per ant (📖5 🔍3 ✏️2 ⚡1)
|
|
28
|
-
- Trophallaxis metrics (🍯 token consumption)
|
|
29
|
-
- Timing information (elapsed time per ant)
|
|
30
|
-
- Chamber activity map (which nest zones have active ants)
|
|
31
|
-
- Animated status phrases ("excavating...", "foraging...")
|
|
32
|
-
|
|
33
|
-
Display updates automatically as ants start/complete work.
|
|
34
|
-
Press Ctrl+C to exit.
|
|
35
|
-
|
|
36
|
-
### Bug Destruction Mode (With Arguments)
|
|
37
|
-
|
|
38
|
-
The problem to investigate is: `$normalized_args`
|
|
39
|
-
|
|
40
|
-
#### Step 1: Validate Input
|
|
41
|
-
|
|
42
|
-
If `$normalized_args` is empty:
|
|
43
|
-
```
|
|
44
|
-
🔥🐜🗡️🐜🔥 SWARM
|
|
45
|
-
|
|
46
|
-
Deploy parallel scouts to investigate and fix stubborn bugs.
|
|
47
|
-
|
|
48
|
-
Usage: /ant:swarm "<describe the problem>"
|
|
49
|
-
|
|
50
|
-
Examples:
|
|
51
|
-
/ant:swarm "Tests keep failing in auth module"
|
|
52
|
-
/ant:swarm "TypeError: Cannot read property 'id' of undefined"
|
|
53
|
-
/ant:swarm "API returns 500 but I can't find the cause"
|
|
54
|
-
|
|
55
|
-
This is the nuclear option - use when repeated fix attempts fail.
|
|
56
|
-
```
|
|
57
|
-
Stop here.
|
|
58
|
-
|
|
59
|
-
#### Step 2: Read State & Initialize
|
|
60
|
-
|
|
61
|
-
Read `.aether/data/COLONY_STATE.json`.
|
|
62
|
-
If `goal` is null → "No colony initialized. Run /ant:init first.", stop.
|
|
63
|
-
|
|
64
|
-
Generate swarm ID: `swarm-<unix_timestamp>`
|
|
65
|
-
|
|
66
|
-
Initialize swarm findings:
|
|
67
|
-
```bash
|
|
68
|
-
bash .aether/aether-utils.sh swarm-findings-init "<swarm_id>"
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
Initialize swarm display for real-time tracking:
|
|
72
|
-
```bash
|
|
73
|
-
bash .aether/aether-utils.sh swarm-display-init "<swarm_id>"
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
Display header:
|
|
77
|
-
```
|
|
78
|
-
🔥🐜🗡️🐜🔥 ═══════════════════════════════════════════════
|
|
79
|
-
S W A R M D E P L O Y E D
|
|
80
|
-
═══════════════════════════════════════════════ 🔥🐜🗡️🐜🔥
|
|
81
|
-
|
|
82
|
-
🎯 Target: "{problem description}"
|
|
83
|
-
📍 Swarm ID: {swarm_id}
|
|
84
|
-
|
|
85
|
-
⚡ Deploying 4 parallel scouts...
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
#### Step 3: Create Git Checkpoint
|
|
89
|
-
|
|
90
|
-
Before any investigation that might lead to fixes:
|
|
91
|
-
```bash
|
|
92
|
-
bash .aether/aether-utils.sh autofix-checkpoint "pre-swarm-$SWARM_ID"
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
Store the result for potential rollback:
|
|
96
|
-
- `checkpoint_type` = result.type ("stash", "commit", or "none")
|
|
97
|
-
- `checkpoint_ref` = result.ref
|
|
98
|
-
|
|
99
|
-
```
|
|
100
|
-
💾 Checkpoint: {checkpoint_type} → {checkpoint_ref}
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
#### Step 4: Read Context
|
|
104
|
-
|
|
105
|
-
Read existing blockers for context:
|
|
106
|
-
```bash
|
|
107
|
-
bash .aether/aether-utils.sh flag-list --type blocker
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
Read recent activity:
|
|
111
|
-
```bash
|
|
112
|
-
tail -50 .aether/data/activity.log 2>/dev/null || echo "(no activity log)"
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
Scan recent git commits for context:
|
|
116
|
-
```bash
|
|
117
|
-
git log --oneline -20 2>/dev/null || echo "(no git history)"
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
#### Step 5: Deploy 4 Parallel Scouts
|
|
121
|
-
|
|
122
|
-
Use the **Task** tool to spawn 4 scouts **in a single message** (parallel execution):
|
|
123
|
-
|
|
124
|
-
Log each scout to swarm display before spawning:
|
|
125
|
-
```bash
|
|
126
|
-
bash .aether/aether-utils.sh swarm-display-update "{swarm_id}-Archaeologist" "scout" "excavating" "Git history investigation" "Queen" '{"read":0,"grep":0,"edit":0,"bash":3}' 0
|
|
127
|
-
bash .aether/aether-utils.sh swarm-display-update "{swarm_id}-PatternHunter" "scout" "excavating" "Pattern search for similar code" "Queen" '{"read":5,"grep":10,"edit":0,"bash":0}' 0
|
|
128
|
-
bash .aether/aether-utils.sh swarm-display-update "{swarm_id}-ErrorAnalyst" "scout" "excavating" "Error chain analysis" "Queen" '{"read":3,"grep":5,"edit":0,"bash":2}' 0
|
|
129
|
-
bash .aether/aether-utils.sh swarm-display-update "{swarm_id}-WebResearcher" "scout" "excavating" "External source research" "Queen" '{"read":0,"grep":0,"edit":0,"bash":0}' 0
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
**Scout 1: 🏛️ Git Archaeologist**
|
|
133
|
-
```
|
|
134
|
-
You are {swarm_id}-Archaeologist, a 🏛️ Scout Ant.
|
|
135
|
-
|
|
136
|
-
Investigate git history for: {problem description}
|
|
137
|
-
|
|
138
|
-
Steps:
|
|
139
|
-
1. Run `git log --oneline -30`
|
|
140
|
-
2. Run `git log -p --since="1 week ago" -- {relevant files}`
|
|
141
|
-
3. Run `git blame {suspected file}` if mentioned
|
|
142
|
-
4. Find commits that introduced the bug
|
|
143
|
-
|
|
144
|
-
Return ONLY this JSON:
|
|
145
|
-
{"scout": "git-archaeologist", "confidence": 0.0-1.0, "finding": {"likely_cause": "...", "relevant_commits": [], "when_it_broke": "...", "evidence": []}, "suggested_fix": "..."}
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
**Scout 2: 🔍 Pattern Hunter**
|
|
149
|
-
```
|
|
150
|
-
You are {swarm_id}-PatternHunter, a 🔍 Scout Ant.
|
|
151
|
-
|
|
152
|
-
Find working patterns for: {problem description}
|
|
153
|
-
|
|
154
|
-
Steps:
|
|
155
|
-
1. Grep/glob for related working code
|
|
156
|
-
2. Find how other parts handle this
|
|
157
|
-
3. Look for test files showing correct usage
|
|
158
|
-
4. Identify applicable patterns
|
|
159
|
-
|
|
160
|
-
Return ONLY this JSON:
|
|
161
|
-
{"scout": "pattern-hunter", "confidence": 0.0-1.0, "finding": {"working_examples": [], "applicable_patterns": [], "differences": "..."}, "suggested_fix": "..."}
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
**Scout 3: 💥 Error Analyst**
|
|
165
|
-
```
|
|
166
|
-
You are {swarm_id}-ErrorAnalyst, a 🔍 Scout Ant.
|
|
167
|
-
|
|
168
|
-
Analyze error: {problem description}
|
|
169
|
-
|
|
170
|
-
Steps:
|
|
171
|
-
1. Trace through stack trace frames
|
|
172
|
-
2. Identify actual failing line vs surface error
|
|
173
|
-
3. Check for null refs, async issues, type mismatches
|
|
174
|
-
4. Look for error handling masking the issue
|
|
175
|
-
|
|
176
|
-
Return ONLY this JSON:
|
|
177
|
-
{"scout": "error-analyst", "confidence": 0.0-1.0, "finding": {"root_cause": "...", "error_chain": [], "masked_by": "...", "category": "null-ref|async|type|logic|config|dependency"}, "suggested_fix": "..."}
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
**Scout 4: 🌐 Web Researcher**
|
|
181
|
-
```
|
|
182
|
-
You are {swarm_id}-WebResearcher, a 🔍 Scout Ant.
|
|
183
|
-
|
|
184
|
-
Research external solutions for: {problem description}
|
|
185
|
-
|
|
186
|
-
Steps:
|
|
187
|
-
1. Search for exact error message
|
|
188
|
-
2. Find library/framework docs
|
|
189
|
-
3. Check GitHub issues
|
|
190
|
-
4. Find Stack Overflow answers
|
|
191
|
-
|
|
192
|
-
Return ONLY this JSON:
|
|
193
|
-
{"scout": "web-researcher", "confidence": 0.0-1.0, "finding": {"known_issue": true/false, "documentation_link": "...", "similar_issues": [], "community_solutions": []}, "suggested_fix": "..."}
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
Wait for all 4 scouts to complete.
|
|
197
|
-
|
|
198
|
-
#### Step 6: Collect and Cross-Compare Findings
|
|
199
|
-
|
|
200
|
-
As each scout returns, add their findings:
|
|
201
|
-
```bash
|
|
202
|
-
bash .aether/aether-utils.sh swarm-findings-add "{swarm_id}" "{scout_type}" "{confidence}" '{finding_json}'
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
Update scout status in swarm display to "completed":
|
|
206
|
-
```bash
|
|
207
|
-
bash .aether/aether-utils.sh swarm-display-update "{swarm_id}-Archaeologist" "scout" "completed" "Git history investigation" "Queen" '{"read":3,"grep":0,"edit":0,"bash":5}' 150
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
Display each scout's report as they complete:
|
|
211
|
-
```
|
|
212
|
-
🏛️ Archaeologist [{confidence}]
|
|
213
|
-
{summary of finding}
|
|
214
|
-
|
|
215
|
-
🔍 PatternHunter [{confidence}]
|
|
216
|
-
{summary of finding}
|
|
217
|
-
|
|
218
|
-
💥 ErrorAnalyst [{confidence}]
|
|
219
|
-
{summary of finding}
|
|
220
|
-
|
|
221
|
-
🌐 WebResearcher [{confidence}]
|
|
222
|
-
{summary of finding}
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
#### Step 7: Synthesize Solution
|
|
226
|
-
|
|
227
|
-
Cross-compare all findings:
|
|
228
|
-
1. Identify where scouts agree (high confidence)
|
|
229
|
-
2. Note where scouts disagree (investigate further)
|
|
230
|
-
3. Weight by confidence scores
|
|
231
|
-
4. Prefer findings with concrete evidence
|
|
232
|
-
|
|
233
|
-
Rank fix options:
|
|
234
|
-
```
|
|
235
|
-
═══════════════════════════════════════════════
|
|
236
|
-
S O L U T I O N R A N K I N G
|
|
237
|
-
═══════════════════════════════════════════════
|
|
238
|
-
|
|
239
|
-
#1 [0.85 confidence] {best solution}
|
|
240
|
-
Evidence: {supporting scouts}
|
|
241
|
-
|
|
242
|
-
#2 [0.72 confidence] {alternative}
|
|
243
|
-
Evidence: {supporting scouts}
|
|
244
|
-
|
|
245
|
-
#3 [0.45 confidence] {fallback}
|
|
246
|
-
Evidence: {limited support}
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
#### Step 8: Apply Best Fix
|
|
250
|
-
|
|
251
|
-
Select the highest-confidence solution and apply it:
|
|
252
|
-
|
|
253
|
-
**Command Resolution:** Before running verification, resolve `{build_command}` and `{test_command}` using this priority chain (stop at first match per command):
|
|
254
|
-
1. **CLAUDE.md** — Check project CLAUDE.md (in your system context) for explicit build/test commands
|
|
255
|
-
2. **CODEBASE.md** — Read `.aether/data/codebase.md` `## Commands` section
|
|
256
|
-
3. **Fallback** — Use project manifest heuristics (e.g., `npm run build`/`npm test` for package.json)
|
|
257
|
-
|
|
258
|
-
```
|
|
259
|
-
🔧 Applying Fix #1...
|
|
260
|
-
```
|
|
261
|
-
|
|
262
|
-
Make the actual code changes using Edit/Write tools.
|
|
263
|
-
|
|
264
|
-
After applying:
|
|
265
|
-
```bash
|
|
266
|
-
# Run verification
|
|
267
|
-
{build_command} 2>&1 | tail -30
|
|
268
|
-
{test_command} 2>&1 | tail -50
|
|
269
|
-
```
|
|
270
|
-
|
|
271
|
-
#### Step 9: Verify and Report
|
|
272
|
-
|
|
273
|
-
**If verification passes:**
|
|
274
|
-
```
|
|
275
|
-
✅ FIX VERIFIED
|
|
276
|
-
|
|
277
|
-
Build: PASS
|
|
278
|
-
Tests: PASS
|
|
279
|
-
|
|
280
|
-
🔥🐜🗡️🐜🔥 Swarm successful!
|
|
281
|
-
|
|
282
|
-
The fix will be confirmed when you run:
|
|
283
|
-
/ant:continue
|
|
284
|
-
```
|
|
285
|
-
|
|
286
|
-
Inject learnings:
|
|
287
|
-
- Add FOCUS for the pattern that worked (to constraints.json)
|
|
288
|
-
- Add REDIRECT for the anti-pattern that caused the bug (to constraints.json)
|
|
289
|
-
|
|
290
|
-
Set solution in swarm findings:
|
|
291
|
-
```bash
|
|
292
|
-
bash .aether/aether-utils.sh swarm-solution-set "{swarm_id}" '{solution_json}'
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
Log success:
|
|
296
|
-
```bash
|
|
297
|
-
bash .aether/aether-utils.sh activity-log "SWARM_SUCCESS" "Queen" "Swarm {swarm_id} fixed: {brief description}"
|
|
298
|
-
```
|
|
299
|
-
|
|
300
|
-
**If verification fails:**
|
|
301
|
-
```
|
|
302
|
-
❌ FIX VERIFICATION FAILED
|
|
303
|
-
|
|
304
|
-
Build: {status}
|
|
305
|
-
Tests: {status}
|
|
306
|
-
|
|
307
|
-
Attempting rollback...
|
|
308
|
-
```
|
|
309
|
-
|
|
310
|
-
Rollback:
|
|
311
|
-
```bash
|
|
312
|
-
bash .aether/aether-utils.sh autofix-rollback "{checkpoint_type}" "{checkpoint_ref}"
|
|
313
|
-
```
|
|
314
|
-
|
|
315
|
-
Log failure:
|
|
316
|
-
```bash
|
|
317
|
-
bash .aether/aether-utils.sh activity-log "SWARM_FAILED" "Queen" "Swarm {swarm_id} fix failed verification"
|
|
318
|
-
```
|
|
319
|
-
|
|
320
|
-
Track attempt count. If this is the 3rd failure on the same issue:
|
|
321
|
-
```
|
|
322
|
-
⚠️ ARCHITECTURAL CONCERN
|
|
323
|
-
|
|
324
|
-
This problem has resisted 3 swarm attempts.
|
|
325
|
-
|
|
326
|
-
This suggests:
|
|
327
|
-
- Root cause may be architectural, not implementational
|
|
328
|
-
- Pattern may be fundamentally unsound
|
|
329
|
-
- Different approach needed
|
|
330
|
-
|
|
331
|
-
Recommended:
|
|
332
|
-
- Review the codebase architecture
|
|
333
|
-
- Consider refactoring vs. patching
|
|
334
|
-
- Create a new phase for structural fix
|
|
335
|
-
|
|
336
|
-
Swarm will not attempt further fixes on this issue.
|
|
337
|
-
```
|
|
338
|
-
|
|
339
|
-
#### Step 10: Cleanup
|
|
340
|
-
|
|
341
|
-
Clear swarm display:
|
|
342
|
-
```bash
|
|
343
|
-
bash .aether/aether-utils.sh swarm-display-init "complete-{swarm_id}"
|
|
344
|
-
```
|
|
345
|
-
|
|
346
|
-
Archive swarm findings:
|
|
347
|
-
```bash
|
|
348
|
-
bash .aether/aether-utils.sh swarm-cleanup "{swarm_id}" --archive
|
|
349
|
-
```
|
|
13
|
+
You are the **Queen Ant Colony**. Deploy the swarm to destroy a stubborn bug or view real-time colony activity.
|
|
350
14
|
|
|
351
|
-
|
|
352
|
-
```
|
|
353
|
-
🐜 Next steps:
|
|
354
|
-
/ant:continue ⏭️ Verify and advance phase
|
|
355
|
-
/ant:status 📊 View colony status
|
|
356
|
-
/ant:flags 🚩 Check remaining blockers
|
|
357
|
-
```
|
|
15
|
+
## Instructions
|
|
@@ -1,24 +1,18 @@
|
|
|
1
|
+
<!-- Generated from .aether/commands/tunnels.yaml - DO NOT EDIT DIRECTLY -->
|
|
1
2
|
---
|
|
2
3
|
name: ant:tunnels
|
|
3
4
|
description: "🕳️🐜🕳️ Explore tunnels (browse archived colonies, compare chambers)"
|
|
4
5
|
---
|
|
5
6
|
|
|
6
|
-
You are the **Queen**. Browse the colony history.
|
|
7
|
-
|
|
8
|
-
## Instructions
|
|
9
|
-
|
|
10
7
|
### Step -1: Normalize Arguments
|
|
11
8
|
|
|
12
9
|
Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
|
|
13
10
|
|
|
14
11
|
This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
|
|
15
12
|
|
|
16
|
-
|
|
13
|
+
You are the **Queen**. Browse the colony history.
|
|
17
14
|
|
|
18
|
-
|
|
19
|
-
- One argument: Show single chamber detail (Step 3)
|
|
20
|
-
- Two arguments: Compare two chambers (Step 5)
|
|
21
|
-
- More than two: "Too many arguments. Use: /ant:tunnels [chamber1] [chamber2]"
|
|
15
|
+
## Instructions
|
|
22
16
|
|
|
23
17
|
### Step 1: Check for Chambers Directory
|
|
24
18
|
|
|
@@ -1,191 +1,127 @@
|
|
|
1
|
+
<!-- Generated from .aether/commands/update.yaml - DO NOT EDIT DIRECTLY -->
|
|
1
2
|
---
|
|
2
3
|
name: ant:update
|
|
3
|
-
description: "🔄🐜📦🐜🔄 Update
|
|
4
|
+
description: "🔄🐜📦🐜🔄 Update Aether safely from the global hub (transactional)"
|
|
4
5
|
---
|
|
5
6
|
|
|
7
|
+
### Step -1: Normalize Arguments
|
|
8
|
+
|
|
9
|
+
Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
|
|
10
|
+
|
|
11
|
+
This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
|
|
12
|
+
|
|
6
13
|
You are the **Queen Ant Colony**. Update this repo's Aether system files from the global distribution hub.
|
|
7
14
|
|
|
15
|
+
## Safety Rules
|
|
16
|
+
|
|
17
|
+
1. Use the CLI transactional updater (`aether update`) instead of manual `cp` chains.
|
|
18
|
+
2. Never overwrite colony runtime data (`.aether/data/`) or user wisdom (`.aether/QUEEN.md`).
|
|
19
|
+
3. Do **not** assume version numbers are monotonic. Labels may reset; avoid "downgrade" wording.
|
|
20
|
+
4. If update reports dirty managed files, stop and show recovery options unless user requested force.
|
|
21
|
+
|
|
8
22
|
## Instructions
|
|
9
23
|
|
|
10
24
|
### Step 1: Check Hub Availability
|
|
11
25
|
|
|
12
|
-
|
|
26
|
+
Run:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
test -f ~/.aether/version.json && cat ~/.aether/version.json || echo "__NO_HUB__"
|
|
30
|
+
```
|
|
13
31
|
|
|
14
|
-
If
|
|
32
|
+
If output is `__NO_HUB__`, display:
|
|
15
33
|
|
|
16
34
|
```
|
|
17
35
|
No Aether distribution hub found at ~/.aether/
|
|
18
36
|
|
|
19
37
|
To set up the hub, run:
|
|
20
38
|
npx aether-colony install
|
|
21
|
-
|
|
39
|
+
- or -
|
|
22
40
|
aether install
|
|
23
|
-
|
|
24
|
-
The hub provides system file updates across all your Aether repos.
|
|
25
41
|
```
|
|
26
42
|
|
|
27
|
-
Stop here.
|
|
43
|
+
Stop here.
|
|
28
44
|
|
|
29
|
-
|
|
45
|
+
Parse `version` from the JSON as `available_version`.
|
|
30
46
|
|
|
31
|
-
### Step
|
|
47
|
+
### Step 1.5: Verify CLI Availability
|
|
32
48
|
|
|
33
|
-
|
|
49
|
+
Run:
|
|
34
50
|
|
|
35
51
|
```bash
|
|
36
|
-
|
|
52
|
+
command -v aether >/dev/null 2>&1 && echo "__CLI_OK__" || echo "__CLI_MISSING__"
|
|
37
53
|
```
|
|
38
54
|
|
|
39
|
-
If output is
|
|
40
|
-
- Output: `Detected incomplete update, re-syncing...`
|
|
41
|
-
- Run using the Bash tool: `rm -f .aether/.update-pending`
|
|
42
|
-
- Skip the version comparison entirely — proceed directly to Step 3.
|
|
43
|
-
|
|
44
|
-
If output is "CLEAN":
|
|
45
|
-
|
|
46
|
-
Use the Read tool to read `.aether/version.json`.
|
|
47
|
-
|
|
48
|
-
If the file does not exist, set current version to "unknown".
|
|
49
|
-
Otherwise, read the `version` field — this is the **current version**.
|
|
50
|
-
|
|
51
|
-
If current version equals available version, output:
|
|
55
|
+
If output is `__CLI_MISSING__`, display:
|
|
52
56
|
|
|
53
57
|
```
|
|
54
|
-
|
|
58
|
+
The transactional updater is not available because the `aether` CLI is missing.
|
|
55
59
|
|
|
56
|
-
|
|
57
|
-
|
|
60
|
+
Install/update it, then retry:
|
|
61
|
+
npx aether-colony install
|
|
62
|
+
- or -
|
|
63
|
+
npm i -g aether-colony
|
|
58
64
|
```
|
|
59
65
|
|
|
60
|
-
Stop here.
|
|
66
|
+
Stop here.
|
|
61
67
|
|
|
62
|
-
### Step
|
|
68
|
+
### Step 2: Parse Force Flag
|
|
63
69
|
|
|
64
|
-
|
|
70
|
+
Treat either of these as force:
|
|
71
|
+
- `--force`
|
|
72
|
+
- `--force-update`
|
|
65
73
|
|
|
66
|
-
|
|
74
|
+
Set:
|
|
75
|
+
- `update_flags="--force"` when force requested
|
|
76
|
+
- `update_flags=""` otherwise
|
|
67
77
|
|
|
68
|
-
|
|
69
|
-
mkdir -p .aether/docs .aether/utils .aether/templates .aether/schemas .aether/exchange && \
|
|
70
|
-
cp -f ~/.aether/system/aether-utils.sh .aether/ && \
|
|
71
|
-
cp -f ~/.aether/system/workers.md .aether/ 2>/dev/null || true && \
|
|
72
|
-
cp -f ~/.aether/system/CONTEXT.md .aether/ 2>/dev/null || true && \
|
|
73
|
-
cp -f ~/.aether/system/model-profiles.yaml .aether/ 2>/dev/null || true && \
|
|
74
|
-
cp -Rf ~/.aether/system/docs/* .aether/docs/ 2>/dev/null || true && \
|
|
75
|
-
cp -Rf ~/.aether/system/utils/* .aether/utils/ 2>/dev/null || true && \
|
|
76
|
-
cp -Rf ~/.aether/system/templates/* .aether/templates/ 2>/dev/null || true && \
|
|
77
|
-
cp -Rf ~/.aether/system/schemas/* .aether/schemas/ 2>/dev/null || true && \
|
|
78
|
-
cp -Rf ~/.aether/system/exchange/* .aether/exchange/ 2>/dev/null || true && \
|
|
79
|
-
chmod +x .aether/aether-utils.sh && \
|
|
80
|
-
echo "System files synced"
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
Colony data (`.aether/data/`) is never touched.
|
|
78
|
+
### Step 3: Dry-Run Preview
|
|
84
79
|
|
|
85
|
-
|
|
86
|
-
```
|
|
87
|
-
Update couldn't finish — some files didn't copy. Run /ant:update again to retry.
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
### Step 3.5: Sync Rules to .claude/rules/
|
|
91
|
-
|
|
92
|
-
Rules files teach Claude Code about the colony system. Sync them from the hub:
|
|
80
|
+
Run:
|
|
93
81
|
|
|
94
82
|
```bash
|
|
95
|
-
|
|
96
|
-
if [ -d ~/.aether/system/rules ]; then
|
|
97
|
-
mkdir -p .claude/rules
|
|
98
|
-
cp -Rf ~/.aether/system/rules/* .claude/rules/ 2>/dev/null || true
|
|
99
|
-
echo "Rules synced"
|
|
100
|
-
fi
|
|
83
|
+
aether update --dry-run $update_flags
|
|
101
84
|
```
|
|
102
85
|
|
|
103
|
-
|
|
86
|
+
If this fails, show the error output and stop.
|
|
104
87
|
|
|
105
|
-
|
|
88
|
+
### Step 4: Execute Transactional Update
|
|
106
89
|
|
|
107
|
-
|
|
90
|
+
Run:
|
|
108
91
|
|
|
109
92
|
```bash
|
|
110
|
-
|
|
111
|
-
mkdir -p .claude/commands/ant
|
|
112
|
-
cp -R ~/.aether/system/commands/claude/* .claude/commands/ant/ 2>/dev/null
|
|
113
|
-
# Remove orphans: files in dest that aren't in hub
|
|
114
|
-
comm -23 \
|
|
115
|
-
<(cd .claude/commands/ant && find . -type f ! -name '.*' | sort) \
|
|
116
|
-
<(cd ~/.aether/system/commands/claude && find . -type f ! -name '.*' | sort) \
|
|
117
|
-
| while read f; do rm ".claude/commands/ant/$f" && echo " removed stale: .claude/commands/ant/$f"; done
|
|
118
|
-
echo "claude: done"
|
|
119
|
-
|
|
120
|
-
# Sync OpenCode commands
|
|
121
|
-
mkdir -p .opencode/commands/ant
|
|
122
|
-
cp -R ~/.aether/system/commands/opencode/* .opencode/commands/ant/ 2>/dev/null
|
|
123
|
-
comm -23 \
|
|
124
|
-
<(cd .opencode/commands/ant && find . -type f ! -name '.*' | sort) \
|
|
125
|
-
<(cd ~/.aether/system/commands/opencode && find . -type f ! -name '.*' | sort) \
|
|
126
|
-
| while read f; do rm ".opencode/commands/ant/$f" && echo " removed stale: .opencode/commands/ant/$f"; done
|
|
127
|
-
echo "opencode: done"
|
|
128
|
-
|
|
129
|
-
# Sync agents
|
|
130
|
-
mkdir -p .opencode/agents
|
|
131
|
-
cp -R ~/.aether/system/agents/* .opencode/agents/ 2>/dev/null
|
|
132
|
-
comm -23 \
|
|
133
|
-
<(cd .opencode/agents && find . -type f ! -name '.*' | sort) \
|
|
134
|
-
<(cd ~/.aether/system/agents && find . -type f ! -name '.*' | sort) \
|
|
135
|
-
| while read f; do rm ".opencode/agents/$f" && echo " removed stale: .opencode/agents/$f"; done
|
|
136
|
-
echo "agents: done"
|
|
93
|
+
aether update $update_flags
|
|
137
94
|
```
|
|
138
95
|
|
|
139
|
-
|
|
96
|
+
This command handles:
|
|
97
|
+
- checkpoint creation
|
|
98
|
+
- safe sync
|
|
99
|
+
- integrity verification
|
|
100
|
+
- automatic rollback on failure
|
|
140
101
|
|
|
141
|
-
### Step 5:
|
|
102
|
+
### Step 5: Clear Version Cache
|
|
142
103
|
|
|
143
|
-
Run using the Bash tool:
|
|
144
|
-
```
|
|
145
|
-
bash .aether/aether-utils.sh registry-add "$(pwd)" "{available_version}"
|
|
146
|
-
```
|
|
147
104
|
|
|
148
|
-
Substitute `{available_version}` with the version from Step 1.
|
|
149
105
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
{
|
|
153
|
-
"version": "{available_version}",
|
|
154
|
-
"updated_at": "{ISO-8601 timestamp}"
|
|
155
|
-
}
|
|
156
|
-
```
|
|
106
|
+
Run:
|
|
107
|
+
|
|
157
108
|
|
|
158
|
-
Then delete any leftover pending sentinel (update is now complete) using the Bash tool:
|
|
159
109
|
```bash
|
|
160
|
-
rm -f .aether/.
|
|
110
|
+
rm -f .aether/data/.version-check-cache
|
|
161
111
|
```
|
|
162
112
|
|
|
163
113
|
### Step 6: Display Summary
|
|
164
114
|
|
|
165
|
-
|
|
115
|
+
Display a concise summary:
|
|
166
116
|
|
|
167
117
|
```
|
|
168
|
-
🔄🐜📦🐜🔄
|
|
169
|
-
A E T H E R U P D A T E
|
|
170
|
-
═══════════════════════════════════════════════════ 🔄🐜📦🐜🔄
|
|
171
|
-
|
|
172
|
-
Updated: v{current_version} -> v{available_version}
|
|
173
|
-
|
|
174
|
-
System files: {N} updated
|
|
175
|
-
Commands: synced from hub
|
|
176
|
-
Agents: synced from hub
|
|
177
|
-
{if stale files were removed:}
|
|
178
|
-
Stale files removed: {count}
|
|
179
|
-
{list each removed file}
|
|
180
|
-
{end if}
|
|
118
|
+
🔄🐜📦🐜🔄 AETHER UPDATE COMPLETE
|
|
181
119
|
|
|
120
|
+
Hub version label: {available_version}
|
|
121
|
+
Update mode: {normal|force}
|
|
182
122
|
Colony data (.aether/data/) untouched.
|
|
183
|
-
Repo registered in ~/.aether/registry.json.
|
|
184
|
-
```
|
|
185
123
|
|
|
186
|
-
|
|
124
|
+
Note: version labels are treated as identifiers, not strict upgrade/downgrade ordering.
|
|
125
|
+
```
|
|
187
126
|
|
|
188
|
-
The CLI version (`aether update`) performs the same sync-with-cleanup and also supports:
|
|
189
127
|
|
|
190
|
-
- `--dry-run` — Preview what would change without modifying any files
|
|
191
|
-
- `--force` — Stash uncommitted changes in managed files and proceed with the update
|