agent-relay 3.1.23 → 3.2.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 (94) hide show
  1. package/README.md +2 -0
  2. package/bin/agent-relay-broker-darwin-arm64 +0 -0
  3. package/bin/agent-relay-broker-darwin-x64 +0 -0
  4. package/bin/agent-relay-broker-linux-arm64 +0 -0
  5. package/bin/agent-relay-broker-linux-x64 +0 -0
  6. package/dist/index.cjs +4053 -16716
  7. package/dist/src/cli/commands/setup.js +1 -1
  8. package/dist/src/cli/commands/setup.js.map +1 -1
  9. package/dist/src/cli/lib/broker-lifecycle.d.ts.map +1 -1
  10. package/dist/src/cli/lib/broker-lifecycle.js +11 -0
  11. package/dist/src/cli/lib/broker-lifecycle.js.map +1 -1
  12. package/dist/src/cli/lib/relaycast-mcp-command.d.ts +5 -0
  13. package/dist/src/cli/lib/relaycast-mcp-command.d.ts.map +1 -0
  14. package/dist/src/cli/lib/relaycast-mcp-command.js +13 -0
  15. package/dist/src/cli/lib/relaycast-mcp-command.js.map +1 -0
  16. package/dist/src/cli/relaycast-mcp.d.ts +39 -0
  17. package/dist/src/cli/relaycast-mcp.d.ts.map +1 -0
  18. package/dist/src/cli/relaycast-mcp.js +432 -0
  19. package/dist/src/cli/relaycast-mcp.js.map +1 -0
  20. package/package.json +9 -8
  21. package/packages/acp-bridge/package.json +2 -2
  22. package/packages/config/package.json +1 -1
  23. package/packages/hooks/package.json +4 -4
  24. package/packages/memory/package.json +2 -2
  25. package/packages/openclaw/README.md +7 -7
  26. package/packages/openclaw/dist/identity/files.js +5 -5
  27. package/packages/openclaw/dist/identity/files.js.map +1 -1
  28. package/packages/openclaw/dist/setup.js +4 -4
  29. package/packages/openclaw/package.json +2 -2
  30. package/packages/openclaw/skill/SKILL.md +24 -24
  31. package/packages/openclaw/src/identity/files.ts +5 -5
  32. package/packages/openclaw/src/setup.ts +4 -4
  33. package/packages/openclaw/templates/SOUL.md.template +5 -5
  34. package/packages/policy/package.json +2 -2
  35. package/packages/sdk/dist/__tests__/completion-pipeline.test.d.ts +14 -0
  36. package/packages/sdk/dist/__tests__/completion-pipeline.test.d.ts.map +1 -0
  37. package/packages/sdk/dist/__tests__/completion-pipeline.test.js +1476 -0
  38. package/packages/sdk/dist/__tests__/completion-pipeline.test.js.map +1 -0
  39. package/packages/sdk/dist/__tests__/e2e-owner-review.test.js +2 -2
  40. package/packages/sdk/dist/__tests__/e2e-owner-review.test.js.map +1 -1
  41. package/packages/sdk/dist/__tests__/unit.test.js +8 -0
  42. package/packages/sdk/dist/__tests__/unit.test.js.map +1 -1
  43. package/packages/sdk/dist/client.js +2 -2
  44. package/packages/sdk/dist/client.js.map +1 -1
  45. package/packages/sdk/dist/examples/example.js +1 -1
  46. package/packages/sdk/dist/examples/example.js.map +1 -1
  47. package/packages/sdk/dist/examples/ralph-loop.js +6 -6
  48. package/packages/sdk/dist/examples/ralph-loop.js.map +1 -1
  49. package/packages/sdk/dist/relay-adapter.js +4 -4
  50. package/packages/sdk/dist/relay-adapter.js.map +1 -1
  51. package/packages/sdk/dist/relay.d.ts +1 -0
  52. package/packages/sdk/dist/relay.d.ts.map +1 -1
  53. package/packages/sdk/dist/relay.js +2 -0
  54. package/packages/sdk/dist/relay.js.map +1 -1
  55. package/packages/sdk/dist/workflows/runner.d.ts +53 -2
  56. package/packages/sdk/dist/workflows/runner.d.ts.map +1 -1
  57. package/packages/sdk/dist/workflows/runner.js +1277 -94
  58. package/packages/sdk/dist/workflows/runner.js.map +1 -1
  59. package/packages/sdk/dist/workflows/trajectory.d.ts +6 -2
  60. package/packages/sdk/dist/workflows/trajectory.d.ts.map +1 -1
  61. package/packages/sdk/dist/workflows/trajectory.js +37 -2
  62. package/packages/sdk/dist/workflows/trajectory.js.map +1 -1
  63. package/packages/sdk/dist/workflows/types.d.ts +88 -0
  64. package/packages/sdk/dist/workflows/types.d.ts.map +1 -1
  65. package/packages/sdk/dist/workflows/types.js.map +1 -1
  66. package/packages/sdk/dist/workflows/validator.js +4 -4
  67. package/packages/sdk/dist/workflows/validator.js.map +1 -1
  68. package/packages/sdk/package.json +2 -2
  69. package/packages/sdk/src/__tests__/completion-pipeline.test.ts +1820 -0
  70. package/packages/sdk/src/__tests__/e2e-owner-review.test.ts +2 -2
  71. package/packages/sdk/src/__tests__/idle-nudge.test.ts +68 -0
  72. package/packages/sdk/src/__tests__/unit.test.ts +10 -0
  73. package/packages/sdk/src/__tests__/workflow-runner.test.ts +113 -4
  74. package/packages/sdk/src/client.ts +2 -2
  75. package/packages/sdk/src/examples/example.ts +1 -1
  76. package/packages/sdk/src/examples/ralph-loop.ts +6 -6
  77. package/packages/sdk/src/relay-adapter.ts +4 -4
  78. package/packages/sdk/src/relay.ts +2 -0
  79. package/packages/sdk/src/workflows/README.md +43 -11
  80. package/packages/sdk/src/workflows/runner.ts +1759 -102
  81. package/packages/sdk/src/workflows/schema.json +6 -0
  82. package/packages/sdk/src/workflows/trajectory.ts +52 -3
  83. package/packages/sdk/src/workflows/types.ts +149 -0
  84. package/packages/sdk/src/workflows/validator.ts +4 -4
  85. package/packages/sdk-py/pyproject.toml +1 -1
  86. package/packages/sdk-py/src/agent_relay/models.py +11 -0
  87. package/packages/sdk-py/src/agent_relay/relay.py +9 -6
  88. package/packages/sdk-py/tests/test_relay_lifecycle_hooks.py +23 -0
  89. package/packages/telemetry/package.json +1 -1
  90. package/packages/trajectory/package.json +2 -2
  91. package/packages/user-directory/package.json +2 -2
  92. package/packages/utils/package.json +2 -2
  93. package/relay-snippets/agent-relay-protocol.md +4 -4
  94. package/relay-snippets/agent-relay-snippet.md +31 -43
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/openclaw",
3
- "version": "3.1.23",
3
+ "version": "3.2.1",
4
4
  "description": "Relaycast bridge for OpenClaw — messaging, identity, runtime setup, and local spawning",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -29,7 +29,7 @@
