agentbnb 9.1.1 → 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.
Files changed (41) hide show
  1. package/dist/{card-UF465O7O.js → card-VVXNKHDX.js} +2 -2
  2. package/dist/{chunk-RVOZHVM7.js → chunk-53Q2HHHH.js} +6 -6
  3. package/dist/{chunk-5CC6O6SO.js → chunk-AA25Z6FW.js} +1 -1
  4. package/dist/{chunk-Y7CO3VLF.js → chunk-B6AKTLXB.js} +2 -2
  5. package/dist/{chunk-2HH2F3DM.js → chunk-CMGJ52SX.js} +54 -1
  6. package/dist/{chunk-I4E5ERDN.js → chunk-EC6DIVE5.js} +1 -1
  7. package/dist/{chunk-O44N3KR7.js → chunk-FK54LVDR.js} +2 -2
  8. package/dist/{chunk-AMABG5SI.js → chunk-GGRH5PCD.js} +7 -7
  9. package/dist/{chunk-W6LOCBWQ.js → chunk-IWAK4WHK.js} +1 -1
  10. package/dist/{chunk-ZYOMPJGG.js → chunk-KKFP5Y2Z.js} +2 -2
  11. package/dist/{chunk-F2CIPAN2.js → chunk-MQIT2F5V.js} +1 -1
  12. package/dist/{chunk-AW4VSROG.js → chunk-RNALIVRR.js} +1 -1
  13. package/dist/{chunk-G4TF4LB4.js → chunk-UPWAXWY2.js} +1 -1
  14. package/dist/{chunk-WARYO57F.js → chunk-V5TJXK3F.js} +3 -3
  15. package/dist/{chunk-TCA63C42.js → chunk-WEZ7PSOE.js} +9 -9
  16. package/dist/{chunk-LENX5NUW.js → chunk-Z7XWQ63B.js} +55 -2
  17. package/dist/cli/index.js +45 -45
  18. package/dist/{client-XOSXFC7Q.js → client-KL67WZVJ.js} +2 -2
  19. package/dist/{conduct-MALC6HEK.js → conduct-JRLLA4PB.js} +10 -10
  20. package/dist/{conduct-UT6ZYSJD.js → conduct-QLWXU2ZU.js} +10 -10
  21. package/dist/{conductor-mode-UJKMO2GW.js → conductor-mode-66IITI4I.js} +3 -3
  22. package/dist/{conductor-mode-3WLLERB4.js → conductor-mode-PFO2VLH6.js} +9 -9
  23. package/dist/{credits-action-KOUJNR36.js → credits-action-XERUEDF3.js} +4 -4
  24. package/dist/{did-action-UHUYMA4Y.js → did-action-ODWTBVXL.js} +2 -2
  25. package/dist/{execute-UFMGTXET.js → execute-NOQVN7ZG.js} +9 -9
  26. package/dist/{execute-3RADNI74.js → execute-YBNCDAOX.js} +2 -2
  27. package/dist/{openclaw-setup-HEWZZOY7.js → openclaw-setup-4RIZRMXA.js} +11 -11
  28. package/dist/{openclaw-skills-5XLQFRWT.js → openclaw-skills-TQ2JVBRM.js} +2 -2
  29. package/dist/{publish-capability-LM4RSQXX.js → publish-capability-2FMD3K6Z.js} +3 -3
  30. package/dist/{request-LID2N42Y.js → request-EYN4CVXC.js} +8 -8
  31. package/dist/{serve-skill-CDNSHTEE.js → serve-skill-NWERGVH5.js} +9 -9
  32. package/dist/{server-QIAO3YSK.js → server-UPOPLZ24.js} +10 -10
  33. package/dist/{service-coordinator-FB44QL7L.js → service-coordinator-ZOZTW2U6.js} +233 -35
  34. package/dist/{session-action-GYITLYOE.js → session-action-OSBZB4TX.js} +2 -2
  35. package/dist/signing-AQTKYJDB.js +16 -0
  36. package/dist/skills/agentbnb/bootstrap.js +221 -23
  37. package/dist/{store-C4DLIXYM.js → store-74EWU77V.js} +2 -2
  38. package/dist/{vc-action-BWGNQ77Y.js → vc-action-A6VBKERF.js} +2 -2
  39. package/package.json +1 -1
  40. package/dist/{chunk-YNBZLXYS.js → chunk-65GNX2KC.js} +0 -0
  41. package/dist/{chunk-7VZ4M4CT.js → chunk-C56X7EFJ.js} +3 -3
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  attachCanonicalAgentId
3
- } from "./chunk-7VZ4M4CT.js";
3
+ } from "./chunk-C56X7EFJ.js";
4
+ import "./chunk-GZUTU6IZ.js";
4
5
  import "./chunk-J4RFJVXI.js";
