@playdrop/playdrop-cli 0.14.6 → 0.14.8

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 (57) hide show
  1. package/config/client-meta.json +2 -2
  2. package/dist/apps/upload.js +1 -0
  3. package/dist/catalogue.d.ts +3 -1
  4. package/dist/catalogue.js +10 -0
  5. package/dist/commands/dev.js +9 -0
  6. package/dist/commands/devRuntimeAssets.d.ts +2 -1
  7. package/dist/commands/devRuntimeAssets.js +3 -0
  8. package/dist/commands/notes.d.ts +7 -0
  9. package/dist/commands/notes.js +107 -0
  10. package/dist/commands/tweaks.d.ts +6 -0
  11. package/dist/commands/tweaks.js +93 -0
  12. package/dist/commands/validate.js +14 -0
  13. package/dist/commands/worker.d.ts +1 -1
  14. package/dist/commands/worker.js +29 -8
  15. package/dist/index.js +40 -1
  16. package/dist/listingPreflight.d.ts +4 -0
  17. package/dist/listingPreflight.js +17 -0
  18. package/dist/tweakStaleness.d.ts +7 -0
  19. package/dist/tweakStaleness.js +36 -0
  20. package/node_modules/@playdrop/api-client/dist/client.d.ts +25 -4
  21. package/node_modules/@playdrop/api-client/dist/client.d.ts.map +1 -1
  22. package/node_modules/@playdrop/api-client/dist/client.js +40 -0
  23. package/node_modules/@playdrop/api-client/dist/core/request.d.ts +1 -0
  24. package/node_modules/@playdrop/api-client/dist/core/request.d.ts.map +1 -1
  25. package/node_modules/@playdrop/api-client/dist/core/request.js +2 -1
  26. package/node_modules/@playdrop/api-client/dist/domains/admin.d.ts +2 -1
  27. package/node_modules/@playdrop/api-client/dist/domains/admin.d.ts.map +1 -1
  28. package/node_modules/@playdrop/api-client/dist/domains/admin.js +27 -0
  29. package/node_modules/@playdrop/api-client/dist/domains/apps.d.ts +18 -4
  30. package/node_modules/@playdrop/api-client/dist/domains/apps.d.ts.map +1 -1
  31. package/node_modules/@playdrop/api-client/dist/domains/apps.js +76 -6
  32. package/node_modules/@playdrop/api-client/dist/index.d.ts +35 -4
  33. package/node_modules/@playdrop/api-client/dist/index.d.ts.map +1 -1
  34. package/node_modules/@playdrop/api-client/dist/index.js +79 -4
  35. package/node_modules/@playdrop/config/client-meta.json +2 -2
  36. package/node_modules/@playdrop/config/dist/src/game-arena.d.ts +2 -2
  37. package/node_modules/@playdrop/config/dist/src/game-arena.js +2 -2
  38. package/node_modules/@playdrop/config/dist/test/game-arena.test.js +4 -3
  39. package/node_modules/@playdrop/config/dist/tsconfig.tsbuildinfo +1 -1
  40. package/node_modules/@playdrop/types/dist/api.d.ts +76 -2
  41. package/node_modules/@playdrop/types/dist/api.d.ts.map +1 -1
  42. package/node_modules/@playdrop/types/dist/api.js +39 -2
  43. package/node_modules/@playdrop/types/dist/app-review.d.ts +11 -0
  44. package/node_modules/@playdrop/types/dist/app-review.d.ts.map +1 -0
  45. package/node_modules/@playdrop/types/dist/app-review.js +56 -0
  46. package/node_modules/@playdrop/types/dist/index.d.ts +3 -0
  47. package/node_modules/@playdrop/types/dist/index.d.ts.map +1 -1
  48. package/node_modules/@playdrop/types/dist/index.js +6 -0
  49. package/node_modules/@playdrop/types/dist/playtest-notes.d.ts +69 -0
  50. package/node_modules/@playdrop/types/dist/playtest-notes.d.ts.map +1 -0
  51. package/node_modules/@playdrop/types/dist/playtest-notes.js +30 -0
  52. package/node_modules/@playdrop/types/dist/tweaks.d.ts +48 -0
  53. package/node_modules/@playdrop/types/dist/tweaks.d.ts.map +1 -0
  54. package/node_modules/@playdrop/types/dist/tweaks.js +156 -0
  55. package/node_modules/@playdrop/types/dist/version.d.ts +17 -0
  56. package/node_modules/@playdrop/types/dist/version.d.ts.map +1 -1
  57. package/package.json +1 -1
