@virstack/doc-ingest 1.0.2 → 1.0.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.
Files changed (50) hide show
  1. package/README.md +3 -0
  2. package/dist/cli.js +0 -0
  3. package/dist/core/config.js +3 -1
  4. package/dist/core/config.js.map +1 -1
  5. package/package.json +4 -3
  6. package/dist/aiAdapters.d.ts +0 -25
  7. package/dist/aiAdapters.d.ts.map +0 -1
  8. package/dist/aiAdapters.js +0 -50
  9. package/dist/aiAdapters.js.map +0 -1
  10. package/dist/assets/logo.png +0 -0
  11. package/dist/batchPipeline.d.ts +0 -52
  12. package/dist/batchPipeline.d.ts.map +0 -1
  13. package/dist/batchPipeline.js +0 -81
  14. package/dist/batchPipeline.js.map +0 -1
  15. package/dist/config.d.ts +0 -26
  16. package/dist/config.d.ts.map +0 -1
  17. package/dist/config.js +0 -97
  18. package/dist/config.js.map +0 -1
  19. package/dist/logger.d.ts +0 -24
  20. package/dist/logger.d.ts.map +0 -1
  21. package/dist/logger.js +0 -36
  22. package/dist/logger.js.map +0 -1
  23. package/dist/logo.d.ts +0 -2
  24. package/dist/logo.d.ts.map +0 -1
  25. package/dist/logo.js +0 -3
  26. package/dist/logo.js.map +0 -1
  27. package/dist/nodes/geminiExtraction.d.ts +0 -19
  28. package/dist/nodes/geminiExtraction.d.ts.map +0 -1
  29. package/dist/nodes/geminiExtraction.js +0 -87
  30. package/dist/nodes/geminiExtraction.js.map +0 -1
  31. package/dist/nodes/openrouterEmbedder.d.ts +0 -7
  32. package/dist/nodes/openrouterEmbedder.d.ts.map +0 -1
  33. package/dist/nodes/openrouterEmbedder.js +0 -31
  34. package/dist/nodes/openrouterEmbedder.js.map +0 -1
  35. package/dist/nodes/upstashUpsert.d.ts +0 -7
  36. package/dist/nodes/upstashUpsert.d.ts.map +0 -1
  37. package/dist/nodes/upstashUpsert.js +0 -45
  38. package/dist/nodes/upstashUpsert.js.map +0 -1
  39. package/dist/pipeline.d.ts +0 -303
  40. package/dist/pipeline.d.ts.map +0 -1
  41. package/dist/pipeline.js +0 -93
  42. package/dist/pipeline.js.map +0 -1
  43. package/dist/state.d.ts +0 -52
  44. package/dist/state.d.ts.map +0 -1
  45. package/dist/state.js +0 -27
  46. package/dist/state.js.map +0 -1
  47. package/dist/vectorStore.d.ts +0 -24
  48. package/dist/vectorStore.d.ts.map +0 -1
  49. package/dist/vectorStore.js +0 -22
  50. package/dist/vectorStore.js.map +0 -1
package/README.md CHANGED
@@ -66,6 +66,9 @@ MAX_CONCURRENT_FILES=3
66
66
  MAX_CONCURRENT_API_CALLS=15
