@playdrop/playdrop-cli 0.9.6 → 0.10.1
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.
- package/config/client-meta.json +2 -2
- package/dist/apiClient.d.ts +10 -0
- package/dist/apiClient.js +55 -2
- package/dist/appUrls.d.ts +1 -0
- package/dist/appUrls.js +9 -0
- package/dist/apps/build.js +39 -28
- package/dist/apps/index.d.ts +1 -0
- package/dist/apps/index.js +2 -0
- package/dist/apps/launchCheck.d.ts +2 -0
- package/dist/apps/launchCheck.js +31 -6
- package/dist/apps/registration.d.ts +1 -0
- package/dist/apps/registration.js +1 -0
- package/dist/apps/upload.d.ts +1 -0
- package/dist/apps/upload.js +4 -17
- package/dist/captureRuntime.d.ts +14 -0
- package/dist/captureRuntime.js +329 -0
- package/dist/catalogue.d.ts +4 -2
- package/dist/catalogue.js +50 -7
- package/dist/commandContext.js +61 -4
- package/dist/commands/capture.d.ts +1 -0
- package/dist/commands/capture.js +30 -13
- package/dist/commands/captureRemote.d.ts +2 -0
- package/dist/commands/captureRemote.js +90 -0
- package/dist/commands/create.d.ts +0 -1
- package/dist/commands/create.js +2 -151
- package/dist/commands/creations.d.ts +0 -13
- package/dist/commands/creations.js +0 -141
- package/dist/commands/dev.d.ts +2 -1
- package/dist/commands/dev.js +23 -6
- package/dist/commands/devServer.js +3 -1
- package/dist/commands/generation.d.ts +1 -0
- package/dist/commands/generation.js +274 -0
- package/dist/commands/review.d.ts +46 -0
- package/dist/commands/review.js +353 -0
- package/dist/commands/upload.d.ts +27 -1
- package/dist/commands/upload.js +962 -21
- package/dist/commands/validate.js +5 -0
- package/dist/commands/worker/runtime.d.ts +81 -0
- package/dist/commands/worker/runtime.js +458 -0
- package/dist/commands/worker.d.ts +158 -0
- package/dist/commands/worker.js +2626 -0
- package/dist/config.d.ts +2 -0
- package/dist/config.js +23 -0
- package/dist/index.js +116 -30
- package/dist/shellProbe.d.ts +1 -1
- package/dist/shellProbe.js +3 -3
- package/dist/workspaceAuth.d.ts +3 -0
- package/dist/workspaceAuth.js +14 -0
- package/node_modules/@playdrop/api-client/dist/client.d.ts +36 -15
- package/node_modules/@playdrop/api-client/dist/client.d.ts.map +1 -1
- package/node_modules/@playdrop/api-client/dist/client.js +2 -2
- package/node_modules/@playdrop/api-client/dist/domains/admin.d.ts +5 -2
- package/node_modules/@playdrop/api-client/dist/domains/admin.d.ts.map +1 -1
- package/node_modules/@playdrop/api-client/dist/domains/admin.js +51 -3
- package/node_modules/@playdrop/api-client/dist/domains/agent-tasks.d.ts +75 -0
- package/node_modules/@playdrop/api-client/dist/domains/agent-tasks.d.ts.map +1 -0
- package/node_modules/@playdrop/api-client/dist/domains/agent-tasks.js +478 -0
- package/node_modules/@playdrop/api-client/dist/index.d.ts +36 -15
- package/node_modules/@playdrop/api-client/dist/index.d.ts.map +1 -1
- package/node_modules/@playdrop/api-client/dist/index.js +153 -42
- package/node_modules/@playdrop/config/client-meta.json +2 -2
- package/node_modules/@playdrop/types/dist/api.d.ts +662 -75
- package/node_modules/@playdrop/types/dist/api.d.ts.map +1 -1
- package/node_modules/@playdrop/types/dist/api.js +100 -9
- package/node_modules/@playdrop/types/dist/app.d.ts +2 -0
- package/node_modules/@playdrop/types/dist/app.d.ts.map +1 -1
- package/node_modules/@playdrop/types/dist/app.js +3 -0
- package/node_modules/@playdrop/types/dist/version.d.ts +1 -0
- package/node_modules/@playdrop/types/dist/version.d.ts.map +1 -1
- package/package.json +2 -1
- package/node_modules/@playdrop/api-client/dist/domains/game-ideas.d.ts +0 -46
- package/node_modules/@playdrop/api-client/dist/domains/game-ideas.d.ts.map +0 -1
- package/node_modules/@playdrop/api-client/dist/domains/game-ideas.js +0 -177
package/dist/config.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export interface CliConfig {
|
|
|
15
15
|
token?: string;
|
|
16
16
|
env?: string;
|
|
17
17
|
currentUsername?: string;
|
|
18
|
+
workerKey?: string;
|
|
18
19
|
}
|
|
19
20
|
export declare function loadConfig(): CliConfig;
|
|
20
21
|
export declare function saveConfig(cfg: CliConfig): void;
|
|
@@ -32,6 +33,7 @@ export declare function saveAccountSession(input: {
|
|
|
32
33
|
token: string;
|
|
33
34
|
updatedAt?: string;
|
|
34
35
|
}): CliConfig;
|
|
36
|
+
export declare function getOrCreateWorkerKey(): string;
|
|
35
37
|
export declare function migrateLegacySession(input: {
|
|
36
38
|
username: string;
|
|
37
39
|
env: string;
|
package/dist/config.js
CHANGED
|
@@ -12,9 +12,11 @@ exports.getCurrentAccountSession = getCurrentAccountSession;
|
|
|
12
12
|
exports.findAccountSession = findAccountSession;
|
|
13
13
|
exports.listAccountSessionsForUsername = listAccountSessionsForUsername;
|
|
14
14
|
exports.saveAccountSession = saveAccountSession;
|
|
15
|
+
exports.getOrCreateWorkerKey = getOrCreateWorkerKey;
|
|
15
16
|
exports.migrateLegacySession = migrateLegacySession;
|
|
16
17
|
exports.setCurrentAccount = setCurrentAccount;
|
|
17
18
|
exports.removeAccountSession = removeAccountSession;
|
|
19
|
+
const crypto_1 = require("crypto");
|
|
18
20
|
const fs_1 = require("fs");
|
|
19
21
|
const path_1 = require("path");
|
|
20
22
|
const os_1 = __importDefault(require("os"));
|
|
@@ -52,11 +54,13 @@ function readRawConfig() {
|
|
|
52
54
|
return {};
|
|
53
55
|
}
|
|
54
56
|
}
|
|
57
|
+
const WORKER_KEY_PATTERN = /^wk_[0-9a-f]{16}$/;
|
|
55
58
|
function stripDerivedFields(cfg) {
|
|
56
59
|
const next = {
|
|
57
60
|
version: typeof cfg.version === 'number' ? cfg.version : undefined,
|
|
58
61
|
currentAccount: cfg.currentAccount ?? undefined,
|
|
59
62
|
accounts: cfg.accounts ? clonePersistedConfig({ accounts: cfg.accounts }).accounts : undefined,
|
|
63
|
+
workerKey: typeof cfg.workerKey === 'string' && cfg.workerKey.trim().length > 0 ? cfg.workerKey.trim() : undefined,
|
|
60
64
|
};
|
|
61
65
|
if (!next.accounts || Object.keys(next.accounts).length === 0) {
|
|
62
66
|
if (typeof cfg.token === 'string' && cfg.token.trim().length > 0) {
|
|
@@ -180,10 +184,27 @@ function saveAccountSession(input) {
|
|
|
180
184
|
},
|
|
181
185
|
},
|
|
182
186
|
},
|
|
187
|
+
workerKey: cfg.workerKey,
|
|
183
188
|
};
|
|
184
189
|
saveConfig(next);
|
|
185
190
|
return loadConfig();
|
|
186
191
|
}
|
|
192
|
+
function assertValidWorkerKey(workerKey) {
|
|
193
|
+
if (!WORKER_KEY_PATTERN.test(workerKey)) {
|
|
194
|
+
throw new Error(`invalid_stored_worker_key:${workerKey}`);
|
|
195
|
+
}
|
|
196
|
+
return workerKey;
|
|
197
|
+
}
|
|
198
|
+
function getOrCreateWorkerKey() {
|
|
199
|
+
const cfg = loadConfig();
|
|
200
|
+
const legacyWorkerKey = typeof cfg.workerKey === 'string' ? cfg.workerKey.trim() : '';
|
|
201
|
+
if (legacyWorkerKey) {
|
|
202
|
+
return assertValidWorkerKey(legacyWorkerKey);
|
|
203
|
+
}
|
|
204
|
+
const workerKey = `wk_${(0, crypto_1.randomBytes)(8).toString('hex')}`;
|
|
205
|
+
saveConfig({ ...cfg, workerKey });
|
|
206
|
+
return workerKey;
|
|
207
|
+
}
|
|
187
208
|
function migrateLegacySession(input) {
|
|
188
209
|
return saveAccountSession(input);
|
|
189
210
|
}
|
|
@@ -199,6 +220,7 @@ function setCurrentAccount(input) {
|
|
|
199
220
|
version: CONFIG_VERSION,
|
|
200
221
|
currentAccount: { username: session.username, env: session.env },
|
|
201
222
|
accounts: cfg.accounts ?? {},
|
|
223
|
+
workerKey: cfg.workerKey,
|
|
202
224
|
};
|
|
203
225
|
saveConfig(next);
|
|
204
226
|
return loadConfig();
|
|
@@ -233,6 +255,7 @@ function removeAccountSession(input = {}) {
|
|
|
233
255
|
version: CONFIG_VERSION,
|
|
234
256
|
currentAccount: nextCurrent,
|
|
235
257
|
accounts,
|
|
258
|
+
workerKey: cfg.workerKey,
|
|
236
259
|
};
|
|
237
260
|
if (!nextCurrent && typeof cfg.token === 'string' && typeof cfg.env === 'string' && (!cfg.accounts || Object.keys(cfg.accounts).length === 0)) {
|
|
238
261
|
clearConfig();
|
package/dist/index.js
CHANGED
|
@@ -35,6 +35,7 @@ const devServer_1 = require("./commands/devServer");
|
|
|
35
35
|
const captureListing_1 = require("./commands/captureListing");
|
|
36
36
|
const captureRemote_1 = require("./commands/captureRemote");
|
|
37
37
|
const marketing_1 = require("./commands/marketing");
|
|
38
|
+
const review_1 = require("./commands/review");
|
|
38
39
|
const validate_1 = require("./commands/validate");
|
|
39
40
|
const build_1 = require("./commands/build");
|
|
40
41
|
const format_1 = require("./commands/format");
|
|
@@ -44,7 +45,15 @@ const feedback_1 = require("./commands/feedback");
|
|
|
44
45
|
const changelog_1 = require("./commands/changelog");
|
|
45
46
|
const publicPages_1 = require("./commands/publicPages");
|
|
46
47
|
const upgrade_1 = require("./commands/upgrade");
|
|
48
|
+
const worker_1 = require("./commands/worker");
|
|
47
49
|
const messages_1 = require("./messages");
|
|
50
|
+
// Restricted shim: inside a worker task workspace only task-scoped commands,
|
|
51
|
+
// local validation/run helpers, safe read-only lookups, and AI generation are
|
|
52
|
+
// permitted. Worker lease credentials are never exposed to the agent process.
|
|
53
|
+
if (process.env.PLAYDROP_WORKER_CONTEXT === '1' && !(0, worker_1.isWorkerContextCommandAllowed)(process.argv.slice(2))) {
|
|
54
|
+
console.error(worker_1.WORKER_CONTEXT_COMMAND_NOT_ALLOWED_MESSAGE);
|
|
55
|
+
process.exit(1);
|
|
56
|
+
}
|
|
48
57
|
function printRemovedCommandHint(command) {
|
|
49
58
|
const replacements = {
|
|
50
59
|
list: 'playdrop browse',
|
|
@@ -158,6 +167,105 @@ function registerUseAccountCommand(parent) {
|
|
|
158
167
|
registerLoginCommand(program);
|
|
159
168
|
registerLogoutCommand(program);
|
|
160
169
|
registerWhoamiCommand(program);
|
|
170
|
+
const worker = program.command('worker').description('Run a PlayDrop agent worker on this machine');
|
|
171
|
+
worker
|
|
172
|
+
.command('start')
|
|
173
|
+
.description('Start the PlayDrop worker and poll for agent tasks')
|
|
174
|
+
.option('--env <env>', 'Resolve this command against one logged-in environment')
|
|
175
|
+
.option('--once', 'Process at most one task then exit')
|
|
176
|
+
.option('--name <name>', 'Worker display name override')
|
|
177
|
+
.action(async (opts) => {
|
|
178
|
+
await (0, worker_1.startWorker)({
|
|
179
|
+
env: opts.env,
|
|
180
|
+
once: opts.once,
|
|
181
|
+
name: opts.name,
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
const task = program.command('task').description('Report agent task progress from a worker workspace');
|
|
185
|
+
task
|
|
186
|
+
.command('report')
|
|
187
|
+
.description('Post progress for the active agent task')
|
|
188
|
+
.option('--phase <phase>', 'Task phase')
|
|
189
|
+
.option('--pct <number>', 'Percent complete, 0 to 100')
|
|
190
|
+
.requiredOption('-m, --message <message>', 'Progress message')
|
|
191
|
+
.option('--env <env>', 'Environment override')
|
|
192
|
+
.option('--kind <kind>', 'progress')
|
|
193
|
+
.action(async (opts) => {
|
|
194
|
+
await (0, worker_1.reportTask)(opts);
|
|
195
|
+
});
|
|
196
|
+
task
|
|
197
|
+
.command('report-catalogue')
|
|
198
|
+
.description('Post a catalogue.json preview for the active agent task')
|
|
199
|
+
.requiredOption('--file <path>', 'Path to catalogue.json')
|
|
200
|
+
.requiredOption('-m, --message <message>', 'Preview message')
|
|
201
|
+
.option('--env <env>', 'Environment override')
|
|
202
|
+
.action(async (opts) => {
|
|
203
|
+
await (0, worker_1.reportCatalogueTask)(opts);
|
|
204
|
+
});
|
|
205
|
+
task
|
|
206
|
+
.command('upload')
|
|
207
|
+
.description('Upload the active agent task project as a private draft')
|
|
208
|
+
.option('--env <env>', 'Environment override')
|
|
209
|
+
.action(async (opts) => {
|
|
210
|
+
await (0, worker_1.uploadTask)(opts);
|
|
211
|
+
});
|
|
212
|
+
task
|
|
213
|
+
.command('done')
|
|
214
|
+
.description('Mark the active agent task done after upload')
|
|
215
|
+
.option('--env <env>', 'Environment override')
|
|
216
|
+
.action(async (opts) => {
|
|
217
|
+
await (0, worker_1.completeTask)(opts);
|
|
218
|
+
});
|
|
219
|
+
task
|
|
220
|
+
.command('submit-review')
|
|
221
|
+
.description('Submit the active game review task result')
|
|
222
|
+
.requiredOption('--state <state>', 'Terminal review state')
|
|
223
|
+
.requiredOption('--message-file <path>', 'Internal assessment file')
|
|
224
|
+
.option('--creator-feedback-file <path>', 'Creator feedback file')
|
|
225
|
+
.requiredOption('--evidence-dir <path>', 'Review evidence directory')
|
|
226
|
+
.option('--env <env>', 'Environment override')
|
|
227
|
+
.action(async (opts) => {
|
|
228
|
+
await (0, worker_1.submitReviewTask)(opts);
|
|
229
|
+
});
|
|
230
|
+
task
|
|
231
|
+
.command('fail')
|
|
232
|
+
.description('Fail the active agent task')
|
|
233
|
+
.requiredOption('-m, --message <message>', 'Failure message')
|
|
234
|
+
.option('--env <env>', 'Environment override')
|
|
235
|
+
.action(async (opts) => {
|
|
236
|
+
await (0, worker_1.failTask)(opts);
|
|
237
|
+
});
|
|
238
|
+
const review = program.command('review').description('Review helper commands for PlayDrop worker tasks');
|
|
239
|
+
review
|
|
240
|
+
.command('validate-result')
|
|
241
|
+
.description('Validate a canonical game review result')
|
|
242
|
+
.requiredOption('--state <state>', 'Terminal review state')
|
|
243
|
+
.requiredOption('--message-file <path>', 'Internal assessment file')
|
|
244
|
+
.option('--creator-feedback-file <path>', 'Creator feedback file')
|
|
245
|
+
.requiredOption('--evidence-dir <path>', 'Review evidence directory')
|
|
246
|
+
.action(async (opts) => {
|
|
247
|
+
await (0, review_1.validateReviewResultCommand)(opts);
|
|
248
|
+
});
|
|
249
|
+
review
|
|
250
|
+
.command('compose-evidence')
|
|
251
|
+
.description('Compose review screenshots into one evidence image')
|
|
252
|
+
.requiredOption('--core <path>', 'Core gameplay screenshot')
|
|
253
|
+
.requiredOption('--win <path>', 'Win or progression screenshot')
|
|
254
|
+
.requiredOption('--loss <path>', 'Loss or failure screenshot')
|
|
255
|
+
.requiredOption('--out <path>', 'Output PNG path')
|
|
256
|
+
.action(async (opts) => {
|
|
257
|
+
await (0, review_1.composeReviewEvidence)(opts);
|
|
258
|
+
});
|
|
259
|
+
review
|
|
260
|
+
.command('rating-card')
|
|
261
|
+
.description('Render a review rating card PNG')
|
|
262
|
+
.requiredOption('--review-message-file <path>', 'Internal assessment file')
|
|
263
|
+
.requiredOption('--out <path>', 'Output PNG path')
|
|
264
|
+
.option('--punchline <text>', 'Override punchline text')
|
|
265
|
+
.option('--title <text>', 'Card title')
|
|
266
|
+
.action(async (opts) => {
|
|
267
|
+
await (0, review_1.createReviewRatingCard)(opts);
|
|
268
|
+
});
|
|
161
269
|
const auth = program.command('auth').description('Authentication commands');
|
|
162
270
|
registerLoginCommand(auth);
|
|
163
271
|
registerLogoutCommand(auth);
|
|
@@ -505,32 +613,6 @@ creations
|
|
|
505
613
|
.action(async (opts) => {
|
|
506
614
|
await (0, creations_1.browseCreations)(opts);
|
|
507
615
|
});
|
|
508
|
-
const creationIdeas = creations.command('ideas').description('Manage game ideas');
|
|
509
|
-
creationIdeas
|
|
510
|
-
.command('browse')
|
|
511
|
-
.description('Browse your game ideas')
|
|
512
|
-
.option('--state <state>', 'idea, started, shipped, or all')
|
|
513
|
-
.option('--limit <number>', 'Maximum number of results to return')
|
|
514
|
-
.option('--offset <number>', 'Result offset')
|
|
515
|
-
.option('--json', 'Output JSON')
|
|
516
|
-
.action(async (opts) => {
|
|
517
|
-
await (0, creations_1.browseCreationIdeas)(opts);
|
|
518
|
-
});
|
|
519
|
-
creationIdeas
|
|
520
|
-
.command('start <idOrSlug>')
|
|
521
|
-
.description('Mark a game idea as started')
|
|
522
|
-
.option('--json', 'Output JSON')
|
|
523
|
-
.action(async (idOrSlug, opts) => {
|
|
524
|
-
await (0, creations_1.startCreationIdea)(idOrSlug, opts);
|
|
525
|
-
});
|
|
526
|
-
creationIdeas
|
|
527
|
-
.command('ship <idOrSlug>')
|
|
528
|
-
.description('Mark a game idea as shipped')
|
|
529
|
-
.requiredOption('--app <creator/name>', 'Created app ref')
|
|
530
|
-
.option('--json', 'Output JSON')
|
|
531
|
-
.action(async (idOrSlug, opts) => {
|
|
532
|
-
await (0, creations_1.shipCreationIdea)(idOrSlug, opts);
|
|
533
|
-
});
|
|
534
616
|
const creationApps = creations.command('apps').description('Manage app creations');
|
|
535
617
|
creationApps
|
|
536
618
|
.command('update <name>')
|
|
@@ -721,6 +803,7 @@ ai
|
|
|
721
803
|
.option('--texture', 'Enable texturing')
|
|
722
804
|
.option('--timeout <seconds>', 'Wait timeout in seconds')
|
|
723
805
|
.option('--poll <milliseconds>', 'Polling interval in milliseconds')
|
|
806
|
+
.option('--output <path>', 'Write generated image bytes to a local file (image only)')
|
|
724
807
|
.option('--json', 'Output JSON')
|
|
725
808
|
.action(async (type, prompt, opts) => {
|
|
726
809
|
await (0, generation_1.generate)(type, prompt, {
|
|
@@ -748,6 +831,7 @@ ai
|
|
|
748
831
|
texture: opts.texture,
|
|
749
832
|
timeoutSeconds: opts.timeout,
|
|
750
833
|
pollIntervalMs: opts.poll,
|
|
834
|
+
output: opts.output,
|
|
751
835
|
json: opts.json,
|
|
752
836
|
});
|
|
753
837
|
});
|
|
@@ -800,7 +884,6 @@ projectCreate
|
|
|
800
884
|
.description('Create a new app from a template or exact remix version')
|
|
801
885
|
.option('--template <ref>', 'Template ref')
|
|
802
886
|
.option('--remix <ref>', 'Canonical app version ref')
|
|
803
|
-
.option('--game-idea <idOrSlug>', 'Game idea id or slug to infer the source and mark started')
|
|
804
887
|
.action(async (name, opts) => {
|
|
805
888
|
await (0, create_1.create)(name, opts);
|
|
806
889
|
});
|
|
@@ -828,10 +911,11 @@ project
|
|
|
828
911
|
.command('dev [target]')
|
|
829
912
|
.description('Run an app locally')
|
|
830
913
|
.option('--app <name>', 'App name when the target is a workspace')
|
|
914
|
+
.option('--port <number>', 'Local dev router port')
|
|
831
915
|
.option('--dev-auth <mode>', 'prompt, anonymous, viewer, or player')
|
|
832
916
|
.option('--player <slot>', '1, 2, 3, or 4 when --dev-auth player is selected')
|
|
833
917
|
.action(async (target, opts = {}) => {
|
|
834
|
-
await (0, dev_1.dev)(target,
|
|
918
|
+
await (0, dev_1.dev)(target, opts.port, opts.app, {
|
|
835
919
|
devAuth: opts.devAuth,
|
|
836
920
|
player: opts.player,
|
|
837
921
|
});
|
|
@@ -853,6 +937,7 @@ const projectCapture = project.command('capture').description('Run a Playwright
|
|
|
853
937
|
projectCapture
|
|
854
938
|
.argument('[target]')
|
|
855
939
|
.option('--app <name>', 'App name when the target is a workspace')
|
|
940
|
+
.option('--port <number>', 'Local dev router port')
|
|
856
941
|
.option('--timeout <seconds>', 'Capture timeout in seconds')
|
|
857
942
|
.option('--log-level <level>', 'debug, info, warn, or error')
|
|
858
943
|
.option('--screenshot <path>', 'Screenshot output path')
|
|
@@ -867,6 +952,7 @@ projectCapture
|
|
|
867
952
|
await (0, capture_1.capture)(target, {
|
|
868
953
|
timeoutSeconds,
|
|
869
954
|
appName: opts.app,
|
|
955
|
+
port: opts.port,
|
|
870
956
|
logLevel: opts.logLevel,
|
|
871
957
|
screenshotPath: opts.screenshot,
|
|
872
958
|
surfaceTarget: opts.surface,
|
|
@@ -909,6 +995,8 @@ projectCapture
|
|
|
909
995
|
.option('--screenshot <path>', 'Screenshot output path')
|
|
910
996
|
.option('--log <path>', 'Log output path')
|
|
911
997
|
.option('--expected-url <url>', 'Expected final URL after redirects')
|
|
998
|
+
.option('--actions <path>', 'JSON action file with click, press, and wait steps before screenshot')
|
|
999
|
+
.option('--viewport <size>', 'Viewport size as WIDTHxHEIGHT')
|
|
912
1000
|
.option('--username <username>', 'Login username')
|
|
913
1001
|
.option('--password <password>', 'Login password')
|
|
914
1002
|
.option('--login-url <url>', 'Explicit login URL')
|
|
@@ -992,7 +1080,6 @@ project
|
|
|
992
1080
|
.option('--env <env>', 'Resolve this command against one logged-in environment')
|
|
993
1081
|
.option('--skip-ecs', 'Skip ecs.json and server.js during publish')
|
|
994
1082
|
.option('--clear-tags', 'Confirm clearing existing live tags when this publish removes them')
|
|
995
|
-
.option('--game-idea <idOrSlug>', 'Game idea id or slug to mark shipped')
|
|
996
1083
|
.addOption(new commander_1.Option('--skip-review', 'Mark uploaded app versions as NOT_REQUIRED review. Admin-only.').hideHelp())
|
|
997
1084
|
.action(async (target, opts) => {
|
|
998
1085
|
await (0, upload_1.upload)(target ?? '.', {
|
|
@@ -1000,7 +1087,6 @@ project
|
|
|
1000
1087
|
skipEcs: opts.skipEcs,
|
|
1001
1088
|
skipReview: opts.skipReview,
|
|
1002
1089
|
clearTags: opts.clearTags,
|
|
1003
|
-
gameIdea: opts.gameIdea,
|
|
1004
1090
|
});
|
|
1005
1091
|
});
|
|
1006
1092
|
const documentation = program.command('documentation').description('Public Playdrop documentation');
|
package/dist/shellProbe.d.ts
CHANGED
|
@@ -3,4 +3,4 @@ export interface ShellProbeResult {
|
|
|
3
3
|
output: string;
|
|
4
4
|
}
|
|
5
5
|
export declare function buildCommandPathProbe(command: string, platform?: NodeJS.Platform): string;
|
|
6
|
-
export declare function runShell(command: string, platform?: NodeJS.Platform): ShellProbeResult;
|
|
6
|
+
export declare function runShell(command: string, platform?: NodeJS.Platform, timeoutMs?: number): ShellProbeResult;
|
package/dist/shellProbe.js
CHANGED
|
@@ -6,10 +6,10 @@ const node_child_process_1 = require("node:child_process");
|
|
|
6
6
|
function buildCommandPathProbe(command, platform = process.platform) {
|
|
7
7
|
return platform === 'win32' ? `where ${command}` : `command -v ${command}`;
|
|
8
8
|
}
|
|
9
|
-
function runShell(command, platform = process.platform) {
|
|
9
|
+
function runShell(command, platform = process.platform, timeoutMs = 30000) {
|
|
10
10
|
const result = platform === 'win32'
|
|
11
|
-
? (0, node_child_process_1.spawnSync)('cmd.exe', ['/d', '/s', '/c', command], { encoding: 'utf8', timeout:
|
|
12
|
-
: (0, node_child_process_1.spawnSync)('/bin/zsh', ['-lc', command], { encoding: 'utf8', timeout:
|
|
11
|
+
? (0, node_child_process_1.spawnSync)('cmd.exe', ['/d', '/s', '/c', command], { encoding: 'utf8', timeout: timeoutMs })
|
|
12
|
+
: (0, node_child_process_1.spawnSync)('/bin/zsh', ['-lc', command], { encoding: 'utf8', timeout: timeoutMs });
|
|
13
13
|
return {
|
|
14
14
|
exitCode: result.status ?? 1,
|
|
15
15
|
output: `${result.stdout ?? ''}${result.stderr ?? ''}`.trim(),
|
package/dist/workspaceAuth.d.ts
CHANGED
package/dist/workspaceAuth.js
CHANGED
|
@@ -27,6 +27,17 @@ function normalizeEnv(value) {
|
|
|
27
27
|
const normalized = value.trim();
|
|
28
28
|
return normalized.length > 0 ? normalized : undefined;
|
|
29
29
|
}
|
|
30
|
+
function normalizeTaskToken(value) {
|
|
31
|
+
if (typeof value !== 'string') {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
const normalized = value.trim();
|
|
35
|
+
return normalized.length > 0 ? normalized : undefined;
|
|
36
|
+
}
|
|
37
|
+
function normalizePositiveInteger(value) {
|
|
38
|
+
const parsed = typeof value === 'number' ? value : Number.parseInt(String(value ?? ''), 10);
|
|
39
|
+
return Number.isInteger(parsed) && parsed > 0 ? parsed : undefined;
|
|
40
|
+
}
|
|
30
41
|
function readWorkspaceAuthConfig(filePath) {
|
|
31
42
|
let parsed;
|
|
32
43
|
try {
|
|
@@ -46,6 +57,9 @@ function readWorkspaceAuthConfig(filePath) {
|
|
|
46
57
|
return {
|
|
47
58
|
ownerUsername,
|
|
48
59
|
env: normalizeEnv(parsed.env),
|
|
60
|
+
taskToken: normalizeTaskToken(parsed.taskToken),
|
|
61
|
+
taskId: normalizePositiveInteger(parsed.taskId),
|
|
62
|
+
taskAttempt: normalizePositiveInteger(parsed.taskAttempt),
|
|
49
63
|
};
|
|
50
64
|
}
|
|
51
65
|
function findWorkspaceAuthConfig(startPath) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { AppleOAuthHandoffExchangeRequest, AppleOAuthHandoffExchangeResponse, AppleOAuthLinkStartRequest, AppleOAuthLinkStartResponse, ApplePushDeviceRequest, ApplePushDeviceStatusResponse, FirebasePushDeviceRequest, FirebasePushDeviceStatusResponse, ApiKeyLoginRequest, CliApiKeyStatusResponse, CliLoginApproveRequest, CliLoginApproveResponse, CliLoginPollRequest, CliLoginPollResponse, CliLoginStartResponse, CliLoginStatusResponse, CliWebLaunchStartRequest, CliWebLaunchStartResponse, CompleteXSignupRequest, CompleteXSignupResponse, DeleteMyAccountRequest, DeleteMyAccountResponse, LoginRequest, LoginResponse, LogoutResponse, PrivacyExportResponse, RegisterRequest, RegisterResponse, StarterProfileAssetsResponse, CreateAppRequest, CreateAppResponse, UpdateAppRequest, AdminUpdateAppRequest, UpdateAppResponse, AppsListResponse, AppBrowseRequest, AppDetailRequest, AppDetailResponse, AppMoreCollectionKey, AppMoreCollectionPage, AppMoreCollectionRequest, AppMoreCollectionsRequest, AppMoreCollectionsResponse, CreatorAppsBrowseRequest, AppRuntimeAssetsResponse, ContentLicense, InitializeAppUploadRequest, InitializeAppUploadResponse, UploadAppSessionFileResponse, UploadAppSessionOwnedAssetResponse, FinalizeAppUploadResponse, AppUploadLaunchCheckPreviewResponse, AbortAppUploadResponse, RecordAppUploadLaunchCheckRequest, RecordAppUploadLaunchCheckResponse, MyAppsResponse, BootstrapResponse, SetProfileAssetRequest, SetProfileAssetResponse, MeResponse, UserDetailResponse, UsersListResponse, CreateUserRequest, CreateUserResponse, UpdateAdminUserRequest, RemixScaffoldResponse, TemplateScaffoldResponse, HomeResponse, HomeCollectionPageResponse, FetchHomeOptions, DeleteAppResponse, AppType, AppAccessTokenResponse, DevAppAccessTokenResponse, DevPlayerResetResponse, AppLogEntryRequest, AppLogEntryResponse, ClaimFreeCreditRewardResponse, SubmitFeedbackRequest, SubmitFeedbackResponse, FeedbackListResponse, AdminFeedbackListResponse, AdminFeedbackResponse, UpdateAdminFeedbackRequest, UpdateAdminFeedbackResponse, DeleteFeedbackResponse, FeedbackCategory, FeedbackClient, FeedbackStatus, ShopResponse, AppleCreditPackFulfillmentRequest, AdInterstitialShowResponse, AdLoadResponse, AdShowRequest, AdRewardedShowResponse, AssetPurchaseRequest, BoostActivationRequest, BoostBalanceResponse, BoostHistoryResponse, BoostPurchaseRequest, BoostPurchaseResponse, BoostReportQuery, BoostReportResponse, BoostStatusResponse, AdLoadRequest, CreditPackCheckoutSessionRequest, PurchaseResponse, CreditPackCheckoutSessionResponse, CreditPackCheckoutStatusResponse, CreatorEarningsResponse, GoogleCreditPackFulfillmentRequest, MobileCreditPackFulfillmentResponse, TransactionsResponse, CreditPacksResponse, CreditPackResponse, PaymentProvider, PaymentStatus, AdminPaymentsListResponse, AdminPaymentDetailResponse, AdminRefundPaymentRequest, IapPurchaseRequest, IapPurchaseResponse, IapReceiptsResponse, IapReceiptListParams, IapReceiptResponse, AdminCreditTransactionsResponse, AiGenerationsResponse, AiGenerationDetailResponse, OwnedProfileAssetsResponse, SavedItemKind, CreateContentReportRequest, CreateCreatorReportRequest, CreateCommentReportRequest, CreatorBlockMutationResponse, LikedItemMutationResponse, DislikedItemMutationResponse, ModerationReportResponse, SavedItemMutationResponse, LibraryCategory, LibrarySort, LibraryResponse, TrackEngagementEventRequest, TrackEngagementEventResponse, CreatorFollowMutationResponse, ContentCommentsResponse, CreateContentCommentRequest, CreateContentCommentResponse, FollowingSort, FollowingCreatorsResponse, FollowingFeedSection, FollowingFeedResponse, DeleteContentCommentResponse, NotificationStatus, NotificationsResponse, NotificationReadResponse, EmailPreferencesResponse, UpdateUserCommunicationPreferencesRequest, PublicEmailPreferencesResponse, PublicEmailPreferencesUpdateRequest, EmailUnsubscribeResponse, AdminCreatorEngagementRulesResponse, AdminCreatorEngagementExecutionsResponse, AdminCreatorEngagementUserResponse, AdminCreatorEngagementRulePreviewRequest, AdminCreatorEngagementRulePreviewResponse, CreatorEngagementRuleExecutionStatus, PushSubscriptionMutationResponse, AdminUserResponse, DeleteAdminUserResponse, BatchCreateUsersResponse, UpsertWebPushSubscriptionRequest, UpdateProfileRequest, UpdateProfileResponse, WebPushConfigResponse, WebPushSubscriptionStatusResponse, ChangePasswordRequest, ChangePasswordResponse, UpgradeToCreatorResponse, AppleLinkRequest, AppleLinkResponse, AppleNativeChallengeResponse, ApplePendingSignupResponse, AppleSignInRequest, AppleSignInResponse, UnlinkXResponse, UnlinkGoogleResponse, GooglePendingSignupResponse, XPendingSignupResponse, GoogleOneTapExchangeRequest, GoogleOneTapExchangeResponse, UsernameAvailableResponse, CompleteAppleSignupRequest, CompleteAppleSignupResponse, CompleteGoogleSignupRequest, CompleteGoogleSignupResponse, GoogleAppleLinkRequest, GoogleAppleLinkResponse, GoogleAppleSignInRequest, GoogleAppleSignInResponse, AdminAppPlayerMetaResponse, AdminAppPlayerMetaUserResponse, AdminAppVersionReviewsListResponse,
|
|
2
|
-
import { type
|
|
1
|
+
import type { AppleOAuthHandoffExchangeRequest, AppleOAuthHandoffExchangeResponse, AppleOAuthLinkStartRequest, AppleOAuthLinkStartResponse, ApplePushDeviceRequest, ApplePushDeviceStatusResponse, FirebasePushDeviceRequest, FirebasePushDeviceStatusResponse, ApiKeyLoginRequest, CliApiKeyStatusResponse, CliLoginApproveRequest, CliLoginApproveResponse, CliLoginPollRequest, CliLoginPollResponse, CliLoginStartResponse, CliLoginStatusResponse, CliWebLaunchStartRequest, CliWebLaunchStartResponse, CompleteXSignupRequest, CompleteXSignupResponse, DeleteMyAccountRequest, DeleteMyAccountResponse, LoginRequest, LoginResponse, LogoutResponse, PrivacyExportResponse, RegisterRequest, RegisterResponse, StarterProfileAssetsResponse, CreateAppRequest, CreateAppResponse, UpdateAppRequest, AdminUpdateAppRequest, UpdateAppResponse, AppsListResponse, AppBrowseRequest, AppDetailRequest, AppDetailResponse, AppMoreCollectionKey, AppMoreCollectionPage, AppMoreCollectionRequest, AppMoreCollectionsRequest, AppMoreCollectionsResponse, CreatorAppsBrowseRequest, AppRuntimeAssetsResponse, ContentLicense, InitializeAppUploadRequest, InitializeAppUploadResponse, UploadAppSessionFileResponse, UploadAppSessionOwnedAssetResponse, FinalizeAppUploadResponse, AppUploadLaunchCheckPreviewResponse, AbortAppUploadResponse, RecordAppUploadLaunchCheckRequest, RecordAppUploadLaunchCheckResponse, MyAppsResponse, BootstrapResponse, SetProfileAssetRequest, SetProfileAssetResponse, MeResponse, UserDetailResponse, UsersListResponse, CreateUserRequest, CreateUserResponse, UpdateAdminUserRequest, RemixScaffoldResponse, TemplateScaffoldResponse, HomeResponse, HomeCollectionPageResponse, FetchHomeOptions, DeleteAppResponse, AppType, AppAccessTokenResponse, DevAppAccessTokenResponse, DevPlayerResetResponse, AppLogEntryRequest, AppLogEntryResponse, ClaimFreeCreditRewardResponse, SubmitFeedbackRequest, SubmitFeedbackResponse, FeedbackListResponse, AdminFeedbackListResponse, AdminFeedbackResponse, UpdateAdminFeedbackRequest, UpdateAdminFeedbackResponse, DeleteFeedbackResponse, FeedbackCategory, FeedbackClient, FeedbackStatus, ShopResponse, AppleCreditPackFulfillmentRequest, AdInterstitialShowResponse, AdLoadResponse, AdShowRequest, AdRewardedShowResponse, AssetPurchaseRequest, BoostActivationRequest, BoostBalanceResponse, BoostHistoryResponse, BoostPurchaseRequest, BoostPurchaseResponse, BoostReportQuery, BoostReportResponse, BoostStatusResponse, AdLoadRequest, CreditPackCheckoutSessionRequest, PurchaseResponse, CreditPackCheckoutSessionResponse, CreditPackCheckoutStatusResponse, CreatorEarningsResponse, GoogleCreditPackFulfillmentRequest, MobileCreditPackFulfillmentResponse, TransactionsResponse, CreditPacksResponse, CreditPackResponse, PaymentProvider, PaymentStatus, AdminPaymentsListResponse, AdminPaymentDetailResponse, AdminPlatformAnalyticsRequest, AdminPlatformAnalyticsResponse, AdminRefundPaymentRequest, IapPurchaseRequest, IapPurchaseResponse, IapReceiptsResponse, IapReceiptListParams, IapReceiptResponse, AdminCreditTransactionsResponse, AiGenerationsResponse, AiGenerationDetailResponse, OwnedProfileAssetsResponse, SavedItemKind, CreateContentReportRequest, CreateCreatorReportRequest, CreateCommentReportRequest, CreatorBlockMutationResponse, LikedItemMutationResponse, DislikedItemMutationResponse, ModerationReportResponse, SavedItemMutationResponse, LibraryCategory, LibrarySort, LibraryResponse, TrackEngagementEventRequest, TrackEngagementEventResponse, CreatorFollowMutationResponse, ContentCommentsResponse, CreateContentCommentRequest, CreateContentCommentResponse, FollowingSort, FollowingCreatorsResponse, FollowingFeedSection, FollowingFeedResponse, DeleteContentCommentResponse, NotificationStatus, NotificationsResponse, NotificationReadResponse, EmailPreferencesResponse, UpdateUserCommunicationPreferencesRequest, PublicEmailPreferencesResponse, PublicEmailPreferencesUpdateRequest, EmailUnsubscribeResponse, AdminCreatorEngagementRulesResponse, AdminCreatorEngagementExecutionsResponse, AdminCreatorEngagementUserResponse, AdminCreatorEngagementRulePreviewRequest, AdminCreatorEngagementRulePreviewResponse, CreatorEngagementRuleExecutionStatus, PushSubscriptionMutationResponse, AdminUserResponse, DeleteAdminUserResponse, BatchCreateUsersResponse, UpsertWebPushSubscriptionRequest, UpdateProfileRequest, UpdateProfileResponse, WebPushConfigResponse, WebPushSubscriptionStatusResponse, ChangePasswordRequest, ChangePasswordResponse, UpgradeToCreatorResponse, AppleLinkRequest, AppleLinkResponse, AppleNativeChallengeResponse, ApplePendingSignupResponse, AppleSignInRequest, AppleSignInResponse, UnlinkXResponse, UnlinkGoogleResponse, GooglePendingSignupResponse, XPendingSignupResponse, GoogleOneTapExchangeRequest, GoogleOneTapExchangeResponse, UsernameAvailableResponse, CompleteAppleSignupRequest, CompleteAppleSignupResponse, CompleteGoogleSignupRequest, CompleteGoogleSignupResponse, GoogleAppleLinkRequest, GoogleAppleLinkResponse, GoogleAppleSignInRequest, GoogleAppleSignInResponse, AdminAppPlayerMetaResponse, AdminAppPlayerMetaUserResponse, AdminAppVersionReviewsListResponse, AdminEnqueueNextAppVersionReviewTaskResponse, AdminMutateAchievementStateRequest, AdminMutateAchievementStateResponse, AdminMutateLeaderboardScoreRequest, AdminMutateLeaderboardScoreResponse, AdminRetirePlayerMetaDefinitionResponse, AdminUpdateAppVersionReviewRequest, AdminUpdateAppVersionReviewResponse, CreateCliApiKeyResponse, GetAchievementResponse, GetLeaderboardResponse, ListAchievementsResponse, ListLeaderboardsResponse, MyAchievementsResponse, MyLeaderboardsResponse, SetAchievementProgressRequest, SetAchievementProgressResponse, SubmitLeaderboardScoreRequest, SubmitLeaderboardScoreResponse, UnlockAchievementResponse, ReviewState, AppVersionVisibility, AppVersionsListResponse, AppVersionDetailResponse, AppSourceBundleResponse, UpdateVersionResponse, DeleteVersionResponse, AdminAppsListResponse, AdminGameCollectionCandidatesResponse, AdminGameCollectionResponse, AdminGameCollectionsResponse, AdminUpdateAppResponse, CreateAdminGameCollectionRequest, DeleteAdminGameCollectionResponse, UpdateAdminGameCollectionGamesRequest, UpdateAdminGameCollectionRequest, AssetBrowseKind, AssetCategory, AssetFormat, AssetVisibility, AssetSourceKind, AssetListSort, AssetListResponse, AssetCategoriesResponse, AssetDetailResponse, AssetVersionsListResponse, CreateAssetVersionResponse, DeleteOwnedCustomAssetResponse, CreateAssetSpecVersionResponse, ListOwnedCustomAssetsResponse, LoadOwnedCustomAssetResponse, MutateOwnedCustomAssetRequest, MutateOwnedCustomAssetResponse, UpdateAssetRequest, UpdateAssetResponse, UpdateAssetVersionRequest, UpdateAssetVersionResponse, UpdateAssetSpecVersionResponse, DeleteAssetVersionResponse, DeleteAssetResponse, DeleteAssetSpecVersionResponse, DeleteAssetSpecResponse, AssetSourceBundleResponse, AssetPackListSort, AssetSpecAssetsListResponse, AssetSpecAppsListResponse, AssetSpecDetailResponse, AssetSpecListSort, AssetSpecListResponse, AssetSpecVersionResponseEnvelope, AssetSpecVersionsListResponse, AssetPackSourceBundleResponse, AssetPackListResponse, AssetPackDetailResponse, AssetPackVersionsListResponse, InitializeAssetPackUploadRequest, InitializeAssetPackUploadResponse, UploadAssetPackSessionAssetResponse, UploadAssetPackSessionMediaResponse, FinalizeAssetPackUploadResponse, AbortAssetPackUploadResponse, UpdateAssetPackRequest, UpdateAssetPackResponse, UpdateAssetPackVersionRequest, UpdateAssetPackVersionResponse, DeleteAssetPackVersionResponse, DeleteAssetPackResponse, BatchUpsertNodeRelationsRequest, BatchUpsertNodeRelationsResponse, ContentRemixRelationsResponse, SearchRequest, SearchResponse, SearchSuggestRequest, SearchSuggestResponse, AdminTagGroupResponse, AdminTagGroupsResponse, AdminTagResponse, CreateTagGroupRequest, CreateTagRequest, TagDirectoryResponse, TagDetailResponse, TagGroupDetailResponse, TagGroupSort, TagListResponse, UpdateTagGroupRequest, UpdateTagRequest, AdminAgentTaskDetailResponse, AdminAgentTaskTranscriptResponse, AdminAgentTasksResponse, AdminAgentWorkersStatusResponse, AgentTaskAvailabilityResponse, AgentTaskAttachmentUploadResponse, AgentTaskDetailResponse, AgentTaskEventsResponse, AgentTaskKind, AgentTaskNewGameSuggestionsResponse, AgentTasksResponse, AppAgentTaskResponse, CancelAgentTaskResponse, ClearAgentTaskResponse, CreateAppAgentTaskRequest, CreateAppAgentTaskResponse, CreateNewGameAgentTaskRequest, CreateNewGameAgentTaskResponse, CreatorGamesListResponse, CreatorGameStatusResponse, CreatorGameVersionsResponse, MeAgentWorkersResponse, RetryAgentTaskResponse, WorkerClaimAgentTaskRequest, WorkerClaimAgentTaskResponse, WorkerCompleteAgentTaskRequest, WorkerCreateAgentTaskEventRequest, WorkerCreateAgentTaskEventResponse, WorkerCreateAgentTaskTranscriptChunkRequest, WorkerCreateAgentTaskTranscriptChunkResponse, WorkerFailAgentTaskRequest, WorkerHeartbeatAgentTaskRequest, WorkerHeartbeatAgentTaskResponse, WorkerRecordAgentTaskRunTelemetryRequest, WorkerRecordAgentTaskRunTelemetryResponse, WorkerPresenceRequest, WorkerPresenceResponse, WorkerSubmitAgentTaskReviewRequest, WorkerSubmitAgentTaskReviewResponse, FreeCreditsResponse, InvitePreviewResponse, MyInviteCodeResponse } from '@playdrop/types';
|
|
2
|
+
import { type AdminAgentTaskTranscriptOptions, type ListCreatorGamesOptions, type ListAgentTasksOptions } from './domains/agent-tasks.js';
|
|
3
3
|
export interface HttpMethod {
|
|
4
4
|
GET: 'GET';
|
|
5
5
|
POST: 'POST';
|
|
@@ -132,18 +132,37 @@ export interface ApiClient {
|
|
|
132
132
|
fetchInvitePreview(inviteCode: string): Promise<InvitePreviewResponse>;
|
|
133
133
|
fetchMyInviteCode(): Promise<MyInviteCodeResponse>;
|
|
134
134
|
submitMyInviteCode(inviteCode: string): Promise<MyInviteCodeResponse>;
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
135
|
+
uploadAgentTaskAttachment(file: Blob, description?: string, filename?: string): Promise<AgentTaskAttachmentUploadResponse>;
|
|
136
|
+
createNewGameAgentTask(body: CreateNewGameAgentTaskRequest): Promise<CreateNewGameAgentTaskResponse>;
|
|
137
|
+
createAppAgentTask(appName: string, body: CreateAppAgentTaskRequest): Promise<CreateAppAgentTaskResponse>;
|
|
138
|
+
getAppAgentTask(appName: string): Promise<AppAgentTaskResponse>;
|
|
139
|
+
getAppAgentTaskAvailability(appName: string): Promise<AgentTaskAvailabilityResponse>;
|
|
140
|
+
getAgentTaskAvailability(kind: AgentTaskKind): Promise<AgentTaskAvailabilityResponse>;
|
|
141
|
+
listNewGameSuggestions(): Promise<AgentTaskNewGameSuggestionsResponse>;
|
|
142
|
+
listAgentTasks(options?: ListAgentTasksOptions): Promise<AgentTasksResponse>;
|
|
143
|
+
listCreatorGames(options?: ListCreatorGamesOptions): Promise<CreatorGamesListResponse>;
|
|
144
|
+
getCreatorGameStatus(gameRef: string): Promise<CreatorGameStatusResponse>;
|
|
145
|
+
listCreatorGameVersions(gameRef: string): Promise<CreatorGameVersionsResponse>;
|
|
146
|
+
getAgentTask(taskId: number): Promise<AgentTaskDetailResponse>;
|
|
147
|
+
listAgentTaskEvents(taskId: number): Promise<AgentTaskEventsResponse>;
|
|
148
|
+
enableAgentTaskReadyNotification(taskId: number): Promise<AgentTaskDetailResponse>;
|
|
149
|
+
cancelAgentTask(taskId: number): Promise<CancelAgentTaskResponse>;
|
|
150
|
+
clearAgentTask(taskId: number): Promise<ClearAgentTaskResponse>;
|
|
151
|
+
retryAgentTask(taskId: number): Promise<RetryAgentTaskResponse>;
|
|
152
|
+
listMyAgentWorkers(): Promise<MeAgentWorkersResponse>;
|
|
153
|
+
workerPresence(body: WorkerPresenceRequest): Promise<WorkerPresenceResponse>;
|
|
154
|
+
workerClaimAgentTask(body: WorkerClaimAgentTaskRequest): Promise<WorkerClaimAgentTaskResponse>;
|
|
155
|
+
workerHeartbeatAgentTask(taskId: number, body: WorkerHeartbeatAgentTaskRequest): Promise<WorkerHeartbeatAgentTaskResponse>;
|
|
156
|
+
workerCreateAgentTaskEvent(taskId: number, body: WorkerCreateAgentTaskEventRequest): Promise<WorkerCreateAgentTaskEventResponse>;
|
|
157
|
+
workerAppendAgentTaskTranscriptChunks(taskId: number, body: WorkerCreateAgentTaskTranscriptChunkRequest): Promise<WorkerCreateAgentTaskTranscriptChunkResponse>;
|
|
158
|
+
workerRecordAgentTaskRunTelemetry(taskId: number, body: WorkerRecordAgentTaskRunTelemetryRequest): Promise<WorkerRecordAgentTaskRunTelemetryResponse>;
|
|
159
|
+
workerCompleteAgentTask(taskId: number, body: WorkerCompleteAgentTaskRequest): Promise<AgentTaskDetailResponse>;
|
|
160
|
+
workerSubmitAgentTaskReview(taskId: number, body: WorkerSubmitAgentTaskReviewRequest): Promise<WorkerSubmitAgentTaskReviewResponse>;
|
|
161
|
+
workerFailAgentTask(taskId: number, body: WorkerFailAgentTaskRequest): Promise<AgentTaskDetailResponse>;
|
|
162
|
+
adminListAgentTasks(options?: ListAgentTasksOptions): Promise<AdminAgentTasksResponse>;
|
|
163
|
+
adminGetAgentTask(taskId: number): Promise<AdminAgentTaskDetailResponse>;
|
|
164
|
+
adminGetAgentTaskTranscript(taskId: number, options?: AdminAgentTaskTranscriptOptions): Promise<AdminAgentTaskTranscriptResponse>;
|
|
165
|
+
adminGetAgentWorkersStatus(): Promise<AdminAgentWorkersStatusResponse>;
|
|
147
166
|
checkUsernameAvailable(username: string): Promise<UsernameAvailableResponse>;
|
|
148
167
|
completeGoogleSignup(request: CompleteGoogleSignupRequest): Promise<CompleteGoogleSignupResponse>;
|
|
149
168
|
completeXSignup(request: CompleteXSignupRequest): Promise<CompleteXSignupResponse>;
|
|
@@ -496,6 +515,7 @@ export interface ApiClient {
|
|
|
496
515
|
updateAdminUser(userId: number, request: UpdateAdminUserRequest): Promise<AdminUserResponse>;
|
|
497
516
|
deleteAdminUser(userId: number): Promise<DeleteAdminUserResponse>;
|
|
498
517
|
fetchAdminApps(): Promise<AdminAppsListResponse>;
|
|
518
|
+
fetchAdminPlatformAnalytics(options?: AdminPlatformAnalyticsRequest): Promise<AdminPlatformAnalyticsResponse>;
|
|
499
519
|
updateAdminApp(id: number, request: AdminUpdateAppRequest): Promise<AdminUpdateAppResponse>;
|
|
500
520
|
deleteAdminApp(id: number): Promise<DeleteAppResponse>;
|
|
501
521
|
fetchAdminGameCollections(): Promise<AdminGameCollectionsResponse>;
|
|
@@ -511,10 +531,11 @@ export interface ApiClient {
|
|
|
511
531
|
deleteAdminGameCollection(id: number): Promise<DeleteAdminGameCollectionResponse>;
|
|
512
532
|
fetchAdminAppVersionReviews(options?: {
|
|
513
533
|
state?: ReviewState;
|
|
534
|
+
visibility?: AppVersionVisibility;
|
|
514
535
|
limit?: number;
|
|
515
536
|
offset?: number;
|
|
516
537
|
}): Promise<AdminAppVersionReviewsListResponse>;
|
|
517
|
-
|
|
538
|
+
enqueueNextAdminAppVersionReviewTask(): Promise<AdminEnqueueNextAppVersionReviewTaskResponse>;
|
|
518
539
|
updateAdminAppVersionReview(versionId: number, request: AdminUpdateAppVersionReviewRequest): Promise<AdminUpdateAppVersionReviewResponse>;
|
|
519
540
|
fetchAdminAppPlayerMeta(appId: number): Promise<AdminAppPlayerMetaResponse>;
|
|
520
541
|
fetchAdminAppPlayerMetaUser(appId: number, userId: number): Promise<AdminAppPlayerMetaUserResponse>;
|