@playdrop/playdrop-cli 0.16.5 → 0.16.11

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 (383) hide show
  1. package/bin/playdrop +1 -2
  2. package/config/client-meta.json +4 -4
  3. package/dist/apiClient.d.ts +2 -2
  4. package/dist/apiClient.js +16 -20
  5. package/dist/appUrls.d.ts +2 -2
  6. package/dist/appUrls.js +31 -33
  7. package/dist/apps/build.d.ts +2 -2
  8. package/dist/apps/build.js +83 -83
  9. package/dist/apps/index.d.ts +7 -7
  10. package/dist/apps/index.js +8 -8
  11. package/dist/apps/loadCheck.d.ts +28 -16
  12. package/dist/apps/loadCheck.js +411 -279
  13. package/dist/apps/registration.d.ts +3 -3
  14. package/dist/apps/registration.js +1 -1
  15. package/dist/apps/staticHtml.d.ts +3 -3
  16. package/dist/apps/staticHtml.js +90 -91
  17. package/dist/apps/surfaceProfiles.d.ts +2 -2
  18. package/dist/apps/surfaceProfiles.js +6 -6
  19. package/dist/apps/upload.d.ts +5 -5
  20. package/dist/apps/upload.js +75 -81
  21. package/dist/apps/validate.d.ts +2 -2
  22. package/dist/apps/validate.js +18 -22
  23. package/dist/assetSpecs.d.ts +2 -2
  24. package/dist/assetSpecs.js +35 -35
  25. package/dist/assets/model-artifacts.d.ts +1 -1
  26. package/dist/assets/model-artifacts.js +81 -77
  27. package/dist/assets/model-worker.d.ts +1 -1
  28. package/dist/assets/model-worker.js +6 -6
  29. package/dist/browser.js +9 -9
  30. package/dist/catalogue-utils.d.ts +1 -1
  31. package/dist/catalogue-utils.js +26 -26
  32. package/dist/catalogue.d.ts +21 -16
  33. package/dist/catalogue.js +509 -413
  34. package/dist/clientInfo.d.ts +1 -1
  35. package/dist/clientInfo.js +28 -28
  36. package/dist/commandContext.d.ts +5 -5
  37. package/dist/commandContext.js +19 -23
  38. package/dist/commands/accounts.js +6 -6
  39. package/dist/commands/ads.js +16 -16
  40. package/dist/commands/agents.d.ts +2 -2
  41. package/dist/commands/agents.js +131 -127
  42. package/dist/commands/boosts.js +41 -31
  43. package/dist/commands/browse.d.ts +2 -2
  44. package/dist/commands/browse.js +168 -128
  45. package/dist/commands/build.js +9 -9
  46. package/dist/commands/captureListing.d.ts +8 -8
  47. package/dist/commands/captureListing.js +292 -332
  48. package/dist/commands/changelog.js +1 -1
  49. package/dist/commands/chat.js +51 -53
  50. package/dist/commands/check.d.ts +1 -1
  51. package/dist/commands/check.js +44 -44
  52. package/dist/commands/clients.d.ts +3 -3
  53. package/dist/commands/clients.js +67 -64
  54. package/dist/commands/comments.js +36 -29
  55. package/dist/commands/create.js +305 -312
  56. package/dist/commands/createRemixContent.d.ts +1 -1
  57. package/dist/commands/createRemixContent.js +65 -60
  58. package/dist/commands/creations.js +205 -135
  59. package/dist/commands/credits.js +37 -27
  60. package/dist/commands/detail.js +40 -34
  61. package/dist/commands/dev.js +103 -126
  62. package/dist/commands/devBrowser.js +74 -65
  63. package/dist/commands/devRuntimeAssets.d.ts +4 -4
  64. package/dist/commands/devRuntimeAssets.js +38 -40
  65. package/dist/commands/devServer.d.ts +4 -4
  66. package/dist/commands/devServer.js +183 -174
  67. package/dist/commands/devShared.d.ts +3 -3
  68. package/dist/commands/devShared.js +31 -31
  69. package/dist/commands/doctor.d.ts +5 -5
  70. package/dist/commands/doctor.js +63 -57
  71. package/dist/commands/documentation.js +42 -32
  72. package/dist/commands/feedback.js +59 -42
  73. package/dist/commands/format.js +9 -9
  74. package/dist/commands/generation.d.ts +2 -2
  75. package/dist/commands/generation.js +344 -326
  76. package/dist/commands/init.d.ts +4 -4
  77. package/dist/commands/init.js +64 -61
  78. package/dist/commands/login.d.ts +2 -2
  79. package/dist/commands/login.js +42 -62
  80. package/dist/commands/logout.js +4 -4
  81. package/dist/commands/marketing.d.ts +8 -8
  82. package/dist/commands/marketing.js +246 -297
  83. package/dist/commands/notes.js +19 -19
  84. package/dist/commands/notifications.js +34 -22
  85. package/dist/commands/npmProcess.js +3 -3
  86. package/dist/commands/ownedRuntimeImageValidation.d.ts +1 -1
  87. package/dist/commands/ownedRuntimeImageValidation.js +19 -17
  88. package/dist/commands/play.js +12 -21
  89. package/dist/commands/publicPages.js +8 -4
  90. package/dist/commands/review.js +123 -110
  91. package/dist/commands/search.js +107 -88
  92. package/dist/commands/tags.js +10 -12
  93. package/dist/commands/taskCaptureSession.d.ts +3 -3
  94. package/dist/commands/taskCaptureSession.js +3 -3
  95. package/dist/commands/tweaks.js +25 -23
  96. package/dist/commands/upgrade.js +40 -31
  97. package/dist/commands/upload-content.d.ts +5 -5
  98. package/dist/commands/upload-content.js +130 -122
  99. package/dist/commands/upload-graph.d.ts +1 -1
  100. package/dist/commands/upload-graph.js +7 -11
  101. package/dist/commands/upload.d.ts +7 -7
  102. package/dist/commands/upload.js +196 -217
  103. package/dist/commands/validate.js +33 -32
  104. package/dist/commands/versionsBrowse.js +61 -51
  105. package/dist/commands/whoami.js +11 -14
  106. package/dist/commands/worker/archive-staging.d.ts +9 -0
  107. package/dist/commands/worker/archive-staging.js +257 -0
  108. package/dist/commands/worker/instrument-evidence.d.ts +1 -1
  109. package/dist/commands/worker/instrument-evidence.js +41 -43
  110. package/dist/commands/worker/provider-telemetry.d.ts +2 -1
  111. package/dist/commands/worker/provider-telemetry.js +181 -64
  112. package/dist/commands/worker/runtime.d.ts +18 -3
  113. package/dist/commands/worker/runtime.js +291 -239
  114. package/dist/commands/worker.d.ts +83 -22
  115. package/dist/commands/worker.js +1980 -1411
  116. package/dist/commands/workspaces.d.ts +2 -2
  117. package/dist/commands/workspaces.js +57 -57
  118. package/dist/config.js +23 -20
  119. package/dist/devAuth.d.ts +3 -3
  120. package/dist/devAuth.js +20 -17
  121. package/dist/environment.d.ts +1 -1
  122. package/dist/environment.js +34 -34
  123. package/dist/errors.d.ts +1 -1
  124. package/dist/errors.js +7 -7
  125. package/dist/externalAssetPackValidation.d.ts +1 -1
  126. package/dist/externalAssetPackValidation.js +9 -9
  127. package/dist/http.d.ts +1 -1
  128. package/dist/http.js +9 -9
  129. package/dist/index.js +657 -664
  130. package/dist/listingCaptureLease.js +23 -23
  131. package/dist/listingPreflight.d.ts +2 -2
  132. package/dist/listingPreflight.js +33 -33
  133. package/dist/messages.js +6 -14
  134. package/dist/output.js +9 -9
  135. package/dist/playwright.d.ts +1 -1
  136. package/dist/playwright.js +35 -40
  137. package/dist/proxyFetch.js +30 -27
  138. package/dist/recorderRelease.js +8 -8
  139. package/dist/refs.d.ts +5 -5
  140. package/dist/refs.js +40 -37
  141. package/dist/sessionCookie.js +15 -21
  142. package/dist/shellProbe.js +5 -5
  143. package/dist/taskSelection.d.ts +3 -3
  144. package/dist/taskSelection.js +67 -62
  145. package/dist/taskUtils.d.ts +1 -1
  146. package/dist/taskUtils.js +4 -4
  147. package/dist/tweakStaleness.d.ts +3 -3
  148. package/dist/tweakStaleness.js +8 -8
  149. package/dist/uploadLog.d.ts +3 -3
  150. package/dist/uploadLog.js +51 -51
  151. package/dist/versionCompare.js +3 -3
  152. package/dist/workerAppProject.d.ts +1 -1
  153. package/dist/workerAppProject.js +10 -17
  154. package/dist/workspaceAuth.d.ts +1 -1
  155. package/dist/workspaceAuth.js +28 -22
  156. package/node_modules/@playdrop/ai-client/dist/index.d.ts +35 -35
  157. package/node_modules/@playdrop/ai-client/dist/index.d.ts.map +1 -1
  158. package/node_modules/@playdrop/api-client/dist/client.d.ts +34 -33
  159. package/node_modules/@playdrop/api-client/dist/client.d.ts.map +1 -1
  160. package/node_modules/@playdrop/api-client/dist/core/errors.d.ts +1 -1
  161. package/node_modules/@playdrop/api-client/dist/core/errors.d.ts.map +1 -1
  162. package/node_modules/@playdrop/api-client/dist/core/request.d.ts +2 -2
  163. package/node_modules/@playdrop/api-client/dist/core/request.d.ts.map +1 -1
  164. package/node_modules/@playdrop/api-client/dist/domains/admin.d.ts +2 -2
  165. package/node_modules/@playdrop/api-client/dist/domains/admin.d.ts.map +1 -1
  166. package/node_modules/@playdrop/api-client/dist/domains/admin.js +4 -1
  167. package/node_modules/@playdrop/api-client/dist/domains/agent-tasks.d.ts +4 -3
  168. package/node_modules/@playdrop/api-client/dist/domains/agent-tasks.d.ts.map +1 -1
  169. package/node_modules/@playdrop/api-client/dist/domains/agent-tasks.js +12 -0
  170. package/node_modules/@playdrop/api-client/dist/domains/ai.d.ts +2 -2
  171. package/node_modules/@playdrop/api-client/dist/domains/ai.d.ts.map +1 -1
  172. package/node_modules/@playdrop/api-client/dist/domains/apps.d.ts +4 -4
  173. package/node_modules/@playdrop/api-client/dist/domains/apps.d.ts.map +1 -1
  174. package/node_modules/@playdrop/api-client/dist/domains/asset-packs.d.ts +4 -4
  175. package/node_modules/@playdrop/api-client/dist/domains/asset-packs.d.ts.map +1 -1
  176. package/node_modules/@playdrop/api-client/dist/domains/assets.d.ts +4 -4
  177. package/node_modules/@playdrop/api-client/dist/domains/assets.d.ts.map +1 -1
  178. package/node_modules/@playdrop/api-client/dist/domains/auth.d.ts +2 -2
  179. package/node_modules/@playdrop/api-client/dist/domains/auth.d.ts.map +1 -1
  180. package/node_modules/@playdrop/api-client/dist/domains/chat.d.ts +2 -2
  181. package/node_modules/@playdrop/api-client/dist/domains/chat.d.ts.map +1 -1
  182. package/node_modules/@playdrop/api-client/dist/domains/comments.d.ts +3 -3
  183. package/node_modules/@playdrop/api-client/dist/domains/comments.d.ts.map +1 -1
  184. package/node_modules/@playdrop/api-client/dist/domains/free-credits.d.ts +2 -2
  185. package/node_modules/@playdrop/api-client/dist/domains/free-credits.d.ts.map +1 -1
  186. package/node_modules/@playdrop/api-client/dist/domains/me.d.ts +2 -2
  187. package/node_modules/@playdrop/api-client/dist/domains/me.d.ts.map +1 -1
  188. package/node_modules/@playdrop/api-client/dist/domains/payments.d.ts +2 -2
  189. package/node_modules/@playdrop/api-client/dist/domains/payments.d.ts.map +1 -1
  190. package/node_modules/@playdrop/api-client/dist/domains/player-meta.d.ts +2 -2
  191. package/node_modules/@playdrop/api-client/dist/domains/player-meta.d.ts.map +1 -1
  192. package/node_modules/@playdrop/api-client/dist/domains/playtrade.d.ts +3 -3
  193. package/node_modules/@playdrop/api-client/dist/domains/playtrade.d.ts.map +1 -1
  194. package/node_modules/@playdrop/api-client/dist/domains/playtrade.js +2 -2
  195. package/node_modules/@playdrop/api-client/dist/domains/search.d.ts +2 -2
  196. package/node_modules/@playdrop/api-client/dist/domains/search.d.ts.map +1 -1
  197. package/node_modules/@playdrop/api-client/dist/domains/tags.d.ts +2 -2
  198. package/node_modules/@playdrop/api-client/dist/domains/tags.d.ts.map +1 -1
  199. package/node_modules/@playdrop/api-client/dist/index.d.ts +19 -18
  200. package/node_modules/@playdrop/api-client/dist/index.d.ts.map +1 -1
  201. package/node_modules/@playdrop/api-client/dist/index.js +7 -2
  202. package/node_modules/@playdrop/boxel-core/dist/src/entity-cleaner.d.ts +1 -1
  203. package/node_modules/@playdrop/boxel-core/dist/src/entity-cleaner.js +47 -47
  204. package/node_modules/@playdrop/boxel-core/dist/src/entity-cleaner.js.map +1 -1
  205. package/node_modules/@playdrop/boxel-core/dist/src/entity-utils.d.ts +3 -3
  206. package/node_modules/@playdrop/boxel-core/dist/src/entity-utils.js +32 -47
  207. package/node_modules/@playdrop/boxel-core/dist/src/entity-utils.js.map +1 -1
  208. package/node_modules/@playdrop/boxel-core/dist/src/format-utils.js +16 -18
  209. package/node_modules/@playdrop/boxel-core/dist/src/format-utils.js.map +1 -1
  210. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/geometry.d.ts +2 -2
  211. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/index.d.ts +4 -4
  212. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r15/common.d.ts +1 -1
  213. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r15/index.d.ts +3 -3
  214. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r15/textured-builder.d.ts +2 -2
  215. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r15/textured-builder.js +44 -45
  216. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r15/textured-builder.js.map +1 -1
  217. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r15/types.d.ts +1 -1
  218. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r15/voxel-builder.d.ts +2 -2
  219. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r15/voxel-builder.js +40 -44
  220. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r15/voxel-builder.js.map +1 -1
  221. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/builder.d.ts +2 -2
  222. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/builder.js +30 -34
  223. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/builder.js.map +1 -1
  224. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/index.d.ts +4 -4
  225. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/index.js.map +1 -1
  226. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/scanner.d.ts +3 -3
  227. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/scanner.js +23 -20
  228. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/scanner.js.map +1 -1
  229. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/textures/artifacts.d.ts +3 -3
  230. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/textures/artifacts.js +3 -3
  231. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/textures/face-map.d.ts +1 -1
  232. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/textures/face-map.js +21 -21
  233. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/textures/face-map.js.map +1 -1
  234. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/templates/index.d.ts +1 -1
  235. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/templates/index.js +2 -2
  236. package/node_modules/@playdrop/boxel-core/dist/src/index.d.ts +19 -19
  237. package/node_modules/@playdrop/boxel-core/dist/src/materials.d.ts +1 -1
  238. package/node_modules/@playdrop/boxel-core/dist/src/materials.js +12 -16
  239. package/node_modules/@playdrop/boxel-core/dist/src/materials.js.map +1 -1
  240. package/node_modules/@playdrop/boxel-core/dist/src/palette_tools.d.ts +1 -1
  241. package/node_modules/@playdrop/boxel-core/dist/src/palette_tools.js +38 -41
  242. package/node_modules/@playdrop/boxel-core/dist/src/palette_tools.js.map +1 -1
  243. package/node_modules/@playdrop/boxel-core/dist/src/serialization.d.ts +1 -1
  244. package/node_modules/@playdrop/boxel-core/dist/src/serialization.js +54 -56
  245. package/node_modules/@playdrop/boxel-core/dist/src/serialization.js.map +1 -1
  246. package/node_modules/@playdrop/boxel-core/dist/src/textures.d.ts +3 -3
  247. package/node_modules/@playdrop/boxel-core/dist/src/textures.js +39 -45
  248. package/node_modules/@playdrop/boxel-core/dist/src/textures.js.map +1 -1
  249. package/node_modules/@playdrop/boxel-core/dist/src/transforms/textured-boxes/infer-face.d.ts +2 -2
  250. package/node_modules/@playdrop/boxel-core/dist/src/transforms/textured-boxes/infer-face.js +39 -43
  251. package/node_modules/@playdrop/boxel-core/dist/src/transforms/textured-boxes/infer-face.js.map +1 -1
  252. package/node_modules/@playdrop/boxel-core/dist/src/transforms/textured-boxes/layer-mode.d.ts +3 -3
  253. package/node_modules/@playdrop/boxel-core/dist/src/transforms/textured-boxes/layer-mode.js +35 -35
  254. package/node_modules/@playdrop/boxel-core/dist/src/transforms/textured-boxes/layer-mode.js.map +1 -1
  255. package/node_modules/@playdrop/boxel-core/dist/src/transforms/textured-boxes/merge-overlay.d.ts +1 -1
  256. package/node_modules/@playdrop/boxel-core/dist/src/transforms/textured-boxes/merge-overlay.js +18 -18
  257. package/node_modules/@playdrop/boxel-core/dist/src/transforms/textured-boxes/merge-overlay.js.map +1 -1
  258. package/node_modules/@playdrop/boxel-core/dist/src/transforms/textured-boxes/slice.d.ts +3 -3
  259. package/node_modules/@playdrop/boxel-core/dist/src/transforms/textured-boxes/slice.js +50 -48
  260. package/node_modules/@playdrop/boxel-core/dist/src/transforms/textured-boxes/slice.js.map +1 -1
  261. package/node_modules/@playdrop/boxel-core/dist/src/transforms/upscale.d.ts +1 -1
  262. package/node_modules/@playdrop/boxel-core/dist/src/transforms/upscale.js +22 -26
  263. package/node_modules/@playdrop/boxel-core/dist/src/transforms/upscale.js.map +1 -1
  264. package/node_modules/@playdrop/boxel-core/dist/src/transforms/voxels/slice.d.ts +2 -2
  265. package/node_modules/@playdrop/boxel-core/dist/src/transforms/voxels/slice.js +8 -8
  266. package/node_modules/@playdrop/boxel-core/dist/src/transforms/voxels/slice.js.map +1 -1
  267. package/node_modules/@playdrop/boxel-core/dist/src/transforms/voxels/textured-to-voxel.d.ts +2 -2
  268. package/node_modules/@playdrop/boxel-core/dist/src/transforms/voxels/textured-to-voxel.js +23 -28
  269. package/node_modules/@playdrop/boxel-core/dist/src/transforms/voxels/textured-to-voxel.js.map +1 -1
  270. package/node_modules/@playdrop/boxel-core/dist/src/types.d.ts +8 -8
  271. package/node_modules/@playdrop/boxel-core/dist/src/validation.d.ts +1 -1
  272. package/node_modules/@playdrop/boxel-core/dist/src/validation.js +93 -95
  273. package/node_modules/@playdrop/boxel-core/dist/src/validation.js.map +1 -1
  274. package/node_modules/@playdrop/boxel-core/dist/src/voxels/greedy-mesher.d.ts +1 -1
  275. package/node_modules/@playdrop/boxel-core/dist/src/voxels/greedy-mesher.js +2 -2
  276. package/node_modules/@playdrop/boxel-core/dist/src/voxels/greedy-mesher.js.map +1 -1
  277. package/node_modules/@playdrop/boxel-core/dist/src/voxels.d.ts +1 -1
  278. package/node_modules/@playdrop/boxel-core/dist/src/voxels.js +2 -7
  279. package/node_modules/@playdrop/boxel-core/dist/src/voxels.js.map +1 -1
  280. package/node_modules/@playdrop/boxel-three/dist/src/animations.d.ts +3 -3
  281. package/node_modules/@playdrop/boxel-three/dist/src/builders.d.ts +4 -4
  282. package/node_modules/@playdrop/boxel-three/dist/src/context.d.ts +3 -3
  283. package/node_modules/@playdrop/boxel-three/dist/src/exporters/glb.d.ts +6 -6
  284. package/node_modules/@playdrop/boxel-three/dist/src/exporters/glb.js +9 -1
  285. package/node_modules/@playdrop/boxel-three/dist/src/exporters/image.d.ts +3 -3
  286. package/node_modules/@playdrop/boxel-three/dist/src/index.d.ts +17 -17
  287. package/node_modules/@playdrop/boxel-three/dist/src/instantiate.d.ts +9 -9
  288. package/node_modules/@playdrop/boxel-three/dist/src/nodes.d.ts +3 -3
  289. package/node_modules/@playdrop/boxel-three/dist/src/nodes.js +1 -1
  290. package/node_modules/@playdrop/boxel-three/dist/src/overlays.d.ts +2 -2
  291. package/node_modules/@playdrop/boxel-three/dist/src/primitives.d.ts +1 -1
  292. package/node_modules/@playdrop/boxel-three/dist/src/scene.d.ts +1 -1
  293. package/node_modules/@playdrop/boxel-three/dist/src/skinned-mesh.d.ts +2 -2
  294. package/node_modules/@playdrop/boxel-three/dist/src/texture-atlas.d.ts +1 -1
  295. package/node_modules/@playdrop/boxel-three/dist/src/textures.d.ts +3 -3
  296. package/node_modules/@playdrop/boxel-three/dist/src/types.d.ts +4 -4
  297. package/node_modules/@playdrop/boxel-three/dist/src/voxels/faces.d.ts +2 -2
  298. package/node_modules/@playdrop/boxel-three/dist/src/voxels/mesher.d.ts +1 -1
  299. package/node_modules/@playdrop/boxel-three/dist/test/fixtures/render-worker.d.ts +1 -1
  300. package/node_modules/@playdrop/config/client-meta.json +4 -4
  301. package/node_modules/@playdrop/config/dist/src/client-meta.d.ts +1 -1
  302. package/node_modules/@playdrop/config/dist/src/client-meta.d.ts.map +1 -1
  303. package/node_modules/@playdrop/config/dist/src/client-meta.js +10 -10
  304. package/node_modules/@playdrop/config/dist/src/constants.js +10 -10
  305. package/node_modules/@playdrop/config/dist/src/creator-plans.d.ts +1 -1
  306. package/node_modules/@playdrop/config/dist/src/creator-plans.d.ts.map +1 -1
  307. package/node_modules/@playdrop/config/dist/src/creator-plans.js +27 -28
  308. package/node_modules/@playdrop/config/dist/src/deployment.d.ts +4 -4
  309. package/node_modules/@playdrop/config/dist/src/deployment.d.ts.map +1 -1
  310. package/node_modules/@playdrop/config/dist/src/deployment.js +42 -41
  311. package/node_modules/@playdrop/config/dist/src/game-arena.js +12 -12
  312. package/node_modules/@playdrop/config/dist/src/index.d.ts +9 -9
  313. package/node_modules/@playdrop/config/dist/src/index.d.ts.map +1 -1
  314. package/node_modules/@playdrop/config/dist/src/index.js +24 -25
  315. package/node_modules/@playdrop/config/dist/src/public-deployment.d.ts +4 -4
  316. package/node_modules/@playdrop/config/dist/src/public-deployment.d.ts.map +1 -1
  317. package/node_modules/@playdrop/config/dist/src/public-deployment.js +41 -39
  318. package/node_modules/@playdrop/config/dist/src/runtime-client-meta.js +1 -3
  319. package/node_modules/@playdrop/config/dist/src/runtime-service-origins.d.ts.map +1 -1
  320. package/node_modules/@playdrop/config/dist/src/runtime-service-origins.js +23 -25
  321. package/node_modules/@playdrop/config/dist/src/server/fastify.d.ts +5 -5
  322. package/node_modules/@playdrop/config/dist/src/server/fastify.d.ts.map +1 -1
  323. package/node_modules/@playdrop/config/dist/src/server/fastify.js +44 -46
  324. package/node_modules/@playdrop/config/dist/src/server/logging.d.ts +1 -1
  325. package/node_modules/@playdrop/config/dist/src/server/logging.d.ts.map +1 -1
  326. package/node_modules/@playdrop/config/dist/src/server/logging.js +6 -8
  327. package/node_modules/@playdrop/config/dist/src/types.d.ts +2 -2
  328. package/node_modules/@playdrop/config/dist/test/creator-plans.test.js +12 -12
  329. package/node_modules/@playdrop/config/dist/test/deployment.test.js +59 -59
  330. package/node_modules/@playdrop/config/dist/test/fastify.test.js +4 -4
  331. package/node_modules/@playdrop/config/dist/test/game-arena.test.js +8 -8
  332. package/node_modules/@playdrop/config/dist/test/logging.test.js +6 -6
  333. package/node_modules/@playdrop/config/dist/test/validateClientEnvironment.test.js +57 -57
  334. package/node_modules/@playdrop/config/dist/tsconfig.tsbuildinfo +1 -1
  335. package/node_modules/@playdrop/types/dist/agent-task-playtest.d.ts.map +1 -1
  336. package/node_modules/@playdrop/types/dist/agent-task-terminal.d.ts +2 -2
  337. package/node_modules/@playdrop/types/dist/agent-task-terminal.d.ts.map +1 -1
  338. package/node_modules/@playdrop/types/dist/api.d.ts +314 -250
  339. package/node_modules/@playdrop/types/dist/api.d.ts.map +1 -1
  340. package/node_modules/@playdrop/types/dist/api.js +40 -59
  341. package/node_modules/@playdrop/types/dist/app-capability-filters.d.ts +2 -2
  342. package/node_modules/@playdrop/types/dist/app-playtest-tape.d.ts +6 -6
  343. package/node_modules/@playdrop/types/dist/app-playtest-tape.d.ts.map +1 -1
  344. package/node_modules/@playdrop/types/dist/app-review.d.ts +2 -2
  345. package/node_modules/@playdrop/types/dist/app-review.d.ts.map +1 -1
  346. package/node_modules/@playdrop/types/dist/app-review.js +1 -6
  347. package/node_modules/@playdrop/types/dist/app.d.ts.map +1 -1
  348. package/node_modules/@playdrop/types/dist/asset-pack.d.ts +5 -5
  349. package/node_modules/@playdrop/types/dist/asset-spec.d.ts +4 -4
  350. package/node_modules/@playdrop/types/dist/asset.d.ts +11 -11
  351. package/node_modules/@playdrop/types/dist/attachment-policy.d.ts.map +1 -1
  352. package/node_modules/@playdrop/types/dist/chat.d.ts +3 -3
  353. package/node_modules/@playdrop/types/dist/creator-public-image.d.ts.map +1 -1
  354. package/node_modules/@playdrop/types/dist/graph.d.ts +4 -4
  355. package/node_modules/@playdrop/types/dist/index.d.ts +25 -25
  356. package/node_modules/@playdrop/types/dist/instrument-evidence.d.ts +2 -2
  357. package/node_modules/@playdrop/types/dist/instrument-evidence.d.ts.map +1 -1
  358. package/node_modules/@playdrop/types/dist/instrument-evidence.js +2 -11
  359. package/node_modules/@playdrop/types/dist/locale.d.ts +2 -2
  360. package/node_modules/@playdrop/types/dist/locale.d.ts.map +1 -1
  361. package/node_modules/@playdrop/types/dist/locale.js +2 -17
  362. package/node_modules/@playdrop/types/dist/owned-assets.d.ts +2 -2
  363. package/node_modules/@playdrop/types/dist/owned-assets.d.ts.map +1 -1
  364. package/node_modules/@playdrop/types/dist/player-meta.d.ts +3 -3
  365. package/node_modules/@playdrop/types/dist/player-meta.d.ts.map +1 -1
  366. package/node_modules/@playdrop/types/dist/playtest-notes.d.ts +11 -11
  367. package/node_modules/@playdrop/types/dist/playtest-notes.d.ts.map +1 -1
  368. package/node_modules/@playdrop/types/dist/playtrade.d.ts +8 -5
  369. package/node_modules/@playdrop/types/dist/playtrade.d.ts.map +1 -1
  370. package/node_modules/@playdrop/types/dist/realtime.d.ts +1 -1
  371. package/node_modules/@playdrop/types/dist/tweaks.d.ts +4 -4
  372. package/node_modules/@playdrop/types/dist/tweaks.d.ts.map +1 -1
  373. package/node_modules/@playdrop/types/dist/tweaks.js +12 -2
  374. package/node_modules/@playdrop/types/dist/version.d.ts +14 -14
  375. package/node_modules/@playdrop/types/dist/version.d.ts.map +1 -1
  376. package/node_modules/@playdrop/types/dist/version.js +4 -1
  377. package/node_modules/@playdrop/vox-three/dist/src/index.d.ts +1 -1
  378. package/node_modules/@playdrop/vox-three/dist/src/vox.d.ts +2 -2
  379. package/node_modules/@playdrop/vox-three/dist/src/vox.js +20 -18
  380. package/node_modules/@playdrop/vox-three/dist/src/vox.js.map +1 -1
  381. package/node_modules/@playdrop/vox-three/dist/test/vox.test.js +11 -14
  382. package/node_modules/@playdrop/vox-three/dist/test/vox.test.js.map +1 -1
  383. package/package.json +1 -1
