@wix/ditto-codegen-public 1.0.252 → 1.0.254

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 +103 -50
  2. package/package.json +2 -2
package/dist/out.js CHANGED
@@ -58305,12 +58305,12 @@ var require_orchestrator_error_helpers = __commonJS({
58305
58305
  exports2.createExtensionErrorHandler = createExtensionErrorHandler;
58306
58306
  exports2.throwIfFailures = throwIfFailures;
58307
58307
  var ditto_codegen_types_12 = require_dist4();
58308
- var codegen_flow_helpers_1 = require_codegen_flow_helpers();
58308
+ var codegen_flow_helpers_12 = require_codegen_flow_helpers();
58309
58309
  var logger_12 = require_logger();
58310
58310
  function createExtensionErrorHandler(eventEmitter, extension) {
58311
58311
  return async (error48) => {
58312
58312
  const codegenError = (0, ditto_codegen_types_12.toCodegenError)(error48);
58313
- await (0, codegen_flow_helpers_1.failAgentTask)(extension, codegenError);
58313
+ await (0, codegen_flow_helpers_12.failAgentTask)(extension, codegenError);
58314
58314
  eventEmitter.emitEvent("agent:error", {
58315
58315
  extension,
58316
58316
  error: codegenError
@@ -91451,9 +91451,21 @@ var require_sdk_picker_agent_instructions = __commonJS({
91451
91451
  id: "current-0",
91452
91452
  relatedApis: [
91453
91453
  {
91454
- api: "stores.productsV3.queryProducts",
91455
- reason: "Query products to display in dashboard",
91454
+ api: "stores.catalogVersioning.getCatalogVersion",
91455
+ reason: "Detect catalog version (V1 or V3) to use correct API",
91456
91456
  score: 95,
91457
+ docsUrl: "https://dev.wix.com/docs/sdk/backend-modules/stores/catalog-versioning/get-catalog-version"
91458
+ },
91459
+ {
91460
+ api: "stores.products.queryProducts",
91461
+ reason: "Query products for V1 catalog sites",
91462
+ score: 90,
91463
+ docsUrl: "https://dev.wix.com/docs/sdk/backend-modules/stores/products/query-products"
91464
+ },
91465
+ {
91466
+ api: "stores.productsV3.queryProducts",
91467
+ reason: "Query products for V3 catalog sites",
91468
+ score: 90,
91457
91469
  docsUrl: "https://dev.wix.com/docs/sdk/backend-modules/stores/catalog-v3/products-v3/query-products"
91458
91470
  }
91459
91471
  ]
@@ -91566,11 +91578,14 @@ Given an array of extensions (each with a unique ID):
91566
91578
  - **DO NOT suggest unrelated SPIs**
91567
91579
  - **One SPI per service plugin is usually enough** - the SPI handler is the core functionality
91568
91580
 
91569
- **Use V3 APIs:**
91570
- - **ALWAYS use V3 versions for products** - our platform uses V3 exclusively
91571
- - **For products:** \`stores.productsV3.queryProducts\`, \`stores.productsV3.getProduct\`, \`stores.productsV3.createProduct\`, etc.
91572
- - **NEVER use older versions** like \`stores.products\` or \`stores.productsV2\`
91573
- - **Search with "productsV3" or "Catalog V3"**`;
91581
+ **Wix Stores Catalog Versioning (CRITICAL):**
91582
+ - **Wix Stores has TWO incompatible catalog versions** - sites may use V1 or V3
91583
+ - **ALWAYS include BOTH V1 and V3 APIs** when working with Stores products/inventory
91584
+ - **ALWAYS include \`stores.catalogVersioning.getCatalogVersion\`** for version detection
91585
+ - **V1 APIs:** \`stores.products\`, \`stores.inventory\` (legacy sites)
91586
+ - **V3 APIs:** \`stores.productsV3\`, \`stores.inventoryItemsV3\` (current sites)
91587
+ - **Search for both versions:** "products queryProducts" AND "productsV3 queryProducts"
91588
+ - **The generated code must check catalog version at runtime and use the appropriate API**`;
91574
91589
  exports2.sdkPickerAgentConstraints = `- **BE SPECIFIC**: Use exact API method names (e.g., 'ecom.orders.getOrder', not just 'orders')
91575
91590
  - **SCORE ACCURATELY**: Give honest scores - don't inflate, be realistic about importance
91576
91591
  - **EXPLAIN CLEARLY**: Each API must have a clear reason explaining its specific purpose
@@ -93398,7 +93413,7 @@ var require_finalize_extension_generation = __commonJS({
93398
93413
  var file_collector_1 = require_file_collector();
93399
93414
  var orchestrator_error_helpers_1 = require_orchestrator_error_helpers();
93400
93415
  var write_file_1 = require_write_file();
93401
- var codegen_flow_helpers_1 = require_codegen_flow_helpers();
93416
+ var codegen_flow_helpers_12 = require_codegen_flow_helpers();
93402
93417
  async function finalizeExtensionGeneration(options, eventEmitter) {
93403
93418
  const { extension, agentName, agentFiles, scaffolds = [], scaffoldPath, outputPath, generatedConfig } = options;
93404
93419
  try {
@@ -93418,7 +93433,7 @@ var require_finalize_extension_generation = __commonJS({
93418
93433
  outputPath,
93419
93434
  existingFiles
93420
93435
  });
93421
- await (0, codegen_flow_helpers_1.completeAgentTask)(extension, allCreatedFiles);
93436
+ await (0, codegen_flow_helpers_12.completeAgentTask)(extension, allCreatedFiles);
93422
93437
  eventEmitter.emitEvent("agent:done", {
93423
93438
  extension,
93424
93439
  name: agentName,
@@ -93473,12 +93488,12 @@ var require_extensionProcessors = __commonJS({
93473
93488
  exports2.processStandardExtension = processStandardExtension;
93474
93489
  var finalize_extension_generation_1 = require_finalize_extension_generation();
93475
93490
  var create_scaffolding_1 = require_create_scaffolding();
93476
- var codegen_flow_helpers_1 = require_codegen_flow_helpers();
93491
+ var codegen_flow_helpers_12 = require_codegen_flow_helpers();
93477
93492
  async function processStandardExtension(params) {
93478
93493
  const { extension, outputPath, plan, agentsFactory, eventEmitter, blueprint, userRequestSummary, previousResources } = params;
93479
93494
  const scaffolds = await (0, create_scaffolding_1.createScaffolding)(extension, outputPath, eventEmitter);
93480
93495
  const agent = agentsFactory.getAgent(extension);
93481
- await (0, codegen_flow_helpers_1.addAgentTask)(extension, agent.name);
93496
+ await (0, codegen_flow_helpers_12.addAgentTask)(extension, agent.name);
93482
93497
  eventEmitter.emitEvent("agent:start", {
93483
93498
  extension,
93484
93499
  name: agent.name
@@ -93514,7 +93529,7 @@ var require_dashboardPage = __commonJS({
93514
93529
  var extensionProcessors_1 = require_extensionProcessors();
93515
93530
  var logger_12 = require_logger();
93516
93531
  var ditto_codegen_types_12 = require_dist4();
93517
- var codegen_flow_helpers_1 = require_codegen_flow_helpers();
93532
+ var codegen_flow_helpers_12 = require_codegen_flow_helpers();
93518
93533
  async function processDashboardPage(params) {
93519
93534
  const { extension, outputPath, plan, agentsFactory, eventEmitter, blueprint, userRequestSummary, previousResources } = params;
93520
93535
  const decisionAgent = agentsFactory.getAgent({
@@ -93556,7 +93571,7 @@ var require_dashboardPage = __commonJS({
93556
93571
  const autoPatternsGenerator = agentsFactory.getAgent({
93557
93572
  type: "AUTO_PATTERNS_GENERATOR"
93558
93573
  });
93559
- await (0, codegen_flow_helpers_1.addAgentTask)(extension, "DashboardAgent");
93574
+ await (0, codegen_flow_helpers_12.addAgentTask)(extension, "DashboardAgent");
93560
93575
  eventEmitter.emitEvent("agent:start", {
93561
93576
  extension,
93562
93577
  name: "DashboardAgent"
@@ -93589,7 +93604,7 @@ var require_servicePlugin = __commonJS({
93589
93604
  var finalize_extension_generation_1 = require_finalize_extension_generation();
93590
93605
  var create_scaffolding_1 = require_create_scaffolding();
93591
93606
  var ditto_codegen_types_12 = require_dist4();
93592
- var codegen_flow_helpers_1 = require_codegen_flow_helpers();
93607
+ var codegen_flow_helpers_12 = require_codegen_flow_helpers();
93593
93608
  async function processMultipleServicePluginScaffolds(params) {
93594
93609
  const { extension, scaffolds, outputPath, plan, agentsFactory, eventEmitter, blueprint, userRequestSummary, previousResources } = params;
93595
93610
  if (!extension.relatedSpis || extension.relatedSpis.length === 0) {
@@ -93610,7 +93625,7 @@ var require_servicePlugin = __commonJS({
93610
93625
  relatedSpis: [spi]
93611
93626
  };
93612
93627
  const agent = agentsFactory.getAgent(spiExtension);
93613
- await (0, codegen_flow_helpers_1.addAgentTask)(spiExtension, agent.name);
93628
+ await (0, codegen_flow_helpers_12.addAgentTask)(spiExtension, agent.name);
93614
93629
  eventEmitter.emitEvent("agent:start", {
93615
93630
  extension: spiExtension,
93616
93631
  name: agent.name
@@ -93643,7 +93658,7 @@ var require_servicePlugin = __commonJS({
93643
93658
  return processMultipleServicePluginScaffolds({ ...params, scaffolds });
93644
93659
  }
93645
93660
  const agent = agentsFactory.getAgent(extension);
93646
- await (0, codegen_flow_helpers_1.addAgentTask)(extension, agent.name);
93661
+ await (0, codegen_flow_helpers_12.addAgentTask)(extension, agent.name);
93647
93662
  eventEmitter.emitEvent("agent:start", { extension, name: agent.name });
93648
93663
  const files = await agent.generate({
93649
93664
  extension,
@@ -93675,12 +93690,12 @@ var require_embeddedScript = __commonJS({
93675
93690
  var types_1 = require_types_impl2();
93676
93691
  var finalize_extension_generation_1 = require_finalize_extension_generation();
93677
93692
  var create_scaffolding_1 = require_create_scaffolding();
93678
- var codegen_flow_helpers_1 = require_codegen_flow_helpers();
93693
+ var codegen_flow_helpers_12 = require_codegen_flow_helpers();
93679
93694
  async function processEmbeddedScriptExtension(params) {
93680
93695
  const { extension, outputPath, plan, agentsFactory, eventEmitter, blueprint, userRequestSummary, previousResources } = params;
93681
93696
  const scaffolds = await (0, create_scaffolding_1.createScaffolding)(extension, outputPath, eventEmitter);
93682
93697
  const embeddedScriptAgent = agentsFactory.getAgent(extension);
93683
- await (0, codegen_flow_helpers_1.addAgentTask)(extension, embeddedScriptAgent.name);
93698
+ await (0, codegen_flow_helpers_12.addAgentTask)(extension, embeddedScriptAgent.name);
93684
93699
  eventEmitter.emitEvent("agent:start", {
93685
93700
  extension,
93686
93701
  name: embeddedScriptAgent.name
@@ -93718,11 +93733,11 @@ var require_backendApi = __commonJS({
93718
93733
  Object.defineProperty(exports2, "__esModule", { value: true });
93719
93734
  exports2.processBackendApiExtension = processBackendApiExtension;
93720
93735
  var finalize_extension_generation_1 = require_finalize_extension_generation();
93721
- var codegen_flow_helpers_1 = require_codegen_flow_helpers();
93736
+ var codegen_flow_helpers_12 = require_codegen_flow_helpers();
93722
93737
  async function processBackendApiExtension(params) {
93723
93738
  const { extension, outputPath, plan, agentsFactory, eventEmitter, blueprint, userRequestSummary, previousResources } = params;
93724
93739
  const backendApiAgent = agentsFactory.getAgent(extension);
93725
- await (0, codegen_flow_helpers_1.addAgentTask)(extension, backendApiAgent.name);
93740
+ await (0, codegen_flow_helpers_12.addAgentTask)(extension, backendApiAgent.name);
93726
93741
  eventEmitter.emitEvent("agent:start", {
93727
93742
  extension,
93728
93743
  name: backendApiAgent.name
@@ -94173,7 +94188,7 @@ var require_opencode_init = __commonJS({
94173
94188
  var job_context_storage_12 = require_job_context_storage();
94174
94189
  var OpenCodeOrchestrator_1 = require_OpenCodeOrchestrator();
94175
94190
  var ditto_codegen_types_12 = require_dist4();
94176
- var codegen_flow_helpers_1 = require_codegen_flow_helpers();
94191
+ var codegen_flow_helpers_12 = require_codegen_flow_helpers();
94177
94192
  var ditto_codegen_types_2 = require_dist4();
94178
94193
  var context_12 = require_context();
94179
94194
  var logger_12 = require_logger();
@@ -94191,7 +94206,7 @@ var require_opencode_init = __commonJS({
94191
94206
  await codeGenerationService_12.codeGenerationService.updateTask(localJobContext.jobId, localJobContext.taskId, ditto_codegen_types_12.Status.RUNNING, {});
94192
94207
  jobLog.info(`[OpenCode Init] Marked task RUNNING: jobId=${localJobContext.jobId}, taskId=${localJobContext.taskId}`);
94193
94208
  try {
94194
- const outputPath = (0, codegen_flow_helpers_1.getOutputPath)();
94209
+ const outputPath = (0, codegen_flow_helpers_12.getOutputPath)();
94195
94210
  const orchestrator = new OpenCodeOrchestrator_1.OpenCodeOrchestrator();
94196
94211
  (0, cli_listeners_1.attachOrchestratorListeners)(orchestrator);
94197
94212
  const result = await orchestrator.generateCode({
@@ -94200,7 +94215,7 @@ var require_opencode_init = __commonJS({
94200
94215
  projectId: context_12.ctx.projectId,
94201
94216
  history
94202
94217
  });
94203
- await (0, codegen_flow_helpers_1.updateJobPayload)(localJobContext, {
94218
+ await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, {
94204
94219
  requiredPermissions: result.requiredPermissions,
94205
94220
  history
94206
94221
  });
@@ -94215,12 +94230,12 @@ var require_opencode_init = __commonJS({
94215
94230
  jobLog.info(`[OpenCode Init] Completed opencode init task: jobId=${localJobContext.jobId}, taskId=${localJobContext.taskId}`);
94216
94231
  } catch (error48) {
94217
94232
  const codegenError = (0, ditto_codegen_types_2.toCodegenError)(error48);
94218
- await (0, codegen_flow_helpers_1.updateJobPayload)(localJobContext, {
94233
+ await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, {
94219
94234
  requiredPermissions: [],
94220
94235
  requiredPermissionsErrors: codegenError,
94221
94236
  history
94222
94237
  });
94223
- await (0, codegen_flow_helpers_1.updateParentTaskStatus)(localJobContext, ditto_codegen_types_12.Status.FAILED, codegenError);
94238
+ await (0, codegen_flow_helpers_12.updateParentTaskStatus)(localJobContext, ditto_codegen_types_12.Status.FAILED, codegenError);
94224
94239
  jobLog.error(`[OpenCode Init] Failed opencode init task: jobId=${localJobContext.jobId}, taskId=${localJobContext.taskId}`, { error: error48 instanceof Error ? error48.message : String(error48) });
94225
94240
  }
94226
94241
  };
@@ -94293,7 +94308,7 @@ var require_opencode_iterate = __commonJS({
94293
94308
  var job_context_storage_12 = require_job_context_storage();
94294
94309
  var ditto_codegen_types_12 = require_dist4();
94295
94310
  var OpenCodeIterationOrchestrator_1 = require_OpenCodeIterationOrchestrator();
94296
- var codegen_flow_helpers_1 = require_codegen_flow_helpers();
94311
+ var codegen_flow_helpers_12 = require_codegen_flow_helpers();
94297
94312
  var ditto_codegen_types_2 = require_dist4();
94298
94313
  var context_12 = require_context();
94299
94314
  var logger_12 = require_logger();
@@ -94311,7 +94326,7 @@ var require_opencode_iterate = __commonJS({
94311
94326
  await codeGenerationService_12.codeGenerationService.updateTask(localJobContext.jobId, localJobContext.taskId, ditto_codegen_types_12.Status.RUNNING, {});
94312
94327
  jobLog.info(`[OpenCode Iterate] Marked task RUNNING: jobId=${localJobContext.jobId}, taskId=${localJobContext.taskId}`);
94313
94328
  try {
94314
- const outputPath = (0, codegen_flow_helpers_1.getOutputPath)();
94329
+ const outputPath = (0, codegen_flow_helpers_12.getOutputPath)();
94315
94330
  const iterationOrchestrator = new OpenCodeIterationOrchestrator_1.OpenCodeIterationOrchestrator();
94316
94331
  (0, cli_listeners_1.attachOrchestratorListeners)(iterationOrchestrator);
94317
94332
  const result = await iterationOrchestrator.generateIterationCode({
@@ -94319,7 +94334,7 @@ var require_opencode_iterate = __commonJS({
94319
94334
  projectId: context_12.ctx.projectId,
94320
94335
  chatHistory
94321
94336
  });
94322
- await (0, codegen_flow_helpers_1.updateJobPayload)(localJobContext, {
94337
+ await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, {
94323
94338
  requiredPermissions: result.requiredPermissions
94324
94339
  });
94325
94340
  await codeGenerationService_12.codeGenerationService.updateTask(localJobContext.jobId, localJobContext.taskId, ditto_codegen_types_12.Status.COMPLETED, {
@@ -94333,11 +94348,11 @@ var require_opencode_iterate = __commonJS({
94333
94348
  jobLog.info("[OpenCode Iterate] Completed task");
94334
94349
  } catch (error48) {
94335
94350
  const codegenError = (0, ditto_codegen_types_2.toCodegenError)(error48);
94336
- await (0, codegen_flow_helpers_1.updateJobPayload)(localJobContext, {
94351
+ await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, {
94337
94352
  requiredPermissions: [],
94338
94353
  requiredPermissionsErrors: codegenError
94339
94354
  });
94340
- await (0, codegen_flow_helpers_1.updateParentTaskStatus)(localJobContext, ditto_codegen_types_12.Status.FAILED, codegenError);
94355
+ await (0, codegen_flow_helpers_12.updateParentTaskStatus)(localJobContext, ditto_codegen_types_12.Status.FAILED, codegenError);
94341
94356
  jobLog.error("[OpenCode Iterate] Failed task", {
94342
94357
  error: error48 instanceof Error ? error48.message : String(error48)
94343
94358
  });
@@ -127768,7 +127783,7 @@ var require_init_codegen = __commonJS({
127768
127783
  var job_context_storage_12 = require_job_context_storage();
127769
127784
  var orchestrator_1 = require_orchestrator();
127770
127785
  var ditto_codegen_types_12 = require_dist4();
127771
- var codegen_flow_helpers_1 = require_codegen_flow_helpers();
127786
+ var codegen_flow_helpers_12 = require_codegen_flow_helpers();
127772
127787
  var ditto_codegen_types_2 = require_dist4();
127773
127788
  var logger_12 = require_logger();
127774
127789
  var runInitCodegenFlow = async (blueprint, history) => {
@@ -127778,20 +127793,20 @@ var require_init_codegen = __commonJS({
127778
127793
  await codeGenerationService_12.codeGenerationService.updateTask(localJobContext.jobId, localJobContext.taskId, ditto_codegen_types_12.Status.RUNNING, {});
127779
127794
  jobLog.info(`[Init] Marked task RUNNING: jobId=${localJobContext.jobId}, taskId=${localJobContext.taskId}`);
127780
127795
  try {
127781
- const outputPath = (0, codegen_flow_helpers_1.getOutputPath)();
127796
+ const outputPath = (0, codegen_flow_helpers_12.getOutputPath)();
127782
127797
  const agentsFactory = new AgentsFactory_1.AgentsFactory(false);
127783
127798
  const orchestrator = new orchestrator_1.DittoOrchestrator(agentsFactory);
127784
127799
  (0, cli_listeners_1.attachOrchestratorListeners)(orchestrator);
127785
127800
  try {
127786
- const requiredPermissionsResponse = await (0, codegen_flow_helpers_1.getRequiredPermissions)(blueprint?.extensions ?? []);
127787
- await (0, codegen_flow_helpers_1.updateJobPayload)(localJobContext, {
127801
+ const requiredPermissionsResponse = await (0, codegen_flow_helpers_12.getRequiredPermissions)(blueprint?.extensions ?? []);
127802
+ await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, {
127788
127803
  requiredPermissions: requiredPermissionsResponse?.data?.requiredPermissions ?? [],
127789
127804
  history
127790
127805
  });
127791
127806
  } catch (error48) {
127792
127807
  const codegenError = (0, ditto_codegen_types_2.toCodegenError)(error48);
127793
127808
  jobLog.error(`[Init] Failed to get required permissions: jobId=${localJobContext.jobId}, taskId=${localJobContext.taskId}`, { error: error48 instanceof Error ? error48.message : String(error48) });
127794
- await (0, codegen_flow_helpers_1.updateJobPayload)(localJobContext, {
127809
+ await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, {
127795
127810
  requiredPermissions: [],
127796
127811
  requiredPermissionsErrors: codegenError,
127797
127812
  history
@@ -127803,11 +127818,11 @@ var require_init_codegen = __commonJS({
127803
127818
  appNamespace: context_12.ctx.appNamespace,
127804
127819
  history
127805
127820
  });
127806
- await (0, codegen_flow_helpers_1.updateParentTaskStatus)(localJobContext, ditto_codegen_types_12.Status.COMPLETED);
127821
+ await (0, codegen_flow_helpers_12.updateParentTaskStatus)(localJobContext, ditto_codegen_types_12.Status.COMPLETED);
127807
127822
  jobLog.info(`[Init] Completed init codegen task: jobId=${localJobContext.jobId}, taskId=${localJobContext.taskId}`);
127808
127823
  } catch (error48) {
127809
127824
  const codegenError = (0, ditto_codegen_types_2.toCodegenError)(error48);
127810
- await (0, codegen_flow_helpers_1.updateParentTaskStatus)(localJobContext, ditto_codegen_types_12.Status.FAILED, codegenError);
127825
+ await (0, codegen_flow_helpers_12.updateParentTaskStatus)(localJobContext, ditto_codegen_types_12.Status.FAILED, codegenError);
127811
127826
  jobLog.error(`[Init] Failed init codegen task: jobId=${localJobContext.jobId}, taskId=${localJobContext.taskId}`, { error: error48 instanceof Error ? error48.message : String(error48) });
127812
127827
  }
127813
127828
  };
@@ -341592,7 +341607,7 @@ var require_IterationOrchestrator = __commonJS({
341592
341607
  var write_file_1 = require_write_file();
341593
341608
  var projectContext_1 = require_projectContext();
341594
341609
  var ditto_codegen_types_12 = require_dist4();
341595
- var codegen_flow_helpers_1 = require_codegen_flow_helpers();
341610
+ var codegen_flow_helpers_12 = require_codegen_flow_helpers();
341596
341611
  var IterationOrchestrator = class extends DittoEventEmitter_1.DittoEventEmitter {
341597
341612
  constructor(agentsFactory) {
341598
341613
  super();
@@ -341685,7 +341700,7 @@ var require_IterationOrchestrator = __commonJS({
341685
341700
  return iterationPlan;
341686
341701
  }
341687
341702
  async processExistingExtensions({ currentExtensions, userRequestSummary, outputPath, plan, previousResources }) {
341688
- await (0, codegen_flow_helpers_1.addUpdateExtensionAgentTask)();
341703
+ await (0, codegen_flow_helpers_12.addUpdateExtensionAgentTask)();
341689
341704
  this.emitEvent("updateExtensionAgent:start", {});
341690
341705
  try {
341691
341706
  const updateExtensionAgent = this.agentsFactory.getAgent({
@@ -341698,12 +341713,12 @@ var require_IterationOrchestrator = __commonJS({
341698
341713
  plan,
341699
341714
  previousResources
341700
341715
  });
341701
- await (0, codegen_flow_helpers_1.completeUpdateExtensionAgentTask)(result.filesModified);
341716
+ await (0, codegen_flow_helpers_12.completeUpdateExtensionAgentTask)(result.filesModified);
341702
341717
  this.emitEvent("updateExtensionAgent:done", {
341703
341718
  files: result.filesModified
341704
341719
  });
341705
341720
  } catch (error48) {
341706
- await (0, codegen_flow_helpers_1.failUpdateExtensionAgentTask)(error48);
341721
+ await (0, codegen_flow_helpers_12.failUpdateExtensionAgentTask)(error48);
341707
341722
  this.emitEvent("updateExtensionAgent:error", {
341708
341723
  error: error48 instanceof Error ? error48 : new Error(String(error48))
341709
341724
  });
@@ -341843,7 +341858,7 @@ var require_iterate_codegen = __commonJS({
341843
341858
  var job_context_storage_12 = require_job_context_storage();
341844
341859
  var ditto_codegen_types_12 = require_dist4();
341845
341860
  var IterationOrchestrator_1 = require_IterationOrchestrator();
341846
- var codegen_flow_helpers_1 = require_codegen_flow_helpers();
341861
+ var codegen_flow_helpers_12 = require_codegen_flow_helpers();
341847
341862
  var ditto_codegen_types_2 = require_dist4();
341848
341863
  var logger_12 = require_logger();
341849
341864
  var runIterateCodegenFlow = async (chatHistory) => {
@@ -341853,7 +341868,7 @@ var require_iterate_codegen = __commonJS({
341853
341868
  await codeGenerationService_12.codeGenerationService.updateTask(localJobContext.jobId, localJobContext.taskId, ditto_codegen_types_12.Status.RUNNING, {});
341854
341869
  jobLog.info(`[Iterate] Marked task RUNNING: jobId=${localJobContext.jobId}, taskId=${localJobContext.taskId}`);
341855
341870
  try {
341856
- const outputPath = (0, codegen_flow_helpers_1.getOutputPath)();
341871
+ const outputPath = (0, codegen_flow_helpers_12.getOutputPath)();
341857
341872
  const agentsFactory = new AgentsFactory_1.AgentsFactory(true);
341858
341873
  const iterationOrchestrator = new IterationOrchestrator_1.IterationOrchestrator(agentsFactory);
341859
341874
  (0, cli_listeners_1.attachOrchestratorListeners)(iterationOrchestrator);
@@ -341867,29 +341882,29 @@ var require_iterate_codegen = __commonJS({
341867
341882
  appNamespace: context_12.ctx.appNamespace,
341868
341883
  iterationPlanAndPreviousResources: { iterationPlan, previousResources }
341869
341884
  });
341870
- await (0, codegen_flow_helpers_1.updateParentTaskStatus)(localJobContext, ditto_codegen_types_12.Status.COMPLETED);
341885
+ await (0, codegen_flow_helpers_12.updateParentTaskStatus)(localJobContext, ditto_codegen_types_12.Status.COMPLETED);
341871
341886
  jobLog.info(`[Iterate] Completed iterate codegen task: jobId=${localJobContext.jobId}, taskId=${localJobContext.taskId}`);
341872
341887
  } catch (error48) {
341873
341888
  const codegenError = (0, ditto_codegen_types_2.toCodegenError)(error48);
341874
- await (0, codegen_flow_helpers_1.updateParentTaskStatus)(localJobContext, ditto_codegen_types_12.Status.FAILED, codegenError);
341889
+ await (0, codegen_flow_helpers_12.updateParentTaskStatus)(localJobContext, ditto_codegen_types_12.Status.FAILED, codegenError);
341875
341890
  jobLog.error(`[Iterate] Failed iterate codegen task: jobId=${localJobContext.jobId}, taskId=${localJobContext.taskId}`, { error: error48 instanceof Error ? error48.message : String(error48) });
341876
341891
  }
341877
341892
  };
341878
341893
  exports2.runIterateCodegenFlow = runIterateCodegenFlow;
341879
341894
  async function updateRequiredPermissions(iterationPlan, localJobContext) {
341880
341895
  try {
341881
- const requiredPermissionsResponse = await (0, codegen_flow_helpers_1.getRequiredPermissions)([
341896
+ const requiredPermissionsResponse = await (0, codegen_flow_helpers_12.getRequiredPermissions)([
341882
341897
  ...iterationPlan.additionalExtensions.map((extension) => extension.extension),
341883
341898
  ...iterationPlan.currentExtensions.map((extension) => extension.extension)
341884
341899
  ]);
341885
- await (0, codegen_flow_helpers_1.updateJobPayload)(localJobContext, {
341900
+ await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, {
341886
341901
  requiredPermissions: requiredPermissionsResponse?.data?.requiredPermissions ?? []
341887
341902
  });
341888
341903
  } catch (error48) {
341889
341904
  const codegenError = (0, ditto_codegen_types_2.toCodegenError)(error48);
341890
341905
  const log = (0, logger_12.getJobLogger)(localJobContext.jobId, localJobContext.taskId);
341891
341906
  log.error(`[Iterate] Failed to get required permissions: jobId=${localJobContext.jobId}, taskId=${localJobContext.taskId}`, { error: error48 instanceof Error ? error48.message : String(error48) });
341892
- await (0, codegen_flow_helpers_1.updateJobPayload)(localJobContext, {
341907
+ await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, {
341893
341908
  requiredPermissions: [],
341894
341909
  requiredPermissionsErrors: codegenError
341895
341910
  });
@@ -342004,6 +342019,39 @@ var require_job_timeout_monitor = __commonJS({
342004
342019
  }
342005
342020
  });
342006
342021
 
342022
+ // dist/opencode-integration/skills-installer.js
342023
+ var require_skills_installer = __commonJS({
342024
+ "dist/opencode-integration/skills-installer.js"(exports2) {
342025
+ "use strict";
342026
+ Object.defineProperty(exports2, "__esModule", { value: true });
342027
+ exports2.installSkills = installSkills;
342028
+ var child_process_1 = require("child_process");
342029
+ var util_1 = require("util");
342030
+ var ditto_codegen_types_12 = require_dist4();
342031
+ var execAsync = (0, util_1.promisify)(child_process_1.exec);
342032
+ var SKILLS_INSTALL_COMMAND = "npx --yes skills add wix/skills -g -a opencode -y";
342033
+ async function installSkills(outputPath, log) {
342034
+ log.info("[Skills] Installing Wix skills globally");
342035
+ try {
342036
+ const { stdout, stderr } = await execAsync(SKILLS_INSTALL_COMMAND, {
342037
+ cwd: outputPath
342038
+ });
342039
+ if (stderr && !stderr.includes("npm warn")) {
342040
+ log.warn("[Skills] Installation stderr", { stderr });
342041
+ }
342042
+ log.info("[Skills] Skills installed successfully", { stdout });
342043
+ } catch (error48) {
342044
+ const errorMessage = error48 instanceof Error ? error48.message : String(error48);
342045
+ log.error("[Skills] Failed to install skills", { error: errorMessage });
342046
+ throw new ditto_codegen_types_12.ProcessExecutionError("Failed to install Wix skills", {
342047
+ processType: ditto_codegen_types_12.ProcessType.INITIALIZATION,
342048
+ cause: error48
342049
+ });
342050
+ }
342051
+ }
342052
+ }
342053
+ });
342054
+
342007
342055
  // dist/index.js
342008
342056
  Object.defineProperty(exports, "__esModule", { value: true });
342009
342057
  exports.processJob = processJob;
@@ -342014,12 +342062,14 @@ var opencode_init_1 = require_opencode_init();
342014
342062
  var opencode_iterate_1 = require_opencode_iterate();
342015
342063
  var init_codegen_1 = require_init_codegen();
342016
342064
  var iterate_codegen_1 = require_iterate_codegen();
342065
+ var codegen_flow_helpers_1 = require_codegen_flow_helpers();
342017
342066
  var job_cancellation_monitor_1 = require_job_cancellation_monitor();
342018
342067
  var job_timeout_monitor_1 = require_job_timeout_monitor();
342019
342068
  var codeGenerationService_1 = require_codeGenerationService();
342020
342069
  var crypto_1 = require("crypto");
342021
342070
  var ditto_codegen_types_1 = require_dist4();
342022
342071
  var logger_1 = require_logger();
342072
+ var skills_installer_1 = require_skills_installer();
342023
342073
  var sessionId = process.env.CODEGEN_SESSION_ID || (0, crypto_1.randomUUID)();
342024
342074
  process.env.CODEGEN_SESSION_ID = sessionId;
342025
342075
  (0, logger_1.initLogger)(sessionId);
@@ -342110,6 +342160,9 @@ async function processJob(job) {
342110
342160
  jobLog.debug("CODGEN_SKILLS_ENABLED", {
342111
342161
  value: process.env.CODGEN_SKILLS_ENABLED
342112
342162
  });
342163
+ if (skillsEnabled) {
342164
+ await (0, skills_installer_1.installSkills)((0, codegen_flow_helpers_1.getOutputPath)(), jobLog);
342165
+ }
342113
342166
  await job_context_storage_1.jobContextStorage.run({ jobId, taskId: task.id, kind: task.kind }, async () => {
342114
342167
  const payload = task.payload ?? {};
342115
342168
  const history = payload.history ?? [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/ditto-codegen-public",
3
- "version": "1.0.252",
3
+ "version": "1.0.254",
4
4
  "description": "AI-powered Wix CLI app generator - standalone executable",
5
5
  "scripts": {
6
6
  "build": "node build.mjs",
@@ -28,5 +28,5 @@
28
28
  "@wix/ditto-codegen": "1.0.0",
29
29
  "esbuild": "^0.27.2"
30
30
  },
31
- "falconPackageHash": "440320b106ee430e2c3bb85f19cd64467981a0c3ee4ab38f19e7b8c6"
31
+ "falconPackageHash": "737353e52bdb68a70c18697e9ee1b7c517799b09848e90ecd97e6382"
32
32
  }