unity-open-mcp 0.6.1 → 0.8.2

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/README.md +15 -67
  2. package/dist/batch-spawn.d.ts +12 -0
  3. package/dist/batch-spawn.js +127 -20
  4. package/dist/batch-spawn.js.map +1 -1
  5. package/dist/bridge-tools-cache.d.ts +46 -0
  6. package/dist/bridge-tools-cache.js +83 -0
  7. package/dist/bridge-tools-cache.js.map +1 -0
  8. package/dist/capabilities/build-capabilities.d.ts +39 -5
  9. package/dist/capabilities/build-capabilities.js +190 -452
  10. package/dist/capabilities/build-capabilities.js.map +1 -1
  11. package/dist/capabilities/intent-groups.d.ts +99 -0
  12. package/dist/capabilities/intent-groups.js +518 -0
  13. package/dist/capabilities/intent-groups.js.map +1 -0
  14. package/dist/capabilities/lifecycle.js +1 -1
  15. package/dist/capabilities/lifecycle.js.map +1 -1
  16. package/dist/capabilities/list-rules.js +12 -20
  17. package/dist/capabilities/list-rules.js.map +1 -1
  18. package/dist/capabilities/rule-catalog.d.ts +22 -1
  19. package/dist/capabilities/rule-catalog.js +53 -20
  20. package/dist/capabilities/rule-catalog.js.map +1 -1
  21. package/dist/capabilities/tool-groups.d.ts +14 -13
  22. package/dist/capabilities/tool-groups.js +47 -22
  23. package/dist/capabilities/tool-groups.js.map +1 -1
  24. package/dist/cli/cli.js +65 -8
  25. package/dist/cli/cli.js.map +1 -1
  26. package/dist/cli/commands.d.ts +20 -0
  27. package/dist/cli/commands.js +142 -73
  28. package/dist/cli/commands.js.map +1 -1
  29. package/dist/cli/help-text.d.ts +2 -0
  30. package/dist/cli/help-text.js +77 -0
  31. package/dist/cli/help-text.js.map +1 -0
  32. package/dist/cli/ping-poller.d.ts +7 -5
  33. package/dist/cli/ping-poller.js +16 -15
  34. package/dist/cli/ping-poller.js.map +1 -1
  35. package/dist/compressible-router.d.ts +9 -2
  36. package/dist/compressible-router.js +70 -7
  37. package/dist/compressible-router.js.map +1 -1
  38. package/dist/compression/compact.d.ts +1 -0
  39. package/dist/compression/compact.js +82 -14
  40. package/dist/compression/compact.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 -142
  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 +336 -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 +55 -0
  93. package/dist/tool-router.js +782 -188
  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 +134 -22
  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 -52
  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 -68
  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 +34 -40
  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 -13
  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 -14
  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 -57
  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 -46
  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 +72 -38
  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 -58
  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