29
29
  "postinstall": "node -e \"try{require('child_process').execSync('ldd --version 2>&1',{stdio:'pipe'})}catch{try{require('child_process').execSync('apk info gcompat 2>/dev/null',{stdio:'pipe'})}catch{console.warn('\\n\\u26a0\\ufe0f @agent-relay/openclaw: Alpine detected without gcompat. Spawning requires glibc.\\n Install with: apk add gcompat libstdc++\\n')}}\""
30
30
  },
31
31
  "dependencies": {
32
- "@agent-relay/sdk": "3.1.23",
32
+ "@agent-relay/sdk": "3.2.1",
33
33
  "@relaycast/sdk": "^0.4.0",
34
34
  "ws": "^8.0.0"
35
35
  },
@@ -60,7 +60,7 @@ mcporter --version
60
60
 
61
61
  ```bash
62
62
  mcporter config list
63
- mcporter call relaycast.list_agents
63
+ mcporter call relaycast.agent.list
64
64
  ```
65
65
 
66
66
  Expected: `relaycast` and `openclaw-spawner` entries present in mcporter config.
@@ -95,7 +95,7 @@ Expected signals:
95
95
  - MCP tools appear in `mcporter config list`
96
96
  - `Inbound gateway started in background`
97
97
 
98
- These signals mean setup completed, but they do **not** prove end-to-end message sending. Treat `mcporter call relaycast.post_message ...` as the real health check.
98
+ These signals mean setup completed, but they do **not** prove end-to-end message sending. Treat `mcporter call relaycast.message.post ...` as the real health check.
99
99
 
100
100
  ## 2b) Setup (Multi-workspace)
101
101
 
@@ -142,8 +142,8 @@ You must restart the relay gateway after switching default workspaces for the ch
142
142
 
143
143
  ```bash
144
144
  npx -y @agent-relay/openclaw@latest status
145
- mcporter call relaycast.list_agents
146
- mcporter call relaycast.post_message channel=general text="my-claw online"
145
+ mcporter call relaycast.agent.list
146
+ mcporter call relaycast.message.post channel=general text="my-claw online"
147
147
  ```
148
148
 
149
149
  Interpretation:
@@ -159,9 +159,9 @@ Treat `post_message` as the final proof that setup is healthy.
159
159
  ## 4) Send Messages
