aether-colony 3.1.17 → 5.0.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/{runtime → .aether}/CONTEXT.md +1 -1
- package/{runtime → .aether}/aether-utils.sh +1772 -98
- package/.aether/docs/QUEEN-SYSTEM.md +211 -0
- package/.aether/docs/QUEEN.md +84 -0
- package/.aether/docs/README.md +68 -0
- package/.aether/docs/caste-system.md +48 -0
- package/{runtime → .aether/docs/disciplines}/DISCIPLINES.md +8 -8
- package/.aether/docs/error-codes.md +268 -0
- package/{runtime → .aether}/docs/known-issues.md +42 -26
- package/.aether/docs/queen-commands.md +97 -0
- package/.aether/exchange/colony-registry.xml +11 -0
- package/{runtime → .aether}/exchange/pheromone-xml.sh +2 -1
- package/.aether/exchange/pheromones.xml +87 -0
- package/.aether/exchange/queen-wisdom.xml +14 -0
- package/{runtime → .aether}/exchange/registry-xml.sh +7 -3
- package/{runtime → .aether}/exchange/wisdom-xml.sh +11 -4
- package/.aether/rules/aether-colony.md +134 -0
- package/.aether/schemas/example-prompt-builder.xml +234 -0
- package/.aether/templates/colony-state-reset.jq.template +22 -0
- package/.aether/templates/colony-state.template.json +35 -0
- package/.aether/templates/constraints.template.json +9 -0
- package/.aether/templates/crowned-anthill.template.md +36 -0
- package/.aether/templates/handoff-build-error.template.md +30 -0
- package/.aether/templates/handoff-build-success.template.md +39 -0
- package/.aether/templates/handoff.template.md +40 -0
- package/{runtime → .aether}/utils/atomic-write.sh +5 -5
- package/{runtime → .aether}/utils/chamber-compare.sh +23 -10
- package/{runtime → .aether}/utils/chamber-utils.sh +32 -20
- package/{runtime → .aether}/utils/error-handler.sh +13 -1
- package/{runtime → .aether}/utils/file-lock.sh +49 -13
- package/.aether/utils/semantic-cli.sh +413 -0
- package/{runtime → .aether}/utils/xml-compose.sh +7 -1
- package/.aether/utils/xml-convert.sh +273 -0
- package/.aether/utils/xml-query.sh +201 -0
- package/.aether/utils/xml-utils.sh +110 -0
- package/{runtime → .aether}/workers.md +14 -17
- package/.claude/agents/ant/aether-ambassador.md +264 -0
- package/.claude/agents/ant/aether-archaeologist.md +322 -0
- package/.claude/agents/ant/aether-auditor.md +266 -0
- package/.claude/agents/ant/aether-builder.md +187 -0
- package/.claude/agents/ant/aether-chaos.md +268 -0
- package/.claude/agents/ant/aether-chronicler.md +304 -0
- package/.claude/agents/ant/aether-gatekeeper.md +325 -0
- package/.claude/agents/ant/aether-includer.md +373 -0
- package/.claude/agents/ant/aether-keeper.md +271 -0
- package/.claude/agents/ant/aether-measurer.md +317 -0
- package/.claude/agents/ant/aether-probe.md +210 -0
- package/.claude/agents/ant/aether-queen.md +325 -0
- package/.claude/agents/ant/aether-route-setter.md +173 -0
- package/.claude/agents/ant/aether-sage.md +353 -0
- package/.claude/agents/ant/aether-scout.md +142 -0
- package/.claude/agents/ant/aether-surveyor-disciplines.md +416 -0
- package/.claude/agents/ant/aether-surveyor-nest.md +354 -0
- package/.claude/agents/ant/aether-surveyor-pathogens.md +288 -0
- package/.claude/agents/ant/aether-surveyor-provisions.md +359 -0
- package/.claude/agents/ant/aether-tracker.md +265 -0
- package/.claude/agents/ant/aether-watcher.md +244 -0
- package/.claude/agents/ant/aether-weaver.md +247 -0
- package/.claude/commands/ant/archaeology.md +16 -7
- package/.claude/commands/ant/build.md +415 -284
- package/.claude/commands/ant/chaos.md +19 -10
- package/.claude/commands/ant/colonize.md +58 -24
- package/.claude/commands/ant/continue.md +155 -145
- package/.claude/commands/ant/council.md +15 -5
- package/.claude/commands/ant/dream.md +16 -7
- package/.claude/commands/ant/entomb.md +274 -157
- package/.claude/commands/ant/feedback.md +33 -29
- package/.claude/commands/ant/flag.md +18 -10
- package/.claude/commands/ant/flags.md +14 -6
- package/.claude/commands/ant/focus.md +29 -21
- package/.claude/commands/ant/help.md +11 -1
- package/.claude/commands/ant/history.md +10 -0
- package/.claude/commands/ant/init.md +91 -65
- package/.claude/commands/ant/interpret.md +15 -4
- package/.claude/commands/ant/lay-eggs.md +55 -7
- package/.claude/commands/ant/maturity.md +11 -1
- package/.claude/commands/ant/migrate-state.md +14 -2
- package/.claude/commands/ant/oracle.md +23 -15
- package/.claude/commands/ant/organize.md +29 -20
- package/.claude/commands/ant/pause-colony.md +17 -7
- package/.claude/commands/ant/phase.md +17 -8
- package/.claude/commands/ant/plan.md +20 -9
- package/.claude/commands/ant/redirect.md +29 -32
- package/.claude/commands/ant/resume-colony.md +19 -9
- package/.claude/commands/ant/resume.md +272 -96
- package/.claude/commands/ant/seal.md +201 -191
- package/.claude/commands/ant/status.md +71 -32
- package/.claude/commands/ant/swarm.md +26 -44
- package/.claude/commands/ant/tunnels.md +279 -105
- package/.claude/commands/ant/update.md +81 -20
- package/.claude/commands/ant/verify-castes.md +14 -4
- package/.claude/commands/ant/watch.md +13 -12
- package/.opencode/agents/aether-ambassador.md +63 -20
- package/.opencode/agents/aether-archaeologist.md +29 -12
- package/.opencode/agents/aether-auditor.md +51 -18
- package/.opencode/agents/aether-builder.md +69 -19
- package/.opencode/agents/aether-chaos.md +29 -12
- package/.opencode/agents/aether-chronicler.md +60 -18
- package/.opencode/agents/aether-gatekeeper.md +27 -18
- package/.opencode/agents/aether-includer.md +27 -18
- package/.opencode/agents/aether-keeper.md +89 -18
- package/.opencode/agents/aether-measurer.md +27 -18
- package/.opencode/agents/aether-probe.md +60 -18
- package/.opencode/agents/aether-queen.md +172 -24
- package/.opencode/agents/aether-route-setter.md +57 -12
- package/.opencode/agents/aether-sage.md +26 -18
- package/.opencode/agents/aether-scout.md +27 -19
- package/.opencode/agents/aether-surveyor-disciplines.md +53 -1
- package/.opencode/agents/aether-surveyor-nest.md +53 -1
- package/.opencode/agents/aether-surveyor-pathogens.md +51 -1
- package/.opencode/agents/aether-surveyor-provisions.md +53 -1
- package/.opencode/agents/aether-tracker.md +64 -18
- package/.opencode/agents/aether-watcher.md +66 -19
- package/.opencode/agents/aether-weaver.md +61 -18
- package/.opencode/commands/ant/build.md +406 -192
- package/.opencode/commands/ant/continue.md +66 -76
- package/.opencode/commands/ant/entomb.md +106 -45
- package/.opencode/commands/ant/init.md +46 -48
- package/.opencode/commands/ant/organize.md +5 -5
- package/.opencode/commands/ant/resume.md +334 -0
- package/.opencode/commands/ant/seal.md +33 -24
- package/.opencode/commands/ant/status.md +11 -0
- package/.opencode/commands/ant/tunnels.md +149 -0
- package/.opencode/commands/ant/update.md +59 -16
- package/CHANGELOG.md +79 -0
- package/README.md +135 -353
- package/bin/cli.js +243 -122
- package/bin/generate-commands.sh +2 -2
- package/bin/lib/init.js +13 -3
- package/bin/lib/update-transaction.js +119 -117
- package/bin/sync-to-runtime.sh +5 -137
- package/bin/validate-package.sh +84 -0
- package/package.json +9 -6
- package/.opencode/agents/aether-architect.md +0 -66
- package/.opencode/agents/aether-guardian.md +0 -107
- package/.opencode/agents/workers.md +0 -1034
- package/runtime/QUEEN_ANT_ARCHITECTURE.md +0 -402
- package/runtime/data/signatures.json +0 -41
- package/runtime/docs/AETHER-2.0-IMPLEMENTATION-PLAN.md +0 -1343
- package/runtime/docs/AETHER-PHEROMONE-SYSTEM-MASTER-SPEC.md +0 -2642
- package/runtime/docs/PHEROMONE-INJECTION.md +0 -240
- package/runtime/docs/PHEROMONE-INTEGRATION.md +0 -192
- package/runtime/docs/PHEROMONE-SYSTEM-DESIGN.md +0 -426
- package/runtime/docs/README.md +0 -94
- package/runtime/docs/VISUAL-OUTPUT-SPEC.md +0 -219
- package/runtime/docs/biological-reference.md +0 -272
- package/runtime/docs/codebase-review.md +0 -399
- package/runtime/docs/command-sync.md +0 -164
- package/runtime/docs/constraints.md +0 -116
- package/runtime/docs/implementation-learnings.md +0 -89
- package/runtime/docs/namespace.md +0 -148
- package/runtime/docs/pathogen-schema-example.json +0 -36
- package/runtime/docs/pathogen-schema.md +0 -111
- package/runtime/docs/planning-discipline.md +0 -159
- package/runtime/docs/progressive-disclosure.md +0 -184
- package/runtime/lib/queen-utils.sh +0 -729
- package/runtime/planning.md +0 -159
- package/runtime/recover.sh +0 -136
- package/runtime/utils/xml-utils.sh +0 -2196
- package/runtime/workers-new-castes.md +0 -516
- /package/{runtime → .aether/docs/disciplines}/coding-standards.md +0 -0
- /package/{runtime → .aether/docs/disciplines}/debugging.md +0 -0
- /package/{runtime → .aether/docs/disciplines}/learning.md +0 -0
- /package/{runtime → .aether/docs/disciplines}/tdd.md +0 -0
- /package/{runtime → .aether/docs/disciplines}/verification-loop.md +0 -0
- /package/{runtime → .aether/docs/disciplines}/verification.md +0 -0
- /package/{runtime → .aether}/docs/pheromones.md +0 -0
- /package/{runtime → .aether}/model-profiles.yaml +0 -0
- /package/{runtime → .aether}/schemas/aether-types.xsd +0 -0
- /package/{runtime → .aether}/schemas/colony-registry.xsd +0 -0
- /package/{runtime → .aether}/schemas/pheromone.xsd +0 -0
- /package/{runtime → .aether}/schemas/prompt.xsd +0 -0
- /package/{runtime → .aether}/schemas/queen-wisdom.xsd +0 -0
- /package/{runtime → .aether}/schemas/worker-priming.xsd +0 -0
- /package/{runtime → .aether}/templates/QUEEN.md.template +0 -0
- /package/{runtime → .aether}/utils/colorize-log.sh +0 -0
- /package/{runtime → .aether}/utils/queen-to-md.xsl +0 -0
- /package/{runtime → .aether}/utils/spawn-tree.sh +0 -0
- /package/{runtime → .aether}/utils/spawn-with-model.sh +0 -0
- /package/{runtime → .aether}/utils/state-loader.sh +0 -0
- /package/{runtime → .aether}/utils/swarm-display.sh +0 -0
- /package/{runtime → .aether}/utils/watch-spawn-tree.sh +0 -0
- /package/{runtime → .aether}/utils/xml-core.sh +0 -0
package/runtime/planning.md
DELETED
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
# Planning Discipline
|
|
2
|
-
|
|
3
|
-
## Purpose
|
|
4
|
-
|
|
5
|
-
Write comprehensive implementation plans with bite-sized tasks, assuming workers have zero context. Each task should be one action (2-5 minutes of work).
|
|
6
|
-
|
|
7
|
-
## Core Principles
|
|
8
|
-
|
|
9
|
-
- **DRY** - Don't Repeat Yourself
|
|
10
|
-
- **YAGNI** - You Aren't Gonna Need It
|
|
11
|
-
- **TDD** - Test-Driven Development (test first, always)
|
|
12
|
-
- **Frequent Commits** - One commit per feature/fix
|
|
13
|
-
|
|
14
|
-
## Bite-Sized Task Granularity
|
|
15
|
-
|
|
16
|
-
**Each step is ONE action:**
|
|
17
|
-
|
|
18
|
-
```
|
|
19
|
-
"Write the failing test" - step
|
|
20
|
-
"Run it to make sure it fails" - step
|
|
21
|
-
"Implement the minimal code to make the test pass" - step
|
|
22
|
-
"Run the tests and make sure they pass" - step
|
|
23
|
-
"Commit" - step
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
**NOT acceptable:**
|
|
27
|
-
- "Implement authentication with tests" (too big)
|
|
28
|
-
- "Add validation" (too vague)
|
|
29
|
-
- "Set up the project" (needs breakdown)
|
|
30
|
-
|
|
31
|
-
## Task Structure
|
|
32
|
-
|
|
33
|
-
Each task should include:
|
|
34
|
-
|
|
35
|
-
### 1. Files Section
|
|
36
|
-
|
|
37
|
-
```markdown
|
|
38
|
-
**Files:**
|
|
39
|
-
- Create: `exact/path/to/file.py`
|
|
40
|
-
- Modify: `exact/path/to/existing.py:123-145`
|
|
41
|
-
- Test: `tests/exact/path/to/test.py`
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
Always use exact paths. No "somewhere in src/" ambiguity.
|
|
45
|
-
|
|
46
|
-
### 2. Steps with TDD Flow
|
|
47
|
-
|
|
48
|
-
```markdown
|
|
49
|
-
**Step 1: Write the failing test**
|
|
50
|
-
|
|
51
|
-
\`\`\`python
|
|
52
|
-
def test_specific_behavior():
|
|
53
|
-
result = function(input)
|
|
54
|
-
assert result == expected
|
|
55
|
-
\`\`\`
|
|
56
|
-
|
|
57
|
-
**Step 2: Run test to verify it fails**
|
|
58
|
-
|
|
59
|
-
Run: `pytest tests/path/test.py::test_name -v`
|
|
60
|
-
Expected: FAIL with "function not defined"
|
|
61
|
-
|
|
62
|
-
**Step 3: Write minimal implementation**
|
|
63
|
-
|
|
64
|
-
\`\`\`python
|
|
65
|
-
def function(input):
|
|
66
|
-
return expected
|
|
67
|
-
\`\`\`
|
|
68
|
-
|
|
69
|
-
**Step 4: Run test to verify it passes**
|
|
70
|
-
|
|
71
|
-
Run: `pytest tests/path/test.py::test_name -v`
|
|
72
|
-
Expected: PASS
|
|
73
|
-
|
|
74
|
-
**Step 5: Commit**
|
|
75
|
-
|
|
76
|
-
\`\`\`bash
|
|
77
|
-
git add tests/path/test.py src/path/file.py
|
|
78
|
-
git commit -m "feat: add specific feature"
|
|
79
|
-
\`\`\`
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### 3. Expected Output
|
|
83
|
-
|
|
84
|
-
For every command, specify expected output:
|
|
85
|
-
|
|
86
|
-
```markdown
|
|
87
|
-
Run: `npm test`
|
|
88
|
-
Expected: 47 passing, 0 failing
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
Not just "run tests" - specify what success looks like.
|
|
92
|
-
|
|
93
|
-
## Phase Structure
|
|
94
|
-
|
|
95
|
-
```markdown
|
|
96
|
-
### Phase N: [Component Name]
|
|
97
|
-
|
|
98
|
-
**Goal:** [One sentence describing what this phase achieves]
|
|
99
|
-
|
|
100
|
-
**Dependencies:** [What must exist before this phase]
|
|
101
|
-
|
|
102
|
-
**Tasks:**
|
|
103
|
-
|
|
104
|
-
#### Task N.1: [Specific action]
|
|
105
|
-
|
|
106
|
-
**Files:**
|
|
107
|
-
- Create: `src/components/Button.tsx`
|
|
108
|
-
- Test: `tests/components/Button.test.tsx`
|
|
109
|
-
|
|
110
|
-
**Steps:**
|
|
111
|
-
(TDD steps as above)
|
|
112
|
-
|
|
113
|
-
**Success Criteria:**
|
|
114
|
-
- Tests pass for Button component
|
|
115
|
-
- Component renders without errors
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
## Quality Checks
|
|
119
|
-
|
|
120
|
-
Before a plan is complete, verify:
|
|
121
|
-
|
|
122
|
-
1. **Exact paths** - Every file reference is complete path
|
|
123
|
-
2. **Complete code** - No "add appropriate code" placeholders
|
|
124
|
-
3. **Expected outputs** - Every command has expected result
|
|
125
|
-
4. **TDD flow** - Test before implementation for each feature
|
|
126
|
-
5. **No assumptions** - Worker could execute with zero context
|
|
127
|
-
6. **Commit points** - Clear where to commit
|
|
128
|
-
|
|
129
|
-
## Integration with Colony
|
|
130
|
-
|
|
131
|
-
The Route-Setter Ant follows this discipline when generating plans.
|
|
132
|
-
|
|
133
|
-
Each task in `plan.phases[N].tasks` should be:
|
|
134
|
-
- Executable in 2-5 minutes
|
|
135
|
-
- Self-contained with file paths
|
|
136
|
-
- Verifiable with specific success criteria
|
|
137
|
-
|
|
138
|
-
## Red Flags
|
|
139
|
-
|
|
140
|
-
**Never in a plan:**
|
|
141
|
-
- "Add tests" (which tests? for what?)
|
|
142
|
-
- "Implement feature" (what specifically?)
|
|
143
|
-
- "Update file" (which file? what changes?)
|
|
144
|
-
- "Handle edge cases" (which cases?)
|
|
145
|
-
|
|
146
|
-
**Always in a plan:**
|
|
147
|
-
- Exact file paths
|
|
148
|
-
- Complete code snippets
|
|
149
|
-
- Exact commands to run
|
|
150
|
-
- Expected outputs/results
|
|
151
|
-
- One action per step
|
|
152
|
-
|
|
153
|
-
## Why This Matters
|
|
154
|
-
|
|
155
|
-
- Workers can execute without asking questions
|
|
156
|
-
- Progress is measurable (step by step)
|
|
157
|
-
- Debugging is easier (clear steps to trace)
|
|
158
|
-
- Commits are atomic and meaningful
|
|
159
|
-
- Quality is built in (TDD from start)
|
package/runtime/recover.sh
DELETED
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# Aether v3.1 Recovery Script
|
|
3
|
-
# Run this after reading RECOVERY-PLAN.md
|
|
4
|
-
|
|
5
|
-
set -e
|
|
6
|
-
|
|
7
|
-
echo "╔══════════════════════════════════════════════════════════════╗"
|
|
8
|
-
echo "║ AETHER v3.1 RECOVERY - RUNNING SYNC ║"
|
|
9
|
-
echo "╚══════════════════════════════════════════════════════════════╝"
|
|
10
|
-
echo ""
|
|
11
|
-
|
|
12
|
-
# Colors
|
|
13
|
-
RED='\033[0;31m'
|
|
14
|
-
GREEN='\033[0;32m'
|
|
15
|
-
YELLOW='\033[1;33m'
|
|
16
|
-
NC='\033[0m' # No Color
|
|
17
|
-
|
|
18
|
-
# Step 1: Check if we're in the right place
|
|
19
|
-
if [ ! -f "package.json" ] || [ ! -d ".aether" ] || [ ! -d "runtime" ]; then
|
|
20
|
-
echo -e "${RED}ERROR: Must run from Aether repo root${NC}"
|
|
21
|
-
exit 1
|
|
22
|
-
fi
|
|
23
|
-
|
|
24
|
-
# Step 2: Commit any staged changes
|
|
25
|
-
echo "Step 1: Checking git status..."
|
|
26
|
-
if ! git diff --cached --quiet; then
|
|
27
|
-
echo "Found staged changes. Committing..."
|
|
28
|
-
git commit -m "recovery: staged changes before sync"
|
|
29
|
-
fi
|
|
30
|
-
|
|
31
|
-
# Step 3: Sync runtime/ from .aether/
|
|
32
|
-
echo ""
|
|
33
|
-
echo "Step 2: Syncing runtime/ from .aether/..."
|
|
34
|
-
echo "------------------------------------------"
|
|
35
|
-
|
|
36
|
-
# Core files
|
|
37
|
-
echo " → workers.md"
|
|
38
|
-
cp .aether/workers.md runtime/workers.md
|
|
39
|
-
|
|
40
|
-
echo " → aether-utils.sh"
|
|
41
|
-
cp .aether/aether-utils.sh runtime/aether-utils.sh
|
|
42
|
-
|
|
43
|
-
echo " → verification-loop.md"
|
|
44
|
-
cp .aether/verification-loop.md runtime/verification-loop.md 2>/dev/null || echo " (skipped - not in .aether)"
|
|
45
|
-
|
|
46
|
-
# Utils - sync all files
|
|
47
|
-
echo ""
|
|
48
|
-
echo " → utilities/"
|
|
49
|
-
for file in .aether/utils/*.sh; do
|
|
50
|
-
if [ -f "$file" ]; then
|
|
51
|
-
filename=$(basename "$file")
|
|
52
|
-
echo " copying $filename"
|
|
53
|
-
cp "$file" "runtime/utils/$filename"
|
|
54
|
-
fi
|
|
55
|
-
done
|
|
56
|
-
|
|
57
|
-
# Docs - ensure runtime/docs/ exists and has files
|
|
58
|
-
if [ -d ".aether/docs" ]; then
|
|
59
|
-
echo ""
|
|
60
|
-
echo " → docs/"
|
|
61
|
-
mkdir -p runtime/docs
|
|
62
|
-
for file in .aether/docs/*.md .aether/docs/*.json 2>/dev/null; do
|
|
63
|
-
if [ -f "$file" ]; then
|
|
64
|
-
filename=$(basename "$file")
|
|
65
|
-
echo " copying $filename"
|
|
66
|
-
cp "$file" "runtime/docs/$filename"
|
|
67
|
-
fi
|
|
68
|
-
done
|
|
69
|
-
fi
|
|
70
|
-
|
|
71
|
-
# Step 4: Verify the sync
|
|
72
|
-
echo ""
|
|
73
|
-
echo "Step 3: Verifying sync..."
|
|
74
|
-
echo "------------------------------------------"
|
|
75
|
-
|
|
76
|
-
# Check emoji section
|
|
77
|
-
if grep -q "Caste Emoji Mapping:" runtime/workers.md; then
|
|
78
|
-
echo -e "${GREEN} ✓ workers.md has emoji section${NC}"
|
|
79
|
-
else
|
|
80
|
-
echo -e "${RED} ✗ workers.md MISSING emoji section${NC}"
|
|
81
|
-
fi
|
|
82
|
-
|
|
83
|
-
# Check get_caste_emoji
|
|
84
|
-
if grep -q "get_caste_emoji()" runtime/aether-utils.sh; then
|
|
85
|
-
echo -e "${GREEN} ✓ aether-utils.sh has get_caste_emoji${NC}"
|
|
86
|
-
else
|
|
87
|
-
echo -e "${RED} ✗ aether-utils.sh MISSING get_caste_emoji${NC}"
|
|
88
|
-
fi
|
|
89
|
-
|
|
90
|
-
# Count utils files
|
|
91
|
-
RUNTIME_UTILS=$(ls runtime/utils/*.sh 2>/dev/null | wc -l)
|
|
92
|
-
AETHER_UTILS=$(ls .aether/utils/*.sh 2>/dev/null | wc -l)
|
|
93
|
-
echo " → runtime/utils: $RUNTIME_UTILS files"
|
|
94
|
-
echo " → .aether/utils: $AETHER_UTILS files"
|
|
95
|
-
|
|
96
|
-
if [ "$RUNTIME_UTILS" -eq "$AETHER_UTILS" ]; then
|
|
97
|
-
echo -e "${GREEN} ✓ Utils counts match${NC}"
|
|
98
|
-
else
|
|
99
|
-
echo -e "${YELLOW} ⚠ Utils counts differ (may be okay if some are .aether-specific)${NC}"
|
|
100
|
-
fi
|
|
101
|
-
|
|
102
|
-
# Step 5: Stage the changes
|
|
103
|
-
echo ""
|
|
104
|
-
echo "Step 4: Staging changes..."
|
|
105
|
-
git add runtime/
|
|
106
|
-
|
|
107
|
-
# Show status
|
|
108
|
-
echo ""
|
|
109
|
-
echo "Git status after sync:"
|
|
110
|
-
git status --short runtime/
|
|
111
|
-
|
|
112
|
-
# Step 6: Instructions
|
|
113
|
-
echo ""
|
|
114
|
-
echo "╔══════════════════════════════════════════════════════════════╗"
|
|
115
|
-
echo "║ RECOVERY SYNC COMPLETE ║"
|
|
116
|
-
echo "╚══════════════════════════════════════════════════════════════╝"
|
|
117
|
-
echo ""
|
|
118
|
-
echo "Next steps:"
|
|
119
|
-
echo ""
|
|
120
|
-
echo " 1. Review the changes:"
|
|
121
|
-
echo " git diff --cached runtime/"
|
|
122
|
-
echo ""
|
|
123
|
-
echo " 2. Commit the sync:"
|
|
124
|
-
echo " git commit -m 'sync: runtime/ updated from working .aether/'"
|
|
125
|
-
echo ""
|
|
126
|
-
echo " 3. Reinstall to update hub:"
|
|
127
|
-
echo " npm install -g ."
|
|
128
|
-
echo ""
|
|
129
|
-
echo " 4. Verify hub updated:"
|
|
130
|
-
echo " grep 'Caste Emoji Mapping:' ~/.aether/system/workers.md"
|
|
131
|
-
echo ""
|
|
132
|
-
echo " 5. Test in this repo:"
|
|
133
|
-
echo " /ant:init 'Test recovery'"
|
|
134
|
-
echo ""
|
|
135
|
-
echo "Remember: .aether/ is the SOURCE OF TRUTH. runtime/ is auto-populated by bin/sync-to-runtime.sh"
|
|
136
|
-
echo ""
|