@swarmdock/sdk 0.1.1 → 0.2.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/client.d.ts CHANGED
@@ -1,7 +1,8 @@
1
- import type { Agent, Task, TaskBid, EscrowTransaction, AgentRating, AgentSkill, SSEEvent, AgentUpdateInput, TaskCreateInput, TaskSubmitInput, BidCreateInput, RatingCreateInput } from '@swarmdock/shared';
1
+ import type { Agent, Task, TaskBid, EscrowTransaction, AgentRating, AgentSkill, Dispute, PortfolioItem, SSEEvent, AgentUpdateInput, TaskCreateInput, TaskSubmitInput, BidCreateInput, RatingCreateInput } from '@swarmdock/shared';
2
2
  export interface SwarmDockClientOptions {
3
3
  baseUrl: string;
4
4
  privateKey?: string;
5
+ paymentPrivateKey?: `0x${string}`;
5
6
  }
6
7
  export interface RegisterParams {
7
8
  displayName: string;
@@ -37,6 +38,8 @@ export interface BalanceResult {
37
38
  agentId: string;
38
39
  earned: string;
39
40
  spent: string;
41
+ escrowed?: string;
42
+ released?: string;
40
43
  currency: string;
41
44
  network: string;
42
45
  }
@@ -87,6 +90,7 @@ export interface TaskDetailResult extends Task {
87
90
  } | null;
88
91
  }>;
89
92
  bidCount: number;
93
+ dispute: Dispute | null;
90
94
  }
91
95
  export interface RatingsSummary {
92
96
  ratings: AgentRating[];
@@ -98,11 +102,24 @@ export interface RatingsSummary {
98
102
  } | null;
99
103
  count: number;
100
104
  }
105
+ export interface PortfolioResult {
106
+ items: PortfolioItem[];
107
+ count: number;
108
+ }
109
+ export interface ReputationResult {
110
+ agentId: string;
111
+ trustLevel: number;
112
+ totalTasksCompleted: number;
113
+ totalTasksFailed: number;
114
+ averageRating: number | null;
115
+ specializations: string[];
116
+ }
101
117
  type SSECallback = (event: SSEEvent) => void;
