enfusion-mcp 0.2.2 → 0.3.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 (67) hide show
  1. package/README.md +90 -243
  2. package/dist/index.js +1 -1
  3. package/dist/server.d.ts.map +1 -1
  4. package/dist/server.js +2 -2
  5. package/dist/server.js.map +1 -1
  6. package/dist/tools/mod-build.js +8 -8
  7. package/dist/tools/mod-build.js.map +1 -1
  8. package/dist/tools/wb-clipboard.js +1 -1
  9. package/dist/tools/wb-clipboard.js.map +1 -1
  10. package/dist/tools/wb-components.js +1 -1
  11. package/dist/tools/wb-components.js.map +1 -1
  12. package/dist/tools/wb-connect.d.ts.map +1 -1
  13. package/dist/tools/wb-connect.js +6 -10
  14. package/dist/tools/wb-connect.js.map +1 -1
  15. package/dist/tools/wb-editor.js +5 -5
  16. package/dist/tools/wb-editor.js.map +1 -1
  17. package/dist/tools/wb-entities.js +6 -6
  18. package/dist/tools/wb-entities.js.map +1 -1
  19. package/dist/tools/wb-execute-action.js +1 -1
  20. package/dist/tools/wb-execute-action.js.map +1 -1
  21. package/dist/tools/wb-launch.d.ts +1 -2
  22. package/dist/tools/wb-launch.d.ts.map +1 -1
  23. package/dist/tools/wb-launch.js +18 -90
  24. package/dist/tools/wb-launch.js.map +1 -1
  25. package/dist/tools/wb-layers.js +1 -1
  26. package/dist/tools/wb-layers.js.map +1 -1
  27. package/dist/tools/wb-localization.js +1 -1
  28. package/dist/tools/wb-localization.js.map +1 -1
  29. package/dist/tools/wb-prefabs.js +2 -2
  30. package/dist/tools/wb-prefabs.js.map +1 -1
  31. package/dist/tools/wb-projects.js +1 -1
  32. package/dist/tools/wb-projects.js.map +1 -1
  33. package/dist/tools/wb-resources.js +2 -2
  34. package/dist/tools/wb-resources.js.map +1 -1
  35. package/dist/tools/wb-script-editor.d.ts.map +1 -1
  36. package/dist/tools/wb-script-editor.js +28 -2
  37. package/dist/tools/wb-script-editor.js.map +1 -1
  38. package/dist/tools/wb-state.d.ts.map +1 -1
  39. package/dist/tools/wb-state.js +17 -50
  40. package/dist/tools/wb-state.js.map +1 -1
  41. package/dist/tools/wb-terrain.js +1 -1
  42. package/dist/tools/wb-terrain.js.map +1 -1
  43. package/dist/workbench/client.d.ts +29 -12
  44. package/dist/workbench/client.d.ts.map +1 -1
  45. package/dist/workbench/client.js +160 -34
  46. package/dist/workbench/client.js.map +1 -1
  47. package/dist/workbench/protocol.js +1 -1
  48. package/dist/workbench/protocol.js.map +1 -1
  49. package/mod/Scripts/WorkbenchGame/EnfusionMCP/EMCP_WB_Clipboard.c +126 -0
  50. package/mod/Scripts/WorkbenchGame/EnfusionMCP/EMCP_WB_Components.c +229 -0
  51. package/mod/Scripts/WorkbenchGame/EnfusionMCP/EMCP_WB_CreateEntity.c +146 -0
  52. package/mod/Scripts/WorkbenchGame/EnfusionMCP/EMCP_WB_DeleteEntity.c +117 -0
  53. package/mod/Scripts/WorkbenchGame/EnfusionMCP/EMCP_WB_EditorControl.c +141 -0
  54. package/mod/Scripts/WorkbenchGame/EnfusionMCP/EMCP_WB_ExecuteAction.c +93 -0
  55. package/mod/Scripts/WorkbenchGame/EnfusionMCP/EMCP_WB_GetEntity.c +212 -0
  56. package/mod/Scripts/WorkbenchGame/EnfusionMCP/EMCP_WB_GetState.c +130 -0
  57. package/mod/Scripts/WorkbenchGame/EnfusionMCP/EMCP_WB_Layers.c +183 -0
  58. package/mod/Scripts/WorkbenchGame/EnfusionMCP/EMCP_WB_ListEntities.c +163 -0
  59. package/mod/Scripts/WorkbenchGame/EnfusionMCP/EMCP_WB_Localization.c +186 -0
  60. package/mod/Scripts/WorkbenchGame/EnfusionMCP/EMCP_WB_ModifyEntity.c +295 -0
  61. package/mod/Scripts/WorkbenchGame/EnfusionMCP/EMCP_WB_Ping.c +66 -0
  62. package/mod/Scripts/WorkbenchGame/EnfusionMCP/EMCP_WB_Prefabs.c +185 -0
  63. package/mod/Scripts/WorkbenchGame/EnfusionMCP/EMCP_WB_Resources.c +100 -0
  64. package/mod/Scripts/WorkbenchGame/EnfusionMCP/EMCP_WB_ScriptEditor.c +151 -0
  65. package/mod/Scripts/WorkbenchGame/EnfusionMCP/EMCP_WB_SelectEntity.c +200 -0
  66. package/mod/Scripts/WorkbenchGame/EnfusionMCP/EMCP_WB_Terrain.c +106 -0
  67. package/package.json +2 -1
