agent-relay 2.3.4 → 2.3.5
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 +1 -1
- package/dist/src/cli/index.js +124 -7
- package/dist/src/cli/index.js.map +1 -1
- package/package.json +20 -26
- package/packages/acp-bridge/package.json +2 -2
- package/packages/bridge/package.json +7 -7
- package/packages/config/package.json +2 -2
- package/packages/continuity/package.json +2 -2
- package/packages/daemon/package.json +12 -12
- package/packages/hooks/package.json +4 -4
- package/packages/mcp/package.json +5 -5
- package/packages/memory/package.json +2 -2
- package/packages/policy/package.json +2 -2
- package/packages/protocol/package.json +1 -1
- package/packages/resiliency/package.json +1 -1
- package/packages/sdk/dist/index.d.ts +1 -29
- package/packages/sdk/dist/index.d.ts.map +1 -1
- package/packages/sdk/dist/index.js +1 -38
- package/packages/sdk/dist/index.js.map +1 -1
- package/packages/sdk/package.json +4 -25
- package/packages/sdk/src/index.ts +1 -69
- package/packages/sdk-py/README.md +56 -0
- package/packages/sdk-py/pyproject.toml +23 -0
- package/packages/sdk-py/src/agent_relay/__init__.py +27 -0
- package/packages/sdk-py/src/agent_relay/builder.py +367 -0
- package/packages/sdk-py/src/agent_relay/types.py +92 -0
- package/packages/sdk-py/tests/__init__.py +0 -0
- package/packages/sdk-py/tests/test_builder.py +101 -0
- package/packages/sdk-ts/dist/index.d.ts +1 -0
- package/packages/sdk-ts/dist/index.d.ts.map +1 -1
- package/packages/sdk-ts/dist/index.js +1 -0
- package/packages/sdk-ts/dist/index.js.map +1 -1
- package/packages/sdk-ts/dist/workflows/barrier.d.ts +72 -0
- package/packages/sdk-ts/dist/workflows/barrier.d.ts.map +1 -0
- package/packages/sdk-ts/dist/workflows/barrier.js +162 -0
- package/packages/sdk-ts/dist/workflows/barrier.js.map +1 -0
- package/packages/sdk-ts/dist/workflows/builder.d.ts +101 -0
- package/packages/sdk-ts/dist/workflows/builder.d.ts.map +1 -0
- package/packages/sdk-ts/dist/workflows/builder.js +179 -0
- package/packages/sdk-ts/dist/workflows/builder.js.map +1 -0
- package/packages/sdk-ts/dist/workflows/cli.d.ts +10 -0
- package/packages/sdk-ts/dist/workflows/cli.d.ts.map +1 -0
- package/packages/sdk-ts/dist/workflows/cli.js +82 -0
- package/packages/sdk-ts/dist/workflows/cli.js.map +1 -0
- package/packages/sdk-ts/dist/workflows/coordinator.d.ts +68 -0
- package/packages/sdk-ts/dist/workflows/coordinator.d.ts.map +1 -0
- package/packages/sdk-ts/dist/workflows/coordinator.js +353 -0
- package/packages/sdk-ts/dist/workflows/coordinator.js.map +1 -0
- package/packages/sdk-ts/dist/workflows/index.d.ts +10 -0
- package/packages/sdk-ts/dist/workflows/index.d.ts.map +1 -0
- package/packages/sdk-ts/dist/workflows/index.js +10 -0
- package/packages/sdk-ts/dist/workflows/index.js.map +1 -0
- package/packages/sdk-ts/dist/workflows/memory-db.d.ts +17 -0
- package/packages/sdk-ts/dist/workflows/memory-db.d.ts.map +1 -0
- package/packages/sdk-ts/dist/workflows/memory-db.js +33 -0
- package/packages/sdk-ts/dist/workflows/memory-db.js.map +1 -0
- package/packages/sdk-ts/dist/workflows/run.d.ts +31 -0
- package/packages/sdk-ts/dist/workflows/run.d.ts.map +1 -0
- package/packages/sdk-ts/dist/workflows/run.js +24 -0
- package/packages/sdk-ts/dist/workflows/run.js.map +1 -0
- package/packages/sdk-ts/dist/workflows/runner.d.ts +119 -0
- package/packages/sdk-ts/dist/workflows/runner.d.ts.map +1 -0
- package/packages/sdk-ts/dist/workflows/runner.js +650 -0
- package/packages/sdk-ts/dist/workflows/runner.js.map +1 -0
- package/packages/sdk-ts/dist/workflows/state.d.ts +77 -0
- package/packages/sdk-ts/dist/workflows/state.d.ts.map +1 -0
- package/packages/sdk-ts/dist/workflows/state.js +140 -0
- package/packages/sdk-ts/dist/workflows/state.js.map +1 -0
- package/packages/sdk-ts/dist/workflows/templates.d.ts +47 -0
- package/packages/sdk-ts/dist/workflows/templates.d.ts.map +1 -0
- package/packages/sdk-ts/dist/workflows/templates.js +395 -0
- package/packages/sdk-ts/dist/workflows/templates.js.map +1 -0
- package/packages/sdk-ts/dist/workflows/types.d.ts +126 -0
- package/packages/sdk-ts/dist/workflows/types.d.ts.map +1 -0
- package/packages/sdk-ts/dist/workflows/types.js +8 -0
- package/packages/sdk-ts/dist/workflows/types.js.map +1 -0
- package/packages/sdk-ts/package.json +8 -2
- package/packages/sdk-ts/src/__tests__/error-scenarios.test.ts +682 -0
- package/packages/sdk-ts/src/__tests__/swarm-coordinator.test.ts +416 -0
- package/packages/sdk-ts/src/__tests__/workflow-runner.test.ts +333 -0
- package/packages/sdk-ts/src/index.ts +1 -0
- package/packages/sdk-ts/src/workflows/README.md +450 -0
- package/packages/sdk-ts/src/workflows/barrier.ts +254 -0
- package/packages/sdk-ts/src/workflows/builder.ts +241 -0
- package/packages/sdk-ts/src/workflows/builtin-templates/bug-fix.yaml +75 -0
- package/packages/sdk-ts/src/workflows/builtin-templates/code-review.yaml +82 -0
- package/packages/sdk-ts/src/workflows/builtin-templates/documentation.yaml +70 -0
- package/packages/sdk-ts/src/workflows/builtin-templates/feature-dev.yaml +76 -0
- package/packages/sdk-ts/src/workflows/builtin-templates/refactor.yaml +82 -0
- package/packages/sdk-ts/src/workflows/builtin-templates/security-audit.yaml +84 -0
- package/packages/sdk-ts/src/workflows/cli.ts +93 -0
- package/packages/sdk-ts/src/workflows/coordinator.ts +520 -0
- package/packages/sdk-ts/src/workflows/index.ts +9 -0
- package/packages/sdk-ts/src/workflows/memory-db.ts +39 -0
- package/packages/sdk-ts/src/workflows/run.ts +47 -0
- package/packages/sdk-ts/src/workflows/runner.ts +873 -0
- package/packages/sdk-ts/src/workflows/schema.json +321 -0
- package/packages/sdk-ts/src/workflows/state.ts +279 -0
- package/packages/sdk-ts/src/workflows/templates.ts +544 -0
- package/packages/sdk-ts/src/workflows/types.ts +178 -0
- package/packages/sdk-ts/tsconfig.json +6 -1
- package/packages/spawner/package.json +1 -1
- package/packages/state/package.json +1 -1
- package/packages/storage/package.json +2 -2
- package/packages/telemetry/package.json +1 -1
- package/packages/trajectory/package.json +2 -2
- package/packages/user-directory/package.json +2 -2
- package/packages/utils/package.json +3 -3
- package/packages/wrapper/package.json +5 -6
- package/packages/api-types/.trajectories/active/traj_xbsvuzogscey.json +0 -15
- package/packages/api-types/.trajectories/index.json +0 -12
- package/packages/api-types/dist/index.d.ts +0 -21
- package/packages/api-types/dist/index.d.ts.map +0 -1
- package/packages/api-types/dist/index.js +0 -22
- package/packages/api-types/dist/index.js.map +0 -1
- package/packages/api-types/dist/schemas/agent.d.ts +0 -259
- package/packages/api-types/dist/schemas/agent.d.ts.map +0 -1
- package/packages/api-types/dist/schemas/agent.js +0 -102
- package/packages/api-types/dist/schemas/agent.js.map +0 -1
- package/packages/api-types/dist/schemas/api.d.ts +0 -290
- package/packages/api-types/dist/schemas/api.d.ts.map +0 -1
- package/packages/api-types/dist/schemas/api.js +0 -162
- package/packages/api-types/dist/schemas/api.js.map +0 -1
- package/packages/api-types/dist/schemas/decision.d.ts +0 -230
- package/packages/api-types/dist/schemas/decision.d.ts.map +0 -1
- package/packages/api-types/dist/schemas/decision.js +0 -104
- package/packages/api-types/dist/schemas/decision.js.map +0 -1
- package/packages/api-types/dist/schemas/fleet.d.ts +0 -615
- package/packages/api-types/dist/schemas/fleet.d.ts.map +0 -1
- package/packages/api-types/dist/schemas/fleet.js +0 -71
- package/packages/api-types/dist/schemas/fleet.js.map +0 -1
- package/packages/api-types/dist/schemas/history.d.ts +0 -180
- package/packages/api-types/dist/schemas/history.d.ts.map +0 -1
- package/packages/api-types/dist/schemas/history.js +0 -72
- package/packages/api-types/dist/schemas/history.js.map +0 -1
- package/packages/api-types/dist/schemas/index.d.ts +0 -14
- package/packages/api-types/dist/schemas/index.d.ts.map +0 -1
- package/packages/api-types/dist/schemas/index.js +0 -22
- package/packages/api-types/dist/schemas/index.js.map +0 -1
- package/packages/api-types/dist/schemas/message.d.ts +0 -456
- package/packages/api-types/dist/schemas/message.d.ts.map +0 -1
- package/packages/api-types/dist/schemas/message.js +0 -88
- package/packages/api-types/dist/schemas/message.js.map +0 -1
- package/packages/api-types/dist/schemas/session.d.ts +0 -60
- package/packages/api-types/dist/schemas/session.d.ts.map +0 -1
- package/packages/api-types/dist/schemas/session.js +0 -36
- package/packages/api-types/dist/schemas/session.js.map +0 -1
- package/packages/api-types/dist/schemas/task.d.ts +0 -111
- package/packages/api-types/dist/schemas/task.d.ts.map +0 -1
- package/packages/api-types/dist/schemas/task.js +0 -64
- package/packages/api-types/dist/schemas/task.js.map +0 -1
- package/packages/api-types/package.json +0 -61
- package/packages/api-types/scripts/generate-openapi.ts +0 -106
- package/packages/api-types/src/index.ts +0 -22
- package/packages/api-types/src/schemas/agent.test.ts +0 -164
- package/packages/api-types/src/schemas/agent.ts +0 -110
- package/packages/api-types/src/schemas/api.test.ts +0 -372
- package/packages/api-types/src/schemas/api.ts +0 -194
- package/packages/api-types/src/schemas/decision.test.ts +0 -324
- package/packages/api-types/src/schemas/decision.ts +0 -136
- package/packages/api-types/src/schemas/fleet.test.ts +0 -212
- package/packages/api-types/src/schemas/fleet.ts +0 -83
- package/packages/api-types/src/schemas/history.test.ts +0 -242
- package/packages/api-types/src/schemas/history.ts +0 -84
- package/packages/api-types/src/schemas/index.ts +0 -148
- package/packages/api-types/src/schemas/message.test.ts +0 -192
- package/packages/api-types/src/schemas/message.ts +0 -98
- package/packages/api-types/src/schemas/session.test.ts +0 -104
- package/packages/api-types/src/schemas/session.ts +0 -40
- package/packages/api-types/src/schemas/task.test.ts +0 -192
- package/packages/api-types/src/schemas/task.ts +0 -78
- package/packages/api-types/tsconfig.json +0 -19
- package/packages/api-types/vitest.config.ts +0 -9
- package/packages/benchmark/README.md +0 -200
- package/packages/benchmark/datasets/coding-tasks.yaml +0 -127
- package/packages/benchmark/datasets/coordination-tasks.yaml +0 -122
- package/packages/benchmark/datasets/quick-test.yaml +0 -20
- package/packages/benchmark/dist/benchmark.d.ts +0 -47
- package/packages/benchmark/dist/benchmark.d.ts.map +0 -1
- package/packages/benchmark/dist/benchmark.js +0 -224
- package/packages/benchmark/dist/benchmark.js.map +0 -1
- package/packages/benchmark/dist/cli.d.ts +0 -8
- package/packages/benchmark/dist/cli.d.ts.map +0 -1
- package/packages/benchmark/dist/cli.js +0 -185
- package/packages/benchmark/dist/cli.js.map +0 -1
- package/packages/benchmark/dist/harbor.d.ts +0 -53
- package/packages/benchmark/dist/harbor.d.ts.map +0 -1
- package/packages/benchmark/dist/harbor.js +0 -127
- package/packages/benchmark/dist/harbor.js.map +0 -1
- package/packages/benchmark/dist/index.d.ts +0 -48
- package/packages/benchmark/dist/index.d.ts.map +0 -1
- package/packages/benchmark/dist/index.js +0 -50
- package/packages/benchmark/dist/index.js.map +0 -1
- package/packages/benchmark/dist/runners/base.d.ts +0 -63
- package/packages/benchmark/dist/runners/base.d.ts.map +0 -1
- package/packages/benchmark/dist/runners/base.js +0 -156
- package/packages/benchmark/dist/runners/base.js.map +0 -1
- package/packages/benchmark/dist/runners/index.d.ts +0 -10
- package/packages/benchmark/dist/runners/index.d.ts.map +0 -1
- package/packages/benchmark/dist/runners/index.js +0 -10
- package/packages/benchmark/dist/runners/index.js.map +0 -1
- package/packages/benchmark/dist/runners/single.d.ts +0 -19
- package/packages/benchmark/dist/runners/single.d.ts.map +0 -1
- package/packages/benchmark/dist/runners/single.js +0 -111
- package/packages/benchmark/dist/runners/single.js.map +0 -1
- package/packages/benchmark/dist/runners/subagent.d.ts +0 -32
- package/packages/benchmark/dist/runners/subagent.d.ts.map +0 -1
- package/packages/benchmark/dist/runners/subagent.js +0 -212
- package/packages/benchmark/dist/runners/subagent.js.map +0 -1
- package/packages/benchmark/dist/runners/swarm.d.ts +0 -36
- package/packages/benchmark/dist/runners/swarm.d.ts.map +0 -1
- package/packages/benchmark/dist/runners/swarm.js +0 -273
- package/packages/benchmark/dist/runners/swarm.js.map +0 -1
- package/packages/benchmark/dist/types.d.ts +0 -178
- package/packages/benchmark/dist/types.d.ts.map +0 -1
- package/packages/benchmark/dist/types.js +0 -16
- package/packages/benchmark/dist/types.js.map +0 -1
- package/packages/benchmark/package.json +0 -80
- package/packages/benchmark/src/benchmark.ts +0 -298
- package/packages/benchmark/src/cli.ts +0 -240
- package/packages/benchmark/src/harbor.ts +0 -170
- package/packages/benchmark/src/index.ts +0 -73
- package/packages/benchmark/src/runners/base.ts +0 -205
- package/packages/benchmark/src/runners/index.ts +0 -10
- package/packages/benchmark/src/runners/single.ts +0 -121
- package/packages/benchmark/src/runners/subagent.ts +0 -240
- package/packages/benchmark/src/runners/swarm.ts +0 -326
- package/packages/benchmark/src/types.ts +0 -205
- package/packages/benchmark/tsconfig.json +0 -20
- package/packages/cli-tester/README.md +0 -277
- package/packages/cli-tester/dist/index.d.ts +0 -21
- package/packages/cli-tester/dist/index.d.ts.map +0 -1
- package/packages/cli-tester/dist/index.js +0 -21
- package/packages/cli-tester/dist/index.js.map +0 -1
- package/packages/cli-tester/dist/utils/credential-check.d.ts +0 -56
- package/packages/cli-tester/dist/utils/credential-check.d.ts.map +0 -1
- package/packages/cli-tester/dist/utils/credential-check.js +0 -230
- package/packages/cli-tester/dist/utils/credential-check.js.map +0 -1
- package/packages/cli-tester/dist/utils/socket-client.d.ts +0 -76
- package/packages/cli-tester/dist/utils/socket-client.d.ts.map +0 -1
- package/packages/cli-tester/dist/utils/socket-client.js +0 -153
- package/packages/cli-tester/dist/utils/socket-client.js.map +0 -1
- package/packages/cli-tester/docker/Dockerfile +0 -61
- package/packages/cli-tester/docker/docker-compose.yml +0 -71
- package/packages/cli-tester/docker/entrypoint.sh +0 -58
- package/packages/cli-tester/package.json +0 -32
- package/packages/cli-tester/scripts/clear-auth.sh +0 -101
- package/packages/cli-tester/scripts/inject-message.sh +0 -42
- package/packages/cli-tester/scripts/start.sh +0 -71
- package/packages/cli-tester/scripts/test-cli.sh +0 -56
- package/packages/cli-tester/scripts/test-full-spawn.sh +0 -238
- package/packages/cli-tester/scripts/test-registration.sh +0 -182
- package/packages/cli-tester/scripts/test-setup-flow.sh +0 -202
- package/packages/cli-tester/scripts/test-spawn.sh +0 -140
- package/packages/cli-tester/scripts/test-with-daemon.sh +0 -247
- package/packages/cli-tester/scripts/verify-auth.sh +0 -112
- package/packages/cli-tester/src/index.ts +0 -40
- package/packages/cli-tester/src/utils/credential-check.ts +0 -284
- package/packages/cli-tester/src/utils/socket-client.ts +0 -211
- package/packages/cli-tester/tests/credential-check.test.ts +0 -56
- package/packages/cli-tester/tsconfig.json +0 -11
- package/packages/sdk/dist/browser-client.d.ts +0 -212
- package/packages/sdk/dist/browser-client.d.ts.map +0 -1
- package/packages/sdk/dist/browser-client.js +0 -750
- package/packages/sdk/dist/browser-client.js.map +0 -1
- package/packages/sdk/dist/browser-framing.d.ts +0 -46
- package/packages/sdk/dist/browser-framing.d.ts.map +0 -1
- package/packages/sdk/dist/browser-framing.js +0 -122
- package/packages/sdk/dist/browser-framing.js.map +0 -1
- package/packages/sdk/dist/standalone.d.ts +0 -89
- package/packages/sdk/dist/standalone.d.ts.map +0 -1
- package/packages/sdk/dist/standalone.js +0 -131
- package/packages/sdk/dist/standalone.js.map +0 -1
- package/packages/sdk/dist/transports/index.d.ts +0 -92
- package/packages/sdk/dist/transports/index.d.ts.map +0 -1
- package/packages/sdk/dist/transports/index.js +0 -129
- package/packages/sdk/dist/transports/index.js.map +0 -1
- package/packages/sdk/dist/transports/socket-transport.d.ts +0 -30
- package/packages/sdk/dist/transports/socket-transport.d.ts.map +0 -1
- package/packages/sdk/dist/transports/socket-transport.js +0 -94
- package/packages/sdk/dist/transports/socket-transport.js.map +0 -1
- package/packages/sdk/dist/transports/types.d.ts +0 -69
- package/packages/sdk/dist/transports/types.d.ts.map +0 -1
- package/packages/sdk/dist/transports/types.js +0 -10
- package/packages/sdk/dist/transports/types.js.map +0 -1
- package/packages/sdk/dist/transports/websocket-transport.d.ts +0 -55
- package/packages/sdk/dist/transports/websocket-transport.d.ts.map +0 -1
- package/packages/sdk/dist/transports/websocket-transport.js +0 -180
- package/packages/sdk/dist/transports/websocket-transport.js.map +0 -1
- package/packages/sdk/src/browser-client.ts +0 -985
- package/packages/sdk/src/browser-framing.test.ts +0 -115
- package/packages/sdk/src/browser-framing.ts +0 -150
- package/packages/sdk/src/standalone.ts +0 -183
- package/packages/sdk/src/transports/index.ts +0 -197
- package/packages/sdk/src/transports/socket-transport.ts +0 -115
- package/packages/sdk/src/transports/types.ts +0 -77
- package/packages/sdk/src/transports/websocket-transport.ts +0 -245
package/README.md
CHANGED
package/dist/src/cli/index.js
CHANGED
|
@@ -33,7 +33,7 @@ import path from 'node:path';
|
|
|
33
33
|
import { homedir, tmpdir } from 'node:os';
|
|
34
34
|
import readline from 'node:readline';
|
|
35
35
|
import { promisify } from 'node:util';
|
|
36
|
-
import { exec, execSync, spawn as spawnProcess } from 'node:child_process';
|
|
36
|
+
import { exec, execFileSync, execSync, spawn as spawnProcess } from 'node:child_process';
|
|
37
37
|
import { fileURLToPath } from 'node:url';
|
|
38
38
|
/**
|
|
39
39
|
* Find the dashboard binary if installed as standalone.
|
|
@@ -3642,6 +3642,7 @@ program
|
|
|
3642
3642
|
.option('--token <token>', 'One-time CLI token from dashboard (skips cloud config requirement)')
|
|
3643
3643
|
.option('--cloud-url <url>', 'Cloud API URL (overrides linked config and AGENT_RELAY_CLOUD_URL)')
|
|
3644
3644
|
.option('--timeout <seconds>', 'Timeout in seconds (default: 300)', '300')
|
|
3645
|
+
.option('--use-auth-broker', 'Use dedicated auth broker instead of workspace SSH (for Daytona/sandboxed environments)')
|
|
3645
3646
|
.action(async (providerArg, options) => {
|
|
3646
3647
|
const cyan = (s) => `\x1b[36m${s}\x1b[0m`;
|
|
3647
3648
|
const green = (s) => `\x1b[32m${s}\x1b[0m`;
|
|
@@ -3675,6 +3676,7 @@ program
|
|
|
3675
3676
|
console.log(` ${cyan('npx agent-relay auth claude --workspace=<ID>')}`);
|
|
3676
3677
|
console.log(` ${cyan('npx agent-relay auth codex --workspace=<ID>')}`);
|
|
3677
3678
|
console.log(` ${cyan('npx agent-relay auth gemini --workspace=<ID>')}`);
|
|
3679
|
+
console.log(` ${cyan('npx agent-relay auth claude --use-auth-broker')} ${dim('(for Daytona/sandboxed environments)')}`);
|
|
3678
3680
|
console.log('');
|
|
3679
3681
|
console.log('Supported provider ids:');
|
|
3680
3682
|
console.log(` ${known.join(', ')}`);
|
|
@@ -3727,13 +3729,19 @@ program
|
|
|
3727
3729
|
const CLOUD_URL = (options.cloudUrl || process.env.AGENT_RELAY_CLOUD_URL || cloudConfig.cloudUrl || 'https://agent-relay.com')
|
|
3728
3730
|
.replace(/\/$/, '');
|
|
3729
3731
|
const requestedWorkspaceId = options.workspace || process.env.WORKSPACE_ID;
|
|
3732
|
+
const useAuthBroker = options.useAuthBroker ?? false;
|
|
3730
3733
|
console.log('');
|
|
3731
3734
|
console.log(cyan('═══════════════════════════════════════════════════'));
|
|
3732
3735
|
console.log(cyan(' Provider Authentication (SSH)'));
|
|
3733
3736
|
console.log(cyan('═══════════════════════════════════════════════════'));
|
|
3734
3737
|
console.log('');
|
|
3735
3738
|
console.log(`Provider: ${providerConfig.displayName} (${provider})`);
|
|
3736
|
-
|
|
3739
|
+
if (useAuthBroker) {
|
|
3740
|
+
console.log(`Target: ${cyan('Auth Broker')} (dedicated authentication instance)`);
|
|
3741
|
+
}
|
|
3742
|
+
else {
|
|
3743
|
+
console.log(`Workspace: ${requestedWorkspaceId ? `${requestedWorkspaceId.slice(0, 8)}...` : '(default)'}`);
|
|
3744
|
+
}
|
|
3737
3745
|
console.log(dim(`Cloud: ${CLOUD_URL}`));
|
|
3738
3746
|
console.log('');
|
|
3739
3747
|
// Step 1: Request SSH session info from cloud.
|
|
@@ -3751,6 +3759,7 @@ program
|
|
|
3751
3759
|
provider,
|
|
3752
3760
|
workspaceId: requestedWorkspaceId,
|
|
3753
3761
|
...(cliToken && { token: cliToken }),
|
|
3762
|
+
...(useAuthBroker && { useAuthBroker: true }),
|
|
3754
3763
|
}),
|
|
3755
3764
|
});
|
|
3756
3765
|
if (!response.ok) {
|
|
@@ -3792,7 +3801,10 @@ program
|
|
|
3792
3801
|
? `mkdir -p /data/users/${shellEscape(start.userId)} && HOME=/data/users/${shellEscape(start.userId)} PATH=/home/workspace/.local/bin:$PATH ${baseCommand}`
|
|
3793
3802
|
: `PATH=/home/workspace/.local/bin:$PATH ${baseCommand}`;
|
|
3794
3803
|
console.log(green('✓ SSH session created'));
|
|
3795
|
-
if (
|
|
3804
|
+
if (useAuthBroker) {
|
|
3805
|
+
console.log(`Target: ${cyan('Auth Broker')}`);
|
|
3806
|
+
}
|
|
3807
|
+
else if (start.workspaceName) {
|
|
3796
3808
|
console.log(`Workspace: ${cyan(start.workspaceName)} (${start.workspaceId.slice(0, 8)}...)`);
|
|
3797
3809
|
}
|
|
3798
3810
|
else {
|
|
@@ -3803,8 +3815,9 @@ program
|
|
|
3803
3815
|
console.log('');
|
|
3804
3816
|
const TUNNEL_PORT = 1455;
|
|
3805
3817
|
const ssh2 = await loadSSH2();
|
|
3818
|
+
const tunnelTarget = useAuthBroker ? 'auth-broker' : 'workspace';
|
|
3806
3819
|
console.log(yellow('Connecting via SSH...'));
|
|
3807
|
-
console.log(dim(` Tunnel: localhost:${TUNNEL_PORT} →
|
|
3820
|
+
console.log(dim(` Tunnel: localhost:${TUNNEL_PORT} → ${tunnelTarget}:${TUNNEL_PORT}`));
|
|
3808
3821
|
console.log(dim(` Running: ${remoteCommand}`));
|
|
3809
3822
|
console.log('');
|
|
3810
3823
|
// Get success/error patterns from CLI_AUTH_CONFIG for auto-detection
|
|
@@ -4151,8 +4164,14 @@ program
|
|
|
4151
4164
|
// Exit code 127 = command not found
|
|
4152
4165
|
if (execResult?.exitCode === 127) {
|
|
4153
4166
|
console.log('');
|
|
4154
|
-
|
|
4155
|
-
|
|
4167
|
+
if (useAuthBroker) {
|
|
4168
|
+
console.log(yellow(`The ${providerConfig.displayName} CLI ("${providerConfig.command}") is not installed on the auth broker.`));
|
|
4169
|
+
console.log(dim('This is unexpected. Please report this issue.'));
|
|
4170
|
+
}
|
|
4171
|
+
else {
|
|
4172
|
+
console.log(yellow(`The ${providerConfig.displayName} CLI ("${providerConfig.command}") is not installed on this workspace.`));
|
|
4173
|
+
console.log(dim('Ask your workspace administrator to install it, or check the workspace Dockerfile.'));
|
|
4174
|
+
}
|
|
4156
4175
|
}
|
|
4157
4176
|
process.exit(1);
|
|
4158
4177
|
}
|
|
@@ -4161,7 +4180,13 @@ program
|
|
|
4161
4180
|
console.log(green(' Authentication Complete!'));
|
|
4162
4181
|
console.log(green('═══════════════════════════════════════════════════'));
|
|
4163
4182
|
console.log('');
|
|
4164
|
-
|
|
4183
|
+
if (useAuthBroker) {
|
|
4184
|
+
console.log(`${providerConfig.displayName} credentials are now stored in your account.`);
|
|
4185
|
+
console.log(dim('Your Daytona/sandboxed workspaces will use these credentials automatically.'));
|
|
4186
|
+
}
|
|
4187
|
+
else {
|
|
4188
|
+
console.log(`${providerConfig.displayName} is now connected to workspace ${start.workspaceId.slice(0, 8)}...`);
|
|
4189
|
+
}
|
|
4165
4190
|
console.log('');
|
|
4166
4191
|
});
|
|
4167
4192
|
// ============================================================================
|
|
@@ -4820,5 +4845,97 @@ program
|
|
|
4820
4845
|
process.exit(1);
|
|
4821
4846
|
}
|
|
4822
4847
|
});
|
|
4848
|
+
// run - Execute a workflow file (YAML, TypeScript, or Python)
|
|
4849
|
+
import { runWorkflow } from '@agent-relay/broker-sdk/workflows';
|
|
4850
|
+
function logWorkflowEvent(event) {
|
|
4851
|
+
const prefix = event.type.startsWith('run:') ? '[run]' : '[step]';
|
|
4852
|
+
const name = 'stepName' in event ? `${event.stepName} ` : '';
|
|
4853
|
+
const status = event.type.split(':')[1];
|
|
4854
|
+
const detail = 'error' in event ? `: ${event.error}` : '';
|
|
4855
|
+
console.log(`${prefix} ${name}${status}${detail}`);
|
|
4856
|
+
}
|
|
4857
|
+
function runScriptFile(filePath) {
|
|
4858
|
+
const resolved = path.resolve(filePath);
|
|
4859
|
+
if (!fs.existsSync(resolved)) {
|
|
4860
|
+
throw new Error(`File not found: ${resolved}`);
|
|
4861
|
+
}
|
|
4862
|
+
const ext = path.extname(resolved).toLowerCase();
|
|
4863
|
+
if (ext === '.ts' || ext === '.tsx') {
|
|
4864
|
+
// Try tsx first, then ts-node, then npx tsx
|
|
4865
|
+
const runners = ['tsx', 'ts-node'];
|
|
4866
|
+
for (const runner of runners) {
|
|
4867
|
+
try {
|
|
4868
|
+
execFileSync(runner, [resolved], { stdio: 'inherit' });
|
|
4869
|
+
return;
|
|
4870
|
+
}
|
|
4871
|
+
catch (err) {
|
|
4872
|
+
// Only try next runner if this one isn't found (ENOENT)
|
|
4873
|
+
// Re-throw if the runner exists but the script failed
|
|
4874
|
+
if (err?.code !== 'ENOENT') {
|
|
4875
|
+
throw err;
|
|
4876
|
+
}
|
|
4877
|
+
}
|
|
4878
|
+
}
|
|
4879
|
+
// Fallback to npx tsx
|
|
4880
|
+
execFileSync('npx', ['tsx', resolved], { stdio: 'inherit' });
|
|
4881
|
+
}
|
|
4882
|
+
else if (ext === '.py') {
|
|
4883
|
+
// Try python3 first, then python
|
|
4884
|
+
const runners = ['python3', 'python'];
|
|
4885
|
+
for (const runner of runners) {
|
|
4886
|
+
try {
|
|
4887
|
+
execFileSync(runner, [resolved], { stdio: 'inherit' });
|
|
4888
|
+
return;
|
|
4889
|
+
}
|
|
4890
|
+
catch (err) {
|
|
4891
|
+
// Only try next runner if this one isn't found (ENOENT)
|
|
4892
|
+
// Re-throw if the runner exists but the script failed
|
|
4893
|
+
if (err?.code !== 'ENOENT') {
|
|
4894
|
+
throw err;
|
|
4895
|
+
}
|
|
4896
|
+
}
|
|
4897
|
+
}
|
|
4898
|
+
throw new Error('Python not found. Install Python 3.10+ to run .py workflow files.');
|
|
4899
|
+
}
|
|
4900
|
+
else {
|
|
4901
|
+
throw new Error(`Unsupported file type: ${ext}. Use .yaml, .yml, .ts, or .py`);
|
|
4902
|
+
}
|
|
4903
|
+
}
|
|
4904
|
+
program
|
|
4905
|
+
.command('run')
|
|
4906
|
+
.description('Run a workflow file (YAML, TypeScript, or Python)')
|
|
4907
|
+
.argument('<file>', 'Path to workflow file (.yaml, .yml, .ts, or .py)')
|
|
4908
|
+
.option('-w, --workflow <name>', 'Run a specific workflow by name (default: first, YAML only)')
|
|
4909
|
+
.action(async (filePath, options) => {
|
|
4910
|
+
try {
|
|
4911
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
4912
|
+
if (ext === '.yaml' || ext === '.yml') {
|
|
4913
|
+
console.log(`Running workflow from ${filePath}...`);
|
|
4914
|
+
const result = await runWorkflow(filePath, {
|
|
4915
|
+
workflow: options.workflow,
|
|
4916
|
+
onEvent: logWorkflowEvent,
|
|
4917
|
+
});
|
|
4918
|
+
if (result.status === 'completed') {
|
|
4919
|
+
console.log('\nWorkflow completed successfully.');
|
|
4920
|
+
}
|
|
4921
|
+
else {
|
|
4922
|
+
console.error(`\nWorkflow ${result.status}${result.error ? `: ${result.error}` : ''}`);
|
|
4923
|
+
process.exit(1);
|
|
4924
|
+
}
|
|
4925
|
+
}
|
|
4926
|
+
else if (ext === '.ts' || ext === '.tsx' || ext === '.py') {
|
|
4927
|
+
console.log(`Running workflow script ${filePath}...`);
|
|
4928
|
+
runScriptFile(filePath);
|
|
4929
|
+
}
|
|
4930
|
+
else {
|
|
4931
|
+
console.error(`Unsupported file type: ${ext}. Use .yaml, .yml, .ts, or .py`);
|
|
4932
|
+
process.exit(1);
|
|
4933
|
+
}
|
|
4934
|
+
}
|
|
4935
|
+
catch (err) {
|
|
4936
|
+
console.error(`Error: ${err.message}`);
|
|
4937
|
+
process.exit(1);
|
|
4938
|
+
}
|
|
4939
|
+
});
|
|
4823
4940
|
program.parse();
|
|
4824
4941
|
//# sourceMappingURL=index.js.map
|