5
6
  import {
6
7
  CapabilityCardV2Schema
7
8
  } from "./chunk-UVCNMRPS.js";
8
9
  import "./chunk-4XTYT4JW.js";
9
- import "./chunk-GZUTU6IZ.js";
10
10
  import "./chunk-3RG5ZIWI.js";
11
11
 
12
12
  // src/conductor/card.ts
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  syncCreditsFromRegistry
3
- } from "./chunk-ZYOMPJGG.js";
3
+ } from "./chunk-KKFP5Y2Z.js";
4
4
  import {
5
5
  resolveTargetCapability
6
- } from "./chunk-O44N3KR7.js";
6
+ } from "./chunk-FK54LVDR.js";
7
7
  import {
8
8
  getBalance,
9
9
  holdEscrow,
@@ -13,7 +13,10 @@ import {
13
13
  import {
14
14
  getCard,
15
15
  updateReputation
16
- } from "./chunk-7VZ4M4CT.js";
16
+ } from "./chunk-C56X7EFJ.js";
17
+ import {
18
+ emitProviderEvent
19
+ } from "./chunk-GZUTU6IZ.js";
17
20
  import {
18
21
  AgentBnBError
19
22
  } from "./chunk-UVCNMRPS.js";
@@ -23,9 +26,6 @@ import {
23
26
  import {
24
27
  insertRequestLog
25
28
  } from "./chunk-4XTYT4JW.js";
26
- import {
27
- emitProviderEvent
28
- } from "./chunk-GZUTU6IZ.js";
29
29
 
30
30
  // src/gateway/execute.ts
31
31
  import { randomUUID } from "crypto";
@@ -2,7 +2,7 @@ import {
2
2
  generateKeyPair,
3
3
  loadKeyPair,
4
4
  saveKeyPair
5
- } from "./chunk-YNBZLXYS.js";
5
+ } from "./chunk-65GNX2KC.js";
6
6
 
7
7
  // src/identity/identity.ts
8
8
  import { z } from "zod";
@@ -4,7 +4,7 @@ import {
4
4
  decompose,
5
5
  matchSubTasks,
6
6
  orchestrate
7
- } from "./chunk-WARYO57F.js";
7
+ } from "./chunk-V5TJXK3F.js";
8
8
  import {
9
9
  BudgetManager
10
10
  } from "./chunk-QG2LLVXP.js";
@@ -14,7 +14,7 @@ import {
14
14
  import {
15
15
  listCards,
16
16
  openDatabase
17
- } from "./chunk-7VZ4M4CT.js";
17
+ } from "./chunk-C56X7EFJ.js";
18
18
  import {
19
19
  RelayClient
20
20
  } from "./chunk-UPNREF4L.js";
@@ -31,7 +31,7 @@ import {
31
31
  saveKeyPair,
32
32
  signEscrowReceipt,
33
33
  verifyEscrowReceipt
34
- } from "./chunk-YNBZLXYS.js";
34
+ } from "./chunk-65GNX2KC.js";
35
35
  import {
36
36
  AgentBnBError
37
37
  } from "./chunk-UVCNMRPS.js";
@@ -391,6 +391,58 @@ function signRequest(method, path, body, privateKey, publicKeyHex, agentIdOverri
391
391
  "X-Agent-Timestamp": timestamp
392
392
  };
