unity-open-mcp 0.7.0 → 0.8.3

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 (899) hide show
  1. package/dist/batch-spawn.d.ts +12 -0
  2. package/dist/batch-spawn.js +106 -10
  3. package/dist/batch-spawn.js.map +1 -1
  4. package/dist/bridge-tools-cache.d.ts +46 -0
  5. package/dist/bridge-tools-cache.js +83 -0
  6. package/dist/bridge-tools-cache.js.map +1 -0
  7. package/dist/capabilities/build-capabilities.d.ts +34 -0
  8. package/dist/capabilities/build-capabilities.js +188 -450
  9. package/dist/capabilities/build-capabilities.js.map +1 -1
  10. package/dist/capabilities/intent-groups.d.ts +99 -0
  11. package/dist/capabilities/intent-groups.js +518 -0
  12. package/dist/capabilities/intent-groups.js.map +1 -0
  13. package/dist/capabilities/list-rules.js +12 -20
  14. package/dist/capabilities/list-rules.js.map +1 -1
  15. package/dist/capabilities/rule-catalog.d.ts +22 -1
  16. package/dist/capabilities/rule-catalog.js +53 -20
  17. package/dist/capabilities/rule-catalog.js.map +1 -1
  18. package/dist/capabilities/tool-groups.d.ts +8 -4
  19. package/dist/capabilities/tool-groups.js +36 -9
  20. package/dist/capabilities/tool-groups.js.map +1 -1
  21. package/dist/cli/cli.js +65 -8
  22. package/dist/cli/cli.js.map +1 -1
  23. package/dist/cli/commands.d.ts +20 -0
  24. package/dist/cli/commands.js +142 -73
  25. package/dist/cli/commands.js.map +1 -1
  26. package/dist/cli/help-text.d.ts +2 -0
  27. package/dist/cli/help-text.js +77 -0
  28. package/dist/cli/help-text.js.map +1 -0
  29. package/dist/cli/ping-poller.d.ts +7 -5
  30. package/dist/cli/ping-poller.js +16 -15
  31. package/dist/cli/ping-poller.js.map +1 -1
  32. package/dist/compressible-router.d.ts +9 -2
  33. package/dist/compressible-router.js +64 -7
  34. package/dist/compressible-router.js.map +1 -1
  35. package/dist/compression/compact.d.ts +1 -0
  36. package/dist/compression/compact.js +82 -14
  37. package/dist/compression/compact.js.map +1 -1
  38. package/dist/constants.d.ts +6 -5
  39. package/dist/constants.js +6 -5
  40. package/dist/constants.js.map +1 -1
  41. package/dist/dialog-dismiss.d.ts +10 -0
  42. package/dist/dialog-dismiss.js +110 -10
  43. package/dist/dialog-dismiss.js.map +1 -1
  44. package/dist/editor-process-control.d.ts +68 -0
  45. package/dist/editor-process-control.js +249 -0
  46. package/dist/editor-process-control.js.map +1 -0
  47. package/dist/event-stream.d.ts +2 -1
  48. package/dist/event-stream.js +43 -8
  49. package/dist/event-stream.js.map +1 -1
  50. package/dist/index.d.ts +1 -2
  51. package/dist/index.js +18 -140
  52. package/dist/index.js.map +1 -1
  53. package/dist/live-client.d.ts +52 -10
  54. package/dist/live-client.js +399 -42
  55. package/dist/live-client.js.map +1 -1
  56. package/dist/offline/api.js +333 -91
  57. package/dist/offline/api.js.map +1 -1
  58. package/dist/offline/hierarchy.js +100 -3
  59. package/dist/offline/hierarchy.js.map +1 -1
  60. package/dist/offline/index-builders.d.ts +120 -2
  61. package/dist/offline/index-builders.js +374 -35
  62. package/dist/offline/index-builders.js.map +1 -1
  63. package/dist/offline/overrides.js +5 -1
  64. package/dist/offline/overrides.js.map +1 -1
  65. package/dist/offline/parse.js +21 -9
  66. package/dist/offline/parse.js.map +1 -1
  67. package/dist/offline/paths.d.ts +32 -0
  68. package/dist/offline/paths.js +71 -2
  69. package/dist/offline/paths.js.map +1 -1
  70. package/dist/offline/primitives.d.ts +15 -0
  71. package/dist/offline/primitives.js +130 -6
  72. package/dist/offline/primitives.js.map +1 -1
  73. package/dist/offline/types.d.ts +29 -0
  74. package/dist/offline/types.js.map +1 -1
  75. package/dist/ping-cache.d.ts +35 -0
  76. package/dist/ping-cache.js +70 -0
  77. package/dist/ping-cache.js.map +1 -1
  78. package/dist/process-diagnostics.d.ts +146 -0
  79. package/dist/process-diagnostics.js +333 -0
  80. package/dist/process-diagnostics.js.map +1 -0
  81. package/dist/schema-defaults.d.ts +11 -0
  82. package/dist/schema-defaults.js +32 -1
  83. package/dist/schema-defaults.js.map +1 -1
  84. package/dist/server-instructions.js +7 -2
  85. package/dist/server-instructions.js.map +1 -1
  86. package/dist/server.d.ts +17 -0
  87. package/dist/server.js +195 -0
  88. package/dist/server.js.map +1 -0
  89. package/dist/skill/client-paths.d.ts +23 -0
  90. package/dist/skill/client-paths.js +46 -1
  91. package/dist/skill/client-paths.js.map +1 -1
  92. package/dist/tool-router.d.ts +54 -0
  93. package/dist/tool-router.js +689 -51
  94. package/dist/tool-router.js.map +1 -1
  95. package/dist/tool-session-state.d.ts +82 -10
  96. package/dist/tool-session-state.js +116 -13
  97. package/dist/tool-session-state.js.map +1 -1
  98. package/dist/tools/agent-capabilities.d.ts +40 -2
  99. package/dist/tools/agent-capabilities.js +16 -21
  100. package/dist/tools/agent-capabilities.js.map +1 -1
  101. package/dist/tools/animation-create.d.ts +40 -2
  102. package/dist/tools/animation-create.js +17 -26
  103. package/dist/tools/animation-create.js.map +1 -1
  104. package/dist/tools/animation-get-data.d.ts +40 -2
  105. package/dist/tools/animation-get-data.js +13 -18
  106. package/dist/tools/animation-get-data.js.map +1 -1
  107. package/dist/tools/animation-modify.d.ts +40 -2
  108. package/dist/tools/animation-modify.js +31 -40
  109. package/dist/tools/animation-modify.js.map +1 -1
  110. package/dist/tools/animator-create.d.ts +40 -2
  111. package/dist/tools/animator-create.js +17 -26
  112. package/dist/tools/animator-create.js.map +1 -1
  113. package/dist/tools/animator-get-data.d.ts +40 -2
  114. package/dist/tools/animator-get-data.js +13 -18
  115. package/dist/tools/animator-get-data.js.map +1 -1
  116. package/dist/tools/animator-modify.d.ts +40 -2
  117. package/dist/tools/animator-modify.js +37 -46
  118. package/dist/tools/animator-modify.js.map +1 -1
  119. package/dist/tools/apply-fix.d.ts +40 -2
  120. package/dist/tools/apply-fix.js +41 -57
  121. package/dist/tools/apply-fix.js.map +1 -1
  122. package/dist/tools/asmdef-create.d.ts +40 -2
  123. package/dist/tools/asmdef-create.js +82 -100
  124. package/dist/tools/asmdef-create.js.map +1 -1
  125. package/dist/tools/asmdef-get.d.ts +40 -2
  126. package/dist/tools/asmdef-get.js +14 -19
  127. package/dist/tools/asmdef-get.js.map +1 -1
  128. package/dist/tools/asmdef-list.d.ts +40 -2
  129. package/dist/tools/asmdef-list.js +25 -30
  130. package/dist/tools/asmdef-list.js.map +1 -1
  131. package/dist/tools/asmdef-modify.d.ts +40 -2
  132. package/dist/tools/asmdef-modify.js +76 -94
  133. package/dist/tools/asmdef-modify.js.map +1 -1
  134. package/dist/tools/assets-copy.d.ts +40 -2
  135. package/dist/tools/assets-copy.js +26 -38
  136. package/dist/tools/assets-copy.js.map +1 -1
  137. package/dist/tools/assets-create-folder.d.ts +40 -2
  138. package/dist/tools/assets-create-folder.js +28 -41
  139. package/dist/tools/assets-create-folder.js.map +1 -1
  140. package/dist/tools/assets-delete.d.ts +40 -2
  141. package/dist/tools/assets-delete.js +16 -28
  142. package/dist/tools/assets-delete.js.map +1 -1
  143. package/dist/tools/assets-move.d.ts +40 -2
  144. package/dist/tools/assets-move.js +27 -39
  145. package/dist/tools/assets-move.js.map +1 -1
  146. package/dist/tools/assets-refresh.d.ts +40 -2
  147. package/dist/tools/assets-refresh.js +16 -28
  148. package/dist/tools/assets-refresh.js.map +1 -1
  149. package/dist/tools/audio-listener-get.d.ts +40 -2
  150. package/dist/tools/audio-listener-get.js +8 -13
  151. package/dist/tools/audio-listener-get.js.map +1 -1
  152. package/dist/tools/audio-mixer-get-parameter.d.ts +40 -2
  153. package/dist/tools/audio-mixer-get-parameter.js +15 -20
  154. package/dist/tools/audio-mixer-get-parameter.js.map +1 -1
  155. package/dist/tools/audio-mixer-set-parameter.d.ts +40 -2
  156. package/dist/tools/audio-mixer-set-parameter.js +29 -38
  157. package/dist/tools/audio-mixer-set-parameter.js.map +1 -1
  158. package/dist/tools/audio-source-add.d.ts +40 -2
  159. package/dist/tools/audio-source-add.js +58 -70
  160. package/dist/tools/audio-source-add.js.map +1 -1
  161. package/dist/tools/audio-source-modify.d.ts +40 -2
  162. package/dist/tools/audio-source-modify.js +36 -46
  163. package/dist/tools/audio-source-modify.js.map +1 -1
  164. package/dist/tools/baseline-create.d.ts +40 -2
  165. package/dist/tools/baseline-create.js +12 -17
  166. package/dist/tools/baseline-create.js.map +1 -1
  167. package/dist/tools/batch-execute.d.ts +40 -2
  168. package/dist/tools/batch-execute.js +64 -74
  169. package/dist/tools/batch-execute.js.map +1 -1
  170. package/dist/tools/bridge-status.d.ts +40 -2
  171. package/dist/tools/bridge-status.js +33 -38
  172. package/dist/tools/bridge-status.js.map +1 -1
  173. package/dist/tools/build-get-active-target.d.ts +40 -2
  174. package/dist/tools/build-get-active-target.js +7 -12
  175. package/dist/tools/build-get-active-target.js.map +1 -1
  176. package/dist/tools/build-get-defines.d.ts +40 -2
  177. package/dist/tools/build-get-defines.js +7 -12
  178. package/dist/tools/build-get-defines.js.map +1 -1
  179. package/dist/tools/build-get-scenes.d.ts +40 -2
  180. package/dist/tools/build-get-scenes.js +7 -12
  181. package/dist/tools/build-get-scenes.js.map +1 -1
  182. package/dist/tools/build-get-targets.d.ts +40 -2
  183. package/dist/tools/build-get-targets.js +8 -13
  184. package/dist/tools/build-get-targets.js.map +1 -1
  185. package/dist/tools/build-set-defines.d.ts +40 -2
  186. package/dist/tools/build-set-defines.js +22 -40
  187. package/dist/tools/build-set-defines.js.map +1 -1
  188. package/dist/tools/build-set-scenes.d.ts +40 -2
  189. package/dist/tools/build-set-scenes.js +36 -49
  190. package/dist/tools/build-set-scenes.js.map +1 -1
  191. package/dist/tools/build-set-target.d.ts +40 -2
  192. package/dist/tools/build-set-target.js +17 -38
  193. package/dist/tools/build-set-target.js.map +1 -1
  194. package/dist/tools/build-start.d.ts +40 -2
  195. package/dist/tools/build-start.js +34 -50
  196. package/dist/tools/build-start.js.map +1 -1
  197. package/dist/tools/capture-inline.d.ts +40 -2
  198. package/dist/tools/capture-inline.js +43 -48
  199. package/dist/tools/capture-inline.js.map +1 -1
  200. package/dist/tools/checkpoint-create.d.ts +40 -2
  201. package/dist/tools/checkpoint-create.js +13 -14
  202. package/dist/tools/checkpoint-create.js.map +1 -1
  203. package/dist/tools/cinemachine-brain-ensure.d.ts +40 -2
  204. package/dist/tools/cinemachine-brain-ensure.js +14 -23
  205. package/dist/tools/cinemachine-brain-ensure.js.map +1 -1
  206. package/dist/tools/cinemachine-camera-list.d.ts +40 -2
  207. package/dist/tools/cinemachine-camera-list.js +6 -11
  208. package/dist/tools/cinemachine-camera-list.js.map +1 -1
  209. package/dist/tools/cinemachine-create-camera.d.ts +40 -2
  210. package/dist/tools/cinemachine-create-camera.js +38 -47
  211. package/dist/tools/cinemachine-create-camera.js.map +1 -1
  212. package/dist/tools/cinemachine-set-body.d.ts +40 -2
  213. package/dist/tools/cinemachine-set-body.js +20 -29
  214. package/dist/tools/cinemachine-set-body.js.map +1 -1
  215. package/dist/tools/cinemachine-set-lens.d.ts +40 -2
  216. package/dist/tools/cinemachine-set-lens.js +28 -37
  217. package/dist/tools/cinemachine-set-lens.js.map +1 -1
  218. package/dist/tools/cinemachine-set-noise.d.ts +40 -2
  219. package/dist/tools/cinemachine-set-noise.js +18 -27
  220. package/dist/tools/cinemachine-set-noise.js.map +1 -1
  221. package/dist/tools/cinemachine-set-targets.d.ts +40 -2
  222. package/dist/tools/cinemachine-set-targets.js +17 -26
  223. package/dist/tools/cinemachine-set-targets.js.map +1 -1
  224. package/dist/tools/compile-check.d.ts +40 -2
  225. package/dist/tools/compile-check.js +18 -23
  226. package/dist/tools/compile-check.js.map +1 -1
  227. package/dist/tools/component-add.d.ts +40 -2
  228. package/dist/tools/component-add.js +30 -42
  229. package/dist/tools/component-add.js.map +1 -1
  230. package/dist/tools/component-destroy.d.ts +40 -2
  231. package/dist/tools/component-destroy.js +29 -41
  232. package/dist/tools/component-destroy.js.map +1 -1
  233. package/dist/tools/component-get.d.ts +40 -2
  234. package/dist/tools/component-get.js +77 -82
  235. package/dist/tools/component-get.js.map +1 -1
  236. package/dist/tools/component-list-all.d.ts +40 -2
  237. package/dist/tools/component-list-all.js +29 -34
  238. package/dist/tools/component-list-all.js.map +1 -1
  239. package/dist/tools/component-modify.d.ts +40 -2
  240. package/dist/tools/component-modify.js +60 -72
  241. package/dist/tools/component-modify.js.map +1 -1
  242. package/dist/tools/console-clear.d.ts +40 -2
  243. package/dist/tools/console-clear.js +9 -14
  244. package/dist/tools/console-clear.js.map +1 -1
  245. package/dist/tools/console-log.d.ts +40 -2
  246. package/dist/tools/console-log.js +34 -39
  247. package/dist/tools/console-log.js.map +1 -1
  248. package/dist/tools/constraint-add.d.ts +40 -2
  249. package/dist/tools/constraint-add.js +49 -61
  250. package/dist/tools/constraint-add.js.map +1 -1
  251. package/dist/tools/delta.d.ts +40 -2
  252. package/dist/tools/delta.js +10 -15
  253. package/dist/tools/delta.js.map +1 -1
  254. package/dist/tools/dependencies.d.ts +40 -2
  255. package/dist/tools/dependencies.js +55 -60
  256. package/dist/tools/dependencies.js.map +1 -1
  257. package/dist/tools/editor-add-layer.d.ts +40 -2
  258. package/dist/tools/editor-add-layer.js +30 -43
  259. package/dist/tools/editor-add-layer.js.map +1 -1
  260. package/dist/tools/editor-add-tag.d.ts +40 -2
  261. package/dist/tools/editor-add-tag.js +20 -33
  262. package/dist/tools/editor-add-tag.js.map +1 -1
  263. package/dist/tools/editor-clear-history.d.ts +40 -2
  264. package/dist/tools/editor-clear-history.js +9 -21
  265. package/dist/tools/editor-clear-history.js.map +1 -1
  266. package/dist/tools/editor-get-layers.d.ts +40 -2
  267. package/dist/tools/editor-get-layers.js +12 -17
  268. package/dist/tools/editor-get-layers.js.map +1 -1
  269. package/dist/tools/editor-get-tags.d.ts +40 -2
  270. package/dist/tools/editor-get-tags.js +10 -15
  271. package/dist/tools/editor-get-tags.js.map +1 -1
  272. package/dist/tools/editor-redo.d.ts +40 -2
  273. package/dist/tools/editor-redo.js +15 -20
  274. package/dist/tools/editor-redo.js.map +1 -1
  275. package/dist/tools/editor-set-state.d.ts +40 -2
  276. package/dist/tools/editor-set-state.js +33 -42
  277. package/dist/tools/editor-set-state.js.map +1 -1
  278. package/dist/tools/editor-status.d.ts +40 -2
  279. package/dist/tools/editor-status.js +9 -14
  280. package/dist/tools/editor-status.js.map +1 -1
  281. package/dist/tools/editor-undo-history.d.ts +40 -2
  282. package/dist/tools/editor-undo-history.js +11 -16
  283. package/dist/tools/editor-undo-history.js.map +1 -1
  284. package/dist/tools/editor-undo.d.ts +40 -2
  285. package/dist/tools/editor-undo.js +17 -22
  286. package/dist/tools/editor-undo.js.map +1 -1
  287. package/dist/tools/editorprefs-delete.d.ts +40 -2
  288. package/dist/tools/editorprefs-delete.js +12 -17
  289. package/dist/tools/editorprefs-delete.js.map +1 -1
  290. package/dist/tools/editorprefs-get.d.ts +40 -2
  291. package/dist/tools/editorprefs-get.js +17 -22
  292. package/dist/tools/editorprefs-get.js.map +1 -1
  293. package/dist/tools/editorprefs-set.d.ts +40 -2
  294. package/dist/tools/editorprefs-set.js +22 -27
  295. package/dist/tools/editorprefs-set.js.map +1 -1
  296. package/dist/tools/execute-csharp.d.ts +40 -2
  297. package/dist/tools/execute-csharp.js +44 -71
  298. package/dist/tools/execute-csharp.js.map +1 -1
  299. package/dist/tools/execute-menu.d.ts +40 -2
  300. package/dist/tools/execute-menu.js +12 -37
  301. package/dist/tools/execute-menu.js.map +1 -1
  302. package/dist/tools/find-members.d.ts +40 -2
  303. package/dist/tools/find-members.js +41 -46
  304. package/dist/tools/find-members.js.map +1 -1
  305. package/dist/tools/find-references.d.ts +40 -2
  306. package/dist/tools/find-references.js +48 -53
  307. package/dist/tools/find-references.js.map +1 -1
  308. package/dist/tools/frame-debugger.d.ts +40 -2
  309. package/dist/tools/frame-debugger.js +27 -32
  310. package/dist/tools/frame-debugger.js.map +1 -1
  311. package/dist/tools/gameobject-create.d.ts +40 -2
  312. package/dist/tools/gameobject-create.js +44 -56
  313. package/dist/tools/gameobject-create.js.map +1 -1
  314. package/dist/tools/gameobject-destroy.d.ts +40 -2
  315. package/dist/tools/gameobject-destroy.js +21 -33
  316. package/dist/tools/gameobject-destroy.js.map +1 -1
  317. package/dist/tools/gameobject-duplicate.d.ts +40 -2
  318. package/dist/tools/gameobject-duplicate.js +23 -35
  319. package/dist/tools/gameobject-duplicate.js.map +1 -1
  320. package/dist/tools/gameobject-find.d.ts +40 -2
  321. package/dist/tools/gameobject-find.js +49 -54
  322. package/dist/tools/gameobject-find.js.map +1 -1
  323. package/dist/tools/gameobject-modify.d.ts +40 -2
  324. package/dist/tools/gameobject-modify.js +101 -113
  325. package/dist/tools/gameobject-modify.js.map +1 -1
  326. package/dist/tools/gameobject-set-parent.d.ts +40 -2
  327. package/dist/tools/gameobject-set-parent.js +42 -50
  328. package/dist/tools/gameobject-set-parent.js.map +1 -1
  329. package/dist/tools/gate-budget-estimate.d.ts +40 -2
  330. package/dist/tools/gate-budget-estimate.js +35 -40
  331. package/dist/tools/gate-budget-estimate.js.map +1 -1
  332. package/dist/tools/generate-skill.d.ts +40 -2
  333. package/dist/tools/generate-skill.js +30 -35
  334. package/dist/tools/generate-skill.js.map +1 -1
  335. package/dist/tools/hub-available-releases.d.ts +40 -2
  336. package/dist/tools/hub-available-releases.js +12 -17
  337. package/dist/tools/hub-available-releases.js.map +1 -1
  338. package/dist/tools/hub-get-install-path.d.ts +40 -2
  339. package/dist/tools/hub-get-install-path.js +11 -16
  340. package/dist/tools/hub-get-install-path.js.map +1 -1
  341. package/dist/tools/hub-install-editor.d.ts +40 -2
  342. package/dist/tools/hub-install-editor.js +29 -34
  343. package/dist/tools/hub-install-editor.js.map +1 -1
  344. package/dist/tools/hub-install-modules.d.ts +40 -2
  345. package/dist/tools/hub-install-modules.js +31 -36
  346. package/dist/tools/hub-install-modules.js.map +1 -1
  347. package/dist/tools/hub-list-editors.d.ts +40 -2
  348. package/dist/tools/hub-list-editors.js +14 -19
  349. package/dist/tools/hub-list-editors.js.map +1 -1
  350. package/dist/tools/hub-set-install-path.d.ts +40 -2
  351. package/dist/tools/hub-set-install-path.js +18 -23
  352. package/dist/tools/hub-set-install-path.js.map +1 -1
  353. package/dist/tools/impact-preview.d.ts +40 -2
  354. package/dist/tools/impact-preview.js +31 -36
  355. package/dist/tools/impact-preview.js.map +1 -1
  356. package/dist/tools/index.d.ts +1 -0
  357. package/dist/tools/index.js +17 -0
  358. package/dist/tools/index.js.map +1 -1
  359. package/dist/tools/inputsystem-action-add.d.ts +40 -2
  360. package/dist/tools/inputsystem-action-add.js +48 -57
  361. package/dist/tools/inputsystem-action-add.js.map +1 -1
  362. package/dist/tools/inputsystem-actionmap-add.d.ts +40 -2
  363. package/dist/tools/inputsystem-actionmap-add.js +17 -26
  364. package/dist/tools/inputsystem-actionmap-add.js.map +1 -1
  365. package/dist/tools/inputsystem-asset-create.d.ts +40 -2
  366. package/dist/tools/inputsystem-asset-create.js +19 -28
  367. package/dist/tools/inputsystem-asset-create.js.map +1 -1
  368. package/dist/tools/inputsystem-binding-add.d.ts +40 -2
  369. package/dist/tools/inputsystem-binding-add.js +34 -43
  370. package/dist/tools/inputsystem-binding-add.js.map +1 -1
  371. package/dist/tools/inputsystem-binding-composite-add.d.ts +40 -2
  372. package/dist/tools/inputsystem-binding-composite-add.js +37 -46
  373. package/dist/tools/inputsystem-binding-composite-add.js.map +1 -1
  374. package/dist/tools/inputsystem-controlscheme-add.d.ts +40 -2
  375. package/dist/tools/inputsystem-controlscheme-add.js +29 -38
  376. package/dist/tools/inputsystem-controlscheme-add.js.map +1 -1
  377. package/dist/tools/inputsystem-get.d.ts +40 -2
  378. package/dist/tools/inputsystem-get.js +12 -17
  379. package/dist/tools/inputsystem-get.js.map +1 -1
  380. package/dist/tools/invoke-method.d.ts +40 -2
  381. package/dist/tools/invoke-method.js +73 -91
  382. package/dist/tools/invoke-method.js.map +1 -1
  383. package/dist/tools/light-add.d.ts +40 -2
  384. package/dist/tools/light-add.js +38 -50
  385. package/dist/tools/light-add.js.map +1 -1
  386. package/dist/tools/light-modify.d.ts +40 -2
  387. package/dist/tools/light-modify.js +22 -31
  388. package/dist/tools/light-modify.js.map +1 -1
  389. package/dist/tools/light-set.d.ts +40 -2
  390. package/dist/tools/light-set.js +40 -49
  391. package/dist/tools/light-set.js.map +1 -1
  392. package/dist/tools/list-assets-of-type.d.ts +40 -2
  393. package/dist/tools/list-assets-of-type.js +37 -42
  394. package/dist/tools/list-assets-of-type.js.map +1 -1
  395. package/dist/tools/list-assets.d.ts +40 -2
  396. package/dist/tools/list-assets.js +19 -24
  397. package/dist/tools/list-assets.js.map +1 -1
  398. package/dist/tools/list-rules.d.ts +40 -2
  399. package/dist/tools/list-rules.js +19 -24
  400. package/dist/tools/list-rules.js.map +1 -1
  401. package/dist/tools/lod-add-level.d.ts +40 -2
  402. package/dist/tools/lod-add-level.js +31 -43
  403. package/dist/tools/lod-add-level.js.map +1 -1
  404. package/dist/tools/lod-group-configure.d.ts +40 -2
  405. package/dist/tools/lod-group-configure.js +30 -42
  406. package/dist/tools/lod-group-configure.js.map +1 -1
  407. package/dist/tools/manage-tools.d.ts +40 -2
  408. package/dist/tools/manage-tools.js +70 -36
  409. package/dist/tools/manage-tools.js.map +1 -1
  410. package/dist/tools/material-create.d.ts +40 -2
  411. package/dist/tools/material-create.js +30 -31
  412. package/dist/tools/material-create.js.map +1 -1
  413. package/dist/tools/material-get-keywords.d.ts +40 -2
  414. package/dist/tools/material-get-keywords.js +14 -19
  415. package/dist/tools/material-get-keywords.js.map +1 -1
  416. package/dist/tools/material-get-properties.d.ts +40 -2
  417. package/dist/tools/material-get-properties.js +21 -26
  418. package/dist/tools/material-get-properties.js.map +1 -1
  419. package/dist/tools/material-set-keyword.d.ts +40 -2
  420. package/dist/tools/material-set-keyword.js +26 -38
  421. package/dist/tools/material-set-keyword.js.map +1 -1
  422. package/dist/tools/material-set-property.d.ts +40 -2
  423. package/dist/tools/material-set-property.js +35 -47
  424. package/dist/tools/material-set-property.js.map +1 -1
  425. package/dist/tools/material-set-shader.d.ts +40 -2
  426. package/dist/tools/material-set-shader.js +23 -35
  427. package/dist/tools/material-set-shader.js.map +1 -1
  428. package/dist/tools/memory-snapshot-capture.d.ts +40 -2
  429. package/dist/tools/memory-snapshot-capture.js +37 -42
  430. package/dist/tools/memory-snapshot-capture.js.map +1 -1
  431. package/dist/tools/mutation-explain.d.ts +40 -2
  432. package/dist/tools/mutation-explain.js +19 -24
  433. package/dist/tools/mutation-explain.js.map +1 -1
  434. package/dist/tools/navigation-agent-add.d.ts +40 -2
  435. package/dist/tools/navigation-agent-add.js +24 -33
  436. package/dist/tools/navigation-agent-add.js.map +1 -1
  437. package/dist/tools/navigation-agent-set-destination.d.ts +40 -2
  438. package/dist/tools/navigation-agent-set-destination.js +18 -27
  439. package/dist/tools/navigation-agent-set-destination.js.map +1 -1
  440. package/dist/tools/navigation-get.d.ts +40 -2
  441. package/dist/tools/navigation-get.js +11 -16
  442. package/dist/tools/navigation-get.js.map +1 -1
  443. package/dist/tools/navigation-link-add.d.ts +40 -2
  444. package/dist/tools/navigation-link-add.js +43 -52
  445. package/dist/tools/navigation-link-add.js.map +1 -1
  446. package/dist/tools/navigation-list.d.ts +40 -2
  447. package/dist/tools/navigation-list.js +8 -13
  448. package/dist/tools/navigation-list.js.map +1 -1
  449. package/dist/tools/navigation-modifier-add.d.ts +40 -2
  450. package/dist/tools/navigation-modifier-add.js +28 -37
  451. package/dist/tools/navigation-modifier-add.js.map +1 -1
  452. package/dist/tools/navigation-modifier-volume-add.d.ts +40 -2
  453. package/dist/tools/navigation-modifier-volume-add.js +27 -36
  454. package/dist/tools/navigation-modifier-volume-add.js.map +1 -1
  455. package/dist/tools/navigation-modify.d.ts +40 -2
  456. package/dist/tools/navigation-modify.js +33 -42
  457. package/dist/tools/navigation-modify.js.map +1 -1
  458. package/dist/tools/navigation-set-bake-settings.d.ts +40 -2
  459. package/dist/tools/navigation-set-bake-settings.js +27 -36
  460. package/dist/tools/navigation-set-bake-settings.js.map +1 -1
  461. package/dist/tools/navigation-surface-add.d.ts +40 -2
  462. package/dist/tools/navigation-surface-add.js +27 -39
  463. package/dist/tools/navigation-surface-add.js.map +1 -1
  464. package/dist/tools/navigation-surface-bake.d.ts +40 -2
  465. package/dist/tools/navigation-surface-bake.js +15 -24
  466. package/dist/tools/navigation-surface-bake.js.map +1 -1
  467. package/dist/tools/object-get-data.d.ts +40 -2
  468. package/dist/tools/object-get-data.js +44 -49
  469. package/dist/tools/object-get-data.js.map +1 -1
  470. package/dist/tools/object-modify.d.ts +40 -2
  471. package/dist/tools/object-modify.js +48 -60
  472. package/dist/tools/object-modify.js.map +1 -1
  473. package/dist/tools/package-add.d.ts +40 -2
  474. package/dist/tools/package-add.js +20 -35
  475. package/dist/tools/package-add.js.map +1 -1
  476. package/dist/tools/package-check.d.ts +40 -2
  477. package/dist/tools/package-check.js +15 -20
  478. package/dist/tools/package-check.js.map +1 -1
  479. package/dist/tools/package-get-dependencies.d.ts +40 -2
  480. package/dist/tools/package-get-dependencies.js +8 -13
  481. package/dist/tools/package-get-dependencies.js.map +1 -1
  482. package/dist/tools/package-get-info.d.ts +40 -2
  483. package/dist/tools/package-get-info.js +21 -26
  484. package/dist/tools/package-get-info.js.map +1 -1
  485. package/dist/tools/package-list.d.ts +40 -2
  486. package/dist/tools/package-list.js +45 -50
  487. package/dist/tools/package-list.js.map +1 -1
  488. package/dist/tools/package-remove.d.ts +40 -2
  489. package/dist/tools/package-remove.js +18 -33
  490. package/dist/tools/package-remove.js.map +1 -1
  491. package/dist/tools/package-search.d.ts +40 -2
  492. package/dist/tools/package-search.js +29 -34
  493. package/dist/tools/package-search.js.map +1 -1
  494. package/dist/tools/particle-system-get.d.ts +40 -2
  495. package/dist/tools/particle-system-get.js +24 -29
  496. package/dist/tools/particle-system-get.js.map +1 -1
  497. package/dist/tools/particle-system-modify.d.ts +40 -2
  498. package/dist/tools/particle-system-modify.js +50 -59
  499. package/dist/tools/particle-system-modify.js.map +1 -1
  500. package/dist/tools/ping.d.ts +40 -2
  501. package/dist/tools/ping.js +4 -9
  502. package/dist/tools/ping.js.map +1 -1
  503. package/dist/tools/playerprefs-delete.d.ts +40 -2
  504. package/dist/tools/playerprefs-delete.js +13 -18
  505. package/dist/tools/playerprefs-delete.js.map +1 -1
  506. package/dist/tools/playerprefs-get.d.ts +40 -2
  507. package/dist/tools/playerprefs-get.js +17 -22
  508. package/dist/tools/playerprefs-get.js.map +1 -1
  509. package/dist/tools/playerprefs-set.d.ts +40 -2
  510. package/dist/tools/playerprefs-set.js +25 -30
  511. package/dist/tools/playerprefs-set.js.map +1 -1
  512. package/dist/tools/prefab-apply.d.ts +40 -2
  513. package/dist/tools/prefab-apply.js +22 -34
  514. package/dist/tools/prefab-apply.js.map +1 -1
  515. package/dist/tools/prefab-close.d.ts +40 -2
  516. package/dist/tools/prefab-close.js +13 -25
  517. package/dist/tools/prefab-close.js.map +1 -1
  518. package/dist/tools/prefab-create.d.ts +40 -2
  519. package/dist/tools/prefab-create.js +35 -47
  520. package/dist/tools/prefab-create.js.map +1 -1
  521. package/dist/tools/prefab-get-overrides.d.ts +40 -2
  522. package/dist/tools/prefab-get-overrides.js +18 -23
  523. package/dist/tools/prefab-get-overrides.js.map +1 -1
  524. package/dist/tools/prefab-instantiate.d.ts +40 -2
  525. package/dist/tools/prefab-instantiate.js +35 -47
  526. package/dist/tools/prefab-instantiate.js.map +1 -1
  527. package/dist/tools/prefab-open.d.ts +40 -2
  528. package/dist/tools/prefab-open.js +12 -24
  529. package/dist/tools/prefab-open.js.map +1 -1
  530. package/dist/tools/prefab-revert.d.ts +40 -2
  531. package/dist/tools/prefab-revert.js +21 -33
  532. package/dist/tools/prefab-revert.js.map +1 -1
  533. package/dist/tools/prefab-save.d.ts +40 -2
  534. package/dist/tools/prefab-save.js +8 -20
  535. package/dist/tools/prefab-save.js.map +1 -1
  536. package/dist/tools/prefab-status.d.ts +40 -2
  537. package/dist/tools/prefab-status.js +18 -23
  538. package/dist/tools/prefab-status.js.map +1 -1
  539. package/dist/tools/prefab-unpack.d.ts +40 -2
  540. package/dist/tools/prefab-unpack.js +27 -39
  541. package/dist/tools/prefab-unpack.js.map +1 -1
  542. package/dist/tools/probuilder-create-shape.d.ts +40 -2
  543. package/dist/tools/probuilder-create-shape.js +24 -33
  544. package/dist/tools/probuilder-create-shape.js.map +1 -1
  545. package/dist/tools/probuilder-delete-faces.d.ts +40 -2
  546. package/dist/tools/probuilder-delete-faces.js +24 -33
  547. package/dist/tools/probuilder-delete-faces.js.map +1 -1
  548. package/dist/tools/probuilder-extrude.d.ts +40 -2
  549. package/dist/tools/probuilder-extrude.js +35 -44
  550. package/dist/tools/probuilder-extrude.js.map +1 -1
  551. package/dist/tools/probuilder-get-mesh-info.d.ts +40 -2
  552. package/dist/tools/probuilder-get-mesh-info.js +12 -17
  553. package/dist/tools/probuilder-get-mesh-info.js.map +1 -1
  554. package/dist/tools/probuilder-set-face-material.d.ts +40 -2
  555. package/dist/tools/probuilder-set-face-material.js +30 -39
  556. package/dist/tools/probuilder-set-face-material.js.map +1 -1
  557. package/dist/tools/profiler-capture-frame.d.ts +40 -2
  558. package/dist/tools/profiler-capture-frame.js +59 -63
  559. package/dist/tools/profiler-capture-frame.js.map +1 -1
  560. package/dist/tools/profiler-capture.d.ts +40 -2
  561. package/dist/tools/profiler-capture.js +76 -81
  562. package/dist/tools/profiler-capture.js.map +1 -1
  563. package/dist/tools/profiler-clear-data.d.ts +40 -2
  564. package/dist/tools/profiler-clear-data.js +9 -14
  565. package/dist/tools/profiler-clear-data.js.map +1 -1
  566. package/dist/tools/profiler-enable-module.d.ts +40 -2
  567. package/dist/tools/profiler-enable-module.js +18 -23
  568. package/dist/tools/profiler-enable-module.js.map +1 -1
  569. package/dist/tools/profiler-get-config.d.ts +40 -2
  570. package/dist/tools/profiler-get-config.js +10 -15
  571. package/dist/tools/profiler-get-config.js.map +1 -1
  572. package/dist/tools/profiler-get-script-stats.d.ts +40 -2
  573. package/dist/tools/profiler-get-script-stats.js +9 -14
  574. package/dist/tools/profiler-get-script-stats.js.map +1 -1
  575. package/dist/tools/profiler-get-status.d.ts +40 -2
  576. package/dist/tools/profiler-get-status.js +10 -15
  577. package/dist/tools/profiler-get-status.js.map +1 -1
  578. package/dist/tools/profiler-list-modules.d.ts +40 -2
  579. package/dist/tools/profiler-list-modules.js +9 -14
  580. package/dist/tools/profiler-list-modules.js.map +1 -1
  581. package/dist/tools/profiler-load-data.d.ts +40 -2
  582. package/dist/tools/profiler-load-data.js +23 -28
  583. package/dist/tools/profiler-load-data.js.map +1 -1
  584. package/dist/tools/profiler-memory.d.ts +40 -2
  585. package/dist/tools/profiler-memory.js +13 -18
  586. package/dist/tools/profiler-memory.js.map +1 -1
  587. package/dist/tools/profiler-rendering.d.ts +40 -2
  588. package/dist/tools/profiler-rendering.js +8 -13
  589. package/dist/tools/profiler-rendering.js.map +1 -1
  590. package/dist/tools/profiler-save-data.d.ts +40 -2
  591. package/dist/tools/profiler-save-data.js +16 -28
  592. package/dist/tools/profiler-save-data.js.map +1 -1
  593. package/dist/tools/profiler-set-config.d.ts +40 -2
  594. package/dist/tools/profiler-set-config.js +58 -63
  595. package/dist/tools/profiler-set-config.js.map +1 -1
  596. package/dist/tools/profiler-start.d.ts +40 -2
  597. package/dist/tools/profiler-start.js +16 -21
  598. package/dist/tools/profiler-start.js.map +1 -1
  599. package/dist/tools/profiler-stop.d.ts +40 -2
  600. package/dist/tools/profiler-stop.js +9 -14
  601. package/dist/tools/profiler-stop.js.map +1 -1
  602. package/dist/tools/pull-events.d.ts +40 -2
  603. package/dist/tools/pull-events.js +23 -28
  604. package/dist/tools/pull-events.js.map +1 -1
  605. package/dist/tools/read-asset.d.ts +40 -2
  606. package/dist/tools/read-asset.js +66 -71
  607. package/dist/tools/read-asset.js.map +1 -1
  608. package/dist/tools/read-compile-errors.d.ts +40 -2
  609. package/dist/tools/read-compile-errors.js +40 -45
  610. package/dist/tools/read-compile-errors.js.map +1 -1
  611. package/dist/tools/read-console.d.ts +40 -2
  612. package/dist/tools/read-console.js +49 -54
  613. package/dist/tools/read-console.js.map +1 -1
  614. package/dist/tools/reflection-probe-bake.d.ts +40 -2
  615. package/dist/tools/reflection-probe-bake.js +30 -40
  616. package/dist/tools/reflection-probe-bake.js.map +1 -1
  617. package/dist/tools/reflection-probe-get.d.ts +40 -2
  618. package/dist/tools/reflection-probe-get.js +10 -15
  619. package/dist/tools/reflection-probe-get.js.map +1 -1
  620. package/dist/tools/regression-check.d.ts +40 -2
  621. package/dist/tools/regression-check.js +28 -33
  622. package/dist/tools/regression-check.js.map +1 -1
  623. package/dist/tools/reimport-package.d.ts +40 -2
  624. package/dist/tools/reimport-package.js +22 -38
  625. package/dist/tools/reimport-package.js.map +1 -1
  626. package/dist/tools/reserialize.d.ts +40 -2
  627. package/dist/tools/reserialize.js +19 -28
  628. package/dist/tools/reserialize.js.map +1 -1
  629. package/dist/tools/resource-pressure.d.ts +40 -0
  630. package/dist/tools/resource-pressure.js +57 -0
  631. package/dist/tools/resource-pressure.js.map +1 -0
  632. package/dist/tools/restart-editor.d.ts +40 -0
  633. package/dist/tools/restart-editor.js +74 -0
  634. package/dist/tools/restart-editor.js.map +1 -0
  635. package/dist/tools/run-tests.d.ts +40 -2
  636. package/dist/tools/run-tests.js +41 -46
  637. package/dist/tools/run-tests.js.map +1 -1
  638. package/dist/tools/scan-all.d.ts +40 -2
  639. package/dist/tools/scan-all.js +17 -22
  640. package/dist/tools/scan-all.js.map +1 -1
  641. package/dist/tools/scan-paths.d.ts +40 -2
  642. package/dist/tools/scan-paths.js +51 -56
  643. package/dist/tools/scan-paths.js.map +1 -1
  644. package/dist/tools/scene-create.d.ts +40 -2
  645. package/dist/tools/scene-create.js +41 -42
  646. package/dist/tools/scene-create.js.map +1 -1
  647. package/dist/tools/scene-focus.d.ts +40 -2
  648. package/dist/tools/scene-focus.js +38 -50
  649. package/dist/tools/scene-focus.js.map +1 -1
  650. package/dist/tools/scene-get-data.d.ts +40 -2
  651. package/dist/tools/scene-get-data.js +66 -71
  652. package/dist/tools/scene-get-data.js.map +1 -1
  653. package/dist/tools/scene-get-dirty-summary.d.ts +40 -2
  654. package/dist/tools/scene-get-dirty-summary.js +9 -14
  655. package/dist/tools/scene-get-dirty-summary.js.map +1 -1
  656. package/dist/tools/scene-list-opened.d.ts +40 -2
  657. package/dist/tools/scene-list-opened.js +8 -13
  658. package/dist/tools/scene-list-opened.js.map +1 -1
  659. package/dist/tools/scene-open.d.ts +40 -2
  660. package/dist/tools/scene-open.js +24 -43
  661. package/dist/tools/scene-open.js.map +1 -1
  662. package/dist/tools/scene-save.d.ts +40 -2
  663. package/dist/tools/scene-save.js +25 -38
  664. package/dist/tools/scene-save.js.map +1 -1
  665. package/dist/tools/scene-set-active.d.ts +40 -2
  666. package/dist/tools/scene-set-active.js +27 -39
  667. package/dist/tools/scene-set-active.js.map +1 -1
  668. package/dist/tools/scene-unload.d.ts +40 -2
  669. package/dist/tools/scene-unload.js +25 -38
  670. package/dist/tools/scene-unload.js.map +1 -1
  671. package/dist/tools/sceneview-get-camera.d.ts +40 -2
  672. package/dist/tools/sceneview-get-camera.js +7 -12
  673. package/dist/tools/sceneview-get-camera.js.map +1 -1
  674. package/dist/tools/sceneview-set-camera.d.ts +40 -2
  675. package/dist/tools/sceneview-set-camera.js +38 -50
  676. package/dist/tools/sceneview-set-camera.js.map +1 -1
  677. package/dist/tools/schema-fragments.d.ts +86 -0
  678. package/dist/tools/schema-fragments.js +119 -0
  679. package/dist/tools/schema-fragments.js.map +1 -0
  680. package/dist/tools/screenshot-camera.d.ts +40 -2
  681. package/dist/tools/screenshot-camera.js +47 -52
  682. package/dist/tools/screenshot-camera.js.map +1 -1
  683. package/dist/tools/screenshot-window.d.ts +40 -2
  684. package/dist/tools/screenshot-window.js +40 -45
  685. package/dist/tools/screenshot-window.js.map +1 -1
  686. package/dist/tools/screenshot.d.ts +40 -2
  687. package/dist/tools/screenshot.js +39 -44
  688. package/dist/tools/screenshot.js.map +1 -1
  689. package/dist/tools/script-delete.d.ts +40 -2
  690. package/dist/tools/script-delete.js +18 -30
  691. package/dist/tools/script-delete.js.map +1 -1
  692. package/dist/tools/script-read.d.ts +40 -2
  693. package/dist/tools/script-read.js +34 -39
  694. package/dist/tools/script-read.js.map +1 -1
  695. package/dist/tools/script-write.d.ts +40 -2
  696. package/dist/tools/script-write.js +37 -49
  697. package/dist/tools/script-write.js.map +1 -1
  698. package/dist/tools/scriptableobject-create.d.ts +40 -2
  699. package/dist/tools/scriptableobject-create.js +56 -68
  700. package/dist/tools/scriptableobject-create.js.map +1 -1
  701. package/dist/tools/search-assets.d.ts +40 -2
  702. package/dist/tools/search-assets.js +55 -60
  703. package/dist/tools/search-assets.js.map +1 -1
  704. package/dist/tools/selection-get.d.ts +40 -2
  705. package/dist/tools/selection-get.js +16 -21
  706. package/dist/tools/selection-get.js.map +1 -1
  707. package/dist/tools/selection-set.d.ts +40 -2
  708. package/dist/tools/selection-set.js +57 -62
  709. package/dist/tools/selection-set.js.map +1 -1
  710. package/dist/tools/settings-get-lighting.d.ts +40 -2
  711. package/dist/tools/settings-get-lighting.js +9 -14
  712. package/dist/tools/settings-get-lighting.js.map +1 -1
  713. package/dist/tools/settings-get-physics.d.ts +40 -2
  714. package/dist/tools/settings-get-physics.js +7 -12
  715. package/dist/tools/settings-get-physics.js.map +1 -1
  716. package/dist/tools/settings-get-player.d.ts +40 -2
  717. package/dist/tools/settings-get-player.js +7 -12
  718. package/dist/tools/settings-get-player.js.map +1 -1
  719. package/dist/tools/settings-get-quality.d.ts +40 -2
  720. package/dist/tools/settings-get-quality.js +7 -12
  721. package/dist/tools/settings-get-quality.js.map +1 -1
  722. package/dist/tools/settings-get-render-pipeline.d.ts +40 -2
  723. package/dist/tools/settings-get-render-pipeline.js +10 -15
  724. package/dist/tools/settings-get-render-pipeline.js.map +1 -1
  725. package/dist/tools/settings-get-time.d.ts +40 -2
  726. package/dist/tools/settings-get-time.js +9 -14
  727. package/dist/tools/settings-get-time.js.map +1 -1
  728. package/dist/tools/settings-set-lighting.d.ts +40 -2
  729. package/dist/tools/settings-set-lighting.js +33 -46
  730. package/dist/tools/settings-set-lighting.js.map +1 -1
  731. package/dist/tools/settings-set-physics.d.ts +40 -2
  732. package/dist/tools/settings-set-physics.js +30 -43
  733. package/dist/tools/settings-set-physics.js.map +1 -1
  734. package/dist/tools/settings-set-player.d.ts +40 -2
  735. package/dist/tools/settings-set-player.js +35 -53
  736. package/dist/tools/settings-set-player.js.map +1 -1
  737. package/dist/tools/settings-set-quality-level.d.ts +40 -2
  738. package/dist/tools/settings-set-quality-level.js +25 -38
  739. package/dist/tools/settings-set-quality-level.js.map +1 -1
  740. package/dist/tools/settings-set-quality.d.ts +40 -2
  741. package/dist/tools/settings-set-quality.js +29 -42
  742. package/dist/tools/settings-set-quality.js.map +1 -1
  743. package/dist/tools/settings-set-time.d.ts +40 -2
  744. package/dist/tools/settings-set-time.js +31 -44
  745. package/dist/tools/settings-set-time.js.map +1 -1
  746. package/dist/tools/shader-get-data.d.ts +40 -2
  747. package/dist/tools/shader-get-data.js +20 -25
  748. package/dist/tools/shader-get-data.js.map +1 -1
  749. package/dist/tools/shader-graph-create.d.ts +40 -2
  750. package/dist/tools/shader-graph-create.js +23 -32
  751. package/dist/tools/shader-graph-create.js.map +1 -1
  752. package/dist/tools/shader-graph-node-add.d.ts +40 -2
  753. package/dist/tools/shader-graph-node-add.js +34 -43
  754. package/dist/tools/shader-graph-node-add.js.map +1 -1
  755. package/dist/tools/shader-graph-node-connect.d.ts +40 -2
  756. package/dist/tools/shader-graph-node-connect.js +44 -53
  757. package/dist/tools/shader-graph-node-connect.js.map +1 -1
  758. package/dist/tools/shader-graph-open.d.ts +40 -2
  759. package/dist/tools/shader-graph-open.js +15 -20
  760. package/dist/tools/shader-graph-open.js.map +1 -1
  761. package/dist/tools/shader-list-all.d.ts +40 -2
  762. package/dist/tools/shader-list-all.js +12 -17
  763. package/dist/tools/shader-list-all.js.map +1 -1
  764. package/dist/tools/skybox-get.d.ts +40 -2
  765. package/dist/tools/skybox-get.js +5 -10
  766. package/dist/tools/skybox-get.js.map +1 -1
  767. package/dist/tools/skybox-set.d.ts +40 -2
  768. package/dist/tools/skybox-set.js +16 -27
  769. package/dist/tools/skybox-set.js.map +1 -1
  770. package/dist/tools/spatial-query.d.ts +40 -2
  771. package/dist/tools/spatial-query.js +110 -115
  772. package/dist/tools/spatial-query.js.map +1 -1
  773. package/dist/tools/splines-add-knot.d.ts +40 -2
  774. package/dist/tools/splines-add-knot.js +29 -38
  775. package/dist/tools/splines-add-knot.js.map +1 -1
  776. package/dist/tools/splines-container-create.d.ts +40 -2
  777. package/dist/tools/splines-container-create.js +23 -32
  778. package/dist/tools/splines-container-create.js.map +1 -1
  779. package/dist/tools/splines-evaluate.d.ts +40 -2
  780. package/dist/tools/splines-evaluate.js +21 -26
  781. package/dist/tools/splines-evaluate.js.map +1 -1
  782. package/dist/tools/splines-get-knots.d.ts +40 -2
  783. package/dist/tools/splines-get-knots.js +15 -20
  784. package/dist/tools/splines-get-knots.js.map +1 -1
  785. package/dist/tools/splines-modify.d.ts +40 -2
  786. package/dist/tools/splines-modify.js +20 -29
  787. package/dist/tools/splines-modify.js.map +1 -1
  788. package/dist/tools/splines-set-knot.d.ts +40 -2
  789. package/dist/tools/splines-set-knot.js +26 -35
  790. package/dist/tools/splines-set-knot.js.map +1 -1
  791. package/dist/tools/splines-set-tangent-mode.d.ts +40 -2
  792. package/dist/tools/splines-set-tangent-mode.js +28 -37
  793. package/dist/tools/splines-set-tangent-mode.js.map +1 -1
  794. package/dist/tools/spriteatlas-add-packable.d.ts +40 -2
  795. package/dist/tools/spriteatlas-add-packable.js +22 -34
  796. package/dist/tools/spriteatlas-add-packable.js.map +1 -1
  797. package/dist/tools/spriteatlas-create.d.ts +40 -2
  798. package/dist/tools/spriteatlas-create.js +22 -34
  799. package/dist/tools/spriteatlas-create.js.map +1 -1
  800. package/dist/tools/spriteatlas-delete.d.ts +40 -2
  801. package/dist/tools/spriteatlas-delete.js +14 -26
  802. package/dist/tools/spriteatlas-delete.js.map +1 -1
  803. package/dist/tools/spriteatlas-get.d.ts +40 -2
  804. package/dist/tools/spriteatlas-get.js +13 -18
  805. package/dist/tools/spriteatlas-get.js.map +1 -1
  806. package/dist/tools/spriteatlas-list.d.ts +40 -2
  807. package/dist/tools/spriteatlas-list.js +10 -15
  808. package/dist/tools/spriteatlas-list.js.map +1 -1
  809. package/dist/tools/spriteatlas-modify.d.ts +40 -2
  810. package/dist/tools/spriteatlas-modify.js +36 -48
  811. package/dist/tools/spriteatlas-modify.js.map +1 -1
  812. package/dist/tools/spriteatlas-remove-packable.d.ts +40 -2
  813. package/dist/tools/spriteatlas-remove-packable.js +21 -33
  814. package/dist/tools/spriteatlas-remove-packable.js.map +1 -1
  815. package/dist/tools/terrain-create.d.ts +40 -2
  816. package/dist/tools/terrain-create.js +48 -62
  817. package/dist/tools/terrain-create.js.map +1 -1
  818. package/dist/tools/terrain-paint-layer.d.ts +40 -2
  819. package/dist/tools/terrain-paint-layer.js +47 -61
  820. package/dist/tools/terrain-paint-layer.js.map +1 -1
  821. package/dist/tools/terrain-place-trees.d.ts +40 -2
  822. package/dist/tools/terrain-place-trees.js +56 -68
  823. package/dist/tools/terrain-place-trees.js.map +1 -1
  824. package/dist/tools/terrain-set-heights.d.ts +40 -2
  825. package/dist/tools/terrain-set-heights.js +31 -43
  826. package/dist/tools/terrain-set-heights.js.map +1 -1
  827. package/dist/tools/terrain-set-neighbors.d.ts +40 -2
  828. package/dist/tools/terrain-set-neighbors.js +22 -34
  829. package/dist/tools/terrain-set-neighbors.js.map +1 -1
  830. package/dist/tools/texture-get-importer.d.ts +40 -2
  831. package/dist/tools/texture-get-importer.js +15 -20
  832. package/dist/tools/texture-get-importer.js.map +1 -1
  833. package/dist/tools/texture-get.d.ts +40 -2
  834. package/dist/tools/texture-get.js +12 -17
  835. package/dist/tools/texture-get.js.map +1 -1
  836. package/dist/tools/texture-reimport.d.ts +40 -2
  837. package/dist/tools/texture-reimport.js +15 -27
  838. package/dist/tools/texture-reimport.js.map +1 -1
  839. package/dist/tools/texture-set-import.d.ts +40 -2
  840. package/dist/tools/texture-set-import.js +32 -44
  841. package/dist/tools/texture-set-import.js.map +1 -1
  842. package/dist/tools/tilemap-box-fill.d.ts +40 -2
  843. package/dist/tools/tilemap-box-fill.js +20 -29
  844. package/dist/tools/tilemap-box-fill.js.map +1 -1
  845. package/dist/tools/tilemap-create-rule-tile.d.ts +40 -2
  846. package/dist/tools/tilemap-create-rule-tile.js +22 -31
  847. package/dist/tools/tilemap-create-rule-tile.js.map +1 -1
  848. package/dist/tools/tilemap-create-tile-asset.d.ts +40 -2
  849. package/dist/tools/tilemap-create-tile-asset.js +21 -30
  850. package/dist/tools/tilemap-create-tile-asset.js.map +1 -1
  851. package/dist/tools/tilemap-create.d.ts +40 -2
  852. package/dist/tools/tilemap-create.js +17 -26
  853. package/dist/tools/tilemap-create.js.map +1 -1
  854. package/dist/tools/tilemap-set-tile.d.ts +40 -2
  855. package/dist/tools/tilemap-set-tile.js +20 -29
  856. package/dist/tools/tilemap-set-tile.js.map +1 -1
  857. package/dist/tools/timeline-clip-add.d.ts +40 -2
  858. package/dist/tools/timeline-clip-add.js +30 -39
  859. package/dist/tools/timeline-clip-add.js.map +1 -1
  860. package/dist/tools/timeline-create.d.ts +40 -2
  861. package/dist/tools/timeline-create.js +17 -26
  862. package/dist/tools/timeline-create.js.map +1 -1
  863. package/dist/tools/timeline-director-bind.d.ts +40 -2
  864. package/dist/tools/timeline-director-bind.js +20 -29
  865. package/dist/tools/timeline-director-bind.js.map +1 -1
  866. package/dist/tools/timeline-modify.d.ts +40 -2
  867. package/dist/tools/timeline-modify.js +30 -39
  868. package/dist/tools/timeline-modify.js.map +1 -1
  869. package/dist/tools/timeline-track-add.d.ts +40 -2
  870. package/dist/tools/timeline-track-add.js +24 -33
  871. package/dist/tools/timeline-track-add.js.map +1 -1
  872. package/dist/tools/type-schema.d.ts +40 -2
  873. package/dist/tools/type-schema.js +47 -52
  874. package/dist/tools/type-schema.js.map +1 -1
  875. package/dist/tools/ui-canvas-add.d.ts +40 -2
  876. package/dist/tools/ui-canvas-add.js +29 -41
  877. package/dist/tools/ui-canvas-add.js.map +1 -1
  878. package/dist/tools/ui-element-add.d.ts +40 -2
  879. package/dist/tools/ui-element-add.js +47 -56
  880. package/dist/tools/ui-element-add.js.map +1 -1
  881. package/dist/tools/ui-element-modify.d.ts +40 -2
  882. package/dist/tools/ui-element-modify.js +41 -50
  883. package/dist/tools/ui-element-modify.js.map +1 -1
  884. package/dist/tools/ui-layout-group-add.d.ts +40 -2
  885. package/dist/tools/ui-layout-group-add.js +64 -73
  886. package/dist/tools/ui-layout-group-add.js.map +1 -1
  887. package/dist/tools/validate-edit.d.ts +40 -2
  888. package/dist/tools/validate-edit.js +56 -61
  889. package/dist/tools/validate-edit.js.map +1 -1
  890. package/dist/tools/vfx-block-edit.d.ts +40 -2
  891. package/dist/tools/vfx-block-edit.js +32 -41
  892. package/dist/tools/vfx-block-edit.js.map +1 -1
  893. package/dist/tools/vfx-list.d.ts +40 -2
  894. package/dist/tools/vfx-list.js +17 -22
  895. package/dist/tools/vfx-list.js.map +1 -1
  896. package/dist/tools/vfx-open.d.ts +40 -2
  897. package/dist/tools/vfx-open.js +14 -19
  898. package/dist/tools/vfx-open.js.map +1 -1
  899. package/package.json +1 -1
