@bkm016/calcite 0.2.0 → 0.5.0

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 (93) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +206 -18
  3. package/dist/accounts.js +4 -2
  4. package/dist/accounts.js.map +1 -1
  5. package/dist/cli.js +16 -127
  6. package/dist/cli.js.map +1 -1
  7. package/dist/client-core.d.ts +23 -12
  8. package/dist/client-core.js +227 -244
  9. package/dist/client-core.js.map +1 -1
  10. package/dist/client.d.ts +60 -13
  11. package/dist/client.js +76 -18
  12. package/dist/client.js.map +1 -1
  13. package/dist/display.d.ts +0 -6
  14. package/dist/display.js +31 -44
  15. package/dist/display.js.map +1 -1
  16. package/dist/feed.d.ts +17 -0
  17. package/dist/feed.js +47 -0
  18. package/dist/feed.js.map +1 -0
  19. package/dist/game-run.d.ts +30 -0
  20. package/dist/game-run.js +51 -0
  21. package/dist/game-run.js.map +1 -0
  22. package/dist/hmc.d.ts +7 -0
  23. package/dist/hmc.js +42 -31
  24. package/dist/hmc.js.map +1 -1
  25. package/dist/index.d.ts +4 -2
  26. package/dist/index.js +2 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/install.d.ts +6 -0
  29. package/dist/install.js +26 -3
  30. package/dist/install.js.map +1 -1
  31. package/dist/java.js +11 -2
  32. package/dist/java.js.map +1 -1
  33. package/dist/launch.d.ts +79 -0
  34. package/dist/launch.js +142 -0
  35. package/dist/launch.js.map +1 -0
  36. package/dist/lock.js +18 -18
  37. package/dist/lock.js.map +1 -1
  38. package/dist/mcp/accounts.d.ts +3 -0
  39. package/dist/mcp/accounts.js +45 -0
  40. package/dist/mcp/accounts.js.map +1 -0
  41. package/dist/mcp/act.d.ts +3 -0
  42. package/dist/mcp/act.js +129 -0
  43. package/dist/mcp/act.js.map +1 -0
  44. package/dist/mcp/extensions.d.ts +3 -0
  45. package/dist/mcp/extensions.js +21 -0
  46. package/dist/mcp/extensions.js.map +1 -0
  47. package/dist/mcp/index.d.ts +13 -0
  48. package/dist/mcp/index.js +58 -0
  49. package/dist/mcp/index.js.map +1 -0
  50. package/dist/mcp/items.d.ts +3 -0
  51. package/dist/mcp/items.js +71 -0
  52. package/dist/mcp/items.js.map +1 -0
  53. package/dist/mcp/lifecycle.d.ts +3 -0
  54. package/dist/mcp/lifecycle.js +120 -0
  55. package/dist/mcp/lifecycle.js.map +1 -0
  56. package/dist/mcp/observe.d.ts +3 -0
  57. package/dist/mcp/observe.js +110 -0
  58. package/dist/mcp/observe.js.map +1 -0
  59. package/dist/mcp/shared.d.ts +49 -0
  60. package/dist/mcp/shared.js +56 -0
  61. package/dist/mcp/shared.js.map +1 -0
  62. package/dist/mcp/tasks.d.ts +15 -0
  63. package/dist/mcp/tasks.js +46 -0
  64. package/dist/mcp/tasks.js.map +1 -0
  65. package/dist/mcp.js +35 -3
  66. package/dist/mcp.js.map +1 -1
  67. package/dist/mods.d.ts +2 -0
  68. package/dist/mods.js +35 -4
  69. package/dist/mods.js.map +1 -1
  70. package/dist/mojang.d.ts +5 -1
  71. package/dist/mojang.js.map +1 -1
  72. package/dist/names.js +30 -8
  73. package/dist/names.js.map +1 -1
  74. package/dist/net.js +25 -19
  75. package/dist/net.js.map +1 -1
  76. package/dist/paper.d.ts +46 -0
  77. package/dist/paper.js +200 -0
  78. package/dist/paper.js.map +1 -0
  79. package/dist/probe-server.d.ts +14 -4
  80. package/dist/probe-server.js +15 -10
  81. package/dist/probe-server.js.map +1 -1
  82. package/dist/repl.d.ts +6 -0
  83. package/dist/repl.js +207 -0
  84. package/dist/repl.js.map +1 -0
  85. package/dist/stage.d.ts +6 -0
  86. package/dist/stage.js +19 -0
  87. package/dist/stage.js.map +1 -0
  88. package/dist/types.d.ts +167 -3
  89. package/dist/types.js +12 -1
  90. package/dist/types.js.map +1 -1
  91. package/dist/zip.js.map +1 -1
  92. package/package.json +11 -3
  93. package/vendor/calcite-probe.jar +0 -0
