agent-relay 3.1.0 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/bin/agent-relay-broker-linux-x64 +0 -0
  2. package/package.json +9 -9
  3. package/packages/acp-bridge/package.json +2 -2
  4. package/packages/config/package.json +1 -1
  5. package/packages/hooks/package.json +4 -4
  6. package/packages/memory/package.json +2 -2
  7. package/packages/openclaw/README.md +78 -0
  8. package/packages/openclaw/bin/relay-openclaw.mjs +2 -0
  9. package/packages/openclaw/bridge/bridge.mjs +305 -0
  10. package/packages/openclaw/dist/__tests__/gateway-threads.test.d.ts +2 -0
  11. package/packages/openclaw/dist/__tests__/gateway-threads.test.d.ts.map +1 -0
  12. package/packages/openclaw/dist/__tests__/gateway-threads.test.js +320 -0
  13. package/packages/openclaw/dist/__tests__/gateway-threads.test.js.map +1 -0
  14. package/packages/openclaw/dist/__tests__/naming.test.d.ts +2 -0
  15. package/packages/openclaw/dist/__tests__/naming.test.d.ts.map +1 -0
  16. package/packages/openclaw/dist/__tests__/naming.test.js +21 -0
  17. package/packages/openclaw/dist/__tests__/naming.test.js.map +1 -0
  18. package/packages/openclaw/dist/__tests__/spawn-manager.test.d.ts +2 -0
  19. package/packages/openclaw/dist/__tests__/spawn-manager.test.d.ts.map +1 -0
  20. package/packages/openclaw/dist/__tests__/spawn-manager.test.js +126 -0
  21. package/packages/openclaw/dist/__tests__/spawn-manager.test.js.map +1 -0
  22. package/packages/openclaw/dist/auth/converter.d.ts +28 -0
  23. package/packages/openclaw/dist/auth/converter.d.ts.map +1 -0
  24. package/packages/openclaw/dist/auth/converter.js +64 -0
  25. package/packages/openclaw/dist/auth/converter.js.map +1 -0
  26. package/packages/openclaw/dist/cli.d.ts +2 -0
  27. package/packages/openclaw/dist/cli.d.ts.map +1 -0
  28. package/packages/openclaw/dist/cli.js +230 -0
  29. package/packages/openclaw/dist/cli.js.map +1 -0
  30. package/packages/openclaw/dist/config.d.ts +27 -0
  31. package/packages/openclaw/dist/config.d.ts.map +1 -0
  32. package/packages/openclaw/dist/config.js +97 -0
  33. package/packages/openclaw/dist/config.js.map +1 -0
  34. package/packages/openclaw/dist/control.d.ts +22 -0
  35. package/packages/openclaw/dist/control.d.ts.map +1 -0
  36. package/packages/openclaw/dist/control.js +58 -0
  37. package/packages/openclaw/dist/control.js.map +1 -0
  38. package/packages/openclaw/dist/gateway.d.ts +71 -0
  39. package/packages/openclaw/dist/gateway.d.ts.map +1 -0
  40. package/packages/openclaw/dist/gateway.js +785 -0
  41. package/packages/openclaw/dist/gateway.js.map +1 -0
  42. package/packages/openclaw/dist/identity/contract.d.ts +11 -0
  43. package/packages/openclaw/dist/identity/contract.d.ts.map +1 -0
  44. package/packages/openclaw/dist/identity/contract.js +40 -0
  45. package/packages/openclaw/dist/identity/contract.js.map +1 -0
  46. package/packages/openclaw/dist/identity/files.d.ts +33 -0
  47. package/packages/openclaw/dist/identity/files.d.ts.map +1 -0
  48. package/packages/openclaw/dist/identity/files.js +145 -0
  49. package/packages/openclaw/dist/identity/files.js.map +1 -0
  50. package/packages/openclaw/dist/identity/model.d.ts +11 -0
  51. package/packages/openclaw/dist/identity/model.d.ts.map +1 -0
  52. package/packages/openclaw/dist/identity/model.js +28 -0
  53. package/packages/openclaw/dist/identity/model.js.map +1 -0
  54. package/packages/openclaw/dist/identity/naming.d.ts +5 -0
  55. package/packages/openclaw/dist/identity/naming.d.ts.map +1 -0
  56. package/packages/openclaw/dist/identity/naming.js +7 -0
  57. package/packages/openclaw/dist/identity/naming.js.map +1 -0
  58. package/packages/openclaw/dist/index.d.ts +20 -0
  59. package/packages/openclaw/dist/index.d.ts.map +1 -0
  60. package/packages/openclaw/dist/index.js +27 -0
  61. package/packages/openclaw/dist/index.js.map +1 -0
  62. package/packages/openclaw/dist/inject.d.ts +14 -0
  63. package/packages/openclaw/dist/inject.d.ts.map +1 -0
  64. package/packages/openclaw/dist/inject.js +66 -0
  65. package/packages/openclaw/dist/inject.js.map +1 -0
  66. package/packages/openclaw/dist/mcp/server.d.ts +8 -0
  67. package/packages/openclaw/dist/mcp/server.d.ts.map +1 -0
  68. package/packages/openclaw/dist/mcp/server.js +105 -0
  69. package/packages/openclaw/dist/mcp/server.js.map +1 -0
  70. package/packages/openclaw/dist/mcp/tools.d.ts +17 -0
  71. package/packages/openclaw/dist/mcp/tools.d.ts.map +1 -0
  72. package/packages/openclaw/dist/mcp/tools.js +145 -0
  73. package/packages/openclaw/dist/mcp/tools.js.map +1 -0
  74. package/packages/openclaw/dist/runtime/openclaw-config.d.ts +20 -0
  75. package/packages/openclaw/dist/runtime/openclaw-config.d.ts.map +1 -0
  76. package/packages/openclaw/dist/runtime/openclaw-config.js +50 -0
  77. package/packages/openclaw/dist/runtime/openclaw-config.js.map +1 -0
  78. package/packages/openclaw/dist/runtime/patch.d.ts +24 -0
  79. package/packages/openclaw/dist/runtime/patch.d.ts.map +1 -0
  80. package/packages/openclaw/dist/runtime/patch.js +92 -0
  81. package/packages/openclaw/dist/runtime/patch.js.map +1 -0
  82. package/packages/openclaw/dist/runtime/setup.d.ts +26 -0
  83. package/packages/openclaw/dist/runtime/setup.d.ts.map +1 -0
  84. package/packages/openclaw/dist/runtime/setup.js +58 -0
  85. package/packages/openclaw/dist/runtime/setup.js.map +1 -0
  86. package/packages/openclaw/dist/setup.d.ts +29 -0
  87. package/packages/openclaw/dist/setup.d.ts.map +1 -0
  88. package/packages/openclaw/dist/setup.js +300 -0
  89. package/packages/openclaw/dist/setup.js.map +1 -0
  90. package/packages/openclaw/dist/spawn/docker.d.ts +58 -0
  91. package/packages/openclaw/dist/spawn/docker.d.ts.map +1 -0
  92. package/packages/openclaw/dist/spawn/docker.js +222 -0
  93. package/packages/openclaw/dist/spawn/docker.js.map +1 -0
  94. package/packages/openclaw/dist/spawn/manager.d.ts +45 -0
  95. package/packages/openclaw/dist/spawn/manager.d.ts.map +1 -0
  96. package/packages/openclaw/dist/spawn/manager.js +140 -0
  97. package/packages/openclaw/dist/spawn/manager.js.map +1 -0
  98. package/packages/openclaw/dist/spawn/process.d.ts +16 -0
  99. package/packages/openclaw/dist/spawn/process.d.ts.map +1 -0
  100. package/packages/openclaw/dist/spawn/process.js +241 -0
  101. package/packages/openclaw/dist/spawn/process.js.map +1 -0
  102. package/packages/openclaw/dist/spawn/types.d.ts +42 -0
  103. package/packages/openclaw/dist/spawn/types.d.ts.map +1 -0
  104. package/packages/openclaw/dist/spawn/types.js +2 -0
  105. package/packages/openclaw/dist/spawn/types.js.map +1 -0
  106. package/packages/openclaw/dist/types.d.ts +37 -0
  107. package/packages/openclaw/dist/types.d.ts.map +1 -0
  108. package/packages/openclaw/dist/types.js +2 -0
  109. package/packages/openclaw/dist/types.js.map +1 -0
  110. package/packages/openclaw/package.json +63 -0
  111. package/packages/openclaw/skill/SKILL.md +194 -0
  112. package/packages/openclaw/src/__tests__/gateway-threads.test.ts +384 -0
  113. package/packages/openclaw/src/__tests__/naming.test.ts +24 -0
  114. package/packages/openclaw/src/__tests__/spawn-manager.test.ts +152 -0
  115. package/packages/openclaw/src/auth/converter.ts +90 -0
  116. package/packages/openclaw/src/cli.ts +269 -0
  117. package/packages/openclaw/src/config.ts +124 -0
  118. package/packages/openclaw/src/control.ts +100 -0
  119. package/packages/openclaw/src/gateway.ts +941 -0
  120. package/packages/openclaw/src/identity/contract.ts +44 -0
  121. package/packages/openclaw/src/identity/files.ts +198 -0
  122. package/packages/openclaw/src/identity/model.ts +27 -0
  123. package/packages/openclaw/src/identity/naming.ts +6 -0
  124. package/packages/openclaw/src/index.ts +59 -0
  125. package/packages/openclaw/src/inject.ts +77 -0
  126. package/packages/openclaw/src/mcp/server.ts +121 -0
  127. package/packages/openclaw/src/mcp/tools.ts +174 -0
  128. package/packages/openclaw/src/runtime/openclaw-config.ts +64 -0
  129. package/packages/openclaw/src/runtime/patch.ts +103 -0
  130. package/packages/openclaw/src/runtime/setup.ts +89 -0
  131. package/packages/openclaw/src/setup.ts +336 -0
  132. package/packages/openclaw/src/spawn/docker.ts +261 -0
  133. package/packages/openclaw/src/spawn/manager.ts +181 -0
  134. package/packages/openclaw/src/spawn/process.ts +272 -0
  135. package/packages/openclaw/src/spawn/types.ts +43 -0
  136. package/packages/openclaw/src/types.ts +38 -0
  137. package/packages/openclaw/templates/SOUL.md.template +34 -0
  138. package/packages/openclaw/tsconfig.json +12 -0
  139. package/packages/policy/package.json +2 -2
  140. package/packages/sdk/package.json +2 -2
  141. package/packages/sdk-py/pyproject.toml +1 -1
  142. package/packages/telemetry/package.json +1 -1
  143. package/packages/trajectory/package.json +2 -2
  144. package/packages/user-directory/package.json +2 -2
  145. package/packages/utils/package.json +2 -2
  146. package/bin/agent-relay-broker-darwin-arm64 +0 -0
  147. package/bin/agent-relay-broker-darwin-x64 +0 -0
  148. package/bin/agent-relay-broker-linux-arm64 +0 -0
