unity-open-mcp 0.1.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 (630) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +145 -0
  3. package/dist/batch-spawn.d.ts +33 -0
  4. package/dist/batch-spawn.js +329 -0
  5. package/dist/batch-spawn.js.map +1 -0
  6. package/dist/capabilities/build-capabilities.d.ts +155 -0
  7. package/dist/capabilities/build-capabilities.js +475 -0
  8. package/dist/capabilities/build-capabilities.js.map +1 -0
  9. package/dist/capabilities/list-rules.d.ts +45 -0
  10. package/dist/capabilities/list-rules.js +121 -0
  11. package/dist/capabilities/list-rules.js.map +1 -0
  12. package/dist/capabilities/rule-catalog.d.ts +44 -0
  13. package/dist/capabilities/rule-catalog.js +330 -0
  14. package/dist/capabilities/rule-catalog.js.map +1 -0
  15. package/dist/capabilities/tool-groups.d.ts +53 -0
  16. package/dist/capabilities/tool-groups.js +396 -0
  17. package/dist/capabilities/tool-groups.js.map +1 -0
  18. package/dist/cli/args.d.ts +36 -0
  19. package/dist/cli/args.js +239 -0
  20. package/dist/cli/args.js.map +1 -0
  21. package/dist/cli/cli.d.ts +23 -0
  22. package/dist/cli/cli.js +125 -0
  23. package/dist/cli/cli.js.map +1 -0
  24. package/dist/cli/commands.d.ts +37 -0
  25. package/dist/cli/commands.js +277 -0
  26. package/dist/cli/commands.js.map +1 -0
  27. package/dist/cli/ping-poller.d.ts +81 -0
  28. package/dist/cli/ping-poller.js +161 -0
  29. package/dist/cli/ping-poller.js.map +1 -0
  30. package/dist/compat.d.ts +32 -0
  31. package/dist/compat.js +121 -0
  32. package/dist/compat.js.map +1 -0
  33. package/dist/compiler-errors.d.ts +31 -0
  34. package/dist/compiler-errors.js +91 -0
  35. package/dist/compiler-errors.js.map +1 -0
  36. package/dist/compressible-router.d.ts +18 -0
  37. package/dist/compressible-router.js +191 -0
  38. package/dist/compressible-router.js.map +1 -0
  39. package/dist/compression/asset-model.d.ts +86 -0
  40. package/dist/compression/asset-model.js +15 -0
  41. package/dist/compression/asset-model.js.map +1 -0
  42. package/dist/compression/compact.d.ts +153 -0
  43. package/dist/compression/compact.js +501 -0
  44. package/dist/compression/compact.js.map +1 -0
  45. package/dist/dialog-dismiss.d.ts +197 -0
  46. package/dist/dialog-dismiss.js +533 -0
  47. package/dist/dialog-dismiss.js.map +1 -0
  48. package/dist/event-stream.d.ts +60 -0
  49. package/dist/event-stream.js +228 -0
  50. package/dist/event-stream.js.map +1 -0
  51. package/dist/gate-error.d.ts +18 -0
  52. package/dist/gate-error.js +11 -0
  53. package/dist/gate-error.js.map +1 -0
  54. package/dist/index.d.ts +3 -0
  55. package/dist/index.js +146 -0
  56. package/dist/index.js.map +1 -0
  57. package/dist/instance-discovery.d.ts +117 -0
  58. package/dist/instance-discovery.js +202 -0
  59. package/dist/instance-discovery.js.map +1 -0
  60. package/dist/live-client.d.ts +68 -0
  61. package/dist/live-client.js +583 -0
  62. package/dist/live-client.js.map +1 -0
  63. package/dist/offline.d.ts +75 -0
  64. package/dist/offline.js +1495 -0
  65. package/dist/offline.js.map +1 -0
  66. package/dist/package-version.d.ts +8 -0
  67. package/dist/package-version.js +41 -0
  68. package/dist/package-version.js.map +1 -0
  69. package/dist/ping-cache.d.ts +15 -0
  70. package/dist/ping-cache.js +10 -0
  71. package/dist/ping-cache.js.map +1 -0
  72. package/dist/project-health.d.ts +52 -0
  73. package/dist/project-health.js +177 -0
  74. package/dist/project-health.js.map +1 -0
  75. package/dist/resource-router.d.ts +26 -0
  76. package/dist/resource-router.js +143 -0
  77. package/dist/resource-router.js.map +1 -0
  78. package/dist/resources/index.d.ts +6 -0
  79. package/dist/resources/index.js +40 -0
  80. package/dist/resources/index.js.map +1 -0
  81. package/dist/results.d.ts +14 -0
  82. package/dist/results.js +22 -0
  83. package/dist/results.js.map +1 -0
  84. package/dist/router.d.ts +5 -0
  85. package/dist/router.js +2 -0
  86. package/dist/router.js.map +1 -0
  87. package/dist/routers.d.ts +44 -0
  88. package/dist/routers.js +73 -0
  89. package/dist/routers.js.map +1 -0
  90. package/dist/schema-defaults.d.ts +10 -0
  91. package/dist/schema-defaults.js +43 -0
  92. package/dist/schema-defaults.js.map +1 -0
  93. package/dist/skill/client-paths.d.ts +33 -0
  94. package/dist/skill/client-paths.js +131 -0
  95. package/dist/skill/client-paths.js.map +1 -0
  96. package/dist/skill/generate-skill.d.ts +38 -0
  97. package/dist/skill/generate-skill.js +389 -0
  98. package/dist/skill/generate-skill.js.map +1 -0
  99. package/dist/tool-router.d.ts +40 -0
  100. package/dist/tool-router.js +778 -0
  101. package/dist/tool-router.js.map +1 -0
  102. package/dist/tool-session-state.d.ts +55 -0
  103. package/dist/tool-session-state.js +116 -0
  104. package/dist/tool-session-state.js.map +1 -0
  105. package/dist/tools/agent-capabilities.d.ts +2 -0
  106. package/dist/tools/agent-capabilities.js +24 -0
  107. package/dist/tools/agent-capabilities.js.map +1 -0
  108. package/dist/tools/animation-create.d.ts +2 -0
  109. package/dist/tools/animation-create.js +31 -0
  110. package/dist/tools/animation-create.js.map +1 -0
  111. package/dist/tools/animation-get-data.d.ts +2 -0
  112. package/dist/tools/animation-get-data.js +23 -0
  113. package/dist/tools/animation-get-data.js.map +1 -0
  114. package/dist/tools/animation-modify.d.ts +2 -0
  115. package/dist/tools/animation-modify.js +45 -0
  116. package/dist/tools/animation-modify.js.map +1 -0
  117. package/dist/tools/animator-create.d.ts +2 -0
  118. package/dist/tools/animator-create.js +31 -0
  119. package/dist/tools/animator-create.js.map +1 -0
  120. package/dist/tools/animator-get-data.d.ts +2 -0
  121. package/dist/tools/animator-get-data.js +23 -0
  122. package/dist/tools/animator-get-data.js.map +1 -0
  123. package/dist/tools/animator-modify.d.ts +2 -0
  124. package/dist/tools/animator-modify.js +51 -0
  125. package/dist/tools/animator-modify.js.map +1 -0
  126. package/dist/tools/apply-fix.d.ts +2 -0
  127. package/dist/tools/apply-fix.js +39 -0
  128. package/dist/tools/apply-fix.js.map +1 -0
  129. package/dist/tools/assets-copy.d.ts +2 -0
  130. package/dist/tools/assets-copy.js +50 -0
  131. package/dist/tools/assets-copy.js.map +1 -0
  132. package/dist/tools/assets-create-folder.d.ts +2 -0
  133. package/dist/tools/assets-create-folder.js +53 -0
  134. package/dist/tools/assets-create-folder.js.map +1 -0
  135. package/dist/tools/assets-delete.d.ts +2 -0
  136. package/dist/tools/assets-delete.js +34 -0
  137. package/dist/tools/assets-delete.js.map +1 -0
  138. package/dist/tools/assets-move.d.ts +2 -0
  139. package/dist/tools/assets-move.js +50 -0
  140. package/dist/tools/assets-move.js.map +1 -0
  141. package/dist/tools/assets-refresh.d.ts +2 -0
  142. package/dist/tools/assets-refresh.js +37 -0
  143. package/dist/tools/assets-refresh.js.map +1 -0
  144. package/dist/tools/baseline-create.d.ts +2 -0
  145. package/dist/tools/baseline-create.js +20 -0
  146. package/dist/tools/baseline-create.js.map +1 -0
  147. package/dist/tools/bridge-status.d.ts +2 -0
  148. package/dist/tools/bridge-status.js +44 -0
  149. package/dist/tools/bridge-status.js.map +1 -0
  150. package/dist/tools/build-get-active-target.d.ts +2 -0
  151. package/dist/tools/build-get-active-target.js +16 -0
  152. package/dist/tools/build-get-active-target.js.map +1 -0
  153. package/dist/tools/build-get-defines.d.ts +2 -0
  154. package/dist/tools/build-get-defines.js +16 -0
  155. package/dist/tools/build-get-defines.js.map +1 -0
  156. package/dist/tools/build-get-scenes.d.ts +2 -0
  157. package/dist/tools/build-get-scenes.js +16 -0
  158. package/dist/tools/build-get-scenes.js.map +1 -0
  159. package/dist/tools/build-get-targets.d.ts +2 -0
  160. package/dist/tools/build-get-targets.js +18 -0
  161. package/dist/tools/build-get-targets.js.map +1 -0
  162. package/dist/tools/build-set-defines.d.ts +2 -0
  163. package/dist/tools/build-set-defines.js +50 -0
  164. package/dist/tools/build-set-defines.js.map +1 -0
  165. package/dist/tools/build-set-scenes.d.ts +2 -0
  166. package/dist/tools/build-set-scenes.js +60 -0
  167. package/dist/tools/build-set-scenes.js.map +1 -0
  168. package/dist/tools/build-set-target.d.ts +2 -0
  169. package/dist/tools/build-set-target.js +49 -0
  170. package/dist/tools/build-set-target.js.map +1 -0
  171. package/dist/tools/build-start.d.ts +2 -0
  172. package/dist/tools/build-start.js +64 -0
  173. package/dist/tools/build-start.js.map +1 -0
  174. package/dist/tools/capture-inline.d.ts +2 -0
  175. package/dist/tools/capture-inline.js +57 -0
  176. package/dist/tools/capture-inline.js.map +1 -0
  177. package/dist/tools/checkpoint-create.d.ts +2 -0
  178. package/dist/tools/checkpoint-create.js +16 -0
  179. package/dist/tools/checkpoint-create.js.map +1 -0
  180. package/dist/tools/compile-check.d.ts +2 -0
  181. package/dist/tools/compile-check.js +26 -0
  182. package/dist/tools/compile-check.js.map +1 -0
  183. package/dist/tools/component-add.d.ts +2 -0
  184. package/dist/tools/component-add.js +47 -0
  185. package/dist/tools/component-add.js.map +1 -0
  186. package/dist/tools/component-destroy.d.ts +2 -0
  187. package/dist/tools/component-destroy.js +46 -0
  188. package/dist/tools/component-destroy.js.map +1 -0
  189. package/dist/tools/component-get.d.ts +2 -0
  190. package/dist/tools/component-get.js +54 -0
  191. package/dist/tools/component-get.js.map +1 -0
  192. package/dist/tools/component-list-all.d.ts +2 -0
  193. package/dist/tools/component-list-all.js +38 -0
  194. package/dist/tools/component-list-all.js.map +1 -0
  195. package/dist/tools/component-modify.d.ts +2 -0
  196. package/dist/tools/component-modify.js +80 -0
  197. package/dist/tools/component-modify.js.map +1 -0
  198. package/dist/tools/console-clear.d.ts +2 -0
  199. package/dist/tools/console-clear.js +19 -0
  200. package/dist/tools/console-clear.js.map +1 -0
  201. package/dist/tools/console-log.d.ts +2 -0
  202. package/dist/tools/console-log.js +47 -0
  203. package/dist/tools/console-log.js.map +1 -0
  204. package/dist/tools/delta.d.ts +2 -0
  205. package/dist/tools/delta.js +17 -0
  206. package/dist/tools/delta.js.map +1 -0
  207. package/dist/tools/editor-add-layer.d.ts +2 -0
  208. package/dist/tools/editor-add-layer.js +51 -0
  209. package/dist/tools/editor-add-layer.js.map +1 -0
  210. package/dist/tools/editor-add-tag.d.ts +2 -0
  211. package/dist/tools/editor-add-tag.js +41 -0
  212. package/dist/tools/editor-add-tag.js.map +1 -0
  213. package/dist/tools/editor-get-layers.d.ts +2 -0
  214. package/dist/tools/editor-get-layers.js +22 -0
  215. package/dist/tools/editor-get-layers.js.map +1 -0
  216. package/dist/tools/editor-get-tags.d.ts +2 -0
  217. package/dist/tools/editor-get-tags.js +19 -0
  218. package/dist/tools/editor-get-tags.js.map +1 -0
  219. package/dist/tools/editor-redo.d.ts +2 -0
  220. package/dist/tools/editor-redo.js +27 -0
  221. package/dist/tools/editor-redo.js.map +1 -0
  222. package/dist/tools/editor-set-state.d.ts +2 -0
  223. package/dist/tools/editor-set-state.js +57 -0
  224. package/dist/tools/editor-set-state.js.map +1 -0
  225. package/dist/tools/editor-status.d.ts +2 -0
  226. package/dist/tools/editor-status.js +17 -0
  227. package/dist/tools/editor-status.js.map +1 -0
  228. package/dist/tools/editor-undo.d.ts +2 -0
  229. package/dist/tools/editor-undo.js +29 -0
  230. package/dist/tools/editor-undo.js.map +1 -0
  231. package/dist/tools/execute-csharp.d.ts +2 -0
  232. package/dist/tools/execute-csharp.js +74 -0
  233. package/dist/tools/execute-csharp.js.map +1 -0
  234. package/dist/tools/execute-menu.d.ts +2 -0
  235. package/dist/tools/execute-menu.js +40 -0
  236. package/dist/tools/execute-menu.js.map +1 -0
  237. package/dist/tools/find-members.d.ts +2 -0
  238. package/dist/tools/find-members.js +56 -0
  239. package/dist/tools/find-members.js.map +1 -0
  240. package/dist/tools/find-references.d.ts +2 -0
  241. package/dist/tools/find-references.js +29 -0
  242. package/dist/tools/find-references.js.map +1 -0
  243. package/dist/tools/gameobject-create.d.ts +2 -0
  244. package/dist/tools/gameobject-create.js +61 -0
  245. package/dist/tools/gameobject-create.js.map +1 -0
  246. package/dist/tools/gameobject-destroy.d.ts +2 -0
  247. package/dist/tools/gameobject-destroy.js +38 -0
  248. package/dist/tools/gameobject-destroy.js.map +1 -0
  249. package/dist/tools/gameobject-duplicate.d.ts +2 -0
  250. package/dist/tools/gameobject-duplicate.js +40 -0
  251. package/dist/tools/gameobject-duplicate.js.map +1 -0
  252. package/dist/tools/gameobject-find.d.ts +2 -0
  253. package/dist/tools/gameobject-find.js +59 -0
  254. package/dist/tools/gameobject-find.js.map +1 -0
  255. package/dist/tools/gameobject-modify.d.ts +2 -0
  256. package/dist/tools/gameobject-modify.js +76 -0
  257. package/dist/tools/gameobject-modify.js.map +1 -0
  258. package/dist/tools/gameobject-set-parent.d.ts +2 -0
  259. package/dist/tools/gameobject-set-parent.js +55 -0
  260. package/dist/tools/gameobject-set-parent.js.map +1 -0
  261. package/dist/tools/gate-budget-estimate.d.ts +2 -0
  262. package/dist/tools/gate-budget-estimate.js +59 -0
  263. package/dist/tools/gate-budget-estimate.js.map +1 -0
  264. package/dist/tools/generate-skill.d.ts +2 -0
  265. package/dist/tools/generate-skill.js +37 -0
  266. package/dist/tools/generate-skill.js.map +1 -0
  267. package/dist/tools/impact-preview.d.ts +2 -0
  268. package/dist/tools/impact-preview.js +50 -0
  269. package/dist/tools/impact-preview.js.map +1 -0
  270. package/dist/tools/index.d.ts +30 -0
  271. package/dist/tools/index.js +576 -0
  272. package/dist/tools/index.js.map +1 -0
  273. package/dist/tools/inputsystem-action-add.d.ts +2 -0
  274. package/dist/tools/inputsystem-action-add.js +61 -0
  275. package/dist/tools/inputsystem-action-add.js.map +1 -0
  276. package/dist/tools/inputsystem-actionmap-add.d.ts +2 -0
  277. package/dist/tools/inputsystem-actionmap-add.js +31 -0
  278. package/dist/tools/inputsystem-actionmap-add.js.map +1 -0
  279. package/dist/tools/inputsystem-asset-create.d.ts +2 -0
  280. package/dist/tools/inputsystem-asset-create.js +35 -0
  281. package/dist/tools/inputsystem-asset-create.js.map +1 -0
  282. package/dist/tools/inputsystem-binding-add.d.ts +2 -0
  283. package/dist/tools/inputsystem-binding-add.js +48 -0
  284. package/dist/tools/inputsystem-binding-add.js.map +1 -0
  285. package/dist/tools/inputsystem-binding-composite-add.d.ts +2 -0
  286. package/dist/tools/inputsystem-binding-composite-add.js +51 -0
  287. package/dist/tools/inputsystem-binding-composite-add.js.map +1 -0
  288. package/dist/tools/inputsystem-controlscheme-add.d.ts +2 -0
  289. package/dist/tools/inputsystem-controlscheme-add.js +43 -0
  290. package/dist/tools/inputsystem-controlscheme-add.js.map +1 -0
  291. package/dist/tools/inputsystem-get.d.ts +2 -0
  292. package/dist/tools/inputsystem-get.js +22 -0
  293. package/dist/tools/inputsystem-get.js.map +1 -0
  294. package/dist/tools/invoke-method.d.ts +2 -0
  295. package/dist/tools/invoke-method.js +104 -0
  296. package/dist/tools/invoke-method.js.map +1 -0
  297. package/dist/tools/list-assets.d.ts +2 -0
  298. package/dist/tools/list-assets.js +30 -0
  299. package/dist/tools/list-assets.js.map +1 -0
  300. package/dist/tools/list-rules.d.ts +2 -0
  301. package/dist/tools/list-rules.js +27 -0
  302. package/dist/tools/list-rules.js.map +1 -0
  303. package/dist/tools/manage-tools.d.ts +2 -0
  304. package/dist/tools/manage-tools.js +47 -0
  305. package/dist/tools/manage-tools.js.map +1 -0
  306. package/dist/tools/material-create.d.ts +2 -0
  307. package/dist/tools/material-create.js +37 -0
  308. package/dist/tools/material-create.js.map +1 -0
  309. package/dist/tools/material-get-keywords.d.ts +2 -0
  310. package/dist/tools/material-get-keywords.js +23 -0
  311. package/dist/tools/material-get-keywords.js.map +1 -0
  312. package/dist/tools/material-get-properties.d.ts +2 -0
  313. package/dist/tools/material-get-properties.js +32 -0
  314. package/dist/tools/material-get-properties.js.map +1 -0
  315. package/dist/tools/material-set-keyword.d.ts +2 -0
  316. package/dist/tools/material-set-keyword.js +42 -0
  317. package/dist/tools/material-set-keyword.js.map +1 -0
  318. package/dist/tools/material-set-property.d.ts +2 -0
  319. package/dist/tools/material-set-property.js +49 -0
  320. package/dist/tools/material-set-property.js.map +1 -0
  321. package/dist/tools/material-set-shader.d.ts +2 -0
  322. package/dist/tools/material-set-shader.js +39 -0
  323. package/dist/tools/material-set-shader.js.map +1 -0
  324. package/dist/tools/mutation-explain.d.ts +2 -0
  325. package/dist/tools/mutation-explain.js +44 -0
  326. package/dist/tools/mutation-explain.js.map +1 -0
  327. package/dist/tools/navigation-agent-add.d.ts +2 -0
  328. package/dist/tools/navigation-agent-add.js +38 -0
  329. package/dist/tools/navigation-agent-add.js.map +1 -0
  330. package/dist/tools/navigation-agent-set-destination.d.ts +2 -0
  331. package/dist/tools/navigation-agent-set-destination.js +33 -0
  332. package/dist/tools/navigation-agent-set-destination.js.map +1 -0
  333. package/dist/tools/navigation-get.d.ts +2 -0
  334. package/dist/tools/navigation-get.js +20 -0
  335. package/dist/tools/navigation-get.js.map +1 -0
  336. package/dist/tools/navigation-link-add.d.ts +2 -0
  337. package/dist/tools/navigation-link-add.js +57 -0
  338. package/dist/tools/navigation-link-add.js.map +1 -0
  339. package/dist/tools/navigation-list.d.ts +2 -0
  340. package/dist/tools/navigation-list.js +16 -0
  341. package/dist/tools/navigation-list.js.map +1 -0
  342. package/dist/tools/navigation-modifier-add.d.ts +2 -0
  343. package/dist/tools/navigation-modifier-add.js +42 -0
  344. package/dist/tools/navigation-modifier-add.js.map +1 -0
  345. package/dist/tools/navigation-modifier-volume-add.d.ts +2 -0
  346. package/dist/tools/navigation-modifier-volume-add.js +41 -0
  347. package/dist/tools/navigation-modifier-volume-add.js.map +1 -0
  348. package/dist/tools/navigation-modify.d.ts +2 -0
  349. package/dist/tools/navigation-modify.js +47 -0
  350. package/dist/tools/navigation-modify.js.map +1 -0
  351. package/dist/tools/navigation-set-bake-settings.d.ts +2 -0
  352. package/dist/tools/navigation-set-bake-settings.js +42 -0
  353. package/dist/tools/navigation-set-bake-settings.js.map +1 -0
  354. package/dist/tools/navigation-surface-add.d.ts +2 -0
  355. package/dist/tools/navigation-surface-add.js +62 -0
  356. package/dist/tools/navigation-surface-add.js.map +1 -0
  357. package/dist/tools/navigation-surface-bake.d.ts +2 -0
  358. package/dist/tools/navigation-surface-bake.js +30 -0
  359. package/dist/tools/navigation-surface-bake.js.map +1 -0
  360. package/dist/tools/object-get-data.d.ts +2 -0
  361. package/dist/tools/object-get-data.js +59 -0
  362. package/dist/tools/object-get-data.js.map +1 -0
  363. package/dist/tools/object-modify.d.ts +2 -0
  364. package/dist/tools/object-modify.js +73 -0
  365. package/dist/tools/object-modify.js.map +1 -0
  366. package/dist/tools/package-add.d.ts +2 -0
  367. package/dist/tools/package-add.js +42 -0
  368. package/dist/tools/package-add.js.map +1 -0
  369. package/dist/tools/package-check.d.ts +2 -0
  370. package/dist/tools/package-check.js +27 -0
  371. package/dist/tools/package-check.js.map +1 -0
  372. package/dist/tools/package-get-dependencies.d.ts +2 -0
  373. package/dist/tools/package-get-dependencies.js +17 -0
  374. package/dist/tools/package-get-dependencies.js.map +1 -0
  375. package/dist/tools/package-get-info.d.ts +2 -0
  376. package/dist/tools/package-get-info.js +33 -0
  377. package/dist/tools/package-get-info.js.map +1 -0
  378. package/dist/tools/package-list.d.ts +2 -0
  379. package/dist/tools/package-list.js +57 -0
  380. package/dist/tools/package-list.js.map +1 -0
  381. package/dist/tools/package-remove.d.ts +2 -0
  382. package/dist/tools/package-remove.js +40 -0
  383. package/dist/tools/package-remove.js.map +1 -0
  384. package/dist/tools/package-search.d.ts +2 -0
  385. package/dist/tools/package-search.js +42 -0
  386. package/dist/tools/package-search.js.map +1 -0
  387. package/dist/tools/particle-system-get.d.ts +2 -0
  388. package/dist/tools/particle-system-get.js +42 -0
  389. package/dist/tools/particle-system-get.js.map +1 -0
  390. package/dist/tools/particle-system-modify.d.ts +2 -0
  391. package/dist/tools/particle-system-modify.js +73 -0
  392. package/dist/tools/particle-system-modify.js.map +1 -0
  393. package/dist/tools/ping.d.ts +2 -0
  394. package/dist/tools/ping.js +10 -0
  395. package/dist/tools/ping.js.map +1 -0
  396. package/dist/tools/prefab-apply.d.ts +2 -0
  397. package/dist/tools/prefab-apply.js +39 -0
  398. package/dist/tools/prefab-apply.js.map +1 -0
  399. package/dist/tools/prefab-close.d.ts +2 -0
  400. package/dist/tools/prefab-close.js +29 -0
  401. package/dist/tools/prefab-close.js.map +1 -0
  402. package/dist/tools/prefab-create.d.ts +2 -0
  403. package/dist/tools/prefab-create.js +52 -0
  404. package/dist/tools/prefab-create.js.map +1 -0
  405. package/dist/tools/prefab-get-overrides.d.ts +2 -0
  406. package/dist/tools/prefab-get-overrides.js +27 -0
  407. package/dist/tools/prefab-get-overrides.js.map +1 -0
  408. package/dist/tools/prefab-instantiate.d.ts +2 -0
  409. package/dist/tools/prefab-instantiate.js +52 -0
  410. package/dist/tools/prefab-instantiate.js.map +1 -0
  411. package/dist/tools/prefab-open.d.ts +2 -0
  412. package/dist/tools/prefab-open.js +30 -0
  413. package/dist/tools/prefab-open.js.map +1 -0
  414. package/dist/tools/prefab-revert.d.ts +2 -0
  415. package/dist/tools/prefab-revert.js +37 -0
  416. package/dist/tools/prefab-revert.js.map +1 -0
  417. package/dist/tools/prefab-save.d.ts +2 -0
  418. package/dist/tools/prefab-save.js +24 -0
  419. package/dist/tools/prefab-save.js.map +1 -0
  420. package/dist/tools/prefab-status.d.ts +2 -0
  421. package/dist/tools/prefab-status.js +29 -0
  422. package/dist/tools/prefab-status.js.map +1 -0
  423. package/dist/tools/prefab-unpack.d.ts +2 -0
  424. package/dist/tools/prefab-unpack.js +43 -0
  425. package/dist/tools/prefab-unpack.js.map +1 -0
  426. package/dist/tools/probuilder-create-shape.d.ts +2 -0
  427. package/dist/tools/probuilder-create-shape.js +40 -0
  428. package/dist/tools/probuilder-create-shape.js.map +1 -0
  429. package/dist/tools/probuilder-delete-faces.d.ts +2 -0
  430. package/dist/tools/probuilder-delete-faces.js +47 -0
  431. package/dist/tools/probuilder-delete-faces.js.map +1 -0
  432. package/dist/tools/probuilder-extrude.d.ts +2 -0
  433. package/dist/tools/probuilder-extrude.js +58 -0
  434. package/dist/tools/probuilder-extrude.js.map +1 -0
  435. package/dist/tools/probuilder-get-mesh-info.d.ts +2 -0
  436. package/dist/tools/probuilder-get-mesh-info.js +21 -0
  437. package/dist/tools/probuilder-get-mesh-info.js.map +1 -0
  438. package/dist/tools/probuilder-set-face-material.d.ts +2 -0
  439. package/dist/tools/probuilder-set-face-material.js +53 -0
  440. package/dist/tools/probuilder-set-face-material.js.map +1 -0
  441. package/dist/tools/profiler-capture.d.ts +2 -0
  442. package/dist/tools/profiler-capture.js +84 -0
  443. package/dist/tools/profiler-capture.js.map +1 -0
  444. package/dist/tools/profiler-clear-data.d.ts +2 -0
  445. package/dist/tools/profiler-clear-data.js +20 -0
  446. package/dist/tools/profiler-clear-data.js.map +1 -0
  447. package/dist/tools/profiler-enable-module.d.ts +2 -0
  448. package/dist/tools/profiler-enable-module.js +32 -0
  449. package/dist/tools/profiler-enable-module.js.map +1 -0
  450. package/dist/tools/profiler-get-config.d.ts +2 -0
  451. package/dist/tools/profiler-get-config.js +21 -0
  452. package/dist/tools/profiler-get-config.js.map +1 -0
  453. package/dist/tools/profiler-get-script-stats.d.ts +2 -0
  454. package/dist/tools/profiler-get-script-stats.js +20 -0
  455. package/dist/tools/profiler-get-script-stats.js.map +1 -0
  456. package/dist/tools/profiler-get-status.d.ts +2 -0
  457. package/dist/tools/profiler-get-status.js +22 -0
  458. package/dist/tools/profiler-get-status.js.map +1 -0
  459. package/dist/tools/profiler-list-modules.d.ts +2 -0
  460. package/dist/tools/profiler-list-modules.js +20 -0
  461. package/dist/tools/profiler-list-modules.js.map +1 -0
  462. package/dist/tools/profiler-load-data.d.ts +2 -0
  463. package/dist/tools/profiler-load-data.js +38 -0
  464. package/dist/tools/profiler-load-data.js.map +1 -0
  465. package/dist/tools/profiler-memory.d.ts +2 -0
  466. package/dist/tools/profiler-memory.js +21 -0
  467. package/dist/tools/profiler-memory.js.map +1 -0
  468. package/dist/tools/profiler-rendering.d.ts +2 -0
  469. package/dist/tools/profiler-rendering.js +14 -0
  470. package/dist/tools/profiler-rendering.js.map +1 -0
  471. package/dist/tools/profiler-save-data.d.ts +2 -0
  472. package/dist/tools/profiler-save-data.js +38 -0
  473. package/dist/tools/profiler-save-data.js.map +1 -0
  474. package/dist/tools/profiler-set-config.d.ts +2 -0
  475. package/dist/tools/profiler-set-config.js +72 -0
  476. package/dist/tools/profiler-set-config.js.map +1 -0
  477. package/dist/tools/profiler-start.d.ts +2 -0
  478. package/dist/tools/profiler-start.js +31 -0
  479. package/dist/tools/profiler-start.js.map +1 -0
  480. package/dist/tools/profiler-stop.d.ts +2 -0
  481. package/dist/tools/profiler-stop.js +20 -0
  482. package/dist/tools/profiler-stop.js.map +1 -0
  483. package/dist/tools/pull-events.d.ts +2 -0
  484. package/dist/tools/pull-events.js +43 -0
  485. package/dist/tools/pull-events.js.map +1 -0
  486. package/dist/tools/read-asset.d.ts +2 -0
  487. package/dist/tools/read-asset.js +62 -0
  488. package/dist/tools/read-asset.js.map +1 -0
  489. package/dist/tools/read-compile-errors.d.ts +2 -0
  490. package/dist/tools/read-compile-errors.js +59 -0
  491. package/dist/tools/read-compile-errors.js.map +1 -0
  492. package/dist/tools/read-console.d.ts +2 -0
  493. package/dist/tools/read-console.js +57 -0
  494. package/dist/tools/read-console.js.map +1 -0
  495. package/dist/tools/regression-check.d.ts +2 -0
  496. package/dist/tools/regression-check.js +36 -0
  497. package/dist/tools/regression-check.js.map +1 -0
  498. package/dist/tools/reserialize.d.ts +2 -0
  499. package/dist/tools/reserialize.js +31 -0
  500. package/dist/tools/reserialize.js.map +1 -0
  501. package/dist/tools/run-tests.d.ts +2 -0
  502. package/dist/tools/run-tests.js +49 -0
  503. package/dist/tools/run-tests.js.map +1 -0
  504. package/dist/tools/scan-all.d.ts +2 -0
  505. package/dist/tools/scan-all.js +25 -0
  506. package/dist/tools/scan-all.js.map +1 -0
  507. package/dist/tools/scan-paths.d.ts +2 -0
  508. package/dist/tools/scan-paths.js +40 -0
  509. package/dist/tools/scan-paths.js.map +1 -0
  510. package/dist/tools/scene-create.d.ts +2 -0
  511. package/dist/tools/scene-create.js +47 -0
  512. package/dist/tools/scene-create.js.map +1 -0
  513. package/dist/tools/scene-focus.d.ts +2 -0
  514. package/dist/tools/scene-focus.js +55 -0
  515. package/dist/tools/scene-focus.js.map +1 -0
  516. package/dist/tools/scene-get-data.d.ts +2 -0
  517. package/dist/tools/scene-get-data.js +52 -0
  518. package/dist/tools/scene-get-data.js.map +1 -0
  519. package/dist/tools/scene-get-dirty-summary.d.ts +2 -0
  520. package/dist/tools/scene-get-dirty-summary.js +17 -0
  521. package/dist/tools/scene-get-dirty-summary.js.map +1 -0
  522. package/dist/tools/scene-list-opened.d.ts +2 -0
  523. package/dist/tools/scene-list-opened.js +16 -0
  524. package/dist/tools/scene-list-opened.js.map +1 -0
  525. package/dist/tools/scene-open.d.ts +2 -0
  526. package/dist/tools/scene-open.js +48 -0
  527. package/dist/tools/scene-open.js.map +1 -0
  528. package/dist/tools/scene-save.d.ts +2 -0
  529. package/dist/tools/scene-save.js +38 -0
  530. package/dist/tools/scene-save.js.map +1 -0
  531. package/dist/tools/scene-set-active.d.ts +2 -0
  532. package/dist/tools/scene-set-active.js +33 -0
  533. package/dist/tools/scene-set-active.js.map +1 -0
  534. package/dist/tools/scene-unload.d.ts +2 -0
  535. package/dist/tools/scene-unload.js +33 -0
  536. package/dist/tools/scene-unload.js.map +1 -0
  537. package/dist/tools/screenshot-camera.d.ts +2 -0
  538. package/dist/tools/screenshot-camera.js +59 -0
  539. package/dist/tools/screenshot-camera.js.map +1 -0
  540. package/dist/tools/screenshot-window.d.ts +2 -0
  541. package/dist/tools/screenshot-window.js +54 -0
  542. package/dist/tools/screenshot-window.js.map +1 -0
  543. package/dist/tools/screenshot.d.ts +2 -0
  544. package/dist/tools/screenshot.js +47 -0
  545. package/dist/tools/screenshot.js.map +1 -0
  546. package/dist/tools/script-delete.d.ts +2 -0
  547. package/dist/tools/script-delete.js +37 -0
  548. package/dist/tools/script-delete.js.map +1 -0
  549. package/dist/tools/script-read.d.ts +2 -0
  550. package/dist/tools/script-read.js +46 -0
  551. package/dist/tools/script-read.js.map +1 -0
  552. package/dist/tools/script-write.d.ts +2 -0
  553. package/dist/tools/script-write.js +56 -0
  554. package/dist/tools/script-write.js.map +1 -0
  555. package/dist/tools/search-assets.d.ts +2 -0
  556. package/dist/tools/search-assets.js +49 -0
  557. package/dist/tools/search-assets.js.map +1 -0
  558. package/dist/tools/selection-get.d.ts +2 -0
  559. package/dist/tools/selection-get.js +28 -0
  560. package/dist/tools/selection-get.js.map +1 -0
  561. package/dist/tools/selection-set.d.ts +2 -0
  562. package/dist/tools/selection-set.js +72 -0
  563. package/dist/tools/selection-set.js.map +1 -0
  564. package/dist/tools/settings-get-lighting.d.ts +2 -0
  565. package/dist/tools/settings-get-lighting.js +21 -0
  566. package/dist/tools/settings-get-lighting.js.map +1 -0
  567. package/dist/tools/settings-get-physics.d.ts +2 -0
  568. package/dist/tools/settings-get-physics.js +17 -0
  569. package/dist/tools/settings-get-physics.js.map +1 -0
  570. package/dist/tools/settings-get-player.d.ts +2 -0
  571. package/dist/tools/settings-get-player.js +16 -0
  572. package/dist/tools/settings-get-player.js.map +1 -0
  573. package/dist/tools/settings-get-quality.d.ts +2 -0
  574. package/dist/tools/settings-get-quality.js +16 -0
  575. package/dist/tools/settings-get-quality.js.map +1 -0
  576. package/dist/tools/settings-set-lighting.d.ts +2 -0
  577. package/dist/tools/settings-set-lighting.js +58 -0
  578. package/dist/tools/settings-set-lighting.js.map +1 -0
  579. package/dist/tools/settings-set-physics.d.ts +2 -0
  580. package/dist/tools/settings-set-physics.js +52 -0
  581. package/dist/tools/settings-set-physics.js.map +1 -0
  582. package/dist/tools/settings-set-player.d.ts +2 -0
  583. package/dist/tools/settings-set-player.js +62 -0
  584. package/dist/tools/settings-set-player.js.map +1 -0
  585. package/dist/tools/settings-set-quality.d.ts +2 -0
  586. package/dist/tools/settings-set-quality.js +51 -0
  587. package/dist/tools/settings-set-quality.js.map +1 -0
  588. package/dist/tools/shader-get-data.d.ts +2 -0
  589. package/dist/tools/shader-get-data.js +31 -0
  590. package/dist/tools/shader-get-data.js.map +1 -0
  591. package/dist/tools/shader-list-all.d.ts +2 -0
  592. package/dist/tools/shader-list-all.js +24 -0
  593. package/dist/tools/shader-list-all.js.map +1 -0
  594. package/dist/tools/spatial-query.d.ts +2 -0
  595. package/dist/tools/spatial-query.js +117 -0
  596. package/dist/tools/spatial-query.js.map +1 -0
  597. package/dist/tools/splines-add-knot.d.ts +2 -0
  598. package/dist/tools/splines-add-knot.js +44 -0
  599. package/dist/tools/splines-add-knot.js.map +1 -0
  600. package/dist/tools/splines-container-create.d.ts +2 -0
  601. package/dist/tools/splines-container-create.js +39 -0
  602. package/dist/tools/splines-container-create.js.map +1 -0
  603. package/dist/tools/splines-evaluate.d.ts +2 -0
  604. package/dist/tools/splines-evaluate.js +31 -0
  605. package/dist/tools/splines-evaluate.js.map +1 -0
  606. package/dist/tools/splines-get-knots.d.ts +2 -0
  607. package/dist/tools/splines-get-knots.js +25 -0
  608. package/dist/tools/splines-get-knots.js.map +1 -0
  609. package/dist/tools/splines-modify.d.ts +2 -0
  610. package/dist/tools/splines-modify.js +35 -0
  611. package/dist/tools/splines-modify.js.map +1 -0
  612. package/dist/tools/splines-set-knot.d.ts +2 -0
  613. package/dist/tools/splines-set-knot.js +41 -0
  614. package/dist/tools/splines-set-knot.js.map +1 -0
  615. package/dist/tools/splines-set-tangent-mode.d.ts +2 -0
  616. package/dist/tools/splines-set-tangent-mode.js +43 -0
  617. package/dist/tools/splines-set-tangent-mode.js.map +1 -0
  618. package/dist/tools/type-schema.d.ts +2 -0
  619. package/dist/tools/type-schema.js +62 -0
  620. package/dist/tools/type-schema.js.map +1 -0
  621. package/dist/tools/validate-edit.d.ts +2 -0
  622. package/dist/tools/validate-edit.js +43 -0
  623. package/dist/tools/validate-edit.js.map +1 -0
  624. package/dist/unity-install-discovery.d.ts +79 -0
  625. package/dist/unity-install-discovery.js +206 -0
  626. package/dist/unity-install-discovery.js.map +1 -0
  627. package/dist/unity-log.d.ts +35 -0
  628. package/dist/unity-log.js +110 -0
  629. package/dist/unity-log.js.map +1 -0
  630. package/package.json +54 -0
