@nodetool-ai/runtime 0.8.7 → 0.8.9-beta.1

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 (169) hide show
  1. package/dist/.nodetool-build-stamp +1 -1
  2. package/dist/context.d.ts +6 -2
  3. package/dist/context.d.ts.map +1 -1
  4. package/dist/context.js +13 -24
  5. package/dist/context.js.map +1 -1
  6. package/dist/host-binaries.d.ts +5 -5
  7. package/dist/host-binaries.js +5 -5
  8. package/dist/index.d.ts +2 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +2 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/invocation-account.d.ts +1 -42
  13. package/dist/invocation-account.d.ts.map +1 -1
  14. package/dist/invocation-account.js +1 -59
  15. package/dist/invocation-account.js.map +1 -1
  16. package/dist/media/abort.d.ts +8 -0
  17. package/dist/media/abort.d.ts.map +1 -0
  18. package/dist/media/abort.js +18 -0
  19. package/dist/media/abort.js.map +1 -0
  20. package/dist/media/audio-encoder.d.ts +37 -0
  21. package/dist/media/audio-encoder.d.ts.map +1 -0
  22. package/dist/media/audio-encoder.js +118 -0
  23. package/dist/media/audio-encoder.js.map +1 -0
  24. package/dist/media/audio.d.ts +36 -0
  25. package/dist/media/audio.d.ts.map +1 -0
  26. package/dist/media/audio.js +84 -0
  27. package/dist/media/audio.js.map +1 -0
  28. package/dist/media/av.d.ts +51 -0
  29. package/dist/media/av.d.ts.map +1 -0
  30. package/dist/media/av.js +146 -0
  31. package/dist/media/av.js.map +1 -0
  32. package/dist/media/codecs.d.ts +9 -0
  33. package/dist/media/codecs.d.ts.map +1 -0
  34. package/dist/media/codecs.js +17 -0
  35. package/dist/media/codecs.js.map +1 -0
  36. package/dist/media/concat.d.ts +56 -0
  37. package/dist/media/concat.d.ts.map +1 -0
  38. package/dist/media/concat.js +319 -0
  39. package/dist/media/concat.js.map +1 -0
  40. package/dist/media/convert.d.ts +31 -0
  41. package/dist/media/convert.d.ts.map +1 -0
  42. package/dist/media/convert.js +114 -0
  43. package/dist/media/convert.js.map +1 -0
  44. package/dist/media/decode.d.ts +31 -0
  45. package/dist/media/decode.d.ts.map +1 -0
  46. package/dist/media/decode.js +85 -0
  47. package/dist/media/decode.js.map +1 -0
  48. package/dist/media/filter-graph.d.ts +53 -0
  49. package/dist/media/filter-graph.d.ts.map +1 -0
  50. package/dist/media/filter-graph.js +260 -0
  51. package/dist/media/filter-graph.js.map +1 -0
  52. package/dist/media/frames.d.ts +31 -0
  53. package/dist/media/frames.d.ts.map +1 -0
  54. package/dist/media/frames.js +112 -0
  55. package/dist/media/frames.js.map +1 -0
  56. package/dist/media/index.d.ts +26 -0
  57. package/dist/media/index.d.ts.map +1 -0
  58. package/dist/media/index.js +26 -0
  59. package/dist/media/index.js.map +1 -0
  60. package/dist/media/mux.d.ts +58 -0
  61. package/dist/media/mux.d.ts.map +1 -0
  62. package/dist/media/mux.js +234 -0
  63. package/dist/media/mux.js.map +1 -0
  64. package/dist/media/probe.d.ts +84 -0
  65. package/dist/media/probe.d.ts.map +1 -0
  66. package/dist/media/probe.js +133 -0
  67. package/dist/media/probe.js.map +1 -0
  68. package/dist/media/rgba.d.ts +78 -0
  69. package/dist/media/rgba.d.ts.map +1 -0
  70. package/dist/media/rgba.js +285 -0
  71. package/dist/media/rgba.js.map +1 -0
  72. package/dist/media/testing.d.ts +119 -0
  73. package/dist/media/testing.d.ts.map +1 -0
  74. package/dist/media/testing.js +343 -0
  75. package/dist/media/testing.js.map +1 -0
  76. package/dist/media/transcode.d.ts +17 -0
  77. package/dist/media/transcode.d.ts.map +1 -0
  78. package/dist/media/transcode.js +19 -0
  79. package/dist/media/transcode.js.map +1 -0
  80. package/dist/media/transform.d.ts +61 -0
  81. package/dist/media/transform.d.ts.map +1 -0
  82. package/dist/media/transform.js +371 -0
  83. package/dist/media/transform.js.map +1 -0
  84. package/dist/media/verify.d.ts +17 -0
  85. package/dist/media/verify.d.ts.map +1 -0
  86. package/dist/media/verify.js +65 -0
  87. package/dist/media/verify.js.map +1 -0
  88. package/dist/media-loader.d.ts +8 -0
  89. package/dist/media-loader.d.ts.map +1 -0
  90. package/dist/media-loader.js +10 -0
  91. package/dist/media-loader.js.map +1 -0
  92. package/dist/prefixed-storage-adapter.d.ts.map +1 -1
  93. package/dist/prefixed-storage-adapter.js +1 -1
  94. package/dist/prefixed-storage-adapter.js.map +1 -1
  95. package/dist/providers/anthropic-provider.d.ts +21 -0
  96. package/dist/providers/anthropic-provider.d.ts.map +1 -1
  97. package/dist/providers/anthropic-provider.js +82 -17
  98. package/dist/providers/anthropic-provider.js.map +1 -1
  99. package/dist/providers/claude-agent-provider.js +14 -2
  100. package/dist/providers/claude-agent-provider.js.map +1 -1
  101. package/dist/providers/codex-provider.d.ts +10 -0
  102. package/dist/providers/codex-provider.d.ts.map +1 -1
  103. package/dist/providers/codex-provider.js +29 -3
  104. package/dist/providers/codex-provider.js.map +1 -1
  105. package/dist/providers/data-uri.d.ts +6 -0
  106. package/dist/providers/data-uri.d.ts.map +1 -0
  107. package/dist/providers/data-uri.js +19 -0
  108. package/dist/providers/data-uri.js.map +1 -0
  109. package/dist/providers/dreamina-provider.d.ts +1 -1
  110. package/dist/providers/dreamina-provider.d.ts.map +1 -1
  111. package/dist/providers/dreamina-provider.js +54 -72
  112. package/dist/providers/dreamina-provider.js.map +1 -1
  113. package/dist/providers/fake-provider.js +1 -1
  114. package/dist/providers/gemini-provider.d.ts.map +1 -1
  115. package/dist/providers/gemini-provider.js +23 -0
  116. package/dist/providers/gemini-provider.js.map +1 -1
  117. package/dist/providers/meta-transcription.d.ts +1 -5
  118. package/dist/providers/meta-transcription.d.ts.map +1 -1
  119. package/dist/providers/meta-transcription.js +9 -55
  120. package/dist/providers/meta-transcription.js.map +1 -1
  121. package/dist/providers/node-llama-cpp-trending.generated.js +121 -121
  122. package/dist/providers/node-llama-cpp-trending.generated.js.map +1 -1
  123. package/dist/providers/ollama-provider.d.ts.map +1 -1
  124. package/dist/providers/ollama-provider.js +1 -17
  125. package/dist/providers/ollama-provider.js.map +1 -1
  126. package/dist/providers/openai-provider.d.ts +12 -0
  127. package/dist/providers/openai-provider.d.ts.map +1 -1
  128. package/dist/providers/openai-provider.js +27 -2
  129. package/dist/providers/openai-provider.js.map +1 -1
  130. package/dist/providers/openrouter-provider.js +1 -1
  131. package/dist/providers/openrouter-provider.js.map +1 -1
  132. package/dist/providers/requesty-provider.js +1 -1
  133. package/dist/providers/requesty-provider.js.map +1 -1
  134. package/dist/providers/safe-url.d.ts +1 -69
  135. package/dist/providers/safe-url.d.ts.map +1 -1
  136. package/dist/providers/safe-url.js +1 -284
  137. package/dist/providers/safe-url.js.map +1 -1
  138. package/dist/providers/topaz-provider.d.ts +1 -1
  139. package/dist/providers/topaz-provider.js +1 -1
  140. package/dist/providers/video-frame-fallback.d.ts +1 -1
  141. package/dist/providers/video-frame-fallback.js +4 -4
  142. package/dist/providers/video-frame-fallback.js.map +1 -1
  143. package/dist/providers/video-frames.d.ts +6 -16
  144. package/dist/providers/video-frames.d.ts.map +1 -1
  145. package/dist/providers/video-frames.js +48 -116
  146. package/dist/providers/video-frames.js.map +1 -1
  147. package/dist/python-bridge-base.d.ts +2 -0
  148. package/dist/python-bridge-base.d.ts.map +1 -1
  149. package/dist/python-bridge-base.js +9 -26
  150. package/dist/python-bridge-base.js.map +1 -1
  151. package/dist/storage-workspace.d.ts +1 -61
  152. package/dist/storage-workspace.d.ts.map +1 -1
  153. package/dist/storage-workspace.js +2 -430
  154. package/dist/storage-workspace.js.map +1 -1
  155. package/dist/testing.d.ts.map +1 -1
  156. package/dist/testing.js +57 -1
  157. package/dist/testing.js.map +1 -1
  158. package/dist/trim-video-window.d.ts.map +1 -1
  159. package/dist/trim-video-window.js +2 -32
  160. package/dist/trim-video-window.js.map +1 -1
  161. package/dist/workspace.d.ts +1 -118
  162. package/dist/workspace.d.ts.map +1 -1
  163. package/dist/workspace.js +1 -111
  164. package/dist/workspace.js.map +1 -1
  165. package/dist/yt-dlp-format.d.ts +22 -0
  166. package/dist/yt-dlp-format.d.ts.map +1 -0
  167. package/dist/yt-dlp-format.js +90 -0
  168. package/dist/yt-dlp-format.js.map +1 -0
  169. package/package.json +23 -6
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @nodetool-ai/runtime – Public API
3
3
  */