package/README.md CHANGED
@@ -1,312 +1,159 @@
1
1
  # enfusion-mcp
2
2
 
3
- MCP server that gives AI full control of Arma Reforger modding from scaffolding a new mod to placing entities in the World Editor, all through natural language. Zero modding experience required.
3
+ MCP server for Arma Reforger modding. Describe what you want to build, and Claude handles everything API research, code generation, project scaffolding, Workbench control, and in-editor testing. Zero modding experience required.
4
4
 
5
- ```
6
- Claude ←→ MCP (stdio) ←→ TCP ←→ Workbench NET API (port 5775)
7
-
8
- NetApiHandler scripts
9
- (WorldEditorAPI, ScriptEditor,
10
- ResourceManager, etc.)
11
- ```
12
-
13
- 39 tools: 14 offline (API search, scaffolding, validation, build) + 25 live Workbench control over TCP.
14
- 3 guided prompts. 3 MCP resources. 10 mod patterns.
5
+ ## Install
15
6
 
16
- ## Quick Start
17
-
18
- ### 1. Connect to Claude Code
7
+ ### Claude Code
19
8
 
20
9
  ```bash
21
10
  claude mcp add --scope user enfusion-mcp -- npx -y enfusion-mcp
22
11
  ```
23
12
 
24
- With a default mod project path:
25
-
26
- ```bash
27
- claude mcp add --scope user -e ENFUSION_PROJECT_PATH=/path/to/your/mod enfusion-mcp -- npx -y enfusion-mcp
28
- ```
29
-
30
- Restart Claude Code or start a new session. Verify with `/mcp`.
31
-
32
- ### 2. Enable Workbench NET API
33
-
34
- Open Arma Reforger Tools → **File → Options → General → Net API** → check **Enabled**. Default port: **5775**.
35
-
36
- Or let Claude do it — the `wb_launch` tool can start Workbench for you.
37
-
38
- ### 3. Install the Workbench handler scripts
39
-
40
- Copy the `CC_WB_*.c` handler scripts into your mod's `Scripts/WorkbenchGame/` directory. These are the Workbench-side handlers that expose editor internals to the MCP.
41
-
42
- Handler scripts are in [`mod/Scripts/WorkbenchGame/ClaudeCommander/`](mod/Scripts/WorkbenchGame/ClaudeCommander/) (18 files). Restart Workbench or **Tools → Reload Scripts** after copying.
13
+ Restart Claude Code. Verify with `/mcp`.
43
14
 
44
15
  ### Claude Desktop
45
16
 
17
+ Add to your `claude_desktop_config.json`:
18
+
46
19
  ```json
47
20
  {
48
21
  "mcpServers": {
49
22
  "enfusion-mcp": {
50
23
  "command": "npx",
51
- "args": ["-y", "enfusion-mcp"],
52
- "env": {
53
- "ENFUSION_PROJECT_PATH": "C:\\path\\to\\your\\mod"
54
- }
24
+ "args": ["-y", "enfusion-mcp"]
55
25
  }
56
26
  }
57
27
  }
58
28
  ```
59
29
 
60
- ### From Source
61
-
62
- ```bash
63
- git clone https://github.com/Articulated7/enfusion-mcp.git
64
- cd enfusion-mcp
65
- npm install
66
- npm run scrape # Build API index from Workbench docs
67
- npm run build
68
- ```
30
+ ### Workbench Plugin
69
31
 
70
- Then point your MCP client at `dist/index.js`:
32
+ The live Workbench tools (`wb_*`) require handler scripts running inside Workbench. These ship with the package in `mod/Scripts/WorkbenchGame/EnfusionMCP/` and are installed automatically when Claude launches Workbench via `wb_launch`.
71
33
 
72
- ```json
73
- {
74
- "mcpServers": {
75
- "enfusion-mcp": {
76
- "command": "node",
77
- "args": ["C:\\path\\to\\enfusion-mcp\\dist\\index.js"]
78
- }
79
- }
80
- }
81
- ```
34
+ ## Usage
82
35
 
