@xpr-agents/openclaw 0.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/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +62 -0
- package/dist/index.js.map +1 -0
- package/dist/session.d.ts +24 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +43 -0
- package/dist/session.js.map +1 -0
- package/dist/tools/agent.d.ts +10 -0
- package/dist/tools/agent.d.ts.map +1 -0
- package/dist/tools/agent.js +261 -0
- package/dist/tools/agent.js.map +1 -0
- package/dist/tools/escrow.d.ts +11 -0
- package/dist/tools/escrow.d.ts.map +1 -0
- package/dist/tools/escrow.js +371 -0
- package/dist/tools/escrow.js.map +1 -0
- package/dist/tools/feedback.d.ts +8 -0
- package/dist/tools/feedback.d.ts.map +1 -0
- package/dist/tools/feedback.js +176 -0
- package/dist/tools/feedback.js.map +1 -0
- package/dist/tools/indexer.d.ts +9 -0
- package/dist/tools/indexer.d.ts.map +1 -0
- package/dist/tools/indexer.js +98 -0
- package/dist/tools/indexer.js.map +1 -0
- package/dist/tools/validation.d.ts +10 -0
- package/dist/tools/validation.d.ts.map +1 -0
- package/dist/tools/validation.js +231 -0
- package/dist/tools/validation.js.map +1 -0
- package/dist/types.d.ts +39 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/util/confirm.d.ts +23 -0
- package/dist/util/confirm.d.ts.map +1 -0
- package/dist/util/confirm.js +39 -0
- package/dist/util/confirm.js.map +1 -0
- package/dist/util/validate.d.ts +19 -0
- package/dist/util/validate.d.ts.map +1 -0
- package/dist/util/validate.js +96 -0
- package/dist/util/validate.js.map +1 -0
- package/openclaw.plugin.json +47 -0
- package/package.json +55 -0
- package/skills/xpr-agent-operator/SKILL.md +134 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* XPR Agents OpenClaw Plugin
|
|
3
|
+
*
|
|
4
|
+
* Registers 43 tools for interacting with the XPR Network Trustless Agent Registry:
|
|
5
|
+
* - 10 Agent Core tools (registration, profile, plugins, trust scores)
|
|
6
|
+
* - 7 Feedback tools (ratings, disputes, scores)
|
|
7
|
+
* - 9 Validation tools (validators, validations, challenges)
|
|
8
|
+
* - 13 Escrow tools (jobs, milestones, disputes, arbitration)
|
|
9
|
+
* - 4 Indexer tools (search, events, stats, health)
|
|
10
|
+
*/
|
|
11
|
+
import type { PluginApi } from './types';
|
|
12
|
+
export default function xprAgentsPlugin(api: PluginApi): void;
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,SAAS,CAAC;AAEvD,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAgD5D"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* XPR Agents OpenClaw Plugin
|
|
4
|
+
*
|
|
5
|
+
* Registers 43 tools for interacting with the XPR Network Trustless Agent Registry:
|
|
6
|
+
* - 10 Agent Core tools (registration, profile, plugins, trust scores)
|
|
7
|
+
* - 7 Feedback tools (ratings, disputes, scores)
|
|
8
|
+
* - 9 Validation tools (validators, validations, challenges)
|
|
9
|
+
* - 13 Escrow tools (jobs, milestones, disputes, arbitration)
|
|
10
|
+
* - 4 Indexer tools (search, events, stats, health)
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.default = xprAgentsPlugin;
|
|
14
|
+
const session_1 = require("./session");
|
|
15
|
+
const agent_1 = require("./tools/agent");
|
|
16
|
+
const feedback_1 = require("./tools/feedback");
|
|
17
|
+
const validation_1 = require("./tools/validation");
|
|
18
|
+
const escrow_1 = require("./tools/escrow");
|
|
19
|
+
const indexer_1 = require("./tools/indexer");
|
|
20
|
+
function xprAgentsPlugin(api) {
|
|
21
|
+
const rawConfig = api.getConfig();
|
|
22
|
+
const rpcEndpoint = rawConfig.rpcEndpoint || 'https://tn1.protonnz.com';
|
|
23
|
+
const hasCredentials = !!process.env.XPR_PRIVATE_KEY && !!process.env.XPR_ACCOUNT;
|
|
24
|
+
// Create RPC connection and optional session
|
|
25
|
+
let rpc;
|
|
26
|
+
let session;
|
|
27
|
+
if (hasCredentials) {
|
|
28
|
+
const result = (0, session_1.createSession)({ rpcEndpoint });
|
|
29
|
+
rpc = result.rpc;
|
|
30
|
+
session = result.session;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
rpc = (0, session_1.createReadOnlyRpc)(rpcEndpoint);
|
|
34
|
+
}
|
|
35
|
+
const contractsRaw = (rawConfig.contracts || {});
|
|
36
|
+
const config = {
|
|
37
|
+
rpc: rpc,
|
|
38
|
+
session,
|
|
39
|
+
network: rawConfig.network || 'testnet',
|
|
40
|
+
rpcEndpoint,
|
|
41
|
+
indexerUrl: rawConfig.indexerUrl || 'http://localhost:3001',
|
|
42
|
+
contracts: {
|
|
43
|
+
agentcore: contractsRaw.agentcore || 'agentcore',
|
|
44
|
+
agentfeed: contractsRaw.agentfeed || 'agentfeed',
|
|
45
|
+
agentvalid: contractsRaw.agentvalid || 'agentvalid',
|
|
46
|
+
agentescrow: contractsRaw.agentescrow || 'agentescrow',
|
|
47
|
+
},
|
|
48
|
+
confirmHighRisk: rawConfig.confirmHighRisk !== false,
|
|
49
|
+
maxTransferAmount: rawConfig.maxTransferAmount || 1000000,
|
|
50
|
+
};
|
|
51
|
+
// Register all tool groups
|
|
52
|
+
(0, agent_1.registerAgentTools)(api, config);
|
|
53
|
+
(0, feedback_1.registerFeedbackTools)(api, config);
|
|
54
|
+
(0, validation_1.registerValidationTools)(api, config);
|
|
55
|
+
(0, escrow_1.registerEscrowTools)(api, config);
|
|
56
|
+
(0, indexer_1.registerIndexerTools)(api, config);
|
|
57
|
+
if (!hasCredentials) {
|
|
58
|
+
console.log('[xpr-agents] Read-only mode: XPR_PRIVATE_KEY and XPR_ACCOUNT not set. Write tools will fail.');
|
|
59
|
+
}
|
|
60
|
+
console.log(`[xpr-agents] Plugin loaded: ${config.network} (${rpcEndpoint})`);
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AAUH,kCAgDC;AAxDD,uCAA6D;AAC7D,yCAAmD;AACnD,+CAAyD;AACzD,mDAA6D;AAC7D,2CAAqD;AACrD,6CAAuD;AAGvD,SAAwB,eAAe,CAAC,GAAc;IACpD,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;IAElC,MAAM,WAAW,GAAI,SAAS,CAAC,WAAsB,IAAI,0BAA0B,CAAC;IACpF,MAAM,cAAc,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IAElF,6CAA6C;IAC7C,IAAI,GAAG,CAAC;IACR,IAAI,OAAO,CAAC;IAEZ,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,IAAA,uBAAa,EAAC,EAAE,WAAW,EAAE,CAAC,CAAC;QAC9C,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACjB,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,IAAA,2BAAiB,EAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,SAAS,CAAC,SAAS,IAAI,EAAE,CAA2B,CAAC;IAE3E,MAAM,MAAM,GAAiB;QAC3B,GAAG,EAAE,GAAU;QACf,OAAO;QACP,OAAO,EAAG,SAAS,CAAC,OAAiC,IAAI,SAAS;QAClE,WAAW;QACX,UAAU,EAAG,SAAS,CAAC,UAAqB,IAAI,uBAAuB;QACvE,SAAS,EAAE;YACT,SAAS,EAAE,YAAY,CAAC,SAAS,IAAI,WAAW;YAChD,SAAS,EAAE,YAAY,CAAC,SAAS,IAAI,WAAW;YAChD,UAAU,EAAE,YAAY,CAAC,UAAU,IAAI,YAAY;YACnD,WAAW,EAAE,YAAY,CAAC,WAAW,IAAI,aAAa;SACvD;QACD,eAAe,EAAE,SAAS,CAAC,eAAe,KAAK,KAAK;QACpD,iBAAiB,EAAG,SAAS,CAAC,iBAA4B,IAAI,OAAO;KACtE,CAAC;IAEF,2BAA2B;IAC3B,IAAA,0BAAkB,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAChC,IAAA,gCAAqB,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACnC,IAAA,oCAAuB,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,IAAA,4BAAmB,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACjC,IAAA,8BAAoB,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAElC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,8FAA8F,CAAC,CAAC;IAC9G,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,+BAA+B,MAAM,CAAC,OAAO,KAAK,WAAW,GAAG,CAAC,CAAC;AAChF,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { JsonRpc } from '@proton/js';
|
|
2
|
+
import type { ProtonSession } from '@xpr-agents/sdk';
|
|
3
|
+
export interface SessionConfig {
|
|
4
|
+
rpcEndpoint: string;
|
|
5
|
+
privateKey?: string;
|
|
6
|
+
account?: string;
|
|
7
|
+
permission?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Create a server-side ProtonSession from environment variables.
|
|
11
|
+
* Uses @proton/js (no browser dependency).
|
|
12
|
+
*
|
|
13
|
+
* Required env vars: XPR_PRIVATE_KEY, XPR_ACCOUNT
|
|
14
|
+
* Optional: XPR_PERMISSION (defaults to 'active')
|
|
15
|
+
*/
|
|
16
|
+
export declare function createSession(config: SessionConfig): {
|
|
17
|
+
rpc: JsonRpc;
|
|
18
|
+
session: ProtonSession;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Create a read-only RPC connection (no session/signing needed).
|
|
22
|
+
*/
|
|
23
|
+
export declare function createReadOnlyRpc(rpcEndpoint: string): JsonRpc;
|
|
24
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,OAAO,EAAuB,MAAM,YAAY,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAmC,MAAM,iBAAiB,CAAC;AAEtF,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,CA8B7F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAE9D"}
|
package/dist/session.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createSession = createSession;
|
|
4
|
+
exports.createReadOnlyRpc = createReadOnlyRpc;
|
|
5
|
+
const js_1 = require("@proton/js");
|
|
6
|
+
/**
|
|
7
|
+
* Create a server-side ProtonSession from environment variables.
|
|
8
|
+
* Uses @proton/js (no browser dependency).
|
|
9
|
+
*
|
|
10
|
+
* Required env vars: XPR_PRIVATE_KEY, XPR_ACCOUNT
|
|
11
|
+
* Optional: XPR_PERMISSION (defaults to 'active')
|
|
12
|
+
*/
|
|
13
|
+
function createSession(config) {
|
|
14
|
+
const privateKey = config.privateKey || process.env.XPR_PRIVATE_KEY;
|
|
15
|
+
const account = config.account || process.env.XPR_ACCOUNT;
|
|
16
|
+
const permission = config.permission || process.env.XPR_PERMISSION || 'active';
|
|
17
|
+
if (!privateKey) {
|
|
18
|
+
throw new Error('XPR_PRIVATE_KEY environment variable is required');
|
|
19
|
+
}
|
|
20
|
+
if (!account) {
|
|
21
|
+
throw new Error('XPR_ACCOUNT environment variable is required');
|
|
22
|
+
}
|
|
23
|
+
const rpc = new js_1.JsonRpc(config.rpcEndpoint);
|
|
24
|
+
const signatureProvider = new js_1.JsSignatureProvider([privateKey]);
|
|
25
|
+
const api = new js_1.Api({ rpc, signatureProvider });
|
|
26
|
+
const session = {
|
|
27
|
+
auth: { actor: account, permission },
|
|
28
|
+
link: {
|
|
29
|
+
transact: async (args) => {
|
|
30
|
+
const result = await api.transact({ actions: args.actions }, { blocksBehind: 3, expireSeconds: 30 });
|
|
31
|
+
return result;
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
return { rpc, session };
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Create a read-only RPC connection (no session/signing needed).
|
|
39
|
+
*/
|
|
40
|
+
function createReadOnlyRpc(rpcEndpoint) {
|
|
41
|
+
return new js_1.JsonRpc(rpcEndpoint);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":";;AAiBA,sCA8BC;AAKD,8CAEC;AAtDD,mCAA+D;AAU/D;;;;;;GAMG;AACH,SAAgB,aAAa,CAAC,MAAqB;IACjD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IACpE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,QAAQ,CAAC;IAE/E,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,YAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,iBAAiB,GAAG,IAAI,wBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAChE,MAAM,GAAG,GAAG,IAAI,QAAG,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAEhD,MAAM,OAAO,GAAkB;QAC7B,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE;QACpC,IAAI,EAAE;YACJ,QAAQ,EAAE,KAAK,EAAE,IAAkB,EAA8B,EAAE;gBACjE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAC/B,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EACzB,EAAE,YAAY,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CACvC,CAAC;gBACF,OAAO,MAAsC,CAAC;YAChD,CAAC;SACF;KACF,CAAC;IAEF,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,WAAmB;IACnD,OAAO,IAAI,YAAO,CAAC,WAAW,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Core tools (10 tools)
|
|
3
|
+
* Reads: xpr_get_agent, xpr_list_agents, xpr_get_trust_score,
|
|
4
|
+
* xpr_get_agent_plugins, xpr_list_plugins, xpr_get_core_config
|
|
5
|
+
* Writes: xpr_register_agent, xpr_update_agent, xpr_set_agent_status,
|
|
6
|
+
* xpr_manage_plugin
|
|
7
|
+
*/
|
|
8
|
+
import type { PluginApi, PluginConfig } from '../types';
|
|
9
|
+
export declare function registerAgentTools(api: PluginApi, config: PluginConfig): void;
|
|
10
|
+
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/tools/agent.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAIxD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CA0R7E"}
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Agent Core tools (10 tools)
|
|
4
|
+
* Reads: xpr_get_agent, xpr_list_agents, xpr_get_trust_score,
|
|
5
|
+
* xpr_get_agent_plugins, xpr_list_plugins, xpr_get_core_config
|
|
6
|
+
* Writes: xpr_register_agent, xpr_update_agent, xpr_set_agent_status,
|
|
7
|
+
* xpr_manage_plugin
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.registerAgentTools = registerAgentTools;
|
|
11
|
+
const sdk_1 = require("@xpr-agents/sdk");
|
|
12
|
+
const validate_1 = require("../util/validate");
|
|
13
|
+
const confirm_1 = require("../util/confirm");
|
|
14
|
+
function registerAgentTools(api, config) {
|
|
15
|
+
const contracts = config.contracts;
|
|
16
|
+
// ---- READ TOOLS ----
|
|
17
|
+
api.registerTool({
|
|
18
|
+
name: 'xpr_get_agent',
|
|
19
|
+
description: 'Get detailed information about a registered agent including profile, capabilities, ownership, and job count.',
|
|
20
|
+
parameters: {
|
|
21
|
+
type: 'object',
|
|
22
|
+
required: ['account'],
|
|
23
|
+
properties: {
|
|
24
|
+
account: { type: 'string', description: 'Agent account name (1-12 chars, a-z1-5.)' },
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
handler: async ({ account }) => {
|
|
28
|
+
(0, validate_1.validateAccountName)(account);
|
|
29
|
+
const registry = new sdk_1.AgentRegistry(config.rpc, undefined, contracts.agentcore);
|
|
30
|
+
const agent = await registry.getAgent(account);
|
|
31
|
+
if (!agent) {
|
|
32
|
+
return { error: `Agent '${account}' not found` };
|
|
33
|
+
}
|
|
34
|
+
return agent;
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
api.registerTool({
|
|
38
|
+
name: 'xpr_list_agents',
|
|
39
|
+
description: 'List registered agents with optional filtering by active status. Returns paginated results.',
|
|
40
|
+
parameters: {
|
|
41
|
+
type: 'object',
|
|
42
|
+
properties: {
|
|
43
|
+
limit: { type: 'number', description: 'Max results (default 20, max 100)' },
|
|
44
|
+
cursor: { type: 'string', description: 'Pagination cursor from previous result' },
|
|
45
|
+
active_only: { type: 'boolean', description: 'Only show active agents (default true)' },
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
handler: async ({ limit = 20, cursor, active_only = true }) => {
|
|
49
|
+
const registry = new sdk_1.AgentRegistry(config.rpc, undefined, contracts.agentcore);
|
|
50
|
+
return registry.listAgents({
|
|
51
|
+
limit: Math.min(limit, 100),
|
|
52
|
+
cursor,
|
|
53
|
+
active_only,
|
|
54
|
+
});
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
api.registerTool({
|
|
58
|
+
name: 'xpr_get_trust_score',
|
|
59
|
+
description: 'Get the trust score breakdown for an agent. Score components: KYC (0-30), Stake (0-20), Reputation (0-40), Longevity (0-10) = max 100.',
|
|
60
|
+
parameters: {
|
|
61
|
+
type: 'object',
|
|
62
|
+
required: ['account'],
|
|
63
|
+
properties: {
|
|
64
|
+
account: { type: 'string', description: 'Agent account name' },
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
handler: async ({ account }) => {
|
|
68
|
+
(0, validate_1.validateAccountName)(account);
|
|
69
|
+
const registry = new sdk_1.AgentRegistry(config.rpc, undefined, contracts.agentcore);
|
|
70
|
+
const trustScore = await registry.getTrustScore(account);
|
|
71
|
+
if (!trustScore) {
|
|
72
|
+
return { error: `Agent '${account}' not found` };
|
|
73
|
+
}
|
|
74
|
+
return trustScore;
|
|
75
|
+
},
|
|
76
|
+
});
|
|
77
|
+
api.registerTool({
|
|
78
|
+
name: 'xpr_get_agent_plugins',
|
|
79
|
+
description: 'Get all plugins installed on an agent.',
|
|
80
|
+
parameters: {
|
|
81
|
+
type: 'object',
|
|
82
|
+
required: ['account'],
|
|
83
|
+
properties: {
|
|
84
|
+
account: { type: 'string', description: 'Agent account name' },
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
handler: async ({ account }) => {
|
|
88
|
+
(0, validate_1.validateAccountName)(account);
|
|
89
|
+
const registry = new sdk_1.AgentRegistry(config.rpc, undefined, contracts.agentcore);
|
|
90
|
+
return { plugins: await registry.getAgentPlugins(account) };
|
|
91
|
+
},
|
|
92
|
+
});
|
|
93
|
+
api.registerTool({
|
|
94
|
+
name: 'xpr_list_plugins',
|
|
95
|
+
description: 'List available plugins in the registry, optionally filtered by category.',
|
|
96
|
+
parameters: {
|
|
97
|
+
type: 'object',
|
|
98
|
+
properties: {
|
|
99
|
+
category: {
|
|
100
|
+
type: 'string',
|
|
101
|
+
enum: ['compute', 'storage', 'oracle', 'payment', 'messaging', 'ai'],
|
|
102
|
+
description: 'Filter by plugin category',
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
handler: async ({ category }) => {
|
|
107
|
+
const registry = new sdk_1.AgentRegistry(config.rpc, undefined, contracts.agentcore);
|
|
108
|
+
return { plugins: await registry.listPlugins(category) };
|
|
109
|
+
},
|
|
110
|
+
});
|
|
111
|
+
api.registerTool({
|
|
112
|
+
name: 'xpr_get_core_config',
|
|
113
|
+
description: 'Get the agentcore contract configuration including fees, minimum stake, and linked contracts.',
|
|
114
|
+
parameters: { type: 'object', properties: {} },
|
|
115
|
+
handler: async () => {
|
|
116
|
+
const registry = new sdk_1.AgentRegistry(config.rpc, undefined, contracts.agentcore);
|
|
117
|
+
return registry.getConfig();
|
|
118
|
+
},
|
|
119
|
+
});
|
|
120
|
+
// ---- WRITE TOOLS ----
|
|
121
|
+
api.registerTool({
|
|
122
|
+
name: 'xpr_register_agent',
|
|
123
|
+
description: 'Register a new agent on the XPR Network registry. Requires XPR_ACCOUNT and XPR_PRIVATE_KEY env vars. May require a registration fee.',
|
|
124
|
+
parameters: {
|
|
125
|
+
type: 'object',
|
|
126
|
+
required: ['name', 'description', 'endpoint', 'protocol', 'capabilities'],
|
|
127
|
+
properties: {
|
|
128
|
+
name: { type: 'string', description: 'Display name for the agent' },
|
|
129
|
+
description: { type: 'string', description: 'Agent description' },
|
|
130
|
+
endpoint: { type: 'string', description: 'API endpoint URL' },
|
|
131
|
+
protocol: { type: 'string', description: 'Communication protocol. Must be one of: http, https, grpc, websocket, mqtt, wss' },
|
|
132
|
+
capabilities: {
|
|
133
|
+
type: 'array',
|
|
134
|
+
items: { type: 'string' },
|
|
135
|
+
description: 'List of agent capabilities',
|
|
136
|
+
},
|
|
137
|
+
fee_amount: { type: 'number', description: 'Registration fee in XPR (e.g., 10.0). Check xpr_get_core_config for current fee.' },
|
|
138
|
+
confirmed: { type: 'boolean', description: 'Set to true to execute after reviewing the confirmation prompt' },
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
handler: async (params) => {
|
|
142
|
+
if (!config.session)
|
|
143
|
+
throw new Error('Session required: set XPR_ACCOUNT and XPR_PRIVATE_KEY environment variables');
|
|
144
|
+
(0, validate_1.validateRequired)(params.name, 'name');
|
|
145
|
+
(0, validate_1.validateRequired)(params.endpoint, 'endpoint');
|
|
146
|
+
(0, validate_1.validateUrl)(params.endpoint, 'endpoint');
|
|
147
|
+
if (params.fee_amount) {
|
|
148
|
+
(0, validate_1.validateAmount)((0, validate_1.xprToSmallestUnits)(params.fee_amount), config.maxTransferAmount);
|
|
149
|
+
}
|
|
150
|
+
const confirmation = (0, confirm_1.needsConfirmation)(config.confirmHighRisk, params.confirmed, 'Register Agent', { name: params.name, endpoint: params.endpoint, fee: params.fee_amount ? `${params.fee_amount} XPR` : 'none' }, `Register agent "${params.name}" at ${params.endpoint}` + (params.fee_amount ? ` (fee: ${params.fee_amount} XPR)` : ''));
|
|
151
|
+
if (confirmation)
|
|
152
|
+
return confirmation;
|
|
153
|
+
const registry = new sdk_1.AgentRegistry(config.rpc, config.session, contracts.agentcore);
|
|
154
|
+
const data = {
|
|
155
|
+
name: params.name,
|
|
156
|
+
description: params.description,
|
|
157
|
+
endpoint: params.endpoint,
|
|
158
|
+
protocol: params.protocol,
|
|
159
|
+
capabilities: params.capabilities,
|
|
160
|
+
};
|
|
161
|
+
if (params.fee_amount) {
|
|
162
|
+
return registry.registerWithFee(data, `${params.fee_amount.toFixed(4)} XPR`);
|
|
163
|
+
}
|
|
164
|
+
return registry.register(data);
|
|
165
|
+
},
|
|
166
|
+
});
|
|
167
|
+
api.registerTool({
|
|
168
|
+
name: 'xpr_update_agent',
|
|
169
|
+
description: 'Update the current agent profile (name, description, endpoint, protocol, capabilities).',
|
|
170
|
+
parameters: {
|
|
171
|
+
type: 'object',
|
|
172
|
+
properties: {
|
|
173
|
+
name: { type: 'string', description: 'New display name' },
|
|
174
|
+
description: { type: 'string', description: 'New description' },
|
|
175
|
+
endpoint: { type: 'string', description: 'New API endpoint URL' },
|
|
176
|
+
protocol: { type: 'string', description: 'New protocol' },
|
|
177
|
+
capabilities: {
|
|
178
|
+
type: 'array',
|
|
179
|
+
items: { type: 'string' },
|
|
180
|
+
description: 'New capabilities list',
|
|
181
|
+
},
|
|
182
|
+
},
|
|
183
|
+
},
|
|
184
|
+
handler: async (params) => {
|
|
185
|
+
if (!config.session)
|
|
186
|
+
throw new Error('Session required: set XPR_ACCOUNT and XPR_PRIVATE_KEY environment variables');
|
|
187
|
+
if (params.endpoint)
|
|
188
|
+
(0, validate_1.validateUrl)(params.endpoint, 'endpoint');
|
|
189
|
+
const registry = new sdk_1.AgentRegistry(config.rpc, config.session, contracts.agentcore);
|
|
190
|
+
return registry.update(params);
|
|
191
|
+
},
|
|
192
|
+
});
|
|
193
|
+
api.registerTool({
|
|
194
|
+
name: 'xpr_set_agent_status',
|
|
195
|
+
description: 'Set the active/inactive status of the current agent.',
|
|
196
|
+
parameters: {
|
|
197
|
+
type: 'object',
|
|
198
|
+
required: ['active'],
|
|
199
|
+
properties: {
|
|
200
|
+
active: { type: 'boolean', description: 'true to activate, false to deactivate' },
|
|
201
|
+
},
|
|
202
|
+
},
|
|
203
|
+
handler: async ({ active }) => {
|
|
204
|
+
if (!config.session)
|
|
205
|
+
throw new Error('Session required: set XPR_ACCOUNT and XPR_PRIVATE_KEY environment variables');
|
|
206
|
+
const registry = new sdk_1.AgentRegistry(config.rpc, config.session, contracts.agentcore);
|
|
207
|
+
return registry.setStatus(active);
|
|
208
|
+
},
|
|
209
|
+
});
|
|
210
|
+
api.registerTool({
|
|
211
|
+
name: 'xpr_manage_plugin',
|
|
212
|
+
description: 'Add, remove, or toggle a plugin on the current agent.',
|
|
213
|
+
parameters: {
|
|
214
|
+
type: 'object',
|
|
215
|
+
required: ['action'],
|
|
216
|
+
properties: {
|
|
217
|
+
action: {
|
|
218
|
+
type: 'string',
|
|
219
|
+
enum: ['add', 'remove', 'toggle'],
|
|
220
|
+
description: 'Plugin management action',
|
|
221
|
+
},
|
|
222
|
+
plugin_id: { type: 'number', description: 'Plugin ID (required for add)' },
|
|
223
|
+
agentplugin_id: { type: 'number', description: 'Agent-plugin assignment ID (required for remove/toggle)' },
|
|
224
|
+
config: { type: 'object', description: 'Plugin configuration (for add)' },
|
|
225
|
+
enabled: { type: 'boolean', description: 'Enable/disable state (for toggle)' },
|
|
226
|
+
},
|
|
227
|
+
},
|
|
228
|
+
handler: async (params) => {
|
|
229
|
+
if (!config.session)
|
|
230
|
+
throw new Error('Session required: set XPR_ACCOUNT and XPR_PRIVATE_KEY environment variables');
|
|
231
|
+
const registry = new sdk_1.AgentRegistry(config.rpc, config.session, contracts.agentcore);
|
|
232
|
+
switch (params.action) {
|
|
233
|
+
case 'add':
|
|
234
|
+
(0, validate_1.validateRequired)(params.plugin_id, 'plugin_id');
|
|
235
|
+
return registry.addPlugin(params.plugin_id, params.config);
|
|
236
|
+
case 'remove':
|
|
237
|
+
(0, validate_1.validateRequired)(params.agentplugin_id, 'agentplugin_id');
|
|
238
|
+
return registry.removePlugin(params.agentplugin_id);
|
|
239
|
+
case 'toggle': {
|
|
240
|
+
(0, validate_1.validateRequired)(params.agentplugin_id, 'agentplugin_id');
|
|
241
|
+
// Toggle requires knowing current state; SDK toggleplug sets enabled directly
|
|
242
|
+
return config.session.link.transact({
|
|
243
|
+
actions: [{
|
|
244
|
+
account: contracts.agentcore,
|
|
245
|
+
name: 'toggleplug',
|
|
246
|
+
authorization: [{ actor: config.session.auth.actor, permission: config.session.auth.permission }],
|
|
247
|
+
data: {
|
|
248
|
+
agent: config.session.auth.actor,
|
|
249
|
+
agentplugin_id: params.agentplugin_id,
|
|
250
|
+
enabled: params.enabled ?? true,
|
|
251
|
+
},
|
|
252
|
+
}],
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
default:
|
|
256
|
+
throw new Error(`Unknown action: ${params.action}`);
|
|
257
|
+
}
|
|
258
|
+
},
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
//# sourceMappingURL=agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/tools/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Escrow tools (14 tools)
|
|
3
|
+
* Reads: xpr_get_job, xpr_list_jobs, xpr_get_milestones,
|
|
4
|
+
* xpr_get_job_dispute, xpr_list_arbitrators
|
|
5
|
+
* Writes: xpr_create_job, xpr_fund_job, xpr_accept_job,
|
|
6
|
+
* xpr_deliver_job, xpr_approve_delivery, xpr_raise_dispute,
|
|
7
|
+
* xpr_submit_milestone, xpr_arbitrate, xpr_resolve_timeout
|
|
8
|
+
*/
|
|
9
|
+
import type { PluginApi, PluginConfig } from '../types';
|
|
10
|
+
export declare function registerEscrowTools(api: PluginApi, config: PluginConfig): void;
|
|
11
|
+
//# sourceMappingURL=escrow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escrow.d.ts","sourceRoot":"","sources":["../../src/tools/escrow.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAYxD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAub9E"}
|