@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
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sibling-package link setup for workflows that consume a package living in
|
|
3
|
-
* a sibling repo / worktree on disk.
|
|
4
|
-
*
|
|
5
|
-
* Problem it solves: agents running inside a workflow sometimes find that
|
|
6
|
-
* `npm install` (or `pip install`) resolved an older version of a package
|
|
7
|
-
* than the one the workflow actually needs — for example when the consumer
|
|
8
|
-
* workflow runs before the producer has published a new release. Rather
|
|
9
|
-
* than letting agents see a stale interface (and react by augmenting the
|
|
10
|
-
* module or writing fallback implementations), linking redirects the
|
|
11
|
-
* package resolution at dev-time to the sibling's on-disk build output.
|
|
12
|
-
*
|
|
13
|
-
* Usage (ESM):
|
|
14
|
-
*
|
|
15
|
-
* import { workflow, applySiblingLinks } from '@agent-relay/sdk/workflows';
|
|
16
|
-
*
|
|
17
|
-
* const base = workflow('my-feature').pattern('dag').agent('impl', ...);
|
|
18
|
-
* const wf = applySiblingLinks(base, {
|
|
19
|
-
* dependsOn: ['install-deps'],
|
|
20
|
-
* links: [
|
|
21
|
-
* {
|
|
22
|
-
* name: '@agent-assistant/proactive',
|
|
23
|
-
* path: '../agent-assistant/packages/proactive',
|
|
24
|
-
* expect: ['recordSignal', 'drainSignals'],
|
|
25
|
-
* },
|
|
26
|
-
* {
|
|
27
|
-
* name: '@agent-assistant/surfaces',
|
|
28
|
-
* path: '../agent-assistant/packages/surfaces',
|
|
29
|
-
* expect: ['classifySlackPresenceSignal'],
|
|
30
|
-
* },
|
|
31
|
-
* ],
|
|
32
|
-
* });
|
|
33
|
-
*
|
|
34
|
-
* await wf.step('plan', { agent: 'impl', dependsOn: ['setup-sibling-links'], task: ... })
|
|
35
|
-
* .run({ cwd: process.cwd() });
|
|
36
|
-
*
|
|
37
|
-
* MVP language support: npm (package.json), Python (pyproject.toml /
|
|
38
|
-
* setup.py / setup.cfg). Auto-detects from the sibling's manifest. Fails
|
|
39
|
-
* fast on missing path, unknown manifest, or missing expected exports.
|
|
40
|
-
*/
|
|
41
|
-
/** A single sibling package to link into the workflow's working directory. */
|
|
42
|
-
export interface SiblingLink {
|
|
43
|
-
/**
|
|
44
|
-
* Package name as it appears in imports (e.g. "@agent-assistant/proactive",
|
|
45
|
-
* "my_python_pkg"). For Python, use the import name (underscored), not the
|
|
46
|
-
* distribution name.
|
|
47
|
-
*/
|
|
48
|
-
name: string;
|
|
49
|
-
/**
|
|
50
|
-
* Path to the sibling package root, relative to the workflow's cwd.
|
|
51
|
-
* For npm, this is the directory containing package.json.
|
|
52
|
-
* For Python, the directory containing pyproject.toml / setup.py.
|
|
53
|
-
*/
|
|
54
|
-
path: string;
|
|
55
|
-
/**
|
|
56
|
-
* Optional list of top-level named exports / attributes the workflow
|
|
57
|
-
* expects to find on the linked package post-setup. When provided, a
|
|
58
|
-
* language-appropriate import smoke test runs and fails the step if any
|
|
59
|
-
* are missing.
|
|
60
|
-
*/
|
|
61
|
-
expect?: string[];
|
|
62
|
-
}
|
|
63
|
-
export interface SiblingLinkOptions {
|
|
64
|
-
/** Link declarations. All must succeed (fail-fast on any error). */
|
|
65
|
-
links: SiblingLink[];
|
|
66
|
-
/**
|
|
67
|
-
* Step name for the setup step emitted by this helper.
|
|
68
|
-
* Defaults to `"setup-sibling-links"`.
|
|
69
|
-
*/
|
|
70
|
-
stepName?: string;
|
|
71
|
-
/**
|
|
72
|
-
* dependsOn for the setup step. Typically `['install-deps']` so that
|
|
73
|
-
* `npm install` / `pip install` has run first.
|
|
74
|
-
* Defaults to `['install-deps']`.
|
|
75
|
-
*/
|
|
76
|
-
dependsOn?: string[];
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Adds a single deterministic step to the workflow that links each sibling
|
|
80
|
-
* package into the workflow's working directory using the appropriate
|
|
81
|
-
* language-specific mechanism, then smoke-tests each linked package for
|
|
82
|
-
* expected exports.
|
|
83
|
-
*
|
|
84
|
-
* The step fails fast on:
|
|
85
|
-
* - Sibling path missing
|
|
86
|
-
* - Unknown manifest (no package.json / pyproject.toml / setup.py)
|
|
87
|
-
* - Link command failure
|
|
88
|
-
* - Missing expected export
|
|
89
|
-
*/
|
|
90
|
-
export declare function applySiblingLinks<T>(wf: T, opts: SiblingLinkOptions): T;
|
|
91
|
-
/**
|
|
92
|
-
* Builds a bash script that:
|
|
93
|
-
* 1. For each link, detects its manifest and applies the right link command.
|
|
94
|
-
* 2. After all links succeed, runs one import smoke test per link that
|
|
95
|
-
* declared expected exports.
|
|
96
|
-
*
|
|
97
|
-
* Exported for test visibility; not part of the public API.
|
|
98
|
-
*/
|
|
99
|
-
export declare function buildSiblingLinkScript(links: SiblingLink[]): string;
|
|
100
|
-
//# sourceMappingURL=sibling-links.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sibling-links.d.ts","sourceRoot":"","sources":["../../src/workflows/sibling-links.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,8EAA8E;AAC9E,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,KAAK,EAAE,WAAW,EAAE,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAOD;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAkB,GAAG,CAAC,CAkBvE;AAkBD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,CAsBnE"}
|
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sibling-package link setup for workflows that consume a package living in
|
|
3
|
-
* a sibling repo / worktree on disk.
|
|
4
|
-
*
|
|
5
|
-
* Problem it solves: agents running inside a workflow sometimes find that
|
|
6
|
-
* `npm install` (or `pip install`) resolved an older version of a package
|
|
7
|
-
* than the one the workflow actually needs — for example when the consumer
|
|
8
|
-
* workflow runs before the producer has published a new release. Rather
|
|
9
|
-
* than letting agents see a stale interface (and react by augmenting the
|
|
10
|
-
* module or writing fallback implementations), linking redirects the
|
|
11
|
-
* package resolution at dev-time to the sibling's on-disk build output.
|
|
12
|
-
*
|
|
13
|
-
* Usage (ESM):
|
|
14
|
-
*
|
|
15
|
-
* import { workflow, applySiblingLinks } from '@agent-relay/sdk/workflows';
|
|
16
|
-
*
|
|
17
|
-
* const base = workflow('my-feature').pattern('dag').agent('impl', ...);
|
|
18
|
-
* const wf = applySiblingLinks(base, {
|
|
19
|
-
* dependsOn: ['install-deps'],
|
|
20
|
-
* links: [
|
|
21
|
-
* {
|
|
22
|
-
* name: '@agent-assistant/proactive',
|
|
23
|
-
* path: '../agent-assistant/packages/proactive',
|
|
24
|
-
* expect: ['recordSignal', 'drainSignals'],
|
|
25
|
-
* },
|
|
26
|
-
* {
|
|
27
|
-
* name: '@agent-assistant/surfaces',
|
|
28
|
-
* path: '../agent-assistant/packages/surfaces',
|
|
29
|
-
* expect: ['classifySlackPresenceSignal'],
|
|
30
|
-
* },
|
|
31
|
-
* ],
|
|
32
|
-
* });
|
|
33
|
-
*
|
|
34
|
-
* await wf.step('plan', { agent: 'impl', dependsOn: ['setup-sibling-links'], task: ... })
|
|
35
|
-
* .run({ cwd: process.cwd() });
|
|
36
|
-
*
|
|
37
|
-
* MVP language support: npm (package.json), Python (pyproject.toml /
|
|
38
|
-
* setup.py / setup.cfg). Auto-detects from the sibling's manifest. Fails
|
|
39
|
-
* fast on missing path, unknown manifest, or missing expected exports.
|
|
40
|
-
*/
|
|
41
|
-
/**
|
|
42
|
-
* Adds a single deterministic step to the workflow that links each sibling
|
|
43
|
-
* package into the workflow's working directory using the appropriate
|
|
44
|
-
* language-specific mechanism, then smoke-tests each linked package for
|
|
45
|
-
* expected exports.
|
|
46
|
-
*
|
|
47
|
-
* The step fails fast on:
|
|
48
|
-
* - Sibling path missing
|
|
49
|
-
* - Unknown manifest (no package.json / pyproject.toml / setup.py)
|
|
50
|
-
* - Link command failure
|
|
51
|
-
* - Missing expected export
|
|
52
|
-
*/
|
|
53
|
-
export function applySiblingLinks(wf, opts) {
|
|
54
|
-
if (opts.links.length === 0) {
|
|
55
|
-
return wf;
|
|
56
|
-
}
|
|
57
|
-
const stepName = opts.stepName ?? 'setup-sibling-links';
|
|
58
|
-
const dependsOn = opts.dependsOn ?? ['install-deps'];
|
|
59
|
-
const script = buildSiblingLinkScript(opts.links);
|
|
60
|
-
const chain = wf;
|
|
61
|
-
chain.step(stepName, {
|
|
62
|
-
type: 'deterministic',
|
|
63
|
-
dependsOn,
|
|
64
|
-
command: `bash -c ${shSingleQuote(script)}`,
|
|
65
|
-
captureOutput: true,
|
|
66
|
-
failOnError: true,
|
|
67
|
-
});
|
|
68
|
-
return wf;
|
|
69
|
-
}
|
|
70
|
-
// ─── Internal: shell-script generation ─────────────────────────────────────
|
|
71
|
-
/**
|
|
72
|
-
* Shell-quote a string for safe single-quoted inclusion in a bash command.
|
|
73
|
-
* Single-quoted strings in bash are literal for every character except the
|
|
74
|
-
* single quote itself, so `$` and backticks are NOT interpreted — which is
|
|
75
|
-
* exactly what we want for link.name / link.path / JSON payloads that must
|
|
76
|
-
* pass through bash unchanged.
|
|
77
|
-
*
|
|
78
|
-
* Embedded single quotes are escaped via the standard `'\''` POSIX idiom
|
|
79
|
-
* (close, escape, reopen).
|
|
80
|
-
*/
|
|
81
|
-
function shSingleQuote(value) {
|
|
82
|
-
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Builds a bash script that:
|
|
86
|
-
* 1. For each link, detects its manifest and applies the right link command.
|
|
87
|
-
* 2. After all links succeed, runs one import smoke test per link that
|
|
88
|
-
* declared expected exports.
|
|
89
|
-
*
|
|
90
|
-
* Exported for test visibility; not part of the public API.
|
|
91
|
-
*/
|
|
92
|
-
export function buildSiblingLinkScript(links) {
|
|
93
|
-
const lines = ['set -euo pipefail', 'echo "=== applySiblingLinks: setting up ==="'];
|
|
94
|
-
for (const link of links) {
|
|
95
|
-
// Use SINGLE-quoted shell literals for the assignments. Double-quoted
|
|
96
|
-
// literals (via JSON.stringify) would let `$`, backticks, and `\` still
|
|
97
|
-
// trigger substitution or escaping — single-quoted is literal end-to-end.
|
|
98
|
-
const escapedName = shSingleQuote(link.name);
|
|
99
|
-
const escapedPath = shSingleQuote(link.path);
|
|
100
|
-
lines.push(linkOneBlock(link, escapedName, escapedPath));
|
|
101
|
-
}
|
|
102
|
-
lines.push('echo "=== applySiblingLinks: verifying exports ==="');
|
|
103
|
-
for (const link of links) {
|
|
104
|
-
if (!link.expect || link.expect.length === 0) {
|
|
105
|
-
continue;
|
|
106
|
-
}
|
|
107
|
-
lines.push(verifyExportsBlock(link));
|
|
108
|
-
}
|
|
109
|
-
lines.push('echo "APPLY_SIBLING_LINKS_OK"');
|
|
110
|
-
return lines.join('\n');
|
|
111
|
-
}
|
|
112
|
-
function linkOneBlock(link, escapedName, escapedPath) {
|
|
113
|
-
void link;
|
|
114
|
-
return [
|
|
115
|
-
`SIBLING_PATH=${escapedPath}`,
|
|
116
|
-
`SIBLING_NAME=${escapedName}`,
|
|
117
|
-
'echo "--- link: $SIBLING_NAME <- $SIBLING_PATH ---"',
|
|
118
|
-
'if [ ! -d "$SIBLING_PATH" ]; then',
|
|
119
|
-
' echo "SIBLING_PATH_MISSING: $SIBLING_PATH" >&2',
|
|
120
|
-
' exit 1',
|
|
121
|
-
'fi',
|
|
122
|
-
'if [ -f "$SIBLING_PATH/package.json" ]; then',
|
|
123
|
-
' echo "detected: npm"',
|
|
124
|
-
' ( cd "$SIBLING_PATH" && npm link --silent )',
|
|
125
|
-
' npm link --silent "$SIBLING_NAME"',
|
|
126
|
-
'elif [ -f "$SIBLING_PATH/pyproject.toml" ] || [ -f "$SIBLING_PATH/setup.py" ] || [ -f "$SIBLING_PATH/setup.cfg" ]; then',
|
|
127
|
-
' echo "detected: python"',
|
|
128
|
-
// Try uv first (fastest when available), but uv refuses to install
|
|
129
|
-
// outside a venv without --system. Pass --system explicitly so uv
|
|
130
|
-
// works in non-venv sandboxes (common CI/agent runner shape).
|
|
131
|
-
// If uv still fails (e.g. broken install), fall through to pip/pip3
|
|
132
|
-
// via the explicit OR chain rather than relying on `set -e` to
|
|
133
|
-
// short-circuit between elif branches.
|
|
134
|
-
' if command -v uv >/dev/null 2>&1 && uv pip install --system -e "$SIBLING_PATH" --quiet 2>/dev/null; then',
|
|
135
|
-
' :',
|
|
136
|
-
' elif command -v pip >/dev/null 2>&1; then',
|
|
137
|
-
' pip install -e "$SIBLING_PATH" --quiet',
|
|
138
|
-
' elif command -v pip3 >/dev/null 2>&1; then',
|
|
139
|
-
' pip3 install -e "$SIBLING_PATH" --quiet',
|
|
140
|
-
' else',
|
|
141
|
-
' echo "NO_PYTHON_INSTALLER: uv / pip / pip3 not found or all failed" >&2',
|
|
142
|
-
' exit 1',
|
|
143
|
-
' fi',
|
|
144
|
-
'else',
|
|
145
|
-
' echo "UNKNOWN_MANIFEST: expected package.json / pyproject.toml / setup.py / setup.cfg at $SIBLING_PATH" >&2',
|
|
146
|
-
' exit 1',
|
|
147
|
-
'fi',
|
|
148
|
-
].join('\n');
|
|
149
|
-
}
|
|
150
|
-
function verifyExportsBlock(link) {
|
|
151
|
-
const escapedName = shSingleQuote(link.name);
|
|
152
|
-
const escapedPath = shSingleQuote(link.path);
|
|
153
|
-
const expectJson = JSON.stringify(link.expect ?? []);
|
|
154
|
-
// Pick the smoke-test runtime based on what manifest type the sibling had.
|
|
155
|
-
// Single-quoted assignments are literal — the JSON payload inside EXPECT
|
|
156
|
-
// survives bash untouched and downstream Node/Python JSON.parse it back.
|
|
157
|
-
return [
|
|
158
|
-
`SIBLING_PATH=${escapedPath}`,
|
|
159
|
-
`SIBLING_NAME=${escapedName}`,
|
|
160
|
-
`EXPECT=${shSingleQuote(expectJson)}`,
|
|
161
|
-
'if [ -f "$SIBLING_PATH/package.json" ]; then',
|
|
162
|
-
nodeVerifyCommand(),
|
|
163
|
-
'else',
|
|
164
|
-
pythonVerifyCommand(),
|
|
165
|
-
'fi',
|
|
166
|
-
].join('\n');
|
|
167
|
-
}
|
|
168
|
-
function nodeVerifyCommand() {
|
|
169
|
-
const script = [
|
|
170
|
-
'const want = JSON.parse(process.env.APPLY_SIBLING_LINKS_EXPECT);',
|
|
171
|
-
'const name = process.env.APPLY_SIBLING_LINKS_NAME;',
|
|
172
|
-
'const mod = await import(name);',
|
|
173
|
-
'const missing = want.filter((k) => !(k in mod));',
|
|
174
|
-
'if (missing.length) {',
|
|
175
|
-
' console.error(`MISSING_EXPORTS in ${name}: ${missing.join(",")}`);',
|
|
176
|
-
' process.exit(1);',
|
|
177
|
-
'}',
|
|
178
|
-
'console.log(`${name} OK: ${want.join(",")}`);',
|
|
179
|
-
].join(' ');
|
|
180
|
-
return ` APPLY_SIBLING_LINKS_NAME="$SIBLING_NAME" APPLY_SIBLING_LINKS_EXPECT="$EXPECT" node --input-type=module -e ${shSingleQuote(script)}`;
|
|
181
|
-
}
|
|
182
|
-
function pythonVerifyCommand() {
|
|
183
|
-
// Python < 3.12 forbids backslashes inside f-string expressions, so we
|
|
184
|
-
// can't inline `{",".join(missing)}` (which needs `\",\".` when written
|
|
185
|
-
// as a JS string literal). Bind the separator to a name outside the
|
|
186
|
-
// f-string first.
|
|
187
|
-
const script = [
|
|
188
|
-
'import json, os, importlib',
|
|
189
|
-
'name = os.environ["APPLY_SIBLING_LINKS_NAME"]',
|
|
190
|
-
'want = json.loads(os.environ["APPLY_SIBLING_LINKS_EXPECT"])',
|
|
191
|
-
'mod = importlib.import_module(name)',
|
|
192
|
-
'missing = [k for k in want if not hasattr(mod, k)]',
|
|
193
|
-
'sep = ","',
|
|
194
|
-
'if missing:',
|
|
195
|
-
' print(f"MISSING_EXPORTS in {name}: {sep.join(missing)}", flush=True)',
|
|
196
|
-
' raise SystemExit(1)',
|
|
197
|
-
'print(f"{name} OK: {sep.join(want)}", flush=True)',
|
|
198
|
-
].join('\n');
|
|
199
|
-
return [
|
|
200
|
-
' APPLY_SIBLING_LINKS_NAME="$SIBLING_NAME" APPLY_SIBLING_LINKS_EXPECT="$EXPECT" \\',
|
|
201
|
-
` python3 -c ${shSingleQuote(script)} 2>/dev/null || \\`,
|
|
202
|
-
` APPLY_SIBLING_LINKS_NAME="$SIBLING_NAME" APPLY_SIBLING_LINKS_EXPECT="$EXPECT" python -c ${shSingleQuote(script)}`,
|
|
203
|
-
].join('\n');
|
|
204
|
-
}
|
|
205
|
-
//# sourceMappingURL=sibling-links.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sibling-links.js","sourceRoot":"","sources":["../../src/workflows/sibling-links.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* State Store — CRUD on swarm_state with optional consensus-gated writes.
|
|
3
|
-
*
|
|
4
|
-
* Provides a key-value store scoped to a workflow run and namespace.
|
|
5
|
-
* When consensus gating is enabled, writes require approval from a
|
|
6
|
-
* ConsensusEngine before being committed.
|
|
7
|
-
*/
|
|
8
|
-
import { EventEmitter } from 'node:events';
|
|
9
|
-
import type { DbClient } from './coordinator.js';
|
|
10
|
-
export interface StateEntry {
|
|
11
|
-
id: string;
|
|
12
|
-
runId: string;
|
|
13
|
-
namespace: string;
|
|
14
|
-
key: string;
|
|
15
|
-
value: unknown;
|
|
16
|
-
expiresAt: string | null;
|
|
17
|
-
createdAt: string;
|
|
18
|
-
updatedAt: string;
|
|
19
|
-
}
|
|
20
|
-
export interface StateStoreOptions {
|
|
21
|
-
/** Default namespace for keys. */
|
|
22
|
-
namespace?: string;
|
|
23
|
-
/** Default TTL in milliseconds for new entries. */
|
|
24
|
-
defaultTtlMs?: number;
|
|
25
|
-
}
|
|
26
|
-
export interface WriteOptions {
|
|
27
|
-
namespace?: string;
|
|
28
|
-
ttlMs?: number;
|
|
29
|
-
}
|
|
30
|
-
export interface ReadOptions {
|
|
31
|
-
namespace?: string;
|
|
32
|
-
}
|
|
33
|
-
/** Callback invoked to gate a write. Return true to allow, false to reject. */
|
|
34
|
-
export type ConsensusGate = (runId: string, key: string, value: unknown, agent: string) => Promise<boolean>;
|
|
35
|
-
export interface StateStoreEvents {
|
|
36
|
-
'state:set': (entry: StateEntry) => void;
|
|
37
|
-
'state:deleted': (runId: string, key: string, namespace: string) => void;
|
|
38
|
-
'state:gated': (runId: string, key: string, agent: string) => void;
|
|
39
|
-
}
|
|
40
|
-
export declare class StateStore extends EventEmitter {
|
|
41
|
-
private db;
|
|
42
|
-
private defaultNamespace;
|
|
43
|
-
private defaultTtlMs;
|
|
44
|
-
private consensusGate;
|
|
45
|
-
constructor(db: DbClient, options?: StateStoreOptions);
|
|
46
|
-
/**
|
|
47
|
-
* Enable consensus-gated writes. When set, every `set()` call will
|
|
48
|
-
* invoke the gate function before persisting. If the gate returns false,
|
|
49
|
-
* the write is rejected.
|
|
50
|
-
*/
|
|
51
|
-
setConsensusGate(gate: ConsensusGate): void;
|
|
52
|
-
clearConsensusGate(): void;
|
|
53
|
-
/**
|
|
54
|
-
* Set a key-value pair. If consensus gating is enabled, the write is
|
|
55
|
-
* subject to approval.
|
|
56
|
-
*
|
|
57
|
-
* @param agent - The agent requesting the write (used for consensus gating).
|
|
58
|
-
*/
|
|
59
|
-
set(runId: string, key: string, value: unknown, agent: string, options?: WriteOptions): Promise<StateEntry>;
|
|
60
|
-
get(runId: string, key: string, options?: ReadOptions): Promise<unknown | null>;
|
|
61
|
-
getEntry(runId: string, key: string, options?: ReadOptions): Promise<StateEntry | null>;
|
|
62
|
-
getAll(runId: string, options?: ReadOptions): Promise<StateEntry[]>;
|
|
63
|
-
keys(runId: string, options?: ReadOptions): Promise<string[]>;
|
|
64
|
-
delete(runId: string, key: string, options?: ReadOptions): Promise<boolean>;
|
|
65
|
-
deleteAll(runId: string, options?: ReadOptions): Promise<number>;
|
|
66
|
-
/**
|
|
67
|
-
* Remove all expired entries for a run (or globally if runId is omitted).
|
|
68
|
-
* Returns the number of entries purged.
|
|
69
|
-
*/
|
|
70
|
-
purgeExpired(runId?: string): Promise<number>;
|
|
71
|
-
/**
|
|
72
|
-
* Take a snapshot of all state for a run as a plain object.
|
|
73
|
-
* Useful for persisting into workflow_runs.state_snapshot.
|
|
74
|
-
*/
|
|
75
|
-
snapshot(runId: string, options?: ReadOptions): Promise<Record<string, unknown>>;
|
|
76
|
-
}
|
|
77
|
-
//# sourceMappingURL=state.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/workflows/state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIjD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,+EAA+E;AAC/E,MAAM,MAAM,aAAa,GAAG,CAC1B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,KACV,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACzC,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACzE,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpE;AAID,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,EAAE,CAAW;IACrB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,aAAa,CAA8B;gBAEvC,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAE,iBAAsB;IASzD;;;;OAIG;IACH,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAI3C,kBAAkB,IAAI,IAAI;IAM1B;;;;;OAKG;IACG,GAAG,CACP,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,UAAU,CAAC;IAmChB,GAAG,CACP,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAcpB,QAAQ,CACZ,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAavB,MAAM,CACV,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,EAAE,CAAC;IAclB,IAAI,CACR,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,MAAM,EAAE,CAAC;IAgBd,MAAM,CACV,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,OAAO,CAAC;IAgBb,SAAS,CACb,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,MAAM,CAAC;IAalB;;;OAGG;IACG,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBnD;;;OAGG;IACG,QAAQ,CACZ,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAQpC"}
|
package/dist/workflows/state.js
DELETED
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* State Store — CRUD on swarm_state with optional consensus-gated writes.
|
|
3
|
-
*
|
|
4
|
-
* Provides a key-value store scoped to a workflow run and namespace.
|
|
5
|
-
* When consensus gating is enabled, writes require approval from a
|
|
6
|
-
* ConsensusEngine before being committed.
|
|
7
|
-
*/
|
|
8
|
-
import { randomBytes } from 'node:crypto';
|
|
9
|
-
import { EventEmitter } from 'node:events';
|
|
10
|
-
// ── Store ───────────────────────────────────────────────────────────────────
|
|
11
|
-
export class StateStore extends EventEmitter {
|
|
12
|
-
db;
|
|
13
|
-
defaultNamespace;
|
|
14
|
-
defaultTtlMs;
|
|
15
|
-
consensusGate = null;
|
|
16
|
-
constructor(db, options = {}) {
|
|
17
|
-
super();
|
|
18
|
-
this.db = db;
|
|
19
|
-
this.defaultNamespace = options.namespace ?? 'default';
|
|
20
|
-
this.defaultTtlMs = options.defaultTtlMs ?? null;
|
|
21
|
-
}
|
|
22
|
-
// ── Consensus gating ──────────────────────────────────────────────────
|
|
23
|
-
/**
|
|
24
|
-
* Enable consensus-gated writes. When set, every `set()` call will
|
|
25
|
-
* invoke the gate function before persisting. If the gate returns false,
|
|
26
|
-
* the write is rejected.
|
|
27
|
-
*/
|
|
28
|
-
setConsensusGate(gate) {
|
|
29
|
-
this.consensusGate = gate;
|
|
30
|
-
}
|
|
31
|
-
clearConsensusGate() {
|
|
32
|
-
this.consensusGate = null;
|
|
33
|
-
}
|
|
34
|
-
// ── Write ─────────────────────────────────────────────────────────────
|
|
35
|
-
/**
|
|
36
|
-
* Set a key-value pair. If consensus gating is enabled, the write is
|
|
37
|
-
* subject to approval.
|
|
38
|
-
*
|
|
39
|
-
* @param agent - The agent requesting the write (used for consensus gating).
|
|
40
|
-
*/
|
|
41
|
-
async set(runId, key, value, agent, options = {}) {
|
|
42
|
-
// Consensus gate check.
|
|
43
|
-
if (this.consensusGate) {
|
|
44
|
-
const allowed = await this.consensusGate(runId, key, value, agent);
|
|
45
|
-
if (!allowed) {
|
|
46
|
-
this.emit('state:gated', runId, key, agent);
|
|
47
|
-
throw new Error(`Write to "${key}" rejected by consensus gate for agent "${agent}"`);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
const namespace = options.namespace ?? this.defaultNamespace;
|
|
51
|
-
const ttlMs = options.ttlMs ?? this.defaultTtlMs;
|
|
52
|
-
const expiresAt = ttlMs ? new Date(Date.now() + ttlMs).toISOString() : null;
|
|
53
|
-
const id = `st_${Date.now()}_${randomBytes(4).toString('hex')}`;
|
|
54
|
-
const now = new Date().toISOString();
|
|
55
|
-
// Upsert: use the unique (run_id, namespace, key) constraint.
|
|
56
|
-
const { rows } = await this.db.query(`INSERT INTO swarm_state (id, run_id, namespace, key, value, expires_at, created_at, updated_at)
|
|
57
|
-
VALUES ($1, $2, $3, $4, $5, $6, $7, $7)
|
|
58
|
-
ON CONFLICT (run_id, namespace, key)
|
|
59
|
-
DO UPDATE SET value = EXCLUDED.value, expires_at = EXCLUDED.expires_at, updated_at = EXCLUDED.updated_at
|
|
60
|
-
RETURNING *`, [id, runId, namespace, key, JSON.stringify(value), expiresAt, now]);
|
|
61
|
-
const entry = rows[0];
|
|
62
|
-
this.emit('state:set', entry);
|
|
63
|
-
return entry;
|
|
64
|
-
}
|
|
65
|
-
// ── Read ──────────────────────────────────────────────────────────────
|
|
66
|
-
async get(runId, key, options = {}) {
|
|
67
|
-
const namespace = options.namespace ?? this.defaultNamespace;
|
|
68
|
-
const { rows } = await this.db.query(`SELECT * FROM swarm_state
|
|
69
|
-
WHERE run_id = $1 AND namespace = $2 AND key = $3
|
|
70
|
-
AND (expires_at IS NULL OR expires_at > now())`, [runId, namespace, key]);
|
|
71
|
-
if (rows.length === 0)
|
|
72
|
-
return null;
|
|
73
|
-
return rows[0].value;
|
|
74
|
-
}
|
|
75
|
-
async getEntry(runId, key, options = {}) {
|
|
76
|
-
const namespace = options.namespace ?? this.defaultNamespace;
|
|
77
|
-
const { rows } = await this.db.query(`SELECT * FROM swarm_state
|
|
78
|
-
WHERE run_id = $1 AND namespace = $2 AND key = $3
|
|
79
|
-
AND (expires_at IS NULL OR expires_at > now())`, [runId, namespace, key]);
|
|
80
|
-
return rows[0] ?? null;
|
|
81
|
-
}
|
|
82
|
-
async getAll(runId, options = {}) {
|
|
83
|
-
const namespace = options.namespace ?? this.defaultNamespace;
|
|
84
|
-
const { rows } = await this.db.query(`SELECT * FROM swarm_state
|
|
85
|
-
WHERE run_id = $1 AND namespace = $2
|
|
86
|
-
AND (expires_at IS NULL OR expires_at > now())
|
|
87
|
-
ORDER BY key ASC`, [runId, namespace]);
|
|
88
|
-
return rows;
|
|
89
|
-
}
|
|
90
|
-
async keys(runId, options = {}) {
|
|
91
|
-
const namespace = options.namespace ?? this.defaultNamespace;
|
|
92
|
-
const { rows } = await this.db.query(`SELECT key FROM swarm_state
|
|
93
|
-
WHERE run_id = $1 AND namespace = $2
|
|
94
|
-
AND (expires_at IS NULL OR expires_at > now())
|
|
95
|
-
ORDER BY key ASC`, [runId, namespace]);
|
|
96
|
-
return rows.map((r) => r.key);
|
|
97
|
-
}
|
|
98
|
-
// ── Delete ────────────────────────────────────────────────────────────
|
|
99
|
-
async delete(runId, key, options = {}) {
|
|
100
|
-
const namespace = options.namespace ?? this.defaultNamespace;
|
|
101
|
-
const { rows } = await this.db.query(`DELETE FROM swarm_state WHERE run_id = $1 AND namespace = $2 AND key = $3 RETURNING id`, [runId, namespace, key]);
|
|
102
|
-
if (rows.length > 0) {
|
|
103
|
-
this.emit('state:deleted', runId, key, namespace);
|
|
104
|
-
return true;
|
|
105
|
-
}
|
|
106
|
-
return false;
|
|
107
|
-
}
|
|
108
|
-
async deleteAll(runId, options = {}) {
|
|
109
|
-
const namespace = options.namespace ?? this.defaultNamespace;
|
|
110
|
-
const { rows } = await this.db.query(`DELETE FROM swarm_state WHERE run_id = $1 AND namespace = $2 RETURNING id`, [runId, namespace]);
|
|
111
|
-
return rows.length;
|
|
112
|
-
}
|
|
113
|
-
// ── Expiry cleanup ────────────────────────────────────────────────────
|
|
114
|
-
/**
|
|
115
|
-
* Remove all expired entries for a run (or globally if runId is omitted).
|
|
116
|
-
* Returns the number of entries purged.
|
|
117
|
-
*/
|
|
118
|
-
async purgeExpired(runId) {
|
|
119
|
-
if (runId) {
|
|
120
|
-
const { rows } = await this.db.query(`DELETE FROM swarm_state WHERE run_id = $1 AND expires_at IS NOT NULL AND expires_at <= now() RETURNING id`, [runId]);
|
|
121
|
-
return rows.length;
|
|
122
|
-
}
|
|
123
|
-
const { rows } = await this.db.query(`DELETE FROM swarm_state WHERE expires_at IS NOT NULL AND expires_at <= now() RETURNING id`, []);
|
|
124
|
-
return rows.length;
|
|
125
|
-
}
|
|
126
|
-
// ── Snapshot ───────────────────────────────────────────────────────────
|
|
127
|
-
/**
|
|
128
|
-
* Take a snapshot of all state for a run as a plain object.
|
|
129
|
-
* Useful for persisting into workflow_runs.state_snapshot.
|
|
130
|
-
*/
|
|
131
|
-
async snapshot(runId, options = {}) {
|
|
132
|
-
const entries = await this.getAll(runId, options);
|
|
133
|
-
const result = {};
|
|
134
|
-
for (const entry of entries) {
|
|
135
|
-
result[entry.key] = entry.value;
|
|
136
|
-
}
|
|
137
|
-
return result;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
//# sourceMappingURL=state.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/workflows/state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA8C3C,+EAA+E;AAE/E,MAAM,OAAO,UAAW,SAAQ,YAAY;IAClC,EAAE,CAAW;IACb,gBAAgB,CAAS;IACzB,YAAY,CAAgB;IAC5B,aAAa,GAAyB,IAAI,CAAC;IAEnD,YAAY,EAAY,EAAE,UAA6B,EAAE;QACvD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC;QACvD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC;IACnD,CAAC;IAED,yEAAyE;IAEzE;;;;OAIG;IACH,gBAAgB,CAAC,IAAmB;QAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,yEAAyE;IAEzE;;;;;OAKG;IACH,KAAK,CAAC,GAAG,CACP,KAAa,EACb,GAAW,EACX,KAAc,EACd,KAAa,EACb,UAAwB,EAAE;QAE1B,wBAAwB;QACxB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACnE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC5C,MAAM,IAAI,KAAK,CACb,aAAa,GAAG,2CAA2C,KAAK,GAAG,CACpE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC;QAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;QACjD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5E,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErC,8DAA8D;QAC9D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAClC;;;;mBAIa,EACb,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,CACnE,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,yEAAyE;IAEzE,KAAK,CAAC,GAAG,CACP,KAAa,EACb,GAAW,EACX,UAAuB,EAAE;QAEzB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC;QAE7D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAClC;;wDAEkD,EAClD,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,CACxB,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,KAAa,EACb,GAAW,EACX,UAAuB,EAAE;QAEzB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC;QAE7D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAClC;;wDAEkD,EAClD,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,CACxB,CAAC;QAEF,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,MAAM,CACV,KAAa,EACb,UAAuB,EAAE;QAEzB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC;QAE7D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAClC;;;wBAGkB,EAClB,CAAC,KAAK,EAAE,SAAS,CAAC,CACnB,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,IAAI,CACR,KAAa,EACb,UAAuB,EAAE;QAEzB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC;QAE7D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAClC;;;wBAGkB,EAClB,CAAC,KAAK,EAAE,SAAS,CAAC,CACnB,CAAC;QAEF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,yEAAyE;IAEzE,KAAK,CAAC,MAAM,CACV,KAAa,EACb,GAAW,EACX,UAAuB,EAAE;QAEzB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC;QAE7D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAClC,wFAAwF,EACxF,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,CACxB,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,SAAS,CACb,KAAa,EACb,UAAuB,EAAE;QAEzB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC;QAE7D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAClC,2EAA2E,EAC3E,CAAC,KAAK,EAAE,SAAS,CAAC,CACnB,CAAC;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,yEAAyE;IAEzE;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,KAAc;QAC/B,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAClC,2GAA2G,EAC3G,CAAC,KAAK,CAAC,CACR,CAAC;YACF,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAClC,2FAA2F,EAC3F,EAAE,CACH,CAAC;QACF,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,0EAA0E;IAE1E;;;OAGG;IACH,KAAK,CAAC,QAAQ,CACZ,KAAa,EACb,UAAuB,EAAE;QAEzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAClC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { ChannelMessenger } from './channel-messenger.js';
|
|
2
|
-
import type { ProcessSpawner } from './process-spawner.js';
|
|
3
|
-
import { TemplateResolver } from './template-resolver.js';
|
|
4
|
-
import type { StepOutcome } from './trajectory.js';
|
|
5
|
-
import type { AgentDefinition, ErrorHandlingConfig, StepCompletionMode, VerificationCheck, WorkflowStep, WorkflowStepCompletionReason, WorkflowStepRow, WorkflowStepStatus } from './types.js';
|
|
6
|
-
import { type VerificationOptions, type VerificationResult, type VerificationSideEffects } from './verification.js';
|
|
7
|
-
type StateLike = {
|
|
8
|
-
row: WorkflowStepRow;
|
|
9
|
-
};
|
|
10
|
-
export interface StepResult {
|
|
11
|
-
status: WorkflowStepStatus;
|
|
12
|
-
output: string;
|
|
13
|
-
exitCode?: number;
|
|
14
|
-
exitSignal?: string;
|
|
15
|
-
duration: number;
|
|
16
|
-
retries: number;
|
|
17
|
-
completionReason?: WorkflowStepCompletionReason;
|
|
18
|
-
error?: string;
|
|
19
|
-
}
|
|
20
|
-
export interface StepSchedule {
|
|
21
|
-
step: WorkflowStep;
|
|
22
|
-
readyAt: number;
|
|
23
|
-
staggerDelay: number;
|
|
24
|
-
}
|
|
25
|
-
export interface StepExecutorDeps<TState extends StateLike = StateLike> {
|
|
26
|
-
cwd: string;
|
|
27
|
-
runId?: string;
|
|
28
|
-
postToChannel?: (text: string) => void;
|
|
29
|
-
persistStepRow?: (stepId: string, patch: Partial<WorkflowStepRow>) => Promise<void>;
|
|
30
|
-
persistStepOutput?: (runId: string, stepName: string, output: string) => Promise<void>;
|
|
31
|
-
resolveTemplate?: (template: string, context: Record<string, unknown>) => string;
|
|
32
|
-
getStepOutput?: (stepName: string) => string | undefined;
|
|
33
|
-
loadStepOutput?: (runId: string, stepName: string) => string | undefined;
|
|
34
|
-
checkAborted?: () => void;
|
|
35
|
-
waitIfPaused?: () => Promise<void>;
|
|
36
|
-
log?: (message: string) => void;
|
|
37
|
-
processSpawner?: ProcessSpawner;
|
|
38
|
-
templateResolver?: TemplateResolver;
|
|
39
|
-
channelMessenger?: ChannelMessenger;
|
|
40
|
-
verificationRunner?: (check: VerificationCheck, output: string, stepName: string, injectedTaskText?: string, options?: VerificationOptions, sideEffects?: VerificationSideEffects) => VerificationResult;
|
|
41
|
-
executeStep?: (step: WorkflowStep, state: TState, agentMap: Map<string, AgentDefinition>, errorHandling?: ErrorHandlingConfig) => Promise<Partial<StepResult> | void>;
|
|
42
|
-
onStepStarted?: (step: WorkflowStep, state: TState) => Promise<void> | void;
|
|
43
|
-
onStepRetried?: (step: WorkflowStep, state: TState, attempt: number, maxRetries: number) => Promise<void> | void;
|
|
44
|
-
onStepCompleted?: (step: WorkflowStep, state: TState, result: StepResult) => Promise<void> | void;
|
|
45
|
-
onStepFailed?: (step: WorkflowStep, state: TState, result: StepResult) => Promise<void> | void;
|
|
46
|
-
onBeginTrack?: (steps: WorkflowStep[]) => Promise<void> | void;
|
|
47
|
-
onConverge?: (steps: WorkflowStep[], outcomes: StepOutcome[]) => Promise<void> | void;
|
|
48
|
-
markDownstreamSkipped?: (failedStepName: string) => Promise<void>;
|
|
49
|
-
buildCompletionMode?: (stepName: string, completionReason?: WorkflowStepCompletionReason) => StepCompletionMode | undefined;
|
|
50
|
-
}
|
|
51
|
-
export interface MonitorStepOptions<TState extends StateLike, TResult> {
|
|
52
|
-
maxRetries?: number;
|
|
53
|
-
retryDelayMs?: number;
|
|
54
|
-
startMessage?: string;
|
|
55
|
-
onStart?: (attempt: number, state: TState) => Promise<void> | void;
|
|
56
|
-
onRetry?: (attempt: number, maxRetries: number, state: TState) => Promise<void> | void;
|
|
57
|
-
execute: (attempt: number, state: TState) => Promise<TResult>;
|
|
58
|
-
toCompletionResult: (result: TResult, attempt: number, state: TState) => Partial<StepResult>;
|
|
59
|
-
onAttemptFailed?: (error: unknown, attempt: number, state: TState) => Promise<void> | void;
|
|
60
|
-
getFailureResult?: (error: unknown, attempt: number, state: TState) => Partial<StepResult>;
|
|
61
|
-
}
|
|
62
|
-
export declare class StepExecutor<TState extends StateLike = StateLike> {
|
|
63
|
-
private readonly deps;
|
|
64
|
-
private readonly templateResolver;
|
|
65
|
-
private readonly channelMessenger;
|
|
66
|
-
private readonly verificationRunner;
|
|
67
|
-
constructor(deps: StepExecutorDeps<TState>);
|
|
68
|
-
findReady(steps: WorkflowStep[], statuses: Map<string, WorkflowStepStatus> | Map<string, TState>): WorkflowStep[];
|
|
69
|
-
/** @deprecated Use {@link findReady} instead. This is an alias kept for backward compatibility. */
|
|
70
|
-
findReadySteps(steps: WorkflowStep[], statuses: Map<string, WorkflowStepStatus> | Map<string, TState>): WorkflowStep[];
|
|
71
|
-
scheduleStep(step: WorkflowStep, options?: {
|
|
72
|
-
readyAt?: number;
|
|
73
|
-
staggerDelay?: number;
|
|
74
|
-
}): StepSchedule;
|
|
75
|
-
startStep(step: WorkflowStep, state: TState, startMessage?: string): Promise<void>;
|
|
76
|
-
retryStep(step: WorkflowStep, state: TState, attempt: number, maxRetries: number): Promise<void>;
|
|
77
|
-
completeStep(step: WorkflowStep, state: TState, result: Partial<StepResult>): Promise<StepResult>;
|
|
78
|
-
monitorStep<TResult>(step: WorkflowStep, state: TState, options: MonitorStepOptions<TState, TResult>): Promise<StepResult>;
|
|
79
|
-
executeAll(steps: WorkflowStep[], agentMap: Map<string, AgentDefinition>, errorHandling?: ErrorHandlingConfig, providedStates?: Map<string, TState>): Promise<Map<string, StepResult>>;
|
|
80
|
-
executeOne(step: WorkflowStep, agentMap: Map<string, AgentDefinition>, errorHandling?: ErrorHandlingConfig, providedState?: TState): Promise<StepResult>;
|
|
81
|
-
markFailed(stepName: string, error: string): Promise<void>;
|
|
82
|
-
buildStepOutputContext(stepStates: Map<string, TState>): Record<string, {
|
|
83
|
-
output: string;
|
|
84
|
-
}>;
|
|
85
|
-
resolveStepTemplate(template: string, context: Record<string, unknown>): string;
|
|
86
|
-
getChannelMessenger(): ChannelMessenger;
|
|
87
|
-
runVerification(check: VerificationCheck, output: string, stepName: string, injectedTaskText?: string, options?: VerificationOptions): VerificationResult;
|
|
88
|
-
private executeScheduledStep;
|
|
89
|
-
private executeWithProcessSpawner;
|
|
90
|
-
private createEphemeralStates;
|
|
91
|
-
private createEphemeralState;
|
|
92
|
-
private getStatus;
|
|
93
|
-
}
|
|
94
|
-
export {};
|
|
95
|
-
//# sourceMappingURL=step-executor.d.ts.map
|