67
67
  ```
68
68
 
69
+ > **Note on LangGraph Studio:** If you plan to visualize and run this pipeline directly within **LangGraph Studio**, you must also include your `LANGSMITH_API_KEY` (or `LANGCHAIN_API_KEY`) in your `.env` file to enable pipeline auto-initialization.
70
+
71
+
69
72
  ### 2. Running the Tool
70
73
 
71
74
  To launch the interactive wizard (which allows you to select files, folders, or paste raw text):
package/dist/cli.js CHANGED
File without changes
@@ -95,7 +95,9 @@ export function getEnvConfig() {
95
95
  };
96
96
  }
97
97
  // Auto-initialize for LangGraph Studio if running directly via the CLI/Studio
98
- if (typeof pipelineConfig === "undefined" && process.env.OPENROUTER_API_KEY) {
98
+ if (typeof pipelineConfig === "undefined" &&
99
+ process.env.OPENROUTER_API_KEY &&
100
+ (process.env.LANGSMITH_API_KEY || process.env.LANGCHAIN_API_KEY)) {
99
101
  try {
100
102
  initializeConfig(getEnvConfig());
101
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@virstack/doc-ingest",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "A high-performance, parallelized document ingestion and vectorization pipeline.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -13,10 +13,11 @@
13
13
  "virstack-doc-ingest": "./dist/cli.js"
14
14
  },
15
15
  "files": [
16
- "dist"
16
+ "dist",
17
+ "README.md"
17
18
  ],
18
19
  "scripts": {
19
- "build": "tsc",
20
+ "build": "rm -rf dist && tsc",
20
21
  "prepublishOnly": "npm run build",
21
22
  "start": "node dist/cli.js",
22
23
  "dev": "tsx src/cli.ts"
@@ -1,25 +0,0 @@
1
- export interface LlmInput {
2
- systemPrompt: string;
3
- userText: string;
4
- base64PdfChunk?: string;
5
- }
6
- export interface LlmAdapter {
7
- generateMarkdown(input: LlmInput): Promise<string>;
8
- }
9
- export interface EmbeddingAdapter {
10
- embed(chunks: string[]): Promise<number[][]>;
11
- }
12
- export declare class OpenRouterLlmAdapter implements LlmAdapter {
13
- private client;
14
- private model;
15
- constructor(apiKey: string, model: string);
16
- generateMarkdown(input: LlmInput): Promise<string>;
17
- }
18
- export declare class OpenRouterEmbeddingAdapter implements EmbeddingAdapter {
19
- private client;
20
- private model;
21
- private dimensions;
22
- constructor(apiKey: string, model: string, dimensions?: number);
23
- embed(chunks: string[]): Promise<number[][]>;
24
- }
25
- //# sourceMappingURL=aiAdapters.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aiAdapters.d.ts","sourceRoot":"","sources":["../src/aiAdapters.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CAC9C;AAID,qBAAa,oBAAqB,YAAW,UAAU;IACrD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;gBAEV,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAKnC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;CAsBzD;AAED,qBAAa,0BAA2B,YAAW,gBAAgB;IACjE,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,GAAE,MAAa;IAM9D,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;CAWnD"}
@@ -1,50 +0,0 @@
1
- import { OpenAI } from "openai";
2
- // --- BUILT-IN ADAPTERS (For CLI to use by default) ---
3
- export class OpenRouterLlmAdapter {
4
- client;
5
- model;
6
- constructor(apiKey, model) {
7
- this.client = new OpenAI({ baseURL: "https://openrouter.ai/api/v1", apiKey });
8
- this.model = model;
9
- }
10
- async generateMarkdown(input) {
11
- const userContent = [];
12
- if (input.base64PdfChunk) {
13
- userContent.push({
14
- type: "file",
15
- file: { filename: "chunk.pdf", file_data: `data:application/pdf;base64,${input.base64PdfChunk}` },
16
- });
17
- }
18
- userContent.push({ type: "text", text: input.userText });
19
- const response = await this.client.chat.completions.create({
20
- model: this.model,
21
- messages: [
22
- { role: "system", content: input.systemPrompt },
23
- { role: "user", content: userContent },
24
- ],
25
- temperature: 0,
26
- });
27
- return response.choices[0]?.message?.content?.trim() ?? "";
28
- }
29
- }
30
- export class OpenRouterEmbeddingAdapter {
31
- client;
32
- model;
33
- dimensions;
34
- constructor(apiKey, model, dimensions = 1536) {
35
- this.client = new OpenAI({ baseURL: "https://openrouter.ai/api/v1", apiKey });
36
- this.model = model;
37
- this.dimensions = dimensions;
38
- }
39
- async embed(chunks) {
40
- const response = await this.client.embeddings.create({
41
- model: this.model,
42
- input: chunks,
43
- dimensions: this.dimensions,
44
- });
45
- // Sort to maintain chunk order
46
- const sorted = response.data.sort((a, b) => a.index - b.index);
47
- return sorted.map((item) => item.embedding);
48
- }
49
- }
50
- //# sourceMappingURL=aiAdapters.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aiAdapters.js","sourceRoot":"","sources":["../src/aiAdapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAkBhC,wDAAwD;AAExD,MAAM,OAAO,oBAAoB;IACvB,MAAM,CAAS;IACf,KAAK,CAAS;IAEtB,YAAY,MAAc,EAAE,KAAa;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,OAAO,EAAE,8BAA8B,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAAe;QACpC,MAAM,WAAW,GAAU,EAAE,CAAC;QAE9B,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACzB,WAAW,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,+BAA+B,KAAK,CAAC,cAAc,EAAE,EAAE;aAClG,CAAC,CAAC;QACL,CAAC;QACD,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEzD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACzD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE;gBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,YAAY,EAAE;gBAC/C,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAkB,EAAE;aAC9C;YACD,WAAW,EAAE,CAAC;SACf,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7D,CAAC;CACF;AAED,MAAM,OAAO,0BAA0B;IAC7B,MAAM,CAAS;IACf,KAAK,CAAS;IACd,UAAU,CAAS;IAE3B,YAAY,MAAc,EAAE,KAAa,EAAE,aAAqB,IAAI;QAClE,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,OAAO,EAAE,8BAA8B,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAgB;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;YACnD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,MAAM;YACb,UAAU,EAAE,IAAI,CAAC,UAAU;SACrB,CAAC,CAAC;QAEV,+BAA+B;QAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QACzE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;CACF"}
Binary file
@@ -1,52 +0,0 @@
1
- /**
2
- * State for the batch document processing graph.
3
- */
4
- export declare const BatchStateAnnotation: import("@langchain/langgraph").AnnotationRoot<{
5
- /** Input: List of absolute file paths to process */
6
- files: {
7
- (): import("@langchain/langgraph").LastValue<string[]>;
8
- (annotation: import("@langchain/langgraph").SingleReducer<string[], string[]>): import("@langchain/langgraph").BinaryOperatorAggregate<string[], string[]>;
9
- Root: <S extends import("@langchain/langgraph").StateDefinition>(sd: S) => import("@langchain/langgraph").AnnotationRoot<S>;
10
- };
11
- /** Output: Collection of results from each individual document run */
12
- results: import("@langchain/langgraph").BinaryOperatorAggregate<any[], any[]>;
13
- }>;
14
- export type BatchState = typeof BatchStateAnnotation.State;
15
- export declare const graph: import("@langchain/langgraph").CompiledStateGraph<import("@langchain/langgraph").StateType<{
16
- /** Input: List of absolute file paths to process */
17
- files: {
18
- (): import("@langchain/langgraph").LastValue<string[]>;
19
- (annotation: import("@langchain/langgraph").SingleReducer<string[], string[]>): import("@langchain/langgraph").BinaryOperatorAggregate<string[], string[]>;
20
- Root: <S extends import("@langchain/langgraph").StateDefinition>(sd: S) => import("@langchain/langgraph").AnnotationRoot<S>;
21
- };
22
- /** Output: Collection of results from each individual document run */
23
- results: import("@langchain/langgraph").BinaryOperatorAggregate<any[], any[]>;
24
- }>, import("@langchain/langgraph").UpdateType<{
25
- /** Input: List of absolute file paths to process */
26
- files: {
27
- (): import("@langchain/langgraph").LastValue<string[]>;
28
- (annotation: import("@langchain/langgraph").SingleReducer<string[], string[]>): import("@langchain/langgraph").BinaryOperatorAggregate<string[], string[]>;
29
- Root: <S extends import("@langchain/langgraph").StateDefinition>(sd: S) => import("@langchain/langgraph").AnnotationRoot<S>;
30
- };
31
- /** Output: Collection of results from each individual document run */
32
- results: import("@langchain/langgraph").BinaryOperatorAggregate<any[], any[]>;
33
- }>, "__start__" | "workerNode" | "orchestrator" | "summaryNode", {
34
- /** Input: List of absolute file paths to process */
35
- files: {
36
- (): import("@langchain/langgraph").LastValue<string[]>;
37
- (annotation: import("@langchain/langgraph").SingleReducer<string[], string[]>): import("@langchain/langgraph").BinaryOperatorAggregate<string[], string[]>;
38
- Root: <S extends import("@langchain/langgraph").StateDefinition>(sd: S) => import("@langchain/langgraph").AnnotationRoot<S>;
39
- };
40
- /** Output: Collection of results from each individual document run */
41
- results: import("@langchain/langgraph").BinaryOperatorAggregate<any[], any[]>;
42
- }, {
43
- /** Input: List of absolute file paths to process */
44
- files: {
45
- (): import("@langchain/langgraph").LastValue<string[]>;
46
- (annotation: import("@langchain/langgraph").SingleReducer<string[], string[]>): import("@langchain/langgraph").BinaryOperatorAggregate<string[], string[]>;
47
- Root: <S extends import("@langchain/langgraph").StateDefinition>(sd: S) => import("@langchain/langgraph").AnnotationRoot<S>;
48
- };
49
- /** Output: Collection of results from each individual document run */
50
- results: import("@langchain/langgraph").BinaryOperatorAggregate<any[], any[]>;
51
- }, import("@langchain/langgraph").StateDefinition>;
52
- //# sourceMappingURL=batchPipeline.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"batchPipeline.d.ts","sourceRoot":"","sources":["../src/batchPipeline.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,oBAAoB;IAC/B,oDAAoD;;;;;;IAGpD,sEAAsE;;EAKtE,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,OAAO,oBAAoB,CAAC,KAAK,CAAC;AAyE3D,eAAO,MAAM,KAAK;IAnFhB,oDAAoD;;;;;;IAGpD,sEAAsE;;;IAHtE,oDAAoD;;;;;;IAGpD,sEAAsE;;;IAHtE,oDAAoD;;;;;;IAGpD,sEAAsE;;;IAHtE,oDAAoD;;;;;;IAGpD,sEAAsE;;kDAgF/B,CAAC"}
@@ -1,81 +0,0 @@
1
- import { Annotation, StateGraph, Send, END } from "@langchain/langgraph";
2
- import { graph as singleDocGraph } from "./pipeline.js";
3
- import path from "node:path";
4
- import { logger, LogSource } from "./logger.js";
5
- /**
6
- * State for the batch document processing graph.
7
- */
8
- export const BatchStateAnnotation = Annotation.Root({
9
- /** Input: List of absolute file paths to process */
10
- files: (Annotation),
11
- /** Output: Collection of results from each individual document run */
12
- results: Annotation({
13
- reducer: (x, y) => x.concat(y),
14
- default: () => [],
15
- }),
16
- });
17
- /**
18
- * Orchestrator node: Prepares the batch and sends it to workers.
19
- */
20
- function orchestrator(state) {
21
- logger.info(LogSource.BATCH, `Starting processing of ${state.files.length} documents.`);
22
- return {};
23
- }
24
- /**
25
- * Conditional edge: Uses the Send API to spawn parallel worker nodes for each file.
26
- */
27
- function distributeFiles(state) {
28
- return state.files.map((file) => new Send("workerNode", { filePath: file }));
29
- }
30
- /**
31
- * Worker node: Invokes the original single-document pipeline.
32
- */
33
- async function workerNode(state) {
34
- const fileName = path.basename(state.filePath);
35
- const startTime = Date.now();
36
- try {
37
- // Invoke the existing compiled single-document graph
38
- const result = await singleDocGraph.invoke({ filePath: state.filePath });
39
- const elapsed = ((Date.now() - startTime) / 1000).toFixed(1);
40
- return {
41
- results: [{
42
- file: fileName,
43
- status: "success",
44
- chunks: result.textChunks?.length ?? 0,
45
- vectors: result.vectors?.length ?? 0,
46
- durationSec: elapsed,
47
- }]
48
- };
49
- }
50
- catch (error) {
51
- const elapsed = ((Date.now() - startTime) / 1000).toFixed(1);
52
- return {
53
- results: [{
54
- file: fileName,
55
- status: "error",
56
- chunks: 0,
57
- vectors: 0,
58
- durationSec: elapsed,
59
- error: error.message,
60
- }]
61
- };
62
- }
63
- }
64
- /**
65
- * Final node: Prints a summary of the entire batch.
66
- */
67
- function summaryNode(state) {
68
- logger.success(LogSource.BATCH, "All documents processed.");
69
- return {};
70
- }
71
- // Build the batch graph
72
- const batchGraph = new StateGraph(BatchStateAnnotation)
73
- .addNode("orchestrator", orchestrator)
74
- .addNode("workerNode", workerNode)
75
- .addNode("summaryNode", summaryNode)
76
- .addEdge("__start__", "orchestrator")
77
- .addConditionalEdges("orchestrator", distributeFiles, ["workerNode"])
78
- .addEdge("workerNode", "summaryNode")
79
- .addEdge("summaryNode", END);
80
- export const graph = batchGraph.compile();
81
- //# sourceMappingURL=batchPipeline.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"batchPipeline.js","sourceRoot":"","sources":["../src/batchPipeline.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts DELETED
@@ -1,26 +0,0 @@
1
- import pLimit from "p-limit";
2
- import { type VectorStoreAdapter } from "./vectorStore.js";
3
- import { type LlmAdapter, type EmbeddingAdapter } from "./aiAdapters.js";
4
- export interface RagPipelineConfig {
5
- openRouterApiKey?: string;
6
- vectorStore: VectorStoreAdapter;
7
- llm: LlmAdapter;
8
- embedder: EmbeddingAdapter;
9
- chunkSize?: number;
10
- chunkOverlap?: number;
11
- pdfPagesPerChunk?: number;
12
- embeddingDimensions?: number;
13
- maxConcurrentFiles?: number;
14
- maxConcurrentApi?: number;
15
- systemPrompt?: string;
16
- maxTokens?: number;
17
- }
18
- export declare let pipelineConfig: Required<RagPipelineConfig>;
19
- export declare let apiLimit: ReturnType<typeof pLimit>;
20
- export declare function initializeConfig(config: RagPipelineConfig): void;
21
- export declare function requireInit(): void;
22
- /**
23
- * Helper for CLI/Tools to get a RagPipelineConfig object from process.env
24
- */
25
- export declare function getEnvConfig(): RagPipelineConfig;
26
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,gBAAgB,EAAoD,MAAM,iBAAiB,CAAC;AAG3H,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,kBAAkB,CAAC;IAChC,GAAG,EAAE,UAAU,CAAC;IAChB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAGD,eAAO,IAAI,cAAc,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAGvD,eAAO,IAAI,QAAQ,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AAG/C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,QA+BzD;AAGD,wBAAgB,WAAW,SAM1B;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,iBAAiB,CAiDhD"}
package/dist/config.js DELETED
@@ -1,97 +0,0 @@
1
- import pLimit from "p-limit";
2
- import { UpstashAdapter } from "./vectorStore.js";
3
- import { OpenRouterLlmAdapter, OpenRouterEmbeddingAdapter } from "./aiAdapters.js";
4
- // 2. Hold the global settings
5
- export let pipelineConfig;
6
- // Global API rate limiter initialized lazily
7
- export let apiLimit;
8
- // 3. Create the initialization function
9
- export function initializeConfig(config) {
10
- // 1. Validate required parameters
11
- const missing = [];
12
- if (!config.vectorStore)
13
- missing.push("vectorStore");
14
- if (!config.llm)
15
- missing.push("llm");
16
- if (!config.embedder)
17
- missing.push("embedder");
18
- if (missing.length > 0) {
19
- throw new Error(`RAG Pipeline initialization failed. Missing required adapters: ${missing.join(", ")}`);
20
- }
21
- // Apply defaults for optional numeric fields
22
- pipelineConfig = {
23
- openRouterApiKey: config.openRouterApiKey || "",
24
- vectorStore: config.vectorStore,
25
- llm: config.llm,
26
- embedder: config.embedder,
27
- chunkSize: config.chunkSize || 1000,
28
- chunkOverlap: config.chunkOverlap || 100,
29
- pdfPagesPerChunk: config.pdfPagesPerChunk || 10,
30
- embeddingDimensions: config.embeddingDimensions || 1536,
31
- maxConcurrentFiles: config.maxConcurrentFiles || 3,
32
- maxConcurrentApi: config.maxConcurrentApi || 15,
33
- systemPrompt: config.systemPrompt,
34
- maxTokens: config.maxTokens || 16384,
35
- };
36
- // Global rate limiter initialized lazily
37
- apiLimit = pLimit(pipelineConfig.maxConcurrentApi);
38
- }
39
- // Helper to ensure config is loaded before a node runs
40
- export function requireInit() {
41
- if (!pipelineConfig) {
42
- throw new Error("RAG Pipeline not initialized. Call initializeConfig() first.");
43
- }
44
- }
45
- /**
46
- * Helper for CLI/Tools to get a RagPipelineConfig object from process.env
47
- */
48
- export function getEnvConfig() {
49
- const apiKey = process.env.OPENROUTER_API_KEY;
50
- const llmModel = process.env.LLM_MODEL;
51
- const embedModel = process.env.EMBEDDING_MODEL;
52
- const url = process.env.UPSTASH_VECTOR_URL;
53
- const token = process.env.UPSTASH_VECTOR_TOKEN;
54
- const dimensions = process.env.EMBEDDING_DIMENSIONS
55
- ? parseInt(process.env.EMBEDDING_DIMENSIONS, 10)
56
- : 1536;
57
- // Validate required ENVs for CLI/Defaults
58
- const missing = [];
59
- if (!apiKey)
60
- missing.push("OPENROUTER_API_KEY");
61
- if (!llmModel)
62
- missing.push("LLM_MODEL");
63
- if (!embedModel)
64
- missing.push("EMBEDDING_MODEL");
65
- if (!url)
66
- missing.push("UPSTASH_VECTOR_URL");
67
- if (!token)
68
- missing.push("UPSTASH_VECTOR_TOKEN");
69
- if (missing.length > 0) {
70
- throw new Error(`Missing required environment variables: ${missing.join(", ")}`);
71
- }
72
- const vectorStore = new UpstashAdapter(url, token);
73
- return {
74
- openRouterApiKey: apiKey,
75
- vectorStore: vectorStore,
76
- llm: new OpenRouterLlmAdapter(apiKey, llmModel),
77
- embedder: new OpenRouterEmbeddingAdapter(apiKey, embedModel, dimensions),
78
- embeddingDimensions: dimensions,
79
- chunkSize: process.env.CHUNK_SIZE
80
- ? parseInt(process.env.CHUNK_SIZE, 10)
81
- : undefined,
82
- chunkOverlap: process.env.CHUNK_OVERLAP
83
- ? parseInt(process.env.CHUNK_OVERLAP, 10)
84
- : undefined,
85
- maxConcurrentFiles: process.env.MAX_CONCURRENT_FILES
86
- ? parseInt(process.env.MAX_CONCURRENT_FILES, 10)
87
- : undefined,
88
- maxConcurrentApi: process.env.MAX_CONCURRENT_API_CALLS
89
- ? parseInt(process.env.MAX_CONCURRENT_API_CALLS, 10)
90
- : undefined,
91
- systemPrompt: process.env.SYSTEM_PROMPT,
92
- maxTokens: process.env.MAX_TOKENS
93
- ? parseInt(process.env.MAX_TOKENS, 10)
94
- : undefined,
95
- };
96
- }
97
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/logger.d.ts DELETED
@@ -1,24 +0,0 @@
1
- export declare const LogSource: {
2
- readonly BATCH: "Batch Pipeline";
3
- readonly CLI: "CLI";
4
- readonly FILE_ROUTER: "File Router";
5
- readonly LLM_EXTRACTION: "LLM Extraction";
6
- readonly LIBRE_OFFICE: "LibreOffice to PDF";
7
- readonly MARKDOWN_CHUNKER: "Markdown Chunker";
8
- readonly MARKDOWN_MERGER: "Markdown Merger";
9
- readonly MARKDOWN_NORMALIZER: "Markdown Normalizer";
10
- readonly VECTOR_EMBEDDER: "Vector Embedder";
11
- readonly PDF_SPLITTER: "PDF Splitter";
12
- readonly PIPELINE: "Pipeline";
13
- readonly SAVE_MARKDOWN: "Save Markdown";
14
- readonly TEXT_EXTRACTOR: "Text Extractor";
15
- readonly VECTOR_UPSERT: "Vector Upsert";
16
- };
17
- export type LogSourceType = (typeof LogSource)[keyof typeof LogSource];
18
- export declare const logger: {
19
- info: (source: LogSourceType, message: string) => void;
20
- warn: (source: LogSourceType, message: string) => void;
21
- error: (source: LogSourceType, message: string, error?: unknown) => void;
22
- success: (source: LogSourceType, message: string) => void;
23
- };
24
- //# sourceMappingURL=logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;CAeZ,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAEvE,eAAO,MAAM,MAAM;mBACF,aAAa,WAAW,MAAM;mBAG9B,aAAa,WAAW,MAAM;oBAG7B,aAAa,WAAW,MAAM,UAAU,OAAO;sBAO7C,aAAa,WAAW,MAAM;CAGjD,CAAC"}
package/dist/logger.js DELETED
@@ -1,36 +0,0 @@
1
- export const LogSource = {
2
- BATCH: "Batch Pipeline",
3
- CLI: "CLI",
4
- FILE_ROUTER: "File Router",
5
- LLM_EXTRACTION: "LLM Extraction",
6
- LIBRE_OFFICE: "LibreOffice to PDF",
7
- MARKDOWN_CHUNKER: "Markdown Chunker",
8
- MARKDOWN_MERGER: "Markdown Merger",
9
- MARKDOWN_NORMALIZER: "Markdown Normalizer",
10
- VECTOR_EMBEDDER: "Vector Embedder",
11
- PDF_SPLITTER: "PDF Splitter",
12
- PIPELINE: "Pipeline",
13
- SAVE_MARKDOWN: "Save Markdown",
14
- TEXT_EXTRACTOR: "Text Extractor",
15
- VECTOR_UPSERT: "Vector Upsert",
16
- };
17
- export const logger = {
18
- info: (source, message) => {
19
- console.log(`[${source}] ${message}`);
20
- },
21
- warn: (source, message) => {
22
- console.warn(`[${source}] ⚠️ ${message}`);
23
- },
24
- error: (source, message, error) => {
25
- if (error !== undefined) {
26
- console.error(`[${source}] ❌ ${message}`, error);
27
- }
28
- else {
29
- console.error(`[${source}] ❌ ${message}`);
30
- }
31
- },
32
- success: (source, message) => {
33
- console.log(`[${source}] ✅ ${message}`);
34
- },
35
- };
36
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,KAAK,EAAE,gBAAgB;IACvB,GAAG,EAAE,KAAK;IACV,WAAW,EAAE,aAAa;IAC1B,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,oBAAoB;IAClC,gBAAgB,EAAE,kBAAkB;IACpC,eAAe,EAAE,iBAAiB;IAClC,mBAAmB,EAAE,qBAAqB;IAC1C,eAAe,EAAE,iBAAiB;IAClC,YAAY,EAAE,cAAc;IAC5B,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,aAAa,EAAE,eAAe;CACtB,CAAC;AAIX,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,CAAC,MAAqB,EAAE,OAAe,EAAE,EAAE;QAC/C,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,EAAE,CAAC,MAAqB,EAAE,OAAe,EAAE,EAAE;QAC/C,OAAO,CAAC,IAAI,CAAC,IAAI,MAAM,QAAQ,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,KAAK,EAAE,CAAC,MAAqB,EAAE,OAAe,EAAE,KAAe,EAAE,EAAE;QACjE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,OAAO,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,OAAO,OAAO,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC,MAAqB,EAAE,OAAe,EAAE,EAAE;QAClD,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,OAAO,OAAO,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF,CAAC"}