@wix/ditto-codegen-public 1.0.456 → 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 +615 -607
- 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;
|
|
@@ -11566,7 +11566,6 @@ var require_codegen_prompt = __commonJS({
|
|
|
11566
11566
|
"use strict";
|
|
11567
11567
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
11568
11568
|
exports2.buildInitPrompt = buildInitPrompt;
|
|
11569
|
-
exports2.buildIterationBasePrompt = buildIterationBasePrompt;
|
|
11570
11569
|
exports2.buildIterationPrompt = buildIterationPrompt;
|
|
11571
11570
|
exports2.buildRecoveryPrompt = buildRecoveryPrompt;
|
|
11572
11571
|
var prompt_utils_1 = require_prompt_utils();
|
|
@@ -11705,131 +11704,19 @@ var require_prompts = __commonJS({
|
|
|
11705
11704
|
}
|
|
11706
11705
|
});
|
|
11707
11706
|
|
|
11708
|
-
// dist/opencode-integration/
|
|
11707
|
+
// dist/opencode-integration/configuration/constants.js
|
|
11709
11708
|
var require_constants5 = __commonJS({
|
|
11710
|
-
"dist/opencode-integration/
|
|
11709
|
+
"dist/opencode-integration/configuration/constants.js"(exports2) {
|
|
11711
11710
|
"use strict";
|
|
11712
11711
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
11713
|
-
exports2.
|
|
11714
|
-
exports2.resolveFileOperation = resolveFileOperation;
|
|
11715
|
-
exports2.isSpiExtension = isSpiExtension;
|
|
11716
|
-
exports2.normalizeFilePath = normalizeFilePath;
|
|
11717
|
-
exports2.isExtensionsFile = isExtensionsFile;
|
|
11718
|
-
exports2.detectExtension = detectExtension;
|
|
11719
|
-
exports2.toTitleCase = toTitleCase;
|
|
11720
|
-
exports2.extractExtensionName = extractExtensionName;
|
|
11721
|
-
exports2.matchQuotedExtensionConfigProperty = matchQuotedExtensionConfigProperty;
|
|
11722
|
-
exports2.extractExtensionDisplayTitle = extractExtensionDisplayTitle;
|
|
11723
|
-
exports2.injectCreatedBy = injectCreatedBy;
|
|
11724
|
-
var ditto_codegen_types_12 = require_dist4();
|
|
11725
|
-
exports2.CONTAINER_ROOT_PREFIX = /^\/user-code\//;
|
|
11712
|
+
exports2.WIX_MCP_SERVER_NAME = void 0;
|
|
11726
11713
|
exports2.WIX_MCP_SERVER_NAME = "wix-mcp";
|
|
11727
|
-
var EXTENSION_FILE_PATTERN = /\/extensions\.ts$|\.extension\.ts$/;
|
|
11728
|
-
function resolveFileOperation(tool, metadata) {
|
|
11729
|
-
if (tool === "write") {
|
|
11730
|
-
return metadata?.exists ? ditto_codegen_types_12.ExtensionGenerationOperation.EDIT : ditto_codegen_types_12.ExtensionGenerationOperation.INSERT;
|
|
11731
|
-
}
|
|
11732
|
-
if (tool === "edit") {
|
|
11733
|
-
return ditto_codegen_types_12.ExtensionGenerationOperation.EDIT;
|
|
11734
|
-
}
|
|
11735
|
-
return null;
|
|
11736
|
-
}
|
|
11737
|
-
var SPI_EXTENSION_TYPES = [
|
|
11738
|
-
"ecomShippingRates",
|
|
11739
|
-
"ecomAdditionalFees",
|
|
11740
|
-
"ecomValidations",
|
|
11741
|
-
"ecomDiscountTriggers",
|
|
11742
|
-
"ecomGiftCards",
|
|
11743
|
-
"ecomPaymentSettings",
|
|
11744
|
-
"bookingsStaffSortingProvider"
|
|
11745
|
-
];
|
|
11746
|
-
exports2.BUILDER_EXTENSION_TYPES = [
|
|
11747
|
-
"dashboardPage",
|
|
11748
|
-
"dashboardModal",
|
|
11749
|
-
"dashboardPlugin",
|
|
11750
|
-
"dashboardMenuPlugin",
|
|
11751
|
-
"embeddedScript",
|
|
11752
|
-
"event",
|
|
11753
|
-
"customElement",
|
|
11754
|
-
"siteComponent",
|
|
11755
|
-
"editorReactComponent",
|
|
11756
|
-
"sitePlugin",
|
|
11757
|
-
...SPI_EXTENSION_TYPES,
|
|
11758
|
-
"contextProvider",
|
|
11759
|
-
"functionLibrary",
|
|
11760
|
-
"dataCollections"
|
|
11761
|
-
];
|
|
11762
|
-
var SPI_EXTENSION_TYPE_SET = new Set(SPI_EXTENSION_TYPES);
|
|
11763
|
-
function isSpiExtension(extensionType) {
|
|
11764
|
-
return SPI_EXTENSION_TYPE_SET.has(extensionType);
|
|
11765
|
-
}
|
|
11766
|
-
function normalizeFilePath(filePath) {
|
|
11767
|
-
return filePath.replace(exports2.CONTAINER_ROOT_PREFIX, "");
|
|
11768
|
-
}
|
|
11769
|
-
function isExtensionsFile(filePath) {
|
|
11770
|
-
return EXTENSION_FILE_PATTERN.test(filePath);
|
|
11771
|
-
}
|
|
11772
|
-
function detectExtension(content) {
|
|
11773
|
-
for (const extensionType of exports2.BUILDER_EXTENSION_TYPES) {
|
|
11774
|
-
if (content.includes(`extensions.${extensionType}(`) || content.includes(`experimentalExtensions.${extensionType}(`)) {
|
|
11775
|
-
return extensionType;
|
|
11776
|
-
}
|
|
11777
|
-
}
|
|
11778
|
-
return null;
|
|
11779
|
-
}
|
|
11780
|
-
function toTitleCase(str) {
|
|
11781
|
-
return str.split("-").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
|
|
11782
|
-
}
|
|
11783
|
-
function extractExtensionName(filePath) {
|
|
11784
|
-
const parts = normalizeFilePath(filePath).split("/");
|
|
11785
|
-
const folderName = parts[parts.length - 2] || "";
|
|
11786
|
-
return toTitleCase(folderName);
|
|
11787
|
-
}
|
|
11788
|
-
function matchQuotedExtensionConfigProperty(content, propName) {
|
|
11789
|
-
const objectPropertyQuotedStringValuePattern = `\\b${propName}\\s*:\\s*(?:"([^"\\\\]*)"|'([^'\\\\]*)')`;
|
|
11790
|
-
const objectPropertyQuotedStringValueRegex = new RegExp(
|
|
11791
|
-
objectPropertyQuotedStringValuePattern,
|
|
11792
|
-
// `m` = multiline: `^` / `$` match line starts/ends, not only the whole string.
|
|
11793
|
-
"m"
|
|
11794
|
-
);
|
|
11795
|
-
const quotedStringValueMatch = content.match(objectPropertyQuotedStringValueRegex);
|
|
11796
|
-
if (!quotedStringValueMatch)
|
|
11797
|
-
return null;
|
|
11798
|
-
return quotedStringValueMatch[1] ?? quotedStringValueMatch[2] ?? null;
|
|
11799
|
-
}
|
|
11800
|
-
function extractExtensionDisplayTitle(content, filePath) {
|
|
11801
|
-
const title = matchQuotedExtensionConfigProperty(content, "title");
|
|
11802
|
-
if (title)
|
|
11803
|
-
return title;
|
|
11804
|
-
const name = matchQuotedExtensionConfigProperty(content, "name");
|
|
11805
|
-
if (name)
|
|
11806
|
-
return name;
|
|
11807
|
-
const displayName = matchQuotedExtensionConfigProperty(content, "displayName");
|
|
11808
|
-
if (displayName)
|
|
11809
|
-
return displayName;
|
|
11810
|
-
const idSuffix = matchQuotedExtensionConfigProperty(content, "idSuffix");
|
|
11811
|
-
if (idSuffix)
|
|
11812
|
-
return idSuffix;
|
|
11813
|
-
return extractExtensionName(filePath);
|
|
11814
|
-
}
|
|
11815
|
-
function injectCreatedBy(content) {
|
|
11816
|
-
if (content.includes("createdBy"))
|
|
11817
|
-
return content;
|
|
11818
|
-
const isGeneric = content.includes("genericExtension(");
|
|
11819
|
-
const createdByValue = isGeneric ? ' createdBy: "CODE_GEN",' : ' createdBy: {\n author: "CODE_GEN",\n },';
|
|
11820
|
-
return content.replace(/(\S)(\n)(}\))(;?\s*)$/, (_match, preChar, newline, closeBrace, tail) => {
|
|
11821
|
-
const needsComma = preChar !== "," && preChar !== "{";
|
|
11822
|
-
const separator = needsComma ? `${preChar},` : preChar;
|
|
11823
|
-
return `${separator}${newline}${createdByValue}
|
|
11824
|
-
${closeBrace}${tail}`;
|
|
11825
|
-
});
|
|
11826
|
-
}
|
|
11827
11714
|
}
|
|
11828
11715
|
});
|
|
11829
11716
|
|
|
11830
|
-
// dist/opencode-integration/model-knobs.js
|
|
11717
|
+
// dist/opencode-integration/configuration/model-knobs.js
|
|
11831
11718
|
var require_model_knobs = __commonJS({
|
|
11832
|
-
"dist/opencode-integration/model-knobs.js"(exports2) {
|
|
11719
|
+
"dist/opencode-integration/configuration/model-knobs.js"(exports2) {
|
|
11833
11720
|
"use strict";
|
|
11834
11721
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
11835
11722
|
exports2.DEFAULT_SMALL_MODEL = exports2.DEFAULT_MODEL = void 0;
|
|
@@ -11931,9 +11818,9 @@ var require_types4 = __commonJS({
|
|
|
11931
11818
|
}
|
|
11932
11819
|
});
|
|
11933
11820
|
|
|
11934
|
-
// dist/opencode-integration/
|
|
11935
|
-
var
|
|
11936
|
-
"dist/opencode-integration/
|
|
11821
|
+
// dist/opencode-integration/configuration/subagents.js
|
|
11822
|
+
var require_subagents = __commonJS({
|
|
11823
|
+
"dist/opencode-integration/configuration/subagents.js"(exports2) {
|
|
11937
11824
|
"use strict";
|
|
11938
11825
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
11939
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;
|
|
@@ -12225,9 +12112,9 @@ skills already cover. Read-only.`;
|
|
|
12225
12112
|
}
|
|
12226
12113
|
});
|
|
12227
12114
|
|
|
12228
|
-
// dist/opencode-integration/rules-writer.js
|
|
12115
|
+
// dist/opencode-integration/configuration/rules-writer.js
|
|
12229
12116
|
var require_rules_writer = __commonJS({
|
|
12230
|
-
"dist/opencode-integration/rules-writer.js"(exports2) {
|
|
12117
|
+
"dist/opencode-integration/configuration/rules-writer.js"(exports2) {
|
|
12231
12118
|
"use strict";
|
|
12232
12119
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
12233
12120
|
exports2.getRulePath = getRulePath;
|
|
@@ -15297,14 +15184,13 @@ WORKFLOW:
|
|
|
15297
15184
|
}
|
|
15298
15185
|
});
|
|
15299
15186
|
|
|
15300
|
-
// dist/job-decision-manager.js
|
|
15187
|
+
// dist/jobs/job-decision-manager.js
|
|
15301
15188
|
var require_job_decision_manager = __commonJS({
|
|
15302
|
-
"dist/job-decision-manager.js"(exports2) {
|
|
15189
|
+
"dist/jobs/job-decision-manager.js"(exports2) {
|
|
15303
15190
|
"use strict";
|
|
15304
15191
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
15305
15192
|
exports2.pauseForUserDecision = pauseForUserDecision;
|
|
15306
15193
|
exports2.askJobChoice = askJobChoice;
|
|
15307
|
-
exports2.askJobConfirmation = askJobConfirmation;
|
|
15308
15194
|
var types_1 = require_types_impl();
|
|
15309
15195
|
var codeGenerationService_12 = require_codeGenerationService();
|
|
15310
15196
|
var types_2 = require_types_impl();
|
|
@@ -15369,18 +15255,6 @@ var require_job_decision_manager = __commonJS({
|
|
|
15369
15255
|
}
|
|
15370
15256
|
return response.selectedOptionId;
|
|
15371
15257
|
}
|
|
15372
|
-
async function askJobConfirmation(jobId, question, context) {
|
|
15373
|
-
const response = await pauseForUserDecision(jobId, {
|
|
15374
|
-
question,
|
|
15375
|
-
questionType: types_1.UserDecisionQuestionType.UI_COMPONENT_TYPE,
|
|
15376
|
-
options: [
|
|
15377
|
-
{ id: "yes", label: "Yes" },
|
|
15378
|
-
{ id: "no", label: "No" }
|
|
15379
|
-
],
|
|
15380
|
-
context
|
|
15381
|
-
});
|
|
15382
|
-
return response.selectedOptionId === "yes";
|
|
15383
|
-
}
|
|
15384
15258
|
}
|
|
15385
15259
|
});
|
|
15386
15260
|
|
|
@@ -15455,9 +15329,9 @@ var require_environments = __commonJS({
|
|
|
15455
15329
|
}
|
|
15456
15330
|
});
|
|
15457
15331
|
|
|
15458
|
-
// dist/opencode-integration/config.js
|
|
15332
|
+
// dist/opencode-integration/configuration/config.js
|
|
15459
15333
|
var require_config = __commonJS({
|
|
15460
|
-
"dist/opencode-integration/config.js"(exports2) {
|
|
15334
|
+
"dist/opencode-integration/configuration/config.js"(exports2) {
|
|
15461
15335
|
"use strict";
|
|
15462
15336
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
15463
15337
|
exports2.DEFAULT_TIMEOUT_MS = void 0;
|
|
@@ -15471,7 +15345,7 @@ var require_config = __commonJS({
|
|
|
15471
15345
|
var ditto_codegen_types_12 = require_dist4();
|
|
15472
15346
|
var constants_1 = require_constants5();
|
|
15473
15347
|
var model_knobs_1 = require_model_knobs();
|
|
15474
|
-
var
|
|
15348
|
+
var subagents_1 = require_subagents();
|
|
15475
15349
|
var rules_writer_12 = require_rules_writer();
|
|
15476
15350
|
var environments_12 = require_environments();
|
|
15477
15351
|
var CodeGenService_12 = require_CodeGenService();
|
|
@@ -15657,8 +15531,8 @@ var require_config = __commonJS({
|
|
|
15657
15531
|
external_directory: READABLE_EXTERNAL_DIRS
|
|
15658
15532
|
};
|
|
15659
15533
|
function buildConfig(projectId, instructionPaths, permission, { isCodeWritingFlow = false, withAgents = false } = {}) {
|
|
15660
|
-
const main2 = (0,
|
|
15661
|
-
const subagent = (0,
|
|
15534
|
+
const main2 = (0, subagents_1.getMainAgentModel)();
|
|
15535
|
+
const subagent = (0, subagents_1.getSubagentModel)();
|
|
15662
15536
|
return {
|
|
15663
15537
|
model: (0, model_knobs_1.getModel)(),
|
|
15664
15538
|
small_model: (0, model_knobs_1.getSmallModel)(),
|
|
@@ -15675,8 +15549,8 @@ var require_config = __commonJS({
|
|
|
15675
15549
|
// not: its primary agent re-opens `task`, which would let the write-capable
|
|
15676
15550
|
// validator subagent run in a flow meant to stay read-only.
|
|
15677
15551
|
...withAgents ? {
|
|
15678
|
-
agent: (0,
|
|
15679
|
-
default_agent:
|
|
15552
|
+
agent: (0, subagents_1.getAgentConfig)(main2, subagent),
|
|
15553
|
+
default_agent: subagents_1.PRIMARY_AGENT_NAME
|
|
15680
15554
|
} : {}
|
|
15681
15555
|
};
|
|
15682
15556
|
}
|
|
@@ -15731,44 +15605,43 @@ var require_config = __commonJS({
|
|
|
15731
15605
|
}
|
|
15732
15606
|
});
|
|
15733
15607
|
|
|
15734
|
-
// dist/opencode-integration/
|
|
15735
|
-
var
|
|
15736
|
-
"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) {
|
|
15737
15611
|
"use strict";
|
|
15738
15612
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
15739
|
-
exports2.OPENCODE_PLUGIN_DIR = void 0;
|
|
15740
15613
|
exports2.writeGeneratedPlugin = writeGeneratedPlugin;
|
|
15741
15614
|
var promises_1 = require("fs/promises");
|
|
15742
15615
|
var os_1 = require("os");
|
|
15743
15616
|
var path_12 = require("path");
|
|
15744
15617
|
var logger_12 = require_logger();
|
|
15745
|
-
|
|
15618
|
+
var OPENCODE_PLUGIN_DIR = (0, path_12.join)((0, os_1.homedir)(), ".config", "opencode", "plugin");
|
|
15746
15619
|
async function writeGeneratedPlugin(filename, source) {
|
|
15747
|
-
await (0, promises_1.mkdir)(
|
|
15748
|
-
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");
|
|
15749
15622
|
logger_12.logger.info("[OpenCode] Wrote generated plugin", { plugin: filename });
|
|
15750
15623
|
}
|
|
15751
15624
|
}
|
|
15752
15625
|
});
|
|
15753
15626
|
|
|
15754
|
-
// dist/opencode-integration/subagent-tool-logger.js
|
|
15627
|
+
// dist/opencode-integration/plugins/subagent-tool-logger.js
|
|
15755
15628
|
var require_subagent_tool_logger = __commonJS({
|
|
15756
|
-
"dist/opencode-integration/subagent-tool-logger.js"(exports2) {
|
|
15629
|
+
"dist/opencode-integration/plugins/subagent-tool-logger.js"(exports2) {
|
|
15757
15630
|
"use strict";
|
|
15758
15631
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
15759
|
-
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;
|
|
15760
15633
|
exports2.buildSubagentToolLoggerPluginSource = buildSubagentToolLoggerPluginSource;
|
|
15761
15634
|
exports2.writeSubagentToolLoggerPlugin = writeSubagentToolLoggerPlugin;
|
|
15762
|
-
var
|
|
15763
|
-
var
|
|
15635
|
+
var write_plugin_1 = require_write_plugin();
|
|
15636
|
+
var subagents_1 = require_subagents();
|
|
15764
15637
|
exports2.SUBAGENT_TOOL_EVENT_TYPE = "subagent_tool_use";
|
|
15765
15638
|
exports2.SUBAGENT_STARTED_EVENT_TYPE = "subagent_started";
|
|
15766
|
-
|
|
15639
|
+
exports2.SUBAGENT_TOOL_LOGGER_FILENAME = "subagent-tool-logger.ts";
|
|
15767
15640
|
function buildSubagentToolLoggerPluginSource() {
|
|
15768
15641
|
return `// Generated by @wix/ditto-codegen (subagent-tool-logger) \u2014 do not edit.
|
|
15769
15642
|
const EVENT_TYPE = ${JSON.stringify(exports2.SUBAGENT_TOOL_EVENT_TYPE)};
|
|
15770
15643
|
const STARTED_EVENT_TYPE = ${JSON.stringify(exports2.SUBAGENT_STARTED_EVENT_TYPE)};
|
|
15771
|
-
const SUBAGENT_AGENTS = new Set(${JSON.stringify(
|
|
15644
|
+
const SUBAGENT_AGENTS = new Set(${JSON.stringify(subagents_1.SUBAGENT_AGENT_NAMES)});
|
|
15772
15645
|
|
|
15773
15646
|
export const SubagentToolLogger = async () => {
|
|
15774
15647
|
// sessionID -> agent name, learned from session.* / message.updated (both
|
|
@@ -15877,14 +15750,14 @@ export const SubagentToolLogger = async () => {
|
|
|
15877
15750
|
`;
|
|
15878
15751
|
}
|
|
15879
15752
|
async function writeSubagentToolLoggerPlugin() {
|
|
15880
|
-
await (0,
|
|
15753
|
+
await (0, write_plugin_1.writeGeneratedPlugin)(exports2.SUBAGENT_TOOL_LOGGER_FILENAME, buildSubagentToolLoggerPluginSource());
|
|
15881
15754
|
}
|
|
15882
15755
|
}
|
|
15883
15756
|
});
|
|
15884
15757
|
|
|
15885
|
-
// dist/opencode-integration/parser.js
|
|
15758
|
+
// dist/opencode-integration/execution/parser.js
|
|
15886
15759
|
var require_parser = __commonJS({
|
|
15887
|
-
"dist/opencode-integration/parser.js"(exports2) {
|
|
15760
|
+
"dist/opencode-integration/execution/parser.js"(exports2) {
|
|
15888
15761
|
"use strict";
|
|
15889
15762
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
15890
15763
|
exports2.parseRequiredPermissions = parseRequiredPermissions;
|
|
@@ -15898,8 +15771,8 @@ var require_parser = __commonJS({
|
|
|
15898
15771
|
exports2.parseValidatorTaskOutputs = parseValidatorTaskOutputs;
|
|
15899
15772
|
exports2.summarizeOpenCodeLine = summarizeOpenCodeLine;
|
|
15900
15773
|
var types_1 = require_types4();
|
|
15901
|
-
var
|
|
15902
|
-
var
|
|
15774
|
+
var subagents_1 = require_subagents();
|
|
15775
|
+
var subagent_tool_logger_1 = require_subagent_tool_logger();
|
|
15903
15776
|
function parseRequiredPermissions(output) {
|
|
15904
15777
|
let permissions = [];
|
|
15905
15778
|
const lines = output.split("\n");
|
|
@@ -16042,7 +15915,7 @@ var require_parser = __commonJS({
|
|
|
16042
15915
|
continue;
|
|
16043
15916
|
}
|
|
16044
15917
|
const { title, output, input } = event.part.state;
|
|
16045
|
-
const isValidator = input?.subagent_type ===
|
|
15918
|
+
const isValidator = input?.subagent_type === subagents_1.VALIDATOR_SUBAGENT_NAME || title?.includes(subagents_1.VALIDATOR_SUBAGENT_NAME);
|
|
16046
15919
|
if (isValidator && output) {
|
|
16047
15920
|
outputs.push(output.trim());
|
|
16048
15921
|
}
|
|
@@ -16050,7 +15923,7 @@ var require_parser = __commonJS({
|
|
|
16050
15923
|
return outputs;
|
|
16051
15924
|
}
|
|
16052
15925
|
function summarizeOpenCodeLine(line) {
|
|
16053
|
-
if (line.type !== "tool_use" && line.type !==
|
|
15926
|
+
if (line.type !== "tool_use" && line.type !== subagent_tool_logger_1.SUBAGENT_TOOL_EVENT_TYPE) {
|
|
16054
15927
|
return line;
|
|
16055
15928
|
}
|
|
16056
15929
|
const { part } = line;
|
|
@@ -16072,9 +15945,9 @@ var require_parser = __commonJS({
|
|
|
16072
15945
|
}
|
|
16073
15946
|
});
|
|
16074
15947
|
|
|
16075
|
-
// dist/
|
|
15948
|
+
// dist/git/internal-paths.js
|
|
16076
15949
|
var require_internal_paths = __commonJS({
|
|
16077
|
-
"dist/
|
|
15950
|
+
"dist/git/internal-paths.js"(exports2) {
|
|
16078
15951
|
"use strict";
|
|
16079
15952
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16080
15953
|
exports2.isInternalPath = isInternalPath;
|
|
@@ -16085,9 +15958,9 @@ var require_internal_paths = __commonJS({
|
|
|
16085
15958
|
}
|
|
16086
15959
|
});
|
|
16087
15960
|
|
|
16088
|
-
// dist/
|
|
16089
|
-
var
|
|
16090
|
-
"dist/
|
|
15961
|
+
// dist/git/file-changes.js
|
|
15962
|
+
var require_file_changes = __commonJS({
|
|
15963
|
+
"dist/git/file-changes.js"(exports2) {
|
|
16091
15964
|
"use strict";
|
|
16092
15965
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16093
15966
|
exports2.captureGitBaseline = captureGitBaseline;
|
|
@@ -16166,9 +16039,9 @@ var require_git_file_changes = __commonJS({
|
|
|
16166
16039
|
}
|
|
16167
16040
|
});
|
|
16168
16041
|
|
|
16169
|
-
// dist/opencode-integration/cost-tracker.js
|
|
16042
|
+
// dist/opencode-integration/execution/cost-tracker.js
|
|
16170
16043
|
var require_cost_tracker = __commonJS({
|
|
16171
|
-
"dist/opencode-integration/cost-tracker.js"(exports2) {
|
|
16044
|
+
"dist/opencode-integration/execution/cost-tracker.js"(exports2) {
|
|
16172
16045
|
"use strict";
|
|
16173
16046
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16174
16047
|
exports2.fetchOpenCodeStats = fetchOpenCodeStats;
|
|
@@ -16287,6 +16160,113 @@ var require_progress_handler = __commonJS({
|
|
|
16287
16160
|
}
|
|
16288
16161
|
});
|
|
16289
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
|
+
|
|
16290
16270
|
// dist/opencode-integration/task-tracker/derived-progress.js
|
|
16291
16271
|
var require_derived_progress = __commonJS({
|
|
16292
16272
|
"dist/opencode-integration/task-tracker/derived-progress.js"(exports2) {
|
|
@@ -16295,12 +16275,12 @@ var require_derived_progress = __commonJS({
|
|
|
16295
16275
|
exports2.DerivedProgressReporter = void 0;
|
|
16296
16276
|
exports2.deriveProgressSteps = deriveProgressSteps;
|
|
16297
16277
|
var ditto_codegen_types_12 = require_dist4();
|
|
16298
|
-
var
|
|
16299
|
-
var
|
|
16278
|
+
var detect_1 = require_detect();
|
|
16279
|
+
var subagents_1 = require_subagents();
|
|
16300
16280
|
var SUBAGENT_STEPS = {
|
|
16301
|
-
[
|
|
16302
|
-
[
|
|
16303
|
-
[
|
|
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"
|
|
16304
16284
|
};
|
|
16305
16285
|
var REGISTRY_FILE_PATTERN = /(^|\/)extensions\.ts$/;
|
|
16306
16286
|
var EXTENSION_DEFINITION_PATTERN = /\.extension\.ts$/;
|
|
@@ -16308,7 +16288,7 @@ var require_derived_progress = __commonJS({
|
|
|
16308
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(" ");
|
|
16309
16289
|
}
|
|
16310
16290
|
function humanizeExtensionType(type) {
|
|
16311
|
-
return (0,
|
|
16291
|
+
return (0, detect_1.isSpiExtension)(type) ? "Service Plugin" : toTitleCaseWords(type);
|
|
16312
16292
|
}
|
|
16313
16293
|
function extensionStep(verb, type) {
|
|
16314
16294
|
return `${verb} ${humanizeExtensionType(type)}`;
|
|
@@ -16357,7 +16337,7 @@ var require_derived_progress = __commonJS({
|
|
|
16357
16337
|
if (REGISTRY_FILE_PATTERN.test(file.path)) {
|
|
16358
16338
|
steps.push("Registering extensions");
|
|
16359
16339
|
} else if (EXTENSION_DEFINITION_PATTERN.test(file.path) && file.content) {
|
|
16360
|
-
const type = (0,
|
|
16340
|
+
const type = (0, detect_1.detectExtension)(file.content);
|
|
16361
16341
|
if (type)
|
|
16362
16342
|
steps.push(extensionStep("Editing", type));
|
|
16363
16343
|
}
|
|
@@ -16464,9 +16444,9 @@ var require_utils9 = __commonJS({
|
|
|
16464
16444
|
}
|
|
16465
16445
|
});
|
|
16466
16446
|
|
|
16467
|
-
// dist/plugins-runtime.js
|
|
16447
|
+
// dist/plugin-system/plugins-runtime.js
|
|
16468
16448
|
var require_plugins_runtime = __commonJS({
|
|
16469
|
-
"dist/plugins-runtime.js"(exports2) {
|
|
16449
|
+
"dist/plugin-system/plugins-runtime.js"(exports2) {
|
|
16470
16450
|
"use strict";
|
|
16471
16451
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16472
16452
|
exports2.getActivePlugins = getActivePlugins;
|
|
@@ -16616,15 +16596,15 @@ var require_task_tracker2 = __commonJS({
|
|
|
16616
16596
|
}
|
|
16617
16597
|
});
|
|
16618
16598
|
|
|
16619
|
-
// dist/opencode-integration/tool-usage.js
|
|
16599
|
+
// dist/opencode-integration/execution/tool-usage.js
|
|
16620
16600
|
var require_tool_usage = __commonJS({
|
|
16621
|
-
"dist/opencode-integration/tool-usage.js"(exports2) {
|
|
16601
|
+
"dist/opencode-integration/execution/tool-usage.js"(exports2) {
|
|
16622
16602
|
"use strict";
|
|
16623
16603
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16624
16604
|
exports2.ToolUsageCollector = void 0;
|
|
16625
16605
|
exports2.commandSignature = commandSignature;
|
|
16626
16606
|
exports2.emptyToolUsage = emptyToolUsage;
|
|
16627
|
-
var
|
|
16607
|
+
var subagent_tool_logger_1 = require_subagent_tool_logger();
|
|
16628
16608
|
var MAX_REPORTED_TOOLS = 50;
|
|
16629
16609
|
var MAX_DETAIL_CHARS = 200;
|
|
16630
16610
|
var MAX_DETAIL_LABELS = 2;
|
|
@@ -16661,7 +16641,7 @@ var require_tool_usage = __commonJS({
|
|
|
16661
16641
|
return duration > 0 ? duration : 0;
|
|
16662
16642
|
}
|
|
16663
16643
|
function isCompletedToolCall(event) {
|
|
16664
|
-
if (event.type !== "tool_use" && event.type !==
|
|
16644
|
+
if (event.type !== "tool_use" && event.type !== subagent_tool_logger_1.SUBAGENT_TOOL_EVENT_TYPE) {
|
|
16665
16645
|
return false;
|
|
16666
16646
|
}
|
|
16667
16647
|
if (!event.part?.tool)
|
|
@@ -16717,18 +16697,18 @@ var require_tool_usage = __commonJS({
|
|
|
16717
16697
|
}
|
|
16718
16698
|
});
|
|
16719
16699
|
|
|
16720
|
-
// dist/opencode-integration/process-manager.js
|
|
16700
|
+
// dist/opencode-integration/execution/process-manager.js
|
|
16721
16701
|
var require_process_manager = __commonJS({
|
|
16722
|
-
"dist/opencode-integration/process-manager.js"(exports2) {
|
|
16702
|
+
"dist/opencode-integration/execution/process-manager.js"(exports2) {
|
|
16723
16703
|
"use strict";
|
|
16724
16704
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16725
|
-
exports2.MAX_STARTS_WITHOUT_FINISH = exports2.
|
|
16705
|
+
exports2.MAX_STARTS_WITHOUT_FINISH = exports2.IDLE_CHECK_INTERVAL_MS = exports2.IDLE_TIMEOUT_MS = void 0;
|
|
16726
16706
|
exports2.clearTimers = clearTimers;
|
|
16727
16707
|
exports2.killProcess = killProcess;
|
|
16728
16708
|
var logger_12 = require_logger();
|
|
16729
16709
|
exports2.IDLE_TIMEOUT_MS = 6e5;
|
|
16730
16710
|
exports2.IDLE_CHECK_INTERVAL_MS = 15e3;
|
|
16731
|
-
|
|
16711
|
+
var KILL_GRACE_PERIOD_MS = 5e3;
|
|
16732
16712
|
exports2.MAX_STARTS_WITHOUT_FINISH = 3;
|
|
16733
16713
|
function clearTimers(timers) {
|
|
16734
16714
|
if (timers.timeoutId) {
|
|
@@ -16764,14 +16744,14 @@ var require_process_manager = __commonJS({
|
|
|
16764
16744
|
if (child && !resolved) {
|
|
16765
16745
|
killSignal("SIGKILL");
|
|
16766
16746
|
}
|
|
16767
|
-
},
|
|
16747
|
+
}, KILL_GRACE_PERIOD_MS);
|
|
16768
16748
|
}
|
|
16769
16749
|
}
|
|
16770
16750
|
});
|
|
16771
16751
|
|
|
16772
|
-
// dist/opencode-integration/result-builder.js
|
|
16752
|
+
// dist/opencode-integration/execution/result-builder.js
|
|
16773
16753
|
var require_result_builder = __commonJS({
|
|
16774
|
-
"dist/opencode-integration/result-builder.js"(exports2) {
|
|
16754
|
+
"dist/opencode-integration/execution/result-builder.js"(exports2) {
|
|
16775
16755
|
"use strict";
|
|
16776
16756
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16777
16757
|
exports2.createTimeoutResult = createTimeoutResult;
|
|
@@ -16839,9 +16819,9 @@ var require_result_builder = __commonJS({
|
|
|
16839
16819
|
}
|
|
16840
16820
|
});
|
|
16841
16821
|
|
|
16842
|
-
// dist/opencode-integration/process-handlers.js
|
|
16822
|
+
// dist/opencode-integration/execution/process-handlers.js
|
|
16843
16823
|
var require_process_handlers = __commonJS({
|
|
16844
|
-
"dist/opencode-integration/process-handlers.js"(exports2) {
|
|
16824
|
+
"dist/opencode-integration/execution/process-handlers.js"(exports2) {
|
|
16845
16825
|
"use strict";
|
|
16846
16826
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16847
16827
|
exports2.setupTotalTimeout = setupTotalTimeout;
|
|
@@ -16971,12 +16951,11 @@ var require_process_handlers = __commonJS({
|
|
|
16971
16951
|
}
|
|
16972
16952
|
});
|
|
16973
16953
|
|
|
16974
|
-
// dist/opencode-integration/executor.js
|
|
16954
|
+
// dist/opencode-integration/execution/executor.js
|
|
16975
16955
|
var require_executor = __commonJS({
|
|
16976
|
-
"dist/opencode-integration/executor.js"(exports2) {
|
|
16956
|
+
"dist/opencode-integration/execution/executor.js"(exports2) {
|
|
16977
16957
|
"use strict";
|
|
16978
16958
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16979
|
-
exports2.notifyValidatorOutputsToSlack = notifyValidatorOutputsToSlack;
|
|
16980
16959
|
exports2.classifyAttempt = classifyAttempt;
|
|
16981
16960
|
exports2.executeOpenCode = executeOpenCode;
|
|
16982
16961
|
exports2.resolveFinalRunCost = resolveFinalRunCost;
|
|
@@ -16986,9 +16965,8 @@ var require_executor = __commonJS({
|
|
|
16986
16965
|
var model_knobs_1 = require_model_knobs();
|
|
16987
16966
|
var job_context_storage_12 = require_job_context_storage();
|
|
16988
16967
|
var parser_1 = require_parser();
|
|
16989
|
-
var codeGenerationService_12 = require_codeGenerationService();
|
|
16990
16968
|
var prompts_1 = require_prompts();
|
|
16991
|
-
var
|
|
16969
|
+
var file_changes_1 = require_file_changes();
|
|
16992
16970
|
var cost_tracker_1 = require_cost_tracker();
|
|
16993
16971
|
var task_tracker_1 = require_task_tracker2();
|
|
16994
16972
|
var tool_usage_1 = require_tool_usage();
|
|
@@ -16997,37 +16975,6 @@ var require_executor = __commonJS({
|
|
|
16997
16975
|
var logger_12 = require_logger();
|
|
16998
16976
|
var MAX_RETRIES = 5;
|
|
16999
16977
|
var MAX_STALL_ATTEMPTS = 2;
|
|
17000
|
-
async function notifyValidatorOutputsToSlack(stdout, costUsd) {
|
|
17001
|
-
try {
|
|
17002
|
-
const store = job_context_storage_12.jobContextStorage.getStore();
|
|
17003
|
-
const outputs = (0, parser_1.parseValidatorTaskOutputs)(stdout);
|
|
17004
|
-
if (outputs.length === 0)
|
|
17005
|
-
return;
|
|
17006
|
-
const durationMs = store?.flowStartTime ? Date.now() - store.flowStartTime : void 0;
|
|
17007
|
-
const context = {
|
|
17008
|
-
jobId: store?.jobId,
|
|
17009
|
-
metasiteId: store?.metasiteId,
|
|
17010
|
-
costUsd: costUsd > 0 ? costUsd : void 0,
|
|
17011
|
-
durationMs
|
|
17012
|
-
};
|
|
17013
|
-
for (const output of outputs) {
|
|
17014
|
-
if (!(0, parser_1.shouldReportValidatorOutput)(output)) {
|
|
17015
|
-
continue;
|
|
17016
|
-
}
|
|
17017
|
-
try {
|
|
17018
|
-
await codeGenerationService_12.codeGenerationService.handleValidationErrors(output, context);
|
|
17019
|
-
} catch (err) {
|
|
17020
|
-
logger_12.logger.warn("[OpenCode] Failed to report validator output to Slack", {
|
|
17021
|
-
error: err instanceof Error ? err.message : String(err)
|
|
17022
|
-
});
|
|
17023
|
-
}
|
|
17024
|
-
}
|
|
17025
|
-
} catch (err) {
|
|
17026
|
-
logger_12.logger.warn("[OpenCode] Unexpected error in notifyValidatorOutputsToSlack", {
|
|
17027
|
-
error: err instanceof Error ? err.message : String(err)
|
|
17028
|
-
});
|
|
17029
|
-
}
|
|
17030
|
-
}
|
|
17031
16978
|
function failureReason(result) {
|
|
17032
16979
|
if (result.stalled)
|
|
17033
16980
|
return "stall";
|
|
@@ -17064,7 +17011,7 @@ var require_executor = __commonJS({
|
|
|
17064
17011
|
if (attempt > 1) {
|
|
17065
17012
|
const failureDetail = lastResult?.error?.message || lastResult?.stderr || "Process timed out";
|
|
17066
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) });
|
|
17067
|
-
const filesChanged = await (0,
|
|
17014
|
+
const filesChanged = await (0, file_changes_1.collectGitFileChanges)(options.outputPath, options.gitBaseline);
|
|
17068
17015
|
currentPrompt = (0, prompts_1.buildRecoveryPrompt)(options.prompt, filesChanged, failureDetail, lastFailureReason);
|
|
17069
17016
|
continueSession = false;
|
|
17070
17017
|
}
|
|
@@ -17218,9 +17165,9 @@ var require_executor = __commonJS({
|
|
|
17218
17165
|
}
|
|
17219
17166
|
});
|
|
17220
17167
|
|
|
17221
|
-
// dist/opencode-integration/opencode-runner.js
|
|
17168
|
+
// dist/opencode-integration/execution/opencode-runner.js
|
|
17222
17169
|
var require_opencode_runner = __commonJS({
|
|
17223
|
-
"dist/opencode-integration/opencode-runner.js"(exports2) {
|
|
17170
|
+
"dist/opencode-integration/execution/opencode-runner.js"(exports2) {
|
|
17224
17171
|
"use strict";
|
|
17225
17172
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
17226
17173
|
exports2.runOpenCodeInit = runOpenCodeInit;
|
|
@@ -17289,20 +17236,106 @@ var require_opencode_runner = __commonJS({
|
|
|
17289
17236
|
}
|
|
17290
17237
|
});
|
|
17291
17238
|
|
|
17292
|
-
// dist/opencode-integration/
|
|
17293
|
-
var
|
|
17294
|
-
"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) {
|
|
17295
17329
|
"use strict";
|
|
17296
17330
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
17297
|
-
exports2.buildJobExtension = exports2.resolveFilePath = exports2.isFileInExtensionFolder =
|
|
17331
|
+
exports2.buildJobExtension = exports2.resolveFilePath = exports2.isFileInExtensionFolder = void 0;
|
|
17298
17332
|
exports2.collectDataCollectionEntries = collectDataCollectionEntries;
|
|
17299
17333
|
var path_12 = require("path");
|
|
17300
17334
|
var promises_1 = require("fs/promises");
|
|
17301
|
-
var
|
|
17335
|
+
var detect_1 = require_detect();
|
|
17302
17336
|
var DATA_COLLECTION_MARKER = /import\s+(?:type\s+)?\{[^}]*\bDataCollection\b[^}]*\}\s+from\s+['"](?:@wix\/astro\/builders|@wix\/custom-extensions)['"]/;
|
|
17303
17337
|
var getExtensionDirectory = (extensionDefinitionPath) => `${path_12.posix.dirname(extensionDefinitionPath)}/`;
|
|
17304
|
-
|
|
17305
|
-
var isFileInExtensionFolder = (filePath, extensionDefinitionPath) => filePath === extensionDefinitionPath || filePath.startsWith((0, exports2.getExtensionDirectory)(extensionDefinitionPath));
|
|
17338
|
+
var isFileInExtensionFolder = (filePath, extensionDefinitionPath) => filePath === extensionDefinitionPath || filePath.startsWith(getExtensionDirectory(extensionDefinitionPath));
|
|
17306
17339
|
exports2.isFileInExtensionFolder = isFileInExtensionFolder;
|
|
17307
17340
|
var resolveFilePath = (outputPath, filePath) => (0, path_12.isAbsolute)(filePath) ? filePath : (0, path_12.join)(outputPath, filePath);
|
|
17308
17341
|
exports2.resolveFilePath = resolveFilePath;
|
|
@@ -17324,51 +17357,51 @@ var require_extension_metadata = __commonJS({
|
|
|
17324
17357
|
return entries;
|
|
17325
17358
|
}
|
|
17326
17359
|
var buildJobExtension = (definitionPath, extensionType, contentForTitle, titlePath, files) => {
|
|
17327
|
-
const routePath = (0,
|
|
17328
|
-
const id = (0,
|
|
17360
|
+
const routePath = (0, detect_1.matchQuotedExtensionConfigProperty)(contentForTitle, "routePath");
|
|
17361
|
+
const id = (0, detect_1.matchQuotedExtensionConfigProperty)(contentForTitle, "id");
|
|
17329
17362
|
return {
|
|
17330
17363
|
path: definitionPath,
|
|
17331
17364
|
extensionType,
|
|
17332
|
-
title: (0,
|
|
17365
|
+
title: (0, detect_1.extractExtensionDisplayTitle)(contentForTitle, titlePath),
|
|
17333
17366
|
...routePath !== null && { routePath },
|
|
17334
17367
|
...id !== null && { id },
|
|
17335
17368
|
files: [...files],
|
|
17336
|
-
isSpi: (0,
|
|
17369
|
+
isSpi: (0, detect_1.isSpiExtension)(extensionType)
|
|
17337
17370
|
};
|
|
17338
17371
|
};
|
|
17339
17372
|
exports2.buildJobExtension = buildJobExtension;
|
|
17340
17373
|
}
|
|
17341
17374
|
});
|
|
17342
17375
|
|
|
17343
|
-
// dist/
|
|
17344
|
-
var
|
|
17345
|
-
"dist/
|
|
17376
|
+
// dist/extension-reporting/collect-created.js
|
|
17377
|
+
var require_collect_created = __commonJS({
|
|
17378
|
+
"dist/extension-reporting/collect-created.js"(exports2) {
|
|
17346
17379
|
"use strict";
|
|
17347
17380
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
17348
17381
|
exports2.collectInsertedExtensionsMetadata = collectInsertedExtensionsMetadata;
|
|
17349
17382
|
var promises_1 = require("fs/promises");
|
|
17350
17383
|
var ditto_codegen_types_12 = require_dist4();
|
|
17351
|
-
var
|
|
17352
|
-
var
|
|
17384
|
+
var detect_1 = require_detect();
|
|
17385
|
+
var metadata_1 = require_metadata();
|
|
17353
17386
|
async function collectInsertedExtensionsMetadata(outputPath, files) {
|
|
17354
17387
|
const results = [];
|
|
17355
17388
|
for (const fileChange of files) {
|
|
17356
17389
|
if (fileChange.operation !== ditto_codegen_types_12.ExtensionGenerationOperation.INSERT)
|
|
17357
17390
|
continue;
|
|
17358
|
-
if (!(0,
|
|
17391
|
+
if (!(0, detect_1.isExtensionsFile)(fileChange.path))
|
|
17359
17392
|
continue;
|
|
17360
17393
|
try {
|
|
17361
|
-
const content = await (0, promises_1.readFile)((0,
|
|
17362
|
-
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);
|
|
17363
17396
|
if (!extensionType)
|
|
17364
17397
|
continue;
|
|
17365
|
-
const folderFiles = files.filter((file) => (0,
|
|
17398
|
+
const folderFiles = files.filter((file) => (0, metadata_1.isFileInExtensionFolder)(file.path, fileChange.path));
|
|
17366
17399
|
if (extensionType === "dataCollections") {
|
|
17367
|
-
const dataCollectionEntries = await (0,
|
|
17400
|
+
const dataCollectionEntries = await (0, metadata_1.collectDataCollectionEntries)(outputPath, fileChange.path, folderFiles);
|
|
17368
17401
|
results.push(...dataCollectionEntries);
|
|
17369
17402
|
continue;
|
|
17370
17403
|
}
|
|
17371
|
-
results.push((0,
|
|
17404
|
+
results.push((0, metadata_1.buildJobExtension)(fileChange.path, extensionType, content, fileChange.path, folderFiles));
|
|
17372
17405
|
} catch {
|
|
17373
17406
|
continue;
|
|
17374
17407
|
}
|
|
@@ -17378,9 +17411,9 @@ var require_collect_extensions_created = __commonJS({
|
|
|
17378
17411
|
}
|
|
17379
17412
|
});
|
|
17380
17413
|
|
|
17381
|
-
// dist/
|
|
17382
|
-
var
|
|
17383
|
-
"dist/
|
|
17414
|
+
// dist/extension-reporting/collect-updated.js
|
|
17415
|
+
var require_collect_updated = __commonJS({
|
|
17416
|
+
"dist/extension-reporting/collect-updated.js"(exports2) {
|
|
17384
17417
|
"use strict";
|
|
17385
17418
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
17386
17419
|
exports2.collectUpdatedExtensionsMetadata = collectUpdatedExtensionsMetadata;
|
|
@@ -17388,12 +17421,12 @@ var require_collect_extensions_updated = __commonJS({
|
|
|
17388
17421
|
var path_12 = require("path");
|
|
17389
17422
|
var util_1 = require("util");
|
|
17390
17423
|
var promises_1 = require("fs/promises");
|
|
17391
|
-
var
|
|
17424
|
+
var detect_1 = require_detect();
|
|
17392
17425
|
var logger_12 = require_logger();
|
|
17393
|
-
var
|
|
17426
|
+
var metadata_1 = require_metadata();
|
|
17394
17427
|
var execFileAsync = (0, util_1.promisify)(child_process_1.execFile);
|
|
17395
17428
|
var ownsItsFolder = (candidate) => {
|
|
17396
|
-
if (!(0,
|
|
17429
|
+
if (!(0, detect_1.isExtensionsFile)(candidate))
|
|
17397
17430
|
return false;
|
|
17398
17431
|
const directory = path_12.posix.dirname(candidate);
|
|
17399
17432
|
return directory !== "." && path_12.posix.dirname(directory) !== ".";
|
|
@@ -17413,7 +17446,7 @@ var require_collect_extensions_updated = __commonJS({
|
|
|
17413
17446
|
}
|
|
17414
17447
|
}
|
|
17415
17448
|
var resolveOwningDefinitionPath = (filePath, candidates) => {
|
|
17416
|
-
if ((0,
|
|
17449
|
+
if ((0, detect_1.isExtensionsFile)(filePath))
|
|
17417
17450
|
return filePath;
|
|
17418
17451
|
let longest;
|
|
17419
17452
|
let longestFolderLength = -1;
|
|
@@ -17429,146 +17462,51 @@ var require_collect_extensions_updated = __commonJS({
|
|
|
17429
17462
|
async function collectUpdatedExtensionsMetadata(outputPath, files, insertedDefinitionPaths) {
|
|
17430
17463
|
const candidates = await listCandidateDefinitionPaths(outputPath);
|
|
17431
17464
|
const definitionPaths = /* @__PURE__ */ new Set();
|
|
17432
|
-
for (const fileChange of files) {
|
|
17433
|
-
const definitionPath = resolveOwningDefinitionPath(fileChange.path, candidates);
|
|
17434
|
-
if (definitionPath && !insertedDefinitionPaths.has(definitionPath)) {
|
|
17435
|
-
definitionPaths.add(definitionPath);
|
|
17436
|
-
}
|
|
17437
|
-
}
|
|
17438
|
-
const results = [];
|
|
17439
|
-
for (const definitionPath of definitionPaths) {
|
|
17440
|
-
try {
|
|
17441
|
-
const content = await (0, promises_1.readFile)((0,
|
|
17442
|
-
const extensionType = (0,
|
|
17443
|
-
if (!extensionType)
|
|
17444
|
-
continue;
|
|
17445
|
-
const folderFiles = files.filter((file) => (0,
|
|
17446
|
-
if (extensionType === "dataCollections") {
|
|
17447
|
-
const dataCollectionEntries = await (0,
|
|
17448
|
-
results.push(...dataCollectionEntries);
|
|
17449
|
-
continue;
|
|
17450
|
-
}
|
|
17451
|
-
results.push((0,
|
|
17452
|
-
} catch {
|
|
17453
|
-
continue;
|
|
17454
|
-
}
|
|
17455
|
-
}
|
|
17456
|
-
return results;
|
|
17457
|
-
}
|
|
17458
|
-
}
|
|
17459
|
-
});
|
|
17460
|
-
|
|
17461
|
-
// dist/opencode-integration/extensions-job-payload.js
|
|
17462
|
-
var require_extensions_job_payload = __commonJS({
|
|
17463
|
-
"dist/opencode-integration/extensions-job-payload.js"(exports2) {
|
|
17464
|
-
"use strict";
|
|
17465
|
-
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
17466
|
-
exports2.buildExtensionsJobPayload = buildExtensionsJobPayload;
|
|
17467
|
-
var ditto_codegen_types_12 = require_dist4();
|
|
17468
|
-
var constants_1 = require_constants5();
|
|
17469
|
-
var collect_extensions_created_1 = require_collect_extensions_created();
|
|
17470
|
-
var collect_extensions_updated_1 = require_collect_extensions_updated();
|
|
17471
|
-
async function buildExtensionsJobPayload(outputPath, files) {
|
|
17472
|
-
const created = await (0, collect_extensions_created_1.collectInsertedExtensionsMetadata)(outputPath, files);
|
|
17473
|
-
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));
|
|
17474
|
-
const updated = await (0, collect_extensions_updated_1.collectUpdatedExtensionsMetadata)(outputPath, files, insertedDefinitionPaths);
|
|
17475
|
-
return { created, updated };
|
|
17476
|
-
}
|
|
17477
|
-
}
|
|
17478
|
-
});
|
|
17479
|
-
|
|
17480
|
-
// dist/opencode-integration/index.js
|
|
17481
|
-
var require_opencode_integration = __commonJS({
|
|
17482
|
-
"dist/opencode-integration/index.js"(exports2) {
|
|
17483
|
-
"use strict";
|
|
17484
|
-
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
17485
|
-
exports2.buildExtensionsJobPayload = exports2.collectInsertedExtensionsMetadata = exports2.OpenCodeTaskTracker = exports2.runOpenCodeGitConflicts = exports2.runOpenCodeAsk = exports2.runOpenCodeIteration = exports2.runOpenCodeInit = void 0;
|
|
17486
|
-
var opencode_runner_1 = require_opencode_runner();
|
|
17487
|
-
Object.defineProperty(exports2, "runOpenCodeInit", { enumerable: true, get: function() {
|
|
17488
|
-
return opencode_runner_1.runOpenCodeInit;
|
|
17489
|
-
} });
|
|
17490
|
-
Object.defineProperty(exports2, "runOpenCodeIteration", { enumerable: true, get: function() {
|
|
17491
|
-
return opencode_runner_1.runOpenCodeIteration;
|
|
17492
|
-
} });
|
|
17493
|
-
Object.defineProperty(exports2, "runOpenCodeAsk", { enumerable: true, get: function() {
|
|
17494
|
-
return opencode_runner_1.runOpenCodeAsk;
|
|
17495
|
-
} });
|
|
17496
|
-
Object.defineProperty(exports2, "runOpenCodeGitConflicts", { enumerable: true, get: function() {
|
|
17497
|
-
return opencode_runner_1.runOpenCodeGitConflicts;
|
|
17498
|
-
} });
|
|
17499
|
-
var task_tracker_1 = require_task_tracker2();
|
|
17500
|
-
Object.defineProperty(exports2, "OpenCodeTaskTracker", { enumerable: true, get: function() {
|
|
17501
|
-
return task_tracker_1.OpenCodeTaskTracker;
|
|
17502
|
-
} });
|
|
17503
|
-
var collect_extensions_created_1 = require_collect_extensions_created();
|
|
17504
|
-
Object.defineProperty(exports2, "collectInsertedExtensionsMetadata", { enumerable: true, get: function() {
|
|
17505
|
-
return collect_extensions_created_1.collectInsertedExtensionsMetadata;
|
|
17506
|
-
} });
|
|
17507
|
-
var extensions_job_payload_1 = require_extensions_job_payload();
|
|
17508
|
-
Object.defineProperty(exports2, "buildExtensionsJobPayload", { enumerable: true, get: function() {
|
|
17509
|
-
return extensions_job_payload_1.buildExtensionsJobPayload;
|
|
17510
|
-
} });
|
|
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
|
+
}
|
|
17511
17491
|
}
|
|
17512
17492
|
});
|
|
17513
17493
|
|
|
17514
|
-
// dist/
|
|
17515
|
-
var
|
|
17516
|
-
"dist/
|
|
17494
|
+
// dist/extension-reporting/job-payload.js
|
|
17495
|
+
var require_job_payload2 = __commonJS({
|
|
17496
|
+
"dist/extension-reporting/job-payload.js"(exports2) {
|
|
17517
17497
|
"use strict";
|
|
17518
17498
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
17519
|
-
exports2.
|
|
17499
|
+
exports2.buildExtensionsJobPayload = buildExtensionsJobPayload;
|
|
17520
17500
|
var ditto_codegen_types_12 = require_dist4();
|
|
17521
|
-
var
|
|
17522
|
-
var
|
|
17523
|
-
var
|
|
17524
|
-
|
|
17525
|
-
|
|
17526
|
-
|
|
17527
|
-
|
|
17528
|
-
|
|
17529
|
-
|
|
17530
|
-
this.emitEvent("start:init", {
|
|
17531
|
-
appName: blueprint.appName ?? "",
|
|
17532
|
-
summary: blueprint.summary ?? "",
|
|
17533
|
-
outputPath,
|
|
17534
|
-
extensionsCount: blueprint.extensions?.length || 0
|
|
17535
|
-
});
|
|
17536
|
-
const start = Date.now();
|
|
17537
|
-
this.emitEvent("opencode:start", { outputPath });
|
|
17538
|
-
const result = await (0, opencode_integration_1.runOpenCodeInit)({
|
|
17539
|
-
blueprint,
|
|
17540
|
-
outputPath,
|
|
17541
|
-
projectId,
|
|
17542
|
-
chatHistory,
|
|
17543
|
-
gitBaseline,
|
|
17544
|
-
onStdout: (data) => {
|
|
17545
|
-
this.emitEvent("opencode:output", { data });
|
|
17546
|
-
},
|
|
17547
|
-
onStderr: (data) => {
|
|
17548
|
-
logger_12.logger.error("[OpenCode] stderr", { output: data });
|
|
17549
|
-
}
|
|
17550
|
-
});
|
|
17551
|
-
this.lastUsage = result.usage;
|
|
17552
|
-
this.lastStdout = result.stdout;
|
|
17553
|
-
const durationMs = Date.now() - start;
|
|
17554
|
-
if (!result.success) {
|
|
17555
|
-
this.emitEvent("opencode:error", {
|
|
17556
|
-
error: result.error?.message,
|
|
17557
|
-
exitCode: result.exitCode,
|
|
17558
|
-
durationMs
|
|
17559
|
-
});
|
|
17560
|
-
throw result.error ?? new ditto_codegen_types_12.ProcessExecutionError(`Code generation failed (exit code ${result.exitCode})`, {
|
|
17561
|
-
processType: ditto_codegen_types_12.ProcessType.EXECUTION,
|
|
17562
|
-
exitCode: result.exitCode ?? void 0
|
|
17563
|
-
});
|
|
17564
|
-
}
|
|
17565
|
-
this.emitEvent("opencode:done", { durationMs });
|
|
17566
|
-
this.emitEvent("finish:init", { outputPath, durationMs });
|
|
17567
|
-
return result;
|
|
17568
|
-
}
|
|
17569
|
-
};
|
|
17570
|
-
exports2.OpenCodeOrchestrator = OpenCodeOrchestrator;
|
|
17571
|
-
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
|
+
}
|
|
17572
17510
|
}
|
|
17573
17511
|
});
|
|
17574
17512
|
|
|
@@ -17646,8 +17584,8 @@ var require_codegen_flow_helpers = __commonJS({
|
|
|
17646
17584
|
exports2.getOutputPath = getOutputPath;
|
|
17647
17585
|
var path_12 = __importDefault2(require("path"));
|
|
17648
17586
|
var codeGenerationService_12 = require_codeGenerationService();
|
|
17649
|
-
var
|
|
17650
|
-
var
|
|
17587
|
+
var file_changes_1 = require_file_changes();
|
|
17588
|
+
var job_payload_1 = require_job_payload2();
|
|
17651
17589
|
var agent_io_1 = require_agent_io();
|
|
17652
17590
|
var utils_12 = require_utils9();
|
|
17653
17591
|
var DEFAULT_OUTPUT_PATH = "generated-app";
|
|
@@ -17655,8 +17593,8 @@ var require_codegen_flow_helpers = __commonJS({
|
|
|
17655
17593
|
await codeGenerationService_12.codeGenerationService.updateJob(jobContext.jobId, payload);
|
|
17656
17594
|
}
|
|
17657
17595
|
async function buildFailedRunPayload(error, outputPath, gitBaseline) {
|
|
17658
|
-
const files = await (0,
|
|
17659
|
-
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);
|
|
17660
17598
|
return {
|
|
17661
17599
|
requiredPermissions: [],
|
|
17662
17600
|
error,
|
|
@@ -17677,22 +17615,22 @@ var require_codegen_flow_helpers = __commonJS({
|
|
|
17677
17615
|
}
|
|
17678
17616
|
});
|
|
17679
17617
|
|
|
17680
|
-
// dist/
|
|
17618
|
+
// dist/extension-reporting/inject-created-by.js
|
|
17681
17619
|
var require_inject_created_by = __commonJS({
|
|
17682
|
-
"dist/
|
|
17620
|
+
"dist/extension-reporting/inject-created-by.js"(exports2) {
|
|
17683
17621
|
"use strict";
|
|
17684
17622
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
17685
17623
|
exports2.injectCreatedByIntoExtensionFiles = injectCreatedByIntoExtensionFiles;
|
|
17686
17624
|
var promises_1 = require("fs/promises");
|
|
17687
17625
|
var path_12 = require("path");
|
|
17688
17626
|
var logger_12 = require_logger();
|
|
17689
|
-
var
|
|
17627
|
+
var detect_1 = require_detect();
|
|
17690
17628
|
async function injectCreatedByIntoExtensionFiles(cwd, createdExtensions) {
|
|
17691
17629
|
for (const { path: filePath } of createdExtensions) {
|
|
17692
17630
|
const absolutePath = (0, path_12.join)(cwd, filePath);
|
|
17693
17631
|
try {
|
|
17694
17632
|
const original = await (0, promises_1.readFile)(absolutePath, "utf-8");
|
|
17695
|
-
const injected = (0,
|
|
17633
|
+
const injected = (0, detect_1.injectCreatedBy)(original);
|
|
17696
17634
|
if (injected !== original) {
|
|
17697
17635
|
await (0, promises_1.writeFile)(absolutePath, injected, "utf-8");
|
|
17698
17636
|
logger_12.logger.info("[OpenCode] Injected createdBy into extension file", {
|
|
@@ -22518,9 +22456,9 @@ var require_src2 = __commonJS({
|
|
|
22518
22456
|
}
|
|
22519
22457
|
});
|
|
22520
22458
|
|
|
22521
|
-
// dist/
|
|
22522
|
-
var
|
|
22523
|
-
"dist/
|
|
22459
|
+
// dist/telemetry/bi-logger.js
|
|
22460
|
+
var require_bi_logger2 = __commonJS({
|
|
22461
|
+
"dist/telemetry/bi-logger.js"(exports2) {
|
|
22524
22462
|
"use strict";
|
|
22525
22463
|
var __importDefault2 = exports2 && exports2.__importDefault || function(mod) {
|
|
22526
22464
|
return mod && mod.__esModule ? mod : { "default": mod };
|
|
@@ -22539,9 +22477,9 @@ var require_biLogger = __commonJS({
|
|
|
22539
22477
|
}
|
|
22540
22478
|
});
|
|
22541
22479
|
|
|
22542
|
-
// dist/
|
|
22543
|
-
var
|
|
22544
|
-
"dist/
|
|
22480
|
+
// dist/telemetry/bi-events.js
|
|
22481
|
+
var require_bi_events = __commonJS({
|
|
22482
|
+
"dist/telemetry/bi-events.js"(exports2) {
|
|
22545
22483
|
"use strict";
|
|
22546
22484
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
22547
22485
|
exports2.reportSessionStart = reportSessionStart;
|
|
@@ -22550,7 +22488,7 @@ var require_biEvents = __commonJS({
|
|
|
22550
22488
|
var v2_1 = require_v2();
|
|
22551
22489
|
var v2_2 = require_v22();
|
|
22552
22490
|
var types_1 = require_types_impl();
|
|
22553
|
-
var
|
|
22491
|
+
var bi_logger_1 = require_bi_logger2();
|
|
22554
22492
|
var logger_12 = require_logger();
|
|
22555
22493
|
var MAX_JOB_INPUT_LENGTH = 3e4;
|
|
22556
22494
|
var TRUNCATION_SUFFIX = "\u2026";
|
|
@@ -22588,7 +22526,7 @@ var require_biEvents = __commonJS({
|
|
|
22588
22526
|
if (report.environment === types_1.Environment.APP_BUILDER) {
|
|
22589
22527
|
logger_12.logger.info("Reporting BI event 200 (session start)", devibeParams);
|
|
22590
22528
|
try {
|
|
22591
|
-
await
|
|
22529
|
+
await bi_logger_1.biLogger.report((0, v2_1.devibeCodegenAgentSessionStartSrc196Evid200)(devibeParams));
|
|
22592
22530
|
} catch (err) {
|
|
22593
22531
|
logger_12.logger.warn("BI event 200 report failed", { error: err });
|
|
22594
22532
|
}
|
|
@@ -22606,7 +22544,7 @@ var require_biEvents = __commonJS({
|
|
|
22606
22544
|
};
|
|
22607
22545
|
logger_12.logger.info("Reporting BI event 299 (generic session start)", codegenAgentParams);
|
|
22608
22546
|
try {
|
|
22609
|
-
await
|
|
22547
|
+
await bi_logger_1.biLogger.report((0, v2_2.codegenAgentSessionStartSrc11Evid299)(codegenAgentParams));
|
|
22610
22548
|
} catch (err) {
|
|
22611
22549
|
logger_12.logger.warn("BI event 299 report failed", { error: err });
|
|
22612
22550
|
}
|
|
@@ -22633,7 +22571,7 @@ var require_biEvents = __commonJS({
|
|
|
22633
22571
|
if (report.environment === types_1.Environment.APP_BUILDER) {
|
|
22634
22572
|
logger_12.logger.info("Reporting BI event 201 (session end)", devibeParams);
|
|
22635
22573
|
try {
|
|
22636
|
-
await
|
|
22574
|
+
await bi_logger_1.biLogger.report((0, v2_1.devibeCodegenAgentSessionEndSrc196Evid201)(devibeParams));
|
|
22637
22575
|
} catch (err) {
|
|
22638
22576
|
logger_12.logger.warn("BI event 201 report failed", { error: err });
|
|
22639
22577
|
}
|
|
@@ -22655,7 +22593,7 @@ var require_biEvents = __commonJS({
|
|
|
22655
22593
|
};
|
|
22656
22594
|
logger_12.logger.info("Reporting BI event 304 (generic session end)", codegenAgentParams);
|
|
22657
22595
|
try {
|
|
22658
|
-
await
|
|
22596
|
+
await bi_logger_1.biLogger.report((0, v2_2.codegenAgentSessionEndSrc11Evid304)(codegenAgentParams));
|
|
22659
22597
|
} catch (err) {
|
|
22660
22598
|
logger_12.logger.warn("BI event 304 report failed", { error: err });
|
|
22661
22599
|
}
|
|
@@ -22682,7 +22620,7 @@ var require_biEvents = __commonJS({
|
|
|
22682
22620
|
if (report.environment === types_1.Environment.APP_BUILDER) {
|
|
22683
22621
|
logger_12.logger.info("Reporting BI event 202 (session error)", devibeParams);
|
|
22684
22622
|
try {
|
|
22685
|
-
await
|
|
22623
|
+
await bi_logger_1.biLogger.report((0, v2_1.devibeCodegenAgentSessionErrorSrc196Evid202)(devibeParams));
|
|
22686
22624
|
} catch (err) {
|
|
22687
22625
|
logger_12.logger.warn("BI event 202 report failed", { error: err });
|
|
22688
22626
|
}
|
|
@@ -22705,7 +22643,7 @@ var require_biEvents = __commonJS({
|
|
|
22705
22643
|
};
|
|
22706
22644
|
logger_12.logger.info("Reporting BI event 305 (generic session error)", codegenAgentParams);
|
|
22707
22645
|
try {
|
|
22708
|
-
await
|
|
22646
|
+
await bi_logger_1.biLogger.report((0, v2_2.codegenAgentSessionErrorSrc11Evid305)(codegenAgentParams));
|
|
22709
22647
|
} catch (err) {
|
|
22710
22648
|
logger_12.logger.warn("BI event 305 report failed", { error: err });
|
|
22711
22649
|
}
|
|
@@ -22713,9 +22651,53 @@ var require_biEvents = __commonJS({
|
|
|
22713
22651
|
}
|
|
22714
22652
|
});
|
|
22715
22653
|
|
|
22716
|
-
// dist/opencode-integration/
|
|
22717
|
-
var
|
|
22718
|
-
"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) {
|
|
22719
22701
|
"use strict";
|
|
22720
22702
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
22721
22703
|
exports2.notifyExpensiveRunToSlack = notifyExpensiveRunToSlack;
|
|
@@ -22782,7 +22764,7 @@ var require_opencode_init = __commonJS({
|
|
|
22782
22764
|
var codeGenerationService_12 = require_codeGenerationService();
|
|
22783
22765
|
var cli_listeners_1 = require_cli_listeners();
|
|
22784
22766
|
var job_context_storage_12 = require_job_context_storage();
|
|
22785
|
-
var
|
|
22767
|
+
var opencode_orchestrator_1 = require_opencode_orchestrator();
|
|
22786
22768
|
var ditto_codegen_types_12 = require_dist4();
|
|
22787
22769
|
var codegen_flow_helpers_12 = require_codegen_flow_helpers();
|
|
22788
22770
|
var agent_io_1 = require_agent_io();
|
|
@@ -22791,12 +22773,12 @@ var require_opencode_init = __commonJS({
|
|
|
22791
22773
|
var context_12 = require_context();
|
|
22792
22774
|
var logger_12 = require_logger();
|
|
22793
22775
|
var model_knobs_1 = require_model_knobs();
|
|
22794
|
-
var
|
|
22776
|
+
var file_changes_1 = require_file_changes();
|
|
22795
22777
|
var inject_created_by_1 = require_inject_created_by();
|
|
22796
|
-
var
|
|
22797
|
-
var
|
|
22798
|
-
var
|
|
22799
|
-
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();
|
|
22800
22782
|
var pre_run_decision_1 = require_pre_run_decision();
|
|
22801
22783
|
var environments_12 = require_environments();
|
|
22802
22784
|
var plugins_runtime_1 = require_plugins_runtime();
|
|
@@ -22823,16 +22805,16 @@ var require_opencode_init = __commonJS({
|
|
|
22823
22805
|
logger_12.logger.info("[OpenCode Init] Starting task", { taskId });
|
|
22824
22806
|
await codeGenerationService_12.codeGenerationService.updateTask(jobId, taskId, ditto_codegen_types_12.Status.RUNNING, {});
|
|
22825
22807
|
logger_12.logger.info("[OpenCode Init] Marked task RUNNING", { taskId });
|
|
22826
|
-
await (0,
|
|
22808
|
+
await (0, bi_events_1.reportSessionStart)({
|
|
22827
22809
|
...biBase,
|
|
22828
22810
|
taskModel,
|
|
22829
22811
|
taskType: kind,
|
|
22830
22812
|
jobInput: userInput
|
|
22831
22813
|
});
|
|
22832
22814
|
const outputPath = (0, codegen_flow_helpers_12.getOutputPath)();
|
|
22833
|
-
const gitBaseline = await (0,
|
|
22815
|
+
const gitBaseline = await (0, file_changes_1.captureGitBaseline)(outputPath);
|
|
22834
22816
|
store.gitBaseline = gitBaseline;
|
|
22835
|
-
const orchestrator = new
|
|
22817
|
+
const orchestrator = new opencode_orchestrator_1.OpenCodeOrchestrator();
|
|
22836
22818
|
let caughtError;
|
|
22837
22819
|
try {
|
|
22838
22820
|
(0, agent_io_1.writeAgentInput)(outputPath, agentData);
|
|
@@ -22854,9 +22836,9 @@ var require_opencode_init = __commonJS({
|
|
|
22854
22836
|
gitBaseline
|
|
22855
22837
|
});
|
|
22856
22838
|
store.lastAgentMessage = result.agentMessage;
|
|
22857
|
-
const files = await (0,
|
|
22839
|
+
const files = await (0, file_changes_1.collectGitFileChanges)(outputPath, gitBaseline);
|
|
22858
22840
|
const agentOutput = (0, agent_io_1.readAgentOutput)(outputPath);
|
|
22859
|
-
const extensions = await (0,
|
|
22841
|
+
const extensions = await (0, job_payload_1.buildExtensionsJobPayload)(outputPath, files);
|
|
22860
22842
|
await (0, inject_created_by_1.injectCreatedByIntoExtensionFiles)(outputPath, extensions.created);
|
|
22861
22843
|
await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, {
|
|
22862
22844
|
requiredPermissions: result.requiredPermissions,
|
|
@@ -22872,8 +22854,8 @@ var require_opencode_init = __commonJS({
|
|
|
22872
22854
|
requiredPermissions: result.requiredPermissions
|
|
22873
22855
|
});
|
|
22874
22856
|
if (orchestrator.lastStdout && !(0, model_knobs_1.hasModelOverride)() && !(0, model_knobs_1.hasSmallModelOverride)()) {
|
|
22875
|
-
void (0,
|
|
22876
|
-
void (0,
|
|
22857
|
+
void (0, validator_outputs_1.notifyValidatorOutputsToSlack)(orchestrator.lastStdout, result.usage.cost);
|
|
22858
|
+
void (0, expensive_run_1.notifyExpensiveRunToSlack)({
|
|
22877
22859
|
usage: result.usage,
|
|
22878
22860
|
durationMs: Date.now() - flowStartTime,
|
|
22879
22861
|
agentMessage: result.agentMessage,
|
|
@@ -22883,7 +22865,7 @@ var require_opencode_init = __commonJS({
|
|
|
22883
22865
|
if (!store.isCompleted) {
|
|
22884
22866
|
await codeGenerationService_12.codeGenerationService.updateTask(jobId, taskId, ditto_codegen_types_12.Status.COMPLETED, {});
|
|
22885
22867
|
}
|
|
22886
|
-
await (0,
|
|
22868
|
+
await (0, bi_events_1.reportSessionEnd)({
|
|
22887
22869
|
...biBase,
|
|
22888
22870
|
taskModel,
|
|
22889
22871
|
taskType: kind,
|
|
@@ -22902,7 +22884,7 @@ var require_opencode_init = __commonJS({
|
|
|
22902
22884
|
await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, failedRunPayload);
|
|
22903
22885
|
await (0, codegen_flow_helpers_12.updateParentTaskStatus)(localJobContext, ditto_codegen_types_12.Status.FAILED, codegenError);
|
|
22904
22886
|
const taskCost = orchestrator.lastUsage ? Math.round(orchestrator.lastUsage.cost * 1e6) : void 0;
|
|
22905
|
-
await (0,
|
|
22887
|
+
await (0, bi_events_1.reportSessionEnd)({
|
|
22906
22888
|
...biBase,
|
|
22907
22889
|
taskModel,
|
|
22908
22890
|
taskType: kind,
|
|
@@ -22911,7 +22893,7 @@ var require_opencode_init = __commonJS({
|
|
|
22911
22893
|
agentOutput: JSON.stringify({ files: failedRunPayload.files }),
|
|
22912
22894
|
jobDuration: String(Date.now() - flowStartTime)
|
|
22913
22895
|
});
|
|
22914
|
-
await (0,
|
|
22896
|
+
await (0, bi_events_1.reportSessionError)({
|
|
22915
22897
|
...biBase,
|
|
22916
22898
|
taskModel,
|
|
22917
22899
|
taskType: kind,
|
|
@@ -22935,9 +22917,9 @@ var require_opencode_init = __commonJS({
|
|
|
22935
22917
|
}
|
|
22936
22918
|
});
|
|
22937
22919
|
|
|
22938
|
-
// dist/
|
|
22939
|
-
var
|
|
22940
|
-
"dist/
|
|
22920
|
+
// dist/orchestrators/opencode-iteration-orchestrator.js
|
|
22921
|
+
var require_opencode_iteration_orchestrator = __commonJS({
|
|
22922
|
+
"dist/orchestrators/opencode-iteration-orchestrator.js"(exports2) {
|
|
22941
22923
|
"use strict";
|
|
22942
22924
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
22943
22925
|
exports2.OpenCodeIterationOrchestrator = void 0;
|
|
@@ -22999,7 +22981,7 @@ var require_opencode_iterate = __commonJS({
|
|
|
22999
22981
|
var cli_listeners_1 = require_cli_listeners();
|
|
23000
22982
|
var job_context_storage_12 = require_job_context_storage();
|
|
23001
22983
|
var ditto_codegen_types_12 = require_dist4();
|
|
23002
|
-
var
|
|
22984
|
+
var opencode_iteration_orchestrator_1 = require_opencode_iteration_orchestrator();
|
|
23003
22985
|
var types_1 = require_types_impl();
|
|
23004
22986
|
var codegen_flow_helpers_12 = require_codegen_flow_helpers();
|
|
23005
22987
|
var agent_io_1 = require_agent_io();
|
|
@@ -23007,12 +22989,12 @@ var require_opencode_iterate = __commonJS({
|
|
|
23007
22989
|
var context_12 = require_context();
|
|
23008
22990
|
var logger_12 = require_logger();
|
|
23009
22991
|
var model_knobs_1 = require_model_knobs();
|
|
23010
|
-
var
|
|
22992
|
+
var file_changes_1 = require_file_changes();
|
|
23011
22993
|
var inject_created_by_1 = require_inject_created_by();
|
|
23012
|
-
var
|
|
23013
|
-
var
|
|
23014
|
-
var
|
|
23015
|
-
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();
|
|
23016
22998
|
var plugins_runtime_1 = require_plugins_runtime();
|
|
23017
22999
|
var runOpencodeIterateFlow = async (chatHistory, agentData) => {
|
|
23018
23000
|
const store = job_context_storage_12.jobContextStorage.getStore();
|
|
@@ -23037,16 +23019,16 @@ var require_opencode_iterate = __commonJS({
|
|
|
23037
23019
|
logger_12.logger.info("[OpenCode Iterate] Starting task", { taskId });
|
|
23038
23020
|
await codeGenerationService_12.codeGenerationService.updateTask(jobId, taskId, ditto_codegen_types_12.Status.RUNNING, {});
|
|
23039
23021
|
logger_12.logger.info("[OpenCode Iterate] Marked task RUNNING", { taskId });
|
|
23040
|
-
await (0,
|
|
23022
|
+
await (0, bi_events_1.reportSessionStart)({
|
|
23041
23023
|
...biBase,
|
|
23042
23024
|
taskModel,
|
|
23043
23025
|
taskType: kind,
|
|
23044
23026
|
jobInput: userInput
|
|
23045
23027
|
});
|
|
23046
23028
|
const outputPath = (0, codegen_flow_helpers_12.getOutputPath)();
|
|
23047
|
-
const gitBaseline = await (0,
|
|
23029
|
+
const gitBaseline = await (0, file_changes_1.captureGitBaseline)(outputPath);
|
|
23048
23030
|
store.gitBaseline = gitBaseline;
|
|
23049
|
-
const iterationOrchestrator = new
|
|
23031
|
+
const iterationOrchestrator = new opencode_iteration_orchestrator_1.OpenCodeIterationOrchestrator();
|
|
23050
23032
|
let caughtError;
|
|
23051
23033
|
try {
|
|
23052
23034
|
(0, agent_io_1.writeAgentInput)(outputPath, agentData);
|
|
@@ -23058,9 +23040,9 @@ var require_opencode_iterate = __commonJS({
|
|
|
23058
23040
|
gitBaseline
|
|
23059
23041
|
});
|
|
23060
23042
|
store.lastAgentMessage = result.agentMessage;
|
|
23061
|
-
const files = await (0,
|
|
23043
|
+
const files = await (0, file_changes_1.collectGitFileChanges)(outputPath, gitBaseline);
|
|
23062
23044
|
const agentOutput = (0, agent_io_1.readAgentOutput)(outputPath);
|
|
23063
|
-
const extensions = await (0,
|
|
23045
|
+
const extensions = await (0, job_payload_1.buildExtensionsJobPayload)(outputPath, files);
|
|
23064
23046
|
await (0, inject_created_by_1.injectCreatedByIntoExtensionFiles)(outputPath, extensions.created);
|
|
23065
23047
|
await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, {
|
|
23066
23048
|
requiredPermissions: result.requiredPermissions,
|
|
@@ -23076,8 +23058,8 @@ var require_opencode_iterate = __commonJS({
|
|
|
23076
23058
|
requiredPermissions: result.requiredPermissions
|
|
23077
23059
|
});
|
|
23078
23060
|
if (iterationOrchestrator.lastStdout && !(0, model_knobs_1.hasModelOverride)() && !(0, model_knobs_1.hasSmallModelOverride)()) {
|
|
23079
|
-
void (0,
|
|
23080
|
-
void (0,
|
|
23061
|
+
void (0, validator_outputs_1.notifyValidatorOutputsToSlack)(iterationOrchestrator.lastStdout, result.usage.cost);
|
|
23062
|
+
void (0, expensive_run_1.notifyExpensiveRunToSlack)({
|
|
23081
23063
|
usage: result.usage,
|
|
23082
23064
|
durationMs: Date.now() - flowStartTime,
|
|
23083
23065
|
agentMessage: result.agentMessage,
|
|
@@ -23087,7 +23069,7 @@ var require_opencode_iterate = __commonJS({
|
|
|
23087
23069
|
await codeGenerationService_12.codeGenerationService.updateTask(jobId, taskId, ditto_codegen_types_12.Status.COMPLETED, {
|
|
23088
23070
|
taskOutput: { files }
|
|
23089
23071
|
});
|
|
23090
|
-
await (0,
|
|
23072
|
+
await (0, bi_events_1.reportSessionEnd)({
|
|
23091
23073
|
...biBase,
|
|
23092
23074
|
taskModel,
|
|
23093
23075
|
taskType: kind,
|
|
@@ -23106,7 +23088,7 @@ var require_opencode_iterate = __commonJS({
|
|
|
23106
23088
|
await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, failedRunPayload);
|
|
23107
23089
|
await (0, codegen_flow_helpers_12.updateParentTaskStatus)(localJobContext, ditto_codegen_types_12.Status.FAILED, codegenError);
|
|
23108
23090
|
const taskCost = iterationOrchestrator.lastUsage ? Math.round(iterationOrchestrator.lastUsage.cost * 1e6) : void 0;
|
|
23109
|
-
await (0,
|
|
23091
|
+
await (0, bi_events_1.reportSessionEnd)({
|
|
23110
23092
|
...biBase,
|
|
23111
23093
|
taskModel,
|
|
23112
23094
|
taskType: kind,
|
|
@@ -23115,7 +23097,7 @@ var require_opencode_iterate = __commonJS({
|
|
|
23115
23097
|
agentOutput: JSON.stringify({ files: failedRunPayload.files }),
|
|
23116
23098
|
jobDuration: String(Date.now() - flowStartTime)
|
|
23117
23099
|
});
|
|
23118
|
-
await (0,
|
|
23100
|
+
await (0, bi_events_1.reportSessionError)({
|
|
23119
23101
|
...biBase,
|
|
23120
23102
|
taskModel,
|
|
23121
23103
|
taskType: kind,
|
|
@@ -23139,9 +23121,9 @@ var require_opencode_iterate = __commonJS({
|
|
|
23139
23121
|
}
|
|
23140
23122
|
});
|
|
23141
23123
|
|
|
23142
|
-
// dist/
|
|
23143
|
-
var
|
|
23144
|
-
"dist/
|
|
23124
|
+
// dist/orchestrators/opencode-ask-orchestrator.js
|
|
23125
|
+
var require_opencode_ask_orchestrator = __commonJS({
|
|
23126
|
+
"dist/orchestrators/opencode-ask-orchestrator.js"(exports2) {
|
|
23145
23127
|
"use strict";
|
|
23146
23128
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
23147
23129
|
exports2.OpenCodeAskOrchestrator = void 0;
|
|
@@ -23201,17 +23183,17 @@ var require_opencode_ask = __commonJS({
|
|
|
23201
23183
|
var cli_listeners_1 = require_cli_listeners();
|
|
23202
23184
|
var job_context_storage_12 = require_job_context_storage();
|
|
23203
23185
|
var ditto_codegen_types_12 = require_dist4();
|
|
23204
|
-
var
|
|
23186
|
+
var opencode_ask_orchestrator_1 = require_opencode_ask_orchestrator();
|
|
23205
23187
|
var types_1 = require_types_impl();
|
|
23206
23188
|
var codegen_flow_helpers_12 = require_codegen_flow_helpers();
|
|
23207
23189
|
var ditto_codegen_types_2 = require_dist4();
|
|
23208
23190
|
var context_12 = require_context();
|
|
23209
23191
|
var logger_12 = require_logger();
|
|
23210
23192
|
var model_knobs_1 = require_model_knobs();
|
|
23211
|
-
var
|
|
23193
|
+
var file_changes_1 = require_file_changes();
|
|
23212
23194
|
var inject_created_by_1 = require_inject_created_by();
|
|
23213
|
-
var
|
|
23214
|
-
var
|
|
23195
|
+
var job_payload_1 = require_job_payload2();
|
|
23196
|
+
var bi_events_1 = require_bi_events();
|
|
23215
23197
|
var runOpencodeAskFlow = async (chatHistory) => {
|
|
23216
23198
|
const store = job_context_storage_12.jobContextStorage.getStore();
|
|
23217
23199
|
if (!store?.jobId || !store?.taskId) {
|
|
@@ -23235,16 +23217,16 @@ var require_opencode_ask = __commonJS({
|
|
|
23235
23217
|
logger_12.logger.info("[OpenCode Ask] Starting task", { taskId });
|
|
23236
23218
|
await codeGenerationService_12.codeGenerationService.updateTask(jobId, taskId, ditto_codegen_types_12.Status.RUNNING, {});
|
|
23237
23219
|
logger_12.logger.info("[OpenCode Ask] Marked task RUNNING", { taskId });
|
|
23238
|
-
await (0,
|
|
23220
|
+
await (0, bi_events_1.reportSessionStart)({
|
|
23239
23221
|
...biBase,
|
|
23240
23222
|
taskModel,
|
|
23241
23223
|
taskType: kind,
|
|
23242
23224
|
jobInput: userInput
|
|
23243
23225
|
});
|
|
23244
23226
|
const outputPath = (0, codegen_flow_helpers_12.getOutputPath)();
|
|
23245
|
-
const gitBaseline = await (0,
|
|
23227
|
+
const gitBaseline = await (0, file_changes_1.captureGitBaseline)(outputPath);
|
|
23246
23228
|
store.gitBaseline = gitBaseline;
|
|
23247
|
-
const askOrchestrator = new
|
|
23229
|
+
const askOrchestrator = new opencode_ask_orchestrator_1.OpenCodeAskOrchestrator();
|
|
23248
23230
|
try {
|
|
23249
23231
|
(0, cli_listeners_1.attachOrchestratorListeners)(askOrchestrator);
|
|
23250
23232
|
const result = await askOrchestrator.ask({
|
|
@@ -23253,8 +23235,8 @@ var require_opencode_ask = __commonJS({
|
|
|
23253
23235
|
chatHistory,
|
|
23254
23236
|
gitBaseline
|
|
23255
23237
|
});
|
|
23256
|
-
const files = await (0,
|
|
23257
|
-
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);
|
|
23258
23240
|
await (0, inject_created_by_1.injectCreatedByIntoExtensionFiles)(outputPath, extensions.created);
|
|
23259
23241
|
await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, {
|
|
23260
23242
|
files,
|
|
@@ -23266,7 +23248,7 @@ var require_opencode_ask = __commonJS({
|
|
|
23266
23248
|
answer: result.answer
|
|
23267
23249
|
}
|
|
23268
23250
|
});
|
|
23269
|
-
await (0,
|
|
23251
|
+
await (0, bi_events_1.reportSessionEnd)({
|
|
23270
23252
|
...biBase,
|
|
23271
23253
|
taskModel,
|
|
23272
23254
|
taskType: kind,
|
|
@@ -23279,8 +23261,8 @@ var require_opencode_ask = __commonJS({
|
|
|
23279
23261
|
logger_12.logger.info("[OpenCode Ask] Completed task", { taskId });
|
|
23280
23262
|
} catch (error) {
|
|
23281
23263
|
const codegenError = (0, ditto_codegen_types_2.toCodegenError)(error);
|
|
23282
|
-
const files = await (0,
|
|
23283
|
-
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);
|
|
23284
23266
|
await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, {
|
|
23285
23267
|
files,
|
|
23286
23268
|
extensions,
|
|
@@ -23288,7 +23270,7 @@ var require_opencode_ask = __commonJS({
|
|
|
23288
23270
|
});
|
|
23289
23271
|
await (0, codegen_flow_helpers_12.updateParentTaskStatus)(localJobContext, ditto_codegen_types_12.Status.FAILED, codegenError);
|
|
23290
23272
|
const taskCost = askOrchestrator.lastUsage ? Math.round(askOrchestrator.lastUsage.cost * 1e6) : void 0;
|
|
23291
|
-
await (0,
|
|
23273
|
+
await (0, bi_events_1.reportSessionEnd)({
|
|
23292
23274
|
...biBase,
|
|
23293
23275
|
taskModel,
|
|
23294
23276
|
taskType: kind,
|
|
@@ -23297,7 +23279,7 @@ var require_opencode_ask = __commonJS({
|
|
|
23297
23279
|
agentOutput: JSON.stringify({ files }),
|
|
23298
23280
|
jobDuration: String(Date.now() - flowStartTime)
|
|
23299
23281
|
});
|
|
23300
|
-
await (0,
|
|
23282
|
+
await (0, bi_events_1.reportSessionError)({
|
|
23301
23283
|
...biBase,
|
|
23302
23284
|
taskModel,
|
|
23303
23285
|
taskType: kind,
|
|
@@ -23319,9 +23301,9 @@ var require_opencode_ask = __commonJS({
|
|
|
23319
23301
|
}
|
|
23320
23302
|
});
|
|
23321
23303
|
|
|
23322
|
-
// dist/
|
|
23323
|
-
var
|
|
23324
|
-
"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) {
|
|
23325
23307
|
"use strict";
|
|
23326
23308
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
23327
23309
|
exports2.OpenCodeGitConflictsOrchestrator = void 0;
|
|
@@ -23383,17 +23365,17 @@ var require_opencode_fix_git_conflicts = __commonJS({
|
|
|
23383
23365
|
var cli_listeners_1 = require_cli_listeners();
|
|
23384
23366
|
var job_context_storage_12 = require_job_context_storage();
|
|
23385
23367
|
var ditto_codegen_types_12 = require_dist4();
|
|
23386
|
-
var
|
|
23368
|
+
var opencode_git_conflicts_orchestrator_1 = require_opencode_git_conflicts_orchestrator();
|
|
23387
23369
|
var types_1 = require_types_impl();
|
|
23388
23370
|
var codegen_flow_helpers_12 = require_codegen_flow_helpers();
|
|
23389
23371
|
var context_12 = require_context();
|
|
23390
23372
|
var logger_12 = require_logger();
|
|
23391
23373
|
var model_knobs_1 = require_model_knobs();
|
|
23392
|
-
var
|
|
23393
|
-
var
|
|
23394
|
-
var
|
|
23395
|
-
var
|
|
23396
|
-
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();
|
|
23397
23379
|
var plugins_runtime_1 = require_plugins_runtime();
|
|
23398
23380
|
var runOpencodeGitConflictsFlow = async (chatHistory) => {
|
|
23399
23381
|
const store = job_context_storage_12.jobContextStorage.getStore();
|
|
@@ -23418,15 +23400,15 @@ var require_opencode_fix_git_conflicts = __commonJS({
|
|
|
23418
23400
|
logger_12.logger.info("[OpenCode Git Conflicts] Starting task", { taskId });
|
|
23419
23401
|
await codeGenerationService_12.codeGenerationService.updateTask(jobId, taskId, ditto_codegen_types_12.Status.RUNNING, {});
|
|
23420
23402
|
logger_12.logger.info("[OpenCode Git Conflicts] Marked task RUNNING", { taskId });
|
|
23421
|
-
await (0,
|
|
23403
|
+
await (0, bi_events_1.reportSessionStart)({
|
|
23422
23404
|
...biBase,
|
|
23423
23405
|
taskModel,
|
|
23424
23406
|
taskType: kind
|
|
23425
23407
|
});
|
|
23426
23408
|
const outputPath = (0, codegen_flow_helpers_12.getOutputPath)();
|
|
23427
|
-
const gitBaseline = await (0,
|
|
23409
|
+
const gitBaseline = await (0, file_changes_1.captureGitBaseline)(outputPath);
|
|
23428
23410
|
store.gitBaseline = gitBaseline;
|
|
23429
|
-
const orchestrator = new
|
|
23411
|
+
const orchestrator = new opencode_git_conflicts_orchestrator_1.OpenCodeGitConflictsOrchestrator();
|
|
23430
23412
|
let caughtError;
|
|
23431
23413
|
try {
|
|
23432
23414
|
(0, cli_listeners_1.attachOrchestratorListeners)(orchestrator);
|
|
@@ -23437,8 +23419,8 @@ var require_opencode_fix_git_conflicts = __commonJS({
|
|
|
23437
23419
|
gitBaseline
|
|
23438
23420
|
});
|
|
23439
23421
|
store.lastAgentMessage = result.agentMessage;
|
|
23440
|
-
const files = await (0,
|
|
23441
|
-
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);
|
|
23442
23424
|
await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, {
|
|
23443
23425
|
requiredPermissions: result.requiredPermissions,
|
|
23444
23426
|
agentMessage: result.agentMessage,
|
|
@@ -23452,8 +23434,8 @@ var require_opencode_fix_git_conflicts = __commonJS({
|
|
|
23452
23434
|
requiredPermissions: result.requiredPermissions
|
|
23453
23435
|
});
|
|
23454
23436
|
if (orchestrator.lastStdout && !(0, model_knobs_1.hasModelOverride)() && !(0, model_knobs_1.hasSmallModelOverride)()) {
|
|
23455
|
-
void (0,
|
|
23456
|
-
void (0,
|
|
23437
|
+
void (0, validator_outputs_1.notifyValidatorOutputsToSlack)(orchestrator.lastStdout, result.usage.cost);
|
|
23438
|
+
void (0, expensive_run_1.notifyExpensiveRunToSlack)({
|
|
23457
23439
|
usage: result.usage,
|
|
23458
23440
|
durationMs: Date.now() - flowStartTime,
|
|
23459
23441
|
agentMessage: result.agentMessage,
|
|
@@ -23463,7 +23445,7 @@ var require_opencode_fix_git_conflicts = __commonJS({
|
|
|
23463
23445
|
await codeGenerationService_12.codeGenerationService.updateTask(jobId, taskId, ditto_codegen_types_12.Status.COMPLETED, {
|
|
23464
23446
|
taskOutput: { files }
|
|
23465
23447
|
});
|
|
23466
|
-
await (0,
|
|
23448
|
+
await (0, bi_events_1.reportSessionEnd)({
|
|
23467
23449
|
...biBase,
|
|
23468
23450
|
taskModel,
|
|
23469
23451
|
taskType: kind,
|
|
@@ -23477,8 +23459,8 @@ var require_opencode_fix_git_conflicts = __commonJS({
|
|
|
23477
23459
|
} catch (error) {
|
|
23478
23460
|
caughtError = error;
|
|
23479
23461
|
const codegenError = (0, ditto_codegen_types_12.toCodegenError)(error);
|
|
23480
|
-
const files = await (0,
|
|
23481
|
-
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);
|
|
23482
23464
|
await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, {
|
|
23483
23465
|
requiredPermissions: [],
|
|
23484
23466
|
error: codegenError,
|
|
@@ -23487,7 +23469,7 @@ var require_opencode_fix_git_conflicts = __commonJS({
|
|
|
23487
23469
|
});
|
|
23488
23470
|
await (0, codegen_flow_helpers_12.updateParentTaskStatus)(localJobContext, ditto_codegen_types_12.Status.FAILED, codegenError);
|
|
23489
23471
|
const taskCost = orchestrator.lastUsage ? Math.round(orchestrator.lastUsage.cost * 1e6) : void 0;
|
|
23490
|
-
await (0,
|
|
23472
|
+
await (0, bi_events_1.reportSessionEnd)({
|
|
23491
23473
|
...biBase,
|
|
23492
23474
|
taskModel,
|
|
23493
23475
|
taskType: kind,
|
|
@@ -23496,7 +23478,7 @@ var require_opencode_fix_git_conflicts = __commonJS({
|
|
|
23496
23478
|
agentOutput: JSON.stringify({ files }),
|
|
23497
23479
|
jobDuration: String(Date.now() - flowStartTime)
|
|
23498
23480
|
});
|
|
23499
|
-
await (0,
|
|
23481
|
+
await (0, bi_events_1.reportSessionError)({
|
|
23500
23482
|
...biBase,
|
|
23501
23483
|
taskModel,
|
|
23502
23484
|
taskType: kind,
|
|
@@ -23520,9 +23502,9 @@ var require_opencode_fix_git_conflicts = __commonJS({
|
|
|
23520
23502
|
}
|
|
23521
23503
|
});
|
|
23522
23504
|
|
|
23523
|
-
// dist/job-cancellation-monitor.js
|
|
23505
|
+
// dist/jobs/job-cancellation-monitor.js
|
|
23524
23506
|
var require_job_cancellation_monitor = __commonJS({
|
|
23525
|
-
"dist/job-cancellation-monitor.js"(exports2) {
|
|
23507
|
+
"dist/jobs/job-cancellation-monitor.js"(exports2) {
|
|
23526
23508
|
"use strict";
|
|
23527
23509
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
23528
23510
|
exports2.JobCancellationMonitor = void 0;
|
|
@@ -23531,7 +23513,7 @@ var require_job_cancellation_monitor = __commonJS({
|
|
|
23531
23513
|
var logger_12 = require_logger();
|
|
23532
23514
|
var job_context_storage_12 = require_job_context_storage();
|
|
23533
23515
|
var types_1 = require_types_impl();
|
|
23534
|
-
var
|
|
23516
|
+
var bi_events_1 = require_bi_events();
|
|
23535
23517
|
var STATUS_CHECK_INTERVAL_MS = 2e3;
|
|
23536
23518
|
var JobCancellationMonitor = class {
|
|
23537
23519
|
constructor(codeGenerationService) {
|
|
@@ -23579,7 +23561,7 @@ var require_job_cancellation_monitor = __commonJS({
|
|
|
23579
23561
|
if (!store)
|
|
23580
23562
|
return;
|
|
23581
23563
|
const jobDuration = store.flowStartTime ? String(Date.now() - store.flowStartTime) : void 0;
|
|
23582
|
-
await (0,
|
|
23564
|
+
await (0, bi_events_1.reportSessionEnd)({
|
|
23583
23565
|
jobId,
|
|
23584
23566
|
taskId: store.taskId,
|
|
23585
23567
|
appId: this.projectId,
|
|
@@ -23596,9 +23578,9 @@ var require_job_cancellation_monitor = __commonJS({
|
|
|
23596
23578
|
}
|
|
23597
23579
|
});
|
|
23598
23580
|
|
|
23599
|
-
// dist/job-timeout-monitor.js
|
|
23581
|
+
// dist/jobs/job-timeout-monitor.js
|
|
23600
23582
|
var require_job_timeout_monitor = __commonJS({
|
|
23601
|
-
"dist/job-timeout-monitor.js"(exports2) {
|
|
23583
|
+
"dist/jobs/job-timeout-monitor.js"(exports2) {
|
|
23602
23584
|
"use strict";
|
|
23603
23585
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
23604
23586
|
exports2.JobTimeoutMonitor = exports2.JOB_TIMEOUT_MS = void 0;
|
|
@@ -23609,7 +23591,7 @@ var require_job_timeout_monitor = __commonJS({
|
|
|
23609
23591
|
var job_context_storage_12 = require_job_context_storage();
|
|
23610
23592
|
var codegen_flow_helpers_12 = require_codegen_flow_helpers();
|
|
23611
23593
|
var types_1 = require_types_impl();
|
|
23612
|
-
var
|
|
23594
|
+
var bi_events_1 = require_bi_events();
|
|
23613
23595
|
exports2.JOB_TIMEOUT_MS = 1e3 * 60 * 20;
|
|
23614
23596
|
var JobTimeoutMonitor = class {
|
|
23615
23597
|
constructor(codeGenerationService) {
|
|
@@ -23677,12 +23659,12 @@ var require_job_timeout_monitor = __commonJS({
|
|
|
23677
23659
|
runKind: store.kind,
|
|
23678
23660
|
environment
|
|
23679
23661
|
};
|
|
23680
|
-
await (0,
|
|
23662
|
+
await (0, bi_events_1.reportSessionEnd)({
|
|
23681
23663
|
...biBase,
|
|
23682
23664
|
taskStatus: ditto_codegen_types_12.Status.FAILED,
|
|
23683
23665
|
jobDuration
|
|
23684
23666
|
});
|
|
23685
|
-
await (0,
|
|
23667
|
+
await (0, bi_events_1.reportSessionError)({
|
|
23686
23668
|
...biBase,
|
|
23687
23669
|
errorDesc: codegenError.errorType,
|
|
23688
23670
|
errorMessage: codegenError.message,
|
|
@@ -23696,9 +23678,9 @@ var require_job_timeout_monitor = __commonJS({
|
|
|
23696
23678
|
}
|
|
23697
23679
|
});
|
|
23698
23680
|
|
|
23699
|
-
// dist/opencode-integration/skills-override.js
|
|
23681
|
+
// dist/opencode-integration/skills/skills-override.js
|
|
23700
23682
|
var require_skills_override = __commonJS({
|
|
23701
|
-
"dist/opencode-integration/skills-override.js"(exports2) {
|
|
23683
|
+
"dist/opencode-integration/skills/skills-override.js"(exports2) {
|
|
23702
23684
|
"use strict";
|
|
23703
23685
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
23704
23686
|
exports2.SKILLS_DIR = void 0;
|
|
@@ -23758,9 +23740,9 @@ var require_skills_override = __commonJS({
|
|
|
23758
23740
|
}
|
|
23759
23741
|
});
|
|
23760
23742
|
|
|
23761
|
-
// dist/opencode-integration/skills-installer.js
|
|
23743
|
+
// dist/opencode-integration/skills/skills-installer.js
|
|
23762
23744
|
var require_skills_installer = __commonJS({
|
|
23763
|
-
"dist/opencode-integration/skills-installer.js"(exports2) {
|
|
23745
|
+
"dist/opencode-integration/skills/skills-installer.js"(exports2) {
|
|
23764
23746
|
"use strict";
|
|
23765
23747
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
23766
23748
|
exports2.applySkillsOverride = applySkillsOverride;
|
|
@@ -23898,31 +23880,79 @@ var require_tools_writer = __commonJS({
|
|
|
23898
23880
|
}
|
|
23899
23881
|
});
|
|
23900
23882
|
|
|
23901
|
-
// 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
|
|
23902
23945
|
var require_tool_policies3 = __commonJS({
|
|
23903
|
-
"dist/opencode-integration/tool-policies.js"(exports2) {
|
|
23946
|
+
"dist/opencode-integration/plugins/tool-policies.js"(exports2) {
|
|
23904
23947
|
"use strict";
|
|
23905
23948
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
23906
|
-
exports2.
|
|
23907
|
-
exports2.policyMatchesPath = policyMatchesPath;
|
|
23908
|
-
exports2.skillRootOf = skillRootOf;
|
|
23949
|
+
exports2.TOOL_POLICIES_FILENAME = exports2.GENERATE_CMD_RE = void 0;
|
|
23909
23950
|
exports2.buildToolPoliciesPluginSource = buildToolPoliciesPluginSource;
|
|
23910
23951
|
exports2.writeToolPoliciesPlugin = writeToolPoliciesPlugin;
|
|
23911
|
-
exports2.validateToolPolicies = validateToolPolicies;
|
|
23912
|
-
var promises_1 = require("fs/promises");
|
|
23913
|
-
var path_12 = require("path");
|
|
23914
23952
|
var ditto_codegen_types_12 = require_dist4();
|
|
23915
|
-
var
|
|
23916
|
-
var generated_plugins_1 = require_generated_plugins();
|
|
23917
|
-
var skills_override_12 = require_skills_override();
|
|
23953
|
+
var write_plugin_1 = require_write_plugin();
|
|
23918
23954
|
exports2.GENERATE_CMD_RE = /\bwix\s+(schema\s+)?generate\b/;
|
|
23919
|
-
|
|
23920
|
-
return policy.pathFragments.some((fragment) => path.includes(fragment));
|
|
23921
|
-
}
|
|
23922
|
-
function skillRootOf(fragment) {
|
|
23923
|
-
return fragment.split("/")[0];
|
|
23924
|
-
}
|
|
23925
|
-
exports2.TOOL_POLICIES_PLUGIN_FILENAME = "tool-policies.ts";
|
|
23955
|
+
exports2.TOOL_POLICIES_FILENAME = "tool-policies.ts";
|
|
23926
23956
|
function buildToolPoliciesPluginSource(policies) {
|
|
23927
23957
|
const emitKind = (type, toRuntime, extraFilter = () => true) => JSON.stringify(policies.filter((policy) => policy.type === type).filter(extraFilter).map(toRuntime));
|
|
23928
23958
|
const emitReads = (mode) => emitKind("read", ({ pathFragments, message }) => ({ pathFragments, message }), (policy) => policy.mode === mode);
|
|
@@ -24045,7 +24075,26 @@ export const ToolPolicies = async () => ({
|
|
|
24045
24075
|
`;
|
|
24046
24076
|
}
|
|
24047
24077
|
async function writeToolPoliciesPlugin(policies) {
|
|
24048
|
-
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];
|
|
24049
24098
|
}
|
|
24050
24099
|
async function walkFiles(dir, depth = 6) {
|
|
24051
24100
|
if (depth === 0)
|
|
@@ -24147,70 +24196,33 @@ export const ToolPolicies = async () => ({
|
|
|
24147
24196
|
}
|
|
24148
24197
|
});
|
|
24149
24198
|
|
|
24150
|
-
// dist/opencode-integration/
|
|
24151
|
-
var
|
|
24152
|
-
"dist/opencode-integration/
|
|
24199
|
+
// dist/opencode-integration/plugins/index.js
|
|
24200
|
+
var require_plugins3 = __commonJS({
|
|
24201
|
+
"dist/opencode-integration/plugins/index.js"(exports2) {
|
|
24153
24202
|
"use strict";
|
|
24154
24203
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
24155
|
-
exports2.
|
|
24156
|
-
exports2.
|
|
24157
|
-
|
|
24158
|
-
|
|
24159
|
-
|
|
24160
|
-
var
|
|
24161
|
-
|
|
24162
|
-
|
|
24163
|
-
|
|
24164
|
-
|
|
24165
|
-
|
|
24166
|
-
|
|
24167
|
-
|
|
24168
|
-
|
|
24169
|
-
|
|
24170
|
-
const list = tool === "batch-write" ? args.files : tool === "multi-edit" ? args.edits : void 0;
|
|
24171
|
-
if (!list)
|
|
24172
|
-
return [];
|
|
24173
|
-
return list.map((item) => item.path).filter((p) => typeof p === "string");
|
|
24174
|
-
}
|
|
24175
|
-
var GUARD_PLUGIN_FILENAME = "generated-files-guard.ts";
|
|
24176
|
-
function buildGeneratedFilesGuardSource() {
|
|
24177
|
-
return `// Generated by @wix/ditto-codegen (generated-files-guard). Do not edit.
|
|
24178
|
-
const ERC_MANIFEST_RE = /${ERC_MANIFEST_RE.source}/;
|
|
24179
|
-
const GUARD_MESSAGE = ${JSON.stringify(exports2.GUARD_MESSAGE)};
|
|
24180
|
-
|
|
24181
|
-
function extractWritePaths(tool, args) {
|
|
24182
|
-
if (tool === "${"write"}" || tool === "${"edit"}") {
|
|
24183
|
-
return typeof args.filePath === "string" ? [args.filePath] : [];
|
|
24184
|
-
}
|
|
24185
|
-
const list =
|
|
24186
|
-
tool === "${"batch-write"}" ? args.files : tool === "${"multi-edit"}" ? args.edits : undefined;
|
|
24187
|
-
if (!list) return [];
|
|
24188
|
-
return list
|
|
24189
|
-
.map((item) => item.path)
|
|
24190
|
-
.filter((p) => typeof p === "string");
|
|
24191
|
-
}
|
|
24192
|
-
|
|
24193
|
-
export const GeneratedFilesGuard = async () => ({
|
|
24194
|
-
"tool.execute.before": async (input, output) => {
|
|
24195
|
-
const blocked = extractWritePaths(input.tool, output.args).filter((p) =>
|
|
24196
|
-
ERC_MANIFEST_RE.test(p),
|
|
24197
|
-
);
|
|
24198
|
-
if (blocked.length > 0) {
|
|
24199
|
-
throw new Error(GUARD_MESSAGE + " (blocked: " + blocked.join(", ") + ")");
|
|
24200
|
-
}
|
|
24201
|
-
},
|
|
24202
|
-
});
|
|
24203
|
-
`;
|
|
24204
|
-
}
|
|
24205
|
-
async function writeGeneratedFilesGuardPlugin() {
|
|
24206
|
-
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
|
+
]);
|
|
24207
24219
|
}
|
|
24208
24220
|
}
|
|
24209
24221
|
});
|
|
24210
24222
|
|
|
24211
|
-
// dist/plugin-host.js
|
|
24223
|
+
// dist/plugin-system/plugin-host.js
|
|
24212
24224
|
var require_plugin_host = __commonJS({
|
|
24213
|
-
"dist/plugin-host.js"(exports2) {
|
|
24225
|
+
"dist/plugin-system/plugin-host.js"(exports2) {
|
|
24214
24226
|
"use strict";
|
|
24215
24227
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
24216
24228
|
exports2.buildPluginHost = void 0;
|
|
@@ -24230,9 +24242,9 @@ var require_plugin_host = __commonJS({
|
|
|
24230
24242
|
}
|
|
24231
24243
|
});
|
|
24232
24244
|
|
|
24233
|
-
// dist/plugin-artifacts.js
|
|
24245
|
+
// dist/plugin-system/plugin-artifacts.js
|
|
24234
24246
|
var require_plugin_artifacts = __commonJS({
|
|
24235
|
-
"dist/plugin-artifacts.js"(exports2) {
|
|
24247
|
+
"dist/plugin-system/plugin-artifacts.js"(exports2) {
|
|
24236
24248
|
"use strict";
|
|
24237
24249
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
24238
24250
|
exports2.collectPluginArtifacts = collectPluginArtifacts;
|
|
@@ -24256,9 +24268,9 @@ var require_plugin_artifacts = __commonJS({
|
|
|
24256
24268
|
}
|
|
24257
24269
|
});
|
|
24258
24270
|
|
|
24259
|
-
// dist/fetch-scheduler.js
|
|
24271
|
+
// dist/jobs/fetch-scheduler.js
|
|
24260
24272
|
var require_fetch_scheduler = __commonJS({
|
|
24261
|
-
"dist/fetch-scheduler.js"(exports2) {
|
|
24273
|
+
"dist/jobs/fetch-scheduler.js"(exports2) {
|
|
24262
24274
|
"use strict";
|
|
24263
24275
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
24264
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;
|
|
@@ -24408,21 +24420,21 @@ var require_fetch_scheduler = __commonJS({
|
|
|
24408
24420
|
}
|
|
24409
24421
|
});
|
|
24410
24422
|
|
|
24411
|
-
// dist/nudge-listener-server.js
|
|
24423
|
+
// dist/jobs/nudge-listener-server.js
|
|
24412
24424
|
var require_nudge_listener_server = __commonJS({
|
|
24413
|
-
"dist/nudge-listener-server.js"(exports2) {
|
|
24425
|
+
"dist/jobs/nudge-listener-server.js"(exports2) {
|
|
24414
24426
|
"use strict";
|
|
24415
24427
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
24416
|
-
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;
|
|
24417
24429
|
var node_http_1 = require("node:http");
|
|
24418
24430
|
var logger_12 = require_logger();
|
|
24419
24431
|
var utils_12 = require_utils9();
|
|
24420
24432
|
var fetch_scheduler_1 = require_fetch_scheduler();
|
|
24421
24433
|
exports2.JOB_FETCH_PORT = 52402;
|
|
24422
24434
|
exports2.JOB_FETCH_PATH = "/_wix/codegen/fetch-jobs";
|
|
24423
|
-
|
|
24435
|
+
var JOB_ID_PATTERN = /^[A-Za-z0-9_-]{1,64}$/;
|
|
24424
24436
|
exports2.MAX_LOGGED_PATH_LENGTH = 128;
|
|
24425
|
-
|
|
24437
|
+
var BIND_RETRIES = 5;
|
|
24426
24438
|
exports2.BIND_RETRY_DELAY_MS = 300;
|
|
24427
24439
|
var NudgeListenerServer = class {
|
|
24428
24440
|
constructor(deps, port = exports2.JOB_FETCH_PORT) {
|
|
@@ -24474,7 +24486,7 @@ var require_nudge_listener_server = __commonJS({
|
|
|
24474
24486
|
try {
|
|
24475
24487
|
return await this.listenOnce();
|
|
24476
24488
|
} catch (error) {
|
|
24477
|
-
const inUse = error?.code === "EADDRINUSE" && attempt <
|
|
24489
|
+
const inUse = error?.code === "EADDRINUSE" && attempt < BIND_RETRIES;
|
|
24478
24490
|
if (!inUse)
|
|
24479
24491
|
throw error;
|
|
24480
24492
|
await (0, utils_12.delay)(exports2.BIND_RETRY_DELAY_MS);
|
|
@@ -24522,7 +24534,7 @@ var require_nudge_listener_server = __commonJS({
|
|
|
24522
24534
|
return;
|
|
24523
24535
|
}
|
|
24524
24536
|
const nudgedId = url.searchParams.get("jobId");
|
|
24525
|
-
const usable = nudgedId === null ||
|
|
24537
|
+
const usable = nudgedId === null || JOB_ID_PATTERN.test(nudgedId);
|
|
24526
24538
|
if (!usable) {
|
|
24527
24539
|
logger_12.logger.warn("[JobFetch] Nudge carried an unusable jobId", {
|
|
24528
24540
|
length: nudgedId.length
|
|
@@ -24546,9 +24558,9 @@ var require_nudge_listener_server = __commonJS({
|
|
|
24546
24558
|
}
|
|
24547
24559
|
});
|
|
24548
24560
|
|
|
24549
|
-
// dist/job-fetching.js
|
|
24561
|
+
// dist/jobs/job-fetching.js
|
|
24550
24562
|
var require_job_fetching = __commonJS({
|
|
24551
|
-
"dist/job-fetching.js"(exports2) {
|
|
24563
|
+
"dist/jobs/job-fetching.js"(exports2) {
|
|
24552
24564
|
"use strict";
|
|
24553
24565
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
24554
24566
|
exports2.JobDeliveryMode = void 0;
|
|
@@ -24638,10 +24650,8 @@ var logger_1 = require_logger();
|
|
|
24638
24650
|
var skills_installer_1 = require_skills_installer();
|
|
24639
24651
|
var rules_writer_1 = require_rules_writer();
|
|
24640
24652
|
var tools_writer_1 = require_tools_writer();
|
|
24641
|
-
var
|
|
24653
|
+
var plugins_1 = require_plugins3();
|
|
24642
24654
|
var skills_override_1 = require_skills_override();
|
|
24643
|
-
var generated_files_guard_1 = require_generated_files_guard();
|
|
24644
|
-
var subagent_tool_logger_1 = require_subagent_tool_logger();
|
|
24645
24655
|
var plugin_artifacts_1 = require_plugin_artifacts();
|
|
24646
24656
|
var config_1 = require_config();
|
|
24647
24657
|
var environments_1 = require_environments();
|
|
@@ -24725,11 +24735,9 @@ async function initOpenCode() {
|
|
|
24725
24735
|
]),
|
|
24726
24736
|
(0, skills_installer_1.applySkillsOverride)((0, codegen_flow_helpers_1.getOutputPath)(), logger_1.logger),
|
|
24727
24737
|
(0, tools_writer_1.writeToolFiles)(pluginArtifacts.tools),
|
|
24728
|
-
(0,
|
|
24729
|
-
(0, subagent_tool_logger_1.writeSubagentToolLoggerPlugin)(),
|
|
24730
|
-
(0, tool_policies_1.writeToolPoliciesPlugin)(toolPolicies)
|
|
24738
|
+
(0, plugins_1.writeGeneratedPlugins)(toolPolicies)
|
|
24731
24739
|
]);
|
|
24732
|
-
void (0,
|
|
24740
|
+
void (0, plugins_1.validateToolPolicies)(toolPolicies, [
|
|
24733
24741
|
skills_override_1.SKILLS_DIR,
|
|
24734
24742
|
(0, path_1.join)((0, codegen_flow_helpers_1.getOutputPath)(), ".agents", "skills")
|
|
24735
24743
|
]);
|