@conquest-eth/tools 0.0.0 → 0.0.2

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 (178) hide show
  1. package/README.md +20 -51
  2. package/dist/cli-tool-generator.d.ts +2 -1
  3. package/dist/cli-tool-generator.d.ts.map +1 -1
  4. package/dist/cli.js +61 -32
  5. package/dist/cli.js.map +1 -1
  6. package/dist/contracts/space-info.d.ts.map +1 -1
  7. package/dist/contracts/space-info.js +22 -1
  8. package/dist/contracts/space-info.js.map +1 -1
  9. package/dist/fleet/resolve.d.ts +1 -1
  10. package/dist/fleet/resolve.d.ts.map +1 -1
  11. package/dist/fleet/resolve.js +5 -4
  12. package/dist/fleet/resolve.js.map +1 -1
  13. package/dist/fleet/send.d.ts.map +1 -1
  14. package/dist/fleet/send.js +8 -8
  15. package/dist/fleet/send.js.map +1 -1
  16. package/dist/index.d.ts +6 -32
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +21 -128
  19. package/dist/index.js.map +1 -1
  20. package/dist/mcp.d.ts +14 -0
  21. package/dist/mcp.d.ts.map +1 -0
  22. package/dist/mcp.js +29 -0
  23. package/dist/mcp.js.map +1 -0
  24. package/dist/planet/acquire.d.ts +3 -2
  25. package/dist/planet/acquire.d.ts.map +1 -1
  26. package/dist/planet/acquire.js +6 -4
  27. package/dist/planet/acquire.js.map +1 -1
  28. package/dist/planet/exit.d.ts.map +1 -1
  29. package/dist/planet/exit.js +1 -0
  30. package/dist/planet/exit.js.map +1 -1
  31. package/dist/planet/manager.d.ts +63 -0
  32. package/dist/planet/manager.d.ts.map +1 -1
  33. package/dist/planet/manager.js +125 -2
  34. package/dist/planet/manager.js.map +1 -1
  35. package/dist/planet/withdraw.d.ts +17 -0
  36. package/dist/planet/withdraw.d.ts.map +1 -0
  37. package/dist/planet/withdraw.js +25 -0
  38. package/dist/planet/withdraw.js.map +1 -0
  39. package/dist/storage/interface.d.ts +6 -0
  40. package/dist/storage/interface.d.ts.map +1 -1
  41. package/dist/storage/json-storage.d.ts +1 -0
  42. package/dist/storage/json-storage.d.ts.map +1 -1
  43. package/dist/storage/json-storage.js +10 -1
  44. package/dist/storage/json-storage.js.map +1 -1
  45. package/dist/tool-handling/cli-tool-generator.d.ts +22 -0
  46. package/dist/tool-handling/cli-tool-generator.d.ts.map +1 -0
  47. package/dist/tool-handling/cli-tool-generator.js +345 -0
  48. package/dist/tool-handling/cli-tool-generator.js.map +1 -0
  49. package/dist/tool-handling/cli.d.ts +19 -0
  50. package/dist/tool-handling/cli.d.ts.map +1 -0
  51. package/dist/tool-handling/cli.js +472 -0
  52. package/dist/tool-handling/cli.js.map +1 -0
  53. package/dist/tool-handling/index.d.ts +15 -0
  54. package/dist/tool-handling/index.d.ts.map +1 -0
  55. package/dist/tool-handling/index.js +32 -0
  56. package/dist/tool-handling/index.js.map +1 -0
  57. package/dist/tool-handling/mcp.d.ts +22 -0
  58. package/dist/tool-handling/mcp.d.ts.map +1 -0
  59. package/dist/tool-handling/mcp.js +88 -0
  60. package/dist/tool-handling/mcp.js.map +1 -0
  61. package/dist/tool-handling/types.d.ts +72 -0
  62. package/dist/tool-handling/types.d.ts.map +1 -0
  63. package/dist/tool-handling/types.js +10 -0
  64. package/dist/tool-handling/types.js.map +1 -0
  65. package/dist/tools/acquire_planets.d.ts +7 -5
  66. package/dist/tools/acquire_planets.d.ts.map +1 -1
  67. package/dist/tools/acquire_planets.js +28 -42
  68. package/dist/tools/acquire_planets.js.map +1 -1
  69. package/dist/tools/exit_planets.d.ts +7 -3
  70. package/dist/tools/exit_planets.d.ts.map +1 -1
  71. package/dist/tools/exit_planets.js +20 -9
  72. package/dist/tools/exit_planets.js.map +1 -1
  73. package/dist/tools/get_my_planets.d.ts +3 -2
  74. package/dist/tools/get_my_planets.d.ts.map +1 -1
  75. package/dist/tools/get_my_planets.js +5 -4
  76. package/dist/tools/get_my_planets.js.map +1 -1
  77. package/dist/tools/get_native_token_balance.d.ts +6 -0
  78. package/dist/tools/get_native_token_balance.d.ts.map +1 -0
  79. package/dist/tools/get_native_token_balance.js +64 -0
  80. package/dist/tools/get_native_token_balance.js.map +1 -0
  81. package/dist/tools/get_pending_exits.d.ts +2 -1
  82. package/dist/tools/get_pending_exits.d.ts.map +1 -1
  83. package/dist/tools/get_pending_exits.js +5 -4
  84. package/dist/tools/get_pending_exits.js.map +1 -1
  85. package/dist/tools/get_pending_fleets.d.ts +2 -1
  86. package/dist/tools/get_pending_fleets.d.ts.map +1 -1
  87. package/dist/tools/get_pending_fleets.js +5 -4
  88. package/dist/tools/get_pending_fleets.js.map +1 -1
  89. package/dist/tools/get_planets_around.d.ts +8 -4
  90. package/dist/tools/get_planets_around.d.ts.map +1 -1
  91. package/dist/tools/get_planets_around.js +40 -15
  92. package/dist/tools/get_planets_around.js.map +1 -1
  93. package/dist/tools/get_play_token_balance.d.ts +6 -0
  94. package/dist/tools/get_play_token_balance.d.ts.map +1 -0
  95. package/dist/tools/get_play_token_balance.js +80 -0
  96. package/dist/tools/get_play_token_balance.js.map +1 -0
  97. package/dist/tools/index.d.ts +7 -1
  98. package/dist/tools/index.d.ts.map +1 -1
  99. package/dist/tools/index.js +7 -1
  100. package/dist/tools/index.js.map +1 -1
  101. package/dist/tools/missiv_get_user.d.ts +6 -0
  102. package/dist/tools/missiv_get_user.d.ts.map +1 -0
  103. package/dist/tools/missiv_get_user.js +50 -0
  104. package/dist/tools/missiv_get_user.js.map +1 -0
  105. package/dist/tools/missiv_register.d.ts +6 -0
  106. package/dist/tools/missiv_register.d.ts.map +1 -0
  107. package/dist/tools/missiv_register.js +103 -0
  108. package/dist/tools/missiv_register.js.map +1 -0
  109. package/dist/tools/resolve_fleet.d.ts +3 -2
  110. package/dist/tools/resolve_fleet.d.ts.map +1 -1
  111. package/dist/tools/resolve_fleet.js +5 -4
  112. package/dist/tools/resolve_fleet.js.map +1 -1
  113. package/dist/tools/send_fleet.d.ts +3 -2
  114. package/dist/tools/send_fleet.d.ts.map +1 -1
  115. package/dist/tools/send_fleet.js +16 -15
  116. package/dist/tools/send_fleet.js.map +1 -1
  117. package/dist/tools/simulate.d.ts +14 -0
  118. package/dist/tools/simulate.d.ts.map +1 -0
  119. package/dist/tools/simulate.js +123 -0
  120. package/dist/tools/simulate.js.map +1 -0
  121. package/dist/tools/simulate_multiple.d.ts +17 -0
  122. package/dist/tools/simulate_multiple.d.ts.map +1 -0
  123. package/dist/tools/simulate_multiple.js +166 -0
  124. package/dist/tools/simulate_multiple.js.map +1 -0
  125. package/dist/tools/verify_exit_status.d.ts +5 -3
  126. package/dist/tools/verify_exit_status.d.ts.map +1 -1
  127. package/dist/tools/verify_exit_status.js +12 -8
  128. package/dist/tools/verify_exit_status.js.map +1 -1
  129. package/dist/tools/withdraw.d.ts +9 -0
  130. package/dist/tools/withdraw.d.ts.map +1 -0
  131. package/dist/tools/withdraw.js +86 -0
  132. package/dist/tools/withdraw.js.map +1 -0
  133. package/dist/types.d.ts +31 -28
  134. package/dist/types.d.ts.map +1 -1
  135. package/dist/types.js +1 -33
  136. package/dist/types.js.map +1 -1
  137. package/dist/util/time.d.ts +0 -30
  138. package/dist/util/time.d.ts.map +1 -1
  139. package/dist/util/time.js +0 -36
  140. package/dist/util/time.js.map +1 -1
  141. package/package.json +80 -77
  142. package/src/cli.ts +88 -59
  143. package/src/contracts/space-info.ts +24 -1
  144. package/src/fleet/resolve.ts +5 -4
  145. package/src/fleet/send.ts +9 -8
  146. package/src/index.ts +28 -162
  147. package/src/mcp.ts +46 -0
  148. package/src/planet/acquire.ts +6 -6
  149. package/src/planet/exit.ts +1 -0
  150. package/src/planet/manager.ts +163 -0
  151. package/src/planet/withdraw.ts +33 -0
  152. package/src/storage/interface.ts +7 -0
  153. package/src/storage/json-storage.ts +11 -1
  154. package/src/tool-handling/cli.ts +559 -0
  155. package/src/tool-handling/index.ts +45 -0
  156. package/src/tool-handling/mcp.ts +127 -0
  157. package/src/tool-handling/types.ts +86 -0
  158. package/src/tools/acquire_planets.ts +34 -60
  159. package/src/tools/exit_planets.ts +25 -12
  160. package/src/tools/get_native_token_balance.ts +72 -0
  161. package/src/tools/get_pending_exits.ts +8 -5
  162. package/src/tools/get_pending_fleets.ts +8 -5
  163. package/src/tools/get_planets_around.ts +45 -16
  164. package/src/tools/get_play_token_balance.ts +90 -0
  165. package/src/tools/index.ts +7 -1
  166. package/src/tools/missiv_get_user.ts +68 -0
  167. package/src/tools/missiv_register.ts +122 -0
  168. package/src/tools/resolve_fleet.ts +8 -5
  169. package/src/tools/send_fleet.ts +21 -18
  170. package/src/tools/simulate.ts +141 -0
  171. package/src/tools/simulate_multiple.ts +197 -0
  172. package/src/tools/verify_exit_status.ts +15 -11
  173. package/src/tools/withdraw.ts +100 -0
  174. package/src/types.ts +33 -71
  175. package/src/util/time.ts +0 -46
  176. package/src/cli-tool-generator.ts +0 -287
  177. package/src/helpers/index.ts +0 -59
  178. package/src/tools/get_my_planets.ts +0 -30