83
- ## What Can It Do?
36
+ Just ask Claude to make a mod:
84
37
 
85
- Ask Claude to create a mod from a description, and the MCP handles the entire pipeline:
38
+ - *"Create a HUD widget that shows player health and stamina"*
39
+ - *"Make a zombie survival game mode with wave spawning"*
40
+ - *"Create a custom faction called CSAT with desert camo soldiers"*
41
+ - *"Add an interactive object that heals the player when used"*
42
+ - *"Override the damage system to add armor mechanics"*
86
43
 
87
- 1. **Research** — Searches 8,693 Enfusion API classes to find the right parent classes and methods
88
- 2. **Scaffold** — Creates the full addon directory, `.gproj`, scripts, prefabs, configs, and UI layouts
89
- 3. **Launch** — Starts Workbench if needed, loads the project, registers resources
90
- 4. **Compile** — Reloads scripts, reports and fixes any compilation errors
91
- 5. **Test** — Enters play mode so you can verify in-game
44
+ Or use the guided prompts for structured workflows:
92
45
 
93
- No manual file editing, no Workbench navigation, no Enfusion knowledge required.
46
+ | Prompt | Description |
47
+ |--------|-------------|
48
+ | `/create-mod` | Full guided mod creation — from idea to built addon |
49
+ | `/modify-mod` | Modify or extend an existing mod project |
94
50
 
95
- ## Guided Prompts
51
+ Claude will:
96
52
 
97
- Three `/slash` prompts that walk Claude through complete workflows:
53
+ 1. **Research** the Enfusion API (8,693 indexed classes) to find the right parent classes and methods
54
+ 2. **Scaffold** the full addon — `.gproj`, scripts, prefabs, configs, UI layouts
55
+ 3. **Launch Workbench** if it's not already running
56
+ 4. **Load the project**, reload scripts, register resources
57
+ 5. **Validate and build** the addon
58
+ 6. **Enter play mode** so you can test in-game
98
59
 
99
- | Prompt | Description |
100
- |--------|-------------|
101
- | `/create-mod` | Full mod creation — API research, pattern selection, scaffold, scripts, prefabs, configs, layouts, Workbench integration, and testing |
102
- | `/add-script` | Create a new Enforce Script with the right type, parent class, and method stubs, then compile in Workbench |
103
- | `/add-prefab` | Create a new Entity Template with the right components, then register and open in Workbench |
60
+ ## Tools
104
61
 
105
- ## Offline Tools
62
+ ### Offline Tools
106
63
 
107
- These work without a running Workbench — API search, mod scaffolding, code generation, and static validation.
64
+ Work without Workbench running — API search, mod scaffolding, code generation, validation, and building.
108
65
 
109
66
  | Tool | What it does |
110
67
  |------|-------------|
111
68
  | `api_search` | Search 8,693 Enfusion/Arma Reforger API classes and methods |
112
- | `wiki_search` | Search tutorial and guide content |
113
- | `project_browse` | List files in a Workbench project directory |
114
- | `project_read` | Read project files |
115
- | `project_write` | Write/update project files |
116
- | `mod_create` | Scaffold a complete addon (directories, .gproj, pattern templates) |
117
- | `script_create` | Generate Enforce Script (.c) files from templates (7 script types) |
118
- | `prefab_create` | Generate Entity Template (.et) prefabs (7 prefab types) |
119
- | `layout_create` | Generate UI layout (.layout) files (5 layout types: hud, menu, dialog, list, custom) |
120
- | `config_create` | Generate config files (factions, missions, entity catalogs, editor placeables) |
69
+ | `wiki_search` | Search tutorial and guide content about Enfusion concepts |
70
+ | `project_browse` | List files in a mod project directory |
71
+ | `project_read` | Read any project file |
72
+ | `project_write` | Write or update project files |
73
+ | `mod_create` | Scaffold a complete addon with directory structure and `.gproj` |
74
+ | `script_create` | Generate Enforce Script (`.c`) files 7 types: component, gamemode, action, entity, manager, modded, basic |
75
+ | `prefab_create` | Generate Entity Template (`.et`) prefabs 7 types: character, vehicle, weapon, spawnpoint, gamemode, interactive, generic |
76
+ | `layout_create` | Generate UI layout (`.layout`) files 5 types: hud, menu, dialog, list, custom |
77
+ | `config_create` | Generate config files factions, missions, entity catalogs, editor placeables |
121
78
  | `server_config` | Generate dedicated server config for local testing |
