@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,80 @@
1
+ import { z } from 'zod';
2
+ import { formatUnits } 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
+ // ERC20 balanceOf ABI
11
+ const erc20BalanceOfAbi = [
12
+ {
13
+ name: 'balanceOf',
14
+ type: 'function',
15
+ stateMutability: 'view',
16
+ inputs: [{ name: 'account', type: 'address' }],
17
+ outputs: [{ name: '', type: 'uint256' }],
18
+ },
19
+ ];
20
+ export const get_play_token_balance = createTool({
21
+ description: 'Get the play token (staking token) balance for an address. If no address provided, uses the current wallet address.',
22
+ schema,
23
+ execute: async (env, { address }) => {
24
+ try {
25
+ let targetAddress;
26
+ if (address) {
27
+ // Use provided address
28
+ if (!address.startsWith('0x') || address.length !== 42) {
29
+ return {
30
+ success: false,
31
+ error: 'Invalid address format. Must be a 42-character hex string starting with 0x.',
32
+ };
33
+ }
34
+ targetAddress = address;
35
+ }
36
+ else {
37
+ // Use current wallet address
38
+ if (!env.clients.walletClient) {
39
+ return {
40
+ success: false,
41
+ error: 'No address provided and no wallet client available. Please provide a PRIVATE_KEY environment variable or specify an address.',
42
+ };
43
+ }
44
+ const account = env.clients.walletClient.account;
45
+ if (!account) {
46
+ return {
47
+ success: false,
48
+ error: 'Wallet client has no account configured.',
49
+ };
50
+ }
51
+ targetAddress = account.address;
52
+ }
53
+ const tokenAddress = env.contractConfig.stakingToken;
54
+ const balanceRaw = await env.clients.publicClient.readContract({
55
+ address: tokenAddress,
56
+ abi: erc20BalanceOfAbi,
57
+ functionName: 'balanceOf',
58
+ args: [targetAddress],
59
+ });
60
+ // Play tokens use 18 decimals
61
+ const balance = formatUnits(balanceRaw, 18);
62
+ return {
63
+ success: true,
64
+ result: {
65
+ address: targetAddress,
66
+ tokenAddress,
67
+ balance: `${balance} PLAY`,
68
+ balanceRaw: balanceRaw.toString(),
69
+ },
70
+ };
71
+ }
72
+ catch (error) {
73
+ return {
74
+ success: false,
75
+ error: error instanceof Error ? error.message : String(error),
76
+ };
77
+ }
78
+ },
79
+ });
80
+ //# sourceMappingURL=get_play_token_balance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_play_token_balance.js","sourceRoot":"","sources":["../../src/tools/get_play_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,sBAAsB;AACtB,MAAM,iBAAiB,GAAG;IACzB;QACC,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC;QAC5C,OAAO,EAAE,CAAC,EAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC;KACtC;CACQ,CAAC;AAEX,MAAM,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAA6B;IAC5E,WAAW,EACV,qHAAqH;IACtH,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,YAAY,GAAG,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC;YAErD,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;gBAC9D,OAAO,EAAE,YAAY;gBACrB,GAAG,EAAE,iBAAiB;gBACtB,YAAY,EAAE,WAAW;gBACzB,IAAI,EAAE,CAAC,aAAa,CAAC;aACrB,CAAC,CAAC;YAEH,8BAA8B;YAC9B,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAE5C,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE;oBACP,OAAO,EAAE,aAAa;oBACtB,YAAY;oBACZ,OAAO,EAAE,GAAG,OAAO,OAAO;oBAC1B,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"}
@@ -4,7 +4,13 @@ export { resolve_fleet } from './resolve_fleet.js';
4
4
  export { exit_planets } from './exit_planets.js';
5
5
  export { get_pending_exits } from './get_pending_exits.js';
6
6
  export { verify_exit_status } from './verify_exit_status.js';
7
- export { get_my_planets } from './get_my_planets.js';
8
7
  export { get_planets_around } from './get_planets_around.js';
9
8
  export { get_pending_fleets } from './get_pending_fleets.js';
