@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,45 @@
1
+ #if UNITY_EDITOR
2
+ using System.Linq;
3
+ using UnityEditor;
4
+
5
+ namespace UnityCli
6
+ {
7
+ public class BuildSceneAddTool : IUnityCliTool<BuildSceneAddTool.Request, BuildSceneMutationResult>
8
+ {
9
+ public sealed class Request { [UnityCliRequired] public string Path { get; set; } }
10
+ public ToolDescriptor Describe() => new() { Name = "build.scene.add", Summary = "Add an enabled scene to persistent Unity Build Settings.", Description = "Adds path to EditorBuildSettings as an enabled scene when absent. dryRun=true previews without writing. Available in Edit and Play mode.", Group = "build",DestructiveHint = true, SupportsDryRun = true, SideEffects = new[] { "project-settings-write" }, Target = "editor", PlayModeSupport = "editor-only", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Add main scene", Input = new Request { Path = "Assets/Scenes/Main.unity" }, Execution = new ToolExampleExecution { DryRun = true } } } };
11
+ public System.Threading.Tasks.ValueTask<BuildSceneMutationResult> ExecuteAsync(Request request, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
12
+ {
13
+ var path = BuildToolSupport.NormalizeAssetPath(request.Path);
14
+ if (string.IsNullOrEmpty(path))
15
+ throw new UnityCliBridge.BridgeCommandException("E_BUILD_SCENE_PATH_REQUIRED", "build.scene.add requires path.", "Pass a scene path such as Assets/Scenes/Main.unity.");
16
+ if (!path.StartsWith("Assets/", System.StringComparison.Ordinal) || !path.EndsWith(".unity", System.StringComparison.OrdinalIgnoreCase) || path.Contains(".."))
17
+ throw new UnityCliBridge.BridgeCommandException("E_BUILD_SCENE_PATH_INVALID", "Build scene path must be a canonical Assets/*.unity path without traversal.", "Pass an existing path such as Assets/Scenes/Main.unity.");
18
+ if (AssetDatabase.LoadAssetAtPath<SceneAsset>(path) == null)
19
+ throw new UnityCliBridge.BridgeCommandException("E_BUILD_SCENE_NOT_FOUND", "Scene asset not found: " + path, "Pass an existing Assets/*.unity scene asset.");
20
+ var scenes = BuildSceneStateTool.ReadScenes();
21
+ var existingIndex = System.Array.FindIndex(scenes, scene => scene.path == path);
22
+ var changed = existingIndex < 0 || !scenes[existingIndex].enabled;
23
+ if (!ctx.DryRun && changed)
24
+ {
25
+ ctx.CommitEffect();
26
+ if (existingIndex < 0)
27
+ scenes = scenes.Concat(new[] { new EditorBuildSettingsScene(path, true) }).ToArray();
28
+ else
29
+ scenes[existingIndex] = new EditorBuildSettingsScene(path, true);
30
+ EditorBuildSettings.scenes = scenes;
31
+ scenes = BuildSceneStateTool.ReadScenes();
32
+ if (!scenes.Any(scene => scene.path == path && scene.enabled))
33
+ throw new UnityCliBridge.BridgeCommandException("E_BUILD_SCENE_ADD_MISMATCH", "Build Settings did not add enabled scene: " + path, "Inspect build.scene.list and retry.");
34
+ }
35
+ return new(new BuildSceneMutationResult
36
+ {
37
+ Count = scenes.LongLength,
38
+ Changed = !ctx.DryRun && changed,
39
+ NoOpReason = !ctx.DryRun && !changed ? "scene-already-enabled" : null,
40
+ DryRun = ctx.DryRun
41
+ });
42
+ }
43
+ }
44
+ }
45
+ #endif
@@ -0,0 +1,3 @@
1
+ #if UNITY_EDITOR
2
+ namespace UnityCli { public class BuildSceneDisableTool : IUnityCliTool<BuildSceneDisableTool.Request, BuildSceneMutationResult> { public sealed class Request { [UnityCliRequired] public string Path { get; set; } } public ToolDescriptor Describe() => new() { Name = "build.scene.disable", Summary = "Disable a scene in persistent Unity Build Settings.", Description = "Marks an existing Build Settings scene as disabled. dryRun=true previews without writing. Available in Edit and Play mode.", Group = "build",DestructiveHint = true, SupportsDryRun = true, SideEffects = new[] { "project-settings-write" }, Target = "editor", PlayModeSupport = "editor-only", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Disable main scene", Input = new Request { Path = "Assets/Scenes/Main.unity" }, Execution = new ToolExampleExecution { DryRun = true } } } }; public System.Threading.Tasks.ValueTask<BuildSceneMutationResult> ExecuteAsync(Request request, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default) { return BuildSceneStateTool.Execute(request.Path, false, "build.scene.disable", ctx); } } }
3
+ #endif
@@ -0,0 +1,4 @@
1
+ #if UNITY_EDITOR
2
+ using System.Linq; using UnityEditor;
3
+ namespace UnityCli { public class BuildSceneEnableTool : IUnityCliTool<BuildSceneEnableTool.Request, BuildSceneMutationResult> { public sealed class Request { [UnityCliRequired] public string Path { get; set; } } public ToolDescriptor Describe() => new() { Name = "build.scene.enable", Summary = "Enable a scene in persistent Unity Build Settings.", Description = "Marks an existing Build Settings scene as enabled. dryRun=true previews without writing. Available in Edit and Play mode.", Group = "build",DestructiveHint = true, SupportsDryRun = true, SideEffects = new[] { "project-settings-write" }, Target = "editor", PlayModeSupport = "editor-only", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Enable main scene", Input = new Request { Path = "Assets/Scenes/Main.unity" }, Execution = new ToolExampleExecution { DryRun = true } } } }; public System.Threading.Tasks.ValueTask<BuildSceneMutationResult> ExecuteAsync(Request request, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default) { return BuildSceneStateTool.Execute(request.Path, true, "build.scene.enable", ctx); } } }
4
+ #endif
@@ -0,0 +1,4 @@
1
+ #if UNITY_EDITOR
2
+ using System.Collections.Generic; using UnityEditor;
3
+ namespace UnityCli { public class BuildSceneListTool : IUnityCliTool<BuildSceneListTool.Request, BuildSceneListResult> { public sealed class Request { } public ToolDescriptor Describe() => new() { Name = "build.scene.list", Summary = "List scenes registered in Unity Build Settings.", Description = "Returns every Build Settings scene with path, enabled state, and build index. Read-only and available in Edit and Play mode.", Group = "build",Target = "editor", PlayModeSupport = "editor-only", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "List build scenes", Input = new Request() } } }; public System.Threading.Tasks.ValueTask<BuildSceneListResult> ExecuteAsync(Request request, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default) { var scenes = EditorBuildSettings.scenes ?? new EditorBuildSettingsScene[0]; var entries = new List<BuildSceneEntry>(); for (var i = 0; i < scenes.Length; i++) entries.Add(new BuildSceneEntry { Path = BuildToolSupport.NormalizeAssetPath(scenes[i].path), Enabled = scenes[i].enabled, BuildIndex = i }); return new(new BuildSceneListResult { Count = scenes.Length, Scenes = entries }); } } }
4
+ #endif
@@ -0,0 +1,29 @@
1
+ #if UNITY_EDITOR
2
+ using System.Linq;
3
+ using UnityEditor;
4
+
5
+ namespace UnityCli
6
+ {
7
+ public class BuildSceneRemoveTool : IUnityCliTool<BuildSceneRemoveTool.Request, BuildSceneMutationResult>
8
+ {
9
+ public sealed class Request { [UnityCliRequired] public string Path { get; set; } }
10
+ public ToolDescriptor Describe() => new() { Name = "build.scene.remove", Summary = "Remove a scene from persistent Unity Build Settings.", Description = "Removes path from EditorBuildSettings. dryRun=true previews without writing. Available in Edit and Play mode.", Group = "build",DestructiveHint = true, SupportsDryRun = true, SideEffects = new[] { "project-settings-write" }, Target = "editor", PlayModeSupport = "editor-only", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Remove main scene", Input = new Request { Path = "Assets/Scenes/Main.unity" }, Execution = new ToolExampleExecution { DryRun = true } } } };
11
+ public System.Threading.Tasks.ValueTask<BuildSceneMutationResult> ExecuteAsync(Request request, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
12
+ {
13
+ var path = BuildToolSupport.NormalizeAssetPath(request.Path);
14
+ if (string.IsNullOrEmpty(path))
15
+ throw new UnityCliBridge.BridgeCommandException("E_BUILD_SCENE_PATH_REQUIRED", "build.scene.remove requires path.", "Pass a scene path such as Assets/Scenes/Main.unity.");
16
+ var scenes = BuildSceneStateTool.ReadScenes();
17
+ if (!ctx.DryRun && scenes.Any(scene => scene.path == path))
18
+ {
19
+ ctx.CommitEffect();
20
+ EditorBuildSettings.scenes = scenes.Where(scene => scene.path != path).ToArray();
21
+ scenes = BuildSceneStateTool.ReadScenes();
22
+ if (scenes.Any(scene => scene.path == path))
23
+ throw new UnityCliBridge.BridgeCommandException("E_BUILD_SCENE_REMOVE_MISMATCH", "Build Settings did not remove scene: " + path, "Inspect build.scene.list and retry.");
24
+ }
25
+ return new(new BuildSceneMutationResult { Count = scenes.LongLength, DryRun = ctx.DryRun });
26
+ }
27
+ }
28
+ }
29
+ #endif
@@ -0,0 +1,3 @@
1
+ #if UNITY_EDITOR
2
+ namespace UnityCli { public class BuildSettingsGetTool : IUnityCliTool<BuildSettingsGetTool.Request, BuildSettingsResult> { public sealed class Request { } public ToolDescriptor Describe() => new() { Name = "build.settings.get", Summary = "Read persistent Unity PlayerSettings build configuration.", Description = "Returns product name, bundle version, company name, application identifier, scripting backend, and API compatibility level without writing settings. Available in Edit and Play mode.", Group = "build",Target = "editor", PlayModeSupport = "editor-only", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Read PlayerSettings", Input = new Request() } } }; public System.Threading.Tasks.ValueTask<BuildSettingsResult> ExecuteAsync(Request request, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default) => new(BuildSettingsToolSupport.Read()); } }
3
+ #endif
@@ -0,0 +1,74 @@
1
+ #if UNITY_EDITOR
2
+ using System;
3
+ using System.Collections.Generic;
4
+ using UnityEditor;
5
+
6
+ namespace UnityCli
7
+ {
8
+ public class BuildSettingsSetTool : IUnityCliTool<BuildSettingsSetTool.Request, BuildSettingsMutationResult>
9
+ {
10
+ public sealed class Request
11
+ {
12
+ public string ProductName { get; set; }
13
+ public string BundleVersion { get; set; }
14
+ public string CompanyId { get; set; }
15
+ public string ApplicationIdentifier { get; set; }
16
+ public string ScriptingBackend { get; set; }
17
+ public string ApiCompatibilityLevel { get; set; }
18
+ }
19
+
20
+ public ToolDescriptor Describe() => new()
21
+ {
22
+ Name = "build.settings.set", Summary = "Update persistent Unity PlayerSettings build configuration, with dry-run support.",
23
+ Description = "Updates provided PlayerSettings fields: productName, bundleVersion, companyId, applicationIdentifier, scriptingBackend, and apiCompatibilityLevel. dryRun=true previews without writing. Available in Edit and Play mode.",
24
+ Group = "build",DestructiveHint = true, SupportsDryRun = true,
25
+ SideEffects = new[] { "player-settings-write" }, Target = "editor", PlayModeSupport = "editor-only",
26
+ DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000,
27
+ Examples = new[] { new ToolExample { Description = "Set product name", Input = new Request { ProductName = "My Game" }, Execution = new ToolExampleExecution { DryRun = true } } }
28
+ };
29
+
30
+ /// <summary>先解析全部枚举和空请求,再以单一 commit boundary 写入并读回 PlayerSettings。</summary>
31
+ public System.Threading.Tasks.ValueTask<BuildSettingsMutationResult> ExecuteAsync(Request request, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
32
+ {
33
+ var hasValue = !string.IsNullOrEmpty(request.ProductName)
34
+ || !string.IsNullOrEmpty(request.BundleVersion)
35
+ || !string.IsNullOrEmpty(request.CompanyId)
36
+ || !string.IsNullOrEmpty(request.ApplicationIdentifier)
37
+ || !string.IsNullOrEmpty(request.ScriptingBackend)
38
+ || !string.IsNullOrEmpty(request.ApiCompatibilityLevel);
39
+ if (!hasValue)
40
+ throw new UnityCliBridge.BridgeCommandException("E_BUILD_SETTINGS_EMPTY", "build.settings.set requires at least one setting.", "Pass one or more documented PlayerSettings fields.");
41
+
42
+ ScriptingImplementation scriptingBackend = default;
43
+ if (!string.IsNullOrEmpty(request.ScriptingBackend) && !Enum.TryParse(request.ScriptingBackend, true, out scriptingBackend))
44
+ throw new UnityCliBridge.BridgeCommandException("E_BUILD_SETTINGS_ENUM_INVALID", "Unknown scriptingBackend: " + request.ScriptingBackend, "Pass a Unity ScriptingImplementation enum name.");
45
+ ApiCompatibilityLevel compatibilityLevel = default;
46
+ if (!string.IsNullOrEmpty(request.ApiCompatibilityLevel) && !Enum.TryParse(request.ApiCompatibilityLevel, true, out compatibilityLevel))
47
+ throw new UnityCliBridge.BridgeCommandException("E_BUILD_SETTINGS_ENUM_INVALID", "Unknown apiCompatibilityLevel: " + request.ApiCompatibilityLevel, "Pass a Unity ApiCompatibilityLevel enum name.");
48
+
49
+ if (ctx.DryRun)
50
+ return new(new BuildSettingsMutationResult { Changed = new List<string> { "productName", "bundleVersion", "companyId", "applicationIdentifier", "scriptingBackend", "apiCompatibilityLevel" }.FindAll(name => (name == "productName" && !string.IsNullOrEmpty(request.ProductName)) || (name == "bundleVersion" && !string.IsNullOrEmpty(request.BundleVersion)) || (name == "companyId" && !string.IsNullOrEmpty(request.CompanyId)) || (name == "applicationIdentifier" && !string.IsNullOrEmpty(request.ApplicationIdentifier)) || (name == "scriptingBackend" && !string.IsNullOrEmpty(request.ScriptingBackend)) || (name == "apiCompatibilityLevel" && !string.IsNullOrEmpty(request.ApiCompatibilityLevel))), DryRun = true });
51
+
52
+ ctx.CommitEffect();
53
+ var changed = new List<string>();
54
+ if (!string.IsNullOrEmpty(request.ProductName)) { PlayerSettings.productName = request.ProductName; changed.Add("productName"); }
55
+ if (!string.IsNullOrEmpty(request.BundleVersion)) { PlayerSettings.bundleVersion = request.BundleVersion; changed.Add("bundleVersion"); }
56
+ if (!string.IsNullOrEmpty(request.CompanyId)) { PlayerSettings.companyName = request.CompanyId; changed.Add("companyId"); }
57
+ if (!string.IsNullOrEmpty(request.ApplicationIdentifier)) { PlayerSettings.SetApplicationIdentifier(BuildTargetGroup.Unknown, request.ApplicationIdentifier); changed.Add("applicationIdentifier"); }
58
+ if (!string.IsNullOrEmpty(request.ScriptingBackend)) { PlayerSettings.SetScriptingBackend(BuildTargetGroup.Unknown, scriptingBackend); changed.Add("scriptingBackend"); }
59
+ if (!string.IsNullOrEmpty(request.ApiCompatibilityLevel)) { PlayerSettings.SetApiCompatibilityLevel(BuildTargetGroup.Unknown, compatibilityLevel); changed.Add("apiCompatibilityLevel"); }
60
+
61
+ var result = BuildSettingsToolSupport.Read();
62
+ var mismatch = (!string.IsNullOrEmpty(request.ProductName) && result.ProductName != request.ProductName)
63
+ || (!string.IsNullOrEmpty(request.BundleVersion) && result.BundleVersion != request.BundleVersion)
64
+ || (!string.IsNullOrEmpty(request.CompanyId) && result.CompanyId != request.CompanyId)
65
+ || (!string.IsNullOrEmpty(request.ApplicationIdentifier) && result.ApplicationIdentifier != request.ApplicationIdentifier)
66
+ || (!string.IsNullOrEmpty(request.ScriptingBackend) && !string.Equals(result.ScriptingBackend, scriptingBackend.ToString(), StringComparison.OrdinalIgnoreCase))
67
+ || (!string.IsNullOrEmpty(request.ApiCompatibilityLevel) && !string.Equals(result.ApiCompatibilityLevel, compatibilityLevel.ToString(), StringComparison.OrdinalIgnoreCase));
68
+ if (mismatch)
69
+ throw new UnityCliBridge.BridgeCommandException("E_BUILD_SETTINGS_STATE_MISMATCH", "PlayerSettings readback did not match every requested value.", "Inspect build.settings.get before retrying.");
70
+ return new(new BuildSettingsMutationResult { Changed = changed });
71
+ }
72
+ }
73
+ }
74
+ #endif
@@ -0,0 +1,292 @@
1
+ #if UNITY_EDITOR
2
+ using System;
3
+ using System.Collections.Generic;
4
+ using System.Globalization;
5
+ using System.IO;
6
+ using System.Security.Cryptography;
7
+ using UnityEditor;
8
+ using UnityEngine;
9
+
10
+ namespace UnityCli
11
+ {
12
+ /// <summary>
13
+ /// camera 域 IUnityCliTool 共享的基础设施 helper:相机解析、相机信息构造、
14
+ /// 截图捕获、清屏标志解析、忙状态拦截。仅供 camera 域自包含工具复用;
15
+ /// 不实现 IUnityCliTool,不参与工具发现。
16
+ /// </summary>
17
+ public static class CameraToolSupport
18
+ {
19
+ /// <summary>拦截编译/导入/构建/PlayMode 过渡期的写入请求,避免脏状态写入。</summary>
20
+ public static void EnsureEditorNotBusy(string command)
21
+ {
22
+ if (EditorApplication.isCompiling)
23
+ {
24
+ throw new UnityCliBridge.BridgeCommandException("E_UNITY_COMPILING", "Unity Editor is compiling scripts.", "Wait for Unity to finish compiling and retry.", transient: true, retryAfterMs: 5000);
25
+ }
26
+ if (EditorApplication.isUpdating)
27
+ {
28
+ throw new UnityCliBridge.BridgeCommandException("E_UNITY_IMPORTING", "Unity Editor is importing assets.", "Wait for Unity to finish importing and retry.", transient: true, retryAfterMs: 5000);
29
+ }
30
+ if (UnityCliBridge.IsPlayModeChanging())
31
+ {
32
+ throw new UnityCliBridge.BridgeCommandException("E_UNITY_PLAY_MODE", "Unity Editor is entering or exiting Play mode.", "Wait for Play mode transition to complete and retry.", transient: true, retryAfterMs: 3000);
33
+ }
34
+ if (BuildPipeline.isBuildingPlayer)
35
+ {
36
+ throw new UnityCliBridge.BridgeCommandException("E_UNITY_BUSY", "Unity Editor is building the player.", "Wait for the build to complete and retry.", transient: true, retryAfterMs: 10000);
37
+ }
38
+ }
39
+
40
+ /// <summary>解析 Camera:空 target 返回主相机或第一个相机;否则按名称/实例ID/层级路径匹配。</summary>
41
+ public static Camera ResolveCamera(string target)
42
+ {
43
+ var cameras = Camera.allCameras;
44
+ if (string.IsNullOrEmpty(target))
45
+ {
46
+ return Camera.main ?? (cameras.Length > 0 ? cameras[0] : null);
47
+ }
48
+ foreach (var camera in cameras)
49
+ {
50
+ if (camera.name == target
51
+ || camera.GetInstanceID().ToString(CultureInfo.InvariantCulture) == target
52
+ || HierarchyPath(camera.gameObject) == target)
53
+ {
54
+ return camera;
55
+ }
56
+ }
57
+ return null;
58
+ }
59
+
60
+ /// <summary>构造 Camera 摘要信息 DTO。</summary>
61
+ public static CameraInfo BuildCameraInfo(Camera camera)
62
+ {
63
+ return new CameraInfo
64
+ {
65
+ Id = camera.GetInstanceID(),
66
+ Name = camera.name,
67
+ Path = HierarchyPath(camera.gameObject),
68
+ Tag = camera.tag,
69
+ Enabled = camera.enabled,
70
+ ClearFlags = camera.clearFlags.ToString(),
71
+ Projection = camera.orthographic ? "orthographic" : "perspective",
72
+ FieldOfView = camera.fieldOfView,
73
+ OrthographicSize = camera.orthographicSize,
74
+ Depth = camera.depth,
75
+ TargetTexture = camera.targetTexture != null ? camera.targetTexture.name : null,
76
+ PixelWidth = camera.pixelWidth,
77
+ PixelHeight = camera.pixelHeight
78
+ };
79
+ }
80
+
81
+ /// <summary>解析 CameraClearFlags 枚举值(大小写不敏感)。</summary>
82
+ public static CameraClearFlags ParseCameraClearFlags(string value)
83
+ {
84
+ CameraClearFlags parsed;
85
+ if (!Enum.TryParse<CameraClearFlags>(value, true, out parsed))
86
+ {
87
+ throw new UnityCliBridge.BridgeCommandException("E_CAMERA_CLEAR_FLAGS_INVALID", "Unsupported Camera clearFlags value: " + value, "Use Skybox, SolidColor, Depth, or Nothing.");
88
+ }
89
+ return parsed;
90
+ }
91
+
92
+ public static void ValidateFloatRange(double? value, string field, double min, double max)
93
+ {
94
+ if (!value.HasValue) return;
95
+ if (double.IsNaN(value.Value) || double.IsInfinity(value.Value) || value.Value < min || value.Value > max || value.Value < -float.MaxValue || value.Value > float.MaxValue)
96
+ throw new UnityCliBridge.BridgeCommandException("E_CAMERA_VALUE_INVALID", field + " must be finite and representable as a Unity float.", "Pass a finite value in the documented range.");
97
+ }
98
+
99
+ /// <summary>截图尺寸必须在 1..8192 像素之间。</summary>
100
+ public static int ClampScreenshotDimension(int value, string name)
101
+ {
102
+ if (value < 1 || value > 8192)
103
+ {
104
+ throw new UnityCliBridge.BridgeCommandException("E_SCREENSHOT_SIZE_INVALID", "Camera screenshot " + name + " must be between 1 and 8192 pixels: " + value.ToString(CultureInfo.InvariantCulture), "Use a smaller width/height before retrying.");
105
+ }
106
+ return value;
107
+ }
108
+
109
+ /// <summary>解析截图输出绝对路径;相对路径解析到 Unity 工程根目录下。</summary>
110
+ public static string ResolveScreenshotOutputPath(string rawPath)
111
+ {
112
+ if (string.IsNullOrEmpty(rawPath))
113
+ {
114
+ throw new UnityCliBridge.BridgeCommandException("E_OUTPUT_PATH_REQUIRED", "Camera screenshot requires a path.", "Pass --output <path> or a positional screenshot path.");
115
+ }
116
+ var normalized = rawPath.Replace('\\', Path.DirectorySeparatorChar).Replace('/', Path.DirectorySeparatorChar);
117
+ return Path.GetFullPath(Path.IsPathRooted(normalized) ? normalized : Path.Combine(ProjectRoot(), normalized));
118
+ }
119
+
120
+ /// <summary>推断图片格式:显式 format > 路径扩展名 > png;仅接受 png/jpg。</summary>
121
+ public static string NormalizeFormat(string rawFormat, string outputPath)
122
+ {
123
+ var fmt = string.IsNullOrEmpty(rawFormat) ? Path.GetExtension(outputPath).TrimStart('.').ToLowerInvariant() : rawFormat.ToLowerInvariant();
124
+ if (string.IsNullOrEmpty(fmt)) fmt = "png";
125
+ if (fmt == "jpeg") fmt = "jpg";
126
+ if (fmt != "png" && fmt != "jpg")
127
+ {
128
+ throw new UnityCliBridge.BridgeCommandException("E_SCREENSHOT_FORMAT_UNSUPPORTED", "Screenshot format must be png or jpg.");
129
+ }
130
+ return fmt;
131
+ }
132
+
133
+ /// <summary>创建截图输出目录(缺失时)。</summary>
134
+ public static void CreateScreenshotDirectory(string outputPath)
135
+ {
136
+ try
137
+ {
138
+ Directory.CreateDirectory(Path.GetDirectoryName(outputPath));
139
+ }
140
+ catch (Exception exception)
141
+ {
142
+ throw new UnityCliBridge.BridgeCommandException("E_IO_ERROR", "Failed to create screenshot output directory: " + exception.Message);
143
+ }
144
+ }
145
+
146
+ /// <summary>写入截图后重新读取字节、校验格式并返回稳定 artifact proof。</summary>
147
+ public static CameraArtifactProof WriteScreenshotBytes(string outputPath, byte[] bytes)
148
+ {
149
+ if (bytes == null || bytes.Length == 0)
150
+ throw new UnityCliBridge.BridgeCommandException("E_SCREENSHOT_ENCODE_FAILED", "Screenshot encoder returned no bytes.", "Check the Camera render state and retry.");
151
+ try { File.WriteAllBytes(outputPath, bytes); }
152
+ catch (Exception exception) { throw new UnityCliBridge.BridgeCommandException("E_IO_ERROR", "Failed to write screenshot output: " + exception.Message); }
153
+ return VerifyScreenshotArtifact(outputPath, Path.GetExtension(outputPath).TrimStart('.'));
154
+ }
155
+
156
+ /// <summary>artifact proof 必须来自写后 fresh readback,不能只依赖 Exists 或原始编码 bytes。</summary>
157
+ public static CameraArtifactProof VerifyScreenshotArtifact(string outputPath, string format)
158
+ {
159
+ if (!File.Exists(outputPath)) throw new UnityCliBridge.BridgeCommandException("E_SCREENSHOT_WRITE_PROOF_MISSING", "Screenshot output was not written: " + outputPath, "Check destination path and permissions, then retry.");
160
+ var bytes = File.ReadAllBytes(outputPath);
161
+ var normalized = NormalizeFormat(format, outputPath);
162
+ var valid = normalized == "png"
163
+ ? bytes.Length >= 8 && bytes[0] == 0x89 && bytes[1] == 0x50 && bytes[2] == 0x4e && bytes[3] == 0x47 && bytes[4] == 0x0d && bytes[5] == 0x0a && bytes[6] == 0x1a && bytes[7] == 0x0a
164
+ : bytes.Length >= 3 && bytes[0] == 0xff && bytes[1] == 0xd8 && bytes[2] == 0xff;
165
+ if (!valid) throw new UnityCliBridge.BridgeCommandException("E_SCREENSHOT_WRITE_PROOF_MISSING", "Screenshot output is empty or does not match its requested format: " + outputPath, "Use a .png or .jpg output path and retry.");
166
+ using (var sha = SHA256.Create()) return new CameraArtifactProof { SizeBytes = bytes.LongLength, Sha256 = string.Concat(Array.ConvertAll(sha.ComputeHash(bytes), value => value.ToString("x2"))) };
167
+ }
168
+
169
+ /// <summary>渲染指定 Camera 到 RenderTexture 并编码为图片字节,返回捕获结果。捕获后恢复相机状态。</summary>
170
+ public static CameraCapture CaptureCamera(Camera camera, int width, int height, bool transparent, int quality, string outputPath, string format, bool overwrite, bool inlineBase64)
171
+ {
172
+ if (File.Exists(outputPath) && !overwrite)
173
+ {
174
+ throw new UnityCliBridge.BridgeCommandException("E_OUTPUT_EXISTS", "Screenshot output already exists: " + outputPath, "Pass overwrite=true or choose a different output path.");
175
+ }
176
+ CreateScreenshotDirectory(outputPath);
177
+ var previousTarget = camera.targetTexture;
178
+ var previousActive = RenderTexture.active;
179
+ var previousClearFlags = camera.clearFlags;
180
+ var previousBackground = camera.backgroundColor;
181
+ var renderTexture = new RenderTexture(width, height, 24, RenderTextureFormat.ARGB32);
182
+ var texture = new Texture2D(width, height, transparent ? TextureFormat.ARGB32 : TextureFormat.RGB24, false);
183
+ try
184
+ {
185
+ camera.targetTexture = renderTexture;
186
+ if (transparent)
187
+ {
188
+ camera.clearFlags = CameraClearFlags.SolidColor;
189
+ camera.backgroundColor = new Color(0f, 0f, 0f, 0f);
190
+ }
191
+ camera.Render();
192
+ RenderTexture.active = renderTexture;
193
+ texture.ReadPixels(new Rect(0, 0, width, height), 0, 0);
194
+ texture.Apply();
195
+ var bytes = format == "jpg" ? texture.EncodeToJPG(quality) : texture.EncodeToPNG();
196
+ var artifact = WriteScreenshotBytes(outputPath, bytes);
197
+ var capture = new CameraCapture
198
+ {
199
+ ScreenshotPath = outputPath,
200
+ ArtifactPath = outputPath,
201
+ Source = "camera",
202
+ SizeBytes = artifact.SizeBytes,
203
+ Sha256 = artifact.Sha256
204
+ };
205
+ // inlineBase64 仅在图片字节小于内联上限时附带,避免大 base64 撑爆 JSON 响应
206
+ const int InlineImageMaxBytes = 512 * 1024;
207
+ if (inlineBase64 && bytes != null && bytes.Length <= InlineImageMaxBytes)
208
+ {
209
+ capture.ImageBase64 = Convert.ToBase64String(bytes);
210
+ capture.ImageWidth = width;
211
+ capture.ImageHeight = height;
212
+ capture.ImageMimeType = format == "jpg" ? "image/jpeg" : "image/png";
213
+ }
214
+ return capture;
215
+ }
216
+ finally
217
+ {
218
+ RenderTexture.active = previousActive;
219
+ camera.targetTexture = previousTarget;
220
+ camera.clearFlags = previousClearFlags;
221
+ camera.backgroundColor = previousBackground;
222
+ UnityEngine.Object.DestroyImmediate(texture);
223
+ renderTexture.Release();
224
+ UnityEngine.Object.DestroyImmediate(renderTexture);
225
+ }
226
+ }
227
+
228
+ /// <summary>Unity 工程根目录(Assets 的父目录)。</summary>
229
+ public static string ProjectRoot()
230
+ {
231
+ return Directory.GetParent(UnityEngine.Application.dataPath).FullName;
232
+ }
233
+
234
+ /// <summary>构造 GameObject 层级路径(A/B/C)。</summary>
235
+ public static string HierarchyPath(GameObject gameObject)
236
+ {
237
+ var names = new Stack<string>();
238
+ var current = gameObject.transform;
239
+ while (current != null)
240
+ {
241
+ names.Push(current.name);
242
+ current = current.parent;
243
+ }
244
+ return string.Join("/", names.ToArray());
245
+ }
246
+ }
247
+
248
+ /// <summary>Camera 摘要信息,camera 域工具 Result 共享。</summary>
249
+ public sealed class CameraInfo
250
+ {
251
+ public long Id { get; set; }
252
+ public string Name { get; set; }
253
+ public string Path { get; set; }
254
+ public string Tag { get; set; }
255
+ public bool Enabled { get; set; }
256
+ public string ClearFlags { get; set; }
257
+ public string Projection { get; set; }
258
+ public double FieldOfView { get; set; }
259
+ public double OrthographicSize { get; set; }
260
+ public double Depth { get; set; }
261
+ public string TargetTexture { get; set; }
262
+ public long PixelWidth { get; set; }
263
+ public long PixelHeight { get; set; }
264
+ }
265
+
266
+ /// <summary>Camera 截图捕获结果,camera 域 screenshot/multiview 工具共享。</summary>
267
+ public sealed class CameraCapture
268
+ {
269
+ public string ScreenshotPath { get; set; }
270
+ public string ArtifactPath { get; set; }
271
+ public string Source { get; set; }
272
+ public string ImageBase64 { get; set; }
273
+ public long? ImageWidth { get; set; }
274
+ public long? ImageHeight { get; set; }
275
+ public string ImageMimeType { get; set; }
276
+ public long SizeBytes { get; set; }
277
+ public string Sha256 { get; set; }
278
+ }
279
+
280
+ public sealed class CameraArtifactProof { public long SizeBytes { get; set; } public string Sha256 { get; set; } }
281
+
282
+ /// <summary>计划副作用项,camera 域 mutation 工具 Result 共享。</summary>
283
+ public sealed class CameraPlannedEffect
284
+ {
285
+ public string Type { get; set; }
286
+ public string Target { get; set; }
287
+ public string Path { get; set; }
288
+ public string Property { get; set; }
289
+ public string Value { get; set; }
290
+ }
291
+ }
292
+ #endif
@@ -0,0 +1,114 @@
1
+ #if UNITY_EDITOR
2
+ using System.Collections.Generic;
3
+ using UnityEditor;
4
+ using UnityEditor.SceneManagement;
5
+ using UnityEngine;
6
+
7
+ namespace UnityCli
8
+ {
9
+ /// <summary>
10
+ /// camera.create — 在激活场景创建 Camera GameObject,可设置父级/变换/投影/清屏/深度/MainCamera 标签。
11
+ /// </summary>
12
+ public class CameraCreateTool : IUnityCliTool<CameraCreateTool.Request, CameraCreateTool.Result>
13
+ {
14
+ public sealed class Request
15
+ {
16
+ public string Name { get; set; }
17
+ public string Parent { get; set; }
18
+ public string Position { get; set; }
19
+ public string Rotation { get; set; }
20
+ public double? FieldOfView { get; set; }
21
+ public bool? Orthographic { get; set; }
22
+ public double? OrthographicSize { get; set; }
23
+ public string ClearFlags { get; set; }
24
+ public double? Depth { get; set; }
25
+ public string Tag { get; set; }
26
+ }
27
+
28
+ public sealed class Result
29
+ {
30
+ public CameraInfo Camera { get; set; }
31
+ public List<CameraPlannedEffect> PlannedEffects { get; set; }
32
+ }
33
+
34
+ public ToolDescriptor Describe() => new()
35
+ {
36
+ Name = "camera.create",
37
+ Summary = "Create a Unity Camera GameObject in the active scene with optional parent, transform, projection, clear flags, depth, and MainCamera tag.",
38
+ Description = "Create a Unity Camera GameObject in the active scene with optional parent, transform, projection, clear flags, depth, and MainCamera tag. Parent and enum inputs are validated before mutation to avoid partial objects.",
39
+ Group = "camera",
40
+ DestructiveHint = false,
41
+ SideEffects = new[] { "scene-modify", "component-add" },
42
+ Target = "editor",
43
+ PlayModeSupport = "session-affecting",
44
+ DefaultTimeoutMs = 30000,
45
+ MaxTimeoutMs = 600000,
46
+ Examples = new[]
47
+ {
48
+ new ToolExample { Description = "Create a perspective camera", Input = new Request { Name = "UnityCliAlignmentCamera", Position = "0,2,-6", Rotation = "15,0,0", FieldOfView = 60 } }
49
+ }
50
+ };
51
+
52
+ public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request request, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
53
+ {
54
+ CameraToolSupport.EnsureEditorNotBusy("camera.create");
55
+ var name = string.IsNullOrEmpty(request.Name) ? "Camera" : request.Name;
56
+ // 父级先解析,clearFlags 先校验,再创建 GameObject,避免半成品
57
+ var parentGo = string.IsNullOrEmpty(request.Parent) ? null : GameObjectToolSupport.ResolveUniqueTarget(request.Parent, "camera.create --parent <go> not found.");
58
+ var clearFlags = string.IsNullOrEmpty(request.ClearFlags) ? (CameraClearFlags?)null : CameraToolSupport.ParseCameraClearFlags(request.ClearFlags);
59
+ var position = string.IsNullOrEmpty(request.Position) ? (Vector3?)null : GameObjectToolSupport.ParseVector3(request.Position);
60
+ var rotation = string.IsNullOrEmpty(request.Rotation) ? (Vector3?)null : GameObjectToolSupport.ParseVector3(request.Rotation);
61
+ GameObjectToolSupport.ValidateMutationInputs(request.Tag, null);
62
+ CameraToolSupport.ValidateFloatRange(request.FieldOfView, "fieldOfView", 1d, 179d);
63
+ CameraToolSupport.ValidateFloatRange(request.OrthographicSize, "orthographicSize", double.Epsilon, float.MaxValue);
64
+ CameraToolSupport.ValidateFloatRange(request.Depth, "depth", -float.MaxValue, float.MaxValue);
65
+ var parentId = parentGo == null ? 0 : parentGo.GetInstanceID();
66
+
67
+ ctx.CommitEffect();
68
+ var gameObject = new GameObject(name);
69
+ if (parentGo != null)
70
+ {
71
+ gameObject.transform.SetParent(parentGo.transform, false);
72
+ }
73
+ var camera = gameObject.AddComponent<Camera>();
74
+ if (position.HasValue)
75
+ {
76
+ gameObject.transform.position = position.Value;
77
+ }
78
+ if (rotation.HasValue)
79
+ {
80
+ gameObject.transform.eulerAngles = rotation.Value;
81
+ }
82
+ if (request.FieldOfView.HasValue) camera.fieldOfView = (float)request.FieldOfView.Value;
83
+ if (request.Orthographic.HasValue) camera.orthographic = request.Orthographic.Value;
84
+ if (request.OrthographicSize.HasValue) camera.orthographicSize = (float)request.OrthographicSize.Value;
85
+ if (clearFlags.HasValue) camera.clearFlags = clearFlags.Value;
86
+ if (request.Depth.HasValue) camera.depth = (float)request.Depth.Value;
87
+ if (request.Tag == "MainCamera")
88
+ {
89
+ gameObject.tag = "MainCamera";
90
+ }
91
+ UnityCliSceneMutation.MarkSceneObjectDirty(gameObject);
92
+ UnityCliSceneMutation.MarkSceneDirty(gameObject.scene);
93
+ var observed = EditorUtility.InstanceIDToObject(camera.GetInstanceID()) as Camera;
94
+ if (observed == null || observed.gameObject.name != name || (parentId == 0 && observed.transform.parent != null) || (parentId != 0 && (observed.transform.parent == null || observed.transform.parent.GetInstanceID() != parentId)) ||
95
+ (position.HasValue && observed.transform.position != position.Value) || (rotation.HasValue && observed.transform.eulerAngles != rotation.Value) ||
96
+ (request.FieldOfView.HasValue && !Mathf.Approximately(observed.fieldOfView, (float)request.FieldOfView.Value)) ||
97
+ (request.Orthographic.HasValue && observed.orthographic != request.Orthographic.Value) ||
98
+ (request.OrthographicSize.HasValue && !Mathf.Approximately(observed.orthographicSize, (float)request.OrthographicSize.Value)) ||
99
+ (clearFlags.HasValue && observed.clearFlags != clearFlags.Value) ||
100
+ (request.Depth.HasValue && !Mathf.Approximately(observed.depth, (float)request.Depth.Value)) ||
101
+ (request.Tag == "MainCamera" && observed.gameObject.tag != "MainCamera"))
102
+ throw new UnityCliBridge.BridgeCommandException("E_CAMERA_CREATE_STATE_MISMATCH", "Created Camera did not satisfy the requested predicate.", "Inspect the Camera and retry after the Editor is idle.");
103
+ return new System.Threading.Tasks.ValueTask<Result>(new Result
104
+ {
105
+ Camera = CameraToolSupport.BuildCameraInfo(observed),
106
+ PlannedEffects = new List<CameraPlannedEffect>
107
+ {
108
+ new CameraPlannedEffect { Type = "camera.create", Target = name }
109
+ }
110
+ });
111
+ }
112
+ }
113
+ }
114
+ #endif
@@ -0,0 +1,49 @@
1
+ #if UNITY_EDITOR
2
+ using UnityEngine;
3
+
4
+ namespace UnityCli
5
+ {
6
+ /// <summary>
7
+ /// camera.info — 获取单个 Camera 的序列化设置。
8
+ /// </summary>
9
+ public class CameraInfoTool : IUnityCliTool<CameraInfoTool.Request, CameraInfoTool.Result>
10
+ {
11
+ public sealed class Request
12
+ {
13
+ public string Target { get; set; }
14
+ }
15
+
16
+ public sealed class Result
17
+ {
18
+ public CameraInfo Camera { get; set; }
19
+ }
20
+
21
+ public ToolDescriptor Describe() => new()
22
+ {
23
+ Name = "camera.info",
24
+ Summary = "Get one scene Camera's serializable settings by name, path, or instance id.",
25
+ Description = "Get one Camera's serializable settings. Resolves by Camera name, hierarchy path, or instance id; returns E_CAMERA_NOT_FOUND with recovery guidance when missing.",
26
+ Group = "camera",
27
+ DestructiveHint = false,
28
+ Target = "editor",
29
+ PlayModeSupport = "supported",
30
+ DefaultTimeoutMs = 30000,
31
+ MaxTimeoutMs = 600000,
32
+ Examples = new[]
33
+ {
34
+ new ToolExample { Description = "Inspect Main Camera", Input = new Request { Target = "Main Camera" } }
35
+ }
36
+ };
37
+
38
+ public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request request, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
39
+ {
40
+ var camera = CameraToolSupport.ResolveCamera(request.Target);
41
+ if (camera == null)
42
+ {
43
+ throw new UnityCliBridge.BridgeCommandException("E_CAMERA_NOT_FOUND", "Camera not found: " + request.Target, "Run tools run camera.list, then retry with a camera name, hierarchy path, or instance id from the result.");
44
+ }
45
+ return new System.Threading.Tasks.ValueTask<Result>(new Result { Camera = CameraToolSupport.BuildCameraInfo(camera) });
46
+ }
47
+ }
48
+ }
49
+ #endif