@playdrop/playdrop-cli 0.12.42 → 0.13.0

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 (106) hide show
  1. package/config/client-meta.json +2 -2
  2. package/dist/apps/index.d.ts +2 -0
  3. package/dist/apps/index.js +2 -1
  4. package/dist/apps/loadCheck.d.ts +4 -1
  5. package/dist/apps/loadCheck.js +40 -10
  6. package/dist/apps/staticHtml.d.ts +28 -0
  7. package/dist/apps/staticHtml.js +343 -0
  8. package/dist/apps/validate.js +2 -1
  9. package/dist/commands/devServer.js +19 -0
  10. package/dist/commands/feedback.d.ts +2 -0
  11. package/dist/commands/feedback.js +44 -2
  12. package/dist/commands/upload.d.ts +24 -0
  13. package/dist/commands/upload.js +122 -4
  14. package/dist/commands/worker/instrument-evidence.js +1 -1
  15. package/dist/commands/worker/runtime.d.ts +14 -0
  16. package/dist/commands/worker/runtime.js +97 -8
  17. package/dist/commands/worker.d.ts +27 -2
  18. package/dist/commands/worker.js +688 -146
  19. package/dist/index.js +7 -0
  20. package/dist/listingPreflight.js +15 -4
  21. package/node_modules/@playdrop/api-client/dist/client.d.ts +5 -2
  22. package/node_modules/@playdrop/api-client/dist/client.d.ts.map +1 -1
  23. package/node_modules/@playdrop/api-client/dist/domains/agent-tasks.d.ts +3 -2
  24. package/node_modules/@playdrop/api-client/dist/domains/agent-tasks.d.ts.map +1 -1
  25. package/node_modules/@playdrop/api-client/dist/domains/agent-tasks.js +13 -2
  26. package/node_modules/@playdrop/api-client/dist/domains/apps.d.ts +2 -1
  27. package/node_modules/@playdrop/api-client/dist/domains/apps.d.ts.map +1 -1
  28. package/node_modules/@playdrop/api-client/dist/domains/me.d.ts +2 -1
  29. package/node_modules/@playdrop/api-client/dist/domains/me.d.ts.map +1 -1
  30. package/node_modules/@playdrop/api-client/dist/domains/me.js +11 -0
  31. package/node_modules/@playdrop/api-client/dist/index.d.ts +6 -3
  32. package/node_modules/@playdrop/api-client/dist/index.d.ts.map +1 -1
  33. package/node_modules/@playdrop/api-client/dist/index.js +14 -2
  34. package/node_modules/@playdrop/config/client-meta.json +2 -2
  35. package/node_modules/@playdrop/config/dist/src/constants.d.ts +1 -0
  36. package/node_modules/@playdrop/config/dist/src/constants.d.ts.map +1 -1
  37. package/node_modules/@playdrop/config/dist/src/constants.js +1 -0
  38. package/node_modules/@playdrop/config/dist/tsconfig.tsbuildinfo +1 -1
  39. package/node_modules/@playdrop/types/dist/api.d.ts +195 -4
  40. package/node_modules/@playdrop/types/dist/api.d.ts.map +1 -1
  41. package/node_modules/@playdrop/types/dist/api.js +25 -2
  42. package/node_modules/entities/decode-codepoint.d.ts +19 -0
  43. package/node_modules/entities/decode-codepoint.d.ts.map +1 -0
  44. package/node_modules/entities/decode-codepoint.js +77 -0
  45. package/node_modules/entities/decode-codepoint.js.map +1 -0
  46. package/node_modules/entities/decode.d.ts +209 -0
  47. package/node_modules/entities/decode.d.ts.map +1 -0
  48. package/node_modules/entities/decode.js +511 -0
  49. package/node_modules/entities/decode.js.map +1 -0
  50. package/node_modules/entities/encode.d.ts +22 -0
  51. package/node_modules/entities/encode.d.ts.map +1 -0
  52. package/node_modules/entities/encode.js +73 -0
  53. package/node_modules/entities/encode.js.map +1 -0
  54. package/node_modules/entities/escape.d.ts +43 -0
  55. package/node_modules/entities/escape.d.ts.map +1 -0
  56. package/node_modules/entities/escape.js +121 -0
  57. package/node_modules/entities/escape.js.map +1 -0
  58. package/node_modules/entities/generated/decode-data-html.d.ts +2 -0
  59. package/node_modules/entities/generated/decode-data-html.d.ts.map +1 -0
  60. package/node_modules/entities/generated/decode-data-html.js +10 -0
  61. package/node_modules/entities/generated/decode-data-html.js.map +1 -0
  62. package/node_modules/entities/generated/decode-data-xml.d.ts +2 -0
  63. package/node_modules/entities/generated/decode-data-xml.d.ts.map +1 -0
  64. package/node_modules/entities/generated/decode-data-xml.js +10 -0
  65. package/node_modules/entities/generated/decode-data-xml.js.map +1 -0
  66. package/node_modules/entities/generated/encode-html.d.ts +8 -0
  67. package/node_modules/entities/generated/encode-html.d.ts.map +1 -0
  68. package/node_modules/entities/generated/encode-html.js +13 -0
  69. package/node_modules/entities/generated/encode-html.js.map +1 -0
  70. package/node_modules/entities/index.d.ts +96 -0
  71. package/node_modules/entities/index.d.ts.map +1 -0
  72. package/node_modules/entities/index.js +131 -0
  73. package/node_modules/entities/index.js.map +1 -0
  74. package/node_modules/entities/package.json +3 -0
  75. package/node_modules/parse5/common/doctype.d.ts +4 -0
  76. package/node_modules/parse5/common/doctype.js +118 -0
  77. package/node_modules/parse5/common/error-codes.d.ts +67 -0
  78. package/node_modules/parse5/common/error-codes.js +66 -0
  79. package/node_modules/parse5/common/foreign-content.d.ts +9 -0
  80. package/node_modules/parse5/common/foreign-content.js +237 -0
  81. package/node_modules/parse5/common/html.d.ts +289 -0
  82. package/node_modules/parse5/common/html.js +528 -0
  83. package/node_modules/parse5/common/token.d.ts +84 -0
  84. package/node_modules/parse5/common/token.js +24 -0
  85. package/node_modules/parse5/common/unicode.d.ts +42 -0
  86. package/node_modules/parse5/common/unicode.js +70 -0
  87. package/node_modules/parse5/index.d.ts +71 -0
  88. package/node_modules/parse5/index.js +54 -0
  89. package/node_modules/parse5/package.json +1 -0
  90. package/node_modules/parse5/parser/formatting-element-list.d.ts +36 -0
  91. package/node_modules/parse5/parser/formatting-element-list.js +114 -0
  92. package/node_modules/parse5/parser/index.d.ts +221 -0
  93. package/node_modules/parse5/parser/index.js +3240 -0
  94. package/node_modules/parse5/parser/open-element-stack.d.ts +53 -0
  95. package/node_modules/parse5/parser/open-element-stack.js +328 -0
  96. package/node_modules/parse5/serializer/index.d.ts +60 -0
  97. package/node_modules/parse5/serializer/index.js +172 -0
  98. package/node_modules/parse5/tokenizer/index.d.ts +247 -0
  99. package/node_modules/parse5/tokenizer/index.js +2714 -0
  100. package/node_modules/parse5/tokenizer/preprocessor.d.ts +36 -0
  101. package/node_modules/parse5/tokenizer/preprocessor.js +200 -0
  102. package/node_modules/parse5/tree-adapters/default.d.ts +84 -0
  103. package/node_modules/parse5/tree-adapters/default.js +176 -0
  104. package/node_modules/parse5/tree-adapters/interface.d.ts +255 -0
  105. package/node_modules/parse5/tree-adapters/interface.js +2 -0
  106. package/package.json +7 -1
