agent-relay 0.1.0 → 1.0.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.
Files changed (92) hide show
  1. package/README.md +56 -730
  2. package/dist/cli/index.d.ts +6 -1
  3. package/dist/cli/index.d.ts.map +1 -1
  4. package/dist/cli/index.js +109 -1521
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/daemon/connection.d.ts.map +1 -1
  7. package/dist/daemon/connection.js +1 -2
  8. package/dist/daemon/connection.js.map +1 -1
  9. package/dist/daemon/server.d.ts +14 -1
  10. package/dist/daemon/server.d.ts.map +1 -1
  11. package/dist/daemon/server.js +48 -7
  12. package/dist/daemon/server.js.map +1 -1
  13. package/dist/dashboard/server.d.ts.map +1 -1
  14. package/dist/dashboard/server.js +27 -8
  15. package/dist/dashboard/server.js.map +1 -1
  16. package/dist/index.d.ts +0 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +0 -1
  19. package/dist/index.js.map +1 -1
  20. package/dist/storage/adapter.d.ts +43 -0
  21. package/dist/storage/adapter.d.ts.map +1 -1
  22. package/dist/storage/adapter.js +106 -1
  23. package/dist/storage/adapter.js.map +1 -1
  24. package/dist/storage/sqlite-adapter.d.ts +1 -0
  25. package/dist/storage/sqlite-adapter.d.ts.map +1 -1
  26. package/dist/storage/sqlite-adapter.js +29 -0
  27. package/dist/storage/sqlite-adapter.js.map +1 -1
  28. package/dist/utils/project-namespace.d.ts +46 -0
  29. package/dist/utils/project-namespace.d.ts.map +1 -0
  30. package/dist/utils/project-namespace.js +111 -0
  31. package/dist/utils/project-namespace.js.map +1 -0
  32. package/dist/wrapper/client.d.ts +1 -1
  33. package/dist/wrapper/client.d.ts.map +1 -1
  34. package/dist/wrapper/client.js +1 -1
  35. package/dist/wrapper/client.js.map +1 -1
  36. package/dist/wrapper/index.d.ts +0 -1
  37. package/dist/wrapper/index.d.ts.map +1 -1
  38. package/dist/wrapper/index.js +2 -3
  39. package/dist/wrapper/index.js.map +1 -1
  40. package/dist/wrapper/tmux-wrapper.d.ts +5 -0
  41. package/dist/wrapper/tmux-wrapper.d.ts.map +1 -1
  42. package/dist/wrapper/tmux-wrapper.js +96 -21
  43. package/dist/wrapper/tmux-wrapper.js.map +1 -1
  44. package/docs/AGENTS.md +386 -0
  45. package/docs/CLI-SIMPLIFICATION-COMPLETE.md +48 -0
  46. package/docs/CONTRIBUTING.md +151 -0
  47. package/docs/TMUX_IMPLEMENTATION_NOTES.md +364 -0
  48. package/docs/removable-code-analysis.md +24 -0
  49. package/install.sh +10 -2
  50. package/package.json +3 -4
  51. package/dist/games/index.d.ts +0 -2
  52. package/dist/games/index.d.ts.map +0 -1
  53. package/dist/games/index.js +0 -2
  54. package/dist/games/index.js.map +0 -1
  55. package/dist/games/tictactoe.d.ts +0 -24
  56. package/dist/games/tictactoe.d.ts.map +0 -1
  57. package/dist/games/tictactoe.js +0 -160
  58. package/dist/games/tictactoe.js.map +0 -1
  59. package/dist/supervisor/inbox.d.ts +0 -38
  60. package/dist/supervisor/inbox.d.ts.map +0 -1
  61. package/dist/supervisor/inbox.js +0 -162
  62. package/dist/supervisor/inbox.js.map +0 -1
  63. package/dist/supervisor/index.d.ts +0 -10
  64. package/dist/supervisor/index.d.ts.map +0 -1
  65. package/dist/supervisor/index.js +0 -10
  66. package/dist/supervisor/index.js.map +0 -1
  67. package/dist/supervisor/spawner.d.ts +0 -54
  68. package/dist/supervisor/spawner.d.ts.map +0 -1
  69. package/dist/supervisor/spawner.js +0 -282
  70. package/dist/supervisor/spawner.js.map +0 -1
  71. package/dist/supervisor/state.d.ts +0 -132
  72. package/dist/supervisor/state.d.ts.map +0 -1
  73. package/dist/supervisor/state.js +0 -465
  74. package/dist/supervisor/state.js.map +0 -1
  75. package/dist/supervisor/supervisor.d.ts +0 -67
  76. package/dist/supervisor/supervisor.d.ts.map +0 -1
  77. package/dist/supervisor/supervisor.js +0 -263
  78. package/dist/supervisor/supervisor.js.map +0 -1
  79. package/dist/supervisor/types.d.ts +0 -139
  80. package/dist/supervisor/types.d.ts.map +0 -1
  81. package/dist/supervisor/types.js +0 -12
  82. package/dist/supervisor/types.js.map +0 -1
  83. package/dist/webhook/spawner.d.ts +0 -79
  84. package/dist/webhook/spawner.d.ts.map +0 -1
  85. package/dist/webhook/spawner.js +0 -288
  86. package/dist/webhook/spawner.js.map +0 -1
  87. package/dist/wrapper/pty-wrapper.d.ts +0 -125
  88. package/dist/wrapper/pty-wrapper.d.ts.map +0 -1
  89. package/dist/wrapper/pty-wrapper.js +0 -494
  90. package/dist/wrapper/pty-wrapper.js.map +0 -1
  91. /package/{CHANGELOG.md → docs/CHANGELOG.md} +0 -0
  92. /package/{PROTOCOL.md → docs/PROTOCOL.md} +0 -0