122
- | `mod_validate` | Static validation (structure, scripts, prefabs, configs, naming) |
123
- | `mod_build` | Build addon via Workbench CLI |
124
-
125
- All creation tools cross-reference the appropriate Workbench tools — after creating a script, Claude knows to call `wb_reload`; after creating a prefab, it knows to call `wb_resources`.
79
+ | `mod_validate` | Validate project structure, scripts, prefabs, configs, and naming |
80
+ | `mod_build` | Build the addon using the Workbench CLI |
126
81
 
127
- ## Live Workbench Tools
82
+ ### Live Workbench Tools
128
83
 
129
- These control a running Workbench instance over TCP. Requires NET API enabled and the `CC_WB_*.c` handler scripts loaded.
84
+ Control a running Workbench instance over TCP. Requires the handler scripts installed (see setup above).
130
85
 
131
86
  | Tool | What it does |
132
87
  |------|-------------|
133
- | `wb_launch` | **Start Workbench** if not running, wait for NET API to respond |
134
- | `wb_connect` | Test connection, verify Workbench is reachable |
135
- | `wb_state` | Full state snapshot — mode, world name, entity count, selection, terrain bounds |
88
+ | `wb_launch` | Start Workbench if not running, wait for NET API |
89
+ | `wb_connect` | Test connection to Workbench |
90
+ | `wb_state` | Full state snapshot — mode, world, entity count, selection |
136
91
  | `wb_play` | Switch to game mode (Play in Editor) |
137
- | `wb_stop` | Switch back to edit mode |
92
+ | `wb_stop` | Return to edit mode |
138
93
  | `wb_save` | Save the current world |
139
- | `wb_undo_redo` | Undo or redo the last editor action |
140
- | `wb_open_resource` | Open a resource file in the appropriate editor |
141
- | `wb_reload` | Reload scripts or plugins (hot-reload without restarting) |
142
- | `wb_execute_action` | Execute any Workbench menu action by path |
143
- | `wb_entity_create` | Create entity from prefab at position/rotation |
94
+ | `wb_undo_redo` | Undo or redo the last action |
95
+ | `wb_open_resource` | Open a resource in its editor |
96
+ | `wb_reload` | Reload scripts or plugins without restarting |
97
+ | `wb_execute_action` | Run any Workbench menu action by path |
98
+ | `wb_entity_create` | Create entity from prefab at a position |
144
99
  | `wb_entity_delete` | Delete entity by name |
145
- | `wb_entity_list` | List/search/paginate entities in the world |
100
+ | `wb_entity_list` | List and search entities in the world |
146
101
  | `wb_entity_inspect` | Get entity details — properties, components, children |
147
- | `wb_entity_modify` | Move, rotate, rename, reparent, set/clear properties |
148
- | `wb_entity_select` | Select, deselect, clear selection, get selected |
102
+ | `wb_entity_modify` | Move, rotate, rename, reparent, set properties |
103
+ | `wb_entity_select` | Select, deselect, clear, get current selection |
149
104
  | `wb_component` | Add, remove, list entity components |
150
- | `wb_terrain` | Query terrain height at coordinates, get world bounds |
151
- | `wb_layers` | Create, delete, rename layers, set visibility/lock/active |
152
- | `wb_resources` | Register, rebuild, get info on resources |
153
- | `wb_prefabs` | Create prefab templates, save, GUID lookup, locate |
154
- | `wb_clipboard` | Copy, cut, paste, paste at cursor, duplicate |
155
- | `wb_script_editor` | Read/write/insert/remove lines in the open script file |
156
- | `wb_localization` | String table CRUD insert, delete, modify localization items |
157
- | `wb_projects` | List loaded projects, locate by name, **open .gproj files** |
105
+ | `wb_terrain` | Query terrain height and world bounds |
106
+ | `wb_layers` | Create, delete, rename layers, set visibility/active |
107
+ | `wb_resources` | Register resources, rebuild database |
108
+ | `wb_prefabs` | Create templates, save, GUID lookup |
109
+ | `wb_clipboard` | Copy, cut, paste, duplicate entities |
110
+ | `wb_script_editor` | Read/write lines in the open script file |
111
+ | `wb_localization` | String table CRUD for localization |
112
+ | `wb_projects` | List loaded projects, open `.gproj` files |
158
113
  | `wb_validate` | Material and texture validation |
159
114
 