@@ -0,0 +1,146 @@
1
+ /**
2
+ * Mono's internal file-descriptor ceiling — the real trip point for the Bee
3
+ * build-driver fd-exhaustion hang. Mono's IOSelector refuses to register a
4
+ * descriptor whose number crosses this (kqueue/kevent on macOS/BSD, epoll on
5
+ * Linux). The OS `ulimit -n` soft limit is only a loose upper bound and is
6
+ * misleading for a GUI-launched Unity on macOS (it inherits `launchctl limit
7
+ * maxfiles`, not the shell's ulimit). Documented in the tool response via
8
+ * `launchContextCaveat`.
9
+ */
10
+ export declare const FD_CEILING = 1024;
11
+ /**
12
+ * Headroom fraction (of FD_CEILING) at or below which the state is `warn`:
13
+ * the Editor is approaching the Mono ceiling and an agent should surface the
14
+ * trend so the operator can save + restart before the hang. ≥80% usage.
15
+ */
16
+ export declare const FD_WARN_RATIO = 0.8;
17
+ /**
18
+ * Headroom fraction at or below which the state is `critical`: the next
19
+ * domain reload is likely to trip the Bee build-driver hang. ≥90% usage.
20
+ */
21
+ export declare const FD_CRITICAL_RATIO = 0.9;
22
+ /** execFileSync timeout for the macOS `lsof` probe (ms). */
23
+ export declare const FD_PROBE_TIMEOUT_MS = 3000;
24
+ /** OS method used to count file descriptors for a PID. */
25
+ export type FdCountMethod = "lsof" | "proc" | "handle_count";
26
+ /** Successful fd-count probe. */
27
+ export interface FdCountOk {
28
+ /** The raw fd count (or Windows handle count — see `approximate`). */
29
+ count: number;
30
+ method: FdCountMethod;
31
+ /**
32
+ * `true` when the count is a Windows HandleCount approximation rather than
33
+ * a Unix fd count. Windows handles cover more than just fds (kernel +
34
+ * GDI + user objects), so the headroom math is looser there. The response
35
+ * flags this so an agent does not over-react to a naturally-higher number.
36
+ */
37
+ approximate: boolean;
38
+ }
39
+ /** Failed fd-count probe. The count is unknown — callers must NOT treat
40
+ * this as "low pressure" (it is "unknown pressure"). */
41
+ export interface FdCountFailed {
42
+ count: null;
43
+ method: FdCountMethod;
44
+ /**
45
+ * Machine-readable reason for branching. Each reason is paired with the
46
+ * matching {@link FdCountMethod} — `lsof_failed` only comes from the macOS
47
+ * probe, `proc_unreadable` only from the Linux probe, and
48
+ * `handle_count_failed` only from the Windows probe.
49
+ */
50
+ reason: "not_found" | "proc_unreadable" | "lsof_failed" | "handle_count_failed" | "unsupported_platform";
51
+ message: string;
52
+ }
53
+ export type FdCountResult = FdCountOk | FdCountFailed;
54
+ /** Coarse pressure state derived from `computeFdHeadroom`. */
55
+ export type FdPressureState = "ok" | "warn" | "critical" | "unknown";
56
+ /** Headroom metric against the Mono fd ceiling. */
57
+ export interface FdHeadroom {
58
+ /** Open fds / FD_CEILING, clamped to [0, 1] when count is known. */
59
+ pressureRatio: number;
60
+ /** FD_CEILING - count, clamped at 0. */
61
+ headroom: number;
62
+ /** The fixed ceiling (Mono ~1024). */
63
+ ceiling: number;
64
+ state: FdPressureState;
65
+ /** `false` when the underlying count was an approximation (Windows). */
66
+ reliable: boolean;
67
+ }
68
+ /**
69
+ * Injectable fd-count probe. Tests swap in a fake via the setter below so no
70
+ * `lsof` / `/proc` / PowerShell I/O runs in unit tests — same seam pattern as
71
+ * `UnityProcessScanner` / `ProcessKiller`.
72
+ */
73
+ export interface FdProbe {
74
+ count(pid: number): FdCountResult;
75
+ }
76
+ /** Read the active probe. Production callers use this via `countFileDescriptors`. */
77
+ export declare function getFdProbe(): FdProbe;
78
+ /**
79
+ * Install a fake probe for tests. Returns a restore function that re-binds the
80
+ * previous probe. Production code MUST NOT call this.
81
+ */
82
+ export declare function setFdProbeForTest(fake: FdProbe | null): () => void;
83
+ /**
84
+ * Count the open file descriptors for a live Unity PID. Never throws —
85
+ * failures (process gone, lsof/proc unreadable, unsupported platform) surface
86
+ * as `FdCountFailed`. The result's `method` records how the count was obtained
87
+ * so an agent can interpret the headroom math correctly (Windows
88
+ * `handle_count` is approximate).
89
+ *
90
+ * @param pid the live Unity PID (from `findUnityForProject`).
91
+ */
92
+ export declare function countFileDescriptors(pid: number): FdCountResult;
93
+ /**
94
+ * Pure headroom math against the fixed Mono fd ceiling. The OS soft limit
95
+ * (`ulimit -n`) is intentionally NOT used — it is a loose upper bound and is
96
+ * misleading for GUI-launched Unity on macOS (inherits `launchctl limit
97
+ * maxfiles`, not the shell ulimit).
98
+ *
99
+ * `null` count (probe failed) → `state: "unknown"` with `reliable: false`. An
100
+ * agent must NOT treat "unknown" as "ok"; it should surface the trend (if any
101
+ * prior samples exist) and tell the operator the live count could not be read.
102
+ */
103
+ export declare function computeFdHeadroom(count: number | null, approximate?: boolean): FdHeadroom;
104
+ /** One fd sample recorded in the session-scoped ring. */
105
+ export interface FdSample {
106
+ /** Wall-clock timestamp (ms since epoch). */
107
+ ts: number;
108
+ /** The Unity PID the sample was taken against. */
109
+ pid: number;
110
+ /** Open fd count at sample time (`null` when the probe failed). */
111
+ count: number | null;
112
+ }
113
+ /**
114
+ * Trend classification across successive fd samples. A monotonic climb across
115
+ * domain reloads is the leak signature — the agent should warn the operator to
116
+ * save + restart BEFORE the next reload trips the ceiling. Absolute count is
117
+ * NOT enough: a stable 600 fds is healthy; a climb 600 → 800 → 950 across
118
+ * three reloads is a leak in progress.
119
+ */
120
+ export type FdTrendState = "no_history" | "stable" | "rising" | "leaking" | "unknown";
121
+ export interface FdTrend {
122
+ state: FdTrendState;
123
+ /**
124
+ * First-to-last delta in fd count (negative for a leak — the count grew).
125
+ * `null` when there are fewer than two samples with known counts for the
126
+ * same PID.
127
+ */
128
+ delta: number | null;
129
+ /** Number of samples used for the trend (same-PID, known-count). */
130
+ sampleCount: number;
131
+ }
132
+ /**
133
+ * Pure trend detector over a sample list. Only considers samples with a known
134
+ * count for the SAME pid (a Unity restart changes the PID; the trend must not
135
+ * mix pre- and post-restart samples). A monotonic climb of ≥10% of the
136
+ * ceiling across ≥3 samples is `leaking`; a non-monotonic climb is `rising`;
137
+ * otherwise `stable`. Fewer than two usable samples → `no_history`.
138
+ */
139
+ export declare function analyzeFdTrend(samples: readonly FdSample[]): FdTrend;
140
+ /**
141
+ * Caveat string surfaced in the resource_pressure response so an agent (and
142
+ * the operator) understand the launch-context nuance: the Mono ceiling, not
143
+ * the OS soft limit, is the trip point; a GUI-launched Unity inherits
144
+ * `launchctl limit maxfiles` (macOS) rather than the shell's ulimit.
145
+ */
146
+ export declare const LAUNCH_CONTEXT_CAVEAT: string;
@@ -0,0 +1,333 @@
1
+ // M31 Plan 3 / T31.4 — Editor fd-exhaustion prediction (proactive fd-usage
2
+ // monitoring).
3
+ //
4
+ // Companion to `editor-process-control.ts` (the reactive kill half). Where the
5
+ // kill tool acts AFTER the Editor is hung, this module samples the live Unity
6
+ // process's file-descriptor count BEFORE exhaustion so an agent can warn the
7
+ // operator to save and restart while the bridge is still healthy. The bridge
8
+ // is the thing that dies on fd-exhaustion, so the probe MUST NOT depend on it
9
+ // — it runs server-side against the OS, exactly like the process scan in
10
+ // `running-unity.ts`.
11
+ //
12
+ // Threshold rationale (the plan's "Mono ceiling, not OS soft limit" point):
13
+ //
14
+ // Mono's IOSelector (kqueue/kevent on macOS/BSD, epoll on Linux) refuses to
15
+ // register a descriptor whose number crosses an internal ~1024 ceiling —
16
+ // that is the real trip point for the Bee build-driver hang. The OS
17
+ // `ulimit -n` soft limit is only a loose upper bound and is misleading on
18
+ // macOS: a GUI-launched Unity inherits `launchctl limit maxfiles`, not the
19
+ // MCP server's shell `ulimit`. So we measure headroom against the fixed
20
+ // Mono ceiling (FD_CEILING), not the variable OS limit.
21
+ //
22
+ // Cross-platform probe:
23
+ // - macOS: `lsof -p <pid>` (no /proc on macOS). Bounded execFileSync
24
+ // timeout; line count is the fd total. Heavy — callers cache briefly.
25
+ // - Linux: `readdirSync(/proc/<pid>/fd).length` (no shell-out).
26
+ // - Windows: `Get-Process -Id <pid>.HandleCount` (approximate — Windows
27
+ // handle count is broader than Unix fds; the threshold differs and the
28
+ // result is flagged `approximate: true`).
29
+ import { execFileSync } from "node:child_process";
30
+ import { readdirSync } from "node:fs";
31
+ /**
32
+ * Mono's internal file-descriptor ceiling — the real trip point for the Bee
33
+ * build-driver fd-exhaustion hang. Mono's IOSelector refuses to register a
34
+ * descriptor whose number crosses this (kqueue/kevent on macOS/BSD, epoll on
35
+ * Linux). The OS `ulimit -n` soft limit is only a loose upper bound and is
36
+ * misleading for a GUI-launched Unity on macOS (it inherits `launchctl limit
37
+ * maxfiles`, not the shell's ulimit). Documented in the tool response via
38
+ * `launchContextCaveat`.
39
+ */
40
+ export const FD_CEILING = 1024;
41
+ /**
42
+ * Headroom fraction (of FD_CEILING) at or below which the state is `warn`:
43
+ * the Editor is approaching the Mono ceiling and an agent should surface the
44
+ * trend so the operator can save + restart before the hang. ≥80% usage.
45
+ */
46
+ export const FD_WARN_RATIO = 0.8;
47
+ /**
48
+ * Headroom fraction at or below which the state is `critical`: the next
49
+ * domain reload is likely to trip the Bee build-driver hang. ≥90% usage.
50
+ */
51
+ export const FD_CRITICAL_RATIO = 0.9;
52
+ /** execFileSync timeout for the macOS `lsof` probe (ms). */
53
+ export const FD_PROBE_TIMEOUT_MS = 3_000;
54
+ // ---------------------------------------------------------------------------
55
+ // Platform-specific probe implementations.
56
+ // ---------------------------------------------------------------------------
57
+ /** macOS `lsof -p <pid>` scanner. Returns the line count (one line per fd). */
58
+ function probeMacos(pid) {
59
+ let stdout;
60
+ try {
61
+ stdout = execFileSync("lsof", ["-p", String(pid)], {
62
+ encoding: "utf8",
63
+ timeout: FD_PROBE_TIMEOUT_MS,
64
+ stdio: ["ignore", "pipe", "ignore"],
65
+ });
66
+ }
67
+ catch (err) {
68
+ const message = err instanceof Error ? err.message : String(err);
69
+ // lsof exits non-zero when the PID is gone. Treat that as not_found.
70
+ if (/no such file|exit code: 1/i.test(message)) {
71
+ return {
72
+ count: null,
73
+ method: "lsof",
74
+ reason: "not_found",
75
+ message: `lsof reported no process for PID ${pid}.`,
76
+ };
77
+ }
78
+ return {
79
+ count: null,
80
+ method: "lsof",
81
+ reason: "lsof_failed",
82
+ message: `lsof failed for PID ${pid}: ${message}`,
83
+ };
84
+ }
85
+ // `lsof -p <pid>` prints a header line ("COMMAND PID USER FD TYPE ...") then
86
+ // one line per open fd. Subtract the header. An empty/blank stdout means the
87
+ // PID vanished between the spawn and the read — treat as not_found.
88
+ const lines = stdout.split(/\r?\n/).filter((l) => l.length > 0);
89
+ if (lines.length === 0) {
90
+ return {
91
+ count: null,
92
+ method: "lsof",
93
+ reason: "not_found",
94
+ message: `lsof produced no output for PID ${pid}.`,
95
+ };
96
+ }
97
+ // Header is the first line; its FD column says "FD" literally. The rest are
98
+ // per-fd rows. Subtract 1 for the header.
99
+ return {
100
+ count: Math.max(0, lines.length - 1),
101
+ method: "lsof",
102
+ approximate: false,
103
+ };
104
+ }
105
+ /** Linux `/proc/<pid>/fd` directory entry count (no shell-out). */
106
+ function probeLinux(pid) {
107
+ let entries;
108
+ try {
109
+ entries = readdirSync(`/proc/${pid}/fd`);
110
+ }
111
+ catch (err) {
112
+ const code = err.code;
113
+ if (code === "ENOENT") {
114
+ return {
115
+ count: null,
116
+ method: "proc",
117
+ reason: "not_found",
118
+ message: `No /proc/${pid}/fd (process gone).`,
119
+ };
120
+ }
121
+ return {
122
+ count: null,
123
+ method: "proc",
124
+ reason: "proc_unreadable",
125
+ message: `Could not read /proc/${pid}/fd: ${err instanceof Error ? err.message : String(err)}`,
126
+ };
127
+ }
128
+ // `/proc/<pid>/fd` contains one entry per open fd (symbolic links). readdir
129
+ // returns the names — the count is the length.
130
+ return {
131
+ count: entries.length,
132
+ method: "proc",
133
+ approximate: false,
134
+ };
135
+ }
136
+ /** Windows `Get-Process -Id <pid>.HandleCount` (approximate). */
137
+ function probeWindows(pid) {
138
+ let stdout;
139
+ try {
140
+ stdout = execFileSync("powershell", [
141
+ "-NoProfile",
142
+ "-NonInteractive",
143
+ "-Command",
144
+ `(Get-Process -Id ${pid} -ErrorAction SilentlyContinue).HandleCount`,
145
+ ], {
146
+ encoding: "utf8",
147
+ windowsHide: true,
148
+ timeout: FD_PROBE_TIMEOUT_MS,
149
+ });
150
+ }
151
+ catch (err) {
152
+ return {
153
+ count: null,
154
+ method: "handle_count",
155
+ reason: "handle_count_failed",
156
+ message: `PowerShell handle-count probe failed for PID ${pid}: ${err instanceof Error ? err.message : String(err)}`,
157
+ };
158
+ }
159
+ const trimmed = stdout.trim();
160
+ if (trimmed.length === 0) {
161
+ return {
162
+ count: null,
163
+ method: "handle_count",
164
+ reason: "not_found",
165
+ message: `Get-Process reported no process for PID ${pid}.`,
166
+ };
167
+ }
168
+ const parsed = Number.parseInt(trimmed, 10);
169
+ if (!Number.isFinite(parsed) || parsed < 0) {
170
+ return {
171
+ count: null,
172
+ method: "handle_count",
173
+ reason: "handle_count_failed",
174
+ message: `Unparseable HandleCount '${trimmed}' for PID ${pid}.`,
175
+ };
176
+ }
177
+ return {
178
+ count: parsed,
179
+ method: "handle_count",
180
+ // Windows HandleCount includes kernel + GDI + user handles — broader
181
+ // than Unix fds. The headroom math still applies as a loose signal.
182
+ approximate: true,
183
+ };
184
+ }
185
+ const realProbe = {
186
+ count(pid) {
187
+ if (!Number.isInteger(pid) || pid <= 0) {
188
+ return {
189
+ count: null,
190
+ method: "lsof",
191
+ reason: "not_found",
192
+ message: `Invalid PID ${pid}.`,
193
+ };
194
+ }
195
+ if (process.platform === "darwin")
196
+ return probeMacos(pid);
197
+ if (process.platform === "linux")
198
+ return probeLinux(pid);
199
+ if (process.platform === "win32")
200
+ return probeWindows(pid);
201
+ return {
202
+ count: null,
203
+ method: "lsof",
204
+ reason: "unsupported_platform",
205
+ message: `fd-count probe is not implemented for platform '${process.platform}'.`,
206
+ };
207
+ },
208
+ };
209
+ // Mutable binding so tests can swap in a fake probe.
210
+ let currentProbe = realProbe;
211
+ /** Read the active probe. Production callers use this via `countFileDescriptors`. */
212
+ export function getFdProbe() {
213
+ return currentProbe;
214
+ }
215
+ /**
216
+ * Install a fake probe for tests. Returns a restore function that re-binds the
217
+ * previous probe. Production code MUST NOT call this.
218
+ */
219
+ export function setFdProbeForTest(fake) {
220
+ const prev = currentProbe;
221
+ currentProbe = fake ?? realProbe;
222
+ return () => {
223
+ currentProbe = prev;
224
+ };
225
+ }
226
+ /**
227
+ * Count the open file descriptors for a live Unity PID. Never throws —
228
+ * failures (process gone, lsof/proc unreadable, unsupported platform) surface
229
+ * as `FdCountFailed`. The result's `method` records how the count was obtained
230
+ * so an agent can interpret the headroom math correctly (Windows
231
+ * `handle_count` is approximate).
232
+ *
233
+ * @param pid the live Unity PID (from `findUnityForProject`).
234
+ */
235
+ export function countFileDescriptors(pid) {
236
+ return currentProbe.count(pid);
237
+ }
238
+ /**
239
+ * Pure headroom math against the fixed Mono fd ceiling. The OS soft limit
240
+ * (`ulimit -n`) is intentionally NOT used — it is a loose upper bound and is
241
+ * misleading for GUI-launched Unity on macOS (inherits `launchctl limit
242
+ * maxfiles`, not the shell ulimit).
243
+ *
244
+ * `null` count (probe failed) → `state: "unknown"` with `reliable: false`. An
245
+ * agent must NOT treat "unknown" as "ok"; it should surface the trend (if any
246
+ * prior samples exist) and tell the operator the live count could not be read.
247
+ */
248
+ export function computeFdHeadroom(count, approximate = false) {
249
+ if (count === null || !Number.isFinite(count)) {
250
+ return {
251
+ pressureRatio: 0,
252
+ headroom: FD_CEILING,
253
+ ceiling: FD_CEILING,
254
+ state: "unknown",
255
+ reliable: false,
256
+ };
257
+ }
258
+ const clamped = Math.max(0, count);
259
+ const pressureRatio = Math.min(1, clamped / FD_CEILING);
260
+ const headroom = Math.max(0, FD_CEILING - clamped);
261
+ let state;
262
+ if (approximate) {
263
+ // Windows HandleCount is naturally higher than Unix fds — only flag
264
+ // critical, never warn, so an agent does not over-react.
265
+ state = pressureRatio >= FD_CRITICAL_RATIO ? "critical" : "ok";
266
+ }
267
+ else if (pressureRatio >= FD_CRITICAL_RATIO) {
268
+ state = "critical";
269
+ }
270
+ else if (pressureRatio >= FD_WARN_RATIO) {
271
+ state = "warn";
272
+ }
273
+ else {
274
+ state = "ok";
275
+ }
276
+ return {
277
+ pressureRatio,
278
+ headroom,
279
+ ceiling: FD_CEILING,
280
+ state,
281
+ reliable: !approximate,
282
+ };
283
+ }
284
+ /**
285
+ * Pure trend detector over a sample list. Only considers samples with a known
286
+ * count for the SAME pid (a Unity restart changes the PID; the trend must not
287
+ * mix pre- and post-restart samples). A monotonic climb of ≥10% of the
288
+ * ceiling across ≥3 samples is `leaking`; a non-monotonic climb is `rising`;
289
+ * otherwise `stable`. Fewer than two usable samples → `no_history`.
290
+ */
291
+ export function analyzeFdTrend(samples) {
292
+ if (samples.length === 0) {
293
+ return { state: "no_history", delta: null, sampleCount: 0 };
294
+ }
295
+ // Take the tail for the most-recent PID (a restart changes the PID).
296
+ const lastPid = samples[samples.length - 1].pid;
297
+ const usable = samples.filter((s) => s.pid === lastPid && s.count !== null && Number.isFinite(s.count));
298
+ if (usable.length < 2) {
299
+ return { state: "no_history", delta: null, sampleCount: usable.length };
300
+ }
301
+ const first = usable[0].count;
302
+ const last = usable[usable.length - 1].count;
303
+ const delta = last - first;
304
+ // `rising` = strictly non-decreasing across all usable samples (each step
305
+ // ≥ the previous). `leaking` = rising AND the total climb is ≥10% of the
306
+ // Mono ceiling (a meaningful leak, not measurement noise).
307
+ let monotonic = true;
308
+ for (let i = 1; i < usable.length; i++) {
309
+ if (usable[i].count < usable[i - 1].count) {
310
+ monotonic = false;
311
+ break;
312
+ }
313
+ }
314
+ if (monotonic && delta >= FD_CEILING * 0.1) {
315
+ return { state: "leaking", delta, sampleCount: usable.length };
316
+ }
317
+ if (delta > 0) {
318
+ return { state: "rising", delta, sampleCount: usable.length };
319
+ }
320
+ return { state: "stable", delta, sampleCount: usable.length };
321
+ }
322
+ /**
323
+ * Caveat string surfaced in the resource_pressure response so an agent (and
324
+ * the operator) understand the launch-context nuance: the Mono ceiling, not
325
+ * the OS soft limit, is the trip point; a GUI-launched Unity inherits
326
+ * `launchctl limit maxfiles` (macOS) rather than the shell's ulimit.
327
+ */
328
+ export const LAUNCH_CONTEXT_CAVEAT = "Headroom is measured against Mono's internal ~1024 file-descriptor ceiling " +
329
+ "(the real trip point for the Bee build-driver hang), NOT the OS soft limit " +
330
+ "(ulimit -n / launchctl limit maxfiles). A GUI-launched Unity inherits the " +
331
+ "desktop environment's file limit, not the MCP server's shell limit, so the " +
332
+ "OS soft limit is only a loose upper bound.";
333
+ //# sourceMappingURL=process-diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-diagnostics.js","sourceRoot":"","sources":["../src/process-diagnostics.ts"],"names":[],"mappings":"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"}
@@ -8,3 +8,14 @@ import type { Tool } from "@modelcontextprotocol/sdk/types.js";
8
8
  * are preserved verbatim, including `undefined`/`null`.
