agent-relay 3.1.17 → 3.1.19
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/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/dist/index.cjs +25 -8
- package/dist/src/cli/lib/core-maintenance.d.ts.map +1 -1
- package/dist/src/cli/lib/core-maintenance.js +52 -0
- package/dist/src/cli/lib/core-maintenance.js.map +1 -1
- package/install.sh +26 -0
- package/package.json +8 -8
- package/packages/acp-bridge/package.json +2 -2
- package/packages/config/package.json +1 -1
- package/packages/hooks/package.json +4 -4
- package/packages/memory/package.json +2 -2
- package/packages/openclaw/package.json +2 -2
- package/packages/policy/package.json +2 -2
- package/packages/sdk/dist/client.d.ts +2 -0
- package/packages/sdk/dist/client.d.ts.map +1 -1
- package/packages/sdk/dist/client.js +17 -3
- package/packages/sdk/dist/client.js.map +1 -1
- package/packages/sdk/dist/protocol.d.ts +4 -0
- package/packages/sdk/dist/protocol.d.ts.map +1 -1
- package/packages/sdk/dist/workflows/runner.d.ts.map +1 -1
- package/packages/sdk/dist/workflows/runner.js +14 -6
- package/packages/sdk/dist/workflows/runner.js.map +1 -1
- package/packages/sdk/package.json +2 -2
- package/packages/sdk/src/client.ts +17 -3
- package/packages/sdk/src/protocol.ts +4 -0
- package/packages/sdk/src/workflows/runner.ts +19 -11
- package/packages/sdk-py/pyproject.toml +1 -1
- 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 +2 -2
- package/relay-snippets/agent-relay-snippet.md +12 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-relay/sdk",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.19",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"typescript": "^5.7.3"
|
|
82
82
|
},
|
|
83
83
|
"dependencies": {
|
|
84
|
-
"@agent-relay/config": "3.1.
|
|
84
|
+
"@agent-relay/config": "3.1.19",
|
|
85
85
|
"@relaycast/sdk": "^0.4.0",
|
|
86
86
|
"yaml": "^2.7.0"
|
|
87
87
|
}
|
|
@@ -84,6 +84,8 @@ export interface SendMessageInput {
|
|
|
84
84
|
text: string;
|
|
85
85
|
from?: string;
|
|
86
86
|
threadId?: string;
|
|
87
|
+
workspaceId?: string;
|
|
88
|
+
workspaceAlias?: string;
|
|
87
89
|
priority?: number;
|
|
88
90
|
data?: Record<string, unknown>;
|
|
89
91
|
}
|
|
@@ -389,6 +391,8 @@ export class AgentRelayClient {
|
|
|
389
391
|
text: input.text,
|
|
390
392
|
from: input.from,
|
|
391
393
|
thread_id: input.threadId,
|
|
394
|
+
workspace_id: input.workspaceId,
|
|
395
|
+
workspace_alias: input.workspaceAlias,
|
|
392
396
|
priority: input.priority,
|
|
393
397
|
data: input.data,
|
|
394
398
|
});
|
|
@@ -743,8 +747,10 @@ function getLatestVersionSync(): string | null {
|
|
|
743
747
|
timeout: 15_000,
|
|
744
748
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
745
749
|
}).toString();
|
|
746
|
-
const match = result.match(/"tag_name"\s*:\s*"
|
|
747
|
-
|
|
750
|
+
const match = result.match(/"tag_name"\s*:\s*"([^"]+)"/);
|
|
751
|
+
if (!match?.[1]) return null;
|
|
752
|
+
// Strip tag prefixes: "openclaw-v3.1.18" -> "3.1.18", "v3.1.18" -> "3.1.18"
|
|
753
|
+
return match[1].replace(/^openclaw-/, '').replace(/^v/, '');
|
|
748
754
|
} catch {
|
|
749
755
|
return null;
|
|
750
756
|
}
|
|
@@ -784,8 +790,16 @@ function installBrokerBinary(): string {
|
|
|
784
790
|
});
|
|
785
791
|
fs.chmodSync(targetPath, 0o755);
|
|
786
792
|
|
|
787
|
-
// macOS: re-sign to avoid Gatekeeper issues
|
|
793
|
+
// macOS: strip quarantine attribute and re-sign to avoid Gatekeeper issues
|
|
788
794
|
if (process.platform === 'darwin') {
|
|
795
|
+
try {
|
|
796
|
+
execSync(`xattr -d com.apple.quarantine "${targetPath}" 2>/dev/null || true`, {
|
|
797
|
+
timeout: 10_000,
|
|
798
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
799
|
+
});
|
|
800
|
+
} catch {
|
|
801
|
+
// Non-fatal
|
|
802
|
+
}
|
|
789
803
|
try {
|
|
790
804
|
execSync(`codesign --force --sign - "${targetPath}"`, {
|
|
791
805
|
timeout: 10_000,
|
|
@@ -28,6 +28,8 @@ export interface AgentSpec {
|
|
|
28
28
|
export interface RelayDelivery {
|
|
29
29
|
delivery_id: string;
|
|
30
30
|
event_id: string;
|
|
31
|
+
workspace_id?: string;
|
|
32
|
+
workspace_alias?: string;
|
|
31
33
|
from: string;
|
|
32
34
|
target: string;
|
|
33
35
|
body: string;
|
|
@@ -58,6 +60,8 @@ export type SdkToBroker =
|
|
|
58
60
|
text: string;
|
|
59
61
|
from?: string;
|
|
60
62
|
thread_id?: string;
|
|
63
|
+
workspace_id?: string;
|
|
64
|
+
workspace_alias?: string;
|
|
61
65
|
priority?: number;
|
|
62
66
|
data?: Record<string, unknown>;
|
|
63
67
|
};
|
|
@@ -2550,18 +2550,26 @@ export class WorkflowRunner {
|
|
|
2550
2550
|
resolvedTask,
|
|
2551
2551
|
timeoutMs
|
|
2552
2552
|
);
|
|
2553
|
-
|
|
2554
|
-
const
|
|
2555
|
-
ownerStep,
|
|
2556
|
-
supervised.owner,
|
|
2557
|
-
supervisorTask,
|
|
2558
|
-
timeoutMs
|
|
2559
|
-
);
|
|
2560
|
-
const ownerElapsed = Date.now() - ownerStartTime;
|
|
2553
|
+
// Guard against unhandled rejection if owner fails before specialist settles
|
|
2554
|
+
const specialistSettled = specialistPromise.catch(() => undefined);
|
|
2561
2555
|
|
|
2562
|
-
|
|
2563
|
-
|
|
2564
|
-
|
|
2556
|
+
try {
|
|
2557
|
+
const ownerStartTime = Date.now();
|
|
2558
|
+
const ownerOutput = await this.executor.executeAgentStep(
|
|
2559
|
+
ownerStep,
|
|
2560
|
+
supervised.owner,
|
|
2561
|
+
supervisorTask,
|
|
2562
|
+
timeoutMs
|
|
2563
|
+
);
|
|
2564
|
+
const ownerElapsed = Date.now() - ownerStartTime;
|
|
2565
|
+
|
|
2566
|
+
this.assertOwnerCompletionMarker(step, ownerOutput, supervisorTask);
|
|
2567
|
+
const specialistOutput = await specialistPromise;
|
|
2568
|
+
return { specialistOutput, ownerOutput, ownerElapsed };
|
|
2569
|
+
} catch (error) {
|
|
2570
|
+
await specialistSettled;
|
|
2571
|
+
throw error;
|
|
2572
|
+
}
|
|
2565
2573
|
}
|
|
2566
2574
|
|
|
2567
2575
|
let workerHandle: Agent | undefined;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-relay/trajectory",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.19",
|
|
4
4
|
"description": "Trajectory integration utilities (trail/PDERO) for Relay",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"test:watch": "vitest"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@agent-relay/config": "3.1.
|
|
25
|
+
"@agent-relay/config": "3.1.19"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@types/node": "^22.19.3",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-relay/user-directory",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.19",
|
|
4
4
|
"description": "User directory service for agent-relay (per-user credential storage)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"test:watch": "vitest"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@agent-relay/utils": "3.1.
|
|
25
|
+
"@agent-relay/utils": "3.1.19"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@types/node": "^22.19.3",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-relay/utils",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.19",
|
|
4
4
|
"description": "Shared utilities for agent-relay: logging, name generation, command resolution, update checking",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/cjs/index.js",
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
"vitest": "^3.2.4"
|
|
113
113
|
},
|
|
114
114
|
"dependencies": {
|
|
115
|
-
"@agent-relay/config": "3.1.
|
|
115
|
+
"@agent-relay/config": "3.1.19",
|
|
116
116
|
"compare-versions": "^6.1.1"
|
|
117
117
|
},
|
|
118
118
|
"publishConfig": {
|
|
@@ -108,6 +108,18 @@ relay_send(to: "Lead", message: "ACK: Starting on the task.")
|
|
|
108
108
|
| Local (same project) | `relay_send(to: "Lead", ...)` | `relay_send(to: "project:lead", ...)` |
|
|
109
109
|
| Bridge (cross-project) | `relay_send(to: "frontend:Designer", ...)` | N/A |
|
|
110
110
|
|
|
111
|
+
## Multi-Workspace
|
|
112
|
+
|
|
113
|
+
When connected to multiple workspaces, messages include workspace context:
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
Relay message from Alice [my-team / abc123]: Hello!
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
- Messages are scoped to the originating workspace
|
|
120
|
+
- Reply within the same workspace context shown in the message header
|
|
121
|
+
- Use `relay_status()` to see which workspaces are connected
|
|
122
|
+
|
|
111
123
|
## Checking Status
|
|
112
124
|
|
|
113
125
|
```
|