@wix/ditto-codegen-public 1.0.224 → 1.0.225

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 +357 -301
  2. package/package.json +2 -2
package/dist/out.js CHANGED
@@ -105088,48 +105088,6 @@ export default appBuilder;
105088
105088
  }
105089
105089
  });
105090
105090
 
105091
- // dist/orchestrator-error-helpers.js
105092
- var require_orchestrator_error_helpers = __commonJS({
105093
- "dist/orchestrator-error-helpers.js"(exports2) {
105094
- "use strict";
105095
- Object.defineProperty(exports2, "__esModule", { value: true });
105096
- exports2.createExtensionErrorHandler = createExtensionErrorHandler;
105097
- exports2.throwIfFailures = throwIfFailures;
105098
- var ditto_codegen_types_12 = require_dist();
105099
- function createExtensionErrorHandler(eventEmitter, extension) {
105100
- return (error) => {
105101
- const codegenError = (0, ditto_codegen_types_12.toCodegenError)(error);
105102
- eventEmitter.emitEvent("agent:error", {
105103
- extension,
105104
- error: codegenError
105105
- });
105106
- console.error(`\u274C Failed to process extension ${extension.name}:`, error);
105107
- throw codegenError;
105108
- };
105109
- }
105110
- function throwIfFailures(results) {
105111
- const failures = results.map((result, index) => {
105112
- if (result.status === "rejected") {
105113
- return {
105114
- index,
105115
- error: result.reason
105116
- };
105117
- }
105118
- return null;
105119
- }).filter((f) => f !== null);
105120
- if (failures.length > 0) {
105121
- const errorMessages = failures.map((f) => {
105122
- const codegenError = (0, ditto_codegen_types_12.toCodegenError)(f.error);
105123
- return `Task ${f.index} failed: ${codegenError.message}`;
105124
- });
105125
- const message = `Failed to process ${failures.length} of ${results.length} parallel tasks:
105126
- ${errorMessages.join("\n")}`;
105127
- throw (0, ditto_codegen_types_12.toCodegenError)(new Error(message));
105128
- }
105129
- }
105130
- }
105131
- });
105132
-
105133
105091
  // dist/utils.js
