-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathinterfaces.ts
More file actions
114 lines (105 loc) · 2.38 KB
/
interfaces.ts
File metadata and controls
114 lines (105 loc) · 2.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
import { Address } from "viem";
import AcpContractClient, { AcpJobPhases, MemoType } from "./acpContractClient";
import AcpJob from "./acpJob";
import AcpJobOffering from "./acpJobOffering";
export interface IDeliverable {
type: string;
value: string;
}
export interface IAcpMemoData {
id: number;
type: string;
content: string;
createdAt: string;
memoType: MemoType;
nextPhase: AcpJobPhases;
}
export interface IAcpMemo {
data: IAcpMemoData;
error?: Error;
}
export enum AcpAgentSort {
SUCCESSFUL_JOB_COUNT = "successfulJobCount",
SUCCESS_RATE = "successRate",
UNIQUE_BUYER_COUNT = "uniqueBuyerCount",
MINS_FROM_LAST_ONLINE = "minsFromLastOnlineTime",
IS_ONLINE = "isOnline"
}
export interface IAcpJob {
data: {
id: number;
phase: AcpJobPhases;
description: string;
clientAddress: Address;
providerAddress: Address;
evaluatorAddress: Address;
price: number;
deliverable: IDeliverable | null;
memos: IAcpMemoData[];
context: Record<string, any>;
createdAt: string;
};
error?: Error;
}
export interface IAcpJobResponse {
data: IAcpJob["data"][];
meta?: {
pagination: {
page: number;
pageSize: number;
pageCount: number;
total: number;
};
};
error?: Error;
}
export interface IAcpClientOptions {
acpContractClient: AcpContractClient;
onNewTask?: (job: AcpJob) => void;
onEvaluate?: (job: AcpJob) => void;
customRpcUrl?: string;
}
export type AcpAgent = {
id: number;
documentId: string;
name: string;
description: string;
walletAddress: Address;
isVirtualAgent: boolean;
profilePic: string;
category: string;
tokenAddress: string | null;
ownerAddress: string;
cluster: string | null;
twitterHandle: string;
offerings: {
name: string;
price: number;
requirementSchema?: Object;
deliverableSchema?: Object;
}[];
symbol: string | null;
virtualAgentId: string | null;
metrics?: {
successfulJobCount: number;
successRate: number;
uniqueBuyerCount: number;
minsFromLastOnline: number;
isOnline: boolean;
};
};
export type BrowsedAcpAgent = {
id: number;
name: string;
description: string;
offerings: AcpJobOffering[];
twitterHandle: string;
walletAddress: Address;
metrics?: {
successfulJobCount: number;
successRate: number;
uniqueBuyerCount: number;
minsFromLastOnline: number;
isOnline: boolean;
};
};