@silvana-one/coordination 1.0.15 → 1.0.17
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/node/agent.d.ts +18 -0
- package/dist/node/agent.js +48 -5
- package/dist/node/agent.js.map +1 -1
- package/dist/node/fetch.d.ts +1 -0
- package/dist/node/fetch.js +6 -0
- package/dist/node/fetch.js.map +1 -1
- package/dist/node/index.cjs +56 -7
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/tsconfig.web.tsbuildinfo +1 -1
- package/dist/web/agent.d.ts +18 -0
- package/dist/web/agent.js +48 -5
- package/dist/web/agent.js.map +1 -1
- package/dist/web/fetch.d.ts +1 -0
- package/dist/web/fetch.js +6 -0
- package/dist/web/fetch.js.map +1 -1
- package/package.json +3 -3
- package/src/agent.ts +92 -4
- package/src/fetch.ts +7 -0
package/dist/web/fetch.js
CHANGED
|
@@ -8,6 +8,12 @@ export async function fetchSuiObject(objectID) {
|
|
|
8
8
|
});
|
|
9
9
|
return data;
|
|
10
10
|
}
|
|
11
|
+
export async function fetchSuiDynamicFieldsList(objectID) {
|
|
12
|
+
const data = await suiClient.getDynamicFields({
|
|
13
|
+
parentId: objectID,
|
|
14
|
+
});
|
|
15
|
+
return data;
|
|
16
|
+
}
|
|
11
17
|
export async function fetchSuiDynamicField(params) {
|
|
12
18
|
try {
|
|
13
19
|
const { objectID, parentID, fieldName, type, key } = params;
|
package/dist/web/fetch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB;IACnD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC;QACrC,EAAE,EAAE,QAAQ;QACZ,OAAO,EAAE;YACP,WAAW,EAAE,IAAI;SAClB;KACF,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAM1C;IACC,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;QAE5D,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YAClD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,EAAE,GAAG,QAAQ,CAAC;QAClB,IAAI,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,CAAC,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAQ,CAAC;YAE1D,EAAE,GAAI,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,SAAS,CAAS,EAAE,MAAM,EAAE,EAAE;gBACrE,EAAE,EAAE,CAAC;QACT,CAAC;QACD,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,qBAAqB,CAAC;YAClD,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE;gBACJ,IAAI;gBACJ,KAAK,EAAE,GAAG;aACX;SACF,CAAC,CAAC;QAEH,OAAQ,KAAK,CAAC,IAAI,EAAE,OAAe,EAAE,MAAgB,CAAC;IACxD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CACX,oDAAoD,EACpD,KAAK,EAAE,OAAO,CACf,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB;IACnD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC;QACrC,EAAE,EAAE,QAAQ;QACZ,OAAO,EAAE;YACP,WAAW,EAAE,IAAI;SAClB;KACF,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,QAAgB;IAC9D,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,gBAAgB,CAAC;QAC5C,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAM1C;IACC,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;QAE5D,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YAClD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,EAAE,GAAG,QAAQ,CAAC;QAClB,IAAI,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,CAAC,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAQ,CAAC;YAE1D,EAAE,GAAI,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,SAAS,CAAS,EAAE,MAAM,EAAE,EAAE;gBACrE,EAAE,EAAE,CAAC;QACT,CAAC;QACD,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,qBAAqB,CAAC;YAClD,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE;gBACJ,IAAI;gBACJ,KAAK,EAAE,GAAG;aACX;SACF,CAAC,CAAC;QAEH,OAAQ,KAAK,CAAC,IAAI,EAAE,OAAe,EAAE,MAAgB,CAAC;IACxD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CACX,oDAAoD,EACpD,KAAK,EAAE,OAAO,CACf,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@silvana-one/coordination",
|
|
3
3
|
"description": "Silvana Coordination Client",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.17",
|
|
5
5
|
"author": "DFST",
|
|
6
6
|
"bugs": "https://github.com/SilvanaOne/silvana-lib/issues",
|
|
7
7
|
"dependencies": {
|
|
8
|
-
"@mysten/sui": "^1.
|
|
8
|
+
"@mysten/sui": "^1.32.0",
|
|
9
9
|
"mina-signer": "^3.0.7",
|
|
10
10
|
"nanoid": "^5.1.5"
|
|
11
11
|
},
|
|
12
12
|
"devDependencies": {
|
|
13
|
-
"@types/node": "^
|
|
13
|
+
"@types/node": "^24.0.1",
|
|
14
14
|
"esbuild": "^0.25.5",
|
|
15
15
|
"typescript": "^5.8.3"
|
|
16
16
|
},
|
package/src/agent.ts
CHANGED
|
@@ -1,6 +1,30 @@
|
|
|
1
1
|
import { Transaction } from "@mysten/sui/transactions";
|
|
2
2
|
import { SUI_CLOCK_OBJECT_ID } from "@mysten/sui/utils";
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
fetchSuiDynamicField,
|
|
5
|
+
fetchSuiDynamicFieldsList,
|
|
6
|
+
fetchSuiObject,
|
|
7
|
+
} from "./fetch.js";
|
|
8
|
+
|
|
9
|
+
type AgentChain =
|
|
10
|
+
| "ethereum-mainnet"
|
|
11
|
+
| "ethereum-seplolia"
|
|
12
|
+
| "ethereum-holesky"
|
|
13
|
+
| "ethereum-hoodi"
|
|
14
|
+
| "mina-mainnet"
|
|
15
|
+
| "mina-devnet"
|
|
16
|
+
| "zeko-testnet"
|
|
17
|
+
| "zeko-alphanet"
|
|
18
|
+
| "sui-mainnet"
|
|
19
|
+
| "sui-testnet"
|
|
20
|
+
| "sui-devnet"
|
|
21
|
+
| "solana-mainnet"
|
|
22
|
+
| "solana-testnet"
|
|
23
|
+
| "solana-devnet"
|
|
24
|
+
| "solana-devnet"
|
|
25
|
+
| "walrus-mainnet"
|
|
26
|
+
| "walrus-testnet"
|
|
27
|
+
| string; // other chains
|
|
4
28
|
|
|
5
29
|
export interface Agent {
|
|
6
30
|
id: string;
|
|
@@ -13,8 +37,10 @@ export interface Agent {
|
|
|
13
37
|
minMemoryGb: number;
|
|
14
38
|
minCpuCores: number;
|
|
15
39
|
supportsTEE: boolean;
|
|
40
|
+
chains: AgentChain[];
|
|
16
41
|
createdAt: number;
|
|
17
42
|
updatedAt: number;
|
|
43
|
+
version: number;
|
|
18
44
|
}
|
|
19
45
|
|
|
20
46
|
export interface Developer {
|
|
@@ -25,8 +51,17 @@ export interface Developer {
|
|
|
25
51
|
description?: string;
|
|
26
52
|
site?: string;
|
|
27
53
|
owner: string;
|
|
54
|
+
agents: string[];
|
|
28
55
|
createdAt: number;
|
|
29
56
|
updatedAt: number;
|
|
57
|
+
version: number;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export interface DeveloperNames {
|
|
61
|
+
id: string;
|
|
62
|
+
developer_address: string;
|
|
63
|
+
names: string[];
|
|
64
|
+
version: number;
|
|
30
65
|
}
|
|
31
66
|
|
|
32
67
|
export class AgentRegistry {
|
|
@@ -99,13 +134,18 @@ export class AgentRegistry {
|
|
|
99
134
|
return tx;
|
|
100
135
|
}
|
|
101
136
|
|
|
102
|
-
removeDeveloper(params: { name: string }): Transaction {
|
|
103
|
-
const { name } = params;
|
|
137
|
+
removeDeveloper(params: { name: string; agentNames: string[] }): Transaction {
|
|
138
|
+
const { name, agentNames } = params;
|
|
104
139
|
const tx = new Transaction();
|
|
105
140
|
|
|
106
141
|
tx.moveCall({
|
|
107
142
|
target: `@silvana/agent::registry::remove_developer`,
|
|
108
|
-
arguments: [
|
|
143
|
+
arguments: [
|
|
144
|
+
tx.object(this.registry),
|
|
145
|
+
tx.pure.string(name),
|
|
146
|
+
tx.pure.vector("string", agentNames),
|
|
147
|
+
tx.object(SUI_CLOCK_OBJECT_ID),
|
|
148
|
+
],
|
|
109
149
|
});
|
|
110
150
|
|
|
111
151
|
return tx;
|
|
@@ -122,6 +162,7 @@ export class AgentRegistry {
|
|
|
122
162
|
min_memory_gb: number;
|
|
123
163
|
min_cpu_cores: number;
|
|
124
164
|
supports_tee: boolean;
|
|
165
|
+
chains: AgentChain[];
|
|
125
166
|
}): Transaction {
|
|
126
167
|
const {
|
|
127
168
|
developer,
|
|
@@ -134,6 +175,7 @@ export class AgentRegistry {
|
|
|
134
175
|
min_memory_gb,
|
|
135
176
|
min_cpu_cores,
|
|
136
177
|
supports_tee,
|
|
178
|
+
chains,
|
|
137
179
|
} = params;
|
|
138
180
|
const tx = new Transaction();
|
|
139
181
|
|
|
@@ -151,6 +193,7 @@ export class AgentRegistry {
|
|
|
151
193
|
tx.pure.u16(min_memory_gb),
|
|
152
194
|
tx.pure.u16(min_cpu_cores),
|
|
153
195
|
tx.pure.bool(supports_tee),
|
|
196
|
+
tx.pure.vector("string", chains),
|
|
154
197
|
tx.object(SUI_CLOCK_OBJECT_ID),
|
|
155
198
|
],
|
|
156
199
|
});
|
|
@@ -169,6 +212,7 @@ export class AgentRegistry {
|
|
|
169
212
|
min_memory_gb: number;
|
|
170
213
|
min_cpu_cores: number;
|
|
171
214
|
supports_tee: boolean;
|
|
215
|
+
chains: AgentChain[];
|
|
172
216
|
}): Transaction {
|
|
173
217
|
const {
|
|
174
218
|
developer,
|
|
@@ -181,6 +225,7 @@ export class AgentRegistry {
|
|
|
181
225
|
min_memory_gb,
|
|
182
226
|
min_cpu_cores,
|
|
183
227
|
supports_tee,
|
|
228
|
+
chains,
|
|
184
229
|
} = params;
|
|
185
230
|
const tx = new Transaction();
|
|
186
231
|
|
|
@@ -198,6 +243,7 @@ export class AgentRegistry {
|
|
|
198
243
|
tx.pure.u16(min_memory_gb),
|
|
199
244
|
tx.pure.u16(min_cpu_cores),
|
|
200
245
|
tx.pure.bool(supports_tee),
|
|
246
|
+
tx.pure.vector("string", chains),
|
|
201
247
|
tx.object(SUI_CLOCK_OBJECT_ID),
|
|
202
248
|
],
|
|
203
249
|
});
|
|
@@ -215,6 +261,7 @@ export class AgentRegistry {
|
|
|
215
261
|
tx.object(this.registry),
|
|
216
262
|
tx.pure.string(developer),
|
|
217
263
|
tx.pure.string(agent),
|
|
264
|
+
tx.object(SUI_CLOCK_OBJECT_ID),
|
|
218
265
|
],
|
|
219
266
|
});
|
|
220
267
|
|
|
@@ -231,6 +278,20 @@ export class AgentRegistry {
|
|
|
231
278
|
if (!developerObject) {
|
|
232
279
|
return undefined;
|
|
233
280
|
}
|
|
281
|
+
let agents: string[] = [];
|
|
282
|
+
const agentsObject = (developerObject as any)?.agents?.fields?.id?.id;
|
|
283
|
+
if (agentsObject) {
|
|
284
|
+
const agentsList = await fetchSuiDynamicFieldsList(agentsObject);
|
|
285
|
+
const agentsArray = agentsList?.data as any;
|
|
286
|
+
if (Array.isArray(agentsArray)) {
|
|
287
|
+
agents = agentsArray
|
|
288
|
+
.map((agent: any) => agent?.name?.value)
|
|
289
|
+
.filter(
|
|
290
|
+
(agent: any) => agent !== undefined && typeof agent === "string"
|
|
291
|
+
);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
|
|
234
295
|
const developer = {
|
|
235
296
|
id: (developerObject as any)?.id?.id,
|
|
236
297
|
name: (developerObject as any).name,
|
|
@@ -239,8 +300,10 @@ export class AgentRegistry {
|
|
|
239
300
|
description: (developerObject as any)?.description ?? undefined,
|
|
240
301
|
site: (developerObject as any)?.site ?? undefined,
|
|
241
302
|
owner: (developerObject as any).owner,
|
|
303
|
+
agents,
|
|
242
304
|
createdAt: Number((developerObject as any).created_at),
|
|
243
305
|
updatedAt: Number((developerObject as any).updated_at),
|
|
306
|
+
version: Number((developerObject as any).version),
|
|
244
307
|
};
|
|
245
308
|
if (
|
|
246
309
|
!developer.id ||
|
|
@@ -255,6 +318,30 @@ export class AgentRegistry {
|
|
|
255
318
|
return developer as Developer;
|
|
256
319
|
}
|
|
257
320
|
|
|
321
|
+
async getDeveloperNames(params: {
|
|
322
|
+
developerAddress: string;
|
|
323
|
+
}): Promise<DeveloperNames | undefined> {
|
|
324
|
+
const developerObject = await fetchSuiDynamicField({
|
|
325
|
+
objectID: this.registry,
|
|
326
|
+
fieldName: "developers_index",
|
|
327
|
+
type: "address",
|
|
328
|
+
key: params.developerAddress,
|
|
329
|
+
});
|
|
330
|
+
if (!developerObject) {
|
|
331
|
+
return undefined;
|
|
332
|
+
}
|
|
333
|
+
const developer = {
|
|
334
|
+
id: (developerObject as any)?.id?.id,
|
|
335
|
+
developer_address: (developerObject as any).developer,
|
|
336
|
+
names: (developerObject as any).names,
|
|
337
|
+
version: Number((developerObject as any).version),
|
|
338
|
+
};
|
|
339
|
+
if (!developer.id || !developer.developer_address || !developer.names) {
|
|
340
|
+
return undefined;
|
|
341
|
+
}
|
|
342
|
+
return developer as DeveloperNames;
|
|
343
|
+
}
|
|
344
|
+
|
|
258
345
|
async getAgent(params: {
|
|
259
346
|
developer: string;
|
|
260
347
|
agent: string;
|
|
@@ -293,6 +380,7 @@ export class AgentRegistry {
|
|
|
293
380
|
supportsTEE: Boolean((agentObject as any).supports_tee),
|
|
294
381
|
createdAt: Number((agentObject as any).created_at),
|
|
295
382
|
updatedAt: Number((agentObject as any).updated_at),
|
|
383
|
+
version: Number((agentObject as any).version),
|
|
296
384
|
};
|
|
297
385
|
if (
|
|
298
386
|
!agent.id ||
|
package/src/fetch.ts
CHANGED
|
@@ -10,6 +10,13 @@ export async function fetchSuiObject(objectID: string) {
|
|
|
10
10
|
return data;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
+
export async function fetchSuiDynamicFieldsList(objectID: string) {
|
|
14
|
+
const data = await suiClient.getDynamicFields({
|
|
15
|
+
parentId: objectID,
|
|
16
|
+
});
|
|
17
|
+
return data;
|
|
18
|
+
}
|
|
19
|
+
|
|
13
20
|
export async function fetchSuiDynamicField(params: {
|
|
14
21
|
objectID?: string;
|
|
15
22
|
parentID?: string;
|