@nodetool-ai/runtime 0.8.6 → 0.8.8
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/.nodetool-build-stamp +1 -1
- package/dist/context.d.ts +2 -2
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +6 -0
- package/dist/context.js.map +1 -1
- package/dist/media-ref-bytes.d.ts +6 -1
- package/dist/media-ref-bytes.d.ts.map +1 -1
- package/dist/media-ref-bytes.js +9 -3
- package/dist/media-ref-bytes.js.map +1 -1
- package/dist/providers/anthropic-provider.d.ts +21 -0
- package/dist/providers/anthropic-provider.d.ts.map +1 -1
- package/dist/providers/anthropic-provider.js +89 -10
- package/dist/providers/anthropic-provider.js.map +1 -1
- package/dist/providers/antigravity-provider.d.ts.map +1 -1
- package/dist/providers/antigravity-provider.js +2 -3
- package/dist/providers/antigravity-provider.js.map +1 -1
- package/dist/providers/base-provider.d.ts +7 -2
- package/dist/providers/base-provider.d.ts.map +1 -1
- package/dist/providers/base-provider.js +8 -0
- package/dist/providers/base-provider.js.map +1 -1
- package/dist/providers/claude-agent-provider.js +14 -2
- package/dist/providers/claude-agent-provider.js.map +1 -1
- package/dist/providers/codex-provider.d.ts +17 -0
- package/dist/providers/codex-provider.d.ts.map +1 -1
- package/dist/providers/codex-provider.js +40 -10
- package/dist/providers/codex-provider.js.map +1 -1
- package/dist/providers/dreamina-provider.d.ts +1 -1
- package/dist/providers/dreamina-provider.d.ts.map +1 -1
- package/dist/providers/dreamina-provider.js +54 -72
- package/dist/providers/dreamina-provider.js.map +1 -1
- package/dist/providers/fal-provider.d.ts +2 -1
- package/dist/providers/fal-provider.d.ts.map +1 -1
- package/dist/providers/fal-provider.js +87 -31
- package/dist/providers/fal-provider.js.map +1 -1
- package/dist/providers/fal-queue.d.ts.map +1 -1
- package/dist/providers/fal-queue.js +42 -4
- package/dist/providers/fal-queue.js.map +1 -1
- package/dist/providers/gemini-provider.d.ts.map +1 -1
- package/dist/providers/gemini-provider.js +23 -0
- package/dist/providers/gemini-provider.js.map +1 -1
- package/dist/providers/index.d.ts +2 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +9 -2
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/manifest-models.d.ts +12 -0
- package/dist/providers/manifest-models.d.ts.map +1 -1
- package/dist/providers/manifest-models.js +22 -22
- package/dist/providers/manifest-models.js.map +1 -1
- package/dist/providers/model-folders.d.ts +20 -0
- package/dist/providers/model-folders.d.ts.map +1 -0
- package/dist/providers/model-folders.js +116 -0
- package/dist/providers/model-folders.js.map +1 -0
- package/dist/providers/node-llama-cpp-provider.d.ts +13 -4
- package/dist/providers/node-llama-cpp-provider.d.ts.map +1 -1
- package/dist/providers/node-llama-cpp-provider.js +35 -5
- package/dist/providers/node-llama-cpp-provider.js.map +1 -1
- package/dist/providers/node-llama-cpp-trending.generated.js +140 -140
- package/dist/providers/node-llama-cpp-trending.generated.js.map +1 -1
- package/dist/providers/openai-provider.d.ts +12 -0
- package/dist/providers/openai-provider.d.ts.map +1 -1
- package/dist/providers/openai-provider.js +25 -0
- package/dist/providers/openai-provider.js.map +1 -1
- package/dist/providers/openrouter-provider.js +1 -1
- package/dist/providers/openrouter-provider.js.map +1 -1
- package/dist/providers/provider-queue.d.ts +7 -0
- package/dist/providers/provider-queue.d.ts.map +1 -1
- package/dist/providers/provider-queue.js +50 -1
- package/dist/providers/provider-queue.js.map +1 -1
- package/dist/providers/replicate-provider.d.ts.map +1 -1
- package/dist/providers/replicate-provider.js +16 -4
- package/dist/providers/replicate-provider.js.map +1 -1
- package/dist/providers/requesty-provider.js +1 -1
- package/dist/providers/requesty-provider.js.map +1 -1
- package/dist/providers/safetensors-header.d.ts +5 -0
- package/dist/providers/safetensors-header.d.ts.map +1 -0
- package/dist/providers/safetensors-header.js +49 -0
- package/dist/providers/safetensors-header.js.map +1 -0
- package/dist/providers/sdcpp-models.d.ts +13 -0
- package/dist/providers/sdcpp-models.d.ts.map +1 -1
- package/dist/providers/sdcpp-models.js +44 -0
- package/dist/providers/sdcpp-models.js.map +1 -1
- package/dist/providers/sdcpp-provider.d.ts +4 -0
- package/dist/providers/sdcpp-provider.d.ts.map +1 -1
- package/dist/providers/sdcpp-provider.js +27 -8
- package/dist/providers/sdcpp-provider.js.map +1 -1
- package/dist/providers/toapis-provider.d.ts +38 -0
- package/dist/providers/toapis-provider.d.ts.map +1 -0
- package/dist/providers/toapis-provider.js +361 -0
- package/dist/providers/toapis-provider.js.map +1 -0
- package/dist/providers/types.d.ts +10 -0
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js.map +1 -1
- package/dist/python-bridge-base.d.ts +2 -0
- package/dist/python-bridge-base.d.ts.map +1 -1
- package/dist/python-bridge-base.js +9 -26
- package/dist/python-bridge-base.js.map +1 -1
- package/package.json +7 -6
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
* in as a constructor kwarg — exactly how the registry wires every other
|
|
16
16
|
* credentialed provider.
|
|
17
17
|
*/
|
|
18
|
+
import { createHash } from "node:crypto";
|
|
18
19
|
import OpenAI from "openai";
|
|
19
20
|
import { createLogger } from "@nodetool-ai/config";
|
|
20
21
|
import { CODEX_BACKEND_BASE_URL, CODEX_DEFAULT_ORIGINATOR, CODEX_CLIENT_VERSION, PROVIDER_IDS, isString } from "@nodetool-ai/protocol";
|
|
@@ -22,12 +23,6 @@ import { OpenAIProvider } from "./openai-provider.js";
|
|
|
22
23
|
import { extractChatGptAccountId } from "./oauth/jwt-claims.js";
|
|
23
24
|
import { isProviderSessionUpdate, isProviderMessageEvent, isProviderStop } from "./types.js";
|
|
24
25
|
const log = createLogger("nodetool.runtime.codex");
|
|
25
|
-
/**
|
|
26
|
-
* Chat model that orchestrates the `image_generation` tool call. The Codex
|
|
27
|
-
* backend has no images endpoint — images are produced by invoking the
|
|
28
|
-
* Responses built-in `image_generation` tool from a normal chat model.
|
|
29
|
-
*/
|
|
30
|
-
const CODEX_IMAGE_ORCHESTRATOR_MODEL = "gpt-5.5";
|
|
31
26
|
/**
|
|
32
27
|
* The models the Codex CLI lists in its picker, mirrored from its bundled
|
|
33
28
|
* `models.json` (entries with `visibility: "list"`). Shown only when the live
|
|
@@ -60,6 +55,28 @@ function codexClientVersion() {
|
|
|
60
55
|
function codexHttpError(message, status) {
|
|
61
56
|
return Object.assign(new Error(message), { status });
|
|
62
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* The id Codex groups one conversation's requests under. The Codex CLI sends
|
|
60
|
+
* its conversation id as both the `session_id` header and `prompt_cache_key`,
|
|
61
|
+
* and the backend routes requests that share it to where their prefix is
|
|
62
|
+
* already cached. A thread keys by its id, so every turn and tool round of it
|
|
63
|
+
* lands together; without a thread the instructions stand in, which groups the
|
|
64
|
+
* calls of one agent or node. UUID-shaped like the CLI's own ids. Undefined
|
|
65
|
+
* when there is nothing stable to key on.
|
|
66
|
+
*/
|
|
67
|
+
export function codexConversationId(threadId, instructions) {
|
|
68
|
+
const source = threadId
|
|
69
|
+
? `thread:${threadId}`
|
|
70
|
+
: instructions
|
|
71
|
+
? `system:${instructions}`
|
|
72
|
+
: "";
|
|
73
|
+
if (!source)
|
|
74
|
+
return undefined;
|
|
75
|
+
const hex = createHash("sha256")
|
|
76
|
+
.update(`nodetool-codex:${source}`)
|
|
77
|
+
.digest("hex");
|
|
78
|
+
return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20, 32)}`;
|
|
79
|
+
}
|
|
63
80
|
/** The default headers a Codex client sends, with the account id when there is one. */
|
|
64
81
|
function codexDefaultHeaders(originator, accountId) {
|
|
65
82
|
const headers = { originator };
|
|
@@ -69,6 +86,7 @@ function codexDefaultHeaders(originator, accountId) {
|
|
|
69
86
|
return headers;
|
|
70
87
|
}
|
|
71
88
|
export class CodexProvider extends OpenAIProvider {
|
|
89
|
+
imageOrchestratorModel = null;
|
|
72
90
|
declaredCapabilities() {
|
|
73
91
|
return [
|
|
74
92
|
"text_to_image"
|
|
@@ -154,6 +172,15 @@ export class CodexProvider extends OpenAIProvider {
|
|
|
154
172
|
supportedTasks: ["text_to_image"]
|
|
155
173
|
}));
|
|
156
174
|
}
|
|
175
|
+
/**
|
|
176
|
+
* The chat model that calls the `image_generation` tool. The Codex backend
|
|
177
|
+
* has no images endpoint, and the models it serves change by account and
|
|
178
|
+
* over time, so use the first model of the live listing.
|
|
179
|
+
*/
|
|
180
|
+
resolveImageOrchestratorModel() {
|
|
181
|
+
this.imageOrchestratorModel ??= this.getAvailableLanguageModels().then((models) => models[0]?.id ?? CODEX_FALLBACK_MODELS[0].id);
|
|
182
|
+
return this.imageOrchestratorModel;
|
|
183
|
+
}
|
|
157
184
|
/**
|
|
158
185
|
* Generate an image by asking a chat model to invoke the Responses built-in
|
|
159
186
|
* `image_generation` tool, then extracting the PNG bytes from the
|
|
@@ -176,7 +203,7 @@ export class CodexProvider extends OpenAIProvider {
|
|
|
176
203
|
if (params.quality)
|
|
177
204
|
imageTool.quality = params.quality;
|
|
178
205
|
const body = {
|
|
179
|
-
model:
|
|
206
|
+
model: await this.resolveImageOrchestratorModel(),
|
|
180
207
|
instructions: "Generate the image the user describes by calling the image_generation tool. Do not ask clarifying questions.",
|
|
181
208
|
input: [
|
|
182
209
|
{
|
|
@@ -252,7 +279,7 @@ export class CodexProvider extends OpenAIProvider {
|
|
|
252
279
|
return Uint8Array.from(Buffer.from(b64, "base64"));
|
|
253
280
|
}
|
|
254
281
|
// --- Responses API transport -------------------------------------------
|
|
255
|
-
buildHeaders(accept = "text/event-stream") {
|
|
282
|
+
buildHeaders(accept = "text/event-stream", sessionId) {
|
|
256
283
|
const version = codexClientVersion();
|
|
257
284
|
const headers = {
|
|
258
285
|
authorization: `Bearer ${this.accessToken}`,
|
|
@@ -262,7 +289,7 @@ export class CodexProvider extends OpenAIProvider {
|
|
|
262
289
|
"openai-beta": "responses=experimental",
|
|
263
290
|
version,
|
|
264
291
|
"user-agent": `${this.originator}/${version} (NodeTool)`,
|
|
265
|
-
session_id: globalThis.crypto.randomUUID()
|
|
292
|
+
session_id: sessionId ?? globalThis.crypto.randomUUID()
|
|
266
293
|
};
|
|
267
294
|
if (this.accountId) {
|
|
268
295
|
headers["chatgpt-account-id"] = this.accountId;
|
|
@@ -319,6 +346,9 @@ export class CodexProvider extends OpenAIProvider {
|
|
|
319
346
|
store: false,
|
|
320
347
|
stream: true
|
|
321
348
|
};
|
|
349
|
+
const conversationId = codexConversationId(args.threadId, instructions);
|
|
350
|
+
if (conversationId)
|
|
351
|
+
body.prompt_cache_key = conversationId;
|
|
322
352
|
if (args.tools?.length) {
|
|
323
353
|
body.tools = args.tools.map((t) => ({
|
|
324
354
|
type: "function",
|
|
@@ -342,7 +372,7 @@ export class CodexProvider extends OpenAIProvider {
|
|
|
342
372
|
this.recordRequestPayload(body);
|
|
343
373
|
const res = await fetch(`${CODEX_BACKEND_BASE_URL}/responses`, {
|
|
344
374
|
method: "POST",
|
|
345
|
-
headers: this.buildHeaders(),
|
|
375
|
+
headers: this.buildHeaders("text/event-stream", isString(body.prompt_cache_key) ? body.prompt_cache_key : undefined),
|
|
346
376
|
body: JSON.stringify(body),
|
|
347
377
|
signal: args.signal
|
|
348
378
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-provider.js","sourceRoot":"","sources":["../../src/providers/codex-provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codex-provider.js","sourceRoot":"","sources":["../../src/providers/codex-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import type { EncodedAudioResult, ImageModel, Message, MusicModel, ImageToImageP
|
|
|
4
4
|
/** Evaluates JavaScript inside the user's logged-in Dreamina tab. */
|
|
5
5
|
export interface DreaminaPageRunner {
|
|
6
6
|
/** Run `expression` (an async-wrapped JS expression) in the tab and return its JSON value. */
|
|
7
|
-
evaluate(expression: string): Promise<unknown>;
|
|
7
|
+
evaluate(expression: string, timeoutMs?: number): Promise<unknown>;
|
|
8
8
|
}
|
|
9
9
|
/** Replace the page runner. Tests use this to avoid a real browser. */
|
|
10
10
|
export declare function setDreaminaPageRunner(runner: DreaminaPageRunner | null): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dreamina-provider.d.ts","sourceRoot":"","sources":["../../src/providers/dreamina-provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dreamina-provider.d.ts","sourceRoot":"","sources":["../../src/providers/dreamina-provider.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAI3E,OAAO,EAAmC,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACnG,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAuB,MAAM,YAAY,CAAC;AAI5R,qEAAqE;AACrE,MAAM,WAAW,kBAAkB;IACjC,8FAA8F;IAC9F,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACpE;AAMD,uEAAuE;AACvE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAE7E;AAaD,kGAAkG;AAClG,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAEhF;AA00BD;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,WAAW,CAA8D;IACjF,OAAO,CAAC,gBAAgB,CAAmE;IAC3F,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2H;IAEjJ,UAAmB,oBAAoB,IAAI,SAAS,kBAAkB,EAAE,CAEvE;IAED,OAAgB,eAAe,IAAI,MAAM,EAAE,CAAe;IAC1D,YAAY,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAAmC;IAE/E,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAkE;IAEzJ,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAAkE;YAEvK,YAAY;IAQ1B,mFAAmF;IACpE,uBAAuB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAE9D;YAEa,WAAW;IAMzB,8EAA8E;IAC9E,OAAO,CAAC,SAAS;YAaH,WAAW;IAeV,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAMzE;IAED;;;;;OAKG;IACY,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAcjG;YAEa,YAAY;IAQX,uBAAuB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAE9D;IAEc,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAEzE;IAED;;;;;;OAMG;IACY,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAE9F;IAED;;;;;;;OAOG;IACY,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,EAAE,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC,CAOnH;IAEc,uBAAuB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAE9D;IAED,oGAAoG;IACrF,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAGjF;YAEa,aAAa;IA2F3B,2DAA2D;YAC7C,YAAY;CAW3B"}
|
|
@@ -3,79 +3,26 @@ import { crc32 } from "node:zlib";
|
|
|
3
3
|
import { createLogger } from "@nodetool-ai/config";
|
|
4
4
|
import { PROVIDER_IDS } from "@nodetool-ai/protocol";
|
|
5
5
|
import { fetchExternalMedia } from "../external-media-fetch.js";
|
|
6
|
+
import { recordGenerationReceiptAsync } from "../generation-receipt.js";
|
|
6
7
|
import { BaseProvider } from "./base-provider.js";
|
|
7
8
|
import { createDreaminaMusic } from "./dreamina-music.js";
|
|
8
9
|
import { DREAMINA_IMAGE_MODELS, DREAMINA_VIDEO_MODELS } from "./dreamina-models.js";
|
|
10
|
+
import { createExtensionTab, ExtensionTabStallError } from "./extension-tab.js";
|
|
9
11
|
import { filePendingStore, pendingJobKey } from "./dreamina-pending.js";
|
|
10
12
|
const log = createLogger("nodetool.runtime.providers.dreamina");
|
|
11
|
-
/** The extension keeps the debugger attached between polls, then detaches when idle. */
|
|
12
|
-
const IDLE_CLOSE_MS = 30_000;
|
|
13
13
|
const DREAMINA_HOST = "dreamina.capcut.com";
|
|
14
|
-
/**
|
|
15
|
-
* Runs scripts in the tab the NodeTool extension is attached to, through the
|
|
16
|
-
* native messaging host's socket. The tab must already be a logged-in Dreamina
|
|
17
|
-
* page, because the requests rely on that origin and its cookies.
|
|
18
|
-
*/
|
|
19
|
-
function createExtensionRunner() {
|
|
20
|
-
let handle = null;
|
|
21
|
-
let opening = null;
|
|
22
|
-
let idleTimer = null;
|
|
23
|
-
let busy = 0;
|
|
24
|
-
const drop = async () => {
|
|
25
|
-
const current = handle;
|
|
26
|
-
handle = null;
|
|
27
|
-
if (current)
|
|
28
|
-
await current.close().catch(() => undefined);
|
|
29
|
-
};
|
|
30
|
-
const open = async () => {
|
|
31
|
-
const { createExtensionPage } = await import("@nodetool-ai/browser");
|
|
32
|
-
const next = await createExtensionPage(undefined, { urlMatch: DREAMINA_HOST });
|
|
33
|
-
try {
|
|
34
|
-
const host = await next.page.evaluate("location.hostname");
|
|
35
|
-
if (host !== DREAMINA_HOST) {
|
|
36
|
-
throw new Error(`The attached tab is ${host || "not a web page"}. Open https://${DREAMINA_HOST}, sign in, and attach the NodeTool extension to that tab`);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
catch (error) {
|
|
40
|
-
await next.close().catch(() => undefined);
|
|
41
|
-
throw error;
|
|
42
|
-
}
|
|
43
|
-
return next;
|
|
44
|
-
};
|
|
45
|
-
return {
|
|
46
|
-
async evaluate(expression) {
|
|
47
|
-
if (idleTimer)
|
|
48
|
-
clearTimeout(idleTimer);
|
|
49
|
-
busy += 1;
|
|
50
|
-
try {
|
|
51
|
-
if (!handle) {
|
|
52
|
-
// One attach serves every concurrent caller.
|
|
53
|
-
opening ??= open().finally(() => { opening = null; });
|
|
54
|
-
handle = await opening;
|
|
55
|
-
}
|
|
56
|
-
return await handle.page.evaluate(expression);
|
|
57
|
-
}
|
|
58
|
-
catch (error) {
|
|
59
|
-
await drop();
|
|
60
|
-
throw error;
|
|
61
|
-
}
|
|
62
|
-
finally {
|
|
63
|
-
busy -= 1;
|
|
64
|
-
if (busy === 0) {
|
|
65
|
-
idleTimer = setTimeout(() => void drop(), IDLE_CLOSE_MS);
|
|
66
|
-
idleTimer.unref?.();
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
14
|
let pageRunner = null;
|
|
73
15
|
/** Replace the page runner. Tests use this to avoid a real browser. */
|
|
74
16
|
export function setDreaminaPageRunner(runner) {
|
|
75
17
|
pageRunner = runner;
|
|
76
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* The tab the NodeTool extension attaches to. The shared tab unfreezes a
|
|
21
|
+
* background tab before each script: a frozen page runs the script but not
|
|
22
|
+
* its own request callbacks, so every request would stall.
|
|
23
|
+
*/
|
|
77
24
|
function runner() {
|
|
78
|
-
return (pageRunner ??=
|
|
25
|
+
return (pageRunner ??= createExtensionTab(DREAMINA_HOST));
|
|
79
26
|
}
|
|
80
27
|
let pendingStore = null;
|
|
81
28
|
/** Replace the store of uncollected jobs. Tests use this to keep the data directory untouched. */
|
|
@@ -93,7 +40,7 @@ class DreaminaStallError extends Error {
|
|
|
93
40
|
}
|
|
94
41
|
/** Whether `error` means a request stalled, so its outcome is unknown. */
|
|
95
42
|
function stalled(error) {
|
|
96
|
-
return error instanceof DreaminaStallError;
|
|
43
|
+
return error instanceof DreaminaStallError || error instanceof ExtensionTabStallError;
|
|
97
44
|
}
|
|
98
45
|
/**
|
|
99
46
|
* Evaluate `expression` in the tab, but stop waiting after `timeoutMs`. The
|
|
@@ -106,7 +53,7 @@ async function evaluateBounded(expression, what, timeoutMs = TAB_CALL_TIMEOUT_MS
|
|
|
106
53
|
timer.unref?.();
|
|
107
54
|
});
|
|
108
55
|
try {
|
|
109
|
-
return await Promise.race([runner().evaluate(expression), timeout]);
|
|
56
|
+
return await Promise.race([runner().evaluate(expression, timeoutMs), timeout]);
|
|
110
57
|
}
|
|
111
58
|
finally {
|
|
112
59
|
clearTimeout(timer);
|
|
@@ -194,6 +141,35 @@ async function retryOnTabLoss(what, step) {
|
|
|
194
141
|
return step();
|
|
195
142
|
}
|
|
196
143
|
}
|
|
144
|
+
/** How long the tab check before a generation may take, the attach included. */
|
|
145
|
+
const TAB_CHECK_TIMEOUT_MS = 15_000;
|
|
146
|
+
const ACCOUNT_INFO_URL = `https://${DREAMINA_HOST}/passport/web/account/info/?aid=${APP_ID}&account_sdk_source=web&language=en`;
|
|
147
|
+
/** The Dreamina tab is missing, not logged in, or does not answer. Nothing was uploaded or paid. */
|
|
148
|
+
class DreaminaTabError extends Error {
|
|
149
|
+
}
|
|
150
|
+
/** The logged-in account's user id, read through the tab's own cookies. */
|
|
151
|
+
async function accountUserId(timeoutMs = TAB_CALL_TIMEOUT_MS) {
|
|
152
|
+
const account = (await evaluateBounded(`fetch(${JSON.stringify(ACCOUNT_INFO_URL)}, { credentials: "include" }).then((r) => r.json())`, "the login check", timeoutMs));
|
|
153
|
+
const userId = account?.data?.user_id_str;
|
|
154
|
+
if (!userId)
|
|
155
|
+
throw new DreaminaTabError(`The Dreamina tab is not logged in. Sign in at https://${DREAMINA_HOST} in that tab and try again`);
|
|
156
|
+
return userId;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Check that the Dreamina tab answers and is logged in, before anything is
|
|
160
|
+
* uploaded or paid for. A frozen or broken tab fails here in seconds with a
|
|
161
|
+
* clear cause, instead of as a stalled job minutes later.
|
|
162
|
+
*/
|
|
163
|
+
async function checkTab() {
|
|
164
|
+
try {
|
|
165
|
+
await accountUserId(TAB_CHECK_TIMEOUT_MS);
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
if (!stalled(error))
|
|
169
|
+
throw error;
|
|
170
|
+
throw new DreaminaTabError(`The Dreamina tab does not answer. Bring the ${DREAMINA_HOST} tab to the front or reload it, then try again. Nothing was submitted`, { cause: error });
|
|
171
|
+
}
|
|
172
|
+
}
|
|
197
173
|
async function callApi(path, body) {
|
|
198
174
|
return path === GENERATE_PATH ? callApiOnce(path, body) : retryOnTabLoss(path, () => callApiOnce(path, body));
|
|
199
175
|
}
|
|
@@ -345,6 +321,8 @@ const MAX_REFERENCE_VIDEOS = 3;
|
|
|
345
321
|
const MAX_REFERENCE_AUDIOS = 3;
|
|
346
322
|
/** Chrome accepts at most 1 MiB per host-to-extension message, so the page receives uploads in pieces. */
|
|
347
323
|
const UPLOAD_PIECE_CHARS = 400_000;
|
|
324
|
+
/** One upload request in the tab. A reference video can take minutes on a slow line. */
|
|
325
|
+
const UPLOAD_TIMEOUT_MS = 5 * 60_000;
|
|
348
326
|
/** Run one request in the Dreamina tab, so its origin and cookies apply. */
|
|
349
327
|
async function pageFetch(request) {
|
|
350
328
|
const expression = `(async () => {
|
|
@@ -360,7 +338,7 @@ async function pageFetch(request) {
|
|
|
360
338
|
const response = await fetch(a.url, { method: a.method, headers: a.headers, body, credentials: "omit" });
|
|
361
339
|
return { status: response.status, text: await response.text() };
|
|
362
340
|
})()`;
|
|
363
|
-
return (await runner().evaluate(expression));
|
|
341
|
+
return (await runner().evaluate(expression, UPLOAD_TIMEOUT_MS));
|
|
364
342
|
}
|
|
365
343
|
/** Stage `bytes` in the page as base64 pieces and return the staging id. */
|
|
366
344
|
async function stageBytes(bytes) {
|
|
@@ -406,10 +384,7 @@ function uploadImage(bytes) {
|
|
|
406
384
|
}
|
|
407
385
|
async function uploadImageOnce(bytes) {
|
|
408
386
|
const token = await callApi("/mweb/v1/get_upload_token", { scene: 2 });
|
|
409
|
-
const
|
|
410
|
-
const userId = account.data?.user_id_str;
|
|
411
|
-
if (!userId)
|
|
412
|
-
throw new Error("Dreamina account info has no user id (is the tab logged in?)");
|
|
387
|
+
const userId = await accountUserId();
|
|
413
388
|
const applyQuery = { Action: "ApplyImageUpload", Version: "2018-08-01", ServiceId: token.space_name, FileSize: String(bytes.length), s: Math.random().toString(36).slice(2, 13), device_platform: "web" };
|
|
414
389
|
const applyUrl = `https://${token.upload_domain}/?${Object.entries(applyQuery).map(([k, v]) => `${encodeQuery(k)}=${encodeQuery(v)}`).join("&")}`;
|
|
415
390
|
const apply = await pageFetch({ url: applyUrl, method: "GET", headers: imagexHeaders(token, "GET", applyQuery, "") });
|
|
@@ -453,10 +428,7 @@ function uploadVideo(bytes) {
|
|
|
453
428
|
}
|
|
454
429
|
async function uploadVideoOnce(bytes) {
|
|
455
430
|
const token = await callApi("/mweb/v1/get_upload_token", { scene: 1 });
|
|
456
|
-
const
|
|
457
|
-
const userId = account.data?.user_id_str;
|
|
458
|
-
if (!userId)
|
|
459
|
-
throw new Error("Dreamina account info has no user id (is the tab logged in?)");
|
|
431
|
+
const userId = await accountUserId();
|
|
460
432
|
const applyQuery = { Action: "ApplyUploadInner", Version: "2020-11-19", SpaceName: token.space_name, FileType: "video", IsInner: "1", FileSize: String(bytes.length), s: Math.random().toString(36).slice(2, 13), device_platform: "web" };
|
|
461
433
|
const url = (query) => `https://${token.upload_domain}/?${Object.entries(query).map(([k, v]) => `${encodeQuery(k)}=${encodeQuery(v)}`).join("&")}`;
|
|
462
434
|
const apply = await pageFetch({ url: url(applyQuery), method: "GET", headers: imagexHeaders(token, "GET", applyQuery, "", "vod") });
|
|
@@ -645,6 +617,10 @@ async function submitAndAwait(body, submitId, timeoutMs, signal) {
|
|
|
645
617
|
log.warn("Dreamina submit has no answer, looking the job up by id", { submitId, error: unconfirmed.message });
|
|
646
618
|
}
|
|
647
619
|
log.info("Dreamina generation submitted", { submitId, timeoutMs, confirmed: !unconfirmed });
|
|
620
|
+
// A confirmed submit is a job on Dreamina: its id tells the caller that
|
|
621
|
+
// credits are in use. An unconfirmed one is recorded once the history shows it.
|
|
622
|
+
if (!unconfirmed)
|
|
623
|
+
await recordGenerationReceiptAsync({ provider_request_id: submitId });
|
|
648
624
|
return awaitJob(submitId, timeoutMs, signal, unconfirmed);
|
|
649
625
|
}
|
|
650
626
|
/** Dreamina answered the submit with an error, so no job runs. */
|
|
@@ -688,6 +664,8 @@ async function awaitJob(submitId, timeoutMs, signal, unconfirmed = null, resumed
|
|
|
688
664
|
pollFailures = 0;
|
|
689
665
|
const record = history[submitId];
|
|
690
666
|
if (record) {
|
|
667
|
+
if (!seen && (unconfirmed || resumed))
|
|
668
|
+
await recordGenerationReceiptAsync({ provider_request_id: submitId });
|
|
691
669
|
seen = true;
|
|
692
670
|
}
|
|
693
671
|
else if (!seen && (unconfirmed || resumed) && Date.now() - started > UNCONFIRMED_SUBMIT_GRACE_MS) {
|
|
@@ -878,6 +856,7 @@ export class DreaminaProvider extends BaseProvider {
|
|
|
878
856
|
return download(url, signal ?? undefined);
|
|
879
857
|
}
|
|
880
858
|
async textToImage(params) {
|
|
859
|
+
await checkTab();
|
|
881
860
|
const config = await this.imageConfig(params.model.id);
|
|
882
861
|
const { resolution, ratioType, size } = this.imageSize(config, params.resolution, aspectRatioFor(params));
|
|
883
862
|
const seed = params.seed ?? Math.floor(Math.random() * 4_000_000_000);
|
|
@@ -894,6 +873,7 @@ export class DreaminaProvider extends BaseProvider {
|
|
|
894
873
|
throw new Error("imageToImage needs at least one source image");
|
|
895
874
|
if (images.length > MAX_REFERENCE_IMAGES)
|
|
896
875
|
throw new Error(`Dreamina takes at most ${MAX_REFERENCE_IMAGES} source images, not ${images.length}`);
|
|
876
|
+
await checkTab();
|
|
897
877
|
const config = await this.imageConfig(params.model.id);
|
|
898
878
|
if (!config.feats?.includes("byte_edit"))
|
|
899
879
|
throw new Error(`Dreamina model ${config.model_name} does not take source images`);
|
|
@@ -956,9 +936,11 @@ export class DreaminaProvider extends BaseProvider {
|
|
|
956
936
|
}
|
|
957
937
|
/** Instrumental tracks need no model key. Vocal models appear only where the account lists them. */
|
|
958
938
|
async textToMusic(params) {
|
|
939
|
+
await checkTab();
|
|
959
940
|
return this.music.generate(params);
|
|
960
941
|
}
|
|
961
942
|
async generateVideo(params, requested) {
|
|
943
|
+
await checkTab();
|
|
962
944
|
const config = (await this.videoConfigs()).find((m) => m.model_req_key === params.model.id);
|
|
963
945
|
if (!config)
|
|
964
946
|
throw new Error(`Unknown Dreamina video model: ${params.model.id}`);
|