@wix/ditto-codegen-public 1.0.455 → 1.0.457
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.
- package/dist/out.js +616 -649
- package/package.json +2 -2
package/dist/out.js
CHANGED
|
@@ -10460,9 +10460,9 @@ var require_cjs3 = __commonJS({
|
|
|
10460
10460
|
}
|
|
10461
10461
|
});
|
|
10462
10462
|
|
|
10463
|
-
// dist/job-context-storage.js
|
|
10463
|
+
// dist/jobs/job-context-storage.js
|
|
10464
10464
|
var require_job_context_storage = __commonJS({
|
|
10465
|
-
"dist/job-context-storage.js"(exports2) {
|
|
10465
|
+
"dist/jobs/job-context-storage.js"(exports2) {
|
|
10466
10466
|
"use strict";
|
|
10467
10467
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
10468
10468
|
exports2.jobContextStorage = void 0;
|
|
@@ -10471,9 +10471,9 @@ var require_job_context_storage = __commonJS({
|
|
|
10471
10471
|
}
|
|
10472
10472
|
});
|
|
10473
10473
|
|
|
10474
|
-
// dist/logger.js
|
|
10474
|
+
// dist/telemetry/logger.js
|
|
10475
10475
|
var require_logger = __commonJS({
|
|
10476
|
-
"dist/logger.js"(exports2) {
|
|
10476
|
+
"dist/telemetry/logger.js"(exports2) {
|
|
10477
10477
|
"use strict";
|
|
10478
10478
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
10479
10479
|
exports2.logger = void 0;
|
|
@@ -10581,46 +10581,6 @@ var require_wixTokenRefresh = __commonJS({
|
|
|
10581
10581
|
}
|
|
10582
10582
|
});
|
|
10583
10583
|
|
|
10584
|
-
// dist/experiments.js
|
|
10585
|
-
var require_experiments = __commonJS({
|
|
10586
|
-
"dist/experiments.js"(exports2) {
|
|
10587
|
-
"use strict";
|
|
10588
|
-
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
10589
|
-
exports2.FILTERED_JOB_POLLING = void 0;
|
|
10590
|
-
exports2.getExperimentVariant = getExperimentVariant;
|
|
10591
|
-
exports2.isExperimentEnabled = isExperimentEnabled;
|
|
10592
|
-
var logger_12 = require_logger();
|
|
10593
|
-
exports2.FILTERED_JOB_POLLING = "codegenFilteredJobPolling";
|
|
10594
|
-
var parsedExperiments = null;
|
|
10595
|
-
function getExperiments() {
|
|
10596
|
-
if (parsedExperiments !== null) {
|
|
10597
|
-
return parsedExperiments;
|
|
10598
|
-
}
|
|
10599
|
-
const raw = process.env.CODEGEN_EXPERIMENTS;
|
|
10600
|
-
if (!raw) {
|
|
10601
|
-
parsedExperiments = {};
|
|
10602
|
-
return parsedExperiments;
|
|
10603
|
-
}
|
|
10604
|
-
try {
|
|
10605
|
-
parsedExperiments = JSON.parse(raw);
|
|
10606
|
-
} catch (error) {
|
|
10607
|
-
logger_12.logger.error("[Experiments] Failed to parse CODEGEN_EXPERIMENTS", {
|
|
10608
|
-
error: error instanceof Error ? error.message : String(error)
|
|
10609
|
-
});
|
|
10610
|
-
parsedExperiments = {};
|
|
10611
|
-
}
|
|
10612
|
-
return parsedExperiments;
|
|
10613
|
-
}
|
|
10614
|
-
function getExperimentVariant(specName) {
|
|
10615
|
-
return getExperiments()[specName] ?? "A";
|
|
10616
|
-
}
|
|
10617
|
-
function isExperimentEnabled(specName) {
|
|
10618
|
-
const variant = getExperimentVariant(specName);
|
|
10619
|
-
return variant === "true" || variant !== "A" && variant !== "false";
|
|
10620
|
-
}
|
|
10621
|
-
}
|
|
10622
|
-
});
|
|
10623
|
-
|
|
10624
10584
|
// ../codegen-types/dist/errors/ErrorTypes.js
|
|
10625
10585
|
var require_ErrorTypes = __commonJS({
|
|
10626
10586
|
"../codegen-types/dist/errors/ErrorTypes.js"(exports2) {
|
|
@@ -11065,7 +11025,6 @@ var require_CodeGenService = __commonJS({
|
|
|
11065
11025
|
return types_1.JobsSortOrder;
|
|
11066
11026
|
} });
|
|
11067
11027
|
var logger_12 = require_logger();
|
|
11068
|
-
var experiments_1 = require_experiments();
|
|
11069
11028
|
var ditto_codegen_types_12 = require_dist4();
|
|
11070
11029
|
var FILE_OPERATION = {
|
|
11071
11030
|
[ditto_codegen_types_12.ExtensionGenerationOperation.INSERT]: types_1.FileOperation.INSERT,
|
|
@@ -11177,7 +11136,7 @@ var require_CodeGenService = __commonJS({
|
|
|
11177
11136
|
};
|
|
11178
11137
|
this.fetchPendingJobs = async () => {
|
|
11179
11138
|
const { sandboxId } = this;
|
|
11180
|
-
const filtered = sandboxId
|
|
11139
|
+
const filtered = sandboxId ? {
|
|
11181
11140
|
projectId: this.projectId,
|
|
11182
11141
|
filter: { status: types_1.Status.PENDING, sandboxId },
|
|
11183
11142
|
paging: { limit: 1 },
|
|
@@ -11607,7 +11566,6 @@ var require_codegen_prompt = __commonJS({
|
|
|
11607
11566
|
"use strict";
|
|
11608
11567
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
11609
11568
|
exports2.buildInitPrompt = buildInitPrompt;
|
|
11610
|
-
exports2.buildIterationBasePrompt = buildIterationBasePrompt;
|
|
11611
11569
|
exports2.buildIterationPrompt = buildIterationPrompt;
|
|
11612
11570
|
exports2.buildRecoveryPrompt = buildRecoveryPrompt;
|
|
11613
11571
|
var prompt_utils_1 = require_prompt_utils();
|
|
@@ -11746,131 +11704,19 @@ var require_prompts = __commonJS({
|
|
|
11746
11704
|
}
|
|
11747
11705
|
});
|
|
11748
11706
|
|
|
11749
|
-
// dist/opencode-integration/
|
|
11707
|
+
// dist/opencode-integration/configuration/constants.js
|
|
11750
11708
|
var require_constants5 = __commonJS({
|
|
11751
|
-
"dist/opencode-integration/
|
|
11709
|
+
"dist/opencode-integration/configuration/constants.js"(exports2) {
|
|
11752
11710
|
"use strict";
|
|
11753
11711
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
11754
|
-
exports2.
|
|
11755
|
-
exports2.resolveFileOperation = resolveFileOperation;
|
|
11756
|
-
exports2.isSpiExtension = isSpiExtension;
|
|
11757
|
-
exports2.normalizeFilePath = normalizeFilePath;
|
|
11758
|
-
exports2.isExtensionsFile = isExtensionsFile;
|
|
11759
|
-
exports2.detectExtension = detectExtension;
|
|
11760
|
-
exports2.toTitleCase = toTitleCase;
|
|
11761
|
-
exports2.extractExtensionName = extractExtensionName;
|
|
11762
|
-
exports2.matchQuotedExtensionConfigProperty = matchQuotedExtensionConfigProperty;
|
|
11763
|
-
exports2.extractExtensionDisplayTitle = extractExtensionDisplayTitle;
|
|
11764
|
-
exports2.injectCreatedBy = injectCreatedBy;
|
|
11765
|
-
var ditto_codegen_types_12 = require_dist4();
|
|
11766
|
-
exports2.CONTAINER_ROOT_PREFIX = /^\/user-code\//;
|
|
11712
|
+
exports2.WIX_MCP_SERVER_NAME = void 0;
|
|
11767
11713
|
exports2.WIX_MCP_SERVER_NAME = "wix-mcp";
|
|
11768
|
-
var EXTENSION_FILE_PATTERN = /\/extensions\.ts$|\.extension\.ts$/;
|
|
11769
|
-
function resolveFileOperation(tool, metadata) {
|
|
11770
|
-
if (tool === "write") {
|
|
11771
|
-
return metadata?.exists ? ditto_codegen_types_12.ExtensionGenerationOperation.EDIT : ditto_codegen_types_12.ExtensionGenerationOperation.INSERT;
|
|
11772
|
-
}
|
|
11773
|
-
if (tool === "edit") {
|
|
11774
|
-
return ditto_codegen_types_12.ExtensionGenerationOperation.EDIT;
|
|
11775
|
-
}
|
|
11776
|
-
return null;
|
|
11777
|
-
}
|
|
11778
|
-
var SPI_EXTENSION_TYPES = [
|
|
11779
|
-
"ecomShippingRates",
|
|
11780
|
-
"ecomAdditionalFees",
|
|
11781
|
-
"ecomValidations",
|
|
11782
|
-
"ecomDiscountTriggers",
|
|
11783
|
-
"ecomGiftCards",
|
|
11784
|
-
"ecomPaymentSettings",
|
|
11785
|
-
"bookingsStaffSortingProvider"
|
|
11786
|
-
];
|
|
11787
|
-
exports2.BUILDER_EXTENSION_TYPES = [
|
|
11788
|
-
"dashboardPage",
|
|
11789
|
-
"dashboardModal",
|
|
11790
|
-
"dashboardPlugin",
|
|
11791
|
-
"dashboardMenuPlugin",
|
|
11792
|
-
"embeddedScript",
|
|
11793
|
-
"event",
|
|
11794
|
-
"customElement",
|
|
11795
|
-
"siteComponent",
|
|
11796
|
-
"editorReactComponent",
|
|
11797
|
-
"sitePlugin",
|
|
11798
|
-
...SPI_EXTENSION_TYPES,
|
|
11799
|
-
"contextProvider",
|
|
11800
|
-
"functionLibrary",
|
|
11801
|
-
"dataCollections"
|
|
11802
|
-
];
|
|
11803
|
-
var SPI_EXTENSION_TYPE_SET = new Set(SPI_EXTENSION_TYPES);
|
|
11804
|
-
function isSpiExtension(extensionType) {
|
|
11805
|
-
return SPI_EXTENSION_TYPE_SET.has(extensionType);
|
|
11806
|
-
}
|
|
11807
|
-
function normalizeFilePath(filePath) {
|
|
11808
|
-
return filePath.replace(exports2.CONTAINER_ROOT_PREFIX, "");
|
|
11809
|
-
}
|
|
11810
|
-
function isExtensionsFile(filePath) {
|
|
11811
|
-
return EXTENSION_FILE_PATTERN.test(filePath);
|
|
11812
|
-
}
|
|
11813
|
-
function detectExtension(content) {
|
|
11814
|
-
for (const extensionType of exports2.BUILDER_EXTENSION_TYPES) {
|
|
11815
|
-
if (content.includes(`extensions.${extensionType}(`) || content.includes(`experimentalExtensions.${extensionType}(`)) {
|
|
11816
|
-
return extensionType;
|
|
11817
|
-
}
|
|
11818
|
-
}
|
|
11819
|
-
return null;
|
|
11820
|
-
}
|
|
11821
|
-
function toTitleCase(str) {
|
|
11822
|
-
return str.split("-").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
|
|
11823
|
-
}
|
|
11824
|
-
function extractExtensionName(filePath) {
|
|
11825
|
-
const parts = normalizeFilePath(filePath).split("/");
|
|
11826
|
-
const folderName = parts[parts.length - 2] || "";
|
|
11827
|
-
return toTitleCase(folderName);
|
|
11828
|
-
}
|
|
11829
|
-
function matchQuotedExtensionConfigProperty(content, propName) {
|
|
11830
|
-
const objectPropertyQuotedStringValuePattern = `\\b${propName}\\s*:\\s*(?:"([^"\\\\]*)"|'([^'\\\\]*)')`;
|
|
11831
|
-
const objectPropertyQuotedStringValueRegex = new RegExp(
|
|
11832
|
-
objectPropertyQuotedStringValuePattern,
|
|
11833
|
-
// `m` = multiline: `^` / `$` match line starts/ends, not only the whole string.
|
|
11834
|
-
"m"
|
|
11835
|
-
);
|
|
11836
|
-
const quotedStringValueMatch = content.match(objectPropertyQuotedStringValueRegex);
|
|
11837
|
-
if (!quotedStringValueMatch)
|
|
11838
|
-
return null;
|
|
11839
|
-
return quotedStringValueMatch[1] ?? quotedStringValueMatch[2] ?? null;
|
|
11840
|
-
}
|
|
11841
|
-
function extractExtensionDisplayTitle(content, filePath) {
|
|
11842
|
-
const title = matchQuotedExtensionConfigProperty(content, "title");
|
|
11843
|
-
if (title)
|
|
11844
|
-
return title;
|
|
11845
|
-
const name = matchQuotedExtensionConfigProperty(content, "name");
|
|
11846
|
-
if (name)
|
|
11847
|
-
return name;
|
|
11848
|
-
const displayName = matchQuotedExtensionConfigProperty(content, "displayName");
|
|
11849
|
-
if (displayName)
|
|
11850
|
-
return displayName;
|
|
11851
|
-
const idSuffix = matchQuotedExtensionConfigProperty(content, "idSuffix");
|
|
11852
|
-
if (idSuffix)
|
|
11853
|
-
return idSuffix;
|
|
11854
|
-
return extractExtensionName(filePath);
|
|
11855
|
-
}
|
|
11856
|
-
function injectCreatedBy(content) {
|
|
11857
|
-
if (content.includes("createdBy"))
|
|
11858
|
-
return content;
|
|
11859
|
-
const isGeneric = content.includes("genericExtension(");
|
|
11860
|
-
const createdByValue = isGeneric ? ' createdBy: "CODE_GEN",' : ' createdBy: {\n author: "CODE_GEN",\n },';
|
|
11861
|
-
return content.replace(/(\S)(\n)(}\))(;?\s*)$/, (_match, preChar, newline, closeBrace, tail) => {
|
|
11862
|
-
const needsComma = preChar !== "," && preChar !== "{";
|
|
11863
|
-
const separator = needsComma ? `${preChar},` : preChar;
|
|
11864
|
-
return `${separator}${newline}${createdByValue}
|
|
11865
|
-
${closeBrace}${tail}`;
|
|
11866
|
-
});
|
|
11867
|
-
}
|
|
11868
11714
|
}
|
|
11869
11715
|
});
|
|
11870
11716
|
|
|
11871
|
-
// dist/opencode-integration/model-knobs.js
|
|
11717
|
+
// dist/opencode-integration/configuration/model-knobs.js
|
|
11872
11718
|
var require_model_knobs = __commonJS({
|
|
11873
|
-
"dist/opencode-integration/model-knobs.js"(exports2) {
|
|
11719
|
+
"dist/opencode-integration/configuration/model-knobs.js"(exports2) {
|
|
11874
11720
|
"use strict";
|
|
11875
11721
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
11876
11722
|
exports2.DEFAULT_SMALL_MODEL = exports2.DEFAULT_MODEL = void 0;
|
|
@@ -11972,9 +11818,9 @@ var require_types4 = __commonJS({
|
|
|
11972
11818
|
}
|
|
11973
11819
|
});
|
|
11974
11820
|
|
|
11975
|
-
// dist/opencode-integration/
|
|
11976
|
-
var
|
|
11977
|
-
"dist/opencode-integration/
|
|
11821
|
+
// dist/opencode-integration/configuration/subagents.js
|
|
11822
|
+
var require_subagents = __commonJS({
|
|
11823
|
+
"dist/opencode-integration/configuration/subagents.js"(exports2) {
|
|
11978
11824
|
"use strict";
|
|
11979
11825
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
11980
11826
|
exports2.SUBAGENT_AGENT_NAMES = exports2.WDS_DOCS_SUBAGENT_NAME = exports2.WIX_DOCS_SUBAGENT_NAME = exports2.VALIDATOR_SUBAGENT_NAME = exports2.PRIMARY_AGENT_NAME = void 0;
|
|
@@ -12266,9 +12112,9 @@ skills already cover. Read-only.`;
|
|
|
12266
12112
|
}
|
|
12267
12113
|
});
|
|
12268
12114
|
|
|
12269
|
-
// dist/opencode-integration/rules-writer.js
|
|
12115
|
+
// dist/opencode-integration/configuration/rules-writer.js
|
|
12270
12116
|
var require_rules_writer = __commonJS({
|
|
12271
|
-
"dist/opencode-integration/rules-writer.js"(exports2) {
|
|
12117
|
+
"dist/opencode-integration/configuration/rules-writer.js"(exports2) {
|
|
12272
12118
|
"use strict";
|
|
12273
12119
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
12274
12120
|
exports2.getRulePath = getRulePath;
|
|
@@ -15338,14 +15184,13 @@ WORKFLOW:
|
|
|
15338
15184
|
}
|
|
15339
15185
|
});
|
|
15340
15186
|
|
|
15341
|
-
// dist/job-decision-manager.js
|
|
15187
|
+
// dist/jobs/job-decision-manager.js
|
|
15342
15188
|
var require_job_decision_manager = __commonJS({
|
|
15343
|
-
"dist/job-decision-manager.js"(exports2) {
|
|
15189
|
+
"dist/jobs/job-decision-manager.js"(exports2) {
|
|
15344
15190
|
"use strict";
|
|
15345
15191
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
15346
15192
|
exports2.pauseForUserDecision = pauseForUserDecision;
|
|
15347
15193
|
exports2.askJobChoice = askJobChoice;
|
|
15348
|
-
exports2.askJobConfirmation = askJobConfirmation;
|
|
15349
15194
|
var types_1 = require_types_impl();
|
|
15350
15195
|
var codeGenerationService_12 = require_codeGenerationService();
|
|
15351
15196
|
var types_2 = require_types_impl();
|
|
@@ -15410,18 +15255,6 @@ var require_job_decision_manager = __commonJS({
|
|
|
15410
15255
|
}
|
|
15411
15256
|
return response.selectedOptionId;
|
|
15412
15257
|
}
|
|
15413
|
-
async function askJobConfirmation(jobId, question, context) {
|
|
15414
|
-
const response = await pauseForUserDecision(jobId, {
|
|
15415
|
-
question,
|
|
15416
|
-
questionType: types_1.UserDecisionQuestionType.UI_COMPONENT_TYPE,
|
|
15417
|
-
options: [
|
|
15418
|
-
{ id: "yes", label: "Yes" },
|
|
15419
|
-
{ id: "no", label: "No" }
|
|
15420
|
-
],
|
|
15421
|
-
context
|
|
15422
|
-
});
|
|
15423
|
-
return response.selectedOptionId === "yes";
|
|
15424
|
-
}
|
|
15425
15258
|
}
|
|
15426
15259
|
});
|
|
15427
15260
|
|
|
@@ -15496,9 +15329,9 @@ var require_environments = __commonJS({
|
|
|
15496
15329
|
}
|
|
15497
15330
|
});
|
|
15498
15331
|
|
|
15499
|
-
// dist/opencode-integration/config.js
|
|
15332
|
+
// dist/opencode-integration/configuration/config.js
|
|
15500
15333
|
var require_config = __commonJS({
|
|
15501
|
-
"dist/opencode-integration/config.js"(exports2) {
|
|
15334
|
+
"dist/opencode-integration/configuration/config.js"(exports2) {
|
|
15502
15335
|
"use strict";
|
|
15503
15336
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
15504
15337
|
exports2.DEFAULT_TIMEOUT_MS = void 0;
|
|
@@ -15512,7 +15345,7 @@ var require_config = __commonJS({
|
|
|
15512
15345
|
var ditto_codegen_types_12 = require_dist4();
|
|
15513
15346
|
var constants_1 = require_constants5();
|
|
15514
15347
|
var model_knobs_1 = require_model_knobs();
|
|
15515
|
-
var
|
|
15348
|
+
var subagents_1 = require_subagents();
|
|
15516
15349
|
var rules_writer_12 = require_rules_writer();
|
|
15517
15350
|
var environments_12 = require_environments();
|
|
15518
15351
|
var CodeGenService_12 = require_CodeGenService();
|
|
@@ -15698,8 +15531,8 @@ var require_config = __commonJS({
|
|
|
15698
15531
|
external_directory: READABLE_EXTERNAL_DIRS
|
|
15699
15532
|
};
|
|
15700
15533
|
function buildConfig(projectId, instructionPaths, permission, { isCodeWritingFlow = false, withAgents = false } = {}) {
|
|
15701
|
-
const main2 = (0,
|
|
15702
|
-
const subagent = (0,
|
|
15534
|
+
const main2 = (0, subagents_1.getMainAgentModel)();
|
|
15535
|
+
const subagent = (0, subagents_1.getSubagentModel)();
|
|
15703
15536
|
return {
|
|
15704
15537
|
model: (0, model_knobs_1.getModel)(),
|
|
15705
15538
|
small_model: (0, model_knobs_1.getSmallModel)(),
|
|
@@ -15716,8 +15549,8 @@ var require_config = __commonJS({
|
|
|
15716
15549
|
// not: its primary agent re-opens `task`, which would let the write-capable
|
|
15717
15550
|
// validator subagent run in a flow meant to stay read-only.
|
|
15718
15551
|
...withAgents ? {
|
|
15719
|
-
agent: (0,
|
|
15720
|
-
default_agent:
|
|
15552
|
+
agent: (0, subagents_1.getAgentConfig)(main2, subagent),
|
|
15553
|
+
default_agent: subagents_1.PRIMARY_AGENT_NAME
|
|
15721
15554
|
} : {}
|
|
15722
15555
|
};
|
|
15723
15556
|
}
|
|
@@ -15772,44 +15605,43 @@ var require_config = __commonJS({
|
|
|
15772
15605
|
}
|
|
15773
15606
|
});
|
|
15774
15607
|
|
|
15775
|
-
// dist/opencode-integration/
|
|
15776
|
-
var
|
|
15777
|
-
"dist/opencode-integration/
|
|
15608
|
+
// dist/opencode-integration/plugins/write-plugin.js
|
|
15609
|
+
var require_write_plugin = __commonJS({
|
|
15610
|
+
"dist/opencode-integration/plugins/write-plugin.js"(exports2) {
|
|
15778
15611
|
"use strict";
|
|
15779
15612
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
15780
|
-
exports2.OPENCODE_PLUGIN_DIR = void 0;
|
|
15781
15613
|
exports2.writeGeneratedPlugin = writeGeneratedPlugin;
|
|
15782
15614
|
var promises_1 = require("fs/promises");
|
|
15783
15615
|
var os_1 = require("os");
|
|
15784
15616
|
var path_12 = require("path");
|
|
15785
15617
|
var logger_12 = require_logger();
|
|
15786
|
-
|
|
15618
|
+
var OPENCODE_PLUGIN_DIR = (0, path_12.join)((0, os_1.homedir)(), ".config", "opencode", "plugin");
|
|
15787
15619
|
async function writeGeneratedPlugin(filename, source) {
|
|
15788
|
-
await (0, promises_1.mkdir)(
|
|
15789
|
-
await (0, promises_1.writeFile)((0, path_12.join)(
|
|
15620
|
+
await (0, promises_1.mkdir)(OPENCODE_PLUGIN_DIR, { recursive: true });
|
|
15621
|
+
await (0, promises_1.writeFile)((0, path_12.join)(OPENCODE_PLUGIN_DIR, filename), source, "utf-8");
|
|
15790
15622
|
logger_12.logger.info("[OpenCode] Wrote generated plugin", { plugin: filename });
|
|
15791
15623
|
}
|
|
15792
15624
|
}
|
|
15793
15625
|
});
|
|
15794
15626
|
|
|
15795
|
-
// dist/opencode-integration/subagent-tool-logger.js
|
|
15627
|
+
// dist/opencode-integration/plugins/subagent-tool-logger.js
|
|
15796
15628
|
var require_subagent_tool_logger = __commonJS({
|
|
15797
|
-
"dist/opencode-integration/subagent-tool-logger.js"(exports2) {
|
|
15629
|
+
"dist/opencode-integration/plugins/subagent-tool-logger.js"(exports2) {
|
|
15798
15630
|
"use strict";
|
|
15799
15631
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
15800
|
-
exports2.SUBAGENT_STARTED_EVENT_TYPE = exports2.SUBAGENT_TOOL_EVENT_TYPE = void 0;
|
|
15632
|
+
exports2.SUBAGENT_TOOL_LOGGER_FILENAME = exports2.SUBAGENT_STARTED_EVENT_TYPE = exports2.SUBAGENT_TOOL_EVENT_TYPE = void 0;
|
|
15801
15633
|
exports2.buildSubagentToolLoggerPluginSource = buildSubagentToolLoggerPluginSource;
|
|
15802
15634
|
exports2.writeSubagentToolLoggerPlugin = writeSubagentToolLoggerPlugin;
|
|
15803
|
-
var
|
|
15804
|
-
var
|
|
15635
|
+
var write_plugin_1 = require_write_plugin();
|
|
15636
|
+
var subagents_1 = require_subagents();
|
|
15805
15637
|
exports2.SUBAGENT_TOOL_EVENT_TYPE = "subagent_tool_use";
|
|
15806
15638
|
exports2.SUBAGENT_STARTED_EVENT_TYPE = "subagent_started";
|
|
15807
|
-
|
|
15639
|
+
exports2.SUBAGENT_TOOL_LOGGER_FILENAME = "subagent-tool-logger.ts";
|
|
15808
15640
|
function buildSubagentToolLoggerPluginSource() {
|
|
15809
15641
|
return `// Generated by @wix/ditto-codegen (subagent-tool-logger) \u2014 do not edit.
|
|
15810
15642
|
const EVENT_TYPE = ${JSON.stringify(exports2.SUBAGENT_TOOL_EVENT_TYPE)};
|
|
15811
15643
|
const STARTED_EVENT_TYPE = ${JSON.stringify(exports2.SUBAGENT_STARTED_EVENT_TYPE)};
|
|
15812
|
-
const SUBAGENT_AGENTS = new Set(${JSON.stringify(
|
|
15644
|
+
const SUBAGENT_AGENTS = new Set(${JSON.stringify(subagents_1.SUBAGENT_AGENT_NAMES)});
|
|
15813
15645
|
|
|
15814
15646
|
export const SubagentToolLogger = async () => {
|
|
15815
15647
|
// sessionID -> agent name, learned from session.* / message.updated (both
|
|
@@ -15918,14 +15750,14 @@ export const SubagentToolLogger = async () => {
|
|
|
15918
15750
|
`;
|
|
15919
15751
|
}
|
|
15920
15752
|
async function writeSubagentToolLoggerPlugin() {
|
|
15921
|
-
await (0,
|
|
15753
|
+
await (0, write_plugin_1.writeGeneratedPlugin)(exports2.SUBAGENT_TOOL_LOGGER_FILENAME, buildSubagentToolLoggerPluginSource());
|
|
15922
15754
|
}
|
|
15923
15755
|
}
|
|
15924
15756
|
});
|
|
15925
15757
|
|
|
15926
|
-
// dist/opencode-integration/parser.js
|
|
15758
|
+
// dist/opencode-integration/execution/parser.js
|
|
15927
15759
|
var require_parser = __commonJS({
|
|
15928
|
-
"dist/opencode-integration/parser.js"(exports2) {
|
|
15760
|
+
"dist/opencode-integration/execution/parser.js"(exports2) {
|
|
15929
15761
|
"use strict";
|
|
15930
15762
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
15931
15763
|
exports2.parseRequiredPermissions = parseRequiredPermissions;
|
|
@@ -15939,8 +15771,8 @@ var require_parser = __commonJS({
|
|
|
15939
15771
|
exports2.parseValidatorTaskOutputs = parseValidatorTaskOutputs;
|
|
15940
15772
|
exports2.summarizeOpenCodeLine = summarizeOpenCodeLine;
|
|
15941
15773
|
var types_1 = require_types4();
|
|
15942
|
-
var
|
|
15943
|
-
var
|
|
15774
|
+
var subagents_1 = require_subagents();
|
|
15775
|
+
var subagent_tool_logger_1 = require_subagent_tool_logger();
|
|
15944
15776
|
function parseRequiredPermissions(output) {
|
|
15945
15777
|
let permissions = [];
|
|
15946
15778
|
const lines = output.split("\n");
|
|
@@ -16083,7 +15915,7 @@ var require_parser = __commonJS({
|
|
|
16083
15915
|
continue;
|
|
16084
15916
|
}
|
|
16085
15917
|
const { title, output, input } = event.part.state;
|
|
16086
|
-
const isValidator = input?.subagent_type ===
|
|
15918
|
+
const isValidator = input?.subagent_type === subagents_1.VALIDATOR_SUBAGENT_NAME || title?.includes(subagents_1.VALIDATOR_SUBAGENT_NAME);
|
|
16087
15919
|
if (isValidator && output) {
|
|
16088
15920
|
outputs.push(output.trim());
|
|
16089
15921
|
}
|
|
@@ -16091,7 +15923,7 @@ var require_parser = __commonJS({
|
|
|
16091
15923
|
return outputs;
|
|
16092
15924
|
}
|
|
16093
15925
|
function summarizeOpenCodeLine(line) {
|
|
16094
|
-
if (line.type !== "tool_use" && line.type !==
|
|
15926
|
+
if (line.type !== "tool_use" && line.type !== subagent_tool_logger_1.SUBAGENT_TOOL_EVENT_TYPE) {
|
|
16095
15927
|
return line;
|
|
16096
15928
|
}
|
|
16097
15929
|
const { part } = line;
|
|
@@ -16113,9 +15945,9 @@ var require_parser = __commonJS({
|
|
|
16113
15945
|
}
|
|
16114
15946
|
});
|
|
16115
15947
|
|
|
16116
|
-
// dist/
|
|
15948
|
+
// dist/git/internal-paths.js
|
|
16117
15949
|
var require_internal_paths = __commonJS({
|
|
16118
|
-
"dist/
|
|
15950
|
+
"dist/git/internal-paths.js"(exports2) {
|
|
16119
15951
|
"use strict";
|
|
16120
15952
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16121
15953
|
exports2.isInternalPath = isInternalPath;
|
|
@@ -16126,9 +15958,9 @@ var require_internal_paths = __commonJS({
|
|
|
16126
15958
|
}
|
|
16127
15959
|
});
|
|
16128
15960
|
|
|
16129
|
-
// dist/
|
|
16130
|
-
var
|
|
16131
|
-
"dist/
|
|
15961
|
+
// dist/git/file-changes.js
|
|
15962
|
+
var require_file_changes = __commonJS({
|
|
15963
|
+
"dist/git/file-changes.js"(exports2) {
|
|
16132
15964
|
"use strict";
|
|
16133
15965
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16134
15966
|
exports2.captureGitBaseline = captureGitBaseline;
|
|
@@ -16207,9 +16039,9 @@ var require_git_file_changes = __commonJS({
|
|
|
16207
16039
|
}
|
|
16208
16040
|
});
|
|
16209
16041
|
|
|
16210
|
-
// dist/opencode-integration/cost-tracker.js
|
|
16042
|
+
// dist/opencode-integration/execution/cost-tracker.js
|
|
16211
16043
|
var require_cost_tracker = __commonJS({
|
|
16212
|
-
"dist/opencode-integration/cost-tracker.js"(exports2) {
|
|
16044
|
+
"dist/opencode-integration/execution/cost-tracker.js"(exports2) {
|
|
16213
16045
|
"use strict";
|
|
16214
16046
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16215
16047
|
exports2.fetchOpenCodeStats = fetchOpenCodeStats;
|
|
@@ -16328,6 +16160,113 @@ var require_progress_handler = __commonJS({
|
|
|
16328
16160
|
}
|
|
16329
16161
|
});
|
|
16330
16162
|
|
|
16163
|
+
// dist/extension-reporting/detect.js
|
|
16164
|
+
var require_detect = __commonJS({
|
|
16165
|
+
"dist/extension-reporting/detect.js"(exports2) {
|
|
16166
|
+
"use strict";
|
|
16167
|
+
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16168
|
+
exports2.BUILDER_EXTENSION_TYPES = void 0;
|
|
16169
|
+
exports2.isSpiExtension = isSpiExtension;
|
|
16170
|
+
exports2.isExtensionsFile = isExtensionsFile;
|
|
16171
|
+
exports2.detectExtension = detectExtension;
|
|
16172
|
+
exports2.matchQuotedExtensionConfigProperty = matchQuotedExtensionConfigProperty;
|
|
16173
|
+
exports2.extractExtensionDisplayTitle = extractExtensionDisplayTitle;
|
|
16174
|
+
exports2.injectCreatedBy = injectCreatedBy;
|
|
16175
|
+
var CONTAINER_ROOT_PREFIX = /^\/user-code\//;
|
|
16176
|
+
var EXTENSION_FILE_PATTERN = /\/extensions\.ts$|\.extension\.ts$/;
|
|
16177
|
+
var SPI_EXTENSION_TYPES = [
|
|
16178
|
+
"ecomShippingRates",
|
|
16179
|
+
"ecomAdditionalFees",
|
|
16180
|
+
"ecomValidations",
|
|
16181
|
+
"ecomDiscountTriggers",
|
|
16182
|
+
"ecomGiftCards",
|
|
16183
|
+
"ecomPaymentSettings",
|
|
16184
|
+
"bookingsStaffSortingProvider"
|
|
16185
|
+
];
|
|
16186
|
+
exports2.BUILDER_EXTENSION_TYPES = [
|
|
16187
|
+
"dashboardPage",
|
|
16188
|
+
"dashboardModal",
|
|
16189
|
+
"dashboardPlugin",
|
|
16190
|
+
"dashboardMenuPlugin",
|
|
16191
|
+
"embeddedScript",
|
|
16192
|
+
"event",
|
|
16193
|
+
"customElement",
|
|
16194
|
+
"siteComponent",
|
|
16195
|
+
"editorReactComponent",
|
|
16196
|
+
"sitePlugin",
|
|
16197
|
+
...SPI_EXTENSION_TYPES,
|
|
16198
|
+
"contextProvider",
|
|
16199
|
+
"functionLibrary",
|
|
16200
|
+
"dataCollections"
|
|
16201
|
+
];
|
|
16202
|
+
var SPI_EXTENSION_TYPE_SET = new Set(SPI_EXTENSION_TYPES);
|
|
16203
|
+
function isSpiExtension(extensionType) {
|
|
16204
|
+
return SPI_EXTENSION_TYPE_SET.has(extensionType);
|
|
16205
|
+
}
|
|
16206
|
+
function normalizeFilePath(filePath) {
|
|
16207
|
+
return filePath.replace(CONTAINER_ROOT_PREFIX, "");
|
|
16208
|
+
}
|
|
16209
|
+
function isExtensionsFile(filePath) {
|
|
16210
|
+
return EXTENSION_FILE_PATTERN.test(filePath);
|
|
16211
|
+
}
|
|
16212
|
+
function detectExtension(content) {
|
|
16213
|
+
for (const extensionType of exports2.BUILDER_EXTENSION_TYPES) {
|
|
16214
|
+
if (content.includes(`extensions.${extensionType}(`) || content.includes(`experimentalExtensions.${extensionType}(`)) {
|
|
16215
|
+
return extensionType;
|
|
16216
|
+
}
|
|
16217
|
+
}
|
|
16218
|
+
return null;
|
|
16219
|
+
}
|
|
16220
|
+
function toTitleCase(str) {
|
|
16221
|
+
return str.split("-").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
|
|
16222
|
+
}
|
|
16223
|
+
function extractExtensionName(filePath) {
|
|
16224
|
+
const parts = normalizeFilePath(filePath).split("/");
|
|
16225
|
+
const folderName = parts[parts.length - 2] || "";
|
|
16226
|
+
return toTitleCase(folderName);
|
|
16227
|
+
}
|
|
16228
|
+
function matchQuotedExtensionConfigProperty(content, propName) {
|
|
16229
|
+
const objectPropertyQuotedStringValuePattern = `\\b${propName}\\s*:\\s*(?:"([^"\\\\]*)"|'([^'\\\\]*)')`;
|
|
16230
|
+
const objectPropertyQuotedStringValueRegex = new RegExp(
|
|
16231
|
+
objectPropertyQuotedStringValuePattern,
|
|
16232
|
+
// `m` = multiline: `^` / `$` match line starts/ends, not only the whole string.
|
|
16233
|
+
"m"
|
|
16234
|
+
);
|
|
16235
|
+
const quotedStringValueMatch = content.match(objectPropertyQuotedStringValueRegex);
|
|
16236
|
+
if (!quotedStringValueMatch)
|
|
16237
|
+
return null;
|
|
16238
|
+
return quotedStringValueMatch[1] ?? quotedStringValueMatch[2] ?? null;
|
|
16239
|
+
}
|
|
16240
|
+
function extractExtensionDisplayTitle(content, filePath) {
|
|
16241
|
+
const title = matchQuotedExtensionConfigProperty(content, "title");
|
|
16242
|
+
if (title)
|
|
16243
|
+
return title;
|
|
16244
|
+
const name = matchQuotedExtensionConfigProperty(content, "name");
|
|
16245
|
+
if (name)
|
|
16246
|
+
return name;
|
|
16247
|
+
const displayName = matchQuotedExtensionConfigProperty(content, "displayName");
|
|
16248
|
+
if (displayName)
|
|
16249
|
+
return displayName;
|
|
16250
|
+
const idSuffix = matchQuotedExtensionConfigProperty(content, "idSuffix");
|
|
16251
|
+
if (idSuffix)
|
|
16252
|
+
return idSuffix;
|
|
16253
|
+
return extractExtensionName(filePath);
|
|
16254
|
+
}
|
|
16255
|
+
function injectCreatedBy(content) {
|
|
16256
|
+
if (content.includes("createdBy"))
|
|
16257
|
+
return content;
|
|
16258
|
+
const isGeneric = content.includes("genericExtension(");
|
|
16259
|
+
const createdByValue = isGeneric ? ' createdBy: "CODE_GEN",' : ' createdBy: {\n author: "CODE_GEN",\n },';
|
|
16260
|
+
return content.replace(/(\S)(\n)(}\))(;?\s*)$/, (_match, preChar, newline, closeBrace, tail) => {
|
|
16261
|
+
const needsComma = preChar !== "," && preChar !== "{";
|
|
16262
|
+
const separator = needsComma ? `${preChar},` : preChar;
|
|
16263
|
+
return `${separator}${newline}${createdByValue}
|
|
16264
|
+
${closeBrace}${tail}`;
|
|
16265
|
+
});
|
|
16266
|
+
}
|
|
16267
|
+
}
|
|
16268
|
+
});
|
|
16269
|
+
|
|
16331
16270
|
// dist/opencode-integration/task-tracker/derived-progress.js
|
|
16332
16271
|
var require_derived_progress = __commonJS({
|
|
16333
16272
|
"dist/opencode-integration/task-tracker/derived-progress.js"(exports2) {
|
|
@@ -16336,12 +16275,12 @@ var require_derived_progress = __commonJS({
|
|
|
16336
16275
|
exports2.DerivedProgressReporter = void 0;
|
|
16337
16276
|
exports2.deriveProgressSteps = deriveProgressSteps;
|
|
16338
16277
|
var ditto_codegen_types_12 = require_dist4();
|
|
16339
|
-
var
|
|
16340
|
-
var
|
|
16278
|
+
var detect_1 = require_detect();
|
|
16279
|
+
var subagents_1 = require_subagents();
|
|
16341
16280
|
var SUBAGENT_STEPS = {
|
|
16342
|
-
[
|
|
16343
|
-
[
|
|
16344
|
-
[
|
|
16281
|
+
[subagents_1.VALIDATOR_SUBAGENT_NAME]: "Building project",
|
|
16282
|
+
[subagents_1.WIX_DOCS_SUBAGENT_NAME]: "Reading documentation",
|
|
16283
|
+
[subagents_1.WDS_DOCS_SUBAGENT_NAME]: "Reading documentation"
|
|
16345
16284
|
};
|
|
16346
16285
|
var REGISTRY_FILE_PATTERN = /(^|\/)extensions\.ts$/;
|
|
16347
16286
|
var EXTENSION_DEFINITION_PATTERN = /\.extension\.ts$/;
|
|
@@ -16349,7 +16288,7 @@ var require_derived_progress = __commonJS({
|
|
|
16349
16288
|
return token.replace(/[_-]+/g, " ").replace(/([a-z\d])([A-Z])/g, "$1 $2").split(/\s+/).filter(Boolean).map((word) => word[0].toUpperCase() + word.slice(1).toLowerCase()).join(" ");
|
|
16350
16289
|
}
|
|
16351
16290
|
function humanizeExtensionType(type) {
|
|
16352
|
-
return (0,
|
|
16291
|
+
return (0, detect_1.isSpiExtension)(type) ? "Service Plugin" : toTitleCaseWords(type);
|
|
16353
16292
|
}
|
|
16354
16293
|
function extensionStep(verb, type) {
|
|
16355
16294
|
return `${verb} ${humanizeExtensionType(type)}`;
|
|
@@ -16398,7 +16337,7 @@ var require_derived_progress = __commonJS({
|
|
|
16398
16337
|
if (REGISTRY_FILE_PATTERN.test(file.path)) {
|
|
16399
16338
|
steps.push("Registering extensions");
|
|
16400
16339
|
} else if (EXTENSION_DEFINITION_PATTERN.test(file.path) && file.content) {
|
|
16401
|
-
const type = (0,
|
|
16340
|
+
const type = (0, detect_1.detectExtension)(file.content);
|
|
16402
16341
|
if (type)
|
|
16403
16342
|
steps.push(extensionStep("Editing", type));
|
|
16404
16343
|
}
|
|
@@ -16505,9 +16444,9 @@ var require_utils9 = __commonJS({
|
|
|
16505
16444
|
}
|
|
16506
16445
|
});
|
|
16507
16446
|
|
|
16508
|
-
// dist/plugins-runtime.js
|
|
16447
|
+
// dist/plugin-system/plugins-runtime.js
|
|
16509
16448
|
var require_plugins_runtime = __commonJS({
|
|
16510
|
-
"dist/plugins-runtime.js"(exports2) {
|
|
16449
|
+
"dist/plugin-system/plugins-runtime.js"(exports2) {
|
|
16511
16450
|
"use strict";
|
|
16512
16451
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16513
16452
|
exports2.getActivePlugins = getActivePlugins;
|
|
@@ -16657,15 +16596,15 @@ var require_task_tracker2 = __commonJS({
|
|
|
16657
16596
|
}
|
|
16658
16597
|
});
|
|
16659
16598
|
|
|
16660
|
-
// dist/opencode-integration/tool-usage.js
|
|
16599
|
+
// dist/opencode-integration/execution/tool-usage.js
|
|
16661
16600
|
var require_tool_usage = __commonJS({
|
|
16662
|
-
"dist/opencode-integration/tool-usage.js"(exports2) {
|
|
16601
|
+
"dist/opencode-integration/execution/tool-usage.js"(exports2) {
|
|
16663
16602
|
"use strict";
|
|
16664
16603
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16665
16604
|
exports2.ToolUsageCollector = void 0;
|
|
16666
16605
|
exports2.commandSignature = commandSignature;
|
|
16667
16606
|
exports2.emptyToolUsage = emptyToolUsage;
|
|
16668
|
-
var
|
|
16607
|
+
var subagent_tool_logger_1 = require_subagent_tool_logger();
|
|
16669
16608
|
var MAX_REPORTED_TOOLS = 50;
|
|
16670
16609
|
var MAX_DETAIL_CHARS = 200;
|
|
16671
16610
|
var MAX_DETAIL_LABELS = 2;
|
|
@@ -16702,7 +16641,7 @@ var require_tool_usage = __commonJS({
|
|
|
16702
16641
|
return duration > 0 ? duration : 0;
|
|
16703
16642
|
}
|
|
16704
16643
|
function isCompletedToolCall(event) {
|
|
16705
|
-
if (event.type !== "tool_use" && event.type !==
|
|
16644
|
+
if (event.type !== "tool_use" && event.type !== subagent_tool_logger_1.SUBAGENT_TOOL_EVENT_TYPE) {
|
|
16706
16645
|
return false;
|
|
16707
16646
|
}
|
|
16708
16647
|
if (!event.part?.tool)
|
|
@@ -16758,18 +16697,18 @@ var require_tool_usage = __commonJS({
|
|
|
16758
16697
|
}
|
|
16759
16698
|
});
|
|
16760
16699
|
|
|
16761
|
-
// dist/opencode-integration/process-manager.js
|
|
16700
|
+
// dist/opencode-integration/execution/process-manager.js
|
|
16762
16701
|
var require_process_manager = __commonJS({
|
|
16763
|
-
"dist/opencode-integration/process-manager.js"(exports2) {
|
|
16702
|
+
"dist/opencode-integration/execution/process-manager.js"(exports2) {
|
|
16764
16703
|
"use strict";
|
|
16765
16704
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16766
|
-
exports2.MAX_STARTS_WITHOUT_FINISH = exports2.
|
|
16705
|
+
exports2.MAX_STARTS_WITHOUT_FINISH = exports2.IDLE_CHECK_INTERVAL_MS = exports2.IDLE_TIMEOUT_MS = void 0;
|
|
16767
16706
|
exports2.clearTimers = clearTimers;
|
|
16768
16707
|
exports2.killProcess = killProcess;
|
|
16769
16708
|
var logger_12 = require_logger();
|
|
16770
16709
|
exports2.IDLE_TIMEOUT_MS = 6e5;
|
|
16771
16710
|
exports2.IDLE_CHECK_INTERVAL_MS = 15e3;
|
|
16772
|
-
|
|
16711
|
+
var KILL_GRACE_PERIOD_MS = 5e3;
|
|
16773
16712
|
exports2.MAX_STARTS_WITHOUT_FINISH = 3;
|
|
16774
16713
|
function clearTimers(timers) {
|
|
16775
16714
|
if (timers.timeoutId) {
|
|
@@ -16805,14 +16744,14 @@ var require_process_manager = __commonJS({
|
|
|
16805
16744
|
if (child && !resolved) {
|
|
16806
16745
|
killSignal("SIGKILL");
|
|
16807
16746
|
}
|
|
16808
|
-
},
|
|
16747
|
+
}, KILL_GRACE_PERIOD_MS);
|
|
16809
16748
|
}
|
|
16810
16749
|
}
|
|
16811
16750
|
});
|
|
16812
16751
|
|
|
16813
|
-
// dist/opencode-integration/result-builder.js
|
|
16752
|
+
// dist/opencode-integration/execution/result-builder.js
|
|
16814
16753
|
var require_result_builder = __commonJS({
|
|
16815
|
-
"dist/opencode-integration/result-builder.js"(exports2) {
|
|
16754
|
+
"dist/opencode-integration/execution/result-builder.js"(exports2) {
|
|
16816
16755
|
"use strict";
|
|
16817
16756
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16818
16757
|
exports2.createTimeoutResult = createTimeoutResult;
|
|
@@ -16880,9 +16819,9 @@ var require_result_builder = __commonJS({
|
|
|
16880
16819
|
}
|
|
16881
16820
|
});
|
|
16882
16821
|
|
|
16883
|
-
// dist/opencode-integration/process-handlers.js
|
|
16822
|
+
// dist/opencode-integration/execution/process-handlers.js
|
|
16884
16823
|
var require_process_handlers = __commonJS({
|
|
16885
|
-
"dist/opencode-integration/process-handlers.js"(exports2) {
|
|
16824
|
+
"dist/opencode-integration/execution/process-handlers.js"(exports2) {
|
|
16886
16825
|
"use strict";
|
|
16887
16826
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16888
16827
|
exports2.setupTotalTimeout = setupTotalTimeout;
|
|
@@ -17012,12 +16951,11 @@ var require_process_handlers = __commonJS({
|
|
|
17012
16951
|
}
|
|
17013
16952
|
});
|
|
17014
16953
|
|
|
17015
|
-
// dist/opencode-integration/executor.js
|
|
16954
|
+
// dist/opencode-integration/execution/executor.js
|
|
17016
16955
|
var require_executor = __commonJS({
|
|
17017
|
-
"dist/opencode-integration/executor.js"(exports2) {
|
|
16956
|
+
"dist/opencode-integration/execution/executor.js"(exports2) {
|
|
17018
16957
|
"use strict";
|
|
17019
16958
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
17020
|
-
exports2.notifyValidatorOutputsToSlack = notifyValidatorOutputsToSlack;
|
|
17021
16959
|
exports2.classifyAttempt = classifyAttempt;
|
|
17022
16960
|
exports2.executeOpenCode = executeOpenCode;
|
|
17023
16961
|
exports2.resolveFinalRunCost = resolveFinalRunCost;
|
|
@@ -17027,9 +16965,8 @@ var require_executor = __commonJS({
|
|
|
17027
16965
|
var model_knobs_1 = require_model_knobs();
|
|
17028
16966
|
var job_context_storage_12 = require_job_context_storage();
|
|
17029
16967
|
var parser_1 = require_parser();
|
|
17030
|
-
var codeGenerationService_12 = require_codeGenerationService();
|
|
17031
16968
|
var prompts_1 = require_prompts();
|
|
17032
|
-
var
|
|
16969
|
+
var file_changes_1 = require_file_changes();
|
|
17033
16970
|
var cost_tracker_1 = require_cost_tracker();
|
|
17034
16971
|
var task_tracker_1 = require_task_tracker2();
|
|
17035
16972
|
var tool_usage_1 = require_tool_usage();
|
|
@@ -17038,37 +16975,6 @@ var require_executor = __commonJS({
|
|
|
17038
16975
|
var logger_12 = require_logger();
|
|
17039
16976
|
var MAX_RETRIES = 5;
|
|
17040
16977
|
var MAX_STALL_ATTEMPTS = 2;
|
|
17041
|
-
async function notifyValidatorOutputsToSlack(stdout, costUsd) {
|
|
17042
|
-
try {
|
|
17043
|
-
const store = job_context_storage_12.jobContextStorage.getStore();
|
|
17044
|
-
const outputs = (0, parser_1.parseValidatorTaskOutputs)(stdout);
|
|
17045
|
-
if (outputs.length === 0)
|
|
17046
|
-
return;
|
|
17047
|
-
const durationMs = store?.flowStartTime ? Date.now() - store.flowStartTime : void 0;
|
|
17048
|
-
const context = {
|
|
17049
|
-
jobId: store?.jobId,
|
|
17050
|
-
metasiteId: store?.metasiteId,
|
|
17051
|
-
costUsd: costUsd > 0 ? costUsd : void 0,
|
|
17052
|
-
durationMs
|
|
17053
|
-
};
|
|
17054
|
-
for (const output of outputs) {
|
|
17055
|
-
if (!(0, parser_1.shouldReportValidatorOutput)(output)) {
|
|
17056
|
-
continue;
|
|
17057
|
-
}
|
|
17058
|
-
try {
|
|
17059
|
-
await codeGenerationService_12.codeGenerationService.handleValidationErrors(output, context);
|
|
17060
|
-
} catch (err) {
|
|
17061
|
-
logger_12.logger.warn("[OpenCode] Failed to report validator output to Slack", {
|
|
17062
|
-
error: err instanceof Error ? err.message : String(err)
|
|
17063
|
-
});
|
|
17064
|
-
}
|
|
17065
|
-
}
|
|
17066
|
-
} catch (err) {
|
|
17067
|
-
logger_12.logger.warn("[OpenCode] Unexpected error in notifyValidatorOutputsToSlack", {
|
|
17068
|
-
error: err instanceof Error ? err.message : String(err)
|
|
17069
|
-
});
|
|
17070
|
-
}
|
|
17071
|
-
}
|
|
17072
16978
|
function failureReason(result) {
|
|
17073
16979
|
if (result.stalled)
|
|
17074
16980
|
return "stall";
|
|
@@ -17105,7 +17011,7 @@ var require_executor = __commonJS({
|
|
|
17105
17011
|
if (attempt > 1) {
|
|
17106
17012
|
const failureDetail = lastResult?.error?.message || lastResult?.stderr || "Process timed out";
|
|
17107
17013
|
logger_12.logger.info(`[OpenCode] Retry attempt ${attempt}/${MAX_RETRIES} after ${lastFailureReason} - starting fresh session with recovery context`, { reason: lastFailureReason, detail: failureDetail.slice(0, 500) });
|
|
17108
|
-
const filesChanged = await (0,
|
|
17014
|
+
const filesChanged = await (0, file_changes_1.collectGitFileChanges)(options.outputPath, options.gitBaseline);
|
|
17109
17015
|
currentPrompt = (0, prompts_1.buildRecoveryPrompt)(options.prompt, filesChanged, failureDetail, lastFailureReason);
|
|
17110
17016
|
continueSession = false;
|
|
17111
17017
|
}
|
|
@@ -17259,9 +17165,9 @@ var require_executor = __commonJS({
|
|
|
17259
17165
|
}
|
|
17260
17166
|
});
|
|
17261
17167
|
|
|
17262
|
-
// dist/opencode-integration/opencode-runner.js
|
|
17168
|
+
// dist/opencode-integration/execution/opencode-runner.js
|
|
17263
17169
|
var require_opencode_runner = __commonJS({
|
|
17264
|
-
"dist/opencode-integration/opencode-runner.js"(exports2) {
|
|
17170
|
+
"dist/opencode-integration/execution/opencode-runner.js"(exports2) {
|
|
17265
17171
|
"use strict";
|
|
17266
17172
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
17267
17173
|
exports2.runOpenCodeInit = runOpenCodeInit;
|
|
@@ -17330,20 +17236,106 @@ var require_opencode_runner = __commonJS({
|
|
|
17330
17236
|
}
|
|
17331
17237
|
});
|
|
17332
17238
|
|
|
17333
|
-
// dist/opencode-integration/
|
|
17334
|
-
var
|
|
17335
|
-
"dist/opencode-integration/
|
|
17239
|
+
// dist/opencode-integration/index.js
|
|
17240
|
+
var require_opencode_integration = __commonJS({
|
|
17241
|
+
"dist/opencode-integration/index.js"(exports2) {
|
|
17242
|
+
"use strict";
|
|
17243
|
+
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
17244
|
+
exports2.OpenCodeTaskTracker = exports2.runOpenCodeGitConflicts = exports2.runOpenCodeAsk = exports2.runOpenCodeIteration = exports2.runOpenCodeInit = void 0;
|
|
17245
|
+
var opencode_runner_1 = require_opencode_runner();
|
|
17246
|
+
Object.defineProperty(exports2, "runOpenCodeInit", { enumerable: true, get: function() {
|
|
17247
|
+
return opencode_runner_1.runOpenCodeInit;
|
|
17248
|
+
} });
|
|
17249
|
+
Object.defineProperty(exports2, "runOpenCodeIteration", { enumerable: true, get: function() {
|
|
17250
|
+
return opencode_runner_1.runOpenCodeIteration;
|
|
17251
|
+
} });
|
|
17252
|
+
Object.defineProperty(exports2, "runOpenCodeAsk", { enumerable: true, get: function() {
|
|
17253
|
+
return opencode_runner_1.runOpenCodeAsk;
|
|
17254
|
+
} });
|
|
17255
|
+
Object.defineProperty(exports2, "runOpenCodeGitConflicts", { enumerable: true, get: function() {
|
|
17256
|
+
return opencode_runner_1.runOpenCodeGitConflicts;
|
|
17257
|
+
} });
|
|
17258
|
+
var task_tracker_1 = require_task_tracker2();
|
|
17259
|
+
Object.defineProperty(exports2, "OpenCodeTaskTracker", { enumerable: true, get: function() {
|
|
17260
|
+
return task_tracker_1.OpenCodeTaskTracker;
|
|
17261
|
+
} });
|
|
17262
|
+
}
|
|
17263
|
+
});
|
|
17264
|
+
|
|
17265
|
+
// dist/orchestrators/opencode-orchestrator.js
|
|
17266
|
+
var require_opencode_orchestrator = __commonJS({
|
|
17267
|
+
"dist/orchestrators/opencode-orchestrator.js"(exports2) {
|
|
17268
|
+
"use strict";
|
|
17269
|
+
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
17270
|
+
exports2.OpenCodeOrchestrator = void 0;
|
|
17271
|
+
var ditto_codegen_types_12 = require_dist4();
|
|
17272
|
+
var DittoEventEmitter_1 = require_DittoEventEmitter();
|
|
17273
|
+
var opencode_integration_1 = require_opencode_integration();
|
|
17274
|
+
var logger_12 = require_logger();
|
|
17275
|
+
var OpenCodeOrchestrator = class extends DittoEventEmitter_1.DittoEventEmitter {
|
|
17276
|
+
constructor() {
|
|
17277
|
+
super();
|
|
17278
|
+
}
|
|
17279
|
+
async generateCode(request) {
|
|
17280
|
+
const { blueprint, outputPath, projectId, chatHistory, gitBaseline } = request;
|
|
17281
|
+
this.emitEvent("start:init", {
|
|
17282
|
+
appName: blueprint.appName ?? "",
|
|
17283
|
+
summary: blueprint.summary ?? "",
|
|
17284
|
+
outputPath,
|
|
17285
|
+
extensionsCount: blueprint.extensions?.length || 0
|
|
17286
|
+
});
|
|
17287
|
+
const start = Date.now();
|
|
17288
|
+
this.emitEvent("opencode:start", { outputPath });
|
|
17289
|
+
const result = await (0, opencode_integration_1.runOpenCodeInit)({
|
|
17290
|
+
blueprint,
|
|
17291
|
+
outputPath,
|
|
17292
|
+
projectId,
|
|
17293
|
+
chatHistory,
|
|
17294
|
+
gitBaseline,
|
|
17295
|
+
onStdout: (data) => {
|
|
17296
|
+
this.emitEvent("opencode:output", { data });
|
|
17297
|
+
},
|
|
17298
|
+
onStderr: (data) => {
|
|
17299
|
+
logger_12.logger.error("[OpenCode] stderr", { output: data });
|
|
17300
|
+
}
|
|
17301
|
+
});
|
|
17302
|
+
this.lastUsage = result.usage;
|
|
17303
|
+
this.lastStdout = result.stdout;
|
|
17304
|
+
const durationMs = Date.now() - start;
|
|
17305
|
+
if (!result.success) {
|
|
17306
|
+
this.emitEvent("opencode:error", {
|
|
17307
|
+
error: result.error?.message,
|
|
17308
|
+
exitCode: result.exitCode,
|
|
17309
|
+
durationMs
|
|
17310
|
+
});
|
|
17311
|
+
throw result.error ?? new ditto_codegen_types_12.ProcessExecutionError(`Code generation failed (exit code ${result.exitCode})`, {
|
|
17312
|
+
processType: ditto_codegen_types_12.ProcessType.EXECUTION,
|
|
17313
|
+
exitCode: result.exitCode ?? void 0
|
|
17314
|
+
});
|
|
17315
|
+
}
|
|
17316
|
+
this.emitEvent("opencode:done", { durationMs });
|
|
17317
|
+
this.emitEvent("finish:init", { outputPath, durationMs });
|
|
17318
|
+
return result;
|
|
17319
|
+
}
|
|
17320
|
+
};
|
|
17321
|
+
exports2.OpenCodeOrchestrator = OpenCodeOrchestrator;
|
|
17322
|
+
OpenCodeOrchestrator.DEFAULT_OUTPUT_PATH = "generated-app";
|
|
17323
|
+
}
|
|
17324
|
+
});
|
|
17325
|
+
|
|
17326
|
+
// dist/extension-reporting/metadata.js
|
|
17327
|
+
var require_metadata = __commonJS({
|
|
17328
|
+
"dist/extension-reporting/metadata.js"(exports2) {
|
|
17336
17329
|
"use strict";
|
|
17337
17330
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
17338
|
-
exports2.buildJobExtension = exports2.resolveFilePath = exports2.isFileInExtensionFolder =
|
|
17331
|
+
exports2.buildJobExtension = exports2.resolveFilePath = exports2.isFileInExtensionFolder = void 0;
|
|
17339
17332
|
exports2.collectDataCollectionEntries = collectDataCollectionEntries;
|
|
17340
17333
|
var path_12 = require("path");
|
|
17341
17334
|
var promises_1 = require("fs/promises");
|
|
17342
|
-
var
|
|
17335
|
+
var detect_1 = require_detect();
|
|
17343
17336
|
var DATA_COLLECTION_MARKER = /import\s+(?:type\s+)?\{[^}]*\bDataCollection\b[^}]*\}\s+from\s+['"](?:@wix\/astro\/builders|@wix\/custom-extensions)['"]/;
|
|
17344
17337
|
var getExtensionDirectory = (extensionDefinitionPath) => `${path_12.posix.dirname(extensionDefinitionPath)}/`;
|
|
17345
|
-
|
|
17346
|
-
var isFileInExtensionFolder = (filePath, extensionDefinitionPath) => filePath === extensionDefinitionPath || filePath.startsWith((0, exports2.getExtensionDirectory)(extensionDefinitionPath));
|
|
17338
|
+
var isFileInExtensionFolder = (filePath, extensionDefinitionPath) => filePath === extensionDefinitionPath || filePath.startsWith(getExtensionDirectory(extensionDefinitionPath));
|
|
17347
17339
|
exports2.isFileInExtensionFolder = isFileInExtensionFolder;
|
|
17348
17340
|
var resolveFilePath = (outputPath, filePath) => (0, path_12.isAbsolute)(filePath) ? filePath : (0, path_12.join)(outputPath, filePath);
|
|
17349
17341
|
exports2.resolveFilePath = resolveFilePath;
|
|
@@ -17365,51 +17357,51 @@ var require_extension_metadata = __commonJS({
|
|
|
17365
17357
|
return entries;
|
|
17366
17358
|
}
|
|
17367
17359
|
var buildJobExtension = (definitionPath, extensionType, contentForTitle, titlePath, files) => {
|
|
17368
|
-
const routePath = (0,
|
|
17369
|
-
const id = (0,
|
|
17360
|
+
const routePath = (0, detect_1.matchQuotedExtensionConfigProperty)(contentForTitle, "routePath");
|
|
17361
|
+
const id = (0, detect_1.matchQuotedExtensionConfigProperty)(contentForTitle, "id");
|
|
17370
17362
|
return {
|
|
17371
17363
|
path: definitionPath,
|
|
17372
17364
|
extensionType,
|
|
17373
|
-
title: (0,
|
|
17365
|
+
title: (0, detect_1.extractExtensionDisplayTitle)(contentForTitle, titlePath),
|
|
17374
17366
|
...routePath !== null && { routePath },
|
|
17375
17367
|
...id !== null && { id },
|
|
17376
17368
|
files: [...files],
|
|
17377
|
-
isSpi: (0,
|
|
17369
|
+
isSpi: (0, detect_1.isSpiExtension)(extensionType)
|
|
17378
17370
|
};
|
|
17379
17371
|
};
|
|
17380
17372
|
exports2.buildJobExtension = buildJobExtension;
|
|
17381
17373
|
}
|
|
17382
17374
|
});
|
|
17383
17375
|
|
|
17384
|
-
// dist/
|
|
17385
|
-
var
|
|
17386
|
-
"dist/
|
|
17376
|
+
// dist/extension-reporting/collect-created.js
|
|
17377
|
+
var require_collect_created = __commonJS({
|
|
17378
|
+
"dist/extension-reporting/collect-created.js"(exports2) {
|
|
17387
17379
|
"use strict";
|
|
17388
17380
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
17389
17381
|
exports2.collectInsertedExtensionsMetadata = collectInsertedExtensionsMetadata;
|
|
17390
17382
|
var promises_1 = require("fs/promises");
|
|
17391
17383
|
var ditto_codegen_types_12 = require_dist4();
|
|
17392
|
-
var
|
|
17393
|
-
var
|
|
17384
|
+
var detect_1 = require_detect();
|
|
17385
|
+
var metadata_1 = require_metadata();
|
|
17394
17386
|
async function collectInsertedExtensionsMetadata(outputPath, files) {
|
|
17395
17387
|
const results = [];
|
|
17396
17388
|
for (const fileChange of files) {
|
|
17397
17389
|
if (fileChange.operation !== ditto_codegen_types_12.ExtensionGenerationOperation.INSERT)
|
|
17398
17390
|
continue;
|
|
17399
|
-
if (!(0,
|
|
17391
|
+
if (!(0, detect_1.isExtensionsFile)(fileChange.path))
|
|
17400
17392
|
continue;
|
|
17401
17393
|
try {
|
|
17402
|
-
const content = await (0, promises_1.readFile)((0,
|
|
17403
|
-
const extensionType = (0,
|
|
17394
|
+
const content = await (0, promises_1.readFile)((0, metadata_1.resolveFilePath)(outputPath, fileChange.path), "utf-8");
|
|
17395
|
+
const extensionType = (0, detect_1.detectExtension)(content);
|
|
17404
17396
|
if (!extensionType)
|
|
17405
17397
|
continue;
|
|
17406
|
-
const folderFiles = files.filter((file) => (0,
|
|
17398
|
+
const folderFiles = files.filter((file) => (0, metadata_1.isFileInExtensionFolder)(file.path, fileChange.path));
|
|
17407
17399
|
if (extensionType === "dataCollections") {
|
|
17408
|
-
const dataCollectionEntries = await (0,
|
|
17400
|
+
const dataCollectionEntries = await (0, metadata_1.collectDataCollectionEntries)(outputPath, fileChange.path, folderFiles);
|
|
17409
17401
|
results.push(...dataCollectionEntries);
|
|
17410
17402
|
continue;
|
|
17411
17403
|
}
|
|
17412
|
-
results.push((0,
|
|
17404
|
+
results.push((0, metadata_1.buildJobExtension)(fileChange.path, extensionType, content, fileChange.path, folderFiles));
|
|
17413
17405
|
} catch {
|
|
17414
17406
|
continue;
|
|
17415
17407
|
}
|
|
@@ -17419,9 +17411,9 @@ var require_collect_extensions_created = __commonJS({
|
|
|
17419
17411
|
}
|
|
17420
17412
|
});
|
|
17421
17413
|
|
|
17422
|
-
// dist/
|
|
17423
|
-
var
|
|
17424
|
-
"dist/
|
|
17414
|
+
// dist/extension-reporting/collect-updated.js
|
|
17415
|
+
var require_collect_updated = __commonJS({
|
|
17416
|
+
"dist/extension-reporting/collect-updated.js"(exports2) {
|
|
17425
17417
|
"use strict";
|
|
17426
17418
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
17427
17419
|
exports2.collectUpdatedExtensionsMetadata = collectUpdatedExtensionsMetadata;
|
|
@@ -17429,12 +17421,12 @@ var require_collect_extensions_updated = __commonJS({
|
|
|
17429
17421
|
var path_12 = require("path");
|
|
17430
17422
|
var util_1 = require("util");
|
|
17431
17423
|
var promises_1 = require("fs/promises");
|
|
17432
|
-
var
|
|
17424
|
+
var detect_1 = require_detect();
|
|
17433
17425
|
var logger_12 = require_logger();
|
|
17434
|
-
var
|
|
17426
|
+
var metadata_1 = require_metadata();
|
|
17435
17427
|
var execFileAsync = (0, util_1.promisify)(child_process_1.execFile);
|
|
17436
17428
|
var ownsItsFolder = (candidate) => {
|
|
17437
|
-
if (!(0,
|
|
17429
|
+
if (!(0, detect_1.isExtensionsFile)(candidate))
|
|
17438
17430
|
return false;
|
|
17439
17431
|
const directory = path_12.posix.dirname(candidate);
|
|
17440
17432
|
return directory !== "." && path_12.posix.dirname(directory) !== ".";
|
|
@@ -17454,7 +17446,7 @@ var require_collect_extensions_updated = __commonJS({
|
|
|
17454
17446
|
}
|
|
17455
17447
|
}
|
|
17456
17448
|
var resolveOwningDefinitionPath = (filePath, candidates) => {
|
|
17457
|
-
if ((0,
|
|
17449
|
+
if ((0, detect_1.isExtensionsFile)(filePath))
|
|
17458
17450
|
return filePath;
|
|
17459
17451
|
let longest;
|
|
17460
17452
|
let longestFolderLength = -1;
|
|
@@ -17470,146 +17462,51 @@ var require_collect_extensions_updated = __commonJS({
|
|
|
17470
17462
|
async function collectUpdatedExtensionsMetadata(outputPath, files, insertedDefinitionPaths) {
|
|
17471
17463
|
const candidates = await listCandidateDefinitionPaths(outputPath);
|
|
17472
17464
|
const definitionPaths = /* @__PURE__ */ new Set();
|
|
17473
|
-
for (const fileChange of files) {
|
|
17474
|
-
const definitionPath = resolveOwningDefinitionPath(fileChange.path, candidates);
|
|
17475
|
-
if (definitionPath && !insertedDefinitionPaths.has(definitionPath)) {
|
|
17476
|
-
definitionPaths.add(definitionPath);
|
|
17477
|
-
}
|
|
17478
|
-
}
|
|
17479
|
-
const results = [];
|
|
17480
|
-
for (const definitionPath of definitionPaths) {
|
|
17481
|
-
try {
|
|
17482
|
-
const content = await (0, promises_1.readFile)((0,
|
|
17483
|
-
const extensionType = (0,
|
|
17484
|
-
if (!extensionType)
|
|
17485
|
-
continue;
|
|
17486
|
-
const folderFiles = files.filter((file) => (0,
|
|
17487
|
-
if (extensionType === "dataCollections") {
|
|
17488
|
-
const dataCollectionEntries = await (0,
|
|
17489
|
-
results.push(...dataCollectionEntries);
|
|
17490
|
-
continue;
|
|
17491
|
-
}
|
|
17492
|
-
results.push((0,
|
|
17493
|
-
} catch {
|
|
17494
|
-
continue;
|
|
17495
|
-
}
|
|
17496
|
-
}
|
|
17497
|
-
return results;
|
|
17498
|
-
}
|
|
17499
|
-
}
|
|
17500
|
-
});
|
|
17501
|
-
|
|
17502
|
-
// dist/opencode-integration/extensions-job-payload.js
|
|
17503
|
-
var require_extensions_job_payload = __commonJS({
|
|
17504
|
-
"dist/opencode-integration/extensions-job-payload.js"(exports2) {
|
|
17505
|
-
"use strict";
|
|
17506
|
-
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
17507
|
-
exports2.buildExtensionsJobPayload = buildExtensionsJobPayload;
|
|
17508
|
-
var ditto_codegen_types_12 = require_dist4();
|
|
17509
|
-
var constants_1 = require_constants5();
|
|
17510
|
-
var collect_extensions_created_1 = require_collect_extensions_created();
|
|
17511
|
-
var collect_extensions_updated_1 = require_collect_extensions_updated();
|
|
17512
|
-
async function buildExtensionsJobPayload(outputPath, files) {
|
|
17513
|
-
const created = await (0, collect_extensions_created_1.collectInsertedExtensionsMetadata)(outputPath, files);
|
|
17514
|
-
const insertedDefinitionPaths = new Set(files.filter((file) => file.operation === ditto_codegen_types_12.ExtensionGenerationOperation.INSERT && (0, constants_1.isExtensionsFile)(file.path)).map((file) => file.path));
|
|
17515
|
-
const updated = await (0, collect_extensions_updated_1.collectUpdatedExtensionsMetadata)(outputPath, files, insertedDefinitionPaths);
|
|
17516
|
-
return { created, updated };
|
|
17517
|
-
}
|
|
17518
|
-
}
|
|
17519
|
-
});
|
|
17520
|
-
|
|
17521
|
-
// dist/opencode-integration/index.js
|
|
17522
|
-
var require_opencode_integration = __commonJS({
|
|
17523
|
-
"dist/opencode-integration/index.js"(exports2) {
|
|
17524
|
-
"use strict";
|
|
17525
|
-
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
17526
|
-
exports2.buildExtensionsJobPayload = exports2.collectInsertedExtensionsMetadata = exports2.OpenCodeTaskTracker = exports2.runOpenCodeGitConflicts = exports2.runOpenCodeAsk = exports2.runOpenCodeIteration = exports2.runOpenCodeInit = void 0;
|
|
17527
|
-
var opencode_runner_1 = require_opencode_runner();
|
|
17528
|
-
Object.defineProperty(exports2, "runOpenCodeInit", { enumerable: true, get: function() {
|
|
17529
|
-
return opencode_runner_1.runOpenCodeInit;
|
|
17530
|
-
} });
|
|
17531
|
-
Object.defineProperty(exports2, "runOpenCodeIteration", { enumerable: true, get: function() {
|
|
17532
|
-
return opencode_runner_1.runOpenCodeIteration;
|
|
17533
|
-
} });
|
|
17534
|
-
Object.defineProperty(exports2, "runOpenCodeAsk", { enumerable: true, get: function() {
|
|
17535
|
-
return opencode_runner_1.runOpenCodeAsk;
|
|
17536
|
-
} });
|
|
17537
|
-
Object.defineProperty(exports2, "runOpenCodeGitConflicts", { enumerable: true, get: function() {
|
|
17538
|
-
return opencode_runner_1.runOpenCodeGitConflicts;
|
|
17539
|
-
} });
|
|
17540
|
-
var task_tracker_1 = require_task_tracker2();
|
|
17541
|
-
Object.defineProperty(exports2, "OpenCodeTaskTracker", { enumerable: true, get: function() {
|
|
17542
|
-
return task_tracker_1.OpenCodeTaskTracker;
|
|
17543
|
-
} });
|
|
17544
|
-
var collect_extensions_created_1 = require_collect_extensions_created();
|
|
17545
|
-
Object.defineProperty(exports2, "collectInsertedExtensionsMetadata", { enumerable: true, get: function() {
|
|
17546
|
-
return collect_extensions_created_1.collectInsertedExtensionsMetadata;
|
|
17547
|
-
} });
|
|
17548
|
-
var extensions_job_payload_1 = require_extensions_job_payload();
|
|
17549
|
-
Object.defineProperty(exports2, "buildExtensionsJobPayload", { enumerable: true, get: function() {
|
|
17550
|
-
return extensions_job_payload_1.buildExtensionsJobPayload;
|
|
17551
|
-
} });
|
|
17465
|
+
for (const fileChange of files) {
|
|
17466
|
+
const definitionPath = resolveOwningDefinitionPath(fileChange.path, candidates);
|
|
17467
|
+
if (definitionPath && !insertedDefinitionPaths.has(definitionPath)) {
|
|
17468
|
+
definitionPaths.add(definitionPath);
|
|
17469
|
+
}
|
|
17470
|
+
}
|
|
17471
|
+
const results = [];
|
|
17472
|
+
for (const definitionPath of definitionPaths) {
|
|
17473
|
+
try {
|
|
17474
|
+
const content = await (0, promises_1.readFile)((0, metadata_1.resolveFilePath)(outputPath, definitionPath), "utf-8");
|
|
17475
|
+
const extensionType = (0, detect_1.detectExtension)(content);
|
|
17476
|
+
if (!extensionType)
|
|
17477
|
+
continue;
|
|
17478
|
+
const folderFiles = files.filter((file) => (0, metadata_1.isFileInExtensionFolder)(file.path, definitionPath));
|
|
17479
|
+
if (extensionType === "dataCollections") {
|
|
17480
|
+
const dataCollectionEntries = await (0, metadata_1.collectDataCollectionEntries)(outputPath, definitionPath, folderFiles);
|
|
17481
|
+
results.push(...dataCollectionEntries);
|
|
17482
|
+
continue;
|
|
17483
|
+
}
|
|
17484
|
+
results.push((0, metadata_1.buildJobExtension)(definitionPath, extensionType, content, definitionPath, folderFiles));
|
|
17485
|
+
} catch {
|
|
17486
|
+
continue;
|
|
17487
|
+
}
|
|
17488
|
+
}
|
|
17489
|
+
return results;
|
|
17490
|
+
}
|
|
17552
17491
|
}
|
|
17553
17492
|
});
|
|
17554
17493
|
|
|
17555
|
-
// dist/
|
|
17556
|
-
var
|
|
17557
|
-
"dist/
|
|
17494
|
+
// dist/extension-reporting/job-payload.js
|
|
17495
|
+
var require_job_payload2 = __commonJS({
|
|
17496
|
+
"dist/extension-reporting/job-payload.js"(exports2) {
|
|
17558
17497
|
"use strict";
|
|
17559
17498
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
17560
|
-
exports2.
|
|
17499
|
+
exports2.buildExtensionsJobPayload = buildExtensionsJobPayload;
|
|
17561
17500
|
var ditto_codegen_types_12 = require_dist4();
|
|
17562
|
-
var
|
|
17563
|
-
var
|
|
17564
|
-
var
|
|
17565
|
-
|
|
17566
|
-
|
|
17567
|
-
|
|
17568
|
-
|
|
17569
|
-
|
|
17570
|
-
|
|
17571
|
-
this.emitEvent("start:init", {
|
|
17572
|
-
appName: blueprint.appName ?? "",
|
|
17573
|
-
summary: blueprint.summary ?? "",
|
|
17574
|
-
outputPath,
|
|
17575
|
-
extensionsCount: blueprint.extensions?.length || 0
|
|
17576
|
-
});
|
|
17577
|
-
const start = Date.now();
|
|
17578
|
-
this.emitEvent("opencode:start", { outputPath });
|
|
17579
|
-
const result = await (0, opencode_integration_1.runOpenCodeInit)({
|
|
17580
|
-
blueprint,
|
|
17581
|
-
outputPath,
|
|
17582
|
-
projectId,
|
|
17583
|
-
chatHistory,
|
|
17584
|
-
gitBaseline,
|
|
17585
|
-
onStdout: (data) => {
|
|
17586
|
-
this.emitEvent("opencode:output", { data });
|
|
17587
|
-
},
|
|
17588
|
-
onStderr: (data) => {
|
|
17589
|
-
logger_12.logger.error("[OpenCode] stderr", { output: data });
|
|
17590
|
-
}
|
|
17591
|
-
});
|
|
17592
|
-
this.lastUsage = result.usage;
|
|
17593
|
-
this.lastStdout = result.stdout;
|
|
17594
|
-
const durationMs = Date.now() - start;
|
|
17595
|
-
if (!result.success) {
|
|
17596
|
-
this.emitEvent("opencode:error", {
|
|
17597
|
-
error: result.error?.message,
|
|
17598
|
-
exitCode: result.exitCode,
|
|
17599
|
-
durationMs
|
|
17600
|
-
});
|
|
17601
|
-
throw result.error ?? new ditto_codegen_types_12.ProcessExecutionError(`Code generation failed (exit code ${result.exitCode})`, {
|
|
17602
|
-
processType: ditto_codegen_types_12.ProcessType.EXECUTION,
|
|
17603
|
-
exitCode: result.exitCode ?? void 0
|
|
17604
|
-
});
|
|
17605
|
-
}
|
|
17606
|
-
this.emitEvent("opencode:done", { durationMs });
|
|
17607
|
-
this.emitEvent("finish:init", { outputPath, durationMs });
|
|
17608
|
-
return result;
|
|
17609
|
-
}
|
|
17610
|
-
};
|
|
17611
|
-
exports2.OpenCodeOrchestrator = OpenCodeOrchestrator;
|
|
17612
|
-
OpenCodeOrchestrator.DEFAULT_OUTPUT_PATH = "generated-app";
|
|
17501
|
+
var detect_1 = require_detect();
|
|
17502
|
+
var collect_created_1 = require_collect_created();
|
|
17503
|
+
var collect_updated_1 = require_collect_updated();
|
|
17504
|
+
async function buildExtensionsJobPayload(outputPath, files) {
|
|
17505
|
+
const created = await (0, collect_created_1.collectInsertedExtensionsMetadata)(outputPath, files);
|
|
17506
|
+
const insertedDefinitionPaths = new Set(files.filter((file) => file.operation === ditto_codegen_types_12.ExtensionGenerationOperation.INSERT && (0, detect_1.isExtensionsFile)(file.path)).map((file) => file.path));
|
|
17507
|
+
const updated = await (0, collect_updated_1.collectUpdatedExtensionsMetadata)(outputPath, files, insertedDefinitionPaths);
|
|
17508
|
+
return { created, updated };
|
|
17509
|
+
}
|
|
17613
17510
|
}
|
|
17614
17511
|
});
|
|
17615
17512
|
|
|
@@ -17687,8 +17584,8 @@ var require_codegen_flow_helpers = __commonJS({
|
|
|
17687
17584
|
exports2.getOutputPath = getOutputPath;
|
|
17688
17585
|
var path_12 = __importDefault2(require("path"));
|
|
17689
17586
|
var codeGenerationService_12 = require_codeGenerationService();
|
|
17690
|
-
var
|
|
17691
|
-
var
|
|
17587
|
+
var file_changes_1 = require_file_changes();
|
|
17588
|
+
var job_payload_1 = require_job_payload2();
|
|
17692
17589
|
var agent_io_1 = require_agent_io();
|
|
17693
17590
|
var utils_12 = require_utils9();
|
|
17694
17591
|
var DEFAULT_OUTPUT_PATH = "generated-app";
|
|
@@ -17696,8 +17593,8 @@ var require_codegen_flow_helpers = __commonJS({
|
|
|
17696
17593
|
await codeGenerationService_12.codeGenerationService.updateJob(jobContext.jobId, payload);
|
|
17697
17594
|
}
|
|
17698
17595
|
async function buildFailedRunPayload(error, outputPath, gitBaseline) {
|
|
17699
|
-
const files = await (0,
|
|
17700
|
-
const extensions = await (0,
|
|
17596
|
+
const files = await (0, file_changes_1.collectGitFileChanges)(outputPath, gitBaseline);
|
|
17597
|
+
const extensions = await (0, job_payload_1.buildExtensionsJobPayload)(outputPath, files);
|
|
17701
17598
|
return {
|
|
17702
17599
|
requiredPermissions: [],
|
|
17703
17600
|
error,
|
|
@@ -17718,22 +17615,22 @@ var require_codegen_flow_helpers = __commonJS({
|
|
|
17718
17615
|
}
|
|
17719
17616
|
});
|
|
17720
17617
|
|
|
17721
|
-
// dist/
|
|
17618
|
+
// dist/extension-reporting/inject-created-by.js
|
|
17722
17619
|
var require_inject_created_by = __commonJS({
|
|
17723
|
-
"dist/
|
|
17620
|
+
"dist/extension-reporting/inject-created-by.js"(exports2) {
|
|
17724
17621
|
"use strict";
|
|
17725
17622
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
17726
17623
|
exports2.injectCreatedByIntoExtensionFiles = injectCreatedByIntoExtensionFiles;
|
|
17727
17624
|
var promises_1 = require("fs/promises");
|
|
17728
17625
|
var path_12 = require("path");
|
|
17729
17626
|
var logger_12 = require_logger();
|
|
17730
|
-
var
|
|
17627
|
+
var detect_1 = require_detect();
|
|
17731
17628
|
async function injectCreatedByIntoExtensionFiles(cwd, createdExtensions) {
|
|
17732
17629
|
for (const { path: filePath } of createdExtensions) {
|
|
17733
17630
|
const absolutePath = (0, path_12.join)(cwd, filePath);
|
|
17734
17631
|
try {
|
|
17735
17632
|
const original = await (0, promises_1.readFile)(absolutePath, "utf-8");
|
|
17736
|
-
const injected = (0,
|
|
17633
|
+
const injected = (0, detect_1.injectCreatedBy)(original);
|
|
17737
17634
|
if (injected !== original) {
|
|
17738
17635
|
await (0, promises_1.writeFile)(absolutePath, injected, "utf-8");
|
|
17739
17636
|
logger_12.logger.info("[OpenCode] Injected createdBy into extension file", {
|
|
@@ -22559,9 +22456,9 @@ var require_src2 = __commonJS({
|
|
|
22559
22456
|
}
|
|
22560
22457
|
});
|
|
22561
22458
|
|
|
22562
|
-
// dist/
|
|
22563
|
-
var
|
|
22564
|
-
"dist/
|
|
22459
|
+
// dist/telemetry/bi-logger.js
|
|
22460
|
+
var require_bi_logger2 = __commonJS({
|
|
22461
|
+
"dist/telemetry/bi-logger.js"(exports2) {
|
|
22565
22462
|
"use strict";
|
|
22566
22463
|
var __importDefault2 = exports2 && exports2.__importDefault || function(mod) {
|
|
22567
22464
|
return mod && mod.__esModule ? mod : { "default": mod };
|
|
@@ -22580,9 +22477,9 @@ var require_biLogger = __commonJS({
|
|
|
22580
22477
|
}
|
|
22581
22478
|
});
|
|
22582
22479
|
|
|
22583
|
-
// dist/
|
|
22584
|
-
var
|
|
22585
|
-
"dist/
|
|
22480
|
+
// dist/telemetry/bi-events.js
|
|
22481
|
+
var require_bi_events = __commonJS({
|
|
22482
|
+
"dist/telemetry/bi-events.js"(exports2) {
|
|
22586
22483
|
"use strict";
|
|
22587
22484
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
22588
22485
|
exports2.reportSessionStart = reportSessionStart;
|
|
@@ -22591,7 +22488,7 @@ var require_biEvents = __commonJS({
|
|
|
22591
22488
|
var v2_1 = require_v2();
|
|
22592
22489
|
var v2_2 = require_v22();
|
|
22593
22490
|
var types_1 = require_types_impl();
|
|
22594
|
-
var
|
|
22491
|
+
var bi_logger_1 = require_bi_logger2();
|
|
22595
22492
|
var logger_12 = require_logger();
|
|
22596
22493
|
var MAX_JOB_INPUT_LENGTH = 3e4;
|
|
22597
22494
|
var TRUNCATION_SUFFIX = "\u2026";
|
|
@@ -22629,7 +22526,7 @@ var require_biEvents = __commonJS({
|
|
|
22629
22526
|
if (report.environment === types_1.Environment.APP_BUILDER) {
|
|
22630
22527
|
logger_12.logger.info("Reporting BI event 200 (session start)", devibeParams);
|
|
22631
22528
|
try {
|
|
22632
|
-
await
|
|
22529
|
+
await bi_logger_1.biLogger.report((0, v2_1.devibeCodegenAgentSessionStartSrc196Evid200)(devibeParams));
|
|
22633
22530
|
} catch (err) {
|
|
22634
22531
|
logger_12.logger.warn("BI event 200 report failed", { error: err });
|
|
22635
22532
|
}
|
|
@@ -22647,7 +22544,7 @@ var require_biEvents = __commonJS({
|
|
|
22647
22544
|
};
|
|
22648
22545
|
logger_12.logger.info("Reporting BI event 299 (generic session start)", codegenAgentParams);
|
|
22649
22546
|
try {
|
|
22650
|
-
await
|
|
22547
|
+
await bi_logger_1.biLogger.report((0, v2_2.codegenAgentSessionStartSrc11Evid299)(codegenAgentParams));
|
|
22651
22548
|
} catch (err) {
|
|
22652
22549
|
logger_12.logger.warn("BI event 299 report failed", { error: err });
|
|
22653
22550
|
}
|
|
@@ -22674,7 +22571,7 @@ var require_biEvents = __commonJS({
|
|
|
22674
22571
|
if (report.environment === types_1.Environment.APP_BUILDER) {
|
|
22675
22572
|
logger_12.logger.info("Reporting BI event 201 (session end)", devibeParams);
|
|
22676
22573
|
try {
|
|
22677
|
-
await
|
|
22574
|
+
await bi_logger_1.biLogger.report((0, v2_1.devibeCodegenAgentSessionEndSrc196Evid201)(devibeParams));
|
|
22678
22575
|
} catch (err) {
|
|
22679
22576
|
logger_12.logger.warn("BI event 201 report failed", { error: err });
|
|
22680
22577
|
}
|
|
@@ -22696,7 +22593,7 @@ var require_biEvents = __commonJS({
|
|
|
22696
22593
|
};
|
|
22697
22594
|
logger_12.logger.info("Reporting BI event 304 (generic session end)", codegenAgentParams);
|
|
22698
22595
|
try {
|
|
22699
|
-
await
|
|
22596
|
+
await bi_logger_1.biLogger.report((0, v2_2.codegenAgentSessionEndSrc11Evid304)(codegenAgentParams));
|
|
22700
22597
|
} catch (err) {
|
|
22701
22598
|
logger_12.logger.warn("BI event 304 report failed", { error: err });
|
|
22702
22599
|
}
|
|
@@ -22723,7 +22620,7 @@ var require_biEvents = __commonJS({
|
|
|
22723
22620
|
if (report.environment === types_1.Environment.APP_BUILDER) {
|
|
22724
22621
|
logger_12.logger.info("Reporting BI event 202 (session error)", devibeParams);
|
|
22725
22622
|
try {
|
|
22726
|
-
await
|
|
22623
|
+
await bi_logger_1.biLogger.report((0, v2_1.devibeCodegenAgentSessionErrorSrc196Evid202)(devibeParams));
|
|
22727
22624
|
} catch (err) {
|
|
22728
22625
|
logger_12.logger.warn("BI event 202 report failed", { error: err });
|
|
22729
22626
|
}
|
|
@@ -22746,7 +22643,7 @@ var require_biEvents = __commonJS({
|
|
|
22746
22643
|
};
|
|
22747
22644
|
logger_12.logger.info("Reporting BI event 305 (generic session error)", codegenAgentParams);
|
|
22748
22645
|
try {
|
|
22749
|
-
await
|
|
22646
|
+
await bi_logger_1.biLogger.report((0, v2_2.codegenAgentSessionErrorSrc11Evid305)(codegenAgentParams));
|
|
22750
22647
|
} catch (err) {
|
|
22751
22648
|
logger_12.logger.warn("BI event 305 report failed", { error: err });
|
|
22752
22649
|
}
|
|
@@ -22754,9 +22651,53 @@ var require_biEvents = __commonJS({
|
|
|
22754
22651
|
}
|
|
22755
22652
|
});
|
|
22756
22653
|
|
|
22757
|
-
// dist/opencode-integration/
|
|
22758
|
-
var
|
|
22759
|
-
"dist/opencode-integration/
|
|
22654
|
+
// dist/opencode-integration/slack-reports/validator-outputs.js
|
|
22655
|
+
var require_validator_outputs = __commonJS({
|
|
22656
|
+
"dist/opencode-integration/slack-reports/validator-outputs.js"(exports2) {
|
|
22657
|
+
"use strict";
|
|
22658
|
+
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
22659
|
+
exports2.notifyValidatorOutputsToSlack = notifyValidatorOutputsToSlack;
|
|
22660
|
+
var logger_12 = require_logger();
|
|
22661
|
+
var job_context_storage_12 = require_job_context_storage();
|
|
22662
|
+
var codeGenerationService_12 = require_codeGenerationService();
|
|
22663
|
+
var parser_1 = require_parser();
|
|
22664
|
+
async function notifyValidatorOutputsToSlack(stdout, costUsd) {
|
|
22665
|
+
try {
|
|
22666
|
+
const store = job_context_storage_12.jobContextStorage.getStore();
|
|
22667
|
+
const outputs = (0, parser_1.parseValidatorTaskOutputs)(stdout);
|
|
22668
|
+
if (outputs.length === 0)
|
|
22669
|
+
return;
|
|
22670
|
+
const durationMs = store?.flowStartTime ? Date.now() - store.flowStartTime : void 0;
|
|
22671
|
+
const context = {
|
|
22672
|
+
jobId: store?.jobId,
|
|
22673
|
+
metasiteId: store?.metasiteId,
|
|
22674
|
+
costUsd: costUsd > 0 ? costUsd : void 0,
|
|
22675
|
+
durationMs
|
|
22676
|
+
};
|
|
22677
|
+
for (const output of outputs) {
|
|
22678
|
+
if (!(0, parser_1.shouldReportValidatorOutput)(output)) {
|
|
22679
|
+
continue;
|
|
22680
|
+
}
|
|
22681
|
+
try {
|
|
22682
|
+
await codeGenerationService_12.codeGenerationService.handleValidationErrors(output, context);
|
|
22683
|
+
} catch (err) {
|
|
22684
|
+
logger_12.logger.warn("[OpenCode] Failed to report validator output to Slack", {
|
|
22685
|
+
error: err instanceof Error ? err.message : String(err)
|
|
22686
|
+
});
|
|
22687
|
+
}
|
|
22688
|
+
}
|
|
22689
|
+
} catch (err) {
|
|
22690
|
+
logger_12.logger.warn("[OpenCode] Unexpected error in notifyValidatorOutputsToSlack", {
|
|
22691
|
+
error: err instanceof Error ? err.message : String(err)
|
|
22692
|
+
});
|
|
22693
|
+
}
|
|
22694
|
+
}
|
|
22695
|
+
}
|
|
22696
|
+
});
|
|
22697
|
+
|
|
22698
|
+
// dist/opencode-integration/slack-reports/expensive-run.js
|
|
22699
|
+
var require_expensive_run = __commonJS({
|
|
22700
|
+
"dist/opencode-integration/slack-reports/expensive-run.js"(exports2) {
|
|
22760
22701
|
"use strict";
|
|
22761
22702
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
22762
22703
|
exports2.notifyExpensiveRunToSlack = notifyExpensiveRunToSlack;
|
|
@@ -22823,7 +22764,7 @@ var require_opencode_init = __commonJS({
|
|
|
22823
22764
|
var codeGenerationService_12 = require_codeGenerationService();
|
|
22824
22765
|
var cli_listeners_1 = require_cli_listeners();
|
|
22825
22766
|
var job_context_storage_12 = require_job_context_storage();
|
|
22826
|
-
var
|
|
22767
|
+
var opencode_orchestrator_1 = require_opencode_orchestrator();
|
|
22827
22768
|
var ditto_codegen_types_12 = require_dist4();
|
|
22828
22769
|
var codegen_flow_helpers_12 = require_codegen_flow_helpers();
|
|
22829
22770
|
var agent_io_1 = require_agent_io();
|
|
@@ -22832,12 +22773,12 @@ var require_opencode_init = __commonJS({
|
|
|
22832
22773
|
var context_12 = require_context();
|
|
22833
22774
|
var logger_12 = require_logger();
|
|
22834
22775
|
var model_knobs_1 = require_model_knobs();
|
|
22835
|
-
var
|
|
22776
|
+
var file_changes_1 = require_file_changes();
|
|
22836
22777
|
var inject_created_by_1 = require_inject_created_by();
|
|
22837
|
-
var
|
|
22838
|
-
var
|
|
22839
|
-
var
|
|
22840
|
-
var
|
|
22778
|
+
var job_payload_1 = require_job_payload2();
|
|
22779
|
+
var bi_events_1 = require_bi_events();
|
|
22780
|
+
var validator_outputs_1 = require_validator_outputs();
|
|
22781
|
+
var expensive_run_1 = require_expensive_run();
|
|
22841
22782
|
var pre_run_decision_1 = require_pre_run_decision();
|
|
22842
22783
|
var environments_12 = require_environments();
|
|
22843
22784
|
var plugins_runtime_1 = require_plugins_runtime();
|
|
@@ -22864,16 +22805,16 @@ var require_opencode_init = __commonJS({
|
|
|
22864
22805
|
logger_12.logger.info("[OpenCode Init] Starting task", { taskId });
|
|
22865
22806
|
await codeGenerationService_12.codeGenerationService.updateTask(jobId, taskId, ditto_codegen_types_12.Status.RUNNING, {});
|
|
22866
22807
|
logger_12.logger.info("[OpenCode Init] Marked task RUNNING", { taskId });
|
|
22867
|
-
await (0,
|
|
22808
|
+
await (0, bi_events_1.reportSessionStart)({
|
|
22868
22809
|
...biBase,
|
|
22869
22810
|
taskModel,
|
|
22870
22811
|
taskType: kind,
|
|
22871
22812
|
jobInput: userInput
|
|
22872
22813
|
});
|
|
22873
22814
|
const outputPath = (0, codegen_flow_helpers_12.getOutputPath)();
|
|
22874
|
-
const gitBaseline = await (0,
|
|
22815
|
+
const gitBaseline = await (0, file_changes_1.captureGitBaseline)(outputPath);
|
|
22875
22816
|
store.gitBaseline = gitBaseline;
|
|
22876
|
-
const orchestrator = new
|
|
22817
|
+
const orchestrator = new opencode_orchestrator_1.OpenCodeOrchestrator();
|
|
22877
22818
|
let caughtError;
|
|
22878
22819
|
try {
|
|
22879
22820
|
(0, agent_io_1.writeAgentInput)(outputPath, agentData);
|
|
@@ -22895,9 +22836,9 @@ var require_opencode_init = __commonJS({
|
|
|
22895
22836
|
gitBaseline
|
|
22896
22837
|
});
|
|
22897
22838
|
store.lastAgentMessage = result.agentMessage;
|
|
22898
|
-
const files = await (0,
|
|
22839
|
+
const files = await (0, file_changes_1.collectGitFileChanges)(outputPath, gitBaseline);
|
|
22899
22840
|
const agentOutput = (0, agent_io_1.readAgentOutput)(outputPath);
|
|
22900
|
-
const extensions = await (0,
|
|
22841
|
+
const extensions = await (0, job_payload_1.buildExtensionsJobPayload)(outputPath, files);
|
|
22901
22842
|
await (0, inject_created_by_1.injectCreatedByIntoExtensionFiles)(outputPath, extensions.created);
|
|
22902
22843
|
await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, {
|
|
22903
22844
|
requiredPermissions: result.requiredPermissions,
|
|
@@ -22913,8 +22854,8 @@ var require_opencode_init = __commonJS({
|
|
|
22913
22854
|
requiredPermissions: result.requiredPermissions
|
|
22914
22855
|
});
|
|
22915
22856
|
if (orchestrator.lastStdout && !(0, model_knobs_1.hasModelOverride)() && !(0, model_knobs_1.hasSmallModelOverride)()) {
|
|
22916
|
-
void (0,
|
|
22917
|
-
void (0,
|
|
22857
|
+
void (0, validator_outputs_1.notifyValidatorOutputsToSlack)(orchestrator.lastStdout, result.usage.cost);
|
|
22858
|
+
void (0, expensive_run_1.notifyExpensiveRunToSlack)({
|
|
22918
22859
|
usage: result.usage,
|
|
22919
22860
|
durationMs: Date.now() - flowStartTime,
|
|
22920
22861
|
agentMessage: result.agentMessage,
|
|
@@ -22924,7 +22865,7 @@ var require_opencode_init = __commonJS({
|
|
|
22924
22865
|
if (!store.isCompleted) {
|
|
22925
22866
|
await codeGenerationService_12.codeGenerationService.updateTask(jobId, taskId, ditto_codegen_types_12.Status.COMPLETED, {});
|
|
22926
22867
|
}
|
|
22927
|
-
await (0,
|
|
22868
|
+
await (0, bi_events_1.reportSessionEnd)({
|
|
22928
22869
|
...biBase,
|
|
22929
22870
|
taskModel,
|
|
22930
22871
|
taskType: kind,
|
|
@@ -22943,7 +22884,7 @@ var require_opencode_init = __commonJS({
|
|
|
22943
22884
|
await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, failedRunPayload);
|
|
22944
22885
|
await (0, codegen_flow_helpers_12.updateParentTaskStatus)(localJobContext, ditto_codegen_types_12.Status.FAILED, codegenError);
|
|
22945
22886
|
const taskCost = orchestrator.lastUsage ? Math.round(orchestrator.lastUsage.cost * 1e6) : void 0;
|
|
22946
|
-
await (0,
|
|
22887
|
+
await (0, bi_events_1.reportSessionEnd)({
|
|
22947
22888
|
...biBase,
|
|
22948
22889
|
taskModel,
|
|
22949
22890
|
taskType: kind,
|
|
@@ -22952,7 +22893,7 @@ var require_opencode_init = __commonJS({
|
|
|
22952
22893
|
agentOutput: JSON.stringify({ files: failedRunPayload.files }),
|
|
22953
22894
|
jobDuration: String(Date.now() - flowStartTime)
|
|
22954
22895
|
});
|
|
22955
|
-
await (0,
|
|
22896
|
+
await (0, bi_events_1.reportSessionError)({
|
|
22956
22897
|
...biBase,
|
|
22957
22898
|
taskModel,
|
|
22958
22899
|
taskType: kind,
|
|
@@ -22976,9 +22917,9 @@ var require_opencode_init = __commonJS({
|
|
|
22976
22917
|
}
|
|
22977
22918
|
});
|
|
22978
22919
|
|
|
22979
|
-
// dist/
|
|
22980
|
-
var
|
|
22981
|
-
"dist/
|
|
22920
|
+
// dist/orchestrators/opencode-iteration-orchestrator.js
|
|
22921
|
+
var require_opencode_iteration_orchestrator = __commonJS({
|
|
22922
|
+
"dist/orchestrators/opencode-iteration-orchestrator.js"(exports2) {
|
|
22982
22923
|
"use strict";
|
|
22983
22924
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
22984
22925
|
exports2.OpenCodeIterationOrchestrator = void 0;
|
|
@@ -23040,7 +22981,7 @@ var require_opencode_iterate = __commonJS({
|
|
|
23040
22981
|
var cli_listeners_1 = require_cli_listeners();
|
|
23041
22982
|
var job_context_storage_12 = require_job_context_storage();
|
|
23042
22983
|
var ditto_codegen_types_12 = require_dist4();
|
|
23043
|
-
var
|
|
22984
|
+
var opencode_iteration_orchestrator_1 = require_opencode_iteration_orchestrator();
|
|
23044
22985
|
var types_1 = require_types_impl();
|
|
23045
22986
|
var codegen_flow_helpers_12 = require_codegen_flow_helpers();
|
|
23046
22987
|
var agent_io_1 = require_agent_io();
|
|
@@ -23048,12 +22989,12 @@ var require_opencode_iterate = __commonJS({
|
|
|
23048
22989
|
var context_12 = require_context();
|
|
23049
22990
|
var logger_12 = require_logger();
|
|
23050
22991
|
var model_knobs_1 = require_model_knobs();
|
|
23051
|
-
var
|
|
22992
|
+
var file_changes_1 = require_file_changes();
|
|
23052
22993
|
var inject_created_by_1 = require_inject_created_by();
|
|
23053
|
-
var
|
|
23054
|
-
var
|
|
23055
|
-
var
|
|
23056
|
-
var
|
|
22994
|
+
var job_payload_1 = require_job_payload2();
|
|
22995
|
+
var validator_outputs_1 = require_validator_outputs();
|
|
22996
|
+
var expensive_run_1 = require_expensive_run();
|
|
22997
|
+
var bi_events_1 = require_bi_events();
|
|
23057
22998
|
var plugins_runtime_1 = require_plugins_runtime();
|
|
23058
22999
|
var runOpencodeIterateFlow = async (chatHistory, agentData) => {
|
|
23059
23000
|
const store = job_context_storage_12.jobContextStorage.getStore();
|
|
@@ -23078,16 +23019,16 @@ var require_opencode_iterate = __commonJS({
|
|
|
23078
23019
|
logger_12.logger.info("[OpenCode Iterate] Starting task", { taskId });
|
|
23079
23020
|
await codeGenerationService_12.codeGenerationService.updateTask(jobId, taskId, ditto_codegen_types_12.Status.RUNNING, {});
|
|
23080
23021
|
logger_12.logger.info("[OpenCode Iterate] Marked task RUNNING", { taskId });
|
|
23081
|
-
await (0,
|
|
23022
|
+
await (0, bi_events_1.reportSessionStart)({
|
|
23082
23023
|
...biBase,
|
|
23083
23024
|
taskModel,
|
|
23084
23025
|
taskType: kind,
|
|
23085
23026
|
jobInput: userInput
|
|
23086
23027
|
});
|
|
23087
23028
|
const outputPath = (0, codegen_flow_helpers_12.getOutputPath)();
|
|
23088
|
-
const gitBaseline = await (0,
|
|
23029
|
+
const gitBaseline = await (0, file_changes_1.captureGitBaseline)(outputPath);
|
|
23089
23030
|
store.gitBaseline = gitBaseline;
|
|
23090
|
-
const iterationOrchestrator = new
|
|
23031
|
+
const iterationOrchestrator = new opencode_iteration_orchestrator_1.OpenCodeIterationOrchestrator();
|
|
23091
23032
|
let caughtError;
|
|
23092
23033
|
try {
|
|
23093
23034
|
(0, agent_io_1.writeAgentInput)(outputPath, agentData);
|
|
@@ -23099,9 +23040,9 @@ var require_opencode_iterate = __commonJS({
|
|
|
23099
23040
|
gitBaseline
|
|
23100
23041
|
});
|
|
23101
23042
|
store.lastAgentMessage = result.agentMessage;
|
|
23102
|
-
const files = await (0,
|
|
23043
|
+
const files = await (0, file_changes_1.collectGitFileChanges)(outputPath, gitBaseline);
|
|
23103
23044
|
const agentOutput = (0, agent_io_1.readAgentOutput)(outputPath);
|
|
23104
|
-
const extensions = await (0,
|
|
23045
|
+
const extensions = await (0, job_payload_1.buildExtensionsJobPayload)(outputPath, files);
|
|
23105
23046
|
await (0, inject_created_by_1.injectCreatedByIntoExtensionFiles)(outputPath, extensions.created);
|
|
23106
23047
|
await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, {
|
|
23107
23048
|
requiredPermissions: result.requiredPermissions,
|
|
@@ -23117,8 +23058,8 @@ var require_opencode_iterate = __commonJS({
|
|
|
23117
23058
|
requiredPermissions: result.requiredPermissions
|
|
23118
23059
|
});
|
|
23119
23060
|
if (iterationOrchestrator.lastStdout && !(0, model_knobs_1.hasModelOverride)() && !(0, model_knobs_1.hasSmallModelOverride)()) {
|
|
23120
|
-
void (0,
|
|
23121
|
-
void (0,
|
|
23061
|
+
void (0, validator_outputs_1.notifyValidatorOutputsToSlack)(iterationOrchestrator.lastStdout, result.usage.cost);
|
|
23062
|
+
void (0, expensive_run_1.notifyExpensiveRunToSlack)({
|
|
23122
23063
|
usage: result.usage,
|
|
23123
23064
|
durationMs: Date.now() - flowStartTime,
|
|
23124
23065
|
agentMessage: result.agentMessage,
|
|
@@ -23128,7 +23069,7 @@ var require_opencode_iterate = __commonJS({
|
|
|
23128
23069
|
await codeGenerationService_12.codeGenerationService.updateTask(jobId, taskId, ditto_codegen_types_12.Status.COMPLETED, {
|
|
23129
23070
|
taskOutput: { files }
|
|
23130
23071
|
});
|
|
23131
|
-
await (0,
|
|
23072
|
+
await (0, bi_events_1.reportSessionEnd)({
|
|
23132
23073
|
...biBase,
|
|
23133
23074
|
taskModel,
|
|
23134
23075
|
taskType: kind,
|
|
@@ -23147,7 +23088,7 @@ var require_opencode_iterate = __commonJS({
|
|
|
23147
23088
|
await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, failedRunPayload);
|
|
23148
23089
|
await (0, codegen_flow_helpers_12.updateParentTaskStatus)(localJobContext, ditto_codegen_types_12.Status.FAILED, codegenError);
|
|
23149
23090
|
const taskCost = iterationOrchestrator.lastUsage ? Math.round(iterationOrchestrator.lastUsage.cost * 1e6) : void 0;
|
|
23150
|
-
await (0,
|
|
23091
|
+
await (0, bi_events_1.reportSessionEnd)({
|
|
23151
23092
|
...biBase,
|
|
23152
23093
|
taskModel,
|
|
23153
23094
|
taskType: kind,
|
|
@@ -23156,7 +23097,7 @@ var require_opencode_iterate = __commonJS({
|
|
|
23156
23097
|
agentOutput: JSON.stringify({ files: failedRunPayload.files }),
|
|
23157
23098
|
jobDuration: String(Date.now() - flowStartTime)
|
|
23158
23099
|
});
|
|
23159
|
-
await (0,
|
|
23100
|
+
await (0, bi_events_1.reportSessionError)({
|
|
23160
23101
|
...biBase,
|
|
23161
23102
|
taskModel,
|
|
23162
23103
|
taskType: kind,
|
|
@@ -23180,9 +23121,9 @@ var require_opencode_iterate = __commonJS({
|
|
|
23180
23121
|
}
|
|
23181
23122
|
});
|
|
23182
23123
|
|
|
23183
|
-
// dist/
|
|
23184
|
-
var
|
|
23185
|
-
"dist/
|
|
23124
|
+
// dist/orchestrators/opencode-ask-orchestrator.js
|
|
23125
|
+
var require_opencode_ask_orchestrator = __commonJS({
|
|
23126
|
+
"dist/orchestrators/opencode-ask-orchestrator.js"(exports2) {
|
|
23186
23127
|
"use strict";
|
|
23187
23128
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
23188
23129
|
exports2.OpenCodeAskOrchestrator = void 0;
|
|
@@ -23242,17 +23183,17 @@ var require_opencode_ask = __commonJS({
|
|
|
23242
23183
|
var cli_listeners_1 = require_cli_listeners();
|
|
23243
23184
|
var job_context_storage_12 = require_job_context_storage();
|
|
23244
23185
|
var ditto_codegen_types_12 = require_dist4();
|
|
23245
|
-
var
|
|
23186
|
+
var opencode_ask_orchestrator_1 = require_opencode_ask_orchestrator();
|
|
23246
23187
|
var types_1 = require_types_impl();
|
|
23247
23188
|
var codegen_flow_helpers_12 = require_codegen_flow_helpers();
|
|
23248
23189
|
var ditto_codegen_types_2 = require_dist4();
|
|
23249
23190
|
var context_12 = require_context();
|
|
23250
23191
|
var logger_12 = require_logger();
|
|
23251
23192
|
var model_knobs_1 = require_model_knobs();
|
|
23252
|
-
var
|
|
23193
|
+
var file_changes_1 = require_file_changes();
|
|
23253
23194
|
var inject_created_by_1 = require_inject_created_by();
|
|
23254
|
-
var
|
|
23255
|
-
var
|
|
23195
|
+
var job_payload_1 = require_job_payload2();
|
|
23196
|
+
var bi_events_1 = require_bi_events();
|
|
23256
23197
|
var runOpencodeAskFlow = async (chatHistory) => {
|
|
23257
23198
|
const store = job_context_storage_12.jobContextStorage.getStore();
|
|
23258
23199
|
if (!store?.jobId || !store?.taskId) {
|
|
@@ -23276,16 +23217,16 @@ var require_opencode_ask = __commonJS({
|
|
|
23276
23217
|
logger_12.logger.info("[OpenCode Ask] Starting task", { taskId });
|
|
23277
23218
|
await codeGenerationService_12.codeGenerationService.updateTask(jobId, taskId, ditto_codegen_types_12.Status.RUNNING, {});
|
|
23278
23219
|
logger_12.logger.info("[OpenCode Ask] Marked task RUNNING", { taskId });
|
|
23279
|
-
await (0,
|
|
23220
|
+
await (0, bi_events_1.reportSessionStart)({
|
|
23280
23221
|
...biBase,
|
|
23281
23222
|
taskModel,
|
|
23282
23223
|
taskType: kind,
|
|
23283
23224
|
jobInput: userInput
|
|
23284
23225
|
});
|
|
23285
23226
|
const outputPath = (0, codegen_flow_helpers_12.getOutputPath)();
|
|
23286
|
-
const gitBaseline = await (0,
|
|
23227
|
+
const gitBaseline = await (0, file_changes_1.captureGitBaseline)(outputPath);
|
|
23287
23228
|
store.gitBaseline = gitBaseline;
|
|
23288
|
-
const askOrchestrator = new
|
|
23229
|
+
const askOrchestrator = new opencode_ask_orchestrator_1.OpenCodeAskOrchestrator();
|
|
23289
23230
|
try {
|
|
23290
23231
|
(0, cli_listeners_1.attachOrchestratorListeners)(askOrchestrator);
|
|
23291
23232
|
const result = await askOrchestrator.ask({
|
|
@@ -23294,8 +23235,8 @@ var require_opencode_ask = __commonJS({
|
|
|
23294
23235
|
chatHistory,
|
|
23295
23236
|
gitBaseline
|
|
23296
23237
|
});
|
|
23297
|
-
const files = await (0,
|
|
23298
|
-
const extensions = await (0,
|
|
23238
|
+
const files = await (0, file_changes_1.collectGitFileChanges)(outputPath, gitBaseline);
|
|
23239
|
+
const extensions = await (0, job_payload_1.buildExtensionsJobPayload)(outputPath, files);
|
|
23299
23240
|
await (0, inject_created_by_1.injectCreatedByIntoExtensionFiles)(outputPath, extensions.created);
|
|
23300
23241
|
await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, {
|
|
23301
23242
|
files,
|
|
@@ -23307,7 +23248,7 @@ var require_opencode_ask = __commonJS({
|
|
|
23307
23248
|
answer: result.answer
|
|
23308
23249
|
}
|
|
23309
23250
|
});
|
|
23310
|
-
await (0,
|
|
23251
|
+
await (0, bi_events_1.reportSessionEnd)({
|
|
23311
23252
|
...biBase,
|
|
23312
23253
|
taskModel,
|
|
23313
23254
|
taskType: kind,
|
|
@@ -23320,8 +23261,8 @@ var require_opencode_ask = __commonJS({
|
|
|
23320
23261
|
logger_12.logger.info("[OpenCode Ask] Completed task", { taskId });
|
|
23321
23262
|
} catch (error) {
|
|
23322
23263
|
const codegenError = (0, ditto_codegen_types_2.toCodegenError)(error);
|
|
23323
|
-
const files = await (0,
|
|
23324
|
-
const extensions = await (0,
|
|
23264
|
+
const files = await (0, file_changes_1.collectGitFileChanges)(outputPath, gitBaseline);
|
|
23265
|
+
const extensions = await (0, job_payload_1.buildExtensionsJobPayload)(outputPath, files);
|
|
23325
23266
|
await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, {
|
|
23326
23267
|
files,
|
|
23327
23268
|
extensions,
|
|
@@ -23329,7 +23270,7 @@ var require_opencode_ask = __commonJS({
|
|
|
23329
23270
|
});
|
|
23330
23271
|
await (0, codegen_flow_helpers_12.updateParentTaskStatus)(localJobContext, ditto_codegen_types_12.Status.FAILED, codegenError);
|
|
23331
23272
|
const taskCost = askOrchestrator.lastUsage ? Math.round(askOrchestrator.lastUsage.cost * 1e6) : void 0;
|
|
23332
|
-
await (0,
|
|
23273
|
+
await (0, bi_events_1.reportSessionEnd)({
|
|
23333
23274
|
...biBase,
|
|
23334
23275
|
taskModel,
|
|
23335
23276
|
taskType: kind,
|
|
@@ -23338,7 +23279,7 @@ var require_opencode_ask = __commonJS({
|
|
|
23338
23279
|
agentOutput: JSON.stringify({ files }),
|
|
23339
23280
|
jobDuration: String(Date.now() - flowStartTime)
|
|
23340
23281
|
});
|
|
23341
|
-
await (0,
|
|
23282
|
+
await (0, bi_events_1.reportSessionError)({
|
|
23342
23283
|
...biBase,
|
|
23343
23284
|
taskModel,
|
|
23344
23285
|
taskType: kind,
|
|
@@ -23360,9 +23301,9 @@ var require_opencode_ask = __commonJS({
|
|
|
23360
23301
|
}
|
|
23361
23302
|
});
|
|
23362
23303
|
|
|
23363
|
-
// dist/
|
|
23364
|
-
var
|
|
23365
|
-
"dist/
|
|
23304
|
+
// dist/orchestrators/opencode-git-conflicts-orchestrator.js
|
|
23305
|
+
var require_opencode_git_conflicts_orchestrator = __commonJS({
|
|
23306
|
+
"dist/orchestrators/opencode-git-conflicts-orchestrator.js"(exports2) {
|
|
23366
23307
|
"use strict";
|
|
23367
23308
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
23368
23309
|
exports2.OpenCodeGitConflictsOrchestrator = void 0;
|
|
@@ -23424,17 +23365,17 @@ var require_opencode_fix_git_conflicts = __commonJS({
|
|
|
23424
23365
|
var cli_listeners_1 = require_cli_listeners();
|
|
23425
23366
|
var job_context_storage_12 = require_job_context_storage();
|
|
23426
23367
|
var ditto_codegen_types_12 = require_dist4();
|
|
23427
|
-
var
|
|
23368
|
+
var opencode_git_conflicts_orchestrator_1 = require_opencode_git_conflicts_orchestrator();
|
|
23428
23369
|
var types_1 = require_types_impl();
|
|
23429
23370
|
var codegen_flow_helpers_12 = require_codegen_flow_helpers();
|
|
23430
23371
|
var context_12 = require_context();
|
|
23431
23372
|
var logger_12 = require_logger();
|
|
23432
23373
|
var model_knobs_1 = require_model_knobs();
|
|
23433
|
-
var
|
|
23434
|
-
var
|
|
23435
|
-
var
|
|
23436
|
-
var
|
|
23437
|
-
var
|
|
23374
|
+
var file_changes_1 = require_file_changes();
|
|
23375
|
+
var job_payload_1 = require_job_payload2();
|
|
23376
|
+
var validator_outputs_1 = require_validator_outputs();
|
|
23377
|
+
var expensive_run_1 = require_expensive_run();
|
|
23378
|
+
var bi_events_1 = require_bi_events();
|
|
23438
23379
|
var plugins_runtime_1 = require_plugins_runtime();
|
|
23439
23380
|
var runOpencodeGitConflictsFlow = async (chatHistory) => {
|
|
23440
23381
|
const store = job_context_storage_12.jobContextStorage.getStore();
|
|
@@ -23459,15 +23400,15 @@ var require_opencode_fix_git_conflicts = __commonJS({
|
|
|
23459
23400
|
logger_12.logger.info("[OpenCode Git Conflicts] Starting task", { taskId });
|
|
23460
23401
|
await codeGenerationService_12.codeGenerationService.updateTask(jobId, taskId, ditto_codegen_types_12.Status.RUNNING, {});
|
|
23461
23402
|
logger_12.logger.info("[OpenCode Git Conflicts] Marked task RUNNING", { taskId });
|
|
23462
|
-
await (0,
|
|
23403
|
+
await (0, bi_events_1.reportSessionStart)({
|
|
23463
23404
|
...biBase,
|
|
23464
23405
|
taskModel,
|
|
23465
23406
|
taskType: kind
|
|
23466
23407
|
});
|
|
23467
23408
|
const outputPath = (0, codegen_flow_helpers_12.getOutputPath)();
|
|
23468
|
-
const gitBaseline = await (0,
|
|
23409
|
+
const gitBaseline = await (0, file_changes_1.captureGitBaseline)(outputPath);
|
|
23469
23410
|
store.gitBaseline = gitBaseline;
|
|
23470
|
-
const orchestrator = new
|
|
23411
|
+
const orchestrator = new opencode_git_conflicts_orchestrator_1.OpenCodeGitConflictsOrchestrator();
|
|
23471
23412
|
let caughtError;
|
|
23472
23413
|
try {
|
|
23473
23414
|
(0, cli_listeners_1.attachOrchestratorListeners)(orchestrator);
|
|
@@ -23478,8 +23419,8 @@ var require_opencode_fix_git_conflicts = __commonJS({
|
|
|
23478
23419
|
gitBaseline
|
|
23479
23420
|
});
|
|
23480
23421
|
store.lastAgentMessage = result.agentMessage;
|
|
23481
|
-
const files = await (0,
|
|
23482
|
-
const extensions = await (0,
|
|
23422
|
+
const files = await (0, file_changes_1.collectGitFileChanges)(outputPath, gitBaseline);
|
|
23423
|
+
const extensions = await (0, job_payload_1.buildExtensionsJobPayload)(outputPath, files);
|
|
23483
23424
|
await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, {
|
|
23484
23425
|
requiredPermissions: result.requiredPermissions,
|
|
23485
23426
|
agentMessage: result.agentMessage,
|
|
@@ -23493,8 +23434,8 @@ var require_opencode_fix_git_conflicts = __commonJS({
|
|
|
23493
23434
|
requiredPermissions: result.requiredPermissions
|
|
23494
23435
|
});
|
|
23495
23436
|
if (orchestrator.lastStdout && !(0, model_knobs_1.hasModelOverride)() && !(0, model_knobs_1.hasSmallModelOverride)()) {
|
|
23496
|
-
void (0,
|
|
23497
|
-
void (0,
|
|
23437
|
+
void (0, validator_outputs_1.notifyValidatorOutputsToSlack)(orchestrator.lastStdout, result.usage.cost);
|
|
23438
|
+
void (0, expensive_run_1.notifyExpensiveRunToSlack)({
|
|
23498
23439
|
usage: result.usage,
|
|
23499
23440
|
durationMs: Date.now() - flowStartTime,
|
|
23500
23441
|
agentMessage: result.agentMessage,
|
|
@@ -23504,7 +23445,7 @@ var require_opencode_fix_git_conflicts = __commonJS({
|
|
|
23504
23445
|
await codeGenerationService_12.codeGenerationService.updateTask(jobId, taskId, ditto_codegen_types_12.Status.COMPLETED, {
|
|
23505
23446
|
taskOutput: { files }
|
|
23506
23447
|
});
|
|
23507
|
-
await (0,
|
|
23448
|
+
await (0, bi_events_1.reportSessionEnd)({
|
|
23508
23449
|
...biBase,
|
|
23509
23450
|
taskModel,
|
|
23510
23451
|
taskType: kind,
|
|
@@ -23518,8 +23459,8 @@ var require_opencode_fix_git_conflicts = __commonJS({
|
|
|
23518
23459
|
} catch (error) {
|
|
23519
23460
|
caughtError = error;
|
|
23520
23461
|
const codegenError = (0, ditto_codegen_types_12.toCodegenError)(error);
|
|
23521
|
-
const files = await (0,
|
|
23522
|
-
const extensions = await (0,
|
|
23462
|
+
const files = await (0, file_changes_1.collectGitFileChanges)(outputPath, gitBaseline);
|
|
23463
|
+
const extensions = await (0, job_payload_1.buildExtensionsJobPayload)(outputPath, files);
|
|
23523
23464
|
await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, {
|
|
23524
23465
|
requiredPermissions: [],
|
|
23525
23466
|
error: codegenError,
|
|
@@ -23528,7 +23469,7 @@ var require_opencode_fix_git_conflicts = __commonJS({
|
|
|
23528
23469
|
});
|
|
23529
23470
|
await (0, codegen_flow_helpers_12.updateParentTaskStatus)(localJobContext, ditto_codegen_types_12.Status.FAILED, codegenError);
|
|
23530
23471
|
const taskCost = orchestrator.lastUsage ? Math.round(orchestrator.lastUsage.cost * 1e6) : void 0;
|
|
23531
|
-
await (0,
|
|
23472
|
+
await (0, bi_events_1.reportSessionEnd)({
|
|
23532
23473
|
...biBase,
|
|
23533
23474
|
taskModel,
|
|
23534
23475
|
taskType: kind,
|
|
@@ -23537,7 +23478,7 @@ var require_opencode_fix_git_conflicts = __commonJS({
|
|
|
23537
23478
|
agentOutput: JSON.stringify({ files }),
|
|
23538
23479
|
jobDuration: String(Date.now() - flowStartTime)
|
|
23539
23480
|
});
|
|
23540
|
-
await (0,
|
|
23481
|
+
await (0, bi_events_1.reportSessionError)({
|
|
23541
23482
|
...biBase,
|
|
23542
23483
|
taskModel,
|
|
23543
23484
|
taskType: kind,
|
|
@@ -23561,9 +23502,9 @@ var require_opencode_fix_git_conflicts = __commonJS({
|
|
|
23561
23502
|
}
|
|
23562
23503
|
});
|
|
23563
23504
|
|
|
23564
|
-
// dist/job-cancellation-monitor.js
|
|
23505
|
+
// dist/jobs/job-cancellation-monitor.js
|
|
23565
23506
|
var require_job_cancellation_monitor = __commonJS({
|
|
23566
|
-
"dist/job-cancellation-monitor.js"(exports2) {
|
|
23507
|
+
"dist/jobs/job-cancellation-monitor.js"(exports2) {
|
|
23567
23508
|
"use strict";
|
|
23568
23509
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
23569
23510
|
exports2.JobCancellationMonitor = void 0;
|
|
@@ -23572,7 +23513,7 @@ var require_job_cancellation_monitor = __commonJS({
|
|
|
23572
23513
|
var logger_12 = require_logger();
|
|
23573
23514
|
var job_context_storage_12 = require_job_context_storage();
|
|
23574
23515
|
var types_1 = require_types_impl();
|
|
23575
|
-
var
|
|
23516
|
+
var bi_events_1 = require_bi_events();
|
|
23576
23517
|
var STATUS_CHECK_INTERVAL_MS = 2e3;
|
|
23577
23518
|
var JobCancellationMonitor = class {
|
|
23578
23519
|
constructor(codeGenerationService) {
|
|
@@ -23620,7 +23561,7 @@ var require_job_cancellation_monitor = __commonJS({
|
|
|
23620
23561
|
if (!store)
|
|
23621
23562
|
return;
|
|
23622
23563
|
const jobDuration = store.flowStartTime ? String(Date.now() - store.flowStartTime) : void 0;
|
|
23623
|
-
await (0,
|
|
23564
|
+
await (0, bi_events_1.reportSessionEnd)({
|
|
23624
23565
|
jobId,
|
|
23625
23566
|
taskId: store.taskId,
|
|
23626
23567
|
appId: this.projectId,
|
|
@@ -23637,9 +23578,9 @@ var require_job_cancellation_monitor = __commonJS({
|
|
|
23637
23578
|
}
|
|
23638
23579
|
});
|
|
23639
23580
|
|
|
23640
|
-
// dist/job-timeout-monitor.js
|
|
23581
|
+
// dist/jobs/job-timeout-monitor.js
|
|
23641
23582
|
var require_job_timeout_monitor = __commonJS({
|
|
23642
|
-
"dist/job-timeout-monitor.js"(exports2) {
|
|
23583
|
+
"dist/jobs/job-timeout-monitor.js"(exports2) {
|
|
23643
23584
|
"use strict";
|
|
23644
23585
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
23645
23586
|
exports2.JobTimeoutMonitor = exports2.JOB_TIMEOUT_MS = void 0;
|
|
@@ -23650,7 +23591,7 @@ var require_job_timeout_monitor = __commonJS({
|
|
|
23650
23591
|
var job_context_storage_12 = require_job_context_storage();
|
|
23651
23592
|
var codegen_flow_helpers_12 = require_codegen_flow_helpers();
|
|
23652
23593
|
var types_1 = require_types_impl();
|
|
23653
|
-
var
|
|
23594
|
+
var bi_events_1 = require_bi_events();
|
|
23654
23595
|
exports2.JOB_TIMEOUT_MS = 1e3 * 60 * 20;
|
|
23655
23596
|
var JobTimeoutMonitor = class {
|
|
23656
23597
|
constructor(codeGenerationService) {
|
|
@@ -23718,12 +23659,12 @@ var require_job_timeout_monitor = __commonJS({
|
|
|
23718
23659
|
runKind: store.kind,
|
|
23719
23660
|
environment
|
|
23720
23661
|
};
|
|
23721
|
-
await (0,
|
|
23662
|
+
await (0, bi_events_1.reportSessionEnd)({
|
|
23722
23663
|
...biBase,
|
|
23723
23664
|
taskStatus: ditto_codegen_types_12.Status.FAILED,
|
|
23724
23665
|
jobDuration
|
|
23725
23666
|
});
|
|
23726
|
-
await (0,
|
|
23667
|
+
await (0, bi_events_1.reportSessionError)({
|
|
23727
23668
|
...biBase,
|
|
23728
23669
|
errorDesc: codegenError.errorType,
|
|
23729
23670
|
errorMessage: codegenError.message,
|
|
@@ -23737,9 +23678,9 @@ var require_job_timeout_monitor = __commonJS({
|
|
|
23737
23678
|
}
|
|
23738
23679
|
});
|
|
23739
23680
|
|
|
23740
|
-
// dist/opencode-integration/skills-override.js
|
|
23681
|
+
// dist/opencode-integration/skills/skills-override.js
|
|
23741
23682
|
var require_skills_override = __commonJS({
|
|
23742
|
-
"dist/opencode-integration/skills-override.js"(exports2) {
|
|
23683
|
+
"dist/opencode-integration/skills/skills-override.js"(exports2) {
|
|
23743
23684
|
"use strict";
|
|
23744
23685
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
23745
23686
|
exports2.SKILLS_DIR = void 0;
|
|
@@ -23799,9 +23740,9 @@ var require_skills_override = __commonJS({
|
|
|
23799
23740
|
}
|
|
23800
23741
|
});
|
|
23801
23742
|
|
|
23802
|
-
// dist/opencode-integration/skills-installer.js
|
|
23743
|
+
// dist/opencode-integration/skills/skills-installer.js
|
|
23803
23744
|
var require_skills_installer = __commonJS({
|
|
23804
|
-
"dist/opencode-integration/skills-installer.js"(exports2) {
|
|
23745
|
+
"dist/opencode-integration/skills/skills-installer.js"(exports2) {
|
|
23805
23746
|
"use strict";
|
|
23806
23747
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
23807
23748
|
exports2.applySkillsOverride = applySkillsOverride;
|
|
@@ -23939,31 +23880,79 @@ var require_tools_writer = __commonJS({
|
|
|
23939
23880
|
}
|
|
23940
23881
|
});
|
|
23941
23882
|
|
|
23942
|
-
// dist/opencode-integration/
|
|
23883
|
+
// dist/opencode-integration/plugins/generated-files-guard.js
|
|
23884
|
+
var require_generated_files_guard = __commonJS({
|
|
23885
|
+
"dist/opencode-integration/plugins/generated-files-guard.js"(exports2) {
|
|
23886
|
+
"use strict";
|
|
23887
|
+
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
23888
|
+
exports2.GUARD_PLUGIN_FILENAME = exports2.GUARD_MESSAGE = void 0;
|
|
23889
|
+
exports2.isEditorComponentManifest = isEditorComponentManifest;
|
|
23890
|
+
exports2.extractWritePaths = extractWritePaths;
|
|
23891
|
+
exports2.buildGeneratedFilesGuardSource = buildGeneratedFilesGuardSource;
|
|
23892
|
+
exports2.writeGeneratedFilesGuardPlugin = writeGeneratedFilesGuardPlugin;
|
|
23893
|
+
var write_plugin_1 = require_write_plugin();
|
|
23894
|
+
var ERC_MANIFEST_RE = /(^|\/)src\/extensions\/site\/components\/.+\.generated\.tsx?$/;
|
|
23895
|
+
exports2.GUARD_MESSAGE = "BLOCKED: this editor-react-component manifest is auto-generated. Do not create or edit it by hand \u2014 edit the *.tsx / *.module.css / *.props.ts source and regenerate with `npx wix build && npx wix generate manifest`, or override values in the component's *.extension.ts. Do not re-attempt the blocked path; the whole call was rejected, so resubmit any other paths it carried \u2014 they were not written. Only *.generated.ts under src/extensions/site/components/ is blocked.";
|
|
23896
|
+
function isEditorComponentManifest(path) {
|
|
23897
|
+
return ERC_MANIFEST_RE.test(path);
|
|
23898
|
+
}
|
|
23899
|
+
function extractWritePaths(tool, args) {
|
|
23900
|
+
if (tool === "write" || tool === "edit") {
|
|
23901
|
+
return typeof args.filePath === "string" ? [args.filePath] : [];
|
|
23902
|
+
}
|
|
23903
|
+
const list = tool === "batch-write" ? args.files : tool === "multi-edit" ? args.edits : void 0;
|
|
23904
|
+
if (!list)
|
|
23905
|
+
return [];
|
|
23906
|
+
return list.map((item) => item.path).filter((p) => typeof p === "string");
|
|
23907
|
+
}
|
|
23908
|
+
exports2.GUARD_PLUGIN_FILENAME = "generated-files-guard.ts";
|
|
23909
|
+
function buildGeneratedFilesGuardSource() {
|
|
23910
|
+
return `// Generated by @wix/ditto-codegen (generated-files-guard). Do not edit.
|
|
23911
|
+
const ERC_MANIFEST_RE = /${ERC_MANIFEST_RE.source}/;
|
|
23912
|
+
const GUARD_MESSAGE = ${JSON.stringify(exports2.GUARD_MESSAGE)};
|
|
23913
|
+
|
|
23914
|
+
function extractWritePaths(tool, args) {
|
|
23915
|
+
if (tool === "${"write"}" || tool === "${"edit"}") {
|
|
23916
|
+
return typeof args.filePath === "string" ? [args.filePath] : [];
|
|
23917
|
+
}
|
|
23918
|
+
const list =
|
|
23919
|
+
tool === "${"batch-write"}" ? args.files : tool === "${"multi-edit"}" ? args.edits : undefined;
|
|
23920
|
+
if (!list) return [];
|
|
23921
|
+
return list
|
|
23922
|
+
.map((item) => item.path)
|
|
23923
|
+
.filter((p) => typeof p === "string");
|
|
23924
|
+
}
|
|
23925
|
+
|
|
23926
|
+
export const GeneratedFilesGuard = async () => ({
|
|
23927
|
+
"tool.execute.before": async (input, output) => {
|
|
23928
|
+
const blocked = extractWritePaths(input.tool, output.args).filter((p) =>
|
|
23929
|
+
ERC_MANIFEST_RE.test(p),
|
|
23930
|
+
);
|
|
23931
|
+
if (blocked.length > 0) {
|
|
23932
|
+
throw new Error(GUARD_MESSAGE + " (blocked: " + blocked.join(", ") + ")");
|
|
23933
|
+
}
|
|
23934
|
+
},
|
|
23935
|
+
});
|
|
23936
|
+
`;
|
|
23937
|
+
}
|
|
23938
|
+
async function writeGeneratedFilesGuardPlugin() {
|
|
23939
|
+
await (0, write_plugin_1.writeGeneratedPlugin)(exports2.GUARD_PLUGIN_FILENAME, buildGeneratedFilesGuardSource());
|
|
23940
|
+
}
|
|
23941
|
+
}
|
|
23942
|
+
});
|
|
23943
|
+
|
|
23944
|
+
// dist/opencode-integration/plugins/tool-policies.js
|
|
23943
23945
|
var require_tool_policies3 = __commonJS({
|
|
23944
|
-
"dist/opencode-integration/tool-policies.js"(exports2) {
|
|
23946
|
+
"dist/opencode-integration/plugins/tool-policies.js"(exports2) {
|
|
23945
23947
|
"use strict";
|
|
23946
23948
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
23947
|
-
exports2.
|
|
23948
|
-
exports2.policyMatchesPath = policyMatchesPath;
|
|
23949
|
-
exports2.skillRootOf = skillRootOf;
|
|
23949
|
+
exports2.TOOL_POLICIES_FILENAME = exports2.GENERATE_CMD_RE = void 0;
|
|
23950
23950
|
exports2.buildToolPoliciesPluginSource = buildToolPoliciesPluginSource;
|
|
23951
23951
|
exports2.writeToolPoliciesPlugin = writeToolPoliciesPlugin;
|
|
23952
|
-
exports2.validateToolPolicies = validateToolPolicies;
|
|
23953
|
-
var promises_1 = require("fs/promises");
|
|
23954
|
-
var path_12 = require("path");
|
|
23955
23952
|
var ditto_codegen_types_12 = require_dist4();
|
|
23956
|
-
var
|
|
23957
|
-
var generated_plugins_1 = require_generated_plugins();
|
|
23958
|
-
var skills_override_12 = require_skills_override();
|
|
23953
|
+
var write_plugin_1 = require_write_plugin();
|
|
23959
23954
|
exports2.GENERATE_CMD_RE = /\bwix\s+(schema\s+)?generate\b/;
|
|
23960
|
-
|
|
23961
|
-
return policy.pathFragments.some((fragment) => path.includes(fragment));
|
|
23962
|
-
}
|
|
23963
|
-
function skillRootOf(fragment) {
|
|
23964
|
-
return fragment.split("/")[0];
|
|
23965
|
-
}
|
|
23966
|
-
exports2.TOOL_POLICIES_PLUGIN_FILENAME = "tool-policies.ts";
|
|
23955
|
+
exports2.TOOL_POLICIES_FILENAME = "tool-policies.ts";
|
|
23967
23956
|
function buildToolPoliciesPluginSource(policies) {
|
|
23968
23957
|
const emitKind = (type, toRuntime, extraFilter = () => true) => JSON.stringify(policies.filter((policy) => policy.type === type).filter(extraFilter).map(toRuntime));
|
|
23969
23958
|
const emitReads = (mode) => emitKind("read", ({ pathFragments, message }) => ({ pathFragments, message }), (policy) => policy.mode === mode);
|
|
@@ -24086,7 +24075,26 @@ export const ToolPolicies = async () => ({
|
|
|
24086
24075
|
`;
|
|
24087
24076
|
}
|
|
24088
24077
|
async function writeToolPoliciesPlugin(policies) {
|
|
24089
|
-
await (0,
|
|
24078
|
+
await (0, write_plugin_1.writeGeneratedPlugin)(exports2.TOOL_POLICIES_FILENAME, buildToolPoliciesPluginSource(policies));
|
|
24079
|
+
}
|
|
24080
|
+
}
|
|
24081
|
+
});
|
|
24082
|
+
|
|
24083
|
+
// dist/opencode-integration/plugins/tool-policies-drift.js
|
|
24084
|
+
var require_tool_policies_drift = __commonJS({
|
|
24085
|
+
"dist/opencode-integration/plugins/tool-policies-drift.js"(exports2) {
|
|
24086
|
+
"use strict";
|
|
24087
|
+
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
24088
|
+
exports2.validateToolPolicies = validateToolPolicies;
|
|
24089
|
+
var promises_1 = require("fs/promises");
|
|
24090
|
+
var path_12 = require("path");
|
|
24091
|
+
var logger_12 = require_logger();
|
|
24092
|
+
var skills_override_12 = require_skills_override();
|
|
24093
|
+
function policyMatchesPath(policy, path) {
|
|
24094
|
+
return policy.pathFragments.some((fragment) => path.includes(fragment));
|
|
24095
|
+
}
|
|
24096
|
+
function skillRootOf(fragment) {
|
|
24097
|
+
return fragment.split("/")[0];
|
|
24090
24098
|
}
|
|
24091
24099
|
async function walkFiles(dir, depth = 6) {
|
|
24092
24100
|
if (depth === 0)
|
|
@@ -24188,70 +24196,33 @@ export const ToolPolicies = async () => ({
|
|
|
24188
24196
|
}
|
|
24189
24197
|
});
|
|
24190
24198
|
|
|
24191
|
-
// dist/opencode-integration/
|
|
24192
|
-
var
|
|
24193
|
-
"dist/opencode-integration/
|
|
24199
|
+
// dist/opencode-integration/plugins/index.js
|
|
24200
|
+
var require_plugins3 = __commonJS({
|
|
24201
|
+
"dist/opencode-integration/plugins/index.js"(exports2) {
|
|
24194
24202
|
"use strict";
|
|
24195
24203
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
24196
|
-
exports2.
|
|
24197
|
-
exports2.
|
|
24198
|
-
|
|
24199
|
-
|
|
24200
|
-
|
|
24201
|
-
var
|
|
24202
|
-
|
|
24203
|
-
|
|
24204
|
-
|
|
24205
|
-
|
|
24206
|
-
|
|
24207
|
-
|
|
24208
|
-
|
|
24209
|
-
|
|
24210
|
-
|
|
24211
|
-
const list = tool === "batch-write" ? args.files : tool === "multi-edit" ? args.edits : void 0;
|
|
24212
|
-
if (!list)
|
|
24213
|
-
return [];
|
|
24214
|
-
return list.map((item) => item.path).filter((p) => typeof p === "string");
|
|
24215
|
-
}
|
|
24216
|
-
var GUARD_PLUGIN_FILENAME = "generated-files-guard.ts";
|
|
24217
|
-
function buildGeneratedFilesGuardSource() {
|
|
24218
|
-
return `// Generated by @wix/ditto-codegen (generated-files-guard). Do not edit.
|
|
24219
|
-
const ERC_MANIFEST_RE = /${ERC_MANIFEST_RE.source}/;
|
|
24220
|
-
const GUARD_MESSAGE = ${JSON.stringify(exports2.GUARD_MESSAGE)};
|
|
24221
|
-
|
|
24222
|
-
function extractWritePaths(tool, args) {
|
|
24223
|
-
if (tool === "${"write"}" || tool === "${"edit"}") {
|
|
24224
|
-
return typeof args.filePath === "string" ? [args.filePath] : [];
|
|
24225
|
-
}
|
|
24226
|
-
const list =
|
|
24227
|
-
tool === "${"batch-write"}" ? args.files : tool === "${"multi-edit"}" ? args.edits : undefined;
|
|
24228
|
-
if (!list) return [];
|
|
24229
|
-
return list
|
|
24230
|
-
.map((item) => item.path)
|
|
24231
|
-
.filter((p) => typeof p === "string");
|
|
24232
|
-
}
|
|
24233
|
-
|
|
24234
|
-
export const GeneratedFilesGuard = async () => ({
|
|
24235
|
-
"tool.execute.before": async (input, output) => {
|
|
24236
|
-
const blocked = extractWritePaths(input.tool, output.args).filter((p) =>
|
|
24237
|
-
ERC_MANIFEST_RE.test(p),
|
|
24238
|
-
);
|
|
24239
|
-
if (blocked.length > 0) {
|
|
24240
|
-
throw new Error(GUARD_MESSAGE + " (blocked: " + blocked.join(", ") + ")");
|
|
24241
|
-
}
|
|
24242
|
-
},
|
|
24243
|
-
});
|
|
24244
|
-
`;
|
|
24245
|
-
}
|
|
24246
|
-
async function writeGeneratedFilesGuardPlugin() {
|
|
24247
|
-
await (0, generated_plugins_1.writeGeneratedPlugin)(GUARD_PLUGIN_FILENAME, buildGeneratedFilesGuardSource());
|
|
24204
|
+
exports2.validateToolPolicies = void 0;
|
|
24205
|
+
exports2.writeGeneratedPlugins = writeGeneratedPlugins;
|
|
24206
|
+
var generated_files_guard_1 = require_generated_files_guard();
|
|
24207
|
+
var subagent_tool_logger_1 = require_subagent_tool_logger();
|
|
24208
|
+
var tool_policies_1 = require_tool_policies3();
|
|
24209
|
+
var tool_policies_drift_1 = require_tool_policies_drift();
|
|
24210
|
+
Object.defineProperty(exports2, "validateToolPolicies", { enumerable: true, get: function() {
|
|
24211
|
+
return tool_policies_drift_1.validateToolPolicies;
|
|
24212
|
+
} });
|
|
24213
|
+
async function writeGeneratedPlugins(toolPolicies) {
|
|
24214
|
+
await Promise.all([
|
|
24215
|
+
(0, generated_files_guard_1.writeGeneratedFilesGuardPlugin)(),
|
|
24216
|
+
(0, subagent_tool_logger_1.writeSubagentToolLoggerPlugin)(),
|
|
24217
|
+
(0, tool_policies_1.writeToolPoliciesPlugin)(toolPolicies)
|
|
24218
|
+
]);
|
|
24248
24219
|
}
|
|
24249
24220
|
}
|
|
24250
24221
|
});
|
|
24251
24222
|
|
|
24252
|
-
// dist/plugin-host.js
|
|
24223
|
+
// dist/plugin-system/plugin-host.js
|
|
24253
24224
|
var require_plugin_host = __commonJS({
|
|
24254
|
-
"dist/plugin-host.js"(exports2) {
|
|
24225
|
+
"dist/plugin-system/plugin-host.js"(exports2) {
|
|
24255
24226
|
"use strict";
|
|
24256
24227
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
24257
24228
|
exports2.buildPluginHost = void 0;
|
|
@@ -24271,9 +24242,9 @@ var require_plugin_host = __commonJS({
|
|
|
24271
24242
|
}
|
|
24272
24243
|
});
|
|
24273
24244
|
|
|
24274
|
-
// dist/plugin-artifacts.js
|
|
24245
|
+
// dist/plugin-system/plugin-artifacts.js
|
|
24275
24246
|
var require_plugin_artifacts = __commonJS({
|
|
24276
|
-
"dist/plugin-artifacts.js"(exports2) {
|
|
24247
|
+
"dist/plugin-system/plugin-artifacts.js"(exports2) {
|
|
24277
24248
|
"use strict";
|
|
24278
24249
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
24279
24250
|
exports2.collectPluginArtifacts = collectPluginArtifacts;
|
|
@@ -24297,9 +24268,9 @@ var require_plugin_artifacts = __commonJS({
|
|
|
24297
24268
|
}
|
|
24298
24269
|
});
|
|
24299
24270
|
|
|
24300
|
-
// dist/fetch-scheduler.js
|
|
24271
|
+
// dist/jobs/fetch-scheduler.js
|
|
24301
24272
|
var require_fetch_scheduler = __commonJS({
|
|
24302
|
-
"dist/fetch-scheduler.js"(exports2) {
|
|
24273
|
+
"dist/jobs/fetch-scheduler.js"(exports2) {
|
|
24303
24274
|
"use strict";
|
|
24304
24275
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
24305
24276
|
exports2.FetchScheduler = exports2.MAX_AWAITED_JOB_IDS = exports2.MAX_MISSING_JOB_RECHECKS = exports2.ERROR_BACKOFF_MS = exports2.POST_JOB_INTERVAL_MS = exports2.MIN_FETCH_INTERVAL_MS = void 0;
|
|
@@ -24449,21 +24420,21 @@ var require_fetch_scheduler = __commonJS({
|
|
|
24449
24420
|
}
|
|
24450
24421
|
});
|
|
24451
24422
|
|
|
24452
|
-
// dist/nudge-listener-server.js
|
|
24423
|
+
// dist/jobs/nudge-listener-server.js
|
|
24453
24424
|
var require_nudge_listener_server = __commonJS({
|
|
24454
|
-
"dist/nudge-listener-server.js"(exports2) {
|
|
24425
|
+
"dist/jobs/nudge-listener-server.js"(exports2) {
|
|
24455
24426
|
"use strict";
|
|
24456
24427
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
24457
|
-
exports2.NudgeListenerServer = exports2.BIND_RETRY_DELAY_MS = exports2.
|
|
24428
|
+
exports2.NudgeListenerServer = exports2.BIND_RETRY_DELAY_MS = exports2.MAX_LOGGED_PATH_LENGTH = exports2.JOB_FETCH_PATH = exports2.JOB_FETCH_PORT = void 0;
|
|
24458
24429
|
var node_http_1 = require("node:http");
|
|
24459
24430
|
var logger_12 = require_logger();
|
|
24460
24431
|
var utils_12 = require_utils9();
|
|
24461
24432
|
var fetch_scheduler_1 = require_fetch_scheduler();
|
|
24462
24433
|
exports2.JOB_FETCH_PORT = 52402;
|
|
24463
24434
|
exports2.JOB_FETCH_PATH = "/_wix/codegen/fetch-jobs";
|
|
24464
|
-
|
|
24435
|
+
var JOB_ID_PATTERN = /^[A-Za-z0-9_-]{1,64}$/;
|
|
24465
24436
|
exports2.MAX_LOGGED_PATH_LENGTH = 128;
|
|
24466
|
-
|
|
24437
|
+
var BIND_RETRIES = 5;
|
|
24467
24438
|
exports2.BIND_RETRY_DELAY_MS = 300;
|
|
24468
24439
|
var NudgeListenerServer = class {
|
|
24469
24440
|
constructor(deps, port = exports2.JOB_FETCH_PORT) {
|
|
@@ -24515,7 +24486,7 @@ var require_nudge_listener_server = __commonJS({
|
|
|
24515
24486
|
try {
|
|
24516
24487
|
return await this.listenOnce();
|
|
24517
24488
|
} catch (error) {
|
|
24518
|
-
const inUse = error?.code === "EADDRINUSE" && attempt <
|
|
24489
|
+
const inUse = error?.code === "EADDRINUSE" && attempt < BIND_RETRIES;
|
|
24519
24490
|
if (!inUse)
|
|
24520
24491
|
throw error;
|
|
24521
24492
|
await (0, utils_12.delay)(exports2.BIND_RETRY_DELAY_MS);
|
|
@@ -24563,7 +24534,7 @@ var require_nudge_listener_server = __commonJS({
|
|
|
24563
24534
|
return;
|
|
24564
24535
|
}
|
|
24565
24536
|
const nudgedId = url.searchParams.get("jobId");
|
|
24566
|
-
const usable = nudgedId === null ||
|
|
24537
|
+
const usable = nudgedId === null || JOB_ID_PATTERN.test(nudgedId);
|
|
24567
24538
|
if (!usable) {
|
|
24568
24539
|
logger_12.logger.warn("[JobFetch] Nudge carried an unusable jobId", {
|
|
24569
24540
|
length: nudgedId.length
|
|
@@ -24587,9 +24558,9 @@ var require_nudge_listener_server = __commonJS({
|
|
|
24587
24558
|
}
|
|
24588
24559
|
});
|
|
24589
24560
|
|
|
24590
|
-
// dist/job-fetching.js
|
|
24561
|
+
// dist/jobs/job-fetching.js
|
|
24591
24562
|
var require_job_fetching = __commonJS({
|
|
24592
|
-
"dist/job-fetching.js"(exports2) {
|
|
24563
|
+
"dist/jobs/job-fetching.js"(exports2) {
|
|
24593
24564
|
"use strict";
|
|
24594
24565
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
24595
24566
|
exports2.JobDeliveryMode = void 0;
|
|
@@ -24679,10 +24650,8 @@ var logger_1 = require_logger();
|
|
|
24679
24650
|
var skills_installer_1 = require_skills_installer();
|
|
24680
24651
|
var rules_writer_1 = require_rules_writer();
|
|
24681
24652
|
var tools_writer_1 = require_tools_writer();
|
|
24682
|
-
var
|
|
24653
|
+
var plugins_1 = require_plugins3();
|
|
24683
24654
|
var skills_override_1 = require_skills_override();
|
|
24684
|
-
var generated_files_guard_1 = require_generated_files_guard();
|
|
24685
|
-
var subagent_tool_logger_1 = require_subagent_tool_logger();
|
|
24686
24655
|
var plugin_artifacts_1 = require_plugin_artifacts();
|
|
24687
24656
|
var config_1 = require_config();
|
|
24688
24657
|
var environments_1 = require_environments();
|
|
@@ -24766,11 +24735,9 @@ async function initOpenCode() {
|
|
|
24766
24735
|
]),
|
|
24767
24736
|
(0, skills_installer_1.applySkillsOverride)((0, codegen_flow_helpers_1.getOutputPath)(), logger_1.logger),
|
|
24768
24737
|
(0, tools_writer_1.writeToolFiles)(pluginArtifacts.tools),
|
|
24769
|
-
(0,
|
|
24770
|
-
(0, subagent_tool_logger_1.writeSubagentToolLoggerPlugin)(),
|
|
24771
|
-
(0, tool_policies_1.writeToolPoliciesPlugin)(toolPolicies)
|
|
24738
|
+
(0, plugins_1.writeGeneratedPlugins)(toolPolicies)
|
|
24772
24739
|
]);
|
|
24773
|
-
void (0,
|
|
24740
|
+
void (0, plugins_1.validateToolPolicies)(toolPolicies, [
|
|
24774
24741
|
skills_override_1.SKILLS_DIR,
|
|
24775
24742
|
(0, path_1.join)((0, codegen_flow_helpers_1.getOutputPath)(), ".agents", "skills")
|
|
24776
24743
|
]);
|