@playdrop/playdrop-cli 0.5.1 → 0.5.3

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 (155) hide show
  1. package/config/client-meta.json +7 -7
  2. package/dist/apps/build.js +49 -6
  3. package/dist/apps/index.d.ts +2 -0
  4. package/dist/apps/index.js +2 -0
  5. package/dist/apps/upload.d.ts +2 -0
  6. package/dist/apps/upload.js +132 -28
  7. package/dist/assetSpecs.d.ts +16 -0
  8. package/dist/assetSpecs.js +263 -0
  9. package/dist/assets/model-artifacts.js +3 -0
  10. package/dist/catalogue.d.ts +57 -3
  11. package/dist/catalogue.js +342 -16
  12. package/dist/clientInfo.js +19 -3
  13. package/dist/commands/ads.d.ts +8 -0
  14. package/dist/commands/ads.js +124 -0
  15. package/dist/commands/boosts.d.ts +25 -0
  16. package/dist/commands/boosts.js +209 -0
  17. package/dist/commands/browse.d.ts +6 -1
  18. package/dist/commands/browse.js +365 -124
  19. package/dist/commands/captureListing.d.ts +53 -0
  20. package/dist/commands/captureListing.js +804 -0
  21. package/dist/commands/captureRemote.js +33 -0
  22. package/dist/commands/create.d.ts +1 -0
  23. package/dist/commands/create.js +183 -3
  24. package/dist/commands/credits.d.ts +6 -0
  25. package/dist/commands/credits.js +47 -1
  26. package/dist/commands/detail.js +38 -4
  27. package/dist/commands/devServer.js +10 -5
  28. package/dist/commands/generation.d.ts +2 -0
  29. package/dist/commands/generation.js +1 -0
  30. package/dist/commands/search.d.ts +5 -0
  31. package/dist/commands/search.js +139 -17
  32. package/dist/commands/tags.d.ts +7 -0
  33. package/dist/commands/tags.js +63 -0
  34. package/dist/commands/upload-content.d.ts +13 -3
  35. package/dist/commands/upload-content.js +86 -20
  36. package/dist/commands/upload.d.ts +2 -0
  37. package/dist/commands/upload.js +187 -11
  38. package/dist/commands/validate.js +163 -2
  39. package/dist/commands/versionsBrowse.js +128 -91
  40. package/dist/index.js +145 -3
  41. package/dist/refs.d.ts +2 -2
  42. package/dist/refs.js +13 -1
  43. package/dist/taskSelection.js +6 -3
  44. package/dist/taskUtils.d.ts +2 -2
  45. package/dist/taskUtils.js +1 -0
  46. package/dist/uploadLog.d.ts +1 -1
  47. package/dist/uploadLog.js +2 -2
  48. package/node_modules/@playdrop/ai-client/package.json +1 -1
  49. package/node_modules/@playdrop/api-client/dist/client.d.ts +131 -10
  50. package/node_modules/@playdrop/api-client/dist/client.d.ts.map +1 -1
  51. package/node_modules/@playdrop/api-client/dist/client.js +6 -0
  52. package/node_modules/@playdrop/api-client/dist/domains/admin.d.ts +9 -1
  53. package/node_modules/@playdrop/api-client/dist/domains/admin.d.ts.map +1 -1
  54. package/node_modules/@playdrop/api-client/dist/domains/admin.js +45 -0
  55. package/node_modules/@playdrop/api-client/dist/domains/apps.d.ts +3 -0
  56. package/node_modules/@playdrop/api-client/dist/domains/apps.d.ts.map +1 -1
  57. package/node_modules/@playdrop/api-client/dist/domains/apps.js +27 -0
  58. package/node_modules/@playdrop/api-client/dist/domains/asset-packs.d.ts +2 -0
  59. package/node_modules/@playdrop/api-client/dist/domains/asset-packs.d.ts.map +1 -1
  60. package/node_modules/@playdrop/api-client/dist/domains/asset-packs.js +16 -0
  61. package/node_modules/@playdrop/api-client/dist/domains/assets.d.ts +44 -2
  62. package/node_modules/@playdrop/api-client/dist/domains/assets.d.ts.map +1 -1
  63. package/node_modules/@playdrop/api-client/dist/domains/assets.js +260 -3
  64. package/node_modules/@playdrop/api-client/dist/domains/payments.d.ts +17 -1
  65. package/node_modules/@playdrop/api-client/dist/domains/payments.d.ts.map +1 -1
  66. package/node_modules/@playdrop/api-client/dist/domains/payments.js +173 -0
  67. package/node_modules/@playdrop/api-client/dist/domains/search.d.ts.map +1 -1
  68. package/node_modules/@playdrop/api-client/dist/domains/search.js +39 -11
  69. package/node_modules/@playdrop/api-client/dist/domains/tags.d.ts +34 -0
  70. package/node_modules/@playdrop/api-client/dist/domains/tags.d.ts.map +1 -0
  71. package/node_modules/@playdrop/api-client/dist/domains/tags.js +111 -0
  72. package/node_modules/@playdrop/api-client/dist/index.d.ts +61 -1
  73. package/node_modules/@playdrop/api-client/dist/index.d.ts.map +1 -1
  74. package/node_modules/@playdrop/api-client/dist/index.js +50 -0
  75. package/node_modules/@playdrop/api-client/package.json +1 -1
  76. package/node_modules/@playdrop/boxel-core/dist/test/entity-utils.test.d.ts +1 -0
  77. package/node_modules/@playdrop/boxel-core/dist/test/entity-utils.test.js +92 -0
  78. package/node_modules/@playdrop/boxel-core/dist/test/entity-utils.test.js.map +1 -0
  79. package/node_modules/@playdrop/boxel-core/dist/test/greedy-mesher.test.d.ts +1 -0
  80. package/node_modules/@playdrop/boxel-core/dist/test/greedy-mesher.test.js +48 -0
  81. package/node_modules/@playdrop/boxel-core/dist/test/greedy-mesher.test.js.map +1 -0
  82. package/node_modules/@playdrop/boxel-core/dist/test/humanoid/humanoid-builders.test.d.ts +1 -0
  83. package/node_modules/@playdrop/boxel-core/dist/test/humanoid/humanoid-builders.test.js +270 -0
  84. package/node_modules/@playdrop/boxel-core/dist/test/humanoid/humanoid-builders.test.js.map +1 -0
  85. package/node_modules/@playdrop/boxel-core/dist/test/index.test.d.ts +1 -0
  86. package/node_modules/@playdrop/boxel-core/dist/test/index.test.js +48 -0
  87. package/node_modules/@playdrop/boxel-core/dist/test/index.test.js.map +1 -0
  88. package/node_modules/@playdrop/boxel-core/dist/test/layer-mode.test.d.ts +1 -0
  89. package/node_modules/@playdrop/boxel-core/dist/test/layer-mode.test.js +67 -0
  90. package/node_modules/@playdrop/boxel-core/dist/test/layer-mode.test.js.map +1 -0
  91. package/node_modules/@playdrop/boxel-core/dist/test/materials.test.d.ts +1 -0
  92. package/node_modules/@playdrop/boxel-core/dist/test/materials.test.js +55 -0
  93. package/node_modules/@playdrop/boxel-core/dist/test/materials.test.js.map +1 -0
  94. package/node_modules/@playdrop/boxel-core/dist/test/palette-tools.test.d.ts +1 -0
  95. package/node_modules/@playdrop/boxel-core/dist/test/palette-tools.test.js +124 -0
  96. package/node_modules/@playdrop/boxel-core/dist/test/palette-tools.test.js.map +1 -0
  97. package/node_modules/@playdrop/boxel-core/dist/test/serialization.test.d.ts +1 -0
  98. package/node_modules/@playdrop/boxel-core/dist/test/serialization.test.js +35 -0
  99. package/node_modules/@playdrop/boxel-core/dist/test/serialization.test.js.map +1 -0
  100. package/node_modules/@playdrop/boxel-core/dist/test/textures.test.d.ts +1 -0
  101. package/node_modules/@playdrop/boxel-core/dist/test/textures.test.js +120 -0
  102. package/node_modules/@playdrop/boxel-core/dist/test/textures.test.js.map +1 -0
  103. package/node_modules/@playdrop/boxel-core/dist/test/types.test.d.ts +1 -0
  104. package/node_modules/@playdrop/boxel-core/dist/test/types.test.js +32 -0
  105. package/node_modules/@playdrop/boxel-core/dist/test/types.test.js.map +1 -0
  106. package/node_modules/@playdrop/boxel-core/dist/test/upscale.test.d.ts +1 -0
  107. package/node_modules/@playdrop/boxel-core/dist/test/upscale.test.js +100 -0
  108. package/node_modules/@playdrop/boxel-core/dist/test/upscale.test.js.map +1 -0
  109. package/node_modules/@playdrop/boxel-core/dist/test/validation.test.d.ts +1 -0
  110. package/node_modules/@playdrop/boxel-core/dist/test/validation.test.js +61 -0
  111. package/node_modules/@playdrop/boxel-core/dist/test/validation.test.js.map +1 -0
  112. package/node_modules/@playdrop/boxel-core/dist/test/voxels.test.d.ts +1 -0
  113. package/node_modules/@playdrop/boxel-core/dist/test/voxels.test.js +51 -0
  114. package/node_modules/@playdrop/boxel-core/dist/test/voxels.test.js.map +1 -0
  115. package/node_modules/@playdrop/boxel-core/package.json +1 -1
  116. package/node_modules/@playdrop/boxel-three/package.json +1 -1
  117. package/node_modules/@playdrop/config/client-meta.json +7 -7
  118. package/node_modules/@playdrop/config/dist/src/constants.d.ts +11 -0
  119. package/node_modules/@playdrop/config/dist/src/constants.d.ts.map +1 -1
  120. package/node_modules/@playdrop/config/dist/src/constants.js +12 -1
  121. package/node_modules/@playdrop/config/dist/src/creator-docs.d.ts +24 -0
  122. package/node_modules/@playdrop/config/dist/src/creator-docs.d.ts.map +1 -0
  123. package/node_modules/@playdrop/config/dist/src/creator-docs.js +253 -0
  124. package/node_modules/@playdrop/config/dist/src/creator-faq.d.ts +17 -0
  125. package/node_modules/@playdrop/config/dist/src/creator-faq.d.ts.map +1 -0
  126. package/node_modules/@playdrop/config/dist/src/creator-faq.js +141 -0
  127. package/node_modules/@playdrop/config/dist/test/creator-docs.test.d.ts +2 -0
  128. package/node_modules/@playdrop/config/dist/test/creator-docs.test.d.ts.map +1 -0
  129. package/node_modules/@playdrop/config/dist/test/creator-docs.test.js +36 -0
  130. package/node_modules/@playdrop/config/dist/tsconfig.tsbuildinfo +1 -1
  131. package/node_modules/@playdrop/config/package.json +1 -1
  132. package/node_modules/@playdrop/types/dist/api.d.ts +346 -6
  133. package/node_modules/@playdrop/types/dist/api.d.ts.map +1 -1
  134. package/node_modules/@playdrop/types/dist/api.js +52 -1
  135. package/node_modules/@playdrop/types/dist/asset-pack.d.ts +7 -1
  136. package/node_modules/@playdrop/types/dist/asset-pack.d.ts.map +1 -1
  137. package/node_modules/@playdrop/types/dist/asset-spec-contract-meta-schema.json +86 -0
  138. package/node_modules/@playdrop/types/dist/asset-spec.d.ts +163 -0
  139. package/node_modules/@playdrop/types/dist/asset-spec.d.ts.map +1 -0
  140. package/node_modules/@playdrop/types/dist/asset-spec.js +101 -0
  141. package/node_modules/@playdrop/types/dist/asset.d.ts +23 -6
  142. package/node_modules/@playdrop/types/dist/asset.d.ts.map +1 -1
  143. package/node_modules/@playdrop/types/dist/asset.js +4 -1
  144. package/node_modules/@playdrop/types/dist/graph.d.ts +4 -2
  145. package/node_modules/@playdrop/types/dist/graph.d.ts.map +1 -1
  146. package/node_modules/@playdrop/types/dist/graph.js +9 -2
  147. package/node_modules/@playdrop/types/dist/index.d.ts +1 -0
  148. package/node_modules/@playdrop/types/dist/index.d.ts.map +1 -1
  149. package/node_modules/@playdrop/types/dist/index.js +1 -0
  150. package/node_modules/@playdrop/types/dist/version.d.ts +13 -0
  151. package/node_modules/@playdrop/types/dist/version.d.ts.map +1 -1
  152. package/node_modules/@playdrop/types/dist/version.js +21 -0
  153. package/node_modules/@playdrop/types/package.json +6 -1
  154. package/node_modules/@playdrop/vox-three/package.json +1 -1
  155. package/package.json +3 -1
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CREATOR_FAQ_SECTIONS = void 0;
4
+ exports.CREATOR_FAQ_SECTIONS = [
5
+ {
6
+ id: 'platform',
7
+ title: 'Platform model',
8
+ description: 'What Playdrop is for creators and what kind of work belongs here.',
9
+ items: [
10
+ {
11
+ question: 'What is PlayDrop for creators?',
12
+ answer: 'PlayDrop is both a catalogue platform and a runtime platform. You can publish apps, assets, and packs into the catalogue, then use Playdrop runtime services such as identity, saves, multiplayer, monetization, AI generation, and player meta inside hosted apps.',
13
+ links: [
14
+ { href: '/getting-started', label: 'Getting Started' },
15
+ { href: '/docs/catalogue', label: 'Catalogue docs' },
16
+ { href: '/docs/runtime', label: 'Runtime docs' },
17
+ ],
18
+ },
19
+ {
20
+ question: 'What can I publish?',
21
+ answer: 'Creators can publish apps, reusable assets, and asset packs. The catalogue model is versioned, supports remixing, and connects publishing with discovery and social signals.',
22
+ links: [
23
+ { href: '/docs/catalogue#apps-assets-and-packs', label: 'Apps, assets, and packs' },
24
+ { href: '/docs/publishing#catalogue-json', label: 'Catalogue JSON' },
25
+ ],
26
+ },
27
+ {
28
+ question: 'Do I need to think about players first?',
29
+ answer: 'Not for onboarding. The creator workflow matters first: set up the tools, choose the right content model, run locally, validate, and publish. Player-facing launch behavior is mostly obvious once the content exists.',
30
+ },
31
+ ],
32
+ },
33
+ {
34
+ id: 'tooling',
35
+ title: 'Tooling and agents',
36
+ description: 'How the CLI, the public skill, and AI coding agents fit together.',
37
+ items: [
38
+ {
39
+ question: 'Do I need the PlayDrop skill, the CLI, or both?',
40
+ answer: 'Use both. The CLI performs the real workflows such as auth, create, remix, dev, validate, publish, browse, and comments. The public PlayDrop skill gives your coding agent the platform-specific workflow and vocabulary so it uses the CLI and runtime correctly.',
41
+ links: [
42
+ { href: '/getting-started', label: 'Getting Started' },
43
+ { href: '/docs/cli#install-and-auth', label: 'CLI install and auth' },
44
+ ],
45
+ },
46
+ {
47
+ question: 'How should AI agents fit into the workflow?',
48
+ answer: 'Let the agent do the setup and implementation work, but keep the human request small and outcome-focused. A good creator prompt tells the agent to install the PlayDrop tooling, authenticate, inspect the workspace, and then choose the correct create, remix, or publish flow.',
49
+ links: [
50
+ { href: '/getting-started', label: 'Creator onboarding' },
51
+ ],
52
+ },
53
+ {
54
+ question: 'Can I log in without browser auth?',
55
+ answer: 'Yes. The CLI supports browser login by default and also supports API key login with playdrop auth login --key <api-key>. Direct username and password login is also supported when you need it.',
56
+ links: [
57
+ { href: '/docs/cli#install-and-auth', label: 'Auth workflows' },
58
+ ],
59
+ },
60
+ ],
61
+ },
62
+ {
63
+ id: 'publishing',
64
+ title: 'Publishing and catalogue operations',
65
+ description: 'How workspace content, publishing, versioning, and catalogue discovery fit together.',
66
+ items: [
67
+ {
68
+ question: 'What is the relationship between my workspace and the catalogue?',
69
+ answer: 'Your workspace is the local source of truth while you are building. catalogue.json describes the publishable apps, assets, and packs in that workspace. Validation checks the local contract, and publish pushes the current workspace state into the PlayDrop catalogue.',
70
+ links: [
71
+ { href: '/docs/publishing#catalogue-json', label: 'Catalogue JSON' },
72
+ { href: '/docs/publishing#versioning-and-lifecycle', label: 'Versioning and lifecycle' },
73
+ ],
74
+ },
75
+ {
76
+ question: 'How do versions and remixing work?',
77
+ answer: 'Every catalogue object is versioned. Apps publish semantic versions, assets publish revisions, and packs publish versions. Remix flows let you scaffold local content from an exact published app, asset, or pack version instead of starting from scratch.',
78
+ links: [
79
+ { href: '/docs/catalogue#discovery-and-social-signals', label: 'Discovery and social' },
80
+ { href: '/docs/cli#create-dev-and-publish', label: 'Create, dev, and publish' },
81
+ ],
82
+ },
83
+ {
84
+ question: 'Does the platform include comments and discovery signals?',
85
+ answer: 'Yes. The creator platform includes browse and search surfaces plus comments, likes, saves, remixes, versions, and related catalogue metadata. Those signals help explain why catalogue quality and listing quality matter.',
86
+ links: [
87
+ { href: '/docs/catalogue#discovery-and-social-signals', label: 'Discovery and social' },
88
+ ],
89
+ },
90
+ ],
91
+ },
92
+ {
93
+ id: 'runtime',
94
+ title: 'Runtime and app features',
95
+ description: 'What hosted apps get from PlayDrop at runtime.',
96
+ items: [
97
+ {
98
+ question: 'What runtime features does the SDK actually provide?',
99
+ answer: 'The runtime covers lifecycle, player identity, saves, room-based multiplayer, monetization, runtime asset access, AI generation jobs, shared runtime libraries, achievements, and leaderboards. Public docs now follow those surfaces directly instead of hiding them behind generic SDK language.',
100
+ links: [
101
+ { href: '/docs/runtime', label: 'Runtime overview' },
102
+ { href: '/docs/runtime#meta', label: 'Achievements and leaderboards' },
103
+ ],
104
+ },
105
+ {
106
+ question: 'How do assets, packs, and runtime asset loading relate?',
107
+ answer: 'Assets and packs live in the catalogue as creator content, but hosted apps can also inspect, search, load, and in some cases create or update content through the runtime asset APIs. That is why the catalogue docs and runtime docs need to be read together.',
108
+ links: [
109
+ { href: '/docs/catalogue', label: 'Catalogue docs' },
110
+ { href: '/docs/runtime#assets-at-runtime', label: 'Assets at runtime' },
111
+ ],
112
+ },
113
+ {
114
+ question: 'What does PlayDrop own versus what my game still owns?',
115
+ answer: 'PlayDrop owns the platform surfaces: host lifecycle, creator and player identity, storage hooks, room primitives, catalogue integration, commerce hooks, AI generation jobs, and player meta primitives. Your game still owns its core gameplay rules, content design, progression design, and any custom backend behavior that is outside the PlayDrop platform contract.',
116
+ links: [
117
+ { href: '/docs/runtime#lifecycle', label: 'Runtime lifecycle' },
118
+ { href: '/docs/runtime#multiplayer', label: 'Multiplayer' },
119
+ ],
120
+ },
121
+ ],
122
+ },
123
+ {
124
+ id: 'players',
125
+ title: 'Player questions',
126
+ description: 'Only the small set of player-facing questions that help reduce confusion for creators.',
127
+ items: [
128
+ {
129
+ question: 'Can players try content without setup?',
130
+ answer: 'Usually yes. Public catalogue content is browser-first, and creators do not need to design a separate install flow for basic launch and discovery.',
131
+ },
132
+ {
133
+ question: 'Does every player need a PlayDrop account before an app can run?',
134
+ answer: 'No. Hosted apps can choose whether auth is required, optional, or disabled. That is part of the app contract, not a universal platform rule.',
135
+ links: [
136
+ { href: '/docs/runtime#identity', label: 'Identity and auth modes' },
137
+ ],
138
+ },
139
+ ],
140
+ },
141
+ ];
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=creator-docs.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creator-docs.test.d.ts","sourceRoot":"","sources":["../../test/creator-docs.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = __importDefault(require("node:test"));
7
+ const strict_1 = __importDefault(require("node:assert/strict"));
8
+ const index_1 = require("../src/index");
9
+ (0, node_test_1.default)('creator getting started content is grouped into prompt options with commands', () => {
10
+ strict_1.default.equal(index_1.CREATOR_GETTING_STARTED_CONTENT.groups.length > 0, true);
11
+ for (const group of index_1.CREATOR_GETTING_STARTED_CONTENT.groups) {
12
+ strict_1.default.equal(group.title.trim().length > 0, true);
13
+ strict_1.default.equal(group.options.length > 0, true);
14
+ for (const option of group.options) {
15
+ strict_1.default.equal(option.title.trim().length > 0, true);
16
+ strict_1.default.equal(option.prompt.trim().length > 0, true);
17
+ strict_1.default.equal(option.commands.length > 0, true);
18
+ }
19
+ }
20
+ });
21
+ (0, node_test_1.default)('creator getting started content includes auth and publish workflows', () => {
22
+ const combined = JSON.stringify(index_1.CREATOR_GETTING_STARTED_CONTENT);
23
+ strict_1.default.match(combined, /playdrop auth login/);
24
+ strict_1.default.match(combined, /playdrop project publish/);
25
+ });
26
+ (0, node_test_1.default)('creator faq content is grouped into sections with answers', () => {
27
+ strict_1.default.equal(index_1.CREATOR_FAQ_SECTIONS.length > 0, true);
28
+ for (const section of index_1.CREATOR_FAQ_SECTIONS) {
29
+ strict_1.default.equal(section.title.trim().length > 0, true);
30
+ strict_1.default.equal(section.items.length > 0, true);
31
+ for (const item of section.items) {
32
+ strict_1.default.equal(item.question.trim().length > 0, true);
33
+ strict_1.default.equal(item.answer.trim().length > 0, true);
34
+ }
35
+ }
36
+ });