@kroxy/kroxy 1.0.6 → 1.0.8
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/index.d.ts.map +1 -1
- package/dist/index.js +73 -4
- package/dist/index.js.map +1 -1
- package/dist/src/client.d.ts +43 -0
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/client.js +90 -13
- package/dist/src/client.js.map +1 -1
- package/dist/src/tools/balance.d.ts +13 -0
- package/dist/src/tools/balance.d.ts.map +1 -0
- package/dist/src/tools/balance.js +34 -0
- package/dist/src/tools/balance.js.map +1 -0
- package/dist/src/tools/browse.d.ts +19 -0
- package/dist/src/tools/browse.d.ts.map +1 -0
- package/dist/src/tools/browse.js +75 -0
- package/dist/src/tools/browse.js.map +1 -0
- package/dist/src/tools/dispute.d.ts +15 -0
- package/dist/src/tools/dispute.d.ts.map +1 -0
- package/dist/src/tools/dispute.js +61 -0
- package/dist/src/tools/dispute.js.map +1 -0
- package/dist/src/tools/hire.d.ts +2 -0
- package/dist/src/tools/hire.d.ts.map +1 -1
- package/dist/src/tools/hire.js +84 -16
- package/dist/src/tools/hire.js.map +1 -1
- package/dist/src/tools/history.d.ts +15 -0
- package/dist/src/tools/history.d.ts.map +1 -0
- package/dist/src/tools/history.js +54 -0
- package/dist/src/tools/history.js.map +1 -0
- package/dist/src/tools/setup.d.ts +9 -0
- package/dist/src/tools/setup.d.ts.map +1 -0
- package/dist/src/tools/setup.js +141 -0
- package/dist/src/tools/setup.js.map +1 -0
- package/dist/src/tools/status.d.ts +13 -0
- package/dist/src/tools/status.d.ts.map +1 -0
- package/dist/src/tools/status.js +79 -0
- package/dist/src/tools/status.js.map +1 -0
- package/dist/src/utils/fetchWithRetry.d.ts +12 -0
- package/dist/src/utils/fetchWithRetry.d.ts.map +1 -0
- package/dist/src/utils/fetchWithRetry.js +58 -0
- package/dist/src/utils/fetchWithRetry.js.map +1 -0
- package/index.ts +97 -4
- package/package.json +1 -1
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;;;;kBAwB7C,iBAAiB;;AAHjC,wBA4IE"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { hireParams, executeHire } from './src/tools/hire.js';
|
|
2
2
|
import { offerParams, executeOffer } from './src/tools/offer.js';
|
|
3
3
|
import { reputationParams, executeReputation } from './src/tools/reputation.js';
|
|
4
|
+
import { setupParams, executeSetup } from './src/tools/setup.js';
|
|
5
|
+
import { statusParams, executeStatus } from './src/tools/status.js';
|
|
6
|
+
import { balanceParams, executeBalance } from './src/tools/balance.js';
|
|
7
|
+
import { browseParams, executeBrowse } from './src/tools/browse.js';
|
|
8
|
+
import { disputeParams, executeDispute } from './src/tools/dispute.js';
|
|
9
|
+
import { historyParams, executeHistory } from './src/tools/history.js';
|
|
4
10
|
export default {
|
|
5
11
|
id: 'kroxy',
|
|
6
12
|
name: 'Kroxy',
|
|
@@ -18,7 +24,19 @@ export default {
|
|
|
18
24
|
process.env.KROXY_DEMO_MODE = cfg.KROXY_DEMO_MODE;
|
|
19
25
|
if (cfg.NEXUS_URL)
|
|
20
26
|
process.env.NEXUS_URL = cfg.NEXUS_URL;
|
|
21
|
-
//
|
|
27
|
+
// ── Setup / Onboarding ────────────────────────────────────────────────────
|
|
28
|
+
// Run this first to check configuration and get guided setup instructions.
|
|
29
|
+
api.registerTool({
|
|
30
|
+
name: 'kroxy_setup',
|
|
31
|
+
label: 'Kroxy Setup',
|
|
32
|
+
description: 'Check your Kroxy configuration and connectivity. Run this first to diagnose any setup issues. ' +
|
|
33
|
+
'Shows API reachability, demo mode status, wallet config, and what to fix next.',
|
|
34
|
+
parameters: setupParams,
|
|
35
|
+
async execute(_id, params) {
|
|
36
|
+
return executeSetup(params);
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
// ── Read-only tools — always available ────────────────────────────────────
|
|
22
40
|
api.registerTool({
|
|
23
41
|
name: 'kroxy_reputation',
|
|
24
42
|
label: 'Kroxy Reputation',
|
|
@@ -29,8 +47,48 @@ export default {
|
|
|
29
47
|
return executeReputation(params);
|
|
30
48
|
},
|
|
31
49
|
});
|
|
50
|
+
api.registerTool({
|
|
51
|
+
name: 'kroxy_status',
|
|
52
|
+
label: 'Kroxy Job Status',
|
|
53
|
+
description: 'Check the status of an active job mid-flight. Shows current status, agent assigned, ' +
|
|
54
|
+
'escrow amount, and time elapsed. Use after kroxy_hire with the returned jobId.',
|
|
55
|
+
parameters: statusParams,
|
|
56
|
+
async execute(_id, params) {
|
|
57
|
+
return executeStatus(params);
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
api.registerTool({
|
|
61
|
+
name: 'kroxy_balance',
|
|
62
|
+
label: 'Kroxy Balance',
|
|
63
|
+
description: 'Check your USDC balance, pending escrow totals, and total earned in one call. ' +
|
|
64
|
+
'Defaults to your own agent wallet (KROXY_AGENT_WALLET).',
|
|
65
|
+
parameters: balanceParams,
|
|
66
|
+
async execute(_id, params) {
|
|
67
|
+
return executeBalance(params);
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
api.registerTool({
|
|
71
|
+
name: 'kroxy_browse',
|
|
72
|
+
label: 'Kroxy Browse',
|
|
73
|
+
description: 'Browse available agents on the Kroxy network or view the open job board. ' +
|
|
74
|
+
'Filter by capability and price. Use mode="agents" to find providers, mode="jobs" for open work.',
|
|
75
|
+
parameters: browseParams,
|
|
76
|
+
async execute(_id, params) {
|
|
77
|
+
return executeBrowse(params);
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
api.registerTool({
|
|
81
|
+
name: 'kroxy_history',
|
|
82
|
+
label: 'Kroxy History',
|
|
83
|
+
description: 'View your full job history — tasks hired, amounts paid, durations, and escrow tx hashes. ' +
|
|
84
|
+
'Provides a full audit trail for any agent wallet.',
|
|
85
|
+
parameters: historyParams,
|
|
86
|
+
async execute(_id, params) {
|
|
87
|
+
return executeHistory(params);
|
|
88
|
+
},
|
|
89
|
+
});
|
|
90
|
+
// ── Mutating tools — require configuration ────────────────────────────────
|
|
32
91
|
// Register your agent as a paid service provider on the Kroxy job board.
|
|
33
|
-
// Optional: requires a public webhook endpoint and configures on-chain identity.
|
|
34
92
|
api.registerTool({
|
|
35
93
|
name: 'kroxy_offer',
|
|
36
94
|
label: 'Kroxy Offer',
|
|
@@ -42,18 +100,29 @@ export default {
|
|
|
42
100
|
},
|
|
43
101
|
}, { optional: true });
|
|
44
102
|
// Hire another agent with USDC held in conditional escrow on Base.
|
|
45
|
-
// Optional: requires private key for on-chain signing and triggers financial transactions.
|
|
46
103
|
api.registerTool({
|
|
47
104
|
name: 'kroxy_hire',
|
|
48
105
|
label: 'Kroxy Hire',
|
|
49
106
|
description: 'Hire a specialist agent to complete a task, paid in USDC via conditional escrow on Base. ' +
|
|
50
107
|
'Funds are locked until work quality is verified — payment is automatic and trustless. ' +
|
|
51
|
-
'Requires KROXY_AGENT_WALLET
|
|
108
|
+
'Requires KROXY_AGENT_WALLET. Set KROXY_DEMO_MODE=1 to try without a real private key.',
|
|
52
109
|
parameters: hireParams,
|
|
53
110
|
async execute(_id, params) {
|
|
54
111
|
return executeHire(params);
|
|
55
112
|
},
|
|
56
113
|
}, { optional: true });
|
|
114
|
+
// Raise a dispute on a job in escrow.
|
|
115
|
+
api.registerTool({
|
|
116
|
+
name: 'kroxy_dispute',
|
|
117
|
+
label: 'Kroxy Dispute',
|
|
118
|
+
description: 'Raise a dispute on a job that is in escrow. Triggers arbitration by three independent ' +
|
|
119
|
+
'AI judges (Claude, GPT-4o, Gemini). Use when the delivered work does not meet requirements. ' +
|
|
120
|
+
'Requires KROXY_API_KEY.',
|
|
121
|
+
parameters: disputeParams,
|
|
122
|
+
async execute(_id, params) {
|
|
123
|
+
return executeDispute(params);
|
|
124
|
+
},
|
|
125
|
+
}, { optional: true });
|
|
57
126
|
},
|
|
58
127
|
};
|
|
59
128
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/client.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export interface AgentProfile {
|
|
|
9
9
|
capabilities: string[];
|
|
10
10
|
pricingUsdc: string;
|
|
11
11
|
endpoint: string;
|
|
12
|
+
reputationScore?: number;
|
|
12
13
|
}
|
|
13
14
|
export interface Job {
|
|
14
15
|
id: string;
|
|
@@ -18,6 +19,9 @@ export interface Job {
|
|
|
18
19
|
escrowId?: string | null;
|
|
19
20
|
posterWallet: string;
|
|
20
21
|
description: string;
|
|
22
|
+
budgetMaxUsdc?: string;
|
|
23
|
+
createdAt?: string;
|
|
24
|
+
updatedAt?: string;
|
|
21
25
|
}
|
|
22
26
|
export interface Bid {
|
|
23
27
|
id: string;
|
|
@@ -47,7 +51,36 @@ export interface ReputationResult {
|
|
|
47
51
|
totalEarned: string;
|
|
48
52
|
score: number;
|
|
49
53
|
}
|
|
54
|
+
export interface BalanceSummary {
|
|
55
|
+
wallet: string;
|
|
56
|
+
usdcBalance: string;
|
|
57
|
+
pendingEscrow: string;
|
|
58
|
+
pendingEscrowCount: number;
|
|
59
|
+
totalEarned: string;
|
|
60
|
+
demo?: boolean;
|
|
61
|
+
}
|
|
62
|
+
export interface DisputeResult {
|
|
63
|
+
escrowId: string;
|
|
64
|
+
caseId?: string;
|
|
65
|
+
status: string;
|
|
66
|
+
message: string;
|
|
67
|
+
}
|
|
68
|
+
export interface AuditEvent {
|
|
69
|
+
id: string;
|
|
70
|
+
sequence: number;
|
|
71
|
+
escrowId: string;
|
|
72
|
+
eventType: string;
|
|
73
|
+
actorAddress: string;
|
|
74
|
+
rawData: unknown;
|
|
75
|
+
txHash: string | null;
|
|
76
|
+
createdAt: string;
|
|
77
|
+
}
|
|
50
78
|
export declare function findAgents(capability: string, maxPrice: number): Promise<AgentProfile[]>;
|
|
79
|
+
export declare function getAgents(filters?: {
|
|
80
|
+
capability?: string;
|
|
81
|
+
maxPrice?: number;
|
|
82
|
+
limit?: number;
|
|
83
|
+
}): Promise<AgentProfile[]>;
|
|
51
84
|
export declare function postJob(jobId: string, description: string, capability: string, budgetUsdc: number, conditionsJson: ConditionsDefinition, posterWallet: string): Promise<Job>;
|
|
52
85
|
export declare function acceptBid(jobId: string, bidId: string, payerPrivateKey: string): Promise<{
|
|
53
86
|
jobId: string;
|
|
@@ -55,8 +88,17 @@ export declare function acceptBid(jobId: string, bidId: string, payerPrivateKey:
|
|
|
55
88
|
escrowId: string;
|
|
56
89
|
txHash: string;
|
|
57
90
|
}>;
|
|
91
|
+
export declare function getJob(jobId: string): Promise<Job>;
|
|
92
|
+
export declare function listJobs(filters?: {
|
|
93
|
+
status?: string;
|
|
94
|
+
posterWallet?: string;
|
|
95
|
+
limit?: number;
|
|
96
|
+
}): Promise<Job[]>;
|
|
58
97
|
export declare function pollJob(jobId: string, condition: (job: Job) => boolean, maxMs?: number, intervalMs?: number): Promise<Job | null>;
|
|
59
98
|
export declare function getReputation(walletAddress: string): Promise<ReputationResult>;
|
|
99
|
+
export declare function getWalletBalance(walletAddress: string): Promise<BalanceSummary>;
|
|
100
|
+
export declare function raiseDisputeForEscrow(escrowId: string, reason: string): Promise<DisputeResult>;
|
|
101
|
+
export declare function getAuditTrail(escrowId: string): Promise<AuditEvent[]>;
|
|
60
102
|
export declare function registerProvider(opts: {
|
|
61
103
|
walletAddress: string;
|
|
62
104
|
name: string;
|
|
@@ -65,4 +107,5 @@ export declare function registerProvider(opts: {
|
|
|
65
107
|
pricingUsdc: number;
|
|
66
108
|
modelName?: string;
|
|
67
109
|
}): Promise<AgentProfile>;
|
|
110
|
+
export declare function pingApi(): Promise<boolean>;
|
|
68
111
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/src/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/src/client.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Reads KROXY_API_URL and KROXY_API_KEY from process.env at call time,
|
|
4
4
|
* so runtime-injected env vars are always used.
|
|
5
5
|
*/
|
|
6
|
+
import { fetchWithRetry } from './utils/fetchWithRetry.js';
|
|
6
7
|
function apiBase() {
|
|
7
8
|
return process.env.KROXY_API_URL ?? 'http://localhost:3001';
|
|
8
9
|
}
|
|
@@ -13,25 +14,69 @@ function authHeaders() {
|
|
|
13
14
|
'X-Kroxy-API-Key': key,
|
|
14
15
|
};
|
|
15
16
|
}
|
|
17
|
+
function apiError(method, path, status, body) {
|
|
18
|
+
const base = apiBase();
|
|
19
|
+
let hint = '';
|
|
20
|
+
if (status === 401 || status === 403) {
|
|
21
|
+
hint = ' Check KROXY_API_KEY in plugin config.';
|
|
22
|
+
}
|
|
23
|
+
else if (status === 404) {
|
|
24
|
+
hint = ` Resource not found: ${path}`;
|
|
25
|
+
}
|
|
26
|
+
else if (status === 503) {
|
|
27
|
+
hint = ` API may be starting up — retry in a moment. Is ${base} running?`;
|
|
28
|
+
}
|
|
29
|
+
else if (status === 0) {
|
|
30
|
+
hint = ` Cannot reach ${base}. Check KROXY_API_URL. Set KROXY_DEMO_MODE=1 to use demo mode.`;
|
|
31
|
+
}
|
|
32
|
+
return new Error(`${method} ${path} → ${status}: ${body.slice(0, 200)}${hint}`);
|
|
33
|
+
}
|
|
16
34
|
async function apiGet(path) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
35
|
+
let resp;
|
|
36
|
+
try {
|
|
37
|
+
resp = await fetchWithRetry(`${apiBase()}${path}`, { headers: authHeaders() });
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
41
|
+
throw new Error(`GET ${path} failed: ${msg}. Cannot reach ${apiBase()} — check KROXY_API_URL. Set KROXY_DEMO_MODE=1 to skip network calls.`);
|
|
42
|
+
}
|
|
43
|
+
if (!resp.ok) {
|
|
44
|
+
const body = await resp.text().catch(() => '');
|
|
45
|
+
throw apiError('GET', path, resp.status, body);
|
|
46
|
+
}
|
|
47
|
+
return resp.json();
|
|
21
48
|
}
|
|
22
49
|
async function apiPost(path, body) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
50
|
+
let resp;
|
|
51
|
+
try {
|
|
52
|
+
resp = await fetchWithRetry(`${apiBase()}${path}`, {
|
|
53
|
+
method: 'POST',
|
|
54
|
+
headers: authHeaders(),
|
|
55
|
+
body: JSON.stringify(body),
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
catch (err) {
|
|
59
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
60
|
+
throw new Error(`POST ${path} failed: ${msg}. Cannot reach ${apiBase()} — check KROXY_API_URL. Set KROXY_DEMO_MODE=1 to skip network calls.`);
|
|
61
|
+
}
|
|
62
|
+
if (!resp.ok) {
|
|
63
|
+
const text = await resp.text().catch(() => '');
|
|
64
|
+
throw apiError('POST', path, resp.status, text);
|
|
65
|
+
}
|
|
66
|
+
return resp.json();
|
|
31
67
|
}
|
|
32
68
|
export function findAgents(capability, maxPrice) {
|
|
33
69
|
return apiGet(`/api/agents/find?capability=${encodeURIComponent(capability)}&maxPrice=${maxPrice}`);
|
|
34
70
|
}
|
|
71
|
+
export function getAgents(filters = {}) {
|
|
72
|
+
const params = new URLSearchParams();
|
|
73
|
+
if (filters.capability)
|
|
74
|
+
params.set('capability', filters.capability);
|
|
75
|
+
if (filters.maxPrice !== undefined)
|
|
76
|
+
params.set('maxPrice', String(filters.maxPrice));
|
|
77
|
+
const qs = params.toString();
|
|
78
|
+
return apiGet(`/api/agents/find${qs ? `?${qs}` : ''}`);
|
|
79
|
+
}
|
|
35
80
|
export function postJob(jobId, description, capability, budgetUsdc, conditionsJson, posterWallet) {
|
|
36
81
|
const deadline = new Date(Date.now() + 30 * 60 * 1000).toISOString();
|
|
37
82
|
return apiPost('/api/jobs', {
|
|
@@ -47,10 +92,24 @@ export function postJob(jobId, description, capability, budgetUsdc, conditionsJs
|
|
|
47
92
|
export function acceptBid(jobId, bidId, payerPrivateKey) {
|
|
48
93
|
return apiPost(`/api/jobs/${jobId}/accept/${bidId}`, { payerPrivateKey });
|
|
49
94
|
}
|
|
95
|
+
export function getJob(jobId) {
|
|
96
|
+
return apiGet(`/api/jobs/${jobId}`);
|
|
97
|
+
}
|
|
98
|
+
export function listJobs(filters = {}) {
|
|
99
|
+
const params = new URLSearchParams();
|
|
100
|
+
if (filters.status)
|
|
101
|
+
params.set('status', filters.status);
|
|
102
|
+
if (filters.posterWallet)
|
|
103
|
+
params.set('posterWallet', filters.posterWallet);
|
|
104
|
+
if (filters.limit !== undefined)
|
|
105
|
+
params.set('limit', String(filters.limit));
|
|
106
|
+
const qs = params.toString();
|
|
107
|
+
return apiGet(`/api/jobs${qs ? `?${qs}` : ''}`);
|
|
108
|
+
}
|
|
50
109
|
export async function pollJob(jobId, condition, maxMs = 300_000, intervalMs = 5_000) {
|
|
51
110
|
const deadline = Date.now() + maxMs;
|
|
52
111
|
while (Date.now() < deadline) {
|
|
53
|
-
const job = await
|
|
112
|
+
const job = await getJob(jobId);
|
|
54
113
|
if (condition(job))
|
|
55
114
|
return job;
|
|
56
115
|
await new Promise((r) => setTimeout(r, intervalMs));
|
|
@@ -60,6 +119,15 @@ export async function pollJob(jobId, condition, maxMs = 300_000, intervalMs = 5_
|
|
|
60
119
|
export function getReputation(walletAddress) {
|
|
61
120
|
return apiGet(`/api/reputation/${walletAddress}`);
|
|
62
121
|
}
|
|
122
|
+
export function getWalletBalance(walletAddress) {
|
|
123
|
+
return apiGet(`/api/agents/${walletAddress}/balance`);
|
|
124
|
+
}
|
|
125
|
+
export function raiseDisputeForEscrow(escrowId, reason) {
|
|
126
|
+
return apiPost(`/api/escrows/${escrowId}/dispute`, { reason, evidenceData: {} });
|
|
127
|
+
}
|
|
128
|
+
export function getAuditTrail(escrowId) {
|
|
129
|
+
return apiGet(`/api/audit/${escrowId}`);
|
|
130
|
+
}
|
|
63
131
|
export function registerProvider(opts) {
|
|
64
132
|
return apiPost('/api/agents/register', {
|
|
65
133
|
walletAddress: opts.walletAddress,
|
|
@@ -72,4 +140,13 @@ export function registerProvider(opts) {
|
|
|
72
140
|
slaResponseMs: 30000,
|
|
73
141
|
});
|
|
74
142
|
}
|
|
143
|
+
export async function pingApi() {
|
|
144
|
+
try {
|
|
145
|
+
const resp = await fetchWithRetry(`${apiBase()}/livez`, {}, 5_000);
|
|
146
|
+
return resp.ok;
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
75
152
|
//# sourceMappingURL=client.js.map
|
package/dist/src/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const balanceParams: import("@sinclair/typebox").TObject<{
|
|
2
|
+
wallet: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
3
|
+
}>;
|
|
4
|
+
export declare function executeBalance(params: {
|
|
5
|
+
wallet?: string;
|
|
6
|
+
}): Promise<{
|
|
7
|
+
content: [{
|
|
8
|
+
type: 'text';
|
|
9
|
+
text: string;
|
|
10
|
+
}];
|
|
11
|
+
details: unknown;
|
|
12
|
+
}>;
|
|
13
|
+
//# sourceMappingURL=balance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../../src/tools/balance.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa;;EAOxB,CAAC;AAEH,wBAAsB,cAAc,CAClC,MAAM,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1B,OAAO,CAAC;IAAE,OAAO,EAAE,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CA+B1E"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Type } from '@sinclair/typebox';
|
|
2
|
+
import { getWalletBalance } from '../client.js';
|
|
3
|
+
export const balanceParams = Type.Object({
|
|
4
|
+
wallet: Type.Optional(Type.String({
|
|
5
|
+
description: 'Wallet address to check. Defaults to KROXY_AGENT_WALLET (your own agent).',
|
|
6
|
+
pattern: '^0x[0-9a-fA-F]{40}$',
|
|
7
|
+
})),
|
|
8
|
+
});
|
|
9
|
+
export async function executeBalance(params) {
|
|
10
|
+
const walletAddress = params.wallet ?? process.env.KROXY_AGENT_WALLET;
|
|
11
|
+
if (!walletAddress) {
|
|
12
|
+
throw new Error('No wallet address provided and KROXY_AGENT_WALLET is not configured. ' +
|
|
13
|
+
'Pass a wallet address or set KROXY_AGENT_WALLET in plugin config.');
|
|
14
|
+
}
|
|
15
|
+
if (!/^0x[0-9a-fA-F]{40}$/.test(walletAddress)) {
|
|
16
|
+
throw new Error(`Invalid wallet address: ${walletAddress}. Must be 0x + 40 hex chars.`);
|
|
17
|
+
}
|
|
18
|
+
const balance = await getWalletBalance(walletAddress);
|
|
19
|
+
const escrowLine = balance.pendingEscrowCount > 0
|
|
20
|
+
? `$${balance.pendingEscrow} USDC (${balance.pendingEscrowCount} active job${balance.pendingEscrowCount === 1 ? '' : 's'})`
|
|
21
|
+
: '$0.00 (no active jobs)';
|
|
22
|
+
const lines = [
|
|
23
|
+
`Balance: ${walletAddress.slice(0, 6)}...${walletAddress.slice(-4)}${balance.demo ? ' (demo)' : ''}`,
|
|
24
|
+
`─────────────────────────────────────`,
|
|
25
|
+
`USDC Balance: $${balance.usdcBalance}`,
|
|
26
|
+
`Pending Escrow: ${escrowLine}`,
|
|
27
|
+
`Total Earned: $${balance.totalEarned} USDC`,
|
|
28
|
+
];
|
|
29
|
+
return {
|
|
30
|
+
content: [{ type: 'text', text: lines.join('\n') }],
|
|
31
|
+
details: balance,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=balance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"balance.js","sourceRoot":"","sources":["../../../src/tools/balance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,IAAI,CAAC,QAAQ,CACnB,IAAI,CAAC,MAAM,CAAC;QACV,WAAW,EAAE,2EAA2E;QACxF,OAAO,EAAE,qBAAqB;KAC/B,CAAC,CACH;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAA2B;IAE3B,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IACtE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,uEAAuE;YACvE,mEAAmE,CACpE,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,2BAA2B,aAAa,8BAA8B,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAEtD,MAAM,UAAU,GAAG,OAAO,CAAC,kBAAkB,GAAG,CAAC;QAC/C,CAAC,CAAC,IAAI,OAAO,CAAC,aAAa,WAAW,OAAO,CAAC,kBAAkB,cAAc,OAAO,CAAC,kBAAkB,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;QAC5H,CAAC,CAAC,yBAAyB,CAAC;IAE9B,MAAM,KAAK,GAAG;QACZ,YAAY,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;QACpG,uCAAuC;QACvC,oBAAoB,OAAO,CAAC,WAAW,EAAE;QACzC,mBAAmB,UAAU,EAAE;QAC/B,oBAAoB,OAAO,CAAC,WAAW,OAAO;KAC/C,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,EAAE,OAAO;KACjB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare const browseParams: import("@sinclair/typebox").TObject<{
|
|
2
|
+
mode: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"agents">, import("@sinclair/typebox").TLiteral<"jobs">]>;
|
|
3
|
+
capability: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
4
|
+
maxPrice: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
|
|
5
|
+
limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
|
|
6
|
+
}>;
|
|
7
|
+
export declare function executeBrowse(params: {
|
|
8
|
+
mode: 'agents' | 'jobs';
|
|
9
|
+
capability?: string;
|
|
10
|
+
maxPrice?: number;
|
|
11
|
+
limit?: number;
|
|
12
|
+
}): Promise<{
|
|
13
|
+
content: [{
|
|
14
|
+
type: 'text';
|
|
15
|
+
text: string;
|
|
16
|
+
}];
|
|
17
|
+
details: unknown;
|
|
18
|
+
}>;
|
|
19
|
+
//# sourceMappingURL=browse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browse.d.ts","sourceRoot":"","sources":["../../../src/tools/browse.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY;;;;;EAcvB,CAAC;AAMH,wBAAsB,aAAa,CACjC,MAAM,EAAE;IAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1F,OAAO,CAAC;IAAE,OAAO,EAAE,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CA4E1E"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Type } from '@sinclair/typebox';
|
|
2
|
+
import { getAgents, listJobs } from '../client.js';
|
|
3
|
+
export const browseParams = Type.Object({
|
|
4
|
+
mode: Type.Union([Type.Literal('agents'), Type.Literal('jobs')], { description: '"agents" to browse available providers, "jobs" to see the open job board.' }),
|
|
5
|
+
capability: Type.Optional(Type.String({ description: 'Filter agents/jobs by capability: research, writing, coding, etc.' })),
|
|
6
|
+
maxPrice: Type.Optional(Type.Number({ minimum: 0.01, description: 'Maximum price per job in USDC.' })),
|
|
7
|
+
limit: Type.Optional(Type.Integer({ minimum: 1, maximum: 50, description: 'Max results to return. Default 10.' })),
|
|
8
|
+
});
|
|
9
|
+
function pad(str, len) {
|
|
10
|
+
return str.length >= len ? str.slice(0, len) : str + ' '.repeat(len - str.length);
|
|
11
|
+
}
|
|
12
|
+
export async function executeBrowse(params) {
|
|
13
|
+
const limit = params.limit ?? 10;
|
|
14
|
+
if (params.mode === 'agents') {
|
|
15
|
+
const agents = await getAgents({
|
|
16
|
+
capability: params.capability,
|
|
17
|
+
maxPrice: params.maxPrice,
|
|
18
|
+
});
|
|
19
|
+
const sliced = agents.slice(0, limit);
|
|
20
|
+
if (sliced.length === 0) {
|
|
21
|
+
const filterDesc = [
|
|
22
|
+
params.capability && `capability="${params.capability}"`,
|
|
23
|
+
params.maxPrice !== undefined && `maxPrice=$${params.maxPrice}`,
|
|
24
|
+
].filter(Boolean).join(', ');
|
|
25
|
+
return {
|
|
26
|
+
content: [{ type: 'text', text: `No agents found${filterDesc ? ` for ${filterDesc}` : ''}.` }],
|
|
27
|
+
details: { agents: [] },
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
const header = params.capability
|
|
31
|
+
? `Available Agents (${params.capability}${params.maxPrice ? `, ≤$${params.maxPrice}` : ''})`
|
|
32
|
+
: 'Available Agents';
|
|
33
|
+
const lines = [header, '─'.repeat(60)];
|
|
34
|
+
sliced.forEach((agent, i) => {
|
|
35
|
+
const rep = agent.reputationScore !== undefined ? `rep: ${agent.reputationScore}` : 'rep: —';
|
|
36
|
+
const price = `$${parseFloat(agent.pricingUsdc).toFixed(2)} USDC`;
|
|
37
|
+
const caps = agent.capabilities.join(', ');
|
|
38
|
+
lines.push(`${i + 1}. ${pad(agent.name, 16)} ${pad(price, 12)} ${pad(rep, 10)} ${caps}`);
|
|
39
|
+
});
|
|
40
|
+
lines.push('', `Showing ${sliced.length} of ${agents.length} agents.`);
|
|
41
|
+
if (sliced.length < agents.length) {
|
|
42
|
+
lines.push('Use limit param or add filters to narrow results.');
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
content: [{ type: 'text', text: lines.join('\n') }],
|
|
46
|
+
details: { agents: sliced },
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
// mode === 'jobs'
|
|
50
|
+
const jobs = await listJobs({ status: 'OPEN' });
|
|
51
|
+
const filtered = params.capability
|
|
52
|
+
? jobs.filter((j) => j.requiredCaps?.includes(params.capability))
|
|
53
|
+
: jobs;
|
|
54
|
+
const sliced = filtered.slice(0, limit);
|
|
55
|
+
if (sliced.length === 0) {
|
|
56
|
+
return {
|
|
57
|
+
content: [{ type: 'text', text: 'No open jobs found.' }],
|
|
58
|
+
details: { jobs: [] },
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
const lines = ['Open Job Board', '─'.repeat(60)];
|
|
62
|
+
sliced.forEach((job, i) => {
|
|
63
|
+
const budget = job.budgetMaxUsdc ? `$${parseFloat(job.budgetMaxUsdc).toFixed(2)}` : '?';
|
|
64
|
+
const desc = job.description.slice(0, 60);
|
|
65
|
+
const bids = job.bids?.length ?? 0;
|
|
66
|
+
lines.push(`${i + 1}. [${budget}] ${desc}${job.description.length > 60 ? '…' : ''} (${bids} bid${bids === 1 ? '' : 's'})`);
|
|
67
|
+
lines.push(` ID: ${job.id}`);
|
|
68
|
+
});
|
|
69
|
+
lines.push('', `Showing ${sliced.length} of ${filtered.length} open jobs.`);
|
|
70
|
+
return {
|
|
71
|
+
content: [{ type: 'text', text: lines.join('\n') }],
|
|
72
|
+
details: { jobs: sliced },
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=browse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browse.js","sourceRoot":"","sources":["../../../src/tools/browse.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const disputeParams: import("@sinclair/typebox").TObject<{
|
|
2
|
+
jobId: import("@sinclair/typebox").TString;
|
|
3
|
+
reason: import("@sinclair/typebox").TString;
|
|
4
|
+
}>;
|
|
5
|
+
export declare function executeDispute(params: {
|
|
6
|
+
jobId: string;
|
|
7
|
+
reason: string;
|
|
8
|
+
}): Promise<{
|
|
9
|
+
content: [{
|
|
10
|
+
type: 'text';
|
|
11
|
+
text: string;
|
|
12
|
+
}];
|
|
13
|
+
details: unknown;
|
|
14
|
+
}>;
|
|
15
|
+
//# sourceMappingURL=dispute.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispute.d.ts","sourceRoot":"","sources":["../../../src/tools/dispute.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa;;;EAMxB,CAAC;AAEH,wBAAsB,cAAc,CAClC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxC,OAAO,CAAC;IAAE,OAAO,EAAE,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CA2D1E"}
|