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,396 @@
1
+ // M18 Plan 2 / T18.2 — canonical tool-group catalog.
2
+ //
3
+ // Single source of truth for the Coplay-style tool-group visibility system.
4
+ // Drives two surfaces:
5
+ //
6
+ // - `unity_open_mcp_manage_tools` meta-tool (session activation state).
7
+ // - `unity_open_mcp_capabilities` `toolGroups` block (compiled-state only).
8
+ //
9
+ // Every registered MCP tool maps to a group id via `groupFor(toolName)`.
10
+ // Tools with no entry map to `null` and are always visible — they are server
11
+ // meta-tools (capabilities, ping, manage_tools itself, etc.).
12
+ //
13
+ // Groups are stable lowercase identifiers. The DEFAULT_ENABLED set is
14
+ // `{ "core" }` only — every other group is hidden from ListTools until the
15
+ // connected MCP session activates it via manage_tools. This matches Coplay's
16
+ // model (see references/unity-mcp-beta-codev/Server/src/services/registry/
17
+ // tool_registry.py: DEFAULT_ENABLED_GROUPS = {"core"}).
18
+ //
19
+ // Domain groups (navigation, input, probuilder, particle-system, animation)
20
+ // carry a `domainDefine` so capabilities can report compiled-state
21
+ // availability — `available: true` when the bridge compiled the domain in
22
+ // (the matching `UNITY_OPEN_MCP_EXT_<DOMAIN>` symbol was defined), `false`
23
+ // when the Unity domain package is absent. Availability is compiled-state
24
+ // only; it does not change per session.
25
+ /**
26
+ * Ordered catalog. Order is preserved in manage_tools / capabilities output
27
+ * so consumers render a stable list.
28
+ */
29
+ export const TOOL_GROUPS = [
30
+ {
31
+ id: "core",
32
+ description: "Essential editor entry points: ping, execute_csharp, invoke_method, " +
33
+ "find_members, execute_menu, editor_status, compile_check. Always on.",
34
+ defaultEnabled: true,
35
+ },
36
+ {
37
+ id: "gate-and-verify",
38
+ description: "Gate, checkpoint, delta, find_references, scan_paths, apply_fix, " +
39
+ "scan_all, baseline_create, regression_check — the verify surface.",
40
+ defaultEnabled: true,
41
+ },
42
+ {
43
+ id: "asset-intelligence",
44
+ description: "reserialize, read_asset, search_assets, list_assets — offline asset " +
45
+ "reads and reference intelligence.",
46
+ defaultEnabled: true,
47
+ },
48
+ {
49
+ id: "typed-editor",
50
+ description: "Typed editor surface (M16 Plans 1–6, 9): assets, materials, shaders, " +
51
+ "prefabs, GameObjects, components, scenes, packages, console, editor " +
52
+ "state, selection, undo, tags, layers, reflection, scripts, object " +
53
+ "data, build pipeline, project settings.",
54
+ defaultEnabled: true,
55
+ },
56
+ {
57
+ id: "diagnostics",
58
+ description: "Profiler session control, counters, memory snapshots, and the M10 " +
59
+ "per-frame capture / memory / rendering reads.",
60
+ defaultEnabled: true,
61
+ },
62
+ {
63
+ id: "gate-intelligence",
64
+ description: "Pre/post-mutation intelligence: impact_preview, gate_budget_estimate, " +
65
+ "mutation_explain (read-only compositions of the gate foundations).",
66
+ defaultEnabled: false,
67
+ },
68
+ {
69
+ id: "build-settings",
70
+ description: "Build pipeline + ProjectSettings reads and mutators (build_set_target, " +
71
+ "build_start, settings_set_player, …).",
72
+ defaultEnabled: false,
73
+ },
74
+ {
75
+ id: "navigation",
76
+ description: "NavMesh (AI Navigation) tools — surfaces, modifiers, links, agents. " +
77
+ "Compile-gated on the com.unity.ai.navigation package.",
78
+ defaultEnabled: false,
79
+ domainDefine: "UNITY_OPEN_MCP_EXT_NAVIGATION",
80
+ unityPackage: "com.unity.ai.navigation",
81
+ },
82
+ {
83
+ id: "input-system",
84
+ description: "Input System tools — .inputactions asset authoring (action maps, " +
85
+ "actions, bindings, composites, control schemes). Compile-gated on " +
86
+ "com.unity.inputsystem.",
87
+ defaultEnabled: false,
88
+ domainDefine: "UNITY_OPEN_MCP_EXT_INPUTSYSTEM",
89
+ unityPackage: "com.unity.inputsystem",
90
+ },
91
+ {
92
+ id: "probuilder",
93
+ description: "ProBuilder 3D modeling tools — shapes, mesh info, extrude, face " +
94
+ "delete, face material. Compile-gated on com.unity.probuilder.",
95
+ defaultEnabled: false,
96
+ domainDefine: "UNITY_OPEN_MCP_EXT_PROBUILDER",
97
+ unityPackage: "com.unity.probuilder",
98
+ },
99
+ {
100
+ id: "particle-system",
101
+ description: "Particle System tools — per-module reads and field-patch mutator. " +
102
+ "Compile-gated on the built-in ParticleSystemModule.",
103
+ defaultEnabled: false,
104
+ domainDefine: "UNITY_OPEN_MCP_EXT_PARTICLESYSTEM",
105
+ unityPackage: "UnityEngine.ParticleSystemModule",
106
+ },
107
+ {
108
+ id: "animation",
109
+ description: "AnimationClip + AnimatorController tools — create / read / modify " +
110
+ ".anim and .controller assets. Compile-gated on the built-in animation " +
111
+ "module.",
112
+ defaultEnabled: false,
113
+ domainDefine: "UNITY_OPEN_MCP_EXT_ANIMATION",
114
+ unityPackage: "com.unity.modules.animation",
115
+ },
116
+ {
117
+ id: "splines",
118
+ description: "Splines tools — SplineContainer authoring, knots, tangent modes, " +
119
+ "evaluation. Compile-gated on the com.unity.splines package. First " +
120
+ "backlog domain under the embedded + grouped model (M18 Plan 7).",
121
+ defaultEnabled: false,
122
+ domainDefine: "UNITY_OPEN_MCP_EXT_SPLINES",
123
+ unityPackage: "com.unity.splines",
124
+ },
125
+ {
126
+ id: "agent-senses",
127
+ description: "Agent senses surface (run_tests, screenshot, read_console, profiler " +
128
+ "capture / memory / rendering, spatial_query). Live-only.",
129
+ defaultEnabled: false,
130
+ },
131
+ ];
132
+ /**
133
+ * Set of group ids enabled by default for every fresh session.
134
+ * Per the resolved decision (M18 execution-plan.md), this is `core` only.
135
+ */
136
+ export const DEFAULT_ENABLED_GROUPS = new Set(TOOL_GROUPS.filter((g) => g.defaultEnabled).map((g) => g.id));
137
+ /** All known group ids (validates activate / deactivate input). */
138
+ export const GROUP_IDS = new Set(TOOL_GROUPS.map((g) => g.id));
139
+ const GROUP_BY_ID = new Map(TOOL_GROUPS.map((g) => [g.id, g]));
140
+ export function getGroup(id) {
141
+ return GROUP_BY_ID.get(id);
142
+ }
143
+ // ---------------------------------------------------------------------------
144
+ // Per-tool group assignment — the authoritative mapping from a registered MCP
145
+ // tool name to its group id. Tools not listed here default to `null` (always
146
+ // visible). Mirrors the capability categories in build-capabilities.ts; the
147
+ // group vocabulary is the curated, session-visibility-relevant subset.
148
+ //
149
+ // KEEP THIS TABLE ALIGNED with TOOL_CATEGORY in build-capabilities.ts when
150
+ // adding tools. A tool that gets a non-`core` category in capabilities should
151
+ // map to the matching group id here, and vice versa.
152
+ // ---------------------------------------------------------------------------
153
+ const TOOL_GROUP_ASSIGNMENT = {};
154
+ function assign(group, names) {
155
+ for (const name of names)
156
+ TOOL_GROUP_ASSIGNMENT[name] = group;
157
+ }
158
+ // --- core -------------------------------------------------------------------
159
+ assign("core", [
160
+ "unity_open_mcp_ping",
161
+ "unity_open_mcp_execute_csharp",
162
+ "unity_open_mcp_invoke_method",
163
+ "unity_open_mcp_execute_menu",
164
+ "unity_open_mcp_find_members",
165
+ "unity_open_mcp_editor_status",
166
+ ]);
167
+ // --- gate-and-verify --------------------------------------------------------
168
+ assign("gate-and-verify", [
169
+ "unity_open_mcp_compile_check",
170
+ "unity_open_mcp_validate_edit",
171
+ "unity_open_mcp_checkpoint_create",
172
+ "unity_open_mcp_delta",
173
+ "unity_open_mcp_find_references",
174
+ "unity_open_mcp_scan_paths",
175
+ "unity_open_mcp_apply_fix",
176
+ "unity_open_mcp_scan_all",
177
+ "unity_open_mcp_baseline_create",
178
+ "unity_open_mcp_regression_check",
179
+ ]);
180
+ // --- asset-intelligence -----------------------------------------------------
181
+ assign("asset-intelligence", [
182
+ "unity_open_mcp_reserialize",
183
+ "unity_open_mcp_read_asset",
184
+ "unity_open_mcp_search_assets",
185
+ "unity_open_mcp_list_assets",
186
+ ]);
187
+ // --- typed-editor (M16 Plans 1–6, 9) ---------------------------------------
188
+ assign("typed-editor", [
189
+ "assets_create_folder",
190
+ "assets_copy",
191
+ "assets_move",
192
+ "assets_delete",
193
+ "assets_refresh",
194
+ "material_create",
195
+ "material_get_properties",
196
+ "material_set_property",
197
+ "material_get_keywords",
198
+ "material_set_keyword",
199
+ "material_set_shader",
200
+ "shader_list_all",
201
+ "shader_get_data",
202
+ "prefab_instantiate",
203
+ "prefab_create",
204
+ "prefab_open",
205
+ "prefab_close",
206
+ "prefab_save",
207
+ "prefab_apply",
208
+ "prefab_revert",
209
+ "prefab_unpack",
210
+ "prefab_get_overrides",
211
+ "prefab_status",
212
+ "gameobject_create",
213
+ "gameobject_destroy",
214
+ "gameobject_duplicate",
215
+ "gameobject_find",
216
+ "gameobject_modify",
217
+ "gameobject_set_parent",
218
+ "component_add",
219
+ "component_destroy",
220
+ "component_get",
221
+ "component_modify",
222
+ "component_list_all",
223
+ "scene_create",
224
+ "scene_open",
225
+ "scene_save",
226
+ "scene_unload",
227
+ "scene_set_active",
228
+ "scene_list_opened",
229
+ "scene_get_data",
230
+ "scene_get_dirty_summary",
231
+ "scene_focus",
232
+ "package_list",
233
+ "package_search",
234
+ "package_add",
235
+ "package_remove",
236
+ "package_get_info",
237
+ "package_get_dependencies",
238
+ "package_check",
239
+ "console_clear",
240
+ "console_log",
241
+ "editor_set_state",
242
+ "selection_get",
243
+ "selection_set",
244
+ "editor_undo",
245
+ "editor_redo",
246
+ "editor_get_tags",
247
+ "editor_get_layers",
248
+ "editor_add_tag",
249
+ "editor_add_layer",
250
+ "type_schema",
251
+ "script_read",
252
+ "script_write",
253
+ "script_delete",
254
+ "object_get_data",
255
+ "object_modify",
256
+ ].map((suffix) => `unity_open_mcp_${suffix}`));
257
+ // --- diagnostics (profiler + per-frame reads) ------------------------------
258
+ assign("diagnostics", [
259
+ "unity_open_mcp_profiler_start",
260
+ "unity_open_mcp_profiler_stop",
261
+ "unity_open_mcp_profiler_get_status",
262
+ "unity_open_mcp_profiler_get_config",
263
+ "unity_open_mcp_profiler_set_config",
264
+ "unity_open_mcp_profiler_list_modules",
265
+ "unity_open_mcp_profiler_enable_module",
266
+ "unity_open_mcp_profiler_clear_data",
267
+ "unity_open_mcp_profiler_save_data",
268
+ "unity_open_mcp_profiler_load_data",
269
+ "unity_open_mcp_profiler_get_script_stats",
270
+ ]);
271
+ // --- gate-intelligence ------------------------------------------------------
272
+ assign("gate-intelligence", [
273
+ "unity_open_mcp_impact_preview",
274
+ "unity_open_mcp_gate_budget_estimate",
275
+ "unity_open_mcp_mutation_explain",
276
+ ]);
277
+ // --- build-settings ---------------------------------------------------------
278
+ assign("build-settings", [
279
+ "build_get_targets",
280
+ "build_get_active_target",
281
+ "build_set_target",
282
+ "build_get_scenes",
283
+ "build_set_scenes",
284
+ "build_start",
285
+ "build_get_defines",
286
+ "build_set_defines",
287
+ "settings_get_player",
288
+ "settings_set_player",
289
+ "settings_get_quality",
290
+ "settings_set_quality",
291
+ "settings_get_physics",
292
+ "settings_set_physics",
293
+ "settings_get_lighting",
294
+ "settings_set_lighting",
295
+ ].map((suffix) => `unity_open_mcp_${suffix}`));
296
+ // --- navigation -------------------------------------------------------------
297
+ assign("navigation", [
298
+ "surface_add",
299
+ "set_bake_settings",
300
+ "surface_bake",
301
+ "modifier_add",
302
+ "modifier_volume_add",
303
+ "link_add",
304
+ "agent_add",
305
+ "agent_set_destination",
306
+ "list",
307
+ "get",
308
+ "modify",
309
+ ].map((suffix) => `unity_open_mcp_navigation_${suffix}`));
310
+ // --- input-system -----------------------------------------------------------
311
+ assign("input-system", [
312
+ "asset_create",
313
+ "actionmap_add",
314
+ "action_add",
315
+ "binding_add",
316
+ "binding_composite_add",
317
+ "controlscheme_add",
318
+ "get",
319
+ ].map((suffix) => `unity_open_mcp_inputsystem_${suffix}`));
320
+ // --- probuilder -------------------------------------------------------------
321
+ assign("probuilder", [
322
+ "create_shape",
323
+ "get_mesh_info",
324
+ "extrude",
325
+ "delete_faces",
326
+ "set_face_material",
327
+ ].map((suffix) => `unity_open_mcp_probuilder_${suffix}`));
328
+ // --- particle-system --------------------------------------------------------
329
+ assign("particle-system", ["get", "modify"].map((suffix) => `unity_open_mcp_particle_system_${suffix}`));
330
+ // --- animation --------------------------------------------------------------
331
+ assign("animation", [
332
+ "animation_create",
333
+ "animation_get_data",
334
+ "animation_modify",
335
+ "animator_create",
336
+ "animator_get_data",
337
+ "animator_modify",
338
+ ]);
339
+ // --- splines (M18 Plan 7 / T18.7.3 — first backlog domain) -----------------
340
+ assign("splines", [
341
+ "container_create",
342
+ "add_knot",
343
+ "set_knot",
344
+ "set_tangent_mode",
345
+ "evaluate",
346
+ "get_knots",
347
+ "modify",
348
+ ].map((suffix) => `unity_open_mcp_splines_${suffix}`));
349
+ // --- agent-senses (live-only reads) ----------------------------------------
350
+ assign("agent-senses", [
351
+ "unity_senses_run_tests",
352
+ "unity_senses_screenshot",
353
+ // M20 Plan 1 / T20.1.1 — senses parity residual. Arbitrary-pose screenshot
354
+ // + inline-image capture extend the screenshot surface.
355
+ "unity_senses_screenshot_camera",
356
+ "unity_senses_capture_inline",
357
+ // M20 Plan 1 / T20.1.2 — EditorWindow capture.
358
+ "unity_senses_screenshot_window",
359
+ "unity_senses_read_console",
360
+ "unity_senses_profiler_capture",
361
+ "unity_senses_profiler_memory",
362
+ "unity_senses_profiler_rendering",
363
+ "unity_senses_spatial_query",
364
+ ]);
365
+ // ---------------------------------------------------------------------------
366
+ // Read API
367
+ // ---------------------------------------------------------------------------
368
+ /**
369
+ * Resolve a tool name to its group id. Returns `null` for tools with no
370
+ * assignment (server meta-tools: capabilities, list_rules, generate_skill,
371
+ * manage_tools, pull_events, read_compile_errors). Null means "always
372
+ * visible" — manage_tools and ListTools never hide a null-group tool.
373
+ */
374
+ export function groupFor(toolName) {
375
+ return TOOL_GROUP_ASSIGNMENT[toolName] ?? null;
376
+ }
377
+ /**
378
+ * Inverse map: group id → sorted tool names. Used by manage_tools
379
+ * `list_groups` to enumerate every group with its tool roster. Tools with a
380
+ * null group are intentionally omitted (they are always-visible meta-tools).
381
+ */
382
+ export function groupToTools() {
383
+ const out = {};
384
+ for (const group of TOOL_GROUPS) {
385
+ out[group.id] = [];
386
+ }
387
+ for (const [tool, group] of Object.entries(TOOL_GROUP_ASSIGNMENT)) {
388
+ if (!out[group])
389
+ out[group] = [];
390
+ out[group].push(tool);
391
+ }
392
+ for (const names of Object.values(out))
393
+ names.sort();
394
+ return out;
395
+ }
396
+ //# sourceMappingURL=tool-groups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-groups.js","sourceRoot":"","sources":["../../src/capabilities/tool-groups.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ export type CliCommand = "ping" | "wait-for-ready" | "status" | "run-tool" | "help" | "version";
2
+ export declare const KNOWN_COMMANDS: readonly string[];
3
+ export interface ParsedCli {
4
+ command: CliCommand | null;
5
+ /** Bare `--json` flag — switches human-readable output to JSON. */
6
+ json: boolean;
7
+ /** Resolved project path (flag wins, else UNITY_PROJECT_PATH env). */
8
+ projectPath: string | undefined;
9
+ /** Resolved bridge port override (flag wins, else UNITY_OPEN_MCP_BRIDGE_PORT env). */
10
+ port: number | undefined;
11
+ /** Ping / wait-for-ready overall timeout (ms). */
12
+ timeoutMs: number | undefined;
13
+ /** wait-for-ready poll interval (ms). */
14
+ intervalMs: number | undefined;
15
+ /** Tool name for run-tool. */
16
+ toolName: string | undefined;
17
+ /** Tool args for run-tool, merged from --args + --arg. */
18
+ toolArgs: Record<string, unknown>;
19
+ /** Parse error message; when set, the dispatcher prints it and exits non-zero. */
20
+ error: string | undefined;
21
+ /** Unknown / unparsed leftovers (currently an error condition). */
22
+ unknown: string[];
23
+ }
24
+ export declare function emptyParsed(): ParsedCli;
25
+ /**
26
+ * Parse the CLI argv (everything after `node dist/index.js`). Returns a
27
+ * structured result; the dispatcher interprets `command`/`error`. Never throws
28
+ * — parse problems are reported through `error`.
29
+ */
30
+ export declare function parseCliArgs(argv: string[]): ParsedCli;
31
+ /**
32
+ * Coerce a `--arg key=value` value. If the raw value parses as JSON, use the
33
+ * parsed form (so `--arg timeout_ms=30000` yields a number and `--arg
34
+ * include_planned=true` yields a boolean); otherwise keep it as a string.
35
+ */
36
+ export declare function coerceArgValue(rawValue: string): unknown;
@@ -0,0 +1,239 @@
1
+ // M15 T6.1 — Thin CLI argument parsing.
2
+ //
3
+ // No runtime deps (mcp-server/AGENTS.md: only @modelcontextprotocol/sdk). The
4
+ // parser is hand-rolled and intentionally small — it covers the four CLI
5
+ // subcommands and their shared options. Anything more complex should go through
6
+ // the MCP server proper.
7
+ //
8
+ // Command shapes:
9
+ // unity-open-mcp ping [--json] [--timeout-ms N]
10
+ // unity-open-mcp wait-for-ready [--json] [--timeout-ms N] [--interval-ms N]
11
+ // unity-open-mcp status [--json]
12
+ // unity-open-mcp run-tool <name> [--json] [--args '<json>'] [--arg k=v]...
13
+ // unity-open-mcp --help | -h
14
+ // unity-open-mcp --version | -V
15
+ //
16
+ // Shared options (where relevant):
17
+ // --project <path> | -P <path> override UNITY_PROJECT_PATH
18
+ // --port <n> | -p <n> override UNITY_OPEN_MCP_BRIDGE_PORT
19
+ // --timeout-ms <n> ping/wait timeout in milliseconds
20
+ // --interval-ms <n> wait-for-ready poll interval
21
+ // --json emit JSON instead of human-readable output
22
+ export const KNOWN_COMMANDS = [
23
+ "ping",
24
+ "wait-for-ready",
25
+ "status",
26
+ "run-tool",
27
+ ];
28
+ export function emptyParsed() {
29
+ return {
30
+ command: null,
31
+ json: false,
32
+ projectPath: undefined,
33
+ port: undefined,
34
+ timeoutMs: undefined,
35
+ intervalMs: undefined,
36
+ toolName: undefined,
37
+ toolArgs: {},
38
+ error: undefined,
39
+ unknown: [],
40
+ };
41
+ }
42
+ /**
43
+ * Parse the CLI argv (everything after `node dist/index.js`). Returns a
44
+ * structured result; the dispatcher interprets `command`/`error`. Never throws
45
+ * — parse problems are reported through `error`.
46
+ */
47
+ export function parseCliArgs(argv) {
48
+ const parsed = emptyParsed();
49
+ // Make a mutable copy; we walk it with an index so `--arg`/`--set` can
50
+ // consume their following token.
51
+ const args = argv.slice();
52
+ let i = 0;
53
+ // First non-flag token is the command (positional). For run-tool, a second
54
+ // positional is the tool name.
55
+ let positionalCount = 0;
56
+ while (i < args.length) {
57
+ const tok = args[i];
58
+ // --- flags that take no value ---
59
+ if (tok === "--json") {
60
+ parsed.json = true;
61
+ i++;
62
+ continue;
63
+ }
64
+ if (tok === "-h" || tok === "--help") {
65
+ parsed.command = "help";
66
+ return parsed;
67
+ }
68
+ if (tok === "-V" || tok === "--version") {
69
+ parsed.command = "version";
70
+ return parsed;
71
+ }
72
+ // --- flags that take a value ---
73
+ if (tok === "--project" || tok === "-P") {
74
+ const v = args[i + 1];
75
+ if (!v || v.startsWith("-")) {
76
+ parsed.error = `${tok} requires a project path.`;
77
+ return parsed;
78
+ }
79
+ parsed.projectPath = v;
80
+ i += 2;
81
+ continue;
82
+ }
83
+ if (tok === "--port" || tok === "-p") {
84
+ const v = args[i + 1];
85
+ const n = parsePositiveInt(v);
86
+ if (n === undefined) {
87
+ parsed.error = `${tok} requires a valid port number (1-65535).`;
88
+ return parsed;
89
+ }
90
+ parsed.port = n;
91
+ i += 2;
92
+ continue;
93
+ }
94
+ if (tok === "--timeout-ms") {
95
+ const v = args[i + 1];
96
+ const n = parsePositiveInt(v);
97
+ if (n === undefined) {
98
+ parsed.error = "--timeout-ms requires a positive integer (ms).";
99
+ return parsed;
100
+ }
101
+ parsed.timeoutMs = n;
102
+ i += 2;
103
+ continue;
104
+ }
105
+ if (tok === "--interval-ms") {
106
+ const v = args[i + 1];
107
+ const n = parsePositiveInt(v);
108
+ if (n === undefined) {
109
+ parsed.error = "--interval-ms requires a positive integer (ms).";
110
+ return parsed;
111
+ }
112
+ parsed.intervalMs = n;
113
+ i += 2;
114
+ continue;
115
+ }
116
+ // run-tool arg passing. Two shapes:
117
+ // --args '<json blob>' → merge parsed JSON object into toolArgs
118
+ // --arg key=value → set one key; value JSON-parsed if valid JSON,
119
+ // else kept as a string. Repeatable.
120
+ if (tok === "--args") {
121
+ const v = args[i + 1];
122
+ if (v === undefined) {
123
+ parsed.error = "--args requires a JSON object argument.";
124
+ return parsed;
125
+ }
126
+ const merged = mergeJsonArgs(parsed.toolArgs, v);
127
+ if (merged instanceof Error) {
128
+ parsed.error = merged.message;
129
+ return parsed;
130
+ }
131
+ parsed.toolArgs = merged;
132
+ i += 2;
133
+ continue;
134
+ }
135
+ if (tok === "--arg" || tok === "--set") {
136
+ const v = args[i + 1];
137
+ if (v === undefined || !v.includes("=")) {
138
+ parsed.error = `${tok} requires a key=value token.`;
139
+ return parsed;
140
+ }
141
+ const eq = v.indexOf("=");
142
+ const key = v.slice(0, eq);
143
+ const rawValue = v.slice(eq + 1);
144
+ if (key.length === 0) {
145
+ parsed.error = `${tok} has an empty key in '${v}'.`;
146
+ return parsed;
147
+ }
148
+ parsed.toolArgs[key] = coerceArgValue(rawValue);
149
+ i += 2;
150
+ continue;
151
+ }
152
+ // --- positionals ---
153
+ if (!tok.startsWith("-")) {
154
+ if (positionalCount === 0) {
155
+ if (!KNOWN_COMMANDS.includes(tok)) {
156
+ parsed.error = `Unknown command '${tok}'. Known: ${KNOWN_COMMANDS.join(", ")}.`;
157
+ return parsed;
158
+ }
159
+ // narrowed by the includes() check above
160
+ parsed.command = tok;
161
+ }
162
+ else if (positionalCount === 1) {
163
+ if (parsed.command !== "run-tool") {
164
+ parsed.error = `Unexpected positional '${tok}' for command '${parsed.command}'.`;
165
+ return parsed;
166
+ }
167
+ parsed.toolName = tok;
168
+ }
169
+ else {
170
+ parsed.error = `Unexpected positional '${tok}'.`;
171
+ return parsed;
172
+ }
173
+ positionalCount++;
174
+ i++;
175
+ continue;
176
+ }
177
+ // Anything else is an unknown flag. Collect for a helpful error.
178
+ parsed.unknown.push(tok);
179
+ i++;
180
+ }
181
+ if (parsed.unknown.length > 0) {
182
+ parsed.error = `Unknown option(s): ${parsed.unknown.join(", ")}.`;
183
+ return parsed;
184
+ }
185
+ // Command-specific validation.
186
+ if (parsed.command === "run-tool" && !parsed.toolName) {
187
+ parsed.error = "run-tool requires a tool name (run-tool <name>).";
188
+ return parsed;
189
+ }
190
+ if (!parsed.command) {
191
+ // No command at all — the caller (dispatcher) decides what to do. When
192
+ // invoked as an MCP server (no subcommand), the stdio path handles it; we
193
+ // surface help for an explicit `--json` with no command, but otherwise
194
+ // return null command so the dispatcher can fall through to the server.
195
+ }
196
+ return parsed;
197
+ }
198
+ function parsePositiveInt(v) {
199
+ if (v === undefined || v.startsWith("-"))
200
+ return undefined;
201
+ const n = Number(v);
202
+ if (!Number.isInteger(n) || n <= 0)
203
+ return undefined;
204
+ return n;
205
+ }
206
+ /**
207
+ * Parse a `--args` JSON blob and merge it into the existing args object. The
208
+ * blob MUST parse to a JSON object — arrays / scalars are rejected so a stray
209
+ * `--args '[1,2]'` doesn't silently become `{ "0": 1 }`. Returns an Error when
210
+ * the blob is invalid so the parser can surface a clean message.
211
+ */
212
+ function mergeJsonArgs(into, blob) {
213
+ let parsed;
214
+ try {
215
+ parsed = JSON.parse(blob);
216
+ }
217
+ catch (err) {
218
+ const msg = err instanceof Error ? err.message : String(err);
219
+ return new Error(`--args is not valid JSON: ${msg}`);
220
+ }
221
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
222
+ return new Error("--args must be a JSON object.");
223
+ }
224
+ return { ...into, ...parsed };
225
+ }
226
+ /**
227
+ * Coerce a `--arg key=value` value. If the raw value parses as JSON, use the
228
+ * parsed form (so `--arg timeout_ms=30000` yields a number and `--arg
229
+ * include_planned=true` yields a boolean); otherwise keep it as a string.
230
+ */
231
+ export function coerceArgValue(rawValue) {
232
+ try {
233
+ return JSON.parse(rawValue);
234
+ }
235
+ catch {
236
+ return rawValue;
237
+ }
238
+ }
239
+ //# sourceMappingURL=args.js.map