@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.
- package/README.md +177 -143
- package/bin/agent-relay-broker-darwin-arm64 +0 -0
- package/bin/agent-relay-broker-darwin-x64 +0 -0
- package/bin/agent-relay-broker-linux-arm64 +0 -0
- package/bin/agent-relay-broker-linux-x64 +0 -0
- package/bin/agent-relay-broker-win32-x64.exe +0 -0
- package/dist/actions/errors.d.ts +18 -0
- package/dist/actions/errors.d.ts.map +1 -0
- package/dist/actions/errors.js +39 -0
- package/dist/actions/errors.js.map +1 -0
- package/dist/actions/index.d.ts +5 -0
- package/dist/actions/index.d.ts.map +1 -0
- package/dist/actions/index.js +5 -0
- package/dist/actions/index.js.map +1 -0
- package/dist/actions/json-schema-lite.d.ts +13 -0
- package/dist/actions/json-schema-lite.d.ts.map +1 -0
- package/dist/actions/json-schema-lite.js +322 -0
- package/dist/actions/json-schema-lite.js.map +1 -0
- package/dist/actions/registry.d.ts +20 -0
- package/dist/actions/registry.d.ts.map +1 -0
- package/dist/actions/registry.js +267 -0
- package/dist/actions/registry.js.map +1 -0
- package/dist/actions/types.d.ts +177 -0
- package/dist/actions/types.d.ts.map +1 -0
- package/dist/{provisioner → actions}/types.js.map +1 -1
- package/dist/agent-relay.d.ts +86 -0
- package/dist/agent-relay.d.ts.map +1 -0
- package/dist/agent-relay.js +197 -0
- package/dist/agent-relay.js.map +1 -0
- package/dist/capabilities.d.ts +6 -0
- package/dist/capabilities.d.ts.map +1 -0
- package/dist/capabilities.js +9 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/delivery/index.d.ts +4 -0
- package/dist/delivery/index.d.ts.map +1 -0
- package/dist/delivery/index.js +4 -0
- package/dist/delivery/index.js.map +1 -0
- package/dist/delivery/runner.d.ts +26 -0
- package/dist/delivery/runner.d.ts.map +1 -0
- package/dist/delivery/runner.js +177 -0
- package/dist/delivery/runner.js.map +1 -0
- package/dist/delivery/types.d.ts +45 -0
- package/dist/delivery/types.d.ts.map +1 -0
- package/dist/delivery/types.js +2 -0
- package/dist/delivery/types.js.map +1 -0
- package/dist/facade.d.ts +151 -0
- package/dist/facade.d.ts.map +1 -0
- package/dist/facade.js +280 -0
- package/dist/facade.js.map +1 -0
- package/dist/index.d.ts +9 -25
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -23
- package/dist/index.js.map +1 -1
- package/dist/listeners.d.ts +162 -0
- package/dist/listeners.d.ts.map +1 -0
- package/dist/listeners.js +297 -0
- package/dist/listeners.js.map +1 -0
- package/dist/messaging/index.d.ts +4 -0
- package/dist/messaging/index.d.ts.map +1 -0
- package/dist/messaging/index.js +4 -0
- package/dist/messaging/index.js.map +1 -0
- package/dist/messaging/normalize.d.ts +29 -0
- package/dist/messaging/normalize.d.ts.map +1 -0
- package/dist/messaging/normalize.js +602 -0
- package/dist/messaging/normalize.js.map +1 -0
- package/dist/messaging/relaycast.d.ts +270 -0
- package/dist/messaging/relaycast.d.ts.map +1 -0
- package/dist/messaging/relaycast.js +559 -0
- package/dist/messaging/relaycast.js.map +1 -0
- package/dist/messaging/types.d.ts +672 -0
- package/dist/messaging/types.d.ts.map +1 -0
- package/dist/messaging/types.js +2 -0
- package/dist/messaging/types.js.map +1 -0
- package/dist/relaycast-errors.d.ts +39 -0
- package/dist/relaycast-errors.d.ts.map +1 -0
- package/dist/relaycast-errors.js +111 -0
- package/dist/relaycast-errors.js.map +1 -0
- package/dist/session/index.d.ts +58 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +54 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/types.d.ts +258 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +7 -0
- package/dist/session/types.js.map +1 -0
- package/package.json +31 -199
- package/dist/broker-logs.d.ts +0 -80
- package/dist/broker-logs.d.ts.map +0 -1
- package/dist/broker-logs.js +0 -189
- package/dist/broker-logs.js.map +0 -1
- package/dist/broker-path.d.ts +0 -34
- package/dist/broker-path.d.ts.map +0 -1
- package/dist/broker-path.js +0 -267
- package/dist/broker-path.js.map +0 -1
- package/dist/browser.d.ts +0 -16
- package/dist/browser.d.ts.map +0 -1
- package/dist/browser.js +0 -19
- package/dist/browser.js.map +0 -1
- package/dist/cli-registry.d.ts +0 -44
- package/dist/cli-registry.d.ts.map +0 -1
- package/dist/cli-registry.js +0 -104
- package/dist/cli-registry.js.map +0 -1
- package/dist/cli-resolver.d.ts +0 -30
- package/dist/cli-resolver.d.ts.map +0 -1
- package/dist/cli-resolver.js +0 -132
- package/dist/cli-resolver.js.map +0 -1
- package/dist/client.d.ts +0 -278
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -838
- package/dist/client.js.map +0 -1
- package/dist/communicate/a2a-bridge.d.ts +0 -25
- package/dist/communicate/a2a-bridge.d.ts.map +0 -1
- package/dist/communicate/a2a-bridge.js +0 -89
- package/dist/communicate/a2a-bridge.js.map +0 -1
- package/dist/communicate/a2a-server.d.ts +0 -31
- package/dist/communicate/a2a-server.d.ts.map +0 -1
- package/dist/communicate/a2a-server.js +0 -220
- package/dist/communicate/a2a-server.js.map +0 -1
- package/dist/communicate/a2a-transport.d.ts +0 -48
- package/dist/communicate/a2a-transport.d.ts.map +0 -1
- package/dist/communicate/a2a-transport.js +0 -305
- package/dist/communicate/a2a-transport.js.map +0 -1
- package/dist/communicate/a2a-types.d.ts +0 -107
- package/dist/communicate/a2a-types.d.ts.map +0 -1
- package/dist/communicate/a2a-types.js +0 -209
- package/dist/communicate/a2a-types.js.map +0 -1
- package/dist/communicate/adapters/ai-sdk.d.ts +0 -63
- package/dist/communicate/adapters/ai-sdk.d.ts.map +0 -1
- package/dist/communicate/adapters/ai-sdk.js +0 -114
- package/dist/communicate/adapters/ai-sdk.js.map +0 -1
- package/dist/communicate/adapters/claude-sdk.d.ts +0 -28
- package/dist/communicate/adapters/claude-sdk.d.ts.map +0 -1
- package/dist/communicate/adapters/claude-sdk.js +0 -47
- package/dist/communicate/adapters/claude-sdk.js.map +0 -1
- package/dist/communicate/adapters/crewai.d.ts +0 -42
- package/dist/communicate/adapters/crewai.d.ts.map +0 -1
- package/dist/communicate/adapters/crewai.js +0 -95
- package/dist/communicate/adapters/crewai.js.map +0 -1
- package/dist/communicate/adapters/google-adk.d.ts +0 -53
- package/dist/communicate/adapters/google-adk.d.ts.map +0 -1
- package/dist/communicate/adapters/google-adk.js +0 -77
- package/dist/communicate/adapters/google-adk.js.map +0 -1
- package/dist/communicate/adapters/index.d.ts +0 -3
- package/dist/communicate/adapters/index.d.ts.map +0 -1
- package/dist/communicate/adapters/index.js +0 -3
- package/dist/communicate/adapters/index.js.map +0 -1
- package/dist/communicate/adapters/langgraph.d.ts +0 -40
- package/dist/communicate/adapters/langgraph.d.ts.map +0 -1
- package/dist/communicate/adapters/langgraph.js +0 -77
- package/dist/communicate/adapters/langgraph.js.map +0 -1
- package/dist/communicate/adapters/openai-agents.d.ts +0 -25
- package/dist/communicate/adapters/openai-agents.d.ts.map +0 -1
- package/dist/communicate/adapters/openai-agents.js +0 -70
- package/dist/communicate/adapters/openai-agents.js.map +0 -1
- package/dist/communicate/adapters/pi.d.ts +0 -44
- package/dist/communicate/adapters/pi.d.ts.map +0 -1
- package/dist/communicate/adapters/pi.js +0 -55
- package/dist/communicate/adapters/pi.js.map +0 -1
- package/dist/communicate/core.d.ts +0 -58
- package/dist/communicate/core.d.ts.map +0 -1
- package/dist/communicate/core.js +0 -127
- package/dist/communicate/core.js.map +0 -1
- package/dist/communicate/index.d.ts +0 -20
- package/dist/communicate/index.d.ts.map +0 -1
- package/dist/communicate/index.js +0 -43
- package/dist/communicate/index.js.map +0 -1
- package/dist/communicate/transport.d.ts +0 -35
- package/dist/communicate/transport.d.ts.map +0 -1
- package/dist/communicate/transport.js +0 -279
- package/dist/communicate/transport.js.map +0 -1
- package/dist/communicate/types.d.ts +0 -58
- package/dist/communicate/types.d.ts.map +0 -1
- package/dist/communicate/types.js +0 -66
- package/dist/communicate/types.js.map +0 -1
- package/dist/consensus-helpers.d.ts +0 -103
- package/dist/consensus-helpers.d.ts.map +0 -1
- package/dist/consensus-helpers.js +0 -147
- package/dist/consensus-helpers.js.map +0 -1
- package/dist/consensus.d.ts +0 -72
- package/dist/consensus.d.ts.map +0 -1
- package/dist/consensus.js +0 -378
- package/dist/consensus.js.map +0 -1
- package/dist/event-bus.d.ts +0 -57
- package/dist/event-bus.d.ts.map +0 -1
- package/dist/event-bus.js +0 -76
- package/dist/event-bus.js.map +0 -1
- package/dist/examples/demo.d.ts +0 -2
- package/dist/examples/demo.d.ts.map +0 -1
- package/dist/examples/demo.js +0 -63
- package/dist/examples/demo.js.map +0 -1
- package/dist/examples/example.d.ts +0 -2
- package/dist/examples/example.d.ts.map +0 -1
- package/dist/examples/example.js +0 -77
- package/dist/examples/example.js.map +0 -1
- package/dist/examples/persona-spawn.d.ts +0 -2
- package/dist/examples/persona-spawn.d.ts.map +0 -1
- package/dist/examples/persona-spawn.js +0 -43
- package/dist/examples/persona-spawn.js.map +0 -1
- package/dist/examples/quickstart.d.ts +0 -2
- package/dist/examples/quickstart.d.ts.map +0 -1
- package/dist/examples/quickstart.js +0 -56
- package/dist/examples/quickstart.js.map +0 -1
- package/dist/examples/ralph-loop.d.ts +0 -2
- package/dist/examples/ralph-loop.d.ts.map +0 -1
- package/dist/examples/ralph-loop.js +0 -281
- package/dist/examples/ralph-loop.js.map +0 -1
- package/dist/examples/workflow-superiority.d.ts +0 -32
- package/dist/examples/workflow-superiority.d.ts.map +0 -1
- package/dist/examples/workflow-superiority.js +0 -1421
- package/dist/examples/workflow-superiority.js.map +0 -1
- package/dist/github.d.ts +0 -24
- package/dist/github.d.ts.map +0 -1
- package/dist/github.js +0 -24
- package/dist/github.js.map +0 -1
- package/dist/http.d.ts +0 -38
- package/dist/http.d.ts.map +0 -1
- package/dist/http.js +0 -60
- package/dist/http.js.map +0 -1
- package/dist/lifecycle-hooks.d.ts +0 -141
- package/dist/lifecycle-hooks.d.ts.map +0 -1
- package/dist/lifecycle-hooks.js +0 -29
- package/dist/lifecycle-hooks.js.map +0 -1
- package/dist/logs.d.ts +0 -106
- package/dist/logs.d.ts.map +0 -1
- package/dist/logs.js +0 -291
- package/dist/logs.js.map +0 -1
- package/dist/models.d.ts +0 -9
- package/dist/models.d.ts.map +0 -1
- package/dist/models.js +0 -17
- package/dist/models.js.map +0 -1
- package/dist/personas.d.ts +0 -160
- package/dist/personas.d.ts.map +0 -1
- package/dist/personas.js +0 -401
- package/dist/personas.js.map +0 -1
- package/dist/protocol.d.ts +0 -521
- package/dist/protocol.d.ts.map +0 -1
- package/dist/protocol.js +0 -2
- package/dist/protocol.js.map +0 -1
- package/dist/provisioner/__tests__/audit.test.d.ts +0 -2
- package/dist/provisioner/__tests__/audit.test.d.ts.map +0 -1
- package/dist/provisioner/__tests__/audit.test.js +0 -45
- package/dist/provisioner/__tests__/audit.test.js.map +0 -1
- package/dist/provisioner/__tests__/compiler.test.d.ts +0 -2
- package/dist/provisioner/__tests__/compiler.test.d.ts.map +0 -1
- package/dist/provisioner/__tests__/compiler.test.js +0 -345
- package/dist/provisioner/__tests__/compiler.test.js.map +0 -1
- package/dist/provisioner/__tests__/presets.test.d.ts +0 -2
- package/dist/provisioner/__tests__/presets.test.d.ts.map +0 -1
- package/dist/provisioner/__tests__/presets.test.js +0 -23
- package/dist/provisioner/__tests__/presets.test.js.map +0 -1
- package/dist/provisioner/__tests__/seeder.test.d.ts +0 -2
- package/dist/provisioner/__tests__/seeder.test.d.ts.map +0 -1
- package/dist/provisioner/__tests__/seeder.test.js +0 -224
- package/dist/provisioner/__tests__/seeder.test.js.map +0 -1
- package/dist/provisioner/__tests__/tar-seeder.test.d.ts +0 -2
- package/dist/provisioner/__tests__/tar-seeder.test.d.ts.map +0 -1
- package/dist/provisioner/__tests__/tar-seeder.test.js +0 -191
- package/dist/provisioner/__tests__/tar-seeder.test.js.map +0 -1
- package/dist/provisioner/__tests__/token-factory.test.d.ts +0 -2
- package/dist/provisioner/__tests__/token-factory.test.d.ts.map +0 -1
- package/dist/provisioner/__tests__/token-factory.test.js +0 -139
- package/dist/provisioner/__tests__/token-factory.test.js.map +0 -1
- package/dist/provisioner/__tests__/token.test.d.ts +0 -2
- package/dist/provisioner/__tests__/token.test.d.ts.map +0 -1
- package/dist/provisioner/__tests__/token.test.js +0 -49
- package/dist/provisioner/__tests__/token.test.js.map +0 -1
- package/dist/provisioner/audit.d.ts +0 -19
- package/dist/provisioner/audit.d.ts.map +0 -1
- package/dist/provisioner/audit.js +0 -74
- package/dist/provisioner/audit.js.map +0 -1
- package/dist/provisioner/compiler.d.ts +0 -23
- package/dist/provisioner/compiler.d.ts.map +0 -1
- package/dist/provisioner/compiler.js +0 -355
- package/dist/provisioner/compiler.js.map +0 -1
- package/dist/provisioner/index.d.ts +0 -10
- package/dist/provisioner/index.d.ts.map +0 -1
- package/dist/provisioner/index.js +0 -269
- package/dist/provisioner/index.js.map +0 -1
- package/dist/provisioner/local-jwks.d.ts +0 -25
- package/dist/provisioner/local-jwks.d.ts.map +0 -1
- package/dist/provisioner/local-jwks.js +0 -70
- package/dist/provisioner/local-jwks.js.map +0 -1
- package/dist/provisioner/mount.d.ts +0 -14
- package/dist/provisioner/mount.d.ts.map +0 -1
- package/dist/provisioner/mount.js +0 -329
- package/dist/provisioner/mount.js.map +0 -1
- package/dist/provisioner/seeder.d.ts +0 -17
- package/dist/provisioner/seeder.d.ts.map +0 -1
- package/dist/provisioner/seeder.js +0 -419
- package/dist/provisioner/seeder.js.map +0 -1
- package/dist/provisioner/token.d.ts +0 -41
- package/dist/provisioner/token.d.ts.map +0 -1
- package/dist/provisioner/token.js +0 -77
- package/dist/provisioner/token.js.map +0 -1
- package/dist/provisioner/types.d.ts +0 -134
- package/dist/provisioner/types.d.ts.map +0 -1
- package/dist/pty.d.ts +0 -8
- package/dist/pty.d.ts.map +0 -1
- package/dist/pty.js +0 -26
- package/dist/pty.js.map +0 -1
- package/dist/relay-adapter.d.ts +0 -124
- package/dist/relay-adapter.d.ts.map +0 -1
- package/dist/relay-adapter.js +0 -242
- package/dist/relay-adapter.js.map +0 -1
- package/dist/relay.d.ts +0 -550
- package/dist/relay.d.ts.map +0 -1
- package/dist/relay.js +0 -1682
- package/dist/relay.js.map +0 -1
- package/dist/shadow.d.ts +0 -101
- package/dist/shadow.d.ts.map +0 -1
- package/dist/shadow.js +0 -174
- package/dist/shadow.js.map +0 -1
- package/dist/slack.d.ts +0 -24
- package/dist/slack.d.ts.map +0 -1
- package/dist/slack.js +0 -24
- package/dist/slack.js.map +0 -1
- package/dist/spawn-from-env.d.ts +0 -78
- package/dist/spawn-from-env.d.ts.map +0 -1
- package/dist/spawn-from-env.js +0 -172
- package/dist/spawn-from-env.js.map +0 -1
- package/dist/transport.d.ts +0 -104
- package/dist/transport.d.ts.map +0 -1
- package/dist/transport.js +0 -520
- package/dist/transport.js.map +0 -1
- package/dist/types.d.ts +0 -101
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -5
- package/dist/types.js.map +0 -1
- package/dist/workers.d.ts +0 -39
- package/dist/workers.d.ts.map +0 -1
- package/dist/workers.js +0 -39
- package/dist/workers.js.map +0 -1
- package/dist/workflows/__tests__/budget-enforcement.test.d.ts +0 -2
- package/dist/workflows/__tests__/budget-enforcement.test.d.ts.map +0 -1
- package/dist/workflows/__tests__/budget-enforcement.test.js +0 -411
- package/dist/workflows/__tests__/budget-enforcement.test.js.map +0 -1
- package/dist/workflows/__tests__/budget-tracker.test.d.ts +0 -2
- package/dist/workflows/__tests__/budget-tracker.test.d.ts.map +0 -1
- package/dist/workflows/__tests__/budget-tracker.test.js +0 -99
- package/dist/workflows/__tests__/budget-tracker.test.js.map +0 -1
- package/dist/workflows/__tests__/builder-paths.test.d.ts +0 -2
- package/dist/workflows/__tests__/builder-paths.test.d.ts.map +0 -1
- package/dist/workflows/__tests__/builder-paths.test.js +0 -63
- package/dist/workflows/__tests__/builder-paths.test.js.map +0 -1
- package/dist/workflows/__tests__/channel-messenger.test.d.ts +0 -2
- package/dist/workflows/__tests__/channel-messenger.test.d.ts.map +0 -1
- package/dist/workflows/__tests__/channel-messenger.test.js +0 -123
- package/dist/workflows/__tests__/channel-messenger.test.js.map +0 -1
- package/dist/workflows/__tests__/cli-session-collector.test.d.ts +0 -2
- package/dist/workflows/__tests__/cli-session-collector.test.d.ts.map +0 -1
- package/dist/workflows/__tests__/cli-session-collector.test.js +0 -54
- package/dist/workflows/__tests__/cli-session-collector.test.js.map +0 -1
- package/dist/workflows/__tests__/collectors/claude.test.d.ts +0 -2
- package/dist/workflows/__tests__/collectors/claude.test.d.ts.map +0 -1
- package/dist/workflows/__tests__/collectors/claude.test.js +0 -85
- package/dist/workflows/__tests__/collectors/claude.test.js.map +0 -1
- package/dist/workflows/__tests__/collectors/codex.test.d.ts +0 -2
- package/dist/workflows/__tests__/collectors/codex.test.d.ts.map +0 -1
- package/dist/workflows/__tests__/collectors/codex.test.js +0 -67
- package/dist/workflows/__tests__/collectors/codex.test.js.map +0 -1
- package/dist/workflows/__tests__/collectors/opencode.test.d.ts +0 -2
- package/dist/workflows/__tests__/collectors/opencode.test.d.ts.map +0 -1
- package/dist/workflows/__tests__/collectors/opencode.test.js +0 -119
- package/dist/workflows/__tests__/collectors/opencode.test.js.map +0 -1
- package/dist/workflows/__tests__/e2big-and-verify.test.d.ts +0 -2
- package/dist/workflows/__tests__/e2big-and-verify.test.d.ts.map +0 -1
- package/dist/workflows/__tests__/e2big-and-verify.test.js +0 -62
- package/dist/workflows/__tests__/e2big-and-verify.test.js.map +0 -1
- package/dist/workflows/__tests__/e2e-permissions.test.d.ts +0 -2
- package/dist/workflows/__tests__/e2e-permissions.test.d.ts.map +0 -1
- package/dist/workflows/__tests__/e2e-permissions.test.js +0 -338
- package/dist/workflows/__tests__/e2e-permissions.test.js.map +0 -1
- package/dist/workflows/__tests__/permission-types.test.d.ts +0 -2
- package/dist/workflows/__tests__/permission-types.test.d.ts.map +0 -1
- package/dist/workflows/__tests__/permission-types.test.js +0 -124
- package/dist/workflows/__tests__/permission-types.test.js.map +0 -1
- package/dist/workflows/__tests__/permissions-integration.test.d.ts +0 -2
- package/dist/workflows/__tests__/permissions-integration.test.d.ts.map +0 -1
- package/dist/workflows/__tests__/permissions-integration.test.js +0 -577
- package/dist/workflows/__tests__/permissions-integration.test.js.map +0 -1
- package/dist/workflows/__tests__/process-backend-executor.test.d.ts +0 -2
- package/dist/workflows/__tests__/process-backend-executor.test.d.ts.map +0 -1
- package/dist/workflows/__tests__/process-backend-executor.test.js +0 -83
- package/dist/workflows/__tests__/process-backend-executor.test.js.map +0 -1
- package/dist/workflows/__tests__/proxy-env.test.d.ts +0 -2
- package/dist/workflows/__tests__/proxy-env.test.d.ts.map +0 -1
- package/dist/workflows/__tests__/proxy-env.test.js +0 -135
- package/dist/workflows/__tests__/proxy-env.test.js.map +0 -1
- package/dist/workflows/__tests__/run-script.test.d.ts +0 -2
- package/dist/workflows/__tests__/run-script.test.d.ts.map +0 -1
- package/dist/workflows/__tests__/run-script.test.js +0 -426
- package/dist/workflows/__tests__/run-script.test.js.map +0 -1
- package/dist/workflows/__tests__/run-summary-table.test.d.ts +0 -2
- package/dist/workflows/__tests__/run-summary-table.test.d.ts.map +0 -1
- package/dist/workflows/__tests__/run-summary-table.test.js +0 -131
- package/dist/workflows/__tests__/run-summary-table.test.js.map +0 -1
- package/dist/workflows/__tests__/scrub-pty-chrome.test.d.ts +0 -2
- package/dist/workflows/__tests__/scrub-pty-chrome.test.d.ts.map +0 -1
- package/dist/workflows/__tests__/scrub-pty-chrome.test.js +0 -113
- package/dist/workflows/__tests__/scrub-pty-chrome.test.js.map +0 -1
- package/dist/workflows/__tests__/sibling-links.test.d.ts +0 -2
- package/dist/workflows/__tests__/sibling-links.test.d.ts.map +0 -1
- package/dist/workflows/__tests__/sibling-links.test.js +0 -166
- package/dist/workflows/__tests__/sibling-links.test.js.map +0 -1
- package/dist/workflows/__tests__/step-cwd.test.d.ts +0 -2
- package/dist/workflows/__tests__/step-cwd.test.d.ts.map +0 -1
- package/dist/workflows/__tests__/step-cwd.test.js +0 -42
- package/dist/workflows/__tests__/step-cwd.test.js.map +0 -1
- package/dist/workflows/__tests__/step-executor.test.d.ts +0 -2
- package/dist/workflows/__tests__/step-executor.test.d.ts.map +0 -1
- package/dist/workflows/__tests__/step-executor.test.js +0 -378
- package/dist/workflows/__tests__/step-executor.test.js.map +0 -1
- package/dist/workflows/__tests__/template-resolver.test.d.ts +0 -2
- package/dist/workflows/__tests__/template-resolver.test.d.ts.map +0 -1
- package/dist/workflows/__tests__/template-resolver.test.js +0 -145
- package/dist/workflows/__tests__/template-resolver.test.js.map +0 -1
- package/dist/workflows/__tests__/verification-custom.test.d.ts +0 -2
- package/dist/workflows/__tests__/verification-custom.test.d.ts.map +0 -1
- package/dist/workflows/__tests__/verification-custom.test.js +0 -230
- package/dist/workflows/__tests__/verification-custom.test.js.map +0 -1
- package/dist/workflows/__tests__/verification-traceback.test.d.ts +0 -2
- package/dist/workflows/__tests__/verification-traceback.test.d.ts.map +0 -1
- package/dist/workflows/__tests__/verification-traceback.test.js +0 -442
- package/dist/workflows/__tests__/verification-traceback.test.js.map +0 -1
- package/dist/workflows/__tests__/verification.test.d.ts +0 -2
- package/dist/workflows/__tests__/verification.test.d.ts.map +0 -1
- package/dist/workflows/__tests__/verification.test.js +0 -272
- package/dist/workflows/__tests__/verification.test.js.map +0 -1
- package/dist/workflows/__tests__/workflow-reliability-contract.test.d.ts +0 -2
- package/dist/workflows/__tests__/workflow-reliability-contract.test.d.ts.map +0 -1
- package/dist/workflows/__tests__/workflow-reliability-contract.test.js +0 -536
- package/dist/workflows/__tests__/workflow-reliability-contract.test.js.map +0 -1
- package/dist/workflows/__tests__/workflow-reliability-e2e.test.d.ts +0 -2
- package/dist/workflows/__tests__/workflow-reliability-e2e.test.d.ts.map +0 -1
- package/dist/workflows/__tests__/workflow-reliability-e2e.test.js +0 -199
- package/dist/workflows/__tests__/workflow-reliability-e2e.test.js.map +0 -1
- package/dist/workflows/api-executor.d.ts +0 -16
- package/dist/workflows/api-executor.d.ts.map +0 -1
- package/dist/workflows/api-executor.js +0 -94
- package/dist/workflows/api-executor.js.map +0 -1
- package/dist/workflows/barrier.d.ts +0 -72
- package/dist/workflows/barrier.d.ts.map +0 -1
- package/dist/workflows/barrier.js +0 -162
- package/dist/workflows/barrier.js.map +0 -1
- package/dist/workflows/budget-tracker.d.ts +0 -75
- package/dist/workflows/budget-tracker.d.ts.map +0 -1
- package/dist/workflows/budget-tracker.js +0 -184
- package/dist/workflows/budget-tracker.js.map +0 -1
- package/dist/workflows/builder.d.ts +0 -229
- package/dist/workflows/builder.d.ts.map +0 -1
- package/dist/workflows/builder.js +0 -430
- package/dist/workflows/builder.js.map +0 -1
- package/dist/workflows/channel-messenger.d.ts +0 -28
- package/dist/workflows/channel-messenger.d.ts.map +0 -1
- package/dist/workflows/channel-messenger.js +0 -275
- package/dist/workflows/channel-messenger.js.map +0 -1
- package/dist/workflows/cli-session-collector.d.ts +0 -39
- package/dist/workflows/cli-session-collector.d.ts.map +0 -1
- package/dist/workflows/cli-session-collector.js +0 -23
- package/dist/workflows/cli-session-collector.js.map +0 -1
- package/dist/workflows/cli.d.ts +0 -11
- package/dist/workflows/cli.d.ts.map +0 -1
- package/dist/workflows/cli.js +0 -395
- package/dist/workflows/cli.js.map +0 -1
- package/dist/workflows/cloud-runner.d.ts +0 -15
- package/dist/workflows/cloud-runner.d.ts.map +0 -1
- package/dist/workflows/cloud-runner.js +0 -41
- package/dist/workflows/cloud-runner.js.map +0 -1
- package/dist/workflows/cloud-schedules.d.ts +0 -3
- package/dist/workflows/cloud-schedules.d.ts.map +0 -1
- package/dist/workflows/cloud-schedules.js +0 -2
- package/dist/workflows/cloud-schedules.js.map +0 -1
- package/dist/workflows/collectors/claude.d.ts +0 -6
- package/dist/workflows/collectors/claude.d.ts.map +0 -1
- package/dist/workflows/collectors/claude.js +0 -330
- package/dist/workflows/collectors/claude.js.map +0 -1
- package/dist/workflows/collectors/codex.d.ts +0 -18
- package/dist/workflows/collectors/codex.d.ts.map +0 -1
- package/dist/workflows/collectors/codex.js +0 -265
- package/dist/workflows/collectors/codex.js.map +0 -1
- package/dist/workflows/collectors/opencode.d.ts +0 -6
- package/dist/workflows/collectors/opencode.d.ts.map +0 -1
- package/dist/workflows/collectors/opencode.js +0 -204
- package/dist/workflows/collectors/opencode.js.map +0 -1
- package/dist/workflows/coordinator.d.ts +0 -73
- package/dist/workflows/coordinator.d.ts.map +0 -1
- package/dist/workflows/coordinator.js +0 -647
- package/dist/workflows/coordinator.js.map +0 -1
- package/dist/workflows/custom-steps.d.ts +0 -73
- package/dist/workflows/custom-steps.d.ts.map +0 -1
- package/dist/workflows/custom-steps.js +0 -321
- package/dist/workflows/custom-steps.js.map +0 -1
- package/dist/workflows/default-logger.d.ts +0 -9
- package/dist/workflows/default-logger.d.ts.map +0 -1
- package/dist/workflows/default-logger.js +0 -104
- package/dist/workflows/default-logger.js.map +0 -1
- package/dist/workflows/dry-run-format.d.ts +0 -6
- package/dist/workflows/dry-run-format.d.ts.map +0 -1
- package/dist/workflows/dry-run-format.js +0 -76
- package/dist/workflows/dry-run-format.js.map +0 -1
- package/dist/workflows/file-db.d.ts +0 -85
- package/dist/workflows/file-db.d.ts.map +0 -1
- package/dist/workflows/file-db.js +0 -215
- package/dist/workflows/file-db.js.map +0 -1
- package/dist/workflows/index.d.ts +0 -36
- package/dist/workflows/index.d.ts.map +0 -1
- package/dist/workflows/index.js +0 -33
- package/dist/workflows/index.js.map +0 -1
- package/dist/workflows/listr-renderer.d.ts +0 -26
- package/dist/workflows/listr-renderer.d.ts.map +0 -1
- package/dist/workflows/listr-renderer.js +0 -230
- package/dist/workflows/listr-renderer.js.map +0 -1
- package/dist/workflows/memory-db.d.ts +0 -17
- package/dist/workflows/memory-db.d.ts.map +0 -1
- package/dist/workflows/memory-db.js +0 -33
- package/dist/workflows/memory-db.js.map +0 -1
- package/dist/workflows/process-backend-executor.d.ts +0 -18
- package/dist/workflows/process-backend-executor.d.ts.map +0 -1
- package/dist/workflows/process-backend-executor.js +0 -74
- package/dist/workflows/process-backend-executor.js.map +0 -1
- package/dist/workflows/process-spawner.d.ts +0 -35
- package/dist/workflows/process-spawner.d.ts.map +0 -1
- package/dist/workflows/process-spawner.js +0 -141
- package/dist/workflows/process-spawner.js.map +0 -1
- package/dist/workflows/proxy-env.d.ts +0 -52
- package/dist/workflows/proxy-env.d.ts.map +0 -1
- package/dist/workflows/proxy-env.js +0 -92
- package/dist/workflows/proxy-env.js.map +0 -1
- package/dist/workflows/run-script.d.ts +0 -82
- package/dist/workflows/run-script.d.ts.map +0 -1
- package/dist/workflows/run-script.js +0 -521
- package/dist/workflows/run-script.js.map +0 -1
- package/dist/workflows/run-summary-table.d.ts +0 -5
- package/dist/workflows/run-summary-table.d.ts.map +0 -1
- package/dist/workflows/run-summary-table.js +0 -132
- package/dist/workflows/run-summary-table.js.map +0 -1
- package/dist/workflows/run.d.ts +0 -45
- package/dist/workflows/run.d.ts.map +0 -1
- package/dist/workflows/run.js +0 -37
- package/dist/workflows/run.js.map +0 -1
- package/dist/workflows/runner.d.ts +0 -527
- package/dist/workflows/runner.d.ts.map +0 -1
- package/dist/workflows/runner.js +0 -6266
- package/dist/workflows/runner.js.map +0 -1
- package/dist/workflows/sibling-links.d.ts +0 -100
- package/dist/workflows/sibling-links.d.ts.map +0 -1
- package/dist/workflows/sibling-links.js +0 -205
- package/dist/workflows/sibling-links.js.map +0 -1
- package/dist/workflows/state.d.ts +0 -77
- package/dist/workflows/state.d.ts.map +0 -1
- package/dist/workflows/state.js +0 -140
- package/dist/workflows/state.js.map +0 -1
- package/dist/workflows/step-executor.d.ts +0 -95
- package/dist/workflows/step-executor.d.ts.map +0 -1
- package/dist/workflows/step-executor.js +0 -393
- package/dist/workflows/step-executor.js.map +0 -1
- package/dist/workflows/template-resolver.d.ts +0 -33
- package/dist/workflows/template-resolver.d.ts.map +0 -1
- package/dist/workflows/template-resolver.js +0 -144
- package/dist/workflows/template-resolver.js.map +0 -1
- package/dist/workflows/templates.d.ts +0 -47
- package/dist/workflows/templates.d.ts.map +0 -1
- package/dist/workflows/templates.js +0 -405
- package/dist/workflows/templates.js.map +0 -1
- package/dist/workflows/trajectory.d.ts +0 -87
- package/dist/workflows/trajectory.d.ts.map +0 -1
- package/dist/workflows/trajectory.js +0 -412
- package/dist/workflows/trajectory.js.map +0 -1
- package/dist/workflows/types.d.ts +0 -471
- package/dist/workflows/types.d.ts.map +0 -1
- package/dist/workflows/types.js +0 -37
- package/dist/workflows/types.js.map +0 -1
- package/dist/workflows/validator.d.ts +0 -11
- package/dist/workflows/validator.d.ts.map +0 -1
- package/dist/workflows/validator.js +0 -184
- package/dist/workflows/validator.js.map +0 -1
- package/dist/workflows/verification.d.ts +0 -53
- package/dist/workflows/verification.d.ts.map +0 -1
- package/dist/workflows/verification.js +0 -238
- package/dist/workflows/verification.js.map +0 -1
- /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
|
|
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
|
-
##
|
|
13
|
+
## Concepts
|
|
12
14
|
|
|
13
|
-
|
|
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
|
-
|
|
20
|
+
## Quick start
|
|
16
21
|
|
|
17
22
|
```ts
|
|
18
|
-
import {
|
|
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
|
-
|
|
25
|
+
const relay = new AgentRelay({
|
|
26
|
+
workspaceKey: process.env.RELAY_WORKSPACE_KEY!,
|
|
27
|
+
});
|
|
32
28
|
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
const reviewer = await relay.agents.register({ name: 'reviewer' });
|
|
30
|
+
const agent = relay.as(reviewer);
|
|
35
31
|
|
|
36
|
-
|
|
32
|
+
await agent.channels.join('reviews');
|
|
37
33
|
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
model: 'gpt-4o',
|
|
44
|
+
await agent.messages.send({
|
|
45
|
+
channel: 'reviews',
|
|
46
|
+
text: 'Reviewer is online.',
|
|
59
47
|
});
|
|
48
|
+
```
|
|
60
49
|
|
|
61
|
-
|
|
62
|
-
const result = await agent.waitForIdle(120_000);
|
|
50
|
+
You can also create a new workspace directly:
|
|
63
51
|
|
|
64
|
-
|
|
65
|
-
await
|
|
66
|
-
|
|
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
|
-
|
|
72
|
-
const human = relay.human({ name: 'Orchestrator' });
|
|
73
|
-
await human.sendMessage({ to: 'Worker1', text: 'Start the task' });
|
|
58
|
+
## Messaging
|
|
74
59
|
|
|
75
|
-
|
|
76
|
-
await relay.shutdown();
|
|
77
|
-
```
|
|
60
|
+
The core client covers the communication surface agents need during a run:
|
|
78
61
|
|
|
79
|
-
|
|
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
|
-
|
|
70
|
+
Example:
|
|
82
71
|
|
|
83
72
|
```ts
|
|
84
|
-
|
|
73
|
+
const lead = relay.as(await relay.agents.register({ name: 'lead' }));
|
|
85
74
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
channels: ['general'],
|
|
75
|
+
await lead.channels.create({
|
|
76
|
+
name: 'release',
|
|
77
|
+
topic: 'Release readiness',
|
|
90
78
|
});
|
|
91
79
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
80
|
+
await lead.messages.send({
|
|
81
|
+
channel: 'release',
|
|
82
|
+
text: 'Please review the migration guide.',
|
|
95
83
|
});
|
|
96
84
|
|
|
97
|
-
|
|
98
|
-
|
|
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
|
-
|
|
111
|
-
|
|
112
|
-
|
|
90
|
+
await lead.messages.react({
|
|
91
|
+
messageId: thread.id,
|
|
92
|
+
emoji: 'eyes',
|
|
93
|
+
});
|
|
113
94
|
```
|
|
114
95
|
|
|
115
|
-
|
|
96
|
+
## Delivery
|
|
116
97
|
|
|
117
|
-
|
|
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
|
-
|
|
120
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
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
|
|
147
|
+
await new DeliveryRunner({
|
|
148
|
+
messaging: relay.as(reviewer).messaging,
|
|
149
|
+
delivery: session,
|
|
150
|
+
agentName: 'reviewer',
|
|
151
|
+
}).start();
|
|
143
152
|
```
|
|
144
153
|
|
|
145
|
-
|
|
154
|
+
## Actions
|
|
146
155
|
|
|
147
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
166
|
+
Example:
|
|
163
167
|
|
|
164
168
|
```ts
|
|
165
|
-
import {
|
|
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
|
-
|
|
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
|
-
|
|
176
|
-
|
|
178
|
+
const OpenPullRequestOutput = z.object({
|
|
179
|
+
url: z.string().url(),
|
|
180
|
+
number: z.number().int().positive(),
|
|
181
|
+
});
|
|
177
182
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
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
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
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
|
-
##
|
|
213
|
+
## Optional managed harnesses
|
|
195
214
|
|
|
196
|
-
|
|
215
|
+
Install the harness driver package for managed local execution:
|
|
197
216
|
|
|
198
|
-
```
|
|
199
|
-
|
|
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
|
|
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 @@
|
|
|
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 @@
|
|
|
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"}
|