160
- ## MCP Resources
161
-
162
- | URI | Description |
163
- |-----|-------------|
164
- | `enfusion://class/{className}` | Full class docs with inheritance tree, methods, ancestors/descendants |
165
- | `enfusion://pattern/{patternName}` | Mod pattern definition with scripts, prefabs, and config templates |
166
- | `enfusion://group/{groupName}` | API group with class list and count |
167
-
168
- ## Example Usage
169
-
170
- **Create a mod from scratch:**
171
- - *"Create a HUD widget that shows player health"*
172
- - *"Make a zombie survival game mode with wave spawning"*
173
- - *"Create a custom faction called CSAT with desert camo soldiers"*
174
-
175
- **Work with a running Workbench:**
176
- - *"Launch Workbench and open my mod project"*
177
- - *"Create a soldier at position 6400 0 6400 using the US rifleman prefab"*
178
- - *"Get the terrain height at 3200, 4800"*
179
- - *"Switch to play mode and test"*
180
- - *"Show me all the layers in this world"*
181
-
182
- **Research the API:**
183
- - *"Search the API for SCR_BaseGameMode"*
184
- - *"How does DamageManagerComponent work?"*
185
- - *"Find all classes related to inventory"*
186
-
187
- ## Mod Patterns
115
+ ### Mod Patterns
188
116
 
189
117
  10 built-in templates for `mod_create`:
190
118
 
191
- | Pattern | Description |
192
- |---------|-------------|
193
- | `game-mode` | Custom game mode with scoring and win conditions |
194
- | `custom-faction` | New faction with characters and loadouts |
195
- | `custom-action` | Interactive objects with UserAction |
196
- | `spawn-system` | Custom spawn manager with spawn points |
197
- | `custom-component` | Reusable ScriptComponent |
198
- | `modded-behavior` | Override existing class behavior |
199
- | `admin-tool` | Keybind-triggered admin commands |
200
- | `custom-vehicle` | New vehicle variant |
201
- | `weapon-reskin` | Modded weapon properties |
202
- | `hud-widget` | Custom HUD element |
203
-
204
- ## NetApiHandler Scripts
205
-
206
- The live tools require custom Enforce Script handlers running inside Workbench. Each handler is a class extending `NetApiHandler` with a `Request` and `Response` pair extending `JsonApiStruct`.
207
-
208
- **Location:** `Scripts/WorkbenchGame/ClaudeCommander/`
209
- **Important:** Must be in `WorkbenchGame`, not `Game` — the `NetApiHandler` base class only exists in the WorkbenchGame script module.
210
-
211
- | Handler | Actions |
212
- |---------|---------|
213
- | `CC_WB_Ping` | Health check, returns editor mode |
214
- | `CC_WB_GetState` | Full state snapshot |
215
- | `CC_WB_EditorControl` | play, stop, save, saveAs, undo, redo, openResource |
216
- | `CC_WB_ExecuteAction` | Execute menu actions by path |
217
- | `CC_WB_ListEntities` | Paginated entity list with name filter |
218
- | `CC_WB_GetEntity` | Entity details by name or index |
219
- | `CC_WB_CreateEntity` | Create entity from prefab resource path |
220
- | `CC_WB_DeleteEntity` | Delete entity by name |
221
- | `CC_WB_ModifyEntity` | move, rotate, rename, setProperty, clearProperty |
222
- | `CC_WB_SelectEntity` | select, deselect, clear, getSelected |
223
- | `CC_WB_Components` | add, remove, list components |
224
- | `CC_WB_Terrain` | getHeight, getBounds |
225
- | `CC_WB_Layers` | list, create, delete, rename, setActive, setVisibility, lock, unlock |
226
- | `CC_WB_Resources` | register, rebuild, getInfo, open |
227
- | `CC_WB_Prefabs` | createTemplate, save, getGuid, locate |
228
- | `CC_WB_Clipboard` | copy, cut, paste, pasteAtCursor, duplicate, hasCopied |
229
- | `CC_WB_ScriptEditor` | getCurrentFile, getLine, setLine, insertLine, removeLine, getLinesCount, openFile |
230
- | `CC_WB_Localization` | insert, delete, modify, getTable |
231
-
232
- ## Wire Protocol
233
-
234
- The Workbench NET API uses a binary TCP protocol. Each call opens a new TCP connection.
235
-
236
- **Request format:**
237
- ```
238
- [int32LE protocolVersion=1]
239
- [pascalString clientId]
240
- [pascalString contentType="JsonRPC"]
241
- [pascalString payload (JSON with "APIFunc": "HandlerClassName", ...params)]
242
- ```
119
+ `game-mode` `custom-faction` `custom-action` `spawn-system` `custom-component` `modded-behavior` `admin-tool` `custom-vehicle` `weapon-reskin` `hud-widget`
243
120
 
244
- **Response format:**
245
- ```
246
- [pascalString status] — "Ok" on success, error message otherwise
247
- [pascalString payload] — JSON data (present on success, empty on error)
248
- ```
121
+ ### MCP Resources
249
122
 
