agentbnb 8.4.7 → 9.0.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 +60 -17
- package/dist/{card-BN643ZOY.js → card-6KL6L4GF.js} +2 -2
- package/dist/{card-HYTD2BJQ.js → card-NKQFB3HD.js} +3 -3
- package/dist/{chunk-UNXCKETK.js → chunk-27VHBFUP.js} +11 -9
- package/dist/{chunk-CFHCG5FE.js → chunk-2GWOFP24.js} +1 -1
- package/dist/{chunk-PQIP7EXY.js → chunk-3466S65P.js} +6 -2
- package/dist/{chunk-SME5LJTE.js → chunk-4FK45WJI.js} +4 -4
- package/dist/chunk-5CC6O6SO.js +152 -0
- package/dist/{chunk-MZSVVG55.js → chunk-5PV5YCSN.js} +1 -1
- package/dist/{chunk-5SIGMKOD.js → chunk-77HAL2ZL.js} +14 -5
- package/dist/{chunk-EKLVNIIY.js → chunk-AZEGOADG.js} +5 -5
- package/dist/{chunk-NQANA6WH.js → chunk-BNS76U6K.js} +2 -2
- package/dist/{chunk-JDAFLPR7.js → chunk-BOBND3QV.js} +5 -5
- package/dist/{chunk-VRPLSK34.js → chunk-D4IJQ3TK.js} +1 -1
- package/dist/{chunk-4NFJ3VYZ.js → chunk-DYJ7YGBM.js} +6 -2
- package/dist/{chunk-PIPCGRCR.js → chunk-ELFGYC22.js} +1 -1
- package/dist/{chunk-WTHMHNKC.js → chunk-J4RFJVXI.js} +1 -1
- package/dist/{chunk-IMLFBU3H.js → chunk-LLL3KYEM.js} +8 -8
- package/dist/{chunk-VAAEBCMU.js → chunk-N3TXLBGK.js} +2 -2
- package/dist/{chunk-COA2D7QM.js → chunk-NLQCHO7N.js} +2 -2
- package/dist/{chunk-WK2QSO4E.js → chunk-NZTLBAML.js} +7 -141
- package/dist/{chunk-HU46M4JA.js → chunk-P3FDT7G5.js} +4 -4
- package/dist/{chunk-ZU2TP7CN.js → chunk-PG3CLSAH.js} +1 -1
- package/dist/chunk-PMVHKTFG.js +199 -0
- package/dist/{chunk-OPRCWXD5.js → chunk-SLZBE2I5.js} +198 -5
- package/dist/{chunk-AZKVGC5T.js → chunk-TLT6F35V.js} +1 -1
- package/dist/{chunk-2PP5MQPD.js → chunk-UIPGGNRC.js} +4 -4
- package/dist/{chunk-NX27AFPA.js → chunk-UR3MISL2.js} +1 -1
- package/dist/{chunk-I7KWA7OB.js → chunk-UVCNMRPS.js} +4 -0
- package/dist/{chunk-RF4A5X5U.js → chunk-W5J3PEQ6.js} +6 -4
- package/dist/{chunk-YKMBFQC2.js → chunk-W6LOCBWQ.js} +2 -2
- package/dist/{chunk-U6LP4KWN.js → chunk-YDGXKH2T.js} +1 -1
- package/dist/{chunk-GIEJVKZZ.js → chunk-YNBZLXYS.js} +1 -1
- package/dist/cli/index.js +75 -61
- package/dist/{client-UQBGCIPA.js → client-YB3IYO3S.js} +3 -3
- package/dist/conduct-4NPMP4GL.js +25 -0
- package/dist/{conduct-TE4YAXKR.js → conduct-5FTKINWU.js} +16 -16
- package/dist/{conductor-mode-2F5OP7Q4.js → conductor-mode-NRSVP2AU.js} +157 -7
- package/dist/{conductor-mode-TLIQMU4A.js → conductor-mode-ZWC5BZUL.js} +167 -15
- package/dist/did-action-MQLDT4RF.js +50 -0
- package/dist/{execute-VRTABQ6F.js → execute-DNRNU3HM.js} +5 -5
- package/dist/execute-JTPFFEH6.js +20 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.js +405 -32
- package/dist/{openclaw-setup-5ZWWRVF3.js → openclaw-setup-HVEVSKXQ.js} +14 -13
- package/dist/{openclaw-skills-6ZWQJ5V6.js → openclaw-skills-QLC4D6DZ.js} +12 -2
- package/dist/{process-guard-TNSUNHSR.js → process-guard-QDBIOLY4.js} +1 -1
- package/dist/{publish-capability-GNH5FHKG.js → publish-capability-FOCHYNYE.js} +4 -4
- package/dist/{reliability-metrics-G7LPUYJD.js → reliability-metrics-JSOY3PNW.js} +1 -1
- package/dist/{reliability-metrics-RRUKJ4ME.js → reliability-metrics-KKUFFVB6.js} +3 -3
- package/dist/{request-XWEOIVB3.js → request-WX3VLXBT.js} +14 -14
- package/dist/{serve-skill-UD7TLSRN.js → serve-skill-C7JU24CF.js} +14 -13
- package/dist/{server-XWTGBJHV.js → server-Z6P3AHKN.js} +15 -13
- package/dist/{service-coordinator-RN7GOLLC.js → service-coordinator-PLUPMPSC.js} +181 -27
- package/dist/skills/agentbnb/bootstrap.js +170 -20
- package/dist/{store-4Z446745.js → store-S22F3I7G.js} +3 -3
- package/dist/vc-action-SUD7TMN2.js +75 -0
- package/dist/websocket-client-5CRE36Z5.js +7 -0
- package/dist/{websocket-client-SNDF3B6N.js → websocket-client-WHEHIYIZ.js} +1 -1
- package/package.json +1 -1
- package/dist/conduct-2RD45QKB.js +0 -25
- package/dist/execute-6EJSVBFB.js +0 -19
- package/dist/websocket-client-3U27WJUU.js +0 -7
|
@@ -2,10 +2,10 @@ import {
|
|
|
2
2
|
requestCapability,
|
|
3
3
|
requestCapabilityBatch,
|
|
4
4
|
requestViaRelay
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-W6LOCBWQ.js";
|
|
6
6
|
import {
|
|
7
7
|
RelayClient
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-DYJ7YGBM.js";
|
|
9
9
|
import {
|
|
10
10
|
findPeer
|
|
11
11
|
} from "./chunk-HLUEOLSZ.js";
|
|
@@ -17,13 +17,13 @@ import {
|
|
|
17
17
|
resolveTargetCapability,
|
|
18
18
|
searchCards,
|
|
19
19
|
settleEscrow
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-BNS76U6K.js";
|
|
21
21
|
import {
|
|
22
22
|
resolveCanonicalIdentity
|
|
23
23
|
} from "./chunk-EE3V3DXK.js";
|
|
24
24
|
import {
|
|
25
25
|
AgentBnBError
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-UVCNMRPS.js";
|
|
27
27
|
|
|
28
28
|
// src/conductor/decomposition-validator.ts
|
|
29
29
|
function validateAndNormalizeSubtasks(raw, context) {
|
|
@@ -1281,6 +1281,196 @@ async function orchestrate(opts) {
|
|
|
1281
1281
|
};
|
|
1282
1282
|
}
|
|
1283
1283
|
|
|
1284
|
+
// src/auth/ucan.ts
|
|
1285
|
+
import { randomUUID as randomUUID5 } from "crypto";
|
|
1286
|
+
import { sign, verify, createPrivateKey, createPublicKey } from "crypto";
|
|
1287
|
+
|
|
1288
|
+
// src/auth/canonical-json.ts
|
|
1289
|
+
function escapeString(s) {
|
|
1290
|
+
let result = '"';
|
|
1291
|
+
for (let i = 0; i < s.length; i++) {
|
|
1292
|
+
const ch = s.charCodeAt(i);
|
|
1293
|
+
if (ch === 8) {
|
|
1294
|
+
result += "\\b";
|
|
1295
|
+
} else if (ch === 9) {
|
|
1296
|
+
result += "\\t";
|
|
1297
|
+
} else if (ch === 10) {
|
|
1298
|
+
result += "\\n";
|
|
1299
|
+
} else if (ch === 12) {
|
|
1300
|
+
result += "\\f";
|
|
1301
|
+
} else if (ch === 13) {
|
|
1302
|
+
result += "\\r";
|
|
1303
|
+
} else if (ch === 34) {
|
|
1304
|
+
result += '\\"';
|
|
1305
|
+
} else if (ch === 92) {
|
|
1306
|
+
result += "\\\\";
|
|
1307
|
+
} else if (ch < 32) {
|
|
1308
|
+
result += "\\u" + ch.toString(16).padStart(4, "0");
|
|
1309
|
+
} else {
|
|
1310
|
+
result += s[i];
|
|
1311
|
+
}
|
|
1312
|
+
}
|
|
1313
|
+
result += '"';
|
|
1314
|
+
return result;
|
|
1315
|
+
}
|
|
1316
|
+
function serializeNumber(n) {
|
|
1317
|
+
if (!Number.isFinite(n)) {
|
|
1318
|
+
throw new AgentBnBError(
|
|
1319
|
+
`Cannot canonicalize non-finite number: ${String(n)}`,
|
|
1320
|
+
"CANONICAL_JSON_ERROR"
|
|
1321
|
+
);
|
|
1322
|
+
}
|
|
1323
|
+
if (Object.is(n, -0)) {
|
|
1324
|
+
return "0";
|
|
1325
|
+
}
|
|
1326
|
+
return JSON.stringify(n);
|
|
1327
|
+
}
|
|
1328
|
+
function canonicalize(value) {
|
|
1329
|
+
return serializeValue(value);
|
|
1330
|
+
}
|
|
1331
|
+
function serializeValue(value) {
|
|
1332
|
+
if (value === null) {
|
|
1333
|
+
return "null";
|
|
1334
|
+
}
|
|
1335
|
+
switch (typeof value) {
|
|
1336
|
+
case "boolean":
|
|
1337
|
+
return value ? "true" : "false";
|
|
1338
|
+
case "number":
|
|
1339
|
+
return serializeNumber(value);
|
|
1340
|
+
case "string":
|
|
1341
|
+
return escapeString(value);
|
|
1342
|
+
case "bigint":
|
|
1343
|
+
throw new AgentBnBError(
|
|
1344
|
+
"Cannot canonicalize BigInt values",
|
|
1345
|
+
"CANONICAL_JSON_ERROR"
|
|
1346
|
+
);
|
|
1347
|
+
case "symbol":
|
|
1348
|
+
throw new AgentBnBError(
|
|
1349
|
+
"Cannot canonicalize Symbol values",
|
|
1350
|
+
"CANONICAL_JSON_ERROR"
|
|
1351
|
+
);
|
|
1352
|
+
case "function":
|
|
1353
|
+
throw new AgentBnBError(
|
|
1354
|
+
"Cannot canonicalize function values",
|
|
1355
|
+
"CANONICAL_JSON_ERROR"
|
|
1356
|
+
);
|
|
1357
|
+
case "undefined":
|
|
1358
|
+
throw new AgentBnBError(
|
|
1359
|
+
"Cannot canonicalize undefined at top level",
|
|
1360
|
+
"CANONICAL_JSON_ERROR"
|
|
1361
|
+
);
|
|
1362
|
+
case "object": {
|
|
1363
|
+
if (Array.isArray(value)) {
|
|
1364
|
+
return serializeArray(value);
|
|
1365
|
+
}
|
|
1366
|
+
return serializeObject(value);
|
|
1367
|
+
}
|
|
1368
|
+
default:
|
|
1369
|
+
throw new AgentBnBError(
|
|
1370
|
+
`Cannot canonicalize unknown type: ${typeof value}`,
|
|
1371
|
+
"CANONICAL_JSON_ERROR"
|
|
1372
|
+
);
|
|
1373
|
+
}
|
|
1374
|
+
}
|
|
1375
|
+
function serializeArray(arr) {
|
|
1376
|
+
const elements = arr.map((item) => serializeValue(item));
|
|
1377
|
+
return "[" + elements.join(",") + "]";
|
|
1378
|
+
}
|
|
1379
|
+
function serializeObject(obj) {
|
|
1380
|
+
const keys = Object.keys(obj).sort();
|
|
1381
|
+
const entries = [];
|
|
1382
|
+
for (const key of keys) {
|
|
1383
|
+
const val = obj[key];
|
|
1384
|
+
if (val === void 0) {
|
|
1385
|
+
continue;
|
|
1386
|
+
}
|
|
1387
|
+
entries.push(escapeString(key) + ":" + serializeValue(val));
|
|
1388
|
+
}
|
|
1389
|
+
return "{" + entries.join(",") + "}";
|
|
1390
|
+
}
|
|
1391
|
+
|
|
1392
|
+
// src/auth/ucan.ts
|
|
1393
|
+
var UCAN_HEADER = {
|
|
1394
|
+
alg: "EdDSA",
|
|
1395
|
+
typ: "JWT",
|
|
1396
|
+
ucv: "0.10.0"
|
|
1397
|
+
};
|
|
1398
|
+
function toBase64Url(data) {
|
|
1399
|
+
const buf = typeof data === "string" ? Buffer.from(data, "utf-8") : data;
|
|
1400
|
+
return buf.toString("base64url");
|
|
1401
|
+
}
|
|
1402
|
+
function fromBase64Url(encoded) {
|
|
1403
|
+
return Buffer.from(encoded, "base64url").toString("utf-8");
|
|
1404
|
+
}
|
|
1405
|
+
function createUCAN(opts) {
|
|
1406
|
+
const payload = {
|
|
1407
|
+
iss: opts.issuerDid,
|
|
1408
|
+
aud: opts.audienceDid,
|
|
1409
|
+
exp: opts.expiresAt,
|
|
1410
|
+
nnc: randomUUID5(),
|
|
1411
|
+
att: opts.attenuations,
|
|
1412
|
+
prf: opts.proofs ?? []
|
|
1413
|
+
};
|
|
1414
|
+
if (opts.notBefore !== void 0) {
|
|
1415
|
+
payload.nbf = opts.notBefore;
|
|
1416
|
+
}
|
|
1417
|
+
if (opts.facts !== void 0) {
|
|
1418
|
+
payload.fct = opts.facts;
|
|
1419
|
+
}
|
|
1420
|
+
const headerEncoded = toBase64Url(canonicalize(UCAN_HEADER));
|
|
1421
|
+
const payloadEncoded = toBase64Url(canonicalize(payload));
|
|
1422
|
+
const signingInput = `${headerEncoded}.${payloadEncoded}`;
|
|
1423
|
+
const keyObject = createPrivateKey({ key: opts.signerKey, format: "der", type: "pkcs8" });
|
|
1424
|
+
const sig = sign(null, Buffer.from(signingInput, "utf-8"), keyObject);
|
|
1425
|
+
const signatureEncoded = sig.toString("base64url");
|
|
1426
|
+
return `${signingInput}.${signatureEncoded}`;
|
|
1427
|
+
}
|
|
1428
|
+
function verifyUCAN(token, issuerPublicKey) {
|
|
1429
|
+
try {
|
|
1430
|
+
const parts = token.split(".");
|
|
1431
|
+
if (parts.length !== 3) {
|
|
1432
|
+
return { valid: false, reason: "Invalid token format: expected 3 parts" };
|
|
1433
|
+
}
|
|
1434
|
+
const signingInput = `${parts[0]}.${parts[1]}`;
|
|
1435
|
+
const signatureBuffer = Buffer.from(parts[2], "base64url");
|
|
1436
|
+
const keyObject = createPublicKey({ key: issuerPublicKey, format: "der", type: "spki" });
|
|
1437
|
+
const isValid = verify(null, Buffer.from(signingInput, "utf-8"), keyObject, signatureBuffer);
|
|
1438
|
+
if (!isValid) {
|
|
1439
|
+
return { valid: false, reason: "Signature verification failed" };
|
|
1440
|
+
}
|
|
1441
|
+
return { valid: true };
|
|
1442
|
+
} catch (err) {
|
|
1443
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
1444
|
+
return { valid: false, reason: `Verification error: ${message}` };
|
|
1445
|
+
}
|
|
1446
|
+
}
|
|
1447
|
+
function decodeUCAN(token) {
|
|
1448
|
+
const parts = token.split(".");
|
|
1449
|
+
if (parts.length !== 3) {
|
|
1450
|
+
throw new AgentBnBError(
|
|
1451
|
+
`Invalid UCAN token format: expected 3 dot-separated parts, got ${parts.length}`,
|
|
1452
|
+
"UCAN_INVALID"
|
|
1453
|
+
);
|
|
1454
|
+
}
|
|
1455
|
+
let header;
|
|
1456
|
+
let payload;
|
|
1457
|
+
try {
|
|
1458
|
+
header = JSON.parse(fromBase64Url(parts[0]));
|
|
1459
|
+
} catch {
|
|
1460
|
+
throw new AgentBnBError("Invalid UCAN token: failed to decode header", "UCAN_INVALID");
|
|
1461
|
+
}
|
|
1462
|
+
try {
|
|
1463
|
+
payload = JSON.parse(fromBase64Url(parts[1]));
|
|
1464
|
+
} catch {
|
|
1465
|
+
throw new AgentBnBError("Invalid UCAN token: failed to decode payload", "UCAN_INVALID");
|
|
1466
|
+
}
|
|
1467
|
+
return {
|
|
1468
|
+
header,
|
|
1469
|
+
payload,
|
|
1470
|
+
signature: parts[2]
|
|
1471
|
+
};
|
|
1472
|
+
}
|
|
1473
|
+
|
|
1284
1474
|
export {
|
|
1285
1475
|
interpolateObject,
|
|
1286
1476
|
validateAndNormalizeSubtasks,
|
|
@@ -1297,5 +1487,8 @@ export {
|
|
|
1297
1487
|
BudgetController,
|
|
1298
1488
|
DEFAULT_BUDGET_CONFIG,
|
|
1299
1489
|
BudgetManager,
|
|
1300
|
-
orchestrate
|
|
1490
|
+
orchestrate,
|
|
1491
|
+
createUCAN,
|
|
1492
|
+
verifyUCAN,
|
|
1493
|
+
decodeUCAN
|
|
1301
1494
|
};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
fetchRemoteCards
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ELFGYC22.js";
|
|
4
4
|
import {
|
|
5
5
|
searchCards
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-P3FDT7G5.js";
|
|
7
7
|
import {
|
|
8
8
|
getCard
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-NLQCHO7N.js";
|
|
10
10
|
import {
|
|
11
11
|
resolveCanonicalIdentity
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-J4RFJVXI.js";
|
|
13
13
|
|
|
14
14
|
// src/gateway/resolve-target-capability.ts
|
|
15
15
|
function canQueryLocalDb(db) {
|
|
@@ -19,6 +19,8 @@ var CapabilityCardSchema = z.object({
|
|
|
19
19
|
owner: z.string().min(1),
|
|
20
20
|
/** V8: Cryptographic agent identity (Ed25519 public key hash). */
|
|
21
21
|
agent_id: z.string().optional(),
|
|
22
|
+
/** W3C Decentralized Identifier (e.g. did:agentbnb:<agent_id>). */
|
|
23
|
+
did: z.string().optional(),
|
|
22
24
|
name: z.string().min(1).max(100),
|
|
23
25
|
description: z.string().max(500),
|
|
24
26
|
level: z.union([z.literal(1), z.literal(2), z.literal(3)]),
|
|
@@ -163,6 +165,8 @@ var CapabilityCardV2Schema = z.object({
|
|
|
163
165
|
owner: z.string().min(1),
|
|
164
166
|
/** V8: Cryptographic agent identity (Ed25519 public key hash). */
|
|
165
167
|
agent_id: z.string().optional(),
|
|
168
|
+
/** W3C Decentralized Identifier (e.g. did:agentbnb:<agent_id>). */
|
|
169
|
+
did: z.string().optional(),
|
|
166
170
|
/** Agent display name — was 'name' in v1.0. */
|
|
167
171
|
agent_name: z.string().min(1).max(100),
|
|
168
172
|
/** Short one-liner shown in Hub v2 Identity Header. */
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
|
-
createLedger
|
|
2
|
+
createLedger
|
|
3
|
+
} from "./chunk-NZTLBAML.js";
|
|
4
|
+
import {
|
|
3
5
|
loadOrRepairIdentity
|
|
4
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-5CC6O6SO.js";
|
|
5
7
|
import {
|
|
6
8
|
getBalance
|
|
7
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-P3FDT7G5.js";
|
|
8
10
|
import {
|
|
9
11
|
canonicalizeCreditOwner
|
|
10
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-YDGXKH2T.js";
|
|
11
13
|
import {
|
|
12
14
|
getConfigDir
|
|
13
15
|
} from "./chunk-3XPBFF6H.js";
|
package/dist/cli/index.js
CHANGED
|
@@ -5,56 +5,58 @@ import {
|
|
|
5
5
|
injectHeartbeatSection,
|
|
6
6
|
performInit,
|
|
7
7
|
publishFromSoulV2
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-27VHBFUP.js";
|
|
9
9
|
import {
|
|
10
10
|
AutoRequestor,
|
|
11
11
|
requestViaTemporaryRelay
|
|
12
|
-
} from "../chunk-
|
|
12
|
+
} from "../chunk-LLL3KYEM.js";
|
|
13
13
|
import {
|
|
14
14
|
BudgetManager,
|
|
15
15
|
DEFAULT_BUDGET_CONFIG
|
|
16
|
-
} from "../chunk-
|
|
16
|
+
} from "../chunk-TLT6F35V.js";
|
|
17
17
|
import {
|
|
18
18
|
discoverLocalAgents,
|
|
19
19
|
resolveSelfCli
|
|
20
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-D4IJQ3TK.js";
|
|
21
21
|
import {
|
|
22
22
|
getPricingStats
|
|
23
|
-
} from "../chunk-
|
|
24
|
-
import "../chunk-
|
|
23
|
+
} from "../chunk-2GWOFP24.js";
|
|
24
|
+
import "../chunk-5PV5YCSN.js";
|
|
25
25
|
import {
|
|
26
26
|
DEFAULT_AUTONOMY_CONFIG
|
|
27
27
|
} from "../chunk-G5WKW3ED.js";
|
|
28
28
|
import {
|
|
29
29
|
syncCreditsFromRegistry
|
|
30
|
-
} from "../chunk-
|
|
30
|
+
} from "../chunk-W5J3PEQ6.js";
|
|
31
|
+
import {
|
|
32
|
+
createLedger
|
|
33
|
+
} from "../chunk-NZTLBAML.js";
|
|
31
34
|
import {
|
|
32
|
-
createLedger,
|
|
33
35
|
ensureIdentity
|
|
34
|
-
} from "../chunk-
|
|
35
|
-
import "../chunk-
|
|
36
|
+
} from "../chunk-5CC6O6SO.js";
|
|
37
|
+
import "../chunk-UIPGGNRC.js";
|
|
36
38
|
import {
|
|
37
39
|
fetchRemoteCards,
|
|
38
40
|
mergeResults
|
|
39
|
-
} from "../chunk-
|
|
41
|
+
} from "../chunk-ELFGYC22.js";
|
|
40
42
|
import {
|
|
41
43
|
filterCards,
|
|
42
44
|
getBalance,
|
|
43
45
|
getTransactions,
|
|
44
46
|
openCreditDb,
|
|
45
47
|
searchCards
|
|
46
|
-
} from "../chunk-
|
|
47
|
-
import "../chunk-
|
|
48
|
-
import "../chunk-
|
|
48
|
+
} from "../chunk-P3FDT7G5.js";
|
|
49
|
+
import "../chunk-UR3MISL2.js";
|
|
50
|
+
import "../chunk-3466S65P.js";
|
|
49
51
|
import {
|
|
50
52
|
requestCapability
|
|
51
|
-
} from "../chunk-
|
|
53
|
+
} from "../chunk-W6LOCBWQ.js";
|
|
52
54
|
import {
|
|
53
55
|
generateKeyPair,
|
|
54
56
|
loadKeyPair,
|
|
55
57
|
saveKeyPair
|
|
56
|
-
} from "../chunk-
|
|
57
|
-
import "../chunk-
|
|
58
|
+
} from "../chunk-YNBZLXYS.js";
|
|
59
|
+
import "../chunk-YDGXKH2T.js";
|
|
58
60
|
import {
|
|
59
61
|
findPeer,
|
|
60
62
|
loadPeers,
|
|
@@ -66,7 +68,7 @@ import {
|
|
|
66
68
|
loadConfig,
|
|
67
69
|
saveConfig
|
|
68
70
|
} from "../chunk-3XPBFF6H.js";
|
|
69
|
-
import "../chunk-
|
|
71
|
+
import "../chunk-N3TXLBGK.js";
|
|
70
72
|
import {
|
|
71
73
|
attachCanonicalAgentId,
|
|
72
74
|
deleteCard,
|
|
@@ -74,11 +76,11 @@ import {
|
|
|
74
76
|
insertCard,
|
|
75
77
|
listCards,
|
|
76
78
|
openDatabase
|
|
77
|
-
} from "../chunk-
|
|
78
|
-
import "../chunk-
|
|
79
|
+
} from "../chunk-NLQCHO7N.js";
|
|
80
|
+
import "../chunk-J4RFJVXI.js";
|
|
79
81
|
import {
|
|
80
82
|
AnyCardSchema
|
|
81
|
-
} from "../chunk-
|
|
83
|
+
} from "../chunk-UVCNMRPS.js";
|
|
82
84
|
|
|
83
85
|
// src/cli/index.ts
|
|
84
86
|
import { Command } from "commander";
|
|
@@ -229,8 +231,8 @@ Skills: ${skills2.skillCount} skill(s) in ${skills2.path}`);
|
|
|
229
231
|
let daemonStatus = { running: false, reason: "skipped" };
|
|
230
232
|
if (!skipServe) {
|
|
231
233
|
try {
|
|
232
|
-
const { ProcessGuard } = await import("../process-guard-
|
|
233
|
-
const { ServiceCoordinator } = await import("../service-coordinator-
|
|
234
|
+
const { ProcessGuard } = await import("../process-guard-QDBIOLY4.js");
|
|
235
|
+
const { ServiceCoordinator } = await import("../service-coordinator-PLUPMPSC.js");
|
|
234
236
|
const guard = new ProcessGuard(join(initResult.configDir, ".pid"));
|
|
235
237
|
const coordinator = new ServiceCoordinator(initResult.config, guard);
|
|
236
238
|
const result = await coordinator.ensureRunning({
|
|
@@ -292,7 +294,7 @@ Skills: ${skills2.skillCount} skill(s) in ${skills2.path}`);
|
|
|
292
294
|
}
|
|
293
295
|
|
|
294
296
|
// src/cli/index.ts
|
|
295
|
-
var VERSION = true ? "
|
|
297
|
+
var VERSION = true ? "9.0.0" : "0.0.0-dev";
|
|
296
298
|
function loadIdentityAuth(owner) {
|
|
297
299
|
const configDir = getConfigDir();
|
|
298
300
|
let keys;
|
|
@@ -506,7 +508,7 @@ program.command("publish-skills").description("Publish capabilities from skills.
|
|
|
506
508
|
process.exit(1);
|
|
507
509
|
}
|
|
508
510
|
const { parseSkillsFile } = await import("../skill-config-5O2VR546.js");
|
|
509
|
-
const { skillConfigToSkill } = await import("../publish-capability-
|
|
511
|
+
const { skillConfigToSkill } = await import("../publish-capability-FOCHYNYE.js");
|
|
510
512
|
const skillsPath = typeof opts.fromSkills === "string" ? opts.fromSkills : "./skills.yaml";
|
|
511
513
|
let yamlContent;
|
|
512
514
|
try {
|
|
@@ -715,35 +717,33 @@ ${discovered.length} agent(s) found on local network`);
|
|
|
715
717
|
return;
|
|
716
718
|
}
|
|
717
719
|
const col = (s, w) => (s ?? "").slice(0, w).padEnd(w);
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
);
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
console.log(
|
|
741
|
-
col(shortId, 16) + " " + col(displayName, 32) + " " + col(String(card.level ?? ""), 3) + " " + col(String(card.pricing?.credits_per_call ?? ""), 7) + " " + col(card.availability?.online ? "yes" : "no", 6)
|
|
742
|
-
);
|
|
720
|
+
let totalSkills = 0;
|
|
721
|
+
for (const card of outputCards) {
|
|
722
|
+
const shortId = card.id.slice(0, 8) + "...";
|
|
723
|
+
const displayName = card.name ?? card.agent_name ?? "";
|
|
724
|
+
const online = card.availability?.online ? "online" : "offline";
|
|
725
|
+
const source = "source" in card ? card.source : "local";
|
|
726
|
+
const tags = hasRemote ? `${source}, ${online}` : online;
|
|
727
|
+
console.log(`
|
|
728
|
+
${displayName} (${shortId}) [${tags}]`);
|
|
729
|
+
const raw = card;
|
|
730
|
+
const skills2 = Array.isArray(raw["skills"]) ? raw["skills"] : [];
|
|
731
|
+
if (skills2.length > 0) {
|
|
732
|
+
console.log(" Skills:");
|
|
733
|
+
for (const skill of skills2) {
|
|
734
|
+
const price = String(skill.pricing?.credits_per_call ?? "?");
|
|
735
|
+
const desc = (skill.description ?? "").slice(0, 50);
|
|
736
|
+
console.log(` ${col(skill.id, 24)} ${col(price + " cr", 8)} ${desc}`);
|
|
737
|
+
}
|
|
738
|
+
totalSkills += skills2.length;
|
|
739
|
+
} else if (card.pricing?.credits_per_call != null) {
|
|
740
|
+
console.log(` ${card.pricing.credits_per_call} cr/call`);
|
|
741
|
+
totalSkills += 1;
|
|
743
742
|
}
|
|
744
743
|
}
|
|
744
|
+
const skillsSuffix = totalSkills > 0 ? `, ${totalSkills} skills total` : "";
|
|
745
745
|
console.log(`
|
|
746
|
-
${outputCards.length}
|
|
746
|
+
${outputCards.length} agent(s) found${skillsSuffix}`);
|
|
747
747
|
});
|
|
748
748
|
program.command("request [card-id]").description("Request a capability from another agent \u2014 direct (card-id) or auto (--query)").option("--params <json>", "Input parameters as JSON string", "{}").option("--peer <name>", "Peer name to send request to (resolves URL+token from peer registry)").option("--skill <id>", "Skill ID within a v2.0 card").option("--cost <credits>", "Credits to commit (required for cross-machine peer requests)").option("--query <text>", "Search query for capability gap (triggers auto-request flow)").option("--max-cost <credits>", "Maximum credits to spend on auto-request (default: 50)").option("--timeout <ms>", "Request timeout override in milliseconds").option("--no-receipt", "Skip signed escrow receipt (local-only mode)").option("--batch <file>", "Path to JSON file with batch request payload { requests, strategy, total_budget }").option("--json", "Output as JSON").action(async (cardId, opts) => {
|
|
749
749
|
const config = loadConfig();
|
|
@@ -1117,8 +1117,8 @@ program.command("serve").description("Start the AgentBnB gateway server").option
|
|
|
1117
1117
|
console.error("Error: not initialized. Run `agentbnb init` first.");
|
|
1118
1118
|
process.exit(1);
|
|
1119
1119
|
}
|
|
1120
|
-
const { ProcessGuard } = await import("../process-guard-
|
|
1121
|
-
const { ServiceCoordinator } = await import("../service-coordinator-
|
|
1120
|
+
const { ProcessGuard } = await import("../process-guard-QDBIOLY4.js");
|
|
1121
|
+
const { ServiceCoordinator } = await import("../service-coordinator-PLUPMPSC.js");
|
|
1122
1122
|
const port = opts.port ? parseInt(opts.port, 10) : config.gateway_port;
|
|
1123
1123
|
const registryPort = parseInt(opts.registryPort, 10);
|
|
1124
1124
|
if (!Number.isFinite(port) || !Number.isFinite(registryPort)) {
|
|
@@ -1492,34 +1492,34 @@ openclaw.command("rules").description("Print HEARTBEAT.md rules block (or inject
|
|
|
1492
1492
|
}
|
|
1493
1493
|
});
|
|
1494
1494
|
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) => {
|
|
1495
|
-
const { runOpenClawSetup } = await import("../openclaw-setup-
|
|
1495
|
+
const { runOpenClawSetup } = await import("../openclaw-setup-HVEVSKXQ.js");
|
|
1496
1496
|
await runOpenClawSetup(opts);
|
|
1497
1497
|
});
|
|
1498
1498
|
var skills = openclaw.command("skills").description("Manage shared skills on AgentBnB");
|
|
1499
1499
|
skills.command("list").description("List all shared skills with stats").action(async () => {
|
|
1500
|
-
const { skillsList } = await import("../openclaw-skills-
|
|
1500
|
+
const { skillsList } = await import("../openclaw-skills-QLC4D6DZ.js");
|
|
1501
1501
|
await skillsList({});
|
|
1502
1502
|
});
|
|
1503
1503
|
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(
|
|
1504
1504
|
async (opts) => {
|
|
1505
|
-
const { skillsAdd } = await import("../openclaw-skills-
|
|
1505
|
+
const { skillsAdd } = await import("../openclaw-skills-QLC4D6DZ.js");
|
|
1506
1506
|
await skillsAdd(opts);
|
|
1507
1507
|
}
|
|
1508
1508
|
);
|
|
1509
1509
|
skills.command("remove <skillId>").description("Remove a skill from AgentBnB").action(async (skillId) => {
|
|
1510
|
-
const { skillsRemove } = await import("../openclaw-skills-
|
|
1510
|
+
const { skillsRemove } = await import("../openclaw-skills-QLC4D6DZ.js");
|
|
1511
1511
|
await skillsRemove(skillId);
|
|
1512
1512
|
});
|
|
1513
1513
|
skills.command("price <skillId> <price>").description("Update skill price").action(async (skillId, price) => {
|
|
1514
|
-
const { skillsPrice } = await import("../openclaw-skills-
|
|
1514
|
+
const { skillsPrice } = await import("../openclaw-skills-QLC4D6DZ.js");
|
|
1515
1515
|
await skillsPrice(skillId, parseFloat(price));
|
|
1516
1516
|
});
|
|
1517
1517
|
skills.command("stats").description("Revenue and performance report").option("--days <n>", "Days to look back", parseInt, 7).action(async (opts) => {
|
|
1518
|
-
const { skillsStats } = await import("../openclaw-skills-
|
|
1518
|
+
const { skillsStats } = await import("../openclaw-skills-QLC4D6DZ.js");
|
|
1519
1519
|
await skillsStats(opts);
|
|
1520
1520
|
});
|
|
1521
1521
|
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) => {
|
|
1522
|
-
const { conductAction } = await import("../conduct-
|
|
1522
|
+
const { conductAction } = await import("../conduct-4NPMP4GL.js");
|
|
1523
1523
|
const result = await conductAction(task, opts);
|
|
1524
1524
|
if (opts.json) {
|
|
1525
1525
|
console.log(JSON.stringify(result, null, 2));
|
|
@@ -1630,8 +1630,22 @@ Feedback for skill: ${opts.skill} (${feedbacks.length} entries)
|
|
|
1630
1630
|
}
|
|
1631
1631
|
});
|
|
1632
1632
|
program.command("quickstart").alias("qs").description("One-command setup: init + skills.yaml + MCP registration + serve daemon").option("--owner <name>", "Agent owner name").option("--port <port>", "Gateway port", "7700").option("--no-serve", "Skip starting background daemon").option("--no-mcp", "Skip MCP registration with Claude Code").option("--json", "Output as JSON").action(runQuickstart);
|
|
1633
|
+
var did = program.command("did").description("Decentralized Identity commands");
|
|
1634
|
+
did.command("show").description("Display local agent DID identifiers").option("--json", "Output as JSON").action(async (opts) => {
|
|
1635
|
+
const { didShow, didShowJson } = await import("../did-action-MQLDT4RF.js");
|
|
1636
|
+
if (opts.json) {
|
|
1637
|
+
await didShowJson();
|
|
1638
|
+
} else {
|
|
1639
|
+
await didShow();
|
|
1640
|
+
}
|
|
1641
|
+
});
|
|
1642
|
+
var vc = program.command("vc").description("Verifiable Credentials commands");
|
|
1643
|
+
vc.command("show").description("Display Verifiable Credentials for this agent").option("--json", "Output as JSON").action(async (opts) => {
|
|
1644
|
+
const { vcShow } = await import("../vc-action-SUD7TMN2.js");
|
|
1645
|
+
await vcShow(opts);
|
|
1646
|
+
});
|
|
1633
1647
|
program.command("mcp-server").description("Start an MCP (Model Context Protocol) server for IDE integration").action(async () => {
|
|
1634
|
-
const { startMcpServer } = await import("../server-
|
|
1648
|
+
const { startMcpServer } = await import("../server-Z6P3AHKN.js");
|
|
1635
1649
|
await startMcpServer();
|
|
1636
1650
|
});
|
|
1637
1651
|
await program.parseAsync(process.argv);
|
|
@@ -6,9 +6,9 @@ import {
|
|
|
6
6
|
requestCapability,
|
|
7
7
|
requestCapabilityBatch,
|
|
8
8
|
requestViaRelay
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-W6LOCBWQ.js";
|
|
10
|
+
import "./chunk-YNBZLXYS.js";
|
|
11
|
+
import "./chunk-UVCNMRPS.js";
|
|
12
12
|
export {
|
|
13
13
|
REQUEST_TIMEOUT_EXPECTED_MULTIPLIER,
|
|
14
14
|
REQUEST_TIMEOUT_FALLBACK_MS,
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import {
|
|
2
|
+
conductAction
|
|
3
|
+
} from "./chunk-AZEGOADG.js";
|
|
4
|
+
import "./chunk-4FK45WJI.js";
|
|
5
|
+
import "./chunk-3MJT4PZG.js";
|
|
6
|
+
import "./chunk-LLL3KYEM.js";
|
|
7
|
+
import "./chunk-TLT6F35V.js";
|
|
8
|
+
import "./chunk-5PV5YCSN.js";
|
|
9
|
+
import "./chunk-G5WKW3ED.js";
|
|
10
|
+
import "./chunk-UIPGGNRC.js";
|
|
11
|
+
import "./chunk-ELFGYC22.js";
|
|
12
|
+
import "./chunk-P3FDT7G5.js";
|
|
13
|
+
import "./chunk-UR3MISL2.js";
|
|
14
|
+
import "./chunk-3466S65P.js";
|
|
15
|
+
import "./chunk-W6LOCBWQ.js";
|
|
16
|
+
import "./chunk-YNBZLXYS.js";
|
|
17
|
+
import "./chunk-YDGXKH2T.js";
|
|
18
|
+
import "./chunk-3YQ73ZM6.js";
|
|
19
|
+
import "./chunk-3XPBFF6H.js";
|
|
20
|
+
import "./chunk-NLQCHO7N.js";
|
|
21
|
+
import "./chunk-J4RFJVXI.js";
|
|
22
|
+
import "./chunk-UVCNMRPS.js";
|
|
23
|
+
export {
|
|
24
|
+
conductAction
|
|
25
|
+
};
|