393
393
  }
394
+ async function tryVerifyIdentity(request, options = {}) {
395
+ const agentIdHeader = request.headers["x-agent-id"];
396
+ const publicKeyHeader = request.headers["x-agent-publickey"];
397
+ const signatureHeader = request.headers["x-agent-signature"];
398
+ const timestampHeader = request.headers["x-agent-timestamp"];
399
+ const agentId = agentIdHeader?.trim();
400
+ const publicKeyHex = publicKeyHeader?.trim();
401
+ const signature = signatureHeader?.trim();
402
+ const timestamp = timestampHeader?.trim();
403
+ if (!agentId || !publicKeyHex || !signature || !timestamp) {
404
+ return { valid: false, reason: "missing_headers" };
405
+ }
406
+ const requestTime = new Date(timestamp).getTime();
407
+ if (isNaN(requestTime) || Math.abs(Date.now() - requestTime) > MAX_REQUEST_AGE_MS) {
408
+ return { valid: false, reason: "expired" };
409
+ }
410
+ if (!/^[0-9a-fA-F]+$/.test(publicKeyHex) || publicKeyHex.length % 2 !== 0) {
411
+ return { valid: false, reason: "invalid_key" };
412
+ }
413
+ let expectedAgentId;
414
+ try {
415
+ expectedAgentId = deriveAgentId(publicKeyHex);
416
+ } catch {
417
+ return { valid: false, reason: "invalid_key" };
418
+ }
419
+ if (agentId !== expectedAgentId) {
420
+ return { valid: false, reason: "agent_id_mismatch" };
421
+ }
422
+ let publicKeyBuffer;
423
+ try {
424
+ publicKeyBuffer = Buffer.from(publicKeyHex, "hex");
425
+ } catch {
426
+ return { valid: false, reason: "invalid_key" };
427
+ }
428
+ const knownAgent = options.agentDb ? lookupAgent(options.agentDb, agentId) : null;
429
+ if (knownAgent && knownAgent.public_key.toLowerCase() !== publicKeyHex.toLowerCase()) {
430
+ return { valid: false, reason: "key_drift" };
431
+ }
432
+ const payload = buildIdentityPayload(
433
+ request.method,
434
+ request.url,
435
+ timestamp,
436
+ publicKeyHex,
437
+ agentId,
438
+ request.body
439
+ );
440
+ const valid = verifyEscrowReceipt(payload, signature, publicKeyBuffer);
441
+ if (!valid) {
442
+ return { valid: false, reason: "invalid_signature" };
443
+ }
444
+ return { valid: true, agentId, publicKey: publicKeyHex };
445
+ }
394
446
 
395
447
  // src/credit/registry-credit-ledger.ts
396
448
  var HTTP_TIMEOUT_MS = 1e4;
@@ -1208,6 +1260,7 @@ export {
1208
1260
  loadOrRepairIdentity,
1209
1261
  ensureIdentity,
1210
1262
  identityAuthPlugin,
1263
+ tryVerifyIdentity,
1211
1264
  createLedger,
1212
1265
  syncCreditsFromRegistry,
1213
1266
  notifyProviderEvent,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getFeedbackForProvider
3
- } from "./chunk-7VZ4M4CT.js";
3
+ } from "./chunk-C56X7EFJ.js";
4
4
  import {
5
5
  loadCoreConfig
6
6
  } from "./chunk-QXRNW4OJ.js";
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-ELFGYC22.js";
4
4
  import {
5
5
  searchCards
6
- } from "./chunk-I4E5ERDN.js";
6
+ } from "./chunk-EC6DIVE5.js";
7
7
  import {
8
8
  getCard
9
- } from "./chunk-7VZ4M4CT.js";
9
+ } from "./chunk-C56X7EFJ.js";
10
10
  import {
11
11
  resolveCanonicalIdentity
12
12
  } from "./chunk-J4RFJVXI.js";
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  createPendingRequest
3
3
  } from "./chunk-5PV5YCSN.js";
