makefx 1.6.4 → 1.6.6
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/README.md +1 -1
- package/makefx.mjs +85 -25
- package/package.json +1 -1
package/README.md
CHANGED
package/makefx.mjs
CHANGED
|
@@ -4442,7 +4442,7 @@ require_websocket_server();
|
|
|
4442
4442
|
var wrapper_default = import_websocket.default;
|
|
4443
4443
|
//#endregion
|
|
4444
4444
|
//#region src/cli/version.ts
|
|
4445
|
-
var CLI_VERSION = "1.6.
|
|
4445
|
+
var CLI_VERSION = "1.6.6+b1c0c6d222d7";
|
|
4446
4446
|
var CLI_VERSION_HEADER = "X-MakeFX-CLI-Version";
|
|
4447
4447
|
function cliVersionHeaders() {
|
|
4448
4448
|
return {
|
|
@@ -4460,6 +4460,7 @@ function cliVersionHeaders() {
|
|
|
4460
4460
|
*/
|
|
4461
4461
|
var GENERATION_REQUEST_TIMEOUT_MS = 3e5;
|
|
4462
4462
|
var VIDEO_GENERATION_REQUEST_TIMEOUT_MS = 72e4;
|
|
4463
|
+
var VARIANT_SYNC_POLL_INTERVAL_MS = 15e3;
|
|
4463
4464
|
function getGenerationRequestTimeoutMs(mediaKind) {
|
|
4464
4465
|
return mediaKind === "video" ? VIDEO_GENERATION_REQUEST_TIMEOUT_MS : GENERATION_REQUEST_TIMEOUT_MS;
|
|
4465
4466
|
}
|
|
@@ -4643,35 +4644,16 @@ var WebSocketClient = class WebSocketClient {
|
|
|
4643
4644
|
this.onChatProgress?.(progressMsg);
|
|
4644
4645
|
break;
|
|
4645
4646
|
}
|
|
4646
|
-
case "generate:started":
|
|
4647
|
-
|
|
4648
|
-
const handler = this.generateHandlers.get(startedMsg.requestId);
|
|
4649
|
-
if (handler) {
|
|
4650
|
-
if (handler.onStarted) handler.onStarted(startedMsg);
|
|
4651
|
-
this.variantCompletionHandlers.set(startedMsg.variantId, {
|
|
4652
|
-
requestId: startedMsg.requestId,
|
|
4653
|
-
assetId: startedMsg.assetId,
|
|
4654
|
-
assetName: startedMsg.assetName,
|
|
4655
|
-
onResult: handler.onResult,
|
|
4656
|
-
reject: handler.reject,
|
|
4657
|
-
timeout: handler.timeout
|
|
4658
|
-
});
|
|
4659
|
-
this.generateHandlers.delete(startedMsg.requestId);
|
|
4660
|
-
const earlyTerminal = this.earlyTerminalVariants.get(startedMsg.variantId);
|
|
4661
|
-
if (earlyTerminal) {
|
|
4662
|
-
this.earlyTerminalVariants.delete(startedMsg.variantId);
|
|
4663
|
-
this.handleTerminalVariant(earlyTerminal);
|
|
4664
|
-
}
|
|
4665
|
-
this.clearOrphanedEarlyTerminalVariants();
|
|
4666
|
-
}
|
|
4647
|
+
case "generate:started":
|
|
4648
|
+
this.handleGenerateStarted(message);
|
|
4667
4649
|
break;
|
|
4668
|
-
}
|
|
4669
4650
|
case "generate:error": {
|
|
4670
4651
|
const errorMsg = message;
|
|
4671
4652
|
const handler = this.generateHandlers.get(errorMsg.requestId);
|
|
4672
4653
|
if (handler) {
|
|
4673
4654
|
this.generateHandlers.delete(errorMsg.requestId);
|
|
4674
4655
|
clearTimeout(handler.timeout);
|
|
4656
|
+
if (handler.syncPoll) clearInterval(handler.syncPoll);
|
|
4675
4657
|
handler.reject(new Error(formatServerErrorMessage(errorMsg.code, errorMsg.error)));
|
|
4676
4658
|
this.clearOrphanedEarlyTerminalVariants();
|
|
4677
4659
|
}
|
|
@@ -4688,6 +4670,25 @@ var WebSocketClient = class WebSocketClient {
|
|
|
4688
4670
|
}
|
|
4689
4671
|
case "sync:state": {
|
|
4690
4672
|
const syncMsg = message;
|
|
4673
|
+
for (const variant of syncMsg.variants) {
|
|
4674
|
+
if (!variant.request_id || !this.generateHandlers.has(variant.request_id)) continue;
|
|
4675
|
+
const asset = syncMsg.assets.find((candidate) => candidate.id === variant.asset_id);
|
|
4676
|
+
this.handleGenerateStarted({
|
|
4677
|
+
type: "generate:started",
|
|
4678
|
+
requestId: variant.request_id,
|
|
4679
|
+
variantId: variant.id,
|
|
4680
|
+
runId: variant.run_id ?? "",
|
|
4681
|
+
status: variant.status === "uploading" ? "running" : variant.status,
|
|
4682
|
+
assetId: variant.asset_id,
|
|
4683
|
+
assetName: asset?.name ?? "asset"
|
|
4684
|
+
});
|
|
4685
|
+
}
|
|
4686
|
+
for (const variant of syncMsg.variants) {
|
|
4687
|
+
const handler = this.variantCompletionHandlers.get(variant.id);
|
|
4688
|
+
if (!handler) continue;
|
|
4689
|
+
handler.onUpdate?.(variant);
|
|
4690
|
+
if (variant.status === "completed" || variant.status === "failed") this.handleTerminalVariant(variant);
|
|
4691
|
+
}
|
|
4691
4692
|
this.onSyncState?.({
|
|
4692
4693
|
assets: syncMsg.assets,
|
|
4693
4694
|
variants: syncMsg.variants,
|
|
@@ -4793,6 +4794,7 @@ var WebSocketClient = class WebSocketClient {
|
|
|
4793
4794
|
if (generateHandler) {
|
|
4794
4795
|
this.generateHandlers.delete(requestId);
|
|
4795
4796
|
clearTimeout(generateHandler.timeout);
|
|
4797
|
+
if (generateHandler.syncPoll) clearInterval(generateHandler.syncPoll);
|
|
4796
4798
|
generateHandler.reject(error);
|
|
4797
4799
|
this.clearOrphanedEarlyTerminalVariants();
|
|
4798
4800
|
return true;
|
|
@@ -4800,11 +4802,34 @@ var WebSocketClient = class WebSocketClient {
|
|
|
4800
4802
|
for (const [variantId, handler] of this.variantCompletionHandlers) if (handler.requestId === requestId) {
|
|
4801
4803
|
this.variantCompletionHandlers.delete(variantId);
|
|
4802
4804
|
clearTimeout(handler.timeout);
|
|
4805
|
+
if (handler.syncPoll) clearInterval(handler.syncPoll);
|
|
4803
4806
|
handler.reject(error);
|
|
4804
4807
|
return true;
|
|
4805
4808
|
}
|
|
4806
4809
|
return false;
|
|
4807
4810
|
}
|
|
4811
|
+
handleGenerateStarted(started) {
|
|
4812
|
+
const handler = this.generateHandlers.get(started.requestId);
|
|
4813
|
+
if (!handler) return;
|
|
4814
|
+
handler.onStarted?.(started);
|
|
4815
|
+
if (handler.syncPoll) clearInterval(handler.syncPoll);
|
|
4816
|
+
this.variantCompletionHandlers.set(started.variantId, {
|
|
4817
|
+
requestId: started.requestId,
|
|
4818
|
+
assetId: started.assetId,
|
|
4819
|
+
assetName: started.assetName,
|
|
4820
|
+
onResult: handler.onResult,
|
|
4821
|
+
reject: handler.reject,
|
|
4822
|
+
timeout: handler.timeout
|
|
4823
|
+
});
|
|
4824
|
+
this.generateHandlers.delete(started.requestId);
|
|
4825
|
+
this.startVariantSyncPolling(started.variantId, started.requestId);
|
|
4826
|
+
const earlyTerminal = this.earlyTerminalVariants.get(started.variantId);
|
|
4827
|
+
if (earlyTerminal) {
|
|
4828
|
+
this.earlyTerminalVariants.delete(started.variantId);
|
|
4829
|
+
this.handleTerminalVariant(earlyTerminal);
|
|
4830
|
+
}
|
|
4831
|
+
this.clearOrphanedEarlyTerminalVariants();
|
|
4832
|
+
}
|
|
4808
4833
|
handleTerminalVariant(variant) {
|
|
4809
4834
|
let handled = false;
|
|
4810
4835
|
const handler = this.variantCompletionHandlers.get(variant.id);
|
|
@@ -4812,6 +4837,7 @@ var WebSocketClient = class WebSocketClient {
|
|
|
4812
4837
|
handled = true;
|
|
4813
4838
|
this.variantCompletionHandlers.delete(variant.id);
|
|
4814
4839
|
clearTimeout(handler.timeout);
|
|
4840
|
+
if (handler.syncPoll) clearInterval(handler.syncPoll);
|
|
4815
4841
|
handler.onResult({
|
|
4816
4842
|
requestId: handler.requestId,
|
|
4817
4843
|
variantId: variant.id,
|
|
@@ -4824,6 +4850,32 @@ var WebSocketClient = class WebSocketClient {
|
|
|
4824
4850
|
}
|
|
4825
4851
|
return handled;
|
|
4826
4852
|
}
|
|
4853
|
+
startVariantSyncPolling(variantId, requestId) {
|
|
4854
|
+
const requestCurrentState = () => {
|
|
4855
|
+
if (this.variantCompletionHandlers.get(variantId)?.requestId !== requestId) return;
|
|
4856
|
+
try {
|
|
4857
|
+
this.requestSync();
|
|
4858
|
+
} catch {}
|
|
4859
|
+
};
|
|
4860
|
+
requestCurrentState();
|
|
4861
|
+
const syncPoll = setInterval(requestCurrentState, VARIANT_SYNC_POLL_INTERVAL_MS);
|
|
4862
|
+
const handler = this.variantCompletionHandlers.get(variantId);
|
|
4863
|
+
if (handler?.requestId === requestId) handler.syncPoll = syncPoll;
|
|
4864
|
+
else clearInterval(syncPoll);
|
|
4865
|
+
}
|
|
4866
|
+
startGenerateSyncPolling(requestId) {
|
|
4867
|
+
const requestCurrentState = () => {
|
|
4868
|
+
if (!this.generateHandlers.has(requestId)) return;
|
|
4869
|
+
try {
|
|
4870
|
+
this.requestSync();
|
|
4871
|
+
} catch {}
|
|
4872
|
+
};
|
|
4873
|
+
requestCurrentState();
|
|
4874
|
+
const syncPoll = setInterval(requestCurrentState, VARIANT_SYNC_POLL_INTERVAL_MS);
|
|
4875
|
+
const handler = this.generateHandlers.get(requestId);
|
|
4876
|
+
if (handler) handler.syncPoll = syncPoll;
|
|
4877
|
+
else clearInterval(syncPoll);
|
|
4878
|
+
}
|
|
4827
4879
|
hasRequestsAwaitingStarted() {
|
|
4828
4880
|
return this.generateHandlers.size > 0 || this.draftRunStartsAwaitingVariant.size > 0;
|
|
4829
4881
|
}
|
|
@@ -5075,14 +5127,17 @@ var WebSocketClient = class WebSocketClient {
|
|
|
5075
5127
|
const timeoutMs = getGenerationRequestTimeoutMs(params.mediaKind);
|
|
5076
5128
|
return new Promise((resolve, reject) => {
|
|
5077
5129
|
const timeout = setTimeout(() => {
|
|
5078
|
-
|
|
5130
|
+
const requestHandler = this.generateHandlers.get(requestId);
|
|
5131
|
+
if (requestHandler) {
|
|
5079
5132
|
this.generateHandlers.delete(requestId);
|
|
5133
|
+
if (requestHandler.syncPoll) clearInterval(requestHandler.syncPoll);
|
|
5080
5134
|
this.clearOrphanedEarlyTerminalVariants();
|
|
5081
5135
|
reject(/* @__PURE__ */ new Error("Generate request timed out"));
|
|
5082
5136
|
return;
|
|
5083
5137
|
}
|
|
5084
5138
|
for (const [variantId, handler] of this.variantCompletionHandlers) if (handler.requestId === requestId) {
|
|
5085
5139
|
this.variantCompletionHandlers.delete(variantId);
|
|
5140
|
+
if (handler.syncPoll) clearInterval(handler.syncPoll);
|
|
5086
5141
|
reject(/* @__PURE__ */ new Error("Generate request timed out"));
|
|
5087
5142
|
return;
|
|
5088
5143
|
}
|
|
@@ -5125,6 +5180,7 @@ var WebSocketClient = class WebSocketClient {
|
|
|
5125
5180
|
};
|
|
5126
5181
|
try {
|
|
5127
5182
|
this.send(message);
|
|
5183
|
+
this.startGenerateSyncPolling(requestId);
|
|
5128
5184
|
} catch (err) {
|
|
5129
5185
|
this.generateHandlers.delete(requestId);
|
|
5130
5186
|
clearTimeout(timeout);
|
|
@@ -5138,8 +5194,10 @@ var WebSocketClient = class WebSocketClient {
|
|
|
5138
5194
|
const timeoutMs = params.timeoutMs ?? 3e5;
|
|
5139
5195
|
return new Promise((resolve, reject) => {
|
|
5140
5196
|
const timeout = setTimeout(() => {
|
|
5141
|
-
|
|
5197
|
+
const handler = this.variantCompletionHandlers.get(params.variantId);
|
|
5198
|
+
if (handler?.requestId === requestId) {
|
|
5142
5199
|
this.variantCompletionHandlers.delete(params.variantId);
|
|
5200
|
+
if (handler.syncPoll) clearInterval(handler.syncPoll);
|
|
5143
5201
|
reject(/* @__PURE__ */ new Error("Follow request timed out"));
|
|
5144
5202
|
}
|
|
5145
5203
|
}, timeoutMs);
|
|
@@ -5152,6 +5210,7 @@ var WebSocketClient = class WebSocketClient {
|
|
|
5152
5210
|
reject,
|
|
5153
5211
|
timeout
|
|
5154
5212
|
});
|
|
5213
|
+
this.startVariantSyncPolling(params.variantId, requestId);
|
|
5155
5214
|
const earlyTerminal = this.earlyTerminalVariants.get(params.variantId);
|
|
5156
5215
|
if (earlyTerminal) {
|
|
5157
5216
|
this.earlyTerminalVariants.delete(params.variantId);
|
|
@@ -5165,6 +5224,7 @@ var WebSocketClient = class WebSocketClient {
|
|
|
5165
5224
|
if (requestId && handler.requestId !== requestId) return;
|
|
5166
5225
|
this.variantCompletionHandlers.delete(variantId);
|
|
5167
5226
|
clearTimeout(handler.timeout);
|
|
5227
|
+
if (handler.syncPoll) clearInterval(handler.syncPoll);
|
|
5168
5228
|
}
|
|
5169
5229
|
/**
|
|
5170
5230
|
* Send a describe image request and wait for response
|