4
+ export { sniffImageMime, extForImageMime } from "./providers/image-mime.js";
4
5
  export { sniffAudioMime } from "./providers/audio-mime.js";
5
6
  export { ProcessingContext, ACTIVE_MODEL_CONTEXT_KEY, MemoryCache, resolveWorkspacePath, setDefaultModelInterfaces, getDefaultModelInterfaces, mediaResolverFor, GenerationAlreadyAcceptedError } from "./context.js";
6
7
  // The run's workspace, as an interface over any storage backend. Importing
@@ -54,6 +55,7 @@ export { createFakeContext, stubGlobalFetch } from "./testing.js";
54
55
  export { executeComfy, uploadComfyFile } from "./comfy-executor.js";
55
56
  export { executeBlender, BlenderExecutorError } from "./blender-executor.js";
56
57
  export { runHostBinary, HostBinaryMissingError, MAX_CAPTURED_BYTES, MAX_ARTIFACT_BYTES, maxConcurrentHostBinaries, mimeFromFilename, clampTimeoutSeconds } from "./host-binaries.js";
58
+ export { DEFAULT_YT_DLP_FORMAT, splitYtDlpFormat } from "./yt-dlp-format.js";
57
59
  export { RECOMMENDED_MODELS } from "./recommended-models.js";
