@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/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;
@@ -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.15",
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.30.5",
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": "^22.15.30",
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 { fetchSuiDynamicField } from "./fetch.js";
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: [tx.object(this.registry), tx.pure.string(name)],
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;