@freehour/supabase-langchain 1.2.2 → 1.2.4
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/dist/embedding-service.d.ts.map +1 -1
- package/dist/errors.d.ts +20 -12
- package/dist/errors.d.ts.map +1 -1
- package/dist/index.js +33 -27
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedding-service.d.ts","sourceRoot":"","sources":["../lib/embedding-service.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAc,oBAAoB,EAAE,OAAO,EAAgB,eAAe,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAA+B,MAAM,yBAAyB,CAAC;AAUjN,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AAEjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAG9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAErF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAGzC,MAAM,MAAM,eAAe,CACvB,UAAU,SAAS,MAAM,EACzB,QAAQ,SAAS,UAAU,GAAG,UAAU,IACxC,QAAQ,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,EAAE,aAAa,GAAG,QAAQ,CAAC,GAAG;IACrF,MAAM,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,YAAY,GAAG,QAAQ,CAAC,CAAC;CACnG,CAAC;AAEF,MAAM,WAAW,sBAAsB,CACnC,QAAQ,SAAS,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,GAAG,iBAAiB,GAAG,iBAAiB,EAC9F,aAAa,SAAS,QAAQ,CAAC,mBAAmB,CAAC,GAAG,oBAAoB,CAAC,QAAQ,CAAC;IAEpF,UAAU,EAAE,mBAAmB,CAAC;IAChC,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,gBAAgB,CACzB,QAAQ,SAAS,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,GAAG,iBAAiB,GAAG,iBAAiB,EAC9F,aAAa,SAAS,QAAQ,CAAC,mBAAmB,CAAC,GAAG,oBAAoB,CAAC,QAAQ,CAAC,EACpF,UAAU,SAAS,MAAM,GAAG,MAAM,EAClC,QAAQ,SAAS,UAAU,GAAG,UAAU;IAGxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAClD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA8B;gBAElD,EACR,QAAQ,EACR,UAAU,EACV,SAAgB,EAChB,YAAkB,GACrB,EAAE,sBAAsB,CAAC,QAAQ,EAAE,aAAa,CAAC;IAWlD,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"embedding-service.d.ts","sourceRoot":"","sources":["../lib/embedding-service.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -1,26 +1,34 @@
|
|
|
1
|
-
import { TracedError } from '@freehour/supabase-core';
|
|
1
|
+
import { StorageLocation, TracedError } from '@freehour/supabase-core';
|
|
2
2
|
export interface FileNotSupportedErrorOptions extends ErrorOptions {
|
|
3
3
|
/**
|
|
4
|
-
* The
|
|
4
|
+
* The file that caused the error.
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* The type of the file that is not supported.
|
|
9
|
-
*/
|
|
10
|
-
fileType?: string;
|
|
6
|
+
file: File;
|
|
11
7
|
}
|
|
12
8
|
/**
|
|
13
9
|
* An error that indicates that a file is not supported, e.g. due to its MIME type or extension.
|
|
14
10
|
*/
|
|
15
11
|
export declare class FileNotSupportedError extends TracedError {
|
|
16
12
|
/**
|
|
17
|
-
* The
|
|
13
|
+
* The file that caused the error.
|
|
14
|
+
*/
|
|
15
|
+
readonly file: File;
|
|
16
|
+
constructor(message: string, { file, ...options }: FileNotSupportedErrorOptions);
|
|
17
|
+
}
|
|
18
|
+
export interface EmbeddingErrorOptions extends ErrorOptions {
|
|
19
|
+
/**
|
|
20
|
+
* The location of the file that caused the error.
|
|
18
21
|
*/
|
|
19
|
-
|
|
22
|
+
location: StorageLocation;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* An error that indicates that an embedding operation failed, e.g. due to a failure in the embedding model or vector store.
|
|
26
|
+
*/
|
|
27
|
+
export declare class EmbeddingError extends TracedError {
|
|
20
28
|
/**
|
|
21
|
-
* The
|
|
29
|
+
* The location of the file that caused the error.
|
|
22
30
|
*/
|
|
23
|
-
readonly
|
|
24
|
-
constructor(message: string, {
|
|
31
|
+
readonly location: StorageLocation;
|
|
32
|
+
constructor(message: string, { location, ...options }: EmbeddingErrorOptions);
|
|
25
33
|
}
|
|
26
34
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../lib/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,MAAM,WAAW,4BAA6B,SAAQ,YAAY;IAE9D;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../lib/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,MAAM,WAAW,4BAA6B,SAAQ,YAAY;IAE9D;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC;CACd;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,WAAW;IAElD;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;gBAGhB,OAAO,EAAE,MAAM,EACf,EACI,IAAI,EACJ,GAAG,OAAO,EACb,EAAE,4BAA4B;CAKtC;AAED,MAAM,WAAW,qBAAsB,SAAQ,YAAY;IAEvD;;OAEG;IACH,QAAQ,EAAE,eAAe,CAAC;CAC7B;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,WAAW;IAE3C;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;gBAG/B,OAAO,EAAE,MAAM,EACf,EACI,QAAQ,EACR,GAAG,OAAO,EACb,EAAE,qBAAqB;CAK/B"}
|
package/dist/index.js
CHANGED
|
@@ -11387,11 +11387,11 @@ var am = class {
|
|
|
11387
11387
|
super(e, t), this.name = this.constructor.name, Error.captureStackTrace(this, this.constructor);
|
|
11388
11388
|
}
|
|
11389
11389
|
}, um = class extends lm {
|
|
11390
|
-
|
|
11390
|
+
id;
|
|
11391
11391
|
bucket;
|
|
11392
11392
|
path;
|
|
11393
|
-
constructor(e, {
|
|
11394
|
-
super(e), this.
|
|
11393
|
+
constructor(e, { id: t, bucket: n, path: r } = {}) {
|
|
11394
|
+
super(e), this.id = t, this.bucket = n, this.path = r;
|
|
11395
11395
|
}
|
|
11396
11396
|
}, dm = class extends lm {
|
|
11397
11397
|
schema;
|
|
@@ -11702,7 +11702,7 @@ function Tm(e) {
|
|
|
11702
11702
|
return e.bucket !== void 0 && e.path !== void 0;
|
|
11703
11703
|
}
|
|
11704
11704
|
function Em(e) {
|
|
11705
|
-
return e.
|
|
11705
|
+
return e.id !== void 0 && e.bucket !== void 0;
|
|
11706
11706
|
}
|
|
11707
11707
|
var Dm = class {
|
|
11708
11708
|
client;
|
|
@@ -11728,21 +11728,21 @@ var Dm = class {
|
|
|
11728
11728
|
if (Tm(e)) {
|
|
11729
11729
|
let { id: t } = await this.getFileObject(e);
|
|
11730
11730
|
return {
|
|
11731
|
-
|
|
11731
|
+
id: t,
|
|
11732
11732
|
...e
|
|
11733
11733
|
};
|
|
11734
11734
|
}
|
|
11735
|
-
let {
|
|
11736
|
-
if (n === void 0) throw new um(`File with ID ${t} not found`, {
|
|
11735
|
+
let { id: t } = e, n = await this.files.get(t, ["bucket_id", "path_tokens"]);
|
|
11736
|
+
if (n === void 0) throw new um(`File with ID ${t} not found`, { id: t });
|
|
11737
11737
|
return {
|
|
11738
|
-
|
|
11738
|
+
id: t,
|
|
11739
11739
|
bucket: m.notNull(n.bucket_id, "bucket_id must not be null"),
|
|
11740
11740
|
path: m.notNull(n.path_tokens, "path_tokens must not be null").join("/")
|
|
11741
11741
|
};
|
|
11742
11742
|
}
|
|
11743
11743
|
async getFileInfo(e) {
|
|
11744
11744
|
let t = await this.getFileStorageLocation(e), { id: n, bucketId: r, metadata: i, ...a } = await this.getFileObject(t);
|
|
11745
|
-
return m(n === t.
|
|
11745
|
+
return m(n === t.id, "file ID from storage client must match file ID from database"), m(r === t.bucket, "bucketId from storage client must match bucket from database"), {
|
|
11746
11746
|
...a,
|
|
11747
11747
|
...t,
|
|
11748
11748
|
metadata: i,
|
|
@@ -11773,24 +11773,24 @@ var Dm = class {
|
|
|
11773
11773
|
let { data: i, error: a } = await this.client.from(t).upload(`${n}/${e.name}`, e, { upsert: r });
|
|
11774
11774
|
if (a) throw a;
|
|
11775
11775
|
return {
|
|
11776
|
-
|
|
11776
|
+
id: i.id,
|
|
11777
11777
|
bucket: t,
|
|
11778
11778
|
path: i.path
|
|
11779
11779
|
};
|
|
11780
11780
|
}
|
|
11781
11781
|
async downloadFile(e) {
|
|
11782
|
-
let {
|
|
11782
|
+
let { id: t, bucket: n, path: r, properties: i } = await this.getFileInfo(e), { data: a, error: o } = await this.client.from(n).download(r);
|
|
11783
11783
|
if (o) throw o;
|
|
11784
11784
|
let [, s] = fm(r);
|
|
11785
11785
|
return {
|
|
11786
|
-
|
|
11786
|
+
id: t,
|
|
11787
11787
|
bucket: n,
|
|
11788
11788
|
path: r,
|
|
11789
11789
|
file: new File([a], s, i)
|
|
11790
11790
|
};
|
|
11791
11791
|
}
|
|
11792
11792
|
async deleteFiles(e) {
|
|
11793
|
-
let t = e.filter((e) => "
|
|
11793
|
+
let t = e.filter((e) => "id" in e).map((e) => e.id), n = (await this.files.query.select(["bucket_id", "path_tokens"]).containedBy("id", t).throwOnError()).data.map(({ bucket_id: e, path_tokens: t }) => ({
|
|
11794
11794
|
bucket: m.notNull(e, "bucket_id must not be null"),
|
|
11795
11795
|
path: m.notNull(t, "path_tokens must not be null").join("/")
|
|
11796
11796
|
})), r = hm(mm(e.filter((e) => Tm(e)).concat(n), (e) => e.bucket)).map(([e, t]) => ({
|
|
@@ -11800,19 +11800,23 @@ var Dm = class {
|
|
|
11800
11800
|
return (await Promise.all(r.map(async ({ bucket: e, paths: t }) => this.client.from(e).remove(t).then(({ data: n, error: r }) => {
|
|
11801
11801
|
if (r) throw r;
|
|
11802
11802
|
return n.map((n, r) => ({
|
|
11803
|
-
|
|
11803
|
+
id: m.notNull(n.id, "file id must not be null"),
|
|
11804
11804
|
bucket: e,
|
|
11805
11805
|
path: m.defined(t[r], "path must not be null")
|
|
11806
11806
|
}));
|
|
11807
11807
|
})))).flat();
|
|
11808
11808
|
}
|
|
11809
11809
|
}, Om = class extends lm {
|
|
11810
|
-
|
|
11811
|
-
|
|
11812
|
-
|
|
11813
|
-
|
|
11810
|
+
file;
|
|
11811
|
+
constructor(e, { file: t, ...n }) {
|
|
11812
|
+
super(e, n), this.file = t;
|
|
11813
|
+
}
|
|
11814
|
+
}, km = class extends lm {
|
|
11815
|
+
location;
|
|
11816
|
+
constructor(e, { location: t, ...n }) {
|
|
11817
|
+
super(e, n), this.location = t;
|
|
11814
11818
|
}
|
|
11815
|
-
},
|
|
11819
|
+
}, Am = class {
|
|
11816
11820
|
database;
|
|
11817
11821
|
storage;
|
|
11818
11822
|
vectorStore;
|
|
@@ -11845,10 +11849,7 @@ var Dm = class {
|
|
|
11845
11849
|
if (d.equals("application/vnd.openxmlformats-officedocument.presentationml.presentation")) return new l(e);
|
|
11846
11850
|
if (d.equals("application/x-subrip")) return new u(e);
|
|
11847
11851
|
if (d.type === "text") return new i(e);
|
|
11848
|
-
throw new Om(`File type ${e.type} is not supported`, {
|
|
11849
|
-
fileName: e.name,
|
|
11850
|
-
fileType: e.type
|
|
11851
|
-
});
|
|
11852
|
+
throw new Om(`File type ${e.type} is not supported`, { file: e });
|
|
11852
11853
|
}
|
|
11853
11854
|
getSplitter(e) {
|
|
11854
11855
|
let n = {
|
|
@@ -11886,7 +11887,7 @@ var Dm = class {
|
|
|
11886
11887
|
})));
|
|
11887
11888
|
return await this.vectorStore.addDocuments(o), o;
|
|
11888
11889
|
}
|
|
11889
|
-
async deleteEmbeddings({
|
|
11890
|
+
async deleteEmbeddings({ id: e }) {
|
|
11890
11891
|
let { data: t } = await this.embeddings.query.select(["id"]).eq("file_id", e).throwOnError(), n = t.map(({ id: e }) => e);
|
|
11891
11892
|
return await this.vectorStore.delete({ ids: n }), n;
|
|
11892
11893
|
}
|
|
@@ -11895,14 +11896,19 @@ var Dm = class {
|
|
|
11895
11896
|
}
|
|
11896
11897
|
async ingest(e, t) {
|
|
11897
11898
|
let n = await this.storage.getFileStorageLocation(e);
|
|
11898
|
-
return this.updateEmbeddings(n, typeof t == "function" ? t(n) : t)
|
|
11899
|
+
return this.updateEmbeddings(n, typeof t == "function" ? t(n) : t).catch((e) => {
|
|
11900
|
+
throw new km("Failed to update embedding", {
|
|
11901
|
+
cause: e,
|
|
11902
|
+
location: n
|
|
11903
|
+
});
|
|
11904
|
+
});
|
|
11899
11905
|
}
|
|
11900
11906
|
async update(e, t) {
|
|
11901
11907
|
let { data: n } = await this.database.schema("langchain").rpc("get_outdated_embeddings", { bucket: e }).throwOnError();
|
|
11902
11908
|
return Promise.allSettled(n.map(async ({ bucket_id: e, path_tokens: n, file_id: r }) => this.ingest({
|
|
11903
11909
|
bucket: e,
|
|
11904
11910
|
path: n.join("/"),
|
|
11905
|
-
|
|
11911
|
+
id: r
|
|
11906
11912
|
}, t)));
|
|
11907
11913
|
}
|
|
11908
11914
|
retriever(e) {
|
|
@@ -11910,4 +11916,4 @@ var Dm = class {
|
|
|
11910
11916
|
}
|
|
11911
11917
|
};
|
|
11912
11918
|
//#endregion
|
|
11913
|
-
export { km as EmbeddingService, Om as FileNotSupportedError };
|
|
11919
|
+
export { km as EmbeddingError, Am as EmbeddingService, Om as FileNotSupportedError };
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"private": false,
|
|
4
4
|
"displayName": "Supabase-Langchain",
|
|
5
5
|
"description": "Integration package for using LangChain with Supabase",
|
|
6
|
-
"version": "1.2.
|
|
6
|
+
"version": "1.2.4",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"repository": {
|
|
9
9
|
"type": "git",
|
|
@@ -38,14 +38,14 @@
|
|
|
38
38
|
"srt-parser-2": "^1.2.3"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
41
|
-
"@freehour/supabase-core": "^2.
|
|
41
|
+
"@freehour/supabase-core": "^2.5.1",
|
|
42
42
|
"@supabase/supabase-js": "^2.106.2"
|
|
43
43
|
},
|
|
44
44
|
"overrides": {
|
|
45
45
|
"@browserbasehq/stagehand": "3.2.1"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@freehour/supabase-core": "^2.5.
|
|
48
|
+
"@freehour/supabase-core": "^2.5.1",
|
|
49
49
|
"@freehour/eslint-rules": "^1.0.19",
|
|
50
50
|
"@supabase/supabase-js": "^2.106.2",
|
|
51
51
|
"ajv": "^8.20.0",
|