unity-open-mcp 0.1.2 → 0.3.1

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 (449) hide show
  1. package/dist/agent-identity.d.ts +52 -0
  2. package/dist/agent-identity.js +115 -0
  3. package/dist/agent-identity.js.map +1 -0
  4. package/dist/batch-spawn.d.ts +7 -0
  5. package/dist/batch-spawn.js +155 -29
  6. package/dist/batch-spawn.js.map +1 -1
  7. package/dist/capabilities/build-capabilities.d.ts +45 -0
  8. package/dist/capabilities/build-capabilities.js +262 -27
  9. package/dist/capabilities/build-capabilities.js.map +1 -1
  10. package/dist/capabilities/cost-hints.d.ts +82 -0
  11. package/dist/capabilities/cost-hints.js +185 -0
  12. package/dist/capabilities/cost-hints.js.map +1 -0
  13. package/dist/capabilities/lifecycle.d.ts +40 -0
  14. package/dist/capabilities/lifecycle.js +353 -0
  15. package/dist/capabilities/lifecycle.js.map +1 -0
  16. package/dist/capabilities/rule-catalog.d.ts +13 -1
  17. package/dist/capabilities/rule-catalog.js +620 -75
  18. package/dist/capabilities/rule-catalog.js.map +1 -1
  19. package/dist/capabilities/tool-groups.d.ts +21 -0
  20. package/dist/capabilities/tool-groups.js +411 -14
  21. package/dist/capabilities/tool-groups.js.map +1 -1
  22. package/dist/cli/args.d.ts +32 -1
  23. package/dist/cli/args.js +201 -4
  24. package/dist/cli/args.js.map +1 -1
  25. package/dist/cli/cli.d.ts +21 -0
  26. package/dist/cli/cli.js +68 -5
  27. package/dist/cli/cli.js.map +1 -1
  28. package/dist/cli/commands.d.ts +33 -0
  29. package/dist/cli/commands.js +400 -0
  30. package/dist/cli/commands.js.map +1 -1
  31. package/dist/cli/exit-codes.d.ts +43 -0
  32. package/dist/cli/exit-codes.js +78 -0
  33. package/dist/cli/exit-codes.js.map +1 -0
  34. package/dist/compile-verify.d.ts +65 -0
  35. package/dist/compile-verify.js +94 -0
  36. package/dist/compile-verify.js.map +1 -0
  37. package/dist/compressible-router.js +64 -11
  38. package/dist/compressible-router.js.map +1 -1
  39. package/dist/compression/asset-model.d.ts +15 -0
  40. package/dist/compression/compact.d.ts +5 -4
  41. package/dist/compression/compact.js +13 -10
  42. package/dist/compression/compact.js.map +1 -1
  43. package/dist/dialog-dismiss.d.ts +127 -74
  44. package/dist/dialog-dismiss.js +427 -170
  45. package/dist/dialog-dismiss.js.map +1 -1
  46. package/dist/dialog-policy.d.ts +141 -0
  47. package/dist/dialog-policy.js +345 -0
  48. package/dist/dialog-policy.js.map +1 -0
  49. package/dist/gate-error.d.ts +6 -0
  50. package/dist/gate-error.js +13 -2
  51. package/dist/gate-error.js.map +1 -1
  52. package/dist/hub-control.d.ts +247 -0
  53. package/dist/hub-control.js +703 -0
  54. package/dist/hub-control.js.map +1 -0
  55. package/dist/index.d.ts +1 -1
  56. package/dist/index.js +46 -12
  57. package/dist/index.js.map +1 -1
  58. package/dist/live-client.d.ts +123 -3
  59. package/dist/live-client.js +555 -69
  60. package/dist/live-client.js.map +1 -1
  61. package/dist/offline.d.ts +105 -0
  62. package/dist/offline.js +816 -23
  63. package/dist/offline.js.map +1 -1
  64. package/dist/output-profile.d.ts +110 -0
  65. package/dist/output-profile.js +255 -0
  66. package/dist/output-profile.js.map +1 -0
  67. package/dist/retry-policy.d.ts +72 -0
  68. package/dist/retry-policy.js +146 -0
  69. package/dist/retry-policy.js.map +1 -0
  70. package/dist/routers.d.ts +4 -0
  71. package/dist/routers.js +2 -2
  72. package/dist/routers.js.map +1 -1
  73. package/dist/server-instructions.d.ts +18 -0
  74. package/dist/server-instructions.js +145 -0
  75. package/dist/server-instructions.js.map +1 -0
  76. package/dist/tool-router.d.ts +38 -1
  77. package/dist/tool-router.js +690 -37
  78. package/dist/tool-router.js.map +1 -1
  79. package/dist/tool-session-state.d.ts +37 -0
  80. package/dist/tool-session-state.js +78 -1
  81. package/dist/tool-session-state.js.map +1 -1
  82. package/dist/tools/apply-fix.js +16 -2
  83. package/dist/tools/apply-fix.js.map +1 -1
  84. package/dist/tools/asmdef-create.d.ts +2 -0
  85. package/dist/tools/asmdef-create.js +114 -0
  86. package/dist/tools/asmdef-create.js.map +1 -0
  87. package/dist/tools/asmdef-get.d.ts +2 -0
  88. package/dist/tools/asmdef-get.js +31 -0
  89. package/dist/tools/asmdef-get.js.map +1 -0
  90. package/dist/tools/asmdef-list.d.ts +2 -0
  91. package/dist/tools/asmdef-list.js +41 -0
  92. package/dist/tools/asmdef-list.js.map +1 -0
  93. package/dist/tools/asmdef-modify.d.ts +2 -0
  94. package/dist/tools/asmdef-modify.js +108 -0
  95. package/dist/tools/asmdef-modify.js.map +1 -0
  96. package/dist/tools/audio-listener-get.d.ts +2 -0
  97. package/dist/tools/audio-listener-get.js +16 -0
  98. package/dist/tools/audio-listener-get.js.map +1 -0
  99. package/dist/tools/audio-mixer-get-parameter.d.ts +2 -0
  100. package/dist/tools/audio-mixer-get-parameter.js +25 -0
  101. package/dist/tools/audio-mixer-get-parameter.js.map +1 -0
  102. package/dist/tools/audio-mixer-set-parameter.d.ts +2 -0
  103. package/dist/tools/audio-mixer-set-parameter.js +44 -0
  104. package/dist/tools/audio-mixer-set-parameter.js.map +1 -0
  105. package/dist/tools/audio-source-add.d.ts +2 -0
  106. package/dist/tools/audio-source-add.js +94 -0
  107. package/dist/tools/audio-source-add.js.map +1 -0
  108. package/dist/tools/audio-source-modify.d.ts +2 -0
  109. package/dist/tools/audio-source-modify.js +52 -0
  110. package/dist/tools/audio-source-modify.js.map +1 -0
  111. package/dist/tools/bridge-status.js +16 -6
  112. package/dist/tools/bridge-status.js.map +1 -1
  113. package/dist/tools/build-get-active-target.js +1 -2
  114. package/dist/tools/build-get-active-target.js.map +1 -1
  115. package/dist/tools/build-get-defines.js +1 -1
  116. package/dist/tools/build-get-defines.js.map +1 -1
  117. package/dist/tools/build-get-scenes.js +1 -2
  118. package/dist/tools/build-get-scenes.js.map +1 -1
  119. package/dist/tools/build-get-targets.js +1 -1
  120. package/dist/tools/build-get-targets.js.map +1 -1
  121. package/dist/tools/build-set-defines.js +1 -2
  122. package/dist/tools/build-set-defines.js.map +1 -1
  123. package/dist/tools/build-set-scenes.js +1 -1
  124. package/dist/tools/build-set-scenes.js.map +1 -1
  125. package/dist/tools/build-set-target.js +1 -1
  126. package/dist/tools/build-set-target.js.map +1 -1
  127. package/dist/tools/build-start.js +0 -1
  128. package/dist/tools/build-start.js.map +1 -1
  129. package/dist/tools/cinemachine-brain-ensure.d.ts +2 -0
  130. package/dist/tools/cinemachine-brain-ensure.js +27 -0
  131. package/dist/tools/cinemachine-brain-ensure.js.map +1 -0
  132. package/dist/tools/cinemachine-camera-list.d.ts +2 -0
  133. package/dist/tools/cinemachine-camera-list.js +15 -0
  134. package/dist/tools/cinemachine-camera-list.js.map +1 -0
  135. package/dist/tools/cinemachine-create-camera.d.ts +2 -0
  136. package/dist/tools/cinemachine-create-camera.js +55 -0
  137. package/dist/tools/cinemachine-create-camera.js.map +1 -0
  138. package/dist/tools/cinemachine-set-body.d.ts +2 -0
  139. package/dist/tools/cinemachine-set-body.js +33 -0
  140. package/dist/tools/cinemachine-set-body.js.map +1 -0
  141. package/dist/tools/cinemachine-set-lens.d.ts +2 -0
  142. package/dist/tools/cinemachine-set-lens.js +41 -0
  143. package/dist/tools/cinemachine-set-lens.js.map +1 -0
  144. package/dist/tools/cinemachine-set-noise.d.ts +2 -0
  145. package/dist/tools/cinemachine-set-noise.js +31 -0
  146. package/dist/tools/cinemachine-set-noise.js.map +1 -0
  147. package/dist/tools/cinemachine-set-targets.d.ts +2 -0
  148. package/dist/tools/cinemachine-set-targets.js +30 -0
  149. package/dist/tools/cinemachine-set-targets.js.map +1 -0
  150. package/dist/tools/console-log.js +2 -2
  151. package/dist/tools/console-log.js.map +1 -1
  152. package/dist/tools/constraint-add.d.ts +2 -0
  153. package/dist/tools/constraint-add.js +85 -0
  154. package/dist/tools/constraint-add.js.map +1 -0
  155. package/dist/tools/dependencies.d.ts +2 -0
  156. package/dist/tools/dependencies.js +76 -0
  157. package/dist/tools/dependencies.js.map +1 -0
  158. package/dist/tools/editor-add-tag.js +2 -3
  159. package/dist/tools/editor-add-tag.js.map +1 -1
  160. package/dist/tools/editor-clear-history.d.ts +2 -0
  161. package/dist/tools/editor-clear-history.js +25 -0
  162. package/dist/tools/editor-clear-history.js.map +1 -0
  163. package/dist/tools/editor-get-layers.js +3 -3
  164. package/dist/tools/editor-get-layers.js.map +1 -1
  165. package/dist/tools/editor-get-tags.js +2 -2
  166. package/dist/tools/editor-get-tags.js.map +1 -1
  167. package/dist/tools/editor-redo.js +2 -3
  168. package/dist/tools/editor-redo.js.map +1 -1
  169. package/dist/tools/editor-undo-history.d.ts +2 -0
  170. package/dist/tools/editor-undo-history.js +21 -0
  171. package/dist/tools/editor-undo-history.js.map +1 -0
  172. package/dist/tools/editor-undo.js +3 -3
  173. package/dist/tools/editor-undo.js.map +1 -1
  174. package/dist/tools/editorprefs-delete.d.ts +2 -0
  175. package/dist/tools/editorprefs-delete.js +23 -0
  176. package/dist/tools/editorprefs-delete.js.map +1 -0
  177. package/dist/tools/editorprefs-get.d.ts +2 -0
  178. package/dist/tools/editorprefs-get.js +28 -0
  179. package/dist/tools/editorprefs-get.js.map +1 -0
  180. package/dist/tools/editorprefs-set.d.ts +2 -0
  181. package/dist/tools/editorprefs-set.js +33 -0
  182. package/dist/tools/editorprefs-set.js.map +1 -0
  183. package/dist/tools/find-references.js +24 -4
  184. package/dist/tools/find-references.js.map +1 -1
  185. package/dist/tools/frame-debugger.d.ts +2 -0
  186. package/dist/tools/frame-debugger.js +48 -0
  187. package/dist/tools/frame-debugger.js.map +1 -0
  188. package/dist/tools/gameobject-modify.js +69 -2
  189. package/dist/tools/gameobject-modify.js.map +1 -1
  190. package/dist/tools/gate-budget-estimate.js +2 -1
  191. package/dist/tools/gate-budget-estimate.js.map +1 -1
  192. package/dist/tools/hub-available-releases.d.ts +2 -0
  193. package/dist/tools/hub-available-releases.js +23 -0
  194. package/dist/tools/hub-available-releases.js.map +1 -0
  195. package/dist/tools/hub-get-install-path.d.ts +2 -0
  196. package/dist/tools/hub-get-install-path.js +20 -0
  197. package/dist/tools/hub-get-install-path.js.map +1 -0
  198. package/dist/tools/hub-install-editor.d.ts +2 -0
  199. package/dist/tools/hub-install-editor.js +47 -0
  200. package/dist/tools/hub-install-editor.js.map +1 -0
  201. package/dist/tools/hub-install-modules.d.ts +2 -0
  202. package/dist/tools/hub-install-modules.js +44 -0
  203. package/dist/tools/hub-install-modules.js.map +1 -0
  204. package/dist/tools/hub-list-editors.d.ts +2 -0
  205. package/dist/tools/hub-list-editors.js +25 -0
  206. package/dist/tools/hub-list-editors.js.map +1 -0
  207. package/dist/tools/hub-set-install-path.d.ts +2 -0
  208. package/dist/tools/hub-set-install-path.js +30 -0
  209. package/dist/tools/hub-set-install-path.js.map +1 -0
  210. package/dist/tools/impact-preview.js +2 -2
  211. package/dist/tools/impact-preview.js.map +1 -1
  212. package/dist/tools/index.d.ts +14 -0
  213. package/dist/tools/index.js +534 -24
  214. package/dist/tools/index.js.map +1 -1
  215. package/dist/tools/light-add.d.ts +2 -0
  216. package/dist/tools/light-add.js +73 -0
  217. package/dist/tools/light-add.js.map +1 -0
  218. package/dist/tools/light-modify.d.ts +2 -0
  219. package/dist/tools/light-modify.js +36 -0
  220. package/dist/tools/light-modify.js.map +1 -0
  221. package/dist/tools/light-set.d.ts +2 -0
  222. package/dist/tools/light-set.js +54 -0
  223. package/dist/tools/light-set.js.map +1 -0
  224. package/dist/tools/list-assets-of-type.d.ts +2 -0
  225. package/dist/tools/list-assets-of-type.js +54 -0
  226. package/dist/tools/list-assets-of-type.js.map +1 -0
  227. package/dist/tools/lod-add-level.d.ts +2 -0
  228. package/dist/tools/lod-add-level.js +66 -0
  229. package/dist/tools/lod-add-level.js.map +1 -0
  230. package/dist/tools/lod-group-configure.d.ts +2 -0
  231. package/dist/tools/lod-group-configure.js +64 -0
  232. package/dist/tools/lod-group-configure.js.map +1 -0
  233. package/dist/tools/manage-tools.js +7 -5
  234. package/dist/tools/manage-tools.js.map +1 -1
  235. package/dist/tools/material-set-property.js +5 -1
  236. package/dist/tools/material-set-property.js.map +1 -1
  237. package/dist/tools/memory-snapshot-capture.d.ts +2 -0
  238. package/dist/tools/memory-snapshot-capture.js +61 -0
  239. package/dist/tools/memory-snapshot-capture.js.map +1 -0
  240. package/dist/tools/mutation-explain.js +2 -2
  241. package/dist/tools/mutation-explain.js.map +1 -1
  242. package/dist/tools/playerprefs-delete.d.ts +2 -0
  243. package/dist/tools/playerprefs-delete.js +24 -0
  244. package/dist/tools/playerprefs-delete.js.map +1 -0
  245. package/dist/tools/playerprefs-get.d.ts +2 -0
  246. package/dist/tools/playerprefs-get.js +28 -0
  247. package/dist/tools/playerprefs-get.js.map +1 -0
  248. package/dist/tools/playerprefs-set.d.ts +2 -0
  249. package/dist/tools/playerprefs-set.js +37 -0
  250. package/dist/tools/playerprefs-set.js.map +1 -0
  251. package/dist/tools/profiler-capture-frame.d.ts +2 -0
  252. package/dist/tools/profiler-capture-frame.js +75 -0
  253. package/dist/tools/profiler-capture-frame.js.map +1 -0
  254. package/dist/tools/profiler-clear-data.js +1 -2
  255. package/dist/tools/profiler-clear-data.js.map +1 -1
  256. package/dist/tools/profiler-enable-module.js +4 -5
  257. package/dist/tools/profiler-enable-module.js.map +1 -1
  258. package/dist/tools/profiler-get-status.js +5 -6
  259. package/dist/tools/profiler-get-status.js.map +1 -1
  260. package/dist/tools/profiler-load-data.js +4 -5
  261. package/dist/tools/profiler-load-data.js.map +1 -1
  262. package/dist/tools/profiler-save-data.js +3 -3
  263. package/dist/tools/profiler-save-data.js.map +1 -1
  264. package/dist/tools/profiler-set-config.js +5 -5
  265. package/dist/tools/profiler-set-config.js.map +1 -1
  266. package/dist/tools/profiler-start.js +4 -4
  267. package/dist/tools/profiler-start.js.map +1 -1
  268. package/dist/tools/profiler-stop.js +2 -3
  269. package/dist/tools/profiler-stop.js.map +1 -1
  270. package/dist/tools/read-asset.js +21 -3
  271. package/dist/tools/read-asset.js.map +1 -1
  272. package/dist/tools/reflection-probe-bake.d.ts +2 -0
  273. package/dist/tools/reflection-probe-bake.js +47 -0
  274. package/dist/tools/reflection-probe-bake.js.map +1 -0
  275. package/dist/tools/reflection-probe-get.d.ts +2 -0
  276. package/dist/tools/reflection-probe-get.js +19 -0
  277. package/dist/tools/reflection-probe-get.js.map +1 -0
  278. package/dist/tools/reimport-package.d.ts +2 -0
  279. package/dist/tools/reimport-package.js +53 -0
  280. package/dist/tools/reimport-package.js.map +1 -0
  281. package/dist/tools/scan-paths.js +19 -0
  282. package/dist/tools/scan-paths.js.map +1 -1
  283. package/dist/tools/scene-focus.js +1 -1
  284. package/dist/tools/scene-focus.js.map +1 -1
  285. package/dist/tools/scene-get-data.js +31 -13
  286. package/dist/tools/scene-get-data.js.map +1 -1
  287. package/dist/tools/scene-get-dirty-summary.js +1 -1
  288. package/dist/tools/scene-get-dirty-summary.js.map +1 -1
  289. package/dist/tools/sceneview-get-camera.d.ts +2 -0
  290. package/dist/tools/sceneview-get-camera.js +16 -0
  291. package/dist/tools/sceneview-get-camera.js.map +1 -0
  292. package/dist/tools/sceneview-set-camera.d.ts +2 -0
  293. package/dist/tools/sceneview-set-camera.js +58 -0
  294. package/dist/tools/sceneview-set-camera.js.map +1 -0
  295. package/dist/tools/script-write.js +2 -2
  296. package/dist/tools/script-write.js.map +1 -1
  297. package/dist/tools/scriptableobject-create.d.ts +2 -0
  298. package/dist/tools/scriptableobject-create.js +86 -0
  299. package/dist/tools/scriptableobject-create.js.map +1 -0
  300. package/dist/tools/search-assets.js +20 -3
  301. package/dist/tools/search-assets.js.map +1 -1
  302. package/dist/tools/settings-get-lighting.js +3 -4
  303. package/dist/tools/settings-get-lighting.js.map +1 -1
  304. package/dist/tools/settings-get-player.js +2 -2
  305. package/dist/tools/settings-get-player.js.map +1 -1
  306. package/dist/tools/settings-get-quality.js +1 -2
  307. package/dist/tools/settings-get-quality.js.map +1 -1
  308. package/dist/tools/settings-get-render-pipeline.d.ts +2 -0
  309. package/dist/tools/settings-get-render-pipeline.js +19 -0
  310. package/dist/tools/settings-get-render-pipeline.js.map +1 -0
  311. package/dist/tools/settings-get-time.d.ts +2 -0
  312. package/dist/tools/settings-get-time.js +18 -0
  313. package/dist/tools/settings-get-time.js.map +1 -0
  314. package/dist/tools/settings-set-lighting.js +5 -5
  315. package/dist/tools/settings-set-lighting.js.map +1 -1
  316. package/dist/tools/settings-set-physics.js +2 -2
  317. package/dist/tools/settings-set-physics.js.map +1 -1
  318. package/dist/tools/settings-set-player.js +2 -2
  319. package/dist/tools/settings-set-player.js.map +1 -1
  320. package/dist/tools/settings-set-quality-level.d.ts +2 -0
  321. package/dist/tools/settings-set-quality-level.js +44 -0
  322. package/dist/tools/settings-set-quality-level.js.map +1 -0
  323. package/dist/tools/settings-set-quality.js +2 -2
  324. package/dist/tools/settings-set-quality.js.map +1 -1
  325. package/dist/tools/settings-set-time.d.ts +2 -0
  326. package/dist/tools/settings-set-time.js +53 -0
  327. package/dist/tools/settings-set-time.js.map +1 -0
  328. package/dist/tools/shader-get-data.js +3 -3
  329. package/dist/tools/shader-get-data.js.map +1 -1
  330. package/dist/tools/shader-graph-create.d.ts +2 -0
  331. package/dist/tools/shader-graph-create.js +40 -0
  332. package/dist/tools/shader-graph-create.js.map +1 -0
  333. package/dist/tools/shader-graph-node-add.d.ts +2 -0
  334. package/dist/tools/shader-graph-node-add.js +50 -0
  335. package/dist/tools/shader-graph-node-add.js.map +1 -0
  336. package/dist/tools/shader-graph-node-connect.d.ts +2 -0
  337. package/dist/tools/shader-graph-node-connect.js +60 -0
  338. package/dist/tools/shader-graph-node-connect.js.map +1 -0
  339. package/dist/tools/shader-graph-open.d.ts +2 -0
  340. package/dist/tools/shader-graph-open.js +29 -0
  341. package/dist/tools/shader-graph-open.js.map +1 -0
  342. package/dist/tools/skybox-get.d.ts +2 -0
  343. package/dist/tools/skybox-get.js +13 -0
  344. package/dist/tools/skybox-get.js.map +1 -0
  345. package/dist/tools/skybox-set.d.ts +2 -0
  346. package/dist/tools/skybox-set.js +34 -0
  347. package/dist/tools/skybox-set.js.map +1 -0
  348. package/dist/tools/spriteatlas-add-packable.d.ts +2 -0
  349. package/dist/tools/spriteatlas-add-packable.js +40 -0
  350. package/dist/tools/spriteatlas-add-packable.js.map +1 -0
  351. package/dist/tools/spriteatlas-create.d.ts +2 -0
  352. package/dist/tools/spriteatlas-create.js +41 -0
  353. package/dist/tools/spriteatlas-create.js.map +1 -0
  354. package/dist/tools/spriteatlas-delete.d.ts +2 -0
  355. package/dist/tools/spriteatlas-delete.js +32 -0
  356. package/dist/tools/spriteatlas-delete.js.map +1 -0
  357. package/dist/tools/spriteatlas-get.d.ts +2 -0
  358. package/dist/tools/spriteatlas-get.js +23 -0
  359. package/dist/tools/spriteatlas-get.js.map +1 -0
  360. package/dist/tools/spriteatlas-list.d.ts +2 -0
  361. package/dist/tools/spriteatlas-list.js +21 -0
  362. package/dist/tools/spriteatlas-list.js.map +1 -0
  363. package/dist/tools/spriteatlas-modify.d.ts +2 -0
  364. package/dist/tools/spriteatlas-modify.js +55 -0
  365. package/dist/tools/spriteatlas-modify.js.map +1 -0
  366. package/dist/tools/spriteatlas-remove-packable.d.ts +2 -0
  367. package/dist/tools/spriteatlas-remove-packable.js +39 -0
  368. package/dist/tools/spriteatlas-remove-packable.js.map +1 -0
  369. package/dist/tools/terrain-create.d.ts +2 -0
  370. package/dist/tools/terrain-create.js +73 -0
  371. package/dist/tools/terrain-create.js.map +1 -0
  372. package/dist/tools/terrain-paint-layer.d.ts +2 -0
  373. package/dist/tools/terrain-paint-layer.js +85 -0
  374. package/dist/tools/terrain-paint-layer.js.map +1 -0
  375. package/dist/tools/terrain-place-trees.d.ts +2 -0
  376. package/dist/tools/terrain-place-trees.js +92 -0
  377. package/dist/tools/terrain-place-trees.js.map +1 -0
  378. package/dist/tools/terrain-set-heights.d.ts +2 -0
  379. package/dist/tools/terrain-set-heights.js +68 -0
  380. package/dist/tools/terrain-set-heights.js.map +1 -0
  381. package/dist/tools/terrain-set-neighbors.d.ts +2 -0
  382. package/dist/tools/terrain-set-neighbors.js +65 -0
  383. package/dist/tools/terrain-set-neighbors.js.map +1 -0
  384. package/dist/tools/texture-get-importer.d.ts +2 -0
  385. package/dist/tools/texture-get-importer.js +25 -0
  386. package/dist/tools/texture-get-importer.js.map +1 -0
  387. package/dist/tools/texture-get.d.ts +2 -0
  388. package/dist/tools/texture-get.js +23 -0
  389. package/dist/tools/texture-get.js.map +1 -0
  390. package/dist/tools/texture-reimport.d.ts +2 -0
  391. package/dist/tools/texture-reimport.js +33 -0
  392. package/dist/tools/texture-reimport.js.map +1 -0
  393. package/dist/tools/texture-set-import.d.ts +2 -0
  394. package/dist/tools/texture-set-import.js +52 -0
  395. package/dist/tools/texture-set-import.js.map +1 -0
  396. package/dist/tools/tilemap-box-fill.d.ts +2 -0
  397. package/dist/tools/tilemap-box-fill.js +32 -0
  398. package/dist/tools/tilemap-box-fill.js.map +1 -0
  399. package/dist/tools/tilemap-create-rule-tile.d.ts +2 -0
  400. package/dist/tools/tilemap-create-rule-tile.js +39 -0
  401. package/dist/tools/tilemap-create-rule-tile.js.map +1 -0
  402. package/dist/tools/tilemap-create-tile-asset.d.ts +2 -0
  403. package/dist/tools/tilemap-create-tile-asset.js +35 -0
  404. package/dist/tools/tilemap-create-tile-asset.js.map +1 -0
  405. package/dist/tools/tilemap-create.d.ts +2 -0
  406. package/dist/tools/tilemap-create.js +32 -0
  407. package/dist/tools/tilemap-create.js.map +1 -0
  408. package/dist/tools/tilemap-set-tile.d.ts +2 -0
  409. package/dist/tools/tilemap-set-tile.js +33 -0
  410. package/dist/tools/tilemap-set-tile.js.map +1 -0
  411. package/dist/tools/timeline-clip-add.d.ts +2 -0
  412. package/dist/tools/timeline-clip-add.js +43 -0
  413. package/dist/tools/timeline-clip-add.js.map +1 -0
  414. package/dist/tools/timeline-create.d.ts +2 -0
  415. package/dist/tools/timeline-create.js +32 -0
  416. package/dist/tools/timeline-create.js.map +1 -0
  417. package/dist/tools/timeline-director-bind.d.ts +2 -0
  418. package/dist/tools/timeline-director-bind.js +34 -0
  419. package/dist/tools/timeline-director-bind.js.map +1 -0
  420. package/dist/tools/timeline-modify.d.ts +2 -0
  421. package/dist/tools/timeline-modify.js +44 -0
  422. package/dist/tools/timeline-modify.js.map +1 -0
  423. package/dist/tools/timeline-track-add.d.ts +2 -0
  424. package/dist/tools/timeline-track-add.js +37 -0
  425. package/dist/tools/timeline-track-add.js.map +1 -0
  426. package/dist/tools/ui-canvas-add.d.ts +2 -0
  427. package/dist/tools/ui-canvas-add.js +66 -0
  428. package/dist/tools/ui-canvas-add.js.map +1 -0
  429. package/dist/tools/ui-element-add.d.ts +2 -0
  430. package/dist/tools/ui-element-add.js +65 -0
  431. package/dist/tools/ui-element-add.js.map +1 -0
  432. package/dist/tools/ui-element-modify.d.ts +2 -0
  433. package/dist/tools/ui-element-modify.js +59 -0
  434. package/dist/tools/ui-element-modify.js.map +1 -0
  435. package/dist/tools/ui-layout-group-add.d.ts +2 -0
  436. package/dist/tools/ui-layout-group-add.js +80 -0
  437. package/dist/tools/ui-layout-group-add.js.map +1 -0
  438. package/dist/tools/validate-edit.js +22 -1
  439. package/dist/tools/validate-edit.js.map +1 -1
  440. package/dist/tools/vfx-block-edit.d.ts +2 -0
  441. package/dist/tools/vfx-block-edit.js +51 -0
  442. package/dist/tools/vfx-block-edit.js.map +1 -0
  443. package/dist/tools/vfx-list.d.ts +2 -0
  444. package/dist/tools/vfx-list.js +31 -0
  445. package/dist/tools/vfx-list.js.map +1 -0
  446. package/dist/tools/vfx-open.d.ts +2 -0
  447. package/dist/tools/vfx-open.js +29 -0
  448. package/dist/tools/vfx-open.js.map +1 -0
  449. package/package.json +1 -1
