@silvana-one/coordination 1.0.24 → 1.0.26

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.
Files changed (96) hide show
  1. package/dist/node/agent.d.ts +43 -15
  2. package/dist/node/agent.js +129 -31
  3. package/dist/node/agent.js.map +1 -1
  4. package/dist/node/app_instance.d.ts +58 -0
  5. package/dist/node/app_instance.js +203 -0
  6. package/dist/node/app_instance.js.map +1 -0
  7. package/dist/node/build.d.ts +5 -0
  8. package/dist/node/build.js +21 -0
  9. package/dist/node/build.js.map +1 -0
  10. package/dist/node/execute.d.ts +1 -0
  11. package/dist/node/execute.js +10 -2
  12. package/dist/node/execute.js.map +1 -1
  13. package/dist/node/faucet.d.ts +34 -0
  14. package/dist/node/faucet.js +91 -0
  15. package/dist/node/faucet.js.map +1 -0
  16. package/dist/node/index.cjs +1087 -31
  17. package/dist/node/index.d.ts +9 -0
  18. package/dist/node/index.js +9 -0
  19. package/dist/node/index.js.map +1 -1
  20. package/dist/node/ipfs.d.ts +13 -0
  21. package/dist/node/ipfs.js +88 -0
  22. package/dist/node/ipfs.js.map +1 -0
  23. package/dist/node/job.d.ts +57 -0
  24. package/dist/node/job.js +168 -0
  25. package/dist/node/job.js.map +1 -0
  26. package/dist/node/package.d.ts +1 -0
  27. package/dist/node/package.js +6 -0
  28. package/dist/node/package.js.map +1 -0
  29. package/dist/node/public-key.d.ts +24 -0
  30. package/dist/node/public-key.js +44 -0
  31. package/dist/node/public-key.js.map +1 -0
  32. package/dist/node/publish.js.map +1 -1
  33. package/dist/node/test.d.ts +48 -0
  34. package/dist/node/test.js +278 -0
  35. package/dist/node/test.js.map +1 -0
  36. package/dist/node/upgrade.js +1 -12
  37. package/dist/node/upgrade.js.map +1 -1
  38. package/dist/node/walrus.d.ts +12 -0
  39. package/dist/node/walrus.js +73 -0
  40. package/dist/node/walrus.js.map +1 -0
  41. package/dist/tsconfig.tsbuildinfo +1 -1
  42. package/dist/tsconfig.web.tsbuildinfo +1 -1
  43. package/dist/web/agent.d.ts +43 -15
  44. package/dist/web/agent.js +129 -31
  45. package/dist/web/agent.js.map +1 -1
  46. package/dist/web/app_instance.d.ts +58 -0
  47. package/dist/web/app_instance.js +203 -0
  48. package/dist/web/app_instance.js.map +1 -0
  49. package/dist/web/build.d.ts +5 -0
  50. package/dist/web/build.js +21 -0
  51. package/dist/web/build.js.map +1 -0
  52. package/dist/web/execute.d.ts +1 -0
  53. package/dist/web/execute.js +10 -2
  54. package/dist/web/execute.js.map +1 -1
  55. package/dist/web/faucet.d.ts +34 -0
  56. package/dist/web/faucet.js +91 -0
  57. package/dist/web/faucet.js.map +1 -0
  58. package/dist/web/index.d.ts +9 -0
  59. package/dist/web/index.js +9 -0
  60. package/dist/web/index.js.map +1 -1
  61. package/dist/web/ipfs.d.ts +13 -0
  62. package/dist/web/ipfs.js +88 -0
  63. package/dist/web/ipfs.js.map +1 -0
  64. package/dist/web/job.d.ts +57 -0
  65. package/dist/web/job.js +168 -0
  66. package/dist/web/job.js.map +1 -0
  67. package/dist/web/package.d.ts +1 -0
  68. package/dist/web/package.js +6 -0
  69. package/dist/web/package.js.map +1 -0
  70. package/dist/web/public-key.d.ts +24 -0
  71. package/dist/web/public-key.js +44 -0
  72. package/dist/web/public-key.js.map +1 -0
  73. package/dist/web/publish.js.map +1 -1
  74. package/dist/web/test.d.ts +48 -0
  75. package/dist/web/test.js +278 -0
  76. package/dist/web/test.js.map +1 -0
  77. package/dist/web/upgrade.js +1 -12
  78. package/dist/web/upgrade.js.map +1 -1
  79. package/dist/web/walrus.d.ts +12 -0
  80. package/dist/web/walrus.js +73 -0
  81. package/dist/web/walrus.js.map +1 -0
  82. package/package.json +7 -4
  83. package/src/agent.ts +204 -56
  84. package/src/app_instance.ts +264 -0
  85. package/src/build.ts +33 -0
  86. package/src/execute.ts +11 -2
  87. package/src/faucet.ts +145 -0
  88. package/src/index.ts +9 -0
  89. package/src/ipfs.ts +105 -0
  90. package/src/job.ts +223 -0
  91. package/src/package.ts +6 -0
  92. package/src/public-key.ts +66 -0
  93. package/src/publish.ts +0 -2
  94. package/src/test.ts +383 -0
  95. package/src/upgrade.ts +1 -18
  96. package/src/walrus.ts +96 -0