@@ -10,10 +10,21 @@
10
10
  // Pure transformation module: dependencies (registered tools, batch allow-list,
11
11
  // rule/fix catalogs) are passed in by the caller so this file has zero runtime
12
12
  // cross-file imports and loads cleanly under `node --experimental-strip-types`.
13
- import { TOOL_GROUPS, groupFor, } from "./tool-groups.js";
13
+ import { TOOL_GROUPS, groupFor, toolGroupAssignment, } from "./tool-groups.js";
14
14
  import { buildCostHints, } from "./cost-hints.js";
15
15
  import { lifecycleFor, buildLifecycle, } from "./lifecycle.js";
16
16
  // ---------------------------------------------------------------------------
17
+ // M31-optimizations Plan 4 / T4.2 (M2) — module-level singletons for the
18
+ // constant capability structures. `buildCostHints()` and `buildLifecycle()`
19
+ // derive purely from module-level constants (their own catalogs) — the inline
20
+ // comment at the former call site even said "Constant, so no per-call
21
+ // computation" yet rebuilt them on every `buildCapabilities` call. Both are
22
+ // now computed once at first import. `getFixIndex()` is the lazy singleton
23
+ // for `FIX_CATALOG`'s issue-code → fix-id index (see rule-catalog.ts).
24
+ // ---------------------------------------------------------------------------
25
+ const COST_HINTS = buildCostHints();
26
+ const LIFECYCLE_BLOCK = buildLifecycle();
27
+ // ---------------------------------------------------------------------------
17
28
  // Route metadata — mirrors tool-router.ts / compressible-router.ts decisions