4
- import {
5
- getAutonomyTier,
6
- insertAuditEvent
7
- } from "./chunk-G5WKW3ED.js";
8
4
  import {
9
5
  resolveTargetCapability
10
- } from "./chunk-O44N3KR7.js";
6
+ } from "./chunk-FK54LVDR.js";
11
7
  import {
12
8
  fetchRemoteCards
13
9
  } from "./chunk-ELFGYC22.js";
10
+ import {
11
+ getAutonomyTier,
12
+ insertAuditEvent
13
+ } from "./chunk-G5WKW3ED.js";
14
14
  import {
15
15
  searchCards
16
- } from "./chunk-I4E5ERDN.js";
16
+ } from "./chunk-EC6DIVE5.js";
17
17
  import {
18
18
  holdEscrow,
19
19
  releaseEscrow,
@@ -25,7 +25,7 @@ import {
25
25
  import {
26
26
  requestCapability,
27
27
  requestViaRelay
28
- } from "./chunk-W6LOCBWQ.js";
28
+ } from "./chunk-IWAK4WHK.js";
29
29
  import {
30
30
  resolveCanonicalIdentity
31
31
  } from "./chunk-J4RFJVXI.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  signEscrowReceipt
3
- } from "./chunk-YNBZLXYS.js";
3
+ } from "./chunk-65GNX2KC.js";
4
4
  import {
5
5
  AgentBnBError
6
6
  } from "./chunk-UVCNMRPS.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  createLedger
3
- } from "./chunk-LENX5NUW.js";
3
+ } from "./chunk-Z7XWQ63B.js";
4
4
  import {
5
5
  loadOrRepairIdentity
6
- } from "./chunk-5CC6O6SO.js";
6
+ } from "./chunk-AA25Z6FW.js";
7
7
  import {
8
8
  getBalance
9
9
  } from "./chunk-D7NH6YLM.js";
@@ -14,7 +14,7 @@ import {
14
14
  requestCapability,
15
15
  requestCapabilityBatch,
16
16
  requestViaRelay
17
- } from "./chunk-W6LOCBWQ.js";
17
+ } from "./chunk-IWAK4WHK.js";
18
18
  import {
19
19
  AgentBnBError
20
20
  } from "./chunk-UVCNMRPS.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  insertCard
3
- } from "./chunk-7VZ4M4CT.js";
3
+ } from "./chunk-C56X7EFJ.js";
4
4
  import {
5
5
  CapabilityCardSchema
6
6
  } from "./chunk-UVCNMRPS.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  searchCards
3
- } from "./chunk-I4E5ERDN.js";
3
+ } from "./chunk-EC6DIVE5.js";
4
4
 
5
5
  // src/registry/pricing.ts
6
6
  function getPricingStats(db, query) {
@@ -3,20 +3,20 @@ import {
3
3
  } from "./chunk-3MJT4PZG.js";
4
4
  import {
5
5
  scorePeers
6
- } from "./chunk-AMABG5SI.js";
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-I4E5ERDN.js";
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-W6LOCBWQ.js";
19
+ } from "./chunk-IWAK4WHK.js";
20
20
 
21
21
  // src/conductor/decomposition-validator.ts
22
22
  function validateAndNormalizeSubtasks(raw, context) {
@@ -3,22 +3,22 @@ import {
3
3
  buildDraftCard,
4
4
  detectApiKeys,
5
5
  detectOpenPorts
6
- } from "./chunk-G4TF4LB4.js";
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-AW4VSROG.js";
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,
@@ -30,7 +30,7 @@ import {
30
30
  insertCard,
31
31
  listCards,
32
32
  openDatabase
33
- } from "./chunk-7VZ4M4CT.js";
33
+ } from "./chunk-C56X7EFJ.js";
34
34
  import {
35
35
  createAgentRecord,
36
36
  lookupAgent,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  deriveAgentId
3
- } from "./chunk-5CC6O6SO.js";
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-YNBZLXYS.js";
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-TCA63C42.js";
17
+ } from "../chunk-WEZ7PSOE.js";
15
18
  import {
16
19
  getPricingStats
17
- } from "../chunk-G4TF4LB4.js";
18
- import "../chunk-AW4VSROG.js";
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-AMABG5SI.js";
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,24 +43,10 @@ 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-O44N3KR7.js";
42
- import {
43
- fetchRemoteCards,
44
- mergeResults
45
- } from "../chunk-ELFGYC22.js";
46
46
  import {
47
47
  filterCards,
48
48
  searchCards
49
- } from "../chunk-I4E5ERDN.js";
49
+ } from "../chunk-EC6DIVE5.js";
50
50
  import {
51
51
  getBalance,
52
52
  getTransactions,
@@ -59,18 +59,19 @@ import {
59
59
  insertCard,
60
60
  listCards,
61
61
  openDatabase
62
- } from "../chunk-7VZ4M4CT.js";
62
+ } from "../chunk-C56X7EFJ.js";
63
+ import "../chunk-GZUTU6IZ.js";
63
64
  import "../chunk-UPNREF4L.js";