@@ -0,0 +1,166 @@
1
+ import { z } from 'zod';
2
+ import { createTool } from '../tool-handling/types.js';
3
+ const coordinatesSchema = z.object({
4
+ x: z.number().describe('X coordinate'),
5
+ y: z.number().describe('Y coordinate'),
6
+ });
7
+ // Schema for multiple fleets simulation
8
+ const schema = z.object({
9
+ fleets: z
10
+ .array(z.object({
11
+ from: coordinatesSchema.describe('Source planet coordinates {x, y}'),
12
+ quantity: z.number().positive().describe('Number of spaceships to send'),
13
+ }))
14
+ .min(1)
15
+ .describe('Array of fleets to send to the target'),
16
+ to: coordinatesSchema.describe('Target planet coordinates {x, y}'),
17
+ arrivalTime: z
18
+ .number()
19
+ .optional()
20
+ .describe('Specific arrival time in seconds. If not provided, uses the maximum travel time from all fleets.'),
21
+ });
22
+ export const simulate_multiple = createTool({
23
+ description: 'Simulate the outcome of multiple fleets attacking the same target planet. Fleets are processed sequentially, with the planet state updated after each combat. Returns individual fleet outcomes and the final combined result.',
24
+ schema,
25
+ execute: async (env, { fleets, to, arrivalTime }) => {
26
+ try {
27
+ // Get planet info for target
28
+ const toPlanetId = env.planetManager.getPlanetIdByCoordinates(to.x, to.y);
29
+ if (!toPlanetId) {
30
+ return {
31
+ success: false,
32
+ error: `No planet found at target coordinates (${to.x}, ${to.y})`,
33
+ };
34
+ }
35
+ const toPlanet = env.planetManager.getPlanetInfo(toPlanetId);
36
+ if (!toPlanet) {
37
+ return {
38
+ success: false,
39
+ error: `Could not get planet info for target planet at (${to.x}, ${to.y})`,
40
+ };
41
+ }
42
+ // Fetch current state of target planet
43
+ const planetsWithState = await env.planetManager.getPlanetsAround(to.x, to.y, 0);
44
+ if (planetsWithState.length === 0) {
45
+ return {
46
+ success: false,
47
+ error: `Could not fetch state for target planet at (${to.x}, ${to.y})`,
48
+ };
49
+ }
50
+ const toPlanetState = planetsWithState[0].state;
51
+ // Build fleet inputs with planet info
52
+ const fleetInputs = [];
53
+ const fleetDetails = [];
54
+ for (const fleet of fleets) {
55
+ // Get planet info for source
56
+ const fromPlanetId = env.planetManager.getPlanetIdByCoordinates(fleet.from.x, fleet.from.y);
57
+ if (!fromPlanetId) {
58
+ return {
59
+ success: false,
60
+ error: `No planet found at source coordinates (${fleet.from.x}, ${fleet.from.y})`,
61
+ };
62
+ }
63
+ const fromPlanet = env.planetManager.getPlanetInfo(fromPlanetId);
64
+ if (!fromPlanet) {
65
+ return {
66
+ success: false,
67
+ error: `Could not get planet info for source planet at (${fleet.from.x}, ${fleet.from.y})`,
68
+ };
69
+ }
70
+ const travelTime = env.spaceInfo.timeToArrive(fromPlanet, toPlanet);
71
+ const distance = env.spaceInfo.distance(fromPlanet, toPlanet);
72
+ fleetInputs.push({
73
+ fromPlanet,
74
+ fleetAmount: fleet.quantity,
75
+ // We pass undefined for player-related params since we're doing a simple simulation
76
+ senderPlayer: undefined,
77
+ fromPlayer: undefined,
78
+ gift: false,
79
+ specific: undefined,
80
+ extra: undefined,
81
+ });
82
+ fleetDetails.push({
83
+ from: { x: fleet.from.x, y: fleet.from.y },
84
+ quantity: fleet.quantity,
85
+ travelTime,
86
+ distance,
87
+ attack: fromPlanet.stats.attack,
88
+ speed: fromPlanet.stats.speed,
89
+ });
90
+ }
91
+ // Use outcomeMultipleFleets() to simulate the combined attack
92
+ const multipleOutcome = env.spaceInfo.outcomeMultipleFleets(fleetInputs, toPlanet, toPlanetState, arrivalTime, undefined);
93
+ // Format the fleet outcomes
94
+ const formattedFleetOutcomes = multipleOutcome.fleets.map((fleetOutcome, index) => ({
95
+ from: fleetDetails[index].from,
96
+ quantity: fleetDetails[index].quantity,
97
+ travelTime: fleetDetails[index].travelTime,
98
+ distance: fleetDetails[index].distance,
99
+ sourcePlanet: {
100
+ attack: fleetDetails[index].attack,
101
+ speed: fleetDetails[index].speed,
102
+ },
103
+ outcome: {
104
+ min: {
105
+ captured: fleetOutcome.outcome.min.captured,
106
+ numSpaceshipsLeft: fleetOutcome.outcome.min.numSpaceshipsLeft,
107
+ },
108
+ max: {
109
+ captured: fleetOutcome.outcome.max.captured,
110
+ numSpaceshipsLeft: fleetOutcome.outcome.max.numSpaceshipsLeft,
111
+ },
112
+ timeUntilFails: fleetOutcome.outcome.timeUntilFails,
113
+ nativeResist: fleetOutcome.outcome.nativeResist,
114
+ gift: fleetOutcome.outcome.gift,
115
+ allies: fleetOutcome.outcome.allies,
116
+ combat: fleetOutcome.outcome.combat
117
+ ? {
118
+ defenderLoss: fleetOutcome.outcome.combat.defenderLoss,
119
+ attackerLoss: fleetOutcome.outcome.combat.attackerLoss,
120
+ }
121
+ : undefined,
122
+ tax: fleetOutcome.outcome.tax
123
+ ? {
124
+ taxRate: fleetOutcome.outcome.tax.taxRate,
125
+ loss: fleetOutcome.outcome.tax.loss,
126
+ }
127
+ : undefined,
128
+ },
129
+ }));
130
+ return {
131
+ success: true,
132
+ result: {
133
+ to: { x: to.x, y: to.y },
134
+ arrivalTime: multipleOutcome.arrivalTime,
135
+ fleets: formattedFleetOutcomes,
136
+ finalOutcome: {
137
+ min: {
138
+ captured: multipleOutcome.finalOutcome.min.captured,
139
+ numSpaceshipsLeft: multipleOutcome.finalOutcome.min.numSpaceshipsLeft,
140
+ owner: multipleOutcome.finalOutcome.min.owner ?? null,
141
+ },
142
+ max: {
143
+ captured: multipleOutcome.finalOutcome.max.captured,
144
+ numSpaceshipsLeft: multipleOutcome.finalOutcome.max.numSpaceshipsLeft,
145
+ owner: multipleOutcome.finalOutcome.max.owner ?? null,
146
+ },
147
+ },
148
+ targetPlanet: {
149
+ owner: toPlanetState.owner ?? null,
150
+ numSpaceships: toPlanetState.numSpaceships,
151
+ natives: toPlanetState.natives,
152
+ active: toPlanetState.active,
153
+ exiting: toPlanetState.exiting,
154
+ },
155
+ },
156
+ };
157
+ }
158
+ catch (error) {
159
+ return {
160
+ success: false,
161
+ error: error instanceof Error ? error.message : String(error),
162
+ };
163
+ }
164
+ },
165
+ });
166
+ //# sourceMappingURL=simulate_multiple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulate_multiple.js","sourceRoot":"","sources":["../../src/tools/simulate_multiple.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import { z } from 'zod';
2
- export declare const verify_exit_status: import("../types.js").Tool<z.ZodObject<{
3
- planetId: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
4
- }, z.core.$strip>>;
2
+ import type { ConquestEnv } from '../types.js';
3
+ export declare const verify_exit_status: import("../tool-handling/types.js").Tool<z.ZodObject<{
4
+ x: z.ZodNumber;
5
+ y: z.ZodNumber;
6
+ }, z.core.$strip>, ConquestEnv>;
5
7
  //# sourceMappingURL=verify_exit_status.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verify_exit_status.d.ts","sourceRoot":"","sources":["../../src/tools/verify_exit_status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,kBAAkB;;kBAuC7B,CAAC"}
