@alpsckr/unitycli 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1066) hide show
  1. package/README.md +389 -0
  2. package/contracts/command-contract.json +3972 -0
  3. package/contracts/stable-session/admission-acquire-v1.schema.json +16 -0
  4. package/contracts/stable-session/admission-response-v1.schema.json +30 -0
  5. package/contracts/stable-session/admission-revoke-v1.schema.json +15 -0
  6. package/contracts/stable-session/admission-transport-v1.json +36 -0
  7. package/contracts/stable-session/bridge-request-v2.schema.json +26 -0
  8. package/contracts/stable-session/canonical-path-v1-golden.json +23 -0
  9. package/contracts/stable-session/completion-contract.schema.json +46 -0
  10. package/contracts/stable-session/direct-call-semantics.json +102 -0
  11. package/contracts/stable-session/editor-state.schema.json +92 -0
  12. package/contracts/stable-session/health-v3.schema.json +47 -0
  13. package/contracts/stable-session/instance-registry-v3.schema.json +152 -0
  14. package/contracts/stable-session/removal-map.json +27 -0
  15. package/contracts/stable-session/request-digest-v1-golden.json +7 -0
  16. package/contracts/stable-session/runtime-config-v2.schema.json +27 -0
  17. package/contracts/static-capability-catalog.json +48226 -0
  18. package/contracts/tool-completion-contract.json +11322 -0
  19. package/dist/args.d.ts +27 -0
  20. package/dist/args.js +109 -0
  21. package/dist/args.js.map +1 -0
  22. package/dist/bridge/admission.d.ts +28 -0
  23. package/dist/bridge/admission.js +29 -0
  24. package/dist/bridge/admission.js.map +1 -0
  25. package/dist/bridge/args.d.ts +16 -0
  26. package/dist/bridge/args.js +123 -0
  27. package/dist/bridge/args.js.map +1 -0
  28. package/dist/bridge/domains/animation.d.ts +2 -0
  29. package/dist/bridge/domains/animation.js +199 -0
  30. package/dist/bridge/domains/animation.js.map +1 -0
  31. package/dist/bridge/domains/asset.d.ts +2 -0
  32. package/dist/bridge/domains/asset.js +85 -0
  33. package/dist/bridge/domains/asset.js.map +1 -0
  34. package/dist/bridge/domains/build.d.ts +2 -0
  35. package/dist/bridge/domains/build.js +35 -0
  36. package/dist/bridge/domains/build.js.map +1 -0
  37. package/dist/bridge/domains/camera.d.ts +2 -0
  38. package/dist/bridge/domains/camera.js +54 -0
  39. package/dist/bridge/domains/camera.js.map +1 -0
  40. package/dist/bridge/domains/code.d.ts +2 -0
  41. package/dist/bridge/domains/code.js +17 -0
  42. package/dist/bridge/domains/code.js.map +1 -0
  43. package/dist/bridge/domains/console.d.ts +2 -0
  44. package/dist/bridge/domains/console.js +34 -0
  45. package/dist/bridge/domains/console.js.map +1 -0
  46. package/dist/bridge/domains/diagnose.d.ts +2 -0
  47. package/dist/bridge/domains/diagnose.js +11 -0
  48. package/dist/bridge/domains/diagnose.js.map +1 -0
  49. package/dist/bridge/domains/editor.d.ts +2 -0
  50. package/dist/bridge/domains/editor.js +66 -0
  51. package/dist/bridge/domains/editor.js.map +1 -0
  52. package/dist/bridge/domains/extension.d.ts +8 -0
  53. package/dist/bridge/domains/extension.js +20 -0
  54. package/dist/bridge/domains/extension.js.map +1 -0
  55. package/dist/bridge/domains/game-object.d.ts +2 -0
  56. package/dist/bridge/domains/game-object.js +179 -0
  57. package/dist/bridge/domains/game-object.js.map +1 -0
  58. package/dist/bridge/domains/graphics.d.ts +2 -0
  59. package/dist/bridge/domains/graphics.js +185 -0
  60. package/dist/bridge/domains/graphics.js.map +1 -0
  61. package/dist/bridge/domains/material.d.ts +2 -0
  62. package/dist/bridge/domains/material.js +70 -0
  63. package/dist/bridge/domains/material.js.map +1 -0
  64. package/dist/bridge/domains/navmesh.d.ts +2 -0
  65. package/dist/bridge/domains/navmesh.js +34 -0
  66. package/dist/bridge/domains/navmesh.js.map +1 -0
  67. package/dist/bridge/domains/object.d.ts +2 -0
  68. package/dist/bridge/domains/object.js +43 -0
  69. package/dist/bridge/domains/object.js.map +1 -0
  70. package/dist/bridge/domains/occlusion.d.ts +2 -0
  71. package/dist/bridge/domains/occlusion.js +12 -0
  72. package/dist/bridge/domains/occlusion.js.map +1 -0
  73. package/dist/bridge/domains/package.d.ts +2 -0
  74. package/dist/bridge/domains/package.js +2 -0
  75. package/dist/bridge/domains/package.js.map +1 -0
  76. package/dist/bridge/domains/physics.d.ts +2 -0
  77. package/dist/bridge/domains/physics.js +139 -0
  78. package/dist/bridge/domains/physics.js.map +1 -0
  79. package/dist/bridge/domains/prefab.d.ts +2 -0
  80. package/dist/bridge/domains/prefab.js +104 -0
  81. package/dist/bridge/domains/prefab.js.map +1 -0
  82. package/dist/bridge/domains/profiler.d.ts +2 -0
  83. package/dist/bridge/domains/profiler.js +105 -0
  84. package/dist/bridge/domains/profiler.js.map +1 -0
  85. package/dist/bridge/domains/project-tool.d.ts +2 -0
  86. package/dist/bridge/domains/project-tool.js +46 -0
  87. package/dist/bridge/domains/project-tool.js.map +1 -0
  88. package/dist/bridge/domains/reflection.d.ts +2 -0
  89. package/dist/bridge/domains/reflection.js +48 -0
  90. package/dist/bridge/domains/reflection.js.map +1 -0
  91. package/dist/bridge/domains/runtime-tool.d.ts +2 -0
  92. package/dist/bridge/domains/runtime-tool.js +48 -0
  93. package/dist/bridge/domains/runtime-tool.js.map +1 -0
  94. package/dist/bridge/domains/scene.d.ts +2 -0
  95. package/dist/bridge/domains/scene.js +100 -0
  96. package/dist/bridge/domains/scene.js.map +1 -0
  97. package/dist/bridge/domains/screenshot.d.ts +2 -0
  98. package/dist/bridge/domains/screenshot.js +85 -0
  99. package/dist/bridge/domains/screenshot.js.map +1 -0
  100. package/dist/bridge/domains/scriptable-object.d.ts +2 -0
  101. package/dist/bridge/domains/scriptable-object.js +53 -0
  102. package/dist/bridge/domains/scriptable-object.js.map +1 -0
  103. package/dist/bridge/domains/shader.d.ts +2 -0
  104. package/dist/bridge/domains/shader.js +66 -0
  105. package/dist/bridge/domains/shader.js.map +1 -0
  106. package/dist/bridge/domains/texture.d.ts +2 -0
  107. package/dist/bridge/domains/texture.js +78 -0
  108. package/dist/bridge/domains/texture.js.map +1 -0
  109. package/dist/bridge/domains/timeline.d.ts +2 -0
  110. package/dist/bridge/domains/timeline.js +75 -0
  111. package/dist/bridge/domains/timeline.js.map +1 -0
  112. package/dist/bridge/domains/ui.d.ts +2 -0
  113. package/dist/bridge/domains/ui.js +193 -0
  114. package/dist/bridge/domains/ui.js.map +1 -0
  115. package/dist/bridge/index.d.ts +9 -0
  116. package/dist/bridge/index.js +124 -0
  117. package/dist/bridge/index.js.map +1 -0
  118. package/dist/bridge/registry.d.ts +19 -0
  119. package/dist/bridge/registry.js +114 -0
  120. package/dist/bridge/registry.js.map +1 -0
  121. package/dist/bridge/session-supervisor.d.ts +138 -0
  122. package/dist/bridge/session-supervisor.js +873 -0
  123. package/dist/bridge/session-supervisor.js.map +1 -0
  124. package/dist/bridge/types.d.ts +61 -0
  125. package/dist/bridge/types.js +17 -0
  126. package/dist/bridge/types.js.map +1 -0
  127. package/dist/capabilities.d.ts +5 -0
  128. package/dist/capabilities.js +84 -0
  129. package/dist/capabilities.js.map +1 -0
  130. package/dist/cli-commands/command.d.ts +7 -0
  131. package/dist/cli-commands/command.js +513 -0
  132. package/dist/cli-commands/command.js.map +1 -0
  133. package/dist/cli-commands/extension-auto-detect.d.ts +62 -0
  134. package/dist/cli-commands/extension-auto-detect.js +119 -0
  135. package/dist/cli-commands/extension-auto-detect.js.map +1 -0
  136. package/dist/cli-commands/extensions.d.ts +24 -0
  137. package/dist/cli-commands/extensions.js +428 -0
  138. package/dist/cli-commands/extensions.js.map +1 -0
  139. package/dist/cli-commands/package.d.ts +4 -0
  140. package/dist/cli-commands/package.js +151 -0
  141. package/dist/cli-commands/package.js.map +1 -0
  142. package/dist/cli-commands/skill-installer.d.ts +83 -0
  143. package/dist/cli-commands/skill-installer.js +703 -0
  144. package/dist/cli-commands/skill-installer.js.map +1 -0
  145. package/dist/cli-commands/types.d.ts +17 -0
  146. package/dist/cli-commands/types.js +2 -0
  147. package/dist/cli-commands/types.js.map +1 -0
  148. package/dist/cli.d.ts +17 -0
  149. package/dist/cli.js +302 -0
  150. package/dist/cli.js.map +1 -0
  151. package/dist/contracts/command-contract.d.ts +21 -0
  152. package/dist/contracts/command-contract.js +143 -0
  153. package/dist/contracts/command-contract.js.map +1 -0
  154. package/dist/contracts/csharp-command-extractor.d.ts +1 -0
  155. package/dist/contracts/csharp-command-extractor.js +89 -0
  156. package/dist/contracts/csharp-command-extractor.js.map +1 -0
  157. package/dist/contracts/validate-command-contract.d.ts +1 -0
  158. package/dist/contracts/validate-command-contract.js +86 -0
  159. package/dist/contracts/validate-command-contract.js.map +1 -0
  160. package/dist/doctor.d.ts +22 -0
  161. package/dist/doctor.js +498 -0
  162. package/dist/doctor.js.map +1 -0
  163. package/dist/editor-blocker-observer.d.ts +45 -0
  164. package/dist/editor-blocker-observer.js +55 -0
  165. package/dist/editor-blocker-observer.js.map +1 -0
  166. package/dist/editor-dialogs.d.ts +53 -0
  167. package/dist/editor-dialogs.js +79 -0
  168. package/dist/editor-dialogs.js.map +1 -0
  169. package/dist/extension-availability.d.ts +30 -0
  170. package/dist/extension-availability.js +83 -0
  171. package/dist/extension-availability.js.map +1 -0
  172. package/dist/extensions/.generated-bridge-domains/cinemachine.d.ts +2 -0
  173. package/dist/extensions/.generated-bridge-domains/cinemachine.js +104 -0
  174. package/dist/extensions/.generated-bridge-domains/cinemachine.js.map +1 -0
  175. package/dist/extensions/.generated-bridge-domains/hdrp.d.ts +2 -0
  176. package/dist/extensions/.generated-bridge-domains/hdrp.js +35 -0
  177. package/dist/extensions/.generated-bridge-domains/hdrp.js.map +1 -0
  178. package/dist/extensions/.generated-bridge-domains/probuilder.d.ts +13 -0
  179. package/dist/extensions/.generated-bridge-domains/probuilder.js +342 -0
  180. package/dist/extensions/.generated-bridge-domains/probuilder.js.map +1 -0
  181. package/dist/extensions/.generated-bridge-domains/urp.d.ts +2 -0
  182. package/dist/extensions/.generated-bridge-domains/urp.js +52 -0
  183. package/dist/extensions/.generated-bridge-domains/urp.js.map +1 -0
  184. package/dist/extensions/.generated-bridge-domains/vfx.d.ts +2 -0
  185. package/dist/extensions/.generated-bridge-domains/vfx.js +312 -0
  186. package/dist/extensions/.generated-bridge-domains/vfx.js.map +1 -0
  187. package/dist/extensions/.generated-registry-data.d.ts +7 -0
  188. package/dist/extensions/.generated-registry-data.js +895 -0
  189. package/dist/extensions/.generated-registry-data.js.map +1 -0
  190. package/dist/extensions/contribution-loader.d.ts +27 -0
  191. package/dist/extensions/contribution-loader.js +60 -0
  192. package/dist/extensions/contribution-loader.js.map +1 -0
  193. package/dist/extensions/descriptor-loader.d.ts +73 -0
  194. package/dist/extensions/descriptor-loader.js +126 -0
  195. package/dist/extensions/descriptor-loader.js.map +1 -0
  196. package/dist/extensions/index.d.ts +19 -0
  197. package/dist/extensions/index.js +23 -0
  198. package/dist/extensions/index.js.map +1 -0
  199. package/dist/extensions/installer.d.ts +80 -0
  200. package/dist/extensions/installer.js +594 -0
  201. package/dist/extensions/installer.js.map +1 -0
  202. package/dist/extensions/metadata/index.d.ts +15 -0
  203. package/dist/extensions/metadata/index.js +41 -0
  204. package/dist/extensions/metadata/index.js.map +1 -0
  205. package/dist/extensions/metadata/types.d.ts +38 -0
  206. package/dist/extensions/metadata/types.js +11 -0
  207. package/dist/extensions/metadata/types.js.map +1 -0
  208. package/dist/extensions/project-resolver.d.ts +35 -0
  209. package/dist/extensions/project-resolver.js +61 -0
  210. package/dist/extensions/project-resolver.js.map +1 -0
  211. package/dist/extensions/registry.d.ts +86 -0
  212. package/dist/extensions/registry.js +262 -0
  213. package/dist/extensions/registry.js.map +1 -0
  214. package/dist/extensions/tool-manifest.d.ts +29 -0
  215. package/dist/extensions/tool-manifest.js +53 -0
  216. package/dist/extensions/tool-manifest.js.map +1 -0
  217. package/dist/extensions/types.d.ts +115 -0
  218. package/dist/extensions/types.js +12 -0
  219. package/dist/extensions/types.js.map +1 -0
  220. package/dist/instances.d.ts +163 -0
  221. package/dist/instances.js +1137 -0
  222. package/dist/instances.js.map +1 -0
  223. package/dist/output.d.ts +119 -0
  224. package/dist/output.js +204 -0
  225. package/dist/output.js.map +1 -0
  226. package/dist/package-manager.d.ts +280 -0
  227. package/dist/package-manager.js +1832 -0
  228. package/dist/package-manager.js.map +1 -0
  229. package/dist/platform.d.ts +3 -0
  230. package/dist/platform.js +19 -0
  231. package/dist/platform.js.map +1 -0
  232. package/dist/project-identity.d.ts +48 -0
  233. package/dist/project-identity.js +254 -0
  234. package/dist/project-identity.js.map +1 -0
  235. package/dist/project-tool-discovery.d.ts +23 -0
  236. package/dist/project-tool-discovery.js +292 -0
  237. package/dist/project-tool-discovery.js.map +1 -0
  238. package/dist/protocol/envelope.d.ts +64 -0
  239. package/dist/protocol/envelope.js +8 -0
  240. package/dist/protocol/envelope.js.map +1 -0
  241. package/dist/protocol/index.d.ts +7 -0
  242. package/dist/protocol/index.js +2 -0
  243. package/dist/protocol/index.js.map +1 -0
  244. package/dist/runtime-code.d.ts +20 -0
  245. package/dist/runtime-code.js +232 -0
  246. package/dist/runtime-code.js.map +1 -0
  247. package/dist/schema/any-json.d.ts +4 -0
  248. package/dist/schema/any-json.js +2 -0
  249. package/dist/schema/any-json.js.map +1 -0
  250. package/dist/schema/validator.d.ts +7 -0
  251. package/dist/schema/validator.js +135 -0
  252. package/dist/schema/validator.js.map +1 -0
  253. package/dist/services/docs-reflect-cache.d.ts +106 -0
  254. package/dist/services/docs-reflect-cache.js +301 -0
  255. package/dist/services/docs-reflect-cache.js.map +1 -0
  256. package/dist/services/docs-service.d.ts +16 -0
  257. package/dist/services/docs-service.js +208 -0
  258. package/dist/services/docs-service.js.map +1 -0
  259. package/dist/services/reflect-service.d.ts +12 -0
  260. package/dist/services/reflect-service.js +122 -0
  261. package/dist/services/reflect-service.js.map +1 -0
  262. package/dist/static-capability-catalog.d.ts +13 -0
  263. package/dist/static-capability-catalog.js +41 -0
  264. package/dist/static-capability-catalog.js.map +1 -0
  265. package/dist/test-results.d.ts +13 -0
  266. package/dist/test-results.js +44 -0
  267. package/dist/test-results.js.map +1 -0
  268. package/dist/tools/.generated-completion-registry.d.ts +17 -0
  269. package/dist/tools/.generated-completion-registry.js +5862 -0
  270. package/dist/tools/.generated-completion-registry.js.map +1 -0
  271. package/dist/tools/.generated-registry.d.ts +53 -0
  272. package/dist/tools/.generated-registry.js +55 -0
  273. package/dist/tools/.generated-registry.js.map +1 -0
  274. package/dist/tools/.generated-schemas.d.ts +1 -0
  275. package/dist/tools/.generated-schemas.js +56 -0
  276. package/dist/tools/.generated-schemas.js.map +1 -0
  277. package/dist/tools/asset/refresh.d.ts +26 -0
  278. package/dist/tools/asset/refresh.js +97 -0
  279. package/dist/tools/asset/refresh.js.map +1 -0
  280. package/dist/tools/build/run.d.ts +45 -0
  281. package/dist/tools/build/run.js +115 -0
  282. package/dist/tools/build/run.js.map +1 -0
  283. package/dist/tools/catalog.d.ts +33 -0
  284. package/dist/tools/catalog.js +202 -0
  285. package/dist/tools/catalog.js.map +1 -0
  286. package/dist/tools/code/exec.d.ts +53 -0
  287. package/dist/tools/code/exec.js +59 -0
  288. package/dist/tools/code/exec.js.map +1 -0
  289. package/dist/tools/commands.d.ts +5 -0
  290. package/dist/tools/commands.js +45 -0
  291. package/dist/tools/commands.js.map +1 -0
  292. package/dist/tools/completion-probe.d.ts +22 -0
  293. package/dist/tools/completion-probe.js +2 -0
  294. package/dist/tools/completion-probe.js.map +1 -0
  295. package/dist/tools/define.d.ts +77 -0
  296. package/dist/tools/define.js +58 -0
  297. package/dist/tools/define.js.map +1 -0
  298. package/dist/tools/diagnose/capabilities.d.ts +13 -0
  299. package/dist/tools/diagnose/capabilities.js +34 -0
  300. package/dist/tools/diagnose/capabilities.js.map +1 -0
  301. package/dist/tools/dispatcher.d.ts +27 -0
  302. package/dist/tools/dispatcher.js +971 -0
  303. package/dist/tools/dispatcher.js.map +1 -0
  304. package/dist/tools/docs/get.d.ts +22 -0
  305. package/dist/tools/docs/get.js +22 -0
  306. package/dist/tools/docs/get.js.map +1 -0
  307. package/dist/tools/docs/search.d.ts +31 -0
  308. package/dist/tools/docs/search.js +22 -0
  309. package/dist/tools/docs/search.js.map +1 -0
  310. package/dist/tools/editor/compile.d.ts +66 -0
  311. package/dist/tools/editor/compile.js +225 -0
  312. package/dist/tools/editor/compile.js.map +1 -0
  313. package/dist/tools/editor/dialog/click.d.ts +12 -0
  314. package/dist/tools/editor/dialog/click.js +71 -0
  315. package/dist/tools/editor/dialog/click.js.map +1 -0
  316. package/dist/tools/editor/dialogs.d.ts +12 -0
  317. package/dist/tools/editor/dialogs.js +58 -0
  318. package/dist/tools/editor/dialogs.js.map +1 -0
  319. package/dist/tools/editor/readiness.d.ts +13 -0
  320. package/dist/tools/editor/readiness.js +24 -0
  321. package/dist/tools/editor/readiness.js.map +1 -0
  322. package/dist/tools/editor/refresh.d.ts +25 -0
  323. package/dist/tools/editor/refresh.js +154 -0
  324. package/dist/tools/editor/refresh.js.map +1 -0
  325. package/dist/tools/editor/state.d.ts +63 -0
  326. package/dist/tools/editor/state.js +286 -0
  327. package/dist/tools/editor/state.js.map +1 -0
  328. package/dist/tools/errors.d.ts +30 -0
  329. package/dist/tools/errors.js +46 -0
  330. package/dist/tools/errors.js.map +1 -0
  331. package/dist/tools/metadata/derived.d.ts +34 -0
  332. package/dist/tools/metadata/derived.js +136 -0
  333. package/dist/tools/metadata/derived.js.map +1 -0
  334. package/dist/tools/metadata/index.d.ts +34 -0
  335. package/dist/tools/metadata/index.js +130 -0
  336. package/dist/tools/metadata/index.js.map +1 -0
  337. package/dist/tools/metadata/schemas.d.ts +3 -0
  338. package/dist/tools/metadata/schemas.js +19 -0
  339. package/dist/tools/metadata/schemas.js.map +1 -0
  340. package/dist/tools/metadata/status.d.ts +4 -0
  341. package/dist/tools/metadata/status.js +61 -0
  342. package/dist/tools/metadata/status.js.map +1 -0
  343. package/dist/tools/metadata/types.d.ts +79 -0
  344. package/dist/tools/metadata/types.js +2 -0
  345. package/dist/tools/metadata/types.js.map +1 -0
  346. package/dist/tools/navmesh/bake-cancel.d.ts +7 -0
  347. package/dist/tools/navmesh/bake-cancel.js +21 -0
  348. package/dist/tools/navmesh/bake-cancel.js.map +1 -0
  349. package/dist/tools/navmesh/bake-status.d.ts +5 -0
  350. package/dist/tools/navmesh/bake-status.js +18 -0
  351. package/dist/tools/navmesh/bake-status.js.map +1 -0
  352. package/dist/tools/navmesh/bake.d.ts +5 -0
  353. package/dist/tools/navmesh/bake.js +23 -0
  354. package/dist/tools/navmesh/bake.js.map +1 -0
  355. package/dist/tools/navmesh/live.d.ts +86 -0
  356. package/dist/tools/navmesh/live.js +206 -0
  357. package/dist/tools/navmesh/live.js.map +1 -0
  358. package/dist/tools/navmesh/surface-bake.d.ts +5 -0
  359. package/dist/tools/navmesh/surface-bake.js +24 -0
  360. package/dist/tools/navmesh/surface-bake.js.map +1 -0
  361. package/dist/tools/occlusion/bake-cancel.d.ts +7 -0
  362. package/dist/tools/occlusion/bake-cancel.js +21 -0
  363. package/dist/tools/occlusion/bake-cancel.js.map +1 -0
  364. package/dist/tools/occlusion/bake-status.d.ts +5 -0
  365. package/dist/tools/occlusion/bake-status.js +18 -0
  366. package/dist/tools/occlusion/bake-status.js.map +1 -0
  367. package/dist/tools/occlusion/bake.d.ts +11 -0
  368. package/dist/tools/occlusion/bake.js +23 -0
  369. package/dist/tools/occlusion/bake.js.map +1 -0
  370. package/dist/tools/occlusion/live.d.ts +74 -0
  371. package/dist/tools/occlusion/live.js +201 -0
  372. package/dist/tools/occlusion/live.js.map +1 -0
  373. package/dist/tools/package/bridge-remove.d.ts +26 -0
  374. package/dist/tools/package/bridge-remove.js +32 -0
  375. package/dist/tools/package/bridge-remove.js.map +1 -0
  376. package/dist/tools/package/deploy.d.ts +49 -0
  377. package/dist/tools/package/deploy.js +134 -0
  378. package/dist/tools/package/deploy.js.map +1 -0
  379. package/dist/tools/package/embed.d.ts +14 -0
  380. package/dist/tools/package/embed.js +93 -0
  381. package/dist/tools/package/embed.js.map +1 -0
  382. package/dist/tools/package/file-mutation-worker.d.ts +6 -0
  383. package/dist/tools/package/file-mutation-worker.js +154 -0
  384. package/dist/tools/package/file-mutation-worker.js.map +1 -0
  385. package/dist/tools/package/info.d.ts +19 -0
  386. package/dist/tools/package/info.js +27 -0
  387. package/dist/tools/package/info.js.map +1 -0
  388. package/dist/tools/package/install.d.ts +24 -0
  389. package/dist/tools/package/install.js +65 -0
  390. package/dist/tools/package/install.js.map +1 -0
  391. package/dist/tools/package/list.d.ts +27 -0
  392. package/dist/tools/package/list.js +21 -0
  393. package/dist/tools/package/list.js.map +1 -0
  394. package/dist/tools/package/live-resolve.d.ts +46 -0
  395. package/dist/tools/package/live-resolve.js +497 -0
  396. package/dist/tools/package/live-resolve.js.map +1 -0
  397. package/dist/tools/package/public-result.d.ts +4 -0
  398. package/dist/tools/package/public-result.js +25 -0
  399. package/dist/tools/package/public-result.js.map +1 -0
  400. package/dist/tools/package/registry-clear.d.ts +15 -0
  401. package/dist/tools/package/registry-clear.js +27 -0
  402. package/dist/tools/package/registry-clear.js.map +1 -0
  403. package/dist/tools/package/registry-get.d.ts +10 -0
  404. package/dist/tools/package/registry-get.js +22 -0
  405. package/dist/tools/package/registry-get.js.map +1 -0
  406. package/dist/tools/package/registry-set.d.ts +17 -0
  407. package/dist/tools/package/registry-set.js +28 -0
  408. package/dist/tools/package/registry-set.js.map +1 -0
  409. package/dist/tools/package/remove.d.ts +47 -0
  410. package/dist/tools/package/remove.js +67 -0
  411. package/dist/tools/package/remove.js.map +1 -0
  412. package/dist/tools/package/resolve.d.ts +6 -0
  413. package/dist/tools/package/resolve.js +14 -0
  414. package/dist/tools/package/resolve.js.map +1 -0
  415. package/dist/tools/package/restore.d.ts +42 -0
  416. package/dist/tools/package/restore.js +122 -0
  417. package/dist/tools/package/restore.js.map +1 -0
  418. package/dist/tools/package/scoped-registry-add.d.ts +25 -0
  419. package/dist/tools/package/scoped-registry-add.js +30 -0
  420. package/dist/tools/package/scoped-registry-add.js.map +1 -0
  421. package/dist/tools/package/scoped-registry-list.d.ts +14 -0
  422. package/dist/tools/package/scoped-registry-list.js +22 -0
  423. package/dist/tools/package/scoped-registry-list.js.map +1 -0
  424. package/dist/tools/package/scoped-registry-remove.d.ts +29 -0
  425. package/dist/tools/package/scoped-registry-remove.js +31 -0
  426. package/dist/tools/package/scoped-registry-remove.js.map +1 -0
  427. package/dist/tools/package/search.d.ts +17 -0
  428. package/dist/tools/package/search.js +39 -0
  429. package/dist/tools/package/search.js.map +1 -0
  430. package/dist/tools/package/status.d.ts +21 -0
  431. package/dist/tools/package/status.js +37 -0
  432. package/dist/tools/package/status.js.map +1 -0
  433. package/dist/tools/reflect/member.d.ts +22 -0
  434. package/dist/tools/reflect/member.js +22 -0
  435. package/dist/tools/reflect/member.js.map +1 -0
  436. package/dist/tools/reflect/search.d.ts +30 -0
  437. package/dist/tools/reflect/search.js +22 -0
  438. package/dist/tools/reflect/search.js.map +1 -0
  439. package/dist/tools/reflect/type.d.ts +21 -0
  440. package/dist/tools/reflect/type.js +22 -0
  441. package/dist/tools/reflect/type.js.map +1 -0
  442. package/dist/tools/runtime/console.d.ts +24 -0
  443. package/dist/tools/runtime/console.js +17 -0
  444. package/dist/tools/runtime/console.js.map +1 -0
  445. package/dist/tools/runtime/input/key.d.ts +23 -0
  446. package/dist/tools/runtime/input/key.js +18 -0
  447. package/dist/tools/runtime/input/key.js.map +1 -0
  448. package/dist/tools/runtime/input/pointer.d.ts +34 -0
  449. package/dist/tools/runtime/input/pointer.js +18 -0
  450. package/dist/tools/runtime/input/pointer.js.map +1 -0
  451. package/dist/tools/runtime/log.d.ts +20 -0
  452. package/dist/tools/runtime/log.js +17 -0
  453. package/dist/tools/runtime/log.js.map +1 -0
  454. package/dist/tools/runtime/state.d.ts +45 -0
  455. package/dist/tools/runtime/state.js +17 -0
  456. package/dist/tools/runtime/state.js.map +1 -0
  457. package/dist/tools/runtime/target-framerate/set.d.ts +16 -0
  458. package/dist/tools/runtime/target-framerate/set.js +17 -0
  459. package/dist/tools/runtime/target-framerate/set.js.map +1 -0
  460. package/dist/tools/runtime/time-scale/set.d.ts +16 -0
  461. package/dist/tools/runtime/time-scale/set.js +17 -0
  462. package/dist/tools/runtime/time-scale/set.js.map +1 -0
  463. package/dist/tools/runtime/ui/capture-element.d.ts +31 -0
  464. package/dist/tools/runtime/ui/capture-element.js +17 -0
  465. package/dist/tools/runtime/ui/capture-element.js.map +1 -0
  466. package/dist/tools/test/cancel.d.ts +19 -0
  467. package/dist/tools/test/cancel.js +94 -0
  468. package/dist/tools/test/cancel.js.map +1 -0
  469. package/dist/tools/test/run.d.ts +39 -0
  470. package/dist/tools/test/run.js +101 -0
  471. package/dist/tools/test/run.js.map +1 -0
  472. package/dist/tools/tools/describe.d.ts +27 -0
  473. package/dist/tools/tools/describe.js +35 -0
  474. package/dist/tools/tools/describe.js.map +1 -0
  475. package/dist/tools/tools/group-list.d.ts +20 -0
  476. package/dist/tools/tools/group-list.js +39 -0
  477. package/dist/tools/tools/group-list.js.map +1 -0
  478. package/dist/tools/tools/group-summaries.d.ts +3 -0
  479. package/dist/tools/tools/group-summaries.js +52 -0
  480. package/dist/tools/tools/group-summaries.js.map +1 -0
  481. package/dist/tools/tools/group.d.ts +13 -0
  482. package/dist/tools/tools/group.js +34 -0
  483. package/dist/tools/tools/group.js.map +1 -0
  484. package/dist/tools/tools/search.d.ts +17 -0
  485. package/dist/tools/tools/search.js +42 -0
  486. package/dist/tools/tools/search.js.map +1 -0
  487. package/dist/types.d.ts +5 -0
  488. package/dist/types.js +2 -0
  489. package/dist/types.js.map +1 -0
  490. package/dist/unity-project-processes.d.ts +12 -0
  491. package/dist/unity-project-processes.js +59 -0
  492. package/dist/unity-project-processes.js.map +1 -0
  493. package/dist/util.d.ts +11 -0
  494. package/dist/util.js +22 -0
  495. package/dist/util.js.map +1 -0
  496. package/dist/windows-editor-state.d.ts +31 -0
  497. package/dist/windows-editor-state.js +98 -0
  498. package/dist/windows-editor-state.js.map +1 -0
  499. package/docs/README.md +43 -0
  500. package/docs/availability-differences.md +97 -0
  501. package/docs/command-execution.md +89 -0
  502. package/docs/error-codes.md +204 -0
  503. package/docs/extensions.md +132 -0
  504. package/docs/risk-and-side-effects.md +93 -0
  505. package/docs/safety-boundaries.md +103 -0
  506. package/docs/target-and-instance.md +83 -0
  507. package/docs/tool-discovery.md +104 -0
  508. package/docs/tool-execution.md +178 -0
  509. package/extensions/cinemachine/bridge/domains/cinemachine.ts +115 -0
  510. package/extensions/cinemachine/docs/cinemachine.md +50 -0
  511. package/extensions/cinemachine/extension.json +129 -0
  512. package/extensions/cinemachine/unitypkg/Editor/Cinemachine/CinemachineExtensionToolSupport.cs +15 -0
  513. package/extensions/cinemachine/unitypkg/Editor/Cinemachine/CinemachineToolSupport.cs +854 -0
  514. package/extensions/cinemachine/unitypkg/Editor/Cinemachine/aim.cs +96 -0
  515. package/extensions/cinemachine/unitypkg/Editor/Cinemachine/blend.cs +140 -0
  516. package/extensions/cinemachine/unitypkg/Editor/Cinemachine/body.cs +96 -0
  517. package/extensions/cinemachine/unitypkg/Editor/Cinemachine/brain-ensure.cs +16 -0
  518. package/extensions/cinemachine/unitypkg/Editor/Cinemachine/brain-status.cs +12 -0
  519. package/extensions/cinemachine/unitypkg/Editor/Cinemachine/create.cs +147 -0
  520. package/extensions/cinemachine/unitypkg/Editor/Cinemachine/extension-add.cs +13 -0
  521. package/extensions/cinemachine/unitypkg/Editor/Cinemachine/extension-list.cs +13 -0
  522. package/extensions/cinemachine/unitypkg/Editor/Cinemachine/extension-remove.cs +13 -0
  523. package/extensions/cinemachine/unitypkg/Editor/Cinemachine/lens.cs +142 -0
  524. package/extensions/cinemachine/unitypkg/Editor/Cinemachine/noise.cs +126 -0
  525. package/extensions/cinemachine/unitypkg/Editor/Cinemachine/ping.cs +43 -0
  526. package/extensions/cinemachine/unitypkg/Editor/Cinemachine/priority.cs +113 -0
  527. package/extensions/cinemachine/unitypkg/Editor/Cinemachine/target.cs +84 -0
  528. package/extensions/cinemachine/unitypkg/UnityCli.Extensions.Cinemachine.Editor.asmdef +18 -0
  529. package/extensions/hdrp/bridge/domains/hdrp.ts +41 -0
  530. package/extensions/hdrp/docs/hdrp.md +15 -0
  531. package/extensions/hdrp/extension.json +31 -0
  532. package/extensions/hdrp/unitypkg/Editor/Hdrp/HdrpToolSupport.cs +607 -0
  533. package/extensions/hdrp/unitypkg/Editor/Hdrp/settings-get.cs +29 -0
  534. package/extensions/hdrp/unitypkg/Editor/Hdrp/settings-set.cs +47 -0
  535. package/extensions/hdrp/unitypkg/Editor/Hdrp/volume-add-effect.cs +28 -0
  536. package/extensions/hdrp/unitypkg/Editor/Hdrp/volume-create.cs +28 -0
  537. package/extensions/hdrp/unitypkg/Editor/Hdrp/volume-info.cs +25 -0
  538. package/extensions/hdrp/unitypkg/Editor/Hdrp/volume-list.cs +25 -0
  539. package/extensions/hdrp/unitypkg/Editor/Hdrp/volume-set.cs +28 -0
  540. package/extensions/hdrp/unitypkg/UnityCli.Extensions.Hdrp.Editor.asmdef +19 -0
  541. package/extensions/probuilder/bridge/domains/probuilder.ts +386 -0
  542. package/extensions/probuilder/docs/probuilder.md +125 -0
  543. package/extensions/probuilder/extension.json +291 -0
  544. package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderAppendCompletionProof.cs +254 -0
  545. package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderAtomicReadback.cs +293 -0
  546. package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderBevelCompletionProof.cs +299 -0
  547. package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderCanonicalMeshSnapshot.cs +951 -0
  548. package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderConnectCompletionProof.cs +407 -0
  549. package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderEdgeCompletionProof.cs +318 -0
  550. package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderErrors.cs +83 -0
  551. package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderFaceCompletionProof.cs +152 -0
  552. package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderFaceExtrudeCompletionProof.cs +283 -0
  553. package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderFlipCompletionProof.cs +170 -0
  554. package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderInput.cs +85 -0
  555. package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderInsertCompletionProof.cs +674 -0
  556. package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderOperationProof.cs +137 -0
  557. package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderReflection.cs +1064 -0
  558. package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderRefreshUvProof.cs +53 -0
  559. package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderSceneTool.cs +184 -0
  560. package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderShapeTopologyRecords.g.cs +82 -0
  561. package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderVertexObjectCompletionProof.cs +346 -0
  562. package/extensions/probuilder/unitypkg/Editor/ProBuilder/append-vertices-to-edge.cs +118 -0
  563. package/extensions/probuilder/unitypkg/Editor/ProBuilder/auto-smooth.cs +104 -0
  564. package/extensions/probuilder/unitypkg/Editor/ProBuilder/bevel-edges.cs +119 -0
  565. package/extensions/probuilder/unitypkg/Editor/ProBuilder/bridge-edges.cs +113 -0
  566. package/extensions/probuilder/unitypkg/Editor/ProBuilder/center-pivot.cs +43 -0
  567. package/extensions/probuilder/unitypkg/Editor/ProBuilder/combine-meshes.cs +58 -0
  568. package/extensions/probuilder/unitypkg/Editor/ProBuilder/connect-elements.cs +128 -0
  569. package/extensions/probuilder/unitypkg/Editor/ProBuilder/convert-to-probuilder.cs +40 -0
  570. package/extensions/probuilder/unitypkg/Editor/ProBuilder/create-poly-shape.cs +55 -0
  571. package/extensions/probuilder/unitypkg/Editor/ProBuilder/create-polygon.cs +28 -0
  572. package/extensions/probuilder/unitypkg/Editor/ProBuilder/create-shape.cs +168 -0
  573. package/extensions/probuilder/unitypkg/Editor/ProBuilder/delete-faces.cs +42 -0
  574. package/extensions/probuilder/unitypkg/Editor/ProBuilder/detach-faces.cs +46 -0
  575. package/extensions/probuilder/unitypkg/Editor/ProBuilder/duplicate-and-flip.cs +100 -0
  576. package/extensions/probuilder/unitypkg/Editor/ProBuilder/extrude-edges.cs +118 -0
  577. package/extensions/probuilder/unitypkg/Editor/ProBuilder/extrude-faces.cs +110 -0
  578. package/extensions/probuilder/unitypkg/Editor/ProBuilder/flip-normals.cs +102 -0
  579. package/extensions/probuilder/unitypkg/Editor/ProBuilder/freeze-transform.cs +45 -0
  580. package/extensions/probuilder/unitypkg/Editor/ProBuilder/insert-vertex.cs +132 -0
  581. package/extensions/probuilder/unitypkg/Editor/ProBuilder/merge-faces.cs +44 -0
  582. package/extensions/probuilder/unitypkg/Editor/ProBuilder/merge-objects.cs +130 -0
  583. package/extensions/probuilder/unitypkg/Editor/ProBuilder/merge-vertices.cs +109 -0
  584. package/extensions/probuilder/unitypkg/Editor/ProBuilder/mesh-info.cs +117 -0
  585. package/extensions/probuilder/unitypkg/Editor/ProBuilder/move-vertices.cs +33 -0
  586. package/extensions/probuilder/unitypkg/Editor/ProBuilder/ping.cs +51 -0
  587. package/extensions/probuilder/unitypkg/Editor/ProBuilder/repair-mesh.cs +40 -0
  588. package/extensions/probuilder/unitypkg/Editor/ProBuilder/select-faces.cs +161 -0
  589. package/extensions/probuilder/unitypkg/Editor/ProBuilder/set-face-color.cs +24 -0
  590. package/extensions/probuilder/unitypkg/Editor/ProBuilder/set-face-material.cs +23 -0
  591. package/extensions/probuilder/unitypkg/Editor/ProBuilder/set-face-uvs.cs +28 -0
  592. package/extensions/probuilder/unitypkg/Editor/ProBuilder/set-pivot.cs +42 -0
  593. package/extensions/probuilder/unitypkg/Editor/ProBuilder/set-smoothing.cs +23 -0
  594. package/extensions/probuilder/unitypkg/Editor/ProBuilder/split-vertices.cs +64 -0
  595. package/extensions/probuilder/unitypkg/Editor/ProBuilder/subdivide.cs +111 -0
  596. package/extensions/probuilder/unitypkg/Editor/ProBuilder/validate-mesh.cs +75 -0
  597. package/extensions/probuilder/unitypkg/Editor/ProBuilder/weld-vertices.cs +112 -0
  598. package/extensions/probuilder/unitypkg/UnityCli.Extensions.ProBuilder.Editor.asmdef +25 -0
  599. package/extensions/urp/bridge/domains/urp.ts +62 -0
  600. package/extensions/urp/docs/urp.md +20 -0
  601. package/extensions/urp/extension.json +41 -0
  602. package/extensions/urp/unitypkg/Editor/Urp/UrpFeatureToolSupport.cs +336 -0
  603. package/extensions/urp/unitypkg/Editor/Urp/UrpToolSupport.cs +801 -0
  604. package/extensions/urp/unitypkg/Editor/Urp/feature-add.cs +12 -0
  605. package/extensions/urp/unitypkg/Editor/Urp/feature-configure.cs +12 -0
  606. package/extensions/urp/unitypkg/Editor/Urp/feature-list.cs +12 -0
  607. package/extensions/urp/unitypkg/Editor/Urp/feature-remove.cs +12 -0
  608. package/extensions/urp/unitypkg/Editor/Urp/feature-toggle.cs +12 -0
  609. package/extensions/urp/unitypkg/Editor/Urp/settings-get.cs +27 -0
  610. package/extensions/urp/unitypkg/Editor/Urp/settings-set.cs +47 -0
  611. package/extensions/urp/unitypkg/Editor/Urp/volume-add-effect.cs +33 -0
  612. package/extensions/urp/unitypkg/Editor/Urp/volume-create.cs +33 -0
  613. package/extensions/urp/unitypkg/Editor/Urp/volume-info.cs +31 -0
  614. package/extensions/urp/unitypkg/Editor/Urp/volume-list.cs +39 -0
  615. package/extensions/urp/unitypkg/Editor/Urp/volume-set.cs +33 -0
  616. package/extensions/urp/unitypkg/UnityCli.Extensions.Urp.Editor.asmdef +19 -0
  617. package/extensions/vfx-graph/bridge/domains/vfx.ts +337 -0
  618. package/extensions/vfx-graph/docs/vfx.md +28 -0
  619. package/extensions/vfx-graph/extension.json +72 -0
  620. package/extensions/vfx-graph/unitypkg/Editor/Vfx/VfxActionToolSupport.cs +248 -0
  621. package/extensions/vfx-graph/unitypkg/Editor/Vfx/VfxToolSupport.cs +1325 -0
  622. package/extensions/vfx-graph/unitypkg/Editor/Vfx/control-pause.cs +37 -0
  623. package/extensions/vfx-graph/unitypkg/Editor/Vfx/control-play.cs +40 -0
  624. package/extensions/vfx-graph/unitypkg/Editor/Vfx/control-reinitialize.cs +37 -0
  625. package/extensions/vfx-graph/unitypkg/Editor/Vfx/control-set-rate.cs +36 -0
  626. package/extensions/vfx-graph/unitypkg/Editor/Vfx/control-set-seed.cs +42 -0
  627. package/extensions/vfx-graph/unitypkg/Editor/Vfx/control-stop.cs +37 -0
  628. package/extensions/vfx-graph/unitypkg/Editor/Vfx/effect-add.cs +55 -0
  629. package/extensions/vfx-graph/unitypkg/Editor/Vfx/effect-assign.cs +44 -0
  630. package/extensions/vfx-graph/unitypkg/Editor/Vfx/effect-info.cs +30 -0
  631. package/extensions/vfx-graph/unitypkg/Editor/Vfx/graph-create.cs +62 -0
  632. package/extensions/vfx-graph/unitypkg/Editor/Vfx/graph-info.cs +32 -0
  633. package/extensions/vfx-graph/unitypkg/Editor/Vfx/line-create.cs +75 -0
  634. package/extensions/vfx-graph/unitypkg/Editor/Vfx/line-positions.cs +100 -0
  635. package/extensions/vfx-graph/unitypkg/Editor/Vfx/parameter.cs +216 -0
  636. package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-clear.cs +39 -0
  637. package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-create.cs +80 -0
  638. package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-emission.cs +126 -0
  639. package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-info.cs +55 -0
  640. package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-main.cs +75 -0
  641. package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-pause.cs +38 -0
  642. package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-play.cs +38 -0
  643. package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-shape.cs +148 -0
  644. package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-stop.cs +41 -0
  645. package/extensions/vfx-graph/unitypkg/Editor/Vfx/template-create.cs +58 -0
  646. package/extensions/vfx-graph/unitypkg/Editor/Vfx/template-list.cs +31 -0
  647. package/extensions/vfx-graph/unitypkg/Editor/Vfx/trail-create.cs +41 -0
  648. package/extensions/vfx-graph/unitypkg/Editor/Vfx/trail-set.cs +44 -0
  649. package/extensions/vfx-graph/unitypkg/UnityCli.Extensions.VfxGraph.Editor.asmdef +18 -0
  650. package/package.json +46 -0
  651. package/schemas/error-code.schema.json +70 -0
  652. package/schemas/extension-descriptor.schema.json +88 -0
  653. package/schemas/extension-manifest.schema.json +125 -0
  654. package/schemas/request-envelope.schema.json +34 -0
  655. package/schemas/response-envelope.schema.json +42 -0
  656. package/schemas/tool-metadata.schema.json +111 -0
  657. package/skills/unitycli/SKILL.md +61 -0
  658. package/skills/unitycli/agents/interface.yaml +30 -0
  659. package/skills/unitycli/evals/history/2026-08-05-governed-baseline.json +44 -0
  660. package/skills/unitycli/evals/output/cases.jsonl +5 -0
  661. package/skills/unitycli/evals/output/fixtures/feedback-scenario.json +27 -0
  662. package/skills/unitycli/evals/output/schema.json +32 -0
  663. package/skills/unitycli/evals/semantic_config.json +46 -0
  664. package/skills/unitycli/evals/trigger_cases.json +39 -0
  665. package/skills/unitycli/examples/feedback-event.input.json +8 -0
  666. package/skills/unitycli/examples/feedback-record.output.json +12 -0
  667. package/skills/unitycli/manifest.json +112 -0
  668. package/skills/unitycli/references/custom-tools.md +111 -0
  669. package/skills/unitycli/references/feedback.md +59 -0
  670. package/skills/unitycli/references/operation-protocol.md +83 -0
  671. package/skills/unitycli/reports/output_quality_scorecard.md +56 -0
  672. package/skills/unitycli/reports/trust-report.md +57 -0
  673. package/skills/unitycli/scripts/record-feedback.ps1 +210 -0
  674. package/skills/unitycli/security/network_policy.json +18 -0
  675. package/skills/unitycli/security/permission_policy.json +40 -0
  676. package/unitypkg/Editor/Bridge/BridgeCommandContext.cs +64 -0
  677. package/unitypkg/Editor/Bridge/BridgeCommandException.cs +39 -0
  678. package/unitypkg/Editor/Bridge/BridgeCommandRegistry.cs +172 -0
  679. package/unitypkg/Editor/Bridge/BridgeHttpServer.cs +534 -0
  680. package/unitypkg/Editor/Bridge/BridgeResponse.cs +58 -0
  681. package/unitypkg/Editor/Bridge/BridgeWorkQueue.cs +325 -0
  682. package/unitypkg/Editor/BridgeStartupStateMachine.cs +81 -0
  683. package/unitypkg/Editor/Commands/ProjectToolCommands.cs +43 -0
  684. package/unitypkg/Editor/Commands/RuntimeToolCommands.cs +43 -0
  685. package/unitypkg/Editor/Generated/UnityCliToolCompletionRegistry.g.cs +428 -0
  686. package/unitypkg/Editor/Infrastructure/CodeExecSupport.cs +664 -0
  687. package/unitypkg/Editor/Infrastructure/RegistryOwnershipResolver.cs +148 -0
  688. package/unitypkg/Editor/Infrastructure/UnityCliActiveOperation.cs +411 -0
  689. package/unitypkg/Editor/Infrastructure/UnityCliAdmission.cs +485 -0
  690. package/unitypkg/Editor/Infrastructure/UnityCliArtifacts.cs +110 -0
  691. package/unitypkg/Editor/Infrastructure/UnityCliAssetRefreshCoordinator.cs +106 -0
  692. package/unitypkg/Editor/Infrastructure/UnityCliBridgeHelpers.cs +155 -0
  693. package/unitypkg/Editor/Infrastructure/UnityCliCanonicalProjectPath.cs +325 -0
  694. package/unitypkg/Editor/Infrastructure/UnityCliCompilationEventBroker.cs +192 -0
  695. package/unitypkg/Editor/Infrastructure/UnityCliCompileCoordinator.cs +271 -0
  696. package/unitypkg/Editor/Infrastructure/UnityCliCompletionProbe.cs +515 -0
  697. package/unitypkg/Editor/Infrastructure/UnityCliEditorStateSnapshot.cs +84 -0
  698. package/unitypkg/Editor/Infrastructure/UnityCliInstanceRegistry.cs +558 -0
  699. package/unitypkg/Editor/Infrastructure/UnityCliJson.cs +155 -0
  700. package/unitypkg/Editor/Infrastructure/UnityCliLargeOutput.cs +128 -0
  701. package/unitypkg/Editor/Infrastructure/UnityCliLiveBuildCoordinator.cs +230 -0
  702. package/unitypkg/Editor/Infrastructure/UnityCliLiveRefreshCoordinator.cs +164 -0
  703. package/unitypkg/Editor/Infrastructure/UnityCliLog.cs +127 -0
  704. package/unitypkg/Editor/Infrastructure/UnityCliNavMeshBakeCoordinator.cs +2073 -0
  705. package/unitypkg/Editor/Infrastructure/UnityCliObjectPatch.cs +193 -0
  706. package/unitypkg/Editor/Infrastructure/UnityCliObjectRef.cs +278 -0
  707. package/unitypkg/Editor/Infrastructure/UnityCliObjectSerializer.cs +620 -0
  708. package/unitypkg/Editor/Infrastructure/UnityCliOcclusionBakeCoordinator.cs +1739 -0
  709. package/unitypkg/Editor/Infrastructure/UnityCliOperationCoordinator.cs +828 -0
  710. package/unitypkg/Editor/Infrastructure/UnityCliPackageEmbedCoordinator.cs +147 -0
  711. package/unitypkg/Editor/Infrastructure/UnityCliPackageResolveCoordinator.cs +454 -0
  712. package/unitypkg/Editor/Infrastructure/UnityCliPackageResolveState.cs +561 -0
  713. package/unitypkg/Editor/Infrastructure/UnityCliPipelineHandoff.cs +742 -0
  714. package/unitypkg/Editor/Infrastructure/UnityCliProjectSettings.cs +92 -0
  715. package/unitypkg/Editor/Infrastructure/UnityCliProtocolRequest.cs +116 -0
  716. package/unitypkg/Editor/Infrastructure/UnityCliReflection.cs +477 -0
  717. package/unitypkg/Editor/Infrastructure/UnityCliReloadOperation.cs +664 -0
  718. package/unitypkg/Editor/Infrastructure/UnityCliRequestDigest.cs +34 -0
  719. package/unitypkg/Editor/Infrastructure/UnityCliRuntimeBuildInjection.cs +121 -0
  720. package/unitypkg/Editor/Infrastructure/UnityCliRuntimeExecutor.cs +391 -0
  721. package/unitypkg/Editor/Infrastructure/UnityCliSceneMutation.cs +84 -0
  722. package/unitypkg/Editor/Infrastructure/UnityCliScriptableObjectHelpers.cs +235 -0
  723. package/unitypkg/Editor/Infrastructure/UnityCliSerializer.cs +580 -0
  724. package/unitypkg/Editor/Infrastructure/UnityCliSessionMutationLease.cs +568 -0
  725. package/unitypkg/Editor/Infrastructure/UnityCliStateIO.cs +73 -0
  726. package/unitypkg/Editor/Infrastructure/UnityCliTestRunCoordinator.cs +598 -0
  727. package/unitypkg/Editor/Infrastructure/UnityCliTransactionLog.cs +112 -0
  728. package/unitypkg/Editor/Infrastructure/UnityCliValueConverter.cs +146 -0
  729. package/unitypkg/Editor/Infrastructure/UnityCliWaiter.cs +716 -0
  730. package/unitypkg/Editor/ProjectTools/IUnityCliTool.cs +152 -0
  731. package/unitypkg/Editor/ProjectTools/OfficialAttributeToolRegistry.cs +992 -0
  732. package/unitypkg/Editor/ProjectTools/ProjectToolRegistry.cs +938 -0
  733. package/unitypkg/Editor/ProjectTools/ProjectToolSchemaValidator.cs +258 -0
  734. package/unitypkg/Editor/ProjectTools/RegisteredTool.cs +75 -0
  735. package/unitypkg/Editor/ProjectTools/UnityCliProjectToolContext.cs +68 -0
  736. package/unitypkg/Editor/ProjectTools/UnityCliSchemaDeriver.cs +297 -0
  737. package/unitypkg/Editor/Protocol/ProtocolEnvelopeFactory.cs +92 -0
  738. package/unitypkg/Editor/Protocol/envelope.cs +50 -0
  739. package/unitypkg/Editor/Roslyn/LICENSE.txt +23 -0
  740. package/unitypkg/Editor/Roslyn/Microsoft.CodeAnalysis.CSharp.dll +0 -0
  741. package/unitypkg/Editor/Roslyn/Microsoft.CodeAnalysis.dll +0 -0
  742. package/unitypkg/Editor/Roslyn/System.Collections.Immutable.dll +0 -0
  743. package/unitypkg/Editor/Roslyn/System.Reflection.Metadata.dll +0 -0
  744. package/unitypkg/Editor/Tools/animation/AnimationToolSupport.cs +335 -0
  745. package/unitypkg/Editor/Tools/animation/AnimatorRuntimeToolSupport.cs +24 -0
  746. package/unitypkg/Editor/Tools/animation/animator/crossfade.cs +117 -0
  747. package/unitypkg/Editor/Tools/animation/animator/get-info.cs +24 -0
  748. package/unitypkg/Editor/Tools/animation/animator/get-parameter.cs +36 -0
  749. package/unitypkg/Editor/Tools/animation/animator/set-enabled.cs +33 -0
  750. package/unitypkg/Editor/Tools/animation/animator/set-parameter.cs +71 -0
  751. package/unitypkg/Editor/Tools/animation/animator/set-speed.cs +33 -0
  752. package/unitypkg/Editor/Tools/animation/clip/create.cs +48 -0
  753. package/unitypkg/Editor/Tools/animation/clip/modify.cs +43 -0
  754. package/unitypkg/Editor/Tools/animation/clip.cs +23 -0
  755. package/unitypkg/Editor/Tools/animation/play.cs +41 -0
  756. package/unitypkg/Editor/Tools/animation/state.cs +25 -0
  757. package/unitypkg/Editor/Tools/animation/stop.cs +45 -0
  758. package/unitypkg/Editor/Tools/asset/AssetImportSettingsToolSupport.cs +633 -0
  759. package/unitypkg/Editor/Tools/asset/AssetToolSupport.cs +253 -0
  760. package/unitypkg/Editor/Tools/asset/create.cs +84 -0
  761. package/unitypkg/Editor/Tools/asset/delete.cs +88 -0
  762. package/unitypkg/Editor/Tools/asset/duplicate.cs +68 -0
  763. package/unitypkg/Editor/Tools/asset/get-components.cs +177 -0
  764. package/unitypkg/Editor/Tools/asset/get-data.cs +73 -0
  765. package/unitypkg/Editor/Tools/asset/import-settings/set.cs +127 -0
  766. package/unitypkg/Editor/Tools/asset/import-settings.cs +54 -0
  767. package/unitypkg/Editor/Tools/asset/import.cs +132 -0
  768. package/unitypkg/Editor/Tools/asset/info.cs +48 -0
  769. package/unitypkg/Editor/Tools/asset/modify.cs +69 -0
  770. package/unitypkg/Editor/Tools/asset/move.cs +70 -0
  771. package/unitypkg/Editor/Tools/asset/preview.cs +86 -0
  772. package/unitypkg/Editor/Tools/asset/rename.cs +84 -0
  773. package/unitypkg/Editor/Tools/asset/search-built-in.cs +90 -0
  774. package/unitypkg/Editor/Tools/asset/search.cs +83 -0
  775. package/unitypkg/Editor/Tools/build/BuildSceneStateTool.cs +37 -0
  776. package/unitypkg/Editor/Tools/build/BuildSettingsToolSupport.cs +4 -0
  777. package/unitypkg/Editor/Tools/build/BuildToolDtos.cs +15 -0
  778. package/unitypkg/Editor/Tools/build/BuildToolSupport.cs +111 -0
  779. package/unitypkg/Editor/Tools/build/platform/get.cs +12 -0
  780. package/unitypkg/Editor/Tools/build/platform/set.cs +45 -0
  781. package/unitypkg/Editor/Tools/build/profile/create.cs +44 -0
  782. package/unitypkg/Editor/Tools/build/profile/list.cs +12 -0
  783. package/unitypkg/Editor/Tools/build/profile/modify.cs +42 -0
  784. package/unitypkg/Editor/Tools/build/profile/switch.cs +30 -0
  785. package/unitypkg/Editor/Tools/build/scene/add.cs +45 -0
  786. package/unitypkg/Editor/Tools/build/scene/disable.cs +3 -0
  787. package/unitypkg/Editor/Tools/build/scene/enable.cs +4 -0
  788. package/unitypkg/Editor/Tools/build/scene/list.cs +4 -0
  789. package/unitypkg/Editor/Tools/build/scene/remove.cs +29 -0
  790. package/unitypkg/Editor/Tools/build/settings/get.cs +3 -0
  791. package/unitypkg/Editor/Tools/build/settings/set.cs +74 -0
  792. package/unitypkg/Editor/Tools/camera/CameraToolSupport.cs +292 -0
  793. package/unitypkg/Editor/Tools/camera/create.cs +114 -0
  794. package/unitypkg/Editor/Tools/camera/info.cs +49 -0
  795. package/unitypkg/Editor/Tools/camera/lens.cs +119 -0
  796. package/unitypkg/Editor/Tools/camera/list.cs +52 -0
  797. package/unitypkg/Editor/Tools/camera/multiview.cs +96 -0
  798. package/unitypkg/Editor/Tools/camera/screenshot.cs +65 -0
  799. package/unitypkg/Editor/Tools/camera/target.cs +94 -0
  800. package/unitypkg/Editor/Tools/component/add.cs +125 -0
  801. package/unitypkg/Editor/Tools/component/get.cs +73 -0
  802. package/unitypkg/Editor/Tools/component/list-types.cs +90 -0
  803. package/unitypkg/Editor/Tools/component/modify.cs +103 -0
  804. package/unitypkg/Editor/Tools/component/remove.cs +147 -0
  805. package/unitypkg/Editor/Tools/component/set.cs +93 -0
  806. package/unitypkg/Editor/Tools/console/clear.cs +38 -0
  807. package/unitypkg/Editor/Tools/console/get.cs +28 -0
  808. package/unitypkg/Editor/Tools/controller/add-blend-tree-child.cs +88 -0
  809. package/unitypkg/Editor/Tools/controller/add-layer.cs +43 -0
  810. package/unitypkg/Editor/Tools/controller/add-parameter.cs +51 -0
  811. package/unitypkg/Editor/Tools/controller/add-state.cs +44 -0
  812. package/unitypkg/Editor/Tools/controller/add-transition.cs +71 -0
  813. package/unitypkg/Editor/Tools/controller/assign.cs +38 -0
  814. package/unitypkg/Editor/Tools/controller/create-blend-tree-1d.cs +40 -0
  815. package/unitypkg/Editor/Tools/controller/create-blend-tree-2d.cs +42 -0
  816. package/unitypkg/Editor/Tools/controller/create.cs +31 -0
  817. package/unitypkg/Editor/Tools/controller/get-info.cs +27 -0
  818. package/unitypkg/Editor/Tools/controller/remove-layer.cs +57 -0
  819. package/unitypkg/Editor/Tools/controller/set-layer-weight.cs +42 -0
  820. package/unitypkg/Editor/Tools/diagnose/preflight.cs +269 -0
  821. package/unitypkg/Editor/Tools/editor/EditorActionToolSupport.cs +117 -0
  822. package/unitypkg/Editor/Tools/editor/EditorSearchToolSupport.cs +146 -0
  823. package/unitypkg/Editor/Tools/editor/EditorToolSupport.cs +132 -0
  824. package/unitypkg/Editor/Tools/editor/EditorWindowFocusToolSupport.cs +194 -0
  825. package/unitypkg/Editor/Tools/editor/active-tool/set.cs +33 -0
  826. package/unitypkg/Editor/Tools/editor/active-tool.cs +100 -0
  827. package/unitypkg/Editor/Tools/editor/autotick/set.cs +102 -0
  828. package/unitypkg/Editor/Tools/editor/console.cs +26 -0
  829. package/unitypkg/Editor/Tools/editor/focus.cs +80 -0
  830. package/unitypkg/Editor/Tools/editor/menu-items.cs +50 -0
  831. package/unitypkg/Editor/Tools/editor/menu.cs +53 -0
  832. package/unitypkg/Editor/Tools/editor/pause.cs +38 -0
  833. package/unitypkg/Editor/Tools/editor/play.cs +43 -0
  834. package/unitypkg/Editor/Tools/editor/redo.cs +56 -0
  835. package/unitypkg/Editor/Tools/editor/resolution.cs +34 -0
  836. package/unitypkg/Editor/Tools/editor/search.cs +55 -0
  837. package/unitypkg/Editor/Tools/editor/selection/set.cs +37 -0
  838. package/unitypkg/Editor/Tools/editor/selection.cs +153 -0
  839. package/unitypkg/Editor/Tools/editor/stop.cs +43 -0
  840. package/unitypkg/Editor/Tools/editor/tool-states.cs +140 -0
  841. package/unitypkg/Editor/Tools/editor/undo.cs +56 -0
  842. package/unitypkg/Editor/Tools/editor/windows.cs +87 -0
  843. package/unitypkg/Editor/Tools/extension/status.cs +87 -0
  844. package/unitypkg/Editor/Tools/go/GameObjectToolSupport.cs +524 -0
  845. package/unitypkg/Editor/Tools/go/create.cs +333 -0
  846. package/unitypkg/Editor/Tools/go/delete.cs +87 -0
  847. package/unitypkg/Editor/Tools/go/duplicate.cs +76 -0
  848. package/unitypkg/Editor/Tools/go/find.cs +152 -0
  849. package/unitypkg/Editor/Tools/go/inspect.cs +49 -0
  850. package/unitypkg/Editor/Tools/go/look-at.cs +76 -0
  851. package/unitypkg/Editor/Tools/go/modify.cs +156 -0
  852. package/unitypkg/Editor/Tools/go/move-relative.cs +74 -0
  853. package/unitypkg/Editor/Tools/go/set-parent.cs +84 -0
  854. package/unitypkg/Editor/Tools/graphics/GraphicsToolSupport.cs +396 -0
  855. package/unitypkg/Editor/Tools/graphics/bake-cancel.cs +27 -0
  856. package/unitypkg/Editor/Tools/graphics/bake-clear.cs +31 -0
  857. package/unitypkg/Editor/Tools/graphics/bake-reflection-probe.cs +35 -0
  858. package/unitypkg/Editor/Tools/graphics/bake-settings.cs +131 -0
  859. package/unitypkg/Editor/Tools/graphics/bake-start.cs +27 -0
  860. package/unitypkg/Editor/Tools/graphics/bake-status.cs +31 -0
  861. package/unitypkg/Editor/Tools/graphics/light-probe-group.cs +56 -0
  862. package/unitypkg/Editor/Tools/graphics/pipeline-info.cs +19 -0
  863. package/unitypkg/Editor/Tools/graphics/pipeline-quality.cs +24 -0
  864. package/unitypkg/Editor/Tools/graphics/pipeline-settings.cs +46 -0
  865. package/unitypkg/Editor/Tools/graphics/probe-positions.cs +58 -0
  866. package/unitypkg/Editor/Tools/graphics/quality.cs +85 -0
  867. package/unitypkg/Editor/Tools/graphics/reflection-probe.cs +73 -0
  868. package/unitypkg/Editor/Tools/graphics/scene-debug.cs +37 -0
  869. package/unitypkg/Editor/Tools/graphics/settings.cs +104 -0
  870. package/unitypkg/Editor/Tools/graphics/skybox-get.cs +33 -0
  871. package/unitypkg/Editor/Tools/graphics/skybox-set-ambient.cs +24 -0
  872. package/unitypkg/Editor/Tools/graphics/skybox-set-fog.cs +24 -0
  873. package/unitypkg/Editor/Tools/graphics/skybox-set-material.cs +33 -0
  874. package/unitypkg/Editor/Tools/graphics/skybox-set-properties.cs +51 -0
  875. package/unitypkg/Editor/Tools/graphics/skybox-set-reflection.cs +31 -0
  876. package/unitypkg/Editor/Tools/graphics/skybox-set-sun.cs +35 -0
  877. package/unitypkg/Editor/Tools/graphics/stats-counters.cs +28 -0
  878. package/unitypkg/Editor/Tools/graphics/stats-memory.cs +21 -0
  879. package/unitypkg/Editor/Tools/graphics/stats.cs +17 -0
  880. package/unitypkg/Editor/Tools/graphics/volume.cs +59 -0
  881. package/unitypkg/Editor/Tools/instances/list.cs +71 -0
  882. package/unitypkg/Editor/Tools/material/MaterialToolSupport.cs +401 -0
  883. package/unitypkg/Editor/Tools/material/assign.cs +124 -0
  884. package/unitypkg/Editor/Tools/material/create.cs +82 -0
  885. package/unitypkg/Editor/Tools/material/info.cs +55 -0
  886. package/unitypkg/Editor/Tools/material/set-renderer-color.cs +108 -0
  887. package/unitypkg/Editor/Tools/material/set.cs +114 -0
  888. package/unitypkg/Editor/Tools/navmesh/NavMeshToolSupport.cs +404 -0
  889. package/unitypkg/Editor/Tools/navmesh/bake-clear.cs +70 -0
  890. package/unitypkg/Editor/Tools/navmesh/settings/set.cs +73 -0
  891. package/unitypkg/Editor/Tools/navmesh/settings.cs +37 -0
  892. package/unitypkg/Editor/Tools/object/ObjectToolSupport.cs +99 -0
  893. package/unitypkg/Editor/Tools/object/get-data.cs +69 -0
  894. package/unitypkg/Editor/Tools/object/modify.cs +126 -0
  895. package/unitypkg/Editor/Tools/occlusion/OcclusionToolSupport.cs +422 -0
  896. package/unitypkg/Editor/Tools/occlusion/bake-clear.cs +67 -0
  897. package/unitypkg/Editor/Tools/physics/PhysicsJointToolSupport.cs +13 -0
  898. package/unitypkg/Editor/Tools/physics/PhysicsToolSupport.cs +389 -0
  899. package/unitypkg/Editor/Tools/physics/assign-material.cs +88 -0
  900. package/unitypkg/Editor/Tools/physics/collision-matrix.cs +90 -0
  901. package/unitypkg/Editor/Tools/physics/force.cs +127 -0
  902. package/unitypkg/Editor/Tools/physics/joint/add.cs +99 -0
  903. package/unitypkg/Editor/Tools/physics/joint/remove.cs +4 -0
  904. package/unitypkg/Editor/Tools/physics/linecast.cs +59 -0
  905. package/unitypkg/Editor/Tools/physics/material.cs +73 -0
  906. package/unitypkg/Editor/Tools/physics/overlap.cs +84 -0
  907. package/unitypkg/Editor/Tools/physics/raycast-all.cs +67 -0
  908. package/unitypkg/Editor/Tools/physics/raycast.cs +96 -0
  909. package/unitypkg/Editor/Tools/physics/rigidbody.cs +116 -0
  910. package/unitypkg/Editor/Tools/physics/settings.cs +116 -0
  911. package/unitypkg/Editor/Tools/physics/shapecast.cs +127 -0
  912. package/unitypkg/Editor/Tools/physics/simulation.cs +89 -0
  913. package/unitypkg/Editor/Tools/physics/validate.cs +67 -0
  914. package/unitypkg/Editor/Tools/prefab/PrefabOverrideToolSupport.cs +355 -0
  915. package/unitypkg/Editor/Tools/prefab/PrefabToolSupport.cs +446 -0
  916. package/unitypkg/Editor/Tools/prefab/create.cs +125 -0
  917. package/unitypkg/Editor/Tools/prefab/hierarchy.cs +157 -0
  918. package/unitypkg/Editor/Tools/prefab/info.cs +44 -0
  919. package/unitypkg/Editor/Tools/prefab/instantiate.cs +106 -0
  920. package/unitypkg/Editor/Tools/prefab/modify.cs +112 -0
  921. package/unitypkg/Editor/Tools/prefab/overrides/apply.cs +51 -0
  922. package/unitypkg/Editor/Tools/prefab/overrides/revert.cs +51 -0
  923. package/unitypkg/Editor/Tools/prefab/stage-close.cs +67 -0
  924. package/unitypkg/Editor/Tools/prefab/stage-open.cs +69 -0
  925. package/unitypkg/Editor/Tools/prefab/stage-save.cs +64 -0
  926. package/unitypkg/Editor/Tools/prefab/stage.cs +68 -0
  927. package/unitypkg/Editor/Tools/prefab/unpack.cs +80 -0
  928. package/unitypkg/Editor/Tools/prefab/variant/create.cs +53 -0
  929. package/unitypkg/Editor/Tools/profiler/ProfilerFrameDebuggerSupport.cs +68 -0
  930. package/unitypkg/Editor/Tools/profiler/ProfilerMemorySnapshotSupport.cs +30 -0
  931. package/unitypkg/Editor/Tools/profiler/ProfilerToolSupport.cs +515 -0
  932. package/unitypkg/Editor/Tools/profiler/areas.cs +36 -0
  933. package/unitypkg/Editor/Tools/profiler/capture.cs +188 -0
  934. package/unitypkg/Editor/Tools/profiler/clear.cs +57 -0
  935. package/unitypkg/Editor/Tools/profiler/counter.cs +34 -0
  936. package/unitypkg/Editor/Tools/profiler/deep.cs +48 -0
  937. package/unitypkg/Editor/Tools/profiler/export.cs +85 -0
  938. package/unitypkg/Editor/Tools/profiler/frame-debugger/disable.cs +53 -0
  939. package/unitypkg/Editor/Tools/profiler/frame-debugger/enable.cs +66 -0
  940. package/unitypkg/Editor/Tools/profiler/frame-debugger/events.cs +140 -0
  941. package/unitypkg/Editor/Tools/profiler/frame.cs +38 -0
  942. package/unitypkg/Editor/Tools/profiler/hierarchy.cs +183 -0
  943. package/unitypkg/Editor/Tools/profiler/load.cs +85 -0
  944. package/unitypkg/Editor/Tools/profiler/memory-snapshot/compare.cs +78 -0
  945. package/unitypkg/Editor/Tools/profiler/memory-snapshot/list.cs +73 -0
  946. package/unitypkg/Editor/Tools/profiler/memory-snapshot/take.cs +147 -0
  947. package/unitypkg/Editor/Tools/profiler/memory.cs +34 -0
  948. package/unitypkg/Editor/Tools/profiler/module-enable.cs +52 -0
  949. package/unitypkg/Editor/Tools/profiler/modules.cs +33 -0
  950. package/unitypkg/Editor/Tools/profiler/object-memory.cs +49 -0
  951. package/unitypkg/Editor/Tools/profiler/pause.cs +49 -0
  952. package/unitypkg/Editor/Tools/profiler/rendering-stats.cs +109 -0
  953. package/unitypkg/Editor/Tools/profiler/script-stats.cs +35 -0
  954. package/unitypkg/Editor/Tools/profiler/start.cs +55 -0
  955. package/unitypkg/Editor/Tools/profiler/status.cs +36 -0
  956. package/unitypkg/Editor/Tools/profiler/stop.cs +53 -0
  957. package/unitypkg/Editor/Tools/project/ProjectSettingsReader.cs +31 -0
  958. package/unitypkg/Editor/Tools/project/ProjectSettingsToolSupport.cs +757 -0
  959. package/unitypkg/Editor/Tools/project/ProjectTagLayerToolSupport.cs +23 -0
  960. package/unitypkg/Editor/Tools/project/audio-settings/set.cs +35 -0
  961. package/unitypkg/Editor/Tools/project/audio-settings.cs +31 -0
  962. package/unitypkg/Editor/Tools/project/info.cs +52 -0
  963. package/unitypkg/Editor/Tools/project/input-settings/set.cs +35 -0
  964. package/unitypkg/Editor/Tools/project/input-settings.cs +35 -0
  965. package/unitypkg/Editor/Tools/project/layer/add.cs +3 -0
  966. package/unitypkg/Editor/Tools/project/layer/remove.cs +3 -0
  967. package/unitypkg/Editor/Tools/project/layers.cs +61 -0
  968. package/unitypkg/Editor/Tools/project/player-settings/set.cs +35 -0
  969. package/unitypkg/Editor/Tools/project/player-settings.cs +31 -0
  970. package/unitypkg/Editor/Tools/project/tag/add.cs +3 -0
  971. package/unitypkg/Editor/Tools/project/tag/remove.cs +3 -0
  972. package/unitypkg/Editor/Tools/project/tags.cs +45 -0
  973. package/unitypkg/Editor/Tools/project/time-settings/set.cs +35 -0
  974. package/unitypkg/Editor/Tools/project/time-settings.cs +31 -0
  975. package/unitypkg/Editor/Tools/reflection/method/call.cs +114 -0
  976. package/unitypkg/Editor/Tools/reflection/method/find.cs +72 -0
  977. package/unitypkg/Editor/Tools/reflection/type/schema.cs +56 -0
  978. package/unitypkg/Editor/Tools/scene/SceneToolSupport.cs +181 -0
  979. package/unitypkg/Editor/Tools/scene/active.cs +62 -0
  980. package/unitypkg/Editor/Tools/scene/build-settings.cs +69 -0
  981. package/unitypkg/Editor/Tools/scene/create.cs +78 -0
  982. package/unitypkg/Editor/Tools/scene/data.cs +125 -0
  983. package/unitypkg/Editor/Tools/scene/gameobject/component.cs +63 -0
  984. package/unitypkg/Editor/Tools/scene/gameobject/components.cs +77 -0
  985. package/unitypkg/Editor/Tools/scene/gameobject-support.cs +101 -0
  986. package/unitypkg/Editor/Tools/scene/gameobject.cs +83 -0
  987. package/unitypkg/Editor/Tools/scene/hierarchy.cs +250 -0
  988. package/unitypkg/Editor/Tools/scene/list-opened.cs +77 -0
  989. package/unitypkg/Editor/Tools/scene/load.cs +68 -0
  990. package/unitypkg/Editor/Tools/scene/move-object.cs +122 -0
  991. package/unitypkg/Editor/Tools/scene/save.cs +231 -0
  992. package/unitypkg/Editor/Tools/scene/set-active.cs +76 -0
  993. package/unitypkg/Editor/Tools/scene/unload.cs +109 -0
  994. package/unitypkg/Editor/Tools/scene/validate.cs +115 -0
  995. package/unitypkg/Editor/Tools/scene/view-frame.cs +218 -0
  996. package/unitypkg/Editor/Tools/screenshot/EditorElementCaptureToolSupport.cs +181 -0
  997. package/unitypkg/Editor/Tools/screenshot/ScreenshotToolSupport.cs +196 -0
  998. package/unitypkg/Editor/Tools/screenshot/editor-element.cs +87 -0
  999. package/unitypkg/Editor/Tools/screenshot/game-view.cs +116 -0
  1000. package/unitypkg/Editor/Tools/screenshot/isolated-object.cs +93 -0
  1001. package/unitypkg/Editor/Tools/screenshot/orbit.cs +103 -0
  1002. package/unitypkg/Editor/Tools/screenshot/scene-view.cs +99 -0
  1003. package/unitypkg/Editor/Tools/screenshot/screen.cs +89 -0
  1004. package/unitypkg/Editor/Tools/screenshot/surround.cs +181 -0
  1005. package/unitypkg/Editor/Tools/scriptable-object/ScriptableObjectToolSupport.cs +196 -0
  1006. package/unitypkg/Editor/Tools/scriptable-object/create.cs +79 -0
  1007. package/unitypkg/Editor/Tools/scriptable-object/info.cs +49 -0
  1008. package/unitypkg/Editor/Tools/scriptable-object/list-types.cs +103 -0
  1009. package/unitypkg/Editor/Tools/scriptable-object/modify.cs +208 -0
  1010. package/unitypkg/Editor/Tools/shader/ShaderToolSupport.cs +326 -0
  1011. package/unitypkg/Editor/Tools/shader/create.cs +82 -0
  1012. package/unitypkg/Editor/Tools/shader/delete.cs +90 -0
  1013. package/unitypkg/Editor/Tools/shader/get-data.cs +125 -0
  1014. package/unitypkg/Editor/Tools/shader/info.cs +48 -0
  1015. package/unitypkg/Editor/Tools/shader/list.cs +82 -0
  1016. package/unitypkg/Editor/Tools/shader/read.cs +84 -0
  1017. package/unitypkg/Editor/Tools/shader/update.cs +71 -0
  1018. package/unitypkg/Editor/Tools/tests/list.cs +98 -0
  1019. package/unitypkg/Editor/Tools/texture/TextureToolSupport.cs +327 -0
  1020. package/unitypkg/Editor/Tools/texture/create.cs +182 -0
  1021. package/unitypkg/Editor/Tools/texture/delete.cs +89 -0
  1022. package/unitypkg/Editor/Tools/texture/generate.cs +189 -0
  1023. package/unitypkg/Editor/Tools/texture/import-settings.cs +104 -0
  1024. package/unitypkg/Editor/Tools/texture/info.cs +50 -0
  1025. package/unitypkg/Editor/Tools/texture/modify.cs +154 -0
  1026. package/unitypkg/Editor/Tools/texture/sprite.cs +132 -0
  1027. package/unitypkg/Editor/Tools/timeline/TimelineMutationToolSupport.cs +696 -0
  1028. package/unitypkg/Editor/Tools/timeline/TimelineReadToolSupport.cs +439 -0
  1029. package/unitypkg/Editor/Tools/timeline/TimelineToolSupport.cs +203 -0
  1030. package/unitypkg/Editor/Tools/timeline/clip/add.cs +93 -0
  1031. package/unitypkg/Editor/Tools/timeline/create.cs +88 -0
  1032. package/unitypkg/Editor/Tools/timeline/info.cs +54 -0
  1033. package/unitypkg/Editor/Tools/timeline/track/add.cs +91 -0
  1034. package/unitypkg/Editor/Tools/ui/UiToolSupport.cs +162 -0
  1035. package/unitypkg/Editor/Tools/ui/UiUguiToolSupport.cs +24 -0
  1036. package/unitypkg/Editor/Tools/ui/attach-document.cs +46 -0
  1037. package/unitypkg/Editor/Tools/ui/button/create.cs +58 -0
  1038. package/unitypkg/Editor/Tools/ui/canvas/create.cs +40 -0
  1039. package/unitypkg/Editor/Tools/ui/create-panel-settings.cs +44 -0
  1040. package/unitypkg/Editor/Tools/ui/detach-document.cs +41 -0
  1041. package/unitypkg/Editor/Tools/ui/document/create.cs +49 -0
  1042. package/unitypkg/Editor/Tools/ui/document/delete.cs +33 -0
  1043. package/unitypkg/Editor/Tools/ui/document/info.cs +33 -0
  1044. package/unitypkg/Editor/Tools/ui/document/update.cs +36 -0
  1045. package/unitypkg/Editor/Tools/ui/get-visual-tree.cs +34 -0
  1046. package/unitypkg/Editor/Tools/ui/hierarchy.cs +27 -0
  1047. package/unitypkg/Editor/Tools/ui/image/create.cs +47 -0
  1048. package/unitypkg/Editor/Tools/ui/link-stylesheet.cs +54 -0
  1049. package/unitypkg/Editor/Tools/ui/list-documents.cs +34 -0
  1050. package/unitypkg/Editor/Tools/ui/modify-visual-element.cs +76 -0
  1051. package/unitypkg/Editor/Tools/ui/render-preview.cs +128 -0
  1052. package/unitypkg/Editor/Tools/ui/text/create.cs +45 -0
  1053. package/unitypkg/Editor/Tools/ui/update-panel-settings.cs +49 -0
  1054. package/unitypkg/Editor/UnityCliBridge.cs +431 -0
  1055. package/unitypkg/Editor/UnityCliBridgeBuildInfo.cs +9 -0
  1056. package/unitypkg/Runtime/Infrastructure/UnityCliRuntimeBridge.cs +580 -0
  1057. package/unitypkg/Runtime/Infrastructure/UnityCliRuntimeJson.cs +232 -0
  1058. package/unitypkg/Runtime/Infrastructure/UnityCliRuntimeRegistry.cs +297 -0
  1059. package/unitypkg/Runtime/Tools/UnityCliRuntimeTools.cs +701 -0
  1060. package/unitypkg/Runtime/UnityCli.Runtime.asmdef +14 -0
  1061. package/unitypkg/Shared/UnityCli.Shared.asmdef +14 -0
  1062. package/unitypkg/Shared/UnityCliAdmissionPool.cs +426 -0
  1063. package/unitypkg/Tests/Editor/UnityCli.Editor.Tests.asmdef +15 -0
  1064. package/unitypkg/Tests/Editor/UnityCliAdmissionPoolTests.cs +262 -0
  1065. package/unitypkg/UnityCli.Editor.asmdef +26 -0
  1066. package/unitypkg/package.json +11 -0