9
9
  */
10
10
  export declare function withSchemaDefaults(tool: Tool, args: Record<string, unknown>): Record<string, unknown>;
11
+ /**
12
+ * M15 — validate that every field in the tool's `inputSchema.required` array is
13
+ * present (and not `undefined`/`null`) in `args`. The MCP SDK does not enforce
14
+ * `required`, so without this a missing required argument flows downstream as
15
+ * the literal `undefined` (e.g. `regression_check` without `baseline_path`
16
+ * spawns Unity with `--baseline-path undefined`).
17
+ *
18
+ * @returns the list of missing required field names (empty when all present).
19
+ * The caller decides how to surface the error.
20
+ */
21
+ export declare function missingRequiredArgs(tool: Tool, args: Record<string, unknown>): string[];
@@ -1,4 +1,4 @@
1
- // Schema-default injection.
1
+ // Schema-default injection + required-argument validation.
2
2
  //
3
3
  // MCP JSON-Schema documents advertise per-property `default` values (e.g.
4
4
  // `run_tests` documents `timeout_ms` default 60000). Those defaults are advisory:
@@ -13,6 +13,13 @@
13
13
  // any missing top-level argument whose property declares a scalar `default`
14
14
  // before dispatching. This keeps client-supplied values authoritative and only
15
15
  // ever adds missing fields.
