getmnemo-migrate 0.1.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 (68) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +111 -0
  3. package/dist/adapters/base.d.ts +34 -0
  4. package/dist/adapters/base.d.ts.map +1 -0
  5. package/dist/adapters/base.js +7 -0
  6. package/dist/adapters/base.js.map +1 -0
  7. package/dist/adapters/directory.d.ts +9 -0
  8. package/dist/adapters/directory.d.ts.map +1 -0
  9. package/dist/adapters/directory.js +69 -0
  10. package/dist/adapters/directory.js.map +1 -0
  11. package/dist/adapters/index.d.ts +7 -0
  12. package/dist/adapters/index.d.ts.map +1 -0
  13. package/dist/adapters/index.js +47 -0
  14. package/dist/adapters/index.js.map +1 -0
  15. package/dist/adapters/letta.d.ts +12 -0
  16. package/dist/adapters/letta.d.ts.map +1 -0
  17. package/dist/adapters/letta.js +91 -0
  18. package/dist/adapters/letta.js.map +1 -0
  19. package/dist/adapters/mem0.d.ts +12 -0
  20. package/dist/adapters/mem0.d.ts.map +1 -0
  21. package/dist/adapters/mem0.js +62 -0
  22. package/dist/adapters/mem0.js.map +1 -0
  23. package/dist/adapters/raw-csv.d.ts +9 -0
  24. package/dist/adapters/raw-csv.d.ts.map +1 -0
  25. package/dist/adapters/raw-csv.js +34 -0
  26. package/dist/adapters/raw-csv.js.map +1 -0
  27. package/dist/adapters/raw-json.d.ts +10 -0
  28. package/dist/adapters/raw-json.d.ts.map +1 -0
  29. package/dist/adapters/raw-json.js +35 -0
  30. package/dist/adapters/raw-json.js.map +1 -0
  31. package/dist/adapters/raw-jsonl.d.ts +11 -0
  32. package/dist/adapters/raw-jsonl.d.ts.map +1 -0
  33. package/dist/adapters/raw-jsonl.js +52 -0
  34. package/dist/adapters/raw-jsonl.js.map +1 -0
  35. package/dist/adapters/record-mapping.d.ts +6 -0
  36. package/dist/adapters/record-mapping.d.ts.map +1 -0
  37. package/dist/adapters/record-mapping.js +59 -0
  38. package/dist/adapters/record-mapping.js.map +1 -0
  39. package/dist/adapters/supermemory.d.ts +12 -0
  40. package/dist/adapters/supermemory.d.ts.map +1 -0
  41. package/dist/adapters/supermemory.js +58 -0
  42. package/dist/adapters/supermemory.js.map +1 -0
  43. package/dist/adapters/text-file.d.ts +9 -0
  44. package/dist/adapters/text-file.d.ts.map +1 -0
  45. package/dist/adapters/text-file.js +28 -0
  46. package/dist/adapters/text-file.js.map +1 -0
  47. package/dist/adapters/zep.d.ts +12 -0
  48. package/dist/adapters/zep.d.ts.map +1 -0
  49. package/dist/adapters/zep.js +79 -0
  50. package/dist/adapters/zep.js.map +1 -0
  51. package/dist/cli.d.ts +4 -0
  52. package/dist/cli.d.ts.map +1 -0
  53. package/dist/cli.js +220 -0
  54. package/dist/cli.js.map +1 -0
  55. package/dist/lib/jobs.d.ts +44 -0
  56. package/dist/lib/jobs.d.ts.map +1 -0
  57. package/dist/lib/jobs.js +146 -0
  58. package/dist/lib/jobs.js.map +1 -0
  59. package/dist/lib/migrator.d.ts +24 -0
  60. package/dist/lib/migrator.d.ts.map +1 -0
  61. package/dist/lib/migrator.js +188 -0
  62. package/dist/lib/migrator.js.map +1 -0
  63. package/dist/lib/mnemo-writer.d.ts +42 -0
  64. package/dist/lib/mnemo-writer.d.ts.map +1 -0
  65. package/dist/lib/mnemo-writer.js +155 -0
  66. package/dist/lib/mnemo-writer.js.map +1 -0
  67. package/docs/pilot-integration.md +81 -0
  68. package/package.json +59 -0