@@ -0,0 +1,854 @@
1
+ #if UNITY_EDITOR
2
+ using System;
3
+ using System.Collections.Generic;
4
+ using System.Globalization;
5
+ using System.Linq;
6
+ using System.Reflection;
7
+ using UnityEditor;
8
+ using UnityEditor.SceneManagement;
9
+ using UnityEngine;
10
+
11
+ namespace UnityCli.Cinemachine
12
+ {
13
+ /// <summary>
14
+ /// Cinemachine 工具共享支持层:包探测、目标解析、反射访问、DTO 构造与常见错误。
15
+ /// 不参与工具发现,只服务于各个自包含 IUnityCliTool 实现。
16
+ /// </summary>
17
+ internal static class CinemachineToolSupport
18
+ {
19
+ private static readonly Dictionary<string, string[]> PresetMap = new Dictionary<string, string[]>(StringComparer.OrdinalIgnoreCase)
20
+ {
21
+ { "follow", new[] { "CinemachineFollow", "CinemachineRotationComposer" } },
22
+ { "third_person", new[] { "CinemachineThirdPersonFollow", "CinemachineRotationComposer" } },
23
+ { "freelook", new[] { "CinemachineOrbitalFollow", "CinemachineRotationComposer" } },
24
+ { "dolly", new[] { "CinemachineSplineDolly", "CinemachineRotationComposer" } },
25
+ { "static", new[] { null, "CinemachineHardLookAt" } },
26
+ { "top_down", new[] { "CinemachineFollow", null } },
27
+ { "side_scroller", new[] { "CinemachinePositionComposer", null } }
28
+ };
29
+
30
+ // 对外接受 CM3 组件名称;CM2 项目自动落到语义等价的 pipeline component。
31
+ private static readonly Dictionary<string, string[]> ComponentTypeAliases = new Dictionary<string, string[]>(StringComparer.OrdinalIgnoreCase)
32
+ {
33
+ { "CinemachineFollow", new[] { "CinemachineTransposer" } },
34
+ { "CinemachineRotationComposer", new[] { "CinemachineComposer" } },
35
+ { "CinemachineThirdPersonFollow", new[] { "Cinemachine3rdPersonFollow" } },
36
+ { "CinemachineOrbitalFollow", new[] { "CinemachineOrbitalTransposer" } },
37
+ { "CinemachineSplineDolly", new[] { "CinemachineTrackedDolly" } },
38
+ { "CinemachinePositionComposer", new[] { "CinemachineFramingTransposer" } }
39
+ };
40
+
41
+ private static Type cameraType;
42
+ private static Type brainType;
43
+ private static Type extensionBaseType;
44
+ private static Type coreType;
45
+ private static bool? hasCinemachine;
46
+
47
+ public static IReadOnlyDictionary<string, string[]> Presets => PresetMap;
48
+ public static Type CameraType => EnsureDetected().CameraType;
49
+ public static Type BrainType => EnsureDetected().BrainType;
50
+ public static Type ExtensionBaseType => EnsureDetected().ExtensionBaseType;
51
+ public static Type CoreType => EnsureDetected().CoreType;
52
+
53
+ public static void EnsureEditorReady(string toolName)
54
+ {
55
+ GameObjectToolSupport.EnsureEditorNotBusy(toolName);
56
+ }
57
+
58
+ /// <summary>
59
+ /// 运行时探测 Cinemachine 类型,避免 core 对可选包建立编译期依赖。
60
+ /// </summary>
61
+ public static DetectionState EnsureDetected()
62
+ {
63
+ if (hasCinemachine.HasValue)
64
+ {
65
+ return BuildDetectionState();
66
+ }
67
+
68
+ cameraType = GameObjectToolSupport.FindType("Unity.Cinemachine.CinemachineCamera")
69
+ ?? GameObjectToolSupport.FindType("Cinemachine.CinemachineVirtualCamera");
70
+ brainType = GameObjectToolSupport.FindType("Unity.Cinemachine.CinemachineBrain")
71
+ ?? GameObjectToolSupport.FindType("Cinemachine.CinemachineBrain");
72
+ extensionBaseType = GameObjectToolSupport.FindType("Unity.Cinemachine.CinemachineExtension")
73
+ ?? GameObjectToolSupport.FindType("Cinemachine.CinemachineExtension");
74
+ coreType = GameObjectToolSupport.FindType("Unity.Cinemachine.CinemachineCore")
75
+ ?? GameObjectToolSupport.FindType("Cinemachine.CinemachineCore");
76
+ hasCinemachine = cameraType != null && brainType != null;
77
+ return BuildDetectionState();
78
+ }
79
+
80
+ public static void EnsureCinemachineAvailable()
81
+ {
82
+ var detection = EnsureDetected();
83
+ if (detection.Installed)
84
+ {
85
+ return;
86
+ }
87
+
88
+ var details = UnityCliSerializer.Serialize(new Dictionary<string, object>
89
+ {
90
+ { "packageName", "com.unity.cinemachine" },
91
+ { "available", false }
92
+ });
93
+ throw new UnityCliBridge.BridgeCommandException(
94
+ "E_CINEMACHINE_PACKAGE_NOT_FOUND",
95
+ "Cinemachine package (com.unity.cinemachine) is not installed.",
96
+ details,
97
+ new[]
98
+ {
99
+ "Install com.unity.cinemachine via Unity Package Manager or Packages/manifest.json.",
100
+ "Run unitycli extensions install cinemachine --project <path> after the package is available."
101
+ });
102
+ }
103
+
104
+ public static CinemachinePackageStatus BuildPackageStatus()
105
+ {
106
+ var detection = EnsureDetected();
107
+ return new CinemachinePackageStatus
108
+ {
109
+ Installed = detection.Installed,
110
+ CmCameraTypeAvailable = detection.CameraType != null,
111
+ CmBrainTypeAvailable = detection.BrainType != null,
112
+ CmExtensionTypeAvailable = detection.ExtensionBaseType != null,
113
+ };
114
+ }
115
+
116
+ public static GameObject ResolveRequiredTarget(string target, string message)
117
+ {
118
+ return GameObjectToolSupport.ResolveUniqueTarget(target, message);
119
+ }
120
+
121
+ /// <summary>解析可选请求字段;字段提供时必须唯一命中,不能静默丢弃请求。</summary>
122
+ public static GameObject ResolveOptionalTarget(string target)
123
+ {
124
+ if (string.IsNullOrWhiteSpace(target))
125
+ {
126
+ return null;
127
+ }
128
+
129
+ var matches = new List<GameObject>();
130
+ foreach (var gameObject in UnityEngine.Object.FindObjectsOfType<GameObject>(true))
131
+ {
132
+ if (gameObject.name == target
133
+ || gameObject.GetInstanceID().ToString(CultureInfo.InvariantCulture) == target
134
+ || GameObjectToolSupport.HierarchyPath(gameObject) == target)
135
+ {
136
+ matches.Add(gameObject);
137
+ }
138
+ }
139
+
140
+ if (matches.Count > 1)
141
+ {
142
+ throw new UnityCliBridge.BridgeCommandException(
143
+ "E_TARGET_AMBIGUOUS",
144
+ "Multiple GameObjects matched: " + target,
145
+ "Pass a hierarchy path or instance id.");
146
+ }
147
+
148
+ if (matches.Count == 0)
149
+ {
150
+ throw new UnityCliBridge.BridgeCommandException(
151
+ "E_TARGET_NOT_FOUND",
152
+ "GameObject not found: " + target,
153
+ "Pass an existing GameObject name, hierarchy path, or instance id.");
154
+ }
155
+ return matches[0];
156
+ }
157
+
158
+ public static Component RequireCameraComponent(GameObject target)
159
+ {
160
+ var component = target.GetComponent(CameraType);
161
+ if (component != null)
162
+ {
163
+ return component;
164
+ }
165
+
166
+ throw new UnityCliBridge.BridgeCommandException(
167
+ "E_CINEMACHINE_COMPONENT_NOT_FOUND",
168
+ "GameObject does not have a CinemachineCamera component: " + GameObjectToolSupport.HierarchyPath(target),
169
+ "Pass a target with a CinemachineCamera component or create one with cinemachine.create.");
170
+ }
171
+
172
+ public static Component RequireBrainComponent(GameObject target)
173
+ {
174
+ var component = target.GetComponent(BrainType);
175
+ if (component != null)
176
+ {
177
+ return component;
178
+ }
179
+
180
+ throw new UnityCliBridge.BridgeCommandException(
181
+ "E_CINEMACHINE_BRAIN_NOT_FOUND",
182
+ "GameObject does not have CinemachineBrain: " + GameObjectToolSupport.HierarchyPath(target),
183
+ "Use cinemachine.brain.ensure to add one.");
184
+ }
185
+
186
+ public static GameObject ResolveBrainOwner(string target)
187
+ {
188
+ if (!string.IsNullOrWhiteSpace(target))
189
+ {
190
+ return ResolveRequiredTarget(target, "Pass a GameObject name, hierarchy path or instance id.");
191
+ }
192
+
193
+ var owner = FindBrainOwner();
194
+ if (owner != null)
195
+ {
196
+ return owner;
197
+ }
198
+
199
+ throw new UnityCliBridge.BridgeCommandException(
200
+ "E_CINEMACHINE_BRAIN_NOT_FOUND",
201
+ "No CinemachineBrain found in the scene.",
202
+ "Use cinemachine.brain.ensure to add one.");
203
+ }
204
+
205
+ public static GameObject FindOrCreateBrainOwnerCandidate()
206
+ {
207
+ var existing = FindBrainOwner();
208
+ if (existing != null)
209
+ {
210
+ return existing;
211
+ }
212
+
213
+ var mainCamera = Camera.main;
214
+ return mainCamera != null ? mainCamera.gameObject : null;
215
+ }
216
+
217
+ public static GameObject FindBrainOwner()
218
+ {
219
+ EnsureDetected();
220
+ if (brainType == null)
221
+ {
222
+ return null;
223
+ }
224
+
225
+ foreach (var item in Resources.FindObjectsOfTypeAll(brainType))
226
+ {
227
+ var component = item as Component;
228
+ if (component == null || component.gameObject == null || EditorUtility.IsPersistent(component.gameObject))
229
+ {
230
+ continue;
231
+ }
232
+ return component.gameObject;
233
+ }
234
+
235
+ return null;
236
+ }
237
+
238
+ /// <summary>在创建相机前确认当前 Cinemachine 版本提供可写 priority contract。</summary>
239
+ public static void RequirePriorityWritable(Type ownerType)
240
+ {
241
+ var flags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic;
242
+ var direct = ownerType?.GetProperty("Priority", flags);
243
+ if (direct != null && direct.CanWrite && direct.PropertyType == typeof(int)) return;
244
+ var rootField = ownerType?.GetField("Priority", flags) ?? ownerType?.GetField("m_Priority", flags);
245
+ var rootProperty = direct;
246
+ var priorityType = rootField?.FieldType ?? rootProperty?.PropertyType;
247
+ if (priorityType != null)
248
+ {
249
+ var valueField = priorityType.GetField("Value", flags) ?? priorityType.GetField("m_Value", flags);
250
+ var valueProperty = priorityType.GetProperty("Value", flags) ?? priorityType.GetProperty("m_Value", flags);
251
+ if ((valueField != null && !valueField.IsInitOnly && valueField.FieldType == typeof(int)) || (valueProperty != null && valueProperty.CanWrite && valueProperty.PropertyType == typeof(int))) return;
252
+ }
253
+ throw new UnityCliBridge.BridgeCommandException("E_CINEMACHINE_PRIORITY_PROPERTY_NOT_FOUND", "Cinemachine priority is not writable for the installed package version.", "Use a supported Cinemachine package version.");
254
+ }
255
+
256
+ public static void SetPriority(Component camera, int priority)
257
+ {
258
+ using (var serializedObject = new SerializedObject(camera))
259
+ {
260
+ var priorityProperty = serializedObject.FindProperty("Priority") ?? serializedObject.FindProperty("m_Priority");
261
+ var applied = false;
262
+ if (priorityProperty != null)
263
+ {
264
+ if (priorityProperty.propertyType == SerializedPropertyType.Integer)
265
+ {
266
+ priorityProperty.intValue = priority;
267
+ applied = true;
268
+ }
269
+ else
270
+ {
271
+ var valueProperty = priorityProperty.FindPropertyRelative("Value") ?? priorityProperty.FindPropertyRelative("m_Value");
272
+ if (valueProperty != null && valueProperty.propertyType == SerializedPropertyType.Integer)
273
+ {
274
+ valueProperty.intValue = priority;
275
+ applied = true;
276
+ }
277
+ }
278
+ }
279
+ if (!applied)
280
+ {
281
+ var directProperty = camera.GetType().GetProperty("Priority", BindingFlags.Instance | BindingFlags.Public);
282
+ if (directProperty != null && directProperty.CanWrite && directProperty.PropertyType == typeof(int))
283
+ {
284
+ directProperty.SetValue(camera, priority, null);
285
+ applied = true;
286
+ }
287
+ }
288
+ if (!applied) throw new UnityCliBridge.BridgeCommandException("E_CINEMACHINE_PRIORITY_PROPERTY_NOT_FOUND", "Cinemachine priority is not writable.", "Use a supported Cinemachine package version.");
289
+ serializedObject.ApplyModifiedProperties();
290
+ }
291
+ }
292
+
293
+ public static void SetPriorityEnabled(Component camera, bool enabled)
294
+ {
295
+ using (var serializedObject = new SerializedObject(camera))
296
+ {
297
+ var priorityProperty = serializedObject.FindProperty("Priority") ?? serializedObject.FindProperty("m_Priority");
298
+ if (priorityProperty != null)
299
+ {
300
+ var enabledProperty = priorityProperty.FindPropertyRelative("Enabled") ?? priorityProperty.FindPropertyRelative("m_Enabled");
301
+ if (enabledProperty != null)
302
+ {
303
+ enabledProperty.boolValue = enabled;
304
+ }
305
+ }
306
+ serializedObject.ApplyModifiedProperties();
307
+ }
308
+ }
309
+
310
+ public static void RequirePriorityEnabledWritable(Component camera)
311
+ {
312
+ using (var serializedObject = new SerializedObject(camera))
313
+ {
314
+ var priority = serializedObject.FindProperty("Priority") ?? serializedObject.FindProperty("m_Priority");
315
+ var enabledProperty = priority?.FindPropertyRelative("Enabled") ?? priority?.FindPropertyRelative("m_Enabled");
316
+ if (enabledProperty == null || enabledProperty.propertyType != SerializedPropertyType.Boolean)
317
+ throw new UnityCliBridge.BridgeCommandException("E_CINEMACHINE_PRIORITY_PROPERTY_NOT_FOUND", "Cinemachine priority enabled flag is not writable for the installed package version.", "The enabled option requires Cinemachine 3 PrioritySettings support.");
318
+ }
319
+ }
320
+
321
+ public static void SwapPipelineComponent(GameObject gameObject, Component camera, string stage, Type newType)
322
+ {
323
+ RequirePipelineComponentStage(newType, stage);
324
+ var existing = GetPipelineComponent(camera, stage);
325
+ if (existing != null && existing.GetType() == newType) return;
326
+ RemovePipelineComponent(camera, existing);
327
+
328
+ // Cinemachine 2.x 通过泛型 pipeline API 管理隐藏子对象;直接 AddComponent 会破坏其它 stage。
329
+ var cameraMethods = camera.GetType().GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
330
+ var add = cameraMethods.FirstOrDefault(method => method.Name == "AddCinemachineComponent" && method.IsGenericMethodDefinition && method.GetParameters().Length == 0);
331
+ if (add != null) add.MakeGenericMethod(newType).Invoke(camera, null);
332
+ else UnityCliSceneMutation.AddComponent(gameObject, newType);
333
+ }
334
+
335
+ // Prefer actual Cinemachine stage metadata. CM2 exposes no usable static metadata for all
336
+ // components, so its known legal types are restricted by assembly and fully-qualified name.
337
+ public static void RequirePipelineComponentStage(Type componentType, string stage)
338
+ {
339
+ if (componentType == null || !HasPipelineStage(componentType, stage))
340
+ throw new UnityCliBridge.BridgeCommandException("E_CINEMACHINE_COMPONENT_STAGE_MISMATCH", "Cinemachine component type does not belong to the requested " + stage + " stage: " + (componentType?.FullName ?? "<null>"), "Use a supported Body, Aim, or Noise pipeline component for the installed Cinemachine version.");
341
+ }
342
+
343
+ private static bool HasPipelineStage(Type componentType, string stage)
344
+ {
345
+ var stageProperty = componentType.GetProperty("Stage", BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic);
346
+ if (stageProperty != null && stageProperty.CanRead)
347
+ {
348
+ var declaredStage = stageProperty.GetValue(null, null);
349
+ if (declaredStage != null) return string.Equals(declaredStage.ToString(), stage, StringComparison.Ordinal);
350
+ }
351
+ var assemblyName = componentType.Assembly.GetName().Name ?? string.Empty;
352
+ if (assemblyName.IndexOf("Cinemachine", StringComparison.OrdinalIgnoreCase) < 0) return false;
353
+ var legal = new Dictionary<string, string[]>(StringComparer.Ordinal)
354
+ {
355
+ { "Body", new[] { "Unity.Cinemachine.CinemachineFollow", "Unity.Cinemachine.CinemachineThirdPersonFollow", "Unity.Cinemachine.CinemachineOrbitalFollow", "Unity.Cinemachine.CinemachineSplineDolly", "Unity.Cinemachine.CinemachinePositionComposer", "Cinemachine.CinemachineTransposer", "Cinemachine.Cinemachine3rdPersonFollow", "Cinemachine.CinemachineOrbitalTransposer", "Cinemachine.CinemachineTrackedDolly", "Cinemachine.CinemachineFramingTransposer", "Cinemachine.CinemachineHardLockToTarget", "Cinemachine.CinemachineHardLockToTargetWithWorldUp", "Cinemachine.CinemachineSameAsFollowTarget" } },
356
+ { "Aim", new[] { "Unity.Cinemachine.CinemachineRotationComposer", "Unity.Cinemachine.CinemachineHardLookAt", "Cinemachine.CinemachineComposer", "Cinemachine.CinemachineHardLookAt", "Cinemachine.CinemachinePOV", "Cinemachine.CinemachineSameAsFollowTarget", "Cinemachine.CinemachineGroupComposer" } },
357
+ { "Noise", new[] { "Unity.Cinemachine.CinemachineBasicMultiChannelPerlin", "Cinemachine.CinemachineBasicMultiChannelPerlin" } }
358
+ };
359
+ return legal.TryGetValue(stage, out var allowed) && allowed.Contains(componentType.FullName);
360
+ }
361
+
362
+ /// <summary>通过 Cinemachine pipeline API 删除 stage component,并为无该 API 的版本提供普通组件路径。</summary>
363
+ public static void RemovePipelineComponent(Component camera, Component existing)
364
+ {
365
+ if (existing == null) return;
366
+ var cameraMethods = camera.GetType().GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
367
+ var destroy = cameraMethods.FirstOrDefault(method => method.Name == "DestroyCinemachineComponent" && method.IsGenericMethodDefinition && method.GetParameters().Length == 0);
368
+ if (destroy != null) destroy.MakeGenericMethod(existing.GetType()).Invoke(camera, null);
369
+ else UnityCliSceneMutation.DestroyObject(existing);
370
+ }
371
+
372
+ public static Component GetPipelineComponent(Component camera, string stage)
373
+ {
374
+ EnsureDetected();
375
+ if (coreType == null || cameraType == null)
376
+ {
377
+ return null;
378
+ }
379
+
380
+ var stageEnumType = coreType.GetNestedType("Stage");
381
+ if (stageEnumType == null)
382
+ {
383
+ return null;
384
+ }
385
+
386
+ if (!Enum.IsDefined(stageEnumType, stage))
387
+ throw new UnityCliBridge.BridgeCommandException("E_CINEMACHINE_STAGE_NOT_FOUND", "Cinemachine stage is unavailable: " + stage, "Use Body, Aim, or Noise when supported by the installed package version.");
388
+ var stageValue = Enum.Parse(stageEnumType, stage);
389
+ var method = FindPublicInstanceMethod(camera.GetType(), "GetCinemachineComponent", stageEnumType);
390
+ return method == null ? null : method.Invoke(camera, new[] { stageValue }) as Component;
391
+ }
392
+
393
+ internal sealed class ComponentMemberPlan
394
+ {
395
+ internal string RequestedName { get; set; }
396
+ internal PropertyInfo Property { get; set; }
397
+ internal FieldInfo Field { get; set; }
398
+ internal object ConvertedValue { get; set; }
399
+ }
400
+
401
+ /// <summary>在 effect 前解析最终组件类型、可写 member 与 typed value。</summary>
402
+ public static ComponentMemberPlan PrepareComponentMember(Type componentType, string propertyName, string value)
403
+ {
404
+ if (componentType == null || string.IsNullOrWhiteSpace(propertyName) || value == null)
405
+ throw new UnityCliBridge.BridgeCommandException("E_CINEMACHINE_COMPONENT_PROPERTY_REQUIRED", "Component type, property and value are required.", "Pass property and value together.");
406
+ var flags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic;
407
+ var names = new[] { propertyName, "m_" + char.ToUpperInvariant(propertyName[0]) + propertyName.Substring(1) };
408
+ foreach (var name in names)
409
+ {
410
+ var property = componentType.GetProperty(name, flags);
411
+ if (property != null && property.CanRead && property.CanWrite && property.GetIndexParameters().Length == 0)
412
+ return ConvertMemberPlan(propertyName, property, null, value, property.PropertyType);
413
+ var field = componentType.GetField(name, flags);
414
+ if (field != null && !field.IsInitOnly)
415
+ return ConvertMemberPlan(propertyName, null, field, value, field.FieldType);
416
+ }
417
+ throw new UnityCliBridge.BridgeCommandException("E_CINEMACHINE_COMPONENT_PROPERTY_NOT_FOUND", "Writable Cinemachine component property not found: " + propertyName, "Pass a public or serialized field exposed by the installed Cinemachine component type.");
418
+ }
419
+
420
+ /// <summary>按版本别名依次解析第一个可写 member;所有转换仍在 effect 前完成。</summary>
421
+ public static ComponentMemberPlan PrepareFirstComponentMember(Type componentType, string value, params string[] names)
422
+ {
423
+ foreach (var name in names ?? new string[0])
424
+ {
425
+ try { return PrepareComponentMember(componentType, name, value); }
426
+ catch (UnityCliBridge.BridgeCommandException exception) when (exception.Code == "E_CINEMACHINE_COMPONENT_PROPERTY_NOT_FOUND") { }
427
+ }
428
+ throw new UnityCliBridge.BridgeCommandException("E_CINEMACHINE_COMPONENT_PROPERTY_NOT_FOUND", "No compatible Cinemachine member exists for the installed package version.", "Use a supported Cinemachine package version.");
429
+ }
430
+
431
+ /// <summary>为 UnityEngine.Object 等非字符串字段准备 typed member plan。</summary>
432
+ public static ComponentMemberPlan PrepareFirstComponentObjectMember(Type componentType, object value, params string[] names)
433
+ {
434
+ var flags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic;
435
+ foreach (var name in names ?? new string[0])
436
+ {
437
+ var property = componentType.GetProperty(name, flags);
438
+ if (property != null && property.CanRead && property.CanWrite && property.GetIndexParameters().Length == 0 && (value == null || property.PropertyType.IsInstanceOfType(value)))
439
+ return new ComponentMemberPlan { RequestedName = name, Property = property, ConvertedValue = value };
440
+ var field = componentType.GetField(name, flags);
441
+ if (field != null && !field.IsInitOnly && (value == null || field.FieldType.IsInstanceOfType(value)))
442
+ return new ComponentMemberPlan { RequestedName = name, Field = field, ConvertedValue = value };
443
+ }
444
+ throw new UnityCliBridge.BridgeCommandException("E_CINEMACHINE_COMPONENT_PROPERTY_NOT_FOUND", "No compatible Cinemachine object member exists for the installed package version.", "Use a supported Cinemachine package version.");
445
+ }
446
+
447
+ /// <summary>为相机目标准备公开属性或序列化字段的可写 member plan。</summary>
448
+ internal static ComponentMemberPlan PrepareComponentObjectMember(Type componentType, string memberName, object value, string errorCode)
449
+ {
450
+ try
451
+ {
452
+ return PrepareFirstComponentObjectMember(componentType, value, memberName, "m_" + memberName);
453
+ }
454
+ catch (UnityCliBridge.BridgeCommandException exception) when (exception.Code == "E_CINEMACHINE_COMPONENT_PROPERTY_NOT_FOUND")
455
+ {
456
+ throw new UnityCliBridge.BridgeCommandException(errorCode, "Cinemachine " + memberName + " cannot be written.", "Use a supported Cinemachine camera version.");
457
+ }
458
+ }
459
+
460
+ /// <summary>执行已验证 member plan;此方法不再做业务输入解析。</summary>
461
+ public static void ApplyComponentMember(Component component, ComponentMemberPlan plan)
462
+ {
463
+ if (component == null || plan == null)
464
+ throw new UnityCliBridge.BridgeCommandException("E_CINEMACHINE_COMPONENT_NOT_FOUND", "The prepared Cinemachine component is unavailable during apply.", "Inspect the target virtual camera before retrying.");
465
+ if (plan.Property != null) plan.Property.SetValue(component, plan.ConvertedValue, null);
466
+ else plan.Field.SetValue(component, plan.ConvertedValue);
467
+ }
468
+
469
+ /// <summary>从 fresh component 读取实际 member,逐值证明请求终态。</summary>
470
+ public static void VerifyComponentMember(Component component, ComponentMemberPlan plan, string errorCode)
471
+ {
472
+ if (component == null || plan == null)
473
+ throw new UnityCliBridge.BridgeCommandException(errorCode, "Cinemachine component readback is unavailable.", "Inspect the target virtual camera before retrying.");
474
+ var flags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic;
475
+ object actual;
476
+ if (plan.Property != null)
477
+ {
478
+ var observed = component.GetType().GetProperty(plan.Property.Name, flags);
479
+ actual = observed == null || !observed.CanRead ? null : observed.GetValue(component, null);
480
+ }
481
+ else
482
+ {
483
+ var observed = component.GetType().GetField(plan.Field.Name, flags);
484
+ actual = observed == null ? null : observed.GetValue(component);
485
+ }
486
+ if (!MemberValuesEqual(actual, plan.ConvertedValue))
487
+ throw new UnityCliBridge.BridgeCommandException(errorCode, "Cinemachine component member did not retain the requested value: " + plan.RequestedName, "Inspect the target component before retrying.");
488
+ }
489
+
490
+ private static ComponentMemberPlan ConvertMemberPlan(string requestedName, PropertyInfo property, FieldInfo field, string rawValue, Type valueType)
491
+ {
492
+ try
493
+ {
494
+ return new ComponentMemberPlan { RequestedName = requestedName, Property = property, Field = field, ConvertedValue = ConvertStringValue(rawValue, valueType) };
495
+ }
496
+ catch (UnityCliBridge.BridgeCommandException) { throw; }
497
+ catch (Exception exception)
498
+ {
499
+ throw new UnityCliBridge.BridgeCommandException("E_CINEMACHINE_COMPONENT_VALUE_INVALID", "Invalid value for " + requestedName + ": " + exception.Message, "Pass a value compatible with " + valueType.Name + ".");
500
+ }
501
+ }
502
+
503
+ private static bool MemberValuesEqual(object actual, object expected)
504
+ {
505
+ if (actual is float actualFloat && expected is float expectedFloat) return Mathf.Approximately(actualFloat, expectedFloat);
506
+ if (actual is double actualDouble && expected is double expectedDouble) return Math.Abs(actualDouble - expectedDouble) <= 0.000001d;
507
+ if (actual is Vector2 actualVector2 && expected is Vector2 expectedVector2) return (actualVector2 - expectedVector2).sqrMagnitude <= 0.0000001f;
508
+ if (actual is Vector3 actualVector3 && expected is Vector3 expectedVector3) return (actualVector3 - expectedVector3).sqrMagnitude <= 0.0000001f;
509
+ return Equals(actual, expected);
510
+ }
511
+
512
+ public static Type ResolveComponentType(string typeName)
513
+ {
514
+ EnsureDetected();
515
+ if (string.IsNullOrWhiteSpace(typeName))
516
+ {
517
+ return null;
518
+ }
519
+
520
+ var direct = FindComponentType(typeName);
521
+ if (direct != null)
522
+ {
523
+ return direct;
524
+ }
525
+
526
+ if (ComponentTypeAliases.TryGetValue(typeName, out var aliases))
527
+ {
528
+ foreach (var alias in aliases)
529
+ {
530
+ var compatible = FindComponentType(alias);
531
+ if (compatible != null)
532
+ {
533
+ return compatible;
534
+ }
535
+ }
536
+ }
537
+ return null;
538
+ }
539
+
540
+ /// <summary>在当前 Cinemachine assembly 与已加载程序集内解析一个具体组件类型。</summary>
541
+ private static Type FindComponentType(string typeName)
542
+ {
543
+ if (cameraType != null)
544
+ {
545
+ var assemblyType = cameraType.Assembly.GetType("Unity.Cinemachine." + typeName)
546
+ ?? cameraType.Assembly.GetType("Cinemachine." + typeName);
547
+ if (assemblyType != null)
548
+ {
549
+ return assemblyType;
550
+ }
551
+ }
552
+
553
+ return GameObjectToolSupport.FindType("Unity.Cinemachine." + typeName)
554
+ ?? GameObjectToolSupport.FindType("Cinemachine." + typeName)
555
+ ?? GameObjectToolSupport.FindType(typeName);
556
+ }
557
+
558
+ public static Type RequireComponentType(string typeName, string typeLabel)
559
+ {
560
+ var type = ResolveComponentType(typeName);
561
+ if (type != null)
562
+ {
563
+ return type;
564
+ }
565
+
566
+ throw new UnityCliBridge.BridgeCommandException(
567
+ "E_CINEMACHINE_COMPONENT_TYPE_NOT_FOUND",
568
+ typeLabel + " component type not found in loaded assemblies: " + typeName,
569
+ "Check the Cinemachine package is fully imported and the type name is correct.");
570
+ }
571
+
572
+ public static UnityEngine.Object FindNoiseProfile(string profileName)
573
+ {
574
+ var guids = AssetDatabase.FindAssets(profileName + " t:NoiseSettings");
575
+ if (guids.Length == 0)
576
+ {
577
+ guids = AssetDatabase.FindAssets(profileName + " t:ScriptableObject");
578
+ }
579
+
580
+ foreach (var guid in guids)
581
+ {
582
+ var path = AssetDatabase.GUIDToAssetPath(guid);
583
+ var asset = AssetDatabase.LoadAssetAtPath<UnityEngine.Object>(path);
584
+ if (asset != null)
585
+ {
586
+ return asset;
587
+ }
588
+ }
589
+
590
+ return null;
591
+ }
592
+
593
+
594
+ public static int? BlendStyleToEnumIndex(string styleName)
595
+ {
596
+ if (string.IsNullOrWhiteSpace(styleName))
597
+ {
598
+ return null;
599
+ }
600
+
601
+ var normalized = styleName.Replace("-", "_").ToLowerInvariant();
602
+ var map = new Dictionary<string, int>(StringComparer.Ordinal)
603
+ {
604
+ { "cut", 0 },
605
+ { "ease_in_out", 1 },
606
+ { "ease_in", 2 },
607
+ { "ease_out", 3 },
608
+ { "hard_in", 4 },
609
+ { "hard_out", 5 },
610
+ { "linear", 6 },
611
+ { "soft_in", 7 },
612
+ { "soft_out", 8 }
613
+ };
614
+ int index;
615
+ return map.TryGetValue(normalized, out index) ? (int?)index : null;
616
+ }
617
+
618
+ public static void RequireLensFloat(SerializedProperty parent, string propertyName)
619
+ {
620
+ var property = parent.FindPropertyRelative(propertyName) ?? parent.FindPropertyRelative("m_" + propertyName);
621
+ if (property == null || property.propertyType != SerializedPropertyType.Float)
622
+ throw new UnityCliBridge.BridgeCommandException("E_CINEMACHINE_LENS_PROPERTY_NOT_FOUND", "Writable lens property not found: " + propertyName, "Use a supported Cinemachine camera version.");
623
+ }
624
+
625
+ public static void SetLensFloat(SerializedProperty parent, string propertyName, float value)
626
+ {
627
+ RequireLensFloat(parent, propertyName);
628
+ (parent.FindPropertyRelative(propertyName) ?? parent.FindPropertyRelative("m_" + propertyName)).floatValue = value;
629
+ }
630
+
631
+ public static void RequireFinite(double value, string field)
632
+ {
633
+ if (double.IsNaN(value) || double.IsInfinity(value)) throw new UnityCliBridge.BridgeCommandException("E_CINEMACHINE_VALUE_INVALID", "Invalid " + field + " value.", "Pass a finite numeric value.");
634
+ if (value < -float.MaxValue || value > float.MaxValue) throw new UnityCliBridge.BridgeCommandException("E_CINEMACHINE_VALUE_INVALID", "Invalid " + field + " value.", "Pass a finite value representable as a single-precision float.");
635
+ }
636
+
637
+ public static void VerifyFloat(SerializedObject serializedObject, string pathA, string pathB, float expected, string errorCode)
638
+ {
639
+ serializedObject.Update();
640
+ var property = serializedObject.FindProperty(pathA) ?? serializedObject.FindProperty(pathB);
641
+ if (property == null || property.propertyType != SerializedPropertyType.Float || !Mathf.Approximately(property.floatValue, expected))
642
+ throw new UnityCliBridge.BridgeCommandException(errorCode, "Cinemachine value did not retain the requested value.", "Check the target component and retry.");
643
+ }
644
+
645
+ public static void VerifyLensFloat(SerializedObject serializedObject, string propertyName, float expected)
646
+ {
647
+ serializedObject.Update();
648
+ var lens = serializedObject.FindProperty("Lens") ?? serializedObject.FindProperty("m_Lens");
649
+ var property = lens == null ? null : lens.FindPropertyRelative(propertyName) ?? lens.FindPropertyRelative("m_" + propertyName);
650
+ if (property == null || property.propertyType != SerializedPropertyType.Float || !Mathf.Approximately(property.floatValue, expected))
651
+ throw new UnityCliBridge.BridgeCommandException("E_CINEMACHINE_LENS_VERIFY_FAILED", "Cinemachine lens property did not retain the requested value: " + propertyName, "Check the camera and retry.");
652
+ }
653
+
654
+ public static void MarkDirty(GameObject gameObject)
655
+ {
656
+ if (gameObject.scene.IsValid())
657
+ {
658
+ UnityCliSceneMutation.MarkSceneDirty(gameObject.scene);
659
+ }
660
+ }
661
+
662
+ public static CinemachineObjectInfo BuildObjectInfo(GameObject gameObject, string preset = null)
663
+ {
664
+ var camera = CameraType != null ? gameObject.GetComponent(CameraType) : null;
665
+ var extensions = new List<string>();
666
+ if (camera != null && ExtensionBaseType != null)
667
+ {
668
+ foreach (var extension in gameObject.GetComponents(ExtensionBaseType))
669
+ {
670
+ extensions.Add(extension.GetType().Name);
671
+ }
672
+ }
673
+
674
+ return new CinemachineObjectInfo
675
+ {
676
+ Id = gameObject.GetInstanceID(),
677
+ Name = gameObject.name,
678
+ Path = GameObjectToolSupport.HierarchyPath(gameObject),
679
+ Preset = preset,
680
+ Position = new Vector3Data(gameObject.transform.position),
681
+ HasCinemachineCamera = camera != null,
682
+ Extensions = extensions
683
+ };
684
+ }
685
+
686
+ public static CinemachineBrainInfo BuildBrainInfo(Component brain)
687
+ {
688
+ var type = brain.GetType();
689
+ var activeProperty = type.GetProperty("ActiveVirtualCamera", BindingFlags.Instance | BindingFlags.Public);
690
+ var blendingProperty = type.GetProperty("IsBlending", BindingFlags.Instance | BindingFlags.Public);
691
+ var activeCamera = activeProperty != null ? activeProperty.GetValue(brain, null) : null;
692
+ var activeName = activeCamera != null ? (activeCamera is Component component ? component.gameObject.name : activeCamera.ToString()) : null;
693
+ var isBlending = blendingProperty != null && Convert.ToBoolean(blendingProperty.GetValue(brain, null), CultureInfo.InvariantCulture);
694
+
695
+ return new CinemachineBrainInfo
696
+ {
697
+ Enabled = GameObjectToolSupport.ComponentEnabled(brain),
698
+ HasBrain = true,
699
+ ActiveVirtualCamera = activeName,
700
+ IsBlending = isBlending,
701
+ ComponentType = type.Name
702
+ };
703
+ }
704
+
705
+ public static CinemachinePlannedEffect CreateEffect(string type)
706
+ {
707
+ return new CinemachinePlannedEffect { Type = type };
708
+ }
709
+
710
+ private static DetectionState BuildDetectionState()
711
+ {
712
+ return new DetectionState
713
+ {
714
+ Installed = hasCinemachine.GetValueOrDefault(false),
715
+ CameraType = cameraType,
716
+ BrainType = brainType,
717
+ ExtensionBaseType = extensionBaseType,
718
+ CoreType = coreType
719
+ };
720
+ }
721
+
722
+ private static MethodInfo FindPublicInstanceMethod(Type ownerType, string methodName, params Type[] parameterTypes)
723
+ {
724
+ if (ownerType == null || string.IsNullOrWhiteSpace(methodName))
725
+ {
726
+ return null;
727
+ }
728
+
729
+ foreach (var method in ownerType.GetMethods(BindingFlags.Instance | BindingFlags.Public))
730
+ {
731
+ if (!string.Equals(method.Name, methodName, StringComparison.Ordinal) || method.IsGenericMethodDefinition)
732
+ {
733
+ continue;
734
+ }
735
+
736
+ var parameters = method.GetParameters();
737
+ if (parameters.Length != parameterTypes.Length)
738
+ {
739
+ continue;
740
+ }
741
+
742
+ var matched = true;
743
+ for (var index = 0; index < parameters.Length; index++)
744
+ {
745
+ var expected = parameterTypes[index];
746
+ if (expected != null && parameters[index].ParameterType != expected)
747
+ {
748
+ matched = false;
749
+ break;
750
+ }
751
+ }
752
+
753
+ if (matched)
754
+ {
755
+ return method;
756
+ }
757
+ }
758
+
759
+ return null;
760
+ }
761
+
762
+ private static object ConvertStringValue(string rawValue, Type targetType)
763
+ {
764
+ if (Nullable.GetUnderlyingType(targetType) != null)
765
+ {
766
+ targetType = Nullable.GetUnderlyingType(targetType);
767
+ }
768
+
769
+ if (targetType == typeof(string)) return rawValue;
770
+ if (targetType == typeof(bool)) return bool.Parse(rawValue);
771
+ if (targetType == typeof(int)) return int.Parse(rawValue, CultureInfo.InvariantCulture);
772
+ if (targetType == typeof(long)) return long.Parse(rawValue, CultureInfo.InvariantCulture);
773
+ if (targetType == typeof(float))
774
+ {
775
+ var parsed = double.Parse(rawValue, CultureInfo.InvariantCulture);
776
+ RequireFinite(parsed, "component");
777
+ return (float)parsed;
778
+ }
779
+ if (targetType == typeof(double))
780
+ {
781
+ var parsed = double.Parse(rawValue, CultureInfo.InvariantCulture);
782
+ if (double.IsNaN(parsed) || double.IsInfinity(parsed))
783
+ throw new UnityCliBridge.BridgeCommandException("E_CINEMACHINE_COMPONENT_VALUE_INVALID", "Cinemachine component values must be finite.", "Pass a finite numeric value.");
784
+ return parsed;
785
+ }
786
+ if (targetType == typeof(Vector2)) return GameObjectToolSupport.ParseVector2(rawValue);
787
+ if (targetType == typeof(Vector3)) return GameObjectToolSupport.ParseVector3(rawValue);
788
+ if (targetType.IsEnum)
789
+ {
790
+ var parsed = Enum.Parse(targetType, rawValue, true);
791
+ if (!Enum.IsDefined(targetType, parsed))
792
+ throw new UnityCliBridge.BridgeCommandException("E_CINEMACHINE_COMPONENT_VALUE_INVALID", "Cinemachine enum value is not defined: " + rawValue, "Pass a defined enum member name or value.");
793
+ return parsed;
794
+ }
795
+ throw new UnityCliBridge.BridgeCommandException(
796
+ "E_CINEMACHINE_COMPONENT_VALUE_UNSUPPORTED",
797
+ "Unsupported Cinemachine component value type: " + targetType.Name,
798
+ "Use string, bool, int, float, double, enum, Vector2, or Vector3 values.");
799
+ }
800
+
801
+ internal sealed class DetectionState
802
+ {
803
+ public bool Installed { get; set; }
804
+ public Type CameraType { get; set; }
805
+ public Type BrainType { get; set; }
806
+ public Type ExtensionBaseType { get; set; }
807
+ public Type CoreType { get; set; }
808
+ }
809
+ }
810
+
811
+ public sealed class CinemachinePackageStatus
812
+ {
813
+ public bool Installed { get; set; }
814
+ public bool CmCameraTypeAvailable { get; set; }
815
+ public bool CmBrainTypeAvailable { get; set; }
816
+ public bool CmExtensionTypeAvailable { get; set; }
817
+ }
818
+
819
+ public sealed class CinemachineObjectInfo
820
+ {
821
+ public long Id { get; set; }
822
+ public string Name { get; set; }
823
+ public string Path { get; set; }
824
+ public string Preset { get; set; }
825
+ public Vector3Data Position { get; set; }
826
+ public bool HasCinemachineCamera { get; set; }
827
+ public List<string> Extensions { get; set; }
828
+ }
829
+
830
+ public sealed class CinemachineBrainInfo
831
+ {
832
+ public bool Enabled { get; set; }
833
+ public bool HasBrain { get; set; }
834
+ public string ActiveVirtualCamera { get; set; }
835
+ public bool IsBlending { get; set; }
836
+ public string ComponentType { get; set; }
837
+ }
838
+
839
+ public sealed class CinemachinePlannedEffect
840
+ {
841
+ public string Type { get; set; }
842
+ public string Target { get; set; }
843
+ public string Field { get; set; }
844
+ public string Value { get; set; }
845
+ public string Preset { get; set; }
846
+ public string BodyType { get; set; }
847
+ public string AimType { get; set; }
848
+ public string ExtensionType { get; set; }
849
+ public string Brain { get; set; }
850
+ public long? OverrideId { get; set; }
851
+ public string SideEffects { get; set; }
852
+ }
853
+ }
854
+ #endif