@masons/agent-network 0.4.26 → 0.5.0
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/dist/cli-setup.d.ts +21 -5
- package/dist/cli-setup.d.ts.map +1 -1
- package/dist/cli-setup.js +272 -92
- package/dist/connector-client.d.ts.map +1 -1
- package/dist/connector-client.js +44 -3
- package/dist/platform-client.d.ts +84 -74
- package/dist/platform-client.d.ts.map +1 -1
- package/dist/platform-client.js +77 -108
- package/dist/plugin.d.ts +5 -0
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +23 -5
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +52 -161
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/openclaw.plugin.json +7 -2
- package/package.json +1 -1
package/dist/tools.js
CHANGED
|
@@ -20,10 +20,10 @@
|
|
|
20
20
|
import { tmpdir } from "node:os";
|
|
21
21
|
import { Type } from "@sinclair/typebox";
|
|
22
22
|
import { getOwnerPassportAddress } from "./channel.js";
|
|
23
|
-
import { clearTargetHandle, getDmScope, getOpenClawHome, getPendingTarget, isProfileNeeded, markProfileComplete,
|
|
23
|
+
import { clearTargetHandle, getDmScope, getOpenClawHome, getPendingTarget, isProfileNeeded, markProfileComplete, removeIdentityLinks, requireApiKey, requireConversationManager, requirePlatformConfig, writeIdentityLinks, } from "./config.js";
|
|
24
24
|
import { getOwnerHandle } from "./environment-context.js";
|
|
25
25
|
import { ownerNotesQueue } from "./owner-notes.js";
|
|
26
|
-
import { acceptRequest, declineRequest, getConnectionStatus,
|
|
26
|
+
import { acceptRequest, declineRequest, getConnectionStatus, listConnections, listRequests, PlatformApiError, requestConnection, updateProfile, } from "./platform-client.js";
|
|
27
27
|
import { sentMessageBuffer } from "./sent-message-buffer.js";
|
|
28
28
|
import { getCurrentTurnChannelId, getCurrentTurnIsOwnerNonConsuming, } from "./turn-context.js";
|
|
29
29
|
import { fetchLatestVersion, getPluginVersion, getUpdateInfo, } from "./update-check.js";
|
|
@@ -49,7 +49,6 @@ const SEMVER_RE = /^\d+\.\d+\.\d+$/;
|
|
|
49
49
|
// ---------------------------------------------------------------------------
|
|
50
50
|
// Module-level state (not persisted across process restarts)
|
|
51
51
|
// ---------------------------------------------------------------------------
|
|
52
|
-
let storedSetupToken = null;
|
|
53
52
|
/**
|
|
54
53
|
* Tracks the version we already tried to upgrade to this session.
|
|
55
54
|
* null = no attempt yet. Set to the target version string on the first
|
|
@@ -59,7 +58,6 @@ let storedSetupToken = null;
|
|
|
59
58
|
let upgradeAttemptedVersion = null;
|
|
60
59
|
/** @internal Reset module state for test isolation. */
|
|
61
60
|
export function _resetToolsForTesting() {
|
|
62
|
-
storedSetupToken = null;
|
|
63
61
|
updateNoticeShown = false;
|
|
64
62
|
upgradeAttemptedVersion = null;
|
|
65
63
|
}
|
|
@@ -100,30 +98,6 @@ function maybeAppendUpdateNotice(result) {
|
|
|
100
98
|
function withUpdateNotice(fn) {
|
|
101
99
|
return async (id, params) => maybeAppendUpdateNotice(await fn(id, params));
|
|
102
100
|
}
|
|
103
|
-
function formatSetupInit(code, uri, expiresIn) {
|
|
104
|
-
const minutes = Math.floor(expiresIn / 60);
|
|
105
|
-
return [
|
|
106
|
-
`Authorization link: ${uri}`,
|
|
107
|
-
`Backup code (if the link doesn't pre-fill): ${code}`,
|
|
108
|
-
`Expires in ${minutes} minutes.`,
|
|
109
|
-
].join("\n");
|
|
110
|
-
}
|
|
111
|
-
function formatOnboardResult(handle, address, isReconnect) {
|
|
112
|
-
if (isReconnect) {
|
|
113
|
-
return [
|
|
114
|
-
`Reconnected to existing agent: ${handle}`,
|
|
115
|
-
`Address: ${address}`,
|
|
116
|
-
"Proceed with post-setup steps.",
|
|
117
|
-
].join("\n");
|
|
118
|
-
}
|
|
119
|
-
return [
|
|
120
|
-
`Agent created successfully!`,
|
|
121
|
-
`Handle: ${handle}`,
|
|
122
|
-
`Address: ${address}`,
|
|
123
|
-
"",
|
|
124
|
-
"IMPORTANT: This agent's profile is empty. Before proceeding with post-setup steps, use masons_update_profile to generate and set up the agent's profile. This helps other agents understand what this agent does and enables better matchmaking.",
|
|
125
|
-
].join("\n");
|
|
126
|
-
}
|
|
127
101
|
function formatConnectionResult(requestIds, status) {
|
|
128
102
|
if (requestIds.length === 0) {
|
|
129
103
|
return "Already connected or request already pending — no new request needed.";
|
|
@@ -142,137 +116,54 @@ function formatConnectionResult(requestIds, status) {
|
|
|
142
116
|
* `startAccount()` hasn't run).
|
|
143
117
|
*/
|
|
144
118
|
export function registerTools(api) {
|
|
145
|
-
// ---
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
//
|
|
119
|
+
// --- masons_setup ---------------------------------------------------------
|
|
120
|
+
// Lightweight nudge for the no-credentials state (#1264). The legacy
|
|
121
|
+
// `masons_setup_init / check / complete` trio (removed in 0.5.0) ran the
|
|
122
|
+
// device flow inside the LLM; that's not viable for an OAuth Device
|
|
123
|
+
// Authorization Grant flow which requires terminal I/O (the user enters a
|
|
124
|
+
// user_code in their browser, returns to the terminal to pick or create
|
|
125
|
+
// an agent). This tool's only job is to surface the CLI command and let
|
|
126
|
+
// the user run it.
|
|
127
|
+
//
|
|
128
|
+
// Layer B's `before_prompt_build` hook in plugin.ts already injects this
|
|
129
|
+
// guidance for the no-credentials state — this tool is here so the LLM
|
|
130
|
+
// can reach it explicitly when the user asks "how do I set this up?"
|
|
131
|
+
// (e.g., as a fallback after a failed tool call surfaces "no credentials").
|
|
158
132
|
api.registerTool({
|
|
159
|
-
name: "
|
|
160
|
-
description:
|
|
133
|
+
name: "masons_setup",
|
|
134
|
+
description: [
|
|
135
|
+
"Returns instructions for connecting OpenClaw to the agent network.",
|
|
136
|
+
"Use when the user asks how to set up Agent Network, when other Agent",
|
|
137
|
+
"Network tools fail with a 'no credentials' / 'no API key' error, or",
|
|
138
|
+
"when the user wants to switch which agent OpenClaw is driving.",
|
|
139
|
+
"",
|
|
140
|
+
"This tool does NOT perform setup itself — it surfaces the terminal",
|
|
141
|
+
"command. The user must run it from their shell because the device",
|
|
142
|
+
"authorization flow requires browser interaction and terminal prompts.",
|
|
143
|
+
].join("\n"),
|
|
161
144
|
parameters: Type.Object({}),
|
|
162
|
-
execute:
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
api.registerTool({
|
|
185
|
-
name: "masons_setup_complete",
|
|
186
|
-
description: "Complete agent network setup. Reconnects to the agent selected in browser, or creates a new agent identity if none was selected.",
|
|
187
|
-
parameters: Type.Object({
|
|
188
|
-
handle: Type.Optional(Type.String({
|
|
189
|
-
description: "Handle for a new agent (3-15 chars, lowercase letters, numbers, hyphens, underscores). Only needed when creating a new agent — not needed if the user selected an existing agent in the browser.",
|
|
190
|
-
})),
|
|
191
|
-
name: Type.Optional(Type.String({ description: "Display name for the agent" })),
|
|
192
|
-
}),
|
|
193
|
-
execute: withUpdateNotice(async (_id, params) => {
|
|
194
|
-
const cfg = requirePlatformConfig();
|
|
195
|
-
if (!storedSetupToken) {
|
|
196
|
-
throw new Error("No setup in progress. Use masons_setup_init first.");
|
|
197
|
-
}
|
|
198
|
-
// Poll to get authorization result (includes agent_id from browser selection)
|
|
199
|
-
let pollResult;
|
|
200
|
-
try {
|
|
201
|
-
pollResult = await pollSetup(cfg, storedSetupToken);
|
|
202
|
-
}
|
|
203
|
-
catch (err) {
|
|
204
|
-
if (err instanceof SetupPendingError) {
|
|
205
|
-
return textResult("Not yet authorized. Ask the user if they completed authorization in their browser.");
|
|
206
|
-
}
|
|
207
|
-
if (err instanceof SetupExpiredError) {
|
|
208
|
-
storedSetupToken = null;
|
|
209
|
-
return textResult("Setup session expired. Use masons_setup_init to get a new code.");
|
|
210
|
-
}
|
|
211
|
-
throw err;
|
|
212
|
-
}
|
|
213
|
-
const agentId = pollResult.agent_id;
|
|
214
|
-
let creds;
|
|
215
|
-
let isReconnect = false;
|
|
216
|
-
if (agentId) {
|
|
217
|
-
// Browser selected an existing agent — reconnect directly
|
|
218
|
-
try {
|
|
219
|
-
creds = await reconnect(cfg, storedSetupToken, agentId);
|
|
220
|
-
isReconnect = true;
|
|
221
|
-
}
|
|
222
|
-
catch (err) {
|
|
223
|
-
if (err instanceof PlatformApiError) {
|
|
224
|
-
if (err.status === 404) {
|
|
225
|
-
storedSetupToken = null;
|
|
226
|
-
return textResult("The selected agent was not found — it may have been deleted. Use masons_setup_init to restart the setup process.");
|
|
227
|
-
}
|
|
228
|
-
if (err.status === 403) {
|
|
229
|
-
storedSetupToken = null;
|
|
230
|
-
return textResult("The selected agent doesn't match the authorized session. This may indicate a configuration issue. Use masons_setup_init to restart the setup process.");
|
|
231
|
-
}
|
|
232
|
-
if (err.status === 401) {
|
|
233
|
-
storedSetupToken = null;
|
|
234
|
-
return textResult("Setup session expired. Use masons_setup_init to get a new code.");
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
throw err;
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
else {
|
|
241
|
-
// No agent selected (user chose "create new" or had 0 agents) — onboard
|
|
242
|
-
const handle = params.handle;
|
|
243
|
-
if (!handle) {
|
|
244
|
-
return textResult("No existing agent was selected. Please provide a handle to create a new agent. Call masons_setup_complete with a handle parameter.");
|
|
245
|
-
}
|
|
246
|
-
try {
|
|
247
|
-
creds = await onboard(cfg, storedSetupToken, {
|
|
248
|
-
handle,
|
|
249
|
-
name: params.name,
|
|
250
|
-
});
|
|
251
|
-
}
|
|
252
|
-
catch (err) {
|
|
253
|
-
if (err instanceof PlatformApiError && err.code === "handle_taken") {
|
|
254
|
-
return textResult(`The handle "${handle}" is already taken. Ask the user to choose a different one.`);
|
|
255
|
-
}
|
|
256
|
-
if (err instanceof PlatformApiError &&
|
|
257
|
-
err.code === "invalid_handle") {
|
|
258
|
-
return textResult(`The handle "${handle}" is not valid. It must be 3-15 lowercase letters, numbers, hyphens, or underscores.`);
|
|
259
|
-
}
|
|
260
|
-
if (err instanceof PlatformApiError && err.status === 401) {
|
|
261
|
-
storedSetupToken = null;
|
|
262
|
-
return textResult("Setup session expired. Use masons_setup_init to get a new code.");
|
|
263
|
-
}
|
|
264
|
-
throw err;
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
// Write credentials to config file — signal to Host
|
|
268
|
-
await writeCredentials({ connectorUrl: creds.connectorUrl, token: creds.token }, cfg.apiHost);
|
|
269
|
-
// New agent → mark that profile completion is needed
|
|
270
|
-
if (!isReconnect) {
|
|
271
|
-
await markProfileNeeded();
|
|
272
|
-
}
|
|
273
|
-
// Clear setup token — flow is complete
|
|
274
|
-
storedSetupToken = null;
|
|
275
|
-
return textResult(formatOnboardResult(creds.handle, creds.address, isReconnect));
|
|
145
|
+
execute: async () => ({
|
|
146
|
+
content: [
|
|
147
|
+
{
|
|
148
|
+
type: "text",
|
|
149
|
+
text: [
|
|
150
|
+
"Run this in the terminal where OpenClaw is installed:",
|
|
151
|
+
"",
|
|
152
|
+
" openclaw channels login --channel agent-network",
|
|
153
|
+
"",
|
|
154
|
+
"It will:",
|
|
155
|
+
" 1. Display a short setup code and a verification URL.",
|
|
156
|
+
" 2. Open the URL in your browser, sign in to MASONS, approve.",
|
|
157
|
+
" 3. Return to the terminal — pick an existing agent or create a new one.",
|
|
158
|
+
" 4. Persist credentials to openclaw.json. OpenClaw reloads the channel.",
|
|
159
|
+
"",
|
|
160
|
+
"Note (single-Runtime semantic): if you re-run this with another",
|
|
161
|
+
"agent on a different machine, that agent's API key is rotated and",
|
|
162
|
+
"any previously-connected OpenClaw is disconnected. Only one",
|
|
163
|
+
"Runtime drives an agent at a time.",
|
|
164
|
+
].join("\n"),
|
|
165
|
+
},
|
|
166
|
+
],
|
|
276
167
|
}),
|
|
277
168
|
});
|
|
278
169
|
// --- masons_update_profile ------------------------------------------------
|
|
@@ -333,7 +224,7 @@ export function registerTools(api) {
|
|
|
333
224
|
catch (err) {
|
|
334
225
|
if (err instanceof PlatformApiError) {
|
|
335
226
|
if (err.status === 401) {
|
|
336
|
-
return textResult("Authentication failed. The API key may be invalid.
|
|
227
|
+
return textResult("Authentication failed. The API key may be invalid. Ask the user to re-authorize at masons.ai/device.");
|
|
337
228
|
}
|
|
338
229
|
if (err.status === 422) {
|
|
339
230
|
return textResult(`Validation error: ${err.message}`);
|
|
@@ -414,7 +305,7 @@ export function registerTools(api) {
|
|
|
414
305
|
return textResult(`Agent @${targetHandle} not found. Check the handle and try again.`);
|
|
415
306
|
}
|
|
416
307
|
if (err.status === 401) {
|
|
417
|
-
return textResult("Authentication failed. The API key may be invalid.
|
|
308
|
+
return textResult("Authentication failed. The API key may be invalid. Ask the user to re-authorize at masons.ai/device.");
|
|
418
309
|
}
|
|
419
310
|
return textResult(`Connection request failed: ${err.message}`);
|
|
420
311
|
}
|
|
@@ -455,7 +346,7 @@ export function registerTools(api) {
|
|
|
455
346
|
catch (err) {
|
|
456
347
|
if (err instanceof PlatformApiError) {
|
|
457
348
|
if (err.status === 401) {
|
|
458
|
-
return textResult("Authentication failed. The API key may be invalid.
|
|
349
|
+
return textResult("Authentication failed. The API key may be invalid. Ask the user to re-authorize at masons.ai/device.");
|
|
459
350
|
}
|
|
460
351
|
return textResult(`Failed to list requests: ${err.message}`);
|
|
461
352
|
}
|
|
@@ -576,7 +467,7 @@ export function registerTools(api) {
|
|
|
576
467
|
catch (err) {
|
|
577
468
|
if (err instanceof PlatformApiError) {
|
|
578
469
|
if (err.status === 401) {
|
|
579
|
-
return textResult("Authentication failed. The API key may be invalid.
|
|
470
|
+
return textResult("Authentication failed. The API key may be invalid. Ask the user to re-authorize at masons.ai/device.");
|
|
580
471
|
}
|
|
581
472
|
return textResult(`Failed to list connections: ${err.message}`);
|
|
582
473
|
}
|
package/dist/types.d.ts
CHANGED
|
@@ -59,7 +59,7 @@ export interface RegisterAckEvent {
|
|
|
59
59
|
export interface SendAckEvent {
|
|
60
60
|
event: "SEND_ACK";
|
|
61
61
|
messageId: string;
|
|
62
|
-
status: "delivered" | "stored"
|
|
62
|
+
status: "delivered" | "stored";
|
|
63
63
|
}
|
|
64
64
|
/** Message received from a routable address. */
|
|
65
65
|
export interface AddressedMessageEvent {
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAC9C,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAQ1C,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;8EAE0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qDAAqD;AACrD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,qDAAqD;AACrD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,QAAQ,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,iEAAiE;AACjE,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAID,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,mFAAmF;IACnF,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,mFAAmF;IACnF,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD;gCAC4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
package/dist/version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,eAAO,MAAM,cAAc,UAAU,CAAC"}
|
package/dist/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** Plugin version — must match package.json. Validated by prepublishOnly. */
|
|
2
|
-
export const PLUGIN_VERSION = "0.
|
|
2
|
+
export const PLUGIN_VERSION = "0.5.0";
|
package/openclaw.plugin.json
CHANGED
|
@@ -8,8 +8,13 @@
|
|
|
8
8
|
"properties": {
|
|
9
9
|
"apiHost": {
|
|
10
10
|
"type": "string",
|
|
11
|
-
"description": "MASONS
|
|
12
|
-
"default": "preview-
|
|
11
|
+
"description": "MASONS runtime API host",
|
|
12
|
+
"default": "preview-connectorapi.masons.ai"
|
|
13
|
+
},
|
|
14
|
+
"idpBaseUrl": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"description": "Better Auth IdP base URL (used by `openclaw channels login --channel agent-network` for the OAuth 2.0 Device Authorization Grant flow). Defaults to the preview environment. TODO: flip to https://masons.ai (or api.masons.ai) when W8 consolidation lands.",
|
|
17
|
+
"default": "https://preview.masons.ai"
|
|
13
18
|
},
|
|
14
19
|
"updateCheck": {
|
|
15
20
|
"type": "boolean",
|
package/package.json
CHANGED