102
118
  export declare class SwarmDockClient {
103
119
  private readonly baseUrl;
104
120
  private readonly secretKey;
105
121
  private readonly publicKeyBase64;
122
+ private readonly fetchImpl;
106
123
  private token;
107
124
  private agentId;
108
125
  private sseAbortController;
@@ -149,6 +166,16 @@ declare class ProfileOperations {
149
166
  }>;
150
167
  update(fields: AgentUpdateInput): Promise<Agent>;
151
168
  ratings(agentId?: string): Promise<RatingsSummary>;
169
+ portfolio(agentId?: string): Promise<PortfolioResult>;
170
+ readonly portfolioManage: {
171
+ create: (taskId: string) => Promise<PortfolioItem>;
172
+ update: (itemId: string, updates: {
173
+ isPinned?: boolean;
174
+ displayOrder?: number;
175
+ }) => Promise<PortfolioItem>;
176
+ remove: (itemId: string) => Promise<void>;
177
+ };
178
+ reputation(agentId?: string): Promise<ReputationResult>;
152
179
  match(params: {
153
180
  description: string;
154
181
  skills?: string[];
@@ -176,6 +203,7 @@ declare class TaskOperations {
176
203
  submit(taskId: string, input: TaskSubmitInput): Promise<Task>;
177
204
  approve(taskId: string): Promise<Task>;
178
205
  reject(taskId: string, reason?: string): Promise<Task>;
206
+ dispute(taskId: string, reason: string): Promise<Dispute>;
179
207
  }
180
208
  declare class EventOperations {
181
209
  private readonly client;
@@ -191,5 +219,104 @@ declare class PaymentOperations {
191
219
  balance(): Promise<BalanceResult>;
192
220
  transactions(limit?: number, offset?: number): Promise<TransactionsResult>;
193
221
  }
222
+ export interface TaskContext {
223
+ id: string;
224
+ title: string;
225
+ description: string;
226
+ inputData: unknown;
227
+ inputFiles: string[];
228
+ skillRequirements: string[];
229
+ budgetMax: string;
230
+ /** Mark the task as in-progress */
231
+ start(): Promise<void>;
232
+ /** Submit the completed result */
233
+ complete(result: TaskResult): Promise<void>;
234
+ }
235
+ export interface TaskResult {
236
+ artifacts: Array<{
237
+ type: string;
238
+ content: unknown;
239
+ }>;
240
+ files?: string[];
241
+ notes?: string;
242
+ }
243
+ export interface TaskListing {
244
+ id: string;
245
+ title: string;
246
+ description: string;
247
+ skillRequirements: string[];
248
+ budgetMin: string | null;
249
+ budgetMax: string;
250
+ matchingMode: string;
251
+ }
252
+ export interface SwarmDockAgentOptions {
253
+ baseUrl?: string;
254
+ name: string;
255
+ skills: Array<{
256
+ id: string;
257
+ name: string;
258
+ description: string;
259
+ category: string;
260
+ pricing?: {
261
+ model?: string;
262
+ basePrice: number;
263
+ };
264
+ examples?: string[];
265
+ inputModes?: string[];
266
+ outputModes?: string[];
267
+ }>;
268
+ framework?: string;
269
+ modelProvider?: string;
270
+ modelName?: string;
271
+ walletAddress: string;
272
+ privateKey?: string;
273
+ paymentPrivateKey?: `0x${string}`;
274
+ }
275
+ type TaskHandler = (task: TaskContext) => Promise<TaskResult>;
276
+ type TaskAvailableHandler = (listing: TaskListing) => Promise<void>;
277
+ export declare class SwarmDockAgent {
278
+ private client;
279
+ private readonly options;
280
+ private taskHandlers;
281
+ private taskAvailableHandler?;
282
+ private heartbeatInterval?;
283
+ private eventUnsubscribe?;
284
+ private running;
285
+ constructor(options: SwarmDockAgentOptions);
286
+ /**
287
+ * Register a handler for tasks that match a specific skill.
288
+ * When this agent is assigned a task whose skillRequirements include
289
+ * the given skillId, the handler will be invoked.
290
+ */
291
+ onTask(skillId: string, handler: TaskHandler): void;
292
+ /**
293
+ * Register a handler that fires when a new task is created on the
294
+ * marketplace that matches this agent's skills. Useful for auto-bidding.
295
+ */
296
+ onTaskAvailable(handler: TaskAvailableHandler): void;
297
+ /**
298
+ * Start the agent: register (or authenticate), begin heartbeat,
299
+ * and subscribe to the SSE event stream.
300
+ */
301
+ start(): Promise<void>;
302
+ /**
303
+ * Stop the agent: unsubscribe from events, clear heartbeat,
304
+ * and mark as not running.
305
+ */
306
+ stop(): Promise<void>;
307
+ /**
308
+ * Submit a bid on a task.
309
+ */
310
+ bid(taskId: string, options: {
311
+ price: number;
312
+ confidence?: number;
313
+ proposal?: string;
314
+ }): Promise<TaskBid>;
315
+ /** Expose the underlying client for advanced use cases */
316
+ getClient(): SwarmDockClient;
317
+ private handleEvent;
318
+ private handleTaskAssigned;
319
+ private handleTaskCreated;
320
+ }
194
321
  export {};
195
322
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -1,11 +1,15 @@
1
1
  import nacl from 'tweetnacl';
2
2
  import tweetnaclUtil from 'tweetnacl-util';
3
3
  const { encodeBase64, decodeBase64 } = tweetnaclUtil;
4
+ import { wrapFetchWithPaymentFromConfig } from '@x402/fetch';
5
+ import { ExactEvmScheme } from '@x402/evm';
6
+ import { privateKeyToAccount } from 'viem/accounts';
4
7
  import { SwarmDockError } from './errors.js';
5
8
  export class SwarmDockClient {
6
9
  baseUrl;
7
10
  secretKey;
8
11
  publicKeyBase64;
12
+ fetchImpl;
9
13
  token = null;
10
14
  agentId = null;
11
15
  sseAbortController = null;
@@ -24,6 +28,16 @@ export class SwarmDockClient {
24
28
  this.secretKey = null;
25
29
  this.publicKeyBase64 = null;
26
30
  }
31
+ this.fetchImpl = options.paymentPrivateKey
32
+ ? wrapFetchWithPaymentFromConfig(globalThis.fetch, {
33
+ schemes: [
34
+ {
35
+ network: 'eip155:*',
36
+ client: new ExactEvmScheme(privateKeyToAccount(options.paymentPrivateKey)),
37
+ },
38
+ ],
39
+ })
40
+ : globalThis.fetch;
27
41
  this.profile = new ProfileOperations(this);
28
42
  this.tasks = new TaskOperations(this);
29
43
  this.events = new EventOperations(this);
@@ -116,7 +130,7 @@ export class SwarmDockClient {
116
130
  await this.authenticate();
117
131
  headers['Authorization'] = `Bearer ${this.token}`;
118
132
  }
119
- const res = await globalThis.fetch(url, {
133
+ const res = await this.fetchImpl(url, {
120
134
  method,
121
135
  headers,
122
136
  body: body ? JSON.stringify(body) : undefined,
@@ -204,6 +218,45 @@ class ProfileOperations {
204
218
  const id = agentId ?? this.client.getAgentId();
205
219
  return this.client.fetch(`/api/v1/agents/${id}/ratings`, { auth: false });
206
220
  }
221
+ async portfolio(agentId) {
222
+ if (!agentId) {
223
+ await this.client.authenticate();
224
+ }
225
+ const id = agentId ?? this.client.getAgentId();
226
+ return this.client.fetch(`/api/v1/agents/${id}/portfolio`, { auth: false });
227
+ }
228
+ portfolioManage = {
229
+ create: async (taskId) => {
230
+ await this.client.authenticate();
231
+ const id = this.client.getAgentId();
232
+ return this.client.fetch(`/api/v1/agents/${id}/portfolio`, {
233
+ method: 'POST',
234
+ body: { taskId },
235
+ });
236
+ },
237
+ update: async (itemId, updates) => {
238
+ await this.client.authenticate();
239
+ const id = this.client.getAgentId();
240
+ return this.client.fetch(`/api/v1/agents/${id}/portfolio/${itemId}`, {
241
+ method: 'PATCH',
242
+ body: updates,
243
+ });
244
+ },
245
+ remove: async (itemId) => {
246
+ await this.client.authenticate();
247
+ const id = this.client.getAgentId();
248
+ await this.client.fetch(`/api/v1/agents/${id}/portfolio/${itemId}`, {
249
+ method: 'DELETE',
250
+ });
251
+ },
252
+ };
253
+ async reputation(agentId) {
254
+ if (!agentId) {
255
+ await this.client.authenticate();
256
+ }
257
+ const id = agentId ?? this.client.getAgentId();
258
+ return this.client.fetch(`/api/v1/agents/${id}/reputation`, { auth: false });
259
+ }
207
260
  async match(params) {
208
261
  return this.client.fetch('/api/v1/agents/match', { method: 'POST', body: params, auth: false });
209
262
  }
@@ -282,6 +335,12 @@ class TaskOperations {
282
335
  body: reason ? { reason } : undefined,
283
336
  });
284
337
  }
338
+ async dispute(taskId, reason) {
339
+ return this.client.fetch(`/api/v1/tasks/${taskId}/dispute`, {
340
+ method: 'POST',
341
+ body: { reason },
342
+ });
343
+ }
285
344
  }
286
345
  class EventOperations {
287
346
  client;
@@ -386,4 +445,186 @@ class PaymentOperations {
386
445
  });
387
446
  }
388
447
  }
448
+ const HEARTBEAT_INTERVAL_MS = 5 * 60 * 1000; // 5 minutes
449
+ export class SwarmDockAgent {
450
+ client;
451
+ options;
452
+ taskHandlers = new Map();
453
+ taskAvailableHandler;
454
+ heartbeatInterval;
455
+ eventUnsubscribe;
456
+ running = false;
457
+ constructor(options) {
458
+ this.options = options;
459
+ this.client = new SwarmDockClient({
460
+ baseUrl: options.baseUrl ?? 'https://api.swarmdock.ai',
461
+ privateKey: options.privateKey,
462
+ paymentPrivateKey: options.paymentPrivateKey,
463
+ });
464
+ }
465
+ /**
466
+ * Register a handler for tasks that match a specific skill.
467
+ * When this agent is assigned a task whose skillRequirements include
468
+ * the given skillId, the handler will be invoked.
469
+ */
470
+ onTask(skillId, handler) {
471
+ this.taskHandlers.set(skillId, handler);
472
+ }
473
+ /**
474
+ * Register a handler that fires when a new task is created on the
475
+ * marketplace that matches this agent's skills. Useful for auto-bidding.
476
+ */
477
+ onTaskAvailable(handler) {
478
+ this.taskAvailableHandler = handler;
479
+ }
480
+ /**
481
+ * Start the agent: register (or authenticate), begin heartbeat,
482
+ * and subscribe to the SSE event stream.
483
+ */
484
+ async start() {
485
+ if (this.running)
486
+ return;
487
+ // Register or authenticate
488
+ try {
489
+ await this.client.register({
490
+ displayName: this.options.name,
491
+ framework: this.options.framework,
492
+ modelProvider: this.options.modelProvider,
493
+ modelName: this.options.modelName,
494
+ walletAddress: this.options.walletAddress,
495
+ skills: this.options.skills.map((s) => ({
496
+ skillId: s.id,
497
+ skillName: s.name,
498
+ description: s.description,
499
+ category: s.category,
500
+ tags: [],
501
+ pricingModel: s.pricing?.model ?? 'fixed',
502
+ basePrice: String(s.pricing?.basePrice ?? 0),
503
+ examplePrompts: s.examples ?? [],
504
+ })),
505
+ });
506
+ }
507
+ catch (err) {
508
+ // If already registered, authenticate instead
509
+ if (err instanceof SwarmDockError && (err.status === 409 || err.message.includes('already registered'))) {
510
+ await this.client.authenticate();
511
+ }
512
+ else {
513
+ throw err;
514
+ }
515
+ }
516
+ this.running = true;
517
+ // Start heartbeat
518
+ this.heartbeatInterval = setInterval(async () => {
519
+ try {
520
+ await this.client.heartbeat();
521
+ }
522
+ catch {
523
+ // Heartbeat failures are non-fatal; the next one will retry
524
+ }
525
+ }, HEARTBEAT_INTERVAL_MS);
526
+ // Subscribe to SSE events
527
+ const agentId = this.client.getAgentId();
528
+ this.client.events.subscribe((event) => {
529
+ this.handleEvent(event, agentId).catch(() => {
530
+ // Event handling errors are non-fatal
531
+ });
532
+ });
533
+ this.eventUnsubscribe = () => this.client.events.unsubscribe();
534
+ }
535
+ /**
536
+ * Stop the agent: unsubscribe from events, clear heartbeat,
537
+ * and mark as not running.
538
+ */
539
+ async stop() {
540
+ if (!this.running)
541
+ return;
542
+ this.running = false;
543
+ if (this.heartbeatInterval) {
544
+ clearInterval(this.heartbeatInterval);
545
+ this.heartbeatInterval = undefined;
546
+ }
547
+ if (this.eventUnsubscribe) {
548
+ this.eventUnsubscribe();
549
+ this.eventUnsubscribe = undefined;
550
+ }
551
+ }
552
+ /**
553
+ * Submit a bid on a task.
554
+ */
555
+ async bid(taskId, options) {
556
+ return this.client.tasks.bid(taskId, {
557
+ proposedPrice: String(options.price),
558
+ confidenceScore: options.confidence,
559
+ proposal: options.proposal,
560
+ portfolioRefs: [],
561
+ });
562
+ }
563
+ /** Expose the underlying client for advanced use cases */
564
+ getClient() {
565
+ return this.client;
566
+ }
567
+ // -- Private helpers --
568
+ async handleEvent(event, agentId) {
569
+ if (!this.running)
570
+ return;
571
+ const data = event.data;
572
+ if (event.type === 'task.assigned' && data.assigneeId === agentId) {
573
+ await this.handleTaskAssigned(data.taskId);
574
+ }
575
+ else if (event.type === 'task.created' && this.taskAvailableHandler) {
576
+ await this.handleTaskCreated(data);
577
+ }
578
+ }
579
+ async handleTaskAssigned(taskId) {
580
+ const detail = await this.client.tasks.get(taskId);
581
+ // Find the first matching handler based on skill requirements
582
+ let matchedHandler;
583
+ for (const skillReq of detail.skillRequirements ?? []) {
584
+ matchedHandler = this.taskHandlers.get(skillReq);
585
+ if (matchedHandler)
586
+ break;
587
+ }
588
+ if (!matchedHandler)
589
+ return;
590
+ const ctx = {
591
+ id: detail.id,
592
+ title: detail.title,
593
+ description: detail.description ?? '',
594
+ inputData: detail.inputData ?? null,
595
+ inputFiles: detail.inputFiles ?? [],
596
+ skillRequirements: detail.skillRequirements ?? [],
597
+ budgetMax: detail.budgetMax ?? '0',
598
+ start: async () => {
599
+ await this.client.tasks.start(taskId);
600
+ },
601
+ complete: async (result) => {
602
+ await this.client.tasks.submit(taskId, {
603
+ artifacts: result.artifacts,
604
+ files: result.files ?? [],
605
+ notes: result.notes,
606
+ });
607
+ },
608
+ };
609
+ const result = await matchedHandler(ctx);
610
+ // If the handler returns a result directly, auto-submit it
611
+ if (result && result.artifacts) {
612
+ await ctx.complete(result);
613
+ }
614
+ }
615
+ async handleTaskCreated(data) {
616
+ if (!this.taskAvailableHandler)
617
+ return;
618
+ const listing = {
619
+ id: data.taskId,
620
+ title: data.title ?? '',
621
+ description: data.description ?? '',
622
+ skillRequirements: data.skillRequirements ?? [],
623
+ budgetMin: data.budgetMin ?? null,
624
+ budgetMax: data.budgetMax ?? '0',
625
+ matchingMode: data.matchingMode ?? 'manual',
626
+ };
627
+ await this.taskAvailableHandler(listing);
628
+ }
629
+ }
389
630
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export { SwarmDockClient } from './client.js';
2
- export type { SwarmDockClientOptions, RegisterParams, RegisterResult, BalanceResult, TransactionsResult, TaskListResult, TaskDetailResult, RatingsSummary, } from './client.js';
1
+ export { SwarmDockClient, SwarmDockAgent } from './client.js';
2
+ export type { SwarmDockClientOptions, RegisterParams, RegisterResult, BalanceResult, TransactionsResult, TaskListResult, TaskDetailResult, RatingsSummary, PortfolioResult, ReputationResult, TaskContext, TaskResult, TaskListing, SwarmDockAgentOptions, } from './client.js';
3
3
  export { SwarmDockError } from './errors.js';
4
- export type { Agent, AgentSkill, Task, TaskBid, EscrowTransaction, AgentRating, AATPayload, AgentCard, AgentCardSkill, SSEEvent, AgentUpdateInput, TaskCreateInput, TaskUpdateInput, TaskSubmitInput, TaskListQuery, BidCreateInput, RatingCreateInput, } from '@swarmdock/shared';
4
+ export type { Agent, AgentSkill, Task, TaskBid, EscrowTransaction, AgentRating, Dispute, AATPayload, AgentCard, AgentCardSkill, PortfolioItem, StoredArtifactRef, SSEEvent, AgentUpdateInput, TaskCreateInput, TaskUpdateInput, TaskSubmitInput, TaskListQuery, BidCreateInput, RatingCreateInput, } from '@swarmdock/shared';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EACV,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,YAAY,EACV,KAAK,EACL,UAAU,EACV,IAAI,EACJ,OAAO,EACP,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,SAAS,EACT,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,EACb,cAAc,EACd,iBAAiB,GAClB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9D,YAAY,EACV,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,WAAW,EACX,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,YAAY,EACV,KAAK,EACL,UAAU,EACV,IAAI,EACJ,OAAO,EACP,iBAAiB,EACjB,WAAW,EACX,OAAO,EACP,UAAU,EACV,SAAS,EACT,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,EACb,cAAc,EACd,iBAAiB,GAClB,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export { SwarmDockClient } from './client.js';
1
+ export { SwarmDockClient, SwarmDockAgent } from './client.js';
2
2
  export { SwarmDockError } from './errors.js';
3
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAW9C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAiB9D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@swarmdock/sdk",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -16,10 +16,13 @@
16
16
  "type-check": "tsc --noEmit"
17
17
  },
18
18
  "dependencies": {
19
- "@swarmdock/shared": "^0.1.0",
19
+ "@swarmdock/shared": "workspace:*",
20
+ "@x402/evm": "^2.0.4",
21
+ "@x402/fetch": "^2.0.4",
20
22
  "jose": "^6.0.0",
21
23
  "tweetnacl": "^1.0.3",
22
- "tweetnacl-util": "^0.15.1"
24
+ "tweetnacl-util": "^0.15.1",
25
+ "viem": "^2.37.4"
23
26
  },
24
27
  "devDependencies": {
25
28
  "typescript": "^5.8.0"
package/src/client.ts CHANGED
@@ -1,6 +1,9 @@
1
1
  import nacl from 'tweetnacl';
2
2
  import tweetnaclUtil from 'tweetnacl-util';
3
3
  const { encodeBase64, decodeBase64 } = tweetnaclUtil;
4
+ import { wrapFetchWithPaymentFromConfig } from '@x402/fetch';
5
+ import { ExactEvmScheme } from '@x402/evm';
6
+ import { privateKeyToAccount } from 'viem/accounts';
4
7
  import type {
5
8
  Agent,
6
9
  Task,
@@ -8,6 +11,8 @@ import type {
8
11
  EscrowTransaction,
9
12
  AgentRating,
10
13
  AgentSkill,
14
+ Dispute,
15
+ PortfolioItem,
11
16
  SSEEvent,
12
17
  AgentUpdateInput,
13
18
  TaskCreateInput,
@@ -20,6 +25,7 @@ import { SwarmDockError } from './errors.js';
20
25
  export interface SwarmDockClientOptions {
21
26
  baseUrl: string;
22
27
  privateKey?: string; // Ed25519 secret key, base64
28
+ paymentPrivateKey?: `0x${string}`;
23
29
  }
24
30
 
25
31
  export interface RegisterParams {
@@ -58,6 +64,8 @@ export interface BalanceResult {
58
64
  agentId: string;
59
65
  earned: string;
60
66
  spent: string;
67
+ escrowed?: string;
68
+ released?: string;
61
69
  currency: string;
62
70
  network: string;
63
71
  }
@@ -110,6 +118,7 @@ export interface TaskDetailResult extends Task {
110
118
  } | null;
111
119
  }>;
112
120
  bidCount: number;
121
+ dispute: Dispute | null;
113
122
  }
114
123
 
115
124
  export interface RatingsSummary {
@@ -123,12 +132,27 @@ export interface RatingsSummary {
123
132
  count: number;
124
133
  }
125
134
 
135
+ export interface PortfolioResult {
136
+ items: PortfolioItem[];
137
+ count: number;
138
+ }
139
+
140
+ export interface ReputationResult {
141
+ agentId: string;
142
+ trustLevel: number;
143
+ totalTasksCompleted: number;
144
+ totalTasksFailed: number;
145
+ averageRating: number | null;
146
+ specializations: string[];
147
+ }
148
+
126
149
  type SSECallback = (event: SSEEvent) => void;
127
150
 
128
151
  export class SwarmDockClient {
129
152
  private readonly baseUrl: string;
130
153
  private readonly secretKey: Uint8Array | null;
131
154
  private readonly publicKeyBase64: string | null;
155
+ private readonly fetchImpl: typeof globalThis.fetch;
132
156
  private token: string | null = null;
133
157
  private agentId: string | null = null;
134
158
 
@@ -150,6 +174,17 @@ export class SwarmDockClient {
150
174
  this.publicKeyBase64 = null;
151
175
  }
152
176
 
177
+ this.fetchImpl = options.paymentPrivateKey
178
+ ? wrapFetchWithPaymentFromConfig(globalThis.fetch, {
179
+ schemes: [
180
+ {
181
+ network: 'eip155:*',
182
+ client: new ExactEvmScheme(privateKeyToAccount(options.paymentPrivateKey)),
183
+ },
184
+ ],
185
+ })
186
+ : globalThis.fetch;
187
+
153
188
  this.profile = new ProfileOperations(this);
154
189
  this.tasks = new TaskOperations(this);
155
190
  this.events = new EventOperations(this);
@@ -278,7 +313,7 @@ export class SwarmDockClient {
278
313
  headers['Authorization'] = `Bearer ${this.token!}`;
279
314
  }
280
315
 
281
- const res = await globalThis.fetch(url, {
316
+ const res = await this.fetchImpl(url, {
282
317
  method,
283
318
  headers,
284
319
  body: body ? JSON.stringify(body) : undefined,
@@ -390,6 +425,50 @@ class ProfileOperations {
390
425
  return this.client.fetch(`/api/v1/agents/${id}/ratings`, { auth: false });
391
426
  }
392
427
 
428
+ async portfolio(agentId?: string): Promise<PortfolioResult> {
429
+ if (!agentId) {
430
+ await this.client.authenticate();
431
+ }
432
+ const id = agentId ?? this.client.getAgentId();
433
+ return this.client.fetch(`/api/v1/agents/${id}/portfolio`, { auth: false });
434
+ }
435
+
436
+ readonly portfolioManage = {
437
+ create: async (taskId: string): Promise<PortfolioItem> => {
438
+ await this.client.authenticate();
439
+ const id = this.client.getAgentId();
440
+ return this.client.fetch(`/api/v1/agents/${id}/portfolio`, {
441
+ method: 'POST',
442
+ body: { taskId },
443
+ });
444
+ },
445
+
446
+ update: async (itemId: string, updates: { isPinned?: boolean; displayOrder?: number }): Promise<PortfolioItem> => {
447
+ await this.client.authenticate();
448
+ const id = this.client.getAgentId();
449
+ return this.client.fetch(`/api/v1/agents/${id}/portfolio/${itemId}`, {
450
+ method: 'PATCH',
451
+ body: updates,
452
+ });
453
+ },
454
+
455
+ remove: async (itemId: string): Promise<void> => {
456
+ await this.client.authenticate();
457
+ const id = this.client.getAgentId();
458
+ await this.client.fetch(`/api/v1/agents/${id}/portfolio/${itemId}`, {
459
+ method: 'DELETE',
460
+ });
461
+ },
462
+ };
463
+
464
+ async reputation(agentId?: string): Promise<ReputationResult> {
465
+ if (!agentId) {
466
+ await this.client.authenticate();
467
+ }
468
+ const id = agentId ?? this.client.getAgentId();
469
+ return this.client.fetch(`/api/v1/agents/${id}/reputation`, { auth: false });
470
+ }
471
+
393
472
  async match(params: { description: string; skills?: string[]; limit?: number }): Promise<{ matches: Agent[] }> {
394
473
  return this.client.fetch('/api/v1/agents/match', { method: 'POST', body: params, auth: false });
395
474
  }
@@ -467,6 +546,13 @@ class TaskOperations {
467
546
  body: reason ? { reason } : undefined,
468
547
  });
469
548
  }
549
+
550
+ async dispute(taskId: string, reason: string): Promise<Dispute> {
551
+ return this.client.fetch(`/api/v1/tasks/${taskId}/dispute`, {
552
+ method: 'POST',
553
+ body: { reason },
554
+ });
555
+ }
470
556
  }
471
557
 
472
558
  class EventOperations {
@@ -577,3 +663,264 @@ class PaymentOperations {
577
663
  });
578
664
  }
579
665
  }
666
+
667
+ // -- Agent mode types --
668
+
669
+ export interface TaskContext {
670
+ id: string;
671
+ title: string;
672
+ description: string;
673
+ inputData: unknown;
674
+ inputFiles: string[];
675
+ skillRequirements: string[];
676
+ budgetMax: string;
677
+
678
+ /** Mark the task as in-progress */
679
+ start(): Promise<void>;
680
+ /** Submit the completed result */
681
+ complete(result: TaskResult): Promise<void>;
682
+ }
683
+
684
+ export interface TaskResult {
685
+ artifacts: Array<{ type: string; content: unknown }>;
686
+ files?: string[];
687
+ notes?: string;
688
+ }
689
+
690
+ export interface TaskListing {
691
+ id: string;
692
+ title: string;
693
+ description: string;
694
+ skillRequirements: string[];
695
+ budgetMin: string | null;
696
+ budgetMax: string;
697
+ matchingMode: string;
698
+ }
699
+
700
+ export interface SwarmDockAgentOptions {
701
+ baseUrl?: string;
702
+ name: string;
703
+ skills: Array<{
704
+ id: string;
705
+ name: string;
706
+ description: string;
707
+ category: string;
708
+ pricing?: { model?: string; basePrice: number };
709
+ examples?: string[];
710
+ inputModes?: string[];
711
+ outputModes?: string[];
712
+ }>;
713
+ framework?: string;
714
+ modelProvider?: string;
715
+ modelName?: string;
716
+ walletAddress: string;
717
+ privateKey?: string;
718
+ paymentPrivateKey?: `0x${string}`;
719
+ }
720
+
721
+ type TaskHandler = (task: TaskContext) => Promise<TaskResult>;
722
+ type TaskAvailableHandler = (listing: TaskListing) => Promise<void>;
723
+
724
+ const HEARTBEAT_INTERVAL_MS = 5 * 60 * 1000; // 5 minutes
725
+
726
+ export class SwarmDockAgent {
727
+ private client: SwarmDockClient;
728
+ private readonly options: SwarmDockAgentOptions;
729
+ private taskHandlers: Map<string, TaskHandler> = new Map();
730
+ private taskAvailableHandler?: TaskAvailableHandler;
731
+ private heartbeatInterval?: ReturnType<typeof setInterval>;
732
+ private eventUnsubscribe?: () => void;
733
+ private running = false;
734
+
735
+ constructor(options: SwarmDockAgentOptions) {
736
+ this.options = options;
737
+ this.client = new SwarmDockClient({
738
+ baseUrl: options.baseUrl ?? 'https://api.swarmdock.ai',
739
+ privateKey: options.privateKey,
740
+ paymentPrivateKey: options.paymentPrivateKey,
741
+ });
742
+ }
743
+
744
+ /**
745
+ * Register a handler for tasks that match a specific skill.
746
+ * When this agent is assigned a task whose skillRequirements include
747
+ * the given skillId, the handler will be invoked.
748
+ */
749
+ onTask(skillId: string, handler: TaskHandler): void {
750
+ this.taskHandlers.set(skillId, handler);
751
+ }
752
+
753
+ /**
754
+ * Register a handler that fires when a new task is created on the
755
+ * marketplace that matches this agent's skills. Useful for auto-bidding.
756
+ */
757
+ onTaskAvailable(handler: TaskAvailableHandler): void {
758
+ this.taskAvailableHandler = handler;
759
+ }
760
+
761
+ /**
762
+ * Start the agent: register (or authenticate), begin heartbeat,
763
+ * and subscribe to the SSE event stream.
764
+ */
765
+ async start(): Promise<void> {
766
+ if (this.running) return;
767
+
768
+ // Register or authenticate
769
+ try {
770
+ await this.client.register({
771
+ displayName: this.options.name,
772
+ framework: this.options.framework,
773
+ modelProvider: this.options.modelProvider,
774
+ modelName: this.options.modelName,
775
+ walletAddress: this.options.walletAddress,
776
+ skills: this.options.skills.map((s) => ({
777
+ skillId: s.id,
778
+ skillName: s.name,
779
+ description: s.description,
780
+ category: s.category,
781
+ tags: [],
782
+ pricingModel: s.pricing?.model ?? 'fixed',
783
+ basePrice: String(s.pricing?.basePrice ?? 0),
784
+ examplePrompts: s.examples ?? [],
785
+ })),
786
+ });
787
+ } catch (err) {
788
+ // If already registered, authenticate instead
789
+ if (err instanceof SwarmDockError && (err.status === 409 || err.message.includes('already registered'))) {
790
+ await this.client.authenticate();
791
+ } else {
792
+ throw err;
793
+ }
794
+ }
795
+
796
+ this.running = true;
797
+
798
+ // Start heartbeat
799
+ this.heartbeatInterval = setInterval(async () => {
800
+ try {
801
+ await this.client.heartbeat();
802
+ } catch {
803
+ // Heartbeat failures are non-fatal; the next one will retry
804
+ }
805
+ }, HEARTBEAT_INTERVAL_MS);
806
+
807
+ // Subscribe to SSE events
808
+ const agentId = this.client.getAgentId();
809
+
810
+ this.client.events.subscribe((event) => {
811
+ this.handleEvent(event, agentId).catch(() => {
812
+ // Event handling errors are non-fatal
813
+ });
814
+ });
815
+
816
+ this.eventUnsubscribe = () => this.client.events.unsubscribe();
817
+ }
818
+
819
+ /**
820
+ * Stop the agent: unsubscribe from events, clear heartbeat,
821
+ * and mark as not running.
822
+ */
823
+ async stop(): Promise<void> {
824
+ if (!this.running) return;
825
+ this.running = false;
826
+
827
+ if (this.heartbeatInterval) {
828
+ clearInterval(this.heartbeatInterval);
829
+ this.heartbeatInterval = undefined;
830
+ }
831
+
832
+ if (this.eventUnsubscribe) {
833
+ this.eventUnsubscribe();
834
+ this.eventUnsubscribe = undefined;
835
+ }
836
+ }
837
+
838
+ /**
839
+ * Submit a bid on a task.
840
+ */
841
+ async bid(taskId: string, options: { price: number; confidence?: number; proposal?: string }): Promise<TaskBid> {
842
+ return this.client.tasks.bid(taskId, {
843
+ proposedPrice: String(options.price),
844
+ confidenceScore: options.confidence,
845
+ proposal: options.proposal,
846
+ portfolioRefs: [],
847
+ });
848
+ }
849
+
850
+ /** Expose the underlying client for advanced use cases */
851
+ getClient(): SwarmDockClient {
852
+ return this.client;
853
+ }
854
+
855
+ // -- Private helpers --
856
+
857
+ private async handleEvent(event: SSEEvent, agentId: string): Promise<void> {
858
+ if (!this.running) return;
859
+
860
+ const data = event.data as Record<string, unknown>;
861
+
862
+ if (event.type === 'task.assigned' && data.assigneeId === agentId) {
863
+ await this.handleTaskAssigned(data.taskId as string);
864
+ } else if (event.type === 'task.created' && this.taskAvailableHandler) {
865
+ await this.handleTaskCreated(data);
866
+ }
867
+ }
868
+
869
+ private async handleTaskAssigned(taskId: string): Promise<void> {
870
+ const detail = await this.client.tasks.get(taskId);
871
+
872
+ // Find the first matching handler based on skill requirements
873
+ let matchedHandler: TaskHandler | undefined;
874
+ for (const skillReq of detail.skillRequirements ?? []) {
875
+ matchedHandler = this.taskHandlers.get(skillReq);
876
+ if (matchedHandler) break;
877
+ }
878
+
879
+ if (!matchedHandler) return;
880
+
881
+ const ctx: TaskContext = {
882
+ id: detail.id,
883
+ title: detail.title,
884
+ description: detail.description ?? '',
885
+ inputData: detail.inputData ?? null,
886
+ inputFiles: detail.inputFiles ?? [],
887
+ skillRequirements: detail.skillRequirements ?? [],
888
+ budgetMax: detail.budgetMax ?? '0',
889
+
890
+ start: async () => {
891
+ await this.client.tasks.start(taskId);
892
+ },
893
+
894
+ complete: async (result: TaskResult) => {
895
+ await this.client.tasks.submit(taskId, {
896
+ artifacts: result.artifacts,
897
+ files: result.files ?? [],
898
+ notes: result.notes,
899
+ });
900
+ },
901
+ };
902
+
903
+ const result = await matchedHandler(ctx);
904
+
905
+ // If the handler returns a result directly, auto-submit it
906
+ if (result && result.artifacts) {
907
+ await ctx.complete(result);
908
+ }
909
+ }
910
+
911
+ private async handleTaskCreated(data: Record<string, unknown>): Promise<void> {
912
+ if (!this.taskAvailableHandler) return;
913
+
914
+ const listing: TaskListing = {
915
+ id: data.taskId as string,
916
+ title: (data.title as string) ?? '',
917
+ description: (data.description as string) ?? '',
918
+ skillRequirements: (data.skillRequirements as string[]) ?? [],
919
+ budgetMin: (data.budgetMin as string) ?? null,
920
+ budgetMax: (data.budgetMax as string) ?? '0',
921
+ matchingMode: (data.matchingMode as string) ?? 'manual',
922
+ };
923
+
924
+ await this.taskAvailableHandler(listing);
925
+ }
926
+ }
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { SwarmDockClient } from './client.js';
1
+ export { SwarmDockClient, SwarmDockAgent } from './client.js';
2
2
  export type {
3
3
  SwarmDockClientOptions,
4
4
  RegisterParams,
@@ -8,6 +8,12 @@ export type {
8
8
  TaskListResult,
9
9
  TaskDetailResult,
10
10
  RatingsSummary,
11
+ PortfolioResult,
12
+ ReputationResult,
13
+ TaskContext,
14
+ TaskResult,
15
+ TaskListing,
16
+ SwarmDockAgentOptions,
11
17
  } from './client.js';
12
18
  export { SwarmDockError } from './errors.js';
13
19
 
@@ -18,9 +24,12 @@ export type {
18
24
  TaskBid,
19
25
  EscrowTransaction,
20
26
  AgentRating,
27
+ Dispute,
21
28
  AATPayload,
22
29
  AgentCard,
23
30
  AgentCardSkill,
31
+ PortfolioItem,
32
+ StoredArtifactRef,
24
33
  SSEEvent,
25
34
  AgentUpdateInput,
26
35
  TaskCreateInput,