64
65
  import "../chunk-Q5OFZ2JR.js";
65
66
  import "../chunk-QXRNW4OJ.js";
66
67
  import {
67
68
  requestCapability
68
- } from "../chunk-W6LOCBWQ.js";
69
+ } from "../chunk-IWAK4WHK.js";
69
70
  import {
70
71
  generateKeyPair,
71
72
  loadKeyPair,
72
73
  saveKeyPair
73
- } from "../chunk-YNBZLXYS.js";
74
+ } from "../chunk-65GNX2KC.js";
74
75
  import "../chunk-YDGXKH2T.js";
75
76
  import "../chunk-J4RFJVXI.js";
76
77
  import {
@@ -88,7 +89,6 @@ import {
88
89
  saveConfig
89
90
  } from "../chunk-3XPBFF6H.js";
90
91
  import "../chunk-4XTYT4JW.js";
91
- import "../chunk-GZUTU6IZ.js";
92
92
  import "../chunk-3RG5ZIWI.js";
93
93
 
94
94
  // src/cli/index.ts
@@ -241,7 +241,7 @@ Skills: ${skills2.skillCount} skill(s) in ${skills2.path}`);
241
241
  if (!skipServe) {
242
242
  try {
243
243
  const { ProcessGuard } = await import("../process-guard-6324CZDC.js");
244
- const { ServiceCoordinator } = await import("../service-coordinator-FB44QL7L.js");
244
+ const { ServiceCoordinator } = await import("../service-coordinator-ZOZTW2U6.js");
245
245
  const guard = new ProcessGuard(join(initResult.configDir, ".pid"));
246
246
  const coordinator = new ServiceCoordinator(initResult.config, guard);
247
247
  const result = await coordinator.ensureRunning({
@@ -303,7 +303,7 @@ Skills: ${skills2.skillCount} skill(s) in ${skills2.path}`);
303
303
  }
304
304
 
305
305
  // src/cli/index.ts
306
- var VERSION = true ? "9.1.1" : "0.0.0-dev";
306
+ var VERSION = true ? "9.2.0" : "0.0.0-dev";
307
307
  function loadIdentityAuth(owner) {
308
308
  const configDir = getConfigDir();
309
309
  let keys;
@@ -517,7 +517,7 @@ program.command("publish-skills").description("Publish capabilities from skills.
517
517
  process.exit(1);
518
518
  }
519
519
  const { parseSkillsFile } = await import("../skill-config-VYNF7BCY.js");
520
- const { skillConfigToSkill } = await import("../publish-capability-LM4RSQXX.js");
520
+ const { skillConfigToSkill } = await import("../publish-capability-2FMD3K6Z.js");
521
521
  const skillsPath = typeof opts.fromSkills === "string" ? opts.fromSkills : "./skills.yaml";
522
522
  let yamlContent;
523
523
  try {
@@ -1159,7 +1159,7 @@ program.command("serve").description("Start the AgentBnB gateway server").option
1159
1159
  process.exit(1);
1160
1160
  }
1161
1161
  const { ProcessGuard } = await import("../process-guard-6324CZDC.js");
1162
- const { ServiceCoordinator } = await import("../service-coordinator-FB44QL7L.js");
1162
+ const { ServiceCoordinator } = await import("../service-coordinator-ZOZTW2U6.js");
1163
1163
  const port = opts.port ? parseInt(opts.port, 10) : config.gateway_port;
1164
1164
  const registryPort = parseInt(opts.registryPort, 10);
1165
1165
  if (!Number.isFinite(port) || !Number.isFinite(registryPort)) {
@@ -1619,34 +1619,34 @@ openclaw.command("rules").description("Print HEARTBEAT.md rules block (or inject
1619
1619
  }
1620
1620
  });
