opencode-swarm-plugin 0.62.1 → 0.63.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.
@@ -0,0 +1,198 @@
1
+ ---
2
+ name: ralph-supervisor
3
+ description: |
4
+ Ralph loop pattern - Claude supervises while Codex (gpt-5.3-codex) executes
5
+ implementation work. Use for autonomous coding loops with fresh context per
6
+ iteration, validation gates, and git-backed persistence. Tools: ralph_init,
7
+ ralph_story, ralph_iterate, ralph_loop, ralph_status, ralph_cancel, ralph_review.
8
+ ---
9
+
10
+ # Ralph Supervisor Pattern
11
+
12
+ Ralph implements an autonomous coding loop where Claude acts as supervisor and Codex executes implementation work. Named after the pattern from [openclaw-codex-ralph](https://github.com/joelhooks/openclaw-codex-ralph).
13
+
14
+ ## Core Philosophy
15
+
16
+ Traditional AI sessions accumulate context and drift. Ralph uses:
17
+ - **Fresh context per iteration** - Each Codex session starts clean
18
+ - **Git-backed persistence** - Completed work lives in commits
19
+ - **Validation gates** - Tests must pass before progression
20
+ - **Progress carryover** - Learnings flow forward (last 2000 chars)
21
+
22
+ ## Architecture
23
+
24
+ ```
25
+ ┌──────────────────────────────────────────────────────────┐
26
+ │ RALPH ARCHITECTURE │
27
+ ├──────────────────────────────────────────────────────────┤
28
+ │ │
29
+ │ ┌─────────────┐ ┌─────────────┐ │
30
+ │ │ Claude │ spawns │ Codex │ │
31
+ │ │ (Supervisor)│ ──────► │ (Executor) │ │
32
+ │ └─────────────┘ └─────────────┘ │
33
+ │ │ │ │
34
+ │ │ plans/reviews │ implements │
35
+ │ ▼ ▼ │
36
+ │ ┌─────────────┐ ┌─────────────┐ │
37
+ │ │ prd.json │ │ Code + │ │
38
+ │ │ (stories) │ │ Tests │ │
39
+ │ └─────────────┘ └─────────────┘ │
40
+ │ │ │ │
41
+ │ │ │ validates │
42
+ │ ▼ ▼ │
43
+ │ ┌─────────────┐ ┌─────────────┐ │
44
+ │ │progress.txt │◄────────│ npm test │ │
45
+ │ │ (learnings) │ logs │ typecheck │ │
46
+ │ └─────────────┘ └─────────────┘ │
47
+ │ │ │ │
48
+ │ │ │ on success │
49
+ │ ▼ ▼ │
50
+ │ ┌─────────────┐ ┌─────────────┐ │
51
+ │ │ Hivemind │ │ Git Commit │ │
52
+ │ │ (semantic) │ │ (persist) │ │
53
+ │ └─────────────┘ └─────────────┘ │
54
+ │ │
55
+ └──────────────────────────────────────────────────────────┘
56
+ ```
57
+
58
+ ## Iteration Lifecycle
59
+
60
+ ```
61
+ 1. Read PRD → Find next pending story (by priority)
62
+ 2. Load progress.txt + AGENTS.md for context
63
+ 3. Build iteration prompt for Codex
64
+ 4. Spawn Codex (codex exec --full-auto)
65
+ 5. Run validation command
66
+ 6. If success:
67
+ - Mark story.status = "passed"
68
+ - Append to progress.txt
69
+ - Git commit
70
+ 7. If failure:
71
+ - Log failure details
72
+ - Keep story for retry
73
+ 8. Repeat until all stories pass or limits hit
74
+ ```
75
+
76
+ ## Story Structure
77
+
78
+ ```json
79
+ {
80
+ "id": "story-1234567890",
81
+ "title": "Add user authentication",
82
+ "description": "Implement login/logout with JWT...",
83
+ "priority": 1,
84
+ "status": "pending",
85
+ "validation_command": "npm test && npm run typecheck",
86
+ "acceptance_criteria": [
87
+ "JWT token generation works",
88
+ "Refresh token flow implemented"
89
+ ],
90
+ "attempts": 0,
91
+ "files_touched": [],
92
+ "created_at": "2024-01-15T10:00:00Z",
93
+ "updated_at": "2024-01-15T10:00:00Z"
94
+ }
95
+ ```
96
+
97
+ ## PRD Structure
98
+
99
+ ```json
100
+ {
101
+ "version": "1.0",
102
+ "project_name": "My Feature",
103
+ "description": "Adding OAuth support...",
104
+ "stories": [...],
105
+ "metadata": {
106
+ "created_at": "...",
107
+ "last_iteration": "...",
108
+ "total_iterations": 5,
109
+ "total_stories_completed": 3
110
+ }
111
+ }
112
+ ```
113
+
114
+ ## Supervisor Best Practices
115
+
116
+ ### Story Design
117
+
118
+ - **Granular scope** - Each story should fit in one Codex context
119
+ - **Clear acceptance criteria** - Specific, testable requirements
120
+ - **Proper validation** - Tests that actually verify the work
121
+ - **Priority ordering** - Dependencies first (lower number = higher priority)
122
+
123
+ ### Review Process
124
+
125
+ ```
126
+ ┌─────────────────────────────────────────────────────────────┐
127
+ │ REVIEW CHECKLIST │
128
+ ├─────────────────────────────────────────────────────────────┤
129
+ │ │
130
+ │ □ Tests pass (validation_command succeeded) │
131
+ │ □ Acceptance criteria met │
132
+ │ □ Code quality acceptable │
133
+ │ □ No security issues introduced │
134
+ │ □ Integration with existing code correct │
135
+ │ │
136
+ │ If YES to all → ralph_review({ approve: true }) │
137
+ │ If NO to any → ralph_review({ approve: false, │
138
+ │ feedback: "Specific issue"})│
139
+ │ │
140
+ └─────────────────────────────────────────────────────────────┘
141
+ ```
142
+
143
+ ### Knowledge Persistence
144
+
145
+ After completing a project, store learnings:
146
+
147
+ ```typescript
148
+ hivemind_store({
149
+ information: "OAuth implementation: Used refresh token rotation pattern with 7-day expiry. Key gotcha: must invalidate old refresh token on use.",
150
+ tags: "oauth,auth,tokens,patterns",
151
+ confidence: 0.9
152
+ })
153
+ ```
154
+
155
+ ## Configuration
156
+
157
+ | Parameter | Default | Description |
158
+ |-----------|---------|-------------|
159
+ | `model` | `gpt-5.3-codex` | Codex model to use |
160
+ | `sandbox` | `workspace-write` | Sandbox mode |
161
+ | `max_iterations` | `20` | Loop limit |
162
+ | `auto_commit` | `true` | Commit on success |
163
+ | `progress_context_limit` | `2000` | Chars of progress in prompt |
164
+ | `default_validation` | `npm run typecheck; npm test` | Fallback validation |
165
+
166
+ ## Events Emitted
167
+
168
+ | Event | When |
169
+ |-------|------|
170
+ | `ralph:init` | Project initialized |
171
+ | `ralph:story:added` | Story added to PRD |
172
+ | `ralph:iteration:start` | Iteration begins |
173
+ | `ralph:iteration:complete` | Iteration ends |
174
+ | `ralph:loop:start` | Loop begins |
175
+ | `ralph:loop:iteration` | Each loop iteration |
176
+ | `ralph:loop:complete` | Loop finishes |
177
+ | `ralph:loop:error` | Loop error |
178
+ | `ralph:review:approved` | Work approved |
179
+ | `ralph:review:rejected` | Work rejected |
180
+
181
+ ## Error Handling
182
+
183
+ | Error | Recovery |
184
+ |-------|----------|
185
+ | Codex timeout | Retry with longer timeout |
186
+ | Validation fail | Fix in next iteration |
187
+ | No stories left | All complete, exit |
188
+ | Max iterations | Report remaining work |
189
+
190
+ ## Comparison: Ralph vs Swarm
191
+
192
+ | Aspect | Ralph | Swarm |
193
+ |--------|-------|-------|
194
+ | Executor | Codex | Claude workers |
195
+ | Parallelism | Sequential | Parallel |
196
+ | Context | Fresh per iteration | Shared via hivemind |
197
+ | Review | Supervisor reviews each | Coordinator reviews all |
198
+ | Best for | Complex sequential tasks | Independent parallel tasks |
@@ -1,7 +1,9 @@
1
1
  ---
2
2
  name: swarm-cli
3
- description: Swarm CLI commands for workers - hivemind memory, hive tasks, swarmmail coordination. Load this skill when working in a swarm context.
4
- allowed-tools: Bash(swarm *)
3
+ description: |
4
+ Swarm CLI commands for workers - hivemind memory, hive tasks, swarmmail coordination.
5
+ Use when working in a swarm context. Covers: swarm memory (find/store/get/stats),
6
+ swarm cells (query/create/update/close), and coordination commands.
5
7
  ---
6
8
 
7
9
  # Swarm CLI Quick Reference
@@ -1,16 +1,9 @@
1
1
  ---
2
2
  name: swarm-coordination
3
- description: Multi-agent coordination patterns for OpenCode swarm workflows. Use when work benefits from parallelization or coordination.
4
- tags:
5
- - swarm
6
- - multi-agent
7
- - coordination
8
- tools:
9
- - "*"
10
- related_skills:
11
- - testing-patterns
12
- - system-design
13
- - cli-builder
3
+ description: |
4
+ Multi-agent coordination patterns for OpenCode swarm workflows. Use when work
5
+ benefits from parallelization or coordination. Covers: decomposition, worker
6
+ spawning, file reservations, progress tracking, and review loops.
14
7
  ---
15
8
 
16
9
  # Swarm Coordination
@@ -100,6 +93,98 @@ Coordinators never reserve files.
100
93
 
101
94
  Use `swarm_progress` at 25%, 50%, and 75% completion to trigger auto-checkpoints.
102
95
 
96
+ ## Spawning Workers (CRITICAL - Read This)
97
+
98
+ ### Step 1: Prepare the subtask with swarm_spawn_subtask
99
+
100
+ ```typescript
101
+ const spawnResult = await swarm_spawn_subtask({
102
+ bead_id: "cell-abc123", // The hive cell ID for this subtask
103
+ epic_id: "epic-xyz789", // Parent epic ID
104
+ subtask_title: "Add logging utilities",
105
+ subtask_description: "Create a logger module with structured logging support",
106
+ files: ["src/utils/logger.ts", "src/utils/logger.test.ts"], // Array of strings, NOT a JSON string
107
+ shared_context: "This epic is adding observability. Other workers are adding metrics and tracing.",
108
+ project_path: "/absolute/path/to/project" // Required for tracking
109
+ });
110
+ ```
111
+
112
+ ### Step 2: Spawn the worker with Task tool
113
+
114
+ ```typescript
115
+ // Parse the result to get the prompt
116
+ const { prompt, recommended_model } = JSON.parse(spawnResult);
117
+
118
+ // Spawn the worker
119
+ await Task({
120
+ subagent_type: "swarm:worker",
121
+ prompt: prompt,
122
+ model: recommended_model // Optional: use the auto-selected model
123
+ });
124
+ ```
125
+
126
+ ### Common Mistakes
127
+
128
+ **WRONG - files as JSON string:**
129
+ ```typescript
130
+ files: '["src/auth.ts"]' // DON'T do this
131
+ ```
132
+
133
+ **CORRECT - files as proper array:**
134
+ ```typescript
135
+ files: ["src/auth.ts", "src/auth.test.ts"] // Do this
136
+ ```
137
+
138
+ **WRONG - missing project_path:**
139
+ ```typescript
140
+ swarm_spawn_subtask({
141
+ bead_id: "...",
142
+ epic_id: "...",
143
+ // No project_path - worker can't initialize tracking!
144
+ })
145
+ ```
146
+
147
+ **CORRECT - always include project_path:**
148
+ ```typescript
149
+ swarm_spawn_subtask({
150
+ bead_id: "...",
151
+ epic_id: "...",
152
+ project_path: "/Users/joel/myproject" // Required!
153
+ })
154
+ ```
155
+
156
+ ## Parallel vs Sequential Spawning
157
+
158
+ ### Parallel (independent tasks)
159
+
160
+ Send multiple Task calls in a single message:
161
+
162
+ ```typescript
163
+ // All in one message - runs in parallel
164
+ Task({ subagent_type: "swarm:worker", prompt: prompt1 })
165
+ Task({ subagent_type: "swarm:worker", prompt: prompt2 })
166
+ Task({ subagent_type: "swarm:worker", prompt: prompt3 })
167
+ ```
168
+
169
+ ### Sequential (dependent tasks)
170
+
171
+ Await each before spawning next:
172
+
173
+ ```typescript
174
+ const result1 = await Task({ subagent_type: "swarm:worker", prompt: prompt1 });
175
+ // Review result1...
176
+ const result2 = await Task({ subagent_type: "swarm:worker", prompt: prompt2 });
177
+ ```
178
+
179
+ ## Story Status Flow
180
+
181
+ Status transitions should flow:
182
+ 1. **Coordinator** sets story to `in_progress` when spawning worker
183
+ 2. **Worker** completes work and sets to `ready_for_review`
184
+ 3. **Coordinator** reviews and sets to `passed` or `failed`
185
+
186
+ Workers do NOT set final status - that's the coordinator's job after review.
187
+
103
188
  ## Skill Loading Guidance
104
189
 
105
190
  Workers should load skills based on task type:
package/dist/bin/swarm.js CHANGED
@@ -304893,7 +304893,7 @@ WD9f
304893
304893
 
304894
304894
  // ../../node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built/utils/index.js
304895
304895
  var require_utils11 = __commonJS((exports2) => {
304896
- var __dirname = "/home/runner/work/swarm-tools/swarm-tools/node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built/utils";
304896
+ var __dirname = "/Users/joel/Code/joelhooks/opencode-swarm-plugin/node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built/utils";
304897
304897
  Object.defineProperty(exports2, "__esModule", { value: true });
304898
304898
  exports2.noop = exports2.defaults = exports2.Debug = exports2.getPackageMeta = exports2.zipMap = exports2.CONNECTION_CLOSED_ERROR_MSG = exports2.shuffle = exports2.sample = exports2.resolveTLSProfile = exports2.parseURL = exports2.optimizeErrorStack = exports2.toArg = exports2.convertMapToArray = exports2.convertObjectToArray = exports2.timeout = exports2.packObject = exports2.isInt = exports2.wrapMultiResult = exports2.convertBufferToString = undefined;
304899
304899
  var fs_1 = __require("fs");
@@ -305179,7 +305179,7 @@ var require_argumentParsers = __commonJS((exports2) => {
305179
305179
 
305180
305180
  // ../../node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built/Command.js
305181
305181
  var require_Command = __commonJS((exports2) => {
305182
- var __dirname = "/home/runner/work/swarm-tools/swarm-tools/node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built";
305182
+ var __dirname = "/Users/joel/Code/joelhooks/opencode-swarm-plugin/node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built";
305183
305183
  Object.defineProperty(exports2, "__esModule", { value: true });
305184
305184
  var commands_1 = require_built();
305185
305185
  var calculateSlot = require_lib();
@@ -329185,7 +329185,7 @@ var require_node_gyp_build_optional_packages = __commonJS((exports2, module2) =>
329185
329185
 
329186
329186
  // ../../node_modules/.bun/msgpackr-extract@3.0.3/node_modules/msgpackr-extract/index.js
329187
329187
  var require_msgpackr_extract = __commonJS((exports2, module2) => {
329188
- var __dirname = "/home/runner/work/swarm-tools/swarm-tools/node_modules/.bun/msgpackr-extract@3.0.3/node_modules/msgpackr-extract";
329188
+ var __dirname = "/Users/joel/Code/joelhooks/opencode-swarm-plugin/node_modules/.bun/msgpackr-extract@3.0.3/node_modules/msgpackr-extract";
329189
329189
  module2.exports = require_node_gyp_build_optional_packages()(__dirname);
329190
329190
  });
329191
329191
 
@@ -353488,7 +353488,7 @@ var require_indexes3 = __commonJS((exports2, module2) => {
353488
353488
 
353489
353489
  // ../../node_modules/.bun/thread-stream@3.1.0/node_modules/thread-stream/index.js
353490
353490
  var require_thread_stream = __commonJS((exports2, module2) => {
353491
- var __dirname = "/home/runner/work/swarm-tools/swarm-tools/node_modules/.bun/thread-stream@3.1.0/node_modules/thread-stream";
353491
+ var __dirname = "/Users/joel/Code/joelhooks/opencode-swarm-plugin/node_modules/.bun/thread-stream@3.1.0/node_modules/thread-stream";
353492
353492
  var { version: version6 } = require_package();
353493
353493
  var { EventEmitter: EventEmitter5 } = __require("events");
353494
353494
  var { Worker: Worker3 } = __require("worker_threads");
@@ -353909,7 +353909,7 @@ var require_thread_stream = __commonJS((exports2, module2) => {
353909
353909
 
353910
353910
  // ../../node_modules/.bun/pino@9.14.0/node_modules/pino/lib/transport.js
353911
353911
  var require_transport = __commonJS((exports2, module2) => {
353912
- var __dirname = "/home/runner/work/swarm-tools/swarm-tools/node_modules/.bun/pino@9.14.0/node_modules/pino/lib";
353912
+ var __dirname = "/Users/joel/Code/joelhooks/opencode-swarm-plugin/node_modules/.bun/pino@9.14.0/node_modules/pino/lib";
353913
353913
  var { createRequire: createRequire6 } = __require("module");
353914
353914
  var getCallers = require_caller();
353915
353915
  var { join: join18, isAbsolute: isAbsolute5, sep: sep4 } = __require("node:path");
package/dist/index.js CHANGED
@@ -17674,7 +17674,7 @@ WD9f
17674
17674
 
17675
17675
  // ../../node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built/utils/index.js
17676
17676
  var require_utils2 = __commonJS((exports) => {
17677
- var __dirname = "/home/runner/work/swarm-tools/swarm-tools/node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built/utils";
17677
+ var __dirname = "/Users/joel/Code/joelhooks/opencode-swarm-plugin/node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built/utils";
17678
17678
  Object.defineProperty(exports, "__esModule", { value: true });
17679
17679
  exports.noop = exports.defaults = exports.Debug = exports.getPackageMeta = exports.zipMap = exports.CONNECTION_CLOSED_ERROR_MSG = exports.shuffle = exports.sample = exports.resolveTLSProfile = exports.parseURL = exports.optimizeErrorStack = exports.toArg = exports.convertMapToArray = exports.convertObjectToArray = exports.timeout = exports.packObject = exports.isInt = exports.wrapMultiResult = exports.convertBufferToString = undefined;
17680
17680
  var fs_1 = __require("fs");
@@ -17960,7 +17960,7 @@ var require_argumentParsers = __commonJS((exports) => {
17960
17960
 
17961
17961
  // ../../node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built/Command.js
17962
17962
  var require_Command = __commonJS((exports) => {
17963
- var __dirname = "/home/runner/work/swarm-tools/swarm-tools/node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built";
17963
+ var __dirname = "/Users/joel/Code/joelhooks/opencode-swarm-plugin/node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built";
17964
17964
  Object.defineProperty(exports, "__esModule", { value: true });
17965
17965
  var commands_1 = require_built();
17966
17966
  var calculateSlot = require_lib();
@@ -59222,7 +59222,7 @@ var require_node_gyp_build_optional_packages = __commonJS((exports, module) => {
59222
59222
 
59223
59223
  // ../../node_modules/.bun/msgpackr-extract@3.0.3/node_modules/msgpackr-extract/index.js
59224
59224
  var require_msgpackr_extract = __commonJS((exports, module) => {
59225
- var __dirname = "/home/runner/work/swarm-tools/swarm-tools/node_modules/.bun/msgpackr-extract@3.0.3/node_modules/msgpackr-extract";
59225
+ var __dirname = "/Users/joel/Code/joelhooks/opencode-swarm-plugin/node_modules/.bun/msgpackr-extract@3.0.3/node_modules/msgpackr-extract";
59226
59226
  module.exports = require_node_gyp_build_optional_packages()(__dirname);
59227
59227
  });
59228
59228
 
@@ -83525,7 +83525,7 @@ var require_indexes = __commonJS((exports, module) => {
83525
83525
 
83526
83526
  // ../../node_modules/.bun/thread-stream@3.1.0/node_modules/thread-stream/index.js
83527
83527
  var require_thread_stream = __commonJS((exports, module) => {
83528
- var __dirname = "/home/runner/work/swarm-tools/swarm-tools/node_modules/.bun/thread-stream@3.1.0/node_modules/thread-stream";
83528
+ var __dirname = "/Users/joel/Code/joelhooks/opencode-swarm-plugin/node_modules/.bun/thread-stream@3.1.0/node_modules/thread-stream";
83529
83529
  var { version: version2 } = require_package();
83530
83530
  var { EventEmitter } = __require("events");
83531
83531
  var { Worker: Worker3 } = __require("worker_threads");
@@ -83946,7 +83946,7 @@ var require_thread_stream = __commonJS((exports, module) => {
83946
83946
 
83947
83947
  // ../../node_modules/.bun/pino@9.14.0/node_modules/pino/lib/transport.js
83948
83948
  var require_transport = __commonJS((exports, module) => {
83949
- var __dirname = "/home/runner/work/swarm-tools/swarm-tools/node_modules/.bun/pino@9.14.0/node_modules/pino/lib";
83949
+ var __dirname = "/Users/joel/Code/joelhooks/opencode-swarm-plugin/node_modules/.bun/pino@9.14.0/node_modules/pino/lib";
83950
83950
  var { createRequire: createRequire2 } = __require("module");
83951
83951
  var getCallers = require_caller();
83952
83952
  var { join: join13, isAbsolute: isAbsolute2, sep: sep3 } = __require("node:path");
@@ -152667,7 +152667,7 @@ WD9f
152667
152667
 
152668
152668
  // ../../node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built/utils/index.js
152669
152669
  var require_utils9 = __commonJS((exports) => {
152670
- var __dirname = "/home/runner/work/swarm-tools/swarm-tools/node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built/utils";
152670
+ var __dirname = "/Users/joel/Code/joelhooks/opencode-swarm-plugin/node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built/utils";
152671
152671
  Object.defineProperty(exports, "__esModule", { value: true });
152672
152672
  exports.noop = exports.defaults = exports.Debug = exports.getPackageMeta = exports.zipMap = exports.CONNECTION_CLOSED_ERROR_MSG = exports.shuffle = exports.sample = exports.resolveTLSProfile = exports.parseURL = exports.optimizeErrorStack = exports.toArg = exports.convertMapToArray = exports.convertObjectToArray = exports.timeout = exports.packObject = exports.isInt = exports.wrapMultiResult = exports.convertBufferToString = undefined;
152673
152673
  var fs_1 = __require("fs");
@@ -152953,7 +152953,7 @@ var require_argumentParsers = __commonJS((exports) => {
152953
152953
 
152954
152954
  // ../../node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built/Command.js
152955
152955
  var require_Command = __commonJS((exports) => {
152956
- var __dirname = "/home/runner/work/swarm-tools/swarm-tools/node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built";
152956
+ var __dirname = "/Users/joel/Code/joelhooks/opencode-swarm-plugin/node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built";
152957
152957
  Object.defineProperty(exports, "__esModule", { value: true });
152958
152958
  var commands_1 = require_built();
152959
152959
  var calculateSlot = require_lib();
@@ -194204,7 +194204,7 @@ var require_node_gyp_build_optional_packages = __commonJS((exports, module) => {
194204
194204
 
194205
194205
  // ../../node_modules/.bun/msgpackr-extract@3.0.3/node_modules/msgpackr-extract/index.js
194206
194206
  var require_msgpackr_extract = __commonJS((exports, module) => {
194207
- var __dirname = "/home/runner/work/swarm-tools/swarm-tools/node_modules/.bun/msgpackr-extract@3.0.3/node_modules/msgpackr-extract";
194207
+ var __dirname = "/Users/joel/Code/joelhooks/opencode-swarm-plugin/node_modules/.bun/msgpackr-extract@3.0.3/node_modules/msgpackr-extract";
194208
194208
  module.exports = require_node_gyp_build_optional_packages()(__dirname);
194209
194209
  });
194210
194210
 
@@ -218507,7 +218507,7 @@ var require_indexes2 = __commonJS((exports, module) => {
218507
218507
 
218508
218508
  // ../../node_modules/.bun/thread-stream@3.1.0/node_modules/thread-stream/index.js
218509
218509
  var require_thread_stream = __commonJS((exports, module) => {
218510
- var __dirname = "/home/runner/work/swarm-tools/swarm-tools/node_modules/.bun/thread-stream@3.1.0/node_modules/thread-stream";
218510
+ var __dirname = "/Users/joel/Code/joelhooks/opencode-swarm-plugin/node_modules/.bun/thread-stream@3.1.0/node_modules/thread-stream";
218511
218511
  var { version: version5 } = require_package();
218512
218512
  var { EventEmitter: EventEmitter4 } = __require("events");
218513
218513
  var { Worker: Worker3 } = __require("worker_threads");
@@ -218928,7 +218928,7 @@ var require_thread_stream = __commonJS((exports, module) => {
218928
218928
 
218929
218929
  // ../../node_modules/.bun/pino@9.14.0/node_modules/pino/lib/transport.js
218930
218930
  var require_transport = __commonJS((exports, module) => {
218931
- var __dirname = "/home/runner/work/swarm-tools/swarm-tools/node_modules/.bun/pino@9.14.0/node_modules/pino/lib";
218931
+ var __dirname = "/Users/joel/Code/joelhooks/opencode-swarm-plugin/node_modules/.bun/pino@9.14.0/node_modules/pino/lib";
218932
218932
  var { createRequire: createRequire3 } = __require("module");
218933
218933
  var getCallers = require_caller();
218934
218934
  var { join: join18, isAbsolute: isAbsolute3, sep: sep4 } = __require("node:path");
package/dist/plugin.js CHANGED
@@ -17674,7 +17674,7 @@ WD9f
17674
17674
 
17675
17675
  // ../../node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built/utils/index.js
17676
17676
  var require_utils2 = __commonJS((exports) => {
17677
- var __dirname = "/home/runner/work/swarm-tools/swarm-tools/node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built/utils";
17677
+ var __dirname = "/Users/joel/Code/joelhooks/opencode-swarm-plugin/node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built/utils";
17678
17678
  Object.defineProperty(exports, "__esModule", { value: true });
17679
17679
  exports.noop = exports.defaults = exports.Debug = exports.getPackageMeta = exports.zipMap = exports.CONNECTION_CLOSED_ERROR_MSG = exports.shuffle = exports.sample = exports.resolveTLSProfile = exports.parseURL = exports.optimizeErrorStack = exports.toArg = exports.convertMapToArray = exports.convertObjectToArray = exports.timeout = exports.packObject = exports.isInt = exports.wrapMultiResult = exports.convertBufferToString = undefined;
17680
17680
  var fs_1 = __require("fs");
@@ -17960,7 +17960,7 @@ var require_argumentParsers = __commonJS((exports) => {
17960
17960
 
17961
17961
  // ../../node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built/Command.js
17962
17962
  var require_Command = __commonJS((exports) => {
17963
- var __dirname = "/home/runner/work/swarm-tools/swarm-tools/node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built";
17963
+ var __dirname = "/Users/joel/Code/joelhooks/opencode-swarm-plugin/node_modules/.bun/ioredis@5.9.2/node_modules/ioredis/built";
17964
17964
  Object.defineProperty(exports, "__esModule", { value: true });
17965
17965
  var commands_1 = require_built();
17966
17966
  var calculateSlot = require_lib();
@@ -59208,7 +59208,7 @@ var require_node_gyp_build_optional_packages = __commonJS((exports, module) => {
59208
59208
 
59209
59209
  // ../../node_modules/.bun/msgpackr-extract@3.0.3/node_modules/msgpackr-extract/index.js
59210
59210
  var require_msgpackr_extract = __commonJS((exports, module) => {
59211
- var __dirname = "/home/runner/work/swarm-tools/swarm-tools/node_modules/.bun/msgpackr-extract@3.0.3/node_modules/msgpackr-extract";
59211
+ var __dirname = "/Users/joel/Code/joelhooks/opencode-swarm-plugin/node_modules/.bun/msgpackr-extract@3.0.3/node_modules/msgpackr-extract";
59212
59212
  module.exports = require_node_gyp_build_optional_packages()(__dirname);
59213
59213
  });
59214
59214
 
@@ -83511,7 +83511,7 @@ var require_indexes = __commonJS((exports, module) => {
83511
83511
 
83512
83512
  // ../../node_modules/.bun/thread-stream@3.1.0/node_modules/thread-stream/index.js
83513
83513
  var require_thread_stream = __commonJS((exports, module) => {
83514
- var __dirname = "/home/runner/work/swarm-tools/swarm-tools/node_modules/.bun/thread-stream@3.1.0/node_modules/thread-stream";
83514
+ var __dirname = "/Users/joel/Code/joelhooks/opencode-swarm-plugin/node_modules/.bun/thread-stream@3.1.0/node_modules/thread-stream";
83515
83515
  var { version: version2 } = require_package();
83516
83516
  var { EventEmitter } = __require("events");
83517
83517
  var { Worker: Worker3 } = __require("worker_threads");
@@ -83932,7 +83932,7 @@ var require_thread_stream = __commonJS((exports, module) => {
83932
83932
 
83933
83933
  // ../../node_modules/.bun/pino@9.14.0/node_modules/pino/lib/transport.js
83934
83934
  var require_transport = __commonJS((exports, module) => {
83935
- var __dirname = "/home/runner/work/swarm-tools/swarm-tools/node_modules/.bun/pino@9.14.0/node_modules/pino/lib";
83935
+ var __dirname = "/Users/joel/Code/joelhooks/opencode-swarm-plugin/node_modules/.bun/pino@9.14.0/node_modules/pino/lib";
83936
83936
  var { createRequire: createRequire2 } = __require("module");
83937
83937
  var getCallers = require_caller();
83938
83938
  var { join: join13, isAbsolute: isAbsolute2, sep: sep3 } = __require("node:path");