18
29
  // ---------------------------------------------------------------------------
19
30
  const OFFLINE_TOOLS = new Set(["unity_open_mcp_list_assets"]);
@@ -39,430 +50,115 @@ function routePolicyFor(toolName) {
39
50
  // ---------------------------------------------------------------------------
40
51
  // Tool categories — semantic grouping that does not leak milestone IDs
41
52
  // ---------------------------------------------------------------------------
42
- const TOOL_CATEGORY = {
43
- unity_open_mcp_ping: "core",
44
- unity_open_mcp_execute_csharp: "core",
45
- unity_open_mcp_invoke_method: "core",
46
- unity_open_mcp_execute_menu: "core",
47
- unity_open_mcp_find_members: "core",
53
+ //
54
+ // M31-optimizations Plan 4 / T4.5 (L13) — `TOOL_CATEGORY` is now DERIVED from
55
+ // `TOOL_GROUP_ASSIGNMENT` (tool-groups.ts) at module load, not hand-maintained
56
+ // as a parallel ~270-entry record. The group vocabulary and the category
57
+ // vocabulary agree for ~95% of tools (a tool in group `core` has category
58
+ // `core`, etc.); the small remainder where category ≠ group, plus the
59
+ // always-visible meta-tools (group=null) that need a real category, live in
60
+ // the explicit `TOOL_CATEGORY_OVERRIDES` map below.
61
+ //
62
+ // The parity test in capabilities/tool-groups.test.ts asserts every tool in
63
+ // ALL_TOOLS resolves to a non-`"other"` category — adding a tool without a
64
+ // group assignment AND without an override now fails loudly instead of
65
+ // silently falling through to `"other"`.
66
+ /**
67
+ * The handful of tools whose category intentionally diverges from their
68
+ * group, plus the always-visible meta-tools (group=null) that need a real
69
+ * category. Two cases:
70
+ *
71
+ * 1. **Grouped tools where category ≠ group** — historical reasons where
72
+ * the session-visibility group and the capability-classification
73
+ * category split (e.g. `compile_check` is in the `gate-and-verify`
74
+ * group for session visibility but classified as `diagnostics`).
75
+ *
76
+ * 2. **Meta-tools (group=null)** — always-visible server meta-tools that
77
+ * are not in any group (they bypass the manage_tools visibility
78
+ * system) but still need a category label for the capabilities surface.
79
+ *
80
+ * Documented exhaustively so the parity test can enforce that every entry
81
+ * here is a real, deliberate exception. Exported so the parity test can
82
+ * inspect the override surface directly.
83
+ */
84
+ export const TOOL_CATEGORY_OVERRIDES = {
85
+ // --- Case 1: grouped tools whose category diverges from their group --------
86
+ // compile_check is in the gate-and-verify GROUP (so it shows up alongside
87
+ // validate_edit / scan_paths in manage_tools) but classified under
88
+ // diagnostics in capabilities (it's a compile-error probe, not a verify
89
+ // rule runner). The split is deliberate and surfaces in lifecycle too
90
+ // (compile_check carries the editor_instance_locked note).
48
91
  unity_open_mcp_compile_check: "diagnostics",
49
- unity_open_mcp_editor_status: "core",
50
- unity_open_mcp_validate_edit: "gate-and-verify",
51
- unity_open_mcp_checkpoint_create: "gate-and-verify",
52
- unity_open_mcp_delta: "gate-and-verify",
53
- unity_open_mcp_find_references: "gate-and-verify",
54
- unity_open_mcp_scan_paths: "gate-and-verify",
55
- unity_open_mcp_apply_fix: "gate-and-verify",
56
- unity_open_mcp_scan_all: "gate-and-verify",
57
- unity_open_mcp_baseline_create: "gate-and-verify",
58
- unity_open_mcp_regression_check: "gate-and-verify",
59
- unity_open_mcp_reserialize: "asset-intelligence",
60
- unity_open_mcp_read_asset: "asset-intelligence",
61
- unity_open_mcp_search_assets: "asset-intelligence",
62
- unity_open_mcp_list_assets: "asset-intelligence",
63
- // M16 Plan 1 — typed project & asset management tools.
64
- unity_open_mcp_assets_create_folder: "typed-editor",
65
- unity_open_mcp_assets_copy: "typed-editor",
66
- unity_open_mcp_assets_move: "typed-editor",
67
- unity_open_mcp_assets_delete: "typed-editor",
68
- unity_open_mcp_assets_refresh: "typed-editor",
69
- unity_open_mcp_material_create: "typed-editor",
70
- unity_open_mcp_material_get_properties: "typed-editor",
71
- unity_open_mcp_material_set_property: "typed-editor",
72
- unity_open_mcp_material_get_keywords: "typed-editor",
73
- unity_open_mcp_material_set_keyword: "typed-editor",
74
- unity_open_mcp_material_set_shader: "typed-editor",
75
- unity_open_mcp_shader_list_all: "typed-editor",
76
- unity_open_mcp_shader_get_data: "typed-editor",
77
- unity_open_mcp_prefab_instantiate: "typed-editor",
78
- unity_open_mcp_prefab_create: "typed-editor",
79
- unity_open_mcp_prefab_open: "typed-editor",
80
- unity_open_mcp_prefab_close: "typed-editor",
81
- unity_open_mcp_prefab_save: "typed-editor",
82
- unity_open_mcp_prefab_apply: "typed-editor",
83
- unity_open_mcp_prefab_revert: "typed-editor",
84
- unity_open_mcp_prefab_unpack: "typed-editor",
85
- unity_open_mcp_prefab_get_overrides: "typed-editor",
86
- unity_open_mcp_prefab_status: "typed-editor",
87
- // M16 Plan 2 — typed GameObject & component tools.
88
- unity_open_mcp_gameobject_create: "typed-editor",
89
- unity_open_mcp_gameobject_destroy: "typed-editor",
90
- unity_open_mcp_gameobject_duplicate: "typed-editor",
91
- unity_open_mcp_gameobject_find: "typed-editor",
92
- unity_open_mcp_gameobject_modify: "typed-editor",
93
- unity_open_mcp_gameobject_set_parent: "typed-editor",
94
- unity_open_mcp_component_add: "typed-editor",
95
- unity_open_mcp_component_destroy: "typed-editor",
96
- unity_open_mcp_component_get: "typed-editor",
97
- unity_open_mcp_component_modify: "typed-editor",
98
- unity_open_mcp_component_list_all: "typed-editor",
99
- // M16 Plan 3 — typed scene management tools.
100
- unity_open_mcp_scene_create: "typed-editor",
101
- unity_open_mcp_scene_open: "typed-editor",
102
- unity_open_mcp_scene_save: "typed-editor",
103
- unity_open_mcp_scene_unload: "typed-editor",
104
- unity_open_mcp_scene_set_active: "typed-editor",
105
- unity_open_mcp_scene_list_opened: "typed-editor",
106
- unity_open_mcp_scene_get_data: "typed-editor",
107
- unity_open_mcp_scene_get_dirty_summary: "typed-editor",
108
- unity_open_mcp_scene_focus: "typed-editor",
109
- unity_open_mcp_sceneview_get_camera: "typed-editor",
110
- unity_open_mcp_sceneview_set_camera: "typed-editor",
111
- // M16 Plan 4 — typed Package Manager tools.
112
- unity_open_mcp_package_list: "typed-editor",
113
- unity_open_mcp_package_search: "typed-editor",
114
- unity_open_mcp_package_add: "typed-editor",
115
- unity_open_mcp_package_remove: "typed-editor",
116
- unity_open_mcp_package_get_info: "typed-editor",
117
- unity_open_mcp_package_get_dependencies: "typed-editor",
118
- unity_open_mcp_package_check: "typed-editor",
119
- // M16 Plan 5 — typed console / editor state / selection / undo / tags / layers.
120
- unity_open_mcp_console_clear: "typed-editor",
121
- unity_open_mcp_console_log: "typed-editor",
122
- unity_open_mcp_editor_set_state: "typed-editor",
123
- unity_open_mcp_selection_get: "typed-editor",
124
- unity_open_mcp_selection_set: "typed-editor",
125
- unity_open_mcp_editor_undo: "typed-editor",
126
- unity_open_mcp_editor_redo: "typed-editor",
127
- unity_open_mcp_editor_undo_history: "typed-editor",
128
- unity_open_mcp_editor_clear_history: "typed-editor",
129
- unity_open_mcp_editor_get_tags: "typed-editor",
130
- unity_open_mcp_editor_get_layers: "typed-editor",
131
- unity_open_mcp_editor_add_tag: "typed-editor",
132
- unity_open_mcp_editor_add_layer: "typed-editor",
133
- // M16 Plan 6 — typed reflection / scripts / object data tools.
134
- // type_schema / script_read / object_get_data are read-only; script_write /
135
- // script_delete / object_modify are mutating (paths_hint scoped).
136
- unity_open_mcp_type_schema: "typed-editor",
137
- unity_open_mcp_script_read: "typed-editor",
138
- unity_open_mcp_script_write: "typed-editor",
139
- unity_open_mcp_script_delete: "typed-editor",
140
- unity_open_mcp_object_get_data: "typed-editor",
141
- unity_open_mcp_object_modify: "typed-editor",
142
- // M16 Plan 7 — typed profiler session / diagnostics tools. Most mutate
143
- // editor state (no asset writes) — gate-free direct-response tools.
144
- // profiler_save_data is the lone asset-writing mutator (paths_hint scoped
145
- // to the destination .json).
146
- unity_open_mcp_profiler_start: "diagnostics",
147
- unity_open_mcp_profiler_stop: "diagnostics",
148
- unity_open_mcp_profiler_get_status: "diagnostics",
149
- unity_open_mcp_profiler_get_config: "diagnostics",
150
- unity_open_mcp_profiler_set_config: "diagnostics",
151
- unity_open_mcp_profiler_list_modules: "diagnostics",
152
- unity_open_mcp_profiler_enable_module: "diagnostics",
153
- unity_open_mcp_profiler_clear_data: "diagnostics",
154
- unity_open_mcp_profiler_save_data: "diagnostics",
155
- unity_open_mcp_profiler_load_data: "diagnostics",
156
- unity_open_mcp_profiler_get_script_stats: "diagnostics",
157
- // M16 Plan 8 — typed gate intelligence tools. All read-only, gate-free
158
- // direct-response tools that compose checkpoint / validate / delta / verify
159
- // / run-history foundations. impact_preview + gate_budget_estimate are
160
- // pre-mutation; mutation_explain is post-mutation.
161
- unity_open_mcp_impact_preview: "gate-intelligence",
162
- unity_open_mcp_gate_budget_estimate: "gate-intelligence",
163
- unity_open_mcp_mutation_explain: "gate-intelligence",
164
- // M16 Plan 9 — typed build pipeline + project-settings tools. Reads are
165
- // gate-free; build_set_target / build_set_scenes / build_set_defines /
166
- // build_start / settings_set_* run the full gate path (build_start also
167
- // requires the deny bypass — BuildPipeline.BuildPlayer is on the deny list).
168
- unity_open_mcp_build_get_targets: "build-settings",
169
- unity_open_mcp_build_get_active_target: "build-settings",
170
- unity_open_mcp_build_set_target: "build-settings",
171
- unity_open_mcp_build_get_scenes: "build-settings",
172
- unity_open_mcp_build_set_scenes: "build-settings",
173
- unity_open_mcp_build_start: "build-settings",
174
- unity_open_mcp_build_get_defines: "build-settings",
175
- unity_open_mcp_build_set_defines: "build-settings",
176
- unity_open_mcp_settings_get_player: "build-settings",
177
- unity_open_mcp_settings_set_player: "build-settings",
178
- unity_open_mcp_settings_get_quality: "build-settings",
179
- unity_open_mcp_settings_set_quality: "build-settings",
180
- unity_open_mcp_settings_get_physics: "build-settings",
181
- unity_open_mcp_settings_set_physics: "build-settings",
182
- unity_open_mcp_settings_get_lighting: "build-settings",
183
- unity_open_mcp_settings_set_lighting: "build-settings",
184
- // M20 Plan 9 / T20.9.2 — KV preferences. PlayerPrefs + EditorPrefs are
185
- // mutating editor-state writes to the registry / Library/PlayerPreferences
186
- // (NOT project assets), so they route as gate-free direct-response tools like
187
- // editor_undo. set / delete are mutating in catalog terms (the toggle / Tools
188
- // tab reflect it) even though the asset gate has nothing to validate.
189
- // playerprefs_set calls PlayerPrefs.Save(); EditorPrefs writes through
190
- // immediately. playerprefs_delete_all is deliberately omitted (irreversible
191
- // project-wide wipe — route through execute_csharp with an explicit confirm).
192
- unity_open_mcp_playerprefs_get: "build-settings",
193
- unity_open_mcp_playerprefs_set: "build-settings",
194
- unity_open_mcp_playerprefs_delete: "build-settings",
195
- unity_open_mcp_editorprefs_get: "build-settings",
196
- unity_open_mcp_editorprefs_set: "build-settings",
197
- unity_open_mcp_editorprefs_delete: "build-settings",
198
- // M20 Plan 9 / T20.9.3 — Project Settings remainder. set_time +
199
- // set_quality_level write ProjectSettings/*.asset (full gate path,
200
- // EditorSettle); get_time + get_render_pipeline are gate-free reads.
201
- // get_render_pipeline has no setter — switching SRP is a package-level
202
- // operation (package_add / package_remove).
203
- unity_open_mcp_settings_get_time: "build-settings",
204
- unity_open_mcp_settings_set_time: "build-settings",
205
- unity_open_mcp_settings_get_render_pipeline: "build-settings",
206
- unity_open_mcp_settings_set_quality_level: "build-settings",
207
- // M16 Plan 10 / T6.6.2 — Navigation (NavMesh) extension tools. Extension
208
- // pack tools ship tool definitions in the core MCP server (so capabilities
209
- // advertises the surface) but require the matching extension UPM package
210
- // installed in the target project for the bridge-side handler to exist.
211
- unity_open_mcp_navigation_surface_add: "navigation",
212
- unity_open_mcp_navigation_set_bake_settings: "navigation",
213
- unity_open_mcp_navigation_surface_bake: "navigation",
214
- unity_open_mcp_navigation_modifier_add: "navigation",
215
- unity_open_mcp_navigation_modifier_volume_add: "navigation",
216
- unity_open_mcp_navigation_link_add: "navigation",
217
- unity_open_mcp_navigation_agent_add: "navigation",
218
- unity_open_mcp_navigation_agent_set_destination: "navigation",
219
- unity_open_mcp_navigation_list: "navigation",
220
- unity_open_mcp_navigation_get: "navigation",
221
- unity_open_mcp_navigation_modify: "navigation",
222
- // M16 Plan 10 / T6.6.4 — Input System extension tools. Extension pack tools
223
- // ship tool definitions in the core MCP server (so capabilities advertises
224
- // the surface) but require the matching extension UPM package installed in
225
- // the target project for the bridge-side handler to exist.
226
- unity_open_mcp_inputsystem_asset_create: "input-system",
227
- unity_open_mcp_inputsystem_actionmap_add: "input-system",
228
- unity_open_mcp_inputsystem_action_add: "input-system",
229
- unity_open_mcp_inputsystem_binding_add: "input-system",
230
- unity_open_mcp_inputsystem_binding_composite_add: "input-system",
231
- unity_open_mcp_inputsystem_controlscheme_add: "input-system",
232
- unity_open_mcp_inputsystem_get: "input-system",
233
- // M16 Plan 10 / T6.6.5 — ProBuilder extension tools.
234
- unity_open_mcp_probuilder_create_shape: "probuilder",
235
- unity_open_mcp_probuilder_get_mesh_info: "probuilder",
236
- unity_open_mcp_probuilder_extrude: "probuilder",
237
- unity_open_mcp_probuilder_delete_faces: "probuilder",
238
- unity_open_mcp_probuilder_set_face_material: "probuilder",
239
- // M16 Plan 10 / T6.6.9 — Particle System extension tools. Extension pack
240
- // tools ship tool definitions in the core MCP server (so capabilities
241
- // advertises the surface) but require the matching extension UPM package
242
- // installed in the target project for the bridge-side handler to exist.
243
- unity_open_mcp_particle_system_get: "particle-system",
244
- unity_open_mcp_particle_system_modify: "particle-system",
245
- // M16 Plan 10 / T6.6.10 — Animation extension tools (AnimationClip +
246
- // AnimatorController). Extension pack tools ship tool definitions in the
247
- // core MCP server (so capabilities advertises the surface) but require the
248
- // matching extension UPM package installed in the target project for the
249
- // bridge-side handler to exist.
250
- unity_open_mcp_animation_create: "animation",
251
- unity_open_mcp_animation_get_data: "animation",
252
- unity_open_mcp_animation_modify: "animation",
253
- unity_open_mcp_animator_create: "animation",
254
- unity_open_mcp_animator_get_data: "animation",
255
- unity_open_mcp_animator_modify: "animation",
256
- // M18 Plan 7 / T18.7.3 — Splines extension tools. First backlog domain
257
- // shipped under the embedded + grouped model. Compile-gated on
258
- // com.unity.splines in the bridge; the tool definitions live in core so
259
- // capabilities discovery advertises the surface even before the package is
260
- // installed. Mutating members (container_create / add_knot / set_knot /
261
- // set_tangent_mode / modify) run the full gate path; read-only members
262
- // (evaluate / get_knots) are gate-free.
263
- unity_open_mcp_splines_container_create: "splines",
264
- unity_open_mcp_splines_add_knot: "splines",
265
- unity_open_mcp_splines_set_knot: "splines",
266
- unity_open_mcp_splines_set_tangent_mode: "splines",
267
- unity_open_mcp_splines_evaluate: "splines",
268
- unity_open_mcp_splines_get_knots: "splines",
269
- unity_open_mcp_splines_modify: "splines",
270
- // M20 Plan 2 / T20.2 — Lighting domain tools. Built-in lighting module
271
- // (Light / ReflectionProbe / RenderSettings / Lightmapping) — ungated in the
272
- // bridge, always compiled. Mutating members (light_add / light_set /
273
- // light_modify / reflection_probe_bake / skybox_set) run the full gate path;
274
- // reflection_probe_bake is the long mutation (EditorSettle). Read-only
275
- // members (reflection_probe_get / skybox_get) are gate-free.
276
- unity_open_mcp_light_add: "lighting",
277
- unity_open_mcp_light_set: "lighting",
278
- unity_open_mcp_light_modify: "lighting",
279
- unity_open_mcp_reflection_probe_bake: "lighting",
280
- unity_open_mcp_reflection_probe_get: "lighting",
281
- unity_open_mcp_skybox_set: "lighting",
282
- unity_open_mcp_skybox_get: "lighting",
283
- // M20 Plan 3 / T20.3.1 — Audio domain tools. Built-in audio module
284
- // (AudioSource / AudioListener / AudioMixer / AudioMixerGroup from
285
- // UnityEngine.AudioModule) — ungated in the bridge, always compiled. Mutating
286
- // members (audio_source_add / audio_source_modify / audio_mixer_set_parameter)
287
- // run the full gate path; read-only members (audio_listener_get /
288
- // audio_mixer_get_parameter) are gate-free.
289
- unity_open_mcp_audio_source_add: "audio",
290
- unity_open_mcp_audio_source_modify: "audio",
291
- unity_open_mcp_audio_mixer_set_parameter: "audio",
292
- unity_open_mcp_audio_listener_get: "audio",
293
- unity_open_mcp_audio_mixer_get_parameter: "audio",
294
- // M20 Plan 3 / T20.3.2 — UI (uGUI) domain tools. Built-in UI module (Canvas /
295
- // CanvasScaler / GraphicRaycaster / Image / Text / Button / Slider / Toggle /
296
- // InputField / layout groups / EventSystem) — ungated in the bridge, always
297
- // compiled. All four members (ui_canvas_add / ui_element_add /
298
- // ui_layout_group_add / ui_element_modify) are mutating and run the full gate
299
- // path. TextMesh Pro (TMP_Text) is optional and detected at call time.
300
- unity_open_mcp_ui_canvas_add: "ui",
301
- unity_open_mcp_ui_element_add: "ui",
302
- unity_open_mcp_ui_layout_group_add: "ui",
303
- unity_open_mcp_ui_element_modify: "ui",
304
- // M20 Plan 3 / T20.3.3 — Constraints & LOD domain tools. Built-in engine
305
- // modules (PositionConstraint / RotationConstraint / AimConstraint /
306
- // ParentConstraint / ScaleConstraint from UnityEngine.AnimationModule +
307
- // LODGroup from UnityEngine.CoreModule) — ungated in the bridge, always
308
- // compiled. All three members (constraint_add / lod_group_configure /
309
- // lod_add_level) are mutating and run the full gate path. One `constraints`
310
- // group covers both concerns (Constraints & LOD are small and closely
311
- // related).
312
- unity_open_mcp_constraint_add: "constraints",
313
- unity_open_mcp_lod_group_configure: "constraints",
314
- unity_open_mcp_lod_add_level: "constraints",
315
- // M20 Plan 4 / T20.4 — Terrain domain tools. Built-in Terrain module
316
- // (Terrain / TerrainData / TreePrototype / TerrainLayer) — ungated in the
317
- // bridge, always compiled. All five members (terrain_create /
318
- // terrain_set_heights / terrain_paint_layer / terrain_place_trees /
319
- // terrain_set_neighbors) are mutating and run the full gate path. The
320
- // large-array cap (513x513) pushes agents toward tiled heightmap / splat
321
- // writes.
322
- unity_open_mcp_terrain_create: "terrain",
323
- unity_open_mcp_terrain_set_heights: "terrain",
324
- unity_open_mcp_terrain_paint_layer: "terrain",
325
- unity_open_mcp_terrain_place_trees: "terrain",
326
- unity_open_mcp_terrain_set_neighbors: "terrain",
327
- // M20 Plan 6 / T20.6.1 — Cinemachine extension tools. The only reflection-
328
- // gated domain pack in the bridge: the assembly always compiles, Cinemachine
329
- // 3.x presence is detected at call time. Six mutating members
330
- // (create_camera / set_targets / set_lens / set_body / set_noise /
331
- // brain_ensure) run the full gate path; the read-only member (camera_list)
332
- // is gate-free.
333
- unity_open_mcp_cinemachine_create_camera: "cinemachine",
334
- unity_open_mcp_cinemachine_set_targets: "cinemachine",
335
- unity_open_mcp_cinemachine_set_lens: "cinemachine",
336
- unity_open_mcp_cinemachine_set_body: "cinemachine",
337
- unity_open_mcp_cinemachine_set_noise: "cinemachine",
338
- unity_open_mcp_cinemachine_brain_ensure: "cinemachine",
339
- unity_open_mcp_cinemachine_camera_list: "cinemachine",
340
- // M20 Plan 6 / T20.6.2 — Timeline extension tools. Compile-gated on
341
- // com.unity.timeline in the bridge (UNITY_OPEN_MCP_EXT_TIMELINE). All five
342
- // members are mutating and run the full gate path.
343
- unity_open_mcp_timeline_create: "timeline",
344
- unity_open_mcp_timeline_track_add: "timeline",
345
- unity_open_mcp_timeline_clip_add: "timeline",
346
- unity_open_mcp_timeline_director_bind: "timeline",
347
- unity_open_mcp_timeline_modify: "timeline",
348
- // M20 Plan 6 / T20.6.3 — Tilemap extension tools. Compile-gated on
349
- // com.unity.2d.tilemap (UNITY_OPEN_MCP_EXT_TILEMAP) with an inner guard on
350
- // com.unity.2d.tilemap.extras (UNITY_OPEN_MCP_EXT_TILEMAP_EXTRAS) for
351
- // create_rule_tile. All five members are mutating and run the full gate path.
352
- unity_open_mcp_tilemap_create: "tilemap",
353
- unity_open_mcp_tilemap_set_tile: "tilemap",
354
- unity_open_mcp_tilemap_box_fill: "tilemap",
355
- unity_open_mcp_tilemap_create_tile_asset: "tilemap",
356
- unity_open_mcp_tilemap_create_rule_tile: "tilemap",
357
- // M20 Plan 7 / T20.7.1 — Shader Graph extension tools. Compile-gated on
358
- // com.unity.shadergraph (UNITY_OPEN_MCP_EXT_SHADERGRAPH) + auto-activating
359
- // (the first domain under the package-detection auto-activation model). The
360
- // first two members are create/open; node_add / node_connect mutate the
361
- // graph. open is read-only (Gate = Off); create / node_add / node_connect
362
- // run the full gate path with paths_hint scoped to the .shadergraph asset
363
- // path. The editing API is wrapped behind a reflection helper so the tools
364
- // degrade gracefully (shadergraph_api_unavailable) across package versions.
365
- unity_open_mcp_shader_graph_create: "shadergraph",
366
- unity_open_mcp_shader_graph_open: "shadergraph",
367
- unity_open_mcp_shader_graph_node_add: "shadergraph",
368
- unity_open_mcp_shader_graph_node_connect: "shadergraph",
369
- // M20 Plan 7 / T20.7.2 — VFX Graph extension tools. Compile-gated on
370
- // com.unity.visualeffectgraph (UNITY_OPEN_MCP_EXT_VFX) + auto-activating
371
- // (the second domain under the package-detection auto-activation model).
372
- // list / open are read-only (Gate = Off) returning a structured
373
- // context/block/property summary; block_edit is the lone mutating member
374
- // (Gate = Enforce, paths_hint = .vfx asset path). VFX Graph's editor graph
375
- // model is internal/unstable — list/open work over the public runtime
376
- // VisualEffectAsset type (version-stable); block_edit requires the VFX Graph
377
- // window to be open and degrades to a structured
378
- // vfx_block_edit_requires_editor_window error otherwise.
379
- unity_open_mcp_vfx_list: "vfx",
380
- unity_open_mcp_vfx_open: "vfx",
381
- unity_open_mcp_vfx_block_edit: "vfx",
382
- // M20 Plan 7 / T20.7.3 — Memory Profiler snapshot capture. Compile-gated on
383
- // com.unity.memoryprofiler (UNITY_OPEN_MCP_EXT_MEMORYPROFILER) + auto-
384
- // activating (the third domain under the package-detection auto-activation
385
- // model). Sense-prefixed (unity_senses_*) because it pairs with the existing
386
- // senses profiler family rather than the typed-editor surface. Read-only re:
387
- // game/project state but produces a file — Gate = Off, ReadOnlyHint = true,
388
- // Lifecycle = EditorSettle. The capture is callback-based (async); the bridge
389
- // blocks until the callback fires.
390
- unity_senses_memory_snapshot_capture: "memoryprofiler",
391
- // M20 Plan 9 / T20.9.1 — 2D art pipeline (SpriteAtlas + Texture import)
392
- // domain tools. Built-in 2D module (SpriteAtlas / SpriteAtlasAsset /
393
- // SpriteAtlasPackingSettings / SpriteAtlasTextureSettings in UnityEngine.U2D
394
- // / UnityEditor.U2D + TextureImporter in UnityEditor) — ungated in the
395
- // bridge, always compiled. Five mutating spriteatlas members (create /
396
- // add_packable / remove_packable / modify / delete) run the full gate path
397
- // with EditorSettle and paths_hint scoped to the .spriteatlas asset path
398
- // (delete is destructive); two read-only spriteatlas members (get / list)
399
- // are gate-free. Two mutating texture members (set_import / reimport) run
400
- // the full gate path with EditorSettle (reimport can take seconds / trigger
401
- // a platform-switch domain reload); two read-only texture members
402
- // (get_importer / get) are gate-free.
403
- unity_open_mcp_spriteatlas_create: "sprite2d",
404
- unity_open_mcp_spriteatlas_get: "sprite2d",
405
- unity_open_mcp_spriteatlas_add_packable: "sprite2d",
406
- unity_open_mcp_spriteatlas_remove_packable: "sprite2d",
407
- unity_open_mcp_spriteatlas_modify: "sprite2d",
408
- unity_open_mcp_spriteatlas_delete: "sprite2d",
409
- unity_open_mcp_spriteatlas_list: "sprite2d",
410
- unity_open_mcp_texture_get_importer: "sprite2d",
411
- unity_open_mcp_texture_set_import: "sprite2d",
412
- unity_open_mcp_texture_reimport: "sprite2d",
413
- unity_open_mcp_texture_get: "sprite2d",
414
- // M20 Plan 5 / T20.5 — typed ScriptableObject + Assembly Definition tools.
415
- // Both sets are core (always-on) typed-editor tools with no Unity package
416
- // dependency. scriptableobject_create is mutating (EditorSettle);
417
- // list_assets_of_type is read-only (offline-routeable in principle). The
418
- // asmdef family parses .asmdef as JSON: list/get are read-only (offline-
419
- // routeable); create/modify use RestartThenSettle (a recompile + domain
420
- // reload follows).
421
- unity_open_mcp_scriptableobject_create: "typed-editor",
422
- unity_open_mcp_list_assets_of_type: "typed-editor",
423
- unity_open_mcp_asmdef_list: "typed-editor",
424
- unity_open_mcp_asmdef_get: "typed-editor",
425
- unity_open_mcp_asmdef_create: "typed-editor",
426
- unity_open_mcp_asmdef_modify: "typed-editor",
92
+ // dependencies + reimport_package are grouped (gate-and-verify /
93
+ // typed-editor) but previously had NO entry in the hand-maintained
94
+ // TOOL_CATEGORY record, silently falling through to "other". The
95
+ // pre-change category is preserved here as a documented override so the
96
+ // capabilities output stays byte-identical (T4.5 acceptance: "same
97
+ // category for every tool"). A future deliberate reclassification can
98
+ // flip these to their group id; until then the parity test treats them
99
+ // as allowed-other.
100
+ unity_open_mcp_dependencies: "other",
101
+ unity_open_mcp_reimport_package: "other",
102
+ // --- Case 2: always-visible meta-tools (group=null) -----------------------
103
+ // The three capability-discovery entry points share one category so agents
104
+ // reading the capabilities surface see them grouped. They have null group
105
+ // because they MUST stay always-visible (an agent needs to reach
106
+ // capabilities / list_rules / generate_skill before any other tool).
427
107
  unity_open_mcp_capabilities: "capability-discovery",
428
108
  unity_open_mcp_list_rules: "capability-discovery",
429
109
  unity_open_mcp_generate_skill: "capability-discovery",
430
- unity_senses_run_tests: "agent-senses",
431
- unity_senses_screenshot: "agent-senses",
432
- // M20 Plan 1 / T20.1.1 — senses parity residual. Two new read-only senses
433
- // tools extending the screenshot surface.
434
- unity_senses_screenshot_camera: "agent-senses",
435
- unity_senses_capture_inline: "agent-senses",
436
- // M20 Plan 1 / T20.1.2 — EditorWindow capture (Win-only full-fidelity,
437
- // cross-platform best-effort readback).
438
- unity_senses_screenshot_window: "agent-senses",
439
- // M20 Plan 1 / T20.1.3 — Frame Debugger control + draw-call list
440
- // (reflection over Unity's internal Frame Debugger API; non-mutating Editor
441
- // state change, gate-free).
442
- unity_senses_frame_debugger: "agent-senses",
443
- // M20 Plan 1 / T20.1.4 — single-frame deep profiler capture. Returns one
444
- // frame's full sample tree for the requested modules.
445
- unity_senses_profiler_capture_frame: "agent-senses",
446
- unity_senses_read_console: "agent-senses",
447
- unity_senses_profiler_capture: "agent-senses",
448
- unity_senses_profiler_memory: "agent-senses",
449
- unity_senses_profiler_rendering: "agent-senses",
450
- unity_senses_spatial_query: "agent-senses",
451
- // M26 Plan 2 — Unity Hub control tools. Local-routed (no bridge/batch);
452
- // mutating members are system-level ops (paths_hint N/A, gate-free).
453
- unity_open_mcp_hub_list_editors: "unity-hub-control",
454
- unity_open_mcp_hub_available_releases: "unity-hub-control",
455
- unity_open_mcp_hub_install_editor: "unity-hub-control",
456
- unity_open_mcp_hub_install_modules: "unity-hub-control",
457
- unity_open_mcp_hub_get_install_path: "unity-hub-control",
458
- unity_open_mcp_hub_set_install_path: "unity-hub-control",
459
- // M27 Plan 4 — batch_execute is a core meta-tool (always visible, live-only).
460
- // One HTTP round trip runs many typed tools sequentially inside the open
461
- // Editor, wrapped in a single batch-level gate + one undo group. NOT
462
- // headless batchCapable (not in BATCH_TOOL_NAMES) — there is no batch spawn
463
- // fallback; the live bridge must be up.
464
- unity_open_mcp_batch_execute: "core",
110
+ // The remaining meta-tools (pull_events, read_compile_errors,
111
+ // bridge_status, manage_tools, restart_editor, resource_pressure) carry
112
+ // the default `"other"` category — they are operator/debug surfaces that
113
+ // do not fit any capability classification bucket. They are intentionally
114
+ // NOT in this override map so the parity test can distinguish "deliberate
115
+ // other" (these) from "missing category" (a new tool added without
116
+ // thought). See ALLOWED_OTHER_CATEGORY_TOOLS below.
465
117
  };
118
+ /**
119
+ * Tools that intentionally carry the default `"other"` category. Two flavors:
120
+ *
121
+ * - **Meta-tools** (group=null) — always-visible operator/debug surfaces
122
+ * that have no group assignment and no override. The parity test allows
123
+ * them through `"other"` explicitly so a NEW tool that lands in neither
124
+ * bucket fails loudly.
125
+ *
126
+ * - **Grouped tools whose override is `"other"`** — `dependencies` and
127
+ * `reimport_package` (preserved pre-change behavior; see overrides).
128
+ *
129
+ * Documented; adding one means updating both this set and the test. Exported
130
+ * so the parity test can enumerate the allowed-other surface.
131
+ */
132
+ export const ALLOWED_OTHER_CATEGORY_TOOLS = new Set([
133
+ // Meta-tools (group=null, no override).
134
+ "unity_open_mcp_manage_tools",
135
+ "unity_senses_pull_events",
136
+ "unity_open_mcp_read_compile_errors",
137
+ "unity_open_mcp_bridge_status",
138
+ "unity_open_mcp_restart_editor",
139
+ "unity_open_mcp_resource_pressure",
140
+ // Grouped tools whose override preserves the pre-change "other".
141
+ "unity_open_mcp_dependencies",
142
+ "unity_open_mcp_reimport_package",
143
+ ]);
144
+ /**
145
+ * The derived tool → category map. Built once at module load: starts from
146
+ * the group assignment (group = category for the agreed majority), then
147
+ * applies {@link TOOL_CATEGORY_OVERRIDES} for the documented exceptions.
148
+ * The result is frozen so callers cannot mutate it.
149
+ */
150
+ const TOOL_CATEGORY = (() => {
151
+ const out = {};
152
+ // Step 1: derive category === group for every grouped tool.
153
+ for (const [tool, group] of Object.entries(toolGroupAssignment())) {
154
+ out[tool] = group;
155
+ }
156
+ // Step 2: apply the documented exceptions (overrides win).
157
+ for (const [tool, category] of Object.entries(TOOL_CATEGORY_OVERRIDES)) {
158
+ out[tool] = category;
159
+ }
160
+ return out;
161
+ })();
466
162
  function categoryFor(toolName) {
467
163
  return TOOL_CATEGORY[toolName] ?? "other";
468
164
  }
@@ -524,22 +220,14 @@ export const ROUTING_SUMMARY = {
524
220
  };
525
221
  export function buildCapabilities(deps, filter = {}) {
526
222
  const includePlanned = filter.includePlanned !== false;
527
- const implementedTools = deps.tools.map((tool) => {
528
- const lifecycle = lifecycleFor(tool.name);
529
- return {
530
- name: tool.name,
531
- implemented: true,
532
- status: "implemented",
533
- category: categoryFor(tool.name),
534
- description: tool.description ?? "",
535
- routePolicy: routePolicyFor(tool.name),
536
- batchCapable: deps.batchToolNames.has(tool.name),
537
- inputSchema: tool.inputSchema,
538
- group: groupFor(tool.name),
539
- lifecycle: lifecycle.class,
540
- lifecycleNote: lifecycle.note ?? null,
541
- };
542
- });
223
+ // M31-optimizations Plan 4 / T4.2 (M2) — the per-tool ToolCapability[] is
224
+ // the most expensive per-call structure (~270 tools, each with a
225
+ // `lifecycleFor` lookup). The inputs (`deps.tools` + `deps.batchToolNames`)
226
+ // are module-level constants on the production path (ALL_TOOLS /
227
+ // BATCH_TOOL_NAMES), so memoize on their identity: production hits, tests
228
+ // with fixture arrays miss (and rebuild — the prior behavior). The cached
229
+ // array is reused as-is; downstream consumers do not mutate it.
230
+ const implementedTools = implementedToolCapabilities(deps.tools, deps.batchToolNames);
543
231
  const plannedTools = includePlanned
544
232
  ? PLANNED_TOOLS.map((p) => ({
545
233
  name: p.name,
@@ -576,30 +264,30 @@ export function buildCapabilities(deps, filter = {}) {
576
264
  counts: {
577
265
  toolsImplemented: implementedTools.length,
578
266
  toolsPlanned: plannedTools.length,
579
- rulesImplemented: deps.rules.filter((r) => r.implemented).length,
580
- rulesPlanned: includePlanned
581
- ? deps.rules.filter((r) => !r.implemented).length
582
- : 0,
583
- fixesImplemented: deps.fixes.filter((f) => f.implemented).length,
584
- fixesPlanned: includePlanned
585
- ? deps.fixes.filter((f) => !f.implemented).length
586
- : 0,
267
+ // M31-optimizations Plan 4 / T4.2 — single-pass counts. Previously the
268
+ // rules/fixes catalog was scanned four times (.filter().length for
269
+ // implemented + planned on each). Now one walk tallies all four in a
270
+ // single pass; planned counts short-circuit to 0 when includePlanned is
271
+ // false (the prior code computed them and then discarded the result).
272
+ ...countRulesAndFixes(deps.rules, deps.fixes, includePlanned),
587
273
  toolGroupsDefaultEnabled: TOOL_GROUPS.filter((g) => g.defaultEnabled).length,
588
274
  toolGroupsTotal: TOOL_GROUPS.length,
589
275
  },
590
276
  // The routing summary is independent of the kind filter — agents
591
277
  // that ask for `kind: "rules"` still benefit from the routing
592
- // narrative. It is constant, so no per-call computation.
278
+ // narrative. M31-optimizations Plan 4 / T4.2 — hoisted to a module-level
279
+ // constant (ROUTING_SUMMARY already is one).
593
280
  routing: ROUTING_SUMMARY,
594
281
  // M22 Plan 1 / T22.1.5 — cost hints are independent of the kind filter for
595
282
  // the same reason as routing: an agent asking for rules/fixes still wants
596
- // to know how to budget its next heavy-tool call. Constant, so no per-call
597
- // computation.
598
- costHints: buildCostHints(),
283
+ // to know how to budget its next heavy-tool call. M31-optimizations Plan
284
+ // 4 / T4.2 — hoisted to COST_HINTS (computed once at module load).
285
+ costHints: COST_HINTS,
599
286
  // Lifecycle taxonomy is independent of the kind filter for the same
600
287
  // reason: an agent asking for rules/fixes still benefits from the recovery
601
- // narrative. Constant, so no per-call computation.
602
- lifecycleBlock: buildLifecycle(),
288
+ // narrative. M31-optimizations Plan 4 / T4.2 — hoisted to LIFECYCLE_BLOCK
289
+ // (computed once at module load).
290
+ lifecycleBlock: LIFECYCLE_BLOCK,
603
291
  // specs/feedback.md 2026-07-03 — surface bridge reachability at the top
604
292
  // level so a caller can distinguish "group genuinely not compiled in"
605
293
  // (available:false + reason) from "I can't tell because the bridge is
@@ -609,6 +297,56 @@ export function buildCapabilities(deps, filter = {}) {
609
297
  bridgeReachable: deps.availableBridgeTools !== undefined,
610
298
  };
611
299
  }
300
+ let toolCapabilitiesCache = null;
301
+ function implementedToolCapabilities(tools, batchToolNames) {
302
+ const cached = toolCapabilitiesCache;
303
+ if (cached && cached.tools === tools && cached.batchToolNames === batchToolNames) {
304
+ return cached.capabilities;
305
+ }
306
+ const capabilities = tools.map((tool) => {
307
+ const lifecycle = lifecycleFor(tool.name);
308
+ return {
309
+ name: tool.name,
310
+ implemented: true,
311
+ status: "implemented",
312
+ category: categoryFor(tool.name),
313
+ description: tool.description ?? "",
314
+ routePolicy: routePolicyFor(tool.name),
315
+ batchCapable: batchToolNames.has(tool.name),
316
+ inputSchema: tool.inputSchema,
317
+ group: groupFor(tool.name),
318
+ lifecycle: lifecycle.class,
319
+ lifecycleNote: lifecycle.note ?? null,
320
+ };
321
+ });
322
+ toolCapabilitiesCache = { tools, batchToolNames, capabilities };
323
+ return capabilities;
324
+ }
325
+ /**
326
+ * Tally implemented + planned counts for rules and fixes in a single pass
327
+ * over each catalog. Returns the four `counts` fields. When `includePlanned`
328
+ * is false the planned counters short-circuit to 0 (the prior code computed
329
+ * them via `.filter(!implemented).length` and then discarded the result).
330
+ */
331
+ function countRulesAndFixes(rules, fixes, includePlanned) {
332
+ let rulesImplemented = 0;
333
+ let rulesPlanned = 0;
334
+ for (const r of rules) {
335
+ if (r.implemented)
336
+ rulesImplemented++;
337
+ else if (includePlanned)
338
+ rulesPlanned++;
339
+ }
340
+ let fixesImplemented = 0;
341
+ let fixesPlanned = 0;
342
+ for (const f of fixes) {
343
+ if (f.implemented)
344
+ fixesImplemented++;
345
+ else if (includePlanned)
346
+ fixesPlanned++;
347
+ }
348
+ return { rulesImplemented, rulesPlanned, fixesImplemented, fixesPlanned };
349
+ }
612
350
  // ---------------------------------------------------------------------------
613
351
  // M18 Plan 2 / T18.2.3 — build the toolGroups catalog block (compiled-state
614
352
  // only). Per-session activation lives in manage_tools; this surface reports