@agent-relay/sdk 7.1.1 → 8.0.2

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 (581) hide show
  1. package/README.md +177 -143
  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/bin/agent-relay-broker-win32-x64.exe +0 -0
  7. package/dist/actions/errors.d.ts +18 -0
  8. package/dist/actions/errors.d.ts.map +1 -0
  9. package/dist/actions/errors.js +39 -0
  10. package/dist/actions/errors.js.map +1 -0
  11. package/dist/actions/index.d.ts +5 -0
  12. package/dist/actions/index.d.ts.map +1 -0
  13. package/dist/actions/index.js +5 -0
  14. package/dist/actions/index.js.map +1 -0
  15. package/dist/actions/json-schema-lite.d.ts +13 -0
  16. package/dist/actions/json-schema-lite.d.ts.map +1 -0
  17. package/dist/actions/json-schema-lite.js +322 -0
  18. package/dist/actions/json-schema-lite.js.map +1 -0
  19. package/dist/actions/registry.d.ts +20 -0
  20. package/dist/actions/registry.d.ts.map +1 -0
  21. package/dist/actions/registry.js +267 -0
  22. package/dist/actions/registry.js.map +1 -0
  23. package/dist/actions/types.d.ts +177 -0
  24. package/dist/actions/types.d.ts.map +1 -0
  25. package/dist/{provisioner → actions}/types.js.map +1 -1
  26. package/dist/agent-relay.d.ts +86 -0
  27. package/dist/agent-relay.d.ts.map +1 -0
  28. package/dist/agent-relay.js +197 -0
  29. package/dist/agent-relay.js.map +1 -0
  30. package/dist/capabilities.d.ts +6 -0
  31. package/dist/capabilities.d.ts.map +1 -0
  32. package/dist/capabilities.js +9 -0
  33. package/dist/capabilities.js.map +1 -0
  34. package/dist/delivery/index.d.ts +4 -0
  35. package/dist/delivery/index.d.ts.map +1 -0
  36. package/dist/delivery/index.js +4 -0
  37. package/dist/delivery/index.js.map +1 -0
  38. package/dist/delivery/runner.d.ts +26 -0
  39. package/dist/delivery/runner.d.ts.map +1 -0
  40. package/dist/delivery/runner.js +177 -0
  41. package/dist/delivery/runner.js.map +1 -0
  42. package/dist/delivery/types.d.ts +45 -0
  43. package/dist/delivery/types.d.ts.map +1 -0
  44. package/dist/delivery/types.js +2 -0
  45. package/dist/delivery/types.js.map +1 -0
  46. package/dist/facade.d.ts +151 -0
  47. package/dist/facade.d.ts.map +1 -0
  48. package/dist/facade.js +280 -0
  49. package/dist/facade.js.map +1 -0
  50. package/dist/index.d.ts +9 -25
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +9 -23
  53. package/dist/index.js.map +1 -1
  54. package/dist/listeners.d.ts +162 -0
  55. package/dist/listeners.d.ts.map +1 -0
  56. package/dist/listeners.js +297 -0
  57. package/dist/listeners.js.map +1 -0
  58. package/dist/messaging/index.d.ts +4 -0
  59. package/dist/messaging/index.d.ts.map +1 -0
  60. package/dist/messaging/index.js +4 -0
  61. package/dist/messaging/index.js.map +1 -0
  62. package/dist/messaging/normalize.d.ts +29 -0
  63. package/dist/messaging/normalize.d.ts.map +1 -0
  64. package/dist/messaging/normalize.js +602 -0
  65. package/dist/messaging/normalize.js.map +1 -0
  66. package/dist/messaging/relaycast.d.ts +270 -0
  67. package/dist/messaging/relaycast.d.ts.map +1 -0
  68. package/dist/messaging/relaycast.js +559 -0
  69. package/dist/messaging/relaycast.js.map +1 -0
  70. package/dist/messaging/types.d.ts +672 -0
  71. package/dist/messaging/types.d.ts.map +1 -0
  72. package/dist/messaging/types.js +2 -0
  73. package/dist/messaging/types.js.map +1 -0
  74. package/dist/relaycast-errors.d.ts +39 -0
  75. package/dist/relaycast-errors.d.ts.map +1 -0
  76. package/dist/relaycast-errors.js +111 -0
  77. package/dist/relaycast-errors.js.map +1 -0
  78. package/dist/session/index.d.ts +58 -0
  79. package/dist/session/index.d.ts.map +1 -0
  80. package/dist/session/index.js +54 -0
  81. package/dist/session/index.js.map +1 -0
  82. package/dist/session/types.d.ts +258 -0
  83. package/dist/session/types.d.ts.map +1 -0
  84. package/dist/session/types.js +7 -0
  85. package/dist/session/types.js.map +1 -0
  86. package/package.json +31 -199
  87. package/dist/broker-logs.d.ts +0 -80
  88. package/dist/broker-logs.d.ts.map +0 -1
  89. package/dist/broker-logs.js +0 -189
  90. package/dist/broker-logs.js.map +0 -1
  91. package/dist/broker-path.d.ts +0 -34
  92. package/dist/broker-path.d.ts.map +0 -1
  93. package/dist/broker-path.js +0 -267
  94. package/dist/broker-path.js.map +0 -1
  95. package/dist/browser.d.ts +0 -16
  96. package/dist/browser.d.ts.map +0 -1
  97. package/dist/browser.js +0 -19
  98. package/dist/browser.js.map +0 -1
  99. package/dist/cli-registry.d.ts +0 -44
  100. package/dist/cli-registry.d.ts.map +0 -1
  101. package/dist/cli-registry.js +0 -104
  102. package/dist/cli-registry.js.map +0 -1
  103. package/dist/cli-resolver.d.ts +0 -30
  104. package/dist/cli-resolver.d.ts.map +0 -1
  105. package/dist/cli-resolver.js +0 -132
  106. package/dist/cli-resolver.js.map +0 -1
  107. package/dist/client.d.ts +0 -278
  108. package/dist/client.d.ts.map +0 -1
  109. package/dist/client.js +0 -838
  110. package/dist/client.js.map +0 -1
  111. package/dist/communicate/a2a-bridge.d.ts +0 -25
  112. package/dist/communicate/a2a-bridge.d.ts.map +0 -1
  113. package/dist/communicate/a2a-bridge.js +0 -89
  114. package/dist/communicate/a2a-bridge.js.map +0 -1
  115. package/dist/communicate/a2a-server.d.ts +0 -31
  116. package/dist/communicate/a2a-server.d.ts.map +0 -1
  117. package/dist/communicate/a2a-server.js +0 -220
  118. package/dist/communicate/a2a-server.js.map +0 -1
  119. package/dist/communicate/a2a-transport.d.ts +0 -48
  120. package/dist/communicate/a2a-transport.d.ts.map +0 -1
  121. package/dist/communicate/a2a-transport.js +0 -305
  122. package/dist/communicate/a2a-transport.js.map +0 -1
  123. package/dist/communicate/a2a-types.d.ts +0 -107
  124. package/dist/communicate/a2a-types.d.ts.map +0 -1
  125. package/dist/communicate/a2a-types.js +0 -209
  126. package/dist/communicate/a2a-types.js.map +0 -1
  127. package/dist/communicate/adapters/ai-sdk.d.ts +0 -63
  128. package/dist/communicate/adapters/ai-sdk.d.ts.map +0 -1
  129. package/dist/communicate/adapters/ai-sdk.js +0 -114
  130. package/dist/communicate/adapters/ai-sdk.js.map +0 -1
  131. package/dist/communicate/adapters/claude-sdk.d.ts +0 -28
  132. package/dist/communicate/adapters/claude-sdk.d.ts.map +0 -1
  133. package/dist/communicate/adapters/claude-sdk.js +0 -47
  134. package/dist/communicate/adapters/claude-sdk.js.map +0 -1
  135. package/dist/communicate/adapters/crewai.d.ts +0 -42
  136. package/dist/communicate/adapters/crewai.d.ts.map +0 -1
  137. package/dist/communicate/adapters/crewai.js +0 -95
  138. package/dist/communicate/adapters/crewai.js.map +0 -1
  139. package/dist/communicate/adapters/google-adk.d.ts +0 -53
  140. package/dist/communicate/adapters/google-adk.d.ts.map +0 -1
  141. package/dist/communicate/adapters/google-adk.js +0 -77
  142. package/dist/communicate/adapters/google-adk.js.map +0 -1
  143. package/dist/communicate/adapters/index.d.ts +0 -3
  144. package/dist/communicate/adapters/index.d.ts.map +0 -1
  145. package/dist/communicate/adapters/index.js +0 -3
  146. package/dist/communicate/adapters/index.js.map +0 -1
  147. package/dist/communicate/adapters/langgraph.d.ts +0 -40
  148. package/dist/communicate/adapters/langgraph.d.ts.map +0 -1
  149. package/dist/communicate/adapters/langgraph.js +0 -77
  150. package/dist/communicate/adapters/langgraph.js.map +0 -1
  151. package/dist/communicate/adapters/openai-agents.d.ts +0 -25
  152. package/dist/communicate/adapters/openai-agents.d.ts.map +0 -1
  153. package/dist/communicate/adapters/openai-agents.js +0 -70
  154. package/dist/communicate/adapters/openai-agents.js.map +0 -1
  155. package/dist/communicate/adapters/pi.d.ts +0 -44
  156. package/dist/communicate/adapters/pi.d.ts.map +0 -1
  157. package/dist/communicate/adapters/pi.js +0 -55
  158. package/dist/communicate/adapters/pi.js.map +0 -1
  159. package/dist/communicate/core.d.ts +0 -58
  160. package/dist/communicate/core.d.ts.map +0 -1
  161. package/dist/communicate/core.js +0 -127
  162. package/dist/communicate/core.js.map +0 -1
  163. package/dist/communicate/index.d.ts +0 -20
  164. package/dist/communicate/index.d.ts.map +0 -1
  165. package/dist/communicate/index.js +0 -43
  166. package/dist/communicate/index.js.map +0 -1
  167. package/dist/communicate/transport.d.ts +0 -35
  168. package/dist/communicate/transport.d.ts.map +0 -1
  169. package/dist/communicate/transport.js +0 -279
  170. package/dist/communicate/transport.js.map +0 -1
  171. package/dist/communicate/types.d.ts +0 -58
  172. package/dist/communicate/types.d.ts.map +0 -1
  173. package/dist/communicate/types.js +0 -66
  174. package/dist/communicate/types.js.map +0 -1
  175. package/dist/consensus-helpers.d.ts +0 -103
  176. package/dist/consensus-helpers.d.ts.map +0 -1
  177. package/dist/consensus-helpers.js +0 -147
  178. package/dist/consensus-helpers.js.map +0 -1
  179. package/dist/consensus.d.ts +0 -72
  180. package/dist/consensus.d.ts.map +0 -1
  181. package/dist/consensus.js +0 -378
  182. package/dist/consensus.js.map +0 -1
  183. package/dist/event-bus.d.ts +0 -57
  184. package/dist/event-bus.d.ts.map +0 -1
  185. package/dist/event-bus.js +0 -76
  186. package/dist/event-bus.js.map +0 -1
  187. package/dist/examples/demo.d.ts +0 -2
  188. package/dist/examples/demo.d.ts.map +0 -1
  189. package/dist/examples/demo.js +0 -63
  190. package/dist/examples/demo.js.map +0 -1
  191. package/dist/examples/example.d.ts +0 -2
  192. package/dist/examples/example.d.ts.map +0 -1
  193. package/dist/examples/example.js +0 -77
  194. package/dist/examples/example.js.map +0 -1
  195. package/dist/examples/persona-spawn.d.ts +0 -2
  196. package/dist/examples/persona-spawn.d.ts.map +0 -1
  197. package/dist/examples/persona-spawn.js +0 -43
  198. package/dist/examples/persona-spawn.js.map +0 -1
  199. package/dist/examples/quickstart.d.ts +0 -2
  200. package/dist/examples/quickstart.d.ts.map +0 -1
  201. package/dist/examples/quickstart.js +0 -56
  202. package/dist/examples/quickstart.js.map +0 -1
  203. package/dist/examples/ralph-loop.d.ts +0 -2
  204. package/dist/examples/ralph-loop.d.ts.map +0 -1
  205. package/dist/examples/ralph-loop.js +0 -281
  206. package/dist/examples/ralph-loop.js.map +0 -1
  207. package/dist/examples/workflow-superiority.d.ts +0 -32
  208. package/dist/examples/workflow-superiority.d.ts.map +0 -1
  209. package/dist/examples/workflow-superiority.js +0 -1421
  210. package/dist/examples/workflow-superiority.js.map +0 -1
  211. package/dist/github.d.ts +0 -24
  212. package/dist/github.d.ts.map +0 -1
  213. package/dist/github.js +0 -24
  214. package/dist/github.js.map +0 -1
  215. package/dist/http.d.ts +0 -38
  216. package/dist/http.d.ts.map +0 -1
  217. package/dist/http.js +0 -60
  218. package/dist/http.js.map +0 -1
  219. package/dist/lifecycle-hooks.d.ts +0 -141
  220. package/dist/lifecycle-hooks.d.ts.map +0 -1
  221. package/dist/lifecycle-hooks.js +0 -29
  222. package/dist/lifecycle-hooks.js.map +0 -1
  223. package/dist/logs.d.ts +0 -106
  224. package/dist/logs.d.ts.map +0 -1
  225. package/dist/logs.js +0 -291
  226. package/dist/logs.js.map +0 -1
  227. package/dist/models.d.ts +0 -9
  228. package/dist/models.d.ts.map +0 -1
  229. package/dist/models.js +0 -17
  230. package/dist/models.js.map +0 -1
  231. package/dist/personas.d.ts +0 -160
  232. package/dist/personas.d.ts.map +0 -1
  233. package/dist/personas.js +0 -401
  234. package/dist/personas.js.map +0 -1
  235. package/dist/protocol.d.ts +0 -521
  236. package/dist/protocol.d.ts.map +0 -1
  237. package/dist/protocol.js +0 -2
  238. package/dist/protocol.js.map +0 -1
  239. package/dist/provisioner/__tests__/audit.test.d.ts +0 -2
  240. package/dist/provisioner/__tests__/audit.test.d.ts.map +0 -1
  241. package/dist/provisioner/__tests__/audit.test.js +0 -45
  242. package/dist/provisioner/__tests__/audit.test.js.map +0 -1
  243. package/dist/provisioner/__tests__/compiler.test.d.ts +0 -2
  244. package/dist/provisioner/__tests__/compiler.test.d.ts.map +0 -1
  245. package/dist/provisioner/__tests__/compiler.test.js +0 -345
  246. package/dist/provisioner/__tests__/compiler.test.js.map +0 -1
  247. package/dist/provisioner/__tests__/presets.test.d.ts +0 -2
  248. package/dist/provisioner/__tests__/presets.test.d.ts.map +0 -1
  249. package/dist/provisioner/__tests__/presets.test.js +0 -23
  250. package/dist/provisioner/__tests__/presets.test.js.map +0 -1
  251. package/dist/provisioner/__tests__/seeder.test.d.ts +0 -2
  252. package/dist/provisioner/__tests__/seeder.test.d.ts.map +0 -1
  253. package/dist/provisioner/__tests__/seeder.test.js +0 -224
  254. package/dist/provisioner/__tests__/seeder.test.js.map +0 -1
  255. package/dist/provisioner/__tests__/tar-seeder.test.d.ts +0 -2
  256. package/dist/provisioner/__tests__/tar-seeder.test.d.ts.map +0 -1
  257. package/dist/provisioner/__tests__/tar-seeder.test.js +0 -191
  258. package/dist/provisioner/__tests__/tar-seeder.test.js.map +0 -1
  259. package/dist/provisioner/__tests__/token-factory.test.d.ts +0 -2
  260. package/dist/provisioner/__tests__/token-factory.test.d.ts.map +0 -1
  261. package/dist/provisioner/__tests__/token-factory.test.js +0 -139
  262. package/dist/provisioner/__tests__/token-factory.test.js.map +0 -1
  263. package/dist/provisioner/__tests__/token.test.d.ts +0 -2
  264. package/dist/provisioner/__tests__/token.test.d.ts.map +0 -1
  265. package/dist/provisioner/__tests__/token.test.js +0 -49
  266. package/dist/provisioner/__tests__/token.test.js.map +0 -1
  267. package/dist/provisioner/audit.d.ts +0 -19
  268. package/dist/provisioner/audit.d.ts.map +0 -1
  269. package/dist/provisioner/audit.js +0 -74
  270. package/dist/provisioner/audit.js.map +0 -1
  271. package/dist/provisioner/compiler.d.ts +0 -23
  272. package/dist/provisioner/compiler.d.ts.map +0 -1
  273. package/dist/provisioner/compiler.js +0 -355
  274. package/dist/provisioner/compiler.js.map +0 -1
  275. package/dist/provisioner/index.d.ts +0 -10
  276. package/dist/provisioner/index.d.ts.map +0 -1
  277. package/dist/provisioner/index.js +0 -269
  278. package/dist/provisioner/index.js.map +0 -1
  279. package/dist/provisioner/local-jwks.d.ts +0 -25
  280. package/dist/provisioner/local-jwks.d.ts.map +0 -1
  281. package/dist/provisioner/local-jwks.js +0 -70
  282. package/dist/provisioner/local-jwks.js.map +0 -1
  283. package/dist/provisioner/mount.d.ts +0 -14
  284. package/dist/provisioner/mount.d.ts.map +0 -1
  285. package/dist/provisioner/mount.js +0 -329
  286. package/dist/provisioner/mount.js.map +0 -1
  287. package/dist/provisioner/seeder.d.ts +0 -17
  288. package/dist/provisioner/seeder.d.ts.map +0 -1
  289. package/dist/provisioner/seeder.js +0 -419
  290. package/dist/provisioner/seeder.js.map +0 -1
  291. package/dist/provisioner/token.d.ts +0 -41
  292. package/dist/provisioner/token.d.ts.map +0 -1
  293. package/dist/provisioner/token.js +0 -77
  294. package/dist/provisioner/token.js.map +0 -1
  295. package/dist/provisioner/types.d.ts +0 -134
  296. package/dist/provisioner/types.d.ts.map +0 -1
  297. package/dist/pty.d.ts +0 -8
  298. package/dist/pty.d.ts.map +0 -1
  299. package/dist/pty.js +0 -26
  300. package/dist/pty.js.map +0 -1
  301. package/dist/relay-adapter.d.ts +0 -124
  302. package/dist/relay-adapter.d.ts.map +0 -1
  303. package/dist/relay-adapter.js +0 -242
  304. package/dist/relay-adapter.js.map +0 -1
  305. package/dist/relay.d.ts +0 -550
  306. package/dist/relay.d.ts.map +0 -1
  307. package/dist/relay.js +0 -1682
  308. package/dist/relay.js.map +0 -1
  309. package/dist/shadow.d.ts +0 -101
  310. package/dist/shadow.d.ts.map +0 -1
  311. package/dist/shadow.js +0 -174
  312. package/dist/shadow.js.map +0 -1
  313. package/dist/slack.d.ts +0 -24
  314. package/dist/slack.d.ts.map +0 -1
  315. package/dist/slack.js +0 -24
  316. package/dist/slack.js.map +0 -1
  317. package/dist/spawn-from-env.d.ts +0 -78
  318. package/dist/spawn-from-env.d.ts.map +0 -1
  319. package/dist/spawn-from-env.js +0 -172
  320. package/dist/spawn-from-env.js.map +0 -1
  321. package/dist/transport.d.ts +0 -104
  322. package/dist/transport.d.ts.map +0 -1
  323. package/dist/transport.js +0 -520
  324. package/dist/transport.js.map +0 -1
  325. package/dist/types.d.ts +0 -101
  326. package/dist/types.d.ts.map +0 -1
  327. package/dist/types.js +0 -5
  328. package/dist/types.js.map +0 -1
  329. package/dist/workers.d.ts +0 -39
  330. package/dist/workers.d.ts.map +0 -1
  331. package/dist/workers.js +0 -39
  332. package/dist/workers.js.map +0 -1
  333. package/dist/workflows/__tests__/budget-enforcement.test.d.ts +0 -2
  334. package/dist/workflows/__tests__/budget-enforcement.test.d.ts.map +0 -1
  335. package/dist/workflows/__tests__/budget-enforcement.test.js +0 -411
  336. package/dist/workflows/__tests__/budget-enforcement.test.js.map +0 -1
  337. package/dist/workflows/__tests__/budget-tracker.test.d.ts +0 -2
  338. package/dist/workflows/__tests__/budget-tracker.test.d.ts.map +0 -1
  339. package/dist/workflows/__tests__/budget-tracker.test.js +0 -99
  340. package/dist/workflows/__tests__/budget-tracker.test.js.map +0 -1
  341. package/dist/workflows/__tests__/builder-paths.test.d.ts +0 -2
  342. package/dist/workflows/__tests__/builder-paths.test.d.ts.map +0 -1
  343. package/dist/workflows/__tests__/builder-paths.test.js +0 -63
  344. package/dist/workflows/__tests__/builder-paths.test.js.map +0 -1
  345. package/dist/workflows/__tests__/channel-messenger.test.d.ts +0 -2
  346. package/dist/workflows/__tests__/channel-messenger.test.d.ts.map +0 -1
  347. package/dist/workflows/__tests__/channel-messenger.test.js +0 -123
  348. package/dist/workflows/__tests__/channel-messenger.test.js.map +0 -1
  349. package/dist/workflows/__tests__/cli-session-collector.test.d.ts +0 -2
  350. package/dist/workflows/__tests__/cli-session-collector.test.d.ts.map +0 -1
  351. package/dist/workflows/__tests__/cli-session-collector.test.js +0 -54
  352. package/dist/workflows/__tests__/cli-session-collector.test.js.map +0 -1
  353. package/dist/workflows/__tests__/collectors/claude.test.d.ts +0 -2
  354. package/dist/workflows/__tests__/collectors/claude.test.d.ts.map +0 -1
  355. package/dist/workflows/__tests__/collectors/claude.test.js +0 -85
  356. package/dist/workflows/__tests__/collectors/claude.test.js.map +0 -1
  357. package/dist/workflows/__tests__/collectors/codex.test.d.ts +0 -2
  358. package/dist/workflows/__tests__/collectors/codex.test.d.ts.map +0 -1
  359. package/dist/workflows/__tests__/collectors/codex.test.js +0 -67
  360. package/dist/workflows/__tests__/collectors/codex.test.js.map +0 -1
  361. package/dist/workflows/__tests__/collectors/opencode.test.d.ts +0 -2
  362. package/dist/workflows/__tests__/collectors/opencode.test.d.ts.map +0 -1
  363. package/dist/workflows/__tests__/collectors/opencode.test.js +0 -119
  364. package/dist/workflows/__tests__/collectors/opencode.test.js.map +0 -1
  365. package/dist/workflows/__tests__/e2big-and-verify.test.d.ts +0 -2
  366. package/dist/workflows/__tests__/e2big-and-verify.test.d.ts.map +0 -1
  367. package/dist/workflows/__tests__/e2big-and-verify.test.js +0 -62
  368. package/dist/workflows/__tests__/e2big-and-verify.test.js.map +0 -1
  369. package/dist/workflows/__tests__/e2e-permissions.test.d.ts +0 -2
  370. package/dist/workflows/__tests__/e2e-permissions.test.d.ts.map +0 -1
  371. package/dist/workflows/__tests__/e2e-permissions.test.js +0 -338
  372. package/dist/workflows/__tests__/e2e-permissions.test.js.map +0 -1
  373. package/dist/workflows/__tests__/permission-types.test.d.ts +0 -2
  374. package/dist/workflows/__tests__/permission-types.test.d.ts.map +0 -1
  375. package/dist/workflows/__tests__/permission-types.test.js +0 -124
  376. package/dist/workflows/__tests__/permission-types.test.js.map +0 -1
  377. package/dist/workflows/__tests__/permissions-integration.test.d.ts +0 -2
  378. package/dist/workflows/__tests__/permissions-integration.test.d.ts.map +0 -1
  379. package/dist/workflows/__tests__/permissions-integration.test.js +0 -577
  380. package/dist/workflows/__tests__/permissions-integration.test.js.map +0 -1
  381. package/dist/workflows/__tests__/process-backend-executor.test.d.ts +0 -2
  382. package/dist/workflows/__tests__/process-backend-executor.test.d.ts.map +0 -1
  383. package/dist/workflows/__tests__/process-backend-executor.test.js +0 -83
  384. package/dist/workflows/__tests__/process-backend-executor.test.js.map +0 -1
  385. package/dist/workflows/__tests__/proxy-env.test.d.ts +0 -2
  386. package/dist/workflows/__tests__/proxy-env.test.d.ts.map +0 -1
  387. package/dist/workflows/__tests__/proxy-env.test.js +0 -135
  388. package/dist/workflows/__tests__/proxy-env.test.js.map +0 -1
  389. package/dist/workflows/__tests__/run-script.test.d.ts +0 -2
  390. package/dist/workflows/__tests__/run-script.test.d.ts.map +0 -1
  391. package/dist/workflows/__tests__/run-script.test.js +0 -426
  392. package/dist/workflows/__tests__/run-script.test.js.map +0 -1
  393. package/dist/workflows/__tests__/run-summary-table.test.d.ts +0 -2
  394. package/dist/workflows/__tests__/run-summary-table.test.d.ts.map +0 -1
  395. package/dist/workflows/__tests__/run-summary-table.test.js +0 -131
  396. package/dist/workflows/__tests__/run-summary-table.test.js.map +0 -1
  397. package/dist/workflows/__tests__/scrub-pty-chrome.test.d.ts +0 -2
  398. package/dist/workflows/__tests__/scrub-pty-chrome.test.d.ts.map +0 -1
  399. package/dist/workflows/__tests__/scrub-pty-chrome.test.js +0 -113
  400. package/dist/workflows/__tests__/scrub-pty-chrome.test.js.map +0 -1
  401. package/dist/workflows/__tests__/sibling-links.test.d.ts +0 -2
  402. package/dist/workflows/__tests__/sibling-links.test.d.ts.map +0 -1
  403. package/dist/workflows/__tests__/sibling-links.test.js +0 -166
  404. package/dist/workflows/__tests__/sibling-links.test.js.map +0 -1
  405. package/dist/workflows/__tests__/step-cwd.test.d.ts +0 -2
  406. package/dist/workflows/__tests__/step-cwd.test.d.ts.map +0 -1
  407. package/dist/workflows/__tests__/step-cwd.test.js +0 -42
  408. package/dist/workflows/__tests__/step-cwd.test.js.map +0 -1
  409. package/dist/workflows/__tests__/step-executor.test.d.ts +0 -2
  410. package/dist/workflows/__tests__/step-executor.test.d.ts.map +0 -1
  411. package/dist/workflows/__tests__/step-executor.test.js +0 -378
  412. package/dist/workflows/__tests__/step-executor.test.js.map +0 -1
  413. package/dist/workflows/__tests__/template-resolver.test.d.ts +0 -2
  414. package/dist/workflows/__tests__/template-resolver.test.d.ts.map +0 -1
  415. package/dist/workflows/__tests__/template-resolver.test.js +0 -145
  416. package/dist/workflows/__tests__/template-resolver.test.js.map +0 -1
  417. package/dist/workflows/__tests__/verification-custom.test.d.ts +0 -2
  418. package/dist/workflows/__tests__/verification-custom.test.d.ts.map +0 -1
  419. package/dist/workflows/__tests__/verification-custom.test.js +0 -230
  420. package/dist/workflows/__tests__/verification-custom.test.js.map +0 -1
  421. package/dist/workflows/__tests__/verification-traceback.test.d.ts +0 -2
  422. package/dist/workflows/__tests__/verification-traceback.test.d.ts.map +0 -1
  423. package/dist/workflows/__tests__/verification-traceback.test.js +0 -442
  424. package/dist/workflows/__tests__/verification-traceback.test.js.map +0 -1
  425. package/dist/workflows/__tests__/verification.test.d.ts +0 -2
  426. package/dist/workflows/__tests__/verification.test.d.ts.map +0 -1
  427. package/dist/workflows/__tests__/verification.test.js +0 -272
  428. package/dist/workflows/__tests__/verification.test.js.map +0 -1
  429. package/dist/workflows/__tests__/workflow-reliability-contract.test.d.ts +0 -2
  430. package/dist/workflows/__tests__/workflow-reliability-contract.test.d.ts.map +0 -1
  431. package/dist/workflows/__tests__/workflow-reliability-contract.test.js +0 -536
  432. package/dist/workflows/__tests__/workflow-reliability-contract.test.js.map +0 -1
  433. package/dist/workflows/__tests__/workflow-reliability-e2e.test.d.ts +0 -2
  434. package/dist/workflows/__tests__/workflow-reliability-e2e.test.d.ts.map +0 -1
  435. package/dist/workflows/__tests__/workflow-reliability-e2e.test.js +0 -199
  436. package/dist/workflows/__tests__/workflow-reliability-e2e.test.js.map +0 -1
  437. package/dist/workflows/api-executor.d.ts +0 -16
  438. package/dist/workflows/api-executor.d.ts.map +0 -1
  439. package/dist/workflows/api-executor.js +0 -94
  440. package/dist/workflows/api-executor.js.map +0 -1
  441. package/dist/workflows/barrier.d.ts +0 -72
  442. package/dist/workflows/barrier.d.ts.map +0 -1
  443. package/dist/workflows/barrier.js +0 -162
  444. package/dist/workflows/barrier.js.map +0 -1
  445. package/dist/workflows/budget-tracker.d.ts +0 -75
  446. package/dist/workflows/budget-tracker.d.ts.map +0 -1
  447. package/dist/workflows/budget-tracker.js +0 -184
  448. package/dist/workflows/budget-tracker.js.map +0 -1
  449. package/dist/workflows/builder.d.ts +0 -229
  450. package/dist/workflows/builder.d.ts.map +0 -1
  451. package/dist/workflows/builder.js +0 -430
  452. package/dist/workflows/builder.js.map +0 -1
  453. package/dist/workflows/channel-messenger.d.ts +0 -28
  454. package/dist/workflows/channel-messenger.d.ts.map +0 -1
  455. package/dist/workflows/channel-messenger.js +0 -275
  456. package/dist/workflows/channel-messenger.js.map +0 -1
  457. package/dist/workflows/cli-session-collector.d.ts +0 -39
  458. package/dist/workflows/cli-session-collector.d.ts.map +0 -1
  459. package/dist/workflows/cli-session-collector.js +0 -23
  460. package/dist/workflows/cli-session-collector.js.map +0 -1
  461. package/dist/workflows/cli.d.ts +0 -11
  462. package/dist/workflows/cli.d.ts.map +0 -1
  463. package/dist/workflows/cli.js +0 -395
  464. package/dist/workflows/cli.js.map +0 -1
  465. package/dist/workflows/cloud-runner.d.ts +0 -15
  466. package/dist/workflows/cloud-runner.d.ts.map +0 -1
  467. package/dist/workflows/cloud-runner.js +0 -41
  468. package/dist/workflows/cloud-runner.js.map +0 -1
  469. package/dist/workflows/cloud-schedules.d.ts +0 -3
  470. package/dist/workflows/cloud-schedules.d.ts.map +0 -1
  471. package/dist/workflows/cloud-schedules.js +0 -2
  472. package/dist/workflows/cloud-schedules.js.map +0 -1
  473. package/dist/workflows/collectors/claude.d.ts +0 -6
  474. package/dist/workflows/collectors/claude.d.ts.map +0 -1
  475. package/dist/workflows/collectors/claude.js +0 -330
  476. package/dist/workflows/collectors/claude.js.map +0 -1
  477. package/dist/workflows/collectors/codex.d.ts +0 -18
  478. package/dist/workflows/collectors/codex.d.ts.map +0 -1
  479. package/dist/workflows/collectors/codex.js +0 -265
  480. package/dist/workflows/collectors/codex.js.map +0 -1
  481. package/dist/workflows/collectors/opencode.d.ts +0 -6
  482. package/dist/workflows/collectors/opencode.d.ts.map +0 -1
  483. package/dist/workflows/collectors/opencode.js +0 -204
  484. package/dist/workflows/collectors/opencode.js.map +0 -1
  485. package/dist/workflows/coordinator.d.ts +0 -73
  486. package/dist/workflows/coordinator.d.ts.map +0 -1
  487. package/dist/workflows/coordinator.js +0 -647
  488. package/dist/workflows/coordinator.js.map +0 -1
  489. package/dist/workflows/custom-steps.d.ts +0 -73
  490. package/dist/workflows/custom-steps.d.ts.map +0 -1
  491. package/dist/workflows/custom-steps.js +0 -321
  492. package/dist/workflows/custom-steps.js.map +0 -1
  493. package/dist/workflows/default-logger.d.ts +0 -9
  494. package/dist/workflows/default-logger.d.ts.map +0 -1
  495. package/dist/workflows/default-logger.js +0 -104
  496. package/dist/workflows/default-logger.js.map +0 -1
  497. package/dist/workflows/dry-run-format.d.ts +0 -6
  498. package/dist/workflows/dry-run-format.d.ts.map +0 -1
  499. package/dist/workflows/dry-run-format.js +0 -76
  500. package/dist/workflows/dry-run-format.js.map +0 -1
  501. package/dist/workflows/file-db.d.ts +0 -85
  502. package/dist/workflows/file-db.d.ts.map +0 -1
  503. package/dist/workflows/file-db.js +0 -215
  504. package/dist/workflows/file-db.js.map +0 -1
  505. package/dist/workflows/index.d.ts +0 -36
  506. package/dist/workflows/index.d.ts.map +0 -1
  507. package/dist/workflows/index.js +0 -33
  508. package/dist/workflows/index.js.map +0 -1
  509. package/dist/workflows/listr-renderer.d.ts +0 -26
  510. package/dist/workflows/listr-renderer.d.ts.map +0 -1
  511. package/dist/workflows/listr-renderer.js +0 -230
  512. package/dist/workflows/listr-renderer.js.map +0 -1
  513. package/dist/workflows/memory-db.d.ts +0 -17
  514. package/dist/workflows/memory-db.d.ts.map +0 -1
  515. package/dist/workflows/memory-db.js +0 -33
  516. package/dist/workflows/memory-db.js.map +0 -1
  517. package/dist/workflows/process-backend-executor.d.ts +0 -18
  518. package/dist/workflows/process-backend-executor.d.ts.map +0 -1
  519. package/dist/workflows/process-backend-executor.js +0 -74
  520. package/dist/workflows/process-backend-executor.js.map +0 -1
  521. package/dist/workflows/process-spawner.d.ts +0 -35
  522. package/dist/workflows/process-spawner.d.ts.map +0 -1
  523. package/dist/workflows/process-spawner.js +0 -141
  524. package/dist/workflows/process-spawner.js.map +0 -1
  525. package/dist/workflows/proxy-env.d.ts +0 -52
  526. package/dist/workflows/proxy-env.d.ts.map +0 -1
  527. package/dist/workflows/proxy-env.js +0 -92
  528. package/dist/workflows/proxy-env.js.map +0 -1
  529. package/dist/workflows/run-script.d.ts +0 -82
  530. package/dist/workflows/run-script.d.ts.map +0 -1
  531. package/dist/workflows/run-script.js +0 -521
  532. package/dist/workflows/run-script.js.map +0 -1
  533. package/dist/workflows/run-summary-table.d.ts +0 -5
  534. package/dist/workflows/run-summary-table.d.ts.map +0 -1
  535. package/dist/workflows/run-summary-table.js +0 -132
  536. package/dist/workflows/run-summary-table.js.map +0 -1
  537. package/dist/workflows/run.d.ts +0 -45
  538. package/dist/workflows/run.d.ts.map +0 -1
  539. package/dist/workflows/run.js +0 -37
  540. package/dist/workflows/run.js.map +0 -1
  541. package/dist/workflows/runner.d.ts +0 -527
  542. package/dist/workflows/runner.d.ts.map +0 -1
  543. package/dist/workflows/runner.js +0 -6266
  544. package/dist/workflows/runner.js.map +0 -1
  545. package/dist/workflows/sibling-links.d.ts +0 -100
  546. package/dist/workflows/sibling-links.d.ts.map +0 -1
  547. package/dist/workflows/sibling-links.js +0 -205
  548. package/dist/workflows/sibling-links.js.map +0 -1
  549. package/dist/workflows/state.d.ts +0 -77
  550. package/dist/workflows/state.d.ts.map +0 -1
  551. package/dist/workflows/state.js +0 -140
  552. package/dist/workflows/state.js.map +0 -1
  553. package/dist/workflows/step-executor.d.ts +0 -95
  554. package/dist/workflows/step-executor.d.ts.map +0 -1
  555. package/dist/workflows/step-executor.js +0 -393
  556. package/dist/workflows/step-executor.js.map +0 -1
  557. package/dist/workflows/template-resolver.d.ts +0 -33
  558. package/dist/workflows/template-resolver.d.ts.map +0 -1
  559. package/dist/workflows/template-resolver.js +0 -144
  560. package/dist/workflows/template-resolver.js.map +0 -1
  561. package/dist/workflows/templates.d.ts +0 -47
  562. package/dist/workflows/templates.d.ts.map +0 -1
  563. package/dist/workflows/templates.js +0 -405
  564. package/dist/workflows/templates.js.map +0 -1
  565. package/dist/workflows/trajectory.d.ts +0 -87
  566. package/dist/workflows/trajectory.d.ts.map +0 -1
  567. package/dist/workflows/trajectory.js +0 -412
  568. package/dist/workflows/trajectory.js.map +0 -1
  569. package/dist/workflows/types.d.ts +0 -471
  570. package/dist/workflows/types.d.ts.map +0 -1
  571. package/dist/workflows/types.js +0 -37
  572. package/dist/workflows/types.js.map +0 -1
  573. package/dist/workflows/validator.d.ts +0 -11
  574. package/dist/workflows/validator.d.ts.map +0 -1
  575. package/dist/workflows/validator.js +0 -184
  576. package/dist/workflows/validator.js.map +0 -1
  577. package/dist/workflows/verification.d.ts +0 -53
  578. package/dist/workflows/verification.d.ts.map +0 -1
  579. package/dist/workflows/verification.js +0 -238
  580. package/dist/workflows/verification.js.map +0 -1
  581. /package/dist/{provisioner → actions}/types.js +0 -0
