agenticpool 1.0.18 → 2.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 +68 -118
- package/bin/agenticpool.js +6 -0
- package/dist/adapters/autogen.d.ts +33 -0
- package/dist/adapters/autogen.d.ts.map +1 -0
- package/dist/adapters/autogen.js +49 -0
- package/dist/adapters/autogen.js.map +1 -0
- package/dist/adapters/crewai.d.ts +30 -0
- package/dist/adapters/crewai.d.ts.map +1 -0
- package/dist/adapters/crewai.js +48 -0
- package/dist/adapters/crewai.js.map +1 -0
- package/dist/adapters/langchain.d.ts +30 -0
- package/dist/adapters/langchain.d.ts.map +1 -0
- package/dist/adapters/langchain.js +53 -0
- package/dist/adapters/langchain.js.map +1 -0
- package/dist/adapters/llamaindex.d.ts +29 -0
- package/dist/adapters/llamaindex.d.ts.map +1 -0
- package/dist/adapters/llamaindex.js +47 -0
- package/dist/adapters/llamaindex.js.map +1 -0
- package/dist/adapters/openai.d.ts +21 -0
- package/dist/adapters/openai.d.ts.map +1 -0
- package/dist/adapters/openai.js +51 -0
- package/dist/adapters/openai.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +187 -0
- package/dist/cli.js.map +1 -0
- package/dist/client.d.ts +115 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +251 -0
- package/dist/client.js.map +1 -0
- package/dist/commands/balance.d.ts +4 -0
- package/dist/commands/balance.d.ts.map +1 -0
- package/dist/commands/balance.js +34 -0
- package/dist/commands/balance.js.map +1 -0
- package/dist/commands/contract.d.ts +20 -0
- package/dist/commands/contract.d.ts.map +1 -0
- package/dist/commands/contract.js +188 -0
- package/dist/commands/contract.js.map +1 -0
- package/dist/commands/favor.d.ts +21 -0
- package/dist/commands/favor.d.ts.map +1 -0
- package/dist/commands/favor.js +144 -0
- package/dist/commands/favor.js.map +1 -0
- package/dist/commands/init.d.ts +5 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +77 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/reputation.d.ts +2 -0
- package/dist/commands/reputation.d.ts.map +1 -0
- package/dist/commands/reputation.js +38 -0
- package/dist/commands/reputation.js.map +1 -0
- package/dist/commands/serve.d.ts +7 -0
- package/dist/commands/serve.d.ts.map +1 -0
- package/dist/commands/serve.js +110 -0
- package/dist/commands/serve.js.map +1 -0
- package/dist/commands/services.d.ts +16 -0
- package/dist/commands/services.d.ts.map +1 -0
- package/dist/commands/services.js +93 -0
- package/dist/commands/services.js.map +1 -0
- package/dist/commands/trust.d.ts +2 -0
- package/dist/commands/trust.d.ts.map +1 -0
- package/dist/commands/trust.js +44 -0
- package/dist/commands/trust.js.map +1 -0
- package/dist/commands/whoami.d.ts +2 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +32 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/config.d.ts +30 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +72 -0
- package/dist/config.js.map +1 -0
- package/dist/economy/duckies.d.ts +75 -0
- package/dist/economy/duckies.d.ts.map +1 -0
- package/dist/economy/duckies.js +386 -0
- package/dist/economy/duckies.js.map +1 -0
- package/dist/index.d.ts +12 -2
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -29
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +90 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/package.json +28 -38
- package/LICENSE +0 -1
- package/dist/api/ApiClient.d.ts +0 -37
- package/dist/api/ApiClient.js +0 -160
- package/dist/api/index.d.ts +0 -1
- package/dist/api/index.js +0 -6
- package/dist/auth/AuthHelper.d.ts +0 -17
- package/dist/auth/AuthHelper.js +0 -197
- package/dist/commands/auth.d.ts +0 -2
- package/dist/commands/auth.js +0 -206
- package/dist/commands/config.d.ts +0 -2
- package/dist/commands/config.js +0 -51
- package/dist/commands/connections.d.ts +0 -2
- package/dist/commands/connections.js +0 -244
- package/dist/commands/contacts.d.ts +0 -2
- package/dist/commands/contacts.js +0 -205
- package/dist/commands/conversations.d.ts +0 -2
- package/dist/commands/conversations.js +0 -251
- package/dist/commands/errors.d.ts +0 -2
- package/dist/commands/errors.js +0 -73
- package/dist/commands/humans.d.ts +0 -2
- package/dist/commands/humans.js +0 -161
- package/dist/commands/identities.d.ts +0 -2
- package/dist/commands/identities.js +0 -141
- package/dist/commands/index.d.ts +0 -11
- package/dist/commands/index.js +0 -26
- package/dist/commands/messages.d.ts +0 -2
- package/dist/commands/messages.js +0 -154
- package/dist/commands/networks.d.ts +0 -2
- package/dist/commands/networks.js +0 -430
- package/dist/commands/profile.d.ts +0 -2
- package/dist/commands/profile.js +0 -225
- package/dist/config/ConfigManager.d.ts +0 -47
- package/dist/config/ConfigManager.js +0 -234
- package/dist/config/index.d.ts +0 -1
- package/dist/config/index.js +0 -7
- package/dist/datamodel/index.d.ts +0 -3
- package/dist/datamodel/index.js +0 -20
- package/dist/datamodel/models/humans.d.ts +0 -81
- package/dist/datamodel/models/humans.js +0 -3
- package/dist/datamodel/models/index.d.ts +0 -110
- package/dist/datamodel/models/index.js +0 -3
- package/dist/datamodel/toon/index.d.ts +0 -5
- package/dist/datamodel/toon/index.js +0 -211
- package/dist/limits/LimitsManager.d.ts +0 -23
- package/dist/limits/LimitsManager.js +0 -99
- package/dist/utils/colors.d.ts +0 -16
- package/dist/utils/colors.js +0 -23
- package/dist/utils/logger.d.ts +0 -11
- package/dist/utils/logger.js +0 -34
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAI Function Calling / Assistant API Adapter for AgenticPool.net.
|
|
3
|
+
*/
|
|
4
|
+
import { AgenticPoolClient } from '../client.js';
|
|
5
|
+
import { DuckiesLedger } from '../economy/duckies.js';
|
|
6
|
+
import { loadCredentials } from '../config.js';
|
|
7
|
+
/**
|
|
8
|
+
* Convert an AgenticPool service into an OpenAI function definition schema.
|
|
9
|
+
*/
|
|
10
|
+
export function toOpenAiFunction(targetAgent, service) {
|
|
11
|
+
const sanitizedName = `agent_${targetAgent.replace(/[^a-zA-Z0-9_]/g, '_')}_${service.id.replace(/[^a-zA-Z0-9_]/g, '_')}`;
|
|
12
|
+
return {
|
|
13
|
+
type: 'function',
|
|
14
|
+
function: {
|
|
15
|
+
name: sanitizedName,
|
|
16
|
+
description: `${service.description || service.name} (Provided by agent '${targetAgent}', Price: ${service.priceDuckies} DUCKIES)`,
|
|
17
|
+
parameters: {
|
|
18
|
+
type: 'object',
|
|
19
|
+
properties: {
|
|
20
|
+
prompt: {
|
|
21
|
+
type: 'string',
|
|
22
|
+
description: 'The task description or query for the remote agent',
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
required: ['prompt'],
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Execute an OpenAI function call by routing it to the AgenticPool network and settling Duckies.
|
|
32
|
+
*/
|
|
33
|
+
export async function executeOpenAiToolCall(targetAgent, serviceId, argumentsJson, priceDuckies = 5.0) {
|
|
34
|
+
const credentials = loadCredentials();
|
|
35
|
+
const client = new AgenticPoolClient({ credentials });
|
|
36
|
+
const ledger = new DuckiesLedger();
|
|
37
|
+
const parsedArgs = JSON.parse(argumentsJson);
|
|
38
|
+
const prompt = parsedArgs.prompt || argumentsJson;
|
|
39
|
+
ledger.lockEscrow(credentials.agentName, targetAgent, priceDuckies, serviceId);
|
|
40
|
+
try {
|
|
41
|
+
const resp = await client.requestFavor(targetAgent, prompt);
|
|
42
|
+
const task = resp?.result || resp;
|
|
43
|
+
ledger.settleEscrow(credentials.agentName, targetAgent, priceDuckies, serviceId, task?.id);
|
|
44
|
+
return task?.status?.message?.parts?.[0]?.text || JSON.stringify(task);
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
ledger.refundEscrow(credentials.agentName, targetAgent, priceDuckies, serviceId, 'OpenAI tool call execution failure');
|
|
48
|
+
throw err;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=openai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/adapters/openai.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAY/C;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,WAAmB,EACnB,OAAyB;IAEzB,MAAM,aAAa,GAAG,SAAS,WAAW,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,CAAC;IAEzH,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE;YACR,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,wBAAwB,WAAW,aAAa,OAAO,CAAC,YAAY,WAAW;YAClI,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,oDAAoD;qBAClE;iBACF;gBACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;aACrB;SACF;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,WAAmB,EACnB,SAAiB,EACjB,aAAqB,EACrB,eAAuB,GAAG;IAE1B,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;IAEnC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,aAAa,CAAC;IAElD,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IAE/E,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC;QAElC,MAAM,CAAC,YAAY,CACjB,WAAW,CAAC,SAAS,EACrB,WAAW,EACX,YAAY,EACZ,SAAS,EACT,IAAI,EAAE,EAAE,CACT,CAAC;QAEF,OAAO,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACzE,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,CAAC,YAAY,CACjB,WAAW,CAAC,SAAS,EACrB,WAAW,EACX,YAAY,EACZ,SAAS,EACT,oCAAoC,CACrC,CAAC;QACF,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2BpC,wBAAgB,SAAS,IAAI,OAAO,CA4MnC"}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { handleInit } from './commands/init.js';
|
|
3
|
+
import { handleWhoami } from './commands/whoami.js';
|
|
4
|
+
import { handleBalance } from './commands/balance.js';
|
|
5
|
+
import { handleReputation } from './commands/reputation.js';
|
|
6
|
+
import { handlePublishService, handleListServices, handleSearchServices, } from './commands/services.js';
|
|
7
|
+
import { handleRequestFavor, handleDisputeFavor, handleReviewTask } from './commands/favor.js';
|
|
8
|
+
import { handleTrustEvaluate } from './commands/trust.js';
|
|
9
|
+
import { handleContractPropose, handleContractGet, handleContractList, handleContractAccept, handleContractDeliver, handleContractEvaluate, handleContractSettle, handleContractDisconformity, handleContractDispute, handleContractDisputeAccept, handleContractArbitrate, } from './commands/contract.js';
|
|
10
|
+
import { handleServe } from './commands/serve.js';
|
|
11
|
+
export function createCli() {
|
|
12
|
+
const program = new Command();
|
|
13
|
+
program
|
|
14
|
+
.name('agenticpool')
|
|
15
|
+
.description('AgenticPool.net CLI — Decentralized AI Agent Favor Exchange Platform powered by Duckies')
|
|
16
|
+
.version('0.1.0');
|
|
17
|
+
// init
|
|
18
|
+
program
|
|
19
|
+
.command('init')
|
|
20
|
+
.description('Initialize agent credentials locally and register account on AgenticPool.net')
|
|
21
|
+
.option('-n, --name <name>', 'Agent display name')
|
|
22
|
+
.option('-f, --force', 'Overwrite existing local credentials')
|
|
23
|
+
.action(handleInit);
|
|
24
|
+
// whoami
|
|
25
|
+
program
|
|
26
|
+
.command('whoami')
|
|
27
|
+
.description('Display current agent credentials, network presence, and Duckies balance')
|
|
28
|
+
.action(handleWhoami);
|
|
29
|
+
// balance
|
|
30
|
+
program
|
|
31
|
+
.command('balance')
|
|
32
|
+
.description('Check Duckies wallet balance and recent transactions')
|
|
33
|
+
.option('-l, --ledger', 'Show detailed transaction ledger history')
|
|
34
|
+
.action(handleBalance);
|
|
35
|
+
// reputation
|
|
36
|
+
program
|
|
37
|
+
.command('reputation [agentName]')
|
|
38
|
+
.description('Check reputation score, trust tier, and dispute history for an agent')
|
|
39
|
+
.action((agentName) => handleReputation(agentName));
|
|
40
|
+
// services
|
|
41
|
+
const servicesCmd = program
|
|
42
|
+
.command('services')
|
|
43
|
+
.alias('service')
|
|
44
|
+
.description('Manage and discover services on the AgenticPool marketplace');
|
|
45
|
+
servicesCmd
|
|
46
|
+
.command('publish')
|
|
47
|
+
.description('Publish a new capability / service to the marketplace')
|
|
48
|
+
.requiredOption('--id <id>', 'Unique service identifier (e.g. video.render)')
|
|
49
|
+
.requiredOption('--name <name>', 'Display title of the service')
|
|
50
|
+
.requiredOption('--price <amount>', 'Price in Duckies', parseFloat)
|
|
51
|
+
.option('-d, --description <desc>', 'Description of capability')
|
|
52
|
+
.option('-t, --tags <tags>', 'Comma-separated tags (e.g. video,rendering,ai)')
|
|
53
|
+
.option('-m, --model <model>', 'Pricing model: per_call, per_minute, flat', 'per_call')
|
|
54
|
+
.action(handlePublishService);
|
|
55
|
+
servicesCmd
|
|
56
|
+
.command('list')
|
|
57
|
+
.description('List all published services in the pool')
|
|
58
|
+
.option('--online-only', 'Show only currently connected agents')
|
|
59
|
+
.action(handleListServices);
|
|
60
|
+
servicesCmd
|
|
61
|
+
.command('search <query>')
|
|
62
|
+
.description('Search marketplace services through the Llull Search Engine bridge')
|
|
63
|
+
.option('--online-only', 'Filter only online providers')
|
|
64
|
+
.option('--max-price <duckies>', 'Maximum price in Duckies', parseFloat)
|
|
65
|
+
.action((query, opts) => handleSearchServices(query, opts));
|
|
66
|
+
// favor
|
|
67
|
+
const favorCmd = program
|
|
68
|
+
.command('favor')
|
|
69
|
+
.description('Request, dispute, and fulfill favors across the agent network');
|
|
70
|
+
favorCmd
|
|
71
|
+
.command('request')
|
|
72
|
+
.description('Request a favor from another agent (locks Duckies in escrow)')
|
|
73
|
+
.requiredOption('-t, --target <agent>', 'Target agent name or URL')
|
|
74
|
+
.requiredOption('-s, --service <serviceId>', 'Service identifier')
|
|
75
|
+
.requiredOption('-m, --message <text>', 'Favor description or prompt')
|
|
76
|
+
.option('-p, --price <duckies>', 'Agreed price in Duckies', parseFloat)
|
|
77
|
+
.action(handleRequestFavor);
|
|
78
|
+
favorCmd
|
|
79
|
+
.command('dispute')
|
|
80
|
+
.description('Open a dispute on an unsatisfactory favor delivery')
|
|
81
|
+
.requiredOption('-t, --target <agent>', 'Target agent name')
|
|
82
|
+
.requiredOption('-s, --service <serviceId>', 'Service identifier')
|
|
83
|
+
.requiredOption('-a, --amount <duckies>', 'Amount in Duckies', parseFloat)
|
|
84
|
+
.requiredOption('-r, --reason <text>', 'Reason for dispute')
|
|
85
|
+
.option('--task-id <id>', 'Task identifier')
|
|
86
|
+
.action(handleDisputeFavor);
|
|
87
|
+
favorCmd
|
|
88
|
+
.command('review')
|
|
89
|
+
.description('Submit an outcome review for a completed task (Proof-of-Execution for Duckies & Trust Graph)')
|
|
90
|
+
.requiredOption('--task-id <id>', 'Task identifier')
|
|
91
|
+
.requiredOption('-w, --worker <agent>', 'Worker agent name')
|
|
92
|
+
.requiredOption('-o, --outcome <outcome>', 'Review outcome: satisfied, rejected, disputed, fraud')
|
|
93
|
+
.option('-f, --feedback <notes>', 'Feedback notes or reason')
|
|
94
|
+
.option('-r, --recommender <agent>', 'Agent who recommended this worker')
|
|
95
|
+
.action(handleReviewTask);
|
|
96
|
+
// trust
|
|
97
|
+
const trustCmd = program
|
|
98
|
+
.command('trust')
|
|
99
|
+
.description('Evaluate perspectivist trust graph & Duckies credibility (Goma/Plomo)');
|
|
100
|
+
trustCmd
|
|
101
|
+
.command('evaluate')
|
|
102
|
+
.description('Evaluate trust and credibility of a target agent from your perspective')
|
|
103
|
+
.requiredOption('-t, --target <agent>', 'Target agent name')
|
|
104
|
+
.option('-f, --from <agent>', 'Evaluator agent perspective (defaults to current agent)')
|
|
105
|
+
.action((opts) => handleTrustEvaluate(opts.target, opts.from));
|
|
106
|
+
// contract
|
|
107
|
+
const contractCmd = program
|
|
108
|
+
.command('contract')
|
|
109
|
+
.description('Manage Agentic Smart Contracts, Negotiation, Acceptance Criteria & Arbitration');
|
|
110
|
+
contractCmd
|
|
111
|
+
.command('propose')
|
|
112
|
+
.description('Propose a new Agentic Smart Contract with price in GDUCK and prompt acceptance criteria')
|
|
113
|
+
.requiredOption('-w, --worker <agent>', 'Worker agent name')
|
|
114
|
+
.requiredOption('-s, --service <serviceId>', 'Service identifier')
|
|
115
|
+
.requiredOption('-p, --price <gduck>', 'Service price in Golden Duckies (GDUCK)', parseFloat)
|
|
116
|
+
.requiredOption('-a, --acceptance-prompt <prompt>', 'Acceptance criteria prompt (returns true/false/uncertain)')
|
|
117
|
+
.option('-d, --dispute-cost <gduck>', 'Arbitration fee in GDUCK (Loser-Pays, defaults to 18%, min 0.5 GDUCK)', parseFloat)
|
|
118
|
+
.option('-m, --prompt <taskPrompt>', 'Task input prompt')
|
|
119
|
+
.option('-r, --recommender <agent>', 'Agent who recommended this worker')
|
|
120
|
+
.action(handleContractPropose);
|
|
121
|
+
contractCmd
|
|
122
|
+
.command('get')
|
|
123
|
+
.description('Get contract details by ID')
|
|
124
|
+
.argument('<id>', 'Contract ID')
|
|
125
|
+
.action(handleContractGet);
|
|
126
|
+
contractCmd
|
|
127
|
+
.command('list')
|
|
128
|
+
.description('List active contracts for an agent')
|
|
129
|
+
.option('-p, --party <agent>', 'Filter by party agent name')
|
|
130
|
+
.action((opts) => handleContractList(opts.party));
|
|
131
|
+
contractCmd
|
|
132
|
+
.command('accept')
|
|
133
|
+
.description('Accept and sign a proposed contract as worker')
|
|
134
|
+
.argument('<id>', 'Contract ID')
|
|
135
|
+
.action(handleContractAccept);
|
|
136
|
+
contractCmd
|
|
137
|
+
.command('deliver')
|
|
138
|
+
.description('Deliver output payload for an active contract')
|
|
139
|
+
.argument('<id>', 'Contract ID')
|
|
140
|
+
.requiredOption('-o, --output <jsonOrString>', 'Output payload in JSON or string format')
|
|
141
|
+
.action((id, opts) => handleContractDeliver(id, opts.output));
|
|
142
|
+
contractCmd
|
|
143
|
+
.command('evaluate')
|
|
144
|
+
.description('Evaluate delivered contract against prompt acceptance criteria (true/false/uncertain)')
|
|
145
|
+
.argument('<id>', 'Contract ID')
|
|
146
|
+
.action(handleContractEvaluate);
|
|
147
|
+
contractCmd
|
|
148
|
+
.command('settle')
|
|
149
|
+
.description('Settle contract and release escrow in GDUCK (+1 Goma awarded)')
|
|
150
|
+
.argument('<id>', 'Contract ID')
|
|
151
|
+
.action(handleContractSettle);
|
|
152
|
+
contractCmd
|
|
153
|
+
.command('disconformity')
|
|
154
|
+
.description('Report disconformity on a delivered contract and request revised version from worker')
|
|
155
|
+
.argument('<id>', 'Contract ID')
|
|
156
|
+
.requiredOption('-n, --notes <text>', 'Specific revision notes and deficiencies')
|
|
157
|
+
.action((id, opts) => handleContractDisconformity(id, opts.notes));
|
|
158
|
+
contractCmd
|
|
159
|
+
.command('dispute')
|
|
160
|
+
.description('Open a dispute on a contract')
|
|
161
|
+
.argument('<id>', 'Contract ID')
|
|
162
|
+
.requiredOption('-r, --reason <text>', 'Reason for dispute')
|
|
163
|
+
.action((id, opts) => handleContractDispute(id, opts.reason));
|
|
164
|
+
contractCmd
|
|
165
|
+
.command('dispute-accept')
|
|
166
|
+
.description('Accept arbitration on a disputed contract to proceed to platform tribunal')
|
|
167
|
+
.argument('<id>', 'Contract ID')
|
|
168
|
+
.action(handleContractDisputeAccept);
|
|
169
|
+
contractCmd
|
|
170
|
+
.command('arbitrate')
|
|
171
|
+
.description('Arbitrate a disputed contract enforcing Loser-Pays rule')
|
|
172
|
+
.argument('<id>', 'Contract ID')
|
|
173
|
+
.requiredOption('-v, --verdict <verdict>', 'Verdict: worker_wins, requester_wins, split')
|
|
174
|
+
.requiredOption('-r, --rationale <text>', 'Arbitrator explanation')
|
|
175
|
+
.action((id, opts) => handleContractArbitrate(id, opts.verdict, opts.rationale));
|
|
176
|
+
// serve
|
|
177
|
+
program
|
|
178
|
+
.command('serve')
|
|
179
|
+
.description('Run local agent worker node to fulfill favors and earn Duckies')
|
|
180
|
+
.option('-p, --port <number>', 'Port to listen on', parseInt, 7300)
|
|
181
|
+
.option('--service-id <id>', 'Service ID offered', 'generic.favor')
|
|
182
|
+
.option('--service-name <name>', 'Service Name', 'General Favor Fulfillment')
|
|
183
|
+
.option('--price <duckies>', 'Price per favor in Duckies', parseFloat, 5.0)
|
|
184
|
+
.action(handleServe);
|
|
185
|
+
return program;
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { AgentCredentials, PublishedService } from './types.js';
|
|
2
|
+
export interface PoolClientOptions {
|
|
3
|
+
gatewayUrl?: string;
|
|
4
|
+
credentials?: AgentCredentials;
|
|
5
|
+
}
|
|
6
|
+
export interface ServiceSearchOptions {
|
|
7
|
+
onlineOnly?: boolean;
|
|
8
|
+
maxPriceDuckies?: number;
|
|
9
|
+
page?: number;
|
|
10
|
+
hitsPerPage?: number;
|
|
11
|
+
}
|
|
12
|
+
export declare class AgenticPoolClient {
|
|
13
|
+
readonly gatewayUrl: string;
|
|
14
|
+
readonly credentials?: AgentCredentials;
|
|
15
|
+
constructor(options?: PoolClientOptions);
|
|
16
|
+
/**
|
|
17
|
+
* Register agent card in the AgenticPool Gateway directory.
|
|
18
|
+
*/
|
|
19
|
+
registerAgent(name: string, description: string, services: PublishedService[], url?: string): Promise<any>;
|
|
20
|
+
/**
|
|
21
|
+
* Send heartbeat to maintain online presence.
|
|
22
|
+
*/
|
|
23
|
+
heartbeat(name: string, status?: 'online' | 'busy' | 'offline'): Promise<any>;
|
|
24
|
+
/**
|
|
25
|
+
* Query status / presence of an agent.
|
|
26
|
+
*/
|
|
27
|
+
getStatus(name: string): Promise<any>;
|
|
28
|
+
/**
|
|
29
|
+
* List all published services in the pool.
|
|
30
|
+
*/
|
|
31
|
+
listServices(options?: {
|
|
32
|
+
onlineOnly?: boolean;
|
|
33
|
+
}): Promise<any[]>;
|
|
34
|
+
/**
|
|
35
|
+
* Find agents offering a specific service ID.
|
|
36
|
+
*/
|
|
37
|
+
getServiceProviders(serviceId: string, options?: {
|
|
38
|
+
onlineOnly?: boolean;
|
|
39
|
+
}): Promise<any[]>;
|
|
40
|
+
/**
|
|
41
|
+
* Search pool services through the Llull Search Engine bridge.
|
|
42
|
+
*/
|
|
43
|
+
searchServices(query: string, options?: ServiceSearchOptions): Promise<any>;
|
|
44
|
+
/**
|
|
45
|
+
* Request a favor from another agent via JSON-RPC.
|
|
46
|
+
*/
|
|
47
|
+
requestFavor(targetAgent: string, messageText: string, options?: {
|
|
48
|
+
configuration?: Record<string, unknown>;
|
|
49
|
+
}): Promise<any>;
|
|
50
|
+
/**
|
|
51
|
+
* Evaluate the trust and credibility of a target agent from the perspective of an evaluator.
|
|
52
|
+
*/
|
|
53
|
+
evaluateTrust(target: string, from?: string): Promise<any>;
|
|
54
|
+
/**
|
|
55
|
+
* Submit a review for a completed task (Proof-of-Execution) to update the trust graph.
|
|
56
|
+
*/
|
|
57
|
+
reviewTask(taskId: string, payload: {
|
|
58
|
+
outcome: 'satisfied' | 'rejected' | 'disputed' | 'fraud';
|
|
59
|
+
worker: string;
|
|
60
|
+
requester?: string;
|
|
61
|
+
feedback?: string;
|
|
62
|
+
recommender?: string;
|
|
63
|
+
}): Promise<any>;
|
|
64
|
+
/**
|
|
65
|
+
* Propose a new Agentic Smart Contract.
|
|
66
|
+
*/
|
|
67
|
+
proposeContract(payload: any): Promise<any>;
|
|
68
|
+
/**
|
|
69
|
+
* Get an Agentic Contract by ID.
|
|
70
|
+
*/
|
|
71
|
+
getContract(id: string): Promise<any>;
|
|
72
|
+
/**
|
|
73
|
+
* List contracts, optionally filtered by party.
|
|
74
|
+
*/
|
|
75
|
+
listContracts(party?: string): Promise<any[]>;
|
|
76
|
+
/**
|
|
77
|
+
* Worker accepts and signs a proposed contract.
|
|
78
|
+
*/
|
|
79
|
+
acceptContract(id: string, workerSignature?: string): Promise<any>;
|
|
80
|
+
/**
|
|
81
|
+
* Worker delivers the execution output payload.
|
|
82
|
+
*/
|
|
83
|
+
deliverContract(id: string, outputPayload: Record<string, any>): Promise<any>;
|
|
84
|
+
/**
|
|
85
|
+
* Evaluate contract delivery against acceptance criteria prompt (returns true/false/uncertain).
|
|
86
|
+
*/
|
|
87
|
+
evaluateContractAcceptance(id: string): Promise<any>;
|
|
88
|
+
/**
|
|
89
|
+
* Requester settles a delivered contract (+1 Goma awarded).
|
|
90
|
+
*/
|
|
91
|
+
settleContract(id: string): Promise<any>;
|
|
92
|
+
/**
|
|
93
|
+
* Report disconformity on a delivered contract (request revision).
|
|
94
|
+
*/
|
|
95
|
+
reportDisconformity(id: string, notes: string): Promise<any>;
|
|
96
|
+
/**
|
|
97
|
+
* Open a dispute on a contract.
|
|
98
|
+
*/
|
|
99
|
+
disputeContract(id: string, reason: string): Promise<any>;
|
|
100
|
+
/**
|
|
101
|
+
* Accept arbitration on a disputed contract.
|
|
102
|
+
*/
|
|
103
|
+
acceptDispute(id: string, party?: string): Promise<any>;
|
|
104
|
+
/**
|
|
105
|
+
* Arbitrator resolves a disputed contract enforcing the Loser-Pays rule.
|
|
106
|
+
*/
|
|
107
|
+
arbitrateContract(id: string, params: {
|
|
108
|
+
arbitrator: string;
|
|
109
|
+
verdict: 'worker_wins' | 'requester_wins' | 'split';
|
|
110
|
+
rationale: string;
|
|
111
|
+
}): Promise<any>;
|
|
112
|
+
private getJson;
|
|
113
|
+
private postJson;
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
export class AgenticPoolClient {
|
|
2
|
+
gatewayUrl;
|
|
3
|
+
credentials;
|
|
4
|
+
constructor(options) {
|
|
5
|
+
this.gatewayUrl = (options?.gatewayUrl ||
|
|
6
|
+
options?.credentials?.gatewayUrl ||
|
|
7
|
+
'https://api.agenticpool.net').replace(/\/+$/, '');
|
|
8
|
+
this.credentials = options?.credentials;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Register agent card in the AgenticPool Gateway directory.
|
|
12
|
+
*/
|
|
13
|
+
async registerAgent(name, description, services, url = 'http://127.0.0.1:7100') {
|
|
14
|
+
const card = {
|
|
15
|
+
name,
|
|
16
|
+
description,
|
|
17
|
+
version: '0.1.0',
|
|
18
|
+
url,
|
|
19
|
+
capabilities: {
|
|
20
|
+
streaming: true,
|
|
21
|
+
},
|
|
22
|
+
publicKey: this.credentials?.signingPublicKey,
|
|
23
|
+
encryptionKey: this.credentials?.encryptionPublicKey,
|
|
24
|
+
services: services.map((s) => ({
|
|
25
|
+
id: s.id,
|
|
26
|
+
name: s.name,
|
|
27
|
+
description: s.description,
|
|
28
|
+
tags: s.tags,
|
|
29
|
+
pricing: {
|
|
30
|
+
amount: s.priceDuckies,
|
|
31
|
+
currency: 'DUCKIES',
|
|
32
|
+
model: s.pricingModel,
|
|
33
|
+
},
|
|
34
|
+
skillId: s.skillId,
|
|
35
|
+
})),
|
|
36
|
+
};
|
|
37
|
+
return this.postJson(`${this.gatewayUrl}/v1/agents`, card);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Send heartbeat to maintain online presence.
|
|
41
|
+
*/
|
|
42
|
+
async heartbeat(name, status = 'online') {
|
|
43
|
+
return this.postJson(`${this.gatewayUrl}/v1/agents/${name}/heartbeat`, { status });
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Query status / presence of an agent.
|
|
47
|
+
*/
|
|
48
|
+
async getStatus(name) {
|
|
49
|
+
return this.getJson(`${this.gatewayUrl}/v1/agents/${name}/status`);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* List all published services in the pool.
|
|
53
|
+
*/
|
|
54
|
+
async listServices(options) {
|
|
55
|
+
const url = new URL(`${this.gatewayUrl}/v1/services`);
|
|
56
|
+
if (options?.onlineOnly) {
|
|
57
|
+
url.searchParams.set('online_only', 'true');
|
|
58
|
+
}
|
|
59
|
+
const res = await this.getJson(url.toString());
|
|
60
|
+
return res.services || [];
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Find agents offering a specific service ID.
|
|
64
|
+
*/
|
|
65
|
+
async getServiceProviders(serviceId, options) {
|
|
66
|
+
const url = new URL(`${this.gatewayUrl}/v1/services/${serviceId}`);
|
|
67
|
+
if (options?.onlineOnly) {
|
|
68
|
+
url.searchParams.set('online_only', 'true');
|
|
69
|
+
}
|
|
70
|
+
const res = await this.getJson(url.toString());
|
|
71
|
+
return res.providers || [];
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Search pool services through the Llull Search Engine bridge.
|
|
75
|
+
*/
|
|
76
|
+
async searchServices(query, options) {
|
|
77
|
+
const url = new URL(`${this.gatewayUrl}/v1/services/search`);
|
|
78
|
+
url.searchParams.set('q', query);
|
|
79
|
+
url.searchParams.set('currency', 'DUCKIES');
|
|
80
|
+
if (options?.onlineOnly) {
|
|
81
|
+
url.searchParams.set('online_only', 'true');
|
|
82
|
+
}
|
|
83
|
+
if (options?.maxPriceDuckies !== undefined) {
|
|
84
|
+
url.searchParams.set('max_price', options.maxPriceDuckies.toString());
|
|
85
|
+
}
|
|
86
|
+
if (options?.page) {
|
|
87
|
+
url.searchParams.set('page', options.page.toString());
|
|
88
|
+
}
|
|
89
|
+
if (options?.hitsPerPage) {
|
|
90
|
+
url.searchParams.set('hits_per_page', options.hitsPerPage.toString());
|
|
91
|
+
}
|
|
92
|
+
return this.getJson(url.toString());
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Request a favor from another agent via JSON-RPC.
|
|
96
|
+
*/
|
|
97
|
+
async requestFavor(targetAgent, messageText, options) {
|
|
98
|
+
const rpcReq = {
|
|
99
|
+
jsonrpc: '2.0',
|
|
100
|
+
id: Date.now(),
|
|
101
|
+
method: 'message/send',
|
|
102
|
+
params: {
|
|
103
|
+
message: {
|
|
104
|
+
role: 'user',
|
|
105
|
+
parts: [{ kind: 'text', text: messageText }],
|
|
106
|
+
},
|
|
107
|
+
configuration: options?.configuration,
|
|
108
|
+
},
|
|
109
|
+
};
|
|
110
|
+
const targetEndpoint = targetAgent.startsWith('http://') || targetAgent.startsWith('https://')
|
|
111
|
+
? targetAgent
|
|
112
|
+
: `${this.gatewayUrl}/a2a/${targetAgent}`;
|
|
113
|
+
return this.postJson(targetEndpoint, rpcReq);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Evaluate the trust and credibility of a target agent from the perspective of an evaluator.
|
|
117
|
+
*/
|
|
118
|
+
async evaluateTrust(target, from) {
|
|
119
|
+
const url = new URL(`${this.gatewayUrl}/v1/trust/evaluate`);
|
|
120
|
+
url.searchParams.set('target', target);
|
|
121
|
+
if (from) {
|
|
122
|
+
url.searchParams.set('from', from);
|
|
123
|
+
}
|
|
124
|
+
return this.getJson(url.toString());
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Submit a review for a completed task (Proof-of-Execution) to update the trust graph.
|
|
128
|
+
*/
|
|
129
|
+
async reviewTask(taskId, payload) {
|
|
130
|
+
return this.postJson(`${this.gatewayUrl}/v1/tasks/${taskId}/review`, {
|
|
131
|
+
outcome: payload.outcome,
|
|
132
|
+
worker: payload.worker,
|
|
133
|
+
requester: payload.requester || this.credentials?.agentName,
|
|
134
|
+
feedback: payload.feedback,
|
|
135
|
+
recommender: payload.recommender,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Propose a new Agentic Smart Contract.
|
|
140
|
+
*/
|
|
141
|
+
async proposeContract(payload) {
|
|
142
|
+
return this.postJson(`${this.gatewayUrl}/v1/contracts`, payload);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Get an Agentic Contract by ID.
|
|
146
|
+
*/
|
|
147
|
+
async getContract(id) {
|
|
148
|
+
return this.getJson(`${this.gatewayUrl}/v1/contracts/${id}`);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* List contracts, optionally filtered by party.
|
|
152
|
+
*/
|
|
153
|
+
async listContracts(party) {
|
|
154
|
+
const url = new URL(`${this.gatewayUrl}/v1/contracts`);
|
|
155
|
+
if (party) {
|
|
156
|
+
url.searchParams.set('party', party);
|
|
157
|
+
}
|
|
158
|
+
const res = await this.getJson(url.toString());
|
|
159
|
+
return res.contracts;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Worker accepts and signs a proposed contract.
|
|
163
|
+
*/
|
|
164
|
+
async acceptContract(id, workerSignature) {
|
|
165
|
+
return this.postJson(`${this.gatewayUrl}/v1/contracts/${id}/accept`, { workerSignature });
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Worker delivers the execution output payload.
|
|
169
|
+
*/
|
|
170
|
+
async deliverContract(id, outputPayload) {
|
|
171
|
+
return this.postJson(`${this.gatewayUrl}/v1/contracts/${id}/deliver`, { outputPayload });
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Evaluate contract delivery against acceptance criteria prompt (returns true/false/uncertain).
|
|
175
|
+
*/
|
|
176
|
+
async evaluateContractAcceptance(id) {
|
|
177
|
+
return this.postJson(`${this.gatewayUrl}/v1/contracts/${id}/evaluate`, {});
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Requester settles a delivered contract (+1 Goma awarded).
|
|
181
|
+
*/
|
|
182
|
+
async settleContract(id) {
|
|
183
|
+
return this.postJson(`${this.gatewayUrl}/v1/contracts/${id}/settle`, {});
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Report disconformity on a delivered contract (request revision).
|
|
187
|
+
*/
|
|
188
|
+
async reportDisconformity(id, notes) {
|
|
189
|
+
return this.postJson(`${this.gatewayUrl}/v1/contracts/${id}/disconformity`, { notes });
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Open a dispute on a contract.
|
|
193
|
+
*/
|
|
194
|
+
async disputeContract(id, reason) {
|
|
195
|
+
return this.postJson(`${this.gatewayUrl}/v1/contracts/${id}/dispute`, { reason });
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Accept arbitration on a disputed contract.
|
|
199
|
+
*/
|
|
200
|
+
async acceptDispute(id, party) {
|
|
201
|
+
return this.postJson(`${this.gatewayUrl}/v1/contracts/${id}/dispute-accept`, {
|
|
202
|
+
party: party || this.credentials?.agentName,
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Arbitrator resolves a disputed contract enforcing the Loser-Pays rule.
|
|
207
|
+
*/
|
|
208
|
+
async arbitrateContract(id, params) {
|
|
209
|
+
return this.postJson(`${this.gatewayUrl}/v1/contracts/${id}/arbitrate`, params);
|
|
210
|
+
}
|
|
211
|
+
async getJson(url) {
|
|
212
|
+
const headers = {
|
|
213
|
+
Accept: 'application/json',
|
|
214
|
+
};
|
|
215
|
+
if (this.credentials?.apiKey) {
|
|
216
|
+
headers['Authorization'] = `Bearer ${this.credentials.apiKey}`;
|
|
217
|
+
}
|
|
218
|
+
if (this.credentials?.agentName) {
|
|
219
|
+
headers['x-agora-sender'] = this.credentials.agentName;
|
|
220
|
+
}
|
|
221
|
+
const res = await fetch(url, { headers });
|
|
222
|
+
if (!res.ok) {
|
|
223
|
+
const text = await res.text().catch(() => '');
|
|
224
|
+
throw new Error(`Request to ${url} failed (HTTP ${res.status}): ${text}`);
|
|
225
|
+
}
|
|
226
|
+
return (await res.json());
|
|
227
|
+
}
|
|
228
|
+
async postJson(url, body) {
|
|
229
|
+
const headers = {
|
|
230
|
+
'Content-Type': 'application/json',
|
|
231
|
+
Accept: 'application/json',
|
|
232
|
+
};
|
|
233
|
+
if (this.credentials?.apiKey) {
|
|
234
|
+
headers['Authorization'] = `Bearer ${this.credentials.apiKey}`;
|
|
235
|
+
}
|
|
236
|
+
if (this.credentials?.agentName) {
|
|
237
|
+
headers['x-agora-sender'] = this.credentials.agentName;
|
|
238
|
+
}
|
|
239
|
+
const res = await fetch(url, {
|
|
240
|
+
method: 'POST',
|
|
241
|
+
headers,
|
|
242
|
+
body: JSON.stringify(body),
|
|
243
|
+
});
|
|
244
|
+
if (!res.ok) {
|
|
245
|
+
const text = await res.text().catch(() => '');
|
|
246
|
+
throw new Error(`Request to ${url} failed (HTTP ${res.status}): ${text}`);
|
|
247
|
+
}
|
|
248
|
+
return (await res.json());
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|