16
+ //
17
+ // M15 — the MCP SDK does NOT validate `inputSchema.required`: an agent can call
18
+ // `regression_check` without `baseline_path` (declared required) and the value
19
+ // reaches the bridge / batch spawn as the literal `undefined`, e.g. Unity is
20
+ // spawned with `--baseline-path undefined`. validateRequiredArgs closes that
21
+ // gap by checking the schema's `required` array up front and returning a stable
22
+ // `missing_required_argument` error listing every missing field.
16
23
  function isScalarDefault(value) {
17
24
  return (typeof value === "number" ||
18
25
  typeof value === "boolean" ||
@@ -40,4 +47,28 @@ export function withSchemaDefaults(tool, args) {
40
47
  }
41
48
  return out;
42
49
  }
50
+ /**
51
+ * M15 — validate that every field in the tool's `inputSchema.required` array is
52
+ * present (and not `undefined`/`null`) in `args`. The MCP SDK does not enforce
53
+ * `required`, so without this a missing required argument flows downstream as
54
+ * the literal `undefined` (e.g. `regression_check` without `baseline_path`
55
+ * spawns Unity with `--baseline-path undefined`).
56
+ *
57
+ * @returns the list of missing required field names (empty when all present).
58
+ * The caller decides how to surface the error.
59
+ */
60
+ export function missingRequiredArgs(tool, args) {
61
+ const required = tool.inputSchema?.required;
62
+ if (!Array.isArray(required) || required.length === 0)
63
+ return [];
64
+ const missing = [];
65
+ for (const field of required) {
66
+ if (typeof field !== "string")
67
+ continue;
68
+ const v = args[field];
69
+ if (v === undefined || v === null)
70
+ missing.push(field);
71
+ }
72
+ return missing;
73
+ }
43
74
  //# sourceMappingURL=schema-defaults.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-defaults.js","sourceRoot":"","sources":["../src/schema-defaults.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,EAAE;AACF,0EAA0E;AAC1E,kFAAkF;AAClF,8EAA8E;AAC9E,8EAA8E;AAC9E,0EAA0E;AAC1E,0EAA0E;AAC1E,oEAAoE;AACpE,6CAA6C;AAC7C,EAAE;AACF,+EAA+E;AAC/E,4EAA4E;AAC5E,+EAA+E;AAC/E,4BAA4B;AAY5B,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,SAAS;QAC1B,OAAO,KAAK,KAAK,QAAQ,CAC1B,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAU,EACV,IAA6B;IAE7B,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,UAExB,CAAC;IACd,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;IAEpC,MAAM,GAAG,GAA4B,EAAE,GAAG,IAAI,EAAE,CAAC;IACjD,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,IAAI,GAAG,IAAI,GAAG;YAAE,SAAS;QACzB,MAAM,GAAG,GAAG,MAAM,EAAE,OAAO,CAAC;QAC5B,IAAI,eAAe,CAAC,GAAG,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAC3C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"schema-defaults.js","sourceRoot":"","sources":["../src/schema-defaults.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,EAAE;AACF,0EAA0E;AAC1E,kFAAkF;AAClF,8EAA8E;AAC9E,8EAA8E;AAC9E,0EAA0E;AAC1E,0EAA0E;AAC1E,oEAAoE;AACpE,6CAA6C;AAC7C,EAAE;AACF,+EAA+E;AAC/E,4EAA4E;AAC5E,+EAA+E;AAC/E,4BAA4B;AAC5B,EAAE;AACF,gFAAgF;AAChF,+EAA+E;AAC/E,6EAA6E;AAC7E,6EAA6E;AAC7E,gFAAgF;AAChF,iEAAiE;AAYjE,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,SAAS;QAC1B,OAAO,KAAK,KAAK,QAAQ,CAC1B,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAU,EACV,IAA6B;IAE7B,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,UAExB,CAAC;IACd,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;IAEpC,MAAM,GAAG,GAA4B,EAAE,GAAG,IAAI,EAAE,CAAC;IACjD,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,IAAI,GAAG,IAAI,GAAG;YAAE,SAAS;QACzB,MAAM,GAAG,GAAG,MAAM,EAAE,OAAO,CAAC;QAC5B,IAAI,eAAe,CAAC,GAAG,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAC3C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAU,EACV,IAA6B;IAE7B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACjE,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAS;QACxC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -51,8 +51,13 @@ export function buildServerInstructions() {
51
51
  "`unity_open_mcp_*` tools route through the live bridge (or fall back to a",
52
52
  "headless batch Unity / offline disk parsers); `unity_senses_*` tools are",
53
53
  "live-only and never batch. Call `unity_open_mcp_capabilities` first to",
54
- "learn the full surface, then `unity_open_mcp_manage_tools(action=\"list_groups\")`",
55
- "to see which tool groups are compiled in and active.",
54
+ "learn the full surface, then activate the tools you need. Prefer the",
55
+ "intent path `unity_open_mcp_manage_tools(action=\"activate_for\",",
56
+ "intent=\"…\")` over hand-picking group ids — state what you are about to",
57
+ "do and the server brings the right groups online in one call (use",
58
+ "action=\"suggest\" with the same intent/tags to preview without changing",
59
+ "state). `action=\"list_groups\"` lists every group with its active flag,",
60
+ "compiled-state availability, and tool roster.",
56
61
  "",
57
62
  "PAYLOAD SIZING & PAGING (avoid flooding context)",
58
63
  "- The heavy tools (`read_asset`, `search_assets`, `scene_get_data`,",
@@ -1 +1 @@
1
- {"version":3,"file":"server-instructions.js","sourceRoot":"","sources":["../src/server-instructions.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,gDAAgD;AAChD,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,uEAAuE;AACvE,wEAAwE;AACxE,2EAA2E;AAC3E,yEAAyE;AACzE,6EAA6E;AAC7E,sEAAsE;AACtE,EAAE;AACF,sEAAsE;AACtE,8EAA8E;AAC9E,+EAA+E;AAC/E,wDAAwD;AACxD,EAAE;AACF,4EAA4E;AAC5E,4DAA4D;AAE5D,6EAA6E;AAC7E,wEAAwE;AACxE,EAAE;AACF,0EAA0E;AAC1E,6EAA6E;AAC7E,+DAA+D;AAC/D,MAAM,2BAA2B,GAAa;IAC5C,kBAAkB,EAAE,uBAAuB;IAC3C,oBAAoB,EAAE,qBAAqB;IAC3C,UAAU;IACV,iBAAiB;IACjB,iBAAiB;IACjB,mBAAmB;IACnB,uBAAuB;IACvB,oBAAoB;IACpB,gBAAgB;IAChB,qBAAqB;IACrB,aAAa;IACb,SAAS;CACV,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,oEAAoE;QACpE,2EAA2E;QAC3E,0EAA0E;QAC1E,wEAAwE;QACxE,oFAAoF;QACpF,sDAAsD;QACtD,EAAE;QACF,kDAAkD;QAClD,qEAAqE;QACrE,0EAA0E;QAC1E,4EAA4E;QAC5E,wEAAwE;QACxE,yEAAyE;QACzE,4EAA4E;QAC5E,2EAA2E;QAC3E,4EAA4E;QAC5E,kEAAkE;QAClE,8EAA8E;QAC9E,oEAAoE;QACpE,sEAAsE;QACtE,gCAAgC;QAChC,yEAAyE;QACzE,wEAAwE;QACxE,gCAAgC;QAChC,EAAE;QACF,sDAAsD;QACtD,iEAAiE;QACjE,2EAA2E;QAC3E,eAAe;QACf,4EAA4E;QAC5E,+DAA+D;QAC/D,2DAA2D;QAC3D,6DAA6D;QAC7D,2EAA2E;QAC3E,yEAAyE;QACzE,uEAAuE;QACvE,4EAA4E;QAC5E,EAAE;QACF,qBAAqB;QACrB,mEAAmE;QACnE,6DAA6D;QAC7D,uEAAuE;QACvE,yEAAyE;QACzE,8CAA8C;QAC9C,uEAAuE;QACvE,uEAAuE;QACvE,4EAA4E;QAC5E,wEAAwE;QACxE,0EAA0E;QAC1E,0EAA0E;QAC1E,EAAE;QACF,mBAAmB;QACnB,wEAAwE;QACxE,4EAA4E;QAC5E,6CAA6C;QAC7C,qEAAqE;QACrE,wEAAwE;QACxE,yEAAyE;QACzE,wDAAwD;QACxD,yEAAyE;QACzE,2EAA2E;QAC3E,kDAAkD;QAClD,EAAE;QACF,kBAAkB;QAClB,mEAAmE;QACnE,uDAAuD;KACxD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,IAAI,MAAM,GAAkB,IAAI,CAAC;AAEjC;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,GAAG,uBAAuB,EAAE,CAAC;IACrC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gCAAgC,CAAC,IAAY;IAC3D,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,OAAO,IAAI,2BAA2B,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,KAAK;YAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"server-instructions.js","sourceRoot":"","sources":["../src/server-instructions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
2
+ /**
3
+ * Resolve env for the MCP server. UNITY_PROJECT_PATH is mandatory. The port
4
+ * uses M13 T4.3 instance discovery:
5
+ * 1. UNITY_OPEN_MCP_BRIDGE_PORT env var (override wins; users who pin a
6
+ * port keep working as before)
7
+ * 2. ~/.unity-open-mcp/instances/<hash>.json lock file (when its pid is alive)
8
+ * 3. deterministic hash of the project path (20000 + sha256 % 10000)
9
+ * The resolved port is logged so users can see which bridge was picked.
10
+ */
11
+ export declare function getEnv(): {
12
+ projectPath: string;
13
+ port: number;
14
+ authToken?: string;
15
+ envPort?: number;
16
+ };
17
+ export declare function createServer(projectPath: string, port: number, authToken?: string, envPort?: number): Server;