@@ -3,5 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.showChangelog = showChangelog;
4
4
  const publicPages_1 = require("./publicPages");
5
5
  async function showChangelog() {
6
- await (0, publicPages_1.showPublicPage)('changelog', 'app-pages/changelog.md');
6
+ await (0, publicPages_1.showPublicPage)("changelog", "app-pages/changelog.md");
7
7
  }
@@ -23,7 +23,7 @@ const output_1 = require("../output");
23
23
  function positiveId(raw, command) {
24
24
  const value = Number(raw);
25
25
  if (!Number.isInteger(value) || value <= 0) {
26
- (0, messages_1.printErrorWithHelp)('Message id must be a positive integer.', [], { command });
26
+ (0, messages_1.printErrorWithHelp)("Message id must be a positive integer.", [], { command });
27
27
  process.exitCode = 1;
28
28
  return null;
29
29
  }
@@ -31,37 +31,35 @@ function positiveId(raw, command) {
31
31
  }
32
32
  function contentTypeForFile(filePath) {
33
33
  const extension = node_path_1.default.extname(filePath).toLowerCase();
34
- if (extension === '.gif')
35
- return 'image/gif';
36
- if (extension === '.jpg' || extension === '.jpeg')
37
- return 'image/jpeg';
38
- if (extension === '.png')
39
- return 'image/png';
40
- if (extension === '.webp')
41
- return 'image/webp';
42
- if (extension === '.mp4')
43
- return 'video/mp4';
44
- if (extension === '.mov')
45
- return 'video/quicktime';
46
- if (extension === '.webm')
47
- return 'video/webm';
48
- if (extension === '.txt')
49
- return 'text/plain';
50
- if (extension === '.md' || extension === '.markdown')
51
- return 'text/markdown';
52
- if (extension === '.json')
53
- return 'application/json';
34
+ if (extension === ".gif")
35
+ return "image/gif";
36
+ if (extension === ".jpg" || extension === ".jpeg")
37
+ return "image/jpeg";
38
+ if (extension === ".png")
39
+ return "image/png";
40
+ if (extension === ".webp")
41
+ return "image/webp";
42
+ if (extension === ".mp4")
43
+ return "video/mp4";
44
+ if (extension === ".mov")
45
+ return "video/quicktime";
46
+ if (extension === ".webm")
47
+ return "video/webm";
48
+ if (extension === ".txt")
49
+ return "text/plain";
50
+ if (extension === ".md" || extension === ".markdown")
51
+ return "text/markdown";
52
+ if (extension === ".json")
53
+ return "application/json";
54
54
  throw new Error(`unsupported_chat_file:${filePath}`);
55
55
  }
56
56
  async function readWriteOptions(options) {
57
57
  if (options.text !== undefined && options.textFile !== undefined) {
58
- throw new Error('chat_text_and_text_file_conflict');
58
+ throw new Error("chat_text_and_text_file_conflict");
59
59
  }
60
- const body = options.textFile !== undefined
61
- ? await node_fs_1.promises.readFile(node_path_1.default.resolve(options.textFile), 'utf8')
62
- : options.text;
60
+ const body = options.textFile !== undefined ? await node_fs_1.promises.readFile(node_path_1.default.resolve(options.textFile), "utf8") : options.text;
63
61
  const eventData = options.eventDataFile !== undefined
64
- ? JSON.parse(await node_fs_1.promises.readFile(node_path_1.default.resolve(options.eventDataFile), 'utf8'))
62
+ ? JSON.parse(await node_fs_1.promises.readFile(node_path_1.default.resolve(options.eventDataFile), "utf8"))
65
63
  : undefined;
66
64
  const files = await Promise.all((options.file ?? []).map(async (filePath) => {
67
65
  const absolutePath = node_path_1.default.resolve(filePath);
@@ -81,8 +79,8 @@ async function readWriteOptions(options) {
81
79
  ...(options.asSystem !== undefined ? { asSystem: options.asSystem } : {}),
82
80
  };
83
81
  }
84
- function printMessage(message, indent = '') {
85
- const edited = message.editedAt ? ' edited' : '';
82
+ function printMessage(message, indent = "") {
83
+ const edited = message.editedAt ? " edited" : "";
86
84
  console.log(`${indent}#${message.id} ${message.author.displayName} [${message.author.kind}] | ${(0, output_1.formatTimestamp)(message.createdAt)}${edited}`);
87
85
  if (message.body)
88
86
  console.log(`${indent}${message.body.replace(/\n/g, `\n${indent}`)}`);
@@ -90,34 +88,34 @@ function printMessage(message, indent = '') {
90
88
  console.log(`${indent}[${attachment.kind}] ${attachment.fileName ?? attachment.url} ${attachment.url}`);
91
89
  }
92
90
  if (message.reactions.length > 0) {
93
- console.log(`${indent}${message.reactions.map((reaction) => `${reaction.emoji} ${reaction.count}`).join(' ')}`);
91
+ console.log(`${indent}${message.reactions.map((reaction) => `${reaction.emoji} ${reaction.count}`).join(" ")}`);
94
92
  }
95
93
  if (message.replyCount > 0)
96
- console.log(`${indent}${message.replyCount} ${message.replyCount === 1 ? 'reply' : 'replies'}`);
94
+ console.log(`${indent}${message.replyCount} ${message.replyCount === 1 ? "reply" : "replies"}`);
97
95
  }
98
96
  async function runChatCommand(command, options, operation) {
99
- await (0, commandContext_1.withEnvironment)(command, 'PlayDrop Chat', async ({ client }) => {
97
+ await (0, commandContext_1.withEnvironment)(command, "PlayDrop Chat", async ({ client }) => {
100
98
  try {
101
99
  await operation(client);
102
100
  }
103
101
  catch (error) {
104
- if (!(0, errors_1.handleCommandFailure)(error, command, 'PlayDrop Chat'))
102
+ if (!(0, errors_1.handleCommandFailure)(error, command, "PlayDrop Chat"))
105
103
  throw error;
106
104
  }
107
105
  }, { env: options.env });
108
106
  }
109
107
  async function listChatChannels(options = {}) {
110
- await runChatCommand('chat channels', options, async (client) => {
108
+ await runChatCommand("chat channels", options, async (client) => {
111
109
  const response = await client.fetchChatChannels();
112
110
  if (options.json)
113
111
  return (0, output_1.printJson)(response);
114
112
  for (const channel of response.channels) {
115
- console.log(`${channel.slug}\t${channel.displayName}\t${channel.readPolicy}\t${channel.canWrite ? 'write' : 'read'}`);
113
+ console.log(`${channel.slug}\t${channel.displayName}\t${channel.readPolicy}\t${channel.canWrite ? "write" : "read"}`);
116
114
  }
117
115
  });
118
116
  }
119
117
  async function readChatChannel(channel, options = {}) {
120
- await runChatCommand('chat read', options, async (client) => {
118
+ await runChatCommand("chat read", options, async (client) => {
121
119
  const response = await client.fetchChatMessages(channel);
122
120
  if (options.json)
123
121
  return (0, output_1.printJson)(response);
@@ -127,20 +125,20 @@ async function readChatChannel(channel, options = {}) {
127
125
  });
128
126
  }
129
127
  async function readChatThread(rawMessageId, options = {}) {
130
- const messageId = positiveId(rawMessageId, 'chat thread');
128
+ const messageId = positiveId(rawMessageId, "chat thread");
131
129
  if (!messageId)
132
130
  return;
133
- await runChatCommand('chat thread', options, async (client) => {
131
+ await runChatCommand("chat thread", options, async (client) => {
134
132
  const response = await client.fetchChatThread(messageId);
135
133
  if (options.json)
136
134
  return (0, output_1.printJson)(response);
137
135
  if (response.messages.length === 0)
138
136
  return console.log(`No replies to message #${messageId}.`);
139
- response.messages.forEach((message) => printMessage(message, ' '));
137
+ response.messages.forEach((message) => printMessage(message, " "));
140
138
  });
141
139
  }
142
140
  async function sendChatMessage(channel, options) {
143
- await runChatCommand('chat send', options, async (client) => {
141
+ await runChatCommand("chat send", options, async (client) => {
144
142
  const response = await client.sendChatMessage(channel, await readWriteOptions(options));
145
143
  if (options.json)
146
144
  return (0, output_1.printJson)(response);
@@ -148,10 +146,10 @@ async function sendChatMessage(channel, options) {
148
146
  });
149
147
  }
150
148
  async function replyChatMessage(rawMessageId, options) {
151
- const messageId = positiveId(rawMessageId, 'chat reply');
149
+ const messageId = positiveId(rawMessageId, "chat reply");
152
150
  if (!messageId)
153
151
  return;
154
- await runChatCommand('chat reply', options, async (client) => {
152
+ await runChatCommand("chat reply", options, async (client) => {
155
153
  const response = await client.replyChatMessage(messageId, await readWriteOptions(options));
156
154
  if (options.json)
157
155
  return (0, output_1.printJson)(response);
@@ -159,10 +157,10 @@ async function replyChatMessage(rawMessageId, options) {
159
157
  });
160
158
  }
161
159
  async function editChatMessage(rawMessageId, options) {
162
- const messageId = positiveId(rawMessageId, 'chat edit');
160
+ const messageId = positiveId(rawMessageId, "chat edit");
163
161
  if (!messageId)
164
162
  return;
165
- await runChatCommand('chat edit', options, async (client) => {
163
+ await runChatCommand("chat edit", options, async (client) => {
166
164
  const write = await readWriteOptions(options);
167
165
  const response = await client.editChatMessage(messageId, write);
168
166
  if (options.json)
@@ -171,10 +169,10 @@ async function editChatMessage(rawMessageId, options) {
171
169
  });
172
170
  }
173
171
  async function reactChatMessage(rawMessageId, emoji, options = {}) {
174
- const messageId = positiveId(rawMessageId, 'chat react');
172
+ const messageId = positiveId(rawMessageId, "chat react");
175
173
  if (!messageId)
176
174
  return;
177
- await runChatCommand('chat react', options, async (client) => {
175
+ await runChatCommand("chat react", options, async (client) => {
178
176
  const response = await client.reactChatMessage(messageId, emoji);
179
177
  if (options.json)
180
178
  return (0, output_1.printJson)(response);
@@ -182,10 +180,10 @@ async function reactChatMessage(rawMessageId, emoji, options = {}) {
182
180
  });
183
181
  }
184
182
  async function unreactChatMessage(rawMessageId, emoji, options = {}) {
185
- const messageId = positiveId(rawMessageId, 'chat unreact');
183
+ const messageId = positiveId(rawMessageId, "chat unreact");
186
184
  if (!messageId)
187
185
  return;
188
- await runChatCommand('chat unreact', options, async (client) => {
186
+ await runChatCommand("chat unreact", options, async (client) => {
189
187
  const response = await client.unreactChatMessage(messageId, emoji);
190
188
  if (options.json)
191
189
  return (0, output_1.printJson)(response);
@@ -193,15 +191,15 @@ async function unreactChatMessage(rawMessageId, emoji, options = {}) {
193
191
  });
194
192
  }
195
193
  async function grantChatAccess(channel, username, options = {}) {
196
- await runChatCommand('chat access grant', options, async (client) => {
194
+ await runChatCommand("chat access grant", options, async (client) => {
197
195
  const response = await client.grantChatAccess(channel, username, !options.readOnly);
198
196
  if (options.json)
199
197
  return (0, output_1.printJson)(response);
200
- (0, output_1.printSuccess)(`${username} now has ${response.canWrite ? 'write' : 'read'} access to ${channel}.`);
198
+ (0, output_1.printSuccess)(`${username} now has ${response.canWrite ? "write" : "read"} access to ${channel}.`);
201
199
  });
202
200
  }
203
201
  async function revokeChatAccess(channel, username, options = {}) {
204
- await runChatCommand('chat access revoke', options, async (client) => {
202
+ await runChatCommand("chat access revoke", options, async (client) => {
205
203
  await client.revokeChatAccess(channel, username);
206
204
  if (options.json)
207
205
  return (0, output_1.printJson)({ success: true, channel, username });
@@ -209,13 +207,13 @@ async function revokeChatAccess(channel, username, options = {}) {
209
207
  });
210
208
  }
211
209
  async function setChatVisibility(channel, visibility, options = {}) {
212
- const readPolicy = visibility === 'public' ? 'PUBLIC' : visibility === 'admin-only' ? 'ADMIN_ONLY' : null;
210
+ const readPolicy = visibility === "public" ? "PUBLIC" : visibility === "admin-only" ? "ADMIN_ONLY" : null;
213
211
  if (!readPolicy) {
214
- (0, messages_1.printErrorWithHelp)('Visibility must be public or admin-only.', [], { command: 'chat visibility' });
212
+ (0, messages_1.printErrorWithHelp)("Visibility must be public or admin-only.", [], { command: "chat visibility" });
215
213
  process.exitCode = 1;
216
214
  return;
217
215
  }
218
- await runChatCommand('chat visibility', options, async (client) => {
216
+ await runChatCommand("chat visibility", options, async (client) => {
219
217
  const response = await client.setChatVisibility(channel, readPolicy);
220
218
  if (options.json)
221
219
  return (0, output_1.printJson)(response);
@@ -1,4 +1,4 @@
1
- import { type AppSurface } from '@playdrop/types';
1
+ import { type AppSurface } from "@playdrop/types";
2
2
  type ProjectCheckOptions = {
3
3
  app?: string;
4
4
  timeout?: string | number;
@@ -19,32 +19,32 @@ function resolveProjectCheckTarget(targetArg, appOption) {
19
19
  }
20
20
  catch (error) {
21
21
  const code = error?.code;
22
- const message = error?.message || 'Unable to resolve project check target.';
23
- const suggestions = code === 'app_required'
22
+ const message = error?.message || "Unable to resolve project check target.";
23
+ const suggestions = code === "app_required"
24
24
  ? ['Use "--app <name>" to choose which app to check.']
25
- : code === 'catalogue_missing'
26
- ? ['Run the command inside a Playdrop workspace with catalogue.json.']
27
- : ['Provide a valid catalogue-backed app target.'];
28
- (0, messages_1.printErrorWithHelp)(message, suggestions, { command: 'project check' });
25
+ : code === "catalogue_missing"
26
+ ? ["Run the command inside a Playdrop workspace with catalogue.json."]
27
+ : ["Provide a valid catalogue-backed app target."];
28
+ (0, messages_1.printErrorWithHelp)(message, suggestions, { command: "project check" });
29
29
  process.exitCode = 1;
30
30
  return null;
31
31
  }
32
32
  }
33
33
  function parseProjectCheckTimeoutMs(value) {
34
- if (value === undefined || value === null || value === '') {
34
+ if (value === undefined || value === null || value === "") {
35
35
  return 15000;
36
36
  }
37
- const numeric = typeof value === 'number' ? value : Number(value);
37
+ const numeric = typeof value === "number" ? value : Number(value);
38
38
  if (!Number.isFinite(numeric) || numeric <= 0) {
39
- throw new Error('Timeout must be a positive number of seconds.');
39
+ throw new Error("Timeout must be a positive number of seconds.");
40
40
  }
41
41
  if (numeric > 600) {
42
- throw new Error('Timeout cannot exceed 600 seconds.');
42
+ throw new Error("Timeout cannot exceed 600 seconds.");
43
43
  }
44
44
  return Math.round(numeric * 1000);
45
45
  }
46
46
  function defaultProjectCheckScreenshotPath(appName) {
47
- return (0, node_path_1.join)('assets', 'marketing', 'playdrop', 'check', `${appName}.png`);
47
+ return (0, node_path_1.join)("assets", "marketing", "playdrop", "check", `${appName}.png`);
48
48
  }
49
49
  function buildComparisonScreenshotPath(basePath, run) {
50
50
  const extension = (0, node_path_1.extname)(basePath);
@@ -54,9 +54,9 @@ function buildComparisonScreenshotPath(basePath, run) {
54
54
  return `${basePath.slice(0, -extension.length)}-${run}${extension}`;
55
55
  }
56
56
  function formatPlaytestCheckSuccess(input) {
57
- return `[check] Passed ${input.creatorUsername}/${input.appName} on ${input.surface}: input delivery ${input.actionCount}/${input.actionCount}, `
58
- + `visible change mean=${input.meanDelta.toFixed(4)} changedPixels=${(input.changedPixelRatio * 100).toFixed(1)}%. `
59
- + `Gameplay success was not assessed. Evidence: idle=${input.idleCapture}; tape=${input.tapeCapture}`;
57
+ return (`[check] Passed ${input.creatorUsername}/${input.appName} on ${input.surface}: input delivery ${input.actionCount}/${input.actionCount}, ` +
58
+ `visible change mean=${input.meanDelta.toFixed(4)} changedPixels=${(input.changedPixelRatio * 100).toFixed(1)}%. ` +
59
+ `Gameplay success was not assessed. Evidence: idle=${input.idleCapture}; tape=${input.tapeCapture}`);
60
60
  }
61
61
  async function check(targetArg, options = {}) {
62
62
  let timeoutMs;
@@ -64,7 +64,7 @@ async function check(targetArg, options = {}) {
64
64
  timeoutMs = parseProjectCheckTimeoutMs(options.timeout);
65
65
  }
66
66
  catch (error) {
67
- (0, messages_1.printErrorWithHelp)(error?.message || 'Invalid project check options.', ['Use --tape with DESKTOP, MOBILE_LANDSCAPE, or MOBILE_PORTRAIT.'], { command: 'project check' });
67
+ (0, messages_1.printErrorWithHelp)(error?.message || "Invalid project check options.", ["Use --tape with DESKTOP, MOBILE_LANDSCAPE, or MOBILE_PORTRAIT."], { command: "project check" });
68
68
  process.exitCode = 1;
69
69
  return;
70
70
  }
@@ -74,18 +74,18 @@ async function check(targetArg, options = {}) {
74
74
  }
75
75
  const filePath = resolvedTarget.htmlPath;
76
76
  if (!(0, node_fs_1.existsSync)(filePath) || !(0, node_fs_1.statSync)(filePath).isFile()) {
77
- (0, messages_1.printErrorWithHelp)(`App HTML was not found at ${filePath}.`, ['Run the app build first or fix the catalogue file path.'], { command: 'project check' });
77
+ (0, messages_1.printErrorWithHelp)(`App HTML was not found at ${filePath}.`, ["Run the app build first or fix the catalogue file path."], { command: "project check" });
78
78
  process.exitCode = 1;
79
79
  return;
80
80
  }
81
- const taskLookup = (0, catalogue_1.findAppTaskByFile)(filePath);
81
+ const taskLookup = (0, catalogue_1.findAppTaskByFile)(filePath, { listingAssets: "ignore" });
82
82
  if (taskLookup.errors.length > 0) {
83
- (0, messages_1.printErrorWithHelp)(taskLookup.errors[0] || 'Failed to resolve the app task from catalogue.json.', taskLookup.errors.slice(1), { command: 'project check' });
83
+ (0, messages_1.printErrorWithHelp)(taskLookup.errors[0] || "Failed to resolve the app task from catalogue.json.", taskLookup.errors.slice(1), { command: "project check" });
84
84
  process.exitCode = 1;
85
85
  return;
86
86
  }
87
87
  if (!taskLookup.task) {
88
- (0, messages_1.printErrorWithHelp)('project check requires a catalogue-backed app target.', ['Add this app to catalogue.json, then rerun "playdrop project check".'], { command: 'project check' });
88
+ (0, messages_1.printErrorWithHelp)("project check requires a catalogue-backed app target.", ['Add this app to catalogue.json, then rerun "playdrop project check".'], { command: "project check" });
89
89
  process.exitCode = 1;
90
90
  return;
91
91
  }
@@ -94,13 +94,13 @@ async function check(targetArg, options = {}) {
94
94
  if (options.tape) {
95
95
  tapeSurface = (0, types_1.parseAppSurface)(options.tape);
96
96
  if (!tapeSurface) {
97
- (0, messages_1.printErrorWithHelp)(`Invalid tape surface "${options.tape}".`, ['Use DESKTOP, MOBILE_LANDSCAPE, or MOBILE_PORTRAIT.'], { command: 'project check' });
97
+ (0, messages_1.printErrorWithHelp)(`Invalid tape surface "${options.tape}".`, ["Use DESKTOP, MOBILE_LANDSCAPE, or MOBILE_PORTRAIT."], { command: "project check" });
98
98
  process.exitCode = 1;
99
99
  return;
100
100
  }
101
101
  playtestTape = taskLookup.task.playtestTapes?.[tapeSurface] ?? null;
102
102
  if (!playtestTape) {
103
- (0, messages_1.printErrorWithHelp)(`No ${tapeSurface} playtest tape is declared for this app.`, [`Add playtestTapes.${tapeSurface} to catalogue.json.`], { command: 'project check' });
103
+ (0, messages_1.printErrorWithHelp)(`No ${tapeSurface} playtest tape is declared for this app.`, [`Add playtestTapes.${tapeSurface} to catalogue.json.`], { command: "project check" });
104
104
  process.exitCode = 1;
105
105
  return;
106
106
  }
@@ -112,15 +112,15 @@ async function check(targetArg, options = {}) {
112
112
  }
113
113
  catch (error) {
114
114
  if (resolvedTarget.cataloguePath) {
115
- (0, messages_1.printErrorWithHelp)(error?.message || 'Catalogue lookup failed.', ['Ensure the HTML file is listed exactly once in catalogue.json with a valid type.'], { command: 'project check' });
115
+ (0, messages_1.printErrorWithHelp)(error?.message || "Catalogue lookup failed.", ["Ensure the HTML file is listed exactly once in catalogue.json with a valid type."], { command: "project check" });
116
116
  process.exitCode = 1;
117
117
  return;
118
118
  }
119
119
  }
120
120
  const screenshotPath = options.screenshot?.trim() || defaultProjectCheckScreenshotPath(appName);
121
121
  const workspacePath = resolvedTarget.cataloguePath ?? (0, node_path_1.dirname)(filePath);
122
- await (0, commandContext_1.withEnvironment)('project check', 'Checking the Playdrop hosted game shell', async ({ client, env, envConfig, account, token, workspaceAuth }) => {
123
- let currentUsername = '';
122
+ await (0, commandContext_1.withEnvironment)("project check", "Checking the Playdrop hosted game shell", async ({ client, env, envConfig, account, token, workspaceAuth }) => {
123
+ let currentUsername = "";
124
124
  try {
125
125
  currentUsername = await (0, devShared_1.resolveDevCreatorUsername)({
126
126
  client,
@@ -133,17 +133,17 @@ async function check(targetArg, options = {}) {
133
133
  return;
134
134
  }
135
135
  if (error instanceof types_1.UnsupportedClientError) {
136
- (0, http_1.handleUnsupportedError)(error, 'Authentication');
136
+ (0, http_1.handleUnsupportedError)(error, "Authentication");
137
137
  process.exitCode = 1;
138
138
  return;
139
139
  }
140
140
  if (error instanceof types_1.ApiError) {
141
- (0, messages_1.printErrorWithHelp)(`Could not fetch your account (status ${error.status}).`, ['Run "playdrop auth login" to refresh your session.'], { command: 'project check' });
141
+ (0, messages_1.printErrorWithHelp)(`Could not fetch your account (status ${error.status}).`, ['Run "playdrop auth login" to refresh your session.'], { command: "project check" });
142
142
  process.exitCode = 1;
143
143
  return;
144
144
  }
145
145
  if ((0, devShared_1.isNetworkError)(error)) {
146
- (0, messages_1.printNetworkIssue)('Could not reach the Playdrop API to resolve your account.', 'project check');
146
+ (0, messages_1.printNetworkIssue)("Could not reach the Playdrop API to resolve your account.", "project check");
147
147
  process.exitCode = 1;
148
148
  return;
149
149
  }
@@ -158,17 +158,17 @@ async function check(targetArg, options = {}) {
158
158
  return;
159
159
  }
160
160
  if (error instanceof types_1.UnsupportedClientError) {
161
- (0, http_1.handleUnsupportedError)(error, 'Project check');
161
+ (0, http_1.handleUnsupportedError)(error, "Project check");
162
162
  process.exitCode = 1;
163
163
  return;
164
164
  }
165
165
  if (error instanceof types_1.ApiError && error.status === 404) {
166
- (0, messages_1.printErrorWithHelp)(`App ${currentUsername}/${appName} is not registered on ${env}.`, [`Run "playdrop project create app ${appName}" before using project check.`], { command: 'project check' });
166
+ (0, messages_1.printErrorWithHelp)(`App ${currentUsername}/${appName} is not registered on ${env}.`, [`Run "playdrop project create app ${appName}" before using project check.`], { command: "project check" });
167
167
  process.exitCode = 1;
168
168
  return;
169
169
  }
170
170
  if ((0, devShared_1.isNetworkError)(error)) {
171
- (0, messages_1.printNetworkIssue)('Could not reach the Playdrop API to verify the app registration.', 'project check');
171
+ (0, messages_1.printNetworkIssue)("Could not reach the Playdrop API to verify the app registration.", "project check");
172
172
  process.exitCode = 1;
173
173
  return;
174
174
  }
@@ -179,7 +179,7 @@ async function check(targetArg, options = {}) {
179
179
  captureSession = (0, taskCaptureSession_1.resolveTaskCaptureSession)(workspaceAuth, registeredApp);
180
180
  }
181
181
  catch (error) {
182
- (0, messages_1.printErrorWithHelp)(error?.message || 'Worker capture session is invalid.', ['Run this command from the active worker task workspace.'], { command: 'project check' });
182
+ (0, messages_1.printErrorWithHelp)(error?.message || "Worker capture session is invalid.", ["Run this command from the active worker task workspace."], { command: "project check" });
183
183
  process.exitCode = 1;
184
184
  return;
185
185
  }
@@ -199,15 +199,15 @@ async function check(targetArg, options = {}) {
199
199
  postReadyWaitMs: input.postReadyWaitMs,
200
200
  });
201
201
  if (tapeSurface && playtestTape) {
202
- const idleScreenshotPath = buildComparisonScreenshotPath(screenshotPath, 'idle');
203
- const tapeScreenshotPath = buildComparisonScreenshotPath(screenshotPath, 'tape');
202
+ const idleScreenshotPath = buildComparisonScreenshotPath(screenshotPath, "idle");
203
+ const tapeScreenshotPath = buildComparisonScreenshotPath(screenshotPath, "tape");
204
204
  const idleResult = await runCheck({
205
205
  screenshotPath: idleScreenshotPath,
206
206
  surface: tapeSurface,
207
207
  postReadyWaitMs: playtestTape.durationMs,
208
208
  });
209
- if (idleResult.status !== 'PASSED') {
210
- (0, messages_1.printErrorWithHelp)((0, loadCheck_1.formatHostedLoadCheckFailure)(appName, idleResult, 'local'), idleResult.screenshotPath ? [`Idle screenshot: ${idleResult.screenshotPath}`] : [], { command: 'project check' });
209
+ if (idleResult.status !== "PASSED") {
210
+ (0, messages_1.printErrorWithHelp)((0, loadCheck_1.formatHostedLoadCheckFailure)(appName, idleResult, "local"), idleResult.screenshotPath ? [`Idle screenshot: ${idleResult.screenshotPath}`] : [], { command: "project check" });
211
211
  process.exitCode = 1;
212
212
  return;
213
213
  }
@@ -216,8 +216,8 @@ async function check(targetArg, options = {}) {
216
216
  surface: tapeSurface,
217
217
  tape: playtestTape,
218
218
  });
219
- if (tapeResult.status !== 'PASSED') {
220
- (0, messages_1.printErrorWithHelp)((0, loadCheck_1.formatHostedLoadCheckFailure)(appName, tapeResult, 'local'), tapeResult.screenshotPath ? [`Tape screenshot: ${tapeResult.screenshotPath}`] : [], { command: 'project check' });
219
+ if (tapeResult.status !== "PASSED") {
220
+ (0, messages_1.printErrorWithHelp)((0, loadCheck_1.formatHostedLoadCheckFailure)(appName, tapeResult, "local"), tapeResult.screenshotPath ? [`Tape screenshot: ${tapeResult.screenshotPath}`] : [], { command: "project check" });
221
221
  process.exitCode = 1;
222
222
  return;
223
223
  }
@@ -225,12 +225,12 @@ async function check(targetArg, options = {}) {
225
225
  const tapeCapture = tapeResult.screenshotPath ?? tapeScreenshotPath;
226
226
  const comparison = await (0, loadCheck_1.comparePlaytestFrames)(idleCapture, tapeCapture);
227
227
  if (!comparison.passed) {
228
- (0, messages_1.printErrorWithHelp)(`playtest_smoke_check_not_interactive: The validator completed all ${playtestTape.events.length} tape actions `
229
- + `without a crash, but the result looked the same as running the game for ${playtestTape.durationMs} ms without input.`, [
228
+ (0, messages_1.printErrorWithHelp)(`playtest_smoke_check_not_interactive: The validator completed all ${playtestTape.events.length} tape actions ` +
229
+ `without a crash, but the result looked the same as running the game for ${playtestTape.durationMs} ms without input.`, [
230
230
  `Idle screenshot: ${idleCapture}`,
231
231
  `Tape screenshot: ${tapeCapture}`,
232
- 'Make sure the tape performs the core gameplay action and produces a visible response.',
233
- ], { command: 'project check' });
232
+ "Make sure the tape performs the core gameplay action and produces a visible response.",
233
+ ], { command: "project check" });
234
234
  process.exitCode = 1;
235
235
  return;
236
236
  }
@@ -247,12 +247,12 @@ async function check(targetArg, options = {}) {
247
247
  return;
248
248
  }
249
249
  const result = await runCheck({ screenshotPath });
250
- if (result.status !== 'PASSED') {
251
- (0, messages_1.printErrorWithHelp)((0, loadCheck_1.formatHostedLoadCheckFailure)(appName, result, 'local'), result.screenshotPath ? [`Screenshot: ${result.screenshotPath}`] : [], { command: 'project check' });
250
+ if (result.status !== "PASSED") {
251
+ (0, messages_1.printErrorWithHelp)((0, loadCheck_1.formatHostedLoadCheckFailure)(appName, result, "local"), result.screenshotPath ? [`Screenshot: ${result.screenshotPath}`] : [], { command: "project check" });
252
252
  process.exitCode = 1;
253
253
  return;
254
254
  }
255
255
  const checkedSurface = (0, loadCheck_1.resolveLoadCheckSurface)(taskLookup.task.surfaceTargets, taskLookup.task.primarySurface);
256
- console.log(`[check] Passed ${currentUsername}/${appName} on ${checkedSurface}: launch ready${result.webglRenderer ? ` with hardware renderer ${result.webglRenderer}` : ''}. Gameplay success was not assessed. Screenshot=${result.screenshotPath ?? screenshotPath}`);
256
+ console.log(`[check] Passed ${currentUsername}/${appName} on ${checkedSurface}: launch ready${result.webglRenderer ? ` with hardware renderer ${result.webglRenderer}` : ""}. Gameplay success was not assessed. Screenshot=${result.screenshotPath ?? screenshotPath}`);
257
257
  }, { workspacePath });
258
258
  }
@@ -1,5 +1,5 @@
1
1
  export interface MacClientManifest {
2
- platform: 'mac';
2
+ platform: "mac";
3
3
  version: string;
4
4
  build: string;
5
5
  versionCode: string;
@@ -10,7 +10,7 @@ export interface MacClientManifest {
10
10
  export interface ClientStatus {
11
11
  platform: NodeJS.Platform | string;
12
12
  supported: boolean;
13
- status: 'unavailable' | 'missing' | 'installed' | 'update-available';
13
+ status: "unavailable" | "missing" | "installed" | "update-available";
14
14
  installed: boolean;
15
15
  appPath?: string;
16
16
  version?: string;
@@ -40,5 +40,5 @@ export declare function getClientStatus(options?: ClientStatusOptions): Promise<
40
40
  export declare function installClient(options?: ClientActionOptions): Promise<void>;
41
41
  export declare function updateClient(options?: ClientActionOptions): Promise<void>;
42
42
  export declare function launchClient(options?: ClientActionOptions): Promise<void>;
43
- export declare function installMacDmg(manifest: MacClientManifest, appPath: string, runCommand: NonNullable<ClientActionOptions['runCommand']>): Promise<boolean>;
43
+ export declare function installMacDmg(manifest: MacClientManifest, appPath: string, runCommand: NonNullable<ClientActionOptions["runCommand"]>): Promise<boolean>;
44
44
  export {};