@@ -1,17 +1,21 @@
1
1
  import { Transaction } from "@mysten/sui/transactions";
2
2
  type AgentChain = "ethereum-mainnet" | "ethereum-seplolia" | "ethereum-holesky" | "ethereum-hoodi" | "mina-mainnet" | "mina-devnet" | "zeko-testnet" | "zeko-alphanet" | "sui-mainnet" | "sui-testnet" | "sui-devnet" | "solana-mainnet" | "solana-testnet" | "solana-devnet" | "solana-devnet" | "walrus-mainnet" | "walrus-testnet" | string;
3
+ export interface AgentMethod {
4
+ dockerImage: string;
5
+ dockerSha256?: string;
6
+ minMemoryGb: number;
7
+ minCpuCores: number;
8
+ requiresTee: boolean;
9
+ }
3
10
  export interface Agent {
4
11
  id: string;
5
12
  name: string;
6
13
  image?: string;
7
14
  description?: string;
8
15
  site?: string;
9
- dockerImage: string;
10
- dockerSha256?: string;
11
- minMemoryGb: number;
12
- minCpuCores: number;
13
- supportsTEE: boolean;
14
16
  chains: AgentChain[];
17
+ methods: Record<string, AgentMethod>;
18
+ defaultMethod?: AgentMethod;
15
19
  createdAt: number;
16
20
  updatedAt: number;
17
21
  version: number;
@@ -67,11 +71,6 @@ export declare class AgentRegistry {
67
71
  image?: string;
68
72
  description?: string;
69
73
  site?: string;
70
- docker_image: string;
71
- docker_sha256?: string;
72
- min_memory_gb: number;
73
- min_cpu_cores: number;
74
- supports_tee: boolean;
75
74
  chains: AgentChain[];
76
75
  }): Transaction;
