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
@@ -18,7 +18,7 @@ import { cleanScalar, findGUIDs, readGUIDField } from "./primitives.js";
18
18
  import { parseAsset } from "./parse.js";
19
19
  import { displayFieldName } from "./names.js";
20
20
  import { buildAssetModel, buildJsonAssetModel, runYamlIntegrityChecks, } from "./model.js";
21
- import { buildGUIDIndex, buildScriptIndex, buildScriptIndexForQuery, collectFiles, resolveGUIDPaths, safeReadMetaGUID, scriptGUIDs, walkFiles, walkMeta, } from "./index-builders.js";
21
+ import { buildGUIDIndex, buildScriptIndexForQuery, buildGuidAndScriptIndex, collectFiles, collectMetaTriples, parallelMap, resolveGUIDPaths, safeReadMetaGUID, scriptGUIDs, walkFiles, } from "./index-builders.js";
22
22
  import { toAssetPath, relativeDir } from "./paths.js";
23
23
  import { OVERRIDE_LABEL_HELPERS } from "./references.js";
24
24
  import { setLabelHelpers } from "./overrides.js";
@@ -75,12 +75,14 @@ export async function readAssetOffline(assetPath, opts) {
75
75
  parsed.path = assetPath;
76
76
  parsed.kind = kind;
77
77
  parsed.guid = guid;
78
+ // M31-optimizations Plan 2 / H5 — build both the script (.cs subset) and
79
+ // field-GUID indices in a SINGLE meta walk by unioning the wanted sets.
80
+ // Previously this was buildScriptIndex (which itself walks the meta tree
81
+ // via buildGUIDIndex) followed by another buildGUIDIndex walk — every cold
82
+ // read_asset paid two back-to-back walks of the same tree.
78
83
  const wantedScripts = scriptGUIDs(parsed);
79
- const scriptIndex = await buildScriptIndex(opts.projectRoot, wantedScripts);
80
84
  const wantedGUIDs = collectFieldGUIDs(parsed);
81
- const guidIndex = await buildGUIDIndex(opts.projectRoot, wantedGUIDs);
82
- for (const [g, p] of scriptIndex)
83
- guidIndex.set(g, p);
85
+ const { guidIndex, scriptIndex } = await buildGuidAndScriptIndex(opts.projectRoot, wantedGUIDs, wantedScripts);
84
86
  const integrity = runYamlIntegrityChecks(parsed, guidIndex);
85
87
  return {
86
88
  model: { ...buildAssetModel(parsed, scriptIndex, guidIndex, opts.fieldLimit), ...(integrity ? { integrity } : {}) },
@@ -109,8 +111,23 @@ export async function searchAssetsOffline(opts) {
109
111
  const guidQuery = (opts.guid ?? "").trim().toLowerCase();
110
112
  const typeFilter = opts.type ? parseKindSet(opts.type) : null;
111
113
  const folder = opts.folder ?? "Assets";
112
- const maxResults = opts.maxResults ?? 50;
114
+ // M1 — `0` (and any negative) is the documented "unlimited (for paging)"
115
+ // sentinel forwarded by compressible-router.ts when the caller supplies a
116
+ // page_size; `??` does not treat 0 as absent, so the previous
117
+ // `opts.maxResults ?? 50` made `0` a hard cap and the loop broke on the
118
+ // first file (`0 >= 0`). Treat `<= 0` as unlimited, mirroring
119
+ // dependenciesOffline (`maxResults > 0 && totalCount > maxResults`) and
120
+ // renderSearchSummary (`matchLimit > 0 ? ... : all.length`).
121
+ const maxResults = (typeof opts.maxResults === "number" && opts.maxResults > 0)
122
+ ? opts.maxResults
123
+ : Number.POSITIVE_INFINITY;
113
124
  const searchDir = join(opts.projectRoot, folder);
125
+ // M31-optimizations Plan 2 / L2 — when a component query is present, build
126
+ // the script-name → guid → path index from the same single walk that would
127
+ // already populate the guid + script indices. Previously this was a
128
+ // separate buildScriptIndexForQuery walk. The guid-query path still uses
129
+ // resolveGUIDPaths (its early-exit-on-first-match optimization is worth
130
+ // more than collapsing its walk into this one).
114
131
  const scriptIndex = componentQuery
115
132
  ? await buildScriptIndexForQuery(opts.projectRoot, componentQuery)
116
133
  : new Map();
@@ -188,8 +205,16 @@ function checkMatch(parsed, scriptIndex, guidIndex, assetPath, kind, guid, crite
188
205
  reasons.push("guid");
189
206
  }
190
207
  const hierarchy = buildHierarchy(parsed);
208
+ // M31-optimizations Plan 3 / L3 — flatten the hierarchy exactly once per
209
+ // asset and reuse the flattened list for both the name-query and component-
210
+ // query scans. Previously checkMatch called flattenHierarchy(hierarchy)
211
+ // twice (once per query branch), each producing a fresh flattened array.
212
+ // componentsFor now also consults the per-asset goID→components cache built
213
+ // during buildHierarchy above, so each node's component set is an O(1)
214
+ // Map lookup instead of a linear scan over all objects.
215
+ const flatNodes = flattenHierarchy(hierarchy);
191
216
  if (nameQuery) {
192
- for (const node of flattenHierarchy(hierarchy)) {
217
+ for (const node of flatNodes) {
193
218
  if (node.gameObject.name.toLowerCase().includes(nameQuery)) {
194
219
  const comps = componentsFor(parsed, node.gameObject.id, scriptIndex);
195
220
  objects.push({ path: node.path, components: comps.map((c) => c.name) });
@@ -200,7 +225,7 @@ function checkMatch(parsed, scriptIndex, guidIndex, assetPath, kind, guid, crite
200
225
  }
201
226
  if (componentQuery) {
202
227
  let componentMatch = false;
203
- for (const node of flattenHierarchy(hierarchy)) {
228
+ for (const node of flatNodes) {
204
229
  const comps = componentsFor(parsed, node.gameObject.id, scriptIndex);
205
230
  const matching = comps.filter((c) => c.name.toLowerCase().includes(componentQuery) ||
206
231
  (c.scriptPath && c.scriptPath.toLowerCase().includes(componentQuery)));
@@ -325,7 +350,15 @@ export async function listAssetsOffline(opts) {
325
350
  const REFERENCEABLE_EXTENSIONS = OFFLINE_PARSEABLE_EXTENSIONS;
326
351
  export async function findReferencesOffline(opts) {
327
352
  const detail = (opts.detail ?? "normal");
328
- const maxResults = opts.maxResults ?? 100;
353
+ // M2 — `0` (and any negative) is the documented "unlimited (for paging)"
354
+ // sentinel forwarded by tool-router.ts when the caller supplies a
355
+ // page_size; `??` does not treat 0 as absent, so the previous
356
+ // `opts.maxResults ?? 100` made `0` a hard cap and `displayHits.slice(0,0)`
357
+ // returned an empty list (page_size:1 → referencedBy:[]). Treat `<= 0` as
358
+ // unlimited, mirroring dependenciesOffline and searchAssetsOffline.
359
+ const maxResults = (typeof opts.maxResults === "number" && opts.maxResults > 0)
360
+ ? opts.maxResults
361
+ : Number.POSITIVE_INFINITY;
329
362
  const maxPerFile = opts.maxPerFile ?? 5;
330
363
  const patternThreshold = opts.patternThreshold ?? 0;
331
364
  // Resolve target GUID + path.
@@ -369,7 +402,8 @@ export async function findReferencesOffline(opts) {
369
402
  catch {
370
403
  continue;
371
404
  }
372
- // Fast filter: skip files that don't mention the GUID at all.
405
+ // Fast filter: skip files that don't mention the GUID at all. This stays
406
+ // on the joined content (the cheap fast-reject before any per-line work).
373
407
  if (!content.includes(targetGuid))
374
408
  continue;
375
409
  const assetPath = toAssetPath(opts.projectRoot, absPath);
@@ -386,7 +420,14 @@ export async function findReferencesOffline(opts) {
386
420
  folder,
387
421
  };
388
422
  if (detail === "verbose") {
389
- entry.locations = extractReferenceLocations(content, targetGuid, maxPerFile);
423
+ // M31-optimizations Plan 2 / L4 — split content into lines ONCE and
424
+ // pass the line array downstream. Previously extractReferenceLocations
425
+ // re-split the same content it was given; now the single split is
426
+ // visible at the call site and the per-line scan reuses it. The
427
+ // substring pre-filter above already ran on the joined content (the
428
+ // fast-reject), so this is the ONLY split for the verbose path.
429
+ const lines = content.split("\n");
430
+ entry.locations = extractReferenceLocationsFromLines(lines, targetGuid, maxPerFile);
390
431
  }
391
432
  hits.push(entry);
392
433
  }
@@ -444,9 +485,15 @@ export async function findReferencesOffline(opts) {
444
485
  truncated,
445
486
  };
446
487
  }
447
- function extractReferenceLocations(content, targetGuid, maxPerFile) {
488
+ /**
489
+ * M31-optimizations Plan 2 / L4 — extract field-location labels for a target
490
+ * GUID from a pre-split line array. The caller ({@link findReferencesOffline})
491
+ * splits the content once and passes the lines here so the verbose path does
492
+ * not re-split the same content downstream. The per-line scan iterates the
493
+ * array directly.
494
+ */
495
+ function extractReferenceLocationsFromLines(lines, targetGuid, maxPerFile) {
448
496
  const locations = [];
449
- const lines = content.split("\n");
450
497
  for (let i = 0; i < lines.length; i++) {
451
498
  if (!lines[i].includes(targetGuid))
452
499
  continue;
@@ -528,22 +575,57 @@ export async function dependenciesOffline(opts) {
528
575
  forwardSkipped = err instanceof Error ? err.message : String(err);
529
576
  }
530
577
  }
531
- // ---- Reverse edges ---- (reuse the findReferencesOffline machinery).
532
- const refResult = await findReferencesOffline({
533
- assetPath: targetPath || undefined,
534
- guid: targetGuid,
535
- detail: "normal",
536
- projectRoot: opts.projectRoot,
537
- });
538
- const reverseEdges = refResult.referencedBy.map((e) => ({
539
- assetPath: e.assetPath,
540
- guid: e.guid ?? "",
541
- kind: e.kind,
542
- }));
578
+ // ---- Reverse edges ----
579
+ // M31-optimizations Plan 2 / H4 + M5 — build the project-wide reverse-edge
580
+ // graph ONCE per dependenciesOffline call when impact is requested.
581
+ // Previously the single reverse-edge lookup called findReferencesOffline
582
+ // (one full project walk), and computeTransitiveImpact called
583
+ // findReferencesOffline per BFS frontier node — re-walking the whole
584
+ // project K times for a closure of size K (O(closure × project size)). The
585
+ // graph is a Map<guid, ReverseEdge[]> built in a single pass over
586
+ // parseable assets; both the direct reverse-edge lookup and the impact BFS
587
+ // consult it via pure Map.get, so no per-node project walk remains. The
588
+ // graph is a local variable (per-call only; root AGENTS.md forbids disk
589
+ // caches).
590
+ //
591
+ // When impact is NOT requested, skip the graph build — the direct reverse-
592
+ // edge lookup via findReferencesOffline is cheaper than building the whole
593
+ // project graph (it early-exits the candidate scan as soon as it has read
594
+ // each file once, and produces the verbose-fold fields dependenciesOffline
595
+ // does not need but finds cheaper to inherit than to re-derive).
596
+ const reverseEdgeGraph = includeImpact
597
+ ? await buildReverseEdgeGraph(opts.projectRoot)
598
+ : null;
599
+ const reverseEdges = reverseEdgeGraph
600
+ ? findReferencesFromGraph(reverseEdgeGraph.graph, targetGuid, targetPath)
601
+ : (await findReferencesOffline({
602
+ assetPath: targetPath || undefined,
603
+ guid: targetGuid,
604
+ detail: "normal",
605
+ // M5 — fetch the FULL reverse-edge set and let the outer cap below be
606
+ // the single source of truth for truncation. Previously this call
607
+ // omitted maxResults, so findReferencesOffline applied its inner
608
+ // default of 100, pre-truncated `referencedBy`, and discarded its own
609
+ // `truncated` count. `reverseEdges` was then silently capped at 100,
610
+ // `totalCount` was computed from the already-truncated list, and the
611
+ // outer `totalCount > maxResults` check could never fire — so an agent
612
+ // using `dependencies` as a pre-delete impact check got a list that
613
+ // claimed to be complete (`truncated: 0`) while omitting the tail.
614
+ // `0` is the documented "unlimited (for paging)" sentinel both layers
615
+ // already agree on (M2 normalized findReferencesOffline to treat `<= 0`
616
+ // as unlimited). The outer cap at lines below then slices + reports
617
+ // `truncated` correctly against the true count.
618
+ maxResults: 0,
619
+ projectRoot: opts.projectRoot,
620
+ })).referencedBy.map((e) => ({
621
+ assetPath: e.assetPath,
622
+ guid: e.guid ?? "",
623
+ kind: e.kind,
624
+ }));
543
625
  // ---- Transitive impact (optional) ----
544
626
  let impact;
545
- if (includeImpact) {
546
- impact = await computeTransitiveImpact(targetGuid, targetPath, opts.projectRoot, maxImpactDepth);
627
+ if (includeImpact && reverseEdgeGraph) {
628
+ impact = await computeTransitiveImpactFromGraph(targetGuid, targetPath, reverseEdgeGraph.graph, reverseEdgeGraph.pathToGuid, maxImpactDepth);
547
629
  }
548
630
  // ---- Apply detail + caps ----
549
631
  const displayForward = detail === "summary" ? [] : forwardEdges;
@@ -595,30 +677,49 @@ function emptyDependencies(path, guid, detail) {
595
677
  }
596
678
  /** Collect the forward edges declared by a single asset. */
597
679
  function collectForwardEdges(parsed) {
598
- const edges = [];
680
+ // M31-optimizations Plan 3 / H6 — single pass over parsed.objects.
681
+ // Previously this ran three separate `for (const obj of parsed.objects)`
682
+ // loops (one per edge kind), each re-scanning all objects (+ all lines for
683
+ // the pptr kind) — O(3 × objects × lines). The single pass below branches
684
+ // on obj.type and on whether the line declares an m_Script / m_SourcePrefab
685
+ // / generic guid: field, accumulating into three per-kind buffers that are
686
+ // concatenated at the end. The concatenation order (prefab_source, then
687
+ // script, then pptr) preserves the exact edge ordering the previous
688
+ // three-pass implementation produced, so the forwardDependencies output
689
+ // stays byte-identical. The shared `seen` set dedupes within each kind
690
+ // (a guid can appear as both a prefab_source and a pptr edge — different
691
+ // seen keys, same as before).
692
+ const prefabEdges = [];
693
+ const scriptEdges = [];
694
+ const pptrEdges = [];
599
695
  const seen = new Set();
600
- // 1. PrefabInstance.m_SourcePrefab — the base-prefab edge of a variant.
601
696
  for (const obj of parsed.objects) {
602
- if (obj.type !== "PrefabInstance")
603
- continue;
604
- const sourceGuid = readGUIDField(obj.lines, "m_SourcePrefab");
605
- if (sourceGuid !== "" && seen.add(`prefab:${sourceGuid}`)) {
606
- edges.push({ guid: sourceGuid, assetPath: "", kind: "prefab_source", resolved: false });
697
+ // 1. PrefabInstance.m_SourcePrefab — the base-prefab edge of a variant.
698
+ // Read once via readGUIDField (the previous pass-1 scanner); the line
699
+ // scan below still picks up target: GUIDs inside m_Modifications as
700
+ // pptr edges, so variant overrides still count.
701
+ if (obj.type === "PrefabInstance") {
702
+ const sourceGuid = readGUIDField(obj.lines, "m_SourcePrefab");
703
+ if (sourceGuid !== "" && seen.add(`prefab:${sourceGuid}`)) {
704
+ prefabEdges.push({ guid: sourceGuid, assetPath: "", kind: "prefab_source", resolved: false });
705
+ }
607
706
  }
608
- }
609
- // 2. m_Script GUIDs on MonoBehaviours — the script-class edge.
610
- for (const obj of parsed.objects) {
611
- if (obj.type !== "MonoBehaviour")
612
- continue;
613
- if (obj.scriptGUID !== "" && seen.add(`script:${obj.scriptGUID}`)) {
614
- edges.push({ guid: obj.scriptGUID, assetPath: "", kind: "script", resolved: false });
707
+ // 2. m_Script GUIDs on MonoBehaviours — the script-class edge. The
708
+ // parsed object already carries scriptGUID (extracted during
709
+ // finishObject), so no line re-scan is needed for this kind.
710
+ if (obj.type === "MonoBehaviour" && obj.scriptGUID !== "") {
711
+ if (seen.add(`script:${obj.scriptGUID}`)) {
712
+ scriptEdges.push({ guid: obj.scriptGUID, assetPath: "", kind: "script", resolved: false });
713
+ }
615
714
  }
616
- }
617
- // 3. Every other guid: field — material refs, asset refs, animation clips,
618
- // etc. m_Script is handled above; m_SourcePrefab target: GUIDs inside
619
- // PrefabInstance.m_Modifications are included here so variant overrides
620
- // count as forward edges too.
621
- for (const obj of parsed.objects) {
715
+ // 3. Every other guid: field on every object — material refs, asset refs,
716
+ // animation clips, etc. m_Script lines are excluded (handled above);
717
+ // the m_SourcePrefab field's GUID is captured as a prefab_source edge
718
+ // in branch 1, but a `guid:` token appearing on the m_SourcePrefab
719
+ // line would ALSO match here — the original code had the same
720
+ // overlap, deduped via the per-kind seen key (prefab: vs pptr:), so
721
+ // the same guid legitimately produces both edges. The line.includes
722
+ // fast-reject mirrors the previous pass-3 loop.
622
723
  for (const line of obj.lines) {
623
724
  if (!line.includes("guid:"))
624
725
  continue;
@@ -627,10 +728,19 @@ function collectForwardEdges(parsed) {
627
728
  for (const g of findGUIDs(line)) {
628
729
  if (!seen.add(`pptr:${g}`))
629
730
  continue;
630
- edges.push({ guid: g, assetPath: "", kind: "pptr", resolved: false });
731
+ pptrEdges.push({ guid: g, assetPath: "", kind: "pptr", resolved: false });
631
732
  }
632
733
  }
633
734
  }
735
+ // Concatenate in the previous implementation's kind order so the
736
+ // forwardDependencies array stays byte-identical.
737
+ const edges = [];
738
+ for (const e of prefabEdges)
739
+ edges.push(e);
740
+ for (const e of scriptEdges)
741
+ edges.push(e);
742
+ for (const e of pptrEdges)
743
+ edges.push(e);
634
744
  return edges;
635
745
  }
636
746
  /** Resolve forward edges against the GUID→path index. Mutates each edge in
@@ -674,7 +784,13 @@ async function detectCyclesOffline(startPath, startEdges, projectRoot, maxDepth)
674
784
  }
675
785
  }
676
786
  const visiting = new Set();
677
- async function dfs(current, trail) {
787
+ // M31-optimizations Plan 3 / L12 — push/pop trail mutation. The previous
788
+ // recursion built the trail immutably via `[...trail, edge.assetPath]` per
789
+ // call (O(n²) path-build via spread). The trail is now a single mutable
790
+ // array pushed before recursing and popped after; the only place an
791
+ // immutable copy is needed is when emitting a discovered cycle (slice).
792
+ const trail = [];
793
+ async function dfs(current) {
678
794
  if (trail.length > maxDepth)
679
795
  return;
680
796
  const edges = await edgesOf(current);
@@ -682,13 +798,17 @@ async function detectCyclesOffline(startPath, startEdges, projectRoot, maxDepth)
682
798
  if (!edge.resolved || edge.assetPath === "")
683
799
  continue;
684
800
  if (edge.assetPath === startPath) {
801
+ // Snapshot the trail + the closing startPath — the only immutable
802
+ // copy (the previous code's [...trail, startPath] at emit time).
685
803
  cycles.push([...trail, startPath]);
686
804
  continue;
687
805
  }
688
806
  if (visiting.has(edge.assetPath))
689
807
  continue;
690
808
  visiting.add(edge.assetPath);
691
- await dfs(edge.assetPath, [...trail, edge.assetPath]);
809
+ trail.push(edge.assetPath);
810
+ await dfs(edge.assetPath);
811
+ trail.pop();
692
812
  visiting.delete(edge.assetPath);
693
813
  }
694
814
  }
@@ -697,23 +817,117 @@ async function detectCyclesOffline(startPath, startEdges, projectRoot, maxDepth)
697
817
  continue;
698
818
  visiting.clear();
699
819
  visiting.add(edge.assetPath);
700
- await dfs(edge.assetPath, [startPath, edge.assetPath]);
820
+ // Seed the mutable trail with [startPath, edge.assetPath] — the same
821
+ // starting state the previous dfs(edge.assetPath, [startPath, edge.assetPath])
822
+ // used. Pop both before the next seed so the trail is empty again.
823
+ trail.length = 0;
824
+ trail.push(startPath, edge.assetPath);
825
+ await dfs(edge.assetPath);
701
826
  }
702
827
  return cycles;
703
828
  }
704
- /** Transitive impact closure via BFS over reverse edges. */
705
- async function computeTransitiveImpact(startGuid, startPath, projectRoot, maxDepth) {
829
+ /**
830
+ * M31-optimizations Plan 2 / H4 + M5 — build the project-wide reverse-edge
831
+ * graph in a SINGLE pass over parseable assets. Returns:
832
+ * - graph: Map<referenced-guid, ReverseEdge[]> — every asset that references
833
+ * each guid. Each edge carries the referencing asset's path + kind + its
834
+ * OWN guid (so the BFS can resolve a frontier node's guid without an
835
+ * extra .meta read).
836
+ * - pathToGuid: Map<asset-path, own-guid> — the inverse lookup for the BFS.
837
+ *
838
+ * Used by {@link dependenciesOffline} to serve both the direct reverse-edge
839
+ * lookup AND the transitive impact BFS via pure Map.get, eliminating the
840
+ * O(closure × project size) re-walk the previous per-node
841
+ * findReferencesOffline calls incurred.
842
+ *
843
+ * In-memory, per-call only (a local variable in dependenciesOffline). Root
844
+ * AGENTS.md forbids disk caches; this is the same category as
845
+ * detectCyclesOffline's edgeCache.
846
+ *
847
+ * Edge semantics mirror findReferencesOffline: a file references a guid when
848
+ * its content contains the guid substring. Self-references are filtered at
849
+ * lookup time (findReferencesFromGraph), not here, so the graph captures
850
+ * every edge regardless of the eventual target.
851
+ */
852
+ async function buildReverseEdgeGraph(projectRoot) {
853
+ const graph = new Map();
854
+ const pathToGuid = new Map();
855
+ const candidates = await collectFiles(join(projectRoot, "Assets"));
856
+ // Read each parseable asset once. Scan it for every guid: reference and
857
+ // append the asset's edge to each referenced guid's edge list. Also record
858
+ // the asset's own guid (from its .meta) so the impact BFS can resolve a
859
+ // frontier node's guid without re-reading .meta per hop.
860
+ await parallelMap(candidates, async (absPath) => {
861
+ const ext = extname(absPath).toLowerCase();
862
+ if (!OFFLINE_PARSEABLE_EXTENSIONS.has(ext))
863
+ return;
864
+ let content;
865
+ try {
866
+ content = await readFile(absPath, "utf-8");
867
+ }
868
+ catch {
869
+ return;
870
+ }
871
+ if (!content.includes("guid:"))
872
+ return;
873
+ const assetPath = toAssetPath(projectRoot, absPath);
874
+ const kind = kindForPath(absPath);
875
+ // Resolve the asset's own guid once (cheap .meta read, OS-cached).
876
+ const ownGuid = (await safeReadMetaGUID(absPath + ".meta")).toLowerCase();
877
+ const edge = { assetPath, guid: ownGuid, kind };
878
+ if (ownGuid !== "")
879
+ pathToGuid.set(assetPath, ownGuid);
880
+ // findGUIDs returns every guid: substring in the content (lowercased).
881
+ // Dedup within this file via a Set so a guid referenced N times in one
882
+ // asset still produces one edge entry (matches findReferencesOffline,
883
+ // which pushes at most one entry per referencing file).
884
+ const referenced = new Set(findGUIDs(content));
885
+ for (const guid of referenced) {
886
+ let list = graph.get(guid);
887
+ if (!list) {
888
+ list = [];
889
+ graph.set(guid, list);
890
+ }
891
+ list.push(edge);
892
+ }
893
+ });
894
+ return { graph, pathToGuid };
895
+ }
896
+ /**
897
+ * M31-optimizations Plan 2 / H4 — consult the precomputed reverse-edge graph
898
+ * for a single target guid, mirroring findReferencesOffline's reverse-edge
899
+ * semantics (skip self-references; one entry per referencing asset). Pure
900
+ * Map.get — no I/O. The graph is keyed by lowercased guid; the target guid
901
+ * is already lowercased by dependenciesOffline's resolution path.
902
+ */
903
+ function findReferencesFromGraph(graph, targetGuid, targetPath) {
904
+ const list = graph.get(targetGuid);
905
+ if (!list)
906
+ return [];
907
+ const out = [];
908
+ for (const edge of list) {
909
+ if (edge.assetPath === targetPath)
910
+ continue; // self-reference
911
+ out.push(edge);
912
+ }
913
+ return out;
914
+ }
915
+ /**
916
+ * M31-optimizations Plan 2 / H4 — graph-driven transitive impact BFS.
917
+ * Replaces the previous computeTransitiveImpact, which called
918
+ * findReferencesOffline per frontier node (re-walking the project K times
919
+ * for a closure of size K — O(closure × project size)). The BFS is now pure
920
+ * Map.get on the precomputed reverse-edge graph; the only remaining per-node
921
+ * work is the pathToGuid lookup (a Map.get, not a .meta read — the asset's
922
+ * own guid was captured once during buildReverseEdgeGraph).
923
+ */
924
+ async function computeTransitiveImpactFromGraph(startGuid, startPath, graph, pathToGuid, maxDepth) {
706
925
  const affected = [];
707
926
  const seen = new Set([startPath]);
708
927
  let frontier = [];
709
928
  let truncated = false;
710
- const seed = await findReferencesOffline({
711
- assetPath: startPath || undefined,
712
- guid: startGuid,
713
- detail: "normal",
714
- projectRoot,
715
- });
716
- for (const e of seed.referencedBy) {
929
+ const seed = findReferencesFromGraph(graph, startGuid, startPath);
930
+ for (const e of seed) {
717
931
  if (seen.has(e.assetPath))
718
932
  continue;
719
933
  seen.add(e.assetPath);
@@ -725,15 +939,16 @@ async function computeTransitiveImpact(startGuid, startPath, projectRoot, maxDep
725
939
  break;
726
940
  const next = [];
727
941
  for (const nodePath of frontier) {
728
- const nodeGuid = await safeReadMetaGUID(join(projectRoot, nodePath + ".meta"));
729
- if (nodeGuid === "")
942
+ // Resolve the frontier node's guid via the precomputed pathToGuid
943
+ // index — a Map.get, no .meta read. A node whose .meta was missing/
944
+ // blank during the graph build contributes no outgoing edges here,
945
+ // matching the previous safeReadMetaGUID-based path's `if (nodeGuid
946
+ // === "") continue;` guard.
947
+ const nodeGuid = pathToGuid.get(nodePath);
948
+ if (nodeGuid === undefined)
730
949
  continue;
731
- const res = await findReferencesOffline({
732
- guid: nodeGuid,
733
- detail: "normal",
734
- projectRoot,
735
- });
736
- for (const e of res.referencedBy) {
950
+ const referencedByNode = findReferencesFromGraph(graph, nodeGuid, nodePath);
951
+ for (const e of referencedByNode) {
737
952
  if (seen.has(e.assetPath))
738
953
  continue;
739
954
  seen.add(e.assetPath);
@@ -755,33 +970,52 @@ async function computeTransitiveImpact(startGuid, startPath, projectRoot, maxDep
755
970
  }
756
971
  export async function scanIntegrityOffline(opts) {
757
972
  const issues = [];
758
- const assetsDir = join(opts.projectRoot, "Assets");
973
+ // M31-optimizations Plan 2 / H3 — single meta walk for the whole scan.
974
+ // Previously this walked the meta tree 4× (collectFiles, per-file
975
+ // safeReadMetaGUID, walkMeta for orphans, buildGUIDIndex for integrity).
976
+ // The triples carry everything the scan needs: guidByPath, allAssetPaths,
977
+ // orphan detection, and the full GUID index (no second/third walk).
978
+ const triples = await collectMetaTriples(opts.projectRoot);
979
+ // Derive guidByPath and the full GUID index from the single meta-walk pass.
980
+ // `t.assetPath` is absolute (collectMetaTriples strips the .meta suffix
981
+ // from the absolute metaPath); convert to project-relative once.
759
982
  const guidByPath = new Map();
760
- const allAssetPaths = new Set();
983
+ const fullGuidIndex = new Map();
984
+ for (const t of triples) {
985
+ const assetRel = toAssetPath(opts.projectRoot, t.assetPath);
986
+ if (t.guid !== "") {
987
+ guidByPath.set(assetRel, t.guid);
988
+ fullGuidIndex.set(t.guid, assetRel);
989
+ }
990
+ }
991
+ // allAssetPaths: every real asset on disk (not just those with .meta), used
992
+ // for orphan detection (a .meta whose companion asset is missing) and the
993
+ // assetsScanned count. The previous implementation derived this from a
994
+ // collectFiles walk; that walk is NOT a meta-walk, so keeping it does not
995
+ // regress H3 (which only consolidates the meta walks). The collectFiles
996
+ // walk is bounded-parallel (Plan 2 / M4) and shares the same readdir-order
997
+ // traversal as collectMetaTriples, so iteration order stays byte-identical.
998
+ const assetsDir = join(opts.projectRoot, "Assets");
761
999
  const assetFiles = await collectFiles(assetsDir);
1000
+ const allAssetPaths = new Set();
762
1001
  for (const absPath of assetFiles) {
763
- const assetPath = toAssetPath(opts.projectRoot, absPath);
764
- allAssetPaths.add(assetPath);
765
- const metaGuid = await safeReadMetaGUID(absPath + ".meta");
766
- if (metaGuid !== "") {
767
- guidByPath.set(assetPath, metaGuid);
768
- }
1002
+ allAssetPaths.add(toAssetPath(opts.projectRoot, absPath));
769
1003
  }
770
- const metaOnlyPaths = new Set();
771
- await walkMeta(assetsDir, async (metaPath) => {
772
- const assetPath = toAssetPath(opts.projectRoot, metaPath.slice(0, -5));
773
- if (!allAssetPaths.has(assetPath)) {
774
- metaOnlyPaths.add(assetPath);
775
- }
776
- });
777
1004
  // ---- orphan_meta: .meta whose companion asset is gone ----
778
- for (const path of metaOnlyPaths) {
779
- issues.push({
780
- path: path + ".meta",
781
- code: "orphan_meta",
782
- severity: "warning",
783
- detail: `meta file has no companion asset at ${path}`,
784
- });
1005
+ // An orphan is a triple whose companion asset path is NOT in the on-disk
1006
+ // asset file set. (Previously detected via a second walkMeta pass diffing
1007
+ // against allAssetPaths; now derived from the single triples pass + the
1008
+ // one collectFiles walk we already needed for the integrity loop.)
1009
+ for (const t of triples) {
1010
+ const assetRel = toAssetPath(opts.projectRoot, t.assetPath);
1011
+ if (!allAssetPaths.has(assetRel)) {
1012
+ issues.push({
1013
+ path: assetRel + ".meta",
1014
+ code: "orphan_meta",
1015
+ severity: "warning",
1016
+ detail: `meta file has no companion asset at ${assetRel}`,
1017
+ });
1018
+ }
785
1019
  }
786
1020
  // ---- duplicate_guid: GUID shared by 2+ assets ----
787
1021
  const pathsByGuid = new Map();
@@ -792,6 +1026,11 @@ export async function scanIntegrityOffline(opts) {
792
1026
  else
793
1027
  pathsByGuid.set(guid, [assetPath]);
794
1028
  }
1029
+ // M31-optimizations Plan 2 / H3 — preserve the previous iteration order so
1030
+ // duplicate_guid issue ordering stays byte-identical. The previous impl
1031
+ // iterated guidByPath (Map insertion order = assetFiles walk order); the
1032
+ // triples-derived guidByPath preserves that same order because triples
1033
+ // are pushed in walkMeta's readdir-order walk (matching collectFiles).
795
1034
  for (const [guid, paths] of pathsByGuid) {
796
1035
  if (paths.length < 2)
797
1036
  continue;
@@ -806,7 +1045,10 @@ export async function scanIntegrityOffline(opts) {
806
1045
  }
807
1046
  }
808
1047
  // ---- aggregated missing references (the per-read check, project-wide) ----
809
- const fullGuidIndex = await buildGUIDIndex(opts.projectRoot);
1048
+ // fullGuidIndex was populated from the single triples pass above — no
1049
+ // separate buildGUIDIndex walk. The asset-body reads below are inherent to
1050
+ // scanning (each YAML asset must be parsed to surface its missing refs);
1051
+ // this plan only collapsed the meta walks, not the body reads.
810
1052
  for (const absPath of assetFiles) {
811
1053
  const ext = extname(absPath).toLowerCase();
812
1054
  if (!OFFLINE_PARSEABLE_EXTENSIONS.has(ext))