@playdrop/playdrop-cli 0.14.5 → 0.14.7

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 (64) hide show
  1. package/config/client-meta.json +2 -2
  2. package/dist/apps/staticHtml.js +1 -0
  3. package/dist/apps/upload.js +2 -0
  4. package/dist/catalogue.d.ts +18 -5
  5. package/dist/catalogue.js +132 -158
  6. package/dist/commands/dev.js +9 -0
  7. package/dist/commands/devRuntimeAssets.d.ts +2 -1
  8. package/dist/commands/devRuntimeAssets.js +3 -0
  9. package/dist/commands/notes.d.ts +7 -0
  10. package/dist/commands/notes.js +107 -0
  11. package/dist/commands/tweaks.d.ts +6 -0
  12. package/dist/commands/tweaks.js +93 -0
  13. package/dist/commands/validate.js +14 -0
  14. package/dist/index.js +39 -0
  15. package/dist/listingPreflight.d.ts +4 -0
  16. package/dist/listingPreflight.js +17 -0
  17. package/dist/tweakStaleness.d.ts +7 -0
  18. package/dist/tweakStaleness.js +36 -0
  19. package/node_modules/@playdrop/api-client/dist/client.d.ts +25 -4
  20. package/node_modules/@playdrop/api-client/dist/client.d.ts.map +1 -1
  21. package/node_modules/@playdrop/api-client/dist/client.js +40 -0
  22. package/node_modules/@playdrop/api-client/dist/core/request.d.ts +1 -0
  23. package/node_modules/@playdrop/api-client/dist/core/request.d.ts.map +1 -1
  24. package/node_modules/@playdrop/api-client/dist/core/request.js +2 -1
  25. package/node_modules/@playdrop/api-client/dist/domains/admin.d.ts +2 -1
  26. package/node_modules/@playdrop/api-client/dist/domains/admin.d.ts.map +1 -1
  27. package/node_modules/@playdrop/api-client/dist/domains/admin.js +27 -0
  28. package/node_modules/@playdrop/api-client/dist/domains/apps.d.ts +18 -4
  29. package/node_modules/@playdrop/api-client/dist/domains/apps.d.ts.map +1 -1
  30. package/node_modules/@playdrop/api-client/dist/domains/apps.js +76 -6
  31. package/node_modules/@playdrop/api-client/dist/index.d.ts +35 -4
  32. package/node_modules/@playdrop/api-client/dist/index.d.ts.map +1 -1
  33. package/node_modules/@playdrop/api-client/dist/index.js +79 -4
  34. package/node_modules/@playdrop/config/client-meta.json +2 -2
  35. package/node_modules/@playdrop/config/dist/src/game-arena.d.ts +14 -0
  36. package/node_modules/@playdrop/config/dist/src/game-arena.d.ts.map +1 -0
  37. package/node_modules/@playdrop/config/dist/src/game-arena.js +30 -0
  38. package/node_modules/@playdrop/config/dist/src/index.d.ts +1 -0
  39. package/node_modules/@playdrop/config/dist/src/index.d.ts.map +1 -1
  40. package/node_modules/@playdrop/config/dist/src/index.js +1 -0
  41. package/node_modules/@playdrop/config/dist/test/game-arena.test.d.ts +2 -0
  42. package/node_modules/@playdrop/config/dist/test/game-arena.test.d.ts.map +1 -0
  43. package/node_modules/@playdrop/config/dist/test/game-arena.test.js +17 -0
  44. package/node_modules/@playdrop/config/dist/tsconfig.tsbuildinfo +1 -1
  45. package/node_modules/@playdrop/config/package.json +4 -0
  46. package/node_modules/@playdrop/types/dist/api.d.ts +104 -3
  47. package/node_modules/@playdrop/types/dist/api.d.ts.map +1 -1
  48. package/node_modules/@playdrop/types/dist/api.js +39 -2
  49. package/node_modules/@playdrop/types/dist/app-review.d.ts +11 -0
  50. package/node_modules/@playdrop/types/dist/app-review.d.ts.map +1 -0
  51. package/node_modules/@playdrop/types/dist/app-review.js +56 -0
  52. package/node_modules/@playdrop/types/dist/index.d.ts +3 -0
  53. package/node_modules/@playdrop/types/dist/index.d.ts.map +1 -1
  54. package/node_modules/@playdrop/types/dist/index.js +6 -0
  55. package/node_modules/@playdrop/types/dist/playtest-notes.d.ts +69 -0
  56. package/node_modules/@playdrop/types/dist/playtest-notes.d.ts.map +1 -0
  57. package/node_modules/@playdrop/types/dist/playtest-notes.js +30 -0
  58. package/node_modules/@playdrop/types/dist/tweaks.d.ts +48 -0
  59. package/node_modules/@playdrop/types/dist/tweaks.d.ts.map +1 -0
  60. package/node_modules/@playdrop/types/dist/tweaks.js +156 -0
  61. package/node_modules/@playdrop/types/dist/version.d.ts +37 -0
  62. package/node_modules/@playdrop/types/dist/version.d.ts.map +1 -1
  63. package/node_modules/@playdrop/types/dist/version.js +6 -0
  64. package/package.json +1 -1
