@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.
Files changed (73) hide show
  1. package/config/client-meta.json +2 -2
  2. package/dist/apiClient.d.ts +10 -0
  3. package/dist/apiClient.js +55 -2
  4. package/dist/appUrls.d.ts +1 -0
  5. package/dist/appUrls.js +9 -0
  6. package/dist/apps/build.js +39 -28
  7. package/dist/apps/index.d.ts +1 -0
  8. package/dist/apps/index.js +2 -0
  9. package/dist/apps/launchCheck.d.ts +2 -0
  10. package/dist/apps/launchCheck.js +31 -6
  11. package/dist/apps/registration.d.ts +1 -0
  12. package/dist/apps/registration.js +1 -0
  13. package/dist/apps/upload.d.ts +1 -0
  14. package/dist/apps/upload.js +4 -17
  15. package/dist/captureRuntime.d.ts +14 -0
  16. package/dist/captureRuntime.js +329 -0
  17. package/dist/catalogue.d.ts +4 -2
  18. package/dist/catalogue.js +50 -7
  19. package/dist/commandContext.js +61 -4
  20. package/dist/commands/capture.d.ts +1 -0
  21. package/dist/commands/capture.js +30 -13
  22. package/dist/commands/captureRemote.d.ts +2 -0
  23. package/dist/commands/captureRemote.js +90 -0
  24. package/dist/commands/create.d.ts +0 -1
  25. package/dist/commands/create.js +2 -151
  26. package/dist/commands/creations.d.ts +0 -13
  27. package/dist/commands/creations.js +0 -141
  28. package/dist/commands/dev.d.ts +2 -1
  29. package/dist/commands/dev.js +23 -6
  30. package/dist/commands/devServer.js +3 -1
  31. package/dist/commands/generation.d.ts +1 -0
  32. package/dist/commands/generation.js +274 -0
  33. package/dist/commands/review.d.ts +46 -0
  34. package/dist/commands/review.js +353 -0
  35. package/dist/commands/upload.d.ts +27 -1
  36. package/dist/commands/upload.js +962 -21
  37. package/dist/commands/validate.js +5 -0
  38. package/dist/commands/worker/runtime.d.ts +81 -0
  39. package/dist/commands/worker/runtime.js +458 -0
  40. package/dist/commands/worker.d.ts +158 -0
  41. package/dist/commands/worker.js +2626 -0
  42. package/dist/config.d.ts +2 -0
  43. package/dist/config.js +23 -0
  44. package/dist/index.js +116 -30
  45. package/dist/shellProbe.d.ts +1 -1
  46. package/dist/shellProbe.js +3 -3
  47. package/dist/workspaceAuth.d.ts +3 -0
  48. package/dist/workspaceAuth.js +14 -0
  49. package/node_modules/@playdrop/api-client/dist/client.d.ts +36 -15
  50. package/node_modules/@playdrop/api-client/dist/client.d.ts.map +1 -1
  51. package/node_modules/@playdrop/api-client/dist/client.js +2 -2
  52. package/node_modules/@playdrop/api-client/dist/domains/admin.d.ts +5 -2
  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 +51 -3
  55. package/node_modules/@playdrop/api-client/dist/domains/agent-tasks.d.ts +75 -0
  56. package/node_modules/@playdrop/api-client/dist/domains/agent-tasks.d.ts.map +1 -0
  57. package/node_modules/@playdrop/api-client/dist/domains/agent-tasks.js +478 -0
  58. package/node_modules/@playdrop/api-client/dist/index.d.ts +36 -15
  59. package/node_modules/@playdrop/api-client/dist/index.d.ts.map +1 -1
  60. package/node_modules/@playdrop/api-client/dist/index.js +153 -42
  61. package/node_modules/@playdrop/config/client-meta.json +2 -2
  62. package/node_modules/@playdrop/types/dist/api.d.ts +662 -75
  63. package/node_modules/@playdrop/types/dist/api.d.ts.map +1 -1
  64. package/node_modules/@playdrop/types/dist/api.js +100 -9
  65. package/node_modules/@playdrop/types/dist/app.d.ts +2 -0
  66. package/node_modules/@playdrop/types/dist/app.d.ts.map +1 -1
  67. package/node_modules/@playdrop/types/dist/app.js +3 -0
  68. package/node_modules/@playdrop/types/dist/version.d.ts +1 -0
  69. package/node_modules/@playdrop/types/dist/version.d.ts.map +1 -1
  70. package/package.json +2 -1
  71. package/node_modules/@playdrop/api-client/dist/domains/game-ideas.d.ts +0 -46
  72. package/node_modules/@playdrop/api-client/dist/domains/game-ideas.d.ts.map +0 -1
  73. package/node_modules/@playdrop/api-client/dist/domains/game-ideas.js +0 -177