@@ -0,0 +1,52 @@
1
+ /**
2
+ * The agent id for THIS MCP stdio process. `agent-<pid>-<6 hex chars>` — pid
3
+ * for cross-process disambiguation, hex suffix for uniqueness within a pid.
4
+ * Computed once at module load and reused for every call that does not supply
5
+ * an explicit `_meta.agentId` override.
6
+ */
7
+ export declare const PROCESS_AGENT_ID: string;
8
+ /** Minimum/maximum valid TCP port for an override. */
9
+ export declare const MIN_PORT = 1;
10
+ export declare const MAX_PORT = 65535;
11
+ export interface RequestRouting {
12
+ /**
13
+ * The bridge port to route this call to. When undefined, the caller uses its
14
+ * default LiveClient (no override).
15
+ */
16
+ portOverride: number | undefined;
17
+ /**
18
+ * The agent id to send as `X-Agent-Id`. Falls back to PROCESS_AGENT_ID when
19
+ * no per-call override is supplied. Always defined.
20
+ */
21
+ agentId: string;
22
+ /**
23
+ * A shallow copy of `args` with `_meta`, top-level `port`, and any agent-id
24
+ * override stripped, safe to forward to the bridge.
25
+ */
26
+ strippedArgs: Record<string, unknown>;
27
+ }
28
+ /**
29
+ * Extract per-request routing + agent identity from a tool call's arguments.
30
+ *
31
+ * Precedence for port:
32
+ * 1. `args._meta.port` (the MCP-standard meta envelope)
33
+ * 2. `args.port` (top-level convenience key)
34
+ * 3. undefined (use the default LiveClient)
35
+ *
36
+ * Precedence for agentId:
37
+ * 1. `args._meta.agentId` (explicit per-call override)
38
+ * 2. PROCESS_AGENT_ID (the process-wide default)
39
+ *
40
+ * Invalid ports (non-integer, out of range) are ignored — the call falls back
41
+ * to the default port rather than failing. This matches the philosophy that a
42
+ * bad override should degrade gracefully, not break the agent's workflow.
43
+ *
44
+ * `_meta` is stripped entirely (it may carry other meta fields the bridge
45
+ * should not see); top-level `port` is also stripped.
46
+ */
47
+ export declare function extractRouting(args: Record<string, unknown>): RequestRouting;
48
+ /**
49
+ * Parse a port value that may arrive as a number or a numeric string. Returns
50
+ * undefined for anything that is not a valid integer in [MIN_PORT, MAX_PORT].
51
+ */
52
+ export declare function parsePort(value: unknown): number | undefined;
@@ -0,0 +1,115 @@
1
+ // Per-request routing + agent identity for multi-agent scheduling.
2
+ //
3
+ // When multiple agents share one MCP stdio process (or multiple MCP processes
4
+ // target one bridge), each tool call must carry (a) which bridge instance it
5
+ // is aimed at and (b) which agent made it, so the bridge can route fairly and
6
+ // the MCP server can bypass shared session state for a per-call port override.
7
+ //
8
+ // The model:
9
+ // - PROCESS_AGENT_ID — one id per MCP stdio process (pid + 3-byte hex). All
10
+ // calls from this process carry it unless an explicit override is supplied.
11
+ // - _meta.port / top-level `port` — a per-call bridge port override. When
12
+ // present, the MCP server routes the call to a LiveClient aimed at that
13
+ // port instead of the default, bypassing shared state. The key is stripped
14
+ // from args before forwarding so the bridge never sees an unknown field.
15
+ // - _meta.agentId — optional per-call agent-id override (rare; the process
16
+ // id is the right identity for the common case).
17
+ //
18
+ // The agent id is sent to the bridge as the `X-Agent-Id` header on every POST.
19
+ // The bridge's fair round-robin queue (packages/bridge/Editor/Bridge/
20
+ // BridgeRequestQueue.cs) uses it as the fairness key: when ≥2 distinct ids
21
+ // share one bridge, requests are scheduled read-batch(N)/write-serialize(1)
22
+ // per frame so a write-heavy agent cannot starve read-heavy agents.
23
+ //
24
+ // This module is pure aside from the PROCESS_AGENT_ID computation (random +
25
+ // pid, computed once at module load). The extraction helpers take args as an
26
+ // argument so they are unit-testable.
27
+ import { randomBytes } from "node:crypto";
28
+ /**
29
+ * The agent id for THIS MCP stdio process. `agent-<pid>-<6 hex chars>` — pid
30
+ * for cross-process disambiguation, hex suffix for uniqueness within a pid.
31
+ * Computed once at module load and reused for every call that does not supply
32
+ * an explicit `_meta.agentId` override.
33
+ */
34
+ export const PROCESS_AGENT_ID = `agent-${process.pid}-${randomBytes(3).toString("hex")}`;
35
+ /** Minimum/maximum valid TCP port for an override. */
36
+ export const MIN_PORT = 1;
37
+ export const MAX_PORT = 65535;
38
+ /**
39
+ * A top-level arg key that some clients use instead of `_meta.port`. We accept
40
+ * both and strip both so the bridge body stays clean. (The bridge has no
41
+ * `port` field on any tool; leaving it would be harmless but noisy.)
42
+ */
43
+ const TOP_LEVEL_PORT_KEYS = ["port"];
44
+ /**
45
+ * Extract per-request routing + agent identity from a tool call's arguments.
46
+ *
47
+ * Precedence for port:
48
+ * 1. `args._meta.port` (the MCP-standard meta envelope)
49
+ * 2. `args.port` (top-level convenience key)
50
+ * 3. undefined (use the default LiveClient)
51
+ *
52
+ * Precedence for agentId:
53
+ * 1. `args._meta.agentId` (explicit per-call override)
54
+ * 2. PROCESS_AGENT_ID (the process-wide default)
55
+ *
56
+ * Invalid ports (non-integer, out of range) are ignored — the call falls back
57
+ * to the default port rather than failing. This matches the philosophy that a
58
+ * bad override should degrade gracefully, not break the agent's workflow.
59
+ *
60
+ * `_meta` is stripped entirely (it may carry other meta fields the bridge
61
+ * should not see); top-level `port` is also stripped.
62
+ */
63
+ export function extractRouting(args) {
64
+ const meta = args._meta;
65
+ const metaPort = isPlainObject(meta) ? meta.port : undefined;
66
+ const metaAgentId = isPlainObject(meta) ? meta.agentId : undefined;
67
+ // Port precedence: _meta.port → top-level port.
68
+ let portOverride = parsePort(metaPort);
69
+ if (portOverride === undefined) {
70
+ for (const key of TOP_LEVEL_PORT_KEYS) {
71
+ if (key in args) {
72
+ portOverride = parsePort(args[key]);
73
+ if (portOverride !== undefined)
74
+ break;
75
+ }
76
+ }
77
+ }
78
+ // Agent-id precedence: _meta.agentId → PROCESS_AGENT_ID.
79
+ const agentId = typeof metaAgentId === "string" && metaAgentId.length > 0
80
+ ? metaAgentId
81
+ : PROCESS_AGENT_ID;
82
+ // Strip _meta + top-level port keys. Shallow copy so the caller's object is
83
+ // untouched.
84
+ const strippedArgs = { ...args };
85
+ delete strippedArgs._meta;
86
+ for (const key of TOP_LEVEL_PORT_KEYS) {
87
+ delete strippedArgs[key];
88
+ }
89
+ return { portOverride, agentId, strippedArgs };
90
+ }
91
+ /**
92
+ * Parse a port value that may arrive as a number or a numeric string. Returns
93
+ * undefined for anything that is not a valid integer in [MIN_PORT, MAX_PORT].
94
+ */
95
+ export function parsePort(value) {
96
+ if (typeof value === "number" && Number.isInteger(value)) {
97
+ return value >= MIN_PORT && value <= MAX_PORT ? value : undefined;
98
+ }
99
+ if (typeof value === "string" && value.length > 0) {
100
+ const n = parseInt(value, 10);
101
+ if (Number.isInteger(n) && n >= MIN_PORT && n <= MAX_PORT) {
102
+ // Reject things like parseInt("12abc") === 12 — require the whole string
103
+ // to be the number.
104
+ if (String(n) === value.trim())
105
+ return n;
106
+ }
107
+ }
108
+ return undefined;
109
+ }
110
+ function isPlainObject(value) {
111
+ return (typeof value === "object" &&
112
+ value !== null &&
113
+ !Array.isArray(value));
114
+ }
115
+ //# sourceMappingURL=agent-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-identity.js","sourceRoot":"","sources":["../src/agent-identity.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,13 @@ import { extractCompilerErrors } from "./compiler-errors.js";
5
5
  export { extractCompilerErrors };
