@ai-sdk/llamaindex 1.0.0-canary.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.
package/CHANGELOG.md ADDED
@@ -0,0 +1,11 @@
1
+ # @ai-sdk/llamaindex
2
+
3
+ ## 1.0.0-canary.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [14cb3be]
8
+ - Updated dependencies [66962ed]
9
+ - Updated dependencies [9301f86]
10
+ - ai@5.0.0-canary.13
11
+ - @ai-sdk/provider-utils@3.0.0-canary.11
package/LICENSE ADDED
@@ -0,0 +1,13 @@
1
+ Copyright 2023 Vercel, Inc.
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+
7
+ http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software
10
+ distributed under the License is distributed on an "AS IS" BASIS,
11
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ See the License for the specific language governing permissions and
13
+ limitations under the License.
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # AI SDK - LlamaIndex Adapter
2
+
3
+ This package contains a LlamaIndex adapter for the AI SDK.
@@ -0,0 +1,18 @@
1
+ import { StreamData, DataStreamWriter } from 'ai';
2
+ import { StreamCallbacks } from 'ai/internal';
3
+
4
+ type EngineResponse = {
5
+ delta: string;
6
+ };
7
+ declare function toDataStream(stream: AsyncIterable<EngineResponse>, callbacks?: StreamCallbacks): ReadableStream<Uint8Array<ArrayBufferLike>>;
8
+ declare function toDataStreamResponse(stream: AsyncIterable<EngineResponse>, options?: {
9
+ init?: ResponseInit;
10
+ data?: StreamData;
11
+ callbacks?: StreamCallbacks;
12
+ }): Response;
13
+ declare function mergeIntoDataStream(stream: AsyncIterable<EngineResponse>, options: {
14
+ dataStream: DataStreamWriter;
15
+ callbacks?: StreamCallbacks;
16
+ }): void;
17
+
18
+ export { mergeIntoDataStream, toDataStream, toDataStreamResponse };
@@ -0,0 +1,18 @@
1
+ import { StreamData, DataStreamWriter } from 'ai';
2
+ import { StreamCallbacks } from 'ai/internal';
3
+
4
+ type EngineResponse = {
5
+ delta: string;
6
+ };
7
+ declare function toDataStream(stream: AsyncIterable<EngineResponse>, callbacks?: StreamCallbacks): ReadableStream<Uint8Array<ArrayBufferLike>>;
8
+ declare function toDataStreamResponse(stream: AsyncIterable<EngineResponse>, options?: {
9
+ init?: ResponseInit;
10
+ data?: StreamData;
11
+ callbacks?: StreamCallbacks;
12
+ }): Response;
13
+ declare function mergeIntoDataStream(stream: AsyncIterable<EngineResponse>, options: {
14
+ dataStream: DataStreamWriter;
15
+ callbacks?: StreamCallbacks;
16
+ }): void;
17
+
18
+ export { mergeIntoDataStream, toDataStream, toDataStreamResponse };
package/dist/index.js ADDED
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var src_exports = {};
22
+ __export(src_exports, {
23
+ mergeIntoDataStream: () => mergeIntoDataStream,
24
+ toDataStream: () => toDataStream,
25
+ toDataStreamResponse: () => toDataStreamResponse
26
+ });
27
+ module.exports = __toCommonJS(src_exports);
28
+
29
+ // src/llamaindex-adapter.ts
30
+ var import_provider_utils = require("@ai-sdk/provider-utils");
31
+ var import_ai = require("ai");
32
+ var import_internal = require("ai/internal");
33
+ function toDataStreamInternal(stream, callbacks) {
34
+ const trimStart = trimStartOfStream();
35
+ return (0, import_provider_utils.convertAsyncIteratorToReadableStream)(stream[Symbol.asyncIterator]()).pipeThrough(
36
+ new TransformStream({
37
+ async transform(message, controller) {
38
+ controller.enqueue(trimStart(message.delta));
39
+ }
40
+ })
41
+ ).pipeThrough((0, import_internal.createCallbacksTransformer)(callbacks)).pipeThrough(new TextDecoderStream()).pipeThrough(
42
+ new TransformStream({
43
+ transform: async (chunk, controller) => {
44
+ controller.enqueue((0, import_ai.formatDataStreamPart)("text", chunk));
45
+ }
46
+ })
47
+ );
48
+ }
49
+ function toDataStream(stream, callbacks) {
50
+ return toDataStreamInternal(stream, callbacks).pipeThrough(
51
+ new TextEncoderStream()
52
+ );
53
+ }
54
+ function toDataStreamResponse(stream, options = {}) {
55
+ var _a;
56
+ const { init, data, callbacks } = options;
57
+ const dataStream = toDataStreamInternal(stream, callbacks).pipeThrough(
58
+ new TextEncoderStream()
59
+ );
60
+ const responseStream = data ? (0, import_internal.mergeStreams)(data.stream, dataStream) : dataStream;
61
+ return new Response(responseStream, {
62
+ status: (_a = init == null ? void 0 : init.status) != null ? _a : 200,
63
+ statusText: init == null ? void 0 : init.statusText,
64
+ headers: (0, import_internal.prepareResponseHeaders)(init == null ? void 0 : init.headers, {
65
+ contentType: "text/plain; charset=utf-8",
66
+ dataStreamVersion: "v1"
67
+ })
68
+ });
69
+ }
70
+ function mergeIntoDataStream(stream, options) {
71
+ options.dataStream.merge(toDataStreamInternal(stream, options.callbacks));
72
+ }
73
+ function trimStartOfStream() {
74
+ let isStreamStart = true;
75
+ return (text) => {
76
+ if (isStreamStart) {
77
+ text = text.trimStart();
78
+ if (text) isStreamStart = false;
79
+ }
80
+ return text;
81
+ };
82
+ }
83
+ // Annotate the CommonJS export names for ESM import in node:
84
+ 0 && (module.exports = {
85
+ mergeIntoDataStream,
86
+ toDataStream,
87
+ toDataStreamResponse
88
+ });
89
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/llamaindex-adapter.ts"],"sourcesContent":["export * from './llamaindex-adapter';\n","import { convertAsyncIteratorToReadableStream } from '@ai-sdk/provider-utils';\nimport { formatDataStreamPart, DataStreamWriter, StreamData } from 'ai';\nimport {\n mergeStreams,\n prepareResponseHeaders,\n createCallbacksTransformer,\n StreamCallbacks,\n} from 'ai/internal';\n\ntype EngineResponse = {\n delta: string;\n};\n\nfunction toDataStreamInternal(\n stream: AsyncIterable<EngineResponse>,\n callbacks?: StreamCallbacks,\n) {\n const trimStart = trimStartOfStream();\n\n return convertAsyncIteratorToReadableStream(stream[Symbol.asyncIterator]())\n .pipeThrough(\n new TransformStream({\n async transform(message, controller): Promise<void> {\n controller.enqueue(trimStart(message.delta));\n },\n }),\n )\n .pipeThrough(createCallbacksTransformer(callbacks))\n .pipeThrough(new TextDecoderStream())\n .pipeThrough(\n new TransformStream({\n transform: async (chunk, controller) => {\n controller.enqueue(formatDataStreamPart('text', chunk));\n },\n }),\n );\n}\n\nexport function toDataStream(\n stream: AsyncIterable<EngineResponse>,\n callbacks?: StreamCallbacks,\n) {\n return toDataStreamInternal(stream, callbacks).pipeThrough(\n new TextEncoderStream(),\n );\n}\n\nexport function toDataStreamResponse(\n stream: AsyncIterable<EngineResponse>,\n options: {\n init?: ResponseInit;\n data?: StreamData;\n callbacks?: StreamCallbacks;\n } = {},\n) {\n const { init, data, callbacks } = options;\n const dataStream = toDataStreamInternal(stream, callbacks).pipeThrough(\n new TextEncoderStream(),\n );\n const responseStream = data\n ? mergeStreams(data.stream, dataStream)\n : dataStream;\n\n return new Response(responseStream, {\n status: init?.status ?? 200,\n statusText: init?.statusText,\n headers: prepareResponseHeaders(init?.headers, {\n contentType: 'text/plain; charset=utf-8',\n dataStreamVersion: 'v1',\n }),\n });\n}\n\nexport function mergeIntoDataStream(\n stream: AsyncIterable<EngineResponse>,\n options: {\n dataStream: DataStreamWriter;\n callbacks?: StreamCallbacks;\n },\n) {\n options.dataStream.merge(toDataStreamInternal(stream, options.callbacks));\n}\n\nfunction trimStartOfStream(): (text: string) => string {\n let isStreamStart = true;\n\n return (text: string): string => {\n if (isStreamStart) {\n text = text.trimStart();\n if (text) isStreamStart = false;\n }\n return text;\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,4BAAqD;AACrD,gBAAmE;AACnE,sBAKO;AAMP,SAAS,qBACP,QACA,WACA;AACA,QAAM,YAAY,kBAAkB;AAEpC,aAAO,4DAAqC,OAAO,OAAO,aAAa,EAAE,CAAC,EACvE;AAAA,IACC,IAAI,gBAAgB;AAAA,MAClB,MAAM,UAAU,SAAS,YAA2B;AAClD,mBAAW,QAAQ,UAAU,QAAQ,KAAK,CAAC;AAAA,MAC7C;AAAA,IACF,CAAC;AAAA,EACH,EACC,gBAAY,4CAA2B,SAAS,CAAC,EACjD,YAAY,IAAI,kBAAkB,CAAC,EACnC;AAAA,IACC,IAAI,gBAAgB;AAAA,MAClB,WAAW,OAAO,OAAO,eAAe;AACtC,mBAAW,YAAQ,gCAAqB,QAAQ,KAAK,CAAC;AAAA,MACxD;AAAA,IACF,CAAC;AAAA,EACH;AACJ;AAEO,SAAS,aACd,QACA,WACA;AACA,SAAO,qBAAqB,QAAQ,SAAS,EAAE;AAAA,IAC7C,IAAI,kBAAkB;AAAA,EACxB;AACF;AAEO,SAAS,qBACd,QACA,UAII,CAAC,GACL;AAtDF;AAuDE,QAAM,EAAE,MAAM,MAAM,UAAU,IAAI;AAClC,QAAM,aAAa,qBAAqB,QAAQ,SAAS,EAAE;AAAA,IACzD,IAAI,kBAAkB;AAAA,EACxB;AACA,QAAM,iBAAiB,WACnB,8BAAa,KAAK,QAAQ,UAAU,IACpC;AAEJ,SAAO,IAAI,SAAS,gBAAgB;AAAA,IAClC,SAAQ,kCAAM,WAAN,YAAgB;AAAA,IACxB,YAAY,6BAAM;AAAA,IAClB,aAAS,wCAAuB,6BAAM,SAAS;AAAA,MAC7C,aAAa;AAAA,MACb,mBAAmB;AAAA,IACrB,CAAC;AAAA,EACH,CAAC;AACH;AAEO,SAAS,oBACd,QACA,SAIA;AACA,UAAQ,WAAW,MAAM,qBAAqB,QAAQ,QAAQ,SAAS,CAAC;AAC1E;AAEA,SAAS,oBAA8C;AACrD,MAAI,gBAAgB;AAEpB,SAAO,CAAC,SAAyB;AAC/B,QAAI,eAAe;AACjB,aAAO,KAAK,UAAU;AACtB,UAAI,KAAM,iBAAgB;AAAA,IAC5B;AACA,WAAO;AAAA,EACT;AACF;","names":[]}
package/dist/index.mjs ADDED
@@ -0,0 +1,64 @@
1
+ // src/llamaindex-adapter.ts
2
+ import { convertAsyncIteratorToReadableStream } from "@ai-sdk/provider-utils";
3
+ import { formatDataStreamPart } from "ai";
4
+ import {
5
+ mergeStreams,
6
+ prepareResponseHeaders,
7
+ createCallbacksTransformer
8
+ } from "ai/internal";
9
+ function toDataStreamInternal(stream, callbacks) {
10
+ const trimStart = trimStartOfStream();
11
+ return convertAsyncIteratorToReadableStream(stream[Symbol.asyncIterator]()).pipeThrough(
12
+ new TransformStream({
13
+ async transform(message, controller) {
14
+ controller.enqueue(trimStart(message.delta));
15
+ }
16
+ })
17
+ ).pipeThrough(createCallbacksTransformer(callbacks)).pipeThrough(new TextDecoderStream()).pipeThrough(
18
+ new TransformStream({
19
+ transform: async (chunk, controller) => {
20
+ controller.enqueue(formatDataStreamPart("text", chunk));
21
+ }
22
+ })
23
+ );
24
+ }
25
+ function toDataStream(stream, callbacks) {
26
+ return toDataStreamInternal(stream, callbacks).pipeThrough(
27
+ new TextEncoderStream()
28
+ );
29
+ }
30
+ function toDataStreamResponse(stream, options = {}) {
31
+ var _a;
32
+ const { init, data, callbacks } = options;
33
+ const dataStream = toDataStreamInternal(stream, callbacks).pipeThrough(
34
+ new TextEncoderStream()
35
+ );
36
+ const responseStream = data ? mergeStreams(data.stream, dataStream) : dataStream;
37
+ return new Response(responseStream, {
38
+ status: (_a = init == null ? void 0 : init.status) != null ? _a : 200,
39
+ statusText: init == null ? void 0 : init.statusText,
40
+ headers: prepareResponseHeaders(init == null ? void 0 : init.headers, {
41
+ contentType: "text/plain; charset=utf-8",
42
+ dataStreamVersion: "v1"
43
+ })
44
+ });
45
+ }
46
+ function mergeIntoDataStream(stream, options) {
47
+ options.dataStream.merge(toDataStreamInternal(stream, options.callbacks));
48
+ }
49
+ function trimStartOfStream() {
50
+ let isStreamStart = true;
51
+ return (text) => {
52
+ if (isStreamStart) {
53
+ text = text.trimStart();
54
+ if (text) isStreamStart = false;
55
+ }
56
+ return text;
57
+ };
58
+ }
59
+ export {
60
+ mergeIntoDataStream,
61
+ toDataStream,
62
+ toDataStreamResponse
63
+ };
64
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/llamaindex-adapter.ts"],"sourcesContent":["import { convertAsyncIteratorToReadableStream } from '@ai-sdk/provider-utils';\nimport { formatDataStreamPart, DataStreamWriter, StreamData } from 'ai';\nimport {\n mergeStreams,\n prepareResponseHeaders,\n createCallbacksTransformer,\n StreamCallbacks,\n} from 'ai/internal';\n\ntype EngineResponse = {\n delta: string;\n};\n\nfunction toDataStreamInternal(\n stream: AsyncIterable<EngineResponse>,\n callbacks?: StreamCallbacks,\n) {\n const trimStart = trimStartOfStream();\n\n return convertAsyncIteratorToReadableStream(stream[Symbol.asyncIterator]())\n .pipeThrough(\n new TransformStream({\n async transform(message, controller): Promise<void> {\n controller.enqueue(trimStart(message.delta));\n },\n }),\n )\n .pipeThrough(createCallbacksTransformer(callbacks))\n .pipeThrough(new TextDecoderStream())\n .pipeThrough(\n new TransformStream({\n transform: async (chunk, controller) => {\n controller.enqueue(formatDataStreamPart('text', chunk));\n },\n }),\n );\n}\n\nexport function toDataStream(\n stream: AsyncIterable<EngineResponse>,\n callbacks?: StreamCallbacks,\n) {\n return toDataStreamInternal(stream, callbacks).pipeThrough(\n new TextEncoderStream(),\n );\n}\n\nexport function toDataStreamResponse(\n stream: AsyncIterable<EngineResponse>,\n options: {\n init?: ResponseInit;\n data?: StreamData;\n callbacks?: StreamCallbacks;\n } = {},\n) {\n const { init, data, callbacks } = options;\n const dataStream = toDataStreamInternal(stream, callbacks).pipeThrough(\n new TextEncoderStream(),\n );\n const responseStream = data\n ? mergeStreams(data.stream, dataStream)\n : dataStream;\n\n return new Response(responseStream, {\n status: init?.status ?? 200,\n statusText: init?.statusText,\n headers: prepareResponseHeaders(init?.headers, {\n contentType: 'text/plain; charset=utf-8',\n dataStreamVersion: 'v1',\n }),\n });\n}\n\nexport function mergeIntoDataStream(\n stream: AsyncIterable<EngineResponse>,\n options: {\n dataStream: DataStreamWriter;\n callbacks?: StreamCallbacks;\n },\n) {\n options.dataStream.merge(toDataStreamInternal(stream, options.callbacks));\n}\n\nfunction trimStartOfStream(): (text: string) => string {\n let isStreamStart = true;\n\n return (text: string): string => {\n if (isStreamStart) {\n text = text.trimStart();\n if (text) isStreamStart = false;\n }\n return text;\n };\n}\n"],"mappings":";AAAA,SAAS,4CAA4C;AACrD,SAAS,4BAA0D;AACnE;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAMP,SAAS,qBACP,QACA,WACA;AACA,QAAM,YAAY,kBAAkB;AAEpC,SAAO,qCAAqC,OAAO,OAAO,aAAa,EAAE,CAAC,EACvE;AAAA,IACC,IAAI,gBAAgB;AAAA,MAClB,MAAM,UAAU,SAAS,YAA2B;AAClD,mBAAW,QAAQ,UAAU,QAAQ,KAAK,CAAC;AAAA,MAC7C;AAAA,IACF,CAAC;AAAA,EACH,EACC,YAAY,2BAA2B,SAAS,CAAC,EACjD,YAAY,IAAI,kBAAkB,CAAC,EACnC;AAAA,IACC,IAAI,gBAAgB;AAAA,MAClB,WAAW,OAAO,OAAO,eAAe;AACtC,mBAAW,QAAQ,qBAAqB,QAAQ,KAAK,CAAC;AAAA,MACxD;AAAA,IACF,CAAC;AAAA,EACH;AACJ;AAEO,SAAS,aACd,QACA,WACA;AACA,SAAO,qBAAqB,QAAQ,SAAS,EAAE;AAAA,IAC7C,IAAI,kBAAkB;AAAA,EACxB;AACF;AAEO,SAAS,qBACd,QACA,UAII,CAAC,GACL;AAtDF;AAuDE,QAAM,EAAE,MAAM,MAAM,UAAU,IAAI;AAClC,QAAM,aAAa,qBAAqB,QAAQ,SAAS,EAAE;AAAA,IACzD,IAAI,kBAAkB;AAAA,EACxB;AACA,QAAM,iBAAiB,OACnB,aAAa,KAAK,QAAQ,UAAU,IACpC;AAEJ,SAAO,IAAI,SAAS,gBAAgB;AAAA,IAClC,SAAQ,kCAAM,WAAN,YAAgB;AAAA,IACxB,YAAY,6BAAM;AAAA,IAClB,SAAS,uBAAuB,6BAAM,SAAS;AAAA,MAC7C,aAAa;AAAA,MACb,mBAAmB;AAAA,IACrB,CAAC;AAAA,EACH,CAAC;AACH;AAEO,SAAS,oBACd,QACA,SAIA;AACA,UAAQ,WAAW,MAAM,qBAAqB,QAAQ,QAAQ,SAAS,CAAC;AAC1E;AAEA,SAAS,oBAA8C;AACrD,MAAI,gBAAgB;AAEpB,SAAO,CAAC,SAAyB;AAC/B,QAAI,eAAe;AACjB,aAAO,KAAK,UAAU;AACtB,UAAI,KAAM,iBAAgB;AAAA,IAC5B;AACA,WAAO;AAAA,EACT;AACF;","names":[]}
package/package.json ADDED
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "@ai-sdk/llamaindex",
3
+ "version": "1.0.0-canary.1",
4
+ "license": "Apache-2.0",
5
+ "sideEffects": false,
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.mjs",
8
+ "types": "./dist/index.d.ts",
9
+ "files": [
10
+ "dist/**/*",
11
+ "CHANGELOG.md"
12
+ ],
13
+ "exports": {
14
+ "./package.json": "./package.json",
15
+ ".": {
16
+ "types": "./dist/index.d.ts",
17
+ "import": "./dist/index.mjs",
18
+ "require": "./dist/index.js"
19
+ }
20
+ },
21
+ "dependencies": {
22
+ "ai": "5.0.0-canary.13",
23
+ "@ai-sdk/provider-utils": "3.0.0-canary.11"
24
+ },
25
+ "devDependencies": {
26
+ "@types/node": "20.17.24",
27
+ "tsup": "^8",
28
+ "typescript": "5.8.3",
29
+ "@vercel/ai-tsconfig": "0.0.0"
30
+ },
31
+ "engines": {
32
+ "node": ">=18"
33
+ },
34
+ "publishConfig": {
35
+ "access": "public"
36
+ },
37
+ "homepage": "https://sdk.vercel.ai/docs",
38
+ "repository": {
39
+ "type": "git",
40
+ "url": "git+https://github.com/vercel/ai.git"
41
+ },
42
+ "bugs": {
43
+ "url": "https://github.com/vercel/ai/issues"
44
+ },
45
+ "keywords": [
46
+ "ai"
47
+ ],
48
+ "scripts": {
49
+ "build": "pnpm clean && tsup --tsconfig tsconfig.build.json",
50
+ "build:watch": "pnpm clean && tsup --watch",
51
+ "clean": "rm -rf dist *.tsbuildinfo",
52
+ "lint": "eslint \"./**/*.ts*\"",
53
+ "type-check": "tsc --build",
54
+ "prettier-check": "prettier --check \"./**/*.ts*\"",
55
+ "test": "pnpm test:node && pnpm test:edge",
56
+ "test:update": "pnpm test:node -u",
57
+ "test:watch": "vitest --config vitest.node.config.js",
58
+ "test:edge": "vitest --config vitest.edge.config.js --run",
59
+ "test:node": "vitest --config vitest.node.config.js --run"
60
+ }
61
+ }