package/dist/types.d.ts CHANGED
@@ -28,8 +28,15 @@ export interface ClientOptions {
28
28
  * Mods Calcite placed earlier and no longer listed are removed; other files in the folder are kept.
29
29
  */
30
30
  mods?: string[];
31
- /** Server to join ("host[:port]"). Without a server the client stays on the title screen. */
31
+ /**
32
+ * Probe extensions: jars implementing {@code calcite.probe.api.CalciteExtension} (local files or http(s) URLs).
33
+ * They add commands ({@link ExtensionCommand}) and events to the bot; see the README.
34
+ */
35
+ extensions?: string[];
36
+ /** Server to join ("host[:port]"). Without a server or a world the client stays on the title screen. */
32
37
  server?: string | ServerAddress;
38
+ /** Singleplayer world to play in instead of a server: a save name, created when missing. */
39
+ world?: string | WorldOptions;
33
40
  /** Account: offline (any username, for online-mode=false servers) or a stored Microsoft account. */
34
41
  account?: Account;
35
42
  /**
@@ -64,6 +71,34 @@ export interface LogLine {
64
71
  source: 'game' | 'calcite';
65
72
  line: string;
66
73
  }
74
+ /** A command added by a probe extension or a mod (through the mod bridge). */
75
+ export interface ExtensionCommand {
76
+ /** Full name, e.g. "hud.bossbars". */
77
+ name: string;
78
+ description?: string;
79
+ /** JSON schema of the arguments, when the extension declares one. */
80
+ schema?: Record<string, unknown>;
81
+ /** Extension id, or "mod" for commands registered by a mod through the bridge. */
82
+ source: string;
83
+ }
84
+ export interface ExtensionInfo {
85
+ jar: string;
86
+ ids: string[];
87
+ /** Why the jar could not be loaded. */
88
+ error?: string;
89
+ }
90
+ /**
91
+ * An event from the game: built-in ones ("world.join", "player.hurt", "inventory.change", ... — see the README)
92
+ * and those sent by extensions and mods.
93
+ */
94
+ export interface GameEvent {
95
+ seq: number;
96
+ time: number;
97
+ name: string;
98
+ data: unknown;
99
+ }
100
+ /** @deprecated Renamed to {@link GameEvent}. */
101
+ export type ExtensionEvent = GameEvent;
67
102
  export interface ChatLine {
68
103
  seq: number;
69
104
  time: number;
@@ -100,15 +135,32 @@ export interface BlockPosition {
100
135
  }
101
136
  export type BlockFace = 'down' | 'up' | 'north' | 'south' | 'west' | 'east';
102
137
  export type ClickMode = 'pickup' | 'quick_move' | 'swap' | 'clone' | 'throw' | 'quick_craft' | 'pickup_all';
138
+ export interface WalkOptions {
139
+ /** Target height; without it any height at x/z counts. */
140
+ y?: number;
141
+ /** Stop within this many blocks (default 0.5). */
142
+ range?: number;
143
+ sprint?: boolean;
144
+ /** Walk in a straight line instead of planning a path. */
145
+ direct?: boolean;
146
+ /** Stop with reason "damaged" when the player is hurt. */
147
+ stopOnDamage?: boolean;
148
+ timeoutMs?: number;
149
+ }
103
150
  export interface WalkResult {
104
151
  arrived: boolean;
105
- /** Why it stopped early: "stuck" or "timeout". */
152
+ /**
153
+ * Why it stopped early: "no_path" (unreachable through the loaded terrain; the player still gets as close as
154
+ * it can), "stuck", "off_path" (pushed away and re-planning failed), "timeout" or "damaged".
155
+ */
106
156
  reason?: string;
107
- /** Remaining horizontal distance. */
157
+ /** Remaining distance. */
108
158
  distance: number;
109
159
  x: number;
110
160
  y: number;
111
161
  z: number;
162
+ /** How often the path was planned again after the player was pushed off it. */
163
+ replans?: number;
112
164
  }
113
165
  export interface DigResult {
114
166
  broken: boolean;
@@ -116,6 +168,86 @@ export interface DigResult {
116
168
  block?: string;
117
169
  ticks?: number;
118
170
  }
171
+ export interface BlockMatch extends BlockPosition {
172
+ id: string;
173
+ /** Distance from the player's feet. */
174
+ distance: number;
175
+ }
176
+ export interface BlockSearch {
177
+ /** Block ids or patterns: "oak_log", "minecraft:*_ore", "*planks" ("minecraft:" is implied). */
178
+ blocks: string | string[];
179
+ /** Search radius around the player in blocks (default 32, at most 128). */
180
+ radius?: number;
181
+ /** Most matches to return, nearest first (default 16). */
182
+ limit?: number;
183
+ }
184
+ export interface BlockSearchResult {
185
+ count: number;
186
+ /** The search ran out of time before covering the whole radius. */
187
+ truncated?: boolean;
188
+ blocks: BlockMatch[];
189
+ }
190
+ export interface NearbyEntity {
191
+ id: number;
192
+ type: string;
193
+ name?: string;
194
+ /** Position relative to the player: [dx, dy, dz]. */
195
+ offset: [number, number, number];
196
+ distance: number;
197
+ health?: number;
198
+ }
199
+ /** A compact description of the player's surroundings, sized for a language model. */
200
+ export interface Surroundings {
201
+ x: number;
202
+ y: number;
203
+ z: number;
204
+ facing: string;
205
+ dimension?: string;
206
+ biome?: string;
207
+ /** 0-23999; 0 is sunrise, 6000 noon, 13000 night. */
208
+ timeOfDay?: number;
209
+ raining?: boolean;
210
+ thundering?: boolean;
211
+ /** The block under the player's feet. */
212
+ standingOn?: string;
213
+ /** The block the player stands in, when not air (water, tall grass, ...). */
214
+ in?: string;
215
+ /** Top-down map rows from north to south, west to east; the player is '@'. See {@link legend}. */
216
+ map: string[];
217
+ /** World [x, z] of the map's first character. */
218
+ mapOrigin: [number, number];
219
+ /** What the map characters mean. */
220
+ legend: string;
221
+ /** Most common blocks around the player with the nearest position of each. */
222
+ blocks: {
223
+ id: string;
224
+ count: number;
225
+ nearest: [number, number, number];
226
+ }[];
227
+ entities: NearbyEntity[];
228
+ }
229
+ export interface CraftResult {
230
+ item: string;
231
+ /** Items made. */
232
+ crafted: number;
233
+ /** Items asked for. */
234
+ count: number;
235
+ /** Set when fewer than {@code count} were crafted: "missing_ingredients", "inventory_full", "timeout", ... */
236
+ reason?: string;
237
+ }
238
+ export interface TransferResult {
239
+ item: string;
240
+ moved: number;
241
+ container: ContainerInfo;
242
+ }
243
+ /** The action that is running (walk_to, dig, craft) and its progress. */
244
+ export interface TaskStatus {
245
+ running: boolean;
246
+ /** "walk_to", "dig" or "craft". */
247
+ name?: string;
248
+ ticks?: number;
249
+ [progress: string]: unknown;
250
+ }
119
251
  export interface HitTarget {
120
252
  type: 'block' | 'entity' | 'miss';
121
253
  x?: number;
@@ -166,6 +298,12 @@ export interface ContainerInfo {
166
298
  })[];
167
299
  /** Stack held by the cursor. */
168
300
  carried?: ItemInfo;
301
+ /** Smelting state of a furnace, smoker or blast furnace; progress and fuel are 0-1. */
302
+ furnace?: {
303
+ lit: boolean;
304
+ progress?: number;
305
+ fuel?: number;
306
+ };
169
307
  }
170
308
  export interface GameState {
171
309
  ready: boolean;
@@ -212,11 +350,14 @@ export interface ClientStatus {
212
350
  loader?: string;
213
351
  /** File names of the mods Calcite placed in the mods folder. */
214
352
  mods?: string[];
353
+ /** Extension jars passed to the probe. */
354
+ extensions?: string[];
215
355
  phase: Phase;
216
356
  render: RenderMode;
217
357
  headless: boolean;
218
358
  account: Account;
219
359
  server?: ServerAddress;
360
+ world?: WorldOptions;
220
361
  gameDir: string;
221
362
  pid?: number;
222
363
  java?: string;
@@ -226,10 +367,33 @@ export interface ClientStatus {
226
367
  probeConnected: boolean;
227
368
  game?: GameState;
228
369
  }
370
+ /** Events emitted by a client, with their listener arguments. */
371
+ export interface ClientEvents {
372
+ phase: [phase: Phase];
373
+ log: [line: LogLine];
374
+ chat: [line: ChatLine];
375
+ state: [state: GameState];
376
+ /** A built-in game event or one sent by an extension. */
377
+ event: [event: GameEvent];
378
+ /** The game process exited (also before a reconnect). */
379
+ exit: [code: number | null];
380
+ error: [error: Error];
381
+ }
229
382
  export declare class CalciteError extends Error {
230
383
  readonly code: string;
231
384
  constructor(code: string, message: string);
232
385
  }
386
+ export interface WorldOptions {
387
+ /** Save folder name (letters, digits, - _ and spaces). */
388
+ name: string;
389
+ /** Create the world when it does not exist (default true). */
390
+ create?: boolean;
391
+ /** Game mode of a new world (default survival); new worlds always allow commands. */
392
+ gameMode?: 'survival' | 'creative' | 'hardcore';
393
+ /** Seed of a new world. */
394
+ seed?: string;
395
+ }
396
+ export declare function parseWorld(world: string | WorldOptions): WorldOptions;
233
397
  export declare function parseServer(server: string | ServerAddress): ServerAddress;
234
398
  /** Offline username derived from a client name (3-16 chars of [A-Za-z0-9_]). */
235
399
  export declare function defaultUsername(name: string): string;
package/dist/types.js CHANGED
@@ -6,6 +6,14 @@ export class CalciteError extends Error {
6
6
  this.name = 'CalciteError';
7
7
  }
8
8
  }
9
+ const WORLD_NAME_RE = /^[\p{L}\p{N}_-](?:[\p{L}\p{N} _-]{0,62}[\p{L}\p{N}_-])?$/u;
10
+ export function parseWorld(world) {
11
+ const w = typeof world === 'string' ? { name: world } : world;
12
+ if (!WORLD_NAME_RE.test(w.name)) {
13
+ throw new CalciteError('bad_world', `Invalid world name "${w.name}" (allowed: letters, digits, - _ and inner spaces, up to 64)`);
14
+ }
15
+ return { create: true, gameMode: 'survival', ...w };
16
+ }
9
17
  export function parseServer(server) {
10
18
  if (typeof server !== 'string')
11
19
  return { host: server.host, port: server.port || 25565 };
@@ -20,6 +28,9 @@ export function parseServer(server) {
20
28
  }
21
29
  /** Offline username derived from a client name (3-16 chars of [A-Za-z0-9_]). */
22
30
  export function defaultUsername(name) {
23
- return name.replace(/[^A-Za-z0-9_]/g, '_').slice(0, 16).padEnd(3, '_');
31
+ return name
32
+ .replace(/[^A-Za-z0-9_]/g, '_')
33
+ .slice(0, 16)
34
+ .padEnd(3, '_');
24
35
  }
25
36
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA+OA,MAAM,OAAO,YAAa,SAAQ,KAAK;IAE1B;IADX,YACW,IAAY,EACrB,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,SAAI,GAAJ,IAAI,CAAQ;QAIrB,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,UAAU,WAAW,CAAC,MAA8B;IACxD,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC;IACzF,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACxB,MAAM,EAAE,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/C,IAAI,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACpE,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG;QAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACxG,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAClC,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAyZA,MAAM,OAAO,YAAa,SAAQ,KAAK;IAE1B;IADX,YACW,IAAY,EACrB,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,SAAI,GAAJ,IAAI,CAAQ;QAIrB,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAaD,MAAM,aAAa,GAAG,2DAA2D,CAAC;AAElF,MAAM,UAAU,UAAU,CAAC,KAA4B;IACrD,MAAM,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,YAAY,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC,IAAI,8DAA8D,CAAC,CAAC;IACnI,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAA8B;IACxD,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC;IACzF,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACxB,MAAM,EAAE,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/C,IAAI,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACpE,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG;QAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACxG,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAClC,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,IAAI;SACR,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;SAC9B,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;SACZ,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACpB,CAAC"}
package/dist/zip.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"zip.js","sourceRoot":"","sources":["../src/zip.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zip.js","sourceRoot":"","sources":["../src/zip.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bkm016/calcite",
3
- "version": "0.2.0",
3
+ "version": "0.5.0",
4
4
  "description": "Drive a real Minecraft Java client from code or AI agents: launch, join servers, read client-side entities, chat, run commands and take screenshots. Ships a CLI and an MCP server.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -36,6 +36,7 @@
36
36
  "dist",
37
37
  "vendor/calcite-probe.jar",
38
38
  "README.md",
39
+ "CHANGELOG.md",
39
40
  "THIRD_PARTY_NOTICES.md",
40
41
  "LICENSE"
41
42
  ],
@@ -43,8 +44,10 @@
43
44
  "build": "npm run build:probe && npm run build:ts",
44
45
  "build:ts": "tsc -p tsconfig.json",
45
46
  "build:probe": "node scripts/build-probe.mjs",
46
- "test": "npm run build && node --test test/unit.test.mjs && node scripts/test-probe.mjs",
47
+ "test": "npm run build && node --test && node scripts/probe-tests.mjs",
47
48
  "typecheck": "tsc -p tsconfig.json --noEmit",
49
+ "lint": "eslint . && prettier --check .",
50
+ "format": "prettier --write .",
48
51
  "prepack": "npm run build"
49
52
  },
50
53
  "dependencies": {
@@ -53,7 +56,12 @@
53
56
  "zod": "^3.25.76"
54
57
  },
55
58
  "devDependencies": {
59
+ "@eslint/js": "^10.0.1",
56
60
  "@types/node": "^20.19.43",
57
- "typescript": "~5.9.3"
61
+ "eslint": "^10.12.0",
62
+ "globals": "^17.13.0",
63
+ "prettier": "^3.9.9",
64
+ "typescript": "~5.9.3",
65
+ "typescript-eslint": "^8.71.1"
58
66
  }
59
67
  }
Binary file