agent0-sdk 0.2.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.
- package/LICENSE +21 -0
- package/README.md +234 -0
- package/dist/core/agent.d.ts +76 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +477 -0
- package/dist/core/agent.js.map +1 -0
- package/dist/core/contracts.d.ts +688 -0
- package/dist/core/contracts.d.ts.map +1 -0
- package/dist/core/contracts.js +348 -0
- package/dist/core/contracts.js.map +1 -0
- package/dist/core/endpoint-crawler.d.ts +44 -0
- package/dist/core/endpoint-crawler.d.ts.map +1 -0
- package/dist/core/endpoint-crawler.js +280 -0
- package/dist/core/endpoint-crawler.js.map +1 -0
- package/dist/core/feedback-manager.d.ts +98 -0
- package/dist/core/feedback-manager.d.ts.map +1 -0
- package/dist/core/feedback-manager.js +543 -0
- package/dist/core/feedback-manager.js.map +1 -0
- package/dist/core/indexer.d.ts +37 -0
- package/dist/core/indexer.d.ts.map +1 -0
- package/dist/core/indexer.js +189 -0
- package/dist/core/indexer.js.map +1 -0
- package/dist/core/ipfs-client.d.ts +88 -0
- package/dist/core/ipfs-client.d.ts.map +1 -0
- package/dist/core/ipfs-client.js +334 -0
- package/dist/core/ipfs-client.js.map +1 -0
- package/dist/core/sdk.d.ts +177 -0
- package/dist/core/sdk.d.ts.map +1 -0
- package/dist/core/sdk.js +544 -0
- package/dist/core/sdk.js.map +1 -0
- package/dist/core/subgraph-client.d.ts +68 -0
- package/dist/core/subgraph-client.d.ts.map +1 -0
- package/dist/core/subgraph-client.js +635 -0
- package/dist/core/subgraph-client.js.map +1 -0
- package/dist/core/web3-client.d.ts +94 -0
- package/dist/core/web3-client.d.ts.map +1 -0
- package/dist/core/web3-client.js +197 -0
- package/dist/core/web3-client.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/models/enums.d.ts +22 -0
- package/dist/models/enums.d.ts.map +1 -0
- package/dist/models/enums.js +24 -0
- package/dist/models/enums.js.map +1 -0
- package/dist/models/generated/subgraph-types.d.ts +208 -0
- package/dist/models/generated/subgraph-types.d.ts.map +1 -0
- package/dist/models/generated/subgraph-types.js +2 -0
- package/dist/models/generated/subgraph-types.js.map +1 -0
- package/dist/models/index.d.ts +8 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +8 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/interfaces.d.ts +125 -0
- package/dist/models/interfaces.d.ts.map +1 -0
- package/dist/models/interfaces.js +5 -0
- package/dist/models/interfaces.js.map +1 -0
- package/dist/models/types.d.ts +11 -0
- package/dist/models/types.d.ts.map +1 -0
- package/dist/models/types.js +5 -0
- package/dist/models/types.js.map +1 -0
- package/dist/utils/constants.d.ts +24 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +28 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/id-format.d.ts +30 -0
- package/dist/utils/id-format.d.ts.map +1 -0
- package/dist/utils/id-format.js +67 -0
- package/dist/utils/id-format.js.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/validation.d.ts +25 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +61 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core interfaces for Agent0 SDK
|
|
3
|
+
*/
|
|
4
|
+
import type { AgentId, Address, URI, Timestamp } from './types';
|
|
5
|
+
import type { EndpointType, TrustModel } from './enums';
|
|
6
|
+
/**
|
|
7
|
+
* Represents an agent endpoint
|
|
8
|
+
*/
|
|
9
|
+
export interface Endpoint {
|
|
10
|
+
type: EndpointType;
|
|
11
|
+
value: string;
|
|
12
|
+
meta?: Record<string, any>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Agent registration file structure
|
|
16
|
+
*/
|
|
17
|
+
export interface RegistrationFile {
|
|
18
|
+
agentId?: AgentId;
|
|
19
|
+
agentURI?: URI;
|
|
20
|
+
name: string;
|
|
21
|
+
description: string;
|
|
22
|
+
image?: URI;
|
|
23
|
+
walletAddress?: Address;
|
|
24
|
+
walletChainId?: number;
|
|
25
|
+
endpoints: Endpoint[];
|
|
26
|
+
trustModels: (TrustModel | string)[];
|
|
27
|
+
owners: Address[];
|
|
28
|
+
operators: Address[];
|
|
29
|
+
active: boolean;
|
|
30
|
+
x402support: boolean;
|
|
31
|
+
metadata: Record<string, any>;
|
|
32
|
+
updatedAt: Timestamp;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Summary information for agent discovery and search
|
|
36
|
+
*/
|
|
37
|
+
export interface AgentSummary {
|
|
38
|
+
chainId: number;
|
|
39
|
+
agentId: AgentId;
|
|
40
|
+
name: string;
|
|
41
|
+
image?: URI;
|
|
42
|
+
description: string;
|
|
43
|
+
owners: Address[];
|
|
44
|
+
operators: Address[];
|
|
45
|
+
mcp: boolean;
|
|
46
|
+
a2a: boolean;
|
|
47
|
+
ens?: string;
|
|
48
|
+
did?: string;
|
|
49
|
+
walletAddress?: Address;
|
|
50
|
+
supportedTrusts: string[];
|
|
51
|
+
a2aSkills: string[];
|
|
52
|
+
mcpTools: string[];
|
|
53
|
+
mcpPrompts: string[];
|
|
54
|
+
mcpResources: string[];
|
|
55
|
+
active: boolean;
|
|
56
|
+
x402support: boolean;
|
|
57
|
+
extras: Record<string, any>;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Feedback data structure
|
|
61
|
+
*/
|
|
62
|
+
export interface Feedback {
|
|
63
|
+
id: FeedbackIdTuple;
|
|
64
|
+
agentId: AgentId;
|
|
65
|
+
reviewer: Address;
|
|
66
|
+
score?: number;
|
|
67
|
+
tags: string[];
|
|
68
|
+
text?: string;
|
|
69
|
+
context?: Record<string, any>;
|
|
70
|
+
proofOfPayment?: Record<string, any>;
|
|
71
|
+
fileURI?: URI;
|
|
72
|
+
createdAt: Timestamp;
|
|
73
|
+
answers: Array<Record<string, any>>;
|
|
74
|
+
isRevoked: boolean;
|
|
75
|
+
capability?: string;
|
|
76
|
+
name?: string;
|
|
77
|
+
skill?: string;
|
|
78
|
+
task?: string;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Feedback ID tuple: [agentId, clientAddress, feedbackIndex]
|
|
82
|
+
*/
|
|
83
|
+
export type FeedbackIdTuple = [AgentId, Address, number];
|
|
84
|
+
/**
|
|
85
|
+
* Feedback ID string format: "agentId:clientAddress:feedbackIndex"
|
|
86
|
+
*/
|
|
87
|
+
export type FeedbackId = string;
|
|
88
|
+
/**
|
|
89
|
+
* Parameters for agent search
|
|
90
|
+
*/
|
|
91
|
+
export interface SearchParams {
|
|
92
|
+
chains?: number[];
|
|
93
|
+
name?: string;
|
|
94
|
+
description?: string;
|
|
95
|
+
owners?: Address[];
|
|
96
|
+
operators?: Address[];
|
|
97
|
+
mcp?: boolean;
|
|
98
|
+
a2a?: boolean;
|
|
99
|
+
ens?: string;
|
|
100
|
+
did?: string;
|
|
101
|
+
walletAddress?: Address;
|
|
102
|
+
supportedTrust?: string[];
|
|
103
|
+
a2aSkills?: string[];
|
|
104
|
+
mcpTools?: string[];
|
|
105
|
+
mcpPrompts?: string[];
|
|
106
|
+
mcpResources?: string[];
|
|
107
|
+
active?: boolean;
|
|
108
|
+
x402support?: boolean;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Parameters for feedback search
|
|
112
|
+
*/
|
|
113
|
+
export interface SearchFeedbackParams {
|
|
114
|
+
agents?: AgentId[];
|
|
115
|
+
tags?: string[];
|
|
116
|
+
reviewers?: Address[];
|
|
117
|
+
capabilities?: string[];
|
|
118
|
+
skills?: string[];
|
|
119
|
+
tasks?: string[];
|
|
120
|
+
names?: string[];
|
|
121
|
+
minScore?: number;
|
|
122
|
+
maxScore?: number;
|
|
123
|
+
includeRevoked?: boolean;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/models/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/models/interfaces.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type aliases for Agent0 SDK
|
|
3
|
+
*/
|
|
4
|
+
export type AgentId = string;
|
|
5
|
+
export type ChainId = number;
|
|
6
|
+
export type Address = string;
|
|
7
|
+
export type URI = string;
|
|
8
|
+
export type CID = string;
|
|
9
|
+
export type Timestamp = number;
|
|
10
|
+
export type IdemKey = string;
|
|
11
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/models/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAG7B,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAG7B,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAG7B,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC;AAGzB,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC;AAGzB,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAG/B,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/models/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared constants for Agent0 SDK
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* IPFS gateway URLs for fallback retrieval
|
|
6
|
+
*/
|
|
7
|
+
export declare const IPFS_GATEWAYS: readonly ["https://gateway.pinata.cloud/ipfs/", "https://ipfs.io/ipfs/", "https://dweb.link/ipfs/"];
|
|
8
|
+
/**
|
|
9
|
+
* Timeout values in milliseconds
|
|
10
|
+
*/
|
|
11
|
+
export declare const TIMEOUTS: {
|
|
12
|
+
readonly IPFS_GATEWAY: 10000;
|
|
13
|
+
readonly PINATA_UPLOAD: 80000;
|
|
14
|
+
readonly TRANSACTION_WAIT: 30000;
|
|
15
|
+
readonly ENDPOINT_CRAWLER_DEFAULT: 5000;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Default values
|
|
19
|
+
*/
|
|
20
|
+
export declare const DEFAULTS: {
|
|
21
|
+
readonly FEEDBACK_EXPIRY_HOURS: 24;
|
|
22
|
+
readonly SEARCH_PAGE_SIZE: 50;
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,qGAIhB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;CAKX,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,QAAQ;;;CAGX,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared constants for Agent0 SDK
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* IPFS gateway URLs for fallback retrieval
|
|
6
|
+
*/
|
|
7
|
+
export const IPFS_GATEWAYS = [
|
|
8
|
+
'https://gateway.pinata.cloud/ipfs/',
|
|
9
|
+
'https://ipfs.io/ipfs/',
|
|
10
|
+
'https://dweb.link/ipfs/',
|
|
11
|
+
];
|
|
12
|
+
/**
|
|
13
|
+
* Timeout values in milliseconds
|
|
14
|
+
*/
|
|
15
|
+
export const TIMEOUTS = {
|
|
16
|
+
IPFS_GATEWAY: 10000, // 10 seconds
|
|
17
|
+
PINATA_UPLOAD: 80000, // 80 seconds
|
|
18
|
+
TRANSACTION_WAIT: 30000, // 30 seconds
|
|
19
|
+
ENDPOINT_CRAWLER_DEFAULT: 5000, // 5 seconds
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Default values
|
|
23
|
+
*/
|
|
24
|
+
export const DEFAULTS = {
|
|
25
|
+
FEEDBACK_EXPIRY_HOURS: 24,
|
|
26
|
+
SEARCH_PAGE_SIZE: 50,
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,oCAAoC;IACpC,uBAAuB;IACvB,yBAAyB;CACjB,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,YAAY,EAAE,KAAK,EAAE,aAAa;IAClC,aAAa,EAAE,KAAK,EAAE,aAAa;IACnC,gBAAgB,EAAE,KAAK,EAAE,aAAa;IACtC,wBAAwB,EAAE,IAAI,EAAE,YAAY;CACpC,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,qBAAqB,EAAE,EAAE;IACzB,gBAAgB,EAAE,EAAE;CACZ,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for parsing and formatting Agent IDs and Feedback IDs
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Parse an AgentId string into chainId and tokenId
|
|
6
|
+
* Format: "chainId:tokenId" or just "tokenId" (when chain is implicit)
|
|
7
|
+
*/
|
|
8
|
+
export declare function parseAgentId(agentId: string | null | undefined): {
|
|
9
|
+
chainId: number;
|
|
10
|
+
tokenId: number;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Format chainId and tokenId into AgentId string
|
|
14
|
+
*/
|
|
15
|
+
export declare function formatAgentId(chainId: number, tokenId: number): string;
|
|
16
|
+
/**
|
|
17
|
+
* Parse a FeedbackId string into its components
|
|
18
|
+
* Format: "agentId:clientAddress:feedbackIndex"
|
|
19
|
+
* Note: agentId may contain colons (e.g., "11155111:123"), so we split from the right
|
|
20
|
+
*/
|
|
21
|
+
export declare function parseFeedbackId(feedbackId: string): {
|
|
22
|
+
agentId: string;
|
|
23
|
+
clientAddress: string;
|
|
24
|
+
feedbackIndex: number;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Format feedback ID components into FeedbackId string
|
|
28
|
+
*/
|
|
29
|
+
export declare function formatFeedbackId(agentId: string, clientAddress: string, feedbackIndex: number): string;
|
|
30
|
+
//# sourceMappingURL=id-format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id-format.d.ts","sourceRoot":"","sources":["../../src/utils/id-format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAoBrG;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB,CAyBA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,GACpB,MAAM,CAKR"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for parsing and formatting Agent IDs and Feedback IDs
|
|
3
|
+
*/
|
|
4
|
+
import { normalizeAddress } from './validation';
|
|
5
|
+
/**
|
|
6
|
+
* Parse an AgentId string into chainId and tokenId
|
|
7
|
+
* Format: "chainId:tokenId" or just "tokenId" (when chain is implicit)
|
|
8
|
+
*/
|
|
9
|
+
export function parseAgentId(agentId) {
|
|
10
|
+
if (!agentId || typeof agentId !== 'string') {
|
|
11
|
+
throw new Error(`Invalid AgentId: ${agentId}. Expected a non-empty string in format "chainId:tokenId"`);
|
|
12
|
+
}
|
|
13
|
+
if (agentId.includes(':')) {
|
|
14
|
+
const [chainId, tokenId] = agentId.split(':');
|
|
15
|
+
const parsedChainId = parseInt(chainId, 10);
|
|
16
|
+
const parsedTokenId = parseInt(tokenId, 10);
|
|
17
|
+
if (isNaN(parsedChainId) || isNaN(parsedTokenId)) {
|
|
18
|
+
throw new Error(`Invalid AgentId format: ${agentId}. ChainId and tokenId must be valid numbers`);
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
chainId: parsedChainId,
|
|
22
|
+
tokenId: parsedTokenId,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
throw new Error(`Invalid AgentId format: ${agentId}. Expected "chainId:tokenId"`);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Format chainId and tokenId into AgentId string
|
|
29
|
+
*/
|
|
30
|
+
export function formatAgentId(chainId, tokenId) {
|
|
31
|
+
return `${chainId}:${tokenId}`;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Parse a FeedbackId string into its components
|
|
35
|
+
* Format: "agentId:clientAddress:feedbackIndex"
|
|
36
|
+
* Note: agentId may contain colons (e.g., "11155111:123"), so we split from the right
|
|
37
|
+
*/
|
|
38
|
+
export function parseFeedbackId(feedbackId) {
|
|
39
|
+
const lastColonIndex = feedbackId.lastIndexOf(':');
|
|
40
|
+
const secondLastColonIndex = feedbackId.lastIndexOf(':', lastColonIndex - 1);
|
|
41
|
+
if (lastColonIndex === -1 || secondLastColonIndex === -1) {
|
|
42
|
+
throw new Error(`Invalid feedback ID format: ${feedbackId}`);
|
|
43
|
+
}
|
|
44
|
+
const agentId = feedbackId.slice(0, secondLastColonIndex);
|
|
45
|
+
const clientAddress = feedbackId.slice(secondLastColonIndex + 1, lastColonIndex);
|
|
46
|
+
const feedbackIndexStr = feedbackId.slice(lastColonIndex + 1);
|
|
47
|
+
const feedbackIndex = parseInt(feedbackIndexStr, 10);
|
|
48
|
+
if (isNaN(feedbackIndex)) {
|
|
49
|
+
throw new Error(`Invalid feedback index: ${feedbackIndexStr}`);
|
|
50
|
+
}
|
|
51
|
+
// Normalize address to lowercase for consistency
|
|
52
|
+
const normalizedAddress = normalizeAddress(clientAddress);
|
|
53
|
+
return {
|
|
54
|
+
agentId,
|
|
55
|
+
clientAddress: normalizedAddress,
|
|
56
|
+
feedbackIndex,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Format feedback ID components into FeedbackId string
|
|
61
|
+
*/
|
|
62
|
+
export function formatFeedbackId(agentId, clientAddress, feedbackIndex) {
|
|
63
|
+
// Normalize address to lowercase
|
|
64
|
+
const normalizedAddress = normalizeAddress(clientAddress);
|
|
65
|
+
return `${agentId}:${normalizedAddress}:${feedbackIndex}`;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=id-format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id-format.js","sourceRoot":"","sources":["../../src/utils/id-format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,OAAkC;IAC7D,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,2DAA2D,CAAC,CAAC;IAC1G,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC5C,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAE5C,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,6CAA6C,CAAC,CAAC;QACnG,CAAC;QAED,OAAO;YACL,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE,aAAa;SACvB,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,8BAA8B,CAAC,CAAC;AACpF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,OAAe;IAC5D,OAAO,GAAG,OAAO,IAAI,OAAO,EAAE,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB;IAKhD,MAAM,cAAc,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACnD,MAAM,oBAAoB,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;IAE7E,IAAI,cAAc,KAAK,CAAC,CAAC,IAAI,oBAAoB,KAAK,CAAC,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,+BAA+B,UAAU,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,oBAAoB,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC;IACjF,MAAM,gBAAgB,GAAG,UAAU,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;IAE9D,MAAM,aAAa,GAAG,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACrD,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,2BAA2B,gBAAgB,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,iDAAiD;IACjD,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAE1D,OAAO;QACL,OAAO;QACP,aAAa,EAAE,iBAAiB;QAChC,aAAa;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAe,EACf,aAAqB,EACrB,aAAqB;IAErB,iCAAiC;IACjC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAE1D,OAAO,GAAG,OAAO,IAAI,iBAAiB,IAAI,aAAa,EAAE,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation utilities
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Validate Ethereum address format
|
|
6
|
+
*/
|
|
7
|
+
export declare function isValidAddress(address: string): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Validate AgentId format
|
|
10
|
+
* Format: "chainId:tokenId" where both are positive integers
|
|
11
|
+
*/
|
|
12
|
+
export declare function isValidAgentId(agentId: string): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Validate URI format (basic validation)
|
|
15
|
+
*/
|
|
16
|
+
export declare function isValidURI(uri: string): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Validate feedback score (0-100)
|
|
19
|
+
*/
|
|
20
|
+
export declare function isValidScore(score: number): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Normalize address to lowercase for consistent storage and comparison
|
|
23
|
+
*/
|
|
24
|
+
export declare function normalizeAddress(address: string): string;
|
|
25
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAMvD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAWvD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAW/C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKxD"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation utilities
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Validate Ethereum address format
|
|
6
|
+
*/
|
|
7
|
+
export function isValidAddress(address) {
|
|
8
|
+
if (!address || typeof address !== 'string') {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
// Ethereum address: 0x followed by 40 hex characters
|
|
12
|
+
return /^0x[a-fA-F0-9]{40}$/.test(address);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Validate AgentId format
|
|
16
|
+
* Format: "chainId:tokenId" where both are positive integers
|
|
17
|
+
*/
|
|
18
|
+
export function isValidAgentId(agentId) {
|
|
19
|
+
if (!agentId || typeof agentId !== 'string') {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
const parts = agentId.split(':');
|
|
23
|
+
if (parts.length !== 2) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
const chainId = parseInt(parts[0], 10);
|
|
27
|
+
const tokenId = parseInt(parts[1], 10);
|
|
28
|
+
return !isNaN(chainId) && !isNaN(tokenId) && chainId > 0 && tokenId >= 0;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Validate URI format (basic validation)
|
|
32
|
+
*/
|
|
33
|
+
export function isValidURI(uri) {
|
|
34
|
+
if (!uri || typeof uri !== 'string') {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
const url = new URL(uri);
|
|
39
|
+
return url.protocol === 'http:' || url.protocol === 'https:' || uri.startsWith('ipfs://');
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// If URL parsing fails, it might still be a valid IPFS URI
|
|
43
|
+
return uri.startsWith('ipfs://') || uri.startsWith('/ipfs/');
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Validate feedback score (0-100)
|
|
48
|
+
*/
|
|
49
|
+
export function isValidScore(score) {
|
|
50
|
+
return Number.isInteger(score) && score >= 0 && score <= 100;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Normalize address to lowercase for consistent storage and comparison
|
|
54
|
+
*/
|
|
55
|
+
export function normalizeAddress(address) {
|
|
56
|
+
if (address.startsWith('0x') || address.startsWith('0X')) {
|
|
57
|
+
return '0x' + address.slice(2).toLowerCase();
|
|
58
|
+
}
|
|
59
|
+
return address.toLowerCase();
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,qDAAqD;IACrD,OAAO,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC;AAC3E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC5F,CAAC;IAAC,MAAM,CAAC;QACP,2DAA2D;QAC3D,OAAO,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,GAAG,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzD,OAAO,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/C,CAAC;IACD,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;AAC/B,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "agent0-sdk",
|
|
3
|
+
"version": "0.2.1",
|
|
4
|
+
"description": "TypeScript SDK for agent portability, discovery and trust based on ERC-8004",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"codegen": "graphql-codegen --config codegen.yml",
|
|
9
|
+
"prebuild": "npm run codegen",
|
|
10
|
+
"build": "tsc",
|
|
11
|
+
"build:watch": "tsc --watch",
|
|
12
|
+
"test": "jest",
|
|
13
|
+
"test:watch": "jest --watch",
|
|
14
|
+
"test:coverage": "jest --coverage",
|
|
15
|
+
"lint": "eslint src",
|
|
16
|
+
"format": "prettier --write src",
|
|
17
|
+
"clean": "rm -rf dist"
|
|
18
|
+
},
|
|
19
|
+
"keywords": [
|
|
20
|
+
"erc-8004",
|
|
21
|
+
"agent",
|
|
22
|
+
"blockchain",
|
|
23
|
+
"ethereum",
|
|
24
|
+
"ipfs",
|
|
25
|
+
"reputation"
|
|
26
|
+
],
|
|
27
|
+
"author": "Marco De Rossi <marco.derossi@consensys.net>",
|
|
28
|
+
"license": "MIT",
|
|
29
|
+
"repository": {
|
|
30
|
+
"type": "git",
|
|
31
|
+
"url": "https://github.com/agent0lab/agent0-ts"
|
|
32
|
+
},
|
|
33
|
+
"homepage": "https://sdk.ag0.xyz",
|
|
34
|
+
"bugs": {
|
|
35
|
+
"url": "https://github.com/agent0lab/agent0-ts/issues"
|
|
36
|
+
},
|
|
37
|
+
"files": [
|
|
38
|
+
"dist/**/*",
|
|
39
|
+
"README.md",
|
|
40
|
+
"LICENSE",
|
|
41
|
+
"package.json"
|
|
42
|
+
],
|
|
43
|
+
"publishConfig": {
|
|
44
|
+
"access": "public"
|
|
45
|
+
},
|
|
46
|
+
"dependencies": {
|
|
47
|
+
"dotenv": "^16.3.1",
|
|
48
|
+
"ethers": "^6.9.0",
|
|
49
|
+
"graphql-request": "^6.1.0",
|
|
50
|
+
"ipfs-http-client": "^60.0.1"
|
|
51
|
+
},
|
|
52
|
+
"devDependencies": {
|
|
53
|
+
"@graphql-codegen/cli": "^6.0.1",
|
|
54
|
+
"@graphql-codegen/introspection": "^5.0.0",
|
|
55
|
+
"@graphql-codegen/typescript": "^5.0.2",
|
|
56
|
+
"@graphql-codegen/typescript-operations": "^5.0.2",
|
|
57
|
+
"@types/jest": "^29.5.11",
|
|
58
|
+
"@types/node": "^20.10.6",
|
|
59
|
+
"@typescript-eslint/eslint-plugin": "^6.17.0",
|
|
60
|
+
"@typescript-eslint/parser": "^6.17.0",
|
|
61
|
+
"eslint": "^8.56.0",
|
|
62
|
+
"jest": "^29.7.0",
|
|
63
|
+
"prettier": "^3.1.1",
|
|
64
|
+
"ts-jest": "^29.1.1",
|
|
65
|
+
"tsx": "^4.7.0",
|
|
66
|
+
"typescript": "^5.3.3"
|
|
67
|
+
},
|
|
68
|
+
"engines": {
|
|
69
|
+
"node": ">=18.0.0"
|
|
70
|
+
}
|
|
71
|
+
}
|