250
- Pascal string = 4-byte little-endian length prefix + UTF-8 bytes.
123
+ | URI | Description |
124
+ |-----|-------------|
125
+ | `enfusion://class/{className}` | Full class docs with inheritance, methods, ancestors/descendants |
126
+ | `enfusion://pattern/{patternName}` | Mod pattern definition with all templates |
127
+ | `enfusion://group/{groupName}` | API group with class list |
251
128
 
252
129
  ## Configuration
253
130
 
254
- | Variable | Description | Default |
255
- |----------|-------------|---------|
256
- | `ENFUSION_PROJECT_PATH` | Default mod project directory | *(none)* |
257
- | `ENFUSION_WORKBENCH_PATH` | Path to Arma Reforger Tools | `C:\Program Files (x86)\Steam\...` |
131
+ All optional. Sensible defaults are used when nothing is set.
132
+
133
+ | Environment Variable | Description | Default |
134
+ |---------------------|-------------|---------|
135
+ | `ENFUSION_PROJECT_PATH` | Default mod output directory | `~/Documents/My Games/ArmaReforgerWorkbench/addons` |
136
+ | `ENFUSION_WORKBENCH_PATH` | Path to Arma Reforger Tools | `C:\Program Files (x86)\Steam\steamapps\common\Arma Reforger Tools` |
258
137
  | `ENFUSION_WORKBENCH_HOST` | NET API host | `127.0.0.1` |
259
138
  | `ENFUSION_WORKBENCH_PORT` | NET API port | `5775` |
260
- | `ENFUSION_MCP_DATA_DIR` | Scraped API data directory | `./data` |
261
139
 
262
- Config is also loaded from `enfusion-mcp.config.json` (package-local) and `~/.enfusion-mcp/config.json` (user home). Environment variables override file config.
140
+ Config can also be loaded from `~/.enfusion-mcp/config.json`. Environment variables take priority.
263
141
 
264
- ## Development
142
+ ## Requirements
265
143
 
266
- ```bash
267
- npm run build # Compile TypeScript
268
- npm test # Run tests (158 tests)
269
- npm run test:watch # Watch mode
270
- npm run dev # Run from source with tsx
271
- npm run scrape # Rebuild API index
272
- ```
144
+ - **Node.js 20+**
145
+ - **Arma Reforger Tools** (Steam) — needed for `mod_build` and all `wb_*` tools
273
146
 
274
- ### Project Structure
147
+ ## Development
275
148
 
149
+ ```bash
150
+ git clone https://github.com/Articulated7/enfusion-mcp.git
151
+ cd enfusion-mcp
152
+ npm install
153
+ npm run scrape # Build API index from Workbench docs
154
+ npm run build
155
+ npm test # 163 tests
276
156
  ```