@@ -0,0 +1,158 @@
1
+ import type { ApiClient } from '@playdrop/api-client';
2
+ import { type AgentExecutionTarget, type AgentRuntime, type AgentTaskKind, type AgentTaskResponse, type AgentWorkerCapabilities, type WorkerAgentTaskAssignmentResponse, type WorkerAgentTaskBaseSourceResponse, type WorkerAgentTaskWorkspaceFileResponse, type WorkerClaimAgentTaskResponse } from '@playdrop/types';
3
+ import { type WorkerPlaydropAssetRequirement } from './upload';
4
+ import { type LoggedProcessResult, type LoggedProcessTranscriptChunk } from './worker/runtime';
5
+ export { DEFAULT_CODEX_TIMEOUT_MS, DEFAULT_WORKER_TOKEN_CAP, assertWorkerTokenUsageWithinCap, buildCodexExecArgs, buildClaudeExecArgs, buildClaudePermissionSettings, buildWorkerChildEnv, extractAgentTokenUsage, extractCodexTokensUsed, readEnvBoolean, readCodexSandboxMode, runLoggedProcess, } from './worker/runtime';
6
+ export type { AgentTokenUsage, LoggedProcessResult, LoggedProcessTranscriptChunk, } from './worker/runtime';
7
+ export declare const WORKER_SESSION_EXPIRED_MESSAGE = "worker session expired: run \"playdrop auth login\" and start the worker again";
8
+ export declare const WORKER_CONTEXT_COMMAND_NOT_ALLOWED_MESSAGE = "worker_context_command_not_allowed: inside a PlayDrop worker task only task progress, task upload/done/fail, project validation/build/dev/capture, read-only catalogue/documentation lookup, and PlayDrop AI generation are permitted.";
9
+ type WorkerStartOptions = {
10
+ env?: string;
11
+ once?: boolean;
12
+ name?: string;
13
+ };
14
+ type TaskReportOptions = {
15
+ env?: string;
16
+ phase?: string;
17
+ pct?: string | number;
18
+ message?: string;
19
+ kind?: string;
20
+ };
21
+ type TaskCatalogueReportOptions = {
22
+ env?: string;
23
+ file?: string;
24
+ message?: string;
25
+ };
26
+ type TaskCompleteOptions = {
27
+ env?: string;
28
+ };
29
+ type TaskUploadOptions = {
30
+ env?: string;
31
+ };
32
+ type TaskFailOptions = {
33
+ env?: string;
34
+ message?: string;
35
+ };
36
+ type TaskSubmitReviewOptions = {
37
+ env?: string;
38
+ state?: string;
39
+ messageFile?: string;
40
+ creatorFeedbackFile?: string;
41
+ evidenceDir?: string;
42
+ };
43
+ export type WorkerHealthAlertInput = {
44
+ state: 'started' | 'stopped' | 'crashed';
45
+ env: string;
46
+ workerName: string;
47
+ taskId?: number | null;
48
+ detail?: string | null;
49
+ };
50
+ type WorkerTaskState = {
51
+ taskId: number;
52
+ env: string;
53
+ target: AgentExecutionTarget;
54
+ leaseExpiresAt: string | null;
55
+ claimedAt: string;
56
+ };
57
+ export declare function allocateWorkerDevPort(input: {
58
+ activePorts: ReadonlySet<number>;
59
+ basePort?: number;
60
+ maxParallelTasks?: number;
61
+ }): number;
62
+ export declare function isWorkerContextCommandAllowed(argv: string[]): boolean;
63
+ export declare function resolveWorkerExecutionTargetFromRole(role: unknown): AgentExecutionTarget;
64
+ export declare function resolveWorkerClaimTaskAssignment(claim: WorkerClaimAgentTaskResponse): WorkerAgentTaskAssignmentResponse | null;
65
+ export declare function nextClaimBackoffMs(currentMs: number): number;
66
+ export declare function claimBackoffDelayMs(currentMs: number, random?: () => number): number;
67
+ export declare function resolveWorkerHomeDir(): string;
68
+ export declare function hasAgentTaskUploadedArtifact(task: Pick<AgentTaskResponse, 'appId' | 'appVersionId'>): boolean;
69
+ export declare function appendWorkerTranscriptChunks(input: {
70
+ client: Pick<ApiClient, 'workerAppendAgentTaskTranscriptChunks'>;
71
+ taskId: number;
72
+ workerKey: string;
73
+ leaseToken: string;
74
+ chunks: LoggedProcessTranscriptChunk[];
75
+ batchSize?: number;
76
+ }): Promise<void>;
77
+ export declare function assertTaskUploadResultMatchesContext(input: {
78
+ taskContext: {
79
+ taskId: number;
80
+ creatorUsername: string;
81
+ outputAppName?: string | null;
82
+ outputVersion: string;
83
+ };
84
+ uploadResult: {
85
+ taskId: number;
86
+ appName: string;
87
+ version: string;
88
+ creatorUsername: string;
89
+ };
90
+ }): void;
91
+ export declare function stageAssignmentWorkspaceFiles(workspaceDir: string, files: readonly WorkerAgentTaskWorkspaceFileResponse[]): Promise<void>;
92
+ export declare function resolvePlaydropPluginRoot(input?: {
93
+ homeDir?: string;
94
+ env?: NodeJS.ProcessEnv;
95
+ }): string;
96
+ export declare function stagePlaydropPluginReferences(input: {
97
+ workspaceDir: string;
98
+ pluginRoot: string;
99
+ kind: AgentTaskKind;
100
+ }): Promise<string[]>;
101
+ export declare function discoverWorkerProjectRoot(workspaceDir: string): string;
102
+ export declare function readWorkerTaskState(): WorkerTaskState | null;
103
+ export declare function buildWorkerHealthAlertText(input: WorkerHealthAlertInput): string;
104
+ export declare function isWorkerAuthFailureError(error: unknown): boolean;
105
+ export declare function classifyWorkerEventDrainError(error: unknown): 'session_expired' | 'lease_invalid' | null;
106
+ export declare function assertWorkerClaimErrorRetryable(error: unknown): void;
107
+ export declare function resolvePlaydropAssetRequirementFromText(value: unknown): WorkerPlaydropAssetRequirement | null;
108
+ export declare function loadWorkerEnvFile(envName: string | undefined, cwd?: string): string | null;
109
+ export declare function buildWorkerCapabilities(input: string | {
110
+ codexVersion?: string | null;
111
+ codexAuthenticated?: boolean | null;
112
+ claudeVersion?: string | null;
113
+ claudeAuthenticated?: boolean | null;
114
+ npmVersion?: string | null;
115
+ playwright?: {
116
+ version?: string;
117
+ chromiumInstalled?: boolean;
118
+ } | null;
119
+ maxParallelTasks?: number | null;
120
+ runningTaskCount?: number | null;
121
+ }): AgentWorkerCapabilities;
122
+ export declare function buildWorkerClaimBody(input: {
123
+ workerKey: string;
124
+ capabilities: AgentWorkerCapabilities;
125
+ runningTaskCount?: number;
126
+ }): {
127
+ workerKey: string;
128
+ capabilities: AgentWorkerCapabilities;
129
+ };
130
+ export type WorkerBaseApp = {
131
+ appName: string;
132
+ version: string;
133
+ appId: number;
134
+ appVersionId: number;
135
+ };
136
+ export declare function resolveWorkerBaseSource(value: WorkerAgentTaskBaseSourceResponse | null | undefined): WorkerBaseApp;
137
+ export declare function extractZipArchive(zipBuffer: Uint8Array, targetDir: string): string[];
138
+ export declare function readWorkerProjectVersion(projectDir: string, appName: string): string;
139
+ export declare function buildCataloguePreviewPayload(cataloguePath: string, workspaceDir?: string): Record<string, unknown>;
140
+ export declare function assertWorkerProjectVersionBumped(input: {
141
+ baseVersion: string;
142
+ projectVersion: string;
143
+ appName: string;
144
+ }): void;
145
+ export declare function buildAgentFailureCode(agent: AgentRuntime, result: LoggedProcessResult): string;
146
+ export declare function describeAgentFailureForEvent(errorCode: string): string;
147
+ export declare function startWorker(options?: WorkerStartOptions): Promise<void>;
148
+ export declare function reportTask(options: TaskReportOptions): Promise<void>;
149
+ export declare function reportCatalogueTask(options: TaskCatalogueReportOptions): Promise<void>;
150
+ export declare function uploadTask(options?: TaskUploadOptions): Promise<void>;
151
+ export declare function completeTask(options: TaskCompleteOptions): Promise<void>;
152
+ export declare function readReviewEvidenceFiles(evidenceDir: string | undefined): Array<{
153
+ name: string;
154
+ contentType: string;
155
+ contentBase64: string;
156
+ }>;
157
+ export declare function submitReviewTask(options: TaskSubmitReviewOptions): Promise<void>;
158
+ export declare function failTask(options: TaskFailOptions): Promise<void>;