@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,72 @@
1
+ import { z } from 'zod';
2
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
+ /**
4
+ * Environment provided to tool execute functions
5
+ * Generic type TEnv allows customization of the environment properties
6
+ * @template TEnv - Additional environment properties spread into the environment
7
+ */
8
+ export type ToolEnvironment<TEnv extends Record<string, any> = Record<string, any>> = {
9
+ /** function to send status updates during tool execution */
10
+ sendStatus: (message: string) => Promise<void>;
11
+ } & TEnv;
12
+ /**
13
+ * Result returned by tool execute functions
14
+ * Success case: {success: true, result: Record<string, any>}
15
+ * Error case: {success: false, error: string, stack?: string}
16
+ */
17
+ export type ToolResult = {
18
+ success: true;
19
+ result: Record<string, any>;
20
+ } | {
21
+ success: false;
22
+ error: string;
23
+ stack?: string;
24
+ };
25
+ /**
26
+ * Schema types that can be used for tool input parameters
27
+ * Supports ZodObject directly or ZodUnion of ZodObjects (for mutually exclusive params)
28
+ */
29
+ export type ToolSchema = z.ZodObject<any> | z.ZodUnion<readonly [z.ZodObject<any>, ...z.ZodObject<any>[]]>;
30
+ /**
31
+ * Tool definition with execute, schema, and description
32
+ * @template S - Zod schema type for input parameters
33
+ * @template TEnv - Environment type passed to execute function
34
+ */
35
+ export type Tool<S extends ToolSchema = z.ZodObject<any>, TEnv extends Record<string, any> = Record<string, any>> = {
36
+ /** Description of what the tool does */
37
+ description: string;
38
+ /** Zod schema for input parameters */
39
+ schema: S;
40
+ /**
41
+ * Execute function that receives environment and parameters
42
+ * @param env - Tool environment with sendStatus and custom properties
43
+ * @param params - Parameters inferred from schema
44
+ * @returns ToolResult with success/error state
45
+ */
46
+ execute: (env: ToolEnvironment<TEnv>, params: z.infer<S>) => Promise<ToolResult>;
47
+ };
48
+ /**
49
+ * Helper function to create a tool with automatic type inference
50
+ * Use this instead of directly creating Tool objects to get proper TypeScript types
51
+ * @template S - Zod schema type for input parameters
52
+ * @template TEnv - Environment type passed to execute function
53
+ */
54
+ export declare function createTool<S extends ToolSchema, TEnv extends Record<string, any> = Record<string, any>>(config: {
55
+ description: string;
56
+ schema: S;
57
+ execute: (env: ToolEnvironment<TEnv>, params: z.infer<S>) => Promise<ToolResult>;
58
+ }): Tool<S, TEnv>;
59
+ /**
60
+ * Parameters for tool registration
61
+ * @template S - Zod schema type for input parameters
62
+ * @template TEnv - Environment type passed to execute function
63
+ */
64
+ export type RegisterToolParams<S extends ToolSchema, TEnv extends Record<string, any> = Record<string, any>> = {
65
+ /** MCP server instance */
66
+ server: McpServer;
67
+ /** Tool name (snake_case) */
68
+ name: string;
69
+ /** Tool definition */
70
+ tool: Tool<S, TEnv>;
71
+ };
72
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tool-handling/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAEvE;;;;GAIG;AACH,MAAM,MAAM,eAAe,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI;IACrF,4DAA4D;IAC5D,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C,GAAG,IAAI,CAAC;AAET;;;;GAIG;AACH,MAAM,MAAM,UAAU,GACnB;IAAC,OAAO,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAC,GAC5C;IAAC,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC;AAEnD;;;GAGG;AACH,MAAM,MAAM,UAAU,GACnB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAChB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAElE;;;;GAIG;AACH,MAAM,MAAM,IAAI,CACf,CAAC,SAAS,UAAU,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EACvC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IACnD;IACH,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,MAAM,EAAE,CAAC,CAAC;IACV;;;;;OAKG;IACH,OAAO,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CACjF,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,UAAU,CACzB,CAAC,SAAS,UAAU,EACpB,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrD,MAAM,EAAE;IACT,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,CAAC,CAAC;IACV,OAAO,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CACjF,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAEhB;AAED;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,CAC7B,CAAC,SAAS,UAAU,EACpB,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IACnD;IACH,0BAA0B;IAC1B,MAAM,EAAE,SAAS,CAAC;IAClB,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;CACpB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Helper function to create a tool with automatic type inference
3
+ * Use this instead of directly creating Tool objects to get proper TypeScript types
4
+ * @template S - Zod schema type for input parameters
5
+ * @template TEnv - Environment type passed to execute function
6
+ */
7
+ export function createTool(config) {
8
+ return config;
9
+ }
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tool-handling/types.ts"],"names":[],"mappings":"AAqDA;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAGxB,MAID;IACA,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -1,7 +1,9 @@
1
1
  import { z } from 'zod';