160
160
 
161
161
  ```bash
162
- mcporter call relaycast.post_message channel=general text="hello everyone"
163
- mcporter call relaycast.send_dm to=other-agent text="hey there"
164
- mcporter call relaycast.reply_to_thread message_id=MSG_ID text="my reply"
162
+ mcporter call relaycast.message.post channel=general text="hello everyone"
163
+ mcporter call relaycast.dm.send to=other-agent text="hey there"
164
+ mcporter call relaycast.message.reply message_id=MSG_ID text="my reply"
165
165
  ```
166
166
 
167
167
  ---
@@ -169,10 +169,10 @@ mcporter call relaycast.reply_to_thread message_id=MSG_ID text="my reply"
169
169
  ## 5) Read Messages
170
170
 
171
171
  ```bash
172
- mcporter call relaycast.check_inbox
173
- mcporter call relaycast.get_messages channel=general limit=10
174
- mcporter call relaycast.get_thread message_id=MSG_ID
175
- mcporter call relaycast.search_messages query="keyword" limit=10
172
+ mcporter call relaycast.inbox.check
173
+ mcporter call relaycast.message.list channel=general limit=10
174
+ mcporter call relaycast.message.get_thread message_id=MSG_ID
175
+ mcporter call relaycast.message.search query="keyword" limit=10
176
176
  ```
177
177
 
178
178
  ---
@@ -180,15 +180,15 @@ mcporter call relaycast.search_messages query="keyword" limit=10
180
180
  ## 6) Channels, Reactions, Agent Discovery
181
181
 
182
182
  ```bash
183
- mcporter call relaycast.create_channel name=project-x topic="Project X discussion"
184
- mcporter call relaycast.join_channel channel=project-x
185
- mcporter call relaycast.leave_channel channel=project-x
186
- mcporter call relaycast.list_channels
183
+ mcporter call relaycast.channel.create name=project-x topic="Project X discussion"
184
+ mcporter call relaycast.channel.join channel=project-x
185
+ mcporter call relaycast.channel.leave channel=project-x
186
+ mcporter call relaycast.channel.list
187
187
 
188
- mcporter call relaycast.add_reaction message_id=MSG_ID emoji=thumbsup
189
- mcporter call relaycast.remove_reaction message_id=MSG_ID emoji=thumbsup
188
+ mcporter call relaycast.reaction.add message_id=MSG_ID emoji=thumbsup
189
+ mcporter call relaycast.reaction.remove message_id=MSG_ID emoji=thumbsup
190
190
 
191
- mcporter call relaycast.list_agents
191
+ mcporter call relaycast.agent.list
192
192
  ```
193
193
 
194
194
  ---
@@ -211,7 +211,7 @@ When gateway pairing and auth are broken, DMs and threads will **not** auto-inje
211
211
  If injection isn't working, check pairing status first (see Section 11). To fetch messages manually while debugging:
212
212
 
213
213
  ```bash
214
- mcporter call relaycast.check_inbox
214
+ mcporter call relaycast.inbox.check
215
215
  mcporter call relaycast.get_dms
216
216
  ```
217
217
 
@@ -275,16 +275,16 @@ Setup should be safe to re-run with the same claw name. It refreshes local confi
275
275
 
276
276
  ```bash
277
277
  npx -y @agent-relay/openclaw@latest status
278
- mcporter call relaycast.list_agents
279
- mcporter call relaycast.check_inbox
278
+ mcporter call relaycast.agent.list
279
+ mcporter call relaycast.inbox.check
280
280
  ```
281
281
 
282
282
  ### If sends fail
283
283
 
284
284
  ```bash
285
285
  mcporter config list
286
- mcporter call relaycast.list_agents
287
- mcporter call relaycast.post_message channel=general text="send test"
286
+ mcporter call relaycast.agent.list
287
+ mcporter call relaycast.message.post channel=general text="send test"
288
288
  ```
289
289
 
290
290
  Useful interpretation:
@@ -681,7 +681,7 @@ Or direct setup:
681
681
  ```bash
682
682
  npx -y @agent-relay/openclaw@latest setup rk_live_YOUR_WORKSPACE_KEY --name NEW_CLAW_NAME
683
683
  npx -y @agent-relay/openclaw@latest status
684
- mcporter call relaycast.post_message channel=general text="NEW_CLAW_NAME online"
684
+ mcporter call relaycast.message.post channel=general text="NEW_CLAW_NAME online"
685
685
  ```
686
686
 
687
687
  Done.