58
60
  export { clearProviderCache, getProviderCacheVersion } from "./provider-cache.js";
59
61
  export { registerCostReconciler, getCostReconciler } from "./cost-reconciler.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,43 +1,2 @@
1
- /**
2
- * Invocation-scoped cost and asset accounting.
3
- *
4
- * The supervisor may only offer `retry` for an invocation that spent nothing
5
- * and wrote nothing (docs/workflow-supervisor-design.md §5.3). Answering that
6
- * needs per-invocation numbers, and a stack on the shared `ProcessingContext`
7
- * cannot supply them: every actor holds the same context and actors complete
8
- * out of order, so push/pop would credit actor A's charge to actor B whenever
9
- * A finishes first — precisely the corruption that would re-expose retry after
10
- * a billed call.
11
- *
12
- * So the scope travels with the invocation's async execution instead. Cost and
13
- * asset hooks write to whichever account is on the async stack; concurrent
14
- * invocations each have their own, in any completion order.
15
- */
16
- export interface InvocationAccount {
17
- /** Provider charges (USD) recorded while this invocation ran. */
18
- costUsd: number;
19
- /** True once the invocation created an asset. */
20
- createdAssets: boolean;
21
- }
22
- export declare function createInvocationAccount(): InvocationAccount;
23
- /**
24
- * Run `fn` inside `account`. The caller owns the account so it can read what
25
- * the invocation spent even when `fn` throws — which is the case retry safety
26
- * turns on.
27
- */
28
- export declare function inInvocationAccount<T>(account: InvocationAccount, fn: () => Promise<T>): Promise<T>;
29
- /**
30
- * Charge the invocation currently on the async stack, if any.
31
- *
32
- * A non-finite amount means a provider reported something we cannot add up —
33
- * and "cannot add up" must not read as "free", or the invocation would look
34
- * cost-free and re-earn a retry after a real charge. It is recorded as a
35
- * nominal charge instead: the number is meaningless, the fact of spending is
36
- * not. `costUsd` stays finite so the escalation record remains JSON-safe.
37
- */
38
- export declare function recordInvocationCost(usd: number | undefined | null): void;
39
- /** Mark the invocation currently on the async stack as having written an asset. */
40
- export declare function recordInvocationAsset(): void;
41
- /** The account for the invocation currently on the async stack, if any. */
42
- export declare function currentInvocationAccount(): InvocationAccount | undefined;
1
+ export * from "@nodetool-ai/execution-core/invocation-account";
43
2
  //# sourceMappingURL=invocation-account.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"invocation-account.d.ts","sourceRoot":"","sources":["../src/invocation-account.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,MAAM,WAAW,iBAAiB;IAChC,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,aAAa,EAAE,OAAO,CAAC;CACxB;AAID,wBAAgB,uBAAuB,IAAI,iBAAiB,CAE3D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,OAAO,EAAE,iBAAiB,EAC1B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAKzE;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAED,2EAA2E;AAC3E,wBAAgB,wBAAwB,IAAI,iBAAiB,GAAG,SAAS,CAExE"}