@@ -0,0 +1,100 @@
1
+ export interface ClawRunnerControlConfig {
2
+ baseUrl: string;
3
+ token: string;
4
+ }
5
+
6
+ export interface SpawnOpenClawInput {
7
+ workspaceId: string;
8
+ name: string;
9
+ role?: string;
10
+ model?: string;
11
+ channels?: string[];
12
+ systemPrompt?: string;
13
+ idempotencyKey?: string;
14
+ }
15
+
16
+ export interface ReleaseOpenClawInput {
17
+ workspaceId: string;
18
+ agentName: string;
19
+ reason?: string;
20
+ }
21
+
22
+ function trimSlash(value: string): string {
23
+ return value.endsWith('/') ? value.slice(0, -1) : value;
24
+ }
25
+
26
+ function resolveConfig(config?: Partial<ClawRunnerControlConfig>): ClawRunnerControlConfig {
27
+ const baseUrl = (config?.baseUrl ?? process.env.CLAWRUNNER_API_BASE_URL ?? '').trim();
28
+ const token = (config?.token ?? process.env.CLAWRUNNER_AGENT_TOKEN ?? '').trim();
29
+
30
+ if (!baseUrl) {
31
+ throw new Error('CLAWRUNNER_API_BASE_URL is required');
32
+ }
33
+ if (!token) {
34
+ throw new Error('CLAWRUNNER_AGENT_TOKEN is required');
35
+ }
36
+
37
+ return {
38
+ baseUrl: trimSlash(baseUrl),
39
+ token,
40
+ };
41
+ }
42
+
43
+ async function callApi<T>(
44
+ path: string,
45
+ method: 'GET' | 'POST',
46
+ config?: Partial<ClawRunnerControlConfig>,
47
+ body?: unknown,
48
+ ): Promise<T> {
49
+ const resolved = resolveConfig(config);
50
+ const response = await fetch(`${resolved.baseUrl}${path}`, {
51
+ method,
52
+ headers: {
53
+ Authorization: `Bearer ${resolved.token}`,
54
+ 'Content-Type': 'application/json',
55
+ },
56
+ body: body === undefined ? undefined : JSON.stringify(body),
57
+ });
58
+
59
+ const text = await response.text();
60
+ const json = text ? JSON.parse(text) : null;
61
+ if (!response.ok) {
62
+ const msg = (json && typeof json.error === 'string') ? json.error : `HTTP ${response.status}`;
63
+ throw new Error(`ClawRunner control API error: ${msg}`);
64
+ }
65
+ return json as T;
66
+ }
67
+
68
+ export async function spawnOpenClaw(
69
+ input: SpawnOpenClawInput,
70
+ config?: Partial<ClawRunnerControlConfig>,
71
+ ): Promise<unknown> {
72
+ return callApi('/api/agents/spawn', 'POST', config, {
73
+ workspaceId: input.workspaceId,
74
+ name: input.name,
75
+ role: input.role,
76
+ model: input.model,
77
+ channels: input.channels,
78
+ systemPrompt: input.systemPrompt,
79
+ idempotencyKey: input.idempotencyKey,
80
+ });
81
+ }
82
+
83
+ export async function listOpenClaws(
84
+ workspaceId: string,
85
+ config?: Partial<ClawRunnerControlConfig>,
86
+ ): Promise<unknown> {
87
+ const query = new URLSearchParams({ workspaceId }).toString();
88
+ return callApi(`/api/agents?${query}`, 'GET', config);
89
+ }
90
+
91
+ export async function releaseOpenClaw(
92
+ input: ReleaseOpenClawInput,
93
+ config?: Partial<ClawRunnerControlConfig>,
94
+ ): Promise<unknown> {
95
+ const path = `/api/agents/${encodeURIComponent(input.agentName)}/release`;
96
+ return callApi(path, 'POST', config, {
97
+ workspaceId: input.workspaceId,
98
+ reason: input.reason,
99
+ });
100
+ }