flockbay 0.10.15

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 (80) hide show
  1. package/README.md +56 -0
  2. package/bin/flockbay-mcp.mjs +56 -0
  3. package/bin/flockbay.mjs +78 -0
  4. package/dist/codex/flockbayMcpStdioBridge.cjs +383 -0
  5. package/dist/codex/flockbayMcpStdioBridge.d.cts +2 -0
  6. package/dist/codex/flockbayMcpStdioBridge.d.mts +2 -0
  7. package/dist/codex/flockbayMcpStdioBridge.mjs +381 -0
  8. package/dist/flockbayScreenshotGate-DJX3Is5d.mjs +136 -0
  9. package/dist/flockbayScreenshotGate-DkxU24cR.cjs +138 -0
  10. package/dist/index--o4BPz5o.cjs +10311 -0
  11. package/dist/index-CUp3juDS.mjs +10268 -0
  12. package/dist/index.cjs +43 -0
  13. package/dist/index.d.cts +1 -0
  14. package/dist/index.d.mts +1 -0
  15. package/dist/index.mjs +40 -0
  16. package/dist/lib.cjs +33 -0
  17. package/dist/lib.d.cts +957 -0
  18. package/dist/lib.d.mts +957 -0
  19. package/dist/lib.mjs +23 -0
  20. package/dist/runCodex-D3eT-TvB.cjs +3449 -0
  21. package/dist/runCodex-o6PCbHQ7.mjs +3446 -0
  22. package/dist/runGemini-Bt0oEj_g.mjs +3183 -0
  23. package/dist/runGemini-CBxZp6I7.cjs +3185 -0
  24. package/dist/types-C-jnUdn_.cjs +4498 -0
  25. package/dist/types-DGd6ea2Z.mjs +4450 -0
  26. package/kits/kit.open_world/kit.json +59 -0
  27. package/package.json +130 -0
  28. package/scripts/claude_local_launcher.cjs +73 -0
  29. package/scripts/claude_remote_launcher.cjs +16 -0
  30. package/scripts/claude_version_utils.cjs +391 -0
  31. package/scripts/ripgrep_launcher.cjs +33 -0
  32. package/scripts/session_hook_forwarder.cjs +49 -0
  33. package/scripts/test-codex-abort-history.mjs +77 -0
  34. package/scripts/unpack-tools.cjs +222 -0
  35. package/tools/licenses/difftastic-LICENSE +21 -0
  36. package/tools/licenses/ripgrep-LICENSE +3 -0
  37. package/tools/unreal-mcp/UPSTREAM_VERSION.md +8 -0
  38. package/tools/unreal-mcp/upstream/Docs/README.md +8 -0
  39. package/tools/unreal-mcp/upstream/Docs/Tools/README.md +7 -0
  40. package/tools/unreal-mcp/upstream/Docs/Tools/actor_tools.md +184 -0
  41. package/tools/unreal-mcp/upstream/Docs/Tools/blueprint_tools.md +268 -0
  42. package/tools/unreal-mcp/upstream/Docs/Tools/editor_tools.md +104 -0
  43. package/tools/unreal-mcp/upstream/Docs/Tools/node_tools.md +274 -0
  44. package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Config/FilterPlugin.ini +8 -0
  45. package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPBlueprintCommands.cpp +1160 -0
  46. package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPBlueprintNodeCommands.cpp +924 -0
  47. package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPCommonUtils.cpp +709 -0
  48. package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPEditorCommands.cpp +896 -0
  49. package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPProjectCommands.cpp +72 -0
  50. package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPUMGCommands.cpp +544 -0
  51. package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Private/MCPServerRunnable.cpp +321 -0
  52. package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Private/UnrealMCPBridge.cpp +419 -0
  53. package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Private/UnrealMCPModule.cpp +21 -0
  54. package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPBlueprintCommands.h +34 -0
  55. package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPBlueprintNodeCommands.h +27 -0
  56. package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPCommonUtils.h +59 -0
  57. package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPEditorCommands.h +40 -0
  58. package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPProjectCommands.h +20 -0
  59. package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPUMGCommands.h +82 -0
  60. package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Public/MCPServerRunnable.h +34 -0
  61. package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Public/UnrealMCPBridge.h +64 -0
  62. package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Public/UnrealMCPModule.h +22 -0
  63. package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/UnrealMCP.Build.cs +78 -0
  64. package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/UnrealMCP.uplugin +36 -0
  65. package/tools/unreal-mcp/upstream/Python/README.md +40 -0
  66. package/tools/unreal-mcp/upstream/Python/pyproject.toml +22 -0
  67. package/tools/unreal-mcp/upstream/Python/scripts/actors/test_cube.py +203 -0
  68. package/tools/unreal-mcp/upstream/Python/scripts/blueprints/test_create_and_spawn_blueprints_with_different_components.py +497 -0
  69. package/tools/unreal-mcp/upstream/Python/scripts/blueprints/test_create_and_spawn_cube_blueprint.py +194 -0
  70. package/tools/unreal-mcp/upstream/Python/scripts/node/test_component_reference.py +267 -0
  71. package/tools/unreal-mcp/upstream/Python/scripts/node/test_create_bird_blueprint_with_input_and_camera.py +618 -0
  72. package/tools/unreal-mcp/upstream/Python/scripts/node/test_input_mapping.py +366 -0
  73. package/tools/unreal-mcp/upstream/Python/scripts/node/test_physics_variables.py +390 -0
  74. package/tools/unreal-mcp/upstream/Python/tools/blueprint_tools.py +420 -0
  75. package/tools/unreal-mcp/upstream/Python/tools/editor_tools.py +369 -0
  76. package/tools/unreal-mcp/upstream/Python/tools/node_tools.py +430 -0
  77. package/tools/unreal-mcp/upstream/Python/tools/project_tools.py +64 -0
  78. package/tools/unreal-mcp/upstream/Python/tools/umg_tools.py +333 -0
  79. package/tools/unreal-mcp/upstream/Python/unreal_mcp_server.py +398 -0
  80. package/tools/unreal-mcp/upstream/Python/uv.lock +521 -0
