agentbnb 9.0.2 → 9.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{card-NKQFB3HD.js → card-NQHAGTQQ.js} +3 -1
- package/dist/{card-6KL6L4GF.js → card-VVT3XBOI.js} +3 -1
- package/dist/chunk-3RG5ZIWI.js +10 -0
- package/dist/{chunk-76YORWFJ.js → chunk-3Y76PHEY.js} +62 -5
- package/dist/{chunk-QEDVPJKP.js → chunk-4DBSSFHG.js} +20 -16
- package/dist/chunk-4HLGFR72.js +155 -0
- package/dist/{chunk-ERT77HKY.js → chunk-4M6IAIVK.js} +2 -2
- package/dist/{chunk-FUGWPKXN.js → chunk-4UIUIHST.js} +1 -1
- package/dist/chunk-4XTYT4JW.js +147 -0
- package/dist/{chunk-2SOHHB2O.js → chunk-AR7Z3EQB.js} +34 -11
- package/dist/{chunk-Z4IDXMSP.js → chunk-D7NH6YLM.js} +6 -1
- package/dist/{chunk-SLZBE2I5.js → chunk-DBO2335D.js} +17 -12
- package/dist/{chunk-N3TXLBGK.js → chunk-GAZCZCAZ.js} +1 -1
- package/dist/{chunk-UQCQ2JCG.js → chunk-JJHQAZWE.js} +4 -4
- package/dist/{chunk-NLQCHO7N.js → chunk-JKD6QRUD.js} +3 -134
- package/dist/{chunk-74OZGLIT.js → chunk-LENX5NUW.js} +1 -1
- package/dist/{chunk-I3RRMAAD.js → chunk-PIO2FMX4.js} +5 -5
- package/dist/{chunk-77HAL2ZL.js → chunk-PYZGF5QH.js} +60 -3
- package/dist/chunk-Q5OFZ2JR.js +292 -0
- package/dist/{chunk-YJ3RGKPU.js → chunk-QG2LLVXP.js} +6 -2
- package/dist/chunk-QXRNW4OJ.js +35 -0
- package/dist/{chunk-UR3MISL2.js → chunk-UPNREF4L.js} +1 -1
- package/dist/{chunk-SMQDT7CT.js → chunk-UXL7DV7P.js} +7 -3
- package/dist/{chunk-PG3CLSAH.js → chunk-VJ2Q33AP.js} +3 -134
- package/dist/{chunk-DYJ7YGBM.js → chunk-WOVESOQ7.js} +237 -124
- package/dist/{chunk-BNS76U6K.js → chunk-XL5XD3IG.js} +23 -17
- package/dist/{chunk-FMKBCO2Q.js → chunk-ZYOMPJGG.js} +2 -2
- package/dist/cli/index.js +133 -59
- package/dist/{client-YB3IYO3S.js → client-XOSXFC7Q.js} +1 -0
- package/dist/{conduct-URYWMA5T.js → conduct-6C6JWZKZ.js} +13 -10
- package/dist/conduct-VSSHJHVH.js +29 -0
- package/dist/{conductor-mode-NRSVP2AU.js → conductor-mode-KKPSNN7V.js} +9 -6
- package/dist/{conductor-mode-2UFN6BUL.js → conductor-mode-NKHIZG4N.js} +17 -14
- package/dist/{config-IRWLG6IW.js → config-ZFWBAGDU.js} +1 -0
- package/dist/{credits-action-24EPLUHG.js → credits-action-N3WB4WSI.js} +5 -3
- package/dist/{daemon-A7DXZIQW.js → daemon-OM2K3U7J.js} +1 -0
- package/dist/{did-action-MQLDT4RF.js → did-action-3PNFYLX2.js} +1 -0
- package/dist/{execute-DNRNU3HM.js → execute-IEQ3RV7I.js} +6 -3
- package/dist/{execute-2Z3XIUHR.js → execute-QHP4KUV2.js} +10 -7
- package/dist/index.d.ts +412 -275
- package/dist/index.js +886 -282
- package/dist/{openclaw-setup-WA625DZA.js → openclaw-setup-PKGFB4IH.js} +19 -16
- package/dist/{openclaw-skills-76ZWXHFM.js → openclaw-skills-5VJDA6SX.js} +7 -6
- package/dist/{peers-F2EWUMVQ.js → peers-7BMU2775.js} +1 -0
- package/dist/{peers-CJ7T4RJO.js → peers-IOVCBWAI.js} +1 -0
- package/dist/{process-guard-QDBIOLY4.js → process-guard-6324CZDC.js} +1 -0
- package/dist/{publish-capability-FOCHYNYE.js → publish-capability-CHMPZ6W3.js} +4 -2
- package/dist/{reliability-metrics-JSOY3PNW.js → reliability-metrics-22JTZGB4.js} +1 -0
- package/dist/{reliability-metrics-KKUFFVB6.js → reliability-metrics-MIJ3TJWL.js} +1 -0
- package/dist/{request-KPKWBL5W.js → request-6TBVP3GR.js} +12 -9
- package/dist/request-log-2D253WML.js +17 -0
- package/dist/request-log-SIGTGOFA.js +16 -0
- package/dist/{scanner-GP4AOCW6.js → scanner-EFU6NBEJ.js} +1 -0
- package/dist/{schema-7BSSLZ4S.js → schema-FABVZKSI.js} +1 -0
- package/dist/{serve-skill-QSUIK3ZF.js → serve-skill-BRUHUDRA.js} +12 -9
- package/dist/{server-TGV2OPUM.js → server-N4BJW4TS.js} +15 -8
- package/dist/{service-coordinator-4JAUUNUL.js → service-coordinator-M2CBDEUQ.js} +539 -50
- package/dist/session-5AIRM7YF.js +144 -0
- package/dist/session-action-67J57636.js +131 -0
- package/dist/{skill-config-5O2VR546.js → skill-config-VYNF7BCY.js} +1 -0
- package/dist/skill-wrap-IAZHOYM4.js +365 -0
- package/dist/skills/agentbnb/bootstrap.js +564 -75
- package/dist/{store-S22F3I7G.js → store-A4YPEHDV.js} +3 -1
- package/dist/{vc-action-SUD7TMN2.js → vc-action-TSAIABUM.js} +1 -0
- package/dist/websocket-client-FCPZOE4S.js +9 -0
- package/dist/websocket-client-RT4KLJL4.js +8 -0
- package/dist/{writer-4QJ3U3WE.js → writer-V7JBWKKZ.js} +1 -0
- package/package.json +1 -1
- package/dist/chunk-3466S65P.js +0 -179
- package/dist/conduct-UAEEMVFD.js +0 -26
- package/dist/websocket-client-5CRE36Z5.js +0 -7
- package/dist/websocket-client-WHEHIYIZ.js +0 -6
|
@@ -4,10 +4,13 @@ import {
|
|
|
4
4
|
migrateCreditOwnerData,
|
|
5
5
|
recordSuccessfulHire
|
|
6
6
|
} from "./chunk-6QMDJVMS.js";
|
|
7
|
+
import {
|
|
8
|
+
loadCoreConfig
|
|
9
|
+
} from "./chunk-QXRNW4OJ.js";
|
|
7
10
|
import {
|
|
8
11
|
getCard,
|
|
9
12
|
getFeedbackForProvider
|
|
10
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-VJ2Q33AP.js";
|
|
11
14
|
import {
|
|
12
15
|
ensureAgentsTable,
|
|
13
16
|
resolveCanonicalIdentity
|
|
@@ -168,7 +171,8 @@ function migrateOwner(db, oldOwner, newOwner) {
|
|
|
168
171
|
|
|
169
172
|
// src/credit/escrow.ts
|
|
170
173
|
import { randomUUID as randomUUID2 } from "crypto";
|
|
171
|
-
var
|
|
174
|
+
var coreEconomics = loadCoreConfig("economics");
|
|
175
|
+
var NETWORK_FEE_RATE = coreEconomics?.network_fee_rate ?? 0.05;
|
|
172
176
|
var FINALIZABLE_ESCROW_STATUSES = /* @__PURE__ */ new Set([
|
|
173
177
|
"held",
|
|
174
178
|
"started",
|
|
@@ -355,27 +359,28 @@ function confirmEscrowDebit(db, escrowId) {
|
|
|
355
359
|
}
|
|
356
360
|
|
|
357
361
|
// src/feedback/reputation.ts
|
|
362
|
+
var coreReputation = loadCoreConfig("reputation");
|
|
358
363
|
var QUALITY_SCORES = {
|
|
359
|
-
excellent: 1,
|
|
360
|
-
good: 0.8,
|
|
361
|
-
acceptable: 0.6,
|
|
362
|
-
poor: 0.3,
|
|
363
|
-
failed: 0
|
|
364
|
+
excellent: coreReputation?.quality_scores?.["excellent"] ?? 1,
|
|
365
|
+
good: coreReputation?.quality_scores?.["good"] ?? 0.8,
|
|
366
|
+
acceptable: coreReputation?.quality_scores?.["acceptable"] ?? 0.6,
|
|
367
|
+
poor: coreReputation?.quality_scores?.["poor"] ?? 0.3,
|
|
368
|
+
failed: coreReputation?.quality_scores?.["failed"] ?? 0
|
|
364
369
|
};
|
|
365
370
|
var COST_VALUE_SCORES = {
|
|
366
|
-
great: 1,
|
|
367
|
-
fair: 0.6,
|
|
368
|
-
overpriced: 0.2
|
|
371
|
+
great: coreReputation?.cost_value_scores?.["great"] ?? 1,
|
|
372
|
+
fair: coreReputation?.cost_value_scores?.["fair"] ?? 0.6,
|
|
373
|
+
overpriced: coreReputation?.cost_value_scores?.["overpriced"] ?? 0.2
|
|
369
374
|
};
|
|
370
|
-
var DECAY_DAYS = 30;
|
|
375
|
+
var DECAY_DAYS = coreReputation?.decay_days ?? 30;
|
|
371
376
|
var WEIGHTS = {
|
|
372
|
-
rating: 0.4,
|
|
373
|
-
quality: 0.3,
|
|
374
|
-
would_reuse: 0.2,
|
|
375
|
-
cost_value: 0.1
|
|
377
|
+
rating: coreReputation?.weights?.["rating"] ?? 0.4,
|
|
378
|
+
quality: coreReputation?.weights?.["quality"] ?? 0.3,
|
|
379
|
+
would_reuse: coreReputation?.weights?.["would_reuse"] ?? 0.2,
|
|
380
|
+
cost_value: coreReputation?.weights?.["cost_value"] ?? 0.1
|
|
376
381
|
};
|
|
377
382
|
function computeReputation(feedbacks) {
|
|
378
|
-
if (feedbacks.length === 0) return 0.5;
|
|
383
|
+
if (feedbacks.length === 0) return coreReputation?.cold_start_score ?? 0.5;
|
|
379
384
|
const now = Date.now();
|
|
380
385
|
let weightedSum = 0;
|
|
381
386
|
let totalWeight = 0;
|
|
@@ -391,7 +396,7 @@ function computeReputation(feedbacks) {
|
|
|
391
396
|
weightedSum += recencyWeight * componentScore;
|
|
392
397
|
totalWeight += recencyWeight;
|
|
393
398
|
}
|
|
394
|
-
if (totalWeight === 0) return 0.5;
|
|
399
|
+
if (totalWeight === 0) return coreReputation?.cold_start_score ?? 0.5;
|
|
395
400
|
const raw = weightedSum / totalWeight;
|
|
396
401
|
return Math.max(0, Math.min(1, raw));
|
|
397
402
|
}
|
|
@@ -780,6 +785,7 @@ export {
|
|
|
780
785
|
getBalance,
|
|
781
786
|
getTransactions,
|
|
782
787
|
migrateOwner,
|
|
788
|
+
NETWORK_FEE_RATE,
|
|
783
789
|
holdEscrow,
|
|
784
790
|
markEscrowStarted,
|
|
785
791
|
markEscrowProgressing,
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createLedger
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-LENX5NUW.js";
|
|
4
4
|
import {
|
|
5
5
|
loadOrRepairIdentity
|
|
6
6
|
} from "./chunk-5CC6O6SO.js";
|
|
7
7
|
import {
|
|
8
8
|
getBalance
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-D7NH6YLM.js";
|
|
10
10
|
import {
|
|
11
11
|
canonicalizeCreditOwner
|
|
12
12
|
} from "./chunk-YDGXKH2T.js";
|
package/dist/cli/index.js
CHANGED
|
@@ -1,43 +1,44 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
discoverLocalAgents
|
|
4
|
+
} from "../chunk-TA73FIZU.js";
|
|
5
|
+
import {
|
|
6
|
+
resolveSelfCli
|
|
7
|
+
} from "../chunk-7S4ZLFVI.js";
|
|
2
8
|
import {
|
|
3
9
|
generateHeartbeatSection,
|
|
4
10
|
getOpenClawStatus,
|
|
5
11
|
injectHeartbeatSection,
|
|
6
12
|
performInit,
|
|
7
13
|
publishFromSoulV2
|
|
8
|
-
} from "../chunk-
|
|
14
|
+
} from "../chunk-AR7Z3EQB.js";
|
|
15
|
+
import {
|
|
16
|
+
getPricingStats
|
|
17
|
+
} from "../chunk-4UIUIHST.js";
|
|
18
|
+
import "../chunk-GAZCZCAZ.js";
|
|
9
19
|
import "../chunk-RJNKX347.js";
|
|
10
20
|
import {
|
|
11
21
|
AutoRequestor,
|
|
12
22
|
requestViaTemporaryRelay
|
|
13
|
-
} from "../chunk-
|
|
23
|
+
} from "../chunk-JJHQAZWE.js";
|
|
24
|
+
import "../chunk-5PV5YCSN.js";
|
|
14
25
|
import {
|
|
15
26
|
BudgetManager,
|
|
16
27
|
DEFAULT_BUDGET_CONFIG
|
|
17
|
-
} from "../chunk-
|
|
18
|
-
import {
|
|
19
|
-
discoverLocalAgents
|
|
20
|
-
} from "../chunk-TA73FIZU.js";
|
|
21
|
-
import {
|
|
22
|
-
resolveSelfCli
|
|
23
|
-
} from "../chunk-7S4ZLFVI.js";
|
|
24
|
-
import {
|
|
25
|
-
getPricingStats
|
|
26
|
-
} from "../chunk-FUGWPKXN.js";
|
|
27
|
-
import "../chunk-5PV5YCSN.js";
|
|
28
|
+
} from "../chunk-QG2LLVXP.js";
|
|
28
29
|
import {
|
|
29
30
|
DEFAULT_AUTONOMY_CONFIG
|
|
30
31
|
} from "../chunk-G5WKW3ED.js";
|
|
31
32
|
import {
|
|
32
33
|
syncCreditsFromRegistry
|
|
33
|
-
} from "../chunk-
|
|
34
|
+
} from "../chunk-ZYOMPJGG.js";
|
|
34
35
|
import {
|
|
35
36
|
createLedger
|
|
36
|
-
} from "../chunk-
|
|
37
|
+
} from "../chunk-LENX5NUW.js";
|
|
37
38
|
import {
|
|
38
39
|
ensureIdentity
|
|
39
40
|
} from "../chunk-5CC6O6SO.js";
|
|
40
|
-
import "../chunk-
|
|
41
|
+
import "../chunk-4M6IAIVK.js";
|
|
41
42
|
import {
|
|
42
43
|
fetchRemoteCards,
|
|
43
44
|
mergeResults
|
|
@@ -45,14 +46,15 @@ import {
|
|
|
45
46
|
import {
|
|
46
47
|
filterCards,
|
|
47
48
|
searchCards
|
|
48
|
-
} from "../chunk-
|
|
49
|
+
} from "../chunk-4DBSSFHG.js";
|
|
49
50
|
import {
|
|
50
51
|
getBalance,
|
|
51
52
|
getTransactions,
|
|
52
53
|
openCreditDb
|
|
53
|
-
} from "../chunk-
|
|
54
|
-
import "../chunk-
|
|
55
|
-
import "../chunk-
|
|
54
|
+
} from "../chunk-D7NH6YLM.js";
|
|
55
|
+
import "../chunk-UPNREF4L.js";
|
|
56
|
+
import "../chunk-Q5OFZ2JR.js";
|
|
57
|
+
import "../chunk-QXRNW4OJ.js";
|
|
56
58
|
import {
|
|
57
59
|
requestCapability
|
|
58
60
|
} from "../chunk-W6LOCBWQ.js";
|
|
@@ -73,7 +75,6 @@ import {
|
|
|
73
75
|
loadConfig,
|
|
74
76
|
saveConfig
|
|
75
77
|
} from "../chunk-3XPBFF6H.js";
|
|
76
|
-
import "../chunk-N3TXLBGK.js";
|
|
77
78
|
import {
|
|
78
79
|
attachCanonicalAgentId,
|
|
79
80
|
deleteCard,
|
|
@@ -81,11 +82,13 @@ import {
|
|
|
81
82
|
insertCard,
|
|
82
83
|
listCards,
|
|
83
84
|
openDatabase
|
|
84
|
-
} from "../chunk-
|
|
85
|
+
} from "../chunk-JKD6QRUD.js";
|
|
85
86
|
import "../chunk-J4RFJVXI.js";
|
|
86
87
|
import {
|
|
87
88
|
AnyCardSchema
|
|
88
89
|
} from "../chunk-UVCNMRPS.js";
|
|
90
|
+
import "../chunk-4XTYT4JW.js";
|
|
91
|
+
import "../chunk-3RG5ZIWI.js";
|
|
89
92
|
|
|
90
93
|
// src/cli/index.ts
|
|
91
94
|
import { Command } from "commander";
|
|
@@ -236,8 +239,8 @@ Skills: ${skills2.skillCount} skill(s) in ${skills2.path}`);
|
|
|
236
239
|
let daemonStatus = { running: false, reason: "skipped" };
|
|
237
240
|
if (!skipServe) {
|
|
238
241
|
try {
|
|
239
|
-
const { ProcessGuard } = await import("../process-guard-
|
|
240
|
-
const { ServiceCoordinator } = await import("../service-coordinator-
|
|
242
|
+
const { ProcessGuard } = await import("../process-guard-6324CZDC.js");
|
|
243
|
+
const { ServiceCoordinator } = await import("../service-coordinator-M2CBDEUQ.js");
|
|
241
244
|
const guard = new ProcessGuard(join(initResult.configDir, ".pid"));
|
|
242
245
|
const coordinator = new ServiceCoordinator(initResult.config, guard);
|
|
243
246
|
const result = await coordinator.ensureRunning({
|
|
@@ -299,7 +302,7 @@ Skills: ${skills2.skillCount} skill(s) in ${skills2.path}`);
|
|
|
299
302
|
}
|
|
300
303
|
|
|
301
304
|
// src/cli/index.ts
|
|
302
|
-
var VERSION = true ? "9.0
|
|
305
|
+
var VERSION = true ? "9.1.0" : "0.0.0-dev";
|
|
303
306
|
function loadIdentityAuth(owner) {
|
|
304
307
|
const configDir = getConfigDir();
|
|
305
308
|
let keys;
|
|
@@ -512,8 +515,8 @@ program.command("publish-skills").description("Publish capabilities from skills.
|
|
|
512
515
|
console.error("Error: not initialized. Run `agentbnb init` first.");
|
|
513
516
|
process.exit(1);
|
|
514
517
|
}
|
|
515
|
-
const { parseSkillsFile } = await import("../skill-config-
|
|
516
|
-
const { skillConfigToSkill } = await import("../publish-capability-
|
|
518
|
+
const { parseSkillsFile } = await import("../skill-config-VYNF7BCY.js");
|
|
519
|
+
const { skillConfigToSkill } = await import("../publish-capability-CHMPZ6W3.js");
|
|
517
520
|
const skillsPath = typeof opts.fromSkills === "string" ? opts.fromSkills : "./skills.yaml";
|
|
518
521
|
let yamlContent;
|
|
519
522
|
try {
|
|
@@ -560,8 +563,8 @@ program.command("publish-skills").description("Publish capabilities from skills.
|
|
|
560
563
|
db.close();
|
|
561
564
|
}
|
|
562
565
|
console.log(`Published ${skills2.length} skill(s) to local registry`);
|
|
563
|
-
for (const
|
|
564
|
-
console.log(` - ${
|
|
566
|
+
for (const skill2 of skills2) {
|
|
567
|
+
console.log(` - ${skill2.id}: ${skill2.name} (${skill2.pricing.credits_per_call} cr/call)`);
|
|
565
568
|
}
|
|
566
569
|
});
|
|
567
570
|
program.command("sync").description("Push all local capability cards to the configured remote registry").option("--registry <url>", "Remote registry URL (overrides config.registry)").option("--json", "Output as JSON").action(async (opts) => {
|
|
@@ -735,10 +738,10 @@ ${displayName} (${shortId}) [${tags}]`);
|
|
|
735
738
|
const skills2 = Array.isArray(raw["skills"]) ? raw["skills"] : [];
|
|
736
739
|
if (skills2.length > 0) {
|
|
737
740
|
console.log(" Skills:");
|
|
738
|
-
for (const
|
|
739
|
-
const price = String(
|
|
740
|
-
const desc = (
|
|
741
|
-
console.log(` ${col(
|
|
741
|
+
for (const skill2 of skills2) {
|
|
742
|
+
const price = String(skill2.pricing?.credits_per_call ?? "?");
|
|
743
|
+
const desc = (skill2.description ?? "").slice(0, 50);
|
|
744
|
+
console.log(` ${col(skill2.id, 24)} ${col(price + " cr", 8)} ${desc}`);
|
|
742
745
|
}
|
|
743
746
|
totalSkills += skills2.length;
|
|
744
747
|
} else if (card.pricing?.credits_per_call != null) {
|
|
@@ -1118,7 +1121,7 @@ Active Escrows (${heldEscrows.length}):`);
|
|
|
1118
1121
|
});
|
|
1119
1122
|
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) => {
|
|
1120
1123
|
if (opts.status || opts.stop || opts.restart || opts.daemon || opts.startup) {
|
|
1121
|
-
const { startDaemon, stopDaemon, restartDaemon, daemonStatus, registerStartup } = await import("../daemon-
|
|
1124
|
+
const { startDaemon, stopDaemon, restartDaemon, daemonStatus, registerStartup } = await import("../daemon-OM2K3U7J.js");
|
|
1122
1125
|
if (opts.status) {
|
|
1123
1126
|
daemonStatus();
|
|
1124
1127
|
return;
|
|
@@ -1154,8 +1157,8 @@ program.command("serve").description("Start the AgentBnB gateway server").option
|
|
|
1154
1157
|
console.error("Error: not initialized. Run `agentbnb init` first.");
|
|
1155
1158
|
process.exit(1);
|
|
1156
1159
|
}
|
|
1157
|
-
const { ProcessGuard } = await import("../process-guard-
|
|
1158
|
-
const { ServiceCoordinator } = await import("../service-coordinator-
|
|
1160
|
+
const { ProcessGuard } = await import("../process-guard-6324CZDC.js");
|
|
1161
|
+
const { ServiceCoordinator } = await import("../service-coordinator-M2CBDEUQ.js");
|
|
1159
1162
|
const port = opts.port ? parseInt(opts.port, 10) : config.gateway_port;
|
|
1160
1163
|
const registryPort = parseInt(opts.registryPort, 10);
|
|
1161
1164
|
if (!Number.isFinite(port) || !Number.isFinite(registryPort)) {
|
|
@@ -1225,7 +1228,7 @@ peersCommand.command("remove <name>").description("Remove a registered peer").ac
|
|
|
1225
1228
|
});
|
|
1226
1229
|
var configCmd = program.command("config").description("Get or set AgentBnB configuration values");
|
|
1227
1230
|
configCmd.command("set <key> <value>").description("Set a configuration value").action((key, value) => {
|
|
1228
|
-
const allowedKeys = ["registry", "tier1", "tier2", "reserve", "idle-threshold", "conductor-public", "telegram-notifications", "telegram-bot-token", "telegram-chat-id", "shared-skills"];
|
|
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"];
|
|
1229
1232
|
if (!allowedKeys.includes(key)) {
|
|
1230
1233
|
console.error(`Unknown config key: ${key}. Valid keys: ${allowedKeys.join(", ")}`);
|
|
1231
1234
|
process.exit(1);
|
|
@@ -1330,6 +1333,51 @@ configCmd.command("set <key> <value>").description("Set a configuration value").
|
|
|
1330
1333
|
console.log(`Set shared-skills: ${display}`);
|
|
1331
1334
|
return;
|
|
1332
1335
|
}
|
|
1336
|
+
if (key === "provider-gate") {
|
|
1337
|
+
if (value !== "auto" && value !== "notify") {
|
|
1338
|
+
console.error('Error: provider-gate must be "auto" or "notify"');
|
|
1339
|
+
process.exit(1);
|
|
1340
|
+
}
|
|
1341
|
+
config.provider_gate = value;
|
|
1342
|
+
saveConfig(config);
|
|
1343
|
+
console.log(`Set provider-gate = ${value} (${value === "notify" ? "Telegram notification before execution" : "execute silently"})`);
|
|
1344
|
+
return;
|
|
1345
|
+
}
|
|
1346
|
+
if (key === "provider-accepting") {
|
|
1347
|
+
if (value !== "true" && value !== "false") {
|
|
1348
|
+
console.error('Error: provider-accepting must be "true" or "false"');
|
|
1349
|
+
process.exit(1);
|
|
1350
|
+
}
|
|
1351
|
+
config.provider_accepting = value === "true";
|
|
1352
|
+
saveConfig(config);
|
|
1353
|
+
console.log(`Set provider-accepting = ${value} (${value === "true" ? "accepting incoming requests" : "REJECTING all incoming requests"})`);
|
|
1354
|
+
return;
|
|
1355
|
+
}
|
|
1356
|
+
if (key === "provider-daily-limit") {
|
|
1357
|
+
const parsed = parseInt(value, 10);
|
|
1358
|
+
if (isNaN(parsed) || parsed < 0) {
|
|
1359
|
+
console.error("Error: provider-daily-limit must be a non-negative integer");
|
|
1360
|
+
process.exit(1);
|
|
1361
|
+
}
|
|
1362
|
+
config.provider_daily_limit = parsed;
|
|
1363
|
+
saveConfig(config);
|
|
1364
|
+
console.log(`Set provider-daily-limit = ${parsed} (${parsed === 0 ? "unlimited" : `max ${parsed} executions/day`})`);
|
|
1365
|
+
return;
|
|
1366
|
+
}
|
|
1367
|
+
if (key === "provider-whitelist") {
|
|
1368
|
+
config.provider_whitelist = value.trim() === "" ? [] : value.split(",").map((s) => s.trim()).filter(Boolean);
|
|
1369
|
+
saveConfig(config);
|
|
1370
|
+
const display = config.provider_whitelist.length > 0 ? config.provider_whitelist.join(", ") : "(empty)";
|
|
1371
|
+
console.log(`Set provider-whitelist: ${display}`);
|
|
1372
|
+
return;
|
|
1373
|
+
}
|
|
1374
|
+
if (key === "provider-blacklist") {
|
|
1375
|
+
config.provider_blacklist = value.trim() === "" ? [] : value.split(",").map((s) => s.trim()).filter(Boolean);
|
|
1376
|
+
saveConfig(config);
|
|
1377
|
+
const display = config.provider_blacklist.length > 0 ? config.provider_blacklist.join(", ") : "(empty)";
|
|
1378
|
+
console.log(`Set provider-blacklist: ${display}`);
|
|
1379
|
+
return;
|
|
1380
|
+
}
|
|
1333
1381
|
config[key] = value;
|
|
1334
1382
|
saveConfig(config);
|
|
1335
1383
|
console.log(`Set ${key} = ${value}`);
|
|
@@ -1461,7 +1509,7 @@ openclaw.command("sync").description("Read SOUL.md and publish/update a v2.0 cap
|
|
|
1461
1509
|
if (opts.soulPath) {
|
|
1462
1510
|
resolvedSoulPath = opts.soulPath;
|
|
1463
1511
|
} else {
|
|
1464
|
-
const { findSoulMd, getOpenClawWorkspaceDir } = await import("../scanner-
|
|
1512
|
+
const { findSoulMd, getOpenClawWorkspaceDir } = await import("../scanner-EFU6NBEJ.js");
|
|
1465
1513
|
const found = findSoulMd(config.owner);
|
|
1466
1514
|
if (found) {
|
|
1467
1515
|
resolvedSoulPath = found;
|
|
@@ -1496,12 +1544,12 @@ openclaw.command("sync").description("Read SOUL.md and publish/update a v2.0 cap
|
|
|
1496
1544
|
try {
|
|
1497
1545
|
const card = publishFromSoulV2(db, content, config.owner, sharedSkills);
|
|
1498
1546
|
console.log(`Published card ${card.id} with ${card.skills.length} skill(s) (from ${resolvedSoulPath})`);
|
|
1499
|
-
for (const
|
|
1500
|
-
const stats = getPricingStats(db,
|
|
1547
|
+
for (const skill2 of card.skills) {
|
|
1548
|
+
const stats = getPricingStats(db, skill2.name);
|
|
1501
1549
|
if (stats.count > 0) {
|
|
1502
|
-
console.log(` ${
|
|
1550
|
+
console.log(` ${skill2.name}: ${skill2.pricing.credits_per_call} cr (market: ${stats.min}-${stats.max} cr, median ${stats.median}, ${stats.count} providers)`);
|
|
1503
1551
|
} else {
|
|
1504
|
-
console.log(` ${
|
|
1552
|
+
console.log(` ${skill2.name}: ${skill2.pricing.credits_per_call} cr (no market data yet)`);
|
|
1505
1553
|
}
|
|
1506
1554
|
}
|
|
1507
1555
|
} catch (err) {
|
|
@@ -1531,8 +1579,8 @@ openclaw.command("status").description("Show OpenClaw integration status, tier c
|
|
|
1531
1579
|
console.log(`Balance: ${status.balance} credits`);
|
|
1532
1580
|
console.log(`Reserve: ${status.reserve} credits`);
|
|
1533
1581
|
console.log(`Skills: ${status.skills.length}`);
|
|
1534
|
-
for (const
|
|
1535
|
-
console.log(` - ${
|
|
1582
|
+
for (const skill2 of status.skills) {
|
|
1583
|
+
console.log(` - ${skill2.id}: ${skill2.name} (idle: ${skill2.idle_rate ?? "N/A"}, online: ${skill2.online})`);
|
|
1536
1584
|
}
|
|
1537
1585
|
} finally {
|
|
1538
1586
|
db.close();
|
|
@@ -1547,7 +1595,7 @@ openclaw.command("rules").description("Print HEARTBEAT.md rules block (or inject
|
|
|
1547
1595
|
}
|
|
1548
1596
|
const autonomy = config.autonomy ?? DEFAULT_AUTONOMY_CONFIG;
|
|
1549
1597
|
const budget = config.budget ?? DEFAULT_BUDGET_CONFIG;
|
|
1550
|
-
const section = generateHeartbeatSection(autonomy, budget);
|
|
1598
|
+
const section = generateHeartbeatSection(autonomy, budget, config);
|
|
1551
1599
|
if (opts.inject) {
|
|
1552
1600
|
injectHeartbeatSection(opts.inject, section);
|
|
1553
1601
|
console.log(`Injected AgentBnB rules into ${opts.inject}`);
|
|
@@ -1556,34 +1604,34 @@ openclaw.command("rules").description("Print HEARTBEAT.md rules block (or inject
|
|
|
1556
1604
|
}
|
|
1557
1605
|
});
|
|
1558
1606
|
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) => {
|
|
1559
|
-
const { runOpenClawSetup } = await import("../openclaw-setup-
|
|
1607
|
+
const { runOpenClawSetup } = await import("../openclaw-setup-PKGFB4IH.js");
|
|
1560
1608
|
await runOpenClawSetup(opts);
|
|
1561
1609
|
});
|
|
1562
1610
|
var skills = openclaw.command("skills").description("Manage shared skills on AgentBnB");
|
|
1563
1611
|
skills.command("list").description("List all shared skills with stats").action(async () => {
|
|
1564
|
-
const { skillsList } = await import("../openclaw-skills-
|
|
1612
|
+
const { skillsList } = await import("../openclaw-skills-5VJDA6SX.js");
|
|
1565
1613
|
await skillsList({});
|
|
1566
1614
|
});
|
|
1567
1615
|
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(
|
|
1568
1616
|
async (opts) => {
|
|
1569
|
-
const { skillsAdd } = await import("../openclaw-skills-
|
|
1617
|
+
const { skillsAdd } = await import("../openclaw-skills-5VJDA6SX.js");
|
|
1570
1618
|
await skillsAdd(opts);
|
|
1571
1619
|
}
|
|
1572
1620
|
);
|
|
1573
1621
|
skills.command("remove <skillId>").description("Remove a skill from AgentBnB").action(async (skillId) => {
|
|
1574
|
-
const { skillsRemove } = await import("../openclaw-skills-
|
|
1622
|
+
const { skillsRemove } = await import("../openclaw-skills-5VJDA6SX.js");
|
|
1575
1623
|
await skillsRemove(skillId);
|
|
1576
1624
|
});
|
|
1577
1625
|
skills.command("price <skillId> <price>").description("Update skill price").action(async (skillId, price) => {
|
|
1578
|
-
const { skillsPrice } = await import("../openclaw-skills-
|
|
1626
|
+
const { skillsPrice } = await import("../openclaw-skills-5VJDA6SX.js");
|
|
1579
1627
|
await skillsPrice(skillId, parseFloat(price));
|
|
1580
1628
|
});
|
|
1581
1629
|
skills.command("stats").description("Revenue and performance report").option("--days <n>", "Days to look back", parseInt, 7).action(async (opts) => {
|
|
1582
|
-
const { skillsStats } = await import("../openclaw-skills-
|
|
1630
|
+
const { skillsStats } = await import("../openclaw-skills-5VJDA6SX.js");
|
|
1583
1631
|
await skillsStats(opts);
|
|
1584
1632
|
});
|
|
1585
1633
|
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) => {
|
|
1586
|
-
const { conductAction } = await import("../conduct-
|
|
1634
|
+
const { conductAction } = await import("../conduct-VSSHJHVH.js");
|
|
1587
1635
|
const result = await conductAction(task, opts);
|
|
1588
1636
|
if (opts.json) {
|
|
1589
1637
|
console.log(JSON.stringify(result, null, 2));
|
|
@@ -1630,7 +1678,7 @@ feedback.command("submit").description("Submit structured feedback for a complet
|
|
|
1630
1678
|
console.error("Error: --json must be valid JSON");
|
|
1631
1679
|
process.exit(1);
|
|
1632
1680
|
}
|
|
1633
|
-
const { StructuredFeedbackSchema } = await import("../schema-
|
|
1681
|
+
const { StructuredFeedbackSchema } = await import("../schema-FABVZKSI.js");
|
|
1634
1682
|
const result = StructuredFeedbackSchema.safeParse(parsed);
|
|
1635
1683
|
if (!result.success) {
|
|
1636
1684
|
console.error("Error: invalid feedback JSON \u2014", result.error.issues.map((i) => i.message).join(", "));
|
|
@@ -1694,9 +1742,14 @@ Feedback for skill: ${opts.skill} (${feedbacks.length} entries)
|
|
|
1694
1742
|
}
|
|
1695
1743
|
});
|
|
1696
1744
|
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);
|
|
1745
|
+
var skill = program.command("skill").description("Skill management commands");
|
|
1746
|
+
skill.command("wrap").description("Wrap a CLI command as a rentable AgentBnB skill").option("--name <name>", "Skill name").option("--command <cmd>", "Command template with ${params.x} placeholders").option("--description <desc>", "Short description").option("--price <credits>", 'Price per call (number or "auto")').option("--category <cat>", "Category for pricing hints").option("--inputs <json>", "Input schema JSON override").option("--outputs <json>", "Output schema JSON override").option("--tags <tags>", "Comma-separated tags").option("--auto <binary>", "Auto-detect subcommands from CLI binary").option("--from-help <binary>", "Parse --help to generate skill definition").option("--scan", "Scan PATH for all cli-anything-* binaries").option("--dry-run", "Preview without writing").option("-y, --yes", "Skip confirmation prompts").action(async (opts) => {
|
|
1747
|
+
const { runSkillWrap } = await import("../skill-wrap-IAZHOYM4.js");
|
|
1748
|
+
await runSkillWrap(opts);
|
|
1749
|
+
});
|
|
1697
1750
|
var did = program.command("did").description("Decentralized Identity commands");
|
|
1698
1751
|
did.command("show").description("Display local agent DID identifiers").option("--json", "Output as JSON").action(async (opts) => {
|
|
1699
|
-
const { didShow, didShowJson } = await import("../did-action-
|
|
1752
|
+
const { didShow, didShowJson } = await import("../did-action-3PNFYLX2.js");
|
|
1700
1753
|
if (opts.json) {
|
|
1701
1754
|
await didShowJson();
|
|
1702
1755
|
} else {
|
|
@@ -1705,24 +1758,45 @@ did.command("show").description("Display local agent DID identifiers").option("-
|
|
|
1705
1758
|
});
|
|
1706
1759
|
var vc = program.command("vc").description("Verifiable Credentials commands");
|
|
1707
1760
|
vc.command("show").description("Display Verifiable Credentials for this agent").option("--json", "Output as JSON").action(async (opts) => {
|
|
1708
|
-
const { vcShow } = await import("../vc-action-
|
|
1761
|
+
const { vcShow } = await import("../vc-action-TSAIABUM.js");
|
|
1709
1762
|
await vcShow(opts);
|
|
1710
1763
|
});
|
|
1711
1764
|
var credits = program.command("credits").description("Credit balance and transaction management");
|
|
1712
1765
|
credits.command("sync").description("Sync local credit balance from remote registry").action(async () => {
|
|
1713
|
-
const { creditsSync } = await import("../credits-action-
|
|
1766
|
+
const { creditsSync } = await import("../credits-action-N3WB4WSI.js");
|
|
1714
1767
|
await creditsSync();
|
|
1715
1768
|
});
|
|
1716
1769
|
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) => {
|
|
1717
|
-
const { creditsHistory } = await import("../credits-action-
|
|
1770
|
+
const { creditsHistory } = await import("../credits-action-N3WB4WSI.js");
|
|
1718
1771
|
await creditsHistory(opts);
|
|
1719
1772
|
});
|
|
1720
1773
|
credits.command("grant <agent_id> <amount>").description("Admin: grant credits to an agent (requires ADMIN_TOKEN)").action(async (agentId, amount) => {
|
|
1721
|
-
const { creditsGrant } = await import("../credits-action-
|
|
1774
|
+
const { creditsGrant } = await import("../credits-action-N3WB4WSI.js");
|
|
1722
1775
|
await creditsGrant(agentId, amount);
|
|
1723
1776
|
});
|
|
1777
|
+
var sessionCmd = program.command("session").description("Manage interactive agent-to-agent sessions");
|
|
1778
|
+
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-67J57636.js");
|
|
1780
|
+
await sessionOpen(cardId, opts);
|
|
1781
|
+
});
|
|
1782
|
+
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-67J57636.js");
|
|
1784
|
+
await sessionSend(sessionId, message);
|
|
1785
|
+
});
|
|
1786
|
+
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-67J57636.js");
|
|
1788
|
+
await sessionEnd(sessionId, opts.reason);
|
|
1789
|
+
});
|
|
1790
|
+
sessionCmd.command("list").description("List active sessions").action(async () => {
|
|
1791
|
+
const { sessionList } = await import("../session-action-67J57636.js");
|
|
1792
|
+
await sessionList();
|
|
1793
|
+
});
|
|
1794
|
+
sessionCmd.command("status <session_id>").description("Show session details").action(async (sessionId) => {
|
|
1795
|
+
const { sessionStatus } = await import("../session-action-67J57636.js");
|
|
1796
|
+
await sessionStatus(sessionId);
|
|
1797
|
+
});
|
|
1724
1798
|
program.command("mcp-server").description("Start an MCP (Model Context Protocol) server for IDE integration").action(async () => {
|
|
1725
|
-
const { startMcpServer } = await import("../server-
|
|
1799
|
+
const { startMcpServer } = await import("../server-N4BJW4TS.js");
|
|
1726
1800
|
await startMcpServer();
|
|
1727
1801
|
});
|
|
1728
1802
|
await program.parseAsync(process.argv);
|
|
@@ -1,26 +1,29 @@
|
|
|
1
1
|
import {
|
|
2
2
|
conductAction
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-PIO2FMX4.js";
|
|
4
|
+
import "./chunk-UXL7DV7P.js";
|
|
5
5
|
import "./chunk-3MJT4PZG.js";
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-YJ3RGKPU.js";
|
|
6
|
+
import "./chunk-JJHQAZWE.js";
|
|
8
7
|
import "./chunk-5PV5YCSN.js";
|
|
8
|
+
import "./chunk-QG2LLVXP.js";
|
|
9
9
|
import "./chunk-G5WKW3ED.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-4M6IAIVK.js";
|
|
11
11
|
import "./chunk-ELFGYC22.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-4DBSSFHG.js";
|
|
13
|
+
import "./chunk-D7NH6YLM.js";
|
|
14
|
+
import "./chunk-UPNREF4L.js";
|
|
15
|
+
import "./chunk-Q5OFZ2JR.js";
|
|
16
|
+
import "./chunk-QXRNW4OJ.js";
|
|
16
17
|
import "./chunk-W6LOCBWQ.js";
|
|
17
18
|
import "./chunk-YNBZLXYS.js";
|
|
18
19
|
import "./chunk-YDGXKH2T.js";
|
|
19
20
|
import "./chunk-3YQ73ZM6.js";
|
|
20
21
|
import "./chunk-3XPBFF6H.js";
|
|
21
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-JKD6QRUD.js";
|
|
22
23
|
import "./chunk-J4RFJVXI.js";
|
|
23
24
|
import "./chunk-UVCNMRPS.js";
|
|
25
|
+
import "./chunk-4XTYT4JW.js";
|
|
26
|
+
import "./chunk-3RG5ZIWI.js";
|
|
24
27
|
|
|
25
28
|
// src/mcp/tools/conduct.ts
|
|
26
29
|
import { z } from "zod";
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import {
|
|
2
|
+
conductAction
|
|
3
|
+
} from "./chunk-PIO2FMX4.js";
|
|
4
|
+
import "./chunk-UXL7DV7P.js";
|
|
5
|
+
import "./chunk-3MJT4PZG.js";
|
|
6
|
+
import "./chunk-JJHQAZWE.js";
|
|
7
|
+
import "./chunk-5PV5YCSN.js";
|
|
8
|
+
import "./chunk-QG2LLVXP.js";
|
|
9
|
+
import "./chunk-G5WKW3ED.js";
|
|
10
|
+
import "./chunk-4M6IAIVK.js";
|
|
11
|
+
import "./chunk-ELFGYC22.js";
|
|
12
|
+
import "./chunk-4DBSSFHG.js";
|
|
13
|
+
import "./chunk-D7NH6YLM.js";
|
|
14
|
+
import "./chunk-UPNREF4L.js";
|
|
15
|
+
import "./chunk-Q5OFZ2JR.js";
|
|
16
|
+
import "./chunk-QXRNW4OJ.js";
|
|
17
|
+
import "./chunk-W6LOCBWQ.js";
|
|
18
|
+
import "./chunk-YNBZLXYS.js";
|
|
19
|
+
import "./chunk-YDGXKH2T.js";
|
|
20
|
+
import "./chunk-3YQ73ZM6.js";
|
|
21
|
+
import "./chunk-3XPBFF6H.js";
|
|
22
|
+
import "./chunk-JKD6QRUD.js";
|
|
23
|
+
import "./chunk-J4RFJVXI.js";
|
|
24
|
+
import "./chunk-UVCNMRPS.js";
|
|
25
|
+
import "./chunk-4XTYT4JW.js";
|
|
26
|
+
import "./chunk-3RG5ZIWI.js";
|
|
27
|
+
export {
|
|
28
|
+
conductAction
|
|
29
|
+
};
|
|
@@ -7,24 +7,27 @@ import {
|
|
|
7
7
|
matchSubTasks,
|
|
8
8
|
orchestrate,
|
|
9
9
|
validateAndNormalizeSubtasks
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-DBO2335D.js";
|
|
11
|
+
import "./chunk-XL5XD3IG.js";
|
|
12
|
+
import "./chunk-6QMDJVMS.js";
|
|
11
13
|
import {
|
|
12
14
|
requestCapability
|
|
13
15
|
} from "./chunk-W6LOCBWQ.js";
|
|
14
|
-
import "./chunk-DYJ7YGBM.js";
|
|
15
|
-
import "./chunk-HLUEOLSZ.js";
|
|
16
|
-
import "./chunk-BNS76U6K.js";
|
|
17
|
-
import "./chunk-6QMDJVMS.js";
|
|
18
16
|
import "./chunk-YNBZLXYS.js";
|
|
17
|
+
import "./chunk-WOVESOQ7.js";
|
|
18
|
+
import "./chunk-QXRNW4OJ.js";
|
|
19
|
+
import "./chunk-HLUEOLSZ.js";
|
|
19
20
|
import "./chunk-IVOYM3WG.js";
|
|
20
21
|
import {
|
|
21
22
|
getCardsByCapabilityType,
|
|
22
23
|
getCardsBySkillCapability
|
|
23
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-VJ2Q33AP.js";
|
|
25
|
+
import "./chunk-4XTYT4JW.js";
|
|
24
26
|
import "./chunk-EE3V3DXK.js";
|
|
25
27
|
import {
|
|
26
28
|
AgentBnBError
|
|
27
29
|
} from "./chunk-UVCNMRPS.js";
|
|
30
|
+
import "./chunk-3RG5ZIWI.js";
|
|
28
31
|
|
|
29
32
|
// src/conductor/team-formation.ts
|
|
30
33
|
import { randomUUID } from "crypto";
|