paypol-sdk 1.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/adapters/anthropic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * PayPol SDK - Framework Adapters
3
+ *
4
+ * Adapters that convert PayPol agents into native tool definitions
5
+ * for popular AI frameworks.
6
+ *
7
+ * Usage:
8
+ * import { toOpenAITools } from 'paypol-sdk/adapters/openai';
9
+ * import { toAnthropicTools } from 'paypol-sdk/adapters/anthropic';
10
+ */
11
+ export { toOpenAITools, handleOpenAIToolCall, getAgentCatalog as getOpenAICatalog, } from './openai';
12
+ export type { OpenAITool, OpenAIToolCall, } from './openai';
13
+ export { toAnthropicTools, handleAnthropicToolUse, getAgentCatalog as getAnthropicCatalog, } from './anthropic';
14
+ export type { AnthropicTool, AnthropicToolUse, AnthropicToolResult, } from './anthropic';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,eAAe,IAAI,gBAAgB,GACpC,MAAM,UAAU,CAAC;AAElB,YAAY,EACV,UAAU,EACV,cAAc,GACf,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,IAAI,mBAAmB,GACvC,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ /**
3
+ * PayPol SDK - Framework Adapters
4
+ *
5
+ * Adapters that convert PayPol agents into native tool definitions
6
+ * for popular AI frameworks.
7
+ *
8
+ * Usage:
9
+ * import { toOpenAITools } from 'paypol-sdk/adapters/openai';
10
+ * import { toAnthropicTools } from 'paypol-sdk/adapters/anthropic';
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.getAnthropicCatalog = exports.handleAnthropicToolUse = exports.toAnthropicTools = exports.getOpenAICatalog = exports.handleOpenAIToolCall = exports.toOpenAITools = void 0;
14
+ var openai_1 = require("./openai");
15
+ Object.defineProperty(exports, "toOpenAITools", { enumerable: true, get: function () { return openai_1.toOpenAITools; } });
16
+ Object.defineProperty(exports, "handleOpenAIToolCall", { enumerable: true, get: function () { return openai_1.handleOpenAIToolCall; } });
17
+ Object.defineProperty(exports, "getOpenAICatalog", { enumerable: true, get: function () { return openai_1.getAgentCatalog; } });
18
+ var anthropic_1 = require("./anthropic");
19
+ Object.defineProperty(exports, "toAnthropicTools", { enumerable: true, get: function () { return anthropic_1.toAnthropicTools; } });
20
+ Object.defineProperty(exports, "handleAnthropicToolUse", { enumerable: true, get: function () { return anthropic_1.handleAnthropicToolUse; } });
21
+ Object.defineProperty(exports, "getAnthropicCatalog", { enumerable: true, get: function () { return anthropic_1.getAgentCatalog; } });
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,mCAIkB;AAHhB,uGAAA,aAAa,OAAA;AACb,8GAAA,oBAAoB,OAAA;AACpB,0GAAA,eAAe,OAAoB;AAQrC,yCAIqB;AAHnB,6GAAA,gBAAgB,OAAA;AAChB,mHAAA,sBAAsB,OAAA;AACtB,gHAAA,eAAe,OAAuB"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * OpenAI Function-Calling Adapter for PayPol Agents
3
+ *
4
+ * Converts PayPol marketplace agents into OpenAI function-calling tools.
5
+ * Works with the OpenAI Chat Completions API (GPT-4, GPT-3.5-turbo, etc.)
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { AgentClient } from 'paypol-sdk';
10
+ * import { toOpenAITools, handleOpenAIToolCall } from 'paypol-sdk/adapters/openai';
11
+ *
12
+ * const client = new AgentClient('https://paypol.xyz');
13
+ * const tools = await toOpenAITools(client);
14
+ *
15
+ * const response = await openai.chat.completions.create({
16
+ * model: 'gpt-4',
17
+ * messages: [{ role: 'user', content: 'Audit this Solidity contract' }],
18
+ * tools,
19
+ * });
20
+ *
21
+ * // Handle tool call
22
+ * const toolCall = response.choices[0].message.tool_calls?.[0];
23
+ * if (toolCall) {
24
+ * const result = await handleOpenAIToolCall(client, toolCall, '0xMyWallet');
25
+ * }
26
+ * ```
27
+ */
28
+ import { AgentClient } from '../AgentClient';
29
+ export interface OpenAITool {
30
+ type: 'function';
31
+ function: {
32
+ name: string;
33
+ description: string;
34
+ parameters: {
35
+ type: 'object';
36
+ properties: Record<string, {
37
+ type: string;
38
+ description: string;
39
+ }>;
40
+ required: string[];
41
+ };
42
+ };
43
+ }
44
+ export interface OpenAIToolCall {
45
+ id: string;
46
+ type: 'function';
47
+ function: {
48
+ name: string;
49
+ arguments: string;
50
+ };
51
+ }
52
+ /**
53
+ * Convert PayPol agents to OpenAI function-calling tools.
54
+ *
55
+ * @param client AgentClient instance (used for dynamic agent list)
56
+ * @param agentIds Optional filter - only include these agent IDs
57
+ */
58
+ export declare function toOpenAITools(client?: AgentClient, agentIds?: string[]): Promise<OpenAITool[]>;
59
+ /**
60
+ * Handle an OpenAI tool call by dispatching it to the correct PayPol agent.
61
+ *
62
+ * @param client AgentClient instance
63
+ * @param toolCall The tool call from OpenAI's response
64
+ * @param callerWallet Wallet address of the caller
65
+ * @returns JSON string of the agent's result
66
+ */
67
+ export declare function handleOpenAIToolCall(client: AgentClient, toolCall: OpenAIToolCall, callerWallet: string): Promise<string>;
68
+ /**
69
+ * Get the static agent catalog (no API call needed).
70
+ */
71
+ export declare function getAgentCatalog(): {
72
+ id: string;
73
+ name: string;
74
+ description: string;
75
+ category: string;
76
+ }[];
77
+ //# sourceMappingURL=openai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/adapters/openai.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAI7C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ,CAAC;YACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,WAAW,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;YAClE,QAAQ,EAAE,MAAM,EAAE,CAAC;SACpB,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAyCD;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,MAAM,CAAC,EAAE,WAAW,EACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,UAAU,EAAE,CAAC,CA8CvB;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAwBjB;AAED;;GAEG;AACH,wBAAgB,eAAe;QAvIJ,MAAM;UAAQ,MAAM;iBAAe,MAAM;cAAY,MAAM;IAyIrF"}
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ /**
3
+ * OpenAI Function-Calling Adapter for PayPol Agents
4
+ *
5
+ * Converts PayPol marketplace agents into OpenAI function-calling tools.
6
+ * Works with the OpenAI Chat Completions API (GPT-4, GPT-3.5-turbo, etc.)
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { AgentClient } from 'paypol-sdk';
11
+ * import { toOpenAITools, handleOpenAIToolCall } from 'paypol-sdk/adapters/openai';
12
+ *
13
+ * const client = new AgentClient('https://paypol.xyz');
14
+ * const tools = await toOpenAITools(client);
15
+ *
16
+ * const response = await openai.chat.completions.create({
17
+ * model: 'gpt-4',
18
+ * messages: [{ role: 'user', content: 'Audit this Solidity contract' }],
19
+ * tools,
20
+ * });
21
+ *
22
+ * // Handle tool call
23
+ * const toolCall = response.choices[0].message.tool_calls?.[0];
24
+ * if (toolCall) {
25
+ * const result = await handleOpenAIToolCall(client, toolCall, '0xMyWallet');
26
+ * }
27
+ * ```
28
+ */
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.toOpenAITools = toOpenAITools;
31
+ exports.handleOpenAIToolCall = handleOpenAIToolCall;
32
+ exports.getAgentCatalog = getAgentCatalog;
33
+ // ── Agent Catalog ────────────────────────────────────────
34
+ const AGENT_CATALOG = [
35
+ { id: 'contract-auditor', name: 'Contract Auditor', description: 'Audit Solidity smart contracts for vulnerabilities and security issues', category: 'security' },
36
+ { id: 'yield-optimizer', name: 'Yield Optimizer', description: 'Analyze and optimize DeFi yield farming strategies', category: 'defi' },
37
+ { id: 'payroll-planner', name: 'Payroll Planner', description: 'Plan and execute crypto payroll distributions', category: 'payroll' },
38
+ { id: 'gas-predictor', name: 'Gas Predictor', description: 'Predict gas costs and optimal transaction timing', category: 'analytics' },
39
+ { id: 'arbitrage-scanner', name: 'Arbitrage Scanner', description: 'Scan for cross-DEX arbitrage opportunities', category: 'defi' },
40
+ { id: 'compliance-advisor', name: 'Compliance Advisor', description: 'Provide regulatory compliance analysis for crypto operations', category: 'compliance' },
41
+ { id: 'nft-forensics', name: 'NFT Forensics', description: 'Analyze NFT provenance and detect fraud patterns', category: 'security' },
42
+ { id: 'bridge-analyzer', name: 'Bridge Analyzer', description: 'Analyze cross-chain bridge security and efficiency', category: 'security' },
43
+ { id: 'dao-advisor', name: 'DAO Advisor', description: 'Provide governance analysis and proposal recommendations', category: 'analytics' },
44
+ { id: 'risk-analyzer', name: 'Risk Analyzer', description: 'Assess portfolio risk and provide mitigation strategies', category: 'analytics' },
45
+ { id: 'crypto-tax-navigator', name: 'Crypto Tax Navigator', description: 'Navigate crypto tax regulations and optimize reporting', category: 'compliance' },
46
+ { id: 'portfolio-rebalancer', name: 'Portfolio Rebalancer', description: 'Rebalance crypto portfolio based on market conditions', category: 'defi' },
47
+ { id: 'token-deployer', name: 'Token Deployer', description: 'Deploy ERC20 tokens with custom parameters on Tempo L1', category: 'deployment' },
48
+ { id: 'airdrop-tracker', name: 'Airdrop Tracker', description: 'Track and claim eligible airdrops for a wallet', category: 'analytics' },
49
+ { id: 'mev-sentinel', name: 'MEV Sentinel', description: 'Monitor and protect against MEV attacks', category: 'security' },
50
+ { id: 'liquidity-manager', name: 'Liquidity Manager', description: 'Manage LP positions and optimize liquidity provisioning', category: 'defi' },
51
+ { id: 'whale-tracker', name: 'Whale Tracker', description: 'Track large wallet movements and whale activity', category: 'analytics' },
52
+ { id: 'social-radar', name: 'Social Radar', description: 'Monitor social media sentiment for crypto assets', category: 'analytics' },
53
+ { id: 'omnibridge-router', name: 'OmniBridge Router', description: 'Find optimal cross-chain bridging routes', category: 'defi' },
54
+ { id: 'nft-appraiser', name: 'NFT Appraiser', description: 'Appraise NFT value based on market data', category: 'analytics' },
55
+ { id: 'proposal-writer', name: 'Proposal Writer', description: 'Draft governance proposals for DAOs', category: 'analytics' },
56
+ { id: 'vesting-planner', name: 'Vesting Planner', description: 'Plan and manage token vesting schedules', category: 'payroll' },
57
+ { id: 'defi-insurance', name: 'DeFi Insurance', description: 'Analyze DeFi insurance options and coverage', category: 'defi' },
58
+ { id: 'contract-deploy-pro', name: 'Contract Deploy Pro', description: 'Deploy and verify smart contracts on Tempo L1', category: 'deployment' },
59
+ { id: 'escrow-guardian', name: 'Escrow Guardian', description: 'Create and manage escrow transactions on NexusV2', category: 'escrow' },
60
+ { id: 'shield-master', name: 'Shield Master', description: 'Execute ZK-shielded private payments via ShieldVaultV2', category: 'privacy' },
61
+ { id: 'multisend-pro', name: 'Multisend Pro', description: 'Batch send payments to multiple recipients via MultisendV2', category: 'payments' },
62
+ { id: 'stream-architect', name: 'Stream Architect', description: 'Create and manage milestone-based payment streams', category: 'streams' },
63
+ { id: 'proof-verifier', name: 'Proof Verifier', description: 'Verify AI execution proofs on-chain via AIProofRegistry', category: 'verification' },
64
+ { id: 'agent-coordinator', name: 'Agent Coordinator', description: 'Orchestrate multi-agent A2A workflows', category: 'orchestration' },
65
+ { id: 'payroll-autopilot', name: 'Payroll Autopilot', description: 'Set up recurring automated payroll with conditional rules', category: 'payroll' },
66
+ { id: 'admin-dashboard', name: 'Admin Dashboard', description: 'Monitor protocol health, TVL, and agent performance', category: 'admin' },
67
+ ];
68
+ // ── Converters ───────────────────────────────────────────
69
+ /**
70
+ * Convert PayPol agents to OpenAI function-calling tools.
71
+ *
72
+ * @param client AgentClient instance (used for dynamic agent list)
73
+ * @param agentIds Optional filter - only include these agent IDs
74
+ */
75
+ async function toOpenAITools(client, agentIds) {
76
+ let agents = AGENT_CATALOG;
77
+ // If client provided, try to fetch live agent list
78
+ if (client) {
79
+ try {
80
+ const live = await client.listAgents();
81
+ if (live.length > 0) {
82
+ agents = live.map(a => ({
83
+ id: a.id,
84
+ name: a.name,
85
+ description: a.description,
86
+ category: a.category,
87
+ }));
88
+ }
89
+ }
90
+ catch {
91
+ // Fall back to static catalog
92
+ }
93
+ }
94
+ // Filter if specific IDs requested
95
+ if (agentIds) {
96
+ agents = agents.filter(a => agentIds.includes(a.id));
97
+ }
98
+ return agents.map(agent => ({
99
+ type: 'function',
100
+ function: {
101
+ name: `paypol_${agent.id.replace(/-/g, '_')}`,
102
+ description: `[PayPol Agent] ${agent.name}: ${agent.description}`,
103
+ parameters: {
104
+ type: 'object',
105
+ properties: {
106
+ prompt: {
107
+ type: 'string',
108
+ description: `Task instruction for ${agent.name}`,
109
+ },
110
+ payload: {
111
+ type: 'string',
112
+ description: 'Optional JSON payload with additional data (e.g. contract source code)',
113
+ },
114
+ },
115
+ required: ['prompt'],
116
+ },
117
+ },
118
+ }));
119
+ }
120
+ /**
121
+ * Handle an OpenAI tool call by dispatching it to the correct PayPol agent.
122
+ *
123
+ * @param client AgentClient instance
124
+ * @param toolCall The tool call from OpenAI's response
125
+ * @param callerWallet Wallet address of the caller
126
+ * @returns JSON string of the agent's result
127
+ */
128
+ async function handleOpenAIToolCall(client, toolCall, callerWallet) {
129
+ const fnName = toolCall.function.name;
130
+ const agentId = fnName.replace('paypol_', '').replace(/_/g, '-');
131
+ let args;
132
+ try {
133
+ args = JSON.parse(toolCall.function.arguments);
134
+ }
135
+ catch {
136
+ return JSON.stringify({ error: 'Invalid tool call arguments' });
137
+ }
138
+ try {
139
+ const result = await client.hire(agentId, args.prompt, callerWallet, {
140
+ payload: args.payload ? JSON.parse(args.payload) : undefined,
141
+ });
142
+ return JSON.stringify(result);
143
+ }
144
+ catch (err) {
145
+ return JSON.stringify({ error: err.message || 'Agent execution failed' });
146
+ }
147
+ }
148
+ /**
149
+ * Get the static agent catalog (no API call needed).
150
+ */
151
+ function getAgentCatalog() {
152
+ return [...AGENT_CATALOG];
153
+ }
154
+ //# sourceMappingURL=openai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/adapters/openai.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * PayPol Agent SDK
3
+ *
4
+ * Two main building blocks:
5
+ * 1. PayPolAgentClient - dispatch payroll payments via the PayPol API
6
+ * 2. PayPolAgent - build marketplace agents that earn on every job
7
+ * 3. AgentClient - hire agents from the marketplace
8
+ *
9
+ * @example - send a shielded payment
10
+ * const client = new PayPolAgentClient({ apiKey: '...', workspaceId: '...' });
11
+ * await client.dispatchShieldedPayload({ recipientName: 'Alice', walletAddress: '0x...', amount: 100 });
12
+ *
13
+ * @example - build a marketplace agent
14
+ * const agent = new PayPolAgent({ id: 'my-agent', name: 'My Agent', ... });
15
+ * agent.onJob(async (job) => ({ ...job, status: 'success', result: {}, executionTimeMs: 0, timestamp: Date.now() }));
16
+ * agent.listen(3002);
17
+ *
18
+ * @example - hire an agent
19
+ * const market = new AgentClient('http://localhost:3001');
20
+ * const result = await market.hire('contract-auditor', 'Audit this Solidity file...', '0x...');
21
+ */
22
+ export interface PayPolConfig {
23
+ apiKey: string;
24
+ workspaceId: string;
25
+ environment?: 'mainnet' | 'testnet';
26
+ }
27
+ export interface PayloadParams {
28
+ recipientName: string;
29
+ walletAddress: string;
30
+ amount: number;
31
+ token?: string;
32
+ reference?: string;
33
+ }
34
+ /** Low-level client for dispatching PayPol payroll payments. */
35
+ export declare class PayPolAgentClient {
36
+ private apiKey;
37
+ private workspaceId;
38
+ private baseURL;
39
+ constructor(config: PayPolConfig);
40
+ private request;
41
+ /** Dispatch a public (non-private) payment. */
42
+ dispatchPublicPayload(params: PayloadParams): Promise<any>;
43
+ /**
44
+ * Dispatch a ZK-shielded payment.
45
+ * Proof generation is handled server-side - callers do not need snarkjs.
46
+ */
47
+ dispatchShieldedPayload(params: PayloadParams): Promise<any>;
48
+ /** Poll payment status. Returns: 'Awaiting_Boardroom' | 'Vaulted' | 'Settled' */
49
+ getPayloadStatus(payloadId: string): Promise<any>;
50
+ }
51
+ export { PayPolAgent } from './PayPolAgent';
52
+ export { AgentClient } from './AgentClient';
53
+ export { registerAgent } from './register';
54
+ export type { AgentManifest, AgentCategory, AgentConfig, JobRequest, JobResult, HireOptions, AgentRegistrationPayload, AgentRegistrationResponse, EscrowParams, ReputationScore, } from './types';
55
+ export type { APS1Manifest, APS1Category, APS1Pricing, APS1PaymentMethod, APS1TokenConfig, APS1Endpoints, APS1ExecutionEnvelope, APS1Result, APS1Transaction, APS1Settlement, APS1NegotiationMessage, APS1EscrowParams, APS1Milestone, } from '@paypol-protocol/aps-1';
56
+ export { APS1_VERSION, APS1_CHAIN_ID, APS1_NETWORK, APS1_PLATFORM_FEE_BPS, APS1_DEFAULT_TOKENS, APS1_CONTRACTS, } from '@paypol-protocol/aps-1';
57
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACvC;AAED,MAAM,WAAW,aAAa;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,gEAAgE;AAChE,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,YAAY;YAQlB,OAAO;IAcrB,+CAA+C;IACzC,qBAAqB,CAAC,MAAM,EAAE,aAAa;IAIjD;;;OAGG;IACG,uBAAuB,CAAC,MAAM,EAAE,aAAa;IAInD,iFAAiF;IAC3E,gBAAgB,CAAC,SAAS,EAAE,MAAM;CAM3C;AAID,OAAO,EAAE,WAAW,EAAE,MAAO,eAAe,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAO,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,YAAY,EACR,aAAa,EACb,aAAa,EACb,WAAW,EACX,UAAU,EACV,SAAS,EACT,WAAW,EACX,wBAAwB,EACxB,yBAAyB,EACzB,YAAY,EACZ,eAAe,GAClB,MAAM,SAAS,CAAC;AAOjB,YAAY,EACR,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,UAAU,EACV,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,GAChB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACH,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,GACjB,MAAM,wBAAwB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ /**
3
+ * PayPol Agent SDK
4
+ *
5
+ * Two main building blocks:
6
+ * 1. PayPolAgentClient - dispatch payroll payments via the PayPol API
7
+ * 2. PayPolAgent - build marketplace agents that earn on every job
8
+ * 3. AgentClient - hire agents from the marketplace
9
+ *
10
+ * @example - send a shielded payment
11
+ * const client = new PayPolAgentClient({ apiKey: '...', workspaceId: '...' });
12
+ * await client.dispatchShieldedPayload({ recipientName: 'Alice', walletAddress: '0x...', amount: 100 });
13
+ *
14
+ * @example - build a marketplace agent
15
+ * const agent = new PayPolAgent({ id: 'my-agent', name: 'My Agent', ... });
16
+ * agent.onJob(async (job) => ({ ...job, status: 'success', result: {}, executionTimeMs: 0, timestamp: Date.now() }));
17
+ * agent.listen(3002);
18
+ *
19
+ * @example - hire an agent
20
+ * const market = new AgentClient('http://localhost:3001');
21
+ * const result = await market.hire('contract-auditor', 'Audit this Solidity file...', '0x...');
22
+ */
23
+ var __importDefault = (this && this.__importDefault) || function (mod) {
24
+ return (mod && mod.__esModule) ? mod : { "default": mod };
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.APS1_CONTRACTS = exports.APS1_DEFAULT_TOKENS = exports.APS1_PLATFORM_FEE_BPS = exports.APS1_NETWORK = exports.APS1_CHAIN_ID = exports.APS1_VERSION = exports.registerAgent = exports.AgentClient = exports.PayPolAgent = exports.PayPolAgentClient = void 0;
28
+ const axios_1 = __importDefault(require("axios"));
29
+ /** Low-level client for dispatching PayPol payroll payments. */
30
+ class PayPolAgentClient {
31
+ constructor(config) {
32
+ this.apiKey = config.apiKey;
33
+ this.workspaceId = config.workspaceId;
34
+ this.baseURL = config.environment === 'mainnet'
35
+ ? 'https://api.paypol.xyz/v1'
36
+ : 'https://testnet.api.paypol.xyz/v1';
37
+ }
38
+ async request(endpoint, data) {
39
+ try {
40
+ const response = await axios_1.default.post(`${this.baseURL}${endpoint}`, data, {
41
+ headers: {
42
+ 'Authorization': `Bearer ${this.apiKey}`,
43
+ 'Content-Type': 'application/json',
44
+ },
45
+ });
46
+ return response.data;
47
+ }
48
+ catch (error) {
49
+ throw new Error(`PayPol API Error: ${error.response?.data?.message ?? error.message}`);
50
+ }
51
+ }
52
+ /** Dispatch a public (non-private) payment. */
53
+ async dispatchPublicPayload(params) {
54
+ return this.request('/payload/dispatch', { ...params, workspaceId: this.workspaceId, isShielded: false });
55
+ }
56
+ /**
57
+ * Dispatch a ZK-shielded payment.
58
+ * Proof generation is handled server-side - callers do not need snarkjs.
59
+ */
60
+ async dispatchShieldedPayload(params) {
61
+ return this.request('/payload/dispatch', { ...params, workspaceId: this.workspaceId, isShielded: true });
62
+ }
63
+ /** Poll payment status. Returns: 'Awaiting_Boardroom' | 'Vaulted' | 'Settled' */
64
+ async getPayloadStatus(payloadId) {
65
+ const response = await axios_1.default.get(`${this.baseURL}/payload/${payloadId}`, {
66
+ headers: { 'Authorization': `Bearer ${this.apiKey}` },
67
+ });
68
+ return response.data;
69
+ }
70
+ }
71
+ exports.PayPolAgentClient = PayPolAgentClient;
72
+ // ── Agent Marketplace SDK ─────────────────────────────────
73
+ var PayPolAgent_1 = require("./PayPolAgent");
74
+ Object.defineProperty(exports, "PayPolAgent", { enumerable: true, get: function () { return PayPolAgent_1.PayPolAgent; } });
75
+ var AgentClient_1 = require("./AgentClient");
76
+ Object.defineProperty(exports, "AgentClient", { enumerable: true, get: function () { return AgentClient_1.AgentClient; } });
77
+ var register_1 = require("./register");
78
+ Object.defineProperty(exports, "registerAgent", { enumerable: true, get: function () { return register_1.registerAgent; } });
79
+ var aps_1_1 = require("@paypol-protocol/aps-1");
80
+ Object.defineProperty(exports, "APS1_VERSION", { enumerable: true, get: function () { return aps_1_1.APS1_VERSION; } });
81
+ Object.defineProperty(exports, "APS1_CHAIN_ID", { enumerable: true, get: function () { return aps_1_1.APS1_CHAIN_ID; } });
82
+ Object.defineProperty(exports, "APS1_NETWORK", { enumerable: true, get: function () { return aps_1_1.APS1_NETWORK; } });
83
+ Object.defineProperty(exports, "APS1_PLATFORM_FEE_BPS", { enumerable: true, get: function () { return aps_1_1.APS1_PLATFORM_FEE_BPS; } });
84
+ Object.defineProperty(exports, "APS1_DEFAULT_TOKENS", { enumerable: true, get: function () { return aps_1_1.APS1_DEFAULT_TOKENS; } });
85
+ Object.defineProperty(exports, "APS1_CONTRACTS", { enumerable: true, get: function () { return aps_1_1.APS1_CONTRACTS; } });
86
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;;;;;AAEH,kDAA0B;AAkB1B,gEAAgE;AAChE,MAAa,iBAAiB;IAK1B,YAAY,MAAoB;QAC5B,IAAI,CAAC,MAAM,GAAQ,MAAM,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,OAAO,GAAO,MAAM,CAAC,WAAW,KAAK,SAAS;YAC/C,CAAC,CAAC,2BAA2B;YAC7B,CAAC,CAAC,mCAAmC,CAAC;IAC9C,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,IAAa;QACjD,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,EAAE,IAAI,EAAE;gBAClE,OAAO,EAAE;oBACL,eAAe,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;oBACxC,cAAc,EAAG,kBAAkB;iBACtC;aACJ,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,IAAI,CAAC;QACzB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3F,CAAC;IACL,CAAC;IAED,+CAA+C;IAC/C,KAAK,CAAC,qBAAqB,CAAC,MAAqB;QAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9G,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,uBAAuB,CAAC,MAAqB;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7G,CAAC;IAED,iFAAiF;IACjF,KAAK,CAAC,gBAAgB,CAAC,SAAiB;QACpC,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,YAAY,SAAS,EAAE,EAAE;YACrE,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE,EAAE;SACxD,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACzB,CAAC;CACJ;AA/CD,8CA+CC;AAED,6DAA6D;AAE7D,6CAA6C;AAApC,0GAAA,WAAW,OAAA;AACpB,6CAA6C;AAApC,0GAAA,WAAW,OAAA;AACpB,uCAA2C;AAAlC,yGAAA,aAAa,OAAA;AAmCtB,gDAOgC;AAN5B,qGAAA,YAAY,OAAA;AACZ,sGAAA,aAAa,OAAA;AACb,qGAAA,YAAY,OAAA;AACZ,8GAAA,qBAAqB,OAAA;AACrB,4GAAA,mBAAmB,OAAA;AACnB,uGAAA,cAAc,OAAA"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Agent Self-Registration - register a community agent on the PayPol marketplace.
3
+ *
4
+ * Usage:
5
+ * import { registerAgent } from 'paypol-sdk';
6
+ * await registerAgent({
7
+ * id: 'my-agent',
8
+ * name: 'My Agent',
9
+ * webhookUrl: 'https://my-server.com',
10
+ * ...
11
+ * });
12
+ */
13
+ import { AgentRegistrationPayload, AgentRegistrationResponse } from './types';
14
+ /**
15
+ * Register a community agent on the PayPol marketplace.
16
+ *
17
+ * @param payload Agent metadata + webhook URL
18
+ * @param marketplaceUrl Optional override for the marketplace base URL
19
+ * @returns Registration confirmation with marketplace ID
20
+ */
21
+ export declare function registerAgent(payload: AgentRegistrationPayload, marketplaceUrl?: string): Promise<AgentRegistrationResponse>;
22
+ //# sourceMappingURL=register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAI9E;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,wBAAwB,EACjC,cAAc,GAAE,MAAgC,GAC/C,OAAO,CAAC,yBAAyB,CAAC,CA6BpC"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ /**
3
+ * Agent Self-Registration - register a community agent on the PayPol marketplace.
4
+ *
5
+ * Usage:
6
+ * import { registerAgent } from 'paypol-sdk';
7
+ * await registerAgent({
8
+ * id: 'my-agent',
9
+ * name: 'My Agent',
10
+ * webhookUrl: 'https://my-server.com',
11
+ * ...
12
+ * });
13
+ */
14
+ var __importDefault = (this && this.__importDefault) || function (mod) {
15
+ return (mod && mod.__esModule) ? mod : { "default": mod };
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.registerAgent = registerAgent;
19
+ const axios_1 = __importDefault(require("axios"));
20
+ const DEFAULT_MARKETPLACE_URL = process.env.PAYPOL_MARKETPLACE_URL ?? 'http://localhost:3000';
21
+ /**
22
+ * Register a community agent on the PayPol marketplace.
23
+ *
24
+ * @param payload Agent metadata + webhook URL
25
+ * @param marketplaceUrl Optional override for the marketplace base URL
26
+ * @returns Registration confirmation with marketplace ID
27
+ */
28
+ async function registerAgent(payload, marketplaceUrl = DEFAULT_MARKETPLACE_URL) {
29
+ // Validate required fields
30
+ if (!payload.id || !/^[a-z0-9-]+$/.test(payload.id)) {
31
+ throw new Error('Agent ID must be lowercase alphanumeric with hyphens (e.g. "my-agent")');
32
+ }
33
+ if (!payload.webhookUrl) {
34
+ throw new Error('webhookUrl is required - the marketplace needs to reach your agent');
35
+ }
36
+ if (!payload.ownerWallet || !payload.ownerWallet.startsWith('0x')) {
37
+ throw new Error('ownerWallet must be a valid 0x address');
38
+ }
39
+ // Validate webhook is reachable
40
+ try {
41
+ const healthCheck = await axios_1.default.get(`${payload.webhookUrl}/health`, { timeout: 5000 });
42
+ if (healthCheck.data?.status !== 'ok') {
43
+ console.warn(`[register] Warning: ${payload.webhookUrl}/health did not return { status: 'ok' }`);
44
+ }
45
+ }
46
+ catch {
47
+ console.warn(`[register] Warning: Could not reach ${payload.webhookUrl}/health - make sure your agent is running`);
48
+ }
49
+ const res = await axios_1.default.post(`${marketplaceUrl}/api/marketplace/register`, payload, { timeout: 10000 });
50
+ return res.data;
51
+ }
52
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;;;AAcH,sCAgCC;AA5CD,kDAA0B;AAG1B,MAAM,uBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,uBAAuB,CAAC;AAE9F;;;;;;GAMG;AACI,KAAK,UAAU,aAAa,CACjC,OAAiC,EACjC,iBAAyB,uBAAuB;IAEhD,2BAA2B;IAC3B,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,gCAAgC;IAChC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,UAAU,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACvF,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,uBAAuB,OAAO,CAAC,UAAU,yCAAyC,CAAC,CAAC;QACnG,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CAAC,uCAAuC,OAAO,CAAC,UAAU,2CAA2C,CAAC,CAAC;IACrH,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,eAAK,CAAC,IAAI,CAC1B,GAAG,cAAc,2BAA2B,EAC5C,OAAO,EACP,EAAE,OAAO,EAAE,KAAK,EAAE,CACnB,CAAC;IAEF,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC"}