9
+ export { get_native_token_balance } from './get_native_token_balance.js';
10
+ export { get_play_token_balance } from './get_play_token_balance.js';
11
+ export { withdraw } from './withdraw.js';
12
+ export { simulate } from './simulate.js';
13
+ export { simulate_multiple } from './simulate_multiple.js';
14
+ export { missiv_get_user } from './missiv_get_user.js';
15
+ export { missiv_register } from './missiv_register.js';
10
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,wBAAwB,EAAC,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAC,sBAAsB,EAAC,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC"}
@@ -5,7 +5,13 @@ export { resolve_fleet } from './resolve_fleet.js';
5
5
  export { exit_planets } from './exit_planets.js';
6
6
  export { get_pending_exits } from './get_pending_exits.js';
7
7
  export { verify_exit_status } from './verify_exit_status.js';
8
- export { get_my_planets } from './get_my_planets.js';
9
8
  export { get_planets_around } from './get_planets_around.js';
10
9
  export { get_pending_fleets } from './get_pending_fleets.js';
10
+ export { get_native_token_balance } from './get_native_token_balance.js';
11
+ export { get_play_token_balance } from './get_play_token_balance.js';
12
+ export { withdraw } from './withdraw.js';
13
+ export { simulate } from './simulate.js';
14
+ export { simulate_multiple } from './simulate_multiple.js';
15
+ export { missiv_get_user } from './missiv_get_user.js';
16
+ export { missiv_register } from './missiv_register.js';
11
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,wBAAwB,EAAC,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAC,sBAAsB,EAAC,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+ import type { ConquestEnv } from '../types.js';
3
+ export declare const missiv_get_user: import("../tool-handling/types.js").Tool<z.ZodObject<{
4
+ address: z.ZodString;
5
+ }, z.core.$strip>, ConquestEnv>;
6
+ //# sourceMappingURL=missiv_get_user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"missiv_get_user.d.ts","sourceRoot":"","sources":["../../src/tools/missiv_get_user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAM7C,eAAO,MAAM,eAAe;;+BA2D1B,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { z } from 'zod';
2
+ import { createTool } from '../tool-handling/types.js';
3
+ const schema = z.object({
4
+ address: z.string().describe('address'),
5
+ });
6
+ export const missiv_get_user = createTool({
7
+ description: 'get User details from address',
8
+ schema,
9
+ execute: async (env, { address }) => {
10
+ try {
11
+ const body = JSON.stringify({
12
+ type: 'getUser',
13
+ domain: 'conquest.eth',
14
+ address: address.toLowerCase(),
15
+ });
16
+ const headers = {
17
+ 'content-type': 'application/json',
18
+ };
19
+ const url = `https://api-conquest-2025-1.missiv.xyz/api/user/getCompleteUser`;
20
+ const resp = await fetch(url, {
21
+ method: 'POST',
22
+ body,
23
+ headers,
24
+ });
25
+ if (resp.status !== 200 && resp.status !== 201) {
26
+ const text = await resp.text();
27
+ console.error(`failed`, text);
28
+ throw new Error(text);
29
+ }
30
+ if (resp) {
31
+ const json = await resp.json();
32
+ return {
33
+ success: true,
34
+ result: json,
35
+ };
36
+ }
37
+ else {
38
+ console.error(`failed with no response`);
39
+ throw new Error(`no response`);
40
+ }
41
+ }
42
+ catch (error) {
43
+ return {
44
+ success: false,
45
+ error: error instanceof Error ? error.message : String(error),
46
+ };
47
+ }
48
+ },
49
+ });
50
+ //# sourceMappingURL=missiv_get_user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"missiv_get_user.js","sourceRoot":"","sources":["../../src/tools/missiv_get_user.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,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;CACvC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAA6B;IACrE,WAAW,EAAE,+BAA+B;IAC5C,MAAM;IACN,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAC,OAAO,EAAC,EAAE,EAAE;QACjC,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3B,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,cAAc;gBACtB,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE;aAC9B,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG;gBACf,cAAc,EAAE,kBAAkB;aAClC,CAAC;YAEF,MAAM,GAAG,GAAG,iEAAiE,CAAC;YAE9E,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC7B,MAAM,EAAE,MAAM;gBACd,IAAI;gBACJ,OAAO;aACP,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAChD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC/B,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;YACD,IAAI,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC/B,OAAO;oBACN,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,IAeP;iBACD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;YAChC,CAAC;QACF,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 missiv_register: import("../tool-handling/types.js").Tool<z.ZodObject<{
4
+ bio: z.ZodString;
5
+ }, z.core.$strip>, ConquestEnv>;
6
+ //# sourceMappingURL=missiv_register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"missiv_register.d.ts","sourceRoot":"","sources":["../../src/tools/missiv_register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AA+C7C,eAAO,MAAM,eAAe;;+BAwE1B,CAAC"}
@@ -0,0 +1,103 @@
1
+ import { z } from 'zod';
2
+ import { createTool } from '../tool-handling/types.js';
3
+ import { signAsync } from '@noble/secp256k1';
4
+ import { keccak_256 } from '@noble/hashes/sha3';
5
+ import { computePublicKey } from '@ethersproject/signing-key';
6
+ const chainNames = {
7
+ '1': 'mainnet',
8
+ '3': 'ropsten',
9
+ '4': 'rinkeby',
10
+ '5': 'goerli',
11
+ '42': 'kovan',
12
+ '100': 'Gnosis Chain',
13
+ '1337': 'localhost chain',
14
+ '31337': 'localhost chain',
15
+ '7001': 'ZetaChain Testnet',
16
+ '7000': 'ZetaChain',
17
+ '42220': 'celo',
18
+ '11142220': 'celo-sepolia',
19
+ '143': 'monad',
20
+ '10143': 'monad-testnet',
21
+ };
22
+ function nameForChainId(chainId) {
23
+ const name = chainNames[chainId];
24
+ if (name) {
25
+ return name;
26
+ }
27
+ return `chain with id ${chainId}`;
28
+ }
29
+ const schema = z.object({
30
+ bio: z
31
+ .string()
32
+ .describe('Describe who you are very briefly and how you can be reached (moltbook account, etc..)'),
33
+ });
34
+ function publicKeyAuthorizationMessage({ address, publicKey, }) {
35
+ return `I authorize the following Public Key to represent me:\n ${publicKey}\n\n Others can use this key to write me messages`;
36
+ }
37
+ export const missiv_register = createTool({
38
+ description: 'Register on Missiv so other can identify you. You can advertise your moltbook account here so other can send messages to you',
39
+ schema,
40
+ execute: async (env, { bio }) => {
41
+ if (!env.clients.walletClient || env.clients.walletClient.account === undefined) {
42
+ throw new Error('Wallet client is required for this operation. Please provide a PRIVATE_KEY environment variable.');
43
+ }
44
+ const chainId = await env.clients.publicClient.getChainId();
45
+ const chainName = nameForChainId(chainId.toString());
46
+ const message = `Only sign this message on "conquest.eth" or other trusted frontend.\nThis is for ${chainName}`;
47
+ const accountAddress = env.clients.walletClient.account.address.toLowerCase();
48
+ const signatureToCreateDelegate = await env.clients.walletClient.signMessage({
49
+ account: accountAddress,
50
+ message,
51
+ });
52
+ const missivPrivateKey = signatureToCreateDelegate.slice(0, 66);
53
+ const publicKey = computePublicKey(missivPrivateKey, true);
54
+ const signatureToAssociatePublicKeyToAccount = await env.clients.walletClient.signMessage({
55
+ account: accountAddress,
56
+ message: publicKeyAuthorizationMessage({ address: accountAddress, publicKey }),
57
+ });
58
+ const action = {
59
+ type: 'register',
60
+ address: accountAddress,
61
+ domain: 'conquest.eth',
62
+ signature: signatureToAssociatePublicKeyToAccount,
63
+ domainDescription: bio,
64
+ };
65
+ try {
66
+ const body = JSON.stringify(action);
67
+ const requestSignature = await signAsync(keccak_256(body), missivPrivateKey.slice(2)); // Sync methods below
68
+ const headers = {
69
+ 'content-type': 'application/json',
70
+ SIGNATURE: `${requestSignature.toCompactHex()}:${requestSignature.recovery}`,
71
+ };
72
+ const url = `https://api-conquest-2025-1.missiv.xyz/api/user/register`;
73
+ const resp = await fetch(url, {
74
+ method: 'POST',
75
+ body,
76
+ headers,
77
+ });
78
+ if (resp.status !== 200 && resp.status !== 201) {
79
+ const text = await resp.text();
80
+ console.error(`failed`, text);
81
+ throw new Error(text);
82
+ }
83
+ if (resp) {
84
+ const json = await resp.json();
85
+ return {
86
+ success: true,
87
+ result: json, // TODO,
88
+ };
89
+ }
90
+ else {
91
+ console.error(`failed with no response`);
92
+ throw new Error(`no response`);
93
+ }
94
+ }
95
+ catch (error) {
96
+ return {
97
+ success: false,
98
+ error: error instanceof Error ? error.message : String(error),
99
+ };
100
+ }
101
+ },
102
+ });
103
+ //# sourceMappingURL=missiv_register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"missiv_register.js","sourceRoot":"","sources":["../../src/tools/missiv_register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAC,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAC,gBAAgB,EAAC,MAAM,4BAA4B,CAAC;AAE5D,MAAM,UAAU,GAAgC;IAC/C,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,QAAQ;IACb,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,cAAc;IACrB,MAAM,EAAE,iBAAiB;IACzB,OAAO,EAAE,iBAAiB;IAC1B,MAAM,EAAE,mBAAmB;IAC3B,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,cAAc;IAC1B,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,eAAe;CACxB,CAAC;AACF,SAAS,cAAc,CAAC,OAAe;IACtC,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,IAAI,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,iBAAiB,OAAO,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACvB,GAAG,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,CACR,wFAAwF,CACxF;CACF,CAAC,CAAC;AAEH,SAAS,6BAA6B,CAAC,EACtC,OAAO,EACP,SAAS,GAIT;IACA,OAAO,2DAA2D,SAAS,oDAAoD,CAAC;AACjI,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAA6B;IACrE,WAAW,EACV,8HAA8H;IAC/H,MAAM;IACN,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAC,GAAG,EAAC,EAAE,EAAE;QAC7B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACjF,MAAM,IAAI,KAAK,CACd,kGAAkG,CAClG,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;QAC5D,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,oFAAoF,SAAS,EAAE,CAAC;QAChH,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAmB,CAAC;QAC/F,MAAM,yBAAyB,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC;YAC5E,OAAO,EAAE,cAAc;YACvB,OAAO;SACP,CAAC,CAAC;QACH,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAkB,CAAC;QAEjF,MAAM,SAAS,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QAC3D,MAAM,sCAAsC,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC;YACzF,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,6BAA6B,CAAC,EAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAC,CAAC;SAC5E,CAAC,CAAC;QACH,MAAM,MAAM,GAAG;YACd,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,cAAc;YACvB,MAAM,EAAE,cAAc;YACtB,SAAS,EAAE,sCAAsC;YACjD,iBAAiB,EAAE,GAAG;SACtB,CAAC;QAEF,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,gBAAgB,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB;YAE5G,MAAM,OAAO,GAAG;gBACf,cAAc,EAAE,kBAAkB;gBAClC,SAAS,EAAE,GAAG,gBAAgB,CAAC,YAAY,EAAE,IAAI,gBAAgB,CAAC,QAAQ,EAAE;aAC5E,CAAC;YAEF,MAAM,GAAG,GAAG,0DAA0D,CAAC;YAEvE,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC7B,MAAM,EAAE,MAAM;gBACd,IAAI;gBACJ,OAAO;aACP,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAChD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC/B,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;YACD,IAAI,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC/B,OAAO;oBACN,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,IAAW,EAAE,QAAQ;iBAC7B,CAAC;YACH,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;YAChC,CAAC;QACF,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 resolve_fleet: import("../types.js").Tool<z.ZodObject<{
2
+ import type { ConquestEnv } from '../types.js';
3
+ export declare const resolve_fleet: import("../tool-handling/types.js").Tool<z.ZodObject<{
3
4
  fleetId: z.ZodString;
4
- }, z.core.$strip>>;
5
+ }, z.core.$strip>, ConquestEnv>;
5
6
  //# sourceMappingURL=resolve_fleet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve_fleet.d.ts","sourceRoot":"","sources":["../../src/tools/resolve_fleet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,aAAa;;kBAiCxB,CAAC"}