@@ -6,6 +6,7 @@ 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 { TweakValues } from './tweaks.js';
9
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];
@@ -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;
@@ -645,6 +659,8 @@ export interface GameArenaStandings {
645
659
  entries: [GameArenaStandingEntry, GameArenaStandingEntry];
646
660
  promptResults: GameArenaPromptResult[];
647
661
  voteCount: number;
662
+ tieCount: number;
663
+ bothBadCount: number;
648
664
  }
649
665
  export interface ArenaRevealedEntry {
650
666
  harness: ArenaHarness;
@@ -694,13 +710,13 @@ export interface AdminArenaAiLeaderboardsResponse {
694
710
  }
695
711
  export interface CreateArenaVoteRequest {
696
712
  matchupToken: string;
697
- choice: ArenaVoteChoice;
713
+ choice: ArenaVoteVerdict;
698
714
  comment?: string | null;
699
715
  }
700
716
  export interface CreateArenaVoteResponse {
701
717
  gameA: ArenaRevealedEntry;
702
718
  gameB: ArenaRevealedEntry;
703
- yourPick: ArenaVoteChoice;
719
+ yourPick: ArenaVoteVerdict;
704
720
  headToHead?: {
705
721
  gameAWinRate: number;
706
722
  gameBWinRate: number;
@@ -889,6 +905,7 @@ export interface WorkerAgentTaskAttemptUnavailableResponse {
889
905
  task: AgentTaskResponse;
890
906
  requeued: boolean;
891
907
  exhausted: boolean;
908
+ retriedOnAlternateWorker: boolean;
892
909
  nextAttempt?: AgentAttemptOption | null;
893
910
  }
894
911
  export interface AgentWorkerUpdatePolicyResponse {
@@ -1221,6 +1238,7 @@ export interface CreateAppAgentTaskRequest {
1221
1238
  prompt: string;
1222
1239
  surfaceContext?: AgentTaskSurfaceContextRequest;
1223
1240
  inputs?: AgentTaskInput[];
1241
+ playtestNoteIds?: number[];
1224
1242
  agentBundleSha?: string;
1225
1243
  }
1226
1244
  export interface CreateAppAgentTaskResponse {
@@ -1458,6 +1476,8 @@ export interface AppResponse {
1458
1476
  lastPlayedAt?: string;
1459
1477
  /** Current version string (e.g., "1.2.3"), null if no versions exist */
1460
1478
  currentVersion?: string | null;
1479
+ /** Database id of the current version, null if no current version exists */
1480
+ currentVersionId?: number | null;
1461
1481
  /** Hosting mode of current version */
1462
1482
  hostingMode?: AppHostingMode;
1463
1483
  /** Auth mode of current version */
@@ -1624,6 +1644,58 @@ export interface AdminPlatformAnalyticsResponse {
1624
1644
  }>;
1625
1645
  clientSurfacesDaily: AdminPlatformAnalyticsClientSurfaceDailyPoint[];
1626
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
+ }
1627
1699
  export interface AdminGameCollectionSummary {
1628
1700
  id: number;
1629
1701
  slug: string;
@@ -2038,6 +2110,8 @@ export interface AppRuntimeAssetsResponse {
2038
2110
  appVersionId: number;
2039
2111
  appVersion: string;
2040
2112
  assets: AppRuntimeAssetSummary[];
2113
+ /** Exact-version, read-only tweak values for a runtime that passed this endpoint's visibility checks. */
2114
+ runtimeTweakValues?: TweakValues | null;
2041
2115
  }
2042
2116
  export interface AppOwnedAssetSummary {
2043
2117
  assetRef: string;