@@ -0,0 +1,40 @@
1
+ export const healthSummary = {
2
+ uri: "unity-open-mcp://health/summary",
3
+ name: "Health summary",
4
+ mimeType: "application/json",
5
+ description: "Cached verify health summary (error/warn/info counts) from the last scan or gate validation.",
6
+ };
7
+ export const healthBaseline = {
8
+ uri: "unity-open-mcp://health/baseline",
9
+ name: "Health baseline",
10
+ mimeType: "application/json",
11
+ description: "Baseline JSON file summary (schemaVersion, platformProfile, severity counts) read from disk.",
12
+ };
13
+ export const bridgeStatus = {
14
+ uri: "unity-open-mcp://bridge/status",
15
+ name: "Bridge status",
16
+ mimeType: "application/json",
17
+ description: "Cached snapshot of the last successful bridge /ping response (connection, compile, play mode).",
18
+ };
19
+ // M18 Plan 2 / T18.2.3 — tool-groups capability resource. Static catalog
20
+ // (group ids, descriptions, default-enabled flags) discoverable before the
21
+ // first domain tool call. For compiled-state availability and the per-tool
22
+ // roster, call unity_open_mcp_capabilities (which embeds the full
23
+ // toolGroups block). For session activation state, call
24
+ // unity_open_mcp_manage_tools(action="list_groups").
25
+ export const toolGroups = {
26
+ uri: "unity-open-mcp://tool-groups",
27
+ name: "Tool groups",
28
+ mimeType: "application/json",
29
+ description: "Tool-group catalog (ids, descriptions, default-enabled flags). " +
30
+ "Call unity_open_mcp_manage_tools to activate a group before using " +
31
+ "its tools; call unity_open_mcp_capabilities for compiled-state " +
32
+ "availability and the per-tool roster.",
33
+ };
34
+ export const ALL_RESOURCES = [
35
+ healthSummary,
36
+ healthBaseline,
37
+ bridgeStatus,
38
+ toolGroups,
39
+ ];
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAa;IACrC,GAAG,EAAE,iCAAiC;IACtC,IAAI,EAAE,gBAAgB;IACtB,QAAQ,EAAE,kBAAkB;IAC5B,WAAW,EACT,8FAA8F;CACjG,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAa;IACtC,GAAG,EAAE,kCAAkC;IACvC,IAAI,EAAE,iBAAiB;IACvB,QAAQ,EAAE,kBAAkB;IAC5B,WAAW,EACT,8FAA8F;CACjG,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAa;IACpC,GAAG,EAAE,gCAAgC;IACrC,IAAI,EAAE,eAAe;IACrB,QAAQ,EAAE,kBAAkB;IAC5B,WAAW,EACT,gGAAgG;CACnG,CAAC;AAEF,yEAAyE;AACzE,2EAA2E;AAC3E,2EAA2E;AAC3E,kEAAkE;AAClE,wDAAwD;AACxD,qDAAqD;AACrD,MAAM,CAAC,MAAM,UAAU,GAAa;IAClC,GAAG,EAAE,8BAA8B;IACnC,IAAI,EAAE,aAAa;IACnB,QAAQ,EAAE,kBAAkB;IAC5B,WAAW,EACT,iEAAiE;QACjE,oEAAoE;QACpE,iEAAiE;QACjE,uCAAuC;CAC1C,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAe;IACvC,aAAa;IACb,cAAc;IACd,YAAY;IACZ,UAAU;CACX,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
2
+ export interface ErrorResultInput {
3
+ /** Stable machine-readable code (e.g. `bridge_error`, `batch_not_supported`). */
4
+ code: string;
5
+ /** Human-readable explanation. */
6
+ message: string;
7
+ /**
8
+ * Optional custom body. When provided (non-nullish), it replaces the default
9
+ * `{ error: { code, message } }` envelope. Use this when a caller needs to
10
+ * surface richer structured data (e.g. HTTP status + body from the bridge).
11
+ */
12
+ detail?: unknown;
13
+ }
14
+ export declare function makeErrorResult(input: ErrorResultInput): CallToolResult;
@@ -0,0 +1,22 @@
1
+ // Shared CallToolResult error factory.
2
+ //
3
+ // This used to live as three near-identical private helpers in batch-spawn.ts,
4
+ // compressible-router.ts, and live-client.ts — with two different positional
5
+ // argument orders (the compressible-router copy had `message, code` while the
6
+ // others used `code, message`). That made it easy to swap the arguments by
7
+ // mistake at any call site. The single named-argument factory below removes the
8
+ // ambiguity: code, message, and the optional `detail` override are named.
9
+ //
10
+ // Wire shape is unchanged. When `detail` is omitted (or nullish), the result
11
+ // body is `{ error: { code, message } }` — exactly what every downstream parser
12
+ // (and every existing test asserting `body.error.code`) expects. When `detail`
13
+ // is supplied, it replaces the error envelope entirely (callers that build a
14
+ // richer custom body rely on this).
15
+ export function makeErrorResult(input) {
16
+ const body = input.detail ?? { error: { code: input.code, message: input.message } };
17
+ return {
18
+ content: [{ type: "text", text: JSON.stringify(body) }],
19
+ isError: true,
20
+ };
21
+ }
22
+ //# sourceMappingURL=results.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"results.js","sourceRoot":"","sources":["../src/results.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,8EAA8E;AAC9E,2EAA2E;AAC3E,gFAAgF;AAChF,0EAA0E;AAC1E,EAAE;AACF,6EAA6E;AAC7E,gFAAgF;AAChF,+EAA+E;AAC/E,6EAA6E;AAC7E,oCAAoC;AAiBpC,MAAM,UAAU,eAAe,CAAC,KAAuB;IACrD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;IACrF,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
2
+ export type { CallToolResult };
3
+ export interface Router {
4
+ route(toolName: string, args: Record<string, unknown>): Promise<CallToolResult>;
5
+ }
package/dist/router.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":""}
@@ -0,0 +1,44 @@
1
+ import { LiveClient } from "./live-client.js";
2
+ import { BatchSpawn } from "./batch-spawn.js";
3
+ import { ToolRouter } from "./tool-router.js";
4
+ import { PingCache } from "./ping-cache.js";
5
+ import { ResourceRouter } from "./resource-router.js";
6
+ import { BridgeEventStream } from "./event-stream.js";
7
+ import { ToolSessionState } from "./tool-session-state.js";
8
+ export interface ResolvedEnv {
9
+ projectPath: string;
10
+ port: number;
11
+ authToken: string | undefined;
12
+ }
13
+ /**
14
+ * Resolve the project path / port / auth token from explicit overrides (CLI
15
+ * flags) or the process env (MCP server). Throws when no project path is set —
16
+ * callers print a friendly message and exit non-zero.
17
+ *
18
+ * Mirrors the precedence in index.ts#getEnv:
19
+ * projectPath: override > UNITY_PROJECT_PATH
20
+ * port: override > UNITY_OPEN_MCP_BRIDGE_PORT > lock file > hash
21
+ * authToken: discovered from the same lock as the port (no token with an
22
+ * explicit port override)
23
+ */
24
+ export declare function resolveEnv(projectPathOverride?: string, portOverride?: number): ResolvedEnv;
25
+ export declare class ResolveEnvError extends Error {
26
+ }
27
+ export interface RouterStack {
28
+ live: LiveClient;
29
+ batch: BatchSpawn;
30
+ router: ToolRouter;
31
+ pingCache: PingCache;
32
+ resourceRouter: ResourceRouter;
33
+ eventStream: BridgeEventStream;
34
+ sessionState: ToolSessionState;
35
+ projectPath: string;
36
+ port: number;
37
+ authToken: string | undefined;
38
+ }
39
+ /**
40
+ * Build the full router stack from resolved env. The CLI uses this directly;
41
+ * the stdio server wraps the result in an MCP Server (see createServer in
42
+ * index.ts).
43
+ */
44
+ export declare function buildRouterStack(env: ResolvedEnv): RouterStack;
@@ -0,0 +1,73 @@
1
+ // M15 T6.1 — Shared router-stack construction.
2
+ //
3
+ // `index.ts` (stdio server) and `src/cli/` (thin CLI) both need the same
4
+ // LiveClient + BatchSpawn + ToolRouter wiring. Centralizing it here means a
5
+ // CLI command sees the exact same routing decisions an MCP client would — the
6
+ // acceptance criterion "run-tool returns the same JSON the MCP server would"
7
+ // holds by construction.
8
+ import { LiveClient } from "./live-client.js";
9
+ import { BatchSpawn } from "./batch-spawn.js";
10
+ import { ToolRouter } from "./tool-router.js";
11
+ import { PingCache } from "./ping-cache.js";
12
+ import { ResourceRouter } from "./resource-router.js";
13
+ import { BridgeEventStream } from "./event-stream.js";
14
+ import { resolvePort, resolveAuthToken } from "./instance-discovery.js";
15
+ import { ToolSessionState } from "./tool-session-state.js";
16
+ /**
17
+ * Resolve the project path / port / auth token from explicit overrides (CLI
18
+ * flags) or the process env (MCP server). Throws when no project path is set —
19
+ * callers print a friendly message and exit non-zero.
20
+ *
21
+ * Mirrors the precedence in index.ts#getEnv:
22
+ * projectPath: override > UNITY_PROJECT_PATH
23
+ * port: override > UNITY_OPEN_MCP_BRIDGE_PORT > lock file > hash
24
+ * authToken: discovered from the same lock as the port (no token with an
25
+ * explicit port override)
26
+ */
27
+ export function resolveEnv(projectPathOverride, portOverride) {
28
+ const projectPath = projectPathOverride ?? process.env.UNITY_PROJECT_PATH;
29
+ if (!projectPath) {
30
+ throw new ResolveEnvError("UNITY_PROJECT_PATH environment variable is required " +
31
+ "(or pass --project <path>).");
32
+ }
33
+ const rawEnvPort = process.env.UNITY_OPEN_MCP_BRIDGE_PORT;
34
+ const envPort = rawEnvPort ? parseInt(rawEnvPort, 10) : undefined;
35
+ const effectiveEnvPort = rawEnvPort && Number.isInteger(envPort) ? envPort : undefined;
36
+ const port = resolvePort(projectPath, portOverride ?? effectiveEnvPort);
37
+ const authToken = resolveAuthToken(projectPath, portOverride ?? effectiveEnvPort);
38
+ return { projectPath, port, authToken };
39
+ }
40
+ export class ResolveEnvError extends Error {
41
+ }
42
+ /**
43
+ * Build the full router stack from resolved env. The CLI uses this directly;
44
+ * the stdio server wraps the result in an MCP Server (see createServer in
45
+ * index.ts).
46
+ */
47
+ export function buildRouterStack(env) {
48
+ const pingCache = new PingCache();
49
+ const live = new LiveClient(env.port, pingCache, env.authToken, env.projectPath);
50
+ const batch = new BatchSpawn();
51
+ const eventStream = new BridgeEventStream(`http://127.0.0.1:${env.port}`, undefined, env.authToken);
52
+ const sessionState = new ToolSessionState();
53
+ const router = new ToolRouter(live, batch, env.projectPath, eventStream, sessionState);
54
+ const resourceRouter = new ResourceRouter({
55
+ live,
56
+ pingCache,
57
+ projectPath: env.projectPath,
58
+ port: env.port,
59
+ });
60
+ return {
61
+ live,
62
+ batch,
63
+ router,
64
+ pingCache,
65
+ resourceRouter,
66
+ eventStream,
67
+ sessionState,
68
+ projectPath: env.projectPath,
69
+ port: env.port,
70
+ authToken: env.authToken,
71
+ };
72
+ }
73
+ //# sourceMappingURL=routers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routers.js","sourceRoot":"","sources":["../src/routers.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,EAAE;AACF,yEAAyE;AACzE,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yBAAyB;AAEzB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAQ3D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CACxB,mBAA4B,EAC5B,YAAqB;IAErB,MAAM,WAAW,GAAG,mBAAmB,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAC1E,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,eAAe,CACvB,sDAAsD;YACpD,6BAA6B,CAChC,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;IAC1D,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClE,MAAM,gBAAgB,GACpB,UAAU,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhE,MAAM,IAAI,GAAG,WAAW,CACtB,WAAW,EACX,YAAY,IAAI,gBAAgB,CACjC,CAAC;IACF,MAAM,SAAS,GAAG,gBAAgB,CAChC,WAAW,EACX,YAAY,IAAI,gBAAgB,CACjC,CAAC;IAEF,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,OAAO,eAAgB,SAAQ,KAAK;CAAG;AAkB7C;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAgB;IAC/C,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IACjF,MAAM,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAG,IAAI,iBAAiB,CACvC,oBAAoB,GAAG,CAAC,IAAI,EAAE,EAC9B,SAAS,EACT,GAAG,CAAC,SAAS,CACd,CAAC;IACF,MAAM,YAAY,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IACvF,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC;QACxC,IAAI;QACJ,SAAS;QACT,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,IAAI,EAAE,GAAG,CAAC,IAAI;KACf,CAAC,CAAC;IACH,OAAO;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,SAAS;QACT,cAAc;QACd,WAAW;QACX,YAAY;QACZ,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,SAAS,EAAE,GAAG,CAAC,SAAS;KACzB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { Tool } from "@modelcontextprotocol/sdk/types.js";
2
+ /**
3
+ * Returns a copy of `args` with missing top-level scalar defaults filled in
4
+ * from the given tool's input schema. Object/array defaults are ignored (they
5
+ * require deep merge and no tool currently uses them).
6
+ *
7
+ * The original `args` object is never mutated. Existing caller-supplied values
8
+ * are preserved verbatim, including `undefined`/`null`.
9
+ */
10
+ export declare function withSchemaDefaults(tool: Tool, args: Record<string, unknown>): Record<string, unknown>;
@@ -0,0 +1,43 @@
1
+ // Schema-default injection.
2
+ //
3
+ // MCP JSON-Schema documents advertise per-property `default` values (e.g.
4
+ // `run_tests` documents `timeout_ms` default 60000). Those defaults are advisory:
5
+ // an MCP client MAY echo them, but many send args verbatim and omit the field
6
+ // entirely. When that happens, every downstream layer (the TS HTTP fetch, the
7
+ // C# bridge, the Unity-side dispatch) independently falls back to its own
8
+ // hardcoded default — historically 30000 — which silently contradicts the
9
+ // documented value and produced the "tool times out at 30s" bug for
10
+ // run_tests (whose schema default is 60000).
11
+ //
12
+ // To make the schema the single source of truth, the CallTool handler fills in
13
+ // any missing top-level argument whose property declares a scalar `default`
14
+ // before dispatching. This keeps client-supplied values authoritative and only
15
+ // ever adds missing fields.
16
+ function isScalarDefault(value) {
17
+ return (typeof value === "number" ||
18
+ typeof value === "boolean" ||
19
+ typeof value === "string");
20
+ }
21
+ /**
22
+ * Returns a copy of `args` with missing top-level scalar defaults filled in
23
+ * from the given tool's input schema. Object/array defaults are ignored (they
24
+ * require deep merge and no tool currently uses them).
25
+ *
26
+ * The original `args` object is never mutated. Existing caller-supplied values
27
+ * are preserved verbatim, including `undefined`/`null`.
28
+ */
29
+ export function withSchemaDefaults(tool, args) {
30
+ const properties = tool.inputSchema?.properties;
31
+ if (!properties)
32
+ return { ...args };
33
+ const out = { ...args };
34
+ for (const [key, schema] of Object.entries(properties)) {
35
+ if (key in out)
36
+ continue;
37
+ const def = schema?.default;
38
+ if (isScalarDefault(def))
39
+ out[key] = def;
40
+ }
41
+ return out;
42
+ }
43
+ //# sourceMappingURL=schema-defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-defaults.js","sourceRoot":"","sources":["../src/schema-defaults.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,EAAE;AACF,0EAA0E;AAC1E,kFAAkF;AAClF,8EAA8E;AAC9E,8EAA8E;AAC9E,0EAA0E;AAC1E,0EAA0E;AAC1E,oEAAoE;AACpE,6CAA6C;AAC7C,EAAE;AACF,+EAA+E;AAC/E,4EAA4E;AAC5E,+EAA+E;AAC/E,4BAA4B;AAY5B,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,SAAS;QAC1B,OAAO,KAAK,KAAK,QAAQ,CAC1B,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAU,EACV,IAA6B;IAE7B,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,UAExB,CAAC;IACd,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;IAEpC,MAAM,GAAG,GAA4B,EAAE,GAAG,IAAI,EAAE,CAAC;IACjD,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,IAAI,GAAG,IAAI,GAAG;YAAE,SAAS;QACzB,MAAM,GAAG,GAAG,MAAM,EAAE,OAAO,CAAC;QAC5B,IAAI,eAAe,CAAC,GAAG,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAC3C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,33 @@
1
+ export interface ClientPathEntry {
2
+ relativePath: string;
3
+ }
4
+ export interface ClientPathsManifest {
5
+ skillId: string;
6
+ templateRelativePath: string;
7
+ clients: Record<string, ClientPathEntry>;
8
+ mcpClientMapping: Record<string, string[]>;
9
+ }
10
+ /**
11
+ * Bundled fallback mirroring `skills/client-paths.json`. A unit test
12
+ * asserts this stays in sync with the on-disk manifest so the two
13
+ * never drift silently.
14
+ */
15
+ export declare const BUNDLED_MANIFEST: ClientPathsManifest;
16
+ /**
17
+ * Load the client-paths manifest. Resolution is cached after the
18
+ * first call (the manifest is immutable for the lifetime of the
19
+ * process).
20
+ */
21
+ export declare function loadClientPathsManifest(): ClientPathsManifest;
22
+ /**
23
+ * Project-relative skill path for a client key
24
+ * (`cursor` / `claude` / `opencode` / `agents`). Throws for unknown
25
+ * keys so callers fail loudly instead of writing to a wrong path.
26
+ */
27
+ export declare function clientSkillRelativePath(clientKey: string): string;
28
+ /**
29
+ * All known client keys from the manifest — used to derive the
30
+ * `unity_open_mcp_generate_skill` `clients` enum and the allowlist in
31
+ * the tool router.
32
+ */
33
+ export declare function knownClientKeys(): string[];
@@ -0,0 +1,131 @@
1
+ // Skill client-path manifest — single source of truth.
2
+ //
3
+ // The checked-in manifest lives at the toolkit root:
4
+ // `skills/client-paths.json`
5
+ // This module is the ONLY consumer on the mcp-server side. The Hub
6
+ // wizard (`hub/src-tauri/src/config/mcp_config.rs`) reads the same
7
+ // file directly from the toolkit root. To add or rename a client,
8
+ // edit `skills/client-paths.json` — do not hand-maintain duplicate
9
+ // constants here or in Rust.
10
+ //
11
+ // Resolution strategy:
12
+ // 1. `UNITY_OPEN_MCP_TOOLKIT_ROOT` env var (when the Hub or a
13
+ // launcher pins the toolkit root explicitly).
14
+ // 2. Walk up from this module's location looking for
15
+ // `skills/client-paths.json` (covers `mcp-server/src/` in dev
16
+ // and `mcp-server/dist/` in a built checkout).
17
+ // 3. Bundled fallback constant (kept in sync with the manifest by
18
+ // a unit test) so the skill generator still works in a
19
+ // standalone `mcp-server/` install that lacks the toolkit tree.
20
+ import { readFileSync } from "node:fs";
21
+ import { join, dirname } from "node:path";
22
+ import { fileURLToPath } from "node:url";
23
+ const MANIFEST_REL = "skills/client-paths.json";
24
+ /**
25
+ * Bundled fallback mirroring `skills/client-paths.json`. A unit test
26
+ * asserts this stays in sync with the on-disk manifest so the two
27
+ * never drift silently.
28
+ */
29
+ export const BUNDLED_MANIFEST = {
30
+ skillId: "unity-open-mcp",
31
+ templateRelativePath: "skills/unity-open-mcp/SKILL.md",
32
+ clients: {
33
+ cursor: { relativePath: ".cursor/skills/unity-open-mcp/SKILL.md" },
34
+ claude: { relativePath: ".claude/skills/unity-open-mcp/SKILL.md" },
35
+ opencode: { relativePath: ".opencode/skills/unity-open-mcp/SKILL.md" },
36
+ agents: { relativePath: ".agents/skills/unity-open-mcp/SKILL.md" },
37
+ },
38
+ mcpClientMapping: {
39
+ cursor: ["cursor"],
40
+ "claude-desktop": ["claude"],
41
+ "claude-code": ["claude"],
42
+ "opencode-global": ["opencode"],
43
+ "opencode-project": ["opencode"],
44
+ "zcode-global": ["agents"],
45
+ "zcode-project": ["agents"],
46
+ manual: ["cursor", "claude", "opencode", "agents"],
47
+ },
48
+ };
49
+ function hereDir() {
50
+ // Works under both `node --experimental-strip-types` (src) and the
51
+ // compiled `dist/` output.
52
+ if (typeof __dirname !== "undefined")
53
+ return __dirname;
54
+ return dirname(fileURLToPath(import.meta.url));
55
+ }
56
+ function tryReadManifest(path) {
57
+ try {
58
+ const raw = readFileSync(path, "utf-8");
59
+ const parsed = JSON.parse(raw);
60
+ if (typeof parsed.skillId === "string" &&
61
+ typeof parsed.templateRelativePath === "string" &&
62
+ parsed.clients &&
63
+ typeof parsed.clients === "object" &&
64
+ parsed.mcpClientMapping &&
65
+ typeof parsed.mcpClientMapping === "object") {
66
+ return parsed;
67
+ }
68
+ return null;
69
+ }
70
+ catch {
71
+ return null;
72
+ }
73
+ }
74
+ function resolveManifest() {
75
+ // 1. Explicit env override.
76
+ const envRoot = process.env.UNITY_OPEN_MCP_TOOLKIT_ROOT?.trim();
77
+ if (envRoot) {
78
+ const fromEnv = tryReadManifest(join(envRoot, MANIFEST_REL));
79
+ if (fromEnv)
80
+ return fromEnv;
81
+ }
82
+ // 2. Walk up from this module's directory looking for the toolkit
83
+ // root (i.e. a parent dir containing `skills/client-paths.json`).
84
+ let dir = hereDir();
85
+ for (let i = 0; i < 8; i++) {
86
+ const candidate = join(dir, MANIFEST_REL);
87
+ const m = tryReadManifest(candidate);
88
+ if (m)
89
+ return m;
90
+ const parent = dirname(dir);
91
+ if (parent === dir)
92
+ break;
93
+ dir = parent;
94
+ }
95
+ // 3. Bundled fallback (validated against the manifest by tests).
96
+ return BUNDLED_MANIFEST;
97
+ }
98
+ let cached = null;
99
+ /**
100
+ * Load the client-paths manifest. Resolution is cached after the
101
+ * first call (the manifest is immutable for the lifetime of the
102
+ * process).
103
+ */
104
+ export function loadClientPathsManifest() {
105
+ if (cached)
106
+ return cached;
107
+ cached = resolveManifest();
108
+ return cached;
109
+ }
110
+ /**
111
+ * Project-relative skill path for a client key
112
+ * (`cursor` / `claude` / `opencode` / `agents`). Throws for unknown
113
+ * keys so callers fail loudly instead of writing to a wrong path.
114
+ */
115
+ export function clientSkillRelativePath(clientKey) {
116
+ const manifest = loadClientPathsManifest();
117
+ const entry = manifest.clients[clientKey];
118
+ if (!entry) {
119
+ throw new Error(`Unknown skill client key "${clientKey}". Known keys: ${Object.keys(manifest.clients).join(", ")}.`);
120
+ }
121
+ return entry.relativePath;
122
+ }
123
+ /**
124
+ * All known client keys from the manifest — used to derive the
125
+ * `unity_open_mcp_generate_skill` `clients` enum and the allowlist in
126
+ * the tool router.
127
+ */
128
+ export function knownClientKeys() {
129
+ return Object.keys(loadClientPathsManifest().clients);
130
+ }
131
+ //# sourceMappingURL=client-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-paths.js","sourceRoot":"","sources":["../../src/skill/client-paths.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { CapabilitiesResult } from "../capabilities/build-capabilities.js";
2
+ export interface PackageEntry {
3
+ id: string;
4
+ version: string;
5
+ }
6
+ export interface TypeEntry {
7
+ name: string;
8
+ namespace: string;
9
+ filePath: string;
10
+ }
11
+ export interface ProjectState {
12
+ projectName: string;
13
+ unityVersion: string;
14
+ packages: PackageEntry[];
15
+ bridgeVersion: string | null;
16
+ verifyVersion: string | null;
17
+ monoBehaviours: TypeEntry[];
18
+ scriptableObjects: TypeEntry[];
19
+ }
20
+ export interface SkillWriteTarget {
21
+ client: string;
22
+ relativePath: string;
23
+ absolutePath: string;
24
+ written: boolean;
25
+ existed: boolean;
26
+ }
27
+ export interface GenerateSkillResult {
28
+ skill: string;
29
+ project: ProjectState;
30
+ written: SkillWriteTarget[];
31
+ }
32
+ export declare function readProjectState(projectRoot: string): Promise<ProjectState>;
33
+ export declare function generateSkillMarkdown(state: ProjectState, caps: CapabilitiesResult): string;
34
+ export declare function writeSkillToClients(projectRoot: string, content: string, clients: string[]): Promise<SkillWriteTarget[]>;
35
+ export declare function generateSkill(projectRoot: string, caps: CapabilitiesResult, options?: {
36
+ write?: boolean;
37
+ clients?: string[];
38
+ }): Promise<GenerateSkillResult>;