package/README.md CHANGED
@@ -1,215 +1,249 @@
1
1
  # @agent-relay/sdk
2
2
 
3
- TypeScript SDK for building multi-agent workflows with Agent Relay. Provides both low-level broker control and high-level workflow orchestration.
3
+ Core TypeScript SDK for Agent Relay communication. The SDK gives agents and applications three public capabilities: messaging, delivery, and actions.
4
+
5
+ Use `@agent-relay/sdk` when your app, service, harness, or worker already owns its runtime and needs to participate in Agent Relay. Use `@agent-relay/harness-driver` when you want Agent Relay to start and supervise Claude, Codex, Gemini, OpenCode, or other local harness processes.
4
6
 
5
7
  ## Installation
6
8
 
7
9
  ```bash
8
- npm install @agent-relay/sdk
10
+ npm install @agent-relay/sdk zod
9
11
  ```
10
12
 
11
- ## Quick Start
13
+ ## Concepts
12
14
 
13
- ### Workflow Builder (Recommended)
15
+ - **Messaging** is durable agent communication: identities, channels, DMs, group DMs, threads, reactions, inbox, read state, presence, search, and events.
16
+ - **Delivery** is runtime handoff: taking durable messages from Agent Relay and injecting them into a live agent process, service, app server, browser worker, or harness.
17
+ - **Actions** are typed capabilities: discoverable operations with Zod schemas, policy hooks, audit events, and structured result/error envelopes.
18
+ - **Runtime** is optional managed execution. Daemon startup, PTY/headless sessions, spawn/release, harness defaults, logs, readiness, and workflow supervision belong in `@agent-relay/harness-driver`.
14
19
 
