agentbnb 9.1.0 → 9.2.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/README.md +29 -4
- package/dist/{card-VVT3XBOI.js → card-U2HQRPYN.js} +2 -1
- package/dist/{card-NQHAGTQQ.js → card-VVXNKHDX.js} +2 -1
- package/dist/{chunk-3Y76PHEY.js → chunk-53Q2HHHH.js} +154 -88
- package/dist/{chunk-5CC6O6SO.js → chunk-AA25Z6FW.js} +1 -1
- package/dist/{chunk-PIO2FMX4.js → chunk-B6AKTLXB.js} +5 -5
- package/dist/{chunk-VJ2Q33AP.js → chunk-BPPFY72X.js} +4 -0
- package/dist/{chunk-JKD6QRUD.js → chunk-C56X7EFJ.js} +4 -0
- package/dist/{chunk-PYZGF5QH.js → chunk-CMGJ52SX.js} +215 -98
- package/dist/{chunk-4DBSSFHG.js → chunk-EC6DIVE5.js} +3 -3
- package/dist/{chunk-4M6IAIVK.js → chunk-FK54LVDR.js} +2 -2
- package/dist/{chunk-JJHQAZWE.js → chunk-GGRH5PCD.js} +10 -10
- package/dist/chunk-GZUTU6IZ.js +153 -0
- package/dist/{chunk-W6LOCBWQ.js → chunk-IWAK4WHK.js} +1 -1
- package/dist/{chunk-ZYOMPJGG.js → chunk-KKFP5Y2Z.js} +2 -2
- package/dist/{chunk-XL5XD3IG.js → chunk-MPS4RE7T.js} +7 -7
- package/dist/{chunk-DBO2335D.js → chunk-MQIT2F5V.js} +8 -8
- package/dist/{chunk-GAZCZCAZ.js → chunk-RNALIVRR.js} +1 -1
- package/dist/{chunk-4UIUIHST.js → chunk-UPWAXWY2.js} +1 -1
- package/dist/{chunk-UXL7DV7P.js → chunk-V5TJXK3F.js} +3 -3
- package/dist/{chunk-AR7Z3EQB.js → chunk-WEZ7PSOE.js} +14 -14
- package/dist/{chunk-LENX5NUW.js → chunk-Z7XWQ63B.js} +55 -2
- package/dist/cli/index.js +76 -61
- package/dist/{client-XOSXFC7Q.js → client-KL67WZVJ.js} +2 -2
- package/dist/{conduct-VSSHJHVH.js → conduct-JRLLA4PB.js} +12 -11
- package/dist/{conduct-6C6JWZKZ.js → conduct-QLWXU2ZU.js} +12 -11
- package/dist/{conductor-mode-KKPSNN7V.js → conductor-mode-66IITI4I.js} +13 -12
- package/dist/{conductor-mode-NKHIZG4N.js → conductor-mode-PFO2VLH6.js} +14 -13
- package/dist/{credits-action-N3WB4WSI.js → credits-action-XERUEDF3.js} +6 -6
- package/dist/{did-action-3PNFYLX2.js → did-action-ODWTBVXL.js} +3 -3
- package/dist/{execute-QHP4KUV2.js → execute-NOQVN7ZG.js} +10 -9
- package/dist/{execute-IEQ3RV7I.js → execute-YBNCDAOX.js} +8 -7
- package/dist/index.js +350 -147
- package/dist/{openclaw-setup-PKGFB4IH.js → openclaw-setup-4RIZRMXA.js} +12 -11
- package/dist/{openclaw-skills-5VJDA6SX.js → openclaw-skills-TQ2JVBRM.js} +2 -2
- package/dist/provider-events-GTTJPYHS.js +13 -0
- package/dist/{publish-capability-CHMPZ6W3.js → publish-capability-2FMD3K6Z.js} +3 -2
- package/dist/{request-6TBVP3GR.js → request-EYN4CVXC.js} +12 -11
- package/dist/{serve-skill-BRUHUDRA.js → serve-skill-NWERGVH5.js} +13 -12
- package/dist/{server-N4BJW4TS.js → server-UPOPLZ24.js} +17 -16
- package/dist/{service-coordinator-M2CBDEUQ.js → service-coordinator-ZOZTW2U6.js} +419 -58
- package/dist/{session-action-67J57636.js → session-action-OSBZB4TX.js} +3 -3
- package/dist/signing-AQTKYJDB.js +16 -0
- package/dist/skills/agentbnb/bootstrap.js +426 -65
- package/dist/{store-A4YPEHDV.js → store-74EWU77V.js} +2 -1
- package/dist/{vc-action-TSAIABUM.js → vc-action-A6VBKERF.js} +3 -3
- package/package.json +3 -1
- package/dist/{chunk-YNBZLXYS.js → chunk-65GNX2KC.js} +0 -0
- package/dist/{daemon-OM2K3U7J.js → daemon-ETXXE4IS.js} +1 -1
|
@@ -6,12 +6,18 @@ import {
|
|
|
6
6
|
resolveTargetCapability,
|
|
7
7
|
searchCards,
|
|
8
8
|
settleEscrow
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-MPS4RE7T.js";
|
|
10
|
+
import {
|
|
11
|
+
resolveCanonicalIdentity
|
|
12
|
+
} from "./chunk-EE3V3DXK.js";
|
|
10
13
|
import {
|
|
11
14
|
requestCapability,
|
|
12
15
|
requestCapabilityBatch,
|
|
13
16
|
requestViaRelay
|
|
14
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-IWAK4WHK.js";
|
|
18
|
+
import {
|
|
19
|
+
AgentBnBError
|
|
20
|
+
} from "./chunk-UVCNMRPS.js";
|
|
15
21
|
import {
|
|
16
22
|
RelayClient
|
|
17
23
|
} from "./chunk-WOVESOQ7.js";
|
|
@@ -21,12 +27,6 @@ import {
|
|
|
21
27
|
import {
|
|
22
28
|
findPeer
|
|
23
29
|
} from "./chunk-HLUEOLSZ.js";
|
|
24
|
-
import {
|
|
25
|
-
resolveCanonicalIdentity
|
|
26
|
-
} from "./chunk-EE3V3DXK.js";
|
|
27
|
-
import {
|
|
28
|
-
AgentBnBError
|
|
29
|
-
} from "./chunk-UVCNMRPS.js";
|
|
30
30
|
|
|
31
31
|
// src/conductor/decomposition-validator.ts
|
|
32
32
|
function validateAndNormalizeSubtasks(raw, context) {
|
|
@@ -3,20 +3,20 @@ import {
|
|
|
3
3
|
} from "./chunk-3MJT4PZG.js";
|
|
4
4
|
import {
|
|
5
5
|
scorePeers
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-GGRH5PCD.js";
|
|
7
7
|
import {
|
|
8
8
|
fetchRemoteCards
|
|
9
9
|
} from "./chunk-ELFGYC22.js";
|
|
10
10
|
import {
|
|
11
11
|
searchCards
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-EC6DIVE5.js";
|
|
13
13
|
import {
|
|
14
14
|
loadCoreConfig
|
|
15
15
|
} from "./chunk-QXRNW4OJ.js";
|
|
16
16
|
import {
|
|
17
17
|
requestCapability,
|
|
18
18
|
requestCapabilityBatch
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-IWAK4WHK.js";
|
|
20
20
|
|
|
21
21
|
// src/conductor/decomposition-validator.ts
|
|
22
22
|
function validateAndNormalizeSubtasks(raw, context) {
|
|
@@ -3,39 +3,34 @@ import {
|
|
|
3
3
|
buildDraftCard,
|
|
4
4
|
detectApiKeys,
|
|
5
5
|
detectOpenPorts
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-UPWAXWY2.js";
|
|
7
|
+
import {
|
|
8
|
+
createLedger
|
|
9
|
+
} from "./chunk-Z7XWQ63B.js";
|
|
10
|
+
import {
|
|
11
|
+
loadOrRepairIdentity
|
|
12
|
+
} from "./chunk-AA25Z6FW.js";
|
|
7
13
|
import {
|
|
8
14
|
parseSoulMd
|
|
9
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-RNALIVRR.js";
|
|
10
16
|
import {
|
|
11
17
|
DEFAULT_BUDGET_CONFIG
|
|
12
18
|
} from "./chunk-QG2LLVXP.js";
|
|
13
19
|
import {
|
|
14
20
|
DEFAULT_AUTONOMY_CONFIG
|
|
15
21
|
} from "./chunk-G5WKW3ED.js";
|
|
16
|
-
import {
|
|
17
|
-
createLedger
|
|
18
|
-
} from "./chunk-LENX5NUW.js";
|
|
19
|
-
import {
|
|
20
|
-
loadOrRepairIdentity
|
|
21
|
-
} from "./chunk-5CC6O6SO.js";
|
|
22
22
|
import {
|
|
23
23
|
bootstrapAgent,
|
|
24
24
|
getBalance,
|
|
25
25
|
migrateOwner,
|
|
26
26
|
openCreditDb
|
|
27
27
|
} from "./chunk-D7NH6YLM.js";
|
|
28
|
-
import {
|
|
29
|
-
getConfigDir,
|
|
30
|
-
loadConfig,
|
|
31
|
-
saveConfig
|
|
32
|
-
} from "./chunk-3XPBFF6H.js";
|
|
33
28
|
import {
|
|
34
29
|
attachCanonicalAgentId,
|
|
35
30
|
insertCard,
|
|
36
31
|
listCards,
|
|
37
32
|
openDatabase
|
|
38
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-C56X7EFJ.js";
|
|
39
34
|
import {
|
|
40
35
|
createAgentRecord,
|
|
41
36
|
lookupAgent,
|
|
@@ -46,6 +41,11 @@ import {
|
|
|
46
41
|
AgentBnBError,
|
|
47
42
|
CapabilityCardV2Schema
|
|
48
43
|
} from "./chunk-UVCNMRPS.js";
|
|
44
|
+
import {
|
|
45
|
+
getConfigDir,
|
|
46
|
+
loadConfig,
|
|
47
|
+
saveConfig
|
|
48
|
+
} from "./chunk-3XPBFF6H.js";
|
|
49
49
|
|
|
50
50
|
// src/openclaw/soul-sync.ts
|
|
51
51
|
import { randomUUID } from "crypto";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
deriveAgentId
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-AA25Z6FW.js";
|
|
4
4
|
import {
|
|
5
5
|
bootstrapAgent,
|
|
6
6
|
getBalance,
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
import {
|
|
15
15
|
signEscrowReceipt,
|
|
16
16
|
verifyEscrowReceipt
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-65GNX2KC.js";
|
|
18
18
|
import {
|
|
19
19
|
lookupAgent
|
|
20
20
|
} from "./chunk-J4RFJVXI.js";
|
|
@@ -230,6 +230,58 @@ function signRequest(method, path, body, privateKey, publicKeyHex, agentIdOverri
|
|
|
230
230
|
"X-Agent-Timestamp": timestamp
|
|
231
231
|
};
|
|
232
232
|
}
|
|
233
|
+
async function tryVerifyIdentity(request, options = {}) {
|
|
234
|
+
const agentIdHeader = request.headers["x-agent-id"];
|
|
235
|
+
const publicKeyHeader = request.headers["x-agent-publickey"];
|
|
236
|
+
const signatureHeader = request.headers["x-agent-signature"];
|
|
237
|
+
const timestampHeader = request.headers["x-agent-timestamp"];
|
|
238
|
+
const agentId = agentIdHeader?.trim();
|
|
239
|
+
const publicKeyHex = publicKeyHeader?.trim();
|
|
240
|
+
const signature = signatureHeader?.trim();
|
|
241
|
+
const timestamp = timestampHeader?.trim();
|
|
242
|
+
if (!agentId || !publicKeyHex || !signature || !timestamp) {
|
|
243
|
+
return { valid: false, reason: "missing_headers" };
|
|
244
|
+
}
|
|
245
|
+
const requestTime = new Date(timestamp).getTime();
|
|
246
|
+
if (isNaN(requestTime) || Math.abs(Date.now() - requestTime) > MAX_REQUEST_AGE_MS) {
|
|
247
|
+
return { valid: false, reason: "expired" };
|
|
248
|
+
}
|
|
249
|
+
if (!/^[0-9a-fA-F]+$/.test(publicKeyHex) || publicKeyHex.length % 2 !== 0) {
|
|
250
|
+
return { valid: false, reason: "invalid_key" };
|
|
251
|
+
}
|
|
252
|
+
let expectedAgentId;
|
|
253
|
+
try {
|
|
254
|
+
expectedAgentId = deriveAgentId(publicKeyHex);
|
|
255
|
+
} catch {
|
|
256
|
+
return { valid: false, reason: "invalid_key" };
|
|
257
|
+
}
|
|
258
|
+
if (agentId !== expectedAgentId) {
|
|
259
|
+
return { valid: false, reason: "agent_id_mismatch" };
|
|
260
|
+
}
|
|
261
|
+
let publicKeyBuffer;
|
|
262
|
+
try {
|
|
263
|
+
publicKeyBuffer = Buffer.from(publicKeyHex, "hex");
|
|
264
|
+
} catch {
|
|
265
|
+
return { valid: false, reason: "invalid_key" };
|
|
266
|
+
}
|
|
267
|
+
const knownAgent = options.agentDb ? lookupAgent(options.agentDb, agentId) : null;
|
|
268
|
+
if (knownAgent && knownAgent.public_key.toLowerCase() !== publicKeyHex.toLowerCase()) {
|
|
269
|
+
return { valid: false, reason: "key_drift" };
|
|
270
|
+
}
|
|
271
|
+
const payload = buildIdentityPayload(
|
|
272
|
+
request.method,
|
|
273
|
+
request.url,
|
|
274
|
+
timestamp,
|
|
275
|
+
publicKeyHex,
|
|
276
|
+
agentId,
|
|
277
|
+
request.body
|
|
278
|
+
);
|
|
279
|
+
const valid = verifyEscrowReceipt(payload, signature, publicKeyBuffer);
|
|
280
|
+
if (!valid) {
|
|
281
|
+
return { valid: false, reason: "invalid_signature" };
|
|
282
|
+
}
|
|
283
|
+
return { valid: true, agentId, publicKey: publicKeyHex };
|
|
284
|
+
}
|
|
233
285
|
|
|
234
286
|
// src/credit/registry-credit-ledger.ts
|
|
235
287
|
var HTTP_TIMEOUT_MS = 1e4;
|
|
@@ -453,5 +505,6 @@ function createLedger(opts) {
|
|
|
453
505
|
|
|
454
506
|
export {
|
|
455
507
|
identityAuthPlugin,
|
|
508
|
+
tryVerifyIdentity,
|
|
456
509
|
createLedger
|
|
457
510
|
};
|
package/dist/cli/index.js
CHANGED
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
import {
|
|
3
3
|
discoverLocalAgents
|
|
4
4
|
} from "../chunk-TA73FIZU.js";
|
|
5
|
+
import {
|
|
6
|
+
syncCreditsFromRegistry
|
|
7
|
+
} from "../chunk-KKFP5Y2Z.js";
|
|
5
8
|
import {
|
|
6
9
|
resolveSelfCli
|
|
7
10
|
} from "../chunk-7S4ZLFVI.js";
|
|
@@ -11,17 +14,28 @@ import {
|
|
|
11
14
|
injectHeartbeatSection,
|
|
12
15
|
performInit,
|
|
13
16
|
publishFromSoulV2
|
|
14
|
-
} from "../chunk-
|
|
17
|
+
} from "../chunk-WEZ7PSOE.js";
|
|
15
18
|
import {
|
|
16
19
|
getPricingStats
|
|
17
|
-
} from "../chunk-
|
|
18
|
-
import
|
|
20
|
+
} from "../chunk-UPWAXWY2.js";
|
|
21
|
+
import {
|
|
22
|
+
createLedger
|
|
23
|
+
} from "../chunk-Z7XWQ63B.js";
|
|
24
|
+
import {
|
|
25
|
+
ensureIdentity
|
|
26
|
+
} from "../chunk-AA25Z6FW.js";
|
|
27
|
+
import "../chunk-RNALIVRR.js";
|
|
19
28
|
import "../chunk-RJNKX347.js";
|
|
20
29
|
import {
|
|
21
30
|
AutoRequestor,
|
|
22
31
|
requestViaTemporaryRelay
|
|
23
|
-
} from "../chunk-
|
|
32
|
+
} from "../chunk-GGRH5PCD.js";
|
|
24
33
|
import "../chunk-5PV5YCSN.js";
|
|
34
|
+
import "../chunk-FK54LVDR.js";
|
|
35
|
+
import {
|
|
36
|
+
fetchRemoteCards,
|
|
37
|
+
mergeResults
|
|
38
|
+
} from "../chunk-ELFGYC22.js";
|
|
25
39
|
import {
|
|
26
40
|
BudgetManager,
|
|
27
41
|
DEFAULT_BUDGET_CONFIG
|
|
@@ -29,41 +43,40 @@ import {
|
|
|
29
43
|
import {
|
|
30
44
|
DEFAULT_AUTONOMY_CONFIG
|
|
31
45
|
} from "../chunk-G5WKW3ED.js";
|
|
32
|
-
import {
|
|
33
|
-
syncCreditsFromRegistry
|
|
34
|
-
} from "../chunk-ZYOMPJGG.js";
|
|
35
|
-
import {
|
|
36
|
-
createLedger
|
|
37
|
-
} from "../chunk-LENX5NUW.js";
|
|
38
|
-
import {
|
|
39
|
-
ensureIdentity
|
|
40
|
-
} from "../chunk-5CC6O6SO.js";
|
|
41
|
-
import "../chunk-4M6IAIVK.js";
|
|
42
|
-
import {
|
|
43
|
-
fetchRemoteCards,
|
|
44
|
-
mergeResults
|
|
45
|
-
} from "../chunk-ELFGYC22.js";
|
|
46
46
|
import {
|
|
47
47
|
filterCards,
|
|
48
48
|
searchCards
|
|
49
|
-
} from "../chunk-
|
|
49
|
+
} from "../chunk-EC6DIVE5.js";
|
|
50
50
|
import {
|
|
51
51
|
getBalance,
|
|
52
52
|
getTransactions,
|
|
53
53
|
openCreditDb
|
|
54
54
|
} from "../chunk-D7NH6YLM.js";
|
|
55
|
+
import {
|
|
56
|
+
attachCanonicalAgentId,
|
|
57
|
+
deleteCard,
|
|
58
|
+
getCard,
|
|
59
|
+
insertCard,
|
|
60
|
+
listCards,
|
|
61
|
+
openDatabase
|
|
62
|
+
} from "../chunk-C56X7EFJ.js";
|
|
63
|
+
import "../chunk-GZUTU6IZ.js";
|
|
55
64
|
import "../chunk-UPNREF4L.js";
|
|
56
65
|
import "../chunk-Q5OFZ2JR.js";
|
|
57
66
|
import "../chunk-QXRNW4OJ.js";
|
|
58
67
|
import {
|
|
59
68
|
requestCapability
|
|
60
|
-
} from "../chunk-
|
|
69
|
+
} from "../chunk-IWAK4WHK.js";
|
|
61
70
|
import {
|
|
62
71
|
generateKeyPair,
|
|
63
72
|
loadKeyPair,
|
|
64
73
|
saveKeyPair
|
|
65
|
-
} from "../chunk-
|
|
74
|
+
} from "../chunk-65GNX2KC.js";
|
|
66
75
|
import "../chunk-YDGXKH2T.js";
|
|
76
|
+
import "../chunk-J4RFJVXI.js";
|
|
77
|
+
import {
|
|
78
|
+
AnyCardSchema
|
|
79
|
+
} from "../chunk-UVCNMRPS.js";
|
|
67
80
|
import {
|
|
68
81
|
findPeer,
|
|
69
82
|
loadPeers,
|
|
@@ -75,18 +88,6 @@ import {
|
|
|
75
88
|
loadConfig,
|
|
76
89
|
saveConfig
|
|
77
90
|
} from "../chunk-3XPBFF6H.js";
|
|
78
|
-
import {
|
|
79
|
-
attachCanonicalAgentId,
|
|
80
|
-
deleteCard,
|
|
81
|
-
getCard,
|
|
82
|
-
insertCard,
|
|
83
|
-
listCards,
|
|
84
|
-
openDatabase
|
|
85
|
-
} from "../chunk-JKD6QRUD.js";
|
|
86
|
-
import "../chunk-J4RFJVXI.js";
|
|
87
|
-
import {
|
|
88
|
-
AnyCardSchema
|
|
89
|
-
} from "../chunk-UVCNMRPS.js";
|
|
90
91
|
import "../chunk-4XTYT4JW.js";
|
|
91
92
|
import "../chunk-3RG5ZIWI.js";
|
|
92
93
|
|
|
@@ -240,7 +241,7 @@ Skills: ${skills2.skillCount} skill(s) in ${skills2.path}`);
|
|
|
240
241
|
if (!skipServe) {
|
|
241
242
|
try {
|
|
242
243
|
const { ProcessGuard } = await import("../process-guard-6324CZDC.js");
|
|
243
|
-
const { ServiceCoordinator } = await import("../service-coordinator-
|
|
244
|
+
const { ServiceCoordinator } = await import("../service-coordinator-ZOZTW2U6.js");
|
|
244
245
|
const guard = new ProcessGuard(join(initResult.configDir, ".pid"));
|
|
245
246
|
const coordinator = new ServiceCoordinator(initResult.config, guard);
|
|
246
247
|
const result = await coordinator.ensureRunning({
|
|
@@ -302,7 +303,7 @@ Skills: ${skills2.skillCount} skill(s) in ${skills2.path}`);
|
|
|
302
303
|
}
|
|
303
304
|
|
|
304
305
|
// src/cli/index.ts
|
|
305
|
-
var VERSION = true ? "9.
|
|
306
|
+
var VERSION = true ? "9.2.0" : "0.0.0-dev";
|
|
306
307
|
function loadIdentityAuth(owner) {
|
|
307
308
|
const configDir = getConfigDir();
|
|
308
309
|
let keys;
|
|
@@ -516,7 +517,7 @@ program.command("publish-skills").description("Publish capabilities from skills.
|
|
|
516
517
|
process.exit(1);
|
|
517
518
|
}
|
|
518
519
|
const { parseSkillsFile } = await import("../skill-config-VYNF7BCY.js");
|
|
519
|
-
const { skillConfigToSkill } = await import("../publish-capability-
|
|
520
|
+
const { skillConfigToSkill } = await import("../publish-capability-2FMD3K6Z.js");
|
|
520
521
|
const skillsPath = typeof opts.fromSkills === "string" ? opts.fromSkills : "./skills.yaml";
|
|
521
522
|
let yamlContent;
|
|
522
523
|
try {
|
|
@@ -1121,7 +1122,7 @@ Active Escrows (${heldEscrows.length}):`);
|
|
|
1121
1122
|
});
|
|
1122
1123
|
program.command("serve").description("Start the AgentBnB gateway server").option("--port <port>", "Port to listen on (overrides config)").option("--handler-url <url>", "Local capability handler URL", "http://localhost:8080").option("--skills-yaml <path>", "Path to skills.yaml (default: ~/.agentbnb/skills.yaml)").option("--registry-port <port>", "Public registry API port (0 to disable)", "7701").option("--registry <url>", "Connect to remote registry via WebSocket relay (e.g., hub.agentbnb.dev)").option("--conductor", "Enable Conductor orchestration mode").option("--announce", "Announce this gateway on the local network via mDNS").option("--no-relay", "Do not auto-connect to remote registry relay").option("--daemon", "Run in background as daemon").option("--status", "Show daemon status").option("--stop", "Stop the daemon").option("--restart", "Restart the daemon").option("--startup", "Register for auto-start on boot").action(async (opts) => {
|
|
1123
1124
|
if (opts.status || opts.stop || opts.restart || opts.daemon || opts.startup) {
|
|
1124
|
-
const { startDaemon, stopDaemon, restartDaemon, daemonStatus, registerStartup } = await import("../daemon-
|
|
1125
|
+
const { startDaemon, stopDaemon, restartDaemon, daemonStatus, registerStartup } = await import("../daemon-ETXXE4IS.js");
|
|
1125
1126
|
if (opts.status) {
|
|
1126
1127
|
daemonStatus();
|
|
1127
1128
|
return;
|
|
@@ -1158,7 +1159,7 @@ program.command("serve").description("Start the AgentBnB gateway server").option
|
|
|
1158
1159
|
process.exit(1);
|
|
1159
1160
|
}
|
|
1160
1161
|
const { ProcessGuard } = await import("../process-guard-6324CZDC.js");
|
|
1161
|
-
const { ServiceCoordinator } = await import("../service-coordinator-
|
|
1162
|
+
const { ServiceCoordinator } = await import("../service-coordinator-ZOZTW2U6.js");
|
|
1162
1163
|
const port = opts.port ? parseInt(opts.port, 10) : config.gateway_port;
|
|
1163
1164
|
const registryPort = parseInt(opts.registryPort, 10);
|
|
1164
1165
|
if (!Number.isFinite(port) || !Number.isFinite(registryPort)) {
|
|
@@ -1228,7 +1229,7 @@ peersCommand.command("remove <name>").description("Remove a registered peer").ac
|
|
|
1228
1229
|
});
|
|
1229
1230
|
var configCmd = program.command("config").description("Get or set AgentBnB configuration values");
|
|
1230
1231
|
configCmd.command("set <key> <value>").description("Set a configuration value").action((key, value) => {
|
|
1231
|
-
const allowedKeys = ["registry", "tier1", "tier2", "reserve", "idle-threshold", "conductor-public", "telegram-notifications", "telegram-bot-token", "telegram-chat-id", "shared-skills", "provider-gate", "provider-accepting", "provider-daily-limit", "provider-whitelist", "provider-blacklist"];
|
|
1232
|
+
const allowedKeys = ["registry", "tier1", "tier2", "reserve", "idle-threshold", "conductor-public", "telegram-notifications", "telegram-bot-token", "telegram-chat-id", "shared-skills", "provider-gate", "provider-accepting", "provider-daily-limit", "provider-whitelist", "provider-blacklist", "notification-filters"];
|
|
1232
1233
|
if (!allowedKeys.includes(key)) {
|
|
1233
1234
|
console.error(`Unknown config key: ${key}. Valid keys: ${allowedKeys.join(", ")}`);
|
|
1234
1235
|
process.exit(1);
|
|
@@ -1378,6 +1379,13 @@ configCmd.command("set <key> <value>").description("Set a configuration value").
|
|
|
1378
1379
|
console.log(`Set provider-blacklist: ${display}`);
|
|
1379
1380
|
return;
|
|
1380
1381
|
}
|
|
1382
|
+
if (key === "notification-filters") {
|
|
1383
|
+
config.notification_filters = value.trim() === "" ? [] : value.split(",").map((s) => s.trim()).filter(Boolean);
|
|
1384
|
+
saveConfig(config);
|
|
1385
|
+
const display = config.notification_filters.length > 0 ? config.notification_filters.join(", ") : "(none \u2014 all events notified)";
|
|
1386
|
+
console.log(`Set notification-filters: ${display}`);
|
|
1387
|
+
return;
|
|
1388
|
+
}
|
|
1381
1389
|
config[key] = value;
|
|
1382
1390
|
saveConfig(config);
|
|
1383
1391
|
console.log(`Set ${key} = ${value}`);
|
|
@@ -1510,7 +1518,14 @@ openclaw.command("sync").description("Read SOUL.md and publish/update a v2.0 cap
|
|
|
1510
1518
|
resolvedSoulPath = opts.soulPath;
|
|
1511
1519
|
} else {
|
|
1512
1520
|
const { findSoulMd, getOpenClawWorkspaceDir } = await import("../scanner-EFU6NBEJ.js");
|
|
1513
|
-
const
|
|
1521
|
+
const { basename: baseName, dirname: dirName } = await import("path");
|
|
1522
|
+
const agentbnbDir = process.env["AGENTBNB_DIR"];
|
|
1523
|
+
let derivedAgentName = null;
|
|
1524
|
+
if (agentbnbDir && agentbnbDir.includes(".openclaw/agents/")) {
|
|
1525
|
+
derivedAgentName = baseName(dirName(agentbnbDir));
|
|
1526
|
+
}
|
|
1527
|
+
const searchName = derivedAgentName ?? config.owner;
|
|
1528
|
+
const found = findSoulMd(searchName) ?? (searchName !== config.owner ? findSoulMd(config.owner) : null);
|
|
1514
1529
|
if (found) {
|
|
1515
1530
|
resolvedSoulPath = found;
|
|
1516
1531
|
} else if (existsSync2("./SOUL.md")) {
|
|
@@ -1519,10 +1534,10 @@ openclaw.command("sync").description("Read SOUL.md and publish/update a v2.0 cap
|
|
|
1519
1534
|
const { homedir: homedir2 } = await import("os");
|
|
1520
1535
|
const home = homedir2();
|
|
1521
1536
|
const workspaceDir = getOpenClawWorkspaceDir();
|
|
1522
|
-
console.error(`No SOUL.md found for agent "${
|
|
1537
|
+
console.error(`No SOUL.md found for agent "${searchName}".`);
|
|
1523
1538
|
console.error("Searched:");
|
|
1524
|
-
console.error(` - ${join2(workspaceDir, "brains",
|
|
1525
|
-
console.error(` - ${join2(home, ".openclaw", "agents",
|
|
1539
|
+
console.error(` - ${join2(workspaceDir, "brains", searchName, "SOUL.md")}`);
|
|
1540
|
+
console.error(` - ${join2(home, ".openclaw", "agents", searchName, "SOUL.md")}`);
|
|
1526
1541
|
console.error(` - ${join2(workspaceDir, "SOUL.md")}`);
|
|
1527
1542
|
console.error(` - ./SOUL.md`);
|
|
1528
1543
|
console.error("");
|
|
@@ -1604,34 +1619,34 @@ openclaw.command("rules").description("Print HEARTBEAT.md rules block (or inject
|
|
|
1604
1619
|
}
|
|
1605
1620
|
});
|
|
1606
1621
|
openclaw.command("setup").description("Interactive onboarding: connect an OpenClaw agent to AgentBnB").option("--agent <name>", "Agent name to set up (skip interactive selection)").option("--soul-path <path>", "Override SOUL.md path").option("-y, --yes", "Skip confirmation prompts").action(async (opts) => {
|
|
1607
|
-
const { runOpenClawSetup } = await import("../openclaw-setup-
|
|
1622
|
+
const { runOpenClawSetup } = await import("../openclaw-setup-4RIZRMXA.js");
|
|
1608
1623
|
await runOpenClawSetup(opts);
|
|
1609
1624
|
});
|
|
1610
1625
|
var skills = openclaw.command("skills").description("Manage shared skills on AgentBnB");
|
|
1611
1626
|
skills.command("list").description("List all shared skills with stats").action(async () => {
|
|
1612
|
-
const { skillsList } = await import("../openclaw-skills-
|
|
1627
|
+
const { skillsList } = await import("../openclaw-skills-TQ2JVBRM.js");
|
|
1613
1628
|
await skillsList({});
|
|
1614
1629
|
});
|
|
1615
1630
|
skills.command("add").description("Add a skill to share (interactive or --manual)").option("--manual", "Non-interactive: use flags instead of prompts").option("--name <id>", "Skill ID").option("--type <type>", "Skill type (command|openclaw)").option("--price <n>", "Credits per call", parseFloat).option("--description <text>", "Skill description").action(
|
|
1616
1631
|
async (opts) => {
|
|
1617
|
-
const { skillsAdd } = await import("../openclaw-skills-
|
|
1632
|
+
const { skillsAdd } = await import("../openclaw-skills-TQ2JVBRM.js");
|
|
1618
1633
|
await skillsAdd(opts);
|
|
1619
1634
|
}
|
|
1620
1635
|
);
|
|
1621
1636
|
skills.command("remove <skillId>").description("Remove a skill from AgentBnB").action(async (skillId) => {
|
|
1622
|
-
const { skillsRemove } = await import("../openclaw-skills-
|
|
1637
|
+
const { skillsRemove } = await import("../openclaw-skills-TQ2JVBRM.js");
|
|
1623
1638
|
await skillsRemove(skillId);
|
|
1624
1639
|
});
|
|
1625
1640
|
skills.command("price <skillId> <price>").description("Update skill price").action(async (skillId, price) => {
|
|
1626
|
-
const { skillsPrice } = await import("../openclaw-skills-
|
|
1641
|
+
const { skillsPrice } = await import("../openclaw-skills-TQ2JVBRM.js");
|
|
1627
1642
|
await skillsPrice(skillId, parseFloat(price));
|
|
1628
1643
|
});
|
|
1629
1644
|
skills.command("stats").description("Revenue and performance report").option("--days <n>", "Days to look back", parseInt, 7).action(async (opts) => {
|
|
1630
|
-
const { skillsStats } = await import("../openclaw-skills-
|
|
1645
|
+
const { skillsStats } = await import("../openclaw-skills-TQ2JVBRM.js");
|
|
1631
1646
|
await skillsStats(opts);
|
|
1632
1647
|
});
|
|
1633
1648
|
program.command("conduct <task>").description("Orchestrate a complex task across the AgentBnB network").option("--plan-only", "Show execution plan without executing").option("--max-budget <credits>", "Maximum credits to spend", "100").option("--json", "Output as JSON").action(async (task, opts) => {
|
|
1634
|
-
const { conductAction } = await import("../conduct-
|
|
1649
|
+
const { conductAction } = await import("../conduct-JRLLA4PB.js");
|
|
1635
1650
|
const result = await conductAction(task, opts);
|
|
1636
1651
|
if (opts.json) {
|
|
1637
1652
|
console.log(JSON.stringify(result, null, 2));
|
|
@@ -1749,7 +1764,7 @@ skill.command("wrap").description("Wrap a CLI command as a rentable AgentBnB ski
|
|
|
1749
1764
|
});
|
|
1750
1765
|
var did = program.command("did").description("Decentralized Identity commands");
|
|
1751
1766
|
did.command("show").description("Display local agent DID identifiers").option("--json", "Output as JSON").action(async (opts) => {
|
|
1752
|
-
const { didShow, didShowJson } = await import("../did-action-
|
|
1767
|
+
const { didShow, didShowJson } = await import("../did-action-ODWTBVXL.js");
|
|
1753
1768
|
if (opts.json) {
|
|
1754
1769
|
await didShowJson();
|
|
1755
1770
|
} else {
|
|
@@ -1758,45 +1773,45 @@ did.command("show").description("Display local agent DID identifiers").option("-
|
|
|
1758
1773
|
});
|
|
1759
1774
|
var vc = program.command("vc").description("Verifiable Credentials commands");
|
|
1760
1775
|
vc.command("show").description("Display Verifiable Credentials for this agent").option("--json", "Output as JSON").action(async (opts) => {
|
|
1761
|
-
const { vcShow } = await import("../vc-action-
|
|
1776
|
+
const { vcShow } = await import("../vc-action-A6VBKERF.js");
|
|
1762
1777
|
await vcShow(opts);
|
|
1763
1778
|
});
|
|
1764
1779
|
var credits = program.command("credits").description("Credit balance and transaction management");
|
|
1765
1780
|
credits.command("sync").description("Sync local credit balance from remote registry").action(async () => {
|
|
1766
|
-
const { creditsSync } = await import("../credits-action-
|
|
1781
|
+
const { creditsSync } = await import("../credits-action-XERUEDF3.js");
|
|
1767
1782
|
await creditsSync();
|
|
1768
1783
|
});
|
|
1769
1784
|
credits.command("history").description("Show recent credit transactions").option("--limit <n>", "Number of transactions to show", "20").option("--json", "Output as JSON").action(async (opts) => {
|
|
1770
|
-
const { creditsHistory } = await import("../credits-action-
|
|
1785
|
+
const { creditsHistory } = await import("../credits-action-XERUEDF3.js");
|
|
1771
1786
|
await creditsHistory(opts);
|
|
1772
1787
|
});
|
|
1773
1788
|
credits.command("grant <agent_id> <amount>").description("Admin: grant credits to an agent (requires ADMIN_TOKEN)").action(async (agentId, amount) => {
|
|
1774
|
-
const { creditsGrant } = await import("../credits-action-
|
|
1789
|
+
const { creditsGrant } = await import("../credits-action-XERUEDF3.js");
|
|
1775
1790
|
await creditsGrant(agentId, amount);
|
|
1776
1791
|
});
|
|
1777
1792
|
var sessionCmd = program.command("session").description("Manage interactive agent-to-agent sessions");
|
|
1778
1793
|
sessionCmd.command("open <card_id>").description("Open an interactive session with a provider agent").requiredOption("--skill <skill_id>", "Skill ID to use").requiredOption("--budget <credits>", "Maximum credits for this session", parseInt).requiredOption("--message <msg>", "Initial message to send").option("--pricing <model>", "Pricing model: per_message, per_minute, per_session", "per_message").action(async (cardId, opts) => {
|
|
1779
|
-
const { sessionOpen } = await import("../session-action-
|
|
1794
|
+
const { sessionOpen } = await import("../session-action-OSBZB4TX.js");
|
|
1780
1795
|
await sessionOpen(cardId, opts);
|
|
1781
1796
|
});
|
|
1782
1797
|
sessionCmd.command("send <session_id> <message>").description("Send a message within an active session").action(async (sessionId, message) => {
|
|
1783
|
-
const { sessionSend } = await import("../session-action-
|
|
1798
|
+
const { sessionSend } = await import("../session-action-OSBZB4TX.js");
|
|
1784
1799
|
await sessionSend(sessionId, message);
|
|
1785
1800
|
});
|
|
1786
1801
|
sessionCmd.command("end <session_id>").description("End an active session").option("--reason <reason>", "End reason: completed, cancelled", "completed").action(async (sessionId, opts) => {
|
|
1787
|
-
const { sessionEnd } = await import("../session-action-
|
|
1802
|
+
const { sessionEnd } = await import("../session-action-OSBZB4TX.js");
|
|
1788
1803
|
await sessionEnd(sessionId, opts.reason);
|
|
1789
1804
|
});
|
|
1790
1805
|
sessionCmd.command("list").description("List active sessions").action(async () => {
|
|
1791
|
-
const { sessionList } = await import("../session-action-
|
|
1806
|
+
const { sessionList } = await import("../session-action-OSBZB4TX.js");
|
|
1792
1807
|
await sessionList();
|
|
1793
1808
|
});
|
|
1794
1809
|
sessionCmd.command("status <session_id>").description("Show session details").action(async (sessionId) => {
|
|
1795
|
-
const { sessionStatus } = await import("../session-action-
|
|
1810
|
+
const { sessionStatus } = await import("../session-action-OSBZB4TX.js");
|
|
1796
1811
|
await sessionStatus(sessionId);
|
|
1797
1812
|
});
|
|
1798
1813
|
program.command("mcp-server").description("Start an MCP (Model Context Protocol) server for IDE integration").action(async () => {
|
|
1799
|
-
const { startMcpServer } = await import("../server-
|
|
1814
|
+
const { startMcpServer } = await import("../server-UPOPLZ24.js");
|
|
1800
1815
|
await startMcpServer();
|
|
1801
1816
|
});
|
|
1802
1817
|
await program.parseAsync(process.argv);
|
|
@@ -6,8 +6,8 @@ import {
|
|
|
6
6
|
requestCapability,
|
|
7
7
|
requestCapabilityBatch,
|
|
8
8
|
requestViaRelay
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-IWAK4WHK.js";
|
|
10
|
+
import "./chunk-65GNX2KC.js";
|
|
11
11
|
import "./chunk-UVCNMRPS.js";
|
|
12
12
|
import "./chunk-3RG5ZIWI.js";
|
|
13
13
|
export {
|
|
@@ -1,27 +1,28 @@
|
|
|
1
1
|
import {
|
|
2
2
|
conductAction
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-B6AKTLXB.js";
|
|
4
|
+
import "./chunk-V5TJXK3F.js";
|
|
5
5
|
import "./chunk-3MJT4PZG.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-GGRH5PCD.js";
|
|
7
7
|
import "./chunk-5PV5YCSN.js";
|
|
8
|
+
import "./chunk-FK54LVDR.js";
|
|
9
|
+
import "./chunk-ELFGYC22.js";
|
|
8
10
|
import "./chunk-QG2LLVXP.js";
|
|
9
11
|
import "./chunk-G5WKW3ED.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-ELFGYC22.js";
|
|
12
|
-
import "./chunk-4DBSSFHG.js";
|
|
12
|
+
import "./chunk-EC6DIVE5.js";
|
|
13
13
|
import "./chunk-D7NH6YLM.js";
|
|
14
|
+
import "./chunk-C56X7EFJ.js";
|
|
15
|
+
import "./chunk-GZUTU6IZ.js";
|
|
14
16
|
import "./chunk-UPNREF4L.js";
|
|
15
17
|
import "./chunk-Q5OFZ2JR.js";
|
|
16
18
|
import "./chunk-QXRNW4OJ.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-IWAK4WHK.js";
|
|
20
|
+
import "./chunk-65GNX2KC.js";
|
|
19
21
|
import "./chunk-YDGXKH2T.js";
|
|
20
|
-
import "./chunk-3YQ73ZM6.js";
|
|
21
|
-
import "./chunk-3XPBFF6H.js";
|
|
22
|
-
import "./chunk-JKD6QRUD.js";
|
|
23
22
|
import "./chunk-J4RFJVXI.js";
|
|
24
23
|
import "./chunk-UVCNMRPS.js";
|
|
24
|
+
import "./chunk-3YQ73ZM6.js";
|
|
25
|
+
import "./chunk-3XPBFF6H.js";
|
|
25
26
|
import "./chunk-4XTYT4JW.js";
|
|
26
27
|
import "./chunk-3RG5ZIWI.js";
|
|
27
28
|
export {
|
|
@@ -1,27 +1,28 @@
|
|
|
1
1
|
import {
|
|
2
2
|
conductAction
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-B6AKTLXB.js";
|
|
4
|
+
import "./chunk-V5TJXK3F.js";
|
|
5
5
|
import "./chunk-3MJT4PZG.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-GGRH5PCD.js";
|
|
7
7
|
import "./chunk-5PV5YCSN.js";
|
|
8
|
+
import "./chunk-FK54LVDR.js";
|
|
9
|
+
import "./chunk-ELFGYC22.js";
|
|
8
10
|
import "./chunk-QG2LLVXP.js";
|
|
9
11
|
import "./chunk-G5WKW3ED.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-ELFGYC22.js";
|
|
12
|
-
import "./chunk-4DBSSFHG.js";
|
|
12
|
+
import "./chunk-EC6DIVE5.js";
|
|
13
13
|
import "./chunk-D7NH6YLM.js";
|
|
14
|
+
import "./chunk-C56X7EFJ.js";
|
|
15
|
+
import "./chunk-GZUTU6IZ.js";
|
|
14
16
|
import "./chunk-UPNREF4L.js";
|
|
15
17
|
import "./chunk-Q5OFZ2JR.js";
|
|
16
18
|
import "./chunk-QXRNW4OJ.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-IWAK4WHK.js";
|
|
20
|
+
import "./chunk-65GNX2KC.js";
|
|
19
21
|
import "./chunk-YDGXKH2T.js";
|
|
20
|
-
import "./chunk-3YQ73ZM6.js";
|
|
21
|
-
import "./chunk-3XPBFF6H.js";
|
|
22
|
-
import "./chunk-JKD6QRUD.js";
|
|
23
22
|
import "./chunk-J4RFJVXI.js";
|
|
24
23
|
import "./chunk-UVCNMRPS.js";
|
|
24
|
+
import "./chunk-3YQ73ZM6.js";
|
|
25
|
+
import "./chunk-3XPBFF6H.js";
|
|
25
26
|
import "./chunk-4XTYT4JW.js";
|
|
26
27
|
import "./chunk-3RG5ZIWI.js";
|
|
27
28
|
|