277
- enfusion-mcp/
278
- src/
279
- index.ts # Entry point (stdio MCP server)
280
- server.ts # Tool/prompt/resource registration
281
- config.ts # Multi-layer config loading
282
- workbench/
283
- protocol.ts # NET API TCP wire protocol encoder/decoder
284
- client.ts # WorkbenchClient — TCP connection manager
285
- tools/
286
- wb-launch.ts # Start Workbench executable
287
- wb-*.ts # 25 live Workbench control tools
288
- api-search.ts # + 14 offline tools
289
- layout-create.ts # UI layout generator
290
- ...
291
- formats/ # Enfusion text serialization parser
292
- templates/ # Code generators (script, prefab, config, layout)
293
- index/ # API search engine (8,693 classes)
294
- patterns/ # Mod pattern library (10 patterns)
295
- prompts/ # MCP prompt definitions (3 prompts)
296
- resources/ # MCP resource templates (3 resources)
297
- data/
298
- api/ # Scraped class data (~44 MB)
299
- wiki/ # Tutorial pages
300
- patterns/ # 10 mod pattern definitions
301
- tests/ # Vitest test suite (158 tests)
302
- ```
303
-
304
- ## Requirements
305
-
306
- - **Node.js 20+**
307
- - **Arma Reforger Tools** (Steam) — required for live tools + `mod_build`
308
- - **NET API enabled** in Workbench options (for live tools)
309
- - **CC_WB_*.c handler scripts** loaded in Workbench (for live tools)
310
157
 
311
158
  ## License
312
159
 
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@ import { logger } from "./utils/logger.js";
7
7
  const config = loadConfig();
8
8
  const server = new McpServer({
9
9
  name: "enfusion-mcp",
10
- version: "0.1.0",
10
+ version: "0.3.0",
11
11
  });
12
12
  registerTools(server, config);
13
13
  const transport = new StdioServerTransport();
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuCzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAwDrE"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuCzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAyDrE"}
package/dist/server.js CHANGED
@@ -57,8 +57,8 @@ export function registerTools(server, config) {
57
57
  registerServerConfig(server, config);
58
58
  registerLayoutCreate(server, config);
59
59
  // Workbench Live Control tools (Phase 4)
60
- const wbClient = new WorkbenchClient(config.workbenchHost, config.workbenchPort);
61
- registerWbLaunch(server, config, wbClient);
60
+ const wbClient = new WorkbenchClient(config.workbenchHost, config.workbenchPort, config);
61
+ registerWbLaunch(server, wbClient);
62
62
  registerWbConnect(server, wbClient);
63
63
  registerWbReload(server, wbClient);
64
64
  registerWbEditorTools(server, wbClient);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -5,14 +5,14 @@ import { spawn } from "node:child_process";
5
5
  const WORKBENCH_DIAG_EXE = "ArmaReforgerWorkbenchSteamDiag.exe";
6
6
  const BUILD_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes
7
7
  function findWorkbenchExe(workbenchPath) {
8
- // The Diag exe is in the root of the tools directory
9
- const exePath = join(workbenchPath, WORKBENCH_DIAG_EXE);
10
- if (existsSync(exePath))
11
- return exePath;
12
- // Also check one level up (in case workbenchPath points to a subdirectory)
13
- const parentPath = resolve(workbenchPath, "..", WORKBENCH_DIAG_EXE);
14
- if (existsSync(parentPath))
15
- return parentPath;
8
+ // Check Workbench subdirectory first (standard Steam layout: "Arma Reforger Tools/Workbench/")
9
+ const subPath = join(workbenchPath, "Workbench", WORKBENCH_DIAG_EXE);
10
+ if (existsSync(subPath))
11
+ return subPath;
12
+ // Check root (in case config points directly to Workbench/)
13
+ const rootPath = join(workbenchPath, WORKBENCH_DIAG_EXE);
14
+ if (existsSync(rootPath))
15
+ return rootPath;
16
16
  return null;
17
17
  }
18
18
  function runBuild(exePath, args, timeoutMs) {
@@ -1 +1 @@
1
- {"version":3,"file":"mod-build.js","sourceRoot":"","sources":["../../src/tools/mod-build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mod-build.js","sourceRoot":"","sources":["../../src/tools/mod-build.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ export function registerWbClipboard(server, client) {
9
9
  },
10
10
  }, async ({ action }) => {
11
11
  try {
12
- const result = await client.call("CC_WB_Clipboard", {
12
+ const result = await client.call("EMCP_WB_Clipboard", {
13
13
  action,
14
14
  });
15
15
  if (action === "hasCopied") {
@@ -1 +1 @@
1
- {"version":3,"file":"wb-clipboard.js","sourceRoot":"","sources":["../../src/tools/wb-clipboard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAAuB;IAC5E,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EACT,8IAA8I;QAChJ,WAAW,EAAE;YACX,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;iBACzE,QAAQ,CACP,6LAA6L,CAC9L;SACJ;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAA0B,iBAAiB,EAAE;gBAC3E,MAAM;aACP,CAAC,CAAC;YAEH,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;gBAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC;gBAC7D,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,kBAAkB,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE;yBAC9D;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,YAAY,GAA2B;gBAC3C,IAAI,EAAE,qBAAqB;gBAC3B,GAAG,EAAE,kBAAkB;gBACvB,KAAK,EAAE,uBAAuB;gBAC9B,aAAa,EAAE,2BAA2B;gBAC1C,SAAS,EAAE,sBAAsB;aAClC,CAAC;YAEF,MAAM,KAAK,GAAG,CAAC,KAAK,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC;YACxD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;gBAAE,KAAK,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACnF,IAAI,MAAM,CAAC,OAAO;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAEtD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACxE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvD,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,yBAAyB,MAAM,MAAM,GAAG,EAAE;qBACjD;iBACF;aACF,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"wb-clipboard.js","sourceRoot":"","sources":["../../src/tools/wb-clipboard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAAuB;IAC5E,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EACT,8IAA8I;QAChJ,WAAW,EAAE;YACX,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;iBACzE,QAAQ,CACP,6LAA6L,CAC9L;SACJ;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAA0B,mBAAmB,EAAE;gBAC7E,MAAM;aACP,CAAC,CAAC;YAEH,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;gBAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC;gBAC7D,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,kBAAkB,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE;yBAC9D;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,YAAY,GAA2B;gBAC3C,IAAI,EAAE,qBAAqB;gBAC3B,GAAG,EAAE,kBAAkB;gBACvB,KAAK,EAAE,uBAAuB;gBAC9B,aAAa,EAAE,2BAA2B;gBAC1C,SAAS,EAAE,sBAAsB;aAClC,CAAC;YAEF,MAAM,KAAK,GAAG,CAAC,KAAK,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC;YACxD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;gBAAE,KAAK,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACnF,IAAI,MAAM,CAAC,OAAO;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAEtD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACxE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvD,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,yBAAyB,MAAM,MAAM,GAAG,EAAE;qBACjD;iBACF;aACF,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -33,7 +33,7 @@ export function registerWbComponent(server, client) {
33
33
  params.componentClass = componentClass;
34
34
  if (componentIndex !== undefined)
35
35
  params.componentIndex = componentIndex;
36
- const result = await client.call("CC_WB_Components", params);
36
+ const result = await client.call("EMCP_WB_Components", params);
37
37
  if (action === "list") {
38
38
  const components = Array.isArray(result.components) ? result.components : [];
39
39
  if (components.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"wb-components.js","sourceRoot":"","sources":["../../src/tools/wb-components.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wb-components.js","sourceRoot":"","sources":["../../src/tools/wb-components.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"wb-connect.d.ts","sourceRoot":"","sources":["../../src/tools/wb-connect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI,CA+ClF"}
1
+ {"version":3,"file":"wb-connect.d.ts","sourceRoot":"","sources":["../../src/tools/wb-connect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI,CA6ClF"}
@@ -1,6 +1,6 @@
1
1
  export function registerWbConnect(server, client) {
2
2
  server.registerTool("wb_connect", {
3
- description: "Test connection to Arma Reforger Workbench. Returns connection status, workbench mode, and world name. Use this to verify Workbench is running with the NET API enabled.",
3
+ description: "Test connection to Arma Reforger Workbench. Returns connection status and current editor mode. Use this to verify Workbench is running with the NET API enabled.",
4
4
  inputSchema: {},
5
5
  }, async () => {
6
6
  try {
@@ -10,24 +10,20 @@ export function registerWbConnect(server, client) {
10
10
  content: [
11
11
  {
12
12
  type: "text",
13
- text: "**Connection Failed**\n\nCould not reach Workbench. Ensure:\n1. Arma Reforger Tools (Workbench) is running\n2. NET API is enabled: File > Options > General > Net API\n3. The ClaudeMCP Workbench plugin is loaded",
13
+ text: "**Connection Failed**\n\nCould not reach Workbench. Ensure:\n1. Arma Reforger Tools (Workbench) is running\n2. NET API is enabled: File > Options > General > Net API\n3. The EnfusionMCP handler addon is loaded in Workbench",
14
14
  },
15
15
  ],
16
16
  };
17
17
  }
18
- // Get detailed state from our custom handler
19
- const details = await client.call("CC_WB_Ping");
18
+ // Get detailed state Ping returns: status, mode, message
19
+ const details = await client.call("EMCP_WB_Ping");
20
20
  const lines = [];
21
21
  lines.push("**Workbench Connected**\n");
22
22
  lines.push(`- **Status:** Connected`);
23
23
  if (details.mode)
24
24
  lines.push(`- **Mode:** ${details.mode}`);
25
- if (details.worldName)
26
- lines.push(`- **World:** ${details.worldName}`);
27
- if (details.version)
28
- lines.push(`- **Version:** ${details.version}`);
29
- if (details.clientId)
30
- lines.push(`- **Client ID:** ${details.clientId}`);
25
+ if (details.message)
26
+ lines.push(`- **Info:** ${details.message}`);
31
27
  return { content: [{ type: "text", text: lines.join("\n") }] };
32
28
  }
33
29
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"wb-connect.js","sourceRoot":"","sources":["../../src/tools/wb-connect.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,MAAuB;IAC1E,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,WAAW,EACT,0KAA0K;QAC5K,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,oNAAoN;yBAC3N;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,6CAA6C;YAC7C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAA0B,YAAY,CAAC,CAAC;YAEzE,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACtC,IAAI,OAAO,CAAC,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5D,IAAI,OAAO,CAAC,SAAS;gBAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YACvE,IAAI,OAAO,CAAC,OAAO;gBAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YACrE,IAAI,OAAO,CAAC,QAAQ;gBAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEzE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvD,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,4BAA4B,GAAG,4FAA4F;qBAClI;iBACF;aACF,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"wb-connect.js","sourceRoot":"","sources":["../../src/tools/wb-connect.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,MAAuB;IAC1E,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,WAAW,EACT,kKAAkK;QACpK,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,gOAAgO;yBACvO;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,2DAA2D;YAC3D,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAA0B,cAAc,CAAC,CAAC;YAE3E,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACtC,IAAI,OAAO,CAAC,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5D,IAAI,OAAO,CAAC,OAAO;gBAAE,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAElE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvD,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,4BAA4B,GAAG,4FAA4F;qBAClI;iBACF;aACF,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}