agentbnb 6.0.0 → 7.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 +245 -39
- package/dist/{card-REW7BSWW.js → card-EX2EYGCZ.js} +1 -1
- package/dist/{chunk-C6KPAFCC.js → chunk-3LWBH7P3.js} +94 -3
- package/dist/{chunk-YRRVFTDR.js → chunk-5AAFG2V2.js} +3 -3
- package/dist/{chunk-C2T4BMRW.js → chunk-5GME4KJZ.js} +8 -6
- package/dist/{chunk-VPQ44XKE.js → chunk-64AK4FJM.js} +2 -2
- package/dist/{chunk-2TLZ6G2B.js → chunk-7EF3HYVZ.js} +158 -18
- package/dist/{chunk-JR6TJDIF.js → chunk-ALX4WS3A.js} +9 -4
- package/dist/{chunk-7XHDSWRD.js → chunk-B2VJTKO5.js} +2 -2
- package/dist/{chunk-TR6UZDNX.js → chunk-C537SFHV.js} +8 -6
- package/dist/{chunk-F53QQIM2.js → chunk-CUONY5TO.js} +1 -1
- package/dist/chunk-D6RKW2XG.js +395 -0
- package/dist/{chunk-NYV3NE5Z.js → chunk-E2OKP5CY.js} +4 -4
- package/dist/{chunk-TQDV254A.js → chunk-FTZTEHYG.js} +117 -117
- package/dist/{chunk-Y7T6IMM3.js → chunk-GKVTD4EZ.js} +1 -1
- package/dist/{chunk-VMH2YS2I.js → chunk-KF3TZHA5.js} +1 -1
- package/dist/{chunk-574W3HHE.js → chunk-LJM7FHPM.js} +1 -1
- package/dist/chunk-NWIQJ2CL.js +108 -0
- package/dist/{chunk-KA2VIEGM.js → chunk-O2OYBAVR.js} +1 -1
- package/dist/{chunk-NQTE577Q.js → chunk-OCSU2S6W.js} +9 -0
- package/dist/{chunk-PSQHUZ7X.js → chunk-OH7BP5NP.js} +1 -1
- package/dist/chunk-SSK653A6.js +169 -0
- package/dist/{chunk-BP3L2TET.js → chunk-TBJ3FZKZ.js} +2 -2
- package/dist/{chunk-3CIMVISQ.js → chunk-WVY2W7AA.js} +4 -0
- package/dist/{chunk-OZXCRLP3.js → chunk-X32NE6V4.js} +5 -2
- package/dist/{chunk-7YLFLC5C.js → chunk-YHY7OG6S.js} +5 -5
- package/dist/{chunk-JOY533UH.js → chunk-Z4MCGKTL.js} +6 -2
- package/dist/cli/index.js +530 -269
- package/dist/{client-HRYRJKSA.js → client-HKV3QWZ3.js} +3 -3
- package/dist/{conduct-LF6FYPLD.js → conduct-W6XF6DJW.js} +14 -13
- package/dist/conduct-YB64OHI6.js +22 -0
- package/dist/{conductor-mode-NUDQLZFM.js → conductor-mode-2GSLHVN6.js} +7 -4
- package/dist/{conductor-mode-YQ6QSPPT.js → conductor-mode-AKREGDIU.js} +11 -10
- package/dist/execute-AYQWORVH.js +15 -0
- package/dist/{execute-ITHIYYOX.js → execute-EPE6MZLT.js} +4 -3
- package/dist/index.d.ts +502 -12
- package/dist/index.js +706 -53
- package/dist/{process-guard-QCCBGILS.js → process-guard-GH5LRNWO.js} +1 -1
- package/dist/{publish-capability-TS6CNR5G.js → publish-capability-AH2HDW54.js} +3 -3
- package/dist/reliability-metrics-QG7WC5QK.js +18 -0
- package/dist/{request-P6QCTCCG.js → request-HCCXSKAY.js} +15 -14
- package/dist/{serve-skill-EZOL7UYN.js → serve-skill-SZAQT5T5.js} +9 -8
- package/dist/{server-3G6ZTASA.js → server-MHMAYXWZ.js} +12 -11
- package/dist/{service-coordinator-CRSE4GWC.js → service-coordinator-WGH6B2VT.js} +572 -68
- package/dist/{skill-config-4W5W5O6T.js → skill-config-FETXPNVP.js} +1 -1
- package/dist/skills/agentbnb/bootstrap.js +594 -73
- package/dist/{websocket-client-WRN3HO73.js → websocket-client-4Z5P54RU.js} +1 -1
- package/dist/websocket-client-QOVARTRN.js +7 -0
- package/openclaw.plugin.json +2 -2
- package/package.json +18 -11
- package/skills/agentbnb/bootstrap.test.ts +9 -0
- package/skills/agentbnb/bootstrap.ts +51 -26
- package/skills/agentbnb/install.sh +0 -0
- package/dist/chunk-QT7TEVNV.js +0 -82
- package/dist/chunk-RVYQSC6L.js +0 -212
- package/dist/conduct-QAFZIEY6.js +0 -21
- package/dist/execute-PNJFABVJ.js +0 -14
- package/dist/websocket-client-6IIDGXKB.js +0 -7
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
// src/credit/reliability-metrics.ts
|
|
2
|
+
var RELIABILITY_METRICS_SCHEMA = `
|
|
3
|
+
CREATE TABLE IF NOT EXISTS provider_reliability_metrics (
|
|
4
|
+
owner TEXT PRIMARY KEY,
|
|
5
|
+
current_streak INTEGER NOT NULL DEFAULT 0,
|
|
6
|
+
longest_streak INTEGER NOT NULL DEFAULT 0,
|
|
7
|
+
total_hires INTEGER NOT NULL DEFAULT 0,
|
|
8
|
+
repeat_hires INTEGER NOT NULL DEFAULT 0,
|
|
9
|
+
feedback_count INTEGER NOT NULL DEFAULT 0,
|
|
10
|
+
feedback_sum REAL NOT NULL DEFAULT 0,
|
|
11
|
+
availability_checks INTEGER NOT NULL DEFAULT 0,
|
|
12
|
+
availability_hits INTEGER NOT NULL DEFAULT 0,
|
|
13
|
+
cycle_start TEXT NOT NULL,
|
|
14
|
+
updated_at TEXT NOT NULL
|
|
15
|
+
);
|
|
16
|
+
`;
|
|
17
|
+
function ensureReliabilityTable(db) {
|
|
18
|
+
db.exec(RELIABILITY_METRICS_SCHEMA);
|
|
19
|
+
}
|
|
20
|
+
function ensureRow(db, owner) {
|
|
21
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
22
|
+
db.prepare(
|
|
23
|
+
`INSERT OR IGNORE INTO provider_reliability_metrics
|
|
24
|
+
(owner, current_streak, longest_streak, total_hires, repeat_hires,
|
|
25
|
+
feedback_count, feedback_sum, availability_checks, availability_hits,
|
|
26
|
+
cycle_start, updated_at)
|
|
27
|
+
VALUES (?, 0, 0, 0, 0, 0, 0, 0, 0, ?, ?)`
|
|
28
|
+
).run(owner, now, now);
|
|
29
|
+
}
|
|
30
|
+
function recordSuccessfulHire(db, providerOwner, consumerOwner) {
|
|
31
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
32
|
+
ensureRow(db, providerOwner);
|
|
33
|
+
const isRepeat = db.prepare(
|
|
34
|
+
`SELECT COUNT(*) as cnt FROM credit_transactions
|
|
35
|
+
WHERE owner = ? AND reason = 'settlement'
|
|
36
|
+
AND reference_id IN (
|
|
37
|
+
SELECT id FROM credit_escrow WHERE owner = ?
|
|
38
|
+
)`
|
|
39
|
+
).get(providerOwner, consumerOwner);
|
|
40
|
+
const repeatIncrement = (isRepeat?.cnt ?? 0) > 0 ? 1 : 0;
|
|
41
|
+
db.prepare(
|
|
42
|
+
`UPDATE provider_reliability_metrics
|
|
43
|
+
SET current_streak = current_streak + 1,
|
|
44
|
+
longest_streak = MAX(longest_streak, current_streak + 1),
|
|
45
|
+
total_hires = total_hires + 1,
|
|
46
|
+
repeat_hires = repeat_hires + ?,
|
|
47
|
+
updated_at = ?
|
|
48
|
+
WHERE owner = ?`
|
|
49
|
+
).run(repeatIncrement, now, providerOwner);
|
|
50
|
+
}
|
|
51
|
+
function recordQualityFailure(db, providerOwner) {
|
|
52
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
53
|
+
ensureRow(db, providerOwner);
|
|
54
|
+
db.prepare(
|
|
55
|
+
`UPDATE provider_reliability_metrics
|
|
56
|
+
SET current_streak = 0, updated_at = ?
|
|
57
|
+
WHERE owner = ?`
|
|
58
|
+
).run(now, providerOwner);
|
|
59
|
+
}
|
|
60
|
+
function recordFeedback(db, providerOwner, score) {
|
|
61
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
62
|
+
ensureRow(db, providerOwner);
|
|
63
|
+
db.prepare(
|
|
64
|
+
`UPDATE provider_reliability_metrics
|
|
65
|
+
SET feedback_count = feedback_count + 1,
|
|
66
|
+
feedback_sum = feedback_sum + ?,
|
|
67
|
+
updated_at = ?
|
|
68
|
+
WHERE owner = ?`
|
|
69
|
+
).run(score, now, providerOwner);
|
|
70
|
+
}
|
|
71
|
+
function recordAvailabilityCheck(db, providerOwner, wasAvailable) {
|
|
72
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
73
|
+
ensureRow(db, providerOwner);
|
|
74
|
+
db.prepare(
|
|
75
|
+
`UPDATE provider_reliability_metrics
|
|
76
|
+
SET availability_checks = availability_checks + 1,
|
|
77
|
+
availability_hits = availability_hits + ?,
|
|
78
|
+
updated_at = ?
|
|
79
|
+
WHERE owner = ?`
|
|
80
|
+
).run(wasAvailable ? 1 : 0, now, providerOwner);
|
|
81
|
+
}
|
|
82
|
+
function getReliabilityMetrics(db, owner) {
|
|
83
|
+
const row = db.prepare(
|
|
84
|
+
`SELECT current_streak, longest_streak, total_hires, repeat_hires,
|
|
85
|
+
feedback_count, feedback_sum, availability_checks, availability_hits
|
|
86
|
+
FROM provider_reliability_metrics WHERE owner = ?`
|
|
87
|
+
).get(owner);
|
|
88
|
+
if (!row) return null;
|
|
89
|
+
return {
|
|
90
|
+
current_streak: row.current_streak,
|
|
91
|
+
longest_streak: row.longest_streak,
|
|
92
|
+
total_hires: row.total_hires,
|
|
93
|
+
repeat_hires: row.repeat_hires,
|
|
94
|
+
repeat_hire_rate: row.total_hires > 0 ? row.repeat_hires / row.total_hires : 0,
|
|
95
|
+
avg_feedback_score: row.feedback_count > 0 ? row.feedback_sum / row.feedback_count : 0,
|
|
96
|
+
availability_rate: row.availability_checks > 0 ? row.availability_hits / row.availability_checks : 0
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export {
|
|
101
|
+
RELIABILITY_METRICS_SCHEMA,
|
|
102
|
+
ensureReliabilityTable,
|
|
103
|
+
recordSuccessfulHire,
|
|
104
|
+
recordQualityFailure,
|
|
105
|
+
recordFeedback,
|
|
106
|
+
recordAvailabilityCheck,
|
|
107
|
+
getReliabilityMetrics
|
|
108
|
+
};
|
|
@@ -78,6 +78,14 @@ var OpenClawSkillConfigSchema = z.object({
|
|
|
78
78
|
capacity: CapacitySchema,
|
|
79
79
|
...CapabilityDeclarationSchema
|
|
80
80
|
});
|
|
81
|
+
var ClaudeCodeConfigSchema = z.object({
|
|
82
|
+
/** Optional system prompt passed via `-p` flag. */
|
|
83
|
+
system_prompt: z.string().optional(),
|
|
84
|
+
/** Model to use (e.g. 'claude-opus-4-6', 'claude-sonnet-4-6'). */
|
|
85
|
+
model: z.string().optional(),
|
|
86
|
+
/** When true, passes `--dangerously-skip-permissions` to claude CLI. */
|
|
87
|
+
auto_mode: z.boolean().default(false)
|
|
88
|
+
});
|
|
81
89
|
var CommandSkillConfigSchema = z.object({
|
|
82
90
|
id: z.string().min(1),
|
|
83
91
|
type: z.literal("command"),
|
|
@@ -86,6 +94,7 @@ var CommandSkillConfigSchema = z.object({
|
|
|
86
94
|
output_type: z.enum(["json", "text", "file"]),
|
|
87
95
|
allowed_commands: z.array(z.string()).optional(),
|
|
88
96
|
working_dir: z.string().optional(),
|
|
97
|
+
claude_code: ClaudeCodeConfigSchema.optional(),
|
|
89
98
|
timeout_ms: z.number().positive().default(3e4),
|
|
90
99
|
pricing: PricingSchema,
|
|
91
100
|
capacity: CapacitySchema,
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
// src/relay/types.ts
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
var RegisterMessageSchema = z.object({
|
|
4
|
+
type: z.literal("register"),
|
|
5
|
+
owner: z.string().min(1),
|
|
6
|
+
/** V8: Cryptographic agent identity. When present, used as the canonical key. */
|
|
7
|
+
agent_id: z.string().optional(),
|
|
8
|
+
/** V8 Phase 3: Server identifier for multi-agent delegation. */
|
|
9
|
+
server_id: z.string().optional(),
|
|
10
|
+
token: z.string().min(1),
|
|
11
|
+
card: z.record(z.unknown()),
|
|
12
|
+
// CapabilityCard (validated separately)
|
|
13
|
+
cards: z.array(z.record(z.unknown())).optional(),
|
|
14
|
+
// Additional cards (e.g., conductor card)
|
|
15
|
+
/** V8 Phase 3: Additional agents served by this server (multi-agent registration). */
|
|
16
|
+
agents: z.array(z.object({
|
|
17
|
+
agent_id: z.string().min(1),
|
|
18
|
+
display_name: z.string().min(1),
|
|
19
|
+
cards: z.array(z.record(z.unknown())),
|
|
20
|
+
delegation_token: z.record(z.unknown()).optional()
|
|
21
|
+
})).optional()
|
|
22
|
+
});
|
|
23
|
+
var RegisteredMessageSchema = z.object({
|
|
24
|
+
type: z.literal("registered"),
|
|
25
|
+
agent_id: z.string()
|
|
26
|
+
});
|
|
27
|
+
var RelayRequestMessageSchema = z.object({
|
|
28
|
+
type: z.literal("relay_request"),
|
|
29
|
+
id: z.string().uuid(),
|
|
30
|
+
target_owner: z.string().min(1),
|
|
31
|
+
/** V8: Target agent's cryptographic identity. Preferred over target_owner. */
|
|
32
|
+
target_agent_id: z.string().optional(),
|
|
33
|
+
card_id: z.string(),
|
|
34
|
+
skill_id: z.string().optional(),
|
|
35
|
+
params: z.record(z.unknown()).default({}),
|
|
36
|
+
requester: z.string().optional(),
|
|
37
|
+
escrow_receipt: z.record(z.unknown()).optional()
|
|
38
|
+
});
|
|
39
|
+
var IncomingRequestMessageSchema = z.object({
|
|
40
|
+
type: z.literal("incoming_request"),
|
|
41
|
+
id: z.string().uuid(),
|
|
42
|
+
from_owner: z.string().min(1),
|
|
43
|
+
card_id: z.string(),
|
|
44
|
+
skill_id: z.string().optional(),
|
|
45
|
+
params: z.record(z.unknown()).default({}),
|
|
46
|
+
requester: z.string().optional(),
|
|
47
|
+
escrow_receipt: z.record(z.unknown()).optional()
|
|
48
|
+
});
|
|
49
|
+
var RelayResponseMessageSchema = z.object({
|
|
50
|
+
type: z.literal("relay_response"),
|
|
51
|
+
id: z.string().uuid(),
|
|
52
|
+
result: z.unknown().optional(),
|
|
53
|
+
error: z.object({
|
|
54
|
+
code: z.number(),
|
|
55
|
+
message: z.string()
|
|
56
|
+
}).optional()
|
|
57
|
+
});
|
|
58
|
+
var ResponseMessageSchema = z.object({
|
|
59
|
+
type: z.literal("response"),
|
|
60
|
+
id: z.string().uuid(),
|
|
61
|
+
result: z.unknown().optional(),
|
|
62
|
+
error: z.object({
|
|
63
|
+
code: z.number(),
|
|
64
|
+
message: z.string()
|
|
65
|
+
}).optional()
|
|
66
|
+
});
|
|
67
|
+
var ErrorMessageSchema = z.object({
|
|
68
|
+
type: z.literal("error"),
|
|
69
|
+
code: z.string(),
|
|
70
|
+
message: z.string(),
|
|
71
|
+
request_id: z.string().optional()
|
|
72
|
+
});
|
|
73
|
+
var RelayProgressMessageSchema = z.object({
|
|
74
|
+
type: z.literal("relay_progress"),
|
|
75
|
+
id: z.string().uuid(),
|
|
76
|
+
// request ID this progress relates to
|
|
77
|
+
progress: z.number().min(0).max(100).optional(),
|
|
78
|
+
// optional percentage
|
|
79
|
+
message: z.string().optional()
|
|
80
|
+
// optional status message
|
|
81
|
+
});
|
|
82
|
+
var HeartbeatMessageSchema = z.object({
|
|
83
|
+
type: z.literal("heartbeat"),
|
|
84
|
+
owner: z.string().min(1),
|
|
85
|
+
capacity: z.object({
|
|
86
|
+
current_load: z.number(),
|
|
87
|
+
max_concurrent: z.number(),
|
|
88
|
+
queue_depth: z.number()
|
|
89
|
+
}),
|
|
90
|
+
self_summary: z.object({
|
|
91
|
+
capabilities: z.array(z.string()),
|
|
92
|
+
success_rate: z.number(),
|
|
93
|
+
credit_balance: z.number(),
|
|
94
|
+
total_completed: z.number(),
|
|
95
|
+
provider_number: z.number(),
|
|
96
|
+
reliability: z.object({
|
|
97
|
+
current_streak: z.number(),
|
|
98
|
+
repeat_hire_rate: z.number(),
|
|
99
|
+
avg_feedback: z.number()
|
|
100
|
+
})
|
|
101
|
+
})
|
|
102
|
+
});
|
|
103
|
+
var EscrowHoldMessageSchema = z.object({
|
|
104
|
+
type: z.literal("escrow_hold"),
|
|
105
|
+
consumer_agent_id: z.string().min(1),
|
|
106
|
+
provider_agent_id: z.string().min(1),
|
|
107
|
+
skill_id: z.string().min(1),
|
|
108
|
+
amount: z.number().positive(),
|
|
109
|
+
request_id: z.string().uuid(),
|
|
110
|
+
signature: z.string().optional(),
|
|
111
|
+
public_key: z.string().optional()
|
|
112
|
+
});
|
|
113
|
+
var EscrowHoldConfirmedMessageSchema = z.object({
|
|
114
|
+
type: z.literal("escrow_hold_confirmed"),
|
|
115
|
+
request_id: z.string(),
|
|
116
|
+
escrow_id: z.string(),
|
|
117
|
+
hold_amount: z.number(),
|
|
118
|
+
consumer_remaining: z.number()
|
|
119
|
+
});
|
|
120
|
+
var EscrowSettleMessageSchema = z.object({
|
|
121
|
+
type: z.literal("escrow_settle"),
|
|
122
|
+
escrow_id: z.string().min(1),
|
|
123
|
+
request_id: z.string().uuid(),
|
|
124
|
+
success: z.boolean(),
|
|
125
|
+
failure_reason: z.enum(["bad_execution", "overload", "timeout", "auth_error", "not_found"]).optional(),
|
|
126
|
+
result_hash: z.string().optional(),
|
|
127
|
+
signature: z.string().optional(),
|
|
128
|
+
public_key: z.string().optional(),
|
|
129
|
+
consumer_agent_id: z.string().optional()
|
|
130
|
+
});
|
|
131
|
+
var EscrowSettledMessageSchema = z.object({
|
|
132
|
+
type: z.literal("escrow_settled"),
|
|
133
|
+
escrow_id: z.string(),
|
|
134
|
+
request_id: z.string(),
|
|
135
|
+
provider_earned: z.number(),
|
|
136
|
+
network_fee: z.number(),
|
|
137
|
+
consumer_remaining: z.number(),
|
|
138
|
+
provider_balance: z.number()
|
|
139
|
+
});
|
|
140
|
+
var BalanceSyncMessageSchema = z.object({
|
|
141
|
+
type: z.literal("balance_sync"),
|
|
142
|
+
agent_id: z.string().min(1)
|
|
143
|
+
});
|
|
144
|
+
var BalanceSyncResponseMessageSchema = z.object({
|
|
145
|
+
type: z.literal("balance_sync_response"),
|
|
146
|
+
agent_id: z.string(),
|
|
147
|
+
balance: z.number()
|
|
148
|
+
});
|
|
149
|
+
var RelayMessageSchema = z.discriminatedUnion("type", [
|
|
150
|
+
RegisterMessageSchema,
|
|
151
|
+
RegisteredMessageSchema,
|
|
152
|
+
RelayRequestMessageSchema,
|
|
153
|
+
IncomingRequestMessageSchema,
|
|
154
|
+
RelayResponseMessageSchema,
|
|
155
|
+
ResponseMessageSchema,
|
|
156
|
+
ErrorMessageSchema,
|
|
157
|
+
RelayProgressMessageSchema,
|
|
158
|
+
HeartbeatMessageSchema,
|
|
159
|
+
EscrowHoldMessageSchema,
|
|
160
|
+
EscrowHoldConfirmedMessageSchema,
|
|
161
|
+
EscrowSettleMessageSchema,
|
|
162
|
+
EscrowSettledMessageSchema,
|
|
163
|
+
BalanceSyncMessageSchema,
|
|
164
|
+
BalanceSyncResponseMessageSchema
|
|
165
|
+
]);
|
|
166
|
+
|
|
167
|
+
export {
|
|
168
|
+
RelayMessageSchema
|
|
169
|
+
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
insertCard
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-O2OYBAVR.js";
|
|
4
4
|
import {
|
|
5
5
|
CapabilityCardSchema
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-WVY2W7AA.js";
|
|
7
7
|
|
|
8
8
|
// src/skills/publish-capability.ts
|
|
9
9
|
import { randomUUID } from "crypto";
|
|
@@ -17,6 +17,8 @@ var CapabilityCardSchema = z.object({
|
|
|
17
17
|
spec_version: z.literal("1.0").default("1.0"),
|
|
18
18
|
id: z.string().uuid(),
|
|
19
19
|
owner: z.string().min(1),
|
|
20
|
+
/** V8: Cryptographic agent identity (Ed25519 public key hash). */
|
|
21
|
+
agent_id: z.string().optional(),
|
|
20
22
|
name: z.string().min(1).max(100),
|
|
21
23
|
description: z.string().max(500),
|
|
22
24
|
level: z.union([z.literal(1), z.literal(2), z.literal(3)]),
|
|
@@ -139,6 +141,8 @@ var CapabilityCardV2Schema = z.object({
|
|
|
139
141
|
spec_version: z.literal("2.0"),
|
|
140
142
|
id: z.string().uuid(),
|
|
141
143
|
owner: z.string().min(1),
|
|
144
|
+
/** V8: Cryptographic agent identity (Ed25519 public key hash). */
|
|
145
|
+
agent_id: z.string().optional(),
|
|
142
146
|
/** Agent display name — was 'name' in v1.0. */
|
|
143
147
|
agent_name: z.string().min(1).max(100),
|
|
144
148
|
/** Short one-liner shown in Hub v2 Identity Header. */
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
|
+
NETWORK_FEE_RATE,
|
|
2
3
|
confirmEscrowDebit,
|
|
3
4
|
recordEarning,
|
|
4
5
|
releaseEscrow
|
|
5
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-D6RKW2XG.js";
|
|
6
7
|
|
|
7
8
|
// src/credit/settlement.ts
|
|
8
9
|
function settleProviderEarning(providerDb, providerOwner, receipt) {
|
|
10
|
+
const feeAmount = Math.floor(receipt.amount * NETWORK_FEE_RATE);
|
|
11
|
+
const providerAmount = receipt.amount - feeAmount;
|
|
9
12
|
recordEarning(
|
|
10
13
|
providerDb,
|
|
11
14
|
providerOwner,
|
|
12
|
-
|
|
15
|
+
providerAmount,
|
|
13
16
|
receipt.card_id,
|
|
14
17
|
receipt.nonce
|
|
15
18
|
);
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
RelayClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-Z4MCGKTL.js";
|
|
4
4
|
import {
|
|
5
5
|
BudgetController,
|
|
6
6
|
ORCHESTRATION_FEE,
|
|
7
7
|
decompose,
|
|
8
8
|
matchSubTasks,
|
|
9
9
|
orchestrate
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-E2OKP5CY.js";
|
|
11
11
|
import {
|
|
12
12
|
BudgetManager
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-5GME4KJZ.js";
|
|
14
14
|
import {
|
|
15
15
|
openCreditDb
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-D6RKW2XG.js";
|
|
17
17
|
import {
|
|
18
18
|
loadPeers
|
|
19
19
|
} from "./chunk-5AH3CMOX.js";
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
} from "./chunk-75OC6E4F.js";
|
|
23
23
|
import {
|
|
24
24
|
openDatabase
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-O2OYBAVR.js";
|
|
26
26
|
|
|
27
27
|
// src/cli/conduct.ts
|
|
28
28
|
async function conductAction(task, opts) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
RelayMessageSchema
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-SSK653A6.js";
|
|
4
4
|
|
|
5
5
|
// src/relay/websocket-client.ts
|
|
6
6
|
import WebSocket from "ws";
|
|
@@ -35,9 +35,12 @@ var RelayClient = class {
|
|
|
35
35
|
this.send({
|
|
36
36
|
type: "register",
|
|
37
37
|
owner: this.opts.owner,
|
|
38
|
+
...this.opts.agent_id ? { agent_id: this.opts.agent_id } : {},
|
|
39
|
+
...this.opts.server_id ? { server_id: this.opts.server_id } : {},
|
|
38
40
|
token: this.opts.token,
|
|
39
41
|
card: this.opts.card,
|
|
40
|
-
...this.opts.cards && this.opts.cards.length > 0 ? { cards: this.opts.cards } : {}
|
|
42
|
+
...this.opts.cards && this.opts.cards.length > 0 ? { cards: this.opts.cards } : {},
|
|
43
|
+
...this.opts.agents && this.opts.agents.length > 0 ? { agents: this.opts.agents } : {}
|
|
41
44
|
});
|
|
42
45
|
});
|
|
43
46
|
this.ws.on("message", (raw) => {
|
|
@@ -113,6 +116,7 @@ var RelayClient = class {
|
|
|
113
116
|
type: "relay_request",
|
|
114
117
|
id,
|
|
115
118
|
target_owner: opts.targetOwner,
|
|
119
|
+
...opts.targetAgentId ? { target_agent_id: opts.targetAgentId } : {},
|
|
116
120
|
card_id: opts.cardId,
|
|
117
121
|
skill_id: opts.skillId,
|
|
118
122
|
params: opts.params,
|