1621
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) => {
1622
- const { runOpenClawSetup } = await import("../openclaw-setup-HEWZZOY7.js");
1622
+ const { runOpenClawSetup } = await import("../openclaw-setup-4RIZRMXA.js");
1623
1623
  await runOpenClawSetup(opts);
1624
1624
  });
1625
1625
  var skills = openclaw.command("skills").description("Manage shared skills on AgentBnB");
1626
1626
  skills.command("list").description("List all shared skills with stats").action(async () => {
1627
- const { skillsList } = await import("../openclaw-skills-5XLQFRWT.js");
1627
+ const { skillsList } = await import("../openclaw-skills-TQ2JVBRM.js");
1628
1628
  await skillsList({});
1629
1629
  });
1630
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(
1631
1631
  async (opts) => {
1632
- const { skillsAdd } = await import("../openclaw-skills-5XLQFRWT.js");
1632
+ const { skillsAdd } = await import("../openclaw-skills-TQ2JVBRM.js");
1633
1633
  await skillsAdd(opts);
1634
1634
  }
1635
1635
  );
1636
1636
  skills.command("remove <skillId>").description("Remove a skill from AgentBnB").action(async (skillId) => {
1637
- const { skillsRemove } = await import("../openclaw-skills-5XLQFRWT.js");
1637
+ const { skillsRemove } = await import("../openclaw-skills-TQ2JVBRM.js");
1638
1638
  await skillsRemove(skillId);
1639
1639
  });
1640
1640
  skills.command("price <skillId> <price>").description("Update skill price").action(async (skillId, price) => {
1641
- const { skillsPrice } = await import("../openclaw-skills-5XLQFRWT.js");
1641
+ const { skillsPrice } = await import("../openclaw-skills-TQ2JVBRM.js");
1642
1642
  await skillsPrice(skillId, parseFloat(price));
1643
1643
  });
1644
1644
  skills.command("stats").description("Revenue and performance report").option("--days <n>", "Days to look back", parseInt, 7).action(async (opts) => {
1645
- const { skillsStats } = await import("../openclaw-skills-5XLQFRWT.js");
1645
+ const { skillsStats } = await import("../openclaw-skills-TQ2JVBRM.js");
1646
1646
  await skillsStats(opts);
1647
1647
  });
