@playdrop/playdrop-cli 0.16.5 → 0.16.12

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
@@ -11,14 +11,14 @@ function assertTweakStateMatches(task, latest) {
11
11
  if (task.tweaks !== undefined && basedOn === latestId)
12
12
  return;
13
13
  throw new Error([
14
- 'Tweak definition is out of date.',
15
- '',
16
- `Code is based on: ${basedOn ?? 'none'}`,
17
- `Latest state is: ${latestId ?? 'none'}`,
18
- '',
19
- 'Latest values:',
14
+ "Tweak definition is out of date.",
15
+ "",
16
+ `Code is based on: ${basedOn ?? "none"}`,
17
+ `Latest state is: ${latestId ?? "none"}`,
18
+ "",
19
+ "Latest values:",
20
20
  JSON.stringify(latest?.values ?? null, null, 2),
21
- ].join('\n'));
21
+ ].join("\n"));
22
22
  }
23
23
  async function fetchAndAssertTweakState(client, creatorUsername, task, options = {}) {
24
24
  let latest = null;
@@ -28,7 +28,7 @@ async function fetchAndAssertTweakState(client, creatorUsername, task, options =
28
28
  catch (error) {
29
29
  if (!(error instanceof types_1.ApiError))
30
30
  throw error;
31
- if (error.code !== 'tweaks_not_declared' && !(options.allowAppNotFound && error.code === 'app_not_found')) {
31
+ if (error.code !== "tweaks_not_declared" && !(options.allowAppNotFound && error.code === "app_not_found")) {
32
32
  throw error;
33
33
  }
34
34
  }
@@ -1,9 +1,9 @@
1
- export type TaskAction = 'validate' | 'build' | 'format' | 'upload';
2
- export type TaskStatus = 'success' | 'skipped' | 'blocked' | 'error';
1
+ export type TaskAction = "validate" | "build" | "format" | "upload";
2
+ export type TaskStatus = "success" | "skipped" | "blocked" | "error";
3
3
  export type TaskLogEntry = {
4
4
  action: TaskAction;
5
5
  status: TaskStatus;
6
- entityType: 'app' | 'asset-spec' | 'asset' | 'owned-asset' | 'asset-pack' | 'tag-group' | 'tag';
6
+ entityType: "app" | "asset-spec" | "asset" | "owned-asset" | "asset-pack" | "tag-group" | "tag";
7
7
  entityId: string;
8
8
  catalogue: string;
9
9
  detail?: string;
package/dist/uploadLog.js CHANGED
@@ -4,42 +4,42 @@ exports.formatTaskLogLine = formatTaskLogLine;
4
4
  exports.printTaskSummary = printTaskSummary;
5
5
  exports.printPublishedAppNextSteps = printPublishedAppNextSteps;
6
6
  const STATUS_EMOJI = {
7
- success: '',
8
- skipped: '',
9
- blocked: '',
10
- error: '',
7
+ success: "",
8
+ skipped: "",
9
+ blocked: "",
10
+ error: "",
11
11
  };
12
12
  const ACTION_VERBS = {
13
13
  validate: {
14
- success: 'validated',
15
- skipped: 'skipped',
16
- blocked: 'blocked',
17
- error: '',
14
+ success: "validated",
15
+ skipped: "skipped",
16
+ blocked: "blocked",
17
+ error: "",
18
18
  },
19
19
  build: {
20
- success: 'built',
21
- skipped: 'skipped',
22
- blocked: 'blocked',
23
- error: '',
20
+ success: "built",
21
+ skipped: "skipped",
22
+ blocked: "blocked",
23
+ error: "",
24
24
  },
25
25
  format: {
26
- success: 'formatted',
27
- skipped: 'skipped',
28
- blocked: 'blocked',
29
- error: '',
26
+ success: "formatted",
27
+ skipped: "skipped",
28
+ blocked: "blocked",
29
+ error: "",
30
30
  },
31
31
  upload: {
32
- success: '',
33
- skipped: '',
34
- blocked: '',
35
- error: '',
32
+ success: "",
33
+ skipped: "",
34
+ blocked: "",
35
+ error: "",
36
36
  },
37
37
  };
38
38
  function formatLabel(entry) {
39
39
  const base = entry.entityType;
40
- const verb = ACTION_VERBS[entry.action]?.[entry.status] ?? '';
40
+ const verb = ACTION_VERBS[entry.action]?.[entry.status] ?? "";
41
41
  const labelParts = verb ? [base, verb] : [base];
42
- return `${labelParts.join(' ')} ${entry.entityId}`.trim();
42
+ return `${labelParts.join(" ")} ${entry.entityId}`.trim();
43
43
  }
44
44
  function formatTaskLogLine(entry) {
45
45
  const prefix = `${STATUS_EMOJI[entry.status]} ${formatLabel(entry)}`;
@@ -54,13 +54,13 @@ function summarize(entries) {
54
54
  let blocked = 0;
55
55
  let failed = 0;
56
56
  for (const entry of entries) {
57
- if (entry.status === 'success')
57
+ if (entry.status === "success")
58
58
  success += 1;
59
- if (entry.status === 'skipped')
59
+ if (entry.status === "skipped")
60
60
  skipped += 1;
61
- if (entry.status === 'blocked')
61
+ if (entry.status === "blocked")
62
62
  blocked += 1;
63
- if (entry.status === 'error')
63
+ if (entry.status === "error")
64
64
  failed += 1;
65
65
  }
66
66
  return { success, skipped, blocked, failed };
@@ -75,44 +75,44 @@ function printTaskSummary(entries, warnings, options) {
75
75
  const { success, skipped, blocked, failed } = summarize(entries);
76
76
  const actionLabels = {
77
77
  validate: {
78
- complete: 'Validation complete',
79
- error: 'Validation finished with errors',
80
- none: 'No entries validated',
81
- unit: 'validated',
78
+ complete: "Validation complete",
79
+ error: "Validation finished with errors",
80
+ none: "No entries validated",
81
+ unit: "validated",
82
82
  },
83
83
  build: {
84
- complete: 'Build complete',
85
- error: 'Build finished with errors',
86
- none: 'No entries built',
87
- unit: 'built',
84
+ complete: "Build complete",
85
+ error: "Build finished with errors",
86
+ none: "No entries built",
87
+ unit: "built",
88
88
  },
89
89
  format: {
90
- complete: 'Format complete',
91
- error: 'Format finished with errors',
92
- none: 'No entries formatted',
93
- unit: 'formatted',
90
+ complete: "Format complete",
91
+ error: "Format finished with errors",
92
+ none: "No entries formatted",
93
+ unit: "formatted",
94
94
  },
95
95
  upload: {
96
- complete: 'Upload complete',
97
- error: 'Upload finished with errors',
98
- none: 'No changes uploaded',
99
- unit: 'uploaded',
96
+ complete: "Upload complete",
97
+ error: "Upload finished with errors",
98
+ none: "No changes uploaded",
99
+ unit: "uploaded",
100
100
  },
101
101
  };
102
102
  const labels = actionLabels[options.action];
103
103
  let summaryEmoji;
104
104
  let summaryText;
105
105
  if (failed > 0 || blocked > 0) {
106
- summaryEmoji = '';
106
+ summaryEmoji = "";
107
107
  summaryText = labels.error;
108
108
  process.exitCode = process.exitCode || 1;
109
109
  }
110
110
  else if (success === 0) {
111
- summaryEmoji = '';
111
+ summaryEmoji = "";
112
112
  summaryText = labels.none;
113
113
  }
114
114
  else {
115
- summaryEmoji = '';
115
+ summaryEmoji = "";
116
116
  summaryText = labels.complete;
117
117
  }
118
118
  const parts = [
@@ -121,21 +121,21 @@ function printTaskSummary(entries, warnings, options) {
121
121
  `${blocked} blocked`,
122
122
  `${failed} failed`,
123
123
  ];
124
- if (options.action === 'upload' && options.environment) {
124
+ if (options.action === "upload" && options.environment) {
125
125
  parts[0] = `${parts[0]} (env ${options.environment})`;
126
126
  }
127
- console.log(parts.join(', '));
127
+ console.log(parts.join(", "));
128
128
  }
129
129
  function printPublishedAppNextSteps(entries) {
130
- const apps = entries.filter((entry) => entry.status === 'success' && entry.entityType === 'app' && entry.playUrl);
130
+ const apps = entries.filter((entry) => entry.status === "success" && entry.entityType === "app" && entry.playUrl);
131
131
  for (const entry of apps) {
132
132
  const playUrl = entry.playUrl;
133
- console.log('');
133
+ console.log("");
134
134
  console.log(`Next steps for ${entry.entityId}:`);
135
135
  console.log(`- Manually test the game at ${playUrl} and make sure it is working and up to spec.`);
136
136
  console.log(`- Once satisfied, share the game URL on social media to start having people play it: ${playUrl}`);
137
- console.log('- Publish the code on GitHub in a public repo with the playable game link in the README.');
138
- console.log('- Set up automation to check player feedback every day using play count, likes, and comments, then come up with improvement ideas from it.');
137
+ console.log("- Publish the code on GitHub in a public repo with the playable game link in the README.");
138
+ console.log("- Set up automation to check player feedback every day using play count, likes, and comments, then come up with improvement ideas from it.");
139
139
  console.log('- Send feedback to Playdrop with "playdrop feedback send" for any bugs or improvement ideas you encountered.');
140
140
  }
141
141
  }
@@ -23,8 +23,8 @@ function compareVersions(left, right) {
23
23
  function parseVersion(value) {
24
24
  return value
25
25
  .trim()
26
- .replace(/^[vV]/, '')
27
- .split('.')
28
- .map((part) => Number.parseInt(part.split('-')[0] ?? '0', 10))
26
+ .replace(/^[vV]/, "")
27
+ .split(".")
28
+ .map((part) => Number.parseInt(part.split("-")[0] ?? "0", 10))
29
29
  .filter((part) => Number.isFinite(part));
30
30
  }
@@ -1,2 +1,2 @@
1
- import type { AppTask } from './catalogue';
1
+ import type { AppTask } from "./catalogue";
2
2
  export declare function prepareWorkerAppTask(task: AppTask): AppTask;
@@ -3,30 +3,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.prepareWorkerAppTask = prepareWorkerAppTask;
4
4
  const node_path_1 = require("node:path");
5
5
  const WORKER_SOURCE_EXCLUDES = [
6
- 'PLAYDROP_TASK.md',
7
- 'AGENTS.md',
8
- 'CLAUDE.md',
9
- '.playdrop/',
10
- '.playdrop-task-events/',
11
- 'bin/playdrop',
12
- ];
13
- const WORKER_BUNDLE_EXCLUDES = [
14
- ...WORKER_SOURCE_EXCLUDES,
15
- 'assets/marketing/',
16
- 'listing/',
6
+ "PLAYDROP_TASK.md",
7
+ "AGENTS.md",
8
+ "CLAUDE.md",
9
+ ".playdrop/",
10
+ ".playdrop-task-events/",
11
+ "bin/playdrop",
17
12
  ];
13
+ const WORKER_BUNDLE_EXCLUDES = [...WORKER_SOURCE_EXCLUDES, "assets/marketing/", "listing/"];
18
14
  function prepareWorkerAppTask(task) {
19
- const catalogueRelativePath = (0, node_path_1.relative)(task.projectDir, task.catalogueAbsolutePath)
20
- .replace(/\\/g, '/');
15
+ const catalogueRelativePath = (0, node_path_1.relative)(task.projectDir, task.catalogueAbsolutePath).replace(/\\/g, "/");
21
16
  const bundleArchiveExcludeRelativeFiles = [
22
17
  ...WORKER_BUNDLE_EXCLUDES,
23
- ...(catalogueRelativePath && !catalogueRelativePath.startsWith('../')
24
- ? [catalogueRelativePath]
25
- : []),
18
+ ...(catalogueRelativePath && !catalogueRelativePath.startsWith("../") ? [catalogueRelativePath] : []),
26
19
  ];
27
20
  return {
28
21
  ...task,
29
- versionVisibility: 'PRIVATE',
22
+ versionVisibility: "PRIVATE",
30
23
  sourceArchiveExcludeRelativeFiles: WORKER_SOURCE_EXCLUDES,
31
24
  bundleArchiveExcludeRelativeFiles,
32
25
  };
@@ -12,7 +12,7 @@ export interface ResolvedWorkspaceAuthConfig {
12
12
  }
13
13
  export declare class WorkspaceAuthConfigError extends Error {
14
14
  readonly filePath: string;
15
- constructor(filePath: string, reason: 'invalid_json' | 'invalid_shape' | 'missing_owner_username');
15
+ constructor(filePath: string, reason: "invalid_json" | "invalid_shape" | "missing_owner_username");
16
16
  }
17
17
  export declare function findWorkspaceAuthConfig(startPath: string): ResolvedWorkspaceAuthConfig | null;
18
18
  export declare function findWorkerTaskWorkspaceAuthConfig(startPath: string): ResolvedWorkspaceAuthConfig | null;
@@ -8,53 +8,53 @@ const node_path_1 = require("node:path");
8
8
  class WorkspaceAuthConfigError extends Error {
9
9
  constructor(filePath, reason) {
10
10
  super(reason);
11
- this.name = 'WorkspaceAuthConfigError';
11
+ this.name = "WorkspaceAuthConfigError";
12
12
  this.filePath = filePath;
13
13
  }
14
14
  }
15
15
  exports.WorkspaceAuthConfigError = WorkspaceAuthConfigError;
16
- const WORKSPACE_AUTH_FILENAME = '.playdrop.json';
17
- const WORKER_TASK_CONTEXT_PATH = (0, node_path_1.join)('.playdrop', 'task.json');
16
+ const WORKSPACE_AUTH_FILENAME = ".playdrop.json";
17
+ const WORKER_TASK_CONTEXT_PATH = (0, node_path_1.join)(".playdrop", "task.json");
18
18
  function normalizeOwnerUsername(value) {
19
- if (typeof value !== 'string') {
19
+ if (typeof value !== "string") {
20
20
  return null;
21
21
  }
22
22
  const normalized = value.trim();
23
23
  return normalized.length > 0 ? normalized : null;
24
24
  }
25
25
  function normalizeEnv(value) {
26
- if (typeof value !== 'string') {
26
+ if (typeof value !== "string") {
27
27
  return undefined;
28
28
  }
29
29
  const normalized = value.trim();
30
30
  return normalized.length > 0 ? normalized : undefined;
31
31
  }
32
32
  function normalizeTaskToken(value) {
33
- if (typeof value !== 'string') {
33
+ if (typeof value !== "string") {
34
34
  return undefined;
35
35
  }
36
36
  const normalized = value.trim();
37
37
  return normalized.length > 0 ? normalized : undefined;
38
38
  }
39
39
  function normalizePositiveInteger(value) {
40
- const parsed = typeof value === 'number' ? value : Number.parseInt(String(value ?? ''), 10);
40
+ const parsed = typeof value === "number" ? value : Number.parseInt(String(value ?? ""), 10);
41
41
  return Number.isInteger(parsed) && parsed > 0 ? parsed : undefined;
42
42
  }
43
43
  function readWorkspaceAuthConfig(filePath) {
44
44
  let parsed;
45
45
  try {
46
- const raw = (0, node_fs_1.readFileSync)(filePath, 'utf8');
46
+ const raw = (0, node_fs_1.readFileSync)(filePath, "utf8");
47
47
  parsed = JSON.parse(raw);
48
48
  }
49
49
  catch {
50
- throw new WorkspaceAuthConfigError(filePath, 'invalid_json');
50
+ throw new WorkspaceAuthConfigError(filePath, "invalid_json");
51
51
  }
52
- if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
53
- throw new WorkspaceAuthConfigError(filePath, 'invalid_shape');
52
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
53
+ throw new WorkspaceAuthConfigError(filePath, "invalid_shape");
54
54
  }
55
55
  const ownerUsername = normalizeOwnerUsername(parsed.ownerUsername);
56
56
  if (!ownerUsername) {
57
- throw new WorkspaceAuthConfigError(filePath, 'missing_owner_username');
57
+ throw new WorkspaceAuthConfigError(filePath, "missing_owner_username");
58
58
  }
59
59
  return {
60
60
  ownerUsername,
@@ -99,33 +99,39 @@ function findWorkerTaskWorkspaceAuthConfig(startPath) {
99
99
  if ((0, node_fs_1.existsSync)(candidate) && (0, node_fs_1.statSync)(candidate).isFile()) {
100
100
  let parsed;
101
101
  try {
102
- parsed = JSON.parse((0, node_fs_1.readFileSync)(candidate, 'utf8'));
102
+ parsed = JSON.parse((0, node_fs_1.readFileSync)(candidate, "utf8"));
103
103
  }
104
104
  catch {
105
- throw new WorkspaceAuthConfigError(candidate, 'invalid_json');
105
+ throw new WorkspaceAuthConfigError(candidate, "invalid_json");
106
106
  }
107
- if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
108
- throw new WorkspaceAuthConfigError(candidate, 'invalid_shape');
107
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
108
+ throw new WorkspaceAuthConfigError(candidate, "invalid_shape");
109
109
  }
110
110
  const document = parsed;
111
- const task = document.task && typeof document.task === 'object' && !Array.isArray(document.task)
111
+ const task = document.task && typeof document.task === "object" && !Array.isArray(document.task)
112
112
  ? document.task
113
113
  : null;
114
- const worker = document.worker && typeof document.worker === 'object' && !Array.isArray(document.worker)
114
+ const worker = document.worker && typeof document.worker === "object" && !Array.isArray(document.worker)
115
115
  ? document.worker
116
116
  : null;
117
- const metadata = task?.metadata && typeof task.metadata === 'object' && !Array.isArray(task.metadata)
117
+ const metadata = task?.metadata && typeof task.metadata === "object" && !Array.isArray(task.metadata)
118
118
  ? task.metadata
119
119
  : null;
120
- const playdrop = metadata?.playdrop && typeof metadata.playdrop === 'object' && !Array.isArray(metadata.playdrop)
120
+ const playdrop = metadata?.playdrop && typeof metadata.playdrop === "object" && !Array.isArray(metadata.playdrop)
121
121
  ? metadata.playdrop
122
122
  : null;
123
123
  const ownerUsername = normalizeOwnerUsername(playdrop?.creatorUsername);
124
124
  const taskToken = normalizeTaskToken(task?.token);
125
125
  const taskId = normalizePositiveInteger(task?.id);
126
126
  const taskAttempt = normalizePositiveInteger(task?.attempt);
127
- if (document.protocolVersion !== 2 || !task || !worker || !ownerUsername || !taskToken || !taskId || !taskAttempt) {
128
- throw new WorkspaceAuthConfigError(candidate, ownerUsername ? 'invalid_shape' : 'missing_owner_username');
127
+ if (document.protocolVersion !== 2 ||
128
+ !task ||
129
+ !worker ||
130
+ !ownerUsername ||
131
+ !taskToken ||
132
+ !taskId ||
133
+ !taskAttempt) {
134
+ throw new WorkspaceAuthConfigError(candidate, ownerUsername ? "invalid_shape" : "missing_owner_username");
129
135
  }
130
136
  return {
131
137
  path: candidate,
@@ -1,16 +1,16 @@
1
- import type { AssetEmbeddedMetadata, AssetMetadataEmbeddingStatus, AssetSpeechMetadata, PlaydropSpeechVoiceId } from '@playdrop/types';
2
- export type TextGenerationMode = 'text';
3
- export type TextGenerationSize = 'small' | 'medium' | 'large';
1
+ import type { AssetEmbeddedMetadata, AssetMetadataEmbeddingStatus, AssetSpeechMetadata, PlaydropSpeechVoiceId } from "@playdrop/types";
2
+ export type TextGenerationMode = "text";
3
+ export type TextGenerationSize = "small" | "medium" | "large";
4
4
  export type ImageAttachment = {
5
5
  data?: string;
6
6
  mimeType?: string;
7
7
  url?: string;
8
8
  };
9
- export type AiImageAspectRatio = '1:1' | '3:4' | '9:16' | '4:3' | '16:9';
10
- export type AiImageSize = '1K' | '4K';
9
+ export type AiImageAspectRatio = "1:1" | "3:4" | "9:16" | "4:3" | "16:9";
10
+ export type AiImageSize = "1K" | "4K";
11
11
  export type GenerationBilling = {
12
12
  amount: number;
13
- paidBy: 'USER' | 'CREATOR';
13
+ paidBy: "USER" | "CREATOR";
14
14
  generationId: string;
15
15
  transactionId: number;
16
16
  creditBalance: number;
@@ -57,7 +57,7 @@ export type GenerateImageResponse = {
57
57
  generatedAssetDisplayName?: string | null;
58
58
  generatedAssetDescription?: string | null;
59
59
  model: string;
60
- mode: 'image';
60
+ mode: "image";
61
61
  cost: number;
62
62
  totalTokenCount: number | null;
63
63
  promptTokenCount: number | null;
@@ -73,7 +73,7 @@ export type GenerateJsonResponse = {
73
73
  raw: string;
74
74
  size: TextGenerationSize;
75
75
  model: string;
76
- mode: 'json';
76
+ mode: "json";
77
77
  cost: number;
78
78
  totalTokenCount: number | null;
79
79
  promptTokenCount: number | null;
@@ -98,7 +98,7 @@ export type GenerateMusicResponse = {
98
98
  embeddingStatus?: AssetMetadataEmbeddingStatus;
99
99
  metadataUrl?: string | null;
100
100
  model: string;
101
- mode: 'music';
101
+ mode: "music";
102
102
  cost: number;
103
103
  generatedAsset?: GeneratedAssetRef;
104
104
  createdAt: string;
@@ -116,7 +116,7 @@ export type GenerateSfxResponse = {
116
116
  embeddingStatus?: AssetMetadataEmbeddingStatus;
117
117
  metadataUrl?: string | null;
118
118
  model: string;
119
- mode: 'sfx';
119
+ mode: "sfx";
120
120
  cost: number;
121
121
  generatedAsset?: GeneratedAssetRef;
122
122
  createdAt: string;
@@ -133,7 +133,7 @@ export type GenerateSpeechResponse = {
133
133
  embeddingStatus?: AssetMetadataEmbeddingStatus;
134
134
  metadataUrl?: string | null;
135
135
  model: string;
136
- mode: 'speech';
136
+ mode: "speech";
137
137
  cost: number;
138
138
  generatedAsset?: GeneratedAssetRef;
139
139
  createdAt: string;
@@ -142,8 +142,8 @@ export type GenerateSpeechResponse = {
142
142
  export type GenerateVideoResponse = {
143
143
  input: string;
144
144
  durationSeconds: 4 | 8;
145
- aspectRatio: '16:9' | '9:16';
146
- resolution: '720p';
145
+ aspectRatio: "16:9" | "9:16";
146
+ resolution: "720p";
147
147
  videoUrl: string;
148
148
  videoMimeType: string;
149
149
  thumbnailUrl: string | null;
@@ -153,7 +153,7 @@ export type GenerateVideoResponse = {
153
153
  generatedAssetDisplayName?: string | null;
154
154
  generatedAssetDescription?: string | null;
155
155
  model: string;
156
- mode: 'video';
156
+ mode: "video";
157
157
  cost: number;
158
158
  generatedAsset?: GeneratedAssetRef;
159
159
  createdAt: string;
@@ -161,8 +161,8 @@ export type GenerateVideoResponse = {
161
161
  };
162
162
  export type GenerateModel3DResponse = {
163
163
  input: string;
164
- sourceMode: 'TEXT' | 'IMAGE';
165
- topology: 'triangle' | 'quad';
164
+ sourceMode: "TEXT" | "IMAGE";
165
+ topology: "triangle" | "quad";
166
166
  targetPolycount: number;
167
167
  shouldRemesh: boolean;
168
168
  shouldTexture: boolean;
@@ -177,13 +177,13 @@ export type GenerateModel3DResponse = {
177
177
  generatedAssetDisplayName?: string | null;
178
178
  generatedAssetDescription?: string | null;
179
179
  model: string;
180
- mode: 'model_3d';
180
+ mode: "model_3d";
181
181
  cost: number;
182
182
  generatedAsset?: GeneratedAssetRef;
183
183
  createdAt: string;
184
184
  billing: GenerationBilling;
185
185
  };
186
- export type GenerateAssetModality = 'IMAGE' | 'MUSIC' | 'SFX' | 'SPEECH' | 'VIDEO' | 'MODEL_3D';
186
+ export type GenerateAssetModality = "IMAGE" | "MUSIC" | "SFX" | "SPEECH" | "VIDEO" | "MODEL_3D";
187
187
  export type GenerateAssetRequest = {
188
188
  modality: GenerateAssetModality;
189
189
  input: string;
@@ -191,7 +191,7 @@ export type GenerateAssetRequest = {
191
191
  assetName?: string;
192
192
  assetDisplayName?: string;
193
193
  assetDescription?: string;
194
- assetVisibility?: 'PRIVATE' | 'PUBLIC';
194
+ assetVisibility?: "PRIVATE" | "PUBLIC";
195
195
  assetSubcategory?: string;
196
196
  attachAppVersionId?: number;
197
197
  remixAssetVersionRef?: string;
@@ -207,14 +207,14 @@ export type GenerateAssetRequest = {
207
207
  speechProviderVoiceId?: string;
208
208
  aspectRatio?: AiImageAspectRatio;
209
209
  imageSize?: AiImageSize;
210
- resolution?: '720p';
211
- sourceMode?: 'TEXT' | 'IMAGE';
212
- topology?: 'triangle' | 'quad';
210
+ resolution?: "720p";
211
+ sourceMode?: "TEXT" | "IMAGE";
212
+ topology?: "triangle" | "quad";
213
213
  targetPolycount?: number;
214
214
  shouldRemesh?: boolean;
215
215
  shouldTexture?: boolean;
216
216
  };
217
- export type GenerationJobStatus = 'PENDING' | 'RUNNING' | 'SUCCESS' | 'FAILURE';
217
+ export type GenerationJobStatus = "PENDING" | "RUNNING" | "SUCCESS" | "FAILURE";
218
218
  export declare const GENERATION_JOB_ETA_BASELINE_SECONDS: Record<GenerateAssetModality, number>;
219
219
  export type GenerationJobRecord = {
220
220
  id: string;
@@ -249,7 +249,7 @@ type PaginationMeta = {
249
249
  };
250
250
  type GenerationRecordBase = {
251
251
  id: string;
252
- type: 'text' | 'json' | 'image' | 'music' | 'sfx' | 'speech' | 'video' | 'model_3d';
252
+ type: "text" | "json" | "image" | "music" | "sfx" | "speech" | "video" | "model_3d";
253
253
  cost: number;
254
254
  createdAt: string;
255
255
  };
@@ -279,21 +279,21 @@ export type ElevenLabsCompositionPlan = {
279
279
  sections?: ElevenLabsCompositionPlanSection[];
280
280
  };
281
281
  export type ListTextGenerationRecord = GenerationRecordBase & {
282
- type: 'text';
282
+ type: "text";
283
283
  systemPrompt: string | null;
284
284
  inputPrompt: string;
285
285
  outputText: string;
286
286
  modelSize: TextGenerationSize;
287
287
  };
288
288
  export type ListJsonGenerationRecord = GenerationRecordBase & {
289
- type: 'json';
289
+ type: "json";
290
290
  systemPrompt: string | null;
291
291
  inputPrompt: string;
292
292
  outputSchema: unknown;
293
293
  outputJSON: unknown;
294
294
  };
295
295
  export type ListImageGenerationRecord = GenerationRecordBase & {
296
- type: 'image';
296
+ type: "image";
297
297
  inputPrompt: string;
298
298
  inputImages: string[];
299
299
  outputImage: string | null;
@@ -308,7 +308,7 @@ export type ListImageGenerationRecord = GenerationRecordBase & {
308
308
  generatedAsset?: GeneratedAssetRef;
309
309
  };
310
310
  export type ListMusicGenerationRecord = GenerationRecordBase & {
311
- type: 'music';
311
+ type: "music";
312
312
  inputPrompt: string;
313
313
  durationMs: number | null;
314
314
  forceInstrumental: boolean;
@@ -325,7 +325,7 @@ export type ListMusicGenerationRecord = GenerationRecordBase & {
325
325
  generatedAsset?: GeneratedAssetRef;
326
326
  };
327
327
  export type ListSfxGenerationRecord = GenerationRecordBase & {
328
- type: 'sfx';
328
+ type: "sfx";
329
329
  inputPrompt: string;
330
330
  durationSeconds: number | null;
331
331
  loop: boolean;
@@ -339,7 +339,7 @@ export type ListSfxGenerationRecord = GenerationRecordBase & {
339
339
  generatedAsset?: GeneratedAssetRef;
340
340
  };
341
341
  export type ListSpeechGenerationRecord = GenerationRecordBase & {
342
- type: 'speech';
342
+ type: "speech";
343
343
  inputPrompt: string;
344
344
  audioUrl: string | null;
345
345
  audioMimeType: string | null;
@@ -352,7 +352,7 @@ export type ListSpeechGenerationRecord = GenerationRecordBase & {
352
352
  generatedAsset?: GeneratedAssetRef;
353
353
  };
354
354
  export type ListVideoGenerationRecord = GenerationRecordBase & {
355
- type: 'video';
355
+ type: "video";
356
356
  inputPrompt: string;
357
357
  durationSeconds: number | null;
358
358
  aspectRatio: string | null;
@@ -369,10 +369,10 @@ export type ListVideoGenerationRecord = GenerationRecordBase & {
369
369
  generatedAsset?: GeneratedAssetRef;
370
370
  };
371
371
  export type ListModel3DGenerationRecord = GenerationRecordBase & {
372
- type: 'model_3d';
372
+ type: "model_3d";
373
373
  inputPrompt: string;
374
- sourceMode: 'TEXT' | 'IMAGE' | null;
375
- topology: 'triangle' | 'quad' | null;
374
+ sourceMode: "TEXT" | "IMAGE" | null;
375
+ topology: "triangle" | "quad" | null;
376
376
  targetPolycount: number | null;
377
377
  shouldRemesh: boolean;
378
378
  shouldTexture: boolean;
@@ -391,7 +391,7 @@ export type ListModel3DGenerationRecord = GenerationRecordBase & {
391
391
  export type GenerationRecord = ListTextGenerationRecord | ListJsonGenerationRecord | ListImageGenerationRecord | ListMusicGenerationRecord | ListSfxGenerationRecord | ListSpeechGenerationRecord | ListVideoGenerationRecord | ListModel3DGenerationRecord;
392
392
  export type ListGenerationsOptions = {
393
393
  signal?: AbortSignal;
394
- type?: 'text' | 'json' | 'image' | 'music' | 'sfx' | 'speech' | 'video' | 'model_3d';
394
+ type?: "text" | "json" | "image" | "music" | "sfx" | "speech" | "video" | "model_3d";
395
395
  limit?: number;
396
396
  offset?: number;
397
397
  };