@playdrop/playdrop-cli 0.17.17 → 0.17.18

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.
@@ -1,8 +1,8 @@
1
1
  {
2
- "version": "0.17.17",
3
- "build": 2,
4
- "runtimeSdkVersion": "0.17.17",
5
- "runtimeSdkBuild": 2,
2
+ "version": "0.17.18",
3
+ "build": 1,
4
+ "runtimeSdkVersion": "0.17.18",
5
+ "runtimeSdkBuild": 1,
6
6
  "clients": {
7
7
  "all": {
8
8
  "minimumVersion": "0.7.4"
@@ -10,6 +10,7 @@ export type UploadCommandOptions = {
10
10
  };
11
11
  export declare function resolveUploadOwner(actorUsername: string | null | undefined, workspaceOwnerUsername: string | null | undefined): string;
12
12
  export declare function resolveDefaultUploadCreator(owner: string | null | undefined, actorUsername: string | null | undefined): string;
13
+ export declare function buildAppDetailUrl(base: string, creator: string, task: AppTask): string;
13
14
  export declare function upload(pathOrName: string, options?: UploadCommandOptions): Promise<void>;
14
15
  export type WorkerAppPublishInput = {
15
16
  client: ApiClient;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolveUploadOwner = resolveUploadOwner;
4
4
  exports.resolveDefaultUploadCreator = resolveDefaultUploadCreator;
5
+ exports.buildAppDetailUrl = buildAppDetailUrl;
5
6
  exports.upload = upload;
6
7
  exports.assertAgentPrimarySurfaceContract = assertAgentPrimarySurfaceContract;
7
8
  exports.assertAgentNewGamePlaytestContract = assertAgentNewGamePlaytestContract;
@@ -727,11 +728,13 @@ function resolveAppTaskLocalDependencies(task, node, state) {
727
728
  },
728
729
  };
729
730
  }
730
- function buildAppOverviewUrl(base, creator, task) {
731
+ function buildAppDetailUrl(base, creator, task) {
731
732
  const typeSlug = (0, appUrls_1.getAppTypeSlug)(task.type ?? "GAME");
732
733
  const encodedCreator = encodeURIComponent(creator);
733
734
  const encodedName = encodeURIComponent(task.name);
734
- return `${base}/creators/${encodedCreator}/apps/${typeSlug}/${encodedName}/overview`;
735
+ return typeSlug === "game"
736
+ ? `${base}/@${encodedCreator}/${encodedName}`
737
+ : `${base}/creators/${encodedCreator}/apps/${typeSlug}/${encodedName}`;
735
738
  }
736
739
  function buildAssetOverviewUrl(base, creator, name) {
737
740
  const encodedCreator = encodeURIComponent(creator);
@@ -749,7 +752,7 @@ function appendOverviewLink(entry, task, portalBase, creator) {
749
752
  }
750
753
  let url = null;
751
754
  if (task.kind === "app") {
752
- url = buildAppOverviewUrl(portalBase, creator, task);
755
+ url = buildAppDetailUrl(portalBase, creator, task);
753
756
  }
754
757
  else if (task.kind === "asset-spec") {
755
758
  url = null;
@@ -8093,15 +8093,19 @@ async function failTask(options) {
8093
8093
  }
8094
8094
  const platformFeedback = readPlatformFeedbackFile(options.platformFeedbackFile, node_process_1.default.cwd());
8095
8095
  const classifiedMessage = (0, types_1.classifyAgentTaskTerminalReason)(message, "agent");
8096
- const terminalReason = uploadFailure?.terminalReason ?? {
8097
- ...classifiedMessage,
8096
+ const terminalReason = {
8097
+ ...(uploadFailure?.terminalReason ?? classifiedMessage),
8098
8098
  message,
8099
- retryable: options.retryableWithSameInput === true,
8099
+ retryable: uploadFailure?.terminalReason.retryable ?? (options.retryableWithSameInput === true),
8100
8100
  source: "agent",
8101
8101
  };
8102
- // An unclassified upload error must not discard an explicit retry decision.
8103
- // Specific validation and provider classifications remain authoritative.
8104
- if (uploadFailure && terminalReason.category === "agent_failure" && options.retryableWithSameInput === true) {
8102
+ // Keep the recorded diagnosis, but do not discard the creator explanation.
8103
+ // A requested retry may repair a loading failure; other validation stays blocked.
8104
+ if (uploadFailure &&
8105
+ options.retryableWithSameInput === true &&
8106
+ (terminalReason.category === "agent_failure" ||
8107
+ terminalReason.code === "hosted_load_check_failed" ||
8108
+ terminalReason.code === "agent_task_playtest_smoke_check_runtime_failed")) {
8105
8109
  terminalReason.retryable = true;
8106
8110
  }
8107
8111
  await ctx.client.workerFailAgentTask(taskContext.taskId, {
@@ -1,8 +1,8 @@
1
1
  {
2
- "version": "0.17.17",
3
- "build": 2,
4
- "runtimeSdkVersion": "0.17.17",
5
- "runtimeSdkBuild": 2,
2
+ "version": "0.17.18",
3
+ "build": 1,
4
+ "runtimeSdkVersion": "0.17.18",
5
+ "runtimeSdkBuild": 1,
6
6
  "clients": {
7
7
  "all": {
8
8
  "minimumVersion": "0.7.4"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@playdrop/playdrop-cli",
3
- "version": "0.17.17",
3
+ "version": "0.17.18",
4
4
  "description": "Official Playdrop CLI for publishing browser games, creator apps, and AI-generated game assets on playdrop.ai",
5
5
  "homepage": "https://www.playdrop.ai",
6
6
  "repository": {