1
+ {"version":3,"file":"invocation-account.d.ts","sourceRoot":"","sources":["../src/invocation-account.ts"],"names":[],"mappings":"AAAA,cAAc,gDAAgD,CAAC"}
@@ -1,60 +1,2 @@
1
- /**
2
- * Invocation-scoped cost and asset accounting.
3
- *
4
- * The supervisor may only offer `retry` for an invocation that spent nothing
5
- * and wrote nothing (docs/workflow-supervisor-design.md §5.3). Answering that
6
- * needs per-invocation numbers, and a stack on the shared `ProcessingContext`
7
- * cannot supply them: every actor holds the same context and actors complete
8
- * out of order, so push/pop would credit actor A's charge to actor B whenever
9
- * A finishes first — precisely the corruption that would re-expose retry after
10
- * a billed call.
11
- *
12
- * So the scope travels with the invocation's async execution instead. Cost and
13
- * asset hooks write to whichever account is on the async stack; concurrent
14
- * invocations each have their own, in any completion order.
15
- */
16
- // Lazily resolved so this module still loads in browser/Edge bundles. There the
17
- // fallback holder has no per-context isolation, and concurrent invocations
18
- // would share one account — acceptable only because the supervisor that reads
19
- // these numbers runs in the kernel, which is Node-only.
20
- import { AsyncLocalStorage } from "./async-local-storage.js";
21
- const store = new AsyncLocalStorage();
22
- export function createInvocationAccount() {
23
- return { costUsd: 0, createdAssets: false };
24
- }
25
- /**
26
- * Run `fn` inside `account`. The caller owns the account so it can read what
27
- * the invocation spent even when `fn` throws — which is the case retry safety
28
- * turns on.
29
- */
30
- export function inInvocationAccount(account, fn) {
31
- return store.run(account, fn);
32
- }
33
- /**
34
- * Charge the invocation currently on the async stack, if any.
35
- *
36
- * A non-finite amount means a provider reported something we cannot add up —
37
- * and "cannot add up" must not read as "free", or the invocation would look
38
- * cost-free and re-earn a retry after a real charge. It is recorded as a
39
- * nominal charge instead: the number is meaningless, the fact of spending is
40
- * not. `costUsd` stays finite so the escalation record remains JSON-safe.
41
- */
42
- export function recordInvocationCost(usd) {
43
- if (usd === undefined || usd === null)
44
- return;
45
- const account = store.getStore();
46
- if (!account)
47
- return;
48
- account.costUsd += Number.isFinite(usd) ? usd : Number.MIN_VALUE;
49
- }
50
- /** Mark the invocation currently on the async stack as having written an asset. */
51
- export function recordInvocationAsset() {
52
- const account = store.getStore();
53
- if (account)
54
- account.createdAssets = true;
55
- }
56
- /** The account for the invocation currently on the async stack, if any. */
57
- export function currentInvocationAccount() {
58
- return store.getStore();
59
- }
1
+ export * from "@nodetool-ai/execution-core/invocation-account";
60
2
  //# sourceMappingURL=invocation-account.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"invocation-account.js","sourceRoot":"","sources":["../src/invocation-account.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,gFAAgF;AAChF,2EAA2E;AAC3E,8EAA8E;AAC9E,wDAAwD;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAS7D,MAAM,KAAK,GAAG,IAAI,iBAAiB,EAAqB,CAAC;AAEzD,MAAM,UAAU,uBAAuB;IACrC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAA0B,EAC1B,EAAoB;IAEpB,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAA8B;IACjE,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO;IAC9C,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;AACnE,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,qBAAqB;IACnC,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IACjC,IAAI,OAAO;QAAE,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;AAC5C,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,wBAAwB;IACtC,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"invocation-account.js","sourceRoot":"","sources":["../src/invocation-account.ts"],"names":[],"mappings":"AAAA,cAAc,gDAAgD,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Abort handling for the media module, kept free of node-av so the probes,