1
+ {"version":3,"file":"resolve_fleet.d.ts","sourceRoot":"","sources":["../../src/tools/resolve_fleet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAM7C,eAAO,MAAM,aAAa;;+BA+BxB,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
+ fleetId: z.string().describe('Fleet ID to resolve'),
5
+ });
3
6
  export const resolve_fleet = createTool({
4
7
  description: 'Resolve a previously sent fleet. This must be called after the fleet arrival time + resolve window to reveal the destination and secret.',
5
- schema: z.object({
6
- fleetId: z.string().describe('Fleet ID to resolve'),
7
- }),
8
+ schema,
8
9
  execute: async (env, { fleetId }) => {
9
10
  try {
10
11
  const result = await env.fleetManager.resolve(fleetId);
@@ -1 +1 @@
1
- {"version":3,"file":"resolve_fleet.js","sourceRoot":"","sources":["../../src/tools/resolve_fleet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAEvC,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;IACvC,WAAW,EACV,0IAA0I;IAC3I,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;KACnD,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAC,OAAO,EAAC,EAAE,EAAE;QACjC,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAEvD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACrB,OAAO;oBACN,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE;wBACP,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;wBAC7B,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY;wBACvC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU;wBACnC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;qBAC/B;iBACD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACP,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,MAAM,CAAC,MAAM;iBACpB,CAAC;YACH,CAAC;QACF,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":"resolve_fleet.js","sourceRoot":"","sources":["../../src/tools/resolve_fleet.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,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;CACnD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAA6B;IACnE,WAAW,EACV,0IAA0I;IAC3I,MAAM;IACN,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAC,OAAO,EAAC,EAAE,EAAE;QACjC,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAEvD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACrB,OAAO;oBACN,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE;wBACP,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;wBAC7B,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY;wBACvC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU;wBACnC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;qBAC/B;iBACD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACP,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,MAAM,CAAC,MAAM;iBACpB,CAAC;YACH,CAAC;QACF,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 send_fleet: import("../types.js").Tool<z.ZodObject<{
2
+ import type { ConquestEnv } from '../types.js';
3
+ export declare const send_fleet: import("../tool-handling/types.js").Tool<z.ZodObject<{
3
4
  from: z.ZodObject<{
4
5
  x: z.ZodNumber;
5
6
  y: z.ZodNumber;
@@ -12,5 +13,5 @@ export declare const send_fleet: import("../types.js").Tool<z.ZodObject<{
12
13
  arrivalTimeWanted: z.ZodOptional<z.ZodNumber>;
13
14
  gift: z.ZodOptional<z.ZodBoolean>;
14
15
  specific: z.ZodOptional<z.ZodString>;
15
- }, z.core.$strip>>;
16
+ }, z.core.$strip>, ConquestEnv>;
16
17
  //# sourceMappingURL=send_fleet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"send_fleet.d.ts","sourceRoot":"","sources":["../../src/tools/send_fleet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAItB,eAAO,MAAM,UAAU;;;;;;;;;;;;;kBA+DrB,CAAC"}
1
+ {"version":3,"file":"send_fleet.d.ts","sourceRoot":"","sources":["../../src/tools/send_fleet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAmB7C,eAAO,MAAM,UAAU;;;;;;;;;;;;;+BAgDrB,CAAC"}
@@ -1,22 +1,23 @@
1
1
  import { z } from 'zod';
2
- import { createTool } from '../types.js';
2
+ import { createTool } from '../tool-handling/types.js';
3
3
  import { zeroAddress } from 'viem';
4
+ const schema = z.object({
5
+ from: z.object({ x: z.number(), y: z.number() }).describe('Source planet coordinates {x, y}'),
6
+ to: z.object({ x: z.number(), y: z.number() }).describe('Destination planet coordinates {x, y}'),
7
+ quantity: z.number().describe('Number of spaceships to send'),
8
+ arrivalTimeWanted: z
9
+ .number()
10
+ .optional()
11
+ .describe('Desired arrival time (timestamp in seconds). If not specified, will be calculated based on distance.'),
12
+ gift: z
13
+ .boolean()
14
+ .optional()
15
+ .describe('Whether the fleet is a gift (sent without requiring arrival)'),
16
+ specific: z.string().optional().describe('Additional specific data for the fleet'),
17
+ });
4
18
  export const send_fleet = createTool({
5
19
  description: 'Send a fleet from one planet to another in the Conquest game. The fleet will travel through space and can be resolved after arrival.',
6
- schema: z.object({
7
- from: z.object({ x: z.number(), y: z.number() }).describe('Source planet coordinates {x, y}'),
8
- to: z.object({ x: z.number(), y: z.number() }).describe('Destination planet coordinates {x, y}'),
9
- quantity: z.number().describe('Number of spaceships to send'),
10
- arrivalTimeWanted: z
11
- .number()
12
- .optional()
13
- .describe('Desired arrival time (timestamp in seconds). If not specified, will be calculated based on distance.'),
14
- gift: z
15
- .boolean()
16
- .optional()
17
- .describe('Whether the fleet is a gift (sent without requiring arrival)'),
18
- specific: z.string().optional().describe('Additional specific data for the fleet'),
19
- }),
20
+ schema,
20
21
  execute: async (env, { from, to, quantity, arrivalTimeWanted, gift, specific }) => {
21
22
  try {
22
23
  // Convert coordinates to planet IDs
@@ -1 +1 @@
1
- {"version":3,"file":"send_fleet.js","sourceRoot":"","sources":["../../src/tools/send_fleet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"send_fleet.js","sourceRoot":"","sources":["../../src/tools/send_fleet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ import type { ConquestEnv } from '../types.js';
3
+ export declare const simulate: import("../tool-handling/types.js").Tool<z.ZodObject<{
4
+ from: z.ZodObject<{
5
+ x: z.ZodNumber;
6
+ y: z.ZodNumber;
7
+ }, z.core.$strip>;
8
+ to: z.ZodObject<{
9
+ x: z.ZodNumber;
10
+ y: z.ZodNumber;
11
+ }, z.core.$strip>;
12
+ quantity: z.ZodNumber;
13
+ }, z.core.$strip>, ConquestEnv>;
14
+ //# sourceMappingURL=simulate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulate.d.ts","sourceRoot":"","sources":["../../src/tools/simulate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAc7C,eAAO,MAAM,QAAQ;;;;;;;;;;+BA4HnB,CAAC"}
@@ -0,0 +1,123 @@
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
+ const schema = z.object({
8
+ from: coordinatesSchema.describe('Source planet coordinates {x, y}'),
9
+ to: coordinatesSchema.describe('Target planet coordinates {x, y}'),
10
+ quantity: z.number().positive().describe('Number of spaceships to send'),
11
+ });
12
+ export const simulate = createTool({
13
+ description: 'Simulate the outcome of a fleet attack. Returns min/max outcomes including whether capture is successful, number of spaceships left, time until attack fails, and combat losses.',
14
+ schema,
15
+ execute: async (env, { from, to, quantity }) => {
16
+ try {
17
+ // Get planet info for source
18
+ const fromPlanetId = env.planetManager.getPlanetIdByCoordinates(from.x, from.y);
19
+ if (!fromPlanetId) {
20
+ return {
21
+ success: false,
22
+ error: `No planet found at source coordinates (${from.x}, ${from.y})`,
23
+ };
24
+ }
25
+ const fromPlanet = env.planetManager.getPlanetInfo(fromPlanetId);
26
+ if (!fromPlanet) {
27
+ return {
28
+ success: false,
29
+ error: `Could not get planet info for source planet at (${from.x}, ${from.y})`,
30
+ };
31
+ }
32
+ // Get planet info for target
33
+ const toPlanetId = env.planetManager.getPlanetIdByCoordinates(to.x, to.y);
34
+ if (!toPlanetId) {
35
+ return {
36
+ success: false,
37
+ error: `No planet found at target coordinates (${to.x}, ${to.y})`,
38
+ };
39
+ }
40
+ const toPlanet = env.planetManager.getPlanetInfo(toPlanetId);
41
+ if (!toPlanet) {
42
+ return {
43
+ success: false,
44
+ error: `Could not get planet info for target planet at (${to.x}, ${to.y})`,
45
+ };
46
+ }
47
+ // Fetch current state of target planet
48
+ const planetsWithState = await env.planetManager.getPlanetsAround(to.x, to.y, 0);
49
+ if (planetsWithState.length === 0) {
50
+ return {
51
+ success: false,
52
+ error: `Could not fetch state for target planet at (${to.x}, ${to.y})`,
53
+ };
54
+ }
55
+ const toPlanetState = planetsWithState[0].state;
56
+ // Calculate travel time
57
+ const travelTime = env.spaceInfo.timeToArrive(fromPlanet, toPlanet);
58
+ // Calculate distance
59
+ const distance = env.spaceInfo.distance(fromPlanet, toPlanet);
60
+ // Use outcome() to simulate the attack
61
+ // Note: We pass undefined for player-related params since we're doing a simple simulation
62
+ const outcome = env.spaceInfo.outcome(fromPlanet, toPlanet, toPlanetState, quantity, travelTime, undefined, // senderPlayer
63
+ undefined, // fromPlayer
64
+ undefined, // toPlayer
65
+ false, // gift
66
+ undefined);
67
+ return {
68
+ success: true,
69
+ result: {
70
+ from: { x: from.x, y: from.y },
71
+ to: { x: to.x, y: to.y },
72
+ quantity,
73
+ travelTime,
74
+ distance,
75
+ outcome: {
76
+ min: {
77
+ captured: outcome.min.captured,
78
+ numSpaceshipsLeft: outcome.min.numSpaceshipsLeft,
79
+ },
80
+ max: {
81
+ captured: outcome.max.captured,
82
+ numSpaceshipsLeft: outcome.max.numSpaceshipsLeft,
83
+ },
84
+ timeUntilFails: outcome.timeUntilFails,
85
+ nativeResist: outcome.nativeResist,
86
+ gift: outcome.gift,
87
+ allies: outcome.allies,
88
+ combat: outcome.combat
89
+ ? {
90
+ defenderLoss: outcome.combat.defenderLoss,
91
+ attackerLoss: outcome.combat.attackerLoss,
92
+ }
93
+ : undefined,
94
+ tax: outcome.tax
95
+ ? {
96
+ taxRate: outcome.tax.taxRate,
97
+ loss: outcome.tax.loss,
98
+ }
99
+ : undefined,
100
+ },
101
+ targetPlanet: {
102
+ owner: toPlanetState.owner ?? null,
103
+ numSpaceships: toPlanetState.numSpaceships,
104
+ natives: toPlanetState.natives,
105
+ active: toPlanetState.active,
106
+ exiting: toPlanetState.exiting,
107
+ },
108
+ sourcePlanet: {
109
+ attack: fromPlanet.stats.attack,
110
+ speed: fromPlanet.stats.speed,
111
+ },
112
+ },
113
+ };
114
+ }
115
+ catch (error) {
116
+ return {
117
+ success: false,
118
+ error: error instanceof Error ? error.message : String(error),
119
+ };
120
+ }
121
+ },
122
+ });
123
+ //# sourceMappingURL=simulate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulate.js","sourceRoot":"","sources":["../../src/tools/simulate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { z } from 'zod';
2
+ import type { ConquestEnv } from '../types.js';
3
+ export declare const simulate_multiple: import("../tool-handling/types.js").Tool<z.ZodObject<{
4
+ fleets: z.ZodArray<z.ZodObject<{
5
+ from: z.ZodObject<{
6
+ x: z.ZodNumber;
7
+ y: z.ZodNumber;
8
+ }, z.core.$strip>;
9
+ quantity: z.ZodNumber;
10
+ }, z.core.$strip>>;
11
+ to: z.ZodObject<{
12
+ x: z.ZodNumber;
13
+ y: z.ZodNumber;
14
+ }, z.core.$strip>;
15
+ arrivalTime: z.ZodOptional<z.ZodNumber>;
16
+ }, z.core.$strip>, ConquestEnv>;
17
+ //# sourceMappingURL=simulate_multiple.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulate_multiple.d.ts","sourceRoot":"","sources":["../../src/tools/simulate_multiple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AA4B7C,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;+BAsK5B,CAAC"}