@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.
- package/README.md +20 -51
- package/dist/cli-tool-generator.d.ts +2 -1
- package/dist/cli-tool-generator.d.ts.map +1 -1
- package/dist/cli.js +61 -32
- package/dist/cli.js.map +1 -1
- package/dist/contracts/space-info.d.ts.map +1 -1
- package/dist/contracts/space-info.js +22 -1
- package/dist/contracts/space-info.js.map +1 -1
- package/dist/fleet/resolve.d.ts +1 -1
- package/dist/fleet/resolve.d.ts.map +1 -1
- package/dist/fleet/resolve.js +5 -4
- package/dist/fleet/resolve.js.map +1 -1
- package/dist/fleet/send.d.ts.map +1 -1
- package/dist/fleet/send.js +8 -8
- package/dist/fleet/send.js.map +1 -1
- package/dist/index.d.ts +6 -32
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -128
- package/dist/index.js.map +1 -1
- package/dist/mcp.d.ts +14 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +29 -0
- package/dist/mcp.js.map +1 -0
- package/dist/planet/acquire.d.ts +3 -2
- package/dist/planet/acquire.d.ts.map +1 -1
- package/dist/planet/acquire.js +6 -4
- package/dist/planet/acquire.js.map +1 -1
- package/dist/planet/exit.d.ts.map +1 -1
- package/dist/planet/exit.js +1 -0
- package/dist/planet/exit.js.map +1 -1
- package/dist/planet/manager.d.ts +63 -0
- package/dist/planet/manager.d.ts.map +1 -1
- package/dist/planet/manager.js +125 -2
- package/dist/planet/manager.js.map +1 -1
- package/dist/planet/withdraw.d.ts +17 -0
- package/dist/planet/withdraw.d.ts.map +1 -0
- package/dist/planet/withdraw.js +25 -0
- package/dist/planet/withdraw.js.map +1 -0
- package/dist/storage/interface.d.ts +6 -0
- package/dist/storage/interface.d.ts.map +1 -1
- package/dist/storage/json-storage.d.ts +1 -0
- package/dist/storage/json-storage.d.ts.map +1 -1
- package/dist/storage/json-storage.js +10 -1
- package/dist/storage/json-storage.js.map +1 -1
- package/dist/tool-handling/cli-tool-generator.d.ts +22 -0
- package/dist/tool-handling/cli-tool-generator.d.ts.map +1 -0
- package/dist/tool-handling/cli-tool-generator.js +345 -0
- package/dist/tool-handling/cli-tool-generator.js.map +1 -0
- package/dist/tool-handling/cli.d.ts +19 -0
- package/dist/tool-handling/cli.d.ts.map +1 -0
- package/dist/tool-handling/cli.js +472 -0
- package/dist/tool-handling/cli.js.map +1 -0
- package/dist/tool-handling/index.d.ts +15 -0
- package/dist/tool-handling/index.d.ts.map +1 -0
- package/dist/tool-handling/index.js +32 -0
- package/dist/tool-handling/index.js.map +1 -0
- package/dist/tool-handling/mcp.d.ts +22 -0
- package/dist/tool-handling/mcp.d.ts.map +1 -0
- package/dist/tool-handling/mcp.js +88 -0
- package/dist/tool-handling/mcp.js.map +1 -0
- package/dist/tool-handling/types.d.ts +72 -0
- package/dist/tool-handling/types.d.ts.map +1 -0
- package/dist/tool-handling/types.js +10 -0
- package/dist/tool-handling/types.js.map +1 -0
- package/dist/tools/acquire_planets.d.ts +7 -5
- package/dist/tools/acquire_planets.d.ts.map +1 -1
- package/dist/tools/acquire_planets.js +28 -42
- package/dist/tools/acquire_planets.js.map +1 -1
- package/dist/tools/exit_planets.d.ts +7 -3
- package/dist/tools/exit_planets.d.ts.map +1 -1
- package/dist/tools/exit_planets.js +20 -9
- package/dist/tools/exit_planets.js.map +1 -1
- package/dist/tools/get_my_planets.d.ts +3 -2
- package/dist/tools/get_my_planets.d.ts.map +1 -1
- package/dist/tools/get_my_planets.js +5 -4
- package/dist/tools/get_my_planets.js.map +1 -1
- package/dist/tools/get_native_token_balance.d.ts +6 -0
- package/dist/tools/get_native_token_balance.d.ts.map +1 -0
- package/dist/tools/get_native_token_balance.js +64 -0
- package/dist/tools/get_native_token_balance.js.map +1 -0
- package/dist/tools/get_pending_exits.d.ts +2 -1
- package/dist/tools/get_pending_exits.d.ts.map +1 -1
- package/dist/tools/get_pending_exits.js +5 -4
- package/dist/tools/get_pending_exits.js.map +1 -1
- package/dist/tools/get_pending_fleets.d.ts +2 -1
- package/dist/tools/get_pending_fleets.d.ts.map +1 -1
- package/dist/tools/get_pending_fleets.js +5 -4
- package/dist/tools/get_pending_fleets.js.map +1 -1
- package/dist/tools/get_planets_around.d.ts +8 -4
- package/dist/tools/get_planets_around.d.ts.map +1 -1
- package/dist/tools/get_planets_around.js +40 -15
- package/dist/tools/get_planets_around.js.map +1 -1
- package/dist/tools/get_play_token_balance.d.ts +6 -0
- package/dist/tools/get_play_token_balance.d.ts.map +1 -0
- package/dist/tools/get_play_token_balance.js +80 -0
- package/dist/tools/get_play_token_balance.js.map +1 -0
- package/dist/tools/index.d.ts +7 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +7 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/missiv_get_user.d.ts +6 -0
- package/dist/tools/missiv_get_user.d.ts.map +1 -0
- package/dist/tools/missiv_get_user.js +50 -0
- package/dist/tools/missiv_get_user.js.map +1 -0
- package/dist/tools/missiv_register.d.ts +6 -0
- package/dist/tools/missiv_register.d.ts.map +1 -0
- package/dist/tools/missiv_register.js +103 -0
- package/dist/tools/missiv_register.js.map +1 -0
- package/dist/tools/resolve_fleet.d.ts +3 -2
- package/dist/tools/resolve_fleet.d.ts.map +1 -1
- package/dist/tools/resolve_fleet.js +5 -4
- package/dist/tools/resolve_fleet.js.map +1 -1
- package/dist/tools/send_fleet.d.ts +3 -2
- package/dist/tools/send_fleet.d.ts.map +1 -1
- package/dist/tools/send_fleet.js +16 -15
- package/dist/tools/send_fleet.js.map +1 -1
- package/dist/tools/simulate.d.ts +14 -0
- package/dist/tools/simulate.d.ts.map +1 -0
- package/dist/tools/simulate.js +123 -0
- package/dist/tools/simulate.js.map +1 -0
- package/dist/tools/simulate_multiple.d.ts +17 -0
- package/dist/tools/simulate_multiple.d.ts.map +1 -0
- package/dist/tools/simulate_multiple.js +166 -0
- package/dist/tools/simulate_multiple.js.map +1 -0
- package/dist/tools/verify_exit_status.d.ts +5 -3
- package/dist/tools/verify_exit_status.d.ts.map +1 -1
- package/dist/tools/verify_exit_status.js +12 -8
- package/dist/tools/verify_exit_status.js.map +1 -1
- package/dist/tools/withdraw.d.ts +9 -0
- package/dist/tools/withdraw.d.ts.map +1 -0
- package/dist/tools/withdraw.js +86 -0
- package/dist/tools/withdraw.js.map +1 -0
- package/dist/types.d.ts +31 -28
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -33
- package/dist/types.js.map +1 -1
- package/dist/util/time.d.ts +0 -30
- package/dist/util/time.d.ts.map +1 -1
- package/dist/util/time.js +0 -36
- package/dist/util/time.js.map +1 -1
- package/package.json +80 -77
- package/src/cli.ts +88 -59
- package/src/contracts/space-info.ts +24 -1
- package/src/fleet/resolve.ts +5 -4
- package/src/fleet/send.ts +9 -8
- package/src/index.ts +28 -162
- package/src/mcp.ts +46 -0
- package/src/planet/acquire.ts +6 -6
- package/src/planet/exit.ts +1 -0
- package/src/planet/manager.ts +163 -0
- package/src/planet/withdraw.ts +33 -0
- package/src/storage/interface.ts +7 -0
- package/src/storage/json-storage.ts +11 -1
- package/src/tool-handling/cli.ts +559 -0
- package/src/tool-handling/index.ts +45 -0
- package/src/tool-handling/mcp.ts +127 -0
- package/src/tool-handling/types.ts +86 -0
- package/src/tools/acquire_planets.ts +34 -60
- package/src/tools/exit_planets.ts +25 -12
- package/src/tools/get_native_token_balance.ts +72 -0
- package/src/tools/get_pending_exits.ts +8 -5
- package/src/tools/get_pending_fleets.ts +8 -5
- package/src/tools/get_planets_around.ts +45 -16
- package/src/tools/get_play_token_balance.ts +90 -0
- package/src/tools/index.ts +7 -1
- package/src/tools/missiv_get_user.ts +68 -0
- package/src/tools/missiv_register.ts +122 -0
- package/src/tools/resolve_fleet.ts +8 -5
- package/src/tools/send_fleet.ts +21 -18
- package/src/tools/simulate.ts +141 -0
- package/src/tools/simulate_multiple.ts +197 -0
- package/src/tools/verify_exit_status.ts +15 -11
- package/src/tools/withdraw.ts +100 -0
- package/src/types.ts +33 -71
- package/src/util/time.ts +0 -46
- package/src/cli-tool-generator.ts +0 -287
- package/src/helpers/index.ts +0 -59
- 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"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/tools/index.js
CHANGED
|
@@ -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
|
package/dist/tools/index.js.map
CHANGED
|
@@ -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,
|
|
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":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
|
|
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;
|
|
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
|
|
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,
|
|
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
|
-
|
|
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;
|
|
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"}
|
package/dist/tools/send_fleet.js
CHANGED
|
@@ -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
|
|
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":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,UAAU,EAAC,MAAM,
|
|
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"}
|