@wix/ditto-codegen-public 1.0.431 → 1.0.433
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 +147 -45
- package/package.json +2 -2
package/dist/out.js
CHANGED
|
@@ -11458,7 +11458,19 @@ INSTRUCTIONS:
|
|
|
11458
11458
|
function buildIterationPrompt(chatHistory) {
|
|
11459
11459
|
return buildPrompt(buildIterationBasePrompt(chatHistory));
|
|
11460
11460
|
}
|
|
11461
|
-
|
|
11461
|
+
var INCREMENTAL_WRITE_STRATEGY = `WHY THE PREVIOUS SESSION FAILED:
|
|
11462
|
+
A single tool call tried to produce more content than one turn can stream, so it was cut off
|
|
11463
|
+
and nothing was saved. The same approach will fail again.
|
|
11464
|
+
|
|
11465
|
+
RECOVERY STRATEGY:
|
|
11466
|
+
1. One file per tool call, ~200 lines or 1,500 words at most.
|
|
11467
|
+
2. For anything larger, write the first section, then append the rest with follow-up edits,
|
|
11468
|
+
or split it across several files and import them.
|
|
11469
|
+
3. Prefer many small steps over one big step.`;
|
|
11470
|
+
function buildRecoveryPrompt(originalPrompt, filesChanged, error, failureReason) {
|
|
11471
|
+
const strategy = failureReason === "stall" ? `
|
|
11472
|
+
${INCREMENTAL_WRITE_STRATEGY}
|
|
11473
|
+
` : "";
|
|
11462
11474
|
return buildPrompt(`You are continuing a code generation task that was interrupted due to a session error.
|
|
11463
11475
|
|
|
11464
11476
|
ORIGINAL TASK:
|
|
@@ -11469,7 +11481,7 @@ ${(0, prompt_utils_1.formatFilesList)(filesChanged)}
|
|
|
11469
11481
|
|
|
11470
11482
|
PREVIOUS SESSION ERROR:
|
|
11471
11483
|
${error}
|
|
11472
|
-
|
|
11484
|
+
${strategy}
|
|
11473
11485
|
INSTRUCTIONS:
|
|
11474
11486
|
1. Review the files listed above that were already created/modified in the previous session
|
|
11475
11487
|
2. Continue with any remaining work needed to fulfill the original task
|
|
@@ -16517,13 +16529,14 @@ var require_process_manager = __commonJS({
|
|
|
16517
16529
|
"dist/opencode-integration/process-manager.js"(exports2) {
|
|
16518
16530
|
"use strict";
|
|
16519
16531
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16520
|
-
exports2.KILL_GRACE_PERIOD_MS = exports2.IDLE_CHECK_INTERVAL_MS = exports2.IDLE_TIMEOUT_MS = void 0;
|
|
16532
|
+
exports2.MAX_STARTS_WITHOUT_FINISH = exports2.KILL_GRACE_PERIOD_MS = exports2.IDLE_CHECK_INTERVAL_MS = exports2.IDLE_TIMEOUT_MS = void 0;
|
|
16521
16533
|
exports2.clearTimers = clearTimers;
|
|
16522
16534
|
exports2.killProcess = killProcess;
|
|
16523
16535
|
var logger_12 = require_logger();
|
|
16524
16536
|
exports2.IDLE_TIMEOUT_MS = 6e5;
|
|
16525
16537
|
exports2.IDLE_CHECK_INTERVAL_MS = 15e3;
|
|
16526
16538
|
exports2.KILL_GRACE_PERIOD_MS = 5e3;
|
|
16539
|
+
exports2.MAX_STARTS_WITHOUT_FINISH = 3;
|
|
16527
16540
|
function clearTimers(timers) {
|
|
16528
16541
|
if (timers.timeoutId) {
|
|
16529
16542
|
clearTimeout(timers.timeoutId);
|
|
@@ -16570,24 +16583,13 @@ var require_result_builder = __commonJS({
|
|
|
16570
16583
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16571
16584
|
exports2.createTimeoutResult = createTimeoutResult;
|
|
16572
16585
|
exports2.createSuccessResult = createSuccessResult;
|
|
16586
|
+
exports2.createFailedResult = createFailedResult;
|
|
16573
16587
|
exports2.createSpawnErrorResult = createSpawnErrorResult;
|
|
16574
16588
|
var ditto_codegen_types_12 = require_dist4();
|
|
16575
16589
|
var tool_usage_1 = require_tool_usage();
|
|
16576
16590
|
var parser_1 = require_parser();
|
|
16577
16591
|
function createTimeoutResult(message, stdout, stderr, startTime) {
|
|
16578
|
-
return
|
|
16579
|
-
success: false,
|
|
16580
|
-
exitCode: null,
|
|
16581
|
-
stdout,
|
|
16582
|
-
stderr,
|
|
16583
|
-
agentMessage: (0, parser_1.parseAnswerText)(stdout),
|
|
16584
|
-
error: new ditto_codegen_types_12.TimeoutError(message),
|
|
16585
|
-
durationMs: Date.now() - startTime,
|
|
16586
|
-
requiredPermissions: [],
|
|
16587
|
-
usage: (0, parser_1.parseUsageStats)(stdout),
|
|
16588
|
-
skillsUsed: [],
|
|
16589
|
-
toolUsage: (0, tool_usage_1.emptyToolUsage)()
|
|
16590
|
-
};
|
|
16592
|
+
return createFailedResult(new ditto_codegen_types_12.TimeoutError(message), stdout, stderr, startTime);
|
|
16591
16593
|
}
|
|
16592
16594
|
function createSuccessResult(code, stdout, stderr, startTime) {
|
|
16593
16595
|
return {
|
|
@@ -16608,6 +16610,21 @@ var require_result_builder = __commonJS({
|
|
|
16608
16610
|
toolUsage: (0, tool_usage_1.emptyToolUsage)()
|
|
16609
16611
|
};
|
|
16610
16612
|
}
|
|
16613
|
+
function createFailedResult(error, stdout, stderr, startTime) {
|
|
16614
|
+
return {
|
|
16615
|
+
success: false,
|
|
16616
|
+
exitCode: null,
|
|
16617
|
+
stdout,
|
|
16618
|
+
stderr,
|
|
16619
|
+
agentMessage: (0, parser_1.parseAnswerText)(stdout),
|
|
16620
|
+
error,
|
|
16621
|
+
durationMs: Date.now() - startTime,
|
|
16622
|
+
requiredPermissions: [],
|
|
16623
|
+
usage: (0, parser_1.parseUsageStats)(stdout),
|
|
16624
|
+
skillsUsed: [],
|
|
16625
|
+
toolUsage: (0, tool_usage_1.emptyToolUsage)()
|
|
16626
|
+
};
|
|
16627
|
+
}
|
|
16611
16628
|
function createSpawnErrorResult(errorMessage, stdout, stderr, startTime) {
|
|
16612
16629
|
return {
|
|
16613
16630
|
success: false,
|
|
@@ -16636,12 +16653,14 @@ var require_process_handlers = __commonJS({
|
|
|
16636
16653
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16637
16654
|
exports2.setupTotalTimeout = setupTotalTimeout;
|
|
16638
16655
|
exports2.setupIdleWatchdog = setupIdleWatchdog;
|
|
16656
|
+
exports2.trackTurnProgress = trackTurnProgress;
|
|
16639
16657
|
exports2.setupStdoutHandler = setupStdoutHandler;
|
|
16640
16658
|
exports2.setupStderrHandler = setupStderrHandler;
|
|
16641
16659
|
exports2.setupCloseHandler = setupCloseHandler;
|
|
16642
16660
|
exports2.setupErrorHandler = setupErrorHandler;
|
|
16643
16661
|
var parser_1 = require_parser();
|
|
16644
16662
|
var config_12 = require_config();
|
|
16663
|
+
var ditto_codegen_types_12 = require_dist4();
|
|
16645
16664
|
var process_manager_1 = require_process_manager();
|
|
16646
16665
|
var result_builder_1 = require_result_builder();
|
|
16647
16666
|
var logger_12 = require_logger();
|
|
@@ -16666,6 +16685,49 @@ var require_process_handlers = __commonJS({
|
|
|
16666
16685
|
}
|
|
16667
16686
|
}, process_manager_1.IDLE_CHECK_INTERVAL_MS);
|
|
16668
16687
|
}
|
|
16688
|
+
function trackTurnProgress(state, event) {
|
|
16689
|
+
if (event.type === "step_finish") {
|
|
16690
|
+
state.startsWithoutFinish = 0;
|
|
16691
|
+
return;
|
|
16692
|
+
}
|
|
16693
|
+
if (event.type !== "step_start")
|
|
16694
|
+
return;
|
|
16695
|
+
state.startsWithoutFinish += 1;
|
|
16696
|
+
if (state.startsWithoutFinish < process_manager_1.MAX_STARTS_WITHOUT_FINISH)
|
|
16697
|
+
return;
|
|
16698
|
+
throw new ditto_codegen_types_12.TimeoutError(`Process stalled - ${process_manager_1.MAX_STARTS_WITHOUT_FINISH} turns started without completing`);
|
|
16699
|
+
}
|
|
16700
|
+
function handleStdoutLine(ctx, line, trackProgress) {
|
|
16701
|
+
ctx.taskTracker.processLine(line);
|
|
16702
|
+
if (!line.trim())
|
|
16703
|
+
return null;
|
|
16704
|
+
let event = null;
|
|
16705
|
+
try {
|
|
16706
|
+
event = JSON.parse(line);
|
|
16707
|
+
logger_12.logger.debug("[OpenCode] stdout", (0, parser_1.summarizeOpenCodeLine)(event));
|
|
16708
|
+
} catch {
|
|
16709
|
+
logger_12.logger.debug("[OpenCode] stdout", { line: line.slice(0, 200) });
|
|
16710
|
+
}
|
|
16711
|
+
if (!event || !trackProgress)
|
|
16712
|
+
return null;
|
|
16713
|
+
try {
|
|
16714
|
+
trackTurnProgress(ctx.state, event);
|
|
16715
|
+
return null;
|
|
16716
|
+
} catch (error) {
|
|
16717
|
+
return error instanceof ditto_codegen_types_12.TimeoutError ? error : new ditto_codegen_types_12.TimeoutError(String(error));
|
|
16718
|
+
}
|
|
16719
|
+
}
|
|
16720
|
+
function failStalledRun(ctx, stall) {
|
|
16721
|
+
logger_12.logger.warn("[OpenCode] Killing stalled process", {
|
|
16722
|
+
error: stall.message,
|
|
16723
|
+
startsWithoutFinish: ctx.state.startsWithoutFinish
|
|
16724
|
+
});
|
|
16725
|
+
(0, process_manager_1.killProcess)(ctx.child, ctx.state.resolved);
|
|
16726
|
+
ctx.finalize({
|
|
16727
|
+
...(0, result_builder_1.createFailedResult)(stall, ctx.state.stdout, ctx.state.stderr, ctx.startTime),
|
|
16728
|
+
stalled: true
|
|
16729
|
+
});
|
|
16730
|
+
}
|
|
16669
16731
|
function setupStdoutHandler(ctx, onStdout) {
|
|
16670
16732
|
ctx.child?.stdout?.on("data", (data) => {
|
|
16671
16733
|
const text = data.toString();
|
|
@@ -16674,21 +16736,18 @@ var require_process_handlers = __commonJS({
|
|
|
16674
16736
|
ctx.state.lineBuffer += text;
|
|
16675
16737
|
const lines = ctx.state.lineBuffer.split("\n");
|
|
16676
16738
|
ctx.state.lineBuffer = lines.pop() || "";
|
|
16739
|
+
let stall = null;
|
|
16677
16740
|
for (const line of lines) {
|
|
16678
|
-
ctx.
|
|
16679
|
-
|
|
16680
|
-
try {
|
|
16681
|
-
logger_12.logger.debug("[OpenCode] stdout", (0, parser_1.summarizeOpenCodeLine)(JSON.parse(line)));
|
|
16682
|
-
} catch {
|
|
16683
|
-
logger_12.logger.debug("[OpenCode] stdout", { line: line.slice(0, 200) });
|
|
16684
|
-
}
|
|
16685
|
-
}
|
|
16741
|
+
const found = handleStdoutLine(ctx, line, !stall && !ctx.state.resolved);
|
|
16742
|
+
stall ??= found;
|
|
16686
16743
|
}
|
|
16687
16744
|
if (onStdout) {
|
|
16688
16745
|
onStdout(text);
|
|
16689
16746
|
} else {
|
|
16690
16747
|
process.stdout.write(text);
|
|
16691
16748
|
}
|
|
16749
|
+
if (stall && !ctx.state.resolved)
|
|
16750
|
+
failStalledRun(ctx, stall);
|
|
16692
16751
|
});
|
|
16693
16752
|
}
|
|
16694
16753
|
function setupStderrHandler(ctx, onStderr) {
|
|
@@ -16725,6 +16784,7 @@ var require_executor = __commonJS({
|
|
|
16725
16784
|
"use strict";
|
|
16726
16785
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
16727
16786
|
exports2.notifyValidatorOutputsToSlack = notifyValidatorOutputsToSlack;
|
|
16787
|
+
exports2.classifyAttempt = classifyAttempt;
|
|
16728
16788
|
exports2.executeOpenCode = executeOpenCode;
|
|
16729
16789
|
exports2.resolveFinalRunCost = resolveFinalRunCost;
|
|
16730
16790
|
var child_process_1 = require("child_process");
|
|
@@ -16742,6 +16802,7 @@ var require_executor = __commonJS({
|
|
|
16742
16802
|
var process_handlers_1 = require_process_handlers();
|
|
16743
16803
|
var logger_12 = require_logger();
|
|
16744
16804
|
var MAX_RETRIES = 5;
|
|
16805
|
+
var MAX_STALL_ATTEMPTS = 2;
|
|
16745
16806
|
async function notifyValidatorOutputsToSlack(stdout, costUsd) {
|
|
16746
16807
|
try {
|
|
16747
16808
|
const store = job_context_storage_12.jobContextStorage.getStore();
|
|
@@ -16773,12 +16834,33 @@ var require_executor = __commonJS({
|
|
|
16773
16834
|
});
|
|
16774
16835
|
}
|
|
16775
16836
|
}
|
|
16837
|
+
function failureReason(result) {
|
|
16838
|
+
if (result.stalled)
|
|
16839
|
+
return "stall";
|
|
16840
|
+
if ((0, parser_1.hasSessionError)(result.stdout))
|
|
16841
|
+
return "session error";
|
|
16842
|
+
if (result.error instanceof ditto_codegen_types_12.ProcessExecutionError) {
|
|
16843
|
+
return "process execution error";
|
|
16844
|
+
}
|
|
16845
|
+
if (!result.success && result.error instanceof ditto_codegen_types_12.TimeoutError) {
|
|
16846
|
+
return "timeout";
|
|
16847
|
+
}
|
|
16848
|
+
return null;
|
|
16849
|
+
}
|
|
16850
|
+
function classifyAttempt(result, stalls) {
|
|
16851
|
+
const reason = failureReason(result);
|
|
16852
|
+
if (!reason)
|
|
16853
|
+
return { retryable: false, reason: null };
|
|
16854
|
+
return { retryable: stalls < MAX_STALL_ATTEMPTS, reason };
|
|
16855
|
+
}
|
|
16776
16856
|
async function executeOpenCode(options) {
|
|
16777
16857
|
let lastResult = null;
|
|
16778
16858
|
let accumulatedUsage = (0, parser_1.createEmptyUsageStats)();
|
|
16779
16859
|
const accumulatedSkills = [];
|
|
16780
16860
|
const toolUsage = new tool_usage_1.ToolUsageCollector();
|
|
16781
16861
|
let currentPrompt = options.prompt;
|
|
16862
|
+
let lastFailureReason = null;
|
|
16863
|
+
let stalls = 0;
|
|
16782
16864
|
let continueSession = options.continueSession ?? false;
|
|
16783
16865
|
const env = (0, config_12.getOpenCodeEnv)(options.projectId, job_context_storage_12.jobContextStorage.getStore()?.kind);
|
|
16784
16866
|
const statsBaseline = await (0, cost_tracker_1.fetchOpenCodeStats)(options.outputPath, env);
|
|
@@ -16786,20 +16868,25 @@ var require_executor = __commonJS({
|
|
|
16786
16868
|
logger_12.logger.debug("[OpenCode] Stats baseline before run", { baselineCost });
|
|
16787
16869
|
for (let attempt = 1; attempt <= MAX_RETRIES; attempt++) {
|
|
16788
16870
|
if (attempt > 1) {
|
|
16789
|
-
|
|
16871
|
+
const failureDetail = lastResult?.error?.message || lastResult?.stderr || "Process timed out";
|
|
16872
|
+
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) });
|
|
16790
16873
|
const filesChanged = await (0, git_file_changes_1.collectGitFileChanges)(options.outputPath, options.gitBaseline);
|
|
16791
|
-
currentPrompt = (0, prompts_1.buildRecoveryPrompt)(options.prompt, filesChanged,
|
|
16874
|
+
currentPrompt = (0, prompts_1.buildRecoveryPrompt)(options.prompt, filesChanged, failureDetail, lastFailureReason);
|
|
16792
16875
|
continueSession = false;
|
|
16793
16876
|
}
|
|
16794
16877
|
const result = await executeOpenCodeOnce({ ...options, prompt: currentPrompt, continueSession }, attempt, toolUsage);
|
|
16795
16878
|
accumulatedUsage = (0, parser_1.mergeUsageStats)(accumulatedUsage, result.usage);
|
|
16796
16879
|
accumulatedSkills.push(...result.skillsUsed);
|
|
16797
|
-
|
|
16798
|
-
|
|
16799
|
-
const
|
|
16800
|
-
|
|
16801
|
-
|
|
16802
|
-
|
|
16880
|
+
if (result.stalled)
|
|
16881
|
+
stalls += 1;
|
|
16882
|
+
const { retryable, reason } = classifyAttempt(result, stalls);
|
|
16883
|
+
if (!retryable) {
|
|
16884
|
+
if (reason) {
|
|
16885
|
+
logger_12.logger.warn(`[OpenCode] Not retrying after ${reason}`, {
|
|
16886
|
+
attempt,
|
|
16887
|
+
stalls
|
|
16888
|
+
});
|
|
16889
|
+
}
|
|
16803
16890
|
accumulatedUsage = await resolveFinalRunCost(accumulatedUsage, options, baselineCost);
|
|
16804
16891
|
const finalResult2 = {
|
|
16805
16892
|
...result,
|
|
@@ -16812,10 +16899,11 @@ var require_executor = __commonJS({
|
|
|
16812
16899
|
return finalResult2;
|
|
16813
16900
|
}
|
|
16814
16901
|
lastResult = result;
|
|
16815
|
-
|
|
16902
|
+
lastFailureReason = reason;
|
|
16816
16903
|
logger_12.logger.warn(`[OpenCode] Attempt failed due to ${reason}, will retry`, {
|
|
16817
16904
|
attempt,
|
|
16818
|
-
maxRetries: MAX_RETRIES
|
|
16905
|
+
maxRetries: MAX_RETRIES,
|
|
16906
|
+
detail: (result.error?.message || result.stderr || "").slice(0, 500)
|
|
16819
16907
|
});
|
|
16820
16908
|
}
|
|
16821
16909
|
logger_12.logger.warn("[OpenCode] All retry attempts exhausted", {
|
|
@@ -16866,7 +16954,8 @@ var require_executor = __commonJS({
|
|
|
16866
16954
|
stderr: "",
|
|
16867
16955
|
lineBuffer: "",
|
|
16868
16956
|
lastOutputTime: Date.now(),
|
|
16869
|
-
resolved: false
|
|
16957
|
+
resolved: false,
|
|
16958
|
+
startsWithoutFinish: 0
|
|
16870
16959
|
};
|
|
16871
16960
|
const timers = {
|
|
16872
16961
|
timeoutId: null,
|
|
@@ -22133,11 +22222,19 @@ var require_biEvents = __commonJS({
|
|
|
22133
22222
|
var types_1 = require_types_impl();
|
|
22134
22223
|
var biLogger_1 = require_biLogger();
|
|
22135
22224
|
var logger_12 = require_logger();
|
|
22225
|
+
var MAX_JOB_INPUT_LENGTH = 3e4;
|
|
22226
|
+
var TRUNCATION_SUFFIX = "\u2026";
|
|
22136
22227
|
var JOB_STATUS_MAP = {
|
|
22137
22228
|
COMPLETED: "successful",
|
|
22138
22229
|
FAILED: "error",
|
|
22139
22230
|
CANCELLED: "stopped"
|
|
22140
22231
|
};
|
|
22232
|
+
function truncateJobInput(jobInput) {
|
|
22233
|
+
if (!jobInput || jobInput.length <= MAX_JOB_INPUT_LENGTH) {
|
|
22234
|
+
return jobInput;
|
|
22235
|
+
}
|
|
22236
|
+
return jobInput.slice(0, MAX_JOB_INPUT_LENGTH - TRUNCATION_SUFFIX.length) + TRUNCATION_SUFFIX;
|
|
22237
|
+
}
|
|
22141
22238
|
function skillsArrayToMap(skills) {
|
|
22142
22239
|
const map = {};
|
|
22143
22240
|
for (const skill of skills) {
|
|
@@ -22168,6 +22265,7 @@ var require_biEvents = __commonJS({
|
|
|
22168
22265
|
}
|
|
22169
22266
|
const codegenAgentParams = {
|
|
22170
22267
|
job_id: report.jobId,
|
|
22268
|
+
job_input: truncateJobInput(report.jobInput),
|
|
22171
22269
|
extra_data: report.extraData,
|
|
22172
22270
|
Job_cost: report.jobCost,
|
|
22173
22271
|
dev_machine_session_id: report.devMachineSessionId,
|
|
@@ -22377,7 +22475,7 @@ var require_opencode_init = __commonJS({
|
|
|
22377
22475
|
if (!store?.jobId || !store?.taskId) {
|
|
22378
22476
|
throw new Error("Job context not available - jobId and taskId are required");
|
|
22379
22477
|
}
|
|
22380
|
-
const { jobId, taskId, kind } = store;
|
|
22478
|
+
const { jobId, taskId, kind, userInput } = store;
|
|
22381
22479
|
const localJobContext = { jobId, taskId };
|
|
22382
22480
|
const environment = process.env.CODEGEN_ENVIRONMENT ?? types_1.Environment.UNKNOWN_ENVIRONMENT;
|
|
22383
22481
|
const flowStartTime = Date.now();
|
|
@@ -22397,7 +22495,8 @@ var require_opencode_init = __commonJS({
|
|
|
22397
22495
|
await (0, biEvents_1.reportSessionStart)({
|
|
22398
22496
|
...biBase,
|
|
22399
22497
|
taskModel: config_12.DEFAULT_MODEL,
|
|
22400
|
-
taskType: kind
|
|
22498
|
+
taskType: kind,
|
|
22499
|
+
jobInput: userInput
|
|
22401
22500
|
});
|
|
22402
22501
|
const outputPath = (0, codegen_flow_helpers_12.getOutputPath)();
|
|
22403
22502
|
const gitBaseline = await (0, git_file_changes_1.captureGitBaseline)(outputPath);
|
|
@@ -22590,7 +22689,7 @@ var require_opencode_iterate = __commonJS({
|
|
|
22590
22689
|
if (!store?.jobId || !store?.taskId) {
|
|
22591
22690
|
throw new Error("Job context not available - jobId and taskId are required");
|
|
22592
22691
|
}
|
|
22593
|
-
const { jobId, taskId, kind } = store;
|
|
22692
|
+
const { jobId, taskId, kind, userInput } = store;
|
|
22594
22693
|
const localJobContext = { jobId, taskId };
|
|
22595
22694
|
const environment = process.env.CODEGEN_ENVIRONMENT ?? types_1.Environment.UNKNOWN_ENVIRONMENT;
|
|
22596
22695
|
const flowStartTime = Date.now();
|
|
@@ -22610,7 +22709,8 @@ var require_opencode_iterate = __commonJS({
|
|
|
22610
22709
|
await (0, biEvents_1.reportSessionStart)({
|
|
22611
22710
|
...biBase,
|
|
22612
22711
|
taskModel: config_12.DEFAULT_MODEL,
|
|
22613
|
-
taskType: kind
|
|
22712
|
+
taskType: kind,
|
|
22713
|
+
jobInput: userInput
|
|
22614
22714
|
});
|
|
22615
22715
|
const outputPath = (0, codegen_flow_helpers_12.getOutputPath)();
|
|
22616
22716
|
const gitBaseline = await (0, git_file_changes_1.captureGitBaseline)(outputPath);
|
|
@@ -22787,7 +22887,7 @@ var require_opencode_ask = __commonJS({
|
|
|
22787
22887
|
if (!store?.jobId || !store?.taskId) {
|
|
22788
22888
|
throw new Error("Job context not available - jobId and taskId are required");
|
|
22789
22889
|
}
|
|
22790
|
-
const { jobId, taskId, kind } = store;
|
|
22890
|
+
const { jobId, taskId, kind, userInput } = store;
|
|
22791
22891
|
const localJobContext = { jobId, taskId };
|
|
22792
22892
|
const environment = process.env.CODEGEN_ENVIRONMENT ?? types_1.Environment.UNKNOWN_ENVIRONMENT;
|
|
22793
22893
|
const flowStartTime = Date.now();
|
|
@@ -22807,7 +22907,8 @@ var require_opencode_ask = __commonJS({
|
|
|
22807
22907
|
await (0, biEvents_1.reportSessionStart)({
|
|
22808
22908
|
...biBase,
|
|
22809
22909
|
taskModel: config_12.DEFAULT_MODEL,
|
|
22810
|
-
taskType: kind
|
|
22910
|
+
taskType: kind,
|
|
22911
|
+
jobInput: userInput
|
|
22811
22912
|
});
|
|
22812
22913
|
const outputPath = (0, codegen_flow_helpers_12.getOutputPath)();
|
|
22813
22914
|
const gitBaseline = await (0, git_file_changes_1.captureGitBaseline)(outputPath);
|
|
@@ -23637,11 +23738,10 @@ async function main(ctx) {
|
|
|
23637
23738
|
var getFirstTask = (job) => {
|
|
23638
23739
|
return job.tasks?.[0];
|
|
23639
23740
|
};
|
|
23640
|
-
function buildPluginsForTask(jobId, taskId, kind,
|
|
23741
|
+
function buildPluginsForTask(jobId, taskId, kind, userInput) {
|
|
23641
23742
|
if (kind !== CodeGenService_1.TaskKind.INIT_CODEGEN && kind !== CodeGenService_1.TaskKind.ITERATE_CODEGEN && kind !== CodeGenService_1.TaskKind.FIX_GIT_CONFLICTS) {
|
|
23642
23743
|
return void 0;
|
|
23643
23744
|
}
|
|
23644
|
-
const userInput = extractUserInput(kind, payload);
|
|
23645
23745
|
const host = (0, plugin_host_1.buildPluginHost)();
|
|
23646
23746
|
return (0, environments_1.getCodegenEnvironmentConfig)().plugins.map((factory) => factory({
|
|
23647
23747
|
host,
|
|
@@ -23659,7 +23759,7 @@ function extractUserInput(kind, payload) {
|
|
|
23659
23759
|
if (kind === CodeGenService_1.TaskKind.INIT_CODEGEN) {
|
|
23660
23760
|
return payload.blueprint?.summary?.trim() || void 0;
|
|
23661
23761
|
}
|
|
23662
|
-
if (kind === CodeGenService_1.TaskKind.ITERATE_CODEGEN || kind === CodeGenService_1.TaskKind.FIX_GIT_CONFLICTS) {
|
|
23762
|
+
if (kind === CodeGenService_1.TaskKind.ITERATE_CODEGEN || kind === CodeGenService_1.TaskKind.FIX_GIT_CONFLICTS || kind === CodeGenService_1.TaskKind.ASK_CODEGEN) {
|
|
23663
23763
|
const history = payload.history ?? [];
|
|
23664
23764
|
for (let i = history.length - 1; i >= 0; i--) {
|
|
23665
23765
|
if (history[i].role === "USER") {
|
|
@@ -23680,12 +23780,14 @@ async function processJob(job) {
|
|
|
23680
23780
|
return;
|
|
23681
23781
|
}
|
|
23682
23782
|
const payload = task.input ?? task.payload ?? {};
|
|
23683
|
-
const
|
|
23783
|
+
const userInput = extractUserInput(task.kind, payload);
|
|
23784
|
+
const plugins = buildPluginsForTask(jobId, task.id, task.kind, userInput);
|
|
23684
23785
|
await job_context_storage_1.jobContextStorage.run({
|
|
23685
23786
|
jobId,
|
|
23686
23787
|
taskId: task.id,
|
|
23687
23788
|
kind: task.kind,
|
|
23688
23789
|
plugins,
|
|
23790
|
+
userInput,
|
|
23689
23791
|
metasiteId: context_1.ctx.metasiteId
|
|
23690
23792
|
}, async () => {
|
|
23691
23793
|
logger_1.logger.info("[Job] Start processing", { taskKind: task.kind });
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wix/ditto-codegen-public",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.433",
|
|
4
4
|
"description": "AI-powered Wix CLI app generator - standalone executable",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "node build.mjs",
|
|
@@ -29,5 +29,5 @@
|
|
|
29
29
|
"esbuild": "^0.27.2",
|
|
30
30
|
"vitest": "^4.0.16"
|
|
31
31
|
},
|
|
32
|
-
"falconPackageHash": "
|
|
32
|
+
"falconPackageHash": "1601a0c2e0fc0a29a1d23a9101dd1760a021d72adbd91767267f436d"
|
|
33
33
|
}
|