@agentxv2/sdk 0.3.0 → 0.3.1

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.
Files changed (107) hide show
  1. package/README.md +11 -11
  2. package/dist/core.d.mts +64 -0
  3. package/dist/core.d.ts +64 -0
  4. package/dist/core.js +275 -0
  5. package/dist/core.js.map +1 -0
  6. package/dist/core.mjs +240 -0
  7. package/dist/core.mjs.map +1 -0
  8. package/dist/{agent/agent-runner.d.ts → index-DhXVi_ub.d.ts} +94 -10
  9. package/dist/index-eQO4iaOr.d.mts +208 -0
  10. package/dist/index.d.mts +269 -0
  11. package/dist/index.d.ts +269 -10
  12. package/dist/index.js +2398 -31
  13. package/dist/index.js.map +1 -1
  14. package/dist/index.mjs +2345 -0
  15. package/dist/index.mjs.map +1 -0
  16. package/dist/react.d.mts +3 -0
  17. package/dist/react.d.ts +3 -0
  18. package/dist/react.js +737 -0
  19. package/dist/react.js.map +1 -0
  20. package/dist/react.mjs +717 -0
  21. package/dist/react.mjs.map +1 -0
  22. package/dist/{core/types.d.ts → types-2aHUvS4M.d.mts} +34 -33
  23. package/dist/types-2aHUvS4M.d.ts +297 -0
  24. package/package.json +12 -11
  25. package/dist/a2a/a2a.d.ts +0 -37
  26. package/dist/a2a/a2a.d.ts.map +0 -1
  27. package/dist/a2a/a2a.js +0 -252
  28. package/dist/a2a/a2a.js.map +0 -1
  29. package/dist/a2a/index.d.ts +0 -4
  30. package/dist/a2a/index.d.ts.map +0 -1
  31. package/dist/a2a/index.js +0 -4
  32. package/dist/a2a/index.js.map +0 -1
  33. package/dist/agent/agent-runner.d.ts.map +0 -1
  34. package/dist/agent/agent-runner.js +0 -249
  35. package/dist/agent/agent-runner.js.map +0 -1
  36. package/dist/agent/index.d.ts +0 -3
  37. package/dist/agent/index.d.ts.map +0 -1
  38. package/dist/agent/index.js +0 -3
  39. package/dist/agent/index.js.map +0 -1
  40. package/dist/config/config.d.ts +0 -31
  41. package/dist/config/config.d.ts.map +0 -1
  42. package/dist/config/config.js +0 -95
  43. package/dist/config/config.js.map +0 -1
  44. package/dist/config/index.d.ts +0 -4
  45. package/dist/config/index.d.ts.map +0 -1
  46. package/dist/config/index.js +0 -4
  47. package/dist/config/index.js.map +0 -1
  48. package/dist/core/crypto.d.ts +0 -62
  49. package/dist/core/crypto.d.ts.map +0 -1
  50. package/dist/core/crypto.js +0 -291
  51. package/dist/core/crypto.js.map +0 -1
  52. package/dist/core/index.d.ts +0 -3
  53. package/dist/core/index.d.ts.map +0 -1
  54. package/dist/core/index.js +0 -4
  55. package/dist/core/index.js.map +0 -1
  56. package/dist/core/types.d.ts.map +0 -1
  57. package/dist/core/types.js +0 -30
  58. package/dist/core/types.js.map +0 -1
  59. package/dist/index.d.ts.map +0 -1
  60. package/dist/mcp/connector.d.ts +0 -43
  61. package/dist/mcp/connector.d.ts.map +0 -1
  62. package/dist/mcp/connector.js +0 -79
  63. package/dist/mcp/connector.js.map +0 -1
  64. package/dist/mcp/index.d.ts +0 -4
  65. package/dist/mcp/index.d.ts.map +0 -1
  66. package/dist/mcp/index.js +0 -4
  67. package/dist/mcp/index.js.map +0 -1
  68. package/dist/react/index.d.ts +0 -4
  69. package/dist/react/index.d.ts.map +0 -1
  70. package/dist/react/index.js +0 -3
  71. package/dist/react/index.js.map +0 -1
  72. package/dist/react/useAgentRunner.d.ts +0 -16
  73. package/dist/react/useAgentRunner.d.ts.map +0 -1
  74. package/dist/react/useAgentRunner.js +0 -204
  75. package/dist/react/useAgentRunner.js.map +0 -1
  76. package/dist/registry/agent-registry.d.ts +0 -52
  77. package/dist/registry/agent-registry.d.ts.map +0 -1
  78. package/dist/registry/agent-registry.js +0 -221
  79. package/dist/registry/agent-registry.js.map +0 -1
  80. package/dist/registry/index.d.ts +0 -7
  81. package/dist/registry/index.d.ts.map +0 -1
  82. package/dist/registry/index.js +0 -6
  83. package/dist/registry/index.js.map +0 -1
  84. package/dist/registry/ipfs-fetcher.d.ts +0 -39
  85. package/dist/registry/ipfs-fetcher.d.ts.map +0 -1
  86. package/dist/registry/ipfs-fetcher.js +0 -139
  87. package/dist/registry/ipfs-fetcher.js.map +0 -1
  88. package/dist/reputation/index.d.ts +0 -4
  89. package/dist/reputation/index.d.ts.map +0 -1
  90. package/dist/reputation/index.js +0 -4
  91. package/dist/reputation/index.js.map +0 -1
  92. package/dist/reputation/reputation.d.ts +0 -26
  93. package/dist/reputation/reputation.d.ts.map +0 -1
  94. package/dist/reputation/reputation.js +0 -113
  95. package/dist/reputation/reputation.js.map +0 -1
  96. package/dist/subscription/agent-x402.d.ts +0 -33
  97. package/dist/subscription/agent-x402.d.ts.map +0 -1
  98. package/dist/subscription/agent-x402.js +0 -144
  99. package/dist/subscription/agent-x402.js.map +0 -1
  100. package/dist/subscription/index.d.ts +0 -6
  101. package/dist/subscription/index.d.ts.map +0 -1
  102. package/dist/subscription/index.js +0 -5
  103. package/dist/subscription/index.js.map +0 -1
  104. package/dist/subscription/subscription.d.ts +0 -67
  105. package/dist/subscription/subscription.d.ts.map +0 -1
  106. package/dist/subscription/subscription.js +0 -346
  107. package/dist/subscription/subscription.js.map +0 -1