@@ -0,0 +1,267 @@
1
+ #!/usr/bin/env python
2
+ """
3
+ Test script for component reference in blueprints via MCP.
4
+ This tests the fix for the component reference node issue.
5
+ """
6
+
7
+ import sys
8
+ import os
9
+ import time
10
+ import socket
11
+ import json
12
+ import logging
13
+ from typing import Dict, Any, Optional
14
+
15
+ # Add the parent directory to the path so we can import the server module
16
+ sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
17
+
18
+ # Set up logging
19
+ logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
20
+ logger = logging.getLogger("TestComponentReference")
21
+
22
+ def send_command(sock: socket.socket, command: str, params: Dict[str, Any]) -> Optional[Dict[str, Any]]:
23
+ """Send a command to the Unreal MCP server and get the response."""
24
+ try:
25
+ # Create command object
26
+ command_obj = {
27
+ "type": command,
28
+ "params": params
29
+ }
30
+
31
+ # Convert to JSON and send
32
+ command_json = json.dumps(command_obj)
33
+ logger.info(f"Sending command: {command_json}")
34
+ sock.sendall(command_json.encode('utf-8'))
35
+
36
+ # Receive response
37
+ chunks = []
38
+ while True:
39
+ chunk = sock.recv(4096)
40
+ if not chunk:
41
+ break
42
+ chunks.append(chunk)
43
+
44
+ # Try parsing to see if we have a complete response
45
+ try:
46
+ data = b''.join(chunks)
47
+ json.loads(data.decode('utf-8'))
48
+ # If we can parse it, we have the complete response
49
+ break
50
+ except json.JSONDecodeError:
51
+ # Not a complete JSON object yet, continue receiving
52
+ continue
53
+
54
+ # Parse response
55
+ data = b''.join(chunks)
56
+ response = json.loads(data.decode('utf-8'))
57
+ logger.info(f"Received response: {response}")
58
+ return response
59
+
60
+ except Exception as e:
61
+ logger.error(f"Error sending command: {e}")
62
+ return None
63
+
64
+ def main():
65
+ """Test component reference node creation and connection."""
66
+ try:
67
+ # Connect to the server
68
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
69
+ sock.connect(("127.0.0.1", 55557))
70
+
71
+ # Step 1: Create a blueprint
72
+ bp_params = {
73
+ "name": "TestCompRefBP",
74
+ "parent_class": "Actor"
75
+ }
76
+
77
+ response = send_command(sock, "create_blueprint", bp_params)
78
+ if not response or response.get("status") != "success":
79
+ logger.error(f"Failed to create blueprint: {response}")
80
+ return
81
+
82
+ logger.info("Blueprint created successfully!")
83
+
84
+ # Step 2: Add a static mesh component
85
+ component_params = {
86
+ "blueprint_name": "TestCompRefBP",
87
+ "component_type": "StaticMesh",
88
+ "component_name": "TestMesh",
89
+ "location": [0.0, 0.0, 0.0],
90
+ "rotation": [0.0, 0.0, 0.0],
91
+ "scale": [1.0, 1.0, 1.0]
92
+ }
93
+
94
+ sock.close()
95
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
96
+ sock.connect(("127.0.0.1", 55557))
97
+
98
+ response = send_command(sock, "add_component_to_blueprint", component_params)
99
+ if not response or response.get("status") != "success":
100
+ logger.error(f"Failed to add component: {response}")
101
+ return
102
+
103
+ logger.info("Static mesh component added successfully!")
104
+
105
+ # Step 3: Add an event (BeginPlay)
106
+ sock.close()
107
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
108
+ sock.connect(("127.0.0.1", 55557))
109
+
110
+ begin_play_params = {
111
+ "blueprint_name": "TestCompRefBP",
112
+ "event_type": "BeginPlay",
113
+ "node_position": [0, 0]
114
+ }
115
+
116
+ response = send_command(sock, "add_blueprint_event_node", begin_play_params)
117
+ if not response or response.get("status") != "success":
118
+ logger.error(f"Failed to add BeginPlay event: {response}")
119
+ return
120
+
121
+ begin_play_node_id = response.get("result", {}).get("node_id")
122
+ logger.info(f"BeginPlay event node added successfully with ID: {begin_play_node_id}")
123
+
124
+ # Step 4: Create component reference node
125
+ sock.close()
126
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
127
+ sock.connect(("127.0.0.1", 55557))
128
+
129
+ get_component_params = {
130
+ "blueprint_name": "TestCompRefBP",
131
+ "component_name": "TestMesh",
132
+ "node_position": [200, 0]
133
+ }
134
+
135
+ response = send_command(sock, "add_blueprint_get_self_component_reference", get_component_params)
136
+ if not response or response.get("status") != "success":
137
+ logger.error(f"Failed to add component reference node: {response}")
138
+ return
139
+
140
+ comp_ref_node_id = response.get("result", {}).get("node_id")
141
+ logger.info(f"Component reference node added successfully with ID: {comp_ref_node_id}")
142
+
143
+ # Step 5: Add AddForce function node
144
+ sock.close()
145
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
146
+ sock.connect(("127.0.0.1", 55557))
147
+
148
+ function_params = {
149
+ "blueprint_name": "TestCompRefBP",
150
+ "function_name": "AddForce",
151
+ "params": {
152
+ "Force": [0, 0, 1000]
153
+ },
154
+ "node_position": [400, 0]
155
+ }
156
+
157
+ response = send_command(sock, "add_blueprint_function_node", function_params)
158
+ if not response or response.get("status") != "success":
159
+ logger.error(f"Failed to add AddForce function node: {response}")
160
+ return
161
+
162
+ function_node_id = response.get("result", {}).get("node_id")
163
+ logger.info(f"AddForce function node added successfully with ID: {function_node_id}")
164
+
165
+ # Step 6: Connect BeginPlay to AddForce (execution)
166
+ sock.close()
167
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
168
+ sock.connect(("127.0.0.1", 55557))
169
+
170
+ connect_exec_params = {
171
+ "blueprint_name": "TestCompRefBP",
172
+ "source_node_id": begin_play_node_id,
173
+ "source_pin": "Then", # Execution pin on BeginPlay
174
+ "target_node_id": function_node_id,
175
+ "target_pin": "Execute" # Execution pin on function
176
+ }
177
+
178
+ response = send_command(sock, "connect_blueprint_nodes", connect_exec_params)
179
+ if not response or response.get("status") != "success":
180
+ logger.error(f"Failed to connect execution pins: {response}")
181
+ return
182
+
183
+ logger.info("Connected BeginPlay to AddForce execution pins!")
184
+
185
+ # Step 7: Connect component reference to AddForce target
186
+ sock.close()
187
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
188
+ sock.connect(("127.0.0.1", 55557))
189
+
190
+ # In UE5.5, the output pin of a component reference is named after the component itself
191
+ component_name = "TestMesh" # Use the same name as defined in the component
192
+ connect_target_params = {
193
+ "blueprint_name": "TestCompRefBP",
194
+ "source_node_id": comp_ref_node_id,
195
+ "source_pin": component_name, # Use component name as pin name
196
+ "target_node_id": function_node_id,
197
+ "target_pin": "Target" # Target pin on AddForce
198
+ }
199
+
200
+ response = send_command(sock, "connect_blueprint_nodes", connect_target_params)
201
+ logger.warning(f"Pin connection response: {response}")
202
+ if not response or response.get("status") != "success" or not response.get("result", {}).get("success", False):
203
+ logger.error(f"Failed to connect component reference: {response}")
204
+ # Try alternate pin names if needed
205
+ fallback_pin_names = ["Value", "ReturnValue"]
206
+ for pin_name in fallback_pin_names:
207
+ logger.info(f"Trying with alternative pin name: '{pin_name}'")
208
+ connect_target_params["source_pin"] = pin_name
209
+
210
+ sock.close()
211
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
212
+ sock.connect(("127.0.0.1", 55557))
213
+
214
+ response = send_command(sock, "connect_blueprint_nodes", connect_target_params)
215
+ if response and response.get("status") == "success" and response.get("result", {}).get("success", False):
216
+ logger.info(f"Successfully connected using pin name: '{pin_name}'")
217
+ break
218
+ else:
219
+ logger.error("Failed to connect with all pin name options")
220
+ return
221
+
222
+ logger.info("Connected component reference to AddForce target!")
223
+
224
+ # Step 8: Compile Blueprint
225
+ sock.close()
226
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
227
+ sock.connect(("127.0.0.1", 55557))
228
+
229
+ compile_params = {
230
+ "blueprint_name": "TestCompRefBP"
231
+ }
232
+
233
+ response = send_command(sock, "compile_blueprint", compile_params)
234
+ if not response or response.get("status") != "success":
235
+ logger.error(f"Failed to compile blueprint: {response}")
236
+ return
237
+
238
+ logger.info("Blueprint compiled successfully!")
239
+
240
+ # Step 9: Spawn the actor
241
+ sock.close()
242
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
243
+ sock.connect(("127.0.0.1", 55557))
244
+
245
+ spawn_params = {
246
+ "blueprint_name": "TestCompRefBP",
247
+ "actor_name": "TestCompRefActor",
248
+ "location": [0.0, 0.0, 100.0],
249
+ "rotation": [0.0, 0.0, 0.0],
250
+ "scale": [1.0, 1.0, 1.0]
251
+ }
252
+
253
+ response = send_command(sock, "spawn_blueprint_actor", spawn_params)
254
+ if not response or response.get("status") != "success":
255
+ logger.error(f"Failed to spawn actor: {response}")
256
+ return
257
+
258
+ logger.info("Actor spawned successfully! The mesh should move up on BeginPlay.")
259
+
260
+ sock.close()
261
+
262
+ except Exception as e:
263
+ logger.error(f"Error: {e}")
264
+ sys.exit(1)
265
+
266
+ if __name__ == "__main__":
267
+ main()