1648
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) => {
1649
- const { conductAction } = await import("../conduct-MALC6HEK.js");
1649
+ const { conductAction } = await import("../conduct-JRLLA4PB.js");
1650
1650
  const result = await conductAction(task, opts);
1651
1651
  if (opts.json) {
1652
1652
  console.log(JSON.stringify(result, null, 2));
@@ -1764,7 +1764,7 @@ skill.command("wrap").description("Wrap a CLI command as a rentable AgentBnB ski
1764
1764
  });
1765
1765
  var did = program.command("did").description("Decentralized Identity commands");
1766
1766
  did.command("show").description("Display local agent DID identifiers").option("--json", "Output as JSON").action(async (opts) => {
1767
- const { didShow, didShowJson } = await import("../did-action-UHUYMA4Y.js");
1767
+ const { didShow, didShowJson } = await import("../did-action-ODWTBVXL.js");
1768
1768
  if (opts.json) {
1769
1769
  await didShowJson();
1770
1770
  } else {
@@ -1773,45 +1773,45 @@ did.command("show").description("Display local agent DID identifiers").option("-
1773
1773
  });
1774
1774
  var vc = program.command("vc").description("Verifiable Credentials commands");
1775
1775
  vc.command("show").description("Display Verifiable Credentials for this agent").option("--json", "Output as JSON").action(async (opts) => {
1776
- const { vcShow } = await import("../vc-action-BWGNQ77Y.js");
1776
+ const { vcShow } = await import("../vc-action-A6VBKERF.js");
1777
1777
  await vcShow(opts);
1778
1778
  });
1779
1779
  var credits = program.command("credits").description("Credit balance and transaction management");
1780
1780
  credits.command("sync").description("Sync local credit balance from remote registry").action(async () => {
1781
- const { creditsSync } = await import("../credits-action-KOUJNR36.js");
1781
+ const { creditsSync } = await import("../credits-action-XERUEDF3.js");
1782
1782
  await creditsSync();
1783
1783
  });
1784
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) => {
1785
- const { creditsHistory } = await import("../credits-action-KOUJNR36.js");
1785
+ const { creditsHistory } = await import("../credits-action-XERUEDF3.js");
1786
1786
  await creditsHistory(opts);
1787
1787
  });
1788
1788
  credits.command("grant <agent_id> <amount>").description("Admin: grant credits to an agent (requires ADMIN_TOKEN)").action(async (agentId, amount) => {
1789
- const { creditsGrant } = await import("../credits-action-KOUJNR36.js");
1789
+ const { creditsGrant } = await import("../credits-action-XERUEDF3.js");
1790
1790
  await creditsGrant(agentId, amount);
1791
1791
  });
1792
1792
  var sessionCmd = program.command("session").description("Manage interactive agent-to-agent sessions");
1793
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) => {
1794
- const { sessionOpen } = await import("../session-action-GYITLYOE.js");
1794
+ const { sessionOpen } = await import("../session-action-OSBZB4TX.js");
1795
1795
  await sessionOpen(cardId, opts);
1796
1796
  });
1797
1797
  sessionCmd.command("send <session_id> <message>").description("Send a message within an active session").action(async (sessionId, message) => {
1798
- const { sessionSend } = await import("../session-action-GYITLYOE.js");
1798
+ const { sessionSend } = await import("../session-action-OSBZB4TX.js");
1799
1799
  await sessionSend(sessionId, message);
1800
1800
  });
1801
1801
  sessionCmd.command("end <session_id>").description("End an active session").option("--reason <reason>", "End reason: completed, cancelled", "completed").action(async (sessionId, opts) => {
1802
- const { sessionEnd } = await import("../session-action-GYITLYOE.js");
1802
+ const { sessionEnd } = await import("../session-action-OSBZB4TX.js");
1803
1803
  await sessionEnd(sessionId, opts.reason);
1804
1804
  });
1805
1805
  sessionCmd.command("list").description("List active sessions").action(async () => {
1806
- const { sessionList } = await import("../session-action-GYITLYOE.js");
1806
+ const { sessionList } = await import("../session-action-OSBZB4TX.js");
1807
1807
  await sessionList();
1808
1808
  });
1809
1809
  sessionCmd.command("status <session_id>").description("Show session details").action(async (sessionId) => {
1810
- const { sessionStatus } = await import("../session-action-GYITLYOE.js");
1810
+ const { sessionStatus } = await import("../session-action-OSBZB4TX.js");
1811
1811
  await sessionStatus(sessionId);
1812
1812
  });
1813
1813
  program.command("mcp-server").description("Start an MCP (Model Context Protocol) server for IDE integration").action(async () => {
1814
- const { startMcpServer } = await import("../server-QIAO3YSK.js");
1814
+ const { startMcpServer } = await import("../server-UPOPLZ24.js");
1815
1815
  await startMcpServer();
1816
1816
  });
1817
1817
  await program.parseAsync(process.argv);
@@ -6,8 +6,8 @@ import {
6
6
  requestCapability,
7
7
  requestCapabilityBatch,
8
8
  requestViaRelay
9
- } from "./chunk-W6LOCBWQ.js";
10
- import "./chunk-YNBZLXYS.js";
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 {