6
6
  export declare function buildVerifyArgs(operation: string, args: Record<string, unknown>): string[];
7
7
  export declare function buildMetaArgs(operation: string, args: Record<string, unknown>): string[];
8
+ export declare function encodeSpaces(value: string): string;
9
+ export declare function classifyBatchFailure(combined: string): string | null;
10
+ export declare class BatchClassificationError extends Error {
11
+ readonly code: string;
12
+ readonly agentNextSteps?: string[];
13
+ constructor(code: string, message: string, agentNextSteps?: string[]);
14
+ }
8
15
  export interface BatchSpawnOptions {
9
16
  /**
10
17
  * Optional override for the Unity-install discovery roots (test hook).
@@ -16,16 +16,13 @@ const VERIFY_TOOL_TO_OPERATION = {
16
16
  const META_TOOL_TO_OPERATION = {
17
17
  unity_open_mcp_find_members: "find_members",
18
18
  unity_open_mcp_compile_check: "compile_check",
19
+ unity_open_mcp_execute_csharp: "execute_csharp",
20
+ unity_open_mcp_invoke_method: "invoke_method",
21
+ unity_open_mcp_execute_menu: "execute_menu",
19
22
  };
20
- const LIMITED_META_TOOLS = new Set([
21
- "unity_open_mcp_execute_csharp",
22
- "unity_open_mcp_invoke_method",
23
- "unity_open_mcp_execute_menu",
24
- ]);
25
23
  export const BATCH_TOOL_NAMES = new Set([
26
24
  ...Object.keys(VERIFY_TOOL_TO_OPERATION),
27
25
  ...Object.keys(META_TOOL_TO_OPERATION),
28
- ...LIMITED_META_TOOLS,
29
26
  ]);
30
27
  function extractJson(stdout) {
31
28
  const beginIdx = stdout.indexOf(OUTPUT_BEGIN);
@@ -102,23 +99,106 @@ export function buildMetaArgs(operation, args) {
102
99
  if (args.timeout_ms !== undefined)
103
100
  cli.push("--timeout-ms", String(args.timeout_ms));
104
101
  }
102
+ else if (operation === "execute_csharp") {
103
+ // The code payload is space-bearing and multi-line: it cannot round-trip
104
+ // through argv splitting on spaces. Encode spaces as ASCII unit separator
105
+ // (0x1f) here; the C# entry point decodes them back to spaces so the
106
+ // original snippet is reconstructed exactly.
107
+ if (args.code !== undefined)
108
+ cli.push("--code", encodeSpaces(String(args.code)));
109
+ if (Array.isArray(args.usings)) {
110
+ for (const u of args.usings)
111
+ cli.push("--using", String(u));
112
+ }
113
+ if (Array.isArray(args.object_ids)) {
114
+ for (const id of args.object_ids)
115
+ cli.push("--object-id", String(id));
116
+ }
117
+ if (args.max_depth !== undefined)
118
+ cli.push("--max-depth", String(args.max_depth));
119
+ if (args.max_items !== undefined)
120
+ cli.push("--max-items", String(args.max_items));
121
+ // Deny-list bypass contract: confirm_bypass:true forces an explicit gate:"off".
122
+ if (args.confirm_bypass === true)
123
+ cli.push("--confirm-bypass", "true");
124
+ }
125
+ else if (operation === "invoke_method") {
126
+ if (args.type_name !== undefined)
127
+ cli.push("--type-name", String(args.type_name));
128
+ if (args.method_name !== undefined)
129
+ cli.push("--method-name", String(args.method_name));
130
+ if (args.is_static !== undefined)
131
+ cli.push("--is-static", String(args.is_static));
132
+ if (args.assembly_name !== undefined)
133
+ cli.push("--assembly-name", String(args.assembly_name));
134
+ if (args.object_id !== undefined)
135
+ cli.push("--object-id", String(args.object_id));
136
+ if (Array.isArray(args.args)) {
137
+ for (const a of args.args)
138
+ cli.push("--arg", encodeSpaces(String(a)));
139
+ }
140
+ if (Array.isArray(args.arg_type_names)) {
141
+ for (const t of args.arg_type_names)
142
+ cli.push("--arg-type-name", String(t));
143
+ }
144
+ if (Array.isArray(args.generic_arg_types)) {
145
+ for (const g of args.generic_arg_types)
146
+ cli.push("--generic-arg-type", String(g));
147
+ }
148
+ if (args.max_depth !== undefined)
149
+ cli.push("--max-depth", String(args.max_depth));
150
+ if (args.max_items !== undefined)
151
+ cli.push("--max-items", String(args.max_items));
152
+ }
153
+ else if (operation === "execute_menu") {
154
+ if (args.menu_path !== undefined)
155
+ cli.push("--menu-path", String(args.menu_path));
156
+ }
105
157
  return cli;
106
158
  }
107
- const LIMITED_META_MESSAGES = {
108
- unity_open_mcp_execute_csharp: "execute_csharp is not supported in batch mode. " +
109
- "The gate (checkpoint, validate, delta) cannot run headless and Roslyn compilation " +
110
- "without a live Editor is unreliable. Connect a live Editor for full support. " +
111
- "Only find_members is available in batch mode.",
112
- unity_open_mcp_invoke_method: "invoke_method is not supported in batch mode. " +
113
- "Mutating method calls require gate enforcement which is unavailable headless, " +
114
- "and instance methods may depend on Editor-only state. " +
115
- "Connect a live Editor for full support. " +
116
- "Only find_members is available in batch mode.",
117
- unity_open_mcp_execute_menu: "execute_menu is not supported in batch mode. " +
118
- "Menu execution requires a live Editor UI; most menus fail in -batchmode. " +
119
- "Connect a live Editor for full support. " +
120
- "Only find_members is available in batch mode.",
121
- };
159
+ // Encodes spaces in a value as ASCII unit separator (0x1f) so a space-bearing
160
+ // flag value (e.g. a C# code snippet or a multi-token arg) survives argv
161
+ // splitting when spawned through `Unity ... -- <flags>`. The C# entry point
162
+ // (BridgeBatchEntry.ReadMultilineValue) decodes 0x1f back to a space.
163
+ export function encodeSpaces(value) {
164
+ return value.replace(/ /g, "\x1f");
165
+ }
166
+ // M22 Plan 3 / T-fix-2 classify a batch failure tail before falling back
167
+ // to the generic `batch_spawn_failed`. Unity's one-Editor-per-project lock
168
+ // produces a recognizable signature when a live Editor already holds the
169
+ // project open; surfacing `editor_instance_locked` lets an agent tell that
170
+ // situation apart from a genuine compile/spawn failure and act on it (close
171
+ // the live Editor, or use live introspection instead of a headless spawn).
172
+ //
173
+ // Returns the error code to emit, or null when the tail does not match a
174
+ // known classification (caller falls back to batch_spawn_failed).
175
+ const PROJECT_LOCK_PATTERN = /another unity instance|already open/i;
176
+ export function classifyBatchFailure(combined) {
177
+ if (typeof combined !== "string" || combined.length === 0)
178
+ return null;
179
+ if (PROJECT_LOCK_PATTERN.test(combined))
180
+ return "editor_instance_locked";
181
+ return null;
182
+ }
183
+ // Error carrying a classified code so route()'s catch can emit a targeted
184
+ // error result instead of the generic batch_spawn_failed. Thrown by the
185
+ // spawn close-handler when classifyBatchFailure matches the tail.
186
+ //
187
+ // `agentNextSteps` is an optional structured recovery hint (an array of
188
+ // actionable strings naming specific tools). When present, route()'s catch
189
+ // emits it alongside the error envelope so an agent has a machine-readable
190
+ // recovery branch — mirroring the MutationEnvelope.agentNextSteps pattern
191
+ // used by the live-bridge gate results. See specs/feedback.md (editor_instance_locked).
192
+ export class BatchClassificationError extends Error {
193
+ code;
194
+ agentNextSteps;
195
+ constructor(code, message, agentNextSteps) {
196
+ super(message);
197
+ this.name = "BatchClassificationError";
198
+ this.code = code;
199
+ this.agentNextSteps = agentNextSteps;
200
+ }
201
+ }
122
202
  export class BatchSpawn {
123
203
  unityPath;
124
204
  unityPathSource;
@@ -158,13 +238,6 @@ export class BatchSpawn {
158
238
  return BATCH_TOOL_NAMES.has(toolName);
159
239
  }
160
240
  async route(toolName, args) {
161
- if (LIMITED_META_TOOLS.has(toolName)) {
162
- return makeErrorResult({
163
- code: "batch_not_supported",
164
- message: LIMITED_META_MESSAGES[toolName] ??
165
- `${toolName} is not supported in batch mode.`,
166
- });
167
- }
168
241
  const verifyOperation = VERIFY_TOOL_TO_OPERATION[toolName];
169
242
  const metaOperation = META_TOOL_TO_OPERATION[toolName];
170
243
  if (!verifyOperation && !metaOperation) {
@@ -195,7 +268,39 @@ export class BatchSpawn {
195
268
  }
196
269
  catch (err) {
197
270
  const message = err instanceof Error ? err.message : String(err);
198
- return makeErrorResult({ code: "batch_spawn_failed", message });
271
+ // M22 Plan 3 / T-fix-2 — a classified failure (e.g.
272
+ // editor_instance_locked) carries a targeted code; only fall back to the
273
+ // generic batch_spawn_failed for unclassified errors so genuine spawn /
274
+ // compile failures keep their existing behavior.
275
+ if (err instanceof BatchClassificationError) {
276
+ // When the classified error carries structured recovery hints, surface
277
+ // them as a top-level agentNextSteps[] sibling to the error envelope —
278
+ // matching MutationEnvelope's shape so an agent has a machine-readable
279
+ // recovery branch instead of having to parse prose. See specs/feedback.md.
280
+ if (err.agentNextSteps && err.agentNextSteps.length > 0) {
281
+ return makeErrorResult({
282
+ code: err.code,
283
+ message,
284
+ detail: { error: { code: err.code, message }, agentNextSteps: err.agentNextSteps },
285
+ });
286
+ }
287
+ return makeErrorResult({ code: err.code, message });
288
+ }
289
+ // Unclassified spawn failure — point the agent at the same recovery tools
290
+ // (read_compile_errors, reimport_package) so it is not left with an opaque
291
+ // code and no next step.
292
+ return makeErrorResult({
293
+ code: "batch_spawn_failed",
294
+ message,
295
+ detail: {
296
+ error: { code: "batch_spawn_failed", message },
297
+ agentNextSteps: [
298
+ "The batch spawn failed for an unclassified reason. To check compile state without spawning a headless Editor, call unity_open_mcp_read_compile_errors.",
299
+ "If the issue is local-package source not under Assets/, call unity_open_mcp_reimport_package on the package to force a reimport.",
300
+ "To run a headless batch, ensure no live Editor holds the project lock and the Unity install path is valid.",
301
+ ],
302
+ },
303
+ });
199
304
  }
200
305
  const body = parsed.json;
201
306
  body.exitCode = parsed.exitCode;
@@ -308,6 +413,27 @@ export class BatchSpawn {
308
413
  csErrors.join("\n")));
309
414
  return;
310
415
  }
416
+ // M22 Plan 3 / T-fix-2 — before the generic no-markers reject,
417
+ // classify the tail. Unity's one-Editor-per-project lock surfaces a
418
+ // recognizable signature when a live Editor already holds the
419
+ // project; emit editor_instance_locked so an agent can act (close
420
+ // the live Editor or use live introspection) instead of seeing an
421
+ // opaque batch_spawn_failed.
422
+ const classified = classifyBatchFailure(combined);
423
+ if (classified === "editor_instance_locked") {
424
+ reject(new BatchClassificationError("editor_instance_locked", "A live Unity Editor holds the project lock, so the headless " +
425
+ "compile_check spawn could not open the project. Unity allows " +
426
+ "only one Editor per project. Either close the live Editor and " +
427
+ "retry compile_check, or verify compile state via the live " +
428
+ "bridge instead (execute_csharp + Library/ScriptAssemblies DLL " +
429
+ "mtime check, or read_compile_errors).", [
430
+ "A live Unity Editor holds the project lock, so the headless compile_check spawn cannot open the project (one Editor per project).",
431
+ "To verify compile state without closing the Editor, call unity_open_mcp_read_compile_errors (reads Editor.log offline).",
432
+ "To confirm a specific local package recompiled, call unity_open_mcp_reimport_package on the package and compare dllMtimeBefore/dllMtimeAfter.",
433
+ "To run a true headless compile_check, close the live Editor first.",
434
+ ]));
435
+ return;
436
+ }
311
437
  reject(new Error(`Batch output did not contain JSON markers. Exit code: ${exitCode}.` +
312
438
  (tail ? ` Last output: ${tail}` : "")));
313
439
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"batch-spawn.js","sourceRoot":"","sources":["../src/batch-spawn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch-spawn.js","sourceRoot":"","sources":["../src/batch-spawn.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import type { Tool } from "@modelcontextprotocol/sdk/types.js";
2
2
  import type { RuleCapability, FixCapability, CapabilityStatus } from "./rule-catalog.js";
3
+ import { type CostHintsBlock } from "./cost-hints.js";
4
+ import { type LifecycleClass, type LifecycleBlock } from "./lifecycle.js";
3
5
  export type RoutePolicy = "live" | "offline" | "offline-first" | "compressible";
4
6
  export interface PlannedTool {
5
7
  name: string;
@@ -33,6 +35,19 @@ export interface ToolCapability {
33
35
  * which manage_tools group to activate to surface a planned tool.
34
36
  */
35
37
  group: string | null;
38
+ /**
39
+ * Lifecycle class describing the recovery concern an agent must reason
40
+ * about when this call fails / stalls: none | compile-reload | modal-dialog
41
+ * | scene-dirty | process-stale. Read it before the call to pick a recovery
42
+ * strategy (see `lifecycleBlock` for the taxonomy).
43
+ */
44
+ lifecycle: LifecycleClass;
45
+ /**
46
+ * Optional tool-specific constraint or secondary recovery concern (e.g.
47
+ * compile_check notes its batch-only lock; build_start notes the secondary
48
+ * scene-dirty concern). Null when the class is self-describing.
49
+ */
50
+ lifecycleNote: string | null;
36
51
  }
