@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.
Files changed (97) hide show
  1. package/dist/.nodetool-build-stamp +1 -1
  2. package/dist/context.d.ts +2 -2
  3. package/dist/context.d.ts.map +1 -1
  4. package/dist/context.js +6 -0
  5. package/dist/context.js.map +1 -1
  6. package/dist/media-ref-bytes.d.ts +6 -1
  7. package/dist/media-ref-bytes.d.ts.map +1 -1
  8. package/dist/media-ref-bytes.js +9 -3
  9. package/dist/media-ref-bytes.js.map +1 -1
  10. package/dist/providers/anthropic-provider.d.ts +21 -0
  11. package/dist/providers/anthropic-provider.d.ts.map +1 -1
  12. package/dist/providers/anthropic-provider.js +89 -10
  13. package/dist/providers/anthropic-provider.js.map +1 -1
  14. package/dist/providers/antigravity-provider.d.ts.map +1 -1
  15. package/dist/providers/antigravity-provider.js +2 -3
  16. package/dist/providers/antigravity-provider.js.map +1 -1
  17. package/dist/providers/base-provider.d.ts +7 -2
  18. package/dist/providers/base-provider.d.ts.map +1 -1
  19. package/dist/providers/base-provider.js +8 -0
  20. package/dist/providers/base-provider.js.map +1 -1
  21. package/dist/providers/claude-agent-provider.js +14 -2
  22. package/dist/providers/claude-agent-provider.js.map +1 -1
  23. package/dist/providers/codex-provider.d.ts +17 -0
  24. package/dist/providers/codex-provider.d.ts.map +1 -1
  25. package/dist/providers/codex-provider.js +40 -10
  26. package/dist/providers/codex-provider.js.map +1 -1
  27. package/dist/providers/dreamina-provider.d.ts +1 -1
  28. package/dist/providers/dreamina-provider.d.ts.map +1 -1
  29. package/dist/providers/dreamina-provider.js +54 -72
  30. package/dist/providers/dreamina-provider.js.map +1 -1
  31. package/dist/providers/fal-provider.d.ts +2 -1
  32. package/dist/providers/fal-provider.d.ts.map +1 -1
  33. package/dist/providers/fal-provider.js +87 -31
  34. package/dist/providers/fal-provider.js.map +1 -1
  35. package/dist/providers/fal-queue.d.ts.map +1 -1
  36. package/dist/providers/fal-queue.js +42 -4
  37. package/dist/providers/fal-queue.js.map +1 -1
  38. package/dist/providers/gemini-provider.d.ts.map +1 -1
  39. package/dist/providers/gemini-provider.js +23 -0
  40. package/dist/providers/gemini-provider.js.map +1 -1
  41. package/dist/providers/index.d.ts +2 -0
  42. package/dist/providers/index.d.ts.map +1 -1
  43. package/dist/providers/index.js +9 -2
  44. package/dist/providers/index.js.map +1 -1
  45. package/dist/providers/manifest-models.d.ts +12 -0
  46. package/dist/providers/manifest-models.d.ts.map +1 -1
  47. package/dist/providers/manifest-models.js +22 -22
  48. package/dist/providers/manifest-models.js.map +1 -1
  49. package/dist/providers/model-folders.d.ts +20 -0
  50. package/dist/providers/model-folders.d.ts.map +1 -0
  51. package/dist/providers/model-folders.js +116 -0
  52. package/dist/providers/model-folders.js.map +1 -0
  53. package/dist/providers/node-llama-cpp-provider.d.ts +13 -4
  54. package/dist/providers/node-llama-cpp-provider.d.ts.map +1 -1
  55. package/dist/providers/node-llama-cpp-provider.js +35 -5
  56. package/dist/providers/node-llama-cpp-provider.js.map +1 -1
  57. package/dist/providers/node-llama-cpp-trending.generated.js +140 -140
  58. package/dist/providers/node-llama-cpp-trending.generated.js.map +1 -1
  59. package/dist/providers/openai-provider.d.ts +12 -0
  60. package/dist/providers/openai-provider.d.ts.map +1 -1
  61. package/dist/providers/openai-provider.js +25 -0
  62. package/dist/providers/openai-provider.js.map +1 -1
  63. package/dist/providers/openrouter-provider.js +1 -1
  64. package/dist/providers/openrouter-provider.js.map +1 -1
  65. package/dist/providers/provider-queue.d.ts +7 -0
  66. package/dist/providers/provider-queue.d.ts.map +1 -1
  67. package/dist/providers/provider-queue.js +50 -1
  68. package/dist/providers/provider-queue.js.map +1 -1
  69. package/dist/providers/replicate-provider.d.ts.map +1 -1
  70. package/dist/providers/replicate-provider.js +16 -4
  71. package/dist/providers/replicate-provider.js.map +1 -1
  72. package/dist/providers/requesty-provider.js +1 -1
  73. package/dist/providers/requesty-provider.js.map +1 -1
  74. package/dist/providers/safetensors-header.d.ts +5 -0
  75. package/dist/providers/safetensors-header.d.ts.map +1 -0
  76. package/dist/providers/safetensors-header.js +49 -0
  77. package/dist/providers/safetensors-header.js.map +1 -0
  78. package/dist/providers/sdcpp-models.d.ts +13 -0
  79. package/dist/providers/sdcpp-models.d.ts.map +1 -1
  80. package/dist/providers/sdcpp-models.js +44 -0
  81. package/dist/providers/sdcpp-models.js.map +1 -1
  82. package/dist/providers/sdcpp-provider.d.ts +4 -0
  83. package/dist/providers/sdcpp-provider.d.ts.map +1 -1
  84. package/dist/providers/sdcpp-provider.js +27 -8
  85. package/dist/providers/sdcpp-provider.js.map +1 -1
  86. package/dist/providers/toapis-provider.d.ts +38 -0
  87. package/dist/providers/toapis-provider.d.ts.map +1 -0
  88. package/dist/providers/toapis-provider.js +361 -0
  89. package/dist/providers/toapis-provider.js.map +1 -0
  90. package/dist/providers/types.d.ts +10 -0
  91. package/dist/providers/types.d.ts.map +1 -1
  92. package/dist/providers/types.js.map +1 -1
  93. package/dist/python-bridge-base.d.ts +2 -0
  94. package/dist/python-bridge-base.d.ts.map +1 -1
  95. package/dist/python-bridge-base.js +9 -26
  96. package/dist/python-bridge-base.js.map +1 -1
  97. 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: CODEX_IMAGE_ORCHESTRATOR_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":"AAKA,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG3E,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,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAChD;AAkED,uEAAuE;AACvE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAE7E;AAQD,kGAAkG;AAClG,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAEhF;AA2yBD;;;;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,CAKzE;IAED;;;;;OAKG;IACY,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAajG;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,CAEjF;YAEa,aAAa;IA0F3B,2DAA2D;YAC7C,YAAY;CAW3B"}
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 ??= createExtensionRunner());
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 account = (await runner().evaluate(`fetch("https://dreamina.capcut.com/passport/web/account/info/?aid=${APP_ID}&account_sdk_source=web&language=en", { credentials: "include" }).then((r) => r.json())`));
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 account = (await runner().evaluate(`fetch("https://dreamina.capcut.com/passport/web/account/info/?aid=${APP_ID}&account_sdk_source=web&language=en", { credentials: "include" }).then((r) => r.json())`));
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}`);