eagle-mem 4.7.1 → 4.8.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/README.md +76 -9
- package/bin/eagle-mem +1 -0
- package/db/029_orchestration_lanes.sql +45 -0
- package/db/030_orchestration_lane_scope.sql +88 -0
- package/db/031_orchestration_workers.sql +20 -0
- package/db/032_orchestration_run_keys.sql +9 -0
- package/hooks/pre-tool-use.sh +24 -1
- package/hooks/session-start.sh +92 -10
- package/hooks/stop.sh +14 -13
- package/hooks/user-prompt-submit.sh +70 -12
- package/lib/common.sh +170 -3
- package/lib/db-mirrors.sh +9 -2
- package/lib/db-observations.sh +7 -0
- package/lib/db-sessions.sh +7 -1
- package/lib/db-summaries.sh +6 -2
- package/lib/provider.sh +34 -0
- package/package.json +4 -2
- package/scripts/config.sh +30 -0
- package/scripts/health.sh +66 -0
- package/scripts/help.sh +27 -5
- package/scripts/orchestrate.sh +1268 -0
- package/scripts/style.sh +1 -1
- package/skills/eagle-mem-orchestrate/SKILL.md +149 -0
- package/skills/eagle-mem-tasks/SKILL.md +2 -0
package/scripts/style.sh
CHANGED
|
@@ -18,7 +18,7 @@ CROSS="${RED}✗${RESET}"
|
|
|
18
18
|
ARROW="${CYAN}→${RESET}"
|
|
19
19
|
DOT="${DIM}·${RESET}"
|
|
20
20
|
EAGLE_RULE="======================================"
|
|
21
|
-
EAGLE_TAGLINE="
|
|
21
|
+
EAGLE_TAGLINE="shared memory | guardrails | lanes"
|
|
22
22
|
|
|
23
23
|
eagle_header() {
|
|
24
24
|
echo ""
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: eagle-mem-orchestrate
|
|
3
|
+
description: >
|
|
4
|
+
Coordinate multi-agent work with Eagle Mem's durable orchestrator/worker
|
|
5
|
+
lanes. Use when the user wants an orchestrator model, parallel lanes,
|
|
6
|
+
Claude Code and Codex sharing worker status, worktree coordination,
|
|
7
|
+
handoffs, or long-running implementation split across agents.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Eagle Mem — Orchestrator/Worker Lanes
|
|
11
|
+
|
|
12
|
+
## Purpose
|
|
13
|
+
|
|
14
|
+
Use this skill when work is too broad for one agent turn and needs durable
|
|
15
|
+
coordination across Claude Code, Codex, or both.
|
|
16
|
+
|
|
17
|
+
The commands in this skill are for **you, the active agent**, to run from the
|
|
18
|
+
terminal. Do not hand them to the user as setup steps. The user should only see
|
|
19
|
+
brief progress updates or the final handoff when that helps them.
|
|
20
|
+
|
|
21
|
+
Eagle Mem stores each lane in shared SQLite tables and mirrors it into
|
|
22
|
+
`agent_tasks`, so SessionStart can re-inject in-flight lane state after
|
|
23
|
+
compaction or when another agent opens the same project.
|
|
24
|
+
|
|
25
|
+
By default, Eagle Mem routes work to the opposite agent:
|
|
26
|
+
- Codex coordinator -> Claude Code worker (`claude-opus-4-7`, `xhigh`)
|
|
27
|
+
- Claude Code coordinator -> Codex worker (`gpt-5.5`, `xhigh`)
|
|
28
|
+
|
|
29
|
+
Workers run in git worktrees so their edits stay isolated until the coordinator
|
|
30
|
+
reviews and integrates them. The worker wrapper preserves the original Eagle
|
|
31
|
+
Mem project name, so memories and observations recorded inside the worktree
|
|
32
|
+
still attach to the main project.
|
|
33
|
+
|
|
34
|
+
## When To Use
|
|
35
|
+
|
|
36
|
+
Use orchestration when:
|
|
37
|
+
- The work has separate independent lanes, such as API, database, UI, docs, or
|
|
38
|
+
release validation.
|
|
39
|
+
- Claude Code and Codex may work in the same repo and must not duplicate work.
|
|
40
|
+
- A lane needs its own worktree, validation command, or owner.
|
|
41
|
+
- The user asks for an orchestrator/worker model, agent lanes, subagent lanes,
|
|
42
|
+
or durable handoff.
|
|
43
|
+
|
|
44
|
+
Use `eagle-mem tasks` instead when the work is a simple sequential checklist
|
|
45
|
+
that one agent will execute in order.
|
|
46
|
+
|
|
47
|
+
## Workflow
|
|
48
|
+
|
|
49
|
+
### 1. Start The Orchestration Yourself
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
eagle-mem orchestrate init "Ship the release safely"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
This records the goal and current git baseline for the project.
|
|
56
|
+
|
|
57
|
+
### 2. Add Worker Lanes Yourself
|
|
58
|
+
|
|
59
|
+
Create one lane per independent workstream. The description should be
|
|
60
|
+
self-contained enough for a fresh agent context.
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
eagle-mem orchestrate lane add api \
|
|
64
|
+
--agent codex \
|
|
65
|
+
--title "API fixes" \
|
|
66
|
+
--desc "Fix release-boundary checks and add shell-hook regression tests." \
|
|
67
|
+
--validate "npm test"
|
|
68
|
+
|
|
69
|
+
eagle-mem orchestrate lane add docs \
|
|
70
|
+
--agent claude-code \
|
|
71
|
+
--title "Docs and release notes" \
|
|
72
|
+
--desc "Update README and usage docs after implementation is verified."
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### 3. Spawn Worker Lanes Yourself
|
|
76
|
+
|
|
77
|
+
After adding a lane, launch the worker yourself. Do not ask the user to run
|
|
78
|
+
this command.
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
eagle-mem orchestrate spawn api
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
This creates a git worktree, writes a lane prompt, launches the target CLI, and
|
|
85
|
+
records the worker process/log/exit paths in Eagle Mem. Use `--foreground` when
|
|
86
|
+
you need to watch a short worker run inline, `--no-launch` when you only want
|
|
87
|
+
the worktree and prompt prepared, and `--dry-run` to inspect the planned worker
|
|
88
|
+
without creating a worktree.
|
|
89
|
+
|
|
90
|
+
### 4. Sync Or Mark Lane State As Work Proceeds
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
eagle-mem orchestrate sync
|
|
94
|
+
eagle-mem orchestrate lane start api
|
|
95
|
+
eagle-mem orchestrate lane block api --notes "Waiting for failing test output."
|
|
96
|
+
eagle-mem orchestrate lane complete api --notes "npm test passed."
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Lane state should reflect reality. If a lane is blocked, record the blocker so
|
|
100
|
+
the next agent does not repeat the same attempt.
|
|
101
|
+
|
|
102
|
+
### 5. Check Status Before Taking Work
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
eagle-mem orchestrate
|
|
106
|
+
eagle-mem tasks
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Use the lane owner and status to decide what you should work on. Do not take a
|
|
110
|
+
lane that another agent already owns unless the user explicitly redirects it.
|
|
111
|
+
|
|
112
|
+
### 6. Create A Durable Handoff
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
eagle-mem orchestrate handoff --write docs/handoff-context.md
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Use this before compaction, before handing work to another agent, or before
|
|
119
|
+
ending a broad session.
|
|
120
|
+
|
|
121
|
+
## Rules For Agents
|
|
122
|
+
|
|
123
|
+
- Main agent acts as coordinator: define lanes, avoid duplicate work, integrate
|
|
124
|
+
results, and run final validation.
|
|
125
|
+
- The agent runs orchestration commands, including `spawn` and `sync`. Do not
|
|
126
|
+
tell the user to run them.
|
|
127
|
+
- Workers own their lane only. They should not rewrite unrelated lanes or
|
|
128
|
+
revert other agents' changes.
|
|
129
|
+
- Every lane should have a validation command when one is obvious.
|
|
130
|
+
- If a lane is blocked, update the lane with a concrete note rather than
|
|
131
|
+
silently stopping.
|
|
132
|
+
- After completing a lane, emit an `<eagle-summary>` so Eagle Mem captures the
|
|
133
|
+
decision and files touched.
|
|
134
|
+
|
|
135
|
+
## Reference
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
eagle-mem orchestrate # status
|
|
139
|
+
eagle-mem orchestrate --json # lane JSON
|
|
140
|
+
eagle-mem orchestrate init "Goal"
|
|
141
|
+
eagle-mem orchestrate lane add <key> --agent codex --desc "Scope"
|
|
142
|
+
eagle-mem orchestrate spawn <key> # worktree + worker process
|
|
143
|
+
eagle-mem orchestrate sync [key] # reconcile worker state
|
|
144
|
+
eagle-mem orchestrate lane start <key>
|
|
145
|
+
eagle-mem orchestrate lane block <key> --notes "Blocker"
|
|
146
|
+
eagle-mem orchestrate lane complete <key> --notes "Validation passed"
|
|
147
|
+
eagle-mem orchestrate complete
|
|
148
|
+
eagle-mem orchestrate handoff --write docs/handoff-context.md
|
|
149
|
+
```
|
|
@@ -26,6 +26,8 @@ description: >
|
|
|
26
26
|
- The work fits in one context window — just do it directly
|
|
27
27
|
- It's a single-file fix or a quick question
|
|
28
28
|
- The user is exploring, not building (use search/overview instead)
|
|
29
|
+
- The work needs parallel agent lanes or ownership across Claude Code and Codex
|
|
30
|
+
(use `eagle-mem-orchestrate` instead)
|
|
29
31
|
|
|
30
32
|
## Steps
|
|
31
33
|
|