@@ -1,346 +0,0 @@
1
- // ---------------------------------------------------------------------------
2
- // @agentx/sdk — Subscription Manager v2
3
- // ---------------------------------------------------------------------------
4
- // Wraps SubscriptionManager v2 contract (escrow, platform fee, multi-currency).
5
- // Uses viem PublicClient / WalletClient (chain-agnostic).
6
- // ---------------------------------------------------------------------------
7
- // ── ABI Fragments (v2) ─────────────────────────────────────────────────────
8
- const SUBSCRIPTION_ABI_V2 = {
9
- // Admin
10
- platformFeeBps: {
11
- inputs: [], name: 'platformFeeBps',
12
- outputs: [{ name: '', type: 'uint256' }],
13
- stateMutability: 'view', type: 'function',
14
- },
15
- tokenWhitelist: {
16
- inputs: [{ name: 'token', type: 'address' }],
17
- name: 'tokenWhitelist',
18
- outputs: [{ name: '', type: 'bool' }],
19
- stateMutability: 'view', type: 'function',
20
- },
21
- // Plans
22
- createPlan: {
23
- inputs: [
24
- { name: 'agentId', type: 'uint256' },
25
- { name: 'price', type: 'uint256' },
26
- { name: 'period', type: 'string' },
27
- { name: 'payToken', type: 'address' },
28
- { name: 'trialDays', type: 'uint256' },
29
- ],
30
- name: 'createPlan',
31
- outputs: [{ name: 'planId', type: 'uint256' }],
32
- stateMutability: 'nonpayable', type: 'function',
33
- },
34
- getPlan: {
35
- inputs: [{ name: 'planId', type: 'uint256' }],
36
- name: 'getPlan',
37
- outputs: [
38
- { name: 'planId', type: 'uint256' },
39
- { name: 'agentId', type: 'uint256' },
40
- { name: 'creator', type: 'address' },
41
- { name: 'price', type: 'uint256' },
42
- { name: 'period', type: 'string' },
43
- { name: 'active', type: 'bool' },
44
- { name: 'payToken', type: 'address' },
45
- { name: 'trialDays', type: 'uint256' },
46
- ],
47
- stateMutability: 'view', type: 'function',
48
- },
49
- // Subscribe
50
- subscribe: {
51
- inputs: [{ name: 'planId', type: 'uint256' }],
52
- name: 'subscribe',
53
- outputs: [{ name: 'subscriptionId', type: 'uint256' }],
54
- stateMutability: 'payable', type: 'function',
55
- },
56
- // Trial / Release
57
- releaseFunds: {
58
- inputs: [{ name: 'subscriptionId', type: 'uint256' }],
59
- name: 'releaseFunds',
60
- outputs: [],
61
- stateMutability: 'nonpayable', type: 'function',
62
- },
63
- cancelSubscription: {
64
- inputs: [{ name: 'subscriptionId', type: 'uint256' }],
65
- name: 'cancelSubscription',
66
- outputs: [],
67
- stateMutability: 'nonpayable', type: 'function',
68
- },
69
- // Queries
70
- getSubscription: {
71
- inputs: [
72
- { name: 'subscriber', type: 'address' },
73
- { name: 'agentId', type: 'uint256' },
74
- ],
75
- name: 'getSubscription',
76
- outputs: [
77
- { name: 'subscriptionId', type: 'uint256' },
78
- { name: 'subscriber', type: 'address' },
79
- { name: 'agentId', type: 'uint256' },
80
- { name: 'status', type: 'uint8' },
81
- { name: 'startedAt', type: 'uint256' },
82
- { name: 'expiresAt', type: 'uint256' },
83
- { name: 'period', type: 'string' },
84
- ],
85
- stateMutability: 'view', type: 'function',
86
- },
87
- hasActiveSubscription: {
88
- inputs: [
89
- { name: 'subscriber', type: 'address' },
90
- { name: 'agentId', type: 'uint256' },
91
- ],
92
- name: 'hasActiveSubscription',
93
- outputs: [{ name: '', type: 'bool' }],
94
- stateMutability: 'view', type: 'function',
95
- },
96
- getUserSubscriptions: {
97
- inputs: [{ name: 'user', type: 'address' }],
98
- name: 'getUserSubscriptions',
99
- outputs: [{ name: '', type: 'uint256[]' }],
100
- stateMutability: 'view', type: 'function',
101
- },
102
- getSubscriptionDetail: {
103
- inputs: [{ name: 'subscriptionId', type: 'uint256' }],
104
- name: 'getSubscriptionDetail',
105
- outputs: [
106
- { name: 'subscriptionId', type: 'uint256' },
107
- { name: 'subscriber', type: 'address' },
108
- { name: 'agentId', type: 'uint256' },
109
- { name: 'status', type: 'uint8' },
110
- { name: 'startedAt', type: 'uint256' },
111
- { name: 'expiresAt', type: 'uint256' },
112
- { name: 'period', type: 'string' },
113
- { name: 'payToken', type: 'address' },
114
- { name: 'amountPaid', type: 'uint256' },
115
- { name: 'trialActive', type: 'bool' },
116
- { name: 'trialEndsAt', type: 'uint256' },
117
- { name: 'fundsReleased', type: 'bool' },
118
- ],
119
- stateMutability: 'view', type: 'function',
120
- },
121
- };
122
- // ── ERC20 ABI (approve) ────────────────────────────────────────────────────
123
- const ERC20_ABI = {
124
- approve: {
125
- inputs: [
126
- { name: 'spender', type: 'address' },
127
- { name: 'amount', type: 'uint256' },
128
- ],
129
- name: 'approve',
130
- outputs: [{ name: '', type: 'bool' }],
131
- stateMutability: 'nonpayable', type: 'function',
132
- },
133
- allowance: {
134
- inputs: [
135
- { name: 'owner', type: 'address' },
136
- { name: 'spender', type: 'address' },
137
- ],
138
- name: 'allowance',
139
- outputs: [{ name: '', type: 'uint256' }],
140
- stateMutability: 'view', type: 'function',
141
- },
142
- };
143
- // ── Subscription Manager ───────────────────────────────────────────────────
144
- export class SubscriptionManager {
145
- address;
146
- publicClient;
147
- walletClient;
148
- constructor(config) {
149
- this.address = config.contractAddress;
150
- this.publicClient = config.publicClient;
151
- this.walletClient = config.walletClient;
152
- }
153
- // ── Config Read ──────────────────────────────────────────────────────────
154
- /** Get current platform fee in basis points (e.g. 250 = 2.5%). */
155
- async getPlatformFeeBps() {
156
- const result = await this.publicClient.readContract({
157
- address: this.address,
158
- abi: [SUBSCRIPTION_ABI_V2.platformFeeBps],
159
- functionName: 'platformFeeBps',
160
- });
161
- return Number(result);
162
- }
163
- /** Check if a token is whitelisted for payments. */
164
- async isTokenWhitelisted(token) {
165
- const result = await this.publicClient.readContract({
166
- address: this.address,
167
- abi: [SUBSCRIPTION_ABI_V2.tokenWhitelist],
168
- functionName: 'tokenWhitelist',
169
- args: [token],
170
- });
171
- return result;
172
- }
173
- // ── Plans ────────────────────────────────────────────────────────────────
174
- /** Get full plan details with v2 fields. */
175
- async getPlan(planId) {
176
- const result = await this.publicClient.readContract({
177
- address: this.address,
178
- abi: [SUBSCRIPTION_ABI_V2.getPlan],
179
- functionName: 'getPlan',
180
- args: [BigInt(planId)],
181
- });
182
- const [pid, aid, creator, price, period, active, payToken, trialDays] = result;
183
- return {
184
- planId: Number(pid), agentId: Number(aid),
185
- creator: creator, price, period, active,
186
- payToken: payToken, trialDays: Number(trialDays),
187
- };
188
- }
189
- // ── Subscribe ────────────────────────────────────────────────────────────
190
- /**
191
- * Subscribe to a plan.
192
- * For ETH plans: pass valueWei = plan.price.
193
- * For ERC20 plans: auto-detects from plan.payToken, calls approve + subscribe.
194
- * User must have approved this contract for plan.price tokens.
195
- */
196
- async subscribe(planId, opts) {
197
- const [account] = await this.walletClient.getAddresses();
198
- if (!account)
199
- throw new Error('Wallet not connected');
200
- const plan = await this.getPlan(planId);
201
- if (!plan.active)
202
- throw new Error('Plan not active');
203
- if (plan.payToken === '0x0000000000000000000000000000000000000000') {
204
- // ── ETH ──
205
- const value = opts?.valueWei ?? plan.price;
206
- const { request } = await this.publicClient.simulateContract({
207
- account,
208
- address: this.address,
209
- abi: [SUBSCRIPTION_ABI_V2.subscribe],
210
- functionName: 'subscribe',
211
- args: [BigInt(planId)],
212
- value,
213
- });
214
- const hash = await this.walletClient.writeContract(request);
215
- return { subscriptionId: 0, txHash: hash };
216
- }
217
- else {
218
- // ── ERC20 ──
219
- // Optionally approve first
220
- if (opts?.approveTokenFirst !== false) {
221
- const allowance = await this.publicClient.readContract({
222
- address: plan.payToken,
223
- abi: [ERC20_ABI.allowance],
224
- functionName: 'allowance',
225
- args: [account, this.address],
226
- });
227
- if (allowance < plan.price) {
228
- const { request: approveReq } = await this.publicClient.simulateContract({
229
- account,
230
- address: plan.payToken,
231
- abi: [ERC20_ABI.approve],
232
- functionName: 'approve',
233
- args: [this.address, plan.price],
234
- });
235
- await this.walletClient.writeContract(approveReq);
236
- }
237
- }
238
- const { request } = await this.publicClient.simulateContract({
239
- account,
240
- address: this.address,
241
- abi: [SUBSCRIPTION_ABI_V2.subscribe],
242
- functionName: 'subscribe',
243
- args: [BigInt(planId)],
244
- });
245
- const hash = await this.walletClient.writeContract(request);
246
- return { subscriptionId: 0, txHash: hash };
247
- }
248
- }
249
- /** Release escrowed funds to creator after trial window ends. */
250
- async releaseFunds(subscriptionId) {
251
- const [account] = await this.walletClient.getAddresses();
252
- if (!account)
253
- throw new Error('Wallet not connected');
254
- const { request } = await this.publicClient.simulateContract({
255
- account,
256
- address: this.address,
257
- abi: [SUBSCRIPTION_ABI_V2.releaseFunds],
258
- functionName: 'releaseFunds',
259
- args: [BigInt(subscriptionId)],
260
- });
261
- return this.walletClient.writeContract(request);
262
- }
263
- /** Cancel subscription (trial refund if within window). */
264
- async cancel(subscriptionId) {
265
- const [account] = await this.walletClient.getAddresses();
266
- if (!account)
267
- throw new Error('Wallet not connected');
268
- const { request } = await this.publicClient.simulateContract({
269
- account,
270
- address: this.address,
271
- abi: [SUBSCRIPTION_ABI_V2.cancelSubscription],
272
- functionName: 'cancelSubscription',
273
- args: [BigInt(subscriptionId)],
274
- });
275
- return this.walletClient.writeContract(request);
276
- }
277
- // ── Read ─────────────────────────────────────────────────────────────────
278
- async hasActiveSubscription(subscriber, agentId) {
279
- const result = await this.publicClient.readContract({
280
- address: this.address,
281
- abi: [SUBSCRIPTION_ABI_V2.hasActiveSubscription],
282
- functionName: 'hasActiveSubscription',
283
- args: [subscriber, BigInt(agentId)],
284
- });
285
- return result;
286
- }
287
- async getSubscription(subscriber, agentId) {
288
- const result = await this.publicClient.readContract({
289
- address: this.address,
290
- abi: [SUBSCRIPTION_ABI_V2.getSubscription],
291
- functionName: 'getSubscription',
292
- args: [subscriber, BigInt(agentId)],
293
- });
294
- const [subId, sub, aId, status, started, expires, period] = result;
295
- if (Number(subId) === 0)
296
- return null;
297
- return {
298
- subscriptionId: Number(subId),
299
- subscriber: sub,
300
- agentId: Number(aId),
301
- status: ['active', 'expired', 'cancelled', 'pending'][status],
302
- startedAt: Number(started),
303
- expiresAt: Number(expires),
304
- period,
305
- };
306
- }
307
- /** Get full subscription detail with v2 fields (trial, payToken, fundsReleased). */
308
- async getSubscriptionDetail(subscriptionId) {
309
- const result = await this.publicClient.readContract({
310
- address: this.address,
311
- abi: [SUBSCRIPTION_ABI_V2.getSubscriptionDetail],
312
- functionName: 'getSubscriptionDetail',
313
- args: [BigInt(subscriptionId)],
314
- });
315
- const [sid, sub, aId, status, started, expires, period, payToken, amountPaid, trialActive, trialEndsAt, fundsReleased] = result;
316
- return {
317
- subscriptionId: Number(sid), subscriber: sub,
318
- agentId: Number(aId), status, startedAt: Number(started),
319
- expiresAt: Number(expires), period,
320
- payToken: payToken, amountPaid,
321
- trialActive, trialEndsAt: Number(trialEndsAt), fundsReleased,
322
- };
323
- }
324
- async getUserSubscriptions(user) {
325
- const result = await this.publicClient.readContract({
326
- address: this.address,
327
- abi: [SUBSCRIPTION_ABI_V2.getUserSubscriptions],
328
- functionName: 'getUserSubscriptions',
329
- args: [user],
330
- });
331
- return result.map(Number);
332
- }
333
- }
334
- // ── Subscription Guard ─────────────────────────────────────────────────────
335
- export async function guardSubscription(manager, user, agentId) {
336
- const active = await manager.hasActiveSubscription(user, agentId);
337
- if (!active) {
338
- throw new Error(`No active subscription for agent #${agentId}. ` +
339
- `Address ${user} must purchase a subscription first.`);
340
- }
341
- const sub = await manager.getSubscription(user, agentId);
342
- if (!sub)
343
- throw new Error(`Subscription not found for agent #${agentId}`);
344
- return sub;
345
- }
346
- //# sourceMappingURL=subscription.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../src/subscription/subscription.ts"],"names":[],"mappings":"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"}