@wix/ditto-codegen-public 1.0.318 → 1.0.319

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 +620 -94
  2. package/package.json +2 -2
package/dist/out.js CHANGED
@@ -12182,6 +12182,605 @@ var require_app_builder = __commonJS({
12182
12182
  }
12183
12183
  });
12184
12184
 
12185
+ // ../../node_modules/@wix/ambassador-code-studio-orchestrator-v1-project/cjs/build/http.impl.js
12186
+ var require_http_impl2 = __commonJS({
12187
+ "../../node_modules/@wix/ambassador-code-studio-orchestrator-v1-project/cjs/build/http.impl.js"(exports2) {
12188
+ "use strict";
12189
+ Object.defineProperty(exports2, "__esModule", { value: true });
12190
+ exports2.initProject = initProject;
12191
+ exports2.startDevSession = startDevSession;
12192
+ exports2.getProjectStatus = getProjectStatus;
12193
+ exports2.getDevSessionStatus = getDevSessionStatus;
12194
+ exports2.resetDevSession = resetDevSession;
12195
+ exports2.createCodeGenerationJob = createCodeGenerationJob;
12196
+ exports2.commitDevOverride = commitDevOverride;
12197
+ exports2.registerDevSchemas = registerDevSchemas;
12198
+ exports2.generateCode = generateCode;
12199
+ exports2.getCodeGenerationJobStatus = getCodeGenerationJobStatus;
12200
+ exports2.createCheckpoint = createCheckpoint;
12201
+ var metro_runtime_1 = require_build();
12202
+ var ambassador_1 = require_ambassador_index();
12203
+ var metro_runtime_2 = require_build();
12204
+ var _commitDevOverrideRequest = {};
12205
+ var _commitDevOverrideResponse = {};
12206
+ var _createCheckpointRequest = {};
12207
+ var _createCheckpointResponse = {};
12208
+ var _createCodeGenerationJobRequest = {};
12209
+ var _createCodeGenerationJobResponse = {};
12210
+ var _generateCodeRequest = {};
12211
+ var _generateCodeResponse = {};
12212
+ var _getCodeGenerationJobStatusRequest = {};
12213
+ var _getCodeGenerationJobStatusResponse = {};
12214
+ var _getDevSessionStatusRequest = {};
12215
+ var _getDevSessionStatusResponse = { tasks: "_task" };
12216
+ var _getProjectStatusRequest = {};
12217
+ var _getProjectStatusResponse = {};
12218
+ var _initProjectRequest = {};
12219
+ var _initProjectResponse = {};
12220
+ var _registerDevSchemasRequest = {};
12221
+ var _registerDevSchemasResponse = {};
12222
+ var _resetDevSessionRequest = {};
12223
+ var _resetDevSessionResponse = {};
12224
+ var _startDevSessionRequest = {};
12225
+ var _startDevSessionResponse = { initialTasks: "_task" };
12226
+ var _task = { info: "_taskInfo" };
12227
+ var _taskInfo = {
12228
+ durationMs: "google.protobuf.DoubleValue",
12229
+ startedAt: "google.protobuf.Timestamp",
12230
+ completedAt: "google.protobuf.Timestamp"
12231
+ };
12232
+ function resolveComWixpressCodeStudioOrchestratorApiCodeStudioOrchestratorServiceUrl(opts) {
12233
+ var domainToMappings = {
12234
+ "editor._base_domain_": [
12235
+ {
12236
+ srcPath: "/_api/code-studio-orchestrator",
12237
+ destPath: ""
12238
+ }
12239
+ ],
12240
+ "blocks._base_domain_": [
12241
+ {
12242
+ srcPath: "/_api/code-studio-orchestrator",
12243
+ destPath: ""
12244
+ }
12245
+ ],
12246
+ "create.editorx": [
12247
+ {
12248
+ srcPath: "/_api/code-studio-orchestrator",
12249
+ destPath: ""
12250
+ }
12251
+ ],
12252
+ "manage._base_domain_": [
12253
+ {
12254
+ srcPath: "/_api/code-studio-orchestrator",
12255
+ destPath: ""
12256
+ }
12257
+ ],
12258
+ "bo._base_domain_": [
12259
+ {
12260
+ srcPath: "/_api/code-studio-orchestrator",
12261
+ destPath: ""
12262
+ }
12263
+ ],
12264
+ "wixbo.ai": [
12265
+ {
12266
+ srcPath: "/_api/code-studio-orchestrator",
12267
+ destPath: ""
12268
+ }
12269
+ ],
12270
+ "wix-bo.com": [
12271
+ {
12272
+ srcPath: "/_api/code-studio-orchestrator",
12273
+ destPath: ""
12274
+ }
12275
+ ]
12276
+ };
12277
+ return (0, metro_runtime_2.resolveUrl)(Object.assign(opts, { domainToMappings }));
12278
+ }
12279
+ function initProject(payload) {
12280
+ var _a = (0, ambassador_1.serializer)(_initProjectRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON;
12281
+ var fromRes = (0, ambassador_1.serializer)(_initProjectResponse, {}).fromJSON;
12282
+ function __initProject(_a2) {
12283
+ var host = _a2.host;
12284
+ var serializedData = toReq(payload);
12285
+ var metadata = {
12286
+ entityFqdn: "wix.code_studio.orchestrator.v1.project",
12287
+ method: "POST",
12288
+ methodFqn: "com.wixpress.code_studio.orchestrator.api.CodeStudioOrchestratorService.InitProject",
12289
+ migrationOptions: {
12290
+ optInTransformResponse: true
12291
+ },
12292
+ url: resolveComWixpressCodeStudioOrchestratorApiCodeStudioOrchestratorServiceUrl({ protoPath: "/v1/init-project", data: serializedData, host }),
12293
+ data: serializedData,
12294
+ transformResponse: fromRes
12295
+ };
12296
+ return metadata;
12297
+ }
12298
+ __initProject.fromReq = fromReq;
12299
+ __initProject.__isAmbassador = true;
12300
+ return __initProject;
12301
+ }
12302
+ function startDevSession(payload) {
12303
+ var _a = (0, ambassador_1.serializer)(_startDevSessionRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON;
12304
+ var fromRes = (0, ambassador_1.serializer)(_startDevSessionResponse, {
12305
+ _task,
12306
+ _taskInfo
12307
+ }).fromJSON;
12308
+ function __startDevSession(_a2) {
12309
+ var host = _a2.host;
12310
+ var serializedData = toReq(payload);
12311
+ var metadata = {
12312
+ entityFqdn: "wix.code_studio.orchestrator.v1.project",
12313
+ method: "POST",
12314
+ methodFqn: "com.wixpress.code_studio.orchestrator.api.CodeStudioOrchestratorService.StartDevSession",
12315
+ migrationOptions: {
12316
+ optInTransformResponse: true
12317
+ },
12318
+ url: resolveComWixpressCodeStudioOrchestratorApiCodeStudioOrchestratorServiceUrl({ protoPath: "/v1/start-dev-session", data: serializedData, host }),
12319
+ data: serializedData,
12320
+ transformResponse: fromRes
12321
+ };
12322
+ return metadata;
12323
+ }
12324
+ __startDevSession.fromReq = fromReq;
12325
+ __startDevSession.__isAmbassador = true;
12326
+ return __startDevSession;
12327
+ }
12328
+ function getProjectStatus(payload) {
12329
+ var _a = (0, ambassador_1.serializer)(_getProjectStatusRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON;
12330
+ var fromRes = (0, ambassador_1.serializer)(_getProjectStatusResponse, {}).fromJSON;
12331
+ function __getProjectStatus(_a2) {
12332
+ var host = _a2.host;
12333
+ var serializedData = toReq(payload);
12334
+ var metadata = {
12335
+ entityFqdn: "wix.code_studio.orchestrator.v1.project",
12336
+ method: "GET",
12337
+ methodFqn: "com.wixpress.code_studio.orchestrator.api.CodeStudioOrchestratorService.GetProjectStatus",
12338
+ migrationOptions: {
12339
+ optInTransformResponse: true
12340
+ },
12341
+ url: resolveComWixpressCodeStudioOrchestratorApiCodeStudioOrchestratorServiceUrl({ protoPath: "/v1/project-status", data: serializedData, host }),
12342
+ params: (0, metro_runtime_1.toURLSearchParams)(serializedData),
12343
+ transformResponse: fromRes
12344
+ };
12345
+ return metadata;
12346
+ }
12347
+ __getProjectStatus.fromReq = fromReq;
12348
+ __getProjectStatus.__isAmbassador = true;
12349
+ return __getProjectStatus;
12350
+ }
12351
+ function getDevSessionStatus(payload) {
12352
+ var _a = (0, ambassador_1.serializer)(_getDevSessionStatusRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON;
12353
+ var fromRes = (0, ambassador_1.serializer)(_getDevSessionStatusResponse, {
12354
+ _task,
12355
+ _taskInfo
12356
+ }).fromJSON;
12357
+ function __getDevSessionStatus(_a2) {
12358
+ var host = _a2.host;
12359
+ var serializedData = toReq(payload);
12360
+ var metadata = {
12361
+ entityFqdn: "wix.code_studio.orchestrator.v1.project",
12362
+ method: "GET",
12363
+ methodFqn: "com.wixpress.code_studio.orchestrator.api.CodeStudioOrchestratorService.GetDevSessionStatus",
12364
+ migrationOptions: {
12365
+ optInTransformResponse: true
12366
+ },
12367
+ url: resolveComWixpressCodeStudioOrchestratorApiCodeStudioOrchestratorServiceUrl({ protoPath: "/v1/dev-session-status", data: serializedData, host }),
12368
+ params: (0, metro_runtime_1.toURLSearchParams)(serializedData),
12369
+ transformResponse: fromRes
12370
+ };
12371
+ return metadata;
12372
+ }
12373
+ __getDevSessionStatus.fromReq = fromReq;
12374
+ __getDevSessionStatus.__isAmbassador = true;
12375
+ return __getDevSessionStatus;
12376
+ }
12377
+ function resetDevSession(payload) {
12378
+ var _a = (0, ambassador_1.serializer)(_resetDevSessionRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON;
12379
+ var fromRes = (0, ambassador_1.serializer)(_resetDevSessionResponse, {}).fromJSON;
12380
+ function __resetDevSession(_a2) {
12381
+ var host = _a2.host;
12382
+ var serializedData = toReq(payload);
12383
+ var metadata = {
12384
+ entityFqdn: "wix.code_studio.orchestrator.v1.project",
12385
+ method: "POST",
12386
+ methodFqn: "com.wixpress.code_studio.orchestrator.api.CodeStudioOrchestratorService.ResetDevSession",
12387
+ migrationOptions: {
12388
+ optInTransformResponse: true
12389
+ },
12390
+ url: resolveComWixpressCodeStudioOrchestratorApiCodeStudioOrchestratorServiceUrl({ protoPath: "/v1/reset-dev-session", data: serializedData, host }),
12391
+ data: serializedData,
12392
+ transformResponse: fromRes
12393
+ };
12394
+ return metadata;
12395
+ }
12396
+ __resetDevSession.fromReq = fromReq;
12397
+ __resetDevSession.__isAmbassador = true;
12398
+ return __resetDevSession;
12399
+ }
12400
+ function createCodeGenerationJob(payload) {
12401
+ var _a = (0, ambassador_1.serializer)(_createCodeGenerationJobRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON;
12402
+ var fromRes = (0, ambassador_1.serializer)(_createCodeGenerationJobResponse, {}).fromJSON;
12403
+ function __createCodeGenerationJob(_a2) {
12404
+ var host = _a2.host;
12405
+ var serializedData = toReq(payload);
12406
+ var metadata = {
12407
+ entityFqdn: "wix.code_studio.orchestrator.v1.project",
12408
+ method: "POST",
12409
+ methodFqn: "com.wixpress.code_studio.orchestrator.api.CodeStudioOrchestratorService.CreateCodeGenerationJob",
12410
+ migrationOptions: {
12411
+ optInTransformResponse: true
12412
+ },
12413
+ url: resolveComWixpressCodeStudioOrchestratorApiCodeStudioOrchestratorServiceUrl({ protoPath: "/v1/create-code-generation", data: serializedData, host }),
12414
+ data: serializedData,
12415
+ transformResponse: fromRes
12416
+ };
12417
+ return metadata;
12418
+ }
12419
+ __createCodeGenerationJob.fromReq = fromReq;
12420
+ __createCodeGenerationJob.__isAmbassador = true;
12421
+ return __createCodeGenerationJob;
12422
+ }
12423
+ function commitDevOverride(payload) {
12424
+ var _a = (0, ambassador_1.serializer)(_commitDevOverrideRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON;
12425
+ var fromRes = (0, ambassador_1.serializer)(_commitDevOverrideResponse, {}).fromJSON;
12426
+ function __commitDevOverride(_a2) {
12427
+ var host = _a2.host;
12428
+ var serializedData = toReq(payload);
12429
+ var metadata = {
12430
+ entityFqdn: "wix.code_studio.orchestrator.v1.project",
12431
+ method: "POST",
12432
+ methodFqn: "com.wixpress.code_studio.orchestrator.api.CodeStudioOrchestratorService.CommitDevOverride",
12433
+ migrationOptions: {
12434
+ optInTransformResponse: true
12435
+ },
12436
+ url: resolveComWixpressCodeStudioOrchestratorApiCodeStudioOrchestratorServiceUrl({ protoPath: "/v1/commit-dev-override", data: serializedData, host }),
12437
+ data: serializedData,
12438
+ transformResponse: fromRes
12439
+ };
12440
+ return metadata;
12441
+ }
12442
+ __commitDevOverride.fromReq = fromReq;
12443
+ __commitDevOverride.__isAmbassador = true;
12444
+ return __commitDevOverride;
12445
+ }
12446
+ function registerDevSchemas(payload) {
12447
+ var _a = (0, ambassador_1.serializer)(_registerDevSchemasRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON;
12448
+ var fromRes = (0, ambassador_1.serializer)(_registerDevSchemasResponse, {}).fromJSON;
12449
+ function __registerDevSchemas(_a2) {
12450
+ var host = _a2.host;
12451
+ var serializedData = toReq(payload);
12452
+ var metadata = {
12453
+ entityFqdn: "wix.code_studio.orchestrator.v1.project",
12454
+ method: "POST",
12455
+ methodFqn: "com.wixpress.code_studio.orchestrator.api.CodeStudioOrchestratorService.RegisterDevSchemas",
12456
+ migrationOptions: {
12457
+ optInTransformResponse: true
12458
+ },
12459
+ url: resolveComWixpressCodeStudioOrchestratorApiCodeStudioOrchestratorServiceUrl({ protoPath: "/v1/register-dev-schemas", data: serializedData, host }),
12460
+ data: serializedData,
12461
+ transformResponse: fromRes
12462
+ };
12463
+ return metadata;
12464
+ }
12465
+ __registerDevSchemas.fromReq = fromReq;
12466
+ __registerDevSchemas.__isAmbassador = true;
12467
+ return __registerDevSchemas;
12468
+ }
12469
+ function generateCode(payload) {
12470
+ var _a = (0, ambassador_1.serializer)(_generateCodeRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON;
12471
+ var fromRes = (0, ambassador_1.serializer)(_generateCodeResponse, {}).fromJSON;
12472
+ function __generateCode(_a2) {
12473
+ var host = _a2.host;
12474
+ var serializedData = toReq(payload);
12475
+ var metadata = {
12476
+ entityFqdn: "wix.code_studio.orchestrator.v1.project",
12477
+ method: "POST",
12478
+ methodFqn: "com.wixpress.code_studio.orchestrator.api.CodeStudioOrchestratorService.GenerateCode",
12479
+ migrationOptions: {
12480
+ optInTransformResponse: true
12481
+ },
12482
+ url: resolveComWixpressCodeStudioOrchestratorApiCodeStudioOrchestratorServiceUrl({ protoPath: "/v1/generate-code", data: serializedData, host }),
12483
+ data: serializedData,
12484
+ transformResponse: fromRes
12485
+ };
12486
+ return metadata;
12487
+ }
12488
+ __generateCode.fromReq = fromReq;
12489
+ __generateCode.__isAmbassador = true;
12490
+ return __generateCode;
12491
+ }
12492
+ function getCodeGenerationJobStatus(payload) {
12493
+ var _a = (0, ambassador_1.serializer)(_getCodeGenerationJobStatusRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON;
12494
+ var fromRes = (0, ambassador_1.serializer)(_getCodeGenerationJobStatusResponse, {}).fromJSON;
12495
+ function __getCodeGenerationJobStatus(_a2) {
12496
+ var host = _a2.host;
12497
+ var serializedData = toReq(payload);
12498
+ var metadata = {
12499
+ entityFqdn: "wix.code_studio.orchestrator.v1.project",
12500
+ method: "GET",
12501
+ methodFqn: "com.wixpress.code_studio.orchestrator.api.CodeStudioOrchestratorService.GetCodeGenerationJobStatus",
12502
+ migrationOptions: {
12503
+ optInTransformResponse: true
12504
+ },
12505
+ url: resolveComWixpressCodeStudioOrchestratorApiCodeStudioOrchestratorServiceUrl({ protoPath: "/v1/job-status", data: serializedData, host }),
12506
+ params: (0, metro_runtime_1.toURLSearchParams)(serializedData),
12507
+ transformResponse: fromRes
12508
+ };
12509
+ return metadata;
12510
+ }
12511
+ __getCodeGenerationJobStatus.fromReq = fromReq;
12512
+ __getCodeGenerationJobStatus.__isAmbassador = true;
12513
+ return __getCodeGenerationJobStatus;
12514
+ }
12515
+ function createCheckpoint(payload) {
12516
+ var _a = (0, ambassador_1.serializer)(_createCheckpointRequest, {}), toReq = _a.toJSON, fromReq = _a.fromJSON;
12517
+ var fromRes = (0, ambassador_1.serializer)(_createCheckpointResponse, {}).fromJSON;
12518
+ function __createCheckpoint(_a2) {
12519
+ var host = _a2.host;
12520
+ var serializedData = toReq(payload);
12521
+ var metadata = {
12522
+ entityFqdn: "wix.code_studio.orchestrator.v1.project",
12523
+ method: "POST",
12524
+ methodFqn: "com.wixpress.code_studio.orchestrator.api.CodeStudioOrchestratorService.CreateCheckpoint",
12525
+ migrationOptions: {
12526
+ optInTransformResponse: true
12527
+ },
12528
+ url: resolveComWixpressCodeStudioOrchestratorApiCodeStudioOrchestratorServiceUrl({ protoPath: "/v1/create-checkpoint", data: serializedData, host }),
12529
+ data: serializedData,
12530
+ transformResponse: fromRes
12531
+ };
12532
+ return metadata;
12533
+ }
12534
+ __createCheckpoint.fromReq = fromReq;
12535
+ __createCheckpoint.__isAmbassador = true;
12536
+ return __createCheckpoint;
12537
+ }
12538
+ }
12539
+ });
12540
+
12541
+ // dist/utils.js
12542
+ var require_utils9 = __commonJS({
12543
+ "dist/utils.js"(exports2) {
12544
+ "use strict";
12545
+ Object.defineProperty(exports2, "__esModule", { value: true });
12546
+ exports2.serializeError = serializeError;
12547
+ exports2.updateAllRunningTasks = updateAllRunningTasks;
12548
+ var types_1 = require_types_impl();
12549
+ var codeGenerationService_12 = require_codeGenerationService();
12550
+ function serializeError(error) {
12551
+ if (error instanceof Error) {
12552
+ const base = {
12553
+ name: error.name,
12554
+ message: error.message,
12555
+ stack: error.stack
12556
+ };
12557
+ const anyErr = error;
12558
+ for (const key in anyErr) {
12559
+ if (!(key in base)) {
12560
+ try {
12561
+ base[key] = anyErr[key];
12562
+ } catch {
12563
+ }
12564
+ }
12565
+ }
12566
+ const withCause = error;
12567
+ if (withCause && "cause" in withCause) {
12568
+ base.cause = withCause.cause;
12569
+ }
12570
+ const maybeHttp = error;
12571
+ if (maybeHttp?.response?.data !== void 0)
12572
+ base.data = maybeHttp.response.data;
12573
+ if (maybeHttp?.code !== void 0)
12574
+ base.code = maybeHttp.code;
12575
+ if (maybeHttp?.details !== void 0)
12576
+ base.details = maybeHttp.details;
12577
+ return base;
12578
+ }
12579
+ if (typeof error === "object" && error !== null) {
12580
+ try {
12581
+ return JSON.parse(JSON.stringify(error));
12582
+ } catch {
12583
+ return { message: String(error) };
12584
+ }
12585
+ }
12586
+ return { message: String(error) };
12587
+ }
12588
+ async function updateAllRunningTasks(jobId, status, error) {
12589
+ const job = await codeGenerationService_12.codeGenerationService.getJob(jobId);
12590
+ const tasks = (job?.tasks ?? []).filter((task) => task.status === types_1.Status.RUNNING || task.status === types_1.Status.PENDING) || [];
12591
+ for (const task of tasks) {
12592
+ if (!task.id)
12593
+ continue;
12594
+ await codeGenerationService_12.codeGenerationService.updateTask(jobId, task.id, status, error ? { error: serializeError(error) } : {});
12595
+ }
12596
+ }
12597
+ }
12598
+ });
12599
+
12600
+ // dist/flows/codegen-flow-helpers.js
12601
+ var require_codegen_flow_helpers = __commonJS({
12602
+ "dist/flows/codegen-flow-helpers.js"(exports2) {
12603
+ "use strict";
12604
+ var __importDefault2 = exports2 && exports2.__importDefault || function(mod) {
12605
+ return mod && mod.__esModule ? mod : { "default": mod };
12606
+ };
12607
+ Object.defineProperty(exports2, "__esModule", { value: true });
12608
+ exports2.updateJobPayload = updateJobPayload;
12609
+ exports2.updateParentTaskStatus = updateParentTaskStatus;
12610
+ exports2.getOutputPath = getOutputPath;
12611
+ var path_1 = __importDefault2(require("path"));
12612
+ var codeGenerationService_12 = require_codeGenerationService();
12613
+ var utils_1 = require_utils9();
12614
+ var DEFAULT_OUTPUT_PATH = "generated-app";
12615
+ async function updateJobPayload(jobContext, payload) {
12616
+ await codeGenerationService_12.codeGenerationService.updateJob(jobContext.jobId, payload);
12617
+ }
12618
+ async function updateParentTaskStatus(jobContext, status, error) {
12619
+ await codeGenerationService_12.codeGenerationService.updateTask(jobContext.jobId, jobContext.taskId, status, error ? { error: (0, utils_1.serializeError)(error) } : {});
12620
+ }
12621
+ function getOutputPath() {
12622
+ const outputDir = process.env.OUTPUT_PATH || DEFAULT_OUTPUT_PATH;
12623
+ return outputDir.startsWith("/") ? outputDir : path_1.default.join(process.cwd(), outputDir);
12624
+ }
12625
+ }
12626
+ });
12627
+
12628
+ // dist/environments/hooks/checkpoint.js
12629
+ var require_checkpoint = __commonJS({
12630
+ "dist/environments/hooks/checkpoint.js"(exports2) {
12631
+ "use strict";
12632
+ Object.defineProperty(exports2, "__esModule", { value: true });
12633
+ exports2.checkpointHookFactory = void 0;
12634
+ var http_1 = require_http_impl2();
12635
+ var http_client_1 = require_index_node();
12636
+ var logger_12 = require_logger();
12637
+ var codegen_flow_helpers_12 = require_codegen_flow_helpers();
12638
+ var config_12 = require_config();
12639
+ var wixTokenRefresh_1 = require_wixTokenRefresh();
12640
+ var FALLBACK_COMMIT_MESSAGE = "Auto-save";
12641
+ var EML_MARKER = "generate-eml.ts";
12642
+ var SET_COMMIT_MESSAGE_TOOL = "set-commit-message";
12643
+ var MAX_COMMIT_MESSAGE_LENGTH = 1e3;
12644
+ var TRUNCATION_SUFFIX = "\u2026";
12645
+ var truncateCommitMessage = (message) => {
12646
+ if (message.length <= MAX_COMMIT_MESSAGE_LENGTH)
12647
+ return message;
12648
+ return message.slice(0, MAX_COMMIT_MESSAGE_LENGTH - TRUNCATION_SUFFIX.length) + TRUNCATION_SUFFIX;
12649
+ };
12650
+ var orchestratorHttpClient = (0, http_client_1.createHttpClient)({
12651
+ baseURL: "https://editor.wix.com"
12652
+ });
12653
+ var withAuth = (req) => {
12654
+ const authHeader = {
12655
+ authorization: `Bearer ${process.env.WIX_ACCESS_TOKEN}`
12656
+ };
12657
+ if (typeof req === "function") {
12658
+ return (ctx) => {
12659
+ const r = req(ctx);
12660
+ return { ...r, headers: { ...r.headers ?? {}, ...authHeader } };
12661
+ };
12662
+ }
12663
+ return { ...req, headers: { ...req.headers ?? {}, ...authHeader } };
12664
+ };
12665
+ var isUnauthorized = (error) => {
12666
+ if (!http_client_1.HttpClient.isHttpError(error))
12667
+ return false;
12668
+ if (orchestratorHttpClient.isCancel(error))
12669
+ return false;
12670
+ return error.response?.status === 401;
12671
+ };
12672
+ var refreshAndPropagate = async () => {
12673
+ const token = await (0, wixTokenRefresh_1.refreshWixAccessToken)();
12674
+ (0, config_12.setCurrentAccessToken)(token);
12675
+ };
12676
+ var requestWithRefresh = async (req) => {
12677
+ try {
12678
+ return await orchestratorHttpClient.request(withAuth(req));
12679
+ } catch (err) {
12680
+ if (!isUnauthorized(err))
12681
+ throw err;
12682
+ logger_12.logger.warn("[Checkpoint] 401 received, refreshing token and retrying once");
12683
+ await refreshAndPropagate();
12684
+ return await orchestratorHttpClient.request(withAuth(req));
12685
+ }
12686
+ };
12687
+ var callCreateCheckpoint = async (appId, commitMessage) => {
12688
+ const resp = await requestWithRefresh((0, http_1.createCheckpoint)({
12689
+ appId,
12690
+ commitMessage: truncateCommitMessage(commitMessage)
12691
+ }));
12692
+ return { checkpointId: resp.data?.checkpointId };
12693
+ };
12694
+ var readToolCommitMessage = (input) => {
12695
+ if (typeof input !== "object" || input === null)
12696
+ return void 0;
12697
+ const value = input.commitMessage;
12698
+ if (typeof value !== "string")
12699
+ return void 0;
12700
+ const trimmed = value.trim();
12701
+ return trimmed.length > 0 ? trimmed : void 0;
12702
+ };
12703
+ var checkpointHookFactory = (ctx) => {
12704
+ let outcome;
12705
+ let capturedCommitMessage;
12706
+ const commitCheckpoint = async (commitMessage) => {
12707
+ try {
12708
+ const { checkpointId } = await callCreateCheckpoint(ctx.projectId, commitMessage);
12709
+ outcome = { status: "created", checkpointId };
12710
+ if (checkpointId) {
12711
+ await (0, codegen_flow_helpers_12.updateJobPayload)({ jobId: ctx.jobId, taskId: ctx.taskId }, { checkpointId });
12712
+ }
12713
+ logger_12.logger.info("[Checkpoint] created", {
12714
+ projectId: ctx.projectId,
12715
+ checkpointId,
12716
+ commitMessage
12717
+ });
12718
+ } catch (error) {
12719
+ outcome = { status: "failed", error };
12720
+ logger_12.logger.error("[Checkpoint] create failed", {
12721
+ projectId: ctx.projectId,
12722
+ error: error instanceof Error ? error.message : String(error)
12723
+ });
12724
+ throw error;
12725
+ }
12726
+ };
12727
+ return {
12728
+ name: "checkpoint",
12729
+ // The agent calls `set-commit-message` (a deterministic opencode tool)
12730
+ // as the first thing it does. We capture the value here. Then later,
12731
+ // when the EML script runs (mid-flow), we use the captured value for
12732
+ // the early checkpoint.
12733
+ async onToolUse({ tool, state }) {
12734
+ if (state.status === "error")
12735
+ return;
12736
+ if (tool === SET_COMMIT_MESSAGE_TOOL) {
12737
+ const message = readToolCommitMessage(state.input);
12738
+ if (message)
12739
+ capturedCommitMessage = message;
12740
+ return;
12741
+ }
12742
+ if (outcome)
12743
+ return;
12744
+ if (tool !== "bash")
12745
+ return;
12746
+ const command = state.input?.command;
12747
+ if (!command || !command.includes(EML_MARKER))
12748
+ return;
12749
+ const commitMessage = capturedCommitMessage ?? FALLBACK_COMMIT_MESSAGE;
12750
+ try {
12751
+ await commitCheckpoint(commitMessage);
12752
+ } catch {
12753
+ }
12754
+ },
12755
+ // Flow-end fallback: only fires if onToolUse didn't already create the
12756
+ // checkpoint. Re-throws an earlier failure so the task is marked failed.
12757
+ async onFlowEnd({ failed }) {
12758
+ if (outcome?.status === "failed")
12759
+ throw outcome.error;
12760
+ if (outcome?.status === "created")
12761
+ return;
12762
+ if (failed)
12763
+ return;
12764
+ const commitMessage = capturedCommitMessage ?? FALLBACK_COMMIT_MESSAGE;
12765
+ await commitCheckpoint(commitMessage);
12766
+ }
12767
+ };
12768
+ };
12769
+ exports2.checkpointHookFactory = checkpointHookFactory;
12770
+ }
12771
+ });
12772
+
12773
+ // dist/environments/hooks/checkpoint-rules.js
12774
+ var require_checkpoint_rules = __commonJS({
12775
+ "dist/environments/hooks/checkpoint-rules.js"(exports2) {
12776
+ "use strict";
12777
+ Object.defineProperty(exports2, "__esModule", { value: true });
12778
+ exports2.CHECKPOINT_COMMIT_MESSAGE_RULES = void 0;
12779
+ exports2.CHECKPOINT_COMMIT_MESSAGE_RULES = `COMMIT MESSAGE:
12780
+ First thing, before writing any code, call the \`set-commit-message\` tool. See its description for format and length.`;
12781
+ }
12782
+ });
12783
+
12185
12784
  // dist/environments/studio-2.js
12186
12785
  var require_studio_2 = __commonJS({
12187
12786
  "dist/environments/studio-2.js"(exports2) {
@@ -12190,13 +12789,20 @@ var require_studio_2 = __commonJS({
12190
12789
  exports2.studio2CodegenConfig = void 0;
12191
12790
  var codegen_rules_1 = require_codegen_rules();
12192
12791
  var ask_rules_1 = require_ask_rules();
12792
+ var checkpoint_1 = require_checkpoint();
12793
+ var checkpoint_rules_1 = require_checkpoint_rules();
12193
12794
  exports2.studio2CodegenConfig = {
12194
12795
  codegenRules: [
12195
- { filename: "codegen-instructions.md", content: codegen_rules_1.CODEGEN_RULES }
12796
+ { filename: "codegen-instructions.md", content: codegen_rules_1.CODEGEN_RULES },
12797
+ {
12798
+ filename: "checkpoint-commit-message.md",
12799
+ content: checkpoint_rules_1.CHECKPOINT_COMMIT_MESSAGE_RULES
12800
+ }
12196
12801
  ],
12197
12802
  askRules: [{ filename: "ask-instructions.md", content: ask_rules_1.ASK_RULES }],
12198
12803
  decisionCheckers: [],
12199
- hooks: []
12804
+ hooks: [checkpoint_1.checkpointHookFactory],
12805
+ tools: ["set-commit-message.ts"]
12200
12806
  };
12201
12807
  }
12202
12808
  });
@@ -13647,93 +14253,6 @@ var require_OpenCodeOrchestrator = __commonJS({
13647
14253
  }
13648
14254
  });
13649
14255
 
13650
- // dist/utils.js
13651
- var require_utils9 = __commonJS({
13652
- "dist/utils.js"(exports2) {
13653
- "use strict";
13654
- Object.defineProperty(exports2, "__esModule", { value: true });
13655
- exports2.serializeError = serializeError;
13656
- exports2.updateAllRunningTasks = updateAllRunningTasks;
13657
- var types_1 = require_types_impl();
13658
- var codeGenerationService_12 = require_codeGenerationService();
13659
- function serializeError(error) {
13660
- if (error instanceof Error) {
13661
- const base = {
13662
- name: error.name,
13663
- message: error.message,
13664
- stack: error.stack
13665
- };
13666
- const anyErr = error;
13667
- for (const key in anyErr) {
13668
- if (!(key in base)) {
13669
- try {
13670
- base[key] = anyErr[key];
13671
- } catch {
13672
- }
13673
- }
13674
- }
13675
- const withCause = error;
13676
- if (withCause && "cause" in withCause) {
13677
- base.cause = withCause.cause;
13678
- }
13679
- const maybeHttp = error;
13680
- if (maybeHttp?.response?.data !== void 0)
13681
- base.data = maybeHttp.response.data;
13682
- if (maybeHttp?.code !== void 0)
13683
- base.code = maybeHttp.code;
13684
- if (maybeHttp?.details !== void 0)
13685
- base.details = maybeHttp.details;
13686
- return base;
13687
- }
13688
- if (typeof error === "object" && error !== null) {
13689
- try {
13690
- return JSON.parse(JSON.stringify(error));
13691
- } catch {
13692
- return { message: String(error) };
13693
- }
13694
- }
13695
- return { message: String(error) };
13696
- }
13697
- async function updateAllRunningTasks(jobId, status, error) {
13698
- const job = await codeGenerationService_12.codeGenerationService.getJob(jobId);
13699
- const tasks = (job?.tasks ?? []).filter((task) => task.status === types_1.Status.RUNNING || task.status === types_1.Status.PENDING) || [];
13700
- for (const task of tasks) {
13701
- if (!task.id)
13702
- continue;
13703
- await codeGenerationService_12.codeGenerationService.updateTask(jobId, task.id, status, error ? { error: serializeError(error) } : {});
13704
- }
13705
- }
13706
- }
13707
- });
13708
-
13709
- // dist/flows/codegen-flow-helpers.js
13710
- var require_codegen_flow_helpers = __commonJS({
13711
- "dist/flows/codegen-flow-helpers.js"(exports2) {
13712
- "use strict";
13713
- var __importDefault2 = exports2 && exports2.__importDefault || function(mod) {
13714
- return mod && mod.__esModule ? mod : { "default": mod };
13715
- };
13716
- Object.defineProperty(exports2, "__esModule", { value: true });
13717
- exports2.updateJobPayload = updateJobPayload;
13718
- exports2.updateParentTaskStatus = updateParentTaskStatus;
13719
- exports2.getOutputPath = getOutputPath;
13720
- var path_1 = __importDefault2(require("path"));
13721
- var codeGenerationService_12 = require_codeGenerationService();
13722
- var utils_1 = require_utils9();
13723
- var DEFAULT_OUTPUT_PATH = "generated-app";
13724
- async function updateJobPayload(jobContext, payload) {
13725
- await codeGenerationService_12.codeGenerationService.updateJob(jobContext.jobId, payload);
13726
- }
13727
- async function updateParentTaskStatus(jobContext, status, error) {
13728
- await codeGenerationService_12.codeGenerationService.updateTask(jobContext.jobId, jobContext.taskId, status, error ? { error: (0, utils_1.serializeError)(error) } : {});
13729
- }
13730
- function getOutputPath() {
13731
- const outputDir = process.env.OUTPUT_PATH || DEFAULT_OUTPUT_PATH;
13732
- return outputDir.startsWith("/") ? outputDir : path_1.default.join(process.cwd(), outputDir);
13733
- }
13734
- }
13735
- });
13736
-
13737
14256
  // dist/flows/agent-io.js
13738
14257
  var require_agent_io = __commonJS({
13739
14258
  "dist/flows/agent-io.js"(exports2) {
@@ -19443,16 +19962,23 @@ var require_tools_writer = __commonJS({
19443
19962
  var os_1 = require("os");
19444
19963
  var path_1 = require("path");
19445
19964
  var logger_12 = require_logger();
19965
+ var environments_12 = require_environments();
19446
19966
  var GLOBAL_TOOLS_DIR = (0, path_1.join)((0, os_1.homedir)(), ".config", "opencode", "tools");
19967
+ var ALWAYS_ON_TOOLS_DIR = (0, path_1.join)(__dirname, "opencode-tools");
19968
+ var ENV_TOOLS_DIR = (0, path_1.join)(__dirname, "..", "environments", "tools");
19447
19969
  async function writeToolFiles() {
19448
19970
  await (0, promises_1.mkdir)(GLOBAL_TOOLS_DIR, { recursive: true });
19449
- const sourceToolsDir = (0, path_1.join)(__dirname, "opencode-tools");
19450
- const files = await (0, promises_1.readdir)(sourceToolsDir);
19451
- const toolFiles = files.filter((f) => f.endsWith(".ts"));
19452
- await Promise.all(toolFiles.map((file) => (0, promises_1.copyFile)((0, path_1.join)(sourceToolsDir, file), (0, path_1.join)(GLOBAL_TOOLS_DIR, file))));
19971
+ const files = await (0, promises_1.readdir)(ALWAYS_ON_TOOLS_DIR);
19972
+ const alwaysOnTools = files.filter((f) => f.endsWith(".ts"));
19973
+ const envTools = (0, environments_12.getCodegenEnvironmentConfig)().tools ?? [];
19974
+ await Promise.all([
19975
+ ...alwaysOnTools.map((file) => (0, promises_1.copyFile)((0, path_1.join)(ALWAYS_ON_TOOLS_DIR, file), (0, path_1.join)(GLOBAL_TOOLS_DIR, file))),
19976
+ ...envTools.map((file) => (0, promises_1.copyFile)((0, path_1.join)(ENV_TOOLS_DIR, file), (0, path_1.join)(GLOBAL_TOOLS_DIR, file)))
19977
+ ]);
19453
19978
  logger_12.logger.info("[OpenCode] Wrote global tool files", {
19454
19979
  targetDir: GLOBAL_TOOLS_DIR,
19455
- tools: toolFiles
19980
+ alwaysOnTools,
19981
+ envTools
19456
19982
  });
19457
19983
  }
19458
19984
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/ditto-codegen-public",
3
- "version": "1.0.318",
3
+ "version": "1.0.319",
4
4
  "description": "AI-powered Wix CLI app generator - standalone executable",
5
5
  "scripts": {
6
6
  "build": "node build.mjs",
@@ -27,5 +27,5 @@
27
27
  "@wix/ditto-codegen": "1.0.0",
28
28
  "esbuild": "^0.27.2"
29
29
  },
30
- "falconPackageHash": "977aaaf3f8d9e7e0d094d44cd2236af496e1df10efa7e7da5a1805c2"
30
+ "falconPackageHash": "b7f4015634ae2333ad3cb2036e738c9e85a82b88ebf513ade49ba6c5"
31
31
  }