15
- The workflow builder is the primary way to define and run multi-agent workflows:
20
+ ## Quick start
16
21
 
17
22
  ```ts
18
- import { workflow } from '@agent-relay/sdk/workflows';
19
-
20
- const result = await workflow('my-feature')
21
- .pattern('dag')
22
- .agent('planner', { cli: 'claude', role: 'Planning lead' })
23
- .agent('builder', { cli: 'codex', role: 'Implementation engineer' })
24
- .step('plan', { agent: 'planner', task: 'Create a detailed plan' })
25
- .step('build', { agent: 'builder', task: 'Implement the plan', dependsOn: ['plan'] })
26
- .run();
27
- ```
28
-
29
- ### High-Level Facade
23
+ import { AgentRelay } from '@agent-relay/sdk';
30
24
 
31
- The `AgentRelay` class provides a clean API for spawning and managing agents:
25
+ const relay = new AgentRelay({
26
+ workspaceKey: process.env.RELAY_WORKSPACE_KEY!,
27
+ });
32
28
 
33
- ```ts
34
- import { AgentRelay } from '@agent-relay/sdk';
29
+ const reviewer = await relay.agents.register({ name: 'reviewer' });
30
+ const agent = relay.as(reviewer);
35
31
 
36
- const relay = new AgentRelay();
32
+ await agent.channels.join('reviews');
37
33
 
38
- // Event hooks
39
- relay.onMessageReceived = (msg) => console.log(`${msg.from}: ${msg.text}`);
40
- relay.onAgentIdle = ({ name, idleSecs }) => console.log(`${name} idle for ${idleSecs}s`);
41
- relay.onAgentActivityChanged = ({ name, active, pendingDeliveries }) => {
42
- updateThinkingBadge(name, active ? `Thinking (${pendingDeliveries})` : 'Idle');
43
- };
34
+ agent.events.on('message.created', async (event) => {
35
+ if (event.channel !== 'reviews') return;
44
36
 
45
- // Spawn agents using shorthand spawners
46
- const worker = await relay.claude.spawn({
47
- name: 'Worker1',
48
- channels: ['general'],
49
- // Lifecycle hooks can be sync or async functions.
50
- onStart: ({ name }) => console.log(`spawning ${name}`),
51
- onSuccess: ({ name, runtime }) => console.log(`spawned ${name} (${runtime})`),
52
- onError: ({ name, error }) => console.error(`failed to spawn ${name}`, error),
37
+ await agent.messages.reply({
38
+ messageId: event.message.id,
39
+ text: 'Received. I will review this thread.',
40
+ });
41
+ await agent.messages.markRead(event.message.id);
53
42
  });
54
43
 
55
- // Or use the generic spawn method
56
- const agent = await relay.spawn('Worker2', 'codex', 'Build the API', {
57
- channels: ['dev'],
58
- model: 'gpt-4o',
44
+ await agent.messages.send({
45
+ channel: 'reviews',
46
+ text: 'Reviewer is online.',
59
47
  });
48
+ ```
60
49
 