1
+ {"version":3,"file":"verify_exit_status.d.ts","sourceRoot":"","sources":["../../src/tools/verify_exit_status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAO7C,eAAO,MAAM,kBAAkB;;;+BAqC7B,CAAC"}
@@ -1,15 +1,19 @@
1
1
  import { z } from 'zod';
2
- import { createTool } from '../types.js';
2
+ import { createTool } from '../tool-handling/types.js';
3
+ const schema = z.object({
4
+ x: z.number().describe('X coordinate of the planet'),
5
+ y: z.number().describe('Y coordinate of the planet'),
6
+ });
3
7
  export const verify_exit_status = createTool({
4
8
  description: "Check and update the status of a planet's exit operation. Verifies if the exit has completed or been interrupted.",
5
- schema: z.object({
6
- planetId: z
7
- .union([z.string(), z.number()])
8
- .describe('Planet location ID to verify (as hex string or number)'),
9
- }),
10
- execute: async (env, { planetId }) => {
9
+ schema,
10
+ execute: async (env, { x, y }) => {
11
11
  try {
12
- const result = await env.planetManager.verifyExitStatus(typeof planetId === 'string' ? BigInt(planetId) : BigInt(planetId));
12
+ const planetId = env.planetManager.getPlanetIdByCoordinates(x, y);
13
+ if (planetId === undefined) {
14
+ throw new Error(`No planet found at coordinates (${x}, ${y})`);
15
+ }
16
+ const result = await env.planetManager.verifyExitStatus(planetId);
13
17
  // Calculate status based on exit state
14
18
  const currentTime = Math.floor(Date.now() / 1000);
15
19
  const completed = currentTime >= result.exit.exitCompleteTime;
@@ -1 +1 @@
1
- {"version":3,"file":"verify_exit_status.js","sourceRoot":"","sources":["../../src/tools/verify_exit_status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAEvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;IAC5C,WAAW,EACV,mHAAmH;IACpH,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,QAAQ,EAAE,CAAC;aACT,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;aAC/B,QAAQ,CAAC,wDAAwD,CAAC;KACpE,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAC,QAAQ,EAAC,EAAE,EAAE;QAClC,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,gBAAgB,CACtD,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAClE,CAAC;YAEF,uCAAuC;YACvC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;YAC5F,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YAEpD,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE;oBACP,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;oBAC9B,MAAM;oBACN,SAAS;oBACT,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,KAAK;oBACL,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa;oBACxC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB;iBAC9C;aACD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC7D,CAAC;QACH,CAAC;IACF,CAAC;CACD,CAAC,CAAC"}
1
+ {"version":3,"file":"verify_exit_status.js","sourceRoot":"","sources":["../../src/tools/verify_exit_status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAGrD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACvB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACpD,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;CACpD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAA6B;IACxE,WAAW,EACV,mHAAmH;IACpH,MAAM;IACN,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC,EAAE,EAAE;QAC9B,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAChE,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAElE,uCAAuC;YACvC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;YAC5F,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YAEpD,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE;oBACP,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;oBAC9B,MAAM;oBACN,SAAS;oBACT,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,KAAK;oBACL,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa;oBACxC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB;iBAC9C;aACD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC7D,CAAC;QACH,CAAC;IACF,CAAC;CACD,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ import type { ConquestEnv } from '../types.js';
3
+ export declare const withdraw: import("../tool-handling/types.js").Tool<z.ZodObject<{
4
+ coordinates: z.ZodOptional<z.ZodArray<z.ZodObject<{
5
+ x: z.ZodNumber;
6
+ y: z.ZodNumber;
7
+ }, z.core.$strip>>>;
8
+ }, z.core.$strip>, ConquestEnv>;
9
+ //# sourceMappingURL=withdraw.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withdraw.d.ts","sourceRoot":"","sources":["../../src/tools/withdraw.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAgB7C,eAAO,MAAM,QAAQ;;;;;+BAiFnB,CAAC"}
@@ -0,0 +1,86 @@
1
+ import { z } from 'zod';
2
+ import { createTool } from '../tool-handling/types.js';
3
+ const schema = z.object({
4
+ coordinates: z
5
+ .array(z.object({
6
+ x: z.number().describe('X coordinate of the planet'),
7
+ y: z.number().describe('Y coordinate of the planet'),
8
+ }))
9
+ .optional()
10
+ .describe('Optional array of planet coordinates to withdraw tokens from. If not provided, automatically withdraws from all planets that have completed exits and are ready for withdrawal.'),
11
+ });
12
+ export const withdraw = createTool({
13
+ description: 'Withdraw staked tokens from planets that have completed their exit process. If coordinates are provided, withdraws from those specific planets. If no coordinates are provided, automatically finds and withdraws from all planets with completed exits that have not been withdrawn yet.',
14
+ schema,
15
+ execute: async (env, { coordinates }) => {
16
+ try {
17
+ // If coordinates are provided, withdraw from specific planets
18
+ if (coordinates && coordinates.length > 0) {
19
+ // Convert x,y coordinates to planet IDs
20
+ const planetIdsBigInt = [];
21
+ for (const coord of coordinates) {
22
+ const planetId = env.planetManager.getPlanetIdByCoordinates(coord.x, coord.y);
23
+ if (planetId === undefined) {
24
+ throw new Error(`No planet found at coordinates (${coord.x}, ${coord.y})`);
25
+ }
26
+ planetIdsBigInt.push(planetId);
27
+ }
28
+ // Call withdraw method
29
+ const result = await env.planetManager.withdraw(planetIdsBigInt);
30
+ return {
31
+ success: true,
32
+ result: {
33
+ transactionHash: result.hash,
34
+ coordinates: coordinates,
35
+ planetsWithdrawn: result.planetsWithdrawn.map((id) => id.toString()),
36
+ },
37
+ };
38
+ }
39
+ // No coordinates provided - automatically find and withdraw all ready exits
40
+ const withdrawableExits = await env.planetManager.getWithdrawableExits();
41
+ if (withdrawableExits.length === 0) {
42
+ return {
43
+ success: true,
44
+ result: {
45
+ message: 'No planets with completed exits ready for withdrawal',
46
+ planetsWithdrawn: [],
47
+ },
48
+ };
49
+ }
50
+ // Get coordinates for the withdrawable planets (for return value)
51
+ const withdrawableCoordinates = withdrawableExits
52
+ .map((exit) => {
53
+ const planet = env.planetManager.getPlanetInfo(exit.planetId);
54
+ return planet ? { x: planet.location.x, y: planet.location.y } : null;
55
+ })
56
+ .filter((c) => c !== null);
57
+ // Withdraw all
58
+ const result = await env.planetManager.withdrawAll();
59
+ if (!result) {
60
+ return {
61
+ success: true,
62
+ result: {
63
+ message: 'No planets with completed exits ready for withdrawal',
64
+ planetsWithdrawn: [],
65
+ },
66
+ };
67
+ }
68
+ return {
69
+ success: true,
70
+ result: {
71
+ transactionHash: result.hash,
72
+ coordinates: withdrawableCoordinates,
73
+ planetsWithdrawn: result.planetsWithdrawn.map((id) => id.toString()),
74
+ message: `Successfully withdrew tokens from ${result.planetsWithdrawn.length} planet(s)`,
75
+ },
76
+ };
77
+ }
78
+ catch (error) {
79
+ return {
80
+ success: false,
81
+ error: error instanceof Error ? error.message : String(error),
82
+ };
83
+ }
84
+ },
85
+ });
86
+ //# sourceMappingURL=withdraw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withdraw.js","sourceRoot":"","sources":["../../src/tools/withdraw.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,10 +1,33 @@
1
1
  import type { Address, PublicClient, WalletClient } from 'viem';
2
- import type { PlanetInfo } from 'conquest-eth-v0-contracts';
2
+ import type { PlanetInfo, SpaceInfo } from 'conquest-eth-v0-contracts';
3
3
  import type { Abi_IOuterSpace } from 'conquest-eth-v0-contracts/abis/IOuterSpace.js';
4
- import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
5
- import { z } from 'zod';
6
4
  import type { FleetManager } from './fleet/manager.js';
7
5
  import type { PlanetManager } from './planet/manager.js';
6
+ /**
7
+ * Configuration options for creating the ConquestEnv
8
+ */
9
+ export interface EnvFactoryOptions {
10
+ /** RPC URL for the Ethereum network */
11
+ rpcUrl: string;
12
+ /** Contract address of the game */
13
+ gameContract: `0x${string}`;
14
+ /** Optional private key for sending transactions */
15
+ privateKey?: `0x${string}`;
16
+ /** Path to storage directory (default: './data') */
17
+ storagePath?: string;
18
+ }
19
+ /**
20
+ * Environment type for Conquest tools
21
+ * Contains the managers needed for tool execution
22
+ */
23
+ export interface ConquestEnv {
24
+ fleetManager: FleetManager;
25
+ planetManager: PlanetManager;
26
+ spaceInfo: SpaceInfo;
27
+ contractConfig: ContractConfig;
28
+ clients: ClientsWithOptionalWallet;
29
+ options: EnvFactoryOptions;
30
+ }
8
31
  export interface StorageConfig {
9
32
  type: 'json' | 'sqlite';
10
33
  dataDir?: string;
@@ -27,7 +50,9 @@ export interface ContractConfig {
27
50
  timePerDistance: bigint;
28
51
  exitDuration: bigint;
29
52
  acquireNumSpaceships: number;
30
- [key: string]: bigint | number;
53
+ stakingToken: `0x${string}`;
54
+ numTokensPerNativeToken: bigint;
55
+ [key: string]: bigint | number | `0x${string}`;
31
56
  }
32
57
  export interface ExternalPlanet {
33
58
  owner?: `0x${string}`;
@@ -59,6 +84,8 @@ export interface PendingExit {
59
84
  completed: boolean;
60
85
  interrupted: boolean;
61
86
  lastCheckedAt: number;
87
+ withdrawn: boolean;
88
+ withdrawnAt?: number;
62
89
  }
63
90
  export interface PlanetWithDistance {
64
91
  info: PlanetInfo;
@@ -99,28 +126,4 @@ export interface FleetResolution {
99
126
  fleetSender: `0x${string}`;
100
127
  operator: `0x${string}`;
101
128
  }
102
- export type ToolEnvironment = {
103
- sendStatus: (message: string) => Promise<void>;
104
- fleetManager: FleetManager;
105
- planetManager: PlanetManager;
106
- };
107
- export type ToolResult = {
108
- success: true;
109
- result: Record<string, any>;
110
- } | {
111
- success: false;
112
- error: string;
113
- stack?: string;
114
- };
115
- export type Tool<S extends z.ZodObject<any> = z.ZodObject<any>> = {
116
- description: string;
117
- schema: S;
118
- execute: (env: ToolEnvironment, params: z.infer<S>) => Promise<ToolResult>;
119
- };
120
- export declare function createTool<S extends z.ZodObject<any>>(config: {
121
- description: string;
122
- schema: S;
123
- execute: (env: ToolEnvironment, params: z.infer<S>) => Promise<ToolResult>;
124
- }): Tool<S>;
125
- export declare function convertToCallToolResult(result: ToolResult): CallToolResult;
126
129
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -1,34 +1,2 @@
1
- // Helper function to create a tool with automatic type inference
2
- export function createTool(config) {
3
- return config;
4
- }
5
- // Convert ToolResult to CallToolResult format
6
- export function convertToCallToolResult(result) {
7
- // Import stringifyWithBigInt to handle BigInt serialization
8
- const stringifyWithBigInt = (obj, space) => {
9
- return JSON.stringify(obj, (_key, value) => (typeof value === 'bigint' ? value.toString() : value), space);
10
- };
11
- if (result.success === false) {
12
- return {
13
- content: [
14
- {
15
- type: 'text',
16
- text: stringifyWithBigInt({
17
- error: result.error,
18
- ...(result.stack ? { stack: result.stack } : {}),
19
- }),
20
- },
21
- ],
22
- isError: true,
23
- };
24
- }
25
- return {
26
- content: [
27
- {
28
- type: 'text',
29
- text: stringifyWithBigInt(result.result, 2),
30
- },
31
- ],
32
- };
33
- }
1
+ export {};
34
2
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAsIA,iEAAiE;AACjE,MAAM,UAAU,UAAU,CAA6B,MAItD;IACA,OAAO,MAAM,CAAC;AACf,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,uBAAuB,CAAC,MAAkB;IACzD,4DAA4D;IAC5D,MAAM,mBAAmB,GAAG,CAAC,GAAQ,EAAE,KAAc,EAAU,EAAE;QAChE,OAAO,IAAI,CAAC,SAAS,CACpB,GAAG,EACH,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EACvE,KAAK,CACL,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC9B,OAAO;YACN,OAAO,EAAE;gBACR;oBACC,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,mBAAmB,CAAC;wBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC9C,CAAC;iBACF;aACD;YACD,OAAO,EAAE,IAAI;SACb,CAAC;IACH,CAAC;IAED,OAAO;QACN,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;aAC3C;SACD;KACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -2,36 +2,6 @@
2
2
  * Get current timestamp in seconds
3
3
  */
4
4
  export declare function getCurrentTimestamp(): number;
5
- /**
6
- * Calculate estimated arrival time based on distance and timePerDistance
7
- *
8
- * @param distance - The distance between planets
9
- * @param timePerDistance - Time multiplier from contract config (seconds per distance unit)
10
- * @param genesis - Genesis timestamp from contract config
11
- * @returns Estimated arrival time in seconds
12
- */
13
- export declare function calculateEstimatedArrivalTime(params: {
14
- startTime: bigint;
15
- distance: bigint;
16
- timePerDistance: bigint;
17
- }): number;
18
- /**
19
- * Calculate when the resolve window opens
20
- * A fleet can be resolved after it arrives and the resolve window has passed
21
- *
22
- * @param estimatedArrivalTime - When the fleet is estimated to arrive
23
- * @param resolveWindow - The resolve window duration in seconds from contract config
24
- * @returns The timestamp when the fleet can be resolved
25
- */
26
- export declare function calculateResolveWindowOpen(estimatedArrivalTime: number, resolveWindow: bigint): number;
27
- /**
28
- * Check if a fleet can be resolved now
29
- *
30
- * @param estimatedArrivalTime - When the fleet was estimated to arrive
31
- * @param resolveWindow - The resolve window duration in seconds
32
- * @returns True if the fleet can be resolved now
33
- */
34
- export declare function canResolveNow(estimatedArrivalTime: number, resolveWindow: bigint): boolean;
35
5
  /**
36
6
  * Format timestamp as ISO string
37
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/util/time.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACxB,GAAG,MAAM,CAIT;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACzC,oBAAoB,EAAE,MAAM,EAC5B,aAAa,EAAE,MAAM,GACnB,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,oBAAoB,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAI1F;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAExD"}
1
+ {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/util/time.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAExD"}
package/dist/util/time.js CHANGED
@@ -4,42 +4,6 @@
4
4
  export function getCurrentTimestamp() {
5
5
  return Math.floor(Date.now() / 1000);
6
6
  }
7
- /**
8
- * Calculate estimated arrival time based on distance and timePerDistance
9
- *
10
- * @param distance - The distance between planets
11
- * @param timePerDistance - Time multiplier from contract config (seconds per distance unit)
12
- * @param genesis - Genesis timestamp from contract config
13
- * @returns Estimated arrival time in seconds
14
- */
15
- export function calculateEstimatedArrivalTime(params) {
16
- const { startTime, distance, timePerDistance } = params;
17
- const travelTime = Number(distance) * Number(timePerDistance);
18
- return Number(startTime) + travelTime;
19
- }
20
- /**
21
- * Calculate when the resolve window opens
22
- * A fleet can be resolved after it arrives and the resolve window has passed
23
- *
24
- * @param estimatedArrivalTime - When the fleet is estimated to arrive
25
- * @param resolveWindow - The resolve window duration in seconds from contract config
26
- * @returns The timestamp when the fleet can be resolved
27
- */
28
- export function calculateResolveWindowOpen(estimatedArrivalTime, resolveWindow) {
29
- return estimatedArrivalTime + Number(resolveWindow);
30
- }
31
- /**
32
- * Check if a fleet can be resolved now
33
- *
34
- * @param estimatedArrivalTime - When the fleet was estimated to arrive
35
- * @param resolveWindow - The resolve window duration in seconds
36
- * @returns True if the fleet can be resolved now
37
- */
38
- export function canResolveNow(estimatedArrivalTime, resolveWindow) {
39
- const currentTime = getCurrentTimestamp();
40
- const resolveWindowOpen = calculateResolveWindowOpen(estimatedArrivalTime, resolveWindow);
41
- return currentTime >= resolveWindowOpen;
42
- }
43
7
  /**
44
8
  * Format timestamp as ISO string
45
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"time.js","sourceRoot":"","sources":["../../src/util/time.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,mBAAmB;IAClC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,6BAA6B,CAAC,MAI7C;IACA,MAAM,EAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAC,GAAG,MAAM,CAAC;IACtD,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;IAC9D,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC;AACvC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CACzC,oBAA4B,EAC5B,aAAqB;IAErB,OAAO,oBAAoB,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,oBAA4B,EAAE,aAAqB;IAChF,MAAM,WAAW,GAAG,mBAAmB,EAAE,CAAC;IAC1C,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC;IAC1F,OAAO,WAAW,IAAI,iBAAiB,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAChD,OAAO,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"time.js","sourceRoot":"","sources":["../../src/util/time.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,mBAAmB;IAClC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAChD,OAAO,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AACzD,CAAC"}