@wix/ditto-codegen-public 1.0.435 → 1.0.437

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 (2) hide show
  1. package/dist/out.js +111 -99
  2. package/package.json +2 -2
package/dist/out.js CHANGED
@@ -13294,6 +13294,7 @@ var require_checkpoint = __commonJS({
13294
13294
  return message.slice(0, MAX_COMMIT_MESSAGE_LENGTH - TRUNCATION_SUFFIX.length) + TRUNCATION_SUFFIX;
13295
13295
  };
13296
13296
  var CHECKPOINT_CONFLICT_CODE = "CHECKPOINT_CONFLICT";
13297
+ var FIX_GIT_CONFLICTS_TASK_KIND = "FIX_GIT_CONFLICTS";
13297
13298
  var useCodeProjectOrchestrator = () => process.env.USE_CODE_PROJECT_ORCHESTRATOR === "true";
13298
13299
  var collaboratorLiveSyncEnabled = () => process.env.STUDIO2_COLLABORATOR_LIVE_SYNC === "true";
13299
13300
  var readApplicationErrorCode = (error) => {
@@ -13410,41 +13411,49 @@ var require_checkpoint = __commonJS({
13410
13411
  } catch (error) {
13411
13412
  if (useCodeProjectOrchestrator() && collaboratorLiveSyncEnabled() && job.siteBranchId && isCheckpointConflict(error)) {
13412
13413
  const files = readConflictedFiles(error);
13413
- try {
13414
- const conflictResolutionJobId = await callResolveCheckpointConflict(orchestratorHttpClient, job.siteBranchId);
13415
- if (!conflictResolutionJobId) {
13416
- throw new Error("resolveCheckpointConflict returned no conflict resolution job id");
13417
- }
13418
- outcome = {
13419
- status: "resolvingGitConflicts",
13420
- conflictResolutionJobId,
13421
- conflictedFiles: files
13422
- };
13423
- await host.jobs.updatePayload({ jobId: job.jobId, taskId: job.taskId }, {
13424
- checkpointStatus: "resolvingGitConflicts",
13425
- conflictResolutionJobId,
13426
- conflictedFiles: files
13427
- }).catch((payloadError) => {
13428
- host.logger.warn("[Checkpoint] failed to publish the resolving-conflicts state", {
13429
- projectId: job.projectId,
13430
- conflictResolutionJobId,
13431
- error: payloadError instanceof Error ? payloadError.message : String(payloadError)
13432
- });
13433
- });
13434
- host.logger.info("[Checkpoint] git conflicts handed to AI resolution", {
13414
+ if (job.kind === FIX_GIT_CONFLICTS_TASK_KIND) {
13415
+ host.logger.warn("[Checkpoint] conflict during a conflict-resolution run, skipping resolve", {
13435
13416
  projectId: job.projectId,
13436
13417
  siteBranchId: job.siteBranchId,
13437
- conflictResolutionJobId,
13438
13418
  files
13439
13419
  });
13440
- return;
13441
- } catch (resolveError) {
13442
- host.logger.error("[Checkpoint] git conflict resolution dispatch failed", {
13443
- projectId: job.projectId,
13444
- siteBranchId: job.siteBranchId,
13445
- files,
13446
- error: resolveError instanceof Error ? resolveError.message : String(resolveError)
13447
- });
13420
+ } else {
13421
+ try {
13422
+ const conflictResolutionJobId = await callResolveCheckpointConflict(orchestratorHttpClient, job.siteBranchId);
13423
+ if (!conflictResolutionJobId) {
13424
+ throw new Error("resolveCheckpointConflict returned no conflict resolution job id");
13425
+ }
13426
+ outcome = {
13427
+ status: "resolvingGitConflicts",
13428
+ conflictResolutionJobId,
13429
+ conflictedFiles: files
13430
+ };
13431
+ await host.jobs.updatePayload({ jobId: job.jobId, taskId: job.taskId }, {
13432
+ checkpointStatus: "resolvingGitConflicts",
13433
+ conflictResolutionJobId,
13434
+ conflictedFiles: files
13435
+ }).catch((payloadError) => {
13436
+ host.logger.warn("[Checkpoint] failed to publish the resolving-conflicts state", {
13437
+ projectId: job.projectId,
13438
+ conflictResolutionJobId,
13439
+ error: payloadError instanceof Error ? payloadError.message : String(payloadError)
13440
+ });
13441
+ });
13442
+ host.logger.info("[Checkpoint] git conflicts handed to AI resolution", {
13443
+ projectId: job.projectId,
13444
+ siteBranchId: job.siteBranchId,
13445
+ conflictResolutionJobId,
13446
+ files
13447
+ });
13448
+ return;
13449
+ } catch (resolveError) {
13450
+ host.logger.error("[Checkpoint] git conflict resolution dispatch failed", {
13451
+ projectId: job.projectId,
13452
+ siteBranchId: job.siteBranchId,
13453
+ files,
13454
+ error: resolveError instanceof Error ? resolveError.message : String(resolveError)
13455
+ });
13456
+ }
13448
13457
  }
13449
13458
  }
13450
13459
  outcome = { status: "failed", error };
@@ -17449,36 +17458,6 @@ var require_OpenCodeOrchestrator = __commonJS({
17449
17458
  }
17450
17459
  });
17451
17460
 
17452
- // dist/flows/codegen-flow-helpers.js
17453
- var require_codegen_flow_helpers = __commonJS({
17454
- "dist/flows/codegen-flow-helpers.js"(exports2) {
17455
- "use strict";
17456
- var __importDefault2 = exports2 && exports2.__importDefault || function(mod) {
17457
- return mod && mod.__esModule ? mod : { "default": mod };
17458
- };
17459
- Object.defineProperty(exports2, "__esModule", { value: true });
17460
- exports2.updateJobPayload = updateJobPayload;
17461
- exports2.updateParentTaskStatus = updateParentTaskStatus;
17462
- exports2.getOutputPath = getOutputPath;
17463
- var path_1 = __importDefault2(require("path"));
17464
- var codeGenerationService_12 = require_codeGenerationService();
17465
- var utils_1 = require_utils9();
17466
- var DEFAULT_OUTPUT_PATH = "generated-app";
17467
- async function updateJobPayload(jobContext, payload) {
17468
- await codeGenerationService_12.codeGenerationService.updateJob(jobContext.jobId, payload);
17469
- }
17470
- async function updateParentTaskStatus(jobContext, status, error) {
17471
- await codeGenerationService_12.codeGenerationService.updateTask(jobContext.jobId, jobContext.taskId, status, {
17472
- ...error ? { error: (0, utils_1.serializeError)(error) } : {}
17473
- });
17474
- }
17475
- function getOutputPath() {
17476
- const outputDir = process.env.OUTPUT_PATH || DEFAULT_OUTPUT_PATH;
17477
- return outputDir.startsWith("/") ? outputDir : path_1.default.join(process.cwd(), outputDir);
17478
- }
17479
- }
17480
- });
17481
-
17482
17461
  // dist/flows/agent-io.js
17483
17462
  var require_agent_io = __commonJS({
17484
17463
  "dist/flows/agent-io.js"(exports2) {
@@ -17539,6 +17518,51 @@ var require_agent_io = __commonJS({
17539
17518
  }
17540
17519
  });
17541
17520
 
17521
+ // dist/flows/codegen-flow-helpers.js
17522
+ var require_codegen_flow_helpers = __commonJS({
17523
+ "dist/flows/codegen-flow-helpers.js"(exports2) {
17524
+ "use strict";
17525
+ var __importDefault2 = exports2 && exports2.__importDefault || function(mod) {
17526
+ return mod && mod.__esModule ? mod : { "default": mod };
17527
+ };
17528
+ Object.defineProperty(exports2, "__esModule", { value: true });
17529
+ exports2.updateJobPayload = updateJobPayload;
17530
+ exports2.buildFailedRunPayload = buildFailedRunPayload;
17531
+ exports2.updateParentTaskStatus = updateParentTaskStatus;
17532
+ exports2.getOutputPath = getOutputPath;
17533
+ var path_1 = __importDefault2(require("path"));
17534
+ var codeGenerationService_12 = require_codeGenerationService();
17535
+ var git_file_changes_1 = require_git_file_changes();
17536
+ var collect_extensions_created_1 = require_collect_extensions_created();
17537
+ var agent_io_1 = require_agent_io();
17538
+ var utils_1 = require_utils9();
17539
+ var DEFAULT_OUTPUT_PATH = "generated-app";
17540
+ async function updateJobPayload(jobContext, payload) {
17541
+ await codeGenerationService_12.codeGenerationService.updateJob(jobContext.jobId, payload);
17542
+ }
17543
+ async function buildFailedRunPayload(error, outputPath, gitBaseline) {
17544
+ const files = await (0, git_file_changes_1.collectGitFileChanges)(outputPath, gitBaseline);
17545
+ const extensions = await (0, collect_extensions_created_1.buildExtensionsJobPayload)(outputPath, files);
17546
+ return {
17547
+ requiredPermissions: [],
17548
+ error,
17549
+ files,
17550
+ ...(0, agent_io_1.readAgentOutput)(outputPath),
17551
+ extensions
17552
+ };
17553
+ }
17554
+ async function updateParentTaskStatus(jobContext, status, error) {
17555
+ await codeGenerationService_12.codeGenerationService.updateTask(jobContext.jobId, jobContext.taskId, status, {
17556
+ ...error ? { error: (0, utils_1.serializeError)(error) } : {}
17557
+ });
17558
+ }
17559
+ function getOutputPath() {
17560
+ const outputDir = process.env.OUTPUT_PATH || DEFAULT_OUTPUT_PATH;
17561
+ return outputDir.startsWith("/") ? outputDir : path_1.default.join(process.cwd(), outputDir);
17562
+ }
17563
+ }
17564
+ });
17565
+
17542
17566
  // dist/opencode-integration/inject-created-by.js
17543
17567
  var require_inject_created_by = __commonJS({
17544
17568
  "dist/opencode-integration/inject-created-by.js"(exports2) {
@@ -22692,6 +22716,7 @@ var require_opencode_init = __commonJS({
22692
22716
  });
22693
22717
  const outputPath = (0, codegen_flow_helpers_12.getOutputPath)();
22694
22718
  const gitBaseline = await (0, git_file_changes_1.captureGitBaseline)(outputPath);
22719
+ store.gitBaseline = gitBaseline;
22695
22720
  const orchestrator = new OpenCodeOrchestrator_1.OpenCodeOrchestrator();
22696
22721
  let caughtError;
22697
22722
  try {
@@ -22752,16 +22777,8 @@ var require_opencode_init = __commonJS({
22752
22777
  } catch (error) {
22753
22778
  caughtError = error;
22754
22779
  const codegenError = (0, ditto_codegen_types_2.toCodegenError)(error);
22755
- const agentOutput = (0, agent_io_1.readAgentOutput)(outputPath);
22756
- const files = await (0, git_file_changes_1.collectGitFileChanges)(outputPath, gitBaseline);
22757
- const extensions = await (0, collect_extensions_created_1.buildExtensionsJobPayload)(outputPath, files);
22758
- await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, {
22759
- requiredPermissions: [],
22760
- error: codegenError,
22761
- files,
22762
- ...agentOutput,
22763
- extensions
22764
- });
22780
+ const failedRunPayload = await (0, codegen_flow_helpers_12.buildFailedRunPayload)(codegenError, outputPath, gitBaseline);
22781
+ await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, failedRunPayload);
22765
22782
  await (0, codegen_flow_helpers_12.updateParentTaskStatus)(localJobContext, ditto_codegen_types_12.Status.FAILED, codegenError);
22766
22783
  const taskCost = orchestrator.lastUsage ? Math.round(orchestrator.lastUsage.cost * 1e6) : void 0;
22767
22784
  await (0, biEvents_1.reportSessionEnd)({
@@ -22770,7 +22787,7 @@ var require_opencode_init = __commonJS({
22770
22787
  taskType: kind,
22771
22788
  taskCost,
22772
22789
  taskStatus: ditto_codegen_types_12.Status.FAILED,
22773
- agentOutput: JSON.stringify({ files }),
22790
+ agentOutput: JSON.stringify({ files: failedRunPayload.files }),
22774
22791
  jobDuration: String(Date.now() - flowStartTime)
22775
22792
  });
22776
22793
  await (0, biEvents_1.reportSessionError)({
@@ -22906,6 +22923,7 @@ var require_opencode_iterate = __commonJS({
22906
22923
  });
22907
22924
  const outputPath = (0, codegen_flow_helpers_12.getOutputPath)();
22908
22925
  const gitBaseline = await (0, git_file_changes_1.captureGitBaseline)(outputPath);
22926
+ store.gitBaseline = gitBaseline;
22909
22927
  const iterationOrchestrator = new OpenCodeIterationOrchestrator_1.OpenCodeIterationOrchestrator();
22910
22928
  let caughtError;
22911
22929
  try {
@@ -22956,16 +22974,8 @@ var require_opencode_iterate = __commonJS({
22956
22974
  } catch (error) {
22957
22975
  caughtError = error;
22958
22976
  const codegenError = (0, ditto_codegen_types_2.toCodegenError)(error);
22959
- const agentOutput = (0, agent_io_1.readAgentOutput)(outputPath);
22960
- const files = await (0, git_file_changes_1.collectGitFileChanges)(outputPath, gitBaseline);
22961
- const extensions = await (0, collect_extensions_created_1.buildExtensionsJobPayload)(outputPath, files);
22962
- await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, {
22963
- requiredPermissions: [],
22964
- error: codegenError,
22965
- files,
22966
- ...agentOutput,
22967
- extensions
22968
- });
22977
+ const failedRunPayload = await (0, codegen_flow_helpers_12.buildFailedRunPayload)(codegenError, outputPath, gitBaseline);
22978
+ await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, failedRunPayload);
22969
22979
  await (0, codegen_flow_helpers_12.updateParentTaskStatus)(localJobContext, ditto_codegen_types_12.Status.FAILED, codegenError);
22970
22980
  const taskCost = iterationOrchestrator.lastUsage ? Math.round(iterationOrchestrator.lastUsage.cost * 1e6) : void 0;
22971
22981
  await (0, biEvents_1.reportSessionEnd)({
@@ -22974,7 +22984,7 @@ var require_opencode_iterate = __commonJS({
22974
22984
  taskType: kind,
22975
22985
  taskCost,
22976
22986
  taskStatus: ditto_codegen_types_12.Status.FAILED,
22977
- agentOutput: JSON.stringify({ files }),
22987
+ agentOutput: JSON.stringify({ files: failedRunPayload.files }),
22978
22988
  jobDuration: String(Date.now() - flowStartTime)
22979
22989
  });
22980
22990
  await (0, biEvents_1.reportSessionError)({
@@ -23104,6 +23114,7 @@ var require_opencode_ask = __commonJS({
23104
23114
  });
23105
23115
  const outputPath = (0, codegen_flow_helpers_12.getOutputPath)();
23106
23116
  const gitBaseline = await (0, git_file_changes_1.captureGitBaseline)(outputPath);
23117
+ store.gitBaseline = gitBaseline;
23107
23118
  const askOrchestrator = new OpenCodeAskOrchestrator_1.OpenCodeAskOrchestrator();
23108
23119
  try {
23109
23120
  (0, cli_listeners_1.attachOrchestratorListeners)(askOrchestrator);
@@ -23284,6 +23295,7 @@ var require_opencode_fix_git_conflicts = __commonJS({
23284
23295
  });
23285
23296
  const outputPath = (0, codegen_flow_helpers_12.getOutputPath)();
23286
23297
  const gitBaseline = await (0, git_file_changes_1.captureGitBaseline)(outputPath);
23298
+ store.gitBaseline = gitBaseline;
23287
23299
  const orchestrator = new OpenCodeGitConflictsOrchestrator_1.OpenCodeGitConflictsOrchestrator();
23288
23300
  let caughtError;
23289
23301
  try {
@@ -23459,6 +23471,7 @@ var require_job_timeout_monitor = __commonJS({
23459
23471
  var logger_12 = require_logger();
23460
23472
  var context_12 = require_context();
23461
23473
  var job_context_storage_12 = require_job_context_storage();
23474
+ var codegen_flow_helpers_12 = require_codegen_flow_helpers();
23462
23475
  var types_1 = require_types_impl();
23463
23476
  var biEvents_1 = require_biEvents();
23464
23477
  exports2.JOB_TIMEOUT_MS = 1e3 * 60 * 20;
@@ -23486,31 +23499,30 @@ var require_job_timeout_monitor = __commonJS({
23486
23499
  });
23487
23500
  try {
23488
23501
  logger_12.logger.info("[Job] Timeout detected, exiting", logContext);
23489
- const codegenError = await this.resolveTimeoutError(jobId);
23502
+ const job = await this.codeGenerationService.getJob(jobId);
23503
+ const codegenError = this.resolveTimeoutError(jobId, job);
23490
23504
  await (0, utils_1.updateAllRunningTasks)(jobId, ditto_codegen_types_12.Status.FAILED, codegenError);
23491
- await this.codeGenerationService.markJobAsCompleted(jobId);
23492
- logger_12.logger.info("[Job] Marked job as completed, failed all running tasks", logContext);
23505
+ await this.codeGenerationService.updateJobStatus(jobId, ditto_codegen_types_12.Status.FAILED);
23506
+ const failedRunPayload = await (0, codegen_flow_helpers_12.buildFailedRunPayload)(codegenError, (0, codegen_flow_helpers_12.getOutputPath)(), job_context_storage_12.jobContextStorage.getStore()?.gitBaseline ?? "");
23507
+ await this.codeGenerationService.updateJob(jobId, {
23508
+ ...job?.payload,
23509
+ ...failedRunPayload
23510
+ });
23511
+ logger_12.logger.info("[Job] Marked job as failed, failed all running tasks", logContext);
23493
23512
  await this.reportTimeoutBi(jobId, codegenError);
23494
23513
  process.exit();
23495
23514
  } catch (error) {
23496
- logger_12.logger.error("[Job] Failed to mark timed-out job as completed", {
23515
+ logger_12.logger.error("[Job] Failed to mark timed-out job as failed", {
23497
23516
  ...logContext,
23498
23517
  error: error instanceof Error ? error.message : String(error)
23499
23518
  });
23519
+ throw error;
23500
23520
  }
23501
23521
  }
23502
- async resolveTimeoutError(jobId) {
23503
- try {
23504
- const job = await this.codeGenerationService.getJob(jobId);
23505
- const pendingDecision = job?.pendingUserDecisions?.find((decision) => !decision.response?.selectedOptionId);
23506
- if (pendingDecision?.id) {
23507
- return new ditto_codegen_types_12.UserDecisionTimeoutError(jobId, pendingDecision.id);
23508
- }
23509
- } catch (error) {
23510
- logger_12.logger.warn("[Job] Could not determine timeout error type", {
23511
- jobId,
23512
- error: error instanceof Error ? error.message : String(error)
23513
- });
23522
+ resolveTimeoutError(jobId, job) {
23523
+ const pendingDecision = job?.pendingUserDecisions?.find((decision) => !decision.response?.selectedOptionId);
23524
+ if (pendingDecision?.id) {
23525
+ return new ditto_codegen_types_12.UserDecisionTimeoutError(jobId, pendingDecision.id);
23514
23526
  }
23515
23527
  return new ditto_codegen_types_12.TimeoutError(`Job exceeded timeout of ${exports2.JOB_TIMEOUT_MS}ms`);
23516
23528
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/ditto-codegen-public",
3
- "version": "1.0.435",
3
+ "version": "1.0.437",
4
4
  "description": "AI-powered Wix CLI app generator - standalone executable",
5
5
  "scripts": {
6
6
  "build": "node build.mjs",
@@ -29,5 +29,5 @@
29
29
  "esbuild": "^0.27.2",
30
30
  "vitest": "^4.0.16"
31
31
  },
32
- "falconPackageHash": "c800cf38305a8152baff949db90fba6913ed33954d9af629d14ee2a5"
32
+ "falconPackageHash": "fa7b527ce78aed885889951926ab8c492e1b9f58e57ba82962990fbf"
33
33
  }