@nodetool-ai/runtime 0.8.1 → 0.8.2

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 (256) hide show
  1. package/dist/.nodetool-build-stamp +1 -1
  2. package/dist/context.d.ts +31 -3
  3. package/dist/context.d.ts.map +1 -1
  4. package/dist/context.js +366 -158
  5. package/dist/context.js.map +1 -1
  6. package/dist/generation-registry.d.ts +8 -0
  7. package/dist/generation-registry.d.ts.map +1 -1
  8. package/dist/generation-registry.js +18 -0
  9. package/dist/generation-registry.js.map +1 -1
  10. package/dist/host-binaries.d.ts.map +1 -1
  11. package/dist/host-binaries.js +18 -10
  12. package/dist/host-binaries.js.map +1 -1
  13. package/dist/image-codec.d.ts +2 -0
  14. package/dist/image-codec.d.ts.map +1 -1
  15. package/dist/image-codec.js +23 -3
  16. package/dist/image-codec.js.map +1 -1
  17. package/dist/image-model-tasks.d.ts +15 -0
  18. package/dist/image-model-tasks.d.ts.map +1 -0
  19. package/dist/image-model-tasks.js +24 -0
  20. package/dist/image-model-tasks.js.map +1 -0
  21. package/dist/index.d.ts +14 -3
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +10 -2
  24. package/dist/index.js.map +1 -1
  25. package/dist/media-ref-bytes.d.ts +18 -2
  26. package/dist/media-ref-bytes.d.ts.map +1 -1
  27. package/dist/media-ref-bytes.js +26 -16
  28. package/dist/media-ref-bytes.js.map +1 -1
  29. package/dist/node-executor.d.ts +6 -0
  30. package/dist/node-executor.d.ts.map +1 -1
  31. package/dist/providers/aki-provider.d.ts +2 -0
  32. package/dist/providers/aki-provider.d.ts.map +1 -1
  33. package/dist/providers/aki-provider.js +6 -0
  34. package/dist/providers/aki-provider.js.map +1 -1
  35. package/dist/providers/atlascloud-provider.d.ts +2 -0
  36. package/dist/providers/atlascloud-provider.d.ts.map +1 -1
  37. package/dist/providers/atlascloud-provider.js +22 -0
  38. package/dist/providers/atlascloud-provider.js.map +1 -1
  39. package/dist/providers/base-provider.d.ts +36 -24
  40. package/dist/providers/base-provider.d.ts.map +1 -1
  41. package/dist/providers/base-provider.js +124 -148
  42. package/dist/providers/base-provider.js.map +1 -1
  43. package/dist/providers/claude-agent-provider.d.ts +6 -36
  44. package/dist/providers/claude-agent-provider.d.ts.map +1 -1
  45. package/dist/providers/claude-agent-provider.js +208 -26
  46. package/dist/providers/claude-agent-provider.js.map +1 -1
  47. package/dist/providers/codex-provider.d.ts +2 -0
  48. package/dist/providers/codex-provider.d.ts.map +1 -1
  49. package/dist/providers/codex-provider.js +15 -2
  50. package/dist/providers/codex-provider.js.map +1 -1
  51. package/dist/providers/cohere-provider.d.ts +2 -1
  52. package/dist/providers/cohere-provider.d.ts.map +1 -1
  53. package/dist/providers/cohere-provider.js +5 -0
  54. package/dist/providers/cohere-provider.js.map +1 -1
  55. package/dist/providers/core-tools.d.ts +2 -1
  56. package/dist/providers/core-tools.d.ts.map +1 -1
  57. package/dist/providers/core-tools.js +2 -1
  58. package/dist/providers/core-tools.js.map +1 -1
  59. package/dist/providers/credential-check.d.ts.map +1 -1
  60. package/dist/providers/credential-check.js +5 -0
  61. package/dist/providers/credential-check.js.map +1 -1
  62. package/dist/providers/custom-openai-provider.d.ts +2 -0
  63. package/dist/providers/custom-openai-provider.d.ts.map +1 -1
  64. package/dist/providers/custom-openai-provider.js +8 -0
  65. package/dist/providers/custom-openai-provider.js.map +1 -1
  66. package/dist/providers/dreamina-models.d.ts +5 -0
  67. package/dist/providers/dreamina-models.d.ts.map +1 -0
  68. package/dist/providers/dreamina-models.js +57 -0
  69. package/dist/providers/dreamina-models.js.map +1 -0
  70. package/dist/providers/dreamina-music.d.ts +52 -0
  71. package/dist/providers/dreamina-music.d.ts.map +1 -0
  72. package/dist/providers/dreamina-music.js +115 -0
  73. package/dist/providers/dreamina-music.js.map +1 -0
  74. package/dist/providers/dreamina-provider.d.ts +62 -0
  75. package/dist/providers/dreamina-provider.d.ts.map +1 -0
  76. package/dist/providers/dreamina-provider.js +790 -0
  77. package/dist/providers/dreamina-provider.js.map +1 -0
  78. package/dist/providers/elevenlabs-provider.d.ts +2 -1
  79. package/dist/providers/elevenlabs-provider.d.ts.map +1 -1
  80. package/dist/providers/elevenlabs-provider.js +5 -0
  81. package/dist/providers/elevenlabs-provider.js.map +1 -1
  82. package/dist/providers/evolink-provider.d.ts +2 -0
  83. package/dist/providers/evolink-provider.d.ts.map +1 -1
  84. package/dist/providers/evolink-provider.js +8 -0
  85. package/dist/providers/evolink-provider.js.map +1 -1
  86. package/dist/providers/fake-provider.d.ts +2 -1
  87. package/dist/providers/fake-provider.d.ts.map +1 -1
  88. package/dist/providers/fake-provider.js +10 -0
  89. package/dist/providers/fake-provider.js.map +1 -1
  90. package/dist/providers/fal-provider.d.ts +2 -1
  91. package/dist/providers/fal-provider.d.ts.map +1 -1
  92. package/dist/providers/fal-provider.js +27 -0
  93. package/dist/providers/fal-provider.js.map +1 -1
  94. package/dist/providers/gemini-provider.d.ts +2 -1
  95. package/dist/providers/gemini-provider.d.ts.map +1 -1
  96. package/dist/providers/gemini-provider.js +15 -0
  97. package/dist/providers/gemini-provider.js.map +1 -1
  98. package/dist/providers/higgsfield-provider.d.ts +2 -1
  99. package/dist/providers/higgsfield-provider.d.ts.map +1 -1
  100. package/dist/providers/higgsfield-provider.js +12 -0
  101. package/dist/providers/higgsfield-provider.js.map +1 -1
  102. package/dist/providers/huggingface-provider.d.ts +2 -1
  103. package/dist/providers/huggingface-provider.d.ts.map +1 -1
  104. package/dist/providers/huggingface-provider.js +10 -0
  105. package/dist/providers/huggingface-provider.js.map +1 -1
  106. package/dist/providers/index.d.ts +5 -2
  107. package/dist/providers/index.d.ts.map +1 -1
  108. package/dist/providers/index.js +13 -2
  109. package/dist/providers/index.js.map +1 -1
  110. package/dist/providers/jina-provider.d.ts +2 -1
  111. package/dist/providers/jina-provider.d.ts.map +1 -1
  112. package/dist/providers/jina-provider.js +5 -0
  113. package/dist/providers/jina-provider.js.map +1 -1
  114. package/dist/providers/kie-provider.d.ts +2 -1
  115. package/dist/providers/kie-provider.d.ts.map +1 -1
  116. package/dist/providers/kie-provider.js +14 -0
  117. package/dist/providers/kie-provider.js.map +1 -1
  118. package/dist/providers/llama-provider.d.ts +4 -1
  119. package/dist/providers/llama-provider.d.ts.map +1 -1
  120. package/dist/providers/llama-provider.js +9 -3
  121. package/dist/providers/llama-provider.js.map +1 -1
  122. package/dist/providers/loop-tracing.d.ts +17 -0
  123. package/dist/providers/loop-tracing.d.ts.map +1 -0
  124. package/dist/providers/loop-tracing.js +132 -0
  125. package/dist/providers/loop-tracing.js.map +1 -0
  126. package/dist/providers/meshy-provider.d.ts +2 -1
  127. package/dist/providers/meshy-provider.d.ts.map +1 -1
  128. package/dist/providers/meshy-provider.js +6 -0
  129. package/dist/providers/meshy-provider.js.map +1 -1
  130. package/dist/providers/minimax-provider.d.ts +2 -0
  131. package/dist/providers/minimax-provider.d.ts.map +1 -1
  132. package/dist/providers/minimax-provider.js +11 -0
  133. package/dist/providers/minimax-provider.js.map +1 -1
  134. package/dist/providers/mistral-provider.d.ts +2 -0
  135. package/dist/providers/mistral-provider.d.ts.map +1 -1
  136. package/dist/providers/mistral-provider.js +5 -0
  137. package/dist/providers/mistral-provider.js.map +1 -1
  138. package/dist/providers/node-llama-cpp-provider.d.ts +2 -1
  139. package/dist/providers/node-llama-cpp-provider.d.ts.map +1 -1
  140. package/dist/providers/node-llama-cpp-provider.js +8 -3
  141. package/dist/providers/node-llama-cpp-provider.js.map +1 -1
  142. package/dist/providers/nodetool-provider.d.ts +1 -1
  143. package/dist/providers/nodetool-provider.d.ts.map +1 -1
  144. package/dist/providers/nodetool-provider.js +0 -2
  145. package/dist/providers/nodetool-provider.js.map +1 -1
  146. package/dist/providers/ollama-provider.d.ts +2 -1
  147. package/dist/providers/ollama-provider.d.ts.map +1 -1
  148. package/dist/providers/ollama-provider.js +5 -0
  149. package/dist/providers/ollama-provider.js.map +1 -1
  150. package/dist/providers/openai-provider.d.ts +10 -2
  151. package/dist/providers/openai-provider.d.ts.map +1 -1
  152. package/dist/providers/openai-provider.js +63 -16
  153. package/dist/providers/openai-provider.js.map +1 -1
  154. package/dist/providers/openrouter-provider.d.ts +52 -1
  155. package/dist/providers/openrouter-provider.d.ts.map +1 -1
  156. package/dist/providers/openrouter-provider.js +372 -11
  157. package/dist/providers/openrouter-provider.js.map +1 -1
  158. package/dist/providers/provider-error.d.ts.map +1 -1
  159. package/dist/providers/provider-error.js +7 -1
  160. package/dist/providers/provider-error.js.map +1 -1
  161. package/dist/providers/provider-generations.d.ts +2 -2
  162. package/dist/providers/provider-generations.js +2 -2
  163. package/dist/providers/provider-request-log.d.ts.map +1 -1
  164. package/dist/providers/provider-request-log.js +18 -7
  165. package/dist/providers/provider-request-log.js.map +1 -1
  166. package/dist/providers/python-provider.d.ts +6 -1
  167. package/dist/providers/python-provider.d.ts.map +1 -1
  168. package/dist/providers/python-provider.js +30 -11
  169. package/dist/providers/python-provider.js.map +1 -1
  170. package/dist/providers/replicate-provider.d.ts +2 -1
  171. package/dist/providers/replicate-provider.d.ts.map +1 -1
  172. package/dist/providers/replicate-provider.js +22 -0
  173. package/dist/providers/replicate-provider.js.map +1 -1
  174. package/dist/providers/requesty-provider.d.ts +30 -0
  175. package/dist/providers/requesty-provider.d.ts.map +1 -0
  176. package/dist/providers/requesty-provider.js +87 -0
  177. package/dist/providers/requesty-provider.js.map +1 -0
  178. package/dist/providers/reve-provider.d.ts +2 -1
  179. package/dist/providers/reve-provider.d.ts.map +1 -1
  180. package/dist/providers/reve-provider.js +6 -0
  181. package/dist/providers/reve-provider.js.map +1 -1
  182. package/dist/providers/rodin-provider.d.ts +2 -1
  183. package/dist/providers/rodin-provider.d.ts.map +1 -1
  184. package/dist/providers/rodin-provider.js +6 -0
  185. package/dist/providers/rodin-provider.js.map +1 -1
  186. package/dist/providers/together-operations.d.ts +27 -0
  187. package/dist/providers/together-operations.d.ts.map +1 -0
  188. package/dist/providers/together-operations.js +95 -0
  189. package/dist/providers/together-operations.js.map +1 -0
  190. package/dist/providers/together-provider.d.ts +5 -8
  191. package/dist/providers/together-provider.d.ts.map +1 -1
  192. package/dist/providers/together-provider.js +54 -159
  193. package/dist/providers/together-provider.js.map +1 -1
  194. package/dist/providers/topaz-provider.d.ts +2 -1
  195. package/dist/providers/topaz-provider.d.ts.map +1 -1
  196. package/dist/providers/topaz-provider.js +5 -0
  197. package/dist/providers/topaz-provider.js.map +1 -1
  198. package/dist/providers/types.d.ts +38 -0
  199. package/dist/providers/types.d.ts.map +1 -1
  200. package/dist/providers/types.js.map +1 -1
  201. package/dist/providers/useapi-provider.d.ts +2 -1
  202. package/dist/providers/useapi-provider.d.ts.map +1 -1
  203. package/dist/providers/useapi-provider.js +8 -0
  204. package/dist/providers/useapi-provider.js.map +1 -1
  205. package/dist/providers/vllm-provider.d.ts +2 -4
  206. package/dist/providers/vllm-provider.d.ts.map +1 -1
  207. package/dist/providers/vllm-provider.js +1 -5
  208. package/dist/providers/vllm-provider.js.map +1 -1
  209. package/dist/providers/voyage-provider.d.ts +2 -1
  210. package/dist/providers/voyage-provider.d.ts.map +1 -1
  211. package/dist/providers/voyage-provider.js +5 -0
  212. package/dist/providers/voyage-provider.js.map +1 -1
  213. package/dist/providers/xai-provider.d.ts +2 -0
  214. package/dist/providers/xai-provider.d.ts.map +1 -1
  215. package/dist/providers/xai-provider.js +8 -0
  216. package/dist/providers/xai-provider.js.map +1 -1
  217. package/dist/recommended-models.d.ts.map +1 -1
  218. package/dist/recommended-models.js +20 -0
  219. package/dist/recommended-models.js.map +1 -1
  220. package/dist/run-context.d.ts +20 -0
  221. package/dist/run-context.d.ts.map +1 -0
  222. package/dist/run-context.js +18 -0
  223. package/dist/run-context.js.map +1 -0
  224. package/dist/run-trace-context.d.ts +30 -0
  225. package/dist/run-trace-context.d.ts.map +1 -0
  226. package/dist/run-trace-context.js +80 -0
  227. package/dist/run-trace-context.js.map +1 -0
  228. package/dist/run-trace-processor.d.ts +65 -0
  229. package/dist/run-trace-processor.d.ts.map +1 -0
  230. package/dist/run-trace-processor.js +417 -0
  231. package/dist/run-trace-processor.js.map +1 -0
  232. package/dist/run-trace-serialization.d.ts +5 -0
  233. package/dist/run-trace-serialization.d.ts.map +1 -0
  234. package/dist/run-trace-serialization.js +113 -0
  235. package/dist/run-trace-serialization.js.map +1 -0
  236. package/dist/storage-workspace.d.ts +3 -0
  237. package/dist/storage-workspace.d.ts.map +1 -1
  238. package/dist/storage-workspace.js +32 -17
  239. package/dist/storage-workspace.js.map +1 -1
  240. package/dist/telemetry.d.ts +9 -3
  241. package/dist/telemetry.d.ts.map +1 -1
  242. package/dist/telemetry.js +53 -20
  243. package/dist/telemetry.js.map +1 -1
  244. package/dist/trace-exporters.d.ts +2 -29
  245. package/dist/trace-exporters.d.ts.map +1 -1
  246. package/dist/trace-exporters.js +10 -2
  247. package/dist/trace-exporters.js.map +1 -1
  248. package/dist/tracing-helpers.d.ts +15 -22
  249. package/dist/tracing-helpers.d.ts.map +1 -1
  250. package/dist/tracing-helpers.js +38 -6
  251. package/dist/tracing-helpers.js.map +1 -1
  252. package/dist/trim-video-window.d.ts +8 -0
  253. package/dist/trim-video-window.d.ts.map +1 -0
  254. package/dist/trim-video-window.js +50 -0
  255. package/dist/trim-video-window.js.map +1 -0
  256. package/package.json +19 -5
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Dreamina's model catalog, captured from the site's `get_common_config`
3
+ * (image) and `video_generate/get_common_config` (video) responses. Listing
4
+ * models must not depend on a live browser tab, so the provider serves this
5
+ * list. Generation still reads the live config, which holds the pixel sizes
6
+ * and option keys a draft needs.
7
+ */
8
+ import { PROVIDER_IDS } from "@nodetool-ai/protocol";
9
+ const IMAGE_RATIOS = ["1:1", "3:4", "16:9", "4:3", "9:16", "2:3", "3:2", "21:9"];
10
+ const VIDEO_RATIOS = ["21:9", "16:9", "4:3", "1:1", "3:4", "9:16"];
11
+ /** [model_req_key, name, takes source images (`byte_edit`), resolutions] */
12
+ const IMAGE = [
13
+ ["high_aes_general_v50p_large", "Seedream 5.0 Pro", true, ["1.5k", "2k", "4k"]],
14
+ ["dreamina_gpt_image_2_5_flare", "GPT Image 2.5 Flare", true, ["1k", "2k", "4k"]],
15
+ ["dreamina_gpt_image_2_5_sunburst", "GPT Image 2.5 Sunburst", true, ["1k", "2k", "4k"]],
16
+ ["gpt_image_2", "GPT Image 2", true, ["1k", "2k", "4k"]],
17
+ ["gemini_3_image_pro", "Nano Banana Pro", true, ["1k", "2k", "4k"]],
18
+ ["high_aes_general_v50", "Seedream 5.0 Lite", true, ["2k", "4k"]],
19
+ ["high_aes_general_v43", "Seedream 4.7", true, ["2k", "4k"]],
20
+ ["high_aes_general_v42", "Seedream 4.6", true, ["2k", "4k"]],
21
+ ["high_aes_general_v40l", "Seedream 4.5", true, ["2k", "4k"]],
22
+ ["high_aes_general_v41", "Seedream 4.1", true, ["2k", "4k"]],
23
+ ["high_aes_general_v40", "Seedream 4.0", true, ["2k", "4k"]],
24
+ ["external_model_gemini_flash_image_v25", "Nano Banana", true, ["1k"]],
25
+ ["high_aes_general_v30l_art:general_v3.0_18b", "Seedream 3.1", false, ["1k", "2k"]],
26
+ ["high_aes_general_v30l:general_v3.0_18b", "Seedream 3.0", true, ["1k", "2k"]]
27
+ ];
28
+ /** [model_req_key, name, takes reference media (Seedance 2.x), shortest and longest clip in seconds, resolutions] */
29
+ const VIDEO = [
30
+ ["dreamina_seedance_45_pro_draft", "Dreamina Seedance 2.5 (for preview)", true, [4, 30], ["480p"]],
31
+ ["dreamina_seedance_45_pro", "Dreamina Seedance 2.5", true, [4, 30], ["480p", "720p", "1080p"]],
32
+ ["dreamina_seedance_40_mini", "Dreamina Seedance 2.0 Mini", true, [4, 15], ["720p", "1080p", "2K", "4k"]],
33
+ ["dreamina_seedance_40", "Dreamina Seedance 2.0 Fast", true, [4, 15], ["720p", "1080p", "2K", "4k"]],
34
+ ["dreamina_seedance_40_pro", "Dreamina Seedance 2.0", true, [4, 15], ["720p", "1080p", "4k"]],
35
+ ["dreamina_ic_generate_video_model_vgfm_3.5_pro", "Dreamina Seedance 1.5 Pro", false, [5, 12], ["720p", "1080p"]],
36
+ ["dreamina_ic_generate_video_model_vgfm_3.0_pro", "Dreamina Seedance 1.0", false, [5, 10], ["1080p"]],
37
+ ["dreamina_ic_generate_video_model_vgfm_3.0_fast", "Dreamina Seedance 1.0 Fast", false, [5, 10], ["720p", "1080p"]]
38
+ ];
39
+ export const DREAMINA_IMAGE_MODELS = IMAGE.map(([id, name, edits, resolutions]) => ({
40
+ id,
41
+ name,
42
+ provider: PROVIDER_IDS.DREAMINA,
43
+ supportedTasks: edits ? ["text_to_image", "image_to_image"] : ["text_to_image"],
44
+ aspectRatios: IMAGE_RATIOS,
45
+ resolutions
46
+ }));
47
+ /** Every Dreamina video model takes a first frame image. */
48
+ export const DREAMINA_VIDEO_MODELS = VIDEO.map(([id, name, references, [shortest, longest], resolutions]) => ({
49
+ id,
50
+ name,
51
+ provider: PROVIDER_IDS.DREAMINA,
52
+ supportedTasks: references ? ["text_to_video", "image_to_video", "reference_to_video"] : ["text_to_video", "image_to_video"],
53
+ durations: Array.from({ length: longest - shortest + 1 }, (_, i) => shortest + i),
54
+ resolutions,
55
+ aspectRatios: VIDEO_RATIOS
56
+ }));
57
+ //# sourceMappingURL=dreamina-models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dreamina-models.js","sourceRoot":"","sources":["../../src/providers/dreamina-models.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import type { EncodedAudioResult, MusicModel, TextToMusicParams } from "./types.js";
2
+ /**
3
+ * Dreamina's AI music, built on the same web API as images and video. The page
4
+ * calls it `generate_instrumental` (no model, no lyrics) and `generate_song`
5
+ * (a vocal model from `audio_generate/get_common_config`, optional lyrics).
6
+ * This module holds the request shapes. The provider supplies the signed
7
+ * transport, so the module has no browser dependency of its own.
8
+ */
9
+ export interface DreaminaMusicApi {
10
+ callApi<T>(path: string, body: unknown): Promise<T>;
11
+ submitAndAwait(body: Record<string, unknown>, submitId: string, timeoutMs: number, signal?: AbortSignal): Promise<DreaminaMusicRecord>;
12
+ download(url: string, signal?: AbortSignal): Promise<Uint8Array>;
13
+ appId: number;
14
+ daVersion: string;
15
+ }
16
+ export interface DreaminaMusicRecord {
17
+ item_list?: Array<{
18
+ audio?: {
19
+ origin_audio?: {
20
+ url?: string;
21
+ audio_url?: string;
22
+ format?: string;
23
+ duration_ms?: number;
24
+ };
25
+ };
26
+ common_attr?: {
27
+ item_urls?: string[];
28
+ };
29
+ }>;
30
+ }
31
+ /** The one model id that needs no Dreamina model key. */
32
+ export declare const DREAMINA_INSTRUMENTAL_MODEL = "instrumental";
33
+ interface MusicDraftInput {
34
+ kind: "generate_instrumental" | "generate_song";
35
+ prompt: string;
36
+ durationSeconds: number;
37
+ modelKey?: string;
38
+ lyrics?: string;
39
+ }
40
+ export declare function musicDraftFor(input: MusicDraftInput, daVersion: string): string;
41
+ /** First audio URL on a finished record: the original track, then the item's file list. */
42
+ export declare function musicUrlOf(record: DreaminaMusicRecord): {
43
+ url: string;
44
+ format: string;
45
+ } | undefined;
46
+ export interface DreaminaMusic {
47
+ models(): Promise<MusicModel[]>;
48
+ generate(params: TextToMusicParams): Promise<EncodedAudioResult>;
49
+ }
50
+ export declare function createDreaminaMusic(api: DreaminaMusicApi): DreaminaMusic;
51
+ export {};
52
+ //# sourceMappingURL=dreamina-music.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dreamina-music.d.ts","sourceRoot":"","sources":["../../src/providers/dreamina-music.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpF;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACpD,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACvI,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,KAAK,CAAC,EAAE;YAAE,YAAY,CAAC,EAAE;gBAAE,GAAG,CAAC,EAAE,MAAM,CAAC;gBAAC,SAAS,CAAC,EAAE,MAAM,CAAC;gBAAC,MAAM,CAAC,EAAE,MAAM,CAAC;gBAAC,WAAW,CAAC,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC;QACvG,WAAW,CAAC,EAAE;YAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;KACxC,CAAC,CAAC;CACJ;AAKD,yDAAyD;AACzD,eAAO,MAAM,2BAA2B,iBAAiB,CAAC;AAoB1D,UAAU,eAAe;IAAG,IAAI,EAAE,uBAAuB,GAAG,eAAe,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;AAE1J,wBAAgB,aAAa,CAAC,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAwB/E;AAOD,2FAA2F;AAC3F,wBAAgB,UAAU,CAAC,MAAM,EAAE,mBAAmB,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAKnG;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAClE;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,GAAG,aAAa,CAmDxE"}
@@ -0,0 +1,115 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { PROVIDER_IDS } from "@nodetool-ai/protocol";
3
+ /** The one model id that needs no Dreamina model key. */
4
+ export const DREAMINA_INSTRUMENTAL_MODEL = "instrumental";
5
+ const MUSIC_MIN_VERSION = "3.2.3";
6
+ const MUSIC_TIMEOUT_MS = 5 * 60_000;
7
+ const CONFIG_TTL_MS = 5 * 60_000;
8
+ const DEFAULT_DURATION_SECONDS = 10;
9
+ const ONLINE = 0;
10
+ const MIME_BY_FORMAT = { wav: "audio/wav", mp3: "audio/mpeg", m4a: "audio/mp4", aac: "audio/aac", flac: "audio/flac" };
11
+ /** Lyrics travel as a rich prompt: one paragraph node per line, each holding one text node. */
12
+ function lyricsNode(lyrics) {
13
+ const lines = lyrics.split(/\r?\n/).map((line) => line.trimEnd());
14
+ return {
15
+ type: "",
16
+ id: randomUUID(),
17
+ children: lines.map((content) => ({ type: "paragraph", id: randomUUID(), children: [{ type: "text", id: randomUUID(), content }] }))
18
+ };
19
+ }
20
+ export function musicDraftFor(input, daVersion) {
21
+ const id = () => randomUUID();
22
+ const ability = {
23
+ type: "",
24
+ id: id(),
25
+ prompt: input.prompt,
26
+ duration: input.durationSeconds,
27
+ title: ""
28
+ };
29
+ if (input.kind === "generate_song") {
30
+ ability.tags = [];
31
+ ability.model_req_key = input.modelKey;
32
+ if (input.lyrics) {
33
+ ability.lyrics = lyricsNode(input.lyrics);
34
+ }
35
+ }
36
+ const component = {
37
+ type: "audio_base_component",
38
+ id: id(),
39
+ min_version: MUSIC_MIN_VERSION,
40
+ aigc_mode: "workbench",
41
+ metadata: { type: "", id: id(), created_platform: 3, created_platform_version: "", created_time_in_ms: String(Date.now()), created_did: "" },
42
+ generate_type: input.kind,
43
+ abilities: { type: "", id: id(), [input.kind]: ability }
44
+ };
45
+ return JSON.stringify({ type: "draft", id: id(), min_version: MUSIC_MIN_VERSION, min_features: [], is_from_tsn: true, version: daVersion, main_component_id: component.id, component_list: [component] });
46
+ }
47
+ function songEnum(model, key) {
48
+ const values = model.options?.find((o) => o.key === key)?.enum_val?.int_value;
49
+ return Array.isArray(values) ? values : [];
50
+ }
51
+ /** First audio URL on a finished record: the original track, then the item's file list. */
52
+ export function musicUrlOf(record) {
53
+ const item = record.item_list?.[0];
54
+ const original = item?.audio?.origin_audio;
55
+ const url = original?.url ?? original?.audio_url ?? item?.common_attr?.item_urls?.[0];
56
+ return url ? { url, format: (original?.format ?? "wav").toLowerCase() } : undefined;
57
+ }
58
+ export function createDreaminaMusic(api) {
59
+ let cache = null;
60
+ /** Vocal models. Some accounts and regions list none, and then only instrumental music is offered. */
61
+ const songModels = async () => {
62
+ if (cache && Date.now() - cache.at < CONFIG_TTL_MS)
63
+ return cache.songs;
64
+ const data = await api.callApi("/mweb/v1/audio_generate/get_common_config", { scene_list: ["song"] });
65
+ const songs = (data.song?.model_list ?? []).filter((m) => (m.model_status ?? ONLINE) === ONLINE);
66
+ cache = { at: Date.now(), songs };
67
+ return songs;
68
+ };
69
+ return {
70
+ /** Only instrumental is listed, so listing never waits on the browser tab. A vocal model id still generates when the account offers it. */
71
+ async models() {
72
+ return [{ id: DREAMINA_INSTRUMENTAL_MODEL, name: "Dreamina Instrumental", provider: PROVIDER_IDS.DREAMINA, supportedTasks: ["text_to_music"] }];
73
+ },
74
+ async generate(params) {
75
+ const prompt = params.prompt?.trim();
76
+ if (!prompt)
77
+ throw new Error("prompt must not be empty");
78
+ const seconds = params.durationSeconds ?? DEFAULT_DURATION_SECONDS;
79
+ if (!Number.isInteger(seconds) || seconds <= 0)
80
+ throw new Error(`Dreamina music takes a whole number of seconds, not ${seconds}`);
81
+ const lyrics = params.lyrics?.trim();
82
+ let draft;
83
+ if (params.model.id === DREAMINA_INSTRUMENTAL_MODEL) {
84
+ if (lyrics)
85
+ throw new Error("The Dreamina instrumental model takes no lyrics. Pick a vocal model to sing them");
86
+ draft = musicDraftFor({ kind: "generate_instrumental", prompt, durationSeconds: seconds }, api.daVersion);
87
+ }
88
+ else {
89
+ const config = (await songModels()).find((m) => m.model_req_key === params.model.id);
90
+ if (!config)
91
+ throw new Error(`Unknown Dreamina music model: ${params.model.id}`);
92
+ const durations = songEnum(config, "duration");
93
+ if (durations.length > 0 && !durations.includes(seconds))
94
+ throw new Error(`Dreamina model ${config.model_name} offers ${durations.join(", ")} second tracks, not ${seconds}`);
95
+ const draftInput = { kind: "generate_song", prompt, durationSeconds: seconds, modelKey: config.model_req_key };
96
+ if (lyrics) {
97
+ draftInput.lyrics = lyrics;
98
+ }
99
+ draft = musicDraftFor(draftInput, api.daVersion);
100
+ }
101
+ const submitId = randomUUID();
102
+ const record = await api.submitAndAwait({
103
+ submit_id: submitId,
104
+ metrics_extra: JSON.stringify({ isDefaultSeed: 1, originSubmitId: submitId, isRegenerate: false }),
105
+ draft_content: draft,
106
+ http_common_info: { aid: api.appId }
107
+ }, submitId, (params.timeoutSeconds ?? MUSIC_TIMEOUT_MS / 1000) * 1000, params.signal);
108
+ const found = musicUrlOf(record);
109
+ if (!found)
110
+ throw new Error("Dreamina finished without audio");
111
+ return { data: await api.download(found.url, params.signal), mimeType: MIME_BY_FORMAT[found.format] ?? `audio/${found.format}` };
112
+ }
113
+ };
114
+ }
115
+ //# sourceMappingURL=dreamina-music.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dreamina-music.js","sourceRoot":"","sources":["../../src/providers/dreamina-music.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import { BaseProvider, type ProviderCapability } from "./base-provider.js";
2
+ import type { EncodedAudioResult, ImageModel, Message, MusicModel, ImageToImageParams, ImageToVideoParams, ProviderStreamItem, ReferenceToVideoInputs, ReferenceToVideoParams, TextToImageParams, TextToMusicParams, TextToVideoParams, VideoModel } from "./types.js";
3
+ /** Evaluates JavaScript inside the user's logged-in Dreamina tab. */
4
+ export interface DreaminaPageRunner {
5
+ /** Run `expression` (an async-wrapped JS expression) in the tab and return its JSON value. */
6
+ evaluate(expression: string): Promise<unknown>;
7
+ }
8
+ /** Replace the page runner. Tests use this to avoid a real browser. */
9
+ export declare function setDreaminaPageRunner(runner: DreaminaPageRunner | null): void;
10
+ /**
11
+ * Dreamina (CapCut) image generation through the user's own logged-in Chrome.
12
+ * Calls the same web API the site uses, from inside the attached Dreamina tab,
13
+ * so the account's cookies and credits apply. Local installs only.
14
+ */
15
+ export declare class DreaminaProvider extends BaseProvider {
16
+ private configCache;
17
+ private videoConfigCache;
18
+ private readonly music;
19
+ protected declaredCapabilities(): readonly ProviderCapability[];
20
+ static requiredSecrets(): string[];
21
+ constructor(_secrets?: Record<string, unknown>);
22
+ generateMessage(_args: Parameters<BaseProvider["generateMessage"]>[0]): Promise<Message>;
23
+ generateMessages(_args: Parameters<BaseProvider["generateMessages"]>[0]): AsyncGenerator<ProviderStreamItem>;
24
+ private imageConfigs;
25
+ /** Served from the captured catalog, so listing never waits on the browser tab. */
26
+ getAvailableImageModels(): Promise<ImageModel[]>;
27
+ private imageConfig;
28
+ /** Pick the resolution, ratio and pixel size a model offers for a request. */
29
+ private imageSize;
30
+ private submitImage;
31
+ textToImage(params: TextToImageParams): Promise<Uint8Array>;
32
+ /**
33
+ * Image-to-image through the site's "blend" mode: the source images guide a
34
+ * new image that follows the prompt. `strength` is Dreamina's reference
35
+ * strength (0 to 1, default 0.5). Without a ratio the output follows the
36
+ * first source image. Only models that list `byte_edit` take sources.
37
+ */
38
+ imageToImage(images: Uint8Array[], params: ImageToImageParams): Promise<Uint8Array>;
39
+ private videoConfigs;
40
+ getAvailableVideoModels(): Promise<VideoModel[]>;
41
+ textToVideo(params: TextToVideoParams): Promise<Uint8Array>;
42
+ /**
43
+ * Image-to-video through Dreamina's "first and last frames" mode. The image
44
+ * is the first frame. `endImage` sets the last frame on models that list
45
+ * `end_frame`. The prompt describes the motion and may stay empty.
46
+ */
47
+ imageToVideo(image: Uint8Array, params: ImageToVideoParams): Promise<Uint8Array>;
48
+ /**
49
+ * Reference-to-video through Dreamina's "omni reference" mode: the images
50
+ * condition the clip, and `[Image N]`, `[Video N]` and `[Audio N]` markers in
51
+ * the prompt place them in the text. Without markers the images and videos lead and the
52
+ * prompt follows. A reference video supplies motion or camera work and a
53
+ * reference audio supplies the sound. Audio needs at least one image or video
54
+ * beside it. Only the Seedance 2.x models take references.
55
+ */
56
+ referenceToVideo(inputs: ReferenceToVideoInputs, params: ReferenceToVideoParams): Promise<Uint8Array>;
57
+ getAvailableMusicModels(): Promise<MusicModel[]>;
58
+ /** Instrumental tracks need no model key. Vocal models appear only where the account lists them. */
59
+ textToMusic(params: TextToMusicParams): Promise<EncodedAudioResult>;
60
+ private generateVideo;
61
+ }
62
+ //# sourceMappingURL=dreamina-provider.d.ts.map
@@ -0,0 +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,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,EAAE,MAAM,YAAY,CAAC;AAIvQ,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;AAukBD;;;;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;;;;OAIG;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;CAsD5B"}