2
- export declare const acquire_planets: import("../types.js").Tool<z.ZodObject<{
3
- planetIds: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
4
- amountToMint: z.ZodOptional<z.ZodNumber>;
5
- tokenAmount: z.ZodOptional<z.ZodNumber>;
6
- }, z.core.$strip>>;
2
+ import type { ConquestEnv } from '../types.js';
3
+ export declare const acquire_planets: import("../tool-handling/types.js").Tool<z.ZodObject<{
4
+ coordinates: z.ZodArray<z.ZodObject<{
5
+ x: z.ZodNumber;
6
+ y: z.ZodNumber;
7
+ }, z.core.$strip>>;
8
+ }, z.core.$strip>, ConquestEnv>;
7
9
  //# sourceMappingURL=acquire_planets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"acquire_planets.d.ts","sourceRoot":"","sources":["../../src/tools/acquire_planets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAItB,eAAO,MAAM,eAAe;;;;kBA4E1B,CAAC"}
1
+ {"version":3,"file":"acquire_planets.d.ts","sourceRoot":"","sources":["../../src/tools/acquire_planets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAa7C,eAAO,MAAM,eAAe;;;;;+BAsC1B,CAAC"}
@@ -1,54 +1,40 @@
1
1
  import { z } from 'zod';
2
- import { createTool } from '../types.js';
2
+ import { formatUnits } from 'viem';
3
+ import { createTool } from '../tool-handling/types.js';
4
+ const schema = z.object({
5
+ coordinates: z
6
+ .array(z.object({
7
+ x: z.number().describe('X coordinate of the planet'),
8
+ y: z.number().describe('Y coordinate of the planet'),
9
+ }))
10
+ .describe('Array of planet coordinates to acquire'),
11
+ });
3
12
  export const acquire_planets = createTool({
4
- description: 'Acquire (stake) multiple planets in the Conquest game. This allows you to take ownership of unclaimed planets.',
5
- schema: z.object({
6
- planetIds: z
7
- .array(z.union([z.string(), z.number()]))
8
- .describe('Array of planet location IDs to acquire (as hex strings or numbers)'),
9
- amountToMint: z
10
- .number()
11
- .optional()
12
- .describe('Amount of native token to spend to acquire the planets. If not provided, will be calculated automatically based on planet stats.'),
13
- tokenAmount: z
14
- .number()
15
- .optional()
16
- .describe('Amount of staking token to spend to acquire the planets. If not provided, will be calculated automatically based on planet stats.'),
17
- }),
18
- execute: async (env, { planetIds, amountToMint, tokenAmount }) => {
13
+ description: 'Acquire (stake) multiple planets in the Conquest game. This allows you to take ownership of unclaimed planets. Automatically uses all available play token balance first, then mints the remainder with native tokens.',
14
+ schema,
15
+ execute: async (env, { coordinates }) => {
19
16
  try {
20
- // Convert planet IDs to BigInt
21
- const planetIdsBigInt = planetIds.map((id) => typeof id === 'string' ? BigInt(id) : BigInt(id));
22
- let result;
23
- // If BOTH amounts are provided, use them; otherwise use auto-calculation
24
- if (amountToMint !== undefined && tokenAmount !== undefined) {
25
- // Use provided amounts
26
- // TODO decimal handling, for now BigInt()
27
- const acquireResult = await env.planetManager.acquire(planetIdsBigInt, BigInt(amountToMint), BigInt(tokenAmount));
28
- result = {
29
- hash: acquireResult.hash,
30
- planetsAcquired: acquireResult.planetsAcquired,
31
- amountToMint: BigInt(amountToMint),
32
- tokenAmount: BigInt(tokenAmount),
33
- };
34
- }
35
- else {
36
- // Use auto-calculation
37
- const autoResult = await env.planetManager.acquireWithAutoCalc(planetIdsBigInt);
38
- result = {
39
- hash: autoResult.hash,
40
- planetsAcquired: autoResult.planetsAcquired,
41
- amountToMint: autoResult.costs.amountToMint,
42
- tokenAmount: autoResult.costs.tokenAmount,
43
- };
17
+ // Convert x,y coordinates to planet IDs
18
+ const planetIdsBigInt = [];
19
+ for (const coord of coordinates) {
20
+ const planetId = env.planetManager.getPlanetIdByCoordinates(coord.x, coord.y);
21
+ if (planetId === undefined) {
22
+ throw new Error(`No planet found at coordinates (${coord.x}, ${coord.y})`);
23
+ }
24
+ planetIdsBigInt.push(planetId);
44
25
  }
26
+ // Acquire planets using max play token balance first, then minting remainder
27
+ const result = await env.planetManager.acquireWithMaxPlayToken(planetIdsBigInt);
45
28
  return {
46
29
  success: true,
47
30
  result: {
48
31
  transactionHash: result.hash,
49
32
  planetsAcquired: result.planetsAcquired,
50
- amountToMint: result.amountToMint,
51
- tokenAmount: result.tokenAmount,
33
+ costs: {
34
+ totalRequired: formatUnits(result.costs.totalRequired, 18),
35
+ playTokenUsed: formatUnits(result.costs.playTokenUsed, 18),
36
+ amountMinted: formatUnits(result.costs.amountMinted, 18),
37
+ },
52
38
  },
53
39
  };
54
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"acquire_planets.js","sourceRoot":"","sources":["../../src/tools/acquire_planets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAGvC,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAC;IACzC,WAAW,EACV,gHAAgH;IACjH,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,SAAS,EAAE,CAAC;aACV,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;aACxC,QAAQ,CAAC,qEAAqE,CAAC;QACjF,YAAY,EAAE,CAAC;aACb,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACR,kIAAkI,CAClI;QACF,WAAW,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACR,mIAAmI,CACnI;KACF,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAC,SAAS,EAAE,YAAY,EAAE,WAAW,EAAC,EAAE,EAAE;QAC9D,IAAI,CAAC;YACJ,+BAA+B;YAC/B,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAC5C,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAChD,CAAC;YAEF,IAAI,MAKH,CAAC;YAEF,yEAAyE;YACzE,IAAI,YAAY,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC7D,uBAAuB;gBACvB,0CAA0C;gBAC1C,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,OAAO,CACpD,eAAe,EACf,MAAM,CAAC,YAAY,CAAC,EACpB,MAAM,CAAC,WAAW,CAAC,CACnB,CAAC;gBACF,MAAM,GAAG;oBACR,IAAI,EAAE,aAAa,CAAC,IAAI;oBACxB,eAAe,EAAE,aAAa,CAAC,eAAe;oBAC9C,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC;oBAClC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC;iBAChC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACP,uBAAuB;gBACvB,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;gBAChF,MAAM,GAAG;oBACR,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,eAAe,EAAE,UAAU,CAAC,eAAe;oBAC3C,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,YAAY;oBAC3C,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC,WAAW;iBACzC,CAAC;YACH,CAAC;YAED,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE;oBACP,eAAe,EAAE,MAAM,CAAC,IAAI;oBAC5B,eAAe,EAAE,MAAM,CAAC,eAAe;oBACvC,YAAY,EAAE,MAAM,CAAC,YAAY;oBACjC,WAAW,EAAE,MAAM,CAAC,WAAW;iBAC/B;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":"acquire_planets.js","sourceRoot":"","sources":["../../src/tools/acquire_planets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,WAAW,EAAC,MAAM,MAAM,CAAC;AACjC,OAAO,EAAC,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAGrD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACvB,WAAW,EAAE,CAAC;SACZ,KAAK,CACL,CAAC,CAAC,MAAM,CAAC;QACR,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACpD,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;KACpD,CAAC,CACF;SACA,QAAQ,CAAC,wCAAwC,CAAC;CACpD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAA6B;IACrE,WAAW,EACV,wNAAwN;IACzN,MAAM;IACN,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAC,WAAW,EAAC,EAAE,EAAE;QACrC,IAAI,CAAC;YACJ,wCAAwC;YACxC,MAAM,eAAe,GAAa,EAAE,CAAC;YACrC,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;gBACjC,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC9E,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CAAC,mCAAmC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC5E,CAAC;gBACD,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC;YAED,6EAA6E;YAC7E,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC;YAEhF,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE;oBACP,eAAe,EAAE,MAAM,CAAC,IAAI;oBAC5B,eAAe,EAAE,MAAM,CAAC,eAAe;oBACvC,KAAK,EAAE;wBACN,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC;wBAC1D,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC;wBAC1D,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC;qBACxD;iBACD;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,5 +1,9 @@
1
1
  import { z } from 'zod';
2
- export declare const exit_planets: import("../types.js").Tool<z.ZodObject<{
3
- planetIds: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
4
- }, z.core.$strip>>;
2
+ import type { ConquestEnv } from '../types.js';
3
+ export declare const exit_planets: import("../tool-handling/types.js").Tool<z.ZodObject<{
4
+ coordinates: z.ZodArray<z.ZodObject<{
5
+ x: z.ZodNumber;
6
+ y: z.ZodNumber;
7
+ }, z.core.$strip>>;
8
+ }, z.core.$strip>, ConquestEnv>;
5
9
  //# sourceMappingURL=exit_planets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"exit_planets.d.ts","sourceRoot":"","sources":["../../src/tools/exit_planets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,YAAY;;kBA+BvB,CAAC"}
1
+ {"version":3,"file":"exit_planets.d.ts","sourceRoot":"","sources":["../../src/tools/exit_planets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAa7C,eAAO,MAAM,YAAY;;;;;+BAgCvB,CAAC"}
@@ -1,16 +1,27 @@
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
+ 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
+ .describe('Array of planet coordinates to exit'),
10
+ });
3
11
  export const exit_planets = createTool({
4
12
  description: 'Exit (unstake) multiple planets to retrieve staked tokens. The exit process takes time and must be completed later.',
5
- schema: z.object({
6
- planetIds: z
7
- .array(z.union([z.string(), z.number()]))
8
- .describe('Array of planet location IDs to exit (as hex strings or numbers)'),
9
- }),
10
- execute: async (env, { planetIds }) => {
13
+ schema,
14
+ execute: async (env, { coordinates }) => {
11
15
  try {
12
- // Convert planet IDs to BigInt
13
- const planetIdsBigInt = planetIds.map((id) => typeof id === 'string' ? BigInt(id) : BigInt(id));
16
+ // Convert x,y coordinates to planet IDs
17
+ const planetIdsBigInt = [];
18
+ for (const coord of coordinates) {
19
+ const planetId = env.planetManager.getPlanetIdByCoordinates(coord.x, coord.y);
20
+ if (planetId === undefined) {
21
+ throw new Error(`No planet found at coordinates (${coord.x}, ${coord.y})`);
22
+ }
23
+ planetIdsBigInt.push(planetId);
24
+ }
14
25
  const result = await env.planetManager.exit(planetIdsBigInt);
15
26
  return {
16
27
  success: true,
@@ -1 +1 @@
1
- {"version":3,"file":"exit_planets.js","sourceRoot":"","sources":["../../src/tools/exit_planets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAEvC,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC;IACtC,WAAW,EACV,qHAAqH;IACtH,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,SAAS,EAAE,CAAC;aACV,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;aACxC,QAAQ,CAAC,kEAAkE,CAAC;KAC9E,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAC,SAAS,EAAC,EAAE,EAAE;QACnC,IAAI,CAAC;YACJ,+BAA+B;YAC/B,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAC5C,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAChD,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAE7D,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE;oBACP,eAAe,EAAE,MAAM,CAAC,IAAI;oBAC5B,cAAc,EAAE,MAAM,CAAC,cAAc;iBACrC;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":"exit_planets.js","sourceRoot":"","sources":["../../src/tools/exit_planets.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,WAAW,EAAE,CAAC;SACZ,KAAK,CACL,CAAC,CAAC,MAAM,CAAC;QACR,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACpD,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;KACpD,CAAC,CACF;SACA,QAAQ,CAAC,qCAAqC,CAAC;CACjD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAA6B;IAClE,WAAW,EACV,qHAAqH;IACtH,MAAM;IACN,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAC,WAAW,EAAC,EAAE,EAAE;QACrC,IAAI,CAAC;YACJ,wCAAwC;YACxC,MAAM,eAAe,GAAa,EAAE,CAAC;YACrC,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;gBACjC,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC9E,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CAAC,mCAAmC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC5E,CAAC;gBACD,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAE7D,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE;oBACP,eAAe,EAAE,MAAM,CAAC,IAAI;oBAC5B,cAAc,EAAE,MAAM,CAAC,cAAc;iBACrC;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,5 +1,6 @@
1
1
  import { z } from 'zod';
2
- export declare const get_my_planets: import("../types.js").Tool<z.ZodObject<{
2
+ import type { ConquestEnv } from '../types.js';
3
+ export declare const get_my_planets: import("../tool-handling/types.js").Tool<z.ZodObject<{
3
4
  radius: z.ZodNumber;
4
- }, z.core.$strip>>;
5
+ }, z.core.$strip>, ConquestEnv>;
5
6
  //# sourceMappingURL=get_my_planets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get_my_planets.d.ts","sourceRoot":"","sources":["../../src/tools/get_my_planets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,cAAc;;kBA0BzB,CAAC"}
1
+ {"version":3,"file":"get_my_planets.d.ts","sourceRoot":"","sources":["../../src/tools/get_my_planets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAM7C,eAAO,MAAM,cAAc;;+BAwBzB,CAAC"}
@@ -1,10 +1,11 @@
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
+ radius: z.number().min(1).max(50).describe('Search radius around origin (0,0) to find planets'),
5
+ });
3
6
  export const get_my_planets = createTool({
4
7
  description: 'Get all planets owned by the current user address.',
5
- schema: z.object({
6
- radius: z.number().max(50).describe('Search radius around origin (0,0) to find planets'),
7
- }),
8
+ schema,
8
9
  execute: async (env, { radius }) => {
9
10
  try {
10
11
  const planets = await env.planetManager.getMyPlanets(radius);
@@ -1 +1 @@
1
- {"version":3,"file":"get_my_planets.js","sourceRoot":"","sources":["../../src/tools/get_my_planets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAEvC,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;IACxC,WAAW,EAAE,oDAAoD;IACjE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,mDAAmD,CAAC;KACxF,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAC,MAAM,EAAC,EAAE,EAAE;QAChC,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAE7D,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE;oBACP,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,EAAE,EAAE,CAAC,CAAC;wBACxC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE;wBACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,GAAG,KAAK;qBACR,CAAC,CAAC;iBACH;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":"get_my_planets.js","sourceRoot":"","sources":["../../src/tools/get_my_planets.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,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,mDAAmD,CAAC;CAC/F,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAA6B;IACpE,WAAW,EAAE,oDAAoD;IACjE,MAAM;IACN,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAC,MAAM,EAAC,EAAE,EAAE;QAChC,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAE7D,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE;oBACP,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,EAAE,EAAE,CAAC,CAAC;wBACxC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE;wBACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,GAAG,KAAK;qBACR,CAAC,CAAC;iBACH;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,6 @@
1
+ import { z } from 'zod';
2
+ import type { ConquestEnv } from '../types.js';
3
+ export declare const get_native_token_balance: import("../tool-handling/types.js").Tool<z.ZodObject<{
4
+ address: z.ZodOptional<z.ZodString>;
5
+ }, z.core.$strip>, ConquestEnv>;
6
+ //# sourceMappingURL=get_native_token_balance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_native_token_balance.d.ts","sourceRoot":"","sources":["../../src/tools/get_native_token_balance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAW7C,eAAO,MAAM,wBAAwB;;+BAyDnC,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { z } from 'zod';
2
+ import { formatEther } from 'viem';
3
+ import { createTool } from '../tool-handling/types.js';
4
+ const schema = z.object({
5
+ address: z
6
+ .string()
7
+ .optional()
8
+ .describe('Address to check balance for. Defaults to current wallet if private key is available.'),
9
+ });
10
+ export const get_native_token_balance = createTool({
11
+ description: 'Get the native token (ETH) balance for an address. If no address provided, uses the current wallet address.',
12
+ schema,
13
+ execute: async (env, { address }) => {
14
+ try {
15
+ let targetAddress;
16
+ if (address) {
17
+ // Use provided address
18
+ if (!address.startsWith('0x') || address.length !== 42) {
19
+ return {
20
+ success: false,
21
+ error: 'Invalid address format. Must be a 42-character hex string starting with 0x.',
22
+ };
23
+ }
24
+ targetAddress = address;
25
+ }
26
+ else {
27
+ // Use current wallet address
28
+ if (!env.clients.walletClient) {
29
+ return {
30
+ success: false,
31
+ error: 'No address provided and no wallet client available. Please provide a PRIVATE_KEY environment variable or specify an address.',
32
+ };
33
+ }
34
+ const account = env.clients.walletClient.account;
35
+ if (!account) {
36
+ return {
37
+ success: false,
38
+ error: 'Wallet client has no account configured.',
39
+ };
40
+ }
41
+ targetAddress = account.address;
42
+ }
43
+ const balanceWei = await env.clients.publicClient.getBalance({
44
+ address: targetAddress,
45
+ });
46
+ const balanceEth = formatEther(balanceWei);
47
+ return {
48
+ success: true,
49
+ result: {
50
+ address: targetAddress,
51
+ balance: `${balanceEth} ETH`,
52
+ balanceWei: balanceWei.toString(),
53
+ },
54
+ };
55
+ }
56
+ catch (error) {
57
+ return {
58
+ success: false,
59
+ error: error instanceof Error ? error.message : String(error),
60
+ };
61
+ }
62
+ },
63
+ });
64
+ //# sourceMappingURL=get_native_token_balance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_native_token_balance.js","sourceRoot":"","sources":["../../src/tools/get_native_token_balance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,WAAW,EAAC,MAAM,MAAM,CAAC;AACjC,OAAO,EAAC,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAGrD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACvB,OAAO,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACR,uFAAuF,CACvF;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,UAAU,CAA6B;IAC9E,WAAW,EACV,6GAA6G;IAC9G,MAAM;IACN,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAC,OAAO,EAAC,EAAE,EAAE;QACjC,IAAI,CAAC;YACJ,IAAI,aAA4B,CAAC;YAEjC,IAAI,OAAO,EAAE,CAAC;gBACb,uBAAuB;gBACvB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;oBACxD,OAAO;wBACN,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,6EAA6E;qBACpF,CAAC;gBACH,CAAC;gBACD,aAAa,GAAG,OAAwB,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACP,6BAA6B;gBAC7B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;oBAC/B,OAAO;wBACN,OAAO,EAAE,KAAK;wBACd,KAAK,EACJ,8HAA8H;qBAC/H,CAAC;gBACH,CAAC;gBACD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC;gBACjD,IAAI,CAAC,OAAO,EAAE,CAAC;oBACd,OAAO;wBACN,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,0CAA0C;qBACjD,CAAC;gBACH,CAAC;gBACD,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;YACjC,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC;gBAC5D,OAAO,EAAE,aAAa;aACtB,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;YAE3C,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE;oBACP,OAAO,EAAE,aAAa;oBACtB,OAAO,EAAE,GAAG,UAAU,MAAM;oBAC5B,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE;iBACjC;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,3 +1,4 @@
1
1
  import { z } from 'zod';
2
- export declare const get_pending_exits: import("../types.js").Tool<z.ZodObject<{}, z.core.$strip>>;
2
+ import type { ConquestEnv } from '../types.js';
3
+ export declare const get_pending_exits: import("../tool-handling/types.js").Tool<z.ZodObject<{}, z.core.$strip>, ConquestEnv>;
3
4
  //# sourceMappingURL=get_pending_exits.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get_pending_exits.d.ts","sourceRoot":"","sources":["../../src/tools/get_pending_exits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,iBAAiB,4DAiC5B,CAAC"}
1
+ {"version":3,"file":"get_pending_exits.d.ts","sourceRoot":"","sources":["../../src/tools/get_pending_exits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAM7C,eAAO,MAAM,iBAAiB,uFA+B5B,CAAC"}
@@ -1,10 +1,11 @@
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
+ // No properties needed for this tool
5
+ });
3
6
  export const get_pending_exits = createTool({
4
7
  description: 'Get all pending exit (unstake) operations for your planets.',
5
- schema: z.object({
6
- // No properties needed for this tool
7
- }),
8
+ schema,
8
9
  execute: async (env) => {
9
10
  try {
10
11
  const exits = await env.planetManager.getMyPendingExits();
@@ -1 +1 @@
1
- {"version":3,"file":"get_pending_exits.js","sourceRoot":"","sources":["../../src/tools/get_pending_exits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAEvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC;IAC3C,WAAW,EAAE,6DAA6D;IAC1E,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;IAChB,qCAAqC;KACrC,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,CAAC;YACJ,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;YAE1D,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE;oBACP,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,aAAa,EAAE,IAAI,CAAC,aAAa;wBACjC,YAAY,EAAE,IAAI,CAAC,YAAY;wBAC/B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;wBACvC,aAAa,EAAE,IAAI,CAAC,aAAa;wBACjC,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;qBACjC,CAAC,CAAC;iBACH;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":"get_pending_exits.js","sourceRoot":"","sources":["../../src/tools/get_pending_exits.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;AACvB,qCAAqC;CACrC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAA6B;IACvE,WAAW,EAAE,6DAA6D;IAC1E,MAAM;IACN,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,CAAC;YACJ,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;YAE1D,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE;oBACP,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,aAAa,EAAE,IAAI,CAAC,aAAa;wBACjC,YAAY,EAAE,IAAI,CAAC,YAAY;wBAC/B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;wBACvC,aAAa,EAAE,IAAI,CAAC,aAAa;wBACjC,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;qBACjC,CAAC,CAAC;iBACH;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,3 +1,4 @@
1
1
  import { z } from 'zod';
2
- export declare const get_pending_fleets: import("../types.js").Tool<z.ZodObject<{}, z.core.$strip>>;
2
+ import type { ConquestEnv } from '../types.js';
3
+ export declare const get_pending_fleets: import("../tool-handling/types.js").Tool<z.ZodObject<{}, z.core.$strip>, ConquestEnv>;
3
4
  //# sourceMappingURL=get_pending_fleets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get_pending_fleets.d.ts","sourceRoot":"","sources":["../../src/tools/get_pending_fleets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,kBAAkB,4DAqC7B,CAAC"}
1
+ {"version":3,"file":"get_pending_fleets.d.ts","sourceRoot":"","sources":["../../src/tools/get_pending_fleets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAM7C,eAAO,MAAM,kBAAkB,uFAmC7B,CAAC"}
@@ -1,10 +1,11 @@
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
+ // No properties needed for this tool
5
+ });
3
6
  export const get_pending_fleets = createTool({
4
7
  description: 'Get all pending fleets sent from your planets.',
5
- schema: z.object({
6
- // No properties needed for this tool
7
- }),
8
+ schema,
8
9
  execute: async (env) => {
9
10
  try {
10
11
  const fleets = await env.fleetManager.getMyPendingFleets();
@@ -1 +1 @@
1
- {"version":3,"file":"get_pending_fleets.js","sourceRoot":"","sources":["../../src/tools/get_pending_fleets.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,EAAE,gDAAgD;IAC7D,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;IAChB,qCAAqC;KACrC,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC;YAE3D,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE;oBACP,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,YAAY,EAAE,KAAK,CAAC,YAAY;wBAChC,UAAU,EAAE,KAAK,CAAC,UAAU;wBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;wBAC1C,WAAW,EAAE,KAAK,CAAC,WAAW;wBAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,WAAW,EAAE,KAAK,CAAC,WAAW;wBAC9B,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;wBAChD,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,UAAU,EAAE,KAAK,CAAC,UAAU;qBAC5B,CAAC,CAAC;iBACH;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":"get_pending_fleets.js","sourceRoot":"","sources":["../../src/tools/get_pending_fleets.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;AACvB,qCAAqC;CACrC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAA6B;IACxE,WAAW,EAAE,gDAAgD;IAC7D,MAAM;IACN,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC;YAE3D,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE;oBACP,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,YAAY,EAAE,KAAK,CAAC,YAAY;wBAChC,UAAU,EAAE,KAAK,CAAC,UAAU;wBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;wBAC1C,WAAW,EAAE,KAAK,CAAC,WAAW;wBAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,WAAW,EAAE,KAAK,CAAC,WAAW;wBAC9B,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;wBAChD,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,UAAU,EAAE,KAAK,CAAC,UAAU;qBAC5B,CAAC,CAAC;iBACH;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,7 +1,11 @@
1
1
  import { z } from 'zod';
2
- export declare const get_planets_around: import("../types.js").Tool<z.ZodObject<{
3
- centerX: z.ZodNumber;
4
- centerY: z.ZodNumber;
2
+ import type { ConquestEnv } from '../types.js';
3
+ export declare const get_planets_around: import("../tool-handling/types.js").Tool<z.ZodObject<{
4
+ center: z.ZodObject<{
5
+ x: z.ZodNumber;
6
+ y: z.ZodNumber;
7
+ }, z.core.$strip>;
5
8
  radius: z.ZodNumber;
6
- }, z.core.$strip>>;
9
+ only: z.ZodOptional<z.ZodString>;
10
+ }, z.core.$strip>, ConquestEnv>;
7
11
  //# sourceMappingURL=get_planets_around.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get_planets_around.d.ts","sourceRoot":"","sources":["../../src/tools/get_planets_around.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,kBAAkB;;;;kBAwC7B,CAAC"}
1
+ {"version":3,"file":"get_planets_around.d.ts","sourceRoot":"","sources":["../../src/tools/get_planets_around.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAe7C,eAAO,MAAM,kBAAkB;;;;;;;+BAuD7B,CAAC"}
@@ -1,29 +1,54 @@
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
+ center: z.object({ x: z.number(), y: z.number() }).describe('Center point coordinates {x, y}'),
5
+ radius: z
6
+ .number()
7
+ .min(1)
8
+ .max(50)
9
+ .describe('Radius in distance units to search around the center point (1-50)'),
10
+ only: z
11
+ .string()
12
+ .optional()
13
+ .describe('Filter by owner: use "me" for current wallet address, or provide an address'),
14
+ });
3
15
  export const get_planets_around = createTool({
4
- description: 'Get planets around a specific location within a certain radius. Useful for finding targets for fleet movement.',
5
- schema: z.object({
6
- centerX: z.number().describe('X coordinate of the center point'),
7
- centerY: z.number().describe('Y coordinate of the center point'),
8
- radius: z
9
- .number()
10
- .max(50)
11
- .describe('Radius in distance units to search around the center point'),
12
- }),
13
- execute: async (env, { centerX, centerY, radius }) => {
16
+ description: 'Get planets around a specific location within a certain radius. Useful for finding targets for fleet movement. Use the "only" parameter to filter by owner.',
17
+ schema,
18
+ execute: async (env, { center, radius, only }) => {
14
19
  try {
15
- const planets = await env.planetManager.getPlanetsAround(centerX, centerY, radius);
20
+ let planets = await env.planetManager.getPlanetsAround(center.x, center.y, radius);
21
+ // Filter by owner if 'only' parameter is provided
22
+ if (only) {
23
+ let filterAddress;
24
+ if (only.toLowerCase() === 'me') {
25
+ // Require wallet client for 'me' filter
26
+ const walletClient = env.clients.walletClient;
27
+ if (!walletClient?.account) {
28
+ return {
29
+ success: false,
30
+ error: 'Wallet client with account required to use "me" filter. Private key must be set.',
31
+ };
32
+ }
33
+ filterAddress = walletClient.account.address.toLowerCase();
34
+ }
35
+ else {
36
+ filterAddress = only.toLowerCase();
37
+ }
38
+ planets = planets.filter(({ state }) => state.owner?.toLowerCase() === filterAddress);
39
+ }
16
40
  return {
17
41
  success: true,
18
42
  result: {
19
43
  center: {
20
- x: centerX,
21
- y: centerY,
44
+ x: center.x,
45
+ y: center.y,
22
46
  },
23
47
  radius,
48
+ ...(only && { filter: { only } }),
24
49
  planets: planets.map(({ info, state }) => ({
25
50
  planetId: info.location.id,
26
- distance: Math.sqrt(Math.pow(info.location.x - centerX, 2) + Math.pow(info.location.y - centerY, 2)),
51
+ distance: Math.sqrt(Math.pow(info.location.x - center.x, 2) + Math.pow(info.location.y - center.y, 2)),
27
52
  location: info.location,
28
53
  ...state,
29
54
  })),
@@ -1 +1 @@
1
- {"version":3,"file":"get_planets_around.js","sourceRoot":"","sources":["../../src/tools/get_planets_around.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,gHAAgH;IACjH,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAChE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAChE,MAAM,EAAE,CAAC;aACP,MAAM,EAAE;aACR,GAAG,CAAC,EAAE,CAAC;aACP,QAAQ,CAAC,4DAA4D,CAAC;KACxE,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAC,EAAE,EAAE;QAClD,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAEnF,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE;oBACP,MAAM,EAAE;wBACP,CAAC,EAAE,OAAO;wBACV,CAAC,EAAE,OAAO;qBACV;oBACD,MAAM;oBACN,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,EAAE,EAAE,CAAC,CAAC;wBACxC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;wBAC1B,QAAQ,EAAE,IAAI,CAAC,IAAI,CAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC,CAC/E;wBACD,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,GAAG,KAAK;qBACR,CAAC,CAAC;iBACH;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":"get_planets_around.js","sourceRoot":"","sources":["../../src/tools/get_planets_around.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+ import type { ConquestEnv } from '../types.js';
3
+ export declare const get_play_token_balance: import("../tool-handling/types.js").Tool<z.ZodObject<{
4
+ address: z.ZodOptional<z.ZodString>;
5
+ }, z.core.$strip>, ConquestEnv>;
6
+ //# sourceMappingURL=get_play_token_balance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_play_token_balance.d.ts","sourceRoot":"","sources":["../../src/tools/get_play_token_balance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAsB7C,eAAO,MAAM,sBAAsB;;+BAgEjC,CAAC"}