@@ -20,6 +20,10 @@
20
20
  "./public-deployment": {
21
21
  "types": "./dist/src/public-deployment.d.ts",
22
22
  "default": "./dist/src/public-deployment.js"
23
+ },
24
+ "./game-arena": {
25
+ "types": "./dist/src/game-arena.d.ts",
26
+ "default": "./dist/src/game-arena.js"
23
27
  }
24
28
  },
25
29
  "scripts": {
@@ -6,7 +6,8 @@ import type { AppMetadataAssetSpecSupport, AssetSpecListResponse, AssetSpecRespo
6
6
  import type { AssetCategory, AssetResponse } from './asset.js';
7
7
  import type { ContentLicense, ContentPermissions } from './content-license.js';
8
8
  import type { InstrumentEvidenceManifest } from './instrument-evidence.js';
9
- import type { AppAuthMode, AppControllerMode, AppHostingMode, AppVersionResponse, AppVersionSummary, AppVersionVisibility, ReviewState } from './version.js';
9
+ import type { TweakValues } from './tweaks.js';
10
+ import type { AppAuthMode, AppControllerMode, AppHostingMode, AppListingMediaItem, AppVersionResponse, AppVersionSummary, AppVersionVisibility, ReviewState } from './version.js';
10
11
  export declare const ACQUISITION_ATTRIBUTION_TYPES: readonly ["install", "reengagement", "web_visit"];
11
12
  export type AcquisitionAttributionType = typeof ACQUISITION_ATTRIBUTION_TYPES[number];
12
13
  export declare const ACQUISITION_PLATFORMS: readonly ["ios", "android", "web"];
@@ -216,6 +217,15 @@ export type GameCreationSource = typeof GAME_CREATION_SOURCE_VALUES[number];
216
217
  export declare const GAME_CREATION_SOURCE_LABELS: Record<GameCreationSource, string>;
217
218
  export declare const AGENT_TASK_PROMPT_MIN_LENGTH = 4;
218
219
  export declare const AGENT_TASK_PROMPT_MAX_LENGTH = 100000;
220
+ export declare const AGENT_TASK_SAFETY_REJECT_CATEGORIES: readonly ["PRIVATE_PLAYDROP_INFORMATION", "NOT_A_GAME_REQUEST", "APP_STORE_CONTENT_POLICY"];
221
+ export type AgentTaskSafetyRejectCategory = typeof AGENT_TASK_SAFETY_REJECT_CATEGORIES[number];
222
+ export declare const AGENT_TASK_SAFETY_REJECT_ERROR_CODES: {
223
+ readonly PRIVATE_PLAYDROP_INFORMATION: "playdrop_private_information_request";
224
+ readonly NOT_A_GAME_REQUEST: "game_request_not_understood";
225
+ readonly APP_STORE_CONTENT_POLICY: "game_request_content_policy";
226
+ };
227
+ export type AgentTaskSafetyRejectErrorCode = (typeof AGENT_TASK_SAFETY_REJECT_ERROR_CODES)[AgentTaskSafetyRejectCategory];
228
+ export declare const AGENT_TASK_INPUT_MAX_COUNT = 20;
219
229
  export declare const AGENT_RUNTIME_VALUES: readonly ["CODEX", "CLAUDE_CODE", "CURSOR_COMPOSER"];
220
230
  export type AgentRuntime = typeof AGENT_RUNTIME_VALUES[number];
221
231
  export declare function normalizeAgentTaskModel(_agent: AgentRuntime, model: string): string | null;
@@ -242,6 +252,8 @@ export interface AgentAttemptResult {
242
252
  agent: AgentRuntime;
243
253
  model: string;
244
254
  reasoningEffort?: string | null;
255
+ workerId?: number | null;
256
+ retryOnAlternateWorker?: boolean;
245
257
  status: 'selected' | 'unavailable' | 'started' | 'completed' | 'failed';
246
258
  reason?: AgentAvailabilityFailureReason | string | null;
247
259
  message?: string | null;
@@ -585,6 +597,8 @@ export declare const ARENA_COMPARISON_MODE_VALUES: readonly ["RANDOM", "BARE_SOL
585
597
  export type ArenaComparisonMode = typeof ARENA_COMPARISON_MODE_VALUES[number];
586
598
  export declare const ARENA_VOTE_CHOICE_VALUES: readonly ["A", "B"];
587
599
  export type ArenaVoteChoice = typeof ARENA_VOTE_CHOICE_VALUES[number];
600
+ export declare const ARENA_VOTE_VERDICT_VALUES: readonly ["A", "B", "TIE", "BOTH_BAD"];
601
+ export type ArenaVoteVerdict = typeof ARENA_VOTE_VERDICT_VALUES[number];
588
602
  export interface AdminArenaEntryInput {
589
603
  slot: string;
590
604
  appVersionId: number;
@@ -617,13 +631,37 @@ export interface ActivateAdminArenaRoundsRequest {
617
631
  }
618
632
  export interface ArenaGameSide {
619
633
  playPath: string;
634
+ previewImagePath: string | null;
620
635
  }
621
636
  export interface ArenaMatchup {
622
637
  matchupToken: string;
638
+ shareToken: string;
623
639
  prompt: string;
640
+ previewAspectRatio: '16:9' | '9:16';
624
641
  gameA: ArenaGameSide;
625
642
  gameB: ArenaGameSide;
626
643
  }
644
+ export type GameArenaModelId = 'OPUS_5' | 'SOL_5_6';
645
+ export interface GameArenaStandingEntry {
646
+ id: GameArenaModelId;
647
+ label: string;
648
+ score: number;
649
+ votes: number;
650
+ voteRate: number;
651
+ }
652
+ export interface GameArenaPromptResult {
653
+ prompt: string;
654
+ winner: GameArenaModelId | 'TIE';
655
+ opusVotes: number;
656
+ solVotes: number;
657
+ }
658
+ export interface GameArenaStandings {
659
+ entries: [GameArenaStandingEntry, GameArenaStandingEntry];
660
+ promptResults: GameArenaPromptResult[];
661
+ voteCount: number;
662
+ tieCount: number;
663
+ bothBadCount: number;
664
+ }
627
665
  export interface ArenaRevealedEntry {
628
666
  harness: ArenaHarness;
629
667
  harnessVersion: string | null;
@@ -662,6 +700,9 @@ export type ArenaAiLeaderboardMetric = 'overall' | GameEvalDimension;
662
700
  export type ArenaAiLeaderboards = Record<ArenaAiLeaderboardMetric, ArenaAiLeaderboardEntry[]>;
663
701
  export interface ArenaResponse {
664
702
  matchups: ArenaMatchup[];
703
+ voteCount: number;
704
+ standingsRevealAt: string;
705
+ standings: GameArenaStandings | null;
665
706
  leaderboard: ArenaLeaderboardEntry[];
666
707
  }
667
708
  export interface AdminArenaAiLeaderboardsResponse {
@@ -669,13 +710,13 @@ export interface AdminArenaAiLeaderboardsResponse {
669
710
  }
670
711
  export interface CreateArenaVoteRequest {
671
712
  matchupToken: string;
672
- choice: ArenaVoteChoice;
713
+ choice: ArenaVoteVerdict;
673
714
  comment?: string | null;
674
715
  }
675
716
  export interface CreateArenaVoteResponse {
676
717
  gameA: ArenaRevealedEntry;
677
718
  gameB: ArenaRevealedEntry;
678
- yourPick: ArenaVoteChoice;
719
+ yourPick: ArenaVoteVerdict;
679
720
  headToHead?: {
680
721
  gameAWinRate: number;
681
722
  gameBWinRate: number;
@@ -864,6 +905,7 @@ export interface WorkerAgentTaskAttemptUnavailableResponse {
864
905
  task: AgentTaskResponse;
865
906
  requeued: boolean;
866
907
  exhausted: boolean;
908
+ retriedOnAlternateWorker: boolean;
867
909
  nextAttempt?: AgentAttemptOption | null;
868
910
  }
869
911
  export interface AgentWorkerUpdatePolicyResponse {
@@ -1196,6 +1238,7 @@ export interface CreateAppAgentTaskRequest {
1196
1238
  prompt: string;
1197
1239
  surfaceContext?: AgentTaskSurfaceContextRequest;
1198
1240
  inputs?: AgentTaskInput[];
1241
+ playtestNoteIds?: number[];
1199
1242
  agentBundleSha?: string;
1200
1243
  }
1201
1244
  export interface CreateAppAgentTaskResponse {
@@ -1433,6 +1476,8 @@ export interface AppResponse {
1433
1476
  lastPlayedAt?: string;
1434
1477
  /** Current version string (e.g., "1.2.3"), null if no versions exist */
1435
1478
  currentVersion?: string | null;
1479
+ /** Database id of the current version, null if no current version exists */
1480
+ currentVersionId?: number | null;
1436
1481
  /** Hosting mode of current version */
1437
1482
  hostingMode?: AppHostingMode;
1438
1483
  /** Auth mode of current version */
@@ -1471,6 +1516,8 @@ export interface AppResponse {
1471
1516
  screenshotLandscapeUrls?: string[];
1472
1517
  videoPortraitUrls?: string[];
1473
1518
  videoLandscapeUrls?: string[];
1519
+ /** Structured listing media with stable slugs and descriptive metadata. */
1520
+ listingMedia?: AppListingMediaItem[];
1474
1521
  viewerSaved?: boolean;
1475
1522
  viewerLiked?: boolean;
1476
1523
  viewerDisliked?: boolean;
@@ -1597,6 +1644,58 @@ export interface AdminPlatformAnalyticsResponse {
1597
1644
  }>;
1598
1645
  clientSurfacesDaily: AdminPlatformAnalyticsClientSurfaceDailyPoint[];
1599
1646
  }
1647
+ export declare const GAMEPLAY_SESSION_MODE_VALUES: readonly ["PLAY", "CREATOR_PLAYTEST", "REVIEW", "CAPTURE"];
1648
+ export type GameplaySessionMode = typeof GAMEPLAY_SESSION_MODE_VALUES[number];
1649
+ export declare const GAMEPLAY_SESSION_ACTIVITY_STATE_VALUES: readonly ["ACTIVE", "PAUSED"];
1650
+ export type GameplaySessionActivityState = typeof GAMEPLAY_SESSION_ACTIVITY_STATE_VALUES[number];
1651
+ export interface GameplaySessionStartRequest {
1652
+ sessionId: string;
1653
+ appId: number;
1654
+ appVersionId: number;
1655
+ }
1656
+ export interface GameplaySessionActivityRequest {
1657
+ sequence: number;
1658
+ activityState: GameplaySessionActivityState;
1659
+ }
1660
+ export interface GameplaySessionResponse {
1661
+ sessionId: string;
1662
+ mode: GameplaySessionMode;
1663
+ startedAt: string;
1664
+ lastHeartbeatAt: string;
1665
+ endedAt: string | null;
1666
+ activeSeconds: number;
1667
+ lastSequence: number;
1668
+ activityState: GameplaySessionActivityState;
1669
+ }
1670
+ export declare const TRACTION_ANALYTICS_GRANULARITY_VALUES: readonly ["day", "week", "month"];
1671
+ export declare const TRACTION_ANALYTICS_MAX_RANGE_DAYS = 731;
1672
+ export type TractionAnalyticsGranularity = typeof TRACTION_ANALYTICS_GRANULARITY_VALUES[number];
1673
+ export interface AdminTractionAnalyticsRequest {
1674
+ fromDate: string;
1675
+ toDate: string;
1676
+ granularity: TractionAnalyticsGranularity;
1677
+ }
1678
+ export interface TractionMetrics {
1679
+ newAccounts: number;
1680
+ activeUsers: number;
1681
+ activePlayers: number;
1682
+ activeCreators: number;
1683
+ newGamesCreated: number;
1684
+ newUpdatesCreated: number;
1685
+ newGamesPublished: number;
1686
+ updatesPublished: number;
1687
+ totalPlays: number;
1688
+ totalPlaytimeSeconds: number;
1689
+ }
1690
+ export interface TractionAnalyticsBucket {
1691
+ startDate: string;
1692
+ endDate: string;
1693
+ metrics: TractionMetrics;
1694
+ }
1695
+ export interface TractionAnalyticsResponse extends AdminTractionAnalyticsRequest {
1696
+ totals: TractionMetrics;
1697
+ buckets: TractionAnalyticsBucket[];
1698
+ }
1600
1699
  export interface AdminGameCollectionSummary {
1601
1700
  id: number;
1602
1701
  slug: string;
@@ -2011,6 +2110,8 @@ export interface AppRuntimeAssetsResponse {
2011
2110
  appVersionId: number;
2012
2111
  appVersion: string;
2013
2112
  assets: AppRuntimeAssetSummary[];
2113
+ /** Exact-version, read-only tweak values for a runtime that passed this endpoint's visibility checks. */
2114
+ runtimeTweakValues?: TweakValues | null;
2014
2115
  }
2015
2116
  export interface AppOwnedAssetSummary {
2016
2117
  assetRef: string;