77
76
  updateAgent(params: {
@@ -80,17 +79,46 @@ export declare class AgentRegistry {
80
79
  image?: string;
81
80
  description?: string;
82
81
  site?: string;
83
- docker_image: string;
84
- docker_sha256?: string;
85
- min_memory_gb: number;
86
- min_cpu_cores: number;
87
- supports_tee: boolean;
88
82
  chains: AgentChain[];
89
83
  }): Transaction;
90
84
  removeAgent(params: {
91
85
  developer: string;
92
86
  agent: string;
93
87
  }): Transaction;
88
+ addAgentMethod(params: {
89
+ developer: string;
90
+ agent: string;
91
+ method: string;
92
+ dockerImage: string;
93
+ dockerSha256?: string;
94
+ minMemoryGb: number;
95
+ minCpuCores: number;
96
+ requiresTee: boolean;
97
+ }): Transaction;
98
+ updateAgentMethod(params: {
99
+ developer: string;
100
+ agent: string;
101
+ method: string;
102
+ dockerImage: string;
103
+ dockerSha256?: string;
104
+ minMemoryGb: number;
105
+ minCpuCores: number;
106
+ requiresTee: boolean;
107
+ }): Transaction;
108
+ removeAgentMethod(params: {
109
+ developer: string;
110
+ agent: string;
111
+ method: string;
112
+ }): Transaction;
113
+ setDefaultMethod(params: {
114
+ developer: string;
115
+ agent: string;
116
+ method: string;
117
+ }): Transaction;
118
+ removeDefaultMethod(params: {
119
+ developer: string;
120
+ agent: string;
121
+ }): Transaction;
94
122
  getDeveloper(params: {
95
123
  name: string;
96
124
  }): Promise<Developer | undefined>;
@@ -1,6 +1,7 @@
1
1
  import { Transaction } from "@mysten/sui/transactions";
2
2
  import { SUI_CLOCK_OBJECT_ID } from "@mysten/sui/utils";
3
3
  import { fetchSuiDynamicField, fetchSuiDynamicFieldsList, } from "./fetch.js";
4
+ import { silvanaRegistryPackage } from "./package.js";
4
5
  export class AgentRegistry {
5
6
  constructor(params) {
6
7
  this.registry = params.registry;
@@ -9,7 +10,7 @@ export class AgentRegistry {
9
10
  console.log("Creating agent registry", params.name);
10
11
  const transaction = new Transaction();
11
12
  transaction.moveCall({
12
- target: `@silvana/agent::registry::create_registry`,
13
+ target: `${silvanaRegistryPackage}::registry::create_registry`,
13
14
  arguments: [transaction.pure.string(params.name)],
14
15
  });
15
16
  return transaction;
@@ -18,7 +19,7 @@ export class AgentRegistry {
18
19
  const { name, github, image, description, site } = params;
19
20
  const tx = new Transaction();
20
21
  tx.moveCall({
21
- target: `@silvana/agent::registry::add_developer`,
22
+ target: `${silvanaRegistryPackage}::registry::add_developer`,
22
23
  arguments: [
23
24
  tx.object(this.registry),
24
25
  tx.pure.string(name),
@@ -35,7 +36,7 @@ export class AgentRegistry {
35
36
  const { name, github, image, description, site } = params;
36
37
  const tx = new Transaction();
37
38
  tx.moveCall({
38
- target: `@silvana/agent::registry::update_developer`,
39
+ target: `${silvanaRegistryPackage}::registry::update_developer`,
39
40
  arguments: [
40
41
  tx.object(this.registry),
41
42
  tx.pure.string(name),
@@ -52,7 +53,7 @@ export class AgentRegistry {
52
53
  const { name, agentNames } = params;
53
54
  const tx = new Transaction();
54
55
  tx.moveCall({
55
- target: `@silvana/agent::registry::remove_developer`,
56
+ target: `${silvanaRegistryPackage}::registry::remove_developer`,
56
57
  arguments: [
57
58
  tx.object(this.registry),
58
59
  tx.pure.string(name),
@@ -63,10 +64,10 @@ export class AgentRegistry {
63
64
  return tx;
64
65
  }
65
66
  createAgent(params) {
66
- const { developer, name, image, description, site, docker_image, docker_sha256, min_memory_gb, min_cpu_cores, supports_tee, chains, } = params;
67
+ const { developer, name, image, description, site, chains, } = params;
67
68
  const tx = new Transaction();
68
69
  tx.moveCall({
69
- target: `@silvana/agent::registry::add_agent`,
70
+ target: `${silvanaRegistryPackage}::registry::add_agent`,
70
71
  arguments: [
71
72
  tx.object(this.registry),
72
73
  tx.pure.string(developer),
@@ -74,11 +75,6 @@ export class AgentRegistry {
74
75
  tx.pure.option("string", image ?? null),
75
76
  tx.pure.option("string", description ?? null),
76
77
  tx.pure.option("string", site ?? null),
77
- tx.pure.string(docker_image),
78
- tx.pure.option("string", docker_sha256 ?? null),
79
- tx.pure.u16(min_memory_gb),
80
- tx.pure.u16(min_cpu_cores),
81
- tx.pure.bool(supports_tee),
82
78
  tx.pure.vector("string", chains),
83
79
  tx.object(SUI_CLOCK_OBJECT_ID),
84
80
  ],
@@ -86,10 +82,10 @@ export class AgentRegistry {
86
82
  return tx;
87
83
  }
88
84
  updateAgent(params) {
89
- const { developer, name, image, description, site, docker_image, docker_sha256, min_memory_gb, min_cpu_cores, supports_tee, chains, } = params;
85
+ const { developer, name, image, description, site, chains, } = params;
90
86
  const tx = new Transaction();
91
87
  tx.moveCall({
92
- target: `@silvana/agent::registry::update_agent`,
88
+ target: `${silvanaRegistryPackage}::registry::update_agent`,
93
89
  arguments: [
94
90
  tx.object(this.registry),
95
91
  tx.pure.string(developer),
@@ -97,11 +93,6 @@ export class AgentRegistry {
97
93
  tx.pure.option("string", image ?? null),
98
94
  tx.pure.option("string", description ?? null),
99
95
  tx.pure.option("string", site ?? null),
100
- tx.pure.string(docker_image),
101
- tx.pure.option("string", docker_sha256 ?? null),
102
- tx.pure.u16(min_memory_gb),
103
- tx.pure.u16(min_cpu_cores),
104
- tx.pure.bool(supports_tee),
105
96
  tx.pure.vector("string", chains),
106
97
  tx.object(SUI_CLOCK_OBJECT_ID),
107
98
  ],
@@ -112,7 +103,91 @@ export class AgentRegistry {
112
103
  const { developer, agent } = params;
113
104
  const tx = new Transaction();
114
105
  tx.moveCall({
115
- target: `@silvana/agent::registry::remove_agent`,
106
+ target: `${silvanaRegistryPackage}::registry::remove_agent`,
107
+ arguments: [
108
+ tx.object(this.registry),
109
+ tx.pure.string(developer),
110
+ tx.pure.string(agent),
111
+ tx.object(SUI_CLOCK_OBJECT_ID),
112
+ ],
113
+ });
114
+ return tx;
115
+ }
116
+ addAgentMethod(params) {
117
+ const { developer, agent, method, dockerImage, dockerSha256, minMemoryGb, minCpuCores, requiresTee, } = params;
118
+ const tx = new Transaction();
119
+ tx.moveCall({
120
+ target: `${silvanaRegistryPackage}::registry::add_method`,
121
+ arguments: [
122
+ tx.object(this.registry),
123
+ tx.pure.string(developer),
124
+ tx.pure.string(agent),
125
+ tx.pure.string(method),
126
+ tx.pure.string(dockerImage),
127
+ tx.pure.option("string", dockerSha256 ?? null),
128
+ tx.pure.u16(minMemoryGb),
129
+ tx.pure.u16(minCpuCores),
130
+ tx.pure.bool(requiresTee),
131
+ tx.object(SUI_CLOCK_OBJECT_ID),
132
+ ],
133
+ });
134
+ return tx;
135
+ }
136
+ updateAgentMethod(params) {
137
+ const { developer, agent, method, dockerImage, dockerSha256, minMemoryGb, minCpuCores, requiresTee, } = params;
138
+ const tx = new Transaction();
139
+ tx.moveCall({
140
+ target: `${silvanaRegistryPackage}::registry::update_method`,
141
+ arguments: [
142
+ tx.object(this.registry),
143
+ tx.pure.string(developer),
144
+ tx.pure.string(agent),
145
+ tx.pure.string(method),
146
+ tx.pure.string(dockerImage),
147
+ tx.pure.option("string", dockerSha256 ?? null),
148
+ tx.pure.u16(minMemoryGb),
149
+ tx.pure.u16(minCpuCores),
150
+ tx.pure.bool(requiresTee),
151
+ tx.object(SUI_CLOCK_OBJECT_ID),
152
+ ],
153
+ });
154
+ return tx;
155
+ }
156
+ removeAgentMethod(params) {
157
+ const { developer, agent, method } = params;
158
+ const tx = new Transaction();
159
+ tx.moveCall({
160
+ target: `${silvanaRegistryPackage}::registry::remove_method`,
161
+ arguments: [
162
+ tx.object(this.registry),
163
+ tx.pure.string(developer),
164
+ tx.pure.string(agent),
165
+ tx.pure.string(method),
166
+ tx.object(SUI_CLOCK_OBJECT_ID),
167
+ ],
168
+ });
169
+ return tx;
170
+ }
171
+ setDefaultMethod(params) {
172
+ const { developer, agent, method } = params;
173
+ const tx = new Transaction();
174
+ tx.moveCall({
175
+ target: `${silvanaRegistryPackage}::registry::set_default_method`,
176
+ arguments: [
177
+ tx.object(this.registry),
178
+ tx.pure.string(developer),
179
+ tx.pure.string(agent),
180
+ tx.pure.string(method),
181
+ tx.object(SUI_CLOCK_OBJECT_ID),
182
+ ],
183
+ });
184
+ return tx;
185
+ }
186
+ removeDefaultMethod(params) {
187
+ const { developer, agent } = params;
188
+ const tx = new Transaction();
189
+ tx.moveCall({
190
+ target: `${silvanaRegistryPackage}::registry::remove_default_method`,
116
191
  arguments: [
117
192
  tx.object(this.registry),
118
193
  tx.pure.string(developer),
@@ -207,28 +282,51 @@ export class AgentRegistry {
207
282
  if (!agentObject) {
208
283
  return undefined;
209
284
  }
285
+ // Parse methods from VecMap structure
286
+ const methods = {};
287
+ const methodsData = agentObject?.methods?.fields?.contents;
288
+ if (methodsData && Array.isArray(methodsData)) {
289
+ for (const entry of methodsData) {
290
+ const key = entry?.fields?.key;
291
+ const value = entry?.fields?.value;
292
+ if (key && value) {
293
+ methods[key] = {
294
+ dockerImage: value.docker_image,
295
+ dockerSha256: value.docker_sha256 ?? undefined,
296
+ minMemoryGb: Number(value.min_memory_gb),
297
+ minCpuCores: Number(value.min_cpu_cores),
298
+ requiresTee: Boolean(value.requires_tee),
299
+ };
300
+ }
301
+ }
302
+ }
303
+ // Parse default method if it exists
304
+ let defaultMethod;
305
+ const defaultMethodData = agentObject?.default_method;
306
+ if (defaultMethodData && typeof defaultMethodData === 'object' && !Array.isArray(defaultMethodData)) {
307
+ defaultMethod = {
308
+ dockerImage: defaultMethodData.docker_image,
309
+ dockerSha256: defaultMethodData.docker_sha256 ?? undefined,
310
+ minMemoryGb: Number(defaultMethodData.min_memory_gb),
311
+ minCpuCores: Number(defaultMethodData.min_cpu_cores),
312
+ requiresTee: Boolean(defaultMethodData.requires_tee),
313
+ };
314
+ }
210
315
  const agent = {
211
316
  id: agentObject?.id?.id,
212
317
  name: agentObject.name,
213
318
  image: agentObject?.image ?? undefined,
214
319
  description: agentObject?.description ?? undefined,
215
320
  site: agentObject?.site ?? undefined,
216
- dockerImage: agentObject.docker_image,
217
- dockerSha256: agentObject?.docker_sha256 ?? undefined,
218
- minMemoryGb: Number(agentObject.min_memory_gb),
219
- minCpuCores: Number(agentObject.min_cpu_cores),
220
- supportsTEE: Boolean(agentObject.supports_tee),
321
+ chains: agentObject?.chains ?? [],
322
+ methods,
323
+ defaultMethod,
221
324
  createdAt: Number(agentObject.created_at),
222
325
  updatedAt: Number(agentObject.updated_at),
223
326
  version: Number(agentObject.version),
224
327
  };
225
- if (!agent.id ||
226
- !agent.name ||
227
- !agent.dockerImage ||
228
- !agent.minMemoryGb ||
229
- !agent.minCpuCores ||
230
- !agent.createdAt ||
231
- !agent.updatedAt) {
328
+ // Only check for essential fields
329
+ if (!agent.id || !agent.name) {
232
330
  return undefined;
233
331
  }
234
332
  return agent;
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { Transaction } from "@mysten/sui/transactions";
2
+ import { Job } from "./job.js";
3
+ export interface AppMethod {
4
+ description?: string;
5
+ developer: string;
6
+ agent: string;
7
+ agentMethod: string;
8
+ }
9
+ export interface AppInstance {
10
+ id: string;
11
+ silvanaAppName: string;
12
+ description?: string;
13
+ metadata?: string;
14
+ methods: Record<string, AppMethod>;
15
+ admin: string;
16
+ sequence: number;
17
+ blockNumber: number;
18
+ previousBlockTimestamp: number;
19
+ previousBlockLastSequence: number;
20
+ lastProvedBlockNumber: number;
21
+ isPaused: boolean;
22
+ jobsId: string;
23
+ createdAt: number;
24
+ updatedAt: number;
25
+ }
26
+ export interface CreateAppJobParams {
27
+ appInstance: string;
28
+ description?: string;
29
+ method: string;
30
+ sequences?: number[];
31
+ data: Uint8Array;
32
+ }
33
+ export declare class AppInstanceManager {
34
+ private readonly registry;
35
+ constructor(params: {
36
+ registry: string;
37
+ });
38
+ createAppJob(params: CreateAppJobParams): Transaction;
39
+ startAppJob(params: {
40
+ appInstance: string;
41
+ jobId: number;
42
+ }): Transaction;
43
+ completeAppJob(params: {
44
+ appInstance: string;
45
+ jobId: number;
46
+ }): Transaction;
47
+ failAppJob(params: {
48
+ appInstance: string;
49
+ jobId: number;
50
+ error: string;
51
+ }): Transaction;
52
+ getAppInstance(appInstanceId: string): Promise<AppInstance | undefined>;
53
+ getAppJob(params: {
54
+ appInstance: string;
55
+ jobId: number;
56
+ }): Promise<Job | undefined>;
57
+ getAppPendingJobs(appInstance: string): Promise<number[]>;
58
+ }
@@ -0,0 +1,203 @@
1
+ import { Transaction } from "@mysten/sui/transactions";
2
+ import { SUI_CLOCK_OBJECT_ID } from "@mysten/sui/utils";
3
+ import { silvanaRegistryPackage } from "./package.js";
4
+ import { fetchSuiDynamicField, fetchSuiObject } from "./fetch.js";
5
+ export class AppInstanceManager {
6
+ constructor(params) {
7
+ this.registry = params.registry;
8
+ }
9
+ // Note: update_method and remove_method functions are not available in the Move module
10
+ // These would need to be implemented in app_instance.move if needed
11
+ createAppJob(params) {
12
+ const { appInstance, description, method, sequences, data } = params;
13
+ // Debug logging
14
+ console.log("createAppJob params:", {
15
+ appInstance,
16
+ description,
17
+ method,
18
+ sequences,
19
+ data: data instanceof Uint8Array ? `Uint8Array(${data.length})` : typeof data,
20
+ dataContent: data instanceof Uint8Array ? Array.from(data) : data,
21
+ });
22
+ const tx = new Transaction();
23
+ tx.moveCall({
24
+ target: `${silvanaRegistryPackage}::app_instance::create_app_job`,
25
+ arguments: [
26
+ tx.object(appInstance),
27
+ tx.pure.string(method),
28
+ tx.pure.option("string", description ?? null),
29
+ tx.pure.option("vector<u64>", sequences ?? null),
30
+ tx.pure.vector("u8", data),
31
+ tx.object(SUI_CLOCK_OBJECT_ID),
32
+ ],
33
+ });
34
+ return tx;
35
+ }
36
+ startAppJob(params) {
37
+ const { appInstance, jobId } = params;
38
+ const tx = new Transaction();
39
+ tx.moveCall({
40
+ target: `${silvanaRegistryPackage}::app_instance::start_app_job`,
41
+ arguments: [
42
+ tx.object(appInstance),
43
+ tx.pure.u64(jobId),
44
+ tx.object(SUI_CLOCK_OBJECT_ID),
45
+ ],
46
+ });
47
+ return tx;
48
+ }
49
+ completeAppJob(params) {
50
+ const { appInstance, jobId } = params;
51
+ const tx = new Transaction();
52
+ tx.moveCall({
53
+ target: `${silvanaRegistryPackage}::app_instance::complete_app_job`,
54
+ arguments: [
55
+ tx.object(appInstance),
56
+ tx.pure.u64(jobId),
57
+ tx.object(SUI_CLOCK_OBJECT_ID),
58
+ ],
59
+ });
60
+ return tx;
61
+ }
62
+ failAppJob(params) {
63
+ const { appInstance, jobId, error } = params;
64
+ const tx = new Transaction();
65
+ tx.moveCall({
66
+ target: `${silvanaRegistryPackage}::app_instance::fail_app_job`,
67
+ arguments: [
68
+ tx.object(appInstance),
69
+ tx.pure.u64(jobId),
70
+ tx.pure.string(error),
71
+ tx.object(SUI_CLOCK_OBJECT_ID),
72
+ ],
73
+ });
74
+ return tx;
75
+ }
76
+ async getAppInstance(appInstanceId) {
77
+ try {
78
+ const appInstance = await fetchSuiObject(appInstanceId);
79
+ if (!appInstance)
80
+ return undefined;
81
+ const fields = appInstance?.data?.content?.fields;
82
+ if (!fields)
83
+ return undefined;
84
+ // Parse methods from VecMap
85
+ const methods = {};
86
+ const methodsArray = fields?.methods?.fields?.contents;
87
+ if (Array.isArray(methodsArray)) {
88
+ for (const entry of methodsArray) {
89
+ const key = entry?.fields?.key;
90
+ const value = entry?.fields?.value;
91
+ if (key && value) {
92
+ // Value might have a fields property too
93
+ const methodFields = value.fields || value;
94
+ methods[key] = {
95
+ description: methodFields.description ?? undefined,
96
+ developer: methodFields.developer,
97
+ agent: methodFields.agent,
98
+ agentMethod: methodFields.agent_method || methodFields.agentMethod,
99
+ };
100
+ }
101
+ }
102
+ }
103
+ return {
104
+ id: fields?.id?.id,
105
+ silvanaAppName: fields.silvana_app_name,
106
+ description: fields?.description ?? undefined,
107
+ metadata: fields?.metadata ?? undefined,
108
+ methods,
109
+ admin: fields.admin,
110
+ sequence: Number(fields.sequence),
111
+ blockNumber: Number(fields.block_number),
112
+ previousBlockTimestamp: Number(fields.previous_block_timestamp),
113
+ previousBlockLastSequence: Number(fields.previous_block_last_sequence),
114
+ lastProvedBlockNumber: Number(fields.last_proved_block_number),
115
+ isPaused: Boolean(fields.isPaused),
116
+ jobsId: String(fields.jobs?.fields?.id?.id ?? ""),
117
+ createdAt: Number(fields.created_at),
118
+ updatedAt: Number(fields.updated_at),
119
+ };
120
+ }
121
+ catch (error) {
122
+ console.error("Error fetching app instance:", error);
123
+ return undefined;
124
+ }
125
+ }
126
+ async getAppJob(params) {
127
+ try {
128
+ const appInstanceObj = await fetchSuiObject(params.appInstance);
129
+ if (!appInstanceObj)
130
+ return undefined;
131
+ // Jobs are embedded in the AppInstance - use correct path
132
+ const jobsTableId = appInstanceObj?.data?.content?.fields?.jobs?.fields?.jobs?.fields?.id?.id;
133
+ if (!jobsTableId)
134
+ return undefined;
135
+ const job = await fetchSuiDynamicField({
136
+ parentID: jobsTableId,
137
+ fieldName: "jobs",
138
+ type: "u64",
139
+ key: String(params.jobId),
140
+ });
141
+ if (!job)
142
+ return undefined;
143
+ const parseStatus = (status) => {
144
+ // Check variant field format (used by Sui dynamic fields)
145
+ if (status?.variant === "Pending")
146
+ return { type: "Pending" };
147
+ if (status?.variant === "Running")
148
+ return { type: "Running" };
149
+ if (status?.variant === "Failed") {
150
+ // Get error from fields or from direct property
151
+ const error = status?.fields?.error || status?.fields?.[0] || "Unknown error";
152
+ return { type: "Failed", error };
153
+ }
154
+ // Legacy formats
155
+ if (status?.Pending !== undefined)
156
+ return { type: "Pending" };
157
+ if (status?.Running !== undefined)
158
+ return { type: "Running" };
159
+ if (status?.Failed !== undefined)
160
+ return { type: "Failed", error: status.Failed };
161
+ return { type: "Pending" };
162
+ };
163
+ return {
164
+ id: job?.id?.id,
165
+ jobId: Number(job.job_id),
166
+ description: job?.description ?? undefined,
167
+ developer: job.developer,
168
+ agent: job.agent,
169
+ agentMethod: job.agent_method,
170
+ app: job.app,
171
+ appInstance: job.app_instance,
172
+ appInstanceMethod: job.app_instance_method,
173
+ sequences: job?.sequences?.map((s) => Number(s)) ?? undefined,
174
+ data: new Uint8Array(job.data),
175
+ status: parseStatus(job.status),
176
+ attempts: Number(job.attempts),
177
+ createdAt: Number(job.created_at),
178
+ updatedAt: Number(job.updated_at),
179
+ };
180
+ }
181
+ catch (error) {
182
+ console.error("Error fetching app job:", error);
183
+ return undefined;
184
+ }
185
+ }
186
+ async getAppPendingJobs(appInstance) {
187
+ try {
188
+ const appInstanceObj = await fetchSuiObject(appInstance);
189
+ if (!appInstanceObj)
190
+ return [];
191
+ // Jobs are embedded in the AppInstance - use correct path
192
+ const pendingJobs = appInstanceObj?.data?.content?.fields?.jobs?.fields?.pending_jobs?.fields?.contents;
193
+ if (!Array.isArray(pendingJobs))
194
+ return [];
195
+ return pendingJobs.map((id) => Number(id));
196
+ }
197
+ catch (error) {
198
+ console.error("Error fetching app pending jobs:", error);
199
+ return [];
200
+ }
201
+ }
202
+ }
203
+ //# sourceMappingURL=app_instance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app_instance.js","sourceRoot":"","sources":["../../src/app_instance.ts"],"names":[],"mappings":"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"}