@axiomantic/garden 0.2.7 → 0.2.8
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/SKILL.md +4 -5
- package/bin/binaries/garden-darwin-arm64 +0 -0
- package/bin/binaries/garden-darwin-x64 +0 -0
- package/bin/binaries/garden-linux-arm64 +0 -0
- package/bin/binaries/garden-linux-x64 +0 -0
- package/bin/binaries/garden-win32-x64.exe +0 -0
- package/package.json +1 -1
- package/skills/garden/SKILL.md +4 -5
- package/skills/launch-workers/SKILL.md +3 -2
- package/skills/orchestrate-swarm/SKILL.md +6 -10
package/SKILL.md
CHANGED
|
@@ -295,12 +295,11 @@ To prevent silent deadlocks when workers stall, crash, or fail to re-arm listene
|
|
|
295
295
|
2. **Watchdog Window**: If a worker fails to respond within the expected turn window (e.g. 5–10 minutes) and `rhizo probe` reveals `NO_LISTENER` or unread inbox items:
|
|
296
296
|
- **Escalate Immediately**: Prompt the operator via `ask_question` with the diagnostic status.
|
|
297
297
|
- **Actionable Remediation**: Offer options to (1) re-arm the listener in the worker's terminal session (`rhizo listen <worker>`), (2) reboot the agent harness, or (3) reassign the task via `rhizo reroute <worker> <new_worker>`.
|
|
298
|
-
3. **Orchestrator Self-Audit Watchdog
|
|
299
|
-
-
|
|
300
|
-
- **
|
|
298
|
+
3. **Orchestrator Self-Audit Watchdog (ONLY for OpenAI Codex / ChatGPT)**:
|
|
299
|
+
- **Antigravity & OpenCode Exemption**: In Google Antigravity and OpenCode, DO NOT schedule timers or cron tasks (`schedule(...)`). Antigravity natively and reactively wakes up on background process completion when `rhizo listen` delivers a message.
|
|
300
|
+
- **Codex / ChatGPT Watchdog Only**: In OpenAI Codex Desktop / CLI where background processes cannot reactively wake the harness, arm a scheduled watchdog timer or cron job with stepped backoff (15m $\rightarrow$ 30m $\rightarrow$ 60m $\rightarrow$ 120m $\rightarrow$ Stand Down at check 4).
|
|
301
301
|
- **Reset Invariant**: Resets immediately to base 15m (streak 0) on any listener failure, unread inbox backlog, outbound task dispatch (`rhizo send`/`enqueue`), worker reply, or user chat prompt.
|
|
302
|
-
-
|
|
303
|
-
- When the timer fires, execute the short check: `rhizo watchdog check --agent <orchestrator> --json` and follow `next_action` (`SCHEDULE_TIMER` or `STAND_DOWN`).
|
|
302
|
+
- When the timer fires in Codex, execute the short check: `rhizo watchdog check --agent <orchestrator> --json` and follow `next_action` (`SCHEDULE_TIMER` or `STAND_DOWN`).
|
|
304
303
|
|
|
305
304
|
---
|
|
306
305
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
package/skills/garden/SKILL.md
CHANGED
|
@@ -295,12 +295,11 @@ To prevent silent deadlocks when workers stall, crash, or fail to re-arm listene
|
|
|
295
295
|
2. **Watchdog Window**: If a worker fails to respond within the expected turn window (e.g. 5–10 minutes) and `rhizo probe` reveals `NO_LISTENER` or unread inbox items:
|
|
296
296
|
- **Escalate Immediately**: Prompt the operator via `ask_question` with the diagnostic status.
|
|
297
297
|
- **Actionable Remediation**: Offer options to (1) re-arm the listener in the worker's terminal session (`rhizo listen <worker>`), (2) reboot the agent harness, or (3) reassign the task via `rhizo reroute <worker> <new_worker>`.
|
|
298
|
-
3. **Orchestrator Self-Audit Watchdog
|
|
299
|
-
-
|
|
300
|
-
- **
|
|
298
|
+
3. **Orchestrator Self-Audit Watchdog (ONLY for OpenAI Codex / ChatGPT)**:
|
|
299
|
+
- **Antigravity & OpenCode Exemption**: In Google Antigravity and OpenCode, DO NOT schedule timers or cron tasks (`schedule(...)`). Antigravity natively and reactively wakes up on background process completion when `rhizo listen` delivers a message.
|
|
300
|
+
- **Codex / ChatGPT Watchdog Only**: In OpenAI Codex Desktop / CLI where background processes cannot reactively wake the harness, arm a scheduled watchdog timer or cron job with stepped backoff (15m $\rightarrow$ 30m $\rightarrow$ 60m $\rightarrow$ 120m $\rightarrow$ Stand Down at check 4).
|
|
301
301
|
- **Reset Invariant**: Resets immediately to base 15m (streak 0) on any listener failure, unread inbox backlog, outbound task dispatch (`rhizo send`/`enqueue`), worker reply, or user chat prompt.
|
|
302
|
-
-
|
|
303
|
-
- When the timer fires, execute the short check: `rhizo watchdog check --agent <orchestrator> --json` and follow `next_action` (`SCHEDULE_TIMER` or `STAND_DOWN`).
|
|
302
|
+
- When the timer fires in Codex, execute the short check: `rhizo watchdog check --agent <orchestrator> --json` and follow `next_action` (`SCHEDULE_TIMER` or `STAND_DOWN`).
|
|
304
303
|
|
|
305
304
|
---
|
|
306
305
|
|
|
@@ -104,8 +104,9 @@ The Orchestrator presents the generated prompt blocks to the operator with clear
|
|
|
104
104
|
- `rhizo open "<name>" "<tags>"`
|
|
105
105
|
- `rhizo hook install --codex --agent "<name>"` (if running in Codex CLI/Desktop)
|
|
106
106
|
- `rhizo listen "<name>"` (blocking foreground command with infinite wait)
|
|
107
|
-
5. **Scheduled Health Check Template (
|
|
108
|
-
|
|
107
|
+
5. **Scheduled Health Check Template (ONLY for OpenAI Codex / ChatGPT CLI)**:
|
|
108
|
+
In Google Antigravity (using background `run_command`) and OpenCode (using background ear), DO NOT configure scheduled tasks; reactive background process completion handles wakeups natively.
|
|
109
|
+
In Codex Desktop / CLI where sessions cannot wake from background process exits without external stimulation, prompts include the bulletproof 4-step template:
|
|
109
110
|
- STEP 1: Inspect completed subagents/tasks for unhandled delivered tasks and execute them immediately (never stay quiet with pending work).
|
|
110
111
|
- STEP 2: Inspect active tasks to verify a listener is currently running, and re-arm if missing.
|
|
111
112
|
- STEP 3: Run `rhizo probe <name> --json` and drain any inbox backlog.
|
|
@@ -85,9 +85,9 @@ Whenever the Lead Orchestrator dispatches a task, broadcasts instructions, or aw
|
|
|
85
85
|
|
|
86
86
|
FORBIDDEN: Never yield the conversation turn to the operator after dispatching work without an active background listener running. Yielding a turn without a listener severs the swarm's physical lifeline, trapping worker replies in Redis and causing silent swarm stalls.
|
|
87
87
|
|
|
88
|
-
Safety Net (Scheduled
|
|
89
|
-
In
|
|
90
|
-
- **
|
|
88
|
+
Safety Net (Scheduled Watchdog Protocol — ONLY for OpenAI Codex / ChatGPT):
|
|
89
|
+
- **Antigravity & OpenCode Exemption**: In Google Antigravity (using background `run_command(CommandLine="rhizo listen <orchestrator>", IsDaemon=false, WaitMsBeforeAsync=500)`) and OpenCode (using background ear), DO NOT schedule timers or cron tasks (`schedule(...)`). Antigravity's task manager natively and reactively resumes execution on process exit when `rhizo listen` delivers a message, with zero timer overhead.
|
|
90
|
+
- **Codex / ChatGPT Watchdog Only**: In OpenAI Codex Desktop / CLI where background processes cannot reactively wake the harness, arm a scheduled watchdog timer or cron job using stepped backoff:
|
|
91
91
|
- Initial / After Activity: Base 15 minutes (`DurationSeconds=900`).
|
|
92
92
|
- Quiescent Check 1 (Streak 1): 30 minutes (`DurationSeconds=1800`).
|
|
93
93
|
- Quiescent Check 2 (Streak 2): 60 minutes (`DurationSeconds=3600`).
|
|
@@ -100,18 +100,14 @@ In harnesses supporting `schedule` (e.g. Google Antigravity), arm a debounced wa
|
|
|
100
100
|
3. Any outbound task dispatch (`rhizo send`, `rhizo enqueue`, `rhizo reply`).
|
|
101
101
|
4. Any worker gate report or message receipt.
|
|
102
102
|
5. Any operator interaction or new prompt in chat.
|
|
103
|
-
- **Replace, Never Stack Invariant**:
|
|
104
|
-
Harnesses prohibit concurrent timers with `TimerCondition="any"`. Before setting a timer, inspect running tasks with `manage_task(Action='list')`. If an existing watchdog task is active (`toolName == "schedule"` or prompt includes `[RHIZO WATCHDOG]`), cancel it via `manage_task(Action='kill', TaskId=...)`.
|
|
105
103
|
- **Stand Down Invariants**:
|
|
106
|
-
1. When all tasks in `implementation_plan.md` are complete (`- [x]` 100%),
|
|
104
|
+
1. When all tasks in `implementation_plan.md` are complete (`- [x]` 100%), cancel any running watchdog timer and do not reschedule.
|
|
107
105
|
2. When the watchdog reaches `substatus: "MAX_STREAK_REACHED"` (streak 4/4), stand down and do not reschedule. The background listener process (`rhizo listen`) remains continuously active on Redis `BRPOP` and will wake the session on any new message.
|
|
108
|
-
- **
|
|
109
|
-
Because `TimerCondition="any"` is set, any arriving worker message or background task completion automatically cancels the timer early before it expires. The timer only fires if the orchestrator was silent and deaf for the full cadence duration.
|
|
110
|
-
- **The Short Check (When Timer Fires)**:
|
|
106
|
+
- **The Short Check (When Timer Fires in Codex)**:
|
|
111
107
|
Run `rhizo watchdog check --agent <name> --json`.
|
|
112
108
|
* If `ACTION_REQUIRED: REARM_LISTENER`: start `rhizo listen <name>` in background and schedule base timer (`DurationSeconds=900`).
|
|
113
109
|
* If `ACTION_REQUIRED: UNREAD_MESSAGES`: drain messages with `rhizo drain 10 <name>`, start listener, and schedule base timer (`DurationSeconds=900`).
|
|
114
|
-
* If `OK: LISTENING`: listener is healthy; check `recommended_cadence`. If `next_action == "SCHEDULE_TIMER"`, schedule timer with `DurationSeconds=recommended_cadence
|
|
110
|
+
* If `OK: LISTENING`: listener is healthy; check `recommended_cadence`. If `next_action == "SCHEDULE_TIMER"`, schedule timer with `DurationSeconds=recommended_cadence`.
|
|
115
111
|
* If `STAND_DOWN: MAX_STREAK_REACHED` or `STAND_DOWN: IDLE`: stand down and do NOT reschedule.
|
|
116
112
|
</CRITICAL>
|
|
117
113
|
|