105134
105092
  var require_utils15 = __commonJS({
105135
105093
  "dist/utils.js"(exports2) {
@@ -105202,6 +105160,337 @@ var require_utils15 = __commonJS({
105202
105160
  }
105203
105161
  });
105204
105162
 
105163
+ // ../../node_modules/@wix/ambassador-ctp-ditto-v1-blueprint/build/cjs/http.impl.js
105164
+ var require_http_impl2 = __commonJS({
105165
+ "../../node_modules/@wix/ambassador-ctp-ditto-v1-blueprint/build/cjs/http.impl.js"(exports2) {
105166
+ "use strict";
105167
+ Object.defineProperty(exports2, "__esModule", { value: true });
105168
+ exports2.getRequiredPermissions = exports2.editBlueprint = exports2.createAppName = exports2.createBlueprint = void 0;
105169
+ var ambassador_1 = require_ambassador_index();
105170
+ var metro_runtime_1 = require_cjs2();
105171
+ var _createAppNameRequest = {};
105172
+ var _createAppNameResponse = {};
105173
+ var _createBlueprintRequest = {};
105174
+ var _createBlueprintResponse = {};
105175
+ var _editBlueprintRequest = {};
105176
+ var _editBlueprintResponse = {};
105177
+ var _getRequiredPermissionsRequest = {};
105178
+ var _getRequiredPermissionsResponse = {};
105179
+ function resolveComWixpressDittoBlueprintServiceApiDittoBlueprintServiceUrl(opts) {
105180
+ var domainToMappings = {
105181
+ "manage._base_domain_": [
105182
+ {
105183
+ srcPath: "/_api/ditto-blueprint-service-web",
105184
+ destPath: ""
105185
+ }
105186
+ ]
105187
+ };
105188
+ return (0, metro_runtime_1.resolveUrl)(Object.assign(opts, { domainToMappings }));
105189
+ }
105190
+ function createBlueprint(payload) {
105191
+ var _a = (0, ambassador_1.serializer)(_createBlueprintRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON;
105192
+ var fromRes = (0, ambassador_1.serializer)(_createBlueprintResponse, {}).fromJSON;
105193
+ function __createBlueprint(_a2) {
105194
+ var host = _a2.host;
105195
+ var serializedData = toReq(payload);
105196
+ var metadata = {
105197
+ entityFqdn: "wix.ctp.ditto.v1.blueprint",
105198
+ method: "POST",
105199
+ methodFqn: "com.wixpress.ditto_blueprint_service.api.DittoBlueprintService.CreateBlueprint",
105200
+ migrationOptions: {
105201
+ optInTransformResponse: true
105202
+ },
105203
+ url: resolveComWixpressDittoBlueprintServiceApiDittoBlueprintServiceUrl({
105204
+ protoPath: "/v1/blueprints",
105205
+ data: serializedData,
105206
+ host
105207
+ }),
105208
+ data: serializedData,
105209
+ transformResponse: fromRes
105210
+ };
105211
+ return metadata;
105212
+ }
105213
+ __createBlueprint.fromReq = fromReq;
105214
+ __createBlueprint.__isAmbassador = true;
105215
+ return __createBlueprint;
105216
+ }
105217
+ exports2.createBlueprint = createBlueprint;
105218
+ function createAppName(payload) {
105219
+ var _a = (0, ambassador_1.serializer)(_createAppNameRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON;
105220
+ var fromRes = (0, ambassador_1.serializer)(_createAppNameResponse, {}).fromJSON;
105221
+ function __createAppName(_a2) {
105222
+ var host = _a2.host;
105223
+ var serializedData = toReq(payload);
105224
+ var metadata = {
105225
+ entityFqdn: "wix.ctp.ditto.v1.blueprint",
105226
+ method: "POST",
105227
+ methodFqn: "com.wixpress.ditto_blueprint_service.api.DittoBlueprintService.CreateAppName",
105228
+ migrationOptions: {
105229
+ optInTransformResponse: true
105230
+ },
105231
+ url: resolveComWixpressDittoBlueprintServiceApiDittoBlueprintServiceUrl({
105232
+ protoPath: "/v1/blueprints/app-name",
105233
+ data: serializedData,
105234
+ host
105235
+ }),
105236
+ data: serializedData,
105237
+ transformResponse: fromRes
105238
+ };
105239
+ return metadata;
105240
+ }
105241
+ __createAppName.fromReq = fromReq;
105242
+ __createAppName.__isAmbassador = true;
105243
+ return __createAppName;
105244
+ }
105245
+ exports2.createAppName = createAppName;
105246
+ function editBlueprint(payload) {
105247
+ var _a = (0, ambassador_1.serializer)(_editBlueprintRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON;
105248
+ var fromRes = (0, ambassador_1.serializer)(_editBlueprintResponse, {}).fromJSON;
105249
+ function __editBlueprint(_a2) {
105250
+ var host = _a2.host;
105251
+ var serializedData = toReq(payload);
105252
+ var metadata = {
105253
+ entityFqdn: "wix.ctp.ditto.v1.blueprint",
105254
+ method: "POST",
105255
+ methodFqn: "com.wixpress.ditto_blueprint_service.api.DittoBlueprintService.EditBlueprint",
105256
+ migrationOptions: {
105257
+ optInTransformResponse: true
105258
+ },
105259
+ url: resolveComWixpressDittoBlueprintServiceApiDittoBlueprintServiceUrl({
105260
+ protoPath: "/v1/blueprints/edit",
105261
+ data: serializedData,
105262
+ host
105263
+ }),
105264
+ data: serializedData,
105265
+ transformResponse: fromRes
105266
+ };
105267
+ return metadata;
105268
+ }
105269
+ __editBlueprint.fromReq = fromReq;
105270
+ __editBlueprint.__isAmbassador = true;
105271
+ return __editBlueprint;
105272
+ }
105273
+ exports2.editBlueprint = editBlueprint;
105274
+ function getRequiredPermissions(payload) {
105275
+ var _a = (0, ambassador_1.serializer)(_getRequiredPermissionsRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON;
105276
+ var fromRes = (0, ambassador_1.serializer)(_getRequiredPermissionsResponse, {}).fromJSON;
105277
+ function __getRequiredPermissions(_a2) {
105278
+ var host = _a2.host;
105279
+ var serializedData = toReq(payload);
105280
+ var metadata = {
105281
+ entityFqdn: "wix.ctp.ditto.v1.blueprint",
105282
+ method: "POST",
105283
+ methodFqn: "com.wixpress.ditto_blueprint_service.api.DittoBlueprintService.GetRequiredPermissions",
105284
+ migrationOptions: {
105285
+ optInTransformResponse: true
105286
+ },
105287
+ url: resolveComWixpressDittoBlueprintServiceApiDittoBlueprintServiceUrl({
105288
+ protoPath: "/v1/blueprints/required-permissions",
105289
+ data: serializedData,
105290
+ host
105291
+ }),
105292
+ data: serializedData,
105293
+ transformResponse: fromRes
105294
+ };
105295
+ return metadata;
105296
+ }
105297
+ __getRequiredPermissions.fromReq = fromReq;
105298
+ __getRequiredPermissions.__isAmbassador = true;
105299
+ return __getRequiredPermissions;
105300
+ }
105301
+ exports2.getRequiredPermissions = getRequiredPermissions;
105302
+ }
105303
+ });
105304
+
105305
+ // dist/flows/codegen-flow-helpers.js
105306
+ var require_codegen_flow_helpers = __commonJS({
105307
+ "dist/flows/codegen-flow-helpers.js"(exports2) {
105308
+ "use strict";
105309
+ var __importDefault2 = exports2 && exports2.__importDefault || function(mod) {
105310
+ return mod && mod.__esModule ? mod : { "default": mod };
105311
+ };
105312
+ Object.defineProperty(exports2, "__esModule", { value: true });
105313
+ exports2.addAgentTask = addAgentTask;
105314
+ exports2.completeAgentTask = completeAgentTask;
105315
+ exports2.failAgentTask = failAgentTask;
105316
+ exports2.addUpdateExtensionAgentTask = addUpdateExtensionAgentTask;
105317
+ exports2.completeUpdateExtensionAgentTask = completeUpdateExtensionAgentTask;
105318
+ exports2.failUpdateExtensionAgentTask = failUpdateExtensionAgentTask;
105319
+ exports2.updateJobPayload = updateJobPayload;
105320
+ exports2.updateParentTaskStatus = updateParentTaskStatus;
105321
+ exports2.getOutputPath = getOutputPath;
105322
+ exports2.getRequiredPermissions = getRequiredPermissions;
105323
+ var path_1 = __importDefault2(require("path"));
105324
+ var codeGenerationService_12 = require_codeGenerationService();
105325
+ var ditto_codegen_types_12 = require_dist();
105326
+ var utils_1 = require_utils15();
105327
+ var http_1 = require_http_impl2();
105328
+ var http_client_1 = require_index_node();
105329
+ var orchestrator_1 = require_orchestrator();
105330
+ var job_context_storage_12 = require_job_context_storage();
105331
+ var slugify = (str = "") => {
105332
+ return str.toLowerCase().replace(/ /g, "-");
105333
+ };
105334
+ function getJobContext() {
105335
+ const store = job_context_storage_12.jobContextStorage.getStore();
105336
+ if (!store?.jobId || !store?.taskId) {
105337
+ return null;
105338
+ }
105339
+ return { jobId: store.jobId, taskId: store.taskId };
105340
+ }
105341
+ function getAgentTaskId(parentTaskId, extension) {
105342
+ return `${parentTaskId}-${slugify(extension.name)}`;
105343
+ }
105344
+ async function addAgentTask(extension, agentName) {
105345
+ const jobContext = getJobContext();
105346
+ if (!jobContext) {
105347
+ console.log(`[Agent] start: ${extension.name} (no job context)`);
105348
+ return;
105349
+ }
105350
+ console.log(`[Agent] start: ${extension.name}`);
105351
+ const taskId = getAgentTaskId(jobContext.taskId, extension);
105352
+ await codeGenerationService_12.codeGenerationService.addTask(jobContext.jobId, {
105353
+ id: taskId,
105354
+ kind: ditto_codegen_types_12.TaskKind.RUN_AGENT,
105355
+ status: ditto_codegen_types_12.Status.RUNNING,
105356
+ name: "run_agent",
105357
+ description: `Run agent for ${extension.name}`,
105358
+ payload: { extension },
105359
+ agentName
105360
+ });
105361
+ }
105362
+ async function completeAgentTask(extension, files) {
105363
+ const jobContext = getJobContext();
105364
+ if (!jobContext) {
105365
+ console.log(`[Agent] done: ${extension.name} (no job context)`);
105366
+ return;
105367
+ }
105368
+ console.log(`[Agent] done: ${extension.name}`);
105369
+ const taskId = getAgentTaskId(jobContext.taskId, extension);
105370
+ await codeGenerationService_12.codeGenerationService.updateTask(jobContext.jobId, taskId, ditto_codegen_types_12.Status.COMPLETED, { taskOutput: { files } });
105371
+ }
105372
+ async function failAgentTask(extension, error) {
105373
+ const jobContext = getJobContext();
105374
+ if (!jobContext) {
105375
+ console.error(`[Agent] error: ${extension.name} (no job context)`, error);
105376
+ return;
105377
+ }
105378
+ console.error(`[Agent] error: ${extension.name}`, error);
105379
+ const taskId = getAgentTaskId(jobContext.taskId, extension);
105380
+ await codeGenerationService_12.codeGenerationService.updateTask(jobContext.jobId, taskId, ditto_codegen_types_12.Status.FAILED, { error: (0, utils_1.serializeError)(error) });
105381
+ }
105382
+ async function addUpdateExtensionAgentTask() {
105383
+ const jobContext = getJobContext();
105384
+ if (!jobContext) {
105385
+ console.log(`[Agent] start: iterating existing code (no job context)`);
105386
+ return;
105387
+ }
105388
+ console.log(`[Agent] start: iterating existing code`);
105389
+ const taskId = `${jobContext.taskId}-update-extension-agent`;
105390
+ await codeGenerationService_12.codeGenerationService.addTask(jobContext.jobId, {
105391
+ id: taskId,
105392
+ kind: ditto_codegen_types_12.TaskKind.RUN_AGENT,
105393
+ status: ditto_codegen_types_12.Status.RUNNING,
105394
+ name: "run_agent",
105395
+ description: "Iterating existing code",
105396
+ agentName: "UpdateExtensionAgent"
105397
+ });
105398
+ }
105399
+ async function completeUpdateExtensionAgentTask(files) {
105400
+ const jobContext = getJobContext();
105401
+ if (!jobContext) {
105402
+ console.log(`[Agent] done: iterating existing code (no job context)`);
105403
+ return;
105404
+ }
105405
+ console.log(`[Agent] done: iterating existing code`);
105406
+ const taskId = `${jobContext.taskId}-update-extension-agent`;
105407
+ await codeGenerationService_12.codeGenerationService.updateTask(jobContext.jobId, taskId, ditto_codegen_types_12.Status.COMPLETED, { taskOutput: { files } });
105408
+ }
105409
+ async function failUpdateExtensionAgentTask(error) {
105410
+ const jobContext = getJobContext();
105411
+ if (!jobContext) {
105412
+ console.error(`[Agent] error: iterating existing code (no job context)`, error);
105413
+ return;
105414
+ }
105415
+ console.error(`[Agent] error: iterating existing code`, error);
105416
+ const taskId = `${jobContext.taskId}-update-extension-agent`;
105417
+ await codeGenerationService_12.codeGenerationService.updateTask(jobContext.jobId, taskId, ditto_codegen_types_12.Status.FAILED, { error: (0, utils_1.serializeError)(error) });
105418
+ }
105419
+ async function updateJobPayload(jobContext, payload) {
105420
+ await codeGenerationService_12.codeGenerationService.updateJob(jobContext.jobId, payload);
105421
+ }
105422
+ async function updateParentTaskStatus(jobContext, status, error) {
105423
+ await codeGenerationService_12.codeGenerationService.updateTask(jobContext.jobId, jobContext.taskId, status, error ? { error: (0, utils_1.serializeError)(error) } : {});
105424
+ }
105425
+ function getOutputPath() {
105426
+ const outputDir = process.env.OUTPUT_PATH || orchestrator_1.DittoOrchestrator.DEFAULT_OUTPUT_PATH;
105427
+ return outputDir.startsWith("/") ? outputDir : path_1.default.join(process.cwd(), outputDir);
105428
+ }
105429
+ async function getRequiredPermissions(extensions) {
105430
+ const httpClient = (0, http_client_1.createHttpClient)({
105431
+ baseURL: "https://manage.wix.com"
105432
+ });
105433
+ return httpClient.request((0, http_1.getRequiredPermissions)({
105434
+ relatedApis: getRelatedApis(extensions ?? []),
105435
+ extensionTypes: getExtensionTypes(extensions ?? [])
105436
+ }));
105437
+ }
105438
+ function getExtensionTypes(extensions) {
105439
+ return Array.from(new Set((extensions ?? []).map(({ type }) => type).filter(Boolean)));
105440
+ }
105441
+ function getRelatedApis(extensions) {
105442
+ return Array.from(new Set((extensions ?? []).flatMap((ext) => [
105443
+ ...(ext.relatedApis ?? []).map(({ name }) => name).filter(Boolean),
105444
+ ...(ext.relatedSpis ?? []).map(({ name }) => name).filter(Boolean)
105445
+ ])));
105446
+ }
105447
+ }
105448
+ });
105449
+
105450
+ // dist/orchestrator-error-helpers.js
105451
+ var require_orchestrator_error_helpers = __commonJS({
105452
+ "dist/orchestrator-error-helpers.js"(exports2) {
105453
+ "use strict";
105454
+ Object.defineProperty(exports2, "__esModule", { value: true });
105455
+ exports2.createExtensionErrorHandler = createExtensionErrorHandler;
105456
+ exports2.throwIfFailures = throwIfFailures;
105457
+ var ditto_codegen_types_12 = require_dist();
105458
+ var codegen_flow_helpers_1 = require_codegen_flow_helpers();
105459
+ function createExtensionErrorHandler(eventEmitter, extension) {
105460
+ return async (error) => {
105461
+ const codegenError = (0, ditto_codegen_types_12.toCodegenError)(error);
105462
+ await (0, codegen_flow_helpers_1.failAgentTask)(extension, codegenError);
105463
+ eventEmitter.emitEvent("agent:error", {
105464
+ extension,
105465
+ error: codegenError
105466
+ });
105467
+ console.error(`\u274C Failed to process extension ${extension.name}:`, error);
105468
+ throw codegenError;
105469
+ };
105470
+ }
105471
+ function throwIfFailures(results) {
105472
+ const failures = results.map((result, index) => {
105473
+ if (result.status === "rejected") {
105474
+ return {
105475
+ index,
105476
+ error: result.reason
105477
+ };
105478
+ }
105479
+ return null;
105480
+ }).filter((f) => f !== null);
105481
+ if (failures.length > 0) {
105482
+ const errorMessages = failures.map((f) => {
105483
+ const codegenError = (0, ditto_codegen_types_12.toCodegenError)(f.error);
105484
+ return `Task ${f.index} failed: ${codegenError.message}`;
105485
+ });
105486
+ const message = `Failed to process ${failures.length} of ${results.length} parallel tasks:
105487
+ ${errorMessages.join("\n")}`;
105488
+ throw (0, ditto_codegen_types_12.toCodegenError)(new Error(message));
105489
+ }
105490
+ }
105491
+ }
105492
+ });
105493
+
105205
105494
  // dist/validators/TypescriptValidator.js
105206
105495
  var require_TypescriptValidator = __commonJS({
105207
105496
  "dist/validators/TypescriptValidator.js"(exports2) {
@@ -106379,7 +106668,8 @@ var require_finalize_extension_generation = __commonJS({
106379
106668
  var file_collector_1 = require_file_collector();
106380
106669
  var orchestrator_error_helpers_1 = require_orchestrator_error_helpers();
106381
106670
  var write_file_1 = require_write_file();
106382
- function finalizeExtensionGeneration(options, eventEmitter) {
106671
+ var codegen_flow_helpers_1 = require_codegen_flow_helpers();
106672
+ async function finalizeExtensionGeneration(options, eventEmitter) {
106383
106673
  const { extension, agentName, agentFiles, scaffolds = [], scaffoldPath, outputPath, generatedConfig } = options;
106384
106674
  try {
106385
106675
  const filesToCheck = agentFiles.map((f) => f.path || "");
@@ -106398,6 +106688,7 @@ var require_finalize_extension_generation = __commonJS({
106398
106688
  outputPath,
106399
106689
  existingFiles
106400
106690
  });
106691
+ await (0, codegen_flow_helpers_1.completeAgentTask)(extension, allCreatedFiles);
106401
106692
  eventEmitter.emitEvent("agent:done", {
106402
106693
  extension,
106403
106694
  name: agentName,
@@ -106405,7 +106696,8 @@ var require_finalize_extension_generation = __commonJS({
106405
106696
  });
106406
106697
  return extensionFilePath;
106407
106698
  } catch (error) {
106408
- throw (0, orchestrator_error_helpers_1.createExtensionErrorHandler)(eventEmitter, extension)(error);
106699
+ await (0, orchestrator_error_helpers_1.createExtensionErrorHandler)(eventEmitter, extension)(error);
106700
+ throw error;
106409
106701
  }
106410
106702
  }
106411
106703
  }
@@ -106451,10 +106743,12 @@ var require_extensionProcessors = __commonJS({
106451
106743
  exports2.processStandardExtension = processStandardExtension;
106452
106744
  var finalize_extension_generation_1 = require_finalize_extension_generation();
106453
106745
  var create_scaffolding_1 = require_create_scaffolding();
106746
+ var codegen_flow_helpers_1 = require_codegen_flow_helpers();
106454
106747
  async function processStandardExtension(params) {
106455
106748
  const { extension, outputPath, plan, agentsFactory, eventEmitter, blueprint, userRequestSummary, previousResources } = params;
106456
106749
  const scaffolds = await (0, create_scaffolding_1.createScaffolding)(extension, outputPath, eventEmitter);
106457
106750
  const agent = agentsFactory.getAgent(extension);
106751
+ await (0, codegen_flow_helpers_1.addAgentTask)(extension, agent.name);
106458
106752
  eventEmitter.emitEvent("agent:start", {
106459
106753
  extension,
106460
106754
  name: agent.name
@@ -106468,7 +106762,7 @@ var require_extensionProcessors = __commonJS({
106468
106762
  ...userRequestSummary && { userRequestSummary },
106469
106763
  ...previousResources && { previousResources }
106470
106764
  });
106471
- (0, finalize_extension_generation_1.finalizeExtensionGeneration)({
106765
+ await (0, finalize_extension_generation_1.finalizeExtensionGeneration)({
106472
106766
  extension,
106473
106767
  agentName: agent.name,
106474
106768
  agentFiles: files,
@@ -106489,6 +106783,7 @@ var require_dashboardPage = __commonJS({
106489
106783
  var finalize_extension_generation_1 = require_finalize_extension_generation();
106490
106784
  var extensionProcessors_1 = require_extensionProcessors();
106491
106785
  var ditto_codegen_types_12 = require_dist();
106786
+ var codegen_flow_helpers_1 = require_codegen_flow_helpers();
106492
106787
  async function processDashboardPage(params) {
106493
106788
  const { extension, outputPath, plan, agentsFactory, eventEmitter, blueprint, userRequestSummary, previousResources } = params;
106494
106789
  const decisionAgent = agentsFactory.getAgent({
@@ -106530,6 +106825,7 @@ var require_dashboardPage = __commonJS({
106530
106825
  const autoPatternsGenerator = agentsFactory.getAgent({
106531
106826
  type: "AUTO_PATTERNS_GENERATOR"
106532
106827
  });
106828
+ await (0, codegen_flow_helpers_1.addAgentTask)(extension, "DashboardAgent");
106533
106829
  eventEmitter.emitEvent("agent:start", {
106534
106830
  extension,
106535
106831
  name: "DashboardAgent"
@@ -106540,7 +106836,7 @@ var require_dashboardPage = __commonJS({
106540
106836
  extensionName: extension.name || ""
106541
106837
  });
106542
106838
  const pagePath = files[0].path || "";
106543
- (0, finalize_extension_generation_1.finalizeExtensionGeneration)({
106839
+ await (0, finalize_extension_generation_1.finalizeExtensionGeneration)({
106544
106840
  extension,
106545
106841
  agentName: "DashboardAgent",
106546
106842
  agentFiles: files,
@@ -106562,6 +106858,7 @@ var require_servicePlugin = __commonJS({
106562
106858
  var finalize_extension_generation_1 = require_finalize_extension_generation();
106563
106859
  var create_scaffolding_1 = require_create_scaffolding();
106564
106860
  var ditto_codegen_types_12 = require_dist();
106861
+ var codegen_flow_helpers_1 = require_codegen_flow_helpers();
106565
106862
  async function processMultipleServicePluginScaffolds(params) {
106566
106863
  const { extension, scaffolds, outputPath, plan, agentsFactory, eventEmitter, blueprint, userRequestSummary, previousResources } = params;
106567
106864
  if (!extension.relatedSpis || extension.relatedSpis.length === 0) {
@@ -106582,6 +106879,7 @@ var require_servicePlugin = __commonJS({
106582
106879
  relatedSpis: [spi]
106583
106880
  };
106584
106881
  const agent = agentsFactory.getAgent(spiExtension);
106882
+ await (0, codegen_flow_helpers_1.addAgentTask)(spiExtension, agent.name);
106585
106883
  eventEmitter.emitEvent("agent:start", {
106586
106884
  extension: spiExtension,
106587
106885
  name: agent.name
@@ -106595,7 +106893,7 @@ var require_servicePlugin = __commonJS({
106595
106893
  ...userRequestSummary && { userRequestSummary },
106596
106894
  ...previousResources && { previousResources }
106597
106895
  });
106598
- (0, finalize_extension_generation_1.finalizeExtensionGeneration)({
106896
+ await (0, finalize_extension_generation_1.finalizeExtensionGeneration)({
106599
106897
  extension: spiExtension,
106600
106898
  agentName: agent.name,
106601
106899
  agentFiles: files,
@@ -106614,6 +106912,7 @@ var require_servicePlugin = __commonJS({
106614
106912
  return processMultipleServicePluginScaffolds({ ...params, scaffolds });
106615
106913
  }
106616
106914
  const agent = agentsFactory.getAgent(extension);
106915
+ await (0, codegen_flow_helpers_1.addAgentTask)(extension, agent.name);
106617
106916
  eventEmitter.emitEvent("agent:start", { extension, name: agent.name });
106618
106917
  const files = await agent.generate({
106619
106918
  extension,
@@ -106624,7 +106923,7 @@ var require_servicePlugin = __commonJS({
106624
106923
  ...userRequestSummary && { userRequestSummary },
106625
106924
  ...previousResources && { previousResources }
106626
106925
  });
106627
- (0, finalize_extension_generation_1.finalizeExtensionGeneration)({
106926
+ await (0, finalize_extension_generation_1.finalizeExtensionGeneration)({
106628
106927
  extension,
106629
106928
  agentName: agent.name,
106630
106929
  agentFiles: files,
@@ -106645,10 +106944,12 @@ var require_embeddedScript = __commonJS({
106645
106944
  var types_1 = require_types_impl2();
106646
106945
  var finalize_extension_generation_1 = require_finalize_extension_generation();
106647
106946
  var create_scaffolding_1 = require_create_scaffolding();
106947
+ var codegen_flow_helpers_1 = require_codegen_flow_helpers();
106648
106948
  async function processEmbeddedScriptExtension(params) {
106649
106949
  const { extension, outputPath, plan, agentsFactory, eventEmitter, blueprint, userRequestSummary, previousResources } = params;
106650
106950
  const scaffolds = await (0, create_scaffolding_1.createScaffolding)(extension, outputPath, eventEmitter);
106651
106951
  const embeddedScriptAgent = agentsFactory.getAgent(extension);
106952
+ await (0, codegen_flow_helpers_1.addAgentTask)(extension, embeddedScriptAgent.name);
106652
106953
  eventEmitter.emitEvent("agent:start", {
106653
106954
  extension,
106654
106955
  name: embeddedScriptAgent.name
@@ -106662,7 +106963,7 @@ var require_embeddedScript = __commonJS({
106662
106963
  ...userRequestSummary && { userRequestSummary },
106663
106964
  ...previousResources && { previousResources }
106664
106965
  });
106665
- (0, finalize_extension_generation_1.finalizeExtensionGeneration)({
106966
+ await (0, finalize_extension_generation_1.finalizeExtensionGeneration)({
106666
106967
  extension,
106667
106968
  agentName: embeddedScriptAgent.name,
106668
106969
  agentFiles: files,
@@ -106686,9 +106987,11 @@ var require_backendApi = __commonJS({
106686
106987
  Object.defineProperty(exports2, "__esModule", { value: true });
106687
106988
  exports2.processBackendApiExtension = processBackendApiExtension;
106688
106989
  var finalize_extension_generation_1 = require_finalize_extension_generation();
106990
+ var codegen_flow_helpers_1 = require_codegen_flow_helpers();
106689
106991
  async function processBackendApiExtension(params) {
106690
106992
  const { extension, outputPath, plan, agentsFactory, eventEmitter, blueprint, userRequestSummary, previousResources } = params;
106691
106993
  const backendApiAgent = agentsFactory.getAgent(extension);
106994
+ await (0, codegen_flow_helpers_1.addAgentTask)(extension, backendApiAgent.name);
106692
106995
  eventEmitter.emitEvent("agent:start", {
106693
106996
  extension,
106694
106997
  name: backendApiAgent.name
@@ -106701,7 +107004,7 @@ var require_backendApi = __commonJS({
106701
107004
  ...userRequestSummary && { userRequestSummary },
106702
107005
  ...previousResources && { previousResources }
106703
107006
  });
106704
- (0, finalize_extension_generation_1.finalizeExtensionGeneration)({
107007
+ await (0, finalize_extension_generation_1.finalizeExtensionGeneration)({
106705
107008
  extension,
106706
107009
  agentName: backendApiAgent.name,
106707
107010
  agentFiles: files,
@@ -106967,255 +107270,6 @@ var require_orchestrator = __commonJS({
106967
107270
  }
106968
107271
  });
106969
107272
 
106970
- // ../../node_modules/@wix/ambassador-ctp-ditto-v1-blueprint/build/cjs/http.impl.js
106971
- var require_http_impl2 = __commonJS({
106972
- "../../node_modules/@wix/ambassador-ctp-ditto-v1-blueprint/build/cjs/http.impl.js"(exports2) {
106973
- "use strict";
106974
- Object.defineProperty(exports2, "__esModule", { value: true });
106975
- exports2.getRequiredPermissions = exports2.editBlueprint = exports2.createAppName = exports2.createBlueprint = void 0;
106976
- var ambassador_1 = require_ambassador_index();
106977
- var metro_runtime_1 = require_cjs2();
106978
- var _createAppNameRequest = {};
106979
- var _createAppNameResponse = {};
106980
- var _createBlueprintRequest = {};
106981
- var _createBlueprintResponse = {};
106982
- var _editBlueprintRequest = {};
106983
- var _editBlueprintResponse = {};
106984
- var _getRequiredPermissionsRequest = {};
106985
- var _getRequiredPermissionsResponse = {};
106986
- function resolveComWixpressDittoBlueprintServiceApiDittoBlueprintServiceUrl(opts) {
106987
- var domainToMappings = {
106988
- "manage._base_domain_": [
106989
- {
106990
- srcPath: "/_api/ditto-blueprint-service-web",
106991
- destPath: ""
106992
- }
106993
- ]
106994
- };
106995
- return (0, metro_runtime_1.resolveUrl)(Object.assign(opts, { domainToMappings }));
106996
- }
106997
- function createBlueprint(payload) {
106998
- var _a = (0, ambassador_1.serializer)(_createBlueprintRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON;
106999
- var fromRes = (0, ambassador_1.serializer)(_createBlueprintResponse, {}).fromJSON;
107000
- function __createBlueprint(_a2) {
107001
- var host = _a2.host;
107002
- var serializedData = toReq(payload);
107003
- var metadata = {
107004
- entityFqdn: "wix.ctp.ditto.v1.blueprint",
107005
- method: "POST",
107006
- methodFqn: "com.wixpress.ditto_blueprint_service.api.DittoBlueprintService.CreateBlueprint",
107007
- migrationOptions: {
107008
- optInTransformResponse: true
107009
- },
107010
- url: resolveComWixpressDittoBlueprintServiceApiDittoBlueprintServiceUrl({
107011
- protoPath: "/v1/blueprints",
107012
- data: serializedData,
107013
- host
107014
- }),
107015
- data: serializedData,
107016
- transformResponse: fromRes
107017
- };
107018
- return metadata;
107019
- }
107020
- __createBlueprint.fromReq = fromReq;
107021
- __createBlueprint.__isAmbassador = true;
107022
- return __createBlueprint;
107023
- }
107024
- exports2.createBlueprint = createBlueprint;
107025
- function createAppName(payload) {
107026
- var _a = (0, ambassador_1.serializer)(_createAppNameRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON;
107027
- var fromRes = (0, ambassador_1.serializer)(_createAppNameResponse, {}).fromJSON;
107028
- function __createAppName(_a2) {
107029
- var host = _a2.host;
107030
- var serializedData = toReq(payload);
107031
- var metadata = {
107032
- entityFqdn: "wix.ctp.ditto.v1.blueprint",
107033
- method: "POST",
107034
- methodFqn: "com.wixpress.ditto_blueprint_service.api.DittoBlueprintService.CreateAppName",
107035
- migrationOptions: {
107036
- optInTransformResponse: true
107037
- },
107038
- url: resolveComWixpressDittoBlueprintServiceApiDittoBlueprintServiceUrl({
107039
- protoPath: "/v1/blueprints/app-name",
107040
- data: serializedData,
107041
- host
107042
- }),
107043
- data: serializedData,
107044
- transformResponse: fromRes
107045
- };
107046
- return metadata;
107047
- }
107048
- __createAppName.fromReq = fromReq;
107049
- __createAppName.__isAmbassador = true;
107050
- return __createAppName;
107051
- }
107052
- exports2.createAppName = createAppName;
107053
- function editBlueprint(payload) {
107054
- var _a = (0, ambassador_1.serializer)(_editBlueprintRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON;
107055
- var fromRes = (0, ambassador_1.serializer)(_editBlueprintResponse, {}).fromJSON;
107056
- function __editBlueprint(_a2) {
107057
- var host = _a2.host;
107058
- var serializedData = toReq(payload);
107059
- var metadata = {
107060
- entityFqdn: "wix.ctp.ditto.v1.blueprint",
107061
- method: "POST",
107062
- methodFqn: "com.wixpress.ditto_blueprint_service.api.DittoBlueprintService.EditBlueprint",
107063
- migrationOptions: {
107064
- optInTransformResponse: true
107065
- },
107066
- url: resolveComWixpressDittoBlueprintServiceApiDittoBlueprintServiceUrl({
107067
- protoPath: "/v1/blueprints/edit",
107068
- data: serializedData,
107069
- host
107070
- }),
107071
- data: serializedData,
107072
- transformResponse: fromRes
107073
- };
107074
- return metadata;
107075
- }
107076
- __editBlueprint.fromReq = fromReq;
107077
- __editBlueprint.__isAmbassador = true;
107078
- return __editBlueprint;
107079
- }
107080
- exports2.editBlueprint = editBlueprint;
107081
- function getRequiredPermissions(payload) {
107082
- var _a = (0, ambassador_1.serializer)(_getRequiredPermissionsRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON;
107083
- var fromRes = (0, ambassador_1.serializer)(_getRequiredPermissionsResponse, {}).fromJSON;
107084
- function __getRequiredPermissions(_a2) {
107085
- var host = _a2.host;
107086
- var serializedData = toReq(payload);
107087
- var metadata = {
107088
- entityFqdn: "wix.ctp.ditto.v1.blueprint",
107089
- method: "POST",
107090
- methodFqn: "com.wixpress.ditto_blueprint_service.api.DittoBlueprintService.GetRequiredPermissions",
107091
- migrationOptions: {
107092
- optInTransformResponse: true
107093
- },
107094
- url: resolveComWixpressDittoBlueprintServiceApiDittoBlueprintServiceUrl({
107095
- protoPath: "/v1/blueprints/required-permissions",
107096
- data: serializedData,
107097
- host
107098
- }),
107099
- data: serializedData,
107100
- transformResponse: fromRes
107101
- };
107102
- return metadata;
107103
- }
107104
- __getRequiredPermissions.fromReq = fromReq;
107105
- __getRequiredPermissions.__isAmbassador = true;
107106
- return __getRequiredPermissions;
107107
- }
107108
- exports2.getRequiredPermissions = getRequiredPermissions;
107109
- }
107110
- });
107111
-
107112
- // dist/flows/codegen-flow-helpers.js
107113
- var require_codegen_flow_helpers = __commonJS({
107114
- "dist/flows/codegen-flow-helpers.js"(exports2) {
107115
- "use strict";
107116
- var __importDefault2 = exports2 && exports2.__importDefault || function(mod) {
107117
- return mod && mod.__esModule ? mod : { "default": mod };
107118
- };
107119
- Object.defineProperty(exports2, "__esModule", { value: true });
107120
- exports2.setupAgentTaskTracking = setupAgentTaskTracking;
107121
- exports2.updateJobPayload = updateJobPayload;
107122
- exports2.updateParentTaskStatus = updateParentTaskStatus;
107123
- exports2.getOutputPath = getOutputPath;
107124
- exports2.getRequiredPermissions = getRequiredPermissions;
107125
- var path_1 = __importDefault2(require("path"));
107126
- var codeGenerationService_12 = require_codeGenerationService();
107127
- var ditto_codegen_types_12 = require_dist();
107128
- var utils_1 = require_utils15();
107129
- var http_1 = require_http_impl2();
107130
- var http_client_1 = require_index_node();
107131
- var orchestrator_1 = require_orchestrator();
107132
- var AgentsFactory_1 = require_AgentsFactory();
107133
- var slugify = (str = "") => {
107134
- return str.toLowerCase().replace(/ /g, "-");
107135
- };
107136
- function setupAgentTaskTracking(eventEmitter, jobContext) {
107137
- const getTaskId = (extension) => {
107138
- return `${jobContext.taskId}-${slugify(extension.name)}`;
107139
- };
107140
- eventEmitter.onEvent("agent:start", ({ extension }) => {
107141
- console.log(`[Agent] start: ${extension.name}`);
107142
- const taskId = getTaskId(extension);
107143
- codeGenerationService_12.codeGenerationService.addTask(jobContext.jobId, {
107144
- id: taskId,
107145
- kind: ditto_codegen_types_12.TaskKind.RUN_AGENT,
107146
- status: ditto_codegen_types_12.Status.RUNNING,
107147
- name: "run_agent",
107148
- description: `Run agent for ${extension.name}`,
107149
- payload: { extension },
107150
- agentName: new AgentsFactory_1.AgentsFactory().getAgent(extension).name
107151
- });
107152
- });
107153
- eventEmitter.onEvent("agent:done", ({ extension, files }) => {
107154
- console.log(`[Agent] done: ${extension.name}`);
107155
- const taskId = getTaskId(extension);
107156
- codeGenerationService_12.codeGenerationService.updateTask(jobContext.jobId, taskId, ditto_codegen_types_12.Status.COMPLETED, { taskOutput: { files } });
107157
- });
107158
- eventEmitter.onEvent("agent:error", async ({ extension, error }) => {
107159
- console.error(`[Agent] error: ${extension.name}`, error);
107160
- const taskId = getTaskId(extension);
107161
- await codeGenerationService_12.codeGenerationService.updateTask(jobContext.jobId, taskId, ditto_codegen_types_12.Status.FAILED, {
107162
- error: (0, utils_1.serializeError)(error)
107163
- });
107164
- });
107165
- const updateExtensionAgentTaskId = `${jobContext.taskId}-update-extension-agent`;
107166
- eventEmitter.onEvent("updateExtensionAgent:start", () => {
107167
- console.log(`[Agent] start: iterating existing code`);
107168
- codeGenerationService_12.codeGenerationService.addTask(jobContext.jobId, {
107169
- id: updateExtensionAgentTaskId,
107170
- kind: ditto_codegen_types_12.TaskKind.RUN_AGENT,
107171
- status: ditto_codegen_types_12.Status.RUNNING,
107172
- name: "run_agent",
107173
- description: "Iterating existing code",
107174
- agentName: "UpdateExtensionAgent"
107175
- });
107176
- });
107177
- eventEmitter.onEvent("updateExtensionAgent:done", ({ files }) => {
107178
- console.log(`[Agent] done: iterating existing code`);
107179
- codeGenerationService_12.codeGenerationService.updateTask(jobContext.jobId, updateExtensionAgentTaskId, ditto_codegen_types_12.Status.COMPLETED, { taskOutput: { files } });
107180
- });
107181
- eventEmitter.onEvent("updateExtensionAgent:error", async ({ error }) => {
107182
- console.error(`[Agent] error: iterating existing code`, error);
107183
- await codeGenerationService_12.codeGenerationService.updateTask(jobContext.jobId, updateExtensionAgentTaskId, ditto_codegen_types_12.Status.FAILED, {
107184
- error: (0, utils_1.serializeError)(error)
107185
- });
107186
- });
107187
- }
107188
- async function updateJobPayload(jobContext, payload) {
107189
- await codeGenerationService_12.codeGenerationService.updateJob(jobContext.jobId, payload);
107190
- }
107191
- async function updateParentTaskStatus(jobContext, status, error) {
107192
- await codeGenerationService_12.codeGenerationService.updateTask(jobContext.jobId, jobContext.taskId, status, error ? { error: (0, utils_1.serializeError)(error) } : {});
107193
- }
107194
- function getOutputPath() {
107195
- const outputDir = process.env.OUTPUT_PATH || orchestrator_1.DittoOrchestrator.DEFAULT_OUTPUT_PATH;
107196
- return outputDir.startsWith("/") ? outputDir : path_1.default.join(process.cwd(), outputDir);
107197
- }
107198
- async function getRequiredPermissions(extensions) {
107199
- const httpClient = (0, http_client_1.createHttpClient)({
107200
- baseURL: "https://manage.wix.com"
107201
- });
107202
- return httpClient.request((0, http_1.getRequiredPermissions)({
107203
- relatedApis: getRelatedApis(extensions ?? []),
107204
- extensionTypes: getExtensionTypes(extensions ?? [])
107205
- }));
107206
- }
107207
- function getExtensionTypes(extensions) {
107208
- return Array.from(new Set((extensions ?? []).map(({ type }) => type).filter(Boolean)));
107209
- }
107210
- function getRelatedApis(extensions) {
107211
- return Array.from(new Set((extensions ?? []).flatMap((ext) => [
107212
- ...(ext.relatedApis ?? []).map(({ name }) => name).filter(Boolean),
107213
- ...(ext.relatedSpis ?? []).map(({ name }) => name).filter(Boolean)
107214
- ])));
107215
- }
107216
- }
107217
- });
107218
-
107219
107273
  // dist/flows/init-codegen.js
107220
107274
  var require_init_codegen = __commonJS({
107221
107275
  "dist/flows/init-codegen.js"(exports2) {
@@ -107241,7 +107295,6 @@ var require_init_codegen = __commonJS({
107241
107295
  const outputPath = (0, codegen_flow_helpers_1.getOutputPath)();
107242
107296
  const agentsFactory = new AgentsFactory_1.AgentsFactory(false);
107243
107297
  const orchestrator = new orchestrator_1.DittoOrchestrator(agentsFactory);
107244
- (0, codegen_flow_helpers_1.setupAgentTaskTracking)(orchestrator, localJobContext);
107245
107298
  (0, cli_listeners_1.attachOrchestratorListeners)(orchestrator);
107246
107299
  try {
107247
107300
  const requiredPermissionsResponse = await (0, codegen_flow_helpers_1.getRequiredPermissions)(blueprint?.extensions ?? []);
@@ -321047,6 +321100,7 @@ var require_IterationOrchestrator = __commonJS({
321047
321100
  var write_file_1 = require_write_file();
321048
321101
  var projectContext_1 = require_projectContext();
321049
321102
  var ditto_codegen_types_12 = require_dist();
321103
+ var codegen_flow_helpers_1 = require_codegen_flow_helpers();
321050
321104
  var IterationOrchestrator = class extends DittoEventEmitter_1.DittoEventEmitter {
321051
321105
  constructor(agentsFactory) {
321052
321106
  super();
@@ -321145,6 +321199,7 @@ var require_IterationOrchestrator = __commonJS({
321145
321199
  return iterationPlan;
321146
321200
  }
321147
321201
  async processExistingExtensions({ currentExtensions, userRequestSummary, outputPath, plan, previousResources }) {
321202
+ await (0, codegen_flow_helpers_1.addUpdateExtensionAgentTask)();
321148
321203
  this.emitEvent("updateExtensionAgent:start", {});
321149
321204
  try {
321150
321205
  const updateExtensionAgent = this.agentsFactory.getAgent({
@@ -321157,10 +321212,12 @@ var require_IterationOrchestrator = __commonJS({
321157
321212
  plan,
321158
321213
  previousResources
321159
321214
  });
321215
+ await (0, codegen_flow_helpers_1.completeUpdateExtensionAgentTask)(result.filesModified);
321160
321216
  this.emitEvent("updateExtensionAgent:done", {
321161
321217
  files: result.filesModified
321162
321218
  });
321163
321219
  } catch (error) {
321220
+ await (0, codegen_flow_helpers_1.failUpdateExtensionAgentTask)(error);
321164
321221
  this.emitEvent("updateExtensionAgent:error", {
321165
321222
  error: error instanceof Error ? error : new Error(String(error))
321166
321223
  });
@@ -321312,7 +321369,6 @@ var require_iterate_codegen = __commonJS({
321312
321369
  const outputPath = (0, codegen_flow_helpers_1.getOutputPath)();
321313
321370
  const agentsFactory = new AgentsFactory_1.AgentsFactory(true);
321314
321371
  const iterationOrchestrator = new IterationOrchestrator_1.IterationOrchestrator(agentsFactory);
321315
- (0, codegen_flow_helpers_1.setupAgentTaskTracking)(iterationOrchestrator, localJobContext);
321316
321372
  (0, cli_listeners_1.attachOrchestratorListeners)(iterationOrchestrator);
321317
321373
  const { iterationPlan, previousResources } = await iterationOrchestrator.getContextualIterationPlan({
321318
321374
  outputPath,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/ditto-codegen-public",
3
- "version": "1.0.224",
3
+ "version": "1.0.225",
4
4
  "description": "AI-powered Wix CLI app generator - standalone executable",
5
5
  "scripts": {
6
6
  "build": "node build.mjs",
@@ -24,5 +24,5 @@
24
24
  "@wix/ditto-codegen": "1.0.0",
25
25
  "esbuild": "^0.27.2"
26
26
  },
27
- "falconPackageHash": "1e549b1ddd90b38c0b686c3a88c0f58f61962e63b35e56bed65d29d0"
27
+ "falconPackageHash": "2e7d0b6dea61740e43a2e46910e0abf3709a19aed36a59e7b403b2cc"
28
28
  }