3
+ * which run on Mediabunny alone, load without the native addon.
4
+ */
5
+ /** The error an aborted media operation rejects with. */
6
+ export declare function abortError(signal: AbortSignal): Error;
7
+ export declare function throwIfAborted(signal: AbortSignal | undefined): void;
8
+ //# sourceMappingURL=abort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abort.d.ts","sourceRoot":"","sources":["../../src/media/abort.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,yDAAyD;AACzD,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK,CAMrD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CAEpE"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Abort handling for the media module, kept free of node-av so the probes,
3
+ * which run on Mediabunny alone, load without the native addon.
4
+ */
5
+ /** The error an aborted media operation rejects with. */
6
+ export function abortError(signal) {
7
+ const reason = signal.reason;
8
+ if (reason instanceof Error)
9
+ return reason;
10
+ const error = new Error("The media operation was aborted");
11
+ error.name = "AbortError";
12
+ return error;
13
+ }
14
+ export function throwIfAborted(signal) {
15
+ if (signal?.aborted)
16
+ throw abortError(signal);
17
+ }
18
+ //# sourceMappingURL=abort.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abort.js","sourceRoot":"","sources":["../../src/media/abort.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,yDAAyD;AACzD,MAAM,UAAU,UAAU,CAAC,MAAmB;IAC5C,MAAM,MAAM,GAAY,MAAM,CAAC,MAAM,CAAC;IACtC,IAAI,MAAM,YAAY,KAAK;QAAE,OAAO,MAAM,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC3D,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC;IAC1B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAA+B;IAC5D,IAAI,MAAM,EAAE,OAAO;QAAE,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * An audio encoder that keeps the last partial frame.
3
+ *
4
+ * node-av's `Encoder` chunks audio to the codec's frame size through an
5
+ * internal buffer whose flush only emits whole frames, so up to one frame of
6
+ * samples at the end of every stream is silently dropped (128 ms of AAC at
7
+ * 8 kHz). The ffmpeg CLI sends that tail as a short last frame. This wrapper
8
+ * chunks with `asetnsamples` instead, hands the encoder whole frames, and sends
9
+ * the short tail to the codec context directly.
10
+ */
11
+ import { Encoder, type Frame, type Packet } from "node-av";
12
+ export declare class AudioEncoder {
13
+ /** Add this to a muxer before the first {@link encode}. */
14
+ readonly encoder: Encoder;
15
+ private readonly chunker;
16
+ private readonly frameSize;
17
+ private tail;
18
+ private constructor();
19
+ /**
20
+ * An encoder for `codecName` at `sampleRate` with `channels` channels. Input
21
+ * frames may arrive in any rate, format and layout; they are converted as
22
+ * the CLI's `-ar` and `-ac` converted them.
23
+ */
24
+ static create(codecName: string, opts: {
25
+ sampleRate: number;
26
+ channels: number;
27
+ options?: Record<string, string>;
28
+ signal?: AbortSignal;
29
+ }): Promise<AudioEncoder>;
30
+ /** Encode `frame` (still the caller's to free) and return the packets ready. */
31
+ encode(frame: Frame): Promise<Packet[]>;
32
+ /** Encode what is buffered, including a short last frame, and end the stream. */
33
+ flush(): Promise<Packet[]>;
34
+ close(): void;
35
+ private encodeChunks;
36
+ }
37
+ //# sourceMappingURL=audio-encoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio-encoder.d.ts","sourceRoot":"","sources":["../../src/media/audio-encoder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAKL,OAAO,EAIP,KAAK,KAAK,EACV,KAAK,MAAM,EACZ,MAAM,SAAS,CAAC;AA8BjB,qBAAa,YAAY;IAIrB,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE,OAAO;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAN5B,OAAO,CAAC,IAAI,CAAsB;IAElC,OAAO,eAKH;IAEJ;;;;OAIG;IACH,OAAa,MAAM,CACjB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE;QACJ,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GACA,OAAO,CAAC,YAAY,CAAC,CAuBvB;IAED,gFAAgF;IAC1E,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAE5C;IAED,iFAAiF;IAC3E,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAe/B;IAED,KAAK,IAAI,IAAI,CAKZ;YAEa,YAAY;CAiB3B"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * An audio encoder that keeps the last partial frame.
3
+ *
4
+ * node-av's `Encoder` chunks audio to the codec's frame size through an
5
+ * internal buffer whose flush only emits whole frames, so up to one frame of
6
+ * samples at the end of every stream is silently dropped (128 ms of AAC at
7
+ * 8 kHz). The ffmpeg CLI sends that tail as a short last frame. This wrapper
8
+ * chunks with `asetnsamples` instead, hands the encoder whole frames, and sends
9
+ * the short tail to the codec context directly.
10
+ */
11
+ import { avChannelLayoutDefault, avGetSampleFmtName, CodecContext, Dictionary, Encoder, FilterAPI, Rational } from "node-av";
12
+ import { findEncoder, quietLibav } from "./av.js";
13
+ /** The frame size `codec` opens with at these settings; 0 means any size. */
14
+ async function probeFrameSize(codec, sampleRate, channels, options) {
15
+ const sampleFormat = codec.sampleFormats?.[0];
16
+ if (sampleFormat === undefined)
17
+ throw new Error(`${codec.name} declares no sample format`);
18
+ const context = new CodecContext();
19
+ context.allocContext3(codec);
20
+ try {
21
+ context.sampleRate = sampleRate;
22
+ context.sampleFormat = sampleFormat;
23
+ context.channelLayout = avChannelLayoutDefault(channels);
24
+ context.timeBase = new Rational(1, sampleRate);
25
+ const dictionary = options ? Dictionary.fromObject(options) : null;
26
+ const opened = await context.open2(codec, dictionary);
27
+ dictionary?.free();
28
+ if (opened < 0)
29
+ throw new Error(`Could not open the ${codec.name} encoder (${opened})`);
30
+ return { frameSize: context.frameSize, sampleFormat: avGetSampleFmtName(sampleFormat) ?? "" };
31
+ }
32
+ finally {
33
+ context.freeContext();
34
+ }
35
+ }
36
+ export class AudioEncoder {
37
+ encoder;
38
+ chunker;
39
+ frameSize;
40
+ tail = null;
41
+ constructor(
42
+ /** Add this to a muxer before the first {@link encode}. */
43
+ encoder, chunker, frameSize) {
44
+ this.encoder = encoder;
45
+ this.chunker = chunker;
46
+ this.frameSize = frameSize;
47
+ }
48
+ /**
49
+ * An encoder for `codecName` at `sampleRate` with `channels` channels. Input
50
+ * frames may arrive in any rate, format and layout; they are converted as
51
+ * the CLI's `-ar` and `-ac` converted them.
52
+ */
53
+ static async create(codecName, opts) {
54
+ quietLibav();
55
+ const codec = findEncoder(codecName);
56
+ if (!codec)
57
+ throw new Error(`This libav build has no ${codecName} encoder`);
58
+ const { frameSize, sampleFormat } = await probeFrameSize(codec, opts.sampleRate, opts.channels, opts.options);
59
+ const layout = opts.channels === 1 ? "mono" : opts.channels === 2 ? "stereo" : `${opts.channels}c`;
60
+ const chunker = FilterAPI.create([
61
+ `aresample=${opts.sampleRate}`,
62
+ `aformat=sample_fmts=${sampleFormat}:sample_rates=${opts.sampleRate}:channel_layouts=${layout}`,
63
+ frameSize > 0 ? `asetnsamples=n=${frameSize}:p=0` : undefined
64
+ ]
65
+ .filter(Boolean)
66
+ .join(","), { signal: opts.signal });
67
+ const encoder = await Encoder.create(codec, { options: opts.options, signal: opts.signal });
68
+ return new AudioEncoder(encoder, chunker, frameSize);
69
+ }
70
+ /** Encode `frame` (still the caller's to free) and return the packets ready. */
71
+ async encode(frame) {
72
+ return this.encodeChunks(await this.chunker.processAll(frame));
73
+ }
74
+ /** Encode what is buffered, including a short last frame, and end the stream. */
75
+ async flush() {
76
+ const packets = await this.encodeChunks(await this.chunker.processAll(null));
77
+ const tail = this.tail;
78
+ this.tail = null;
79
+ const context = this.encoder.getCodecContext();
80
+ if (tail && context) {
81
+ // Past the encoder's whole-frame buffer, which would drop it.
82
+ const sent = await context.sendFrame(tail);
83
+ tail.free();
84
+ if (sent < 0)
85
+ throw new Error(`The audio encoder refused the last frame (${sent})`);
86
+ }
87
+ else {
88
+ tail?.free();
89
+ }
90
+ packets.push(...(await this.encoder.encodeAll(null)));
91
+ return packets;
92
+ }
93
+ close() {
94
+ this.tail?.free();
95
+ this.tail = null;
96
+ this.chunker.close();
97
+ this.encoder.close();
98
+ }
99
+ async encodeChunks(chunks) {
100
+ const packets = [];
101
+ for (const chunk of chunks) {
102
+ if (this.frameSize > 0 && chunk.nbSamples < this.frameSize) {
103
+ // Only the stream's last chunk is short; hold it for flush().
104
+ this.tail?.free();
105
+ this.tail = chunk;
106
+ continue;
107
+ }
108
+ try {
109
+ packets.push(...(await this.encoder.encodeAll(chunk)));
110
+ }
111
+ finally {
112
+ chunk.free();
113
+ }
114
+ }
115
+ return packets;
116
+ }
117
+ }
118
+ //# sourceMappingURL=audio-encoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio-encoder.js","sourceRoot":"","sources":["../../src/media/audio-encoder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /** Decode a file's audio to float PCM with node-av. */
2
+ export interface PcmOptions {
3
+ /** Output sample rate. */
4
+ sampleRate: number;
5
+ /**
6
+ * Output channel count. Omit to keep the source layout. A `filter` that sets
7
+ * the layout itself (`pan=mono|...`) decides it instead.
8
+ */
9
+ channels?: number;
10
+ /** Filters applied before the resample, e.g. a `pan` downmix. */
11
+ filter?: string;
12
+ /** Stop after this many seconds of output, as the CLI's `-t` did. */
13
+ maxSeconds?: number;
14
+ signal?: AbortSignal;
15
+ }
16
+ export interface PcmAudio {
17
+ /** Interleaved samples, `channels` per frame. */
18
+ samples: Float32Array;
19
+ sampleRate: number;
20
+ channels: number;
21
+ }
22
+ /**
23
+ * Stream `filePath`'s first audio stream as interleaved float chunks. Yields
24
+ * nothing when the file has no audio stream. Reading stops at the caller's
25
+ * pace, so a two-hour file never sits in memory whole.
26
+ */
27
+ export declare function decodeAudioChunks(filePath: string, options: PcmOptions): AsyncGenerator<{
28
+ samples: Float32Array;
29
+ channels: number;
30
+ }>;
31
+ /**
32
+ * Decode `filePath`'s first audio stream to interleaved float PCM at
33
+ * `sampleRate`. Throws when the file has no audio stream.
34
+ */
35
+ export declare function decodeAudioToPcm(filePath: string, options: PcmOptions): Promise<PcmAudio>;
36
+ //# sourceMappingURL=audio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../../src/media/audio.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAKvD,MAAM,WAAW,UAAU;IACzB,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,iDAAiD;IACjD,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAoBD;;;;GAIG;AACH,wBAAuB,iBAAiB,CACtC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,UAAU,GAClB,cAAc,CAAC;IAAE,OAAO,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAuB7D;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,QAAQ,CAAC,CAwBnB"}
@@ -0,0 +1,84 @@
1
+ /** Decode a file's audio to float PCM with node-av. */
2
+ import { openFilterGraph } from "./filter-graph.js";
3
+ import { probeMedia } from "./probe.js";
4
+ function channelLayout(channels) {
5
+ if (channels === 1)
6
+ return "mono";
7
+ if (channels === 2)
8
+ return "stereo";
9
+ return `${channels}c`;
10
+ }
11
+ function pcmFilter(options) {
12
+ const steps = [
13
+ options.filter,
14
+ `aresample=${options.sampleRate}`,
15
+ options.channels
16
+ ? `aformat=sample_fmts=flt:channel_layouts=${channelLayout(options.channels)}`
17
+ : "aformat=sample_fmts=flt",
18
+ options.maxSeconds !== undefined ? `atrim=end=${options.maxSeconds}` : undefined
19
+ ];
20
+ return steps.filter((step) => Boolean(step)).join(",");
21
+ }
22
+ /**
23
+ * Stream `filePath`'s first audio stream as interleaved float chunks. Yields
24
+ * nothing when the file has no audio stream. Reading stops at the caller's
25
+ * pace, so a two-hour file never sits in memory whole.
26
+ */
27
+ export async function* decodeAudioChunks(filePath, options) {
28
+ const run = await openFilterGraph({
29
+ filePath,
30
+ kind: "audio",
31
+ filter: pcmFilter(options),
32
+ signal: options.signal
33
+ });
34
+ if (!run)
35
+ return;
36
+ try {
37
+ for await (const frame of run.frames()) {
38
+ try {
39
+ const bytes = frame.toBuffer();
40
+ // Copy out of the frame's buffer, which libav reuses once it is freed.
41
+ const samples = new Float32Array(bytes.byteLength / 4);
42
+ new Uint8Array(samples.buffer).set(bytes);
43
+ yield { samples, channels: frame.channels };
44
+ }
45
+ finally {
46
+ frame.free();
47
+ }
48
+ }
49
+ }
50
+ finally {
51
+ await run.close();
52
+ }
53
+ }
54
+ /**
55
+ * Decode `filePath`'s first audio stream to interleaved float PCM at
56
+ * `sampleRate`. Throws when the file has no audio stream.
57
+ */
58
+ export async function decodeAudioToPcm(filePath, options) {
59
+ const chunks = [];
60
+ let channels = 0;
61
+ let length = 0;
62
+ let sawStream = false;
63
+ for await (const chunk of decodeAudioChunks(filePath, options)) {
64
+ sawStream = true;
65
+ channels = chunk.channels;
66
+ chunks.push(chunk.samples);
67
+ length += chunk.samples.length;
68
+ }
69
+ if (!sawStream) {
70
+ // An audio stream that decodes to nothing still names its layout.
71
+ const probe = await probeMedia(filePath, { signal: options.signal });
72
+ if (!probe.audio)
73
+ throw new Error(`${filePath} has no audio stream`);
74
+ channels = options.channels ?? probe.audio.channels;
75
+ }
76
+ const samples = new Float32Array(length);
77
+ let offset = 0;
78
+ for (const chunk of chunks) {
79
+ samples.set(chunk, offset);
80
+ offset += chunk.length;
81
+ }
82
+ return { samples, sampleRate: options.sampleRate, channels };
83
+ }
84
+ //# sourceMappingURL=audio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio.js","sourceRoot":"","sources":["../../src/media/audio.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * node-av plumbing shared by the media module: logging, encoder lookup,
3
+ * container names and a file muxer that does not leak descriptors.
4
+ */
5
+ import { Codec, Muxer } from "node-av";
6
+ /**
7
+ * Keep libav quiet unless something failed. Its default level prints every
8
+ * encoder's settings banner to stderr, once per open.
9
+ */
10
+ export declare function quietLibav(): void;
11
+ export { abortError, throwIfAborted } from "./abort.js";
12
+ /** The encoder named `name`, or `null` when this build has none. */
13
+ export declare function findEncoder(name: string): Codec | null;
14
+ /** The libav muxer name for `filePath`, from its extension. */
15
+ export declare function muxerFormatFor(filePath: string): string;
16
+ /** A muxer writing to a file, with the handle this module owns. */
17
+ export interface FileMuxer {
18
+ muxer: Muxer;
19
+ /** Write the trailer, then close the file. Safe to call more than once. */
20
+ close(): Promise<void>;
21
+ }
22
+ /**
23
+ * Open a muxer over a file descriptor this module owns.
24
+ *
25
+ * `Muxer.open(path)` leaks one file descriptor and a few hundred kilobytes on
26
+ * every open and close in node-av 6.1.1 (see risk R6 in
27
+ * docs/ffmpeg-in-process-plan.md), so a server that renders all day runs out of
28
+ * descriptors. Custom IO closes cleanly. The callbacks read and write at an
29
+ * explicit position because MP4 and MOV seek back to rewrite their headers.
30
+ *
31
+ * The callbacks are synchronous on purpose. libav calls them from a libuv
32
+ * pool thread that blocks until the JS callback returns; an async `fs` call
33
+ * inside it needs a pool thread of its own, so as many concurrent muxers as
34
+ * the pool has threads (4 by default) deadlocked the process.
35
+ */
36
+ export declare function openFileMuxer(filePath: string, options?: {
37
+ format?: string;
38
+ signal?: AbortSignal;
39
+ muxerOptions?: Record<string, string>;
40
+ }): Promise<FileMuxer>;
41
+ /** Seconds from a format or stream start time, or 0 when libav has none. */
42
+ export declare function startTimeSeconds(startTime: bigint, timeBase: {
43
+ num: number;
44
+ den: number;
45
+ }): number;
46
+ /** A rational for `value`, exact for integer and NTSC-style rates. */
47
+ export declare function rationalFor(value: number): {
48
+ num: number;
49
+ den: number;
50
+ };
51
+ //# sourceMappingURL=av.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"av.d.ts","sourceRoot":"","sources":["../../src/media/av.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAML,KAAK,EAEL,KAAK,EAGN,MAAM,SAAS,CAAC;AAIjB;;;GAGG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAIjC;AAED,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAExD,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAItD;AAiBD,+DAA+D;AAC/D,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMvD;AAED,mEAAmE;AACnE,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,KAAK,CAAC;IACb,2EAA2E;IAC3E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAO,GAC7F,OAAO,CAAC,SAAS,CAAC,CA6DpB;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAIlG;AAED,sEAAsE;AACtE,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAMvE"}