37
52
  /**
38
53
  * Per-group capability entry as it appears in the capabilities response.
@@ -66,6 +81,19 @@ export interface ToolGroupCapability {
66
81
  unityPackage: string | null;
67
82
  /** Bridge compile define that gates this group (null when not gated). */
68
83
  domainDefine: string | null;
84
+ /**
85
+ * M20 Plan 7 / T20.7.0 — when true, the group opts into package-detection
86
+ * auto-activation: it appears in a fresh session's ListTools automatically
87
+ * when its `unityPackage` is installed, no manual manage_tools call
88
+ * required. False (or absent) for manual-activation-only groups.
89
+ */
90
+ autoActivate: boolean;
91
+ /**
92
+ * M20 Plan 7 / T20.7.0 — the package id that gates this group's auto-
93
+ * activation (mirrors `unityPackage` when `autoActivate` is true, null
94
+ * otherwise). Surfaced so an agent can understand WHY a group is visible.
95
+ */
96
+ packageDependency: string | null;
69
97
  /**
70
98
  * Usage hint surfaced to the agent. Always points at manage_tools so the
71
99
  * agent knows to activate the group before invoking its tools.
@@ -102,6 +130,23 @@ export interface CapabilitiesResult {
102
130
  * {@link ToolCapability} entry, not here.
103
131
  */
104
132
  routing: RoutingSummary;
133
+ /**
134
+ * M22 Plan 1 / T22.1.5 — per-tool cost hints (approximate token cost per
135
+ * output profile) + recommended tool chains. Lets an agent reason about
136
+ * prompt cost before choosing a profile, and learn the budget-aware way to
137
+ * accomplish common tasks. Independent of the kind filter — agents asking
138
+ * for rules/fixes still benefit from the cost narrative.
139
+ */
140
+ costHints: CostHintsBlock;
141
+ /**
142
+ * Lifecycle policy taxonomy (5 classes) + the per-tool `lifecycle` field on
143
+ * each ToolCapability. Lets an agent reason about recovery before a call:
144
+ * read the class to learn what the bridge does (settle / dirty guard /
145
+ * heartbeat) and how to recover when the call fails or stalls. Independent
146
+ * of the kind filter — agents asking for rules/fixes still benefit from the
147
+ * recovery narrative.
148
+ */
149
+ lifecycleBlock: LifecycleBlock;
105
150
  }
106
151
  /**
107
152
  * Compact routing summary embedded in the capabilities response. This