@wix/ditto-codegen-public 1.0.313 → 1.0.314
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 +118 -4
- package/package.json +2 -2
package/dist/out.js
CHANGED
|
@@ -12095,7 +12095,8 @@ var require_app_builder = __commonJS({
|
|
|
12095
12095
|
{ filename: "codegen-instructions.md", content: codegen_rules_1.CODEGEN_RULES }
|
|
12096
12096
|
],
|
|
12097
12097
|
askRules: [{ filename: "ask-instructions.md", content: ask_rules_1.ASK_RULES }],
|
|
12098
|
-
decisionCheckers: [pre_run_decision_1.checkSiteUIDecision]
|
|
12098
|
+
decisionCheckers: [pre_run_decision_1.checkSiteUIDecision],
|
|
12099
|
+
hooks: []
|
|
12099
12100
|
};
|
|
12100
12101
|
}
|
|
12101
12102
|
});
|
|
@@ -12113,20 +12114,93 @@ var require_studio_2 = __commonJS({
|
|
|
12113
12114
|
{ filename: "codegen-instructions.md", content: codegen_rules_1.CODEGEN_RULES }
|
|
12114
12115
|
],
|
|
12115
12116
|
askRules: [{ filename: "ask-instructions.md", content: ask_rules_1.ASK_RULES }],
|
|
12116
|
-
decisionCheckers: []
|
|
12117
|
+
decisionCheckers: [],
|
|
12118
|
+
hooks: []
|
|
12117
12119
|
};
|
|
12118
12120
|
}
|
|
12119
12121
|
});
|
|
12120
12122
|
|
|
12123
|
+
// dist/environments/hooks/run-hooks.js
|
|
12124
|
+
var require_run_hooks = __commonJS({
|
|
12125
|
+
"dist/environments/hooks/run-hooks.js"(exports2) {
|
|
12126
|
+
"use strict";
|
|
12127
|
+
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
12128
|
+
exports2.getActiveHooks = getActiveHooks;
|
|
12129
|
+
exports2.runOnToolUse = runOnToolUse;
|
|
12130
|
+
exports2.runOnFlowEnd = runOnFlowEnd;
|
|
12131
|
+
var logger_12 = require_logger();
|
|
12132
|
+
var job_context_storage_12 = require_job_context_storage();
|
|
12133
|
+
function getActiveHooks() {
|
|
12134
|
+
return job_context_storage_12.jobContextStorage.getStore()?.hooks ?? [];
|
|
12135
|
+
}
|
|
12136
|
+
async function runOnToolUse(hooks, event) {
|
|
12137
|
+
for (const hook of hooks) {
|
|
12138
|
+
if (!hook.onToolUse)
|
|
12139
|
+
continue;
|
|
12140
|
+
try {
|
|
12141
|
+
await hook.onToolUse(event);
|
|
12142
|
+
} catch (error) {
|
|
12143
|
+
logger_12.logger.error("[Hook] onToolUse failed", {
|
|
12144
|
+
hook: hook.name,
|
|
12145
|
+
error: error instanceof Error ? error.message : String(error)
|
|
12146
|
+
});
|
|
12147
|
+
}
|
|
12148
|
+
}
|
|
12149
|
+
}
|
|
12150
|
+
async function runOnFlowEnd(hooks, ctx) {
|
|
12151
|
+
for (const hook of hooks) {
|
|
12152
|
+
if (!hook.onFlowEnd)
|
|
12153
|
+
continue;
|
|
12154
|
+
try {
|
|
12155
|
+
await hook.onFlowEnd(ctx);
|
|
12156
|
+
} catch (hookError) {
|
|
12157
|
+
if (ctx.failed) {
|
|
12158
|
+
logger_12.logger.error("[Hook] onFlowEnd failed after flow failure", {
|
|
12159
|
+
hook: hook.name,
|
|
12160
|
+
error: hookError instanceof Error ? hookError.message : String(hookError)
|
|
12161
|
+
});
|
|
12162
|
+
continue;
|
|
12163
|
+
}
|
|
12164
|
+
throw hookError;
|
|
12165
|
+
}
|
|
12166
|
+
}
|
|
12167
|
+
}
|
|
12168
|
+
}
|
|
12169
|
+
});
|
|
12170
|
+
|
|
12171
|
+
// dist/environments/hooks/index.js
|
|
12172
|
+
var require_hooks = __commonJS({
|
|
12173
|
+
"dist/environments/hooks/index.js"(exports2) {
|
|
12174
|
+
"use strict";
|
|
12175
|
+
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
12176
|
+
exports2.runOnFlowEnd = exports2.runOnToolUse = exports2.getActiveHooks = void 0;
|
|
12177
|
+
var run_hooks_1 = require_run_hooks();
|
|
12178
|
+
Object.defineProperty(exports2, "getActiveHooks", { enumerable: true, get: function() {
|
|
12179
|
+
return run_hooks_1.getActiveHooks;
|
|
12180
|
+
} });
|
|
12181
|
+
Object.defineProperty(exports2, "runOnToolUse", { enumerable: true, get: function() {
|
|
12182
|
+
return run_hooks_1.runOnToolUse;
|
|
12183
|
+
} });
|
|
12184
|
+
Object.defineProperty(exports2, "runOnFlowEnd", { enumerable: true, get: function() {
|
|
12185
|
+
return run_hooks_1.runOnFlowEnd;
|
|
12186
|
+
} });
|
|
12187
|
+
}
|
|
12188
|
+
});
|
|
12189
|
+
|
|
12121
12190
|
// dist/environments/index.js
|
|
12122
12191
|
var require_environments = __commonJS({
|
|
12123
12192
|
"dist/environments/index.js"(exports2) {
|
|
12124
12193
|
"use strict";
|
|
12125
12194
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
12195
|
+
exports2.getActiveHooks = void 0;
|
|
12126
12196
|
exports2.getCodegenEnvironmentConfig = getCodegenEnvironmentConfig;
|
|
12127
12197
|
var types_1 = require_types_impl();
|
|
12128
12198
|
var app_builder_1 = require_app_builder();
|
|
12129
12199
|
var studio_2_1 = require_studio_2();
|
|
12200
|
+
var hooks_1 = require_hooks();
|
|
12201
|
+
Object.defineProperty(exports2, "getActiveHooks", { enumerable: true, get: function() {
|
|
12202
|
+
return hooks_1.getActiveHooks;
|
|
12203
|
+
} });
|
|
12130
12204
|
function getCodegenEnvironmentConfig(environment) {
|
|
12131
12205
|
switch (environment) {
|
|
12132
12206
|
case types_1.Environment.STUDIO_2:
|
|
@@ -12774,6 +12848,7 @@ var require_task_tracker = __commonJS({
|
|
|
12774
12848
|
var constants_1 = require_constants5();
|
|
12775
12849
|
var extension_handler_1 = require_extension_handler();
|
|
12776
12850
|
var category_handler_1 = require_category_handler();
|
|
12851
|
+
var hooks_1 = require_hooks();
|
|
12777
12852
|
var OpenCodeTaskTracker = class {
|
|
12778
12853
|
constructor(workingDirectory) {
|
|
12779
12854
|
this.trackedTasks = /* @__PURE__ */ new Map();
|
|
@@ -12830,6 +12905,7 @@ var require_task_tracker = __commonJS({
|
|
|
12830
12905
|
const ctx = this.handlerContext;
|
|
12831
12906
|
await this.categoryHandler.handle(tool, ctx, state);
|
|
12832
12907
|
this.taskCounter = ctx.taskCounter;
|
|
12908
|
+
await (0, hooks_1.runOnToolUse)((0, hooks_1.getActiveHooks)(), { tool, state });
|
|
12833
12909
|
}
|
|
12834
12910
|
async handleWriteEvent(tool, state) {
|
|
12835
12911
|
if (state.status !== "completed")
|
|
@@ -17895,6 +17971,7 @@ var require_opencode_init = __commonJS({
|
|
|
17895
17971
|
var pre_run_decision_1 = require_pre_run_decision();
|
|
17896
17972
|
var experiments_1 = require_experiments();
|
|
17897
17973
|
var environments_12 = require_environments();
|
|
17974
|
+
var hooks_1 = require_hooks();
|
|
17898
17975
|
var runOpencodeInitFlow = async (blueprint, history, agentData) => {
|
|
17899
17976
|
const store = job_context_storage_12.jobContextStorage.getStore();
|
|
17900
17977
|
if (!store?.jobId || !store?.taskId) {
|
|
@@ -17919,6 +17996,7 @@ var require_opencode_init = __commonJS({
|
|
|
17919
17996
|
Task_type: kind
|
|
17920
17997
|
});
|
|
17921
17998
|
const outputPath = (0, codegen_flow_helpers_12.getOutputPath)();
|
|
17999
|
+
let caughtError;
|
|
17922
18000
|
try {
|
|
17923
18001
|
(0, agent_io_1.writeAgentInput)(outputPath, agentData);
|
|
17924
18002
|
let finalBlueprint = blueprint;
|
|
@@ -17967,6 +18045,7 @@ var require_opencode_init = __commonJS({
|
|
|
17967
18045
|
});
|
|
17968
18046
|
logger_12.logger.info("[OpenCode Init] Completed task", { taskId });
|
|
17969
18047
|
} catch (error) {
|
|
18048
|
+
caughtError = error;
|
|
17970
18049
|
const codegenError = (0, ditto_codegen_types_2.toCodegenError)(error);
|
|
17971
18050
|
const agentOutput = (0, agent_io_1.readAgentOutput)(outputPath);
|
|
17972
18051
|
await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, {
|
|
@@ -17998,6 +18077,11 @@ var require_opencode_init = __commonJS({
|
|
|
17998
18077
|
taskId,
|
|
17999
18078
|
error: error instanceof Error ? error.message : String(error)
|
|
18000
18079
|
});
|
|
18080
|
+
} finally {
|
|
18081
|
+
await (0, hooks_1.runOnFlowEnd)((0, hooks_1.getActiveHooks)(), {
|
|
18082
|
+
failed: caughtError !== void 0,
|
|
18083
|
+
error: caughtError
|
|
18084
|
+
});
|
|
18001
18085
|
}
|
|
18002
18086
|
};
|
|
18003
18087
|
exports2.runOpencodeInitFlow = runOpencodeInitFlow;
|
|
@@ -18073,6 +18157,7 @@ var require_opencode_iterate = __commonJS({
|
|
|
18073
18157
|
var logger_12 = require_logger();
|
|
18074
18158
|
var config_1 = require_config();
|
|
18075
18159
|
var biEvents_1 = require_biEvents();
|
|
18160
|
+
var hooks_1 = require_hooks();
|
|
18076
18161
|
var runOpencodeIterateFlow = async (chatHistory, agentData) => {
|
|
18077
18162
|
const store = job_context_storage_12.jobContextStorage.getStore();
|
|
18078
18163
|
if (!store?.jobId || !store?.taskId) {
|
|
@@ -18097,6 +18182,7 @@ var require_opencode_iterate = __commonJS({
|
|
|
18097
18182
|
Task_type: kind
|
|
18098
18183
|
});
|
|
18099
18184
|
const outputPath = (0, codegen_flow_helpers_12.getOutputPath)();
|
|
18185
|
+
let caughtError;
|
|
18100
18186
|
try {
|
|
18101
18187
|
(0, agent_io_1.writeAgentInput)(outputPath, agentData);
|
|
18102
18188
|
const iterationOrchestrator = new OpenCodeIterationOrchestrator_1.OpenCodeIterationOrchestrator();
|
|
@@ -18132,6 +18218,7 @@ var require_opencode_iterate = __commonJS({
|
|
|
18132
18218
|
});
|
|
18133
18219
|
logger_12.logger.info("[OpenCode Iterate] Completed task", { taskId });
|
|
18134
18220
|
} catch (error) {
|
|
18221
|
+
caughtError = error;
|
|
18135
18222
|
const codegenError = (0, ditto_codegen_types_2.toCodegenError)(error);
|
|
18136
18223
|
const agentOutput = (0, agent_io_1.readAgentOutput)(outputPath);
|
|
18137
18224
|
await (0, codegen_flow_helpers_12.updateJobPayload)(localJobContext, {
|
|
@@ -18162,6 +18249,11 @@ var require_opencode_iterate = __commonJS({
|
|
|
18162
18249
|
taskId,
|
|
18163
18250
|
error: error instanceof Error ? error.message : String(error)
|
|
18164
18251
|
});
|
|
18252
|
+
} finally {
|
|
18253
|
+
await (0, hooks_1.runOnFlowEnd)((0, hooks_1.getActiveHooks)(), {
|
|
18254
|
+
failed: caughtError !== void 0,
|
|
18255
|
+
error: caughtError
|
|
18256
|
+
});
|
|
18165
18257
|
}
|
|
18166
18258
|
};
|
|
18167
18259
|
exports2.runOpencodeIterateFlow = runOpencodeIterateFlow;
|
|
@@ -18648,6 +18740,27 @@ async function main(ctx) {
|
|
|
18648
18740
|
var getFirstTask = (job) => {
|
|
18649
18741
|
return job.tasks?.[0];
|
|
18650
18742
|
};
|
|
18743
|
+
function buildHooksForTask(jobId, taskId, kind, payload) {
|
|
18744
|
+
if (kind !== CodeGenService_1.TaskKind.INIT_CODEGEN && kind !== CodeGenService_1.TaskKind.ITERATE_CODEGEN) {
|
|
18745
|
+
return void 0;
|
|
18746
|
+
}
|
|
18747
|
+
const userInput = extractUserInput(kind, payload);
|
|
18748
|
+
return (0, environments_1.getCodegenEnvironmentConfig)().hooks.map((factory) => factory({ projectId: context_1.ctx.projectId, jobId, taskId, kind, userInput }));
|
|
18749
|
+
}
|
|
18750
|
+
function extractUserInput(kind, payload) {
|
|
18751
|
+
if (kind === CodeGenService_1.TaskKind.INIT_CODEGEN) {
|
|
18752
|
+
return payload.blueprint?.summary?.trim() || void 0;
|
|
18753
|
+
}
|
|
18754
|
+
if (kind === CodeGenService_1.TaskKind.ITERATE_CODEGEN) {
|
|
18755
|
+
const history = payload.history ?? [];
|
|
18756
|
+
for (let i = history.length - 1; i >= 0; i--) {
|
|
18757
|
+
if (history[i].role === "USER") {
|
|
18758
|
+
return history[i].text.trim() || void 0;
|
|
18759
|
+
}
|
|
18760
|
+
}
|
|
18761
|
+
}
|
|
18762
|
+
return void 0;
|
|
18763
|
+
}
|
|
18651
18764
|
async function processJob(job) {
|
|
18652
18765
|
if (!job.id) {
|
|
18653
18766
|
throw new ditto_codegen_types_1.MissingJobIdError();
|
|
@@ -18658,14 +18771,15 @@ async function processJob(job) {
|
|
|
18658
18771
|
logger_1.logger.warn("[Job] No initial task found, skipping", { jobId });
|
|
18659
18772
|
return;
|
|
18660
18773
|
}
|
|
18661
|
-
|
|
18774
|
+
const payload = task.payload ?? {};
|
|
18775
|
+
const hooks = buildHooksForTask(jobId, task.id, task.kind, payload);
|
|
18776
|
+
await job_context_storage_1.jobContextStorage.run({ jobId, taskId: task.id, kind: task.kind, hooks }, async () => {
|
|
18662
18777
|
logger_1.logger.info("[Job] Start processing", { taskKind: task.kind });
|
|
18663
18778
|
context_1.ctx.setJobStatus(jobId, CodeGenService_1.Status.RUNNING);
|
|
18664
18779
|
logger_1.logger.info("[Job] Marked job RUNNING", { initTaskId: task.id });
|
|
18665
18780
|
jobCancellationMonitor.start(jobId);
|
|
18666
18781
|
jobTimeoutMonitor.start(jobId);
|
|
18667
18782
|
try {
|
|
18668
|
-
const payload = task.payload ?? {};
|
|
18669
18783
|
const history = payload.history ?? [];
|
|
18670
18784
|
const blueprint = payload.blueprint;
|
|
18671
18785
|
const agentData = payload.agentData;
|
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.314",
|
|
4
4
|
"description": "AI-powered Wix CLI app generator - standalone executable",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "node build.mjs",
|
|
@@ -27,5 +27,5 @@
|
|
|
27
27
|
"@wix/ditto-codegen": "1.0.0",
|
|
28
28
|
"esbuild": "^0.27.2"
|
|
29
29
|
},
|
|
30
|
-
"falconPackageHash": "
|
|
30
|
+
"falconPackageHash": "d9b12ec21f21078ba1ac9393765773db4870fefd00a8a85fc542cd50"
|
|
31
31
|
}
|