@@ -0,0 +1,35 @@
1
+ import { promises as fs } from "node:fs";
2
+ import { Adapter } from "./base.js";
3
+ import { parseMap, recordFromObject } from "./record-mapping.js";
4
+ const MAX_JSON_BYTES = 50 * 1024 * 1024;
5
+ export class RawJsonAdapter extends Adapter {
6
+ name = "raw-json";
7
+ defaultLane = "document";
8
+ constructor(cfg = {}) {
9
+ super(cfg);
10
+ if (!cfg.file)
11
+ throw new Error("--file <path.json> is required for the raw-json adapter");
12
+ }
13
+ async load() {
14
+ const stat = await fs.stat(this.cfg.file);
15
+ if (stat.size > MAX_JSON_BYTES) {
16
+ throw new Error("JSON arrays are limited to 50 MB; convert larger exports to JSONL");
17
+ }
18
+ const parsed = JSON.parse(await fs.readFile(this.cfg.file, "utf8"));
19
+ if (!Array.isArray(parsed))
20
+ throw new Error("raw-json expects a top-level JSON array");
21
+ return parsed.filter((item) => Boolean(item) && typeof item === "object" && !Array.isArray(item));
22
+ }
23
+ async count() {
24
+ return (await this.load()).length;
25
+ }
26
+ async *iterate() {
27
+ const map = parseMap(this.cfg.map);
28
+ for (const item of await this.load()) {
29
+ const record = recordFromObject(item, map, { source: "raw-json", file: this.cfg.file });
30
+ if (record)
31
+ yield record;
32
+ }
33
+ }
34
+ }
35
+ //# sourceMappingURL=raw-json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raw-json.js","sourceRoot":"","sources":["../../src/adapters/raw-json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,OAAO,EAA+B,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEjE,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAExC,MAAM,OAAO,cAAe,SAAQ,OAAO;IAChC,IAAI,GAAG,UAAU,CAAC;IAClB,WAAW,GAAG,UAAmB,CAAC;IAE3C,YAAY,MAAqB,EAAE;QACjC,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC5F,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAK,CAAC,CAAC;QAC3C,IAAI,IAAI,CAAC,IAAI,GAAG,cAAc,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACvF,CAAC;QACD,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACvF,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,IAAI,EAAmC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAC7G,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK;QACT,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,CAAC,OAAO;QACZ,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAK,EAAE,CAAC,CAAC;YACzF,IAAI,MAAM;gBAAE,MAAM,MAAM,CAAC;QAC3B,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import { Adapter, AdapterConfig, SourceRecord } from "./base.js";
2
+ export declare class RawJsonlAdapter extends Adapter {
3
+ readonly name = "raw-jsonl";
4
+ readonly defaultLane: "document";
5
+ private filePath;
6
+ private map;
7
+ constructor(cfg?: AdapterConfig);
8
+ count(): Promise<number | null>;
9
+ iterate(): AsyncIterable<SourceRecord>;
10
+ }
11
+ //# sourceMappingURL=raw-jsonl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raw-jsonl.d.ts","sourceRoot":"","sources":["../../src/adapters/raw-jsonl.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGjE,qBAAa,eAAgB,SAAQ,OAAO;IAC1C,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,WAAW,EAAG,UAAU,CAAU;IAE3C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,GAAG,CAAW;gBAEV,GAAG,GAAE,aAAkB;IAS7B,KAAK,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAS9B,OAAO,IAAI,aAAa,CAAC,YAAY,CAAC;CAqB9C"}
@@ -0,0 +1,52 @@
1
+ import { createReadStream, promises as fs } from "node:fs";
2
+ import { createInterface } from "node:readline";
3
+ import { Adapter } from "./base.js";
4
+ import { parseMap, recordFromObject } from "./record-mapping.js";
5
+ export class RawJsonlAdapter extends Adapter {
6
+ name = "raw-jsonl";
7
+ defaultLane = "document";
8
+ filePath;
9
+ map;
10
+ constructor(cfg = {}) {
11
+ super(cfg);
12
+ if (!cfg.file) {
13
+ throw new Error("--file <path.jsonl> is required for the raw-jsonl adapter");
14
+ }
15
+ this.filePath = cfg.file;
16
+ this.map = parseMap(cfg.map);
17
+ }
18
+ async count() {
19
+ try {
20
+ const data = await fs.readFile(this.filePath, "utf8");
21
+ return data.split(/\r?\n/).filter((l) => l.trim().length > 0).length;
22
+ }
23
+ catch {
24
+ return null;
25
+ }
26
+ }
27
+ async *iterate() {
28
+ const stream = createReadStream(this.filePath, { encoding: "utf8" });
29
+ const rl = createInterface({ input: stream, crlfDelay: Infinity });
30
+ let lineNo = 0;
31
+ for await (const line of rl) {
32
+ lineNo += 1;
33
+ const trimmed = line.trim();
34
+ if (!trimmed)
35
+ continue;
36
+ let parsed;
37
+ try {
38
+ parsed = JSON.parse(trimmed);
39
+ }
40
+ catch (err) {
41
+ throw new Error(`Invalid JSON on line ${lineNo} of ${this.filePath}: ${err.message}`);
42
+ }
43
+ const record = recordFromObject(parsed, this.map, {
44
+ source: "raw-jsonl",
45
+ file: this.filePath,
46
+ });
47
+ if (record)
48
+ yield record;
49
+ }
50
+ }
51
+ }
52
+ //# sourceMappingURL=raw-jsonl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raw-jsonl.js","sourceRoot":"","sources":["../../src/adapters/raw-jsonl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,EAA+B,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAiB,MAAM,qBAAqB,CAAC;AAEhF,MAAM,OAAO,eAAgB,SAAQ,OAAO;IACjC,IAAI,GAAG,WAAW,CAAC;IACnB,WAAW,GAAG,UAAmB,CAAC;IAEnC,QAAQ,CAAS;IACjB,GAAG,CAAW;IAEtB,YAAY,MAAqB,EAAE;QACjC,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QACvE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,CAAC,OAAO;QACZ,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACrE,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnE,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,CAAC;YACZ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,IAAI,MAA+B,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;YAC1D,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,OAAO,IAAI,CAAC,QAAQ,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACnG,CAAC;YACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE;gBAChD,MAAM,EAAE,WAAW;gBACnB,IAAI,EAAE,IAAI,CAAC,QAAQ;aACpB,CAAC,CAAC;YACH,IAAI,MAAM;gBAAE,MAAM,MAAM,CAAC;QAC3B,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ import type { SourceRecord } from "./base.js";
2
+ export type FieldMap = Record<string, string>;
3
+ export declare function parseMap(spec: string | undefined): FieldMap;
4
+ export declare function pluck(obj: Record<string, unknown>, key: string): unknown;
5
+ export declare function recordFromObject(input: Record<string, unknown>, map: FieldMap, baseMetadata: Record<string, unknown>): SourceRecord | null;
6
+ //# sourceMappingURL=record-mapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-mapping.d.ts","sourceRoot":"","sources":["../../src/adapters/record-mapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAa3D;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CASxE;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,GAAG,EAAE,QAAQ,EACb,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACpC,YAAY,GAAG,IAAI,CAyBrB"}
@@ -0,0 +1,59 @@
1
+ export function parseMap(spec) {
2
+ if (!spec)
3
+ return { content: "content", id: "id" };
4
+ const out = {};
5
+ for (const part of spec.split(",")) {
6
+ const separator = part.indexOf("=");
7
+ if (separator < 1)
8
+ continue;
9
+ const target = part.slice(0, separator).trim();
10
+ const source = part.slice(separator + 1).trim();
11
+ if (target && source)
12
+ out[target] = source;
13
+ }
14
+ if (!out.content)
15
+ out.content = "content";
16
+ if (!out.id)
17
+ out.id = "id";
18
+ return out;
19
+ }
20
+ export function pluck(obj, key) {
21
+ if (key === "*")
22
+ return obj;
23
+ if (!key.includes("."))
24
+ return obj[key];
25
+ let current = obj;
26
+ for (const segment of key.split(".")) {
27
+ if (!current || typeof current !== "object" || Array.isArray(current))
28
+ return undefined;
29
+ current = current[segment];
30
+ }
31
+ return current;
32
+ }
33
+ export function recordFromObject(input, map, baseMetadata) {
34
+ const rawContent = pluck(input, map.content);
35
+ const content = typeof rawContent === "string"
36
+ ? rawContent
37
+ : rawContent && typeof rawContent === "object"
38
+ ? JSON.stringify(rawContent)
39
+ : undefined;
40
+ if (!content?.trim())
41
+ return null;
42
+ const id = pluck(input, map.id);
43
+ const contentType = map.contentType ? pluck(input, map.contentType) : undefined;
44
+ const metadata = { ...baseMetadata };
45
+ for (const [target, source] of Object.entries(map)) {
46
+ if (target === "content" || target === "id" || target === "contentType")
47
+ continue;
48
+ const value = pluck(input, source);
49
+ if (value !== undefined)
50
+ metadata[target] = value;
51
+ }
52
+ return {
53
+ sourceId: typeof id === "string" || typeof id === "number" ? String(id) : undefined,
54
+ content,
55
+ metadata,
56
+ contentType: typeof contentType === "string" ? contentType : undefined,
57
+ };
58
+ }
59
+ //# sourceMappingURL=record-mapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-mapping.js","sourceRoot":"","sources":["../../src/adapters/record-mapping.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Adapter, AdapterConfig, SourceRecord } from "./base.js";
2
+ export declare class SupermemoryAdapter extends Adapter {
3
+ readonly name = "supermemory";
4
+ readonly defaultLane: "memory";
5
+ private apiKey;
6
+ private baseUrl;
7
+ constructor(cfg?: AdapterConfig);
8
+ private request;
9
+ count(): Promise<number | null>;
10
+ iterate(): AsyncIterable<SourceRecord>;
11
+ }
12
+ //# sourceMappingURL=supermemory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supermemory.d.ts","sourceRoot":"","sources":["../../src/adapters/supermemory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAmBjE,qBAAa,kBAAmB,SAAQ,OAAO;IAC7C,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,WAAW,EAAG,QAAQ,CAAU;IAEzC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;gBAEZ,GAAG,GAAE,aAAkB;YAUrB,OAAO;IAaf,KAAK,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAK9B,OAAO,IAAI,aAAa,CAAC,YAAY,CAAC;CAuB9C"}
@@ -0,0 +1,58 @@
1
+ import { Adapter } from "./base.js";
2
+ const DEFAULT_BASE_URL = "https://api.supermemory.ai";
3
+ export class SupermemoryAdapter extends Adapter {
4
+ name = "supermemory";
5
+ defaultLane = "memory";
6
+ apiKey;
7
+ baseUrl;
8
+ constructor(cfg = {}) {
9
+ super(cfg);
10
+ const key = process.env.SUPERMEMORY_API_KEY;
11
+ if (!key) {
12
+ throw new Error("SUPERMEMORY_API_KEY is required for the supermemory adapter");
13
+ }
14
+ this.apiKey = key;
15
+ this.baseUrl = (cfg.baseUrl ?? DEFAULT_BASE_URL).replace(/\/$/, "");
16
+ }
17
+ async request(path) {
18
+ const res = await fetch(new URL(path, this.baseUrl + "/"), {
19
+ headers: {
20
+ Authorization: `Bearer ${this.apiKey}`,
21
+ Accept: "application/json",
22
+ },
23
+ });
24
+ if (!res.ok) {
25
+ throw new Error(`supermemory request failed: ${res.status} ${res.statusText}`);
26
+ }
27
+ return (await res.json());
28
+ }
29
+ async count() {
30
+ const page = await this.request("/v3/memories?limit=1");
31
+ return typeof page.total === "number" ? page.total : null;
32
+ }
33
+ async *iterate() {
34
+ const pageSize = this.cfg.pageSize ?? 100;
35
+ let cursor = null;
36
+ do {
37
+ const path = `/v3/memories?limit=${pageSize}${cursor ? `&cursor=${encodeURIComponent(cursor)}` : ""}`;
38
+ const page = await this.request(path);
39
+ for (const item of page.results ?? []) {
40
+ const content = item.content ?? item.text;
41
+ if (!content)
42
+ continue;
43
+ yield {
44
+ sourceId: item.id,
45
+ content,
46
+ metadata: {
47
+ source: "supermemory",
48
+ ...(item.type ? { type: item.type } : {}),
49
+ ...(item.createdAt ? { sourceCreatedAt: item.createdAt } : {}),
50
+ ...(item.metadata ?? {}),
51
+ },
52
+ };
53
+ }
54
+ cursor = page.nextCursor ?? null;
55
+ } while (cursor);
56
+ }
57
+ }
58
+ //# sourceMappingURL=supermemory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supermemory.js","sourceRoot":"","sources":["../../src/adapters/supermemory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Adapter, AdapterConfig, SourceRecord } from "./base.js";
2
+ export declare class TextFileAdapter extends Adapter {
3
+ readonly name = "text-file";
4
+ readonly defaultLane: "document";
5
+ constructor(cfg?: AdapterConfig);
6
+ count(): Promise<number>;
7
+ iterate(): AsyncIterable<SourceRecord>;
8
+ }
9
+ //# sourceMappingURL=text-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-file.d.ts","sourceRoot":"","sources":["../../src/adapters/text-file.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEjE,qBAAa,eAAgB,SAAQ,OAAO;IAC1C,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,WAAW,EAAG,UAAU,CAAU;gBAE/B,GAAG,GAAE,aAAkB;IAK7B,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAIvB,OAAO,IAAI,aAAa,CAAC,YAAY,CAAC;CAW9C"}
@@ -0,0 +1,28 @@
1
+ import { promises as fs } from "node:fs";
2
+ import { basename, extname } from "node:path";
3
+ import { Adapter } from "./base.js";
4
+ export class TextFileAdapter extends Adapter {
5
+ name = "text-file";
6
+ defaultLane = "document";
7
+ constructor(cfg = {}) {
8
+ super(cfg);
9
+ if (!cfg.file)
10
+ throw new Error("--file <path> is required for the text-file adapter");
11
+ }
12
+ async count() {
13
+ return 1;
14
+ }
15
+ async *iterate() {
16
+ const content = await fs.readFile(this.cfg.file, "utf8");
17
+ if (!content.trim())
18
+ return;
19
+ const extension = extname(this.cfg.file).toLowerCase();
20
+ yield {
21
+ sourceId: basename(this.cfg.file),
22
+ content,
23
+ contentType: extension === ".md" ? "markdown" : "text",
24
+ metadata: { source: "text-file", file: this.cfg.file },
25
+ };
26
+ }
27
+ }
28
+ //# sourceMappingURL=text-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-file.js","sourceRoot":"","sources":["../../src/adapters/text-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,OAAO,EAA+B,MAAM,WAAW,CAAC;AAEjE,MAAM,OAAO,eAAgB,SAAQ,OAAO;IACjC,IAAI,GAAG,WAAW,CAAC;IACnB,WAAW,GAAG,UAAmB,CAAC;IAE3C,YAAY,MAAqB,EAAE;QACjC,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACxF,CAAC;IAED,KAAK,CAAC,KAAK;QACT,OAAO,CAAC,CAAC;IACX,CAAC;IAED,KAAK,CAAC,CAAC,OAAO;QACZ,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAK,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YAAE,OAAO;QAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QACxD,MAAM;YACJ,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAK,CAAC;YAClC,OAAO;YACP,WAAW,EAAE,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM;YACtD,QAAQ,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAK,EAAE;SACxD,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ import { Adapter, AdapterConfig, SourceRecord } from "./base.js";
2
+ export declare class ZepAdapter extends Adapter {
3
+ readonly name = "zep";
4
+ readonly defaultLane: "memory";
5
+ private apiKey;
6
+ private baseUrl;
7
+ constructor(cfg?: AdapterConfig);
8
+ private request;
9
+ count(): Promise<number | null>;
10
+ iterate(): AsyncIterable<SourceRecord>;
11
+ }
12
+ //# sourceMappingURL=zep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zep.d.ts","sourceRoot":"","sources":["../../src/adapters/zep.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AA6BjE,qBAAa,UAAW,SAAQ,OAAO;IACrC,QAAQ,CAAC,IAAI,SAAS;IACtB,QAAQ,CAAC,WAAW,EAAG,QAAQ,CAAU;IAEzC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;gBAEZ,GAAG,GAAE,aAAkB;YAUrB,OAAO;IAaf,KAAK,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAU9B,OAAO,IAAI,aAAa,CAAC,YAAY,CAAC;CA6C9C"}
@@ -0,0 +1,79 @@
1
+ import { Adapter } from "./base.js";
2
+ const DEFAULT_BASE_URL = "https://api.getzep.com";
3
+ export class ZepAdapter extends Adapter {
4
+ name = "zep";
5
+ defaultLane = "memory";
6
+ apiKey;
7
+ baseUrl;
8
+ constructor(cfg = {}) {
9
+ super(cfg);
10
+ const key = process.env.ZEP_API_KEY;
11
+ if (!key) {
12
+ throw new Error("ZEP_API_KEY is required for the zep adapter");
13
+ }
14
+ this.apiKey = key;
15
+ this.baseUrl = (cfg.baseUrl ?? DEFAULT_BASE_URL).replace(/\/$/, "");
16
+ }
17
+ async request(path) {
18
+ const res = await fetch(new URL(path, this.baseUrl + "/"), {
19
+ headers: {
20
+ Authorization: `Api-Key ${this.apiKey}`,
21
+ Accept: "application/json",
22
+ },
23
+ });
24
+ if (!res.ok) {
25
+ throw new Error(`zep request failed: ${res.status} ${res.statusText}`);
26
+ }
27
+ return (await res.json());
28
+ }
29
+ async count() {
30
+ if (this.cfg.user) {
31
+ const sessions = await this.request(`/api/v2/users/${encodeURIComponent(this.cfg.user)}/sessions?limit=1`);
32
+ return sessions.total_count ?? null;
33
+ }
34
+ return null;
35
+ }
36
+ async *iterate() {
37
+ const pageSize = this.cfg.pageSize ?? 100;
38
+ if (!this.cfg.user) {
39
+ throw new Error("--user is required for the zep adapter (Zep memories belong to a user)");
40
+ }
41
+ const userId = this.cfg.user;
42
+ let sessionCursor = null;
43
+ do {
44
+ const sessionsPath = `/api/v2/users/${encodeURIComponent(userId)}/sessions?limit=${pageSize}${sessionCursor ? `&cursor=${encodeURIComponent(sessionCursor)}` : ""}`;
45
+ const sessionsPage = await this.request(sessionsPath);
46
+ const sessions = sessionsPage.sessions ?? [];
47
+ for (const session of sessions) {
48
+ const sid = session.session_id;
49
+ if (!sid)
50
+ continue;
51
+ let msgCursor = null;
52
+ do {
53
+ const path = `/api/v2/sessions/${encodeURIComponent(sid)}/messages?limit=${pageSize}${msgCursor ? `&cursor=${encodeURIComponent(msgCursor)}` : ""}`;
54
+ const messagesPage = await this.request(path);
55
+ for (const msg of messagesPage.messages ?? []) {
56
+ if (!msg.content)
57
+ continue;
58
+ yield {
59
+ sourceId: msg.uuid,
60
+ content: msg.content,
61
+ metadata: {
62
+ source: "zep",
63
+ userId,
64
+ sessionId: sid,
65
+ ...(msg.role ? { role: msg.role } : {}),
66
+ ...(msg.role_type ? { roleType: msg.role_type } : {}),
67
+ ...(msg.created_at ? { sourceCreatedAt: msg.created_at } : {}),
68
+ ...(msg.metadata ?? {}),
69
+ },
70
+ };
71
+ }
72
+ msgCursor = messagesPage.cursor ?? null;
73
+ } while (msgCursor);
74
+ }
75
+ sessionCursor = sessionsPage.cursor ?? null;
76
+ } while (sessionCursor);
77
+ }
78
+ }
79
+ //# sourceMappingURL=zep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zep.js","sourceRoot":"","sources":["../../src/adapters/zep.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from "commander";
3
+ export declare function buildCli(): Command;
4
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAwI5C,wBAAgB,QAAQ,IAAI,OAAO,CAoIlC"}