@wix/ditto-codegen-public 1.0.314 → 1.0.315
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 +91 -50
- package/package.json +2 -2
package/dist/out.js
CHANGED
|
@@ -12605,26 +12605,69 @@ var require_cost_tracker = __commonJS({
|
|
|
12605
12605
|
}
|
|
12606
12606
|
});
|
|
12607
12607
|
|
|
12608
|
+
// dist/opencode-integration/task-tracker/init-task.js
|
|
12609
|
+
var require_init_task = __commonJS({
|
|
12610
|
+
"dist/opencode-integration/task-tracker/init-task.js"(exports2) {
|
|
12611
|
+
"use strict";
|
|
12612
|
+
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
12613
|
+
exports2.completeInitTask = completeInitTask;
|
|
12614
|
+
var ditto_codegen_types_12 = require_dist4();
|
|
12615
|
+
var codeGenerationService_12 = require_codeGenerationService();
|
|
12616
|
+
var logger_12 = require_logger();
|
|
12617
|
+
async function completeInitTask(ctx) {
|
|
12618
|
+
const { store } = ctx;
|
|
12619
|
+
if (store?.isCompleted || store?.kind !== ditto_codegen_types_12.TaskKind.INIT_CODEGEN)
|
|
12620
|
+
return;
|
|
12621
|
+
if (!store.jobId || !store.taskId)
|
|
12622
|
+
return;
|
|
12623
|
+
store.isCompleted = true;
|
|
12624
|
+
try {
|
|
12625
|
+
await codeGenerationService_12.codeGenerationService.updateTask(store.jobId, store.taskId, ditto_codegen_types_12.Status.COMPLETED, {});
|
|
12626
|
+
logger_12.logger.info("[OpenCode] Completed init task before sub-tasks");
|
|
12627
|
+
} catch (error) {
|
|
12628
|
+
logger_12.logger.error("[OpenCode] Failed to complete init task", {
|
|
12629
|
+
error: error instanceof Error ? error.message : String(error)
|
|
12630
|
+
});
|
|
12631
|
+
}
|
|
12632
|
+
}
|
|
12633
|
+
}
|
|
12634
|
+
});
|
|
12635
|
+
|
|
12608
12636
|
// dist/opencode-integration/task-tracker/extension-handler.js
|
|
12609
12637
|
var require_extension_handler = __commonJS({
|
|
12610
12638
|
"dist/opencode-integration/task-tracker/extension-handler.js"(exports2) {
|
|
12611
12639
|
"use strict";
|
|
12612
12640
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
12613
12641
|
exports2.ExtensionTaskHandler = void 0;
|
|
12642
|
+
exports2.buildExtensionTaskPayload = buildExtensionTaskPayload;
|
|
12614
12643
|
var promises_1 = require("fs/promises");
|
|
12615
12644
|
var path_1 = require("path");
|
|
12616
12645
|
var ditto_codegen_types_12 = require_dist4();
|
|
12617
12646
|
var codeGenerationService_12 = require_codeGenerationService();
|
|
12618
12647
|
var logger_12 = require_logger();
|
|
12619
12648
|
var constants_1 = require_constants5();
|
|
12649
|
+
var init_task_1 = require_init_task();
|
|
12650
|
+
function buildExtensionTaskPayload(tracked, collectedFiles) {
|
|
12651
|
+
if (!tracked.extensionFolder)
|
|
12652
|
+
return {};
|
|
12653
|
+
const extensionFiles = collectedFiles.filter((f) => f.path.startsWith(tracked.extensionFolder));
|
|
12654
|
+
return {
|
|
12655
|
+
taskOutput: {
|
|
12656
|
+
files: extensionFiles.map((f) => ({
|
|
12657
|
+
path: f.path,
|
|
12658
|
+
operation: f.operation
|
|
12659
|
+
}))
|
|
12660
|
+
}
|
|
12661
|
+
};
|
|
12662
|
+
}
|
|
12620
12663
|
var ExtensionTaskHandler = class {
|
|
12621
12664
|
constructor() {
|
|
12622
|
-
this.
|
|
12665
|
+
this.extensionTypesByPath = /* @__PURE__ */ new Map();
|
|
12623
12666
|
}
|
|
12624
12667
|
getExtensionTypesCreated() {
|
|
12625
|
-
return Array.from(this.
|
|
12668
|
+
return Array.from(this.extensionTypesByPath.values());
|
|
12626
12669
|
}
|
|
12627
|
-
/** Inspects a write/edit event;
|
|
12670
|
+
/** Inspects a write/edit event; creates a RUNNING sub-task on first sight, completes on the completed event. */
|
|
12628
12671
|
async handle(tool, state, ctx) {
|
|
12629
12672
|
const filePath = state.input?.filePath || state.title || "";
|
|
12630
12673
|
if (!(0, constants_1.isExtensionsFile)(filePath))
|
|
@@ -12635,13 +12678,25 @@ var require_extension_handler = __commonJS({
|
|
|
12635
12678
|
const extension = (0, constants_1.detectExtension)(content);
|
|
12636
12679
|
if (!extension)
|
|
12637
12680
|
return;
|
|
12638
|
-
await this.ensureCreatedBy(filePath, ctx.workingDirectory);
|
|
12639
12681
|
const normalizedPath = (0, constants_1.normalizeFilePath)(filePath);
|
|
12640
|
-
|
|
12682
|
+
const isCompleted = state.status === "completed";
|
|
12683
|
+
if (isCompleted) {
|
|
12684
|
+
await this.ensureCreatedBy(filePath, ctx.workingDirectory);
|
|
12685
|
+
}
|
|
12686
|
+
if (!this.extensionTypesByPath.has(normalizedPath)) {
|
|
12687
|
+
this.extensionTypesByPath.set(normalizedPath, extension.extensionType);
|
|
12688
|
+
await (0, init_task_1.completeInitTask)(ctx);
|
|
12689
|
+
await this.createExtensionTask(normalizedPath, extension.label, filePath, ctx);
|
|
12690
|
+
}
|
|
12691
|
+
if (!isCompleted)
|
|
12692
|
+
return;
|
|
12693
|
+
const tracked = ctx.trackedTasks.get(`ext-${normalizedPath}`);
|
|
12694
|
+
if (!tracked || tracked.status !== ditto_codegen_types_12.Status.RUNNING)
|
|
12695
|
+
return;
|
|
12696
|
+
const jobContext = ctx.getJobContext();
|
|
12697
|
+
if (!jobContext)
|
|
12641
12698
|
return;
|
|
12642
|
-
this.
|
|
12643
|
-
await this.completeInitTask(ctx);
|
|
12644
|
-
await this.createExtensionTask(normalizedPath, extension.label, filePath, ctx);
|
|
12699
|
+
await this.completeExtensionTask(tracked, jobContext.jobId, ctx);
|
|
12645
12700
|
}
|
|
12646
12701
|
/** Reads an extension file from disk and injects createdBy if missing. */
|
|
12647
12702
|
async ensureCreatedBy(filePath, workingDirectory) {
|
|
@@ -12664,24 +12719,7 @@ var require_extension_handler = __commonJS({
|
|
|
12664
12719
|
});
|
|
12665
12720
|
}
|
|
12666
12721
|
}
|
|
12667
|
-
/**
|
|
12668
|
-
async completeInitTask(ctx) {
|
|
12669
|
-
const { store } = ctx;
|
|
12670
|
-
if (store?.isCompleted || store?.kind !== ditto_codegen_types_12.TaskKind.INIT_CODEGEN)
|
|
12671
|
-
return;
|
|
12672
|
-
if (!store.jobId || !store.taskId)
|
|
12673
|
-
return;
|
|
12674
|
-
store.isCompleted = true;
|
|
12675
|
-
try {
|
|
12676
|
-
await codeGenerationService_12.codeGenerationService.updateTask(store.jobId, store.taskId, ditto_codegen_types_12.Status.COMPLETED, {});
|
|
12677
|
-
logger_12.logger.info("[OpenCode] Completed init task before extension tasks");
|
|
12678
|
-
} catch (error) {
|
|
12679
|
-
logger_12.logger.error("[OpenCode] Failed to complete init task", {
|
|
12680
|
-
error: error instanceof Error ? error.message : String(error)
|
|
12681
|
-
});
|
|
12682
|
-
}
|
|
12683
|
-
}
|
|
12684
|
-
/** Registers a new RUNNING sub-task in the job service for a detected extension. */
|
|
12722
|
+
/** Registers a RUNNING sub-task in the job service for a detected extension. */
|
|
12685
12723
|
async createExtensionTask(normalizedPath, extensionType, originalPath, ctx) {
|
|
12686
12724
|
const jobContext = ctx.getJobContext();
|
|
12687
12725
|
if (!jobContext)
|
|
@@ -12692,12 +12730,13 @@ var require_extension_handler = __commonJS({
|
|
|
12692
12730
|
ctx.taskCounter++;
|
|
12693
12731
|
const taskId = `${jobContext.taskId}-ext-${ctx.taskCounter}`;
|
|
12694
12732
|
const extensionFolder = normalizedPath.substring(0, normalizedPath.lastIndexOf("/") + 1);
|
|
12695
|
-
|
|
12733
|
+
const tracked = {
|
|
12696
12734
|
taskId,
|
|
12697
12735
|
description,
|
|
12698
12736
|
status: ditto_codegen_types_12.Status.RUNNING,
|
|
12699
12737
|
extensionFolder
|
|
12700
|
-
}
|
|
12738
|
+
};
|
|
12739
|
+
ctx.trackedTasks.set(extensionKey, tracked);
|
|
12701
12740
|
try {
|
|
12702
12741
|
await codeGenerationService_12.codeGenerationService.addTask(jobContext.jobId, {
|
|
12703
12742
|
id: taskId,
|
|
@@ -12714,6 +12753,20 @@ var require_extension_handler = __commonJS({
|
|
|
12714
12753
|
});
|
|
12715
12754
|
}
|
|
12716
12755
|
}
|
|
12756
|
+
/** Marks the extension task COMPLETED with the file list collected so far for its folder. */
|
|
12757
|
+
async completeExtensionTask(tracked, jobId, ctx) {
|
|
12758
|
+
tracked.status = ditto_codegen_types_12.Status.COMPLETED;
|
|
12759
|
+
try {
|
|
12760
|
+
await codeGenerationService_12.codeGenerationService.updateTask(jobId, tracked.taskId, ditto_codegen_types_12.Status.COMPLETED, buildExtensionTaskPayload(tracked, ctx.collectedFiles));
|
|
12761
|
+
logger_12.logger.info("[OpenCode] Completed extension task", {
|
|
12762
|
+
description: tracked.description
|
|
12763
|
+
});
|
|
12764
|
+
} catch (error) {
|
|
12765
|
+
logger_12.logger.error("[OpenCode] Failed to complete extension task", {
|
|
12766
|
+
error: error instanceof Error ? error.message : String(error)
|
|
12767
|
+
});
|
|
12768
|
+
}
|
|
12769
|
+
}
|
|
12717
12770
|
};
|
|
12718
12771
|
exports2.ExtensionTaskHandler = ExtensionTaskHandler;
|
|
12719
12772
|
}
|
|
@@ -12729,6 +12782,7 @@ var require_category_handler = __commonJS({
|
|
|
12729
12782
|
var codeGenerationService_12 = require_codeGenerationService();
|
|
12730
12783
|
var logger_12 = require_logger();
|
|
12731
12784
|
var constants_1 = require_constants5();
|
|
12785
|
+
var init_task_1 = require_init_task();
|
|
12732
12786
|
var CategoryKey;
|
|
12733
12787
|
(function(CategoryKey2) {
|
|
12734
12788
|
CategoryKey2["CodeSearch"] = "code-search";
|
|
@@ -12764,10 +12818,10 @@ var require_category_handler = __commonJS({
|
|
|
12764
12818
|
await this.track(CategoryKey.RunCommands, ctx, state);
|
|
12765
12819
|
}
|
|
12766
12820
|
if (tool === "validate") {
|
|
12767
|
-
await this.track(CategoryKey.Validate, ctx
|
|
12821
|
+
await this.track(CategoryKey.Validate, ctx);
|
|
12768
12822
|
}
|
|
12769
12823
|
if (constants_1.WRITE_TOOLS.has(tool)) {
|
|
12770
|
-
await this.track(CategoryKey.WriteCode, ctx);
|
|
12824
|
+
await this.track(CategoryKey.WriteCode, ctx, state);
|
|
12771
12825
|
}
|
|
12772
12826
|
}
|
|
12773
12827
|
async trackLoadSkill(ctx, state) {
|
|
@@ -12786,6 +12840,7 @@ var require_category_handler = __commonJS({
|
|
|
12786
12840
|
const jobContext = ctx.getJobContext();
|
|
12787
12841
|
if (!jobContext)
|
|
12788
12842
|
return;
|
|
12843
|
+
await (0, init_task_1.completeInitTask)(ctx);
|
|
12789
12844
|
const description = CATEGORY_DESCRIPTIONS[key];
|
|
12790
12845
|
const taskId = `${jobContext.taskId}-${key}`;
|
|
12791
12846
|
ctx.trackedTasks.set(key, {
|
|
@@ -12908,12 +12963,13 @@ var require_task_tracker = __commonJS({
|
|
|
12908
12963
|
await (0, hooks_1.runOnToolUse)((0, hooks_1.getActiveHooks)(), { tool, state });
|
|
12909
12964
|
}
|
|
12910
12965
|
async handleWriteEvent(tool, state) {
|
|
12911
|
-
|
|
12912
|
-
return;
|
|
12966
|
+
const isCompleted = state.status === "completed";
|
|
12913
12967
|
const fileStates = tool === "batch-write" ? this.expandBatchWrite(state) : [state];
|
|
12914
12968
|
const effectiveTool = tool === "batch-write" ? "write" : tool;
|
|
12915
12969
|
for (const fileState of fileStates) {
|
|
12916
|
-
|
|
12970
|
+
if (isCompleted) {
|
|
12971
|
+
this.trackFileChange(effectiveTool, fileState);
|
|
12972
|
+
}
|
|
12917
12973
|
const ctx = this.handlerContext;
|
|
12918
12974
|
await this.extensionHandler.handle(effectiveTool, fileState, ctx);
|
|
12919
12975
|
this.taskCounter = ctx.taskCounter;
|
|
@@ -12921,7 +12977,7 @@ var require_task_tracker = __commonJS({
|
|
|
12921
12977
|
}
|
|
12922
12978
|
expandBatchWrite(state) {
|
|
12923
12979
|
return (state.input?.files ?? []).map((f) => ({
|
|
12924
|
-
status:
|
|
12980
|
+
status: state.status,
|
|
12925
12981
|
input: { filePath: f.path, content: f.content },
|
|
12926
12982
|
metadata: { exists: false }
|
|
12927
12983
|
}));
|
|
@@ -12942,21 +12998,6 @@ var require_task_tracker = __commonJS({
|
|
|
12942
12998
|
logger_12.logger.info("[OpenCode] Loaded skill", { skillName });
|
|
12943
12999
|
await this.categoryHandler.trackLoadSkill(this.handlerContext, state);
|
|
12944
13000
|
}
|
|
12945
|
-
/** Builds the task completion payload — includes file list for extension tasks. */
|
|
12946
|
-
buildTaskPayload(tracked) {
|
|
12947
|
-
if (tracked.extensionFolder) {
|
|
12948
|
-
const extensionFiles = this.collectedFiles.filter((f) => f.path.startsWith(tracked.extensionFolder));
|
|
12949
|
-
return {
|
|
12950
|
-
taskOutput: {
|
|
12951
|
-
files: extensionFiles.map((f) => ({
|
|
12952
|
-
path: f.path,
|
|
12953
|
-
operation: f.operation
|
|
12954
|
-
}))
|
|
12955
|
-
}
|
|
12956
|
-
};
|
|
12957
|
-
}
|
|
12958
|
-
return {};
|
|
12959
|
-
}
|
|
12960
13001
|
/** Marks all still-running tracked tasks as COMPLETED (called on successful process exit). */
|
|
12961
13002
|
async completeRemainingTasks() {
|
|
12962
13003
|
const jobContext = this.getJobContext();
|
|
@@ -12964,7 +13005,7 @@ var require_task_tracker = __commonJS({
|
|
|
12964
13005
|
return;
|
|
12965
13006
|
for (const [, tracked] of this.trackedTasks) {
|
|
12966
13007
|
if (tracked.status === ditto_codegen_types_12.Status.RUNNING) {
|
|
12967
|
-
const payload =
|
|
13008
|
+
const payload = (0, extension_handler_1.buildExtensionTaskPayload)(tracked, this.collectedFiles);
|
|
12968
13009
|
try {
|
|
12969
13010
|
await codeGenerationService_12.codeGenerationService.updateTask(jobContext.jobId, tracked.taskId, ditto_codegen_types_12.Status.COMPLETED, payload);
|
|
12970
13011
|
logger_12.logger.info("[OpenCode] Completed task", {
|
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.315",
|
|
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": "a729cdb06df2c35379619880dc60336a5505a5a382a7b737b17b1c05"
|
|
31
31
|
}
|