@@ -7,6 +7,57 @@ 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
9
  import type { AppAuthMode, AppControllerMode, AppHostingMode, AppVersionResponse, AppVersionSummary, AppVersionVisibility, ReviewState } from './version.js';
10
+ export declare const ACQUISITION_ATTRIBUTION_TYPES: readonly ["install", "reengagement", "web_visit"];
11
+ export type AcquisitionAttributionType = typeof ACQUISITION_ATTRIBUTION_TYPES[number];
12
+ export declare const ACQUISITION_PLATFORMS: readonly ["ios", "android", "web"];
13
+ export type AcquisitionPlatform = typeof ACQUISITION_PLATFORMS[number];
14
+ export interface AcquisitionAttributionPayload {
15
+ schemaVersion: 1;
16
+ id: string;
17
+ attributionType: AcquisitionAttributionType;
18
+ platform: AcquisitionPlatform;
19
+ attributionProvider: string;
20
+ mediaSource?: string | null;
21
+ medium?: string | null;
22
+ campaignId?: string | null;
23
+ campaignName?: string | null;
24
+ adGroupId?: string | null;
25
+ adGroupName?: string | null;
26
+ creativeId?: string | null;
27
+ creativeName?: string | null;
28
+ clickIdType?: string | null;
29
+ clickId?: string | null;
30
+ analyticsClientId?: string | null;
31
+ term?: string | null;
32
+ content?: string | null;
33
+ landingPath?: string | null;
34
+ referrer?: string | null;
35
+ targetType?: string | null;
36
+ targetId?: string | null;
37
+ isOrganic: boolean;
38
+ touchpointAt?: string | null;
39
+ attributedAt: string;
40
+ metadata?: Record<string, string> | null;
41
+ }
42
+ export interface AcquisitionAttributionRequest extends AcquisitionAttributionPayload {
43
+ clientInstanceId: string;
44
+ }
45
+ export interface AcquisitionAttributionResponse {
46
+ saved: true;
47
+ id: string;
48
+ }
49
+ export interface AcquisitionFeedContext {
50
+ schemaVersion: 1;
51
+ id: string;
52
+ source: string;
53
+ targetType: 'game';
54
+ targetId: string;
55
+ }
56
+ export interface AcquisitionFeedAcknowledgement {
57
+ contextId: string;
58
+ targetId: string;
59
+ applied: boolean;
60
+ }
10
61
  export interface CreateAppRequest {
11
62
  name: string;
12
63
  displayName?: string;
@@ -138,7 +189,7 @@ export type JsonValue = null | boolean | number | string | JsonValue[] | {
138
189
  };
139
190
  export declare const AGENT_TASK_CREATOR_FEEDBACK_STATUS_VALUES: readonly ["UNSEEN", "VIEWED", "PLAYED", "APPROVED", "DISAPPROVED"];
140
191
  export type AgentTaskCreatorFeedbackStatus = typeof AGENT_TASK_CREATOR_FEEDBACK_STATUS_VALUES[number];
141
- export declare const AGENT_TASK_KIND_VALUES: readonly ["NEW_GAME", "REMIX_GAME", "GAME_UPDATE", "GAME_REVIEW", "GAME_EVAL"];
192
+ export declare const AGENT_TASK_KIND_VALUES: readonly ["NEW_GAME", "STATIC_GAME", "REMIX_GAME", "GAME_UPDATE", "GAME_REVIEW", "GAME_EVAL"];
142
193
  export type AgentTaskKind = typeof AGENT_TASK_KIND_VALUES[number];
143
194
  export declare const AGENT_EXECUTION_TARGET_VALUES: readonly ["FIRST_PARTY", "PERSONAL"];
144
195
  export type AgentExecutionTarget = typeof AGENT_EXECUTION_TARGET_VALUES[number];
@@ -457,6 +508,20 @@ export interface CreateNewGameAgentTaskResponse {
457
508
  task: AgentTaskResponse;
458
509
  events: AgentTaskEventResponse[];
459
510
  }
511
+ export interface CreateStaticGameAgentTaskRequest {
512
+ target: 'FIRST_PARTY';
513
+ agent?: AgentRuntime;
514
+ model?: string;
515
+ agentPreference?: AgentTaskAgentPreference;
516
+ prompt: string;
517
+ surfaceContext?: AgentTaskSurfaceContextRequest;
518
+ inputs?: AgentTaskInput[];
519
+ agentBundleSha: string;
520
+ }
521
+ export interface CreateStaticGameAgentTaskResponse {
522
+ task: AgentTaskResponse;
523
+ events: AgentTaskEventResponse[];
524
+ }
460
525
  export interface CreateRemixGameAgentTaskRequest {
461
526
  target: AgentExecutionTarget;
462
527
  agent?: AgentRuntime;
@@ -500,6 +565,112 @@ export interface CreateGameEvalAgentTaskResponse {
500
565
  task: AgentTaskResponse;
501
566
  events: AgentTaskEventResponse[];
502
567
  }
568
+ export declare const ARENA_ROUND_STATUS_VALUES: readonly ["DRAFT", "ACTIVE", "CLOSED"];
569
+ export type ArenaRoundStatus = typeof ARENA_ROUND_STATUS_VALUES[number];
570
+ export declare const ARENA_HARNESS_VALUES: readonly ["BARE", "PLAYDROP"];
571
+ export type ArenaHarness = typeof ARENA_HARNESS_VALUES[number];
572
+ export declare const ARENA_VOTE_CHOICE_VALUES: readonly ["A", "B"];
573
+ export type ArenaVoteChoice = typeof ARENA_VOTE_CHOICE_VALUES[number];
574
+ export interface AdminArenaEntryInput {
575
+ slot: string;
576
+ appVersionId: number;
577
+ creationTaskId: number;
578
+ harness: ArenaHarness;
579
+ agent: AgentRuntime;
580
+ model: string;
581
+ reasoningEffort?: string | null;
582
+ provenance: Record<string, unknown>;
583
+ judgeSummary?: ArenaEntryJudgeSummary;
584
+ }
585
+ export interface ArenaEntryJudgeSummary {
586
+ rankPointsTotal: number;
587
+ dimensionRankPointsTotal: Record<GameEvalDimension, number>;
588
+ judgeReplicaCount: number;
589
+ overallScores?: number[];
590
+ }
591
+ export interface CreateAdminArenaRoundRequest {
592
+ slug: string;
593
+ title: string;
594
+ prompt: string;
595
+ primarySurface: AppSurface;
596
+ status?: ArenaRoundStatus;
597
+ config: Record<string, unknown>;
598
+ entries: AdminArenaEntryInput[];
599
+ }
600
+ export interface ActivateAdminArenaRoundsRequest {
601
+ roundIds: number[];
602
+ }
603
+ export interface ArenaGameSide {
604
+ playPath: string;
605
+ }
606
+ export interface ArenaMatchup {
607
+ matchupToken: string;
608
+ prompt: string;
609
+ gameA: ArenaGameSide;
610
+ gameB: ArenaGameSide;
611
+ }
612
+ export interface ArenaRevealedEntry {
613
+ harness: ArenaHarness;
614
+ agent: AgentRuntime;
615
+ model: string;
616
+ reasoningEffort: string | null;
617
+ aiJudgeOverall?: {
618
+ average: number;
619
+ scores: number[];
620
+ };
621
+ }
622
+ export interface ArenaLeaderboardEntry {
623
+ rank: number;
624
+ harness: ArenaHarness;
625
+ agent: AgentRuntime;
626
+ model: string;
627
+ reasoningEffort: string | null;
628
+ wins: number;
629
+ losses: number;
630
+ voteCount: number;
631
+ score: number;
632
+ }
633
+ export interface ArenaAiLeaderboardEntry {
634
+ rank: number;
635
+ harness: ArenaHarness;
636
+ agent: AgentRuntime;
637
+ model: string;
638
+ reasoningEffort: string | null;
639
+ score: number;
640
+ gameCount: number;
641
+ judgeReplicaCount: number;
642
+ }
643
+ export type ArenaAiLeaderboardMetric = 'overall' | GameEvalDimension;
644
+ export type ArenaAiLeaderboards = Record<ArenaAiLeaderboardMetric, ArenaAiLeaderboardEntry[]>;
645
+ export interface ArenaResponse {
646
+ matchups: ArenaMatchup[];
647
+ leaderboard: ArenaLeaderboardEntry[];
648
+ }
649
+ export interface AdminArenaAiLeaderboardsResponse {
650
+ aiLeaderboards: ArenaAiLeaderboards;
651
+ }
652
+ export interface CreateArenaVoteRequest {
653
+ matchupToken: string;
654
+ choice: ArenaVoteChoice;
655
+ comment?: string | null;
656
+ }
657
+ export interface CreateArenaVoteResponse {
658
+ gameA: ArenaRevealedEntry;
659
+ gameB: ArenaRevealedEntry;
660
+ yourPick: ArenaVoteChoice;
661
+ }
662
+ export interface AdminArenaRoundResponse {
663
+ round: {
664
+ id: number;
665
+ slug: string;
666
+ status: ArenaRoundStatus;
667
+ entryCount: number;
668
+ };
669
+ }
670
+ export interface ActivateAdminArenaRoundsResponse {
671
+ activatedRoundIds: number[];
672
+ closedRoundIds: number[];
673
+ }
503
674
  export interface AgentTaskDetailResponse {
504
675
  task: AgentTaskResponse;
505
676
  }
@@ -810,6 +981,7 @@ export interface WorkerSubmitAgentTaskReviewRequest {
810
981
  reviewState: ReviewState;
811
982
  reviewMessage: string;
812
983
  creatorFeedback: string | null;
984
+ platformFeedback?: string;
813
985
  nextSteps?: AgentTaskNextStepSuggestion[];
814
986
  evidenceFiles?: Array<{
815
987
  name: string;
@@ -905,6 +1077,7 @@ export interface WorkerCompleteAgentTaskRequest {
905
1077
  result?: Record<string, unknown>;
906
1078
  summary?: string;
907
1079
  nextSteps?: AgentTaskNextStepSuggestion[];
1080
+ platformFeedback?: string;
908
1081
  tokensUsed?: number | null;
909
1082
  }
910
1083
  export interface WorkerFailAgentTaskRequest {
@@ -914,6 +1087,7 @@ export interface WorkerFailAgentTaskRequest {
914
1087
  error: string;
915
1088
  terminalReason: AgentTaskTerminalReason;
916
1089
  result?: Record<string, unknown>;
1090
+ platformFeedback?: string;
917
1091
  }
918
1092
  export interface AdminAgentTasksResponse {
919
1093
  tasks: AgentTaskResponse[];
@@ -1052,7 +1226,8 @@ export interface CreatorGameShareResponse {
1052
1226
  }
1053
1227
  export interface CreatorGameCreatorFeedbackStatusRequest {
1054
1228
  appVersionId: number;
1055
- creatorFeedbackStatus: AgentTaskCreatorFeedbackStatus;
1229
+ creatorFeedbackStatus: Extract<AgentTaskCreatorFeedbackStatus, 'PLAYED' | 'APPROVED' | 'DISAPPROVED'>;
1230
+ comment?: string;
1056
1231
  }
1057
1232
  export interface CreatorGameCreatorFeedbackStatusResponse {
1058
1233
  success: true;
@@ -1934,7 +2109,9 @@ export interface PaginationMeta {
1934
2109
  }
1935
2110
  export declare const FEEDBACK_CLIENT_VALUES: readonly ["cli", "web", "games-ios", "music-ios", "games-android", "mac", "windows-playdrop", "other"];
1936
2111
  export type FeedbackClient = typeof FEEDBACK_CLIENT_VALUES[number];
1937
- export declare const FEEDBACK_CATEGORY_VALUES: readonly ["bug", "feature", "question", "content", "account", "other"];
2112
+ export declare const MANUAL_FEEDBACK_CATEGORY_VALUES: readonly ["bug", "feature", "question", "content", "account", "other"];
2113
+ export type ManualFeedbackCategory = typeof MANUAL_FEEDBACK_CATEGORY_VALUES[number];
2114
+ export declare const FEEDBACK_CATEGORY_VALUES: readonly ["bug", "feature", "question", "content", "account", "other", "creator-task", "worker-task", "daily-drop-idea"];
1938
2115
  export type FeedbackCategory = typeof FEEDBACK_CATEGORY_VALUES[number];
1939
2116
  export declare const FEEDBACK_STATUS_VALUES: readonly ["sent", "ignored", "planned", "done"];
1940
2117
  export type FeedbackStatus = typeof FEEDBACK_STATUS_VALUES[number];
@@ -1942,6 +2119,7 @@ export interface FeedbackEntry {
1942
2119
  id: number;
1943
2120
  userId: number | null;
1944
2121
  username: string | null;
2122
+ agentTaskId: number | null;
1945
2123
  client: FeedbackClient;
1946
2124
  category: FeedbackCategory;
1947
2125
  version: string | null;
@@ -1950,18 +2128,30 @@ export interface FeedbackEntry {
1950
2128
  comment: string;
1951
2129
  createdAt: string;
1952
2130
  }
2131
+ export interface FeedbackAgentTaskContext {
2132
+ id: number;
2133
+ kind: AgentTaskKind;
2134
+ subject: AgentTaskSubjectResponse;
2135
+ agent: AgentRuntime;
2136
+ model: string;
2137
+ agentBundleSha: string | null;
2138
+ workerCliVersion: string | null;
2139
+ platformReleaseSha: string | null;
2140
+ creatorFeedbackStatus: AgentTaskCreatorFeedbackStatus;
2141
+ }
1953
2142
  export interface AdminFeedbackEntry extends FeedbackEntry {
1954
2143
  email: string | null;
1955
2144
  status: FeedbackStatus;
1956
2145
  internalNote: string | null;
1957
2146
  statusUpdatedAt: string | null;
1958
2147
  statusUpdatedBy: number | null;
2148
+ agentTask: FeedbackAgentTaskContext | null;
1959
2149
  }
1960
2150
  export interface SubmitFeedbackRequest {
1961
2151
  title: string;
1962
2152
  comment: string;
1963
2153
  client: FeedbackClient;
1964
- category?: FeedbackCategory;
2154
+ category?: ManualFeedbackCategory;
1965
2155
  email?: string | null;
1966
2156
  version?: string | null;
1967
2157
  build?: string | null;
@@ -2753,6 +2943,7 @@ export type HomeCollection = AppsHomeCollection | CreatorsHomeCollection | TagsH
2753
2943
  export interface HomeCollectionsResponse {
2754
2944
  section: 'games';
2755
2945
  collections: HomeCollection[];
2946
+ acquisitionFeed?: AcquisitionFeedAcknowledgement;
2756
2947
  }
2757
2948
  export interface HomeCollectionPageResponse {
2758
2949
  section: 'games';