@wix/ditto-codegen-public 1.0.131 → 1.0.133

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 +287 -219
  2. package/package.json +2 -2
package/dist/out.js CHANGED
@@ -117209,6 +117209,23 @@ ${hasEmbeddedScriptExtensions ? (0, embeddedScriptDynamicParameters_1.embeddedSc
117209
117209
  }
117210
117210
  });
117211
117211
 
117212
+ // dist/agents/utils/caching.js
117213
+ var require_caching = __commonJS({
117214
+ "dist/agents/utils/caching.js"(exports2) {
117215
+ "use strict";
117216
+ Object.defineProperty(exports2, "__esModule", { value: true });
117217
+ exports2.withCaching = void 0;
117218
+ var withCaching = (ttl = "5m") => {
117219
+ return {
117220
+ anthropic: {
117221
+ cache_control: { type: "ephemeral", ttl }
117222
+ }
117223
+ };
117224
+ };
117225
+ exports2.withCaching = withCaching;
117226
+ }
117227
+ });
117228
+
117212
117229
  // ../../node_modules/zod/index.cjs
117213
117230
  var require_zod = __commonJS({
117214
117231
  "../../node_modules/zod/index.cjs"(exports2) {
@@ -117252,117 +117269,6 @@ var require_zod = __commonJS({
117252
117269
  }
117253
117270
  });
117254
117271
 
117255
- // dist/agents/utils.js
117256
- var require_utils11 = __commonJS({
117257
- "dist/agents/utils.js"(exports2) {
117258
- "use strict";
117259
- var __importDefault2 = exports2 && exports2.__importDefault || function(mod2) {
117260
- return mod2 && mod2.__esModule ? mod2 : { "default": mod2 };
117261
- };
117262
- Object.defineProperty(exports2, "__esModule", { value: true });
117263
- exports2.extractApiNames = exports2.getErrorMessage = exports2.withCaching = exports2.FilesSchema = exports2.FileItemSchema = void 0;
117264
- exports2.shouldUseDataPrompt = shouldUseDataPrompt;
117265
- exports2.shouldUseDynamicParametersPrompt = shouldUseDynamicParametersPrompt;
117266
- exports2.loadRelevantFilesAsString = loadRelevantFilesAsString;
117267
- var zod_1 = require_zod();
117268
- var fs_1 = __importDefault2(require("fs"));
117269
- var path_1 = __importDefault2(require("path"));
117270
- var ditto_codegen_types_12 = require_dist();
117271
- exports2.FileItemSchema = zod_1.z.discriminatedUnion("operation", [
117272
- zod_1.z.object({
117273
- operation: zod_1.z.union([
117274
- zod_1.z.literal(ditto_codegen_types_12.ExtensionGenerationOperation.INSERT),
117275
- zod_1.z.literal(ditto_codegen_types_12.ExtensionGenerationOperation.UPDATE)
117276
- ]).describe("File operation: insert (new file), update (modify existing)").default(ditto_codegen_types_12.ExtensionGenerationOperation.INSERT),
117277
- path: zod_1.z.string().describe("Relative file path from project root"),
117278
- content: zod_1.z.string().describe("Complete file content as a string (for JSON files, stringify the object). Required for insert and update operations.")
117279
- }),
117280
- zod_1.z.object({
117281
- operation: zod_1.z.literal(ditto_codegen_types_12.ExtensionGenerationOperation.DELETE),
117282
- path: zod_1.z.string().describe("Relative file path from project root")
117283
- }),
117284
- zod_1.z.object({
117285
- operation: zod_1.z.literal(ditto_codegen_types_12.ExtensionGenerationOperation.EDIT),
117286
- path: zod_1.z.string().describe("Relative file path from project root"),
117287
- replacements: zod_1.z.array(zod_1.z.object({
117288
- oldString: zod_1.z.string().describe("The text to replace (must match the file contents exactly, including all whitespace and indentation)"),
117289
- newString: zod_1.z.string().describe("The edited text to replace the oldString"),
117290
- replaceAll: zod_1.z.boolean().optional().describe("Replace all occurrences of oldString (default false)")
117291
- })).min(1).describe("List of string replacements to apply")
117292
- })
117293
- ]).describe(`Representation of an operation that modifies a file on the local file system.
117294
- Use the 'insert' operation to create a new file.
117295
- Use the 'delete' operation to remove a file.
117296
- To modify a file, you can either use the 'edit' operation to replace a specific strings with new strings (THIS IS THE PREFERRED WAY TO MODIFY A FILE), or use the 'update' operation to replace the entire file with new content.`);
117297
- exports2.FilesSchema = zod_1.z.object({
117298
- files: zod_1.z.array(exports2.FileItemSchema).default([]).describe("An array of files")
117299
- });
117300
- var withCaching = (ttl = "5m") => {
117301
- return {
117302
- anthropic: {
117303
- cache_control: { type: "ephemeral", ttl }
117304
- }
117305
- };
117306
- };
117307
- exports2.withCaching = withCaching;
117308
- function shouldUseDataPrompt(params) {
117309
- const { plan, previousResources } = params;
117310
- return Boolean(plan?.collections?.length || previousResources?.collections?.length);
117311
- }
117312
- function shouldUseDynamicParametersPrompt(params) {
117313
- const { plan, previousResources } = params;
117314
- return Boolean(plan?.embeddedScriptParameters?.length || previousResources?.embeddedScriptParameters?.length);
117315
- }
117316
- function loadRelevantFiles(relevantFilePaths = [], basePath) {
117317
- return relevantFilePaths.map((filePath) => {
117318
- const fullPath = path_1.default.isAbsolute(basePath) ? path_1.default.join(basePath, filePath) : path_1.default.join(process.cwd(), basePath, filePath);
117319
- try {
117320
- if (!fs_1.default.existsSync(fullPath)) {
117321
- return `Path: ${filePath}
117322
-
117323
- [File does not exist]`;
117324
- }
117325
- const stats = fs_1.default.statSync(fullPath);
117326
- if (stats.isDirectory()) {
117327
- return `Path: ${filePath}
117328
-
117329
- [Path is a directory, not a file]`;
117330
- }
117331
- const content = fs_1.default.readFileSync(fullPath, "utf8");
117332
- return `Path: ${filePath}
117333
-
117334
- ${content}`;
117335
- } catch (error) {
117336
- return `Path: ${filePath}
117337
-
117338
- [Could not read file: ${error instanceof Error ? error.message : "Unknown error"}]`;
117339
- }
117340
- });
117341
- }
117342
- function loadRelevantFilesAsString(relevantFilePaths = [], basePath) {
117343
- const srcOnlyPaths = relevantFilePaths.filter((p) => {
117344
- const normalized = path_1.default.normalize(p);
117345
- return normalized.startsWith("src" + path_1.default.sep);
117346
- });
117347
- return loadRelevantFiles(srcOnlyPaths, basePath).join("\n\n---\n\n");
117348
- }
117349
- var getErrorMessage = (error) => {
117350
- if (error?.response?.data && error?.response?.data?.message.length > 0) {
117351
- return JSON.stringify(error.response.data);
117352
- } else if (error?.message && error?.message.length > 0) {
117353
- return JSON.stringify(error.message);
117354
- } else {
117355
- return JSON.stringify(error);
117356
- }
117357
- };
117358
- exports2.getErrorMessage = getErrorMessage;
117359
- var extractApiNames = (extension) => {
117360
- return extension.relatedApis?.map((api) => api.name).filter((name) => !!name) || [];
117361
- };
117362
- exports2.extractApiNames = extractApiNames;
117363
- }
117364
- });
117365
-
117366
117272
  // dist/ApiSpecSchema.js
117367
117273
  var require_ApiSpecSchema = __commonJS({
117368
117274
  "dist/ApiSpecSchema.js"(exports2) {
@@ -117865,7 +117771,7 @@ var require_PlannerAgent = __commonJS({
117865
117771
  var anthropic_1 = require_dist6();
117866
117772
  var ai_1 = require_dist10();
117867
117773
  var planner_1 = require_planner();
117868
- var utils_1 = require_utils11();
117774
+ var caching_1 = require_caching();
117869
117775
  var ditto_codegen_types_12 = require_dist();
117870
117776
  var PlannerAgentSchema_1 = require_PlannerAgentSchema();
117871
117777
  var forceDataPermissionsToAnyone_1 = require_forceDataPermissionsToAnyone();
@@ -117901,7 +117807,7 @@ ${error}` : ""}
117901
117807
  {
117902
117808
  role: "system",
117903
117809
  content: systemPrompt,
117904
- providerOptions: (0, utils_1.withCaching)("1h")
117810
+ providerOptions: (0, caching_1.withCaching)("1h")
117905
117811
  },
117906
117812
  {
117907
117813
  role: "user",
@@ -119701,6 +119607,77 @@ ${useDynamicParameters ? (0, dynamicParameters_1.dynamicParametersManagementProm
119701
119607
  }
119702
119608
  });
119703
119609
 
119610
+ // dist/agents/utils/file-operations.js
119611
+ var require_file_operations = __commonJS({
119612
+ "dist/agents/utils/file-operations.js"(exports2) {
119613
+ "use strict";
119614
+ Object.defineProperty(exports2, "__esModule", { value: true });
119615
+ exports2.FilesSchema = exports2.FileItemSchema = void 0;
119616
+ var zod_1 = require_zod();
119617
+ var ditto_codegen_types_12 = require_dist();
119618
+ exports2.FileItemSchema = zod_1.z.discriminatedUnion("operation", [
119619
+ zod_1.z.object({
119620
+ operation: zod_1.z.union([
119621
+ zod_1.z.literal(ditto_codegen_types_12.ExtensionGenerationOperation.INSERT),
119622
+ zod_1.z.literal(ditto_codegen_types_12.ExtensionGenerationOperation.UPDATE)
119623
+ ]).describe("File operation: insert (new file), update (modify existing)").default(ditto_codegen_types_12.ExtensionGenerationOperation.INSERT),
119624
+ path: zod_1.z.string().describe("Relative file path from project root"),
119625
+ content: zod_1.z.string().describe("Complete file content as a string (for JSON files, stringify the object). Required for insert and update operations.")
119626
+ }),
119627
+ zod_1.z.object({
119628
+ operation: zod_1.z.literal(ditto_codegen_types_12.ExtensionGenerationOperation.DELETE),
119629
+ path: zod_1.z.string().describe("Relative file path from project root")
119630
+ }),
119631
+ zod_1.z.object({
119632
+ operation: zod_1.z.literal(ditto_codegen_types_12.ExtensionGenerationOperation.EDIT),
119633
+ path: zod_1.z.string().describe("Relative file path from project root"),
119634
+ replacements: zod_1.z.array(zod_1.z.object({
119635
+ oldString: zod_1.z.string().describe("The text to replace (must match the file contents exactly, including all whitespace and indentation)"),
119636
+ newString: zod_1.z.string().describe("The edited text to replace the oldString"),
119637
+ replaceAll: zod_1.z.boolean().optional().describe("Replace all occurrences of oldString (default false)")
119638
+ })).min(1).describe("List of string replacements to apply")
119639
+ })
119640
+ ]).describe(`Representation of an operation that modifies a file on the local file system.
119641
+ Use the 'insert' operation to create a new file.
119642
+ Use the 'delete' operation to remove a file.
119643
+ To modify a file, you can either use the 'edit' operation to replace a specific strings with new strings (THIS IS THE PREFERRED WAY TO MODIFY A FILE), or use the 'update' operation to replace the entire file with new content.`);
119644
+ exports2.FilesSchema = zod_1.z.object({
119645
+ files: zod_1.z.array(exports2.FileItemSchema).default([]).describe("An array of files")
119646
+ });
119647
+ }
119648
+ });
119649
+
119650
+ // dist/agents/utils/api.js
119651
+ var require_api3 = __commonJS({
119652
+ "dist/agents/utils/api.js"(exports2) {
119653
+ "use strict";
119654
+ Object.defineProperty(exports2, "__esModule", { value: true });
119655
+ exports2.extractApiNames = void 0;
119656
+ var extractApiNames = (extension) => {
119657
+ return extension.relatedApis?.map((api) => api.name).filter((name) => !!name) || [];
119658
+ };
119659
+ exports2.extractApiNames = extractApiNames;
119660
+ }
119661
+ });
119662
+
119663
+ // dist/agents/utils/prompt-selectors.js
119664
+ var require_prompt_selectors = __commonJS({
119665
+ "dist/agents/utils/prompt-selectors.js"(exports2) {
119666
+ "use strict";
119667
+ Object.defineProperty(exports2, "__esModule", { value: true });
119668
+ exports2.shouldUseDataPrompt = shouldUseDataPrompt;
119669
+ exports2.shouldUseDynamicParametersPrompt = shouldUseDynamicParametersPrompt;
119670
+ function shouldUseDataPrompt(params) {
119671
+ const { plan, previousResources } = params;
119672
+ return Boolean(plan?.collections?.length || previousResources?.collections?.length);
119673
+ }
119674
+ function shouldUseDynamicParametersPrompt(params) {
119675
+ const { plan, previousResources } = params;
119676
+ return Boolean(plan?.embeddedScriptParameters?.length || previousResources?.embeddedScriptParameters?.length);
119677
+ }
119678
+ }
119679
+ });
119680
+
119704
119681
  // dist/system-prompts/load-examples.js
119705
119682
  var require_load_examples = __commonJS({
119706
119683
  "dist/system-prompts/load-examples.js"(exports2) {
@@ -119989,6 +119966,17 @@ var require_extensions = __commonJS({
119989
119966
  "../codegen-common-logic/dist/extensions.js"(exports2) {
119990
119967
  "use strict";
119991
119968
  Object.defineProperty(exports2, "__esModule", { value: true });
119969
+ exports2.codeGenerationExtensionTypes = void 0;
119970
+ var types_1 = require_types_impl();
119971
+ exports2.codeGenerationExtensionTypes = [
119972
+ types_1.ExtensionType.SERVICE_PLUGIN,
119973
+ types_1.ExtensionType.DASHBOARD_PAGE,
119974
+ types_1.ExtensionType.SITE_COMPONENT,
119975
+ types_1.ExtensionType.SITE_WIDGET,
119976
+ types_1.ExtensionType.BACKEND_EVENT,
119977
+ types_1.ExtensionType.BACKEND_API,
119978
+ types_1.ExtensionType.EMBEDDED_SCRIPT
119979
+ ];
119992
119980
  }
119993
119981
  });
119994
119982
 
@@ -120378,6 +120366,53 @@ var require_dist12 = __commonJS({
120378
120366
  }
120379
120367
  });
120380
120368
 
120369
+ // dist/agents/utils/file-loading.js
120370
+ var require_file_loading = __commonJS({
120371
+ "dist/agents/utils/file-loading.js"(exports2) {
120372
+ "use strict";
120373
+ var __importDefault2 = exports2 && exports2.__importDefault || function(mod2) {
120374
+ return mod2 && mod2.__esModule ? mod2 : { "default": mod2 };
120375
+ };
120376
+ Object.defineProperty(exports2, "__esModule", { value: true });
120377
+ exports2.loadRelevantFilesAsString = loadRelevantFilesAsString;
120378
+ var fs_1 = __importDefault2(require("fs"));
120379
+ var path_1 = __importDefault2(require("path"));
120380
+ function loadRelevantFiles(relevantFilePaths = [], basePath) {
120381
+ return relevantFilePaths.map((filePath) => {
120382
+ const fullPath = path_1.default.isAbsolute(basePath) ? path_1.default.join(basePath, filePath) : path_1.default.join(process.cwd(), basePath, filePath);
120383
+ try {
120384
+ if (!fs_1.default.existsSync(fullPath)) {
120385
+ return `Path: ${filePath}
120386
+
120387
+ [File does not exist]`;
120388
+ }
120389
+ const stats = fs_1.default.statSync(fullPath);
120390
+ if (stats.isDirectory()) {
120391
+ return `Path: ${filePath}
120392
+
120393
+ [Path is a directory, not a file]`;
120394
+ }
120395
+ const content = fs_1.default.readFileSync(fullPath, "utf8");
120396
+ return `Path: ${filePath}
120397
+
120398
+ ${content}`;
120399
+ } catch (error) {
120400
+ return `Path: ${filePath}
120401
+
120402
+ [Could not read file: ${error instanceof Error ? error.message : "Unknown error"}]`;
120403
+ }
120404
+ });
120405
+ }
120406
+ function loadRelevantFilesAsString(relevantFilePaths = [], basePath) {
120407
+ const srcOnlyPaths = relevantFilePaths.filter((p) => {
120408
+ const normalized = path_1.default.normalize(p);
120409
+ return normalized.startsWith("src" + path_1.default.sep);
120410
+ });
120411
+ return loadRelevantFiles(srcOnlyPaths, basePath).join("\n\n---\n\n");
120412
+ }
120413
+ }
120414
+ });
120415
+
120381
120416
  // dist/agents/userPrompt.js
120382
120417
  var require_userPrompt = __commonJS({
120383
120418
  "dist/agents/userPrompt.js"(exports2) {
@@ -120386,7 +120421,7 @@ var require_userPrompt = __commonJS({
120386
120421
  exports2.buildUserPromptForCodeGenerationAgent = void 0;
120387
120422
  var types_1 = require_types_impl();
120388
120423
  var ditto_codegen_types_12 = require_dist();
120389
- var utils_1 = require_utils11();
120424
+ var file_loading_1 = require_file_loading();
120390
120425
  var buildUserPromptForCodeGenerationAgent = (params, primaryAction) => {
120391
120426
  const { extension, blueprint, scaffolds, userRequestSummary, relevantFilePaths, plan, basePath, previousResources } = params;
120392
120427
  const contextSections = [];
@@ -120403,7 +120438,7 @@ var require_userPrompt = __commonJS({
120403
120438
  ${userRequestSummary}`);
120404
120439
  }
120405
120440
  if (relevantFilePaths) {
120406
- const relevantFiles = (0, utils_1.loadRelevantFilesAsString)(relevantFilePaths, basePath);
120441
+ const relevantFiles = (0, file_loading_1.loadRelevantFilesAsString)(relevantFilePaths, basePath);
120407
120442
  contextSections.push(`
120408
120443
  ## RELEVANT FILES
120409
120444
  ${relevantFiles}`);
@@ -120506,7 +120541,10 @@ var require_DashboardPageAgent2 = __commonJS({
120506
120541
  var dashboardPagePrompt_1 = require_dashboardPagePrompt();
120507
120542
  var anthropic_1 = require_dist6();
120508
120543
  var ai_1 = require_dist10();
120509
- var utils_1 = require_utils11();
120544
+ var file_operations_1 = require_file_operations();
120545
+ var caching_1 = require_caching();
120546
+ var api_1 = require_api3();
120547
+ var prompt_selectors_1 = require_prompt_selectors();
120510
120548
  var load_examples_1 = require_load_examples();
120511
120549
  var codegen_common_logic_1 = require_dist12();
120512
120550
  var userPrompt_1 = require_userPrompt();
@@ -120525,10 +120563,10 @@ var require_DashboardPageAgent2 = __commonJS({
120525
120563
  async generate(params) {
120526
120564
  const { blueprint, plan } = params;
120527
120565
  const examples = (0, load_examples_1.loadExamples)([load_examples_1.types.DashboardPage]);
120528
- const useData = (0, utils_1.shouldUseDataPrompt)(params);
120566
+ const useData = (0, prompt_selectors_1.shouldUseDataPrompt)(params);
120529
120567
  const useApiSpec = Boolean(plan?.apiSpec);
120530
- const useDynamicParameters = (0, utils_1.shouldUseDynamicParametersPrompt)(params);
120531
- const apiNames = (0, utils_1.extractApiNames)(params.extension);
120568
+ const useDynamicParameters = (0, prompt_selectors_1.shouldUseDynamicParametersPrompt)(params);
120569
+ const apiNames = (0, api_1.extractApiNames)(params.extension);
120532
120570
  const systemPrompt = `${await this.buildSystemPrompt({ useData, useApiSpec, useDynamicParameters, apiNames })}
120533
120571
  ${examples}
120534
120572
  `;
@@ -120538,12 +120576,12 @@ ${examples}
120538
120576
  const model = (0, anthropic_1.createAnthropic)({ apiKey: this.apiKey })("claude-sonnet-4-5-20250929");
120539
120577
  const result = await (0, ai_1.generateObject)({
120540
120578
  model,
120541
- schema: utils_1.FilesSchema,
120579
+ schema: file_operations_1.FilesSchema,
120542
120580
  messages: [
120543
120581
  {
120544
120582
  role: "system",
120545
120583
  content: systemPrompt,
120546
- providerOptions: (0, utils_1.withCaching)("1h")
120584
+ providerOptions: (0, caching_1.withCaching)("1h")
120547
120585
  },
120548
120586
  {
120549
120587
  role: "user",
@@ -120636,7 +120674,9 @@ var require_SiteComponentAgent2 = __commonJS({
120636
120674
  exports2.SiteComponentAgent = void 0;
120637
120675
  var anthropic_1 = require_dist6();
120638
120676
  var ai_1 = require_dist10();
120639
- var utils_1 = require_utils11();
120677
+ var file_operations_1 = require_file_operations();
120678
+ var caching_1 = require_caching();
120679
+ var api_1 = require_api3();
120640
120680
  var siteComponentPrompt_1 = require_siteComponentPrompt();
120641
120681
  var codegen_common_logic_1 = require_dist12();
120642
120682
  var userPrompt_1 = require_userPrompt();
@@ -120654,7 +120694,7 @@ var require_SiteComponentAgent2 = __commonJS({
120654
120694
  }
120655
120695
  async generate(params) {
120656
120696
  const { blueprint, plan } = params;
120657
- const allApiNames = (0, utils_1.extractApiNames)(params.extension);
120697
+ const allApiNames = (0, api_1.extractApiNames)(params.extension);
120658
120698
  const useData = Boolean(plan?.collections?.length);
120659
120699
  const systemPrompt = `${await this.buildSystemPrompt(allApiNames, useData)}`;
120660
120700
  const appName = blueprint?.appName ? `'${blueprint.appName}'` : "";
@@ -120663,12 +120703,12 @@ var require_SiteComponentAgent2 = __commonJS({
120663
120703
  const model = (0, anthropic_1.createAnthropic)({ apiKey: this.apiKey })("claude-sonnet-4-5-20250929");
120664
120704
  const result = await (0, ai_1.generateObject)({
120665
120705
  model,
120666
- schema: utils_1.FilesSchema,
120706
+ schema: file_operations_1.FilesSchema,
120667
120707
  messages: [
120668
120708
  {
120669
120709
  role: "system",
120670
120710
  content: systemPrompt,
120671
- providerOptions: (0, utils_1.withCaching)("1h")
120711
+ providerOptions: (0, caching_1.withCaching)("1h")
120672
120712
  },
120673
120713
  {
120674
120714
  role: "user",
@@ -120761,7 +120801,9 @@ var require_CustomElementAgent2 = __commonJS({
120761
120801
  exports2.CustomElementAgent = void 0;
120762
120802
  var anthropic_1 = require_dist6();
120763
120803
  var ai_1 = require_dist10();
120764
- var utils_1 = require_utils11();
120804
+ var file_operations_1 = require_file_operations();
120805
+ var caching_1 = require_caching();
120806
+ var api_1 = require_api3();
120765
120807
  var customElementPrompt_1 = require_customElementPrompt();
120766
120808
  var load_examples_1 = require_load_examples();
120767
120809
  var codegen_common_logic_1 = require_dist12();
@@ -120781,7 +120823,7 @@ var require_CustomElementAgent2 = __commonJS({
120781
120823
  async generate(params) {
120782
120824
  const { blueprint, plan } = params;
120783
120825
  const examples = (0, load_examples_1.loadExamples)([load_examples_1.types.CustomElementWidget]);
120784
- const allApiNames = (0, utils_1.extractApiNames)(params.extension);
120826
+ const allApiNames = (0, api_1.extractApiNames)(params.extension);
120785
120827
  const useData = Boolean(plan?.collections?.length);
120786
120828
  const systemPrompt = `${await this.buildSystemPrompt(allApiNames, useData)}
120787
120829
  ${examples}
@@ -120792,12 +120834,12 @@ var require_CustomElementAgent2 = __commonJS({
120792
120834
  const model = (0, anthropic_1.createAnthropic)({ apiKey: this.apiKey })("claude-sonnet-4-5-20250929");
120793
120835
  const result = await (0, ai_1.generateObject)({
120794
120836
  model,
120795
- schema: utils_1.FilesSchema,
120837
+ schema: file_operations_1.FilesSchema,
120796
120838
  messages: [
120797
120839
  {
120798
120840
  role: "system",
120799
120841
  content: systemPrompt,
120800
- providerOptions: (0, utils_1.withCaching)("1h")
120842
+ providerOptions: (0, caching_1.withCaching)("1h")
120801
120843
  },
120802
120844
  {
120803
120845
  role: "user",
@@ -121041,7 +121083,10 @@ var require_SPIAgent2 = __commonJS({
121041
121083
  var servicePluginPrompt_1 = require_servicePluginPrompt();
121042
121084
  var anthropic_1 = require_dist6();
121043
121085
  var ai_1 = require_dist10();
121044
- var utils_1 = require_utils11();
121086
+ var file_operations_1 = require_file_operations();
121087
+ var caching_1 = require_caching();
121088
+ var api_1 = require_api3();
121089
+ var prompt_selectors_1 = require_prompt_selectors();
121045
121090
  var load_examples_1 = require_load_examples();
121046
121091
  var codegen_common_logic_1 = require_dist12();
121047
121092
  var userPrompt_1 = require_userPrompt();
@@ -121061,8 +121106,8 @@ var require_SPIAgent2 = __commonJS({
121061
121106
  const { extension, blueprint } = params;
121062
121107
  const examples = (0, load_examples_1.loadExamples)([load_examples_1.types.ServicePluginExtension]);
121063
121108
  const allSpiNames = extension.relatedSpis?.map((spi) => spi.name).filter((name) => !!name) || [];
121064
- const apiNames = (0, utils_1.extractApiNames)(params.extension);
121065
- const useData = (0, utils_1.shouldUseDataPrompt)(params);
121109
+ const apiNames = (0, api_1.extractApiNames)(params.extension);
121110
+ const useData = (0, prompt_selectors_1.shouldUseDataPrompt)(params);
121066
121111
  const systemPrompt = `${this.buildSystemPrompt(allSpiNames, apiNames, useData)}
121067
121112
  ${examples}
121068
121113
  `;
@@ -121074,12 +121119,12 @@ ${examples}
121074
121119
  })("claude-sonnet-4-5-20250929");
121075
121120
  const result = await (0, ai_1.generateObject)({
121076
121121
  model,
121077
- schema: utils_1.FilesSchema,
121122
+ schema: file_operations_1.FilesSchema,
121078
121123
  messages: [
121079
121124
  {
121080
121125
  role: "system",
121081
121126
  content: systemPrompt,
121082
- providerOptions: (0, utils_1.withCaching)("1h")
121127
+ providerOptions: (0, caching_1.withCaching)("1h")
121083
121128
  },
121084
121129
  {
121085
121130
  role: "user",
@@ -121171,7 +121216,10 @@ var require_BackendEventAgent2 = __commonJS({
121171
121216
  exports2.BackendEventAgent = void 0;
121172
121217
  var anthropic_1 = require_dist6();
121173
121218
  var ai_1 = require_dist10();
121174
- var utils_1 = require_utils11();
121219
+ var file_operations_1 = require_file_operations();
121220
+ var caching_1 = require_caching();
121221
+ var prompt_selectors_1 = require_prompt_selectors();
121222
+ var api_1 = require_api3();
121175
121223
  var backendEventPrompt_1 = require_backendEventPrompt();
121176
121224
  var load_examples_1 = require_load_examples();
121177
121225
  var codegen_common_logic_1 = require_dist12();
@@ -121191,8 +121239,8 @@ var require_BackendEventAgent2 = __commonJS({
121191
121239
  async generate(params) {
121192
121240
  const { blueprint } = params;
121193
121241
  const examples = (0, load_examples_1.loadExamples)([load_examples_1.types.BackendEvent]);
121194
- const allApiNames = (0, utils_1.extractApiNames)(params.extension);
121195
- const useData = (0, utils_1.shouldUseDataPrompt)(params);
121242
+ const allApiNames = (0, api_1.extractApiNames)(params.extension);
121243
+ const useData = (0, prompt_selectors_1.shouldUseDataPrompt)(params);
121196
121244
  const systemPrompt = `${this.buildSystemPrompt(allApiNames, useData)}
121197
121245
  ${examples}
121198
121246
  `;
@@ -121202,12 +121250,12 @@ ${examples}
121202
121250
  const model = (0, anthropic_1.createAnthropic)({ apiKey: this.apiKey })("claude-sonnet-4-5-20250929");
121203
121251
  const result = await (0, ai_1.generateObject)({
121204
121252
  model,
121205
- schema: utils_1.FilesSchema,
121253
+ schema: file_operations_1.FilesSchema,
121206
121254
  messages: [
121207
121255
  {
121208
121256
  role: "system",
121209
121257
  content: systemPrompt,
121210
- providerOptions: (0, utils_1.withCaching)("1h")
121258
+ providerOptions: (0, caching_1.withCaching)("1h")
121211
121259
  },
121212
121260
  {
121213
121261
  role: "user",
@@ -121330,7 +121378,8 @@ var require_BackendApiAgent2 = __commonJS({
121330
121378
  exports2.BackendApiAgent = void 0;
121331
121379
  var anthropic_1 = require_dist6();
121332
121380
  var backendApi_1 = require_backendApi();
121333
- var utils_1 = require_utils11();
121381
+ var file_operations_1 = require_file_operations();
121382
+ var caching_1 = require_caching();
121334
121383
  var ai_1 = require_dist10();
121335
121384
  var codegen_common_logic_1 = require_dist12();
121336
121385
  var userPrompt_1 = require_userPrompt();
@@ -121353,12 +121402,12 @@ var require_BackendApiAgent2 = __commonJS({
121353
121402
  const model = (0, anthropic_1.createAnthropic)({ apiKey: this.apiKey })("claude-sonnet-4-5-20250929");
121354
121403
  const result = await (0, ai_1.generateObject)({
121355
121404
  model,
121356
- schema: utils_1.FilesSchema,
121405
+ schema: file_operations_1.FilesSchema,
121357
121406
  messages: [
121358
121407
  {
121359
121408
  role: "system",
121360
121409
  content: systemPrompt,
121361
- providerOptions: (0, utils_1.withCaching)("1h")
121410
+ providerOptions: (0, caching_1.withCaching)("1h")
121362
121411
  },
121363
121412
  {
121364
121413
  role: "user",
@@ -121626,7 +121675,10 @@ var require_EmbeddedScriptAgent2 = __commonJS({
121626
121675
  exports2.EmbeddedScriptAgent = exports2.EmbeddedScriptType = exports2.EmbeddedScriptPlacement = void 0;
121627
121676
  var anthropic_1 = require_dist6();
121628
121677
  var ai_1 = require_dist10();
121629
- var utils_1 = require_utils11();
121678
+ var file_operations_1 = require_file_operations();
121679
+ var caching_1 = require_caching();
121680
+ var api_1 = require_api3();
121681
+ var prompt_selectors_1 = require_prompt_selectors();
121630
121682
  var load_examples_1 = require_load_examples();
121631
121683
  var zod_1 = __importDefault2(require_zod());
121632
121684
  var embededScript_1 = require_embededScript();
@@ -121646,7 +121698,7 @@ var require_EmbeddedScriptAgent2 = __commonJS({
121646
121698
  EmbeddedScriptType2["ADVERTISING"] = "ADVERTISING";
121647
121699
  })(EmbeddedScriptType || (exports2.EmbeddedScriptType = EmbeddedScriptType = {}));
121648
121700
  var EmbeddedScriptSchema = zod_1.default.object({
121649
- files: zod_1.default.array(utils_1.FileItemSchema).default([]),
121701
+ files: zod_1.default.array(file_operations_1.FileItemSchema).default([]),
121650
121702
  scriptType: zod_1.default.enum(Object.values(EmbeddedScriptType)),
121651
121703
  placement: zod_1.default.enum(Object.values(EmbeddedScriptPlacement))
121652
121704
  });
@@ -121665,9 +121717,9 @@ var require_EmbeddedScriptAgent2 = __commonJS({
121665
121717
  async generate(params) {
121666
121718
  const { blueprint } = params;
121667
121719
  const examples = (0, load_examples_1.loadExamples)([load_examples_1.types.EmbeddedScript]);
121668
- const hasDynamicParameters = (0, utils_1.shouldUseDynamicParametersPrompt)(params);
121669
- const apiNames = (0, utils_1.extractApiNames)(params.extension);
121670
- const useData = (0, utils_1.shouldUseDataPrompt)(params);
121720
+ const hasDynamicParameters = (0, prompt_selectors_1.shouldUseDynamicParametersPrompt)(params);
121721
+ const apiNames = (0, api_1.extractApiNames)(params.extension);
121722
+ const useData = (0, prompt_selectors_1.shouldUseDataPrompt)(params);
121671
121723
  const systemPrompt = `${this.buildSystemPrompt(hasDynamicParameters, apiNames, useData)}
121672
121724
  ${examples}
121673
121725
  `;
@@ -121682,7 +121734,7 @@ ${examples}
121682
121734
  {
121683
121735
  role: "system",
121684
121736
  content: systemPrompt,
121685
- providerOptions: (0, utils_1.withCaching)("1h")
121737
+ providerOptions: (0, caching_1.withCaching)("1h")
121686
121738
  },
121687
121739
  {
121688
121740
  role: "user",
@@ -121927,22 +121979,22 @@ var require_IterationAgent = __commonJS({
121927
121979
  var anthropic_1 = require_dist6();
121928
121980
  var ai_1 = require_dist10();
121929
121981
  var zod_1 = require_zod();
121930
- var utils_1 = require_utils11();
121931
- var types_1 = require_types_impl();
121982
+ var caching_1 = require_caching();
121932
121983
  var iterationAgentPrompt_1 = require_iterationAgentPrompt();
121933
121984
  var AgentsRegistry_1 = require_AgentsRegistry();
121985
+ var codegen_common_logic_1 = require_dist12();
121934
121986
  var ditto_codegen_types_12 = require_dist();
121935
121987
  var formatExtensions_1 = require_formatExtensions();
121936
121988
  var supportedExtensionTypes = (0, AgentsRegistry_1.getSupportedExtensionTypes)();
121937
121989
  var CurrentExtensionSchema = zod_1.z.object({
121938
- extensionType: zod_1.z.enum(types_1.ExtensionType).describe("The extension kind to trigger"),
121990
+ extensionType: zod_1.z.enum(codegen_common_logic_1.codeGenerationExtensionTypes).describe("The extension kind to trigger"),
121939
121991
  name: zod_1.z.string().describe("A descriptive name for this extension"),
121940
121992
  relatedSpis: zod_1.z.array(zod_1.z.string()).optional().describe("Optional value, only for SPI extensions - specify the SPI types"),
121941
121993
  paths: zod_1.z.array(zod_1.z.string()).describe("Paths relevant for this extension"),
121942
121994
  relevantUserRequest: zod_1.z.string().describe("What part of the user request this extension should do, do not reference other extensions.")
121943
121995
  });
121944
121996
  var AdditionalExtensionSchema = zod_1.z.object({
121945
- extensionType: zod_1.z.enum(types_1.ExtensionType).describe("The extension kind to add"),
121997
+ extensionType: zod_1.z.enum(codegen_common_logic_1.codeGenerationExtensionTypes).describe("The extension kind to add"),
121946
121998
  name: zod_1.z.string().describe("A descriptive name for this extension"),
121947
121999
  relatedSpis: zod_1.z.array(zod_1.z.string()).optional().describe("Optional value, only for SPI extensions - specify the SPI types"),
121948
122000
  relevantUserRequest: zod_1.z.string().describe("What part of the user request this extension should do, do not reference other extensions.")
@@ -122000,7 +122052,7 @@ ${(0, formatExtensions_1.formatExtensions)(relevantExtensions)}`
122000
122052
  {
122001
122053
  role: "system",
122002
122054
  content: this.buildSystemPrompt(),
122003
- providerOptions: (0, utils_1.withCaching)("1h")
122055
+ providerOptions: (0, caching_1.withCaching)("1h")
122004
122056
  },
122005
122057
  { role: "user", content: userContent }
122006
122058
  ],
@@ -122246,7 +122298,8 @@ var require_DashboardDecisionAgent = __commonJS({
122246
122298
  var ai_1 = require_dist10();
122247
122299
  var zod_1 = require_zod();
122248
122300
  var autoPatternPrompt_1 = require_autoPatternPrompt();
122249
- var utils_1 = require_utils11();
122301
+ var caching_1 = require_caching();
122302
+ var prompt_selectors_1 = require_prompt_selectors();
122250
122303
  var types_1 = require_types_impl();
122251
122304
  var userPrompt_1 = require_userPrompt();
122252
122305
  var autoPatternsLlmConfig = zod_1.z.object({
@@ -122311,7 +122364,7 @@ var require_DashboardDecisionAgent = __commonJS({
122311
122364
  const hasEmbeddedScriptExtension = blueprint?.extensions?.some((ext) => ext.type === types_1.ExtensionType.EMBEDDED_SCRIPT) ?? false;
122312
122365
  const hasOneDashboardPageExtension = blueprint?.extensions?.filter((ext) => ext.type === types_1.ExtensionType.DASHBOARD_PAGE).length === 1;
122313
122366
  const shouldImplementEmbeddedScriptParameters = hasOneDashboardPageExtension && hasEmbeddedScriptExtension;
122314
- const hasCollections = (0, utils_1.shouldUseDataPrompt)(params);
122367
+ const hasCollections = (0, prompt_selectors_1.shouldUseDataPrompt)(params);
122315
122368
  if (!hasCollections || shouldImplementEmbeddedScriptParameters) {
122316
122369
  return true;
122317
122370
  }
@@ -122334,7 +122387,7 @@ var require_DashboardDecisionAgent = __commonJS({
122334
122387
  {
122335
122388
  role: "system",
122336
122389
  content: systemPrompt,
122337
- providerOptions: (0, utils_1.withCaching)("1h")
122390
+ providerOptions: (0, caching_1.withCaching)("1h")
122338
122391
  },
122339
122392
  {
122340
122393
  role: "user",
@@ -123310,7 +123363,8 @@ var require_ExtensionSelectorAgent = __commonJS({
123310
123363
  var fs_1 = __importDefault2(require("fs"));
123311
123364
  var path_1 = __importDefault2(require("path"));
123312
123365
  var tree_node_cli_1 = __importDefault2(require_src32());
123313
- var utils_1 = require_utils11();
123366
+ var caching_1 = require_caching();
123367
+ var file_loading_1 = require_file_loading();
123314
123368
  var extensionsRelevancePrompt_1 = require_extensionsRelevancePrompt();
123315
123369
  var ditto_codegen_types_12 = require_dist();
123316
123370
  var TOOL_NAMES = {
@@ -123425,7 +123479,7 @@ ${filesList}`);
123425
123479
  const model = (0, anthropic_1.createAnthropic)({ apiKey: this.apiKey })("claude-3-5-haiku-latest");
123426
123480
  const historyStr = this.formatChatHistory(chatHistory);
123427
123481
  const relevantFilePaths = extension.files || [];
123428
- const relevantFilesContent = (0, utils_1.loadRelevantFilesAsString)(relevantFilePaths, outputPath);
123482
+ const relevantFilesContent = (0, file_loading_1.loadRelevantFilesAsString)(relevantFilePaths, outputPath);
123429
123483
  const userContent = [
123430
123484
  `
123431
123485
  Full Chat History:
@@ -123454,7 +123508,7 @@ ${relevantFilesContent}`
123454
123508
  {
123455
123509
  role: "system",
123456
123510
  content: systemPrompt,
123457
- providerOptions: (0, utils_1.withCaching)("1h")
123511
+ providerOptions: (0, caching_1.withCaching)("1h")
123458
123512
  },
123459
123513
  { role: "user", content: userContent }
123460
123514
  ],
@@ -124549,7 +124603,7 @@ var require_fs = __commonJS({
124549
124603
  });
124550
124604
 
124551
124605
  // ../../node_modules/fs-extra/lib/mkdirs/utils.js
124552
- var require_utils12 = __commonJS({
124606
+ var require_utils11 = __commonJS({
124553
124607
  "../../node_modules/fs-extra/lib/mkdirs/utils.js"(exports2, module2) {
124554
124608
  "use strict";
124555
124609
  var path2 = require("path");
@@ -124571,7 +124625,7 @@ var require_make_dir = __commonJS({
124571
124625
  "../../node_modules/fs-extra/lib/mkdirs/make-dir.js"(exports2, module2) {
124572
124626
  "use strict";
124573
124627
  var fs4 = require_fs();
124574
- var { checkPath } = require_utils12();
124628
+ var { checkPath } = require_utils11();
124575
124629
  var getMode = (options) => {
124576
124630
  const defaults = { mode: 511 };
124577
124631
  if (typeof options === "number") return options;
@@ -125464,7 +125518,7 @@ var require_ensure = __commonJS({
125464
125518
  });
125465
125519
 
125466
125520
  // ../../node_modules/jsonfile/utils.js
125467
- var require_utils13 = __commonJS({
125521
+ var require_utils12 = __commonJS({
125468
125522
  "../../node_modules/jsonfile/utils.js"(exports2, module2) {
125469
125523
  function stringify(obj, { EOL = "\n", finalEOL = true, replacer = null, spaces } = {}) {
125470
125524
  const EOF = finalEOL ? EOL : "";
@@ -125489,7 +125543,7 @@ var require_jsonfile = __commonJS({
125489
125543
  _fs = require("fs");
125490
125544
  }
125491
125545
  var universalify = require_universalify();
125492
- var { stringify, stripBom } = require_utils13();
125546
+ var { stringify, stripBom } = require_utils12();
125493
125547
  async function _readFile(file, options = {}) {
125494
125548
  if (typeof options === "string") {
125495
125549
  options = { encoding: options };
@@ -125600,7 +125654,7 @@ var require_output_file = __commonJS({
125600
125654
  var require_output_json = __commonJS({
125601
125655
  "../../node_modules/fs-extra/lib/json/output-json.js"(exports2, module2) {
125602
125656
  "use strict";
125603
- var { stringify } = require_utils13();
125657
+ var { stringify } = require_utils12();
125604
125658
  var { outputFile } = require_output_file();
125605
125659
  async function outputJson(file, data, options = {}) {
125606
125660
  const str = stringify(data, options);
@@ -125614,7 +125668,7 @@ var require_output_json = __commonJS({
125614
125668
  var require_output_json_sync = __commonJS({
125615
125669
  "../../node_modules/fs-extra/lib/json/output-json-sync.js"(exports2, module2) {
125616
125670
  "use strict";
125617
- var { stringify } = require_utils13();
125671
+ var { stringify } = require_utils12();
125618
125672
  var { outputFileSync } = require_output_file();
125619
125673
  function outputJsonSync(file, data, options) {
125620
125674
  const str = stringify(data, options);
@@ -126258,7 +126312,7 @@ var require_glob_parent = __commonJS({
126258
126312
  });
126259
126313
 
126260
126314
  // ../../node_modules/braces/lib/utils.js
126261
- var require_utils14 = __commonJS({
126315
+ var require_utils13 = __commonJS({
126262
126316
  "../../node_modules/braces/lib/utils.js"(exports2) {
126263
126317
  "use strict";
126264
126318
  exports2.isInteger = (num) => {
@@ -126343,7 +126397,7 @@ var require_utils14 = __commonJS({
126343
126397
  var require_stringify = __commonJS({
126344
126398
  "../../node_modules/braces/lib/stringify.js"(exports2, module2) {
126345
126399
  "use strict";
126346
- var utils = require_utils14();
126400
+ var utils = require_utils13();
126347
126401
  module2.exports = (ast, options = {}) => {
126348
126402
  const stringify = (node, parent = {}) => {
126349
126403
  const invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent);
@@ -126796,7 +126850,7 @@ var require_compile = __commonJS({
126796
126850
  "../../node_modules/braces/lib/compile.js"(exports2, module2) {
126797
126851
  "use strict";
126798
126852
  var fill = require_fill_range();
126799
- var utils = require_utils14();
126853
+ var utils = require_utils13();
126800
126854
  var compile = (ast, options = {}) => {
126801
126855
  const walk = (node, parent = {}) => {
126802
126856
  const invalidBlock = utils.isInvalidBrace(parent);
@@ -126849,7 +126903,7 @@ var require_expand = __commonJS({
126849
126903
  "use strict";
126850
126904
  var fill = require_fill_range();
126851
126905
  var stringify = require_stringify();
126852
- var utils = require_utils14();
126906
+ var utils = require_utils13();
126853
126907
  var append = (queue = "", stash = "", enclose = false) => {
126854
126908
  const result = [];
126855
126909
  queue = [].concat(queue);
@@ -127537,7 +127591,7 @@ var require_constants6 = __commonJS({
127537
127591
  });
127538
127592
 
127539
127593
  // ../../node_modules/picomatch/lib/utils.js
127540
- var require_utils15 = __commonJS({
127594
+ var require_utils14 = __commonJS({
127541
127595
  "../../node_modules/picomatch/lib/utils.js"(exports2) {
127542
127596
  "use strict";
127543
127597
  var path2 = require("path");
@@ -127601,7 +127655,7 @@ var require_utils15 = __commonJS({
127601
127655
  var require_scan = __commonJS({
127602
127656
  "../../node_modules/picomatch/lib/scan.js"(exports2, module2) {
127603
127657
  "use strict";
127604
- var utils = require_utils15();
127658
+ var utils = require_utils14();
127605
127659
  var {
127606
127660
  CHAR_ASTERISK,
127607
127661
  /* * */
@@ -127932,7 +127986,7 @@ var require_parse5 = __commonJS({
127932
127986
  "../../node_modules/picomatch/lib/parse.js"(exports2, module2) {
127933
127987
  "use strict";
127934
127988
  var constants = require_constants6();
127935
- var utils = require_utils15();
127989
+ var utils = require_utils14();
127936
127990
  var {
127937
127991
  MAX_LENGTH,
127938
127992
  POSIX_REGEX_SOURCE,
@@ -128707,7 +128761,7 @@ var require_picomatch = __commonJS({
128707
128761
  var path2 = require("path");
128708
128762
  var scan = require_scan();
128709
128763
  var parse = require_parse5();
128710
- var utils = require_utils15();
128764
+ var utils = require_utils14();
128711
128765
  var constants = require_constants6();
128712
128766
  var isObject = (val) => val && typeof val === "object" && !Array.isArray(val);
128713
128767
  var picomatch = (glob, options, returnState = false) => {
@@ -128856,7 +128910,7 @@ var require_micromatch = __commonJS({
128856
128910
  var util = require("util");
128857
128911
  var braces = require_braces();
128858
128912
  var picomatch = require_picomatch2();
128859
- var utils = require_utils15();
128913
+ var utils = require_utils14();
128860
128914
  var isEmptyString = (v) => v === "" || v === "./";
128861
128915
  var hasBraces = (v) => {
128862
128916
  const index = v.indexOf("{");
@@ -129335,7 +129389,7 @@ var require_string = __commonJS({
129335
129389
  });
129336
129390
 
129337
129391
  // ../../node_modules/fast-glob/out/utils/index.js
129338
- var require_utils16 = __commonJS({
129392
+ var require_utils15 = __commonJS({
129339
129393
  "../../node_modules/fast-glob/out/utils/index.js"(exports2) {
129340
129394
  "use strict";
129341
129395
  Object.defineProperty(exports2, "__esModule", { value: true });
@@ -129363,7 +129417,7 @@ var require_tasks = __commonJS({
129363
129417
  "use strict";
129364
129418
  Object.defineProperty(exports2, "__esModule", { value: true });
129365
129419
  exports2.convertPatternGroupToTask = exports2.convertPatternGroupsToTasks = exports2.groupPatternsByBaseDirectory = exports2.getNegativePatternsAsPositive = exports2.getPositivePatterns = exports2.convertPatternsToTasks = exports2.generate = void 0;
129366
- var utils = require_utils16();
129420
+ var utils = require_utils15();
129367
129421
  function generate(input, settings) {
129368
129422
  const patterns = processPatterns(input, settings);
129369
129423
  const ignore = processPatterns(settings.ignore, settings);
@@ -129706,7 +129760,7 @@ var require_fs4 = __commonJS({
129706
129760
  });
129707
129761
 
129708
129762
  // ../../node_modules/@nodelib/fs.scandir/out/utils/index.js
129709
- var require_utils17 = __commonJS({
129763
+ var require_utils16 = __commonJS({
129710
129764
  "../../node_modules/@nodelib/fs.scandir/out/utils/index.js"(exports2) {
129711
129765
  "use strict";
129712
129766
  Object.defineProperty(exports2, "__esModule", { value: true });
@@ -129741,7 +129795,7 @@ var require_async4 = __commonJS({
129741
129795
  var fsStat = require_out();
129742
129796
  var rpl = require_run_parallel();
129743
129797
  var constants_1 = require_constants7();
129744
- var utils = require_utils17();
129798
+ var utils = require_utils16();
129745
129799
  var common = require_common4();
129746
129800
  function read(directory, settings, callback) {
129747
129801
  if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {
@@ -129850,7 +129904,7 @@ var require_sync4 = __commonJS({
129850
129904
  exports2.readdir = exports2.readdirWithFileTypes = exports2.read = void 0;
129851
129905
  var fsStat = require_out();
129852
129906
  var constants_1 = require_constants7();
129853
- var utils = require_utils17();
129907
+ var utils = require_utils16();
129854
129908
  var common = require_common4();
129855
129909
  function read(directory, settings) {
129856
129910
  if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {
@@ -130674,7 +130728,7 @@ var require_reader3 = __commonJS({
130674
130728
  Object.defineProperty(exports2, "__esModule", { value: true });
130675
130729
  var path2 = require("path");
130676
130730
  var fsStat = require_out();
130677
- var utils = require_utils16();
130731
+ var utils = require_utils15();
130678
130732
  var Reader = class {
130679
130733
  constructor(_settings) {
130680
130734
  this._settings = _settings;
@@ -130807,7 +130861,7 @@ var require_matcher = __commonJS({
130807
130861
  "../../node_modules/fast-glob/out/providers/matchers/matcher.js"(exports2) {
130808
130862
  "use strict";
130809
130863
  Object.defineProperty(exports2, "__esModule", { value: true });
130810
- var utils = require_utils16();
130864
+ var utils = require_utils15();
130811
130865
  var Matcher = class {
130812
130866
  constructor(_patterns, _settings, _micromatchOptions) {
130813
130867
  this._patterns = _patterns;
@@ -130895,7 +130949,7 @@ var require_deep = __commonJS({
130895
130949
  "../../node_modules/fast-glob/out/providers/filters/deep.js"(exports2) {
130896
130950
  "use strict";
130897
130951
  Object.defineProperty(exports2, "__esModule", { value: true });
130898
- var utils = require_utils16();
130952
+ var utils = require_utils15();
130899
130953
  var partial_1 = require_partial();
130900
130954
  var DeepFilter = class {
130901
130955
  constructor(_settings, _micromatchOptions) {
@@ -130960,7 +131014,7 @@ var require_entry = __commonJS({
130960
131014
  "../../node_modules/fast-glob/out/providers/filters/entry.js"(exports2) {
130961
131015
  "use strict";
130962
131016
  Object.defineProperty(exports2, "__esModule", { value: true });
130963
- var utils = require_utils16();
131017
+ var utils = require_utils15();
130964
131018
  var EntryFilter = class {
130965
131019
  constructor(_settings, _micromatchOptions) {
130966
131020
  this._settings = _settings;
@@ -131048,7 +131102,7 @@ var require_error2 = __commonJS({
131048
131102
  "../../node_modules/fast-glob/out/providers/filters/error.js"(exports2) {
131049
131103
  "use strict";
131050
131104
  Object.defineProperty(exports2, "__esModule", { value: true });
131051
- var utils = require_utils16();
131105
+ var utils = require_utils15();
131052
131106
  var ErrorFilter = class {
131053
131107
  constructor(_settings) {
131054
131108
  this._settings = _settings;
@@ -131069,7 +131123,7 @@ var require_entry2 = __commonJS({
131069
131123
  "../../node_modules/fast-glob/out/providers/transformers/entry.js"(exports2) {
131070
131124
  "use strict";
131071
131125
  Object.defineProperty(exports2, "__esModule", { value: true });
131072
- var utils = require_utils16();
131126
+ var utils = require_utils15();
131073
131127
  var EntryTransformer = class {
131074
131128
  constructor(_settings) {
131075
131129
  this._settings = _settings;
@@ -131359,7 +131413,7 @@ var require_out4 = __commonJS({
131359
131413
  var stream_1 = require_stream5();
131360
131414
  var sync_1 = require_sync8();
131361
131415
  var settings_1 = require_settings4();
131362
- var utils = require_utils16();
131416
+ var utils = require_utils15();
131363
131417
  async function FastGlob(source, options) {
131364
131418
  assertPatternsInput2(source);
131365
131419
  const works = getWorks(source, async_1.default, options);
@@ -132412,7 +132466,7 @@ ${errorMessages.join("\n")}`;
132412
132466
  });
132413
132467
 
132414
132468
  // dist/utils.js
132415
- var require_utils18 = __commonJS({
132469
+ var require_utils17 = __commonJS({
132416
132470
  "dist/utils.js"(exports2) {
132417
132471
  "use strict";
132418
132472
  Object.defineProperty(exports2, "__esModule", { value: true });
@@ -132750,7 +132804,7 @@ var require_fixFlow = __commonJS({
132750
132804
  };
132751
132805
  Object.defineProperty(exports2, "__esModule", { value: true });
132752
132806
  exports2.startFixFlow = startFixFlow;
132753
- var utils_1 = require_utils18();
132807
+ var utils_1 = require_utils17();
132754
132808
  var ValidatorFactory_1 = __importDefault2(require_ValidatorFactory());
132755
132809
  var FixerFactory_1 = __importDefault2(require_FixerFactory());
132756
132810
  var ditto_codegen_types_12 = require_dist();
@@ -132869,6 +132923,19 @@ var require_naturalJsonStringify = __commonJS({
132869
132923
  }
132870
132924
  });
132871
132925
 
132926
+ // dist/agents/utils/route.js
132927
+ var require_route = __commonJS({
132928
+ "dist/agents/utils/route.js"(exports2) {
132929
+ "use strict";
132930
+ Object.defineProperty(exports2, "__esModule", { value: true });
132931
+ exports2.slugify = void 0;
132932
+ var slugify = (str = "") => {
132933
+ return str.toLowerCase().replace(/[^a-zA-Z0-9\s-_]/g, "").replace(/\s+/g, "-");
132934
+ };
132935
+ exports2.slugify = slugify;
132936
+ }
132937
+ });
132938
+
132872
132939
  // dist/extensions/extensionGenerators.js
132873
132940
  var require_extensionGenerators = __commonJS({
132874
132941
  "dist/extensions/extensionGenerators.js"(exports2) {
@@ -132887,6 +132954,7 @@ var require_extensionGenerators = __commonJS({
132887
132954
  var EmbeddedScriptAgent_1 = require_EmbeddedScriptAgent2();
132888
132955
  var ditto_codegen_types_12 = require_dist();
132889
132956
  var naturalJsonStringify_1 = require_naturalJsonStringify();
132957
+ var route_1 = require_route();
132890
132958
  var ExtensionFactory = class {
132891
132959
  static generateExtension({ extension, outputPath, scaffoldPath, generatedConfig }) {
132892
132960
  const scaffoldDir = path_1.default.dirname(scaffoldPath);
@@ -133028,7 +133096,7 @@ var require_extensionGenerators = __commonJS({
133028
133096
  }
133029
133097
  }
133030
133098
  static createDashboardPageData(id, name, scaffoldDir) {
133031
- const routePath = name.toLowerCase().replace(/\s+/g, "-");
133099
+ const routePath = (0, route_1.slugify)(name);
133032
133100
  const component = getScaffoldPath(scaffoldDir, "page.tsx");
133033
133101
  return {
133034
133102
  id,
@@ -133966,7 +134034,7 @@ var require_domain = __commonJS({
133966
134034
  });
133967
134035
 
133968
134036
  // ../../node_modules/@wix/metro-runtime/dist/cjs/serialization/utils.js
133969
- var require_utils19 = __commonJS({
134037
+ var require_utils18 = __commonJS({
133970
134038
  "../../node_modules/@wix/metro-runtime/dist/cjs/serialization/utils.js"(exports2) {
133971
134039
  "use strict";
133972
134040
  exports2.__esModule = true;
@@ -133992,7 +134060,7 @@ var require_serialization = __commonJS({
133992
134060
  "../../node_modules/@wix/metro-runtime/dist/cjs/serialization/index.js"(exports2) {
133993
134061
  "use strict";
133994
134062
  exports2.__esModule = true;
133995
- var _utils = require_utils19();
134063
+ var _utils = require_utils18();
133996
134064
  Object.keys(_utils).forEach(function(key) {
133997
134065
  if (key === "default" || key === "__esModule") return;
133998
134066
  if (key in exports2 && exports2[key] === _utils[key]) return;
@@ -134002,7 +134070,7 @@ var require_serialization = __commonJS({
134002
134070
  });
134003
134071
 
134004
134072
  // ../../node_modules/@wix/metro-runtime/dist/cjs/utils.js
134005
- var require_utils20 = __commonJS({
134073
+ var require_utils19 = __commonJS({
134006
134074
  "../../node_modules/@wix/metro-runtime/dist/cjs/utils.js"(exports2) {
134007
134075
  "use strict";
134008
134076
  exports2.__esModule = true;
@@ -134026,7 +134094,7 @@ var require_url_resolver = __commonJS({
134026
134094
  "use strict";
134027
134095
  exports2.__esModule = true;
134028
134096
  exports2.resolveUrl = resolveUrl;
134029
- var _utils = require_utils20();
134097
+ var _utils = require_utils19();
134030
134098
  var USER_DOMAIN = "_";
134031
134099
  var DOMAINS = ["wix.com", "editorx.com"];
134032
134100
  var WIX_API_DOMAINS = ["42.wixprod.net", "uw2-edt-1.wixprod.net"];
@@ -134671,7 +134739,7 @@ var require_converters = __commonJS({
134671
134739
  });
134672
134740
 
134673
134741
  // ../../node_modules/@wix/metro-runtime/dist/cjs/serializer/utils.js
134674
- var require_utils21 = __commonJS({
134742
+ var require_utils20 = __commonJS({
134675
134743
  "../../node_modules/@wix/metro-runtime/dist/cjs/serializer/utils.js"(exports2) {
134676
134744
  "use strict";
134677
134745
  exports2.__esModule = true;
@@ -134702,7 +134770,7 @@ var require_ambassador_index = __commonJS({
134702
134770
  var _domain = require_domain();
134703
134771
  var _serializer = require_serializer();
134704
134772
  var _converters = require_converters();
134705
- var _utils = require_utils21();
134773
+ var _utils = require_utils20();
134706
134774
  var ambassadorConverters = (0, _utils.typeToConverterSet)([..._converters.protobufConverters]);
134707
134775
  function serializer(rootSchema, depSchemas = {}) {
134708
134776
  const transform = (0, _serializer.schemaSerializer)(rootSchema, depSchemas, ambassadorConverters);
@@ -135546,7 +135614,7 @@ var require_authorization = __commonJS({
135546
135614
  });
135547
135615
 
135548
135616
  // ../../node_modules/@wix/headers/dist/cjs/utils.js
135549
- var require_utils22 = __commonJS({
135617
+ var require_utils21 = __commonJS({
135550
135618
  "../../node_modules/@wix/headers/dist/cjs/utils.js"(exports2) {
135551
135619
  "use strict";
135552
135620
  exports2.__esModule = true;
@@ -135571,7 +135639,7 @@ var require_artifact_id = __commonJS({
135571
135639
  "use strict";
135572
135640
  exports2.__esModule = true;
135573
135641
  exports2.artifactId = artifactId;
135574
- var _utils = require_utils22();
135642
+ var _utils = require_utils21();
135575
135643
  function artifactId(override) {
135576
135644
  const artifactIdToUse = (0, _utils.isNode)() ? process.env.ARTIFACT_ID ?? process.env.APP_NAME ?? "" : "";
135577
135645
  return {
@@ -135918,7 +135986,7 @@ var require_env_util = __commonJS({
135918
135986
  });
135919
135987
 
135920
135988
  // ../../node_modules/@wix/http-client/dist/src/utils.js
135921
- var require_utils23 = __commonJS({
135989
+ var require_utils22 = __commonJS({
135922
135990
  "../../node_modules/@wix/http-client/dist/src/utils.js"(exports2) {
135923
135991
  "use strict";
135924
135992
  Object.defineProperty(exports2, "__esModule", { value: true });
@@ -136070,7 +136138,7 @@ var require_headers = __commonJS({
136070
136138
  exports2.isWixDomain = exports2.composeHeaders = exports2.requestIdOrEmptyString = void 0;
136071
136139
  var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
136072
136140
  var headers_1 = require_cjs3();
136073
- var utils_1 = require_utils23();
136141
+ var utils_1 = require_utils22();
136074
136142
  var whitelist_json_1 = tslib_1.__importDefault(require_whitelist());
136075
136143
  function requestIdOrEmptyString(response) {
136076
136144
  var _a2;
@@ -136152,7 +136220,7 @@ var require_bind = __commonJS({
136152
136220
  });
136153
136221
 
136154
136222
  // ../../node_modules/@wix/http-client/node_modules/axios/lib/utils.js
136155
- var require_utils24 = __commonJS({
136223
+ var require_utils23 = __commonJS({
136156
136224
  "../../node_modules/@wix/http-client/node_modules/axios/lib/utils.js"(exports2, module2) {
136157
136225
  "use strict";
136158
136226
  var bind = require_bind();
@@ -136412,7 +136480,7 @@ var require_buildFullPath = __commonJS({
136412
136480
  var require_buildURL = __commonJS({
136413
136481
  "../../node_modules/@wix/http-client/node_modules/axios/lib/helpers/buildURL.js"(exports2, module2) {
136414
136482
  "use strict";
136415
- var utils = require_utils24();
136483
+ var utils = require_utils23();
136416
136484
  function encode(val) {
136417
136485
  return encodeURIComponent(val).replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]");
136418
136486
  }
@@ -137069,7 +137137,7 @@ var require_package4 = __commonJS({
137069
137137
  var require_http = __commonJS({
137070
137138
  "../../node_modules/@wix/http-client/node_modules/axios/lib/adapters/http.js"(exports2, module2) {
137071
137139
  "use strict";
137072
- var utils = require_utils24();
137140
+ var utils = require_utils23();
137073
137141
  var settle = require_settle();
137074
137142
  var buildFullPath = require_buildFullPath();
137075
137143
  var buildURL = require_buildURL();
@@ -137931,7 +137999,7 @@ var require_dist16 = __commonJS({
137931
137999
  var require_InterceptorManager = __commonJS({
137932
138000
  "../../node_modules/@wix/http-client/node_modules/axios/lib/core/InterceptorManager.js"(exports2, module2) {
137933
138001
  "use strict";
137934
- var utils = require_utils24();
138002
+ var utils = require_utils23();
137935
138003
  function InterceptorManager() {
137936
138004
  this.handlers = [];
137937
138005
  }
@@ -137964,7 +138032,7 @@ var require_InterceptorManager = __commonJS({
137964
138032
  var require_normalizeHeaderName = __commonJS({
137965
138033
  "../../node_modules/@wix/http-client/node_modules/axios/lib/helpers/normalizeHeaderName.js"(exports2, module2) {
137966
138034
  "use strict";
137967
- var utils = require_utils24();
138035
+ var utils = require_utils23();
137968
138036
  module2.exports = function normalizeHeaderName(headers, normalizedName) {
137969
138037
  utils.forEach(headers, function processHeader(value, name) {
137970
138038
  if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {
@@ -137980,7 +138048,7 @@ var require_normalizeHeaderName = __commonJS({
137980
138048
  var require_cookies2 = __commonJS({
137981
138049
  "../../node_modules/@wix/http-client/node_modules/axios/lib/helpers/cookies.js"(exports2, module2) {
137982
138050
  "use strict";
137983
- var utils = require_utils24();
138051
+ var utils = require_utils23();
137984
138052
  module2.exports = utils.isStandardBrowserEnv() ? (
137985
138053
  // Standard browser envs support document.cookie
137986
138054
  /* @__PURE__ */ (function standardBrowserEnv() {
@@ -138032,7 +138100,7 @@ var require_cookies2 = __commonJS({
138032
138100
  var require_parseHeaders = __commonJS({
138033
138101
  "../../node_modules/@wix/http-client/node_modules/axios/lib/helpers/parseHeaders.js"(exports2, module2) {
138034
138102
  "use strict";
138035
- var utils = require_utils24();
138103
+ var utils = require_utils23();
138036
138104
  var ignoreDuplicateOf = [
138037
138105
  "age",
138038
138106
  "authorization",
@@ -138084,7 +138152,7 @@ var require_parseHeaders = __commonJS({
138084
138152
  var require_isURLSameOrigin = __commonJS({
138085
138153
  "../../node_modules/@wix/http-client/node_modules/axios/lib/helpers/isURLSameOrigin.js"(exports2, module2) {
138086
138154
  "use strict";
138087
- var utils = require_utils24();
138155
+ var utils = require_utils23();
138088
138156
  module2.exports = utils.isStandardBrowserEnv() ? (
138089
138157
  // Standard browser envs have full support of the APIs needed to test
138090
138158
  // whether the request URL is of the same origin as current location.
@@ -138131,7 +138199,7 @@ var require_isURLSameOrigin = __commonJS({
138131
138199
  var require_xhr = __commonJS({
138132
138200
  "../../node_modules/@wix/http-client/node_modules/axios/lib/adapters/xhr.js"(exports2, module2) {
138133
138201
  "use strict";
138134
- var utils = require_utils24();
138202
+ var utils = require_utils23();
138135
138203
  var settle = require_settle();
138136
138204
  var cookies = require_cookies2();
138137
138205
  var buildURL = require_buildURL();
@@ -138260,7 +138328,7 @@ var require_xhr = __commonJS({
138260
138328
  var require_defaults = __commonJS({
138261
138329
  "../../node_modules/@wix/http-client/node_modules/axios/lib/defaults.js"(exports2, module2) {
138262
138330
  "use strict";
138263
- var utils = require_utils24();
138331
+ var utils = require_utils23();
138264
138332
  var normalizeHeaderName = require_normalizeHeaderName();
138265
138333
  var enhanceError = require_enhanceError();
138266
138334
  var DEFAULT_CONTENT_TYPE = {
@@ -138370,7 +138438,7 @@ var require_defaults = __commonJS({
138370
138438
  var require_transformData = __commonJS({
138371
138439
  "../../node_modules/@wix/http-client/node_modules/axios/lib/core/transformData.js"(exports2, module2) {
138372
138440
  "use strict";
138373
- var utils = require_utils24();
138441
+ var utils = require_utils23();
138374
138442
  var defaults = require_defaults();
138375
138443
  module2.exports = function transformData(data, headers, fns) {
138376
138444
  var context2 = this || defaults;
@@ -138396,7 +138464,7 @@ var require_isCancel = __commonJS({
138396
138464
  var require_dispatchRequest = __commonJS({
138397
138465
  "../../node_modules/@wix/http-client/node_modules/axios/lib/core/dispatchRequest.js"(exports2, module2) {
138398
138466
  "use strict";
138399
- var utils = require_utils24();
138467
+ var utils = require_utils23();
138400
138468
  var transformData = require_transformData();
138401
138469
  var isCancel = require_isCancel();
138402
138470
  var defaults = require_defaults();
@@ -138457,7 +138525,7 @@ var require_dispatchRequest = __commonJS({
138457
138525
  var require_mergeConfig = __commonJS({
138458
138526
  "../../node_modules/@wix/http-client/node_modules/axios/lib/core/mergeConfig.js"(exports2, module2) {
138459
138527
  "use strict";
138460
- var utils = require_utils24();
138528
+ var utils = require_utils23();
138461
138529
  module2.exports = function mergeConfig(config1, config2) {
138462
138530
  config2 = config2 || {};
138463
138531
  var config = {};
@@ -138616,7 +138684,7 @@ var require_validator = __commonJS({
138616
138684
  var require_Axios = __commonJS({
138617
138685
  "../../node_modules/@wix/http-client/node_modules/axios/lib/core/Axios.js"(exports2, module2) {
138618
138686
  "use strict";
138619
- var utils = require_utils24();
138687
+ var utils = require_utils23();
138620
138688
  var buildURL = require_buildURL();
138621
138689
  var InterceptorManager = require_InterceptorManager();
138622
138690
  var dispatchRequest = require_dispatchRequest();
@@ -138806,7 +138874,7 @@ var require_isAxiosError = __commonJS({
138806
138874
  var require_axios = __commonJS({
138807
138875
  "../../node_modules/@wix/http-client/node_modules/axios/lib/axios.js"(exports2, module2) {
138808
138876
  "use strict";
138809
- var utils = require_utils24();
138877
+ var utils = require_utils23();
138810
138878
  var bind = require_bind();
138811
138879
  var Axios = require_Axios();
138812
138880
  var mergeConfig = require_mergeConfig();
@@ -138851,7 +138919,7 @@ var require_options = __commonJS({
138851
138919
  exports2.getUrlHeaders = exports2.buildAllHeaders = exports2.buildOptions = void 0;
138852
138920
  var constants_1 = require_constants8();
138853
138921
  var headers_1 = require_headers();
138854
- var utils_1 = require_utils23();
138922
+ var utils_1 = require_utils22();
138855
138923
  var buildOptions = ({ requestOptions, urlObject, headers, globalConfig = {
138856
138924
  httpMockServer: {
138857
138925
  enabled: false
@@ -138961,7 +139029,7 @@ var require_http_client = __commonJS({
138961
139029
  var error_1 = require_error3();
138962
139030
  var headers_1 = require_headers();
138963
139031
  var options_1 = require_options();
138964
- var utils_1 = require_utils23();
139032
+ var utils_1 = require_utils22();
138965
139033
  var HttpClient = class {
138966
139034
  constructor(opts = {}) {
138967
139035
  this.opts = opts;
@@ -139317,7 +139385,7 @@ var require_codegen_flow_helpers = __commonJS({
139317
139385
  var path_1 = __importDefault2(require("path"));
139318
139386
  var codeGenerationService_1 = require_codeGenerationService();
139319
139387
  var ditto_codegen_types_12 = require_dist();
139320
- var utils_1 = require_utils18();
139388
+ var utils_1 = require_utils17();
139321
139389
  var http_1 = require_http_impl();
139322
139390
  var http_client_1 = require_index_node();
139323
139391
  var orchestrator_1 = require_orchestrator();
@@ -353422,7 +353490,7 @@ var require_job_cancellation_monitor = __commonJS({
353422
353490
  Object.defineProperty(exports2, "__esModule", { value: true });
353423
353491
  exports2.JobCancellationMonitor = void 0;
353424
353492
  var ditto_codegen_types_12 = require_dist();
353425
- var utils_1 = require_utils18();
353493
+ var utils_1 = require_utils17();
353426
353494
  var STATUS_CHECK_INTERVAL_MS = 2e3;
353427
353495
  var JobCancellationMonitor = class {
353428
353496
  constructor(codeGenerationService) {
@@ -353471,7 +353539,7 @@ var require_job_timeout_monitor = __commonJS({
353471
353539
  Object.defineProperty(exports2, "__esModule", { value: true });
353472
353540
  exports2.JobTimeoutMonitor = exports2.JOB_TIMEOUT_MS = void 0;
353473
353541
  var ditto_codegen_types_12 = require_dist();
353474
- var utils_1 = require_utils18();
353542
+ var utils_1 = require_utils17();
353475
353543
  exports2.JOB_TIMEOUT_MS = 1e3 * 60 * 10;
353476
353544
  var JobTimeoutMonitor = class {
353477
353545
  constructor(codeGenerationService) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/ditto-codegen-public",
3
- "version": "1.0.131",
3
+ "version": "1.0.133",
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.25.9"
26
26
  },
27
- "falconPackageHash": "a077e8a8144f4e64fc6ddeb47287c87732f0b70c2d99c29dbab13874"
27
+ "falconPackageHash": "3fdd2da4c4dbeacc45b656193991ca7c8063d4887b581eecb57fc01f"
28
28
  }