@@ -35,6 +35,7 @@ export class TmuxWrapper {
35
35
  // Track processed output to avoid re-parsing
36
36
  processedOutputLength = 0;
37
37
  lastDebugLog = 0;
38
+ cliType;
38
39
  constructor(config) {
39
40
  this.config = {
40
41
  cols: process.stdout.columns || 120,
@@ -44,8 +45,26 @@ export class TmuxWrapper {
44
45
  injectRetryMs: 500,
45
46
  debug: true,
46
47
  debugLogIntervalMs: 0,
48
+ mouseMode: true, // Enable mouse scroll passthrough by default
47
49
  ...config,
48
50
  };
51
+ // Detect CLI type from command for special handling
52
+ const cmdLower = config.command.toLowerCase();
53
+ if (config.cliType) {
54
+ this.cliType = config.cliType;
55
+ }
56
+ else if (cmdLower.includes('gemini')) {
57
+ this.cliType = 'gemini';
58
+ }
59
+ else if (cmdLower.includes('codex')) {
60
+ this.cliType = 'codex';
61
+ }
62
+ else if (cmdLower.includes('claude')) {
63
+ this.cliType = 'claude';
64
+ }
65
+ else {
66
+ this.cliType = 'other';
67
+ }
49
68
  // Generate unique session name
50
69
  this.sessionName = `relay-${config.name}-${process.pid}`;
51
70
  this.client = new RelayClient({
@@ -61,8 +80,8 @@ export class TmuxWrapper {
61
80
  });
62
81
  }
63
82
  // Handle incoming messages from relay
64
- this.client.onMessage = (from, payload) => {
65
- this.handleIncomingMessage(from, payload);
83
+ this.client.onMessage = (from, payload, messageId) => {
84
+ this.handleIncomingMessage(from, payload, messageId);
66
85
  };
67
86
  this.client.onStateChange = (state) => {
68
87
  // Only log to stderr, never stdout (user is in tmux)
@@ -147,6 +166,28 @@ export class TmuxWrapper {
147
166
  cwd: this.config.cwd ?? process.cwd(),
148
167
  stdio: 'pipe',
149
168
  });
169
+ // Configure tmux for seamless scrolling
170
+ // Mouse mode passes scroll events to the application when in alternate screen
171
+ const tmuxSettings = [
172
+ 'set -g set-clipboard on', // Enable clipboard
173
+ 'set -g history-limit 50000', // Large scrollback for when needed
174
+ 'setw -g alternate-screen on', // Ensure alternate screen works
175
+ // Pass through mouse scroll to application in alternate screen mode
176
+ 'set -ga terminal-overrides ",xterm*:Tc"',
177
+ ];
178
+ // Add mouse mode if enabled (allows scroll passthrough to CLI apps)
179
+ if (this.config.mouseMode) {
180
+ tmuxSettings.unshift('set -g mouse on');
181
+ this.logStderr('Mouse mode enabled (scroll should work in app)');
182
+ }
183
+ for (const setting of tmuxSettings) {
184
+ try {
185
+ execSync(`tmux ${setting}`, { stdio: 'pipe' });
186
+ }
187
+ catch {
188
+ // Some settings may not be available in older tmux versions
189
+ }
190
+ }
150
191
  // Set environment variables
151
192
  for (const [key, value] of Object.entries({
152
193
  ...this.config.env,
@@ -309,10 +350,10 @@ export class TmuxWrapper {
309
350
  /**
310
351
  * Handle incoming message from relay
311
352
  */
312
- handleIncomingMessage(from, payload) {
353
+ handleIncomingMessage(from, payload, messageId) {
313
354
  this.logStderr(`← ${from}: ${payload.body.substring(0, 40)}...`);
314
355
  // Queue for injection
315
- this.messageQueue.push({ from, body: payload.body });
356
+ this.messageQueue.push({ from, body: payload.body, messageId });
316
357
  // Write to inbox if enabled
317
358
  if (this.inbox) {
318
359
  this.inbox.addMessage(from, payload.body);
@@ -347,26 +388,54 @@ export class TmuxWrapper {
347
388
  if (!msg)
348
389
  return;
349
390
  this.isInjecting = true;
350
- this.logStderr(`Injecting message from ${msg.from}`);
391
+ this.logStderr(`Injecting message from ${msg.from} (cli: ${this.cliType})`);
351
392
  try {
352
393
  let sanitizedBody = msg.body.replace(/[\r\n]+/g, ' ').trim();
353
- // Truncate long messages to avoid display issues
354
- const maxLen = 500;
394
+ // Short message ID for display (first 8 chars)
395
+ const shortId = msg.messageId.substring(0, 8);
396
+ // Truncate very long messages to avoid display issues
397
+ const maxLen = 2000;
398
+ let wasTruncated = false;
355
399
  if (sanitizedBody.length > maxLen) {
356
- sanitizedBody = sanitizedBody.substring(0, maxLen) + '... [truncated]';
400
+ sanitizedBody = sanitizedBody.substring(0, maxLen) + '...';
401
+ wasTruncated = true;
402
+ }
403
+ // Always include message ID; add lookup hint if truncated
404
+ const idTag = `[${shortId}]`;
405
+ const truncationHint = wasTruncated
406
+ ? ` [TRUNCATED - run "agent-relay read ${msg.messageId}"]`
407
+ : '';
408
+ // Gemini CLI interprets input as shell commands, so we need special handling
409
+ if (this.cliType === 'gemini') {
410
+ // For Gemini: Use echo command to display the message
411
+ const echoMsg = `echo "[relay ${idTag} ← ${msg.from}] ${sanitizedBody.replace(/"/g, '\\"')}${truncationHint.replace(/"/g, '\\"')}"`;
412
+ // Clear any partial input
413
+ await this.sendKeys('Escape');
414
+ await this.sleep(30);
415
+ await this.sendKeys('C-u');
416
+ await this.sleep(30);
417
+ // Send echo command to display the message
418
+ await this.sendKeysLiteral(echoMsg);
419
+ await this.sleep(50);
420
+ await this.sendKeys('Enter');
421
+ this.logStderr(`Injection complete (gemini echo mode)`);
422
+ }
423
+ else {
424
+ // Standard injection for Claude, Codex, etc.
425
+ // Format: Relay message from Sender [abc12345]: content
426
+ const injection = `Relay message from ${msg.from} ${idTag}: ${sanitizedBody}${truncationHint}`;
427
+ // Clear any partial input
428
+ await this.sendKeys('Escape');
429
+ await this.sleep(30);
430
+ await this.sendKeys('C-u');
431
+ await this.sleep(30);
432
+ // Type the message
433
+ await this.sendKeysLiteral(injection);
434
+ await this.sleep(50);
435
+ // Submit
436
+ await this.sendKeys('Enter');
437
+ this.logStderr(`Injection complete`);
357
438
  }
358
- const injection = `Relay message from ${msg.from}: ${sanitizedBody}`;
359
- // Clear any partial input
360
- await this.sendKeys('Escape');
361
- await this.sleep(30);
362
- await this.sendKeys('C-u');
363
- await this.sleep(30);
364
- // Type the message
365
- await this.sendKeysLiteral(injection);
366
- await this.sleep(50);
367
- // Submit
368
- await this.sendKeys('Enter');
369
- this.logStderr(`Injection complete`);
370
439
  }
371
440
  catch (err) {
372
441
  this.logStderr(`Injection failed: ${err.message}`, true);
@@ -389,7 +458,13 @@ export class TmuxWrapper {
389
458
  */
390
459
  async sendKeysLiteral(text) {
391
460
  // Escape for shell and use -l for literal
392
- const escaped = text.replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\$/g, '\\$');
461
+ // Must escape: \ " $ ` !
462
+ const escaped = text
463
+ .replace(/\\/g, '\\\\')
464
+ .replace(/"/g, '\\"')
465
+ .replace(/\$/g, '\\$')
466
+ .replace(/`/g, '\\`')
467
+ .replace(/!/g, '\\!');
393
468
  await execAsync(`tmux send-keys -t ${this.sessionName} -l "${escaped}"`);
394
469
  }
395
470
  sleep(ms) {
@@ -1 +1 @@
1
- {"version":3,"file":"tmux-wrapper.js","sourceRoot":"","sources":["../../src/wrapper/tmux-wrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tmux-wrapper.js","sourceRoot":"","sources":["../../src/wrapper/tmux-wrapper.ts"],"names":[],"mappings":"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"}
package/docs/AGENTS.md ADDED
@@ -0,0 +1,386 @@
1
+ * Use the `bd` tool instead of markdown to coordinate all work and tasks.
2
+ * NEVER commit changes unless the user explicitly asks you to.
3
+
4
+ # Using bv as an AI sidecar
5
+
6
+ bv is a fast terminal UI for Beads projects (.beads/beads.jsonl). It renders lists/details and precomputes dependency metrics (PageRank, critical path, cycles, etc.) so you instantly see blockers and execution order. For agents, it's a graph sidecar: instead of parsing JSONL or risking hallucinated traversal, call the robot flags to get deterministic, dependency-aware outputs.
7
+
8
+ *IMPORTANT: As an agent, you must ONLY use bv with the robot flags, otherwise you'll get stuck in the interactive TUI that's intended for human usage only!*
9
+
10
+ - bv --robot-help — shows all AI-facing commands.
11
+ - bv --robot-insights — JSON graph metrics (PageRank, betweenness, HITS, critical path, cycles) with top-N summaries for quick triage.
12
+ - bv --robot-plan — JSON execution plan: parallel tracks, items per track, and unblocks lists showing what each item frees up.
13
+ - bv --robot-priority — JSON priority recommendations with reasoning and confidence.
14
+ - bv --robot-recipes — list recipes (default, actionable, blocked, etc.); apply via bv --recipe <name> to pre-filter/sort before other flags.
15
+ - bv --robot-diff --diff-since <commit|date> — JSON diff of issue changes, new/closed items, and cycles introduced/resolved.
16
+
17
+ Use these commands instead of hand-rolling graph logic; bv already computes the hard parts so agents can act safely and quickly.
18
+
19
+ ## Integrating with Beads (dependency-aware task planning)
20
+
21
+ Beads provides a lightweight, dependency-aware issue database and a CLI (`bd`) for selecting "ready work," setting priorities, and tracking status. Project: [steveyegge/beads](https://github.com/steveyegge/beads)
22
+
23
+ Recommended conventions
24
+ - **Single source of truth**: Use **Beads** for task status/priority/dependencies.
25
+ - **Shared identifiers**: Use the Beads issue id (e.g., `bd-123`) as identifiers and prefix message subjects with `[bd-123]`.
26
+
27
+ Typical flow (agents)
28
+ 1) **Pick ready work** (Beads)
29
+ - `bd ready --json` → choose one item (highest priority, no blockers)
30
+ 2) **Announce start**
31
+ - Update status: `bd update <id> --status=in_progress`
32
+ 3) **Work and update**
33
+ - Make progress on the task
34
+ 4) **Complete**
35
+ - `bd close <id> --reason "Completed"` (Beads is status authority)
36
+
37
+ Pitfalls to avoid
38
+ - Don't create or manage tasks in markdown; treat Beads as the single task queue.
39
+ - Always include `bd-###` in commit messages for traceability.
40
+
41
+ ---
42
+
43
+ # Agent Instructions for agent-relay
44
+
45
+ > **Copy this file to your project** to enable AI agents to communicate with each other using agent-relay.
46
+
47
+ ## Overview
48
+
49
+ This project uses [agent-relay](https://github.com/khaliqgant/agent-relay) for real-time agent-to-agent messaging. There are two communication modes:
50
+
51
+ 1. **Tmux Wrapper Mode (Recommended)** - Real-time messaging via Unix sockets with tmux session management
52
+ 2. **File-Based Team Mode** - Asynchronous messaging via file system (simpler, more reliable)
53
+
54
+ ---
55
+
56
+ ## Quick Start: Tmux Wrapper (Recommended)
57
+
58
+ Use the tmux wrapper for real-time messaging:
59
+
60
+ ```bash
61
+ # Start daemon (dashboard starts automatically)
62
+ relay -f # foreground mode with dashboard
63
+
64
+ # Wrap your agent with tmux (real-time)
65
+ relay wrap -n PlayerX claude
66
+ relay wrap -n PlayerO claude
67
+ ```
68
+
69
+ ### Flags
70
+ - `-q, --quiet` - Disable debug logging
71
+ - `--no-dashboard` - Disable web dashboard
72
+ - `--stop` - Stop the daemon
73
+ - `--status` - Show daemon status
74
+
75
+ ### Why tmux?
76
+ - Real terminal: you attach directly to tmux (no double PTY).
77
+ - Background capture/parse of `@relay:` without touching stdout.
78
+ - Reliable injection via `tmux send-keys`.
79
+
80
+ ---
81
+
82
+ ## Team Communication
83
+
84
+ If you have an INSTRUCTIONS.md file in `/tmp/agent-relay-team/{YourName}/`, use these commands:
85
+
86
+ ```bash
87
+ # Check your inbox (non-blocking)
88
+ relay team check -n YourName --no-wait
89
+
90
+ # Send message to teammate
91
+ relay team send -n YourName -t RecipientName -m "Your message"
92
+
93
+ # Broadcast to all
94
+ relay team send -n YourName -t "*" -m "Your message"
95
+
96
+ # Team status
97
+ relay team status
98
+ ```
99
+
100
+ **Check your inbox periodically and broadcast status updates!**
101
+
102
+ ---
103
+
104
+ ## Quick Reference
105
+
106
+ ### Sending Messages (Real-Time Mode)
107
+
108
+ **Inline format** (simple messages):
109
+ ```
110
+ @relay:AgentName Your message here
111
+ @relay:* Broadcast to all agents
112
+ ```
113
+
114
+ **Block format** (structured data):
115
+ ```
116
+ [[RELAY]]{"to":"AgentName","type":"message","body":"Your message"}[[/RELAY]]
117
+ ```
118
+
119
+ ### Receiving Messages
120
+
121
+ Messages appear in your terminal as:
122
+ ```
123
+ Relay message from SenderName: Message content here
124
+ ```
125
+
126
+ Or in your inbox file as:
127
+ ```markdown
128
+ ## Message from SenderName | 2024-01-15T10:30:00Z
129
+ Message content here
130
+ ```
131
+
132
+ ---
133
+
134
+ ## Mode 1: Tmux Wrapper (Real-Time) - RECOMMENDED
135
+
136
+ Use this when you're wrapped with `relay wrap`.
137
+
138
+ ### CRITICAL: How to Send Messages
139
+
140
+ **You (the AI agent) must OUTPUT the @relay pattern as part of your response.** Do not wait for user input. The pattern is detected from your terminal output.
141
+
142
+ **Correct - Output this directly:**
143
+ ```
144
+ @relay:PlayerO I've finished the API refactor. Ready for your review.
145
+ ```
146
+
147
+ **Wrong - Don't use bash commands for real-time messaging:**
148
+ ```bash
149
+ # This uses file-based inbox, NOT real-time socket delivery
150
+ relay team send -n MyName -t PlayerO -m "message"
151
+ ```
152
+
153
+ ### Pattern Requirements
154
+
155
+ The `@relay:` pattern must appear on its own line. It can have common terminal/markdown prefixes:
156
+
157
+ ```
158
+ @relay:AgentName message Works
159
+ @relay:AgentName message Works (leading whitespace OK)
160
+ > @relay:AgentName message Works (input prompt OK)
161
+ $ @relay:AgentName message Works (shell prompt OK)
162
+ - @relay:AgentName message Works (list items OK)
163
+ * @relay:AgentName message Works (asterisk lists OK)
164
+ Some text @relay:AgentName msg Won't work (not at line start)
165
+ ```
166
+
167
+ ### Examples
168
+
169
+ **Direct message:**
170
+ ```
171
+ @relay:PlayerO Your turn! I played X at center.
172
+ ```
173
+
174
+ **Broadcast to all agents:**
175
+ ```
176
+ @relay:* I've completed the authentication module. Ready for review.
177
+ ```
178
+
179
+ **Structured data:**
180
+ ```
181
+ [[RELAY]]
182
+ {"to": "PlayerO", "type": "action", "body": "Task completed", "data": {"files": ["auth.ts"]}}
183
+ [[/RELAY]]
184
+ ```
185
+
186
+ ### Receiving Messages
187
+
188
+ When another agent sends you a message, it appears in your terminal as:
189
+ ```
190
+ Relay message from PlayerO: Their message content here
191
+ ```
192
+
193
+ Respond by outputting another `@relay:` pattern.
194
+
195
+ ### IMPORTANT: Handling Truncated Messages
196
+
197
+ Long messages (>500 chars) are truncated to prevent terminal flooding. You'll see:
198
+ ```
199
+ Relay message from PlayerO: Beginning of message... [TRUNCATED - run "relay read abc123def" for full message]
200
+ ```
201
+
202
+ **When you see a truncated message, you MUST run the command to read the full content:**
203
+ ```bash
204
+ relay read abc123def
205
+ ```
206
+
207
+ This retrieves the complete message from the database. Always do this before responding to ensure you have the full context.
208
+
209
+ ### Escaping
210
+
211
+ To output literal `@relay:` without triggering the parser:
212
+ ```
213
+ \@relay: This won't be sent as a message
214
+ ```
215
+
216
+ ---
217
+
218
+ ## Mode 2: File-Based Team Mode (Asynchronous)
219
+
220
+ Use this for scripts, automation, or when tmux wrapping isn't available.
221
+
222
+ ### Setup a Team
223
+
224
+ ```bash
225
+ # Create team from JSON config
226
+ relay team setup -f team-config.json
227
+
228
+ # Or use inline JSON
229
+ relay team setup -c '{"name":"myteam","agents":[{"name":"Dev","cli":"claude","role":"Developer"}]}'
230
+
231
+ # Start a team (setup + listen for messages)
232
+ relay team start -f team-config.json
233
+ ```
234
+
235
+ ### Sending Messages
236
+
237
+ ```bash
238
+ # Send to one agent
239
+ relay team send -n YourName -t RecipientName -m "Your message"
240
+
241
+ # Broadcast to all agents
242
+ relay team send -n YourName -t "*" -m "Broadcast message"
243
+ ```
244
+
245
+ ### Reading Messages
246
+
247
+ ```bash
248
+ # Read inbox (non-blocking)
249
+ relay team check -n YourName --no-wait
250
+
251
+ # Wait for messages (blocking)
252
+ relay team check -n YourName
253
+
254
+ # Read and clear inbox
255
+ relay team check -n YourName --clear
256
+ ```
257
+
258
+ ### Message Format in Inbox
259
+
260
+ Messages in your inbox file look like:
261
+ ```markdown
262
+ ## Message from SenderName | 2024-01-15T10:30:00Z
263
+ The actual message content here.
264
+
265
+ ## Message from AnotherAgent | 2024-01-15T10:31:00Z
266
+ Another message.
267
+ ```
268
+
269
+ ---
270
+
271
+ ## Available Commands
272
+
273
+ Just 4 commands:
274
+
275
+ | Command | Description |
276
+ |---------|-------------|
277
+ | `relay` | Start daemon + dashboard (`--no-dashboard` to disable, `--stop`, `--status`) |
278
+ | `relay wrap` | Wrap agent CLI with relay messaging |
279
+ | `relay team` | Team operations (subcommands below) |
280
+ | `relay read` | Read full message by ID (for truncated messages) |
281
+
282
+ ### Team Subcommands
283
+
284
+ | Subcommand | Description |
285
+ |------------|-------------|
286
+ | `relay team setup` | Create a team from JSON config |
287
+ | `relay team status` | Show team status with message counts |
288
+ | `relay team send` | Send message to teammate(s) |
289
+ | `relay team check` | Check your inbox |
290
+ | `relay team listen` | Watch inboxes and spawn agents on messages |
291
+ | `relay team start` | Start a team (setup + listen + spawn) |
292
+
293
+ ---
294
+
295
+ ## Message Types
296
+
297
+ | Type | Use Case |
298
+ |------|----------|
299
+ | `message` | General communication (default) |
300
+ | `action` | Commands, task assignments |
301
+ | `state` | Status updates, progress reports |
302
+ | `thinking` | Share reasoning (for transparency) |
303
+
304
+ ---
305
+
306
+ ## Coordination Patterns
307
+
308
+ ### Task Handoff
309
+
310
+ ```
311
+ @relay:Developer TASK: Implement user registration endpoint
312
+ Requirements:
313
+ - POST /api/register
314
+ - Validate email format
315
+ - Hash password with bcrypt
316
+ - Return JWT token
317
+ ```
318
+
319
+ ### Status Updates
320
+
321
+ ```
322
+ @relay:* STATUS: Starting work on authentication module
323
+ @relay:* DONE: Authentication module complete, ready for review
324
+ @relay:Reviewer REVIEW: Please review src/auth/*.ts
325
+ ```
326
+
327
+ ### Requesting Help
328
+
329
+ ```
330
+ @relay:Architect QUESTION: Should we use JWT or session-based auth?
331
+ @relay:* BLOCKED: Need database credentials to proceed
332
+ ```
333
+
334
+ ### Code Review Flow
335
+
336
+ ```
337
+ # Developer requests review
338
+ @relay:Reviewer REVIEW: src/api/users.ts - Added pagination support
339
+
340
+ # Reviewer provides feedback
341
+ @relay:Developer FEEDBACK: Line 45 - Consider using cursor-based pagination for better performance
342
+
343
+ # Developer confirms fix
344
+ @relay:Reviewer FIXED: Updated to cursor-based pagination, please re-review
345
+ ```
346
+
347
+ ---
348
+
349
+ ## Agent Naming
350
+
351
+ Agent names follow the AdjectiveNoun format:
352
+ - `BlueLake`, `GreenCastle`, `RedMountain`, `SwiftFalcon`
353
+
354
+ Names are auto-generated if not specified, or you can set your own with `-n`:
355
+ ```bash
356
+ relay wrap -n MyCustomName claude
357
+ ```
358
+
359
+ ---
360
+
361
+ ## Troubleshooting
362
+
363
+ | Issue | Solution |
364
+ |-------|----------|
365
+ | Messages not sending | Check daemon: `relay --status` |
366
+ | Inbox empty | Verify agent name and data directory |
367
+ | Socket not found | Start daemon: `relay -f` |
368
+ | Permission denied | Check data directory permissions |
369
+
370
+ ### Check Daemon Status
371
+ ```bash
372
+ relay --status
373
+ ```
374
+
375
+ ### Restart Daemon
376
+ ```bash
377
+ relay --stop && relay -f
378
+ ```
379
+
380
+ ---
381
+
382
+ ## More Information
383
+
384
+ - [Full Documentation](https://github.com/khaliqgant/agent-relay)
385
+ - [Protocol Specification](https://github.com/khaliqgant/agent-relay/blob/main/docs/PROTOCOL.md)
386
+ - [Examples](https://github.com/khaliqgant/agent-relay/tree/main/examples)
@@ -0,0 +1,48 @@
1
+ # CLI Simplification - Complete
2
+
3
+ ## Summary
4
+ Reduced CLI from **14 commands** to **4 commands**.
5
+
6
+ ## New CLI Structure
7
+
8
+ ```
9
+ relay # Start daemon + dashboard (default)
10
+ relay --no-dashboard # Start without dashboard
11
+ relay --stop # Stop daemon
12
+ relay --status # Check status
13
+ relay -f # Foreground mode
14
+
15
+ relay wrap <cmd> # Wrap agent CLI with messaging
16
+ relay wrap -n Name claude
17
+
18
+ relay team setup # Create team from JSON
19
+ relay team status # Show team status
20
+ relay team send # Send message
21
+ relay team check # Check inbox
22
+ relay team listen # Watch for messages
23
+ relay team start # All-in-one start
24
+
25
+ relay read <id> # Read full truncated message
26
+ ```
27
+
28
+ ## Files Changed
29
+ - `src/cli/index.ts` - Simplified main CLI (was 1100+ lines, now ~200)
30
+ - `src/cli/team.ts` - New team subcommand module
31
+ - `docs/AGENTS.md` - Updated documentation
32
+
33
+ ## Beads Tasks Closed
34
+ - agent-relay-cli-simplify (main issue)
35
+ - agent-relay-85z (dashboard → start)
36
+ - agent-relay-4ft (project → status)
37
+ - agent-relay-bd0 (team-* → team subcommand)
38
+ - agent-relay-f3q (msg-read → read)
39
+ - agent-relay-7yo (docs update)
40
+
41
+ ## Remaining
42
+ - agent-relay-8z1: Add CLI tests (optional)
43
+
44
+ ## Key Changes
45
+ 1. Dashboard starts by default (use --no-dashboard to disable)
46
+ 2. All team commands under `relay team` namespace
47
+ 3. Removed: project, send, dashboard as separate commands
48
+ 4. Status/stop are now flags on main command