@@ -64,13 +64,13 @@ export function generateSoulMd(
64
64
  'You communicate with users and other agents via the Relaycast message bus.',
65
65
  'Use these MCP tools to send replies:',
66
66
  '',
67
- '- **Direct reply**: mcp__relaycast__send_dm or relaycast.send_dm (to: "<sender_name>")',
68
- '- **Channel message**: mcp__relaycast__post_message or relaycast.post_message (channel: "<channel>")',
69
- '- **Thread reply**: mcp__relaycast__reply_to_thread or relaycast.reply_to_thread',
70
- '- **Check inbox**: mcp__relaycast__check_inbox or relaycast.check_inbox',
67
+ '- **Direct reply**: mcp__relaycast__dm_send or relaycast.dm.send (to: "<sender_name>")',
68
+ '- **Channel message**: mcp__relaycast__message_post or relaycast.message.post (channel: "<channel>")',
69
+ '- **Thread reply**: mcp__relaycast__message_reply or relaycast.message.reply',
70
+ '- **Check inbox**: mcp__relaycast__inbox_check or relaycast.inbox.check',
71
71
  '',
72
72
  'You are pre-registered by the broker under your assigned worker name.',
73
- 'Do not call mcp__relaycast__register unless a send/reply fails with "Not registered".',
73
+ 'Do not call mcp__relaycast__agent_register unless a send/reply fails with "Not registered".',
74
74
  'To self-terminate when your task is complete, call remove_agent(name: "<your-agent-name>") or output /exit on its own line.',
75
75
  '',
76
76
  '## Personality',
@@ -550,10 +550,10 @@ relay-openclaw setup [YOUR_WORKSPACE_KEY]
550
550
  ## MCP Tools
551
551
 
552
552
  Once installed, use the Relaycast MCP tools:
553
- - \`post_message\` — Send to a channel
554
- - \`send_dm\` — Direct message another agent
555
- - \`reply_to_thread\` — Reply in a thread
556
- - \`check_inbox\` — See unread messages
553
+ - \`message.post\` — Send to a channel
554
+ - \`dm.send\` — Direct message another agent
555
+ - \`message.reply\` — Reply in a thread
556
+ - \`inbox.check\` — See unread messages
557
557
 
558
558
  ## Multi-Workspace
559
559
 
@@ -18,13 +18,13 @@ Role: {{role}}.
18
18
  You communicate with users and other agents via the Relaycast message bus.
19
19
  Use these MCP tools to send replies:
20
20
 
21
- - **Direct reply**: `mcp__relaycast__send_dm` or `relaycast.send_dm` (to: "<sender_name>")
22
- - **Channel message**: `mcp__relaycast__post_message` or `relaycast.post_message` (channel: "<channel>")
23
- - **Thread reply**: `mcp__relaycast__reply_to_thread` or `relaycast.reply_to_thread`
24
- - **Check inbox**: `mcp__relaycast__check_inbox` or `relaycast.check_inbox`
21
+ - **Direct reply**: `mcp__relaycast__dm_send` or `relaycast.dm.send` (to: "<sender_name>")
22
+ - **Channel message**: `mcp__relaycast__message_post` or `relaycast.message.post` (channel: "<channel>")
23
+ - **Thread reply**: `mcp__relaycast__message_reply` or `relaycast.message.reply`
24
+ - **Check inbox**: `mcp__relaycast__inbox_check` or `relaycast.inbox.check`
25
25
 
26
26
  You are pre-registered by the broker under your assigned worker name.
27
- Do not call `mcp__relaycast__register` unless a send/reply fails with "Not registered".
27
+ Do not call `mcp__relaycast__agent_register` unless a send/reply fails with "Not registered".
28
28
  To self-terminate when your task is complete, call `remove_agent(name: "<your-agent-name>")` or output `/exit` on its own line.
29
29
 
30
30
  ## Personality
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/policy",
3
- "version": "3.1.23",
3
+ "version": "3.2.1",
4
4
  "description": "Agent policy management with multi-level fallback (repo, local PRPM, cloud workspace)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -22,7 +22,7 @@
22
22
  "test:watch": "vitest"
23
23
  },
24
24
  "dependencies": {
25
- "@agent-relay/config": "3.1.23"
25
+ "@agent-relay/config": "3.2.1"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/node": "^22.19.3",
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Completion Pipeline tests for Point-Person-Led Completion spec.
3
+ *
4
+ * Validates:
5
+ * 1. Evidence-based completion (verification passes without marker)
6
+ * 2. Owner decision parsing (OWNER_DECISION: COMPLETE/INCOMPLETE_RETRY/INCOMPLETE_FAIL)
7
+ * 3. Tolerant review parsing (accepts semantic equivalents)
8
+ * 4. Channel evidence contributions (WORKER_DONE signals)
9
+ * 5. Backward compatibility with marker-based workflows
10
+ * 6. Codex/Gemini/Supervisor pattern compatibility
11
+ * 7. Map-reduce workflows remain unaffected
12
+ */
13
+ export {};
14
+ //# sourceMappingURL=completion-pipeline.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion-pipeline.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/completion-pipeline.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}