modelfusion 0.53.1 → 0.54.0

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 (98) hide show
  1. package/README.md +2 -2
  2. package/browser/convertAudioChunksToBase64.cjs +8 -0
  3. package/browser/convertAudioChunksToBase64.d.ts +4 -0
  4. package/browser/convertAudioChunksToBase64.js +4 -0
  5. package/browser/convertBlobToBase64.cjs +23 -0
  6. package/browser/convertBlobToBase64.d.ts +1 -0
  7. package/browser/convertBlobToBase64.js +19 -0
  8. package/{ui → browser}/index.cjs +5 -0
  9. package/browser/index.d.ts +6 -0
  10. package/browser/index.js +6 -0
  11. package/browser/invokeFlow.cjs +23 -0
  12. package/browser/invokeFlow.d.ts +8 -0
  13. package/browser/invokeFlow.js +19 -0
  14. package/{event-source → browser}/readEventSource.cjs +8 -3
  15. package/{event-source → browser}/readEventSource.d.ts +3 -1
  16. package/{event-source → browser}/readEventSource.js +8 -3
  17. package/{event-source → browser}/readEventSourceStream.cjs +1 -1
  18. package/{event-source → browser}/readEventSourceStream.js +1 -1
  19. package/core/FunctionOptions.d.ts +4 -3
  20. package/event-source/createEventSourceStream.cjs +7 -3
  21. package/event-source/createEventSourceStream.js +7 -3
  22. package/event-source/index.cjs +0 -2
  23. package/event-source/index.d.ts +0 -2
  24. package/event-source/index.js +0 -2
  25. package/index.cjs +0 -1
  26. package/index.d.ts +0 -1
  27. package/index.js +0 -1
  28. package/model-function/embed/embed.cjs +16 -0
  29. package/model-function/embed/embed.d.ts +16 -0
  30. package/model-function/embed/embed.js +16 -0
  31. package/model-function/generate-image/generateImage.cjs +12 -3
  32. package/model-function/generate-image/generateImage.d.ts +12 -3
  33. package/model-function/generate-image/generateImage.js +12 -3
  34. package/model-function/generate-speech/generateSpeech.cjs +16 -1
  35. package/model-function/generate-speech/generateSpeech.d.ts +16 -1
  36. package/model-function/generate-speech/generateSpeech.js +16 -1
  37. package/model-function/generate-speech/streamSpeech.cjs +22 -1
  38. package/model-function/generate-speech/streamSpeech.d.ts +22 -1
  39. package/model-function/generate-speech/streamSpeech.js +22 -1
  40. package/model-function/generate-structure/generateStructure.cjs +41 -0
  41. package/model-function/generate-structure/generateStructure.d.ts +41 -0
  42. package/model-function/generate-structure/generateStructure.js +41 -0
  43. package/model-function/generate-structure/generateStructureOrText.cjs +62 -0
  44. package/model-function/generate-structure/generateStructureOrText.d.ts +62 -0
  45. package/model-function/generate-structure/generateStructureOrText.js +62 -0
  46. package/model-function/generate-structure/streamStructure.cjs +72 -1
  47. package/model-function/generate-structure/streamStructure.d.ts +68 -1
  48. package/model-function/generate-structure/streamStructure.js +72 -1
  49. package/model-function/generate-text/generateText.cjs +14 -6
  50. package/model-function/generate-text/generateText.d.ts +14 -6
  51. package/model-function/generate-text/generateText.js +14 -6
  52. package/model-function/generate-text/streamText.cjs +25 -0
  53. package/model-function/generate-text/streamText.d.ts +25 -0
  54. package/model-function/generate-text/streamText.js +25 -0
  55. package/model-function/generate-transcription/generateTranscription.cjs +10 -5
  56. package/model-function/generate-transcription/generateTranscription.d.ts +10 -5
  57. package/model-function/generate-transcription/generateTranscription.js +10 -5
  58. package/model-function/tokenize-text/Tokenizer.d.ts +27 -3
  59. package/package.json +13 -4
  60. package/server/fastify/AssetStorage.cjs +2 -0
  61. package/server/fastify/AssetStorage.d.ts +17 -0
  62. package/server/fastify/AssetStorage.js +1 -0
  63. package/server/fastify/DefaultFlow.cjs +22 -0
  64. package/server/fastify/DefaultFlow.d.ts +16 -0
  65. package/server/fastify/DefaultFlow.js +18 -0
  66. package/server/fastify/FileSystemAssetStorage.cjs +60 -0
  67. package/server/fastify/FileSystemAssetStorage.d.ts +19 -0
  68. package/server/fastify/FileSystemAssetStorage.js +56 -0
  69. package/server/fastify/FileSystemLogger.cjs +48 -0
  70. package/server/fastify/FileSystemLogger.d.ts +18 -0
  71. package/server/fastify/FileSystemLogger.js +44 -0
  72. package/server/fastify/Flow.cjs +2 -0
  73. package/server/fastify/Flow.d.ts +9 -0
  74. package/server/fastify/Flow.js +1 -0
  75. package/server/fastify/FlowRun.cjs +71 -0
  76. package/server/fastify/FlowRun.d.ts +28 -0
  77. package/server/fastify/FlowRun.js +67 -0
  78. package/server/fastify/FlowSchema.cjs +2 -0
  79. package/server/fastify/FlowSchema.d.ts +5 -0
  80. package/server/fastify/FlowSchema.js +1 -0
  81. package/server/fastify/Logger.cjs +2 -0
  82. package/server/fastify/Logger.d.ts +13 -0
  83. package/server/fastify/Logger.js +1 -0
  84. package/server/fastify/PathProvider.cjs +34 -0
  85. package/server/fastify/PathProvider.d.ts +12 -0
  86. package/server/fastify/PathProvider.js +30 -0
  87. package/server/fastify/index.cjs +24 -0
  88. package/server/fastify/index.d.ts +8 -0
  89. package/server/fastify/index.js +8 -0
  90. package/server/fastify/modelFusionFlowPlugin.cjs +102 -0
  91. package/server/fastify/modelFusionFlowPlugin.d.ts +12 -0
  92. package/server/fastify/modelFusionFlowPlugin.js +98 -0
  93. package/ui/index.d.ts +0 -1
  94. package/ui/index.js +0 -1
  95. /package/{ui → browser}/MediaSourceAppender.cjs +0 -0
  96. /package/{ui → browser}/MediaSourceAppender.d.ts +0 -0
  97. /package/{ui → browser}/MediaSourceAppender.js +0 -0
  98. /package/{event-source → browser}/readEventSourceStream.d.ts +0 -0
@@ -0,0 +1,98 @@
1
+ import { withRun } from "../../core/getRun.js";
2
+ import { FlowRun } from "./FlowRun.js";
3
+ import { PathProvider } from "./PathProvider.js";
4
+ export const modelFusionFastifyPlugin = async (fastify, { flow, baseUrl, basePath, assetStorage, logger, }) => {
5
+ const paths = new PathProvider({
6
+ baseUrl,
7
+ basePath,
8
+ });
9
+ const runs = {};
10
+ fastify.post(paths.basePath, async (request) => {
11
+ const run = new FlowRun({
12
+ paths,
13
+ assetStorage,
14
+ logger,
15
+ });
16
+ runs[run.runId] = run;
17
+ // body the request body is json, parse and validate it:
18
+ const input = flow.schema.input.parse(request.body);
19
+ // start longer-running process (no await):
20
+ withRun(run, async () => {
21
+ flow
22
+ .process({
23
+ input,
24
+ run,
25
+ })
26
+ .catch((error) => {
27
+ logger.logError({
28
+ run,
29
+ message: "Failed to process flow",
30
+ error,
31
+ });
32
+ })
33
+ .finally(async () => {
34
+ run.finish();
35
+ });
36
+ });
37
+ return {
38
+ id: run.runId,
39
+ url: paths.getEventsUrl(run.runId),
40
+ };
41
+ });
42
+ fastify.get(paths.getAssetPathTemplate(), async (request, reply) => {
43
+ const runId = request.params.runId; // eslint-disable-line @typescript-eslint/no-explicit-any
44
+ const assetName = request.params.assetName; // eslint-disable-line @typescript-eslint/no-explicit-any
45
+ const asset = await assetStorage.readAsset({
46
+ run: runs[runId],
47
+ assetName,
48
+ });
49
+ if (asset == null) {
50
+ logger.logError({
51
+ run: runs[runId],
52
+ message: `Asset ${assetName} not found`,
53
+ error: new Error(`Asset ${assetName} not found`),
54
+ });
55
+ reply.status(404);
56
+ return { error: `Asset ${assetName} not found` };
57
+ }
58
+ const headers = {
59
+ "Access-Control-Allow-Origin": "*",
60
+ "Content-Length": asset.data.length,
61
+ "Content-Type": asset.contentType,
62
+ "Cache-Control": "no-cache",
63
+ };
64
+ reply.raw.writeHead(200, headers);
65
+ reply.raw.write(asset.data);
66
+ reply.raw.end();
67
+ return;
68
+ });
69
+ fastify.get(paths.getEventsPathTemplate(), async (request, reply) => {
70
+ const runId = request.params.runId; // eslint-disable-line @typescript-eslint/no-explicit-any
71
+ const eventQueue = runs[runId]?.eventQueue;
72
+ if (!eventQueue) {
73
+ return {
74
+ error: `No event queue found for run ID ${runId}`,
75
+ };
76
+ }
77
+ const headers = {
78
+ "Access-Control-Allow-Origin": "*",
79
+ "Content-Type": "text/event-stream",
80
+ Connection: "keep-alive",
81
+ "Cache-Control": "no-cache",
82
+ "Content-Encoding": "none",
83
+ };
84
+ reply.raw.writeHead(200, headers);
85
+ const textEncoder = new TextEncoder();
86
+ for await (const event of eventQueue) {
87
+ if (reply.raw.destroyed) {
88
+ break; // client disconnected
89
+ }
90
+ reply.raw.write(textEncoder.encode(`data: ${JSON.stringify(event)}\n\n`));
91
+ }
92
+ if (!reply.raw.destroyed) {
93
+ reply.raw.write(textEncoder.encode(`data: [DONE]\n\n`));
94
+ }
95
+ reply.raw.end();
96
+ return;
97
+ });
98
+ };
package/ui/index.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from "./MediaSourceAppender.js";
package/ui/index.js DELETED
@@ -1 +0,0 @@
1
- export * from "./MediaSourceAppender.js";
File without changes
File without changes
File without changes