61
- // Wait for agent to finish (go idle or exit)
62
- const result = await agent.waitForIdle(120_000);
50
+ You can also create a new workspace directly:
63
51
 
64
- // Release with lifecycle hooks
65
- await worker.release({
66
- reason: 'done',
67
- onStart: ({ name }) => console.log(`releasing ${name}`),
68
- onSuccess: ({ name }) => console.log(`released ${name}`),
52
+ ```ts
53
+ const relay = await AgentRelay.createWorkspace({
54
+ name: 'review-workspace',
69
55
  });
56
+ ```
70
57
 
71
- // Send messages
72
- const human = relay.human({ name: 'Orchestrator' });
73
- await human.sendMessage({ to: 'Worker1', text: 'Start the task' });
58
+ ## Messaging
74
59
 
75
- // Clean up
76
- await relay.shutdown();
77
- ```
60
+ The core client covers the communication surface agents need during a run:
78
61
 
79
- ### Low-Level Client
62
+ - Register agent, human, and system identities.
63
+ - Join, list, create, update, mute, archive, and inspect channels.
64
+ - Send channel messages, direct messages, and group DMs.
65
+ - Reply in threads and fetch message history.
66
+ - Add and remove reactions.
67
+ - Search messages and inspect inbox state.
68
+ - Subscribe to events for messages, threads, DMs, reactions, channel changes, presence, files, webhooks, and action invocations.
80
69
 
81
- For direct broker control:
70
+ Example:
82
71
 
83
72
  ```ts
84
- import { AgentRelayClient } from '@agent-relay/sdk';
73
+ const lead = relay.as(await relay.agents.register({ name: 'lead' }));
85
74
 
86
- // Spawn a local broker and connect over HTTP/WS
87
- const client = await AgentRelayClient.spawn({
88
- cwd: '/my/project',
89
- channels: ['general'],
75
+ await lead.channels.create({
76
+ name: 'release',
77
+ topic: 'Release readiness',
90
78
  });
91
79
 
92
- const unsubscribeBrokerExit = client.onBrokerExit((info) => {
93
- console.error('broker exited', info.code, info.signal, info.recentStderr);
94
- unsubscribeBrokerExit();
80
+ await lead.messages.send({
81
+ channel: 'release',
82
+ text: 'Please review the migration guide.',
95
83
  });
96
84
 
97
- // Or connect to an already-running broker (reads connection.json)
98
- // const client = AgentRelayClient.connect({ cwd: '/my/project' });
99
-
100
- // Or connect to a remote broker directly
101
- // const client = new AgentRelayClient({ baseUrl: 'http://...', apiKey: 'br_...' });
102
-
103
- await client.spawnPty({
104
- name: 'Worker1',
105
- cli: 'claude',
106
- channels: ['general'],
107
- task: 'Implement user authentication',
85
+ const thread = await lead.messages.reply({
86
+ messageId: 'msg_123',
87
+ text: 'Tracking docs feedback here.',
108
88
  });
109
89
 
110
- const agents = await client.listAgents();
111
- await client.release('Worker1');
112
- await client.shutdown();
90
+ await lead.messages.react({
91
+ messageId: thread.id,
92
+ emoji: 'eyes',
93
+ });
113
94
  ```
114
95
 
115
- ### Provider + Transport Spawning (Opencode/Claude)
96
+ ## Delivery
116
97
 
117
- Use provider-first spawn helpers and set `transport` when you want headless mode.
98
+ Delivery is the session handoff contract. Relay stores messages durably; a session is the thing that can receive those messages inside an agent, service, browser worker, or managed harness:
118
99
 
119
- ```ts
120
- import { AgentRelayClient } from '@agent-relay/sdk';
100
+ - Harnesses create sessions with stable agent identity.
101
+ - Sessions declare capabilities such as delivery modes, observable events, actions, and lifecycle operations.
102
+ - Sessions receive durable Relay messages with delivery context and return explicit receipts: `accepted`, `delivered`, `deferred`, or `failed`.
103
+ - `DeliveryRunner` can drain inbox items into either a session `receiveMessage(...)` contract or a legacy `inject(...)` adapter.
104
+ - Send operations support idempotency keys so retries do not duplicate messages.
121
105
 
122
- const client = await AgentRelayClient.spawn({
123
- channels: ['general'],
124
- });
106
+ Managed harness delivery, such as injecting messages into a PTY or headless app server, belongs in `@agent-relay/harness-driver`. The SDK stays responsible for the public delivery contract.
125
107
 
126
- await client.spawnOpencode({
127
- name: 'OpencodeWorker',
128
- transport: 'headless',
129
- channels: ['general'],
130
- task: 'Review this PR and report risks',
131
- });
108
+ Minimum session contract:
132
109
 
133
- await client.spawnClaude({
134
- name: 'ClaudeHeadless',
135
- transport: 'headless', // override default PTY transport
136
- channels: ['general'],
137
- task: 'Summarize release risks',
138
- });
139
-
140
- // ... interact with the worker via sendMessage/listAgents/events ...
110
+ ```ts
111
+ import {
112
+ DeliveryRunner,
113
+ MINIMAL_AGENT_SESSION_CAPABILITIES,
114
+ normalizeAgentIdentity,
115
+ type AgentSession,
116
+ } from '@agent-relay/sdk';
117
+
118
+ const session: AgentSession = {
119
+ identity: normalizeAgentIdentity({ id: 'agent_reviewer', name: 'reviewer', handle: '@reviewer' }),
120
+ capabilities: {
121
+ ...MINIMAL_AGENT_SESSION_CAPABILITIES,
122
+ delivery: { modes: ['immediate', 'next-tool-call', 'on-idle'], queue: true },
123
+ events: { emits: ['status.changed', 'tool.called', 'tool.completed', 'file.changed'] },
124
+ actions: { invoke: true, expose: false },
125
+ },
126
+ async receiveMessage(message, context) {
127
+ const job = await service.enqueue({
128
+ id: message.id,
129
+ text: message.text,
130
+ threadId: message.threadId,
131
+ priority: context.priority ?? 'normal',
132
+ deliveryMode: context.mode,
133
+ });
134
+
135
+ return job.ready
136
+ ? { status: 'delivered', deliveryId: job.id }
137
+ : { status: 'deferred', deliveryId: job.id, availableAt: job.availableAt };
138
+ },
139
+ onEvent(emit) {
140
+ return service.onStatus((status) => emit({ type: 'status.changed', status }));
141
+ },
142
+ async release(reason) {
143
+ await service.release(reason);
144
+ },
145
+ };
141
146
 
142
- await client.shutdown();
147
+ await new DeliveryRunner({
148
+ messaging: relay.as(reviewer).messaging,
149
+ delivery: session,
150
+ agentName: 'reviewer',
151
+ }).start();
143
152
  ```
144
153
 
145
- Notes:
154
+ ## Actions
146
155
 
147
- - Transport is a setting (`'pty'` or `'headless'`) on provider spawn methods.
148
- - `spawnClaude(...)` defaults to PTY unless you pass `transport: 'headless'`.
149
- - `spawnOpencode(...)` defaults to headless.
150
- - You can also use `client.spawnProvider({ provider, transport, ... })` for generic provider-driven spawning.
156
+ Agent Relay actions are exposed through registration and invocation:
151
157
 
152
- ## Features
158
+ - Register actions with names, descriptions, and Zod input/output schemas.
159
+ - Validate inputs before handlers run and validate outputs before callers receive them.
160
+ - Attach policy hooks for allow/deny decisions.
161
+ - Emit audit events for invoked, completed, failed, and denied actions.
162
+ - Expose registered actions as MCP tools for agents that do not embed the SDK.
153
163
 
154
- - **Workflow Builder** Fluent API for defining DAG-based multi-agent workflows
155
- - **Agent Spawning** — Spawn Claude, Codex, Gemini, Aider, or Goose agents
156
- - **Idle Detection** — Configurable silence threshold with `onAgentIdle` hook and `waitForIdle()`
157
- - **Message Delivery** — Track message delivery states (queued, injected, active, verified)
158
- - **Event Streaming** — Real-time events for agent lifecycle, output, and messaging
159
- - **Shadow Agents** — Spawn observer agents that monitor other agents
160
- - **Consensus** — Multi-agent voting and consensus helpers
164
+ This keeps action routing available to any runtime without requiring a local broker or spawned harness.
161
165
 
162
- ## Subpath Exports
166
+ Example:
163
167
 
164
168
  ```ts
165
- import { AgentRelayClient } from '@agent-relay/sdk/client';
166
- import { workflow, WorkflowBuilder } from '@agent-relay/sdk/workflows';
167
- import { ConsensusCoordinator } from '@agent-relay/sdk/consensus';
168
- import { ShadowCoordinator } from '@agent-relay/sdk/shadow';
169
- ```
170
-
171
- ## Workflow Templates
169
+ import { z } from 'zod';
172
170
 
173
- Built-in templates for common patterns:
171
+ const OpenPullRequestInput = z.object({
172
+ repository: z.string(),
173
+ branch: z.string(),
174
+ title: z.string(),
175
+ body: z.string().optional(),
176
+ });
174
177
 
175
- ```ts
176
- import { fanOut, pipeline, dag } from '@agent-relay/sdk/workflows';
178
+ const OpenPullRequestOutput = z.object({
179
+ url: z.string().url(),
180
+ number: z.number().int().positive(),
181
+ });
177
182
 
178
- // Fan-out: parallel execution with synthesis
179
- const builder = fanOut('analysis', {
180
- tasks: ['Analyze backend', 'Analyze frontend'],
181
- synthesisTask: 'Combine analyses into action plan',
183
+ relay.actions.register({
184
+ name: 'github.open_pr',
185
+ description: 'Open a GitHub pull request for a prepared branch.',
186
+ inputSchema: OpenPullRequestInput,
187
+ outputSchema: OpenPullRequestOutput,
188
+ policy: async (_input, ctx) => ({
189
+ allowed: ctx.caller.type === 'agent' && ctx.caller.name.startsWith('release-'),
190
+ reason: 'Only release agents can open PRs',
191
+ }),
192
+ handler: async (input, ctx) => {
193
+ const pr = await github.openPullRequest(input);
194
+ await ctx.messaging?.messages.direct({
195
+ to: ctx.caller.name,
196
+ text: `Opened ${pr.url}`,
197
+ });
198
+ return { url: pr.url, number: pr.number };
199
+ },
182
200
  });
183
201
 
184
- // Pipeline: sequential stages
185
- const builder = pipeline('release', {
186
- stages: [
187
- { name: 'plan', task: 'Create release plan' },
188
- { name: 'implement', task: 'Implement changes' },
189
- { name: 'verify', task: 'Run verification' },
190
- ],
202
+ const pr = await relay.actions.invoke({
203
+ name: 'github.open_pr',
204
+ input: {
205
+ repository: 'AgentWorkforce/relay',
206
+ branch: 'codex/core-simplification',
207
+ title: 'Simplify Agent Relay core surfaces',
208
+ },
209
+ caller: { name: 'release-lead', type: 'agent' },
191
210
  });
192
211
  ```
193
212
 
194
- ## Relaycast Integration
213
+ ## Optional managed harnesses
195
214
 
196
- The SDK re-exports Relaycast client types for cloud-based relay coordination:
215
+ Install the harness driver package for managed local execution:
197
216
 
198
- ```ts
199
- import { RelayCast, AgentClient } from '@agent-relay/sdk';
217
+ ```bash
218
+ npm install @agent-relay/harness-driver
200
219
  ```
201
220
 
221
+ `@agent-relay/harness-driver` owns:
222
+
223
+ - Local broker process startup and connection files.
224
+ - PTY and headless harness transports.
225
+ - Claude, Codex, Gemini, OpenCode, and custom CLI spawn defaults.
226
+ - Agent lifecycle hooks, session metadata, idle detection, managed release, and shutdown.
227
+ - Workflow and supervision helpers that coordinate multiple spawned harnesses.
228
+
229
+ Keep application-level messaging code on `@agent-relay/sdk`; add `@agent-relay/harness-driver` only at the boundary that owns local agent processes.
230
+
231
+ ## Migration from the pre-simplification SDK
232
+
233
+ | Previous SDK surface | SemVer-major target |
234
+ | -------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
235
+ | Spawn methods on `AgentRelay`, `HarnessDriverClient.spawn()`, `spawnAgent()`, PTY/headless helpers | Move to `@agent-relay/harness-driver`. |
236
+ | Workflow builder, consensus, shadow agents, and managed run helpers | Move to `@agent-relay/harness-driver` or workflow-specific packages. |
237
+ | Messaging, identities, channels, DMs, threads, presence, read state, and actions | Stay in `@agent-relay/sdk`. |
238
+ | Primitive clients such as GitHub or Slack adapters | Stay in their own packages and integrate through SDK actions/messages. |
239
+
240
+ Code that only sends and receives Agent Relay messages should keep depending on `@agent-relay/sdk`. Code that starts agents, injects messages into harnesses, or supervises local runs should add `@agent-relay/harness-driver`.
241
+
202
242
  ## Development
203
243
 
204
244
  ```bash
205
- # Build
206
245
  npm --prefix packages/sdk run build
207
-
208
- # Run tests
209
246
  npm --prefix packages/sdk test
210
-
211
- # Run demo
212
- npm --prefix packages/sdk run demo
213
247
  ```
214
248
 
215
249
  ## License
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,18 @@
1
+ import type { ActionValidationIssue } from './types.js';
2
+ export declare class ActionRegistrationError extends Error {
3
+ readonly code = "action_registration_error";
4
+ constructor(message: string);
5
+ }
6
+ export declare class ActionNotFoundError extends Error {
7
+ readonly code = "action_not_found";
8
+ readonly action: string;
9
+ constructor(action: string);
10
+ }
11
+ export declare class ActionValidationError extends Error {
12
+ readonly code = "action_validation_error";
13
+ readonly action: string;
14
+ readonly phase: 'input' | 'output';
15
+ readonly issues: ActionValidationIssue[];
16
+ constructor(action: string, phase: 'input' | 'output', issues: ActionValidationIssue[]);
17
+ }
18
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/actions/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,+BAA+B;gBAEhC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,sBAAsB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM;CAK3B;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,6BAA6B;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,EAAE,CAAC;gBAE7B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,QAAQ,EAAE,MAAM,EAAE,qBAAqB,EAAE;CAOvF"}
@@ -0,0 +1,39 @@
1
+ export class ActionRegistrationError extends Error {
2
+ code = 'action_registration_error';
3
+ constructor(message) {
4
+ super(message);
5
+ this.name = 'ActionRegistrationError';
6
+ }
7
+ }
8
+ export class ActionNotFoundError extends Error {
9
+ code = 'action_not_found';
10
+ action;
11
+ constructor(action) {
12
+ super(`No action registered for '${action}'`);
13
+ this.name = 'ActionNotFoundError';
14
+ this.action = action;
15
+ }
16
+ }
17
+ export class ActionValidationError extends Error {
18
+ code = 'action_validation_error';
19
+ action;
20
+ phase;
21
+ issues;
22
+ constructor(action, phase, issues) {
23
+ super(formatValidationMessage(action, phase, issues));
24
+ this.name = 'ActionValidationError';
25
+ this.action = action;
26
+ this.phase = phase;
27
+ this.issues = issues;
28
+ }
29
+ }
30
+ function formatValidationMessage(action, phase, issues) {
31
+ const suffix = issues
32
+ .slice(0, 3)
33
+ .map((issue) => `${issue.path}: ${issue.message}`)
34
+ .join('; ');
35
+ return suffix
36
+ ? `Action '${action}' ${phase} failed validation: ${suffix}`
37
+ : `Action '${action}' ${phase} failed validation`;
38
+ }
39
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/actions/errors.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IACvC,IAAI,GAAG,2BAA2B,CAAC;IAE5C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACnC,IAAI,GAAG,kBAAkB,CAAC;IAC1B,MAAM,CAAS;IAExB,YAAY,MAAc;QACxB,KAAK,CAAC,6BAA6B,MAAM,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IACrC,IAAI,GAAG,yBAAyB,CAAC;IACjC,MAAM,CAAS;IACf,KAAK,CAAqB;IAC1B,MAAM,CAA0B;IAEzC,YAAY,MAAc,EAAE,KAAyB,EAAE,MAA+B;QACpF,KAAK,CAAC,uBAAuB,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED,SAAS,uBAAuB,CAC9B,MAAc,EACd,KAAyB,EACzB,MAA+B;IAE/B,MAAM,MAAM,GAAG,MAAM;SAClB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;SACjD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,MAAM;QACX,CAAC,CAAC,WAAW,MAAM,KAAK,KAAK,uBAAuB,MAAM,EAAE;QAC5D,CAAC,CAAC,WAAW,MAAM,KAAK,KAAK,oBAAoB,CAAC;AACtD,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './types.js';
2
+ export * from './errors.js';
3
+ export * from './json-schema-lite.js';
4
+ export * from './registry.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './types.js';
2
+ export * from './errors.js';
3
+ export * from './json-schema-lite.js';
4
+ export * from './registry.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { ActionSchema, ActionValidationResult, JsonSchemaLite } from './types.js';
2
+ export declare function validateJsonSchemaLite(value: unknown, schema: JsonSchemaLite | undefined): ActionValidationResult;
3
+ /**
4
+ * Coerce an {@link ActionSchema} into a plain JSON Schema object suitable for
5
+ * sending to the relay as an action descriptor's `input_schema`/`output_schema`.
6
+ *
7
+ * - A JSON-schema-lite object (the relay's native shape) is returned as-is.
8
+ * - A standard-schema validator (e.g. `zod`) is converted via its JSON Schema
9
+ * bridge when one is available, falling back to a permissive object schema.
10
+ * - `undefined` yields `undefined` (the descriptor omits the schema).
11
+ */
12
+ export declare function actionSchemaToJsonSchema(schema: ActionSchema | undefined): Record<string, unknown> | undefined;
13
+ //# sourceMappingURL=json-schema-lite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-schema-lite.d.ts","sourceRoot":"","sources":["../../src/actions/json-schema-lite.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,YAAY,EAEZ,sBAAsB,EACtB,cAAc,EAIf,MAAM,YAAY,CAAC;AAMpB,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,cAAc,GAAG,SAAS,GACjC,sBAAsB,CAQxB;AAsTD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,YAAY,GAAG,SAAS,GAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAiBrC"}