@wix/ditto-codegen-public 1.0.434 → 1.0.436

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 +174 -98
  2. package/package.json +2 -2
package/dist/out.js CHANGED
@@ -39,7 +39,7 @@ var require_types_impl = __commonJS({
39
39
  "../../node_modules/@wix/ambassador-ctp-codegen-job-service-v1-job/cjs/build/types.impl.js"(exports2) {
40
40
  "use strict";
41
41
  Object.defineProperty(exports2, "__esModule", { value: true });
42
- exports2.WebhookIdentityType = exports2.UserDecisionQuestionType = exports2.TaskKind = exports2.Status = exports2.ProcessType = exports2.FileOperation = exports2.ErrorType = exports2.Environment = exports2.ChatMessageRole = exports2.ExtensionType = void 0;
42
+ exports2.WebhookIdentityType = exports2.UserDecisionQuestionType = exports2.TaskKind = exports2.Status = exports2.ProcessType = exports2.JobsSortOrder = exports2.FileOperation = exports2.ErrorType = exports2.Environment = exports2.ChatMessageRole = exports2.ExtensionType = void 0;
43
43
  var ExtensionType;
44
44
  (function(ExtensionType2) {
45
45
  ExtensionType2["UNDEFINED_EXTENSION_TYPE"] = "UNDEFINED_EXTENSION_TYPE";
@@ -89,6 +89,12 @@ var require_types_impl = __commonJS({
89
89
  FileOperation2["DELETE"] = "DELETE";
90
90
  FileOperation2["EDIT"] = "EDIT";
91
91
  })(FileOperation || (exports2.FileOperation = FileOperation = {}));
92
+ var JobsSortOrder;
93
+ (function(JobsSortOrder2) {
94
+ JobsSortOrder2["UNKNOWN_SORT_ORDER"] = "UNKNOWN_SORT_ORDER";
95
+ JobsSortOrder2["CREATED_AT_ASC"] = "CREATED_AT_ASC";
96
+ JobsSortOrder2["CREATED_AT_DESC"] = "CREATED_AT_DESC";
97
+ })(JobsSortOrder || (exports2.JobsSortOrder = JobsSortOrder = {}));
92
98
  var ProcessType;
93
99
  (function(ProcessType2) {
94
100
  ProcessType2["UNKNOWN_PROCESS_TYPE"] = "UNKNOWN_PROCESS_TYPE";
@@ -5836,7 +5842,7 @@ var require_utils4 = __commonJS({
5836
5842
  "../../node_modules/@wix/metro-runtime/cjs/build/serialization/utils.js"(exports2) {
5837
5843
  "use strict";
5838
5844
  Object.defineProperty(exports2, "__esModule", { value: true });
5839
- exports2.parseLeanSchemaRef = void 0;
5845
+ exports2.parseLeanSchemaRef = parseLeanSchemaRef;
5840
5846
  function parseLeanSchemaRef(renderedSchemaName = "") {
5841
5847
  const [typeOrName, schemaName] = getSchemaNameAndType(renderedSchemaName);
5842
5848
  if (schemaName) {
@@ -5849,7 +5855,6 @@ var require_utils4 = __commonJS({
5849
5855
  schemaName: typeOrName
5850
5856
  };
5851
5857
  }
5852
- exports2.parseLeanSchemaRef = parseLeanSchemaRef;
5853
5858
  var getSchemaNameAndType = (leanSchema) => leanSchema.split("#");
5854
5859
  }
5855
5860
  });
@@ -5884,7 +5889,7 @@ var require_utils5 = __commonJS({
5884
5889
  "../../node_modules/@wix/metro-runtime/cjs/build/utils.js"(exports2) {
5885
5890
  "use strict";
5886
5891
  Object.defineProperty(exports2, "__esModule", { value: true });
5887
- exports2.findByPath = void 0;
5892
+ exports2.findByPath = findByPath;
5888
5893
  function findByPath(obj, path, defaultValue, suffix) {
5889
5894
  let result = obj;
5890
5895
  for (const field of path.split(".")) {
@@ -5895,7 +5900,6 @@ var require_utils5 = __commonJS({
5895
5900
  }
5896
5901
  return `${result}${suffix}`;
5897
5902
  }
5898
- exports2.findByPath = findByPath;
5899
5903
  }
5900
5904
  });
5901
5905
 
@@ -5904,12 +5908,24 @@ var require_url_resolver = __commonJS({
5904
5908
  "../../node_modules/@wix/metro-runtime/cjs/build/url-resolver.js"(exports2) {
5905
5909
  "use strict";
5906
5910
  Object.defineProperty(exports2, "__esModule", { value: true });
5907
- exports2.resolveUrl = void 0;
5911
+ exports2.resolveUrl = resolveUrl;
5908
5912
  var utils_js_1 = require_utils5();
5909
5913
  var USER_DOMAIN = "_";
5914
+ var WWW_BASE_DOMAIN = "www._base_domain_";
5915
+ var WILDCARD_PREFIX = "*.";
5910
5916
  var DOMAINS = ["wix.com", "editorx.com"];
5911
- var WIX_API_DOMAINS = ["42.wixprod.net", "uw2-edt-1.wixprod.net"];
5917
+ var WIX_API_DOMAINS = [
5918
+ "42.wixprod.net",
5919
+ "uw2-edt-1.wixprod.net",
5920
+ "virginia-edt.wixprod.net"
5921
+ ];
5912
5922
  var DEV_WIX_CODE_DOMAIN = "dev.wix-code.com";
5923
+ var HOST_ALIASES = {
5924
+ // payments.base44.com runs customised Business Manager, which needs to work exactly the same as normal BM on manage.wix.com
5925
+ "payments.base44.com": "manage.wix.com",
5926
+ // https://system-kb.wixanswers.com/kb/en/article/editorx-domains-matching-to-wixcom
5927
+ "create.editorx.com": "editor.editorx.com"
5928
+ };
5913
5929
  var REGEX_CAPTURE_PROTO_FIELD = /{(.*)}/;
5914
5930
  var REGEX_CAPTURE_DOMAINS = new RegExp(`\\.(${DOMAINS.join("|")})$`);
5915
5931
  var REGEX_CAPTURE_API_DOMAINS = new RegExp(`\\.(${WIX_API_DOMAINS.join("|")})$`);
@@ -5920,7 +5936,6 @@ var require_url_resolver = __commonJS({
5920
5936
  const path = injectDataIntoProtoPath(opts.protoPath, opts.data || {});
5921
5937
  return resolvePath(path, mappings);
5922
5938
  }
5923
- exports2.resolveUrl = resolveUrl;
5924
5939
  function injectDataIntoProtoPath(protoPath, data) {
5925
5940
  return protoPath.split("/").map((path) => maybeProtoPathToData(path, data)).join("/");
5926
5941
  }
@@ -5938,24 +5953,27 @@ var require_url_resolver = __commonJS({
5938
5953
  return resolvedHost.replace(REGEX_CAPTURE_DOMAINS, "._base_domain_").replace(REGEX_CAPTURE_API_DOMAINS, "._api_base_domain_").replace(REGEX_CAPTURE_DEV_WIX_CODE_DOMAIN, "*.dev.wix-code.com");
5939
5954
  }
5940
5955
  function fixHostExceptions(host) {
5941
- return host.replace("create.editorx.com", "editor.editorx.com");
5956
+ return HOST_ALIASES[host] ?? host;
5942
5957
  }
5943
5958
  function resolveMappingsByDomain(domain, domainToMappings) {
5944
5959
  const mappings = domainToMappings[domain];
5945
5960
  if (mappings) {
5946
5961
  return mappings;
5947
5962
  }
5948
- const rootDomainMappings = resolveRootDomain(domain, domainToMappings);
5949
- if (!rootDomainMappings) {
5963
+ const matchedMappings = resolveRootDomain(domain, domainToMappings) ?? resolveWildcardDomain(domain, domainToMappings);
5964
+ if (!matchedMappings) {
5965
+ if (isBaseDomain(domain)) {
5966
+ const wwwMappings = domainToMappings[WWW_BASE_DOMAIN];
5967
+ if (wwwMappings) {
5968
+ return wwwMappings;
5969
+ }
5970
+ }
5950
5971
  const userMappings = domainToMappings[USER_DOMAIN];
5951
5972
  if (userMappings) {
5952
5973
  return userMappings;
5953
5974
  }
5954
- if (isBaseDomain(domain)) {
5955
- return domainToMappings[wwwBaseDomain];
5956
- }
5957
5975
  }
5958
- return rootDomainMappings ?? [];
5976
+ return matchedMappings ?? [];
5959
5977
  }
5960
5978
  function resolveRootDomain(domain, domainToMappings) {
5961
5979
  return Object.entries(domainToMappings).find(([entryDomain]) => {
@@ -5963,6 +5981,22 @@ var require_url_resolver = __commonJS({
5963
5981
  return rooDomainSegments.join(".") === entryDomain;
5964
5982
  })?.[1];
5965
5983
  }
5984
+ function resolveWildcardDomain(domain, domainToMappings) {
5985
+ const matchingEntries = Object.entries(domainToMappings).filter(([entryDomain]) => matchesWildcardDomain(domain, entryDomain));
5986
+ const [mostSpecificEntry] = matchingEntries.sort(([entryDomainA], [entryDomainB]) => entryDomainB.length - entryDomainA.length);
5987
+ if (!mostSpecificEntry) {
5988
+ return void 0;
5989
+ }
5990
+ const [, mappings] = mostSpecificEntry;
5991
+ return mappings;
5992
+ }
5993
+ function matchesWildcardDomain(domain, entryDomain) {
5994
+ if (!entryDomain.startsWith(WILDCARD_PREFIX)) {
5995
+ return false;
5996
+ }
5997
+ const suffix = entryDomain.slice(WILDCARD_PREFIX.length - 1);
5998
+ return domain.length > suffix.length && domain.endsWith(suffix);
5999
+ }
5966
6000
  function resolvePath(protoPath, mappings) {
5967
6001
  const mapping = mappings?.find((m) => protoPath.startsWith(m.destPath));
5968
6002
  if (!mapping) {
@@ -5973,7 +6007,6 @@ var require_url_resolver = __commonJS({
5973
6007
  function isBaseDomain(domain) {
5974
6008
  return !!domain.match(/\._base_domain_$/);
5975
6009
  }
5976
- var wwwBaseDomain = "www._base_domain_";
5977
6010
  }
5978
6011
  });
5979
6012
 
@@ -6238,7 +6271,7 @@ var require_flatten_params = __commonJS({
6238
6271
  "../../node_modules/@wix/metro-runtime/cjs/build/flatten-params.js"(exports2) {
6239
6272
  "use strict";
6240
6273
  Object.defineProperty(exports2, "__esModule", { value: true });
6241
- exports2.toURLSearchParams = void 0;
6274
+ exports2.toURLSearchParams = toURLSearchParams;
6242
6275
  var js_base64_1 = require_base642();
6243
6276
  function flattenParams(data, path = "") {
6244
6277
  const params = {};
@@ -6276,7 +6309,6 @@ var require_flatten_params = __commonJS({
6276
6309
  }, new URLSearchParams());
6277
6310
  }
6278
6311
  }
6279
- exports2.toURLSearchParams = toURLSearchParams;
6280
6312
  }
6281
6313
  });
6282
6314
 
@@ -6317,7 +6349,7 @@ var require_domain2 = __commonJS({
6317
6349
  (function(ConverterType2) {
6318
6350
  ConverterType2[ConverterType2["TO_JSON"] = 0] = "TO_JSON";
6319
6351
  ConverterType2[ConverterType2["FROM_JSON"] = 1] = "FROM_JSON";
6320
- })(ConverterType = exports2.ConverterType || (exports2.ConverterType = {}));
6352
+ })(ConverterType || (exports2.ConverterType = ConverterType = {}));
6321
6353
  }
6322
6354
  });
6323
6355
 
@@ -6326,7 +6358,7 @@ var require_serializer = __commonJS({
6326
6358
  "../../node_modules/@wix/metro-runtime/cjs/build/serializer/serializer.js"(exports2) {
6327
6359
  "use strict";
6328
6360
  Object.defineProperty(exports2, "__esModule", { value: true });
6329
- exports2.schemaSerializer = void 0;
6361
+ exports2.schemaSerializer = schemaSerializer;
6330
6362
  var index_js_1 = require_build();
6331
6363
  function schemaSerializer(rootSchema, depSchemas = {}, converterSets) {
6332
6364
  return function serialize(json = {}, converterType) {
@@ -6377,7 +6409,6 @@ var require_serializer = __commonJS({
6377
6409
  }
6378
6410
  };
6379
6411
  }
6380
- exports2.schemaSerializer = schemaSerializer;
6381
6412
  }
6382
6413
  });
6383
6414
 
@@ -6572,7 +6603,7 @@ var require_utils6 = __commonJS({
6572
6603
  "../../node_modules/@wix/metro-runtime/cjs/build/serializer/utils.js"(exports2) {
6573
6604
  "use strict";
6574
6605
  Object.defineProperty(exports2, "__esModule", { value: true });
6575
- exports2.typeToConverterSet = void 0;
6606
+ exports2.typeToConverterSet = typeToConverterSet;
6576
6607
  function typeToConverterSet(converterSets) {
6577
6608
  return converterSets.reduce((result, converterSet) => {
6578
6609
  const types = converterSet.types.reduce((typeResult, type) => {
@@ -6587,7 +6618,6 @@ var require_utils6 = __commonJS({
6587
6618
  };
6588
6619
  }, {});
6589
6620
  }
6590
- exports2.typeToConverterSet = typeToConverterSet;
6591
6621
  }
6592
6622
  });
6593
6623
 
@@ -6596,7 +6626,7 @@ var require_ambassador_index = __commonJS({
6596
6626
  "../../node_modules/@wix/metro-runtime/cjs/build/ambassador-index.js"(exports2) {
6597
6627
  "use strict";
6598
6628
  Object.defineProperty(exports2, "__esModule", { value: true });
6599
- exports2.serializer = void 0;
6629
+ exports2.serializer = serializer;
6600
6630
  var domain_js_1 = require_domain2();
6601
6631
  var serializer_js_1 = require_serializer();
6602
6632
  var converters_js_1 = require_converters();
@@ -6614,7 +6644,6 @@ var require_ambassador_index = __commonJS({
6614
6644
  }
6615
6645
  };
6616
6646
  }
6617
- exports2.serializer = serializer;
6618
6647
  function safeJsonParse(someString) {
6619
6648
  try {
6620
6649
  return JSON.parse(someString);
@@ -10540,6 +10569,41 @@ var require_wixTokenRefresh = __commonJS({
10540
10569
  }
10541
10570
  });
10542
10571
 
10572
+ // dist/experiments.js
10573
+ var require_experiments = __commonJS({
10574
+ "dist/experiments.js"(exports2) {
10575
+ "use strict";
10576
+ Object.defineProperty(exports2, "__esModule", { value: true });
10577
+ exports2.FILTERED_JOB_POLLING = void 0;
10578
+ exports2.isExperimentEnabled = isExperimentEnabled;
10579
+ var logger_12 = require_logger();
10580
+ exports2.FILTERED_JOB_POLLING = "codegenFilteredJobPolling";
10581
+ var parsedExperiments = null;
10582
+ function getExperiments() {
10583
+ if (parsedExperiments !== null) {
10584
+ return parsedExperiments;
10585
+ }
10586
+ const raw = process.env.CODEGEN_EXPERIMENTS;
10587
+ if (!raw) {
10588
+ parsedExperiments = {};
10589
+ return parsedExperiments;
10590
+ }
10591
+ try {
10592
+ parsedExperiments = JSON.parse(raw);
10593
+ } catch (error) {
10594
+ logger_12.logger.error("[Experiments] Failed to parse CODEGEN_EXPERIMENTS", {
10595
+ error: error instanceof Error ? error.message : String(error)
10596
+ });
10597
+ parsedExperiments = {};
10598
+ }
10599
+ return parsedExperiments;
10600
+ }
10601
+ function isExperimentEnabled(specName) {
10602
+ return getExperiments()[specName] === "true";
10603
+ }
10604
+ }
10605
+ });
10606
+
10543
10607
  // ../codegen-types/dist/errors/ErrorTypes.js
10544
10608
  var require_ErrorTypes = __commonJS({
10545
10609
  "../codegen-types/dist/errors/ErrorTypes.js"(exports2) {
@@ -10957,7 +11021,7 @@ var require_CodeGenService = __commonJS({
10957
11021
  "dist/services/CodeGenService.js"(exports2) {
10958
11022
  "use strict";
10959
11023
  Object.defineProperty(exports2, "__esModule", { value: true });
10960
- exports2.CodeGenService = exports2.TaskKind = exports2.Status = void 0;
11024
+ exports2.CodeGenService = exports2.JobsSortOrder = exports2.TaskKind = exports2.Status = void 0;
10961
11025
  exports2.createCodeGenErrorHandler = createCodeGenErrorHandler;
10962
11026
  var http_client_1 = require_index_node();
10963
11027
  var http_1 = require_http_impl();
@@ -10969,7 +11033,11 @@ var require_CodeGenService = __commonJS({
10969
11033
  Object.defineProperty(exports2, "TaskKind", { enumerable: true, get: function() {
10970
11034
  return types_1.TaskKind;
10971
11035
  } });
11036
+ Object.defineProperty(exports2, "JobsSortOrder", { enumerable: true, get: function() {
11037
+ return types_1.JobsSortOrder;
11038
+ } });
10972
11039
  var logger_12 = require_logger();
11040
+ var experiments_1 = require_experiments();
10973
11041
  var ditto_codegen_types_12 = require_dist4();
10974
11042
  var FILE_OPERATION = {
10975
11043
  [ditto_codegen_types_12.ExtensionGenerationOperation.INSERT]: types_1.FileOperation.INSERT,
@@ -11059,11 +11127,16 @@ var require_CodeGenService = __commonJS({
11059
11127
  }
11060
11128
  };
11061
11129
  this.fetchPendingJobs = async () => {
11062
- const resp = await this.request((0, http_1.listProjectJobs)({
11063
- projectId: this.projectId
11064
- }));
11130
+ const { sandboxId } = this;
11131
+ const filtered = sandboxId && (0, experiments_1.isExperimentEnabled)(experiments_1.FILTERED_JOB_POLLING) ? {
11132
+ projectId: this.projectId,
11133
+ filter: { status: types_1.Status.PENDING, sandboxId },
11134
+ paging: { limit: 1 },
11135
+ sortOrder: types_1.JobsSortOrder.CREATED_AT_ASC
11136
+ } : void 0;
11137
+ const resp = await this.request((0, http_1.listProjectJobs)(filtered ?? { projectId: this.projectId }));
11065
11138
  const jobs = resp.data?.jobs ?? [];
11066
- return jobs.filter(this.shouldProcessJob);
11139
+ return filtered ? jobs : jobs.filter(this.shouldProcessJob);
11067
11140
  };
11068
11141
  this.shouldProcessJob = (job) => {
11069
11142
  if (job.status !== types_1.Status.PENDING)
@@ -17376,36 +17449,6 @@ var require_OpenCodeOrchestrator = __commonJS({
17376
17449
  }
17377
17450
  });
17378
17451
 
17379
- // dist/flows/codegen-flow-helpers.js
17380
- var require_codegen_flow_helpers = __commonJS({
17381
- "dist/flows/codegen-flow-helpers.js"(exports2) {
17382
- "use strict";
17383
- var __importDefault2 = exports2 && exports2.__importDefault || function(mod) {
17384
- return mod && mod.__esModule ? mod : { "default": mod };
17385
- };
17386
- Object.defineProperty(exports2, "__esModule", { value: true });
17387
- exports2.updateJobPayload = updateJobPayload;
17388
- exports2.updateParentTaskStatus = updateParentTaskStatus;
17389
- exports2.getOutputPath = getOutputPath;
17390
- var path_1 = __importDefault2(require("path"));
17391
- var codeGenerationService_12 = require_codeGenerationService();
17392
- var utils_1 = require_utils9();
17393
- var DEFAULT_OUTPUT_PATH = "generated-app";
17394
- async function updateJobPayload(jobContext, payload) {
17395
- await codeGenerationService_12.codeGenerationService.updateJob(jobContext.jobId, payload);
17396
- }
17397
- async function updateParentTaskStatus(jobContext, status, error) {
17398
- await codeGenerationService_12.codeGenerationService.updateTask(jobContext.jobId, jobContext.taskId, status, {
17399
- ...error ? { error: (0, utils_1.serializeError)(error) } : {}
17400
- });
17401
- }
17402
- function getOutputPath() {
17403
- const outputDir = process.env.OUTPUT_PATH || DEFAULT_OUTPUT_PATH;
17404
- return outputDir.startsWith("/") ? outputDir : path_1.default.join(process.cwd(), outputDir);
17405
- }
17406
- }
17407
- });
17408
-
17409
17452
  // dist/flows/agent-io.js
17410
17453
  var require_agent_io = __commonJS({
17411
17454
  "dist/flows/agent-io.js"(exports2) {
@@ -17466,6 +17509,51 @@ var require_agent_io = __commonJS({
17466
17509
  }
17467
17510
  });
17468
17511
 
17512
+ // dist/flows/codegen-flow-helpers.js
17513
+ var require_codegen_flow_helpers = __commonJS({
17514
+ "dist/flows/codegen-flow-helpers.js"(exports2) {
17515
+ "use strict";
17516
+ var __importDefault2 = exports2 && exports2.__importDefault || function(mod) {
17517
+ return mod && mod.__esModule ? mod : { "default": mod };
17518
+ };
17519
+ Object.defineProperty(exports2, "__esModule", { value: true });
17520
+ exports2.updateJobPayload = updateJobPayload;
17521
+ exports2.buildFailedRunPayload = buildFailedRunPayload;
17522
+ exports2.updateParentTaskStatus = updateParentTaskStatus;
17523
+ exports2.getOutputPath = getOutputPath;
17524
+ var path_1 = __importDefault2(require("path"));
17525
+ var codeGenerationService_12 = require_codeGenerationService();
17526
+ var git_file_changes_1 = require_git_file_changes();
17527
+ var collect_extensions_created_1 = require_collect_extensions_created();
17528
+ var agent_io_1 = require_agent_io();
17529
+ var utils_1 = require_utils9();
17530
+ var DEFAULT_OUTPUT_PATH = "generated-app";
17531
+ async function updateJobPayload(jobContext, payload) {
17532
+ await codeGenerationService_12.codeGenerationService.updateJob(jobContext.jobId, payload);
17533
+ }
17534
+ async function buildFailedRunPayload(error, outputPath, gitBaseline) {
17535
+ const files = await (0, git_file_changes_1.collectGitFileChanges)(outputPath, gitBaseline);
17536
+ const extensions = await (0, collect_extensions_created_1.buildExtensionsJobPayload)(outputPath, files);
17537
+ return {
17538
+ requiredPermissions: [],
17539
+ error,
17540
+ files,
17541
+ ...(0, agent_io_1.readAgentOutput)(outputPath),
17542
+ extensions
17543
+ };
17544
+ }
17545
+ async function updateParentTaskStatus(jobContext, status, error) {
17546
+ await codeGenerationService_12.codeGenerationService.updateTask(jobContext.jobId, jobContext.taskId, status, {
17547
+ ...error ? { error: (0, utils_1.serializeError)(error) } : {}
17548
+ });
17549
+ }
17550
+ function getOutputPath() {
17551
+ const outputDir = process.env.OUTPUT_PATH || DEFAULT_OUTPUT_PATH;
17552
+ return outputDir.startsWith("/") ? outputDir : path_1.default.join(process.cwd(), outputDir);
17553
+ }
17554
+ }
17555
+ });
17556
+
17469
17557
  // dist/opencode-integration/inject-created-by.js
17470
17558
  var require_inject_created_by = __commonJS({
17471
17559
  "dist/opencode-integration/inject-created-by.js"(exports2) {
@@ -22619,6 +22707,7 @@ var require_opencode_init = __commonJS({
22619
22707
  });
22620
22708
  const outputPath = (0, codegen_flow_helpers_12.getOutputPath)();
22621
22709
  const gitBaseline = await (0, git_file_changes_1.captureGitBaseline)(outputPath);
22710
+ store.gitBaseline = gitBaseline;
22622
22711
  const orchestrator = new OpenCodeOrchestrator_1.OpenCodeOrchestrator();
22623
22712
  let caughtError;
22624
22713
  try {
@@ -22679,16 +22768,8 @@ var require_opencode_init = __commonJS({
22679
22768
  } catch (error) {
22680
22769
  caughtError = error;
22681
22770
  const codegenError = (0, ditto_codegen_types_2.toCodegenError)(error);
22682
- const agentOutput = (0, agent_io_1.readAgentOutput)(outputPath);
22683
- const files = await (0, git_file_changes_1.collectGitFileChanges)(outputPath, gitBaseline);
22684
- const extensions = await (0, collect_extensions_created_1.buildExtensionsJobPayload)(outputPath, files);
22685
- await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, {
22686
- requiredPermissions: [],
22687
- error: codegenError,
22688
- files,
22689
- ...agentOutput,
22690
- extensions
22691
- });
22771
+ const failedRunPayload = await (0, codegen_flow_helpers_12.buildFailedRunPayload)(codegenError, outputPath, gitBaseline);
22772
+ await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, failedRunPayload);
22692
22773
  await (0, codegen_flow_helpers_12.updateParentTaskStatus)(localJobContext, ditto_codegen_types_12.Status.FAILED, codegenError);
22693
22774
  const taskCost = orchestrator.lastUsage ? Math.round(orchestrator.lastUsage.cost * 1e6) : void 0;
22694
22775
  await (0, biEvents_1.reportSessionEnd)({
@@ -22697,7 +22778,7 @@ var require_opencode_init = __commonJS({
22697
22778
  taskType: kind,
22698
22779
  taskCost,
22699
22780
  taskStatus: ditto_codegen_types_12.Status.FAILED,
22700
- agentOutput: JSON.stringify({ files }),
22781
+ agentOutput: JSON.stringify({ files: failedRunPayload.files }),
22701
22782
  jobDuration: String(Date.now() - flowStartTime)
22702
22783
  });
22703
22784
  await (0, biEvents_1.reportSessionError)({
@@ -22833,6 +22914,7 @@ var require_opencode_iterate = __commonJS({
22833
22914
  });
22834
22915
  const outputPath = (0, codegen_flow_helpers_12.getOutputPath)();
22835
22916
  const gitBaseline = await (0, git_file_changes_1.captureGitBaseline)(outputPath);
22917
+ store.gitBaseline = gitBaseline;
22836
22918
  const iterationOrchestrator = new OpenCodeIterationOrchestrator_1.OpenCodeIterationOrchestrator();
22837
22919
  let caughtError;
22838
22920
  try {
@@ -22883,16 +22965,8 @@ var require_opencode_iterate = __commonJS({
22883
22965
  } catch (error) {
22884
22966
  caughtError = error;
22885
22967
  const codegenError = (0, ditto_codegen_types_2.toCodegenError)(error);
22886
- const agentOutput = (0, agent_io_1.readAgentOutput)(outputPath);
22887
- const files = await (0, git_file_changes_1.collectGitFileChanges)(outputPath, gitBaseline);
22888
- const extensions = await (0, collect_extensions_created_1.buildExtensionsJobPayload)(outputPath, files);
22889
- await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, {
22890
- requiredPermissions: [],
22891
- error: codegenError,
22892
- files,
22893
- ...agentOutput,
22894
- extensions
22895
- });
22968
+ const failedRunPayload = await (0, codegen_flow_helpers_12.buildFailedRunPayload)(codegenError, outputPath, gitBaseline);
22969
+ await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, failedRunPayload);
22896
22970
  await (0, codegen_flow_helpers_12.updateParentTaskStatus)(localJobContext, ditto_codegen_types_12.Status.FAILED, codegenError);
22897
22971
  const taskCost = iterationOrchestrator.lastUsage ? Math.round(iterationOrchestrator.lastUsage.cost * 1e6) : void 0;
22898
22972
  await (0, biEvents_1.reportSessionEnd)({
@@ -22901,7 +22975,7 @@ var require_opencode_iterate = __commonJS({
22901
22975
  taskType: kind,
22902
22976
  taskCost,
22903
22977
  taskStatus: ditto_codegen_types_12.Status.FAILED,
22904
- agentOutput: JSON.stringify({ files }),
22978
+ agentOutput: JSON.stringify({ files: failedRunPayload.files }),
22905
22979
  jobDuration: String(Date.now() - flowStartTime)
22906
22980
  });
22907
22981
  await (0, biEvents_1.reportSessionError)({
@@ -23031,6 +23105,7 @@ var require_opencode_ask = __commonJS({
23031
23105
  });
23032
23106
  const outputPath = (0, codegen_flow_helpers_12.getOutputPath)();
23033
23107
  const gitBaseline = await (0, git_file_changes_1.captureGitBaseline)(outputPath);
23108
+ store.gitBaseline = gitBaseline;
23034
23109
  const askOrchestrator = new OpenCodeAskOrchestrator_1.OpenCodeAskOrchestrator();
23035
23110
  try {
23036
23111
  (0, cli_listeners_1.attachOrchestratorListeners)(askOrchestrator);
@@ -23211,6 +23286,7 @@ var require_opencode_fix_git_conflicts = __commonJS({
23211
23286
  });
23212
23287
  const outputPath = (0, codegen_flow_helpers_12.getOutputPath)();
23213
23288
  const gitBaseline = await (0, git_file_changes_1.captureGitBaseline)(outputPath);
23289
+ store.gitBaseline = gitBaseline;
23214
23290
  const orchestrator = new OpenCodeGitConflictsOrchestrator_1.OpenCodeGitConflictsOrchestrator();
23215
23291
  let caughtError;
23216
23292
  try {
@@ -23386,6 +23462,7 @@ var require_job_timeout_monitor = __commonJS({
23386
23462
  var logger_12 = require_logger();
23387
23463
  var context_12 = require_context();
23388
23464
  var job_context_storage_12 = require_job_context_storage();
23465
+ var codegen_flow_helpers_12 = require_codegen_flow_helpers();
23389
23466
  var types_1 = require_types_impl();
23390
23467
  var biEvents_1 = require_biEvents();
23391
23468
  exports2.JOB_TIMEOUT_MS = 1e3 * 60 * 20;
@@ -23413,31 +23490,30 @@ var require_job_timeout_monitor = __commonJS({
23413
23490
  });
23414
23491
  try {
23415
23492
  logger_12.logger.info("[Job] Timeout detected, exiting", logContext);
23416
- const codegenError = await this.resolveTimeoutError(jobId);
23493
+ const job = await this.codeGenerationService.getJob(jobId);
23494
+ const codegenError = this.resolveTimeoutError(jobId, job);
23417
23495
  await (0, utils_1.updateAllRunningTasks)(jobId, ditto_codegen_types_12.Status.FAILED, codegenError);
23418
- await this.codeGenerationService.markJobAsCompleted(jobId);
23419
- logger_12.logger.info("[Job] Marked job as completed, failed all running tasks", logContext);
23496
+ await this.codeGenerationService.updateJobStatus(jobId, ditto_codegen_types_12.Status.FAILED);
23497
+ const failedRunPayload = await (0, codegen_flow_helpers_12.buildFailedRunPayload)(codegenError, (0, codegen_flow_helpers_12.getOutputPath)(), job_context_storage_12.jobContextStorage.getStore()?.gitBaseline ?? "");
23498
+ await this.codeGenerationService.updateJob(jobId, {
23499
+ ...job?.payload,
23500
+ ...failedRunPayload
23501
+ });
23502
+ logger_12.logger.info("[Job] Marked job as failed, failed all running tasks", logContext);
23420
23503
  await this.reportTimeoutBi(jobId, codegenError);
23421
23504
  process.exit();
23422
23505
  } catch (error) {
23423
- logger_12.logger.error("[Job] Failed to mark timed-out job as completed", {
23506
+ logger_12.logger.error("[Job] Failed to mark timed-out job as failed", {
23424
23507
  ...logContext,
23425
23508
  error: error instanceof Error ? error.message : String(error)
23426
23509
  });
23510
+ throw error;
23427
23511
  }
23428
23512
  }
23429
- async resolveTimeoutError(jobId) {
23430
- try {
23431
- const job = await this.codeGenerationService.getJob(jobId);
23432
- const pendingDecision = job?.pendingUserDecisions?.find((decision) => !decision.response?.selectedOptionId);
23433
- if (pendingDecision?.id) {
23434
- return new ditto_codegen_types_12.UserDecisionTimeoutError(jobId, pendingDecision.id);
23435
- }
23436
- } catch (error) {
23437
- logger_12.logger.warn("[Job] Could not determine timeout error type", {
23438
- jobId,
23439
- error: error instanceof Error ? error.message : String(error)
23440
- });
23513
+ resolveTimeoutError(jobId, job) {
23514
+ const pendingDecision = job?.pendingUserDecisions?.find((decision) => !decision.response?.selectedOptionId);
23515
+ if (pendingDecision?.id) {
23516
+ return new ditto_codegen_types_12.UserDecisionTimeoutError(jobId, pendingDecision.id);
23441
23517
  }
23442
23518
  return new ditto_codegen_types_12.TimeoutError(`Job exceeded timeout of ${exports2.JOB_TIMEOUT_MS}ms`);
23443
23519
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/ditto-codegen-public",
3
- "version": "1.0.434",
3
+ "version": "1.0.436",
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": "b849b4780b251c081a437506b4ded2164211e1e078b19bd3e61e64b7"
32
+ "falconPackageHash": "41733ebfdb6e0790cdf0ddfb2bf8ab3c16812a1d07a04394b28d2553"
33
33
  }