llm-agent-runtime 0.1.16 → 0.1.17

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/USAGE.md CHANGED
@@ -48,10 +48,16 @@ OPENROUTER_API_KEY=sk-or-v1-...
48
48
  OPENROUTER_MODEL=meta-llama/llama-3.1-70b-instruct
49
49
  OPENROUTER_INTENT_ROUTER_MODEL=meta-llama/llama-3.1-70b-instruct
50
50
 
51
- # Embeddings — omit EMBEDDINGS_PROVIDER xenova when chat is openrouter
51
+ # Embeddings — local default for openrouter is xenova (free)
52
52
  EMBEDDINGS_PROVIDER=xenova
53
53
  # XENOVA_EMBEDDINGS_MODEL=Xenova/all-MiniLM-L6-v2
54
54
 
55
+ # Vercel / Lambda / Netlify: xenova will NOT load. Set:
56
+ # EMBEDDINGS_PROVIDER=openai
57
+ # OPENAI_API_KEY=sk-...
58
+ # (If OPENAI_API_KEY is set on those hosts, the package auto-selects openai
59
+ # even when EMBEDDINGS_PROVIDER is unset or xenova.)
60
+
55
61
  # Optional Redis (flow state / cache). Plain Redis works for cache;
56
62
  # Redis Stack (RedisJSON) needed for durable LangGraph checkpoints.
57
63
  REDIS_URL=redis://localhost:6379
@@ -66,9 +72,9 @@ LANGSMITH_PROJECT=my-agent
66
72
 
67
73
  | `EMBEDDINGS_PROVIDER` | Cost | When to use |
68
74
  | --- | --- | --- |
69
- | `xenova` | Free | Default for OpenRouter/OpenAI chat when unset |
75
+ | `xenova` | Free | Local default for OpenRouter/OpenAI chat when unset |
70
76
  | `ollama` | Free (self-host) | Default when `LLM_PROVIDER=ollama` |
71
- | `openai` | Paid | Strongest cloud embeddings |
77
+ | `openai` | Paid | **Required on Vercel/serverless**; strongest cloud embeddings |
72
78
 
73
79
  ---
74
80
 
package/dist/env-llm.d.ts CHANGED
@@ -1,11 +1,14 @@
1
1
  import type { EmbeddingsProvider, LlmConfig, LlmProvider } from "./types.js";
2
+ /** Vercel / Lambda / Netlify — @xenova/transformers + sharp do not work here. */
3
+ export declare function isServerlessRuntime(env?: NodeJS.ProcessEnv): boolean;
2
4
  /**
3
5
  * Resolve embeddings backend.
4
6
  *
5
- * - Explicit EMBEDDINGS_PROVIDER wins (ollama | openai | xenova).
6
- * - openrouter is not an embeddings backend xenova (free).
7
- * - If unset: ollama chat ollama embeddings; otherwise → xenova
8
- * (so OpenRouter/OpenAI chat works in production without local Ollama).
7
+ * - Explicit EMBEDDINGS_PROVIDER wins (ollama | openai | xenova), except:
8
+ * on serverless (Vercel/Lambda/…) with OPENAI_API_KEY, xenovaopenai
9
+ * (Transformers.js / sharp cannot load in those runtimes).
10
+ * - openrouter is not an embeddings backend → xenova locally, openai on serverless+key.
11
+ * - If unset: ollama chat → ollama; serverless+OPENAI_API_KEY → openai; else → xenova.
9
12
  */
10
13
  export declare function resolveEmbeddingsProvider(env: NodeJS.ProcessEnv, chatProvider: LlmProvider): EmbeddingsProvider;
11
14
  /**
@@ -14,7 +17,7 @@ export declare function resolveEmbeddingsProvider(env: NodeJS.ProcessEnv, chatPr
14
17
  * Env knobs:
15
18
  * - LLM_PROVIDER — ollama | openai | openrouter
16
19
  * - EMBEDDINGS_PROVIDER — ollama | openai | xenova
17
- * (default: ollama if LLM is ollama, else xenova)
20
+ * (default: ollama if LLM is ollama; openai on Vercel/Lambda when OPENAI_API_KEY set; else xenova)
18
21
  * - OLLAMA_MODEL / OPENAI_MODEL / OPENROUTER_MODEL
19
22
  * - XENOVA_EMBEDDINGS_MODEL / OLLAMA_EMBEDDINGS_MODEL / OPENAI_EMBEDDINGS_MODEL
20
23
  * - OLLAMA_BASE_URL / OPENAI_API_KEY / OPENROUTER_API_KEY / OPENROUTER_BASE_URL
@@ -1 +1 @@
1
- {"version":3,"file":"env-llm.d.ts","sourceRoot":"","sources":["../src/env-llm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAqB7E;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,YAAY,EAAE,WAAW,GACxB,kBAAkB,CAmBpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,SAAS,CAuDX"}
1
+ {"version":3,"file":"env-llm.d.ts","sourceRoot":"","sources":["../src/env-llm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAqB7E,iFAAiF;AACjF,wBAAgB,mBAAmB,CACjC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAQT;AAMD;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,YAAY,EAAE,WAAW,GACxB,kBAAkB,CAuBpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,SAAS,CAuDX"}
package/dist/env-llm.js CHANGED
@@ -12,16 +12,29 @@ const asChatProvider = (value, fallback) => {
12
12
  return "ollama";
13
13
  return fallback;
14
14
  };
15
+ /** Vercel / Lambda / Netlify — @xenova/transformers + sharp do not work here. */
16
+ export function isServerlessRuntime(env = process.env) {
17
+ return Boolean(env.VERCEL ||
18
+ env.VERCEL_ENV ||
19
+ env.AWS_LAMBDA_FUNCTION_NAME ||
20
+ env.NETLIFY ||
21
+ env.NETLIFY_DEV);
22
+ }
23
+ function preferOpenAiOnServerless(env) {
24
+ return isServerlessRuntime(env) && Boolean(env.OPENAI_API_KEY?.trim());
25
+ }
15
26
  /**
16
27
  * Resolve embeddings backend.
17
28
  *
18
- * - Explicit EMBEDDINGS_PROVIDER wins (ollama | openai | xenova).
19
- * - openrouter is not an embeddings backend xenova (free).
20
- * - If unset: ollama chat ollama embeddings; otherwise → xenova
21
- * (so OpenRouter/OpenAI chat works in production without local Ollama).
29
+ * - Explicit EMBEDDINGS_PROVIDER wins (ollama | openai | xenova), except:
30
+ * on serverless (Vercel/Lambda/…) with OPENAI_API_KEY, xenovaopenai
31
+ * (Transformers.js / sharp cannot load in those runtimes).
32
+ * - openrouter is not an embeddings backend → xenova locally, openai on serverless+key.
33
+ * - If unset: ollama chat → ollama; serverless+OPENAI_API_KEY → openai; else → xenova.
22
34
  */
23
35
  export function resolveEmbeddingsProvider(env, chatProvider) {
24
36
  const raw = env.EMBEDDINGS_PROVIDER?.trim().toLowerCase();
37
+ const serverlessOpenAi = preferOpenAiOnServerless(env);
25
38
  if (raw === "openai" || raw === "gpt" || raw === "chatgpt")
26
39
  return "openai";
27
40
  if (raw === "ollama")
@@ -30,14 +43,17 @@ export function resolveEmbeddingsProvider(env, chatProvider) {
30
43
  raw === "transformers" ||
31
44
  raw === "local" ||
32
45
  raw === "minilm") {
33
- return "xenova";
46
+ return serverlessOpenAi ? "openai" : "xenova";
34
47
  }
35
- // OpenRouter has chat only — use free in-process embeddings.
36
- if (raw === "openrouter" || raw === "or")
37
- return "xenova";
38
- // Unset / unknown: prefer ollama only when chat is already ollama.
48
+ // OpenRouter has chat only — not an embeddings API.
49
+ if (raw === "openrouter" || raw === "or") {
50
+ return serverlessOpenAi ? "openai" : "xenova";
51
+ }
52
+ // Unset / unknown
39
53
  if (chatProvider === "ollama")
40
54
  return "ollama";
55
+ if (serverlessOpenAi)
56
+ return "openai";
41
57
  return "xenova";
42
58
  }
43
59
  /**
@@ -46,7 +62,7 @@ export function resolveEmbeddingsProvider(env, chatProvider) {
46
62
  * Env knobs:
47
63
  * - LLM_PROVIDER — ollama | openai | openrouter
48
64
  * - EMBEDDINGS_PROVIDER — ollama | openai | xenova
49
- * (default: ollama if LLM is ollama, else xenova)
65
+ * (default: ollama if LLM is ollama; openai on Vercel/Lambda when OPENAI_API_KEY set; else xenova)
50
66
  * - OLLAMA_MODEL / OPENAI_MODEL / OPENROUTER_MODEL
51
67
  * - XENOVA_EMBEDDINGS_MODEL / OLLAMA_EMBEDDINGS_MODEL / OPENAI_EMBEDDINGS_MODEL
52
68
  * - OLLAMA_BASE_URL / OPENAI_API_KEY / OPENROUTER_API_KEY / OPENROUTER_BASE_URL
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { createAgentRuntime, type AgentRuntime } from "./create-runtime.js";
2
2
  export { createModels } from "./llm.js";
3
- export { llmConfigFromEnv, resolveEmbeddingsProvider } from "./env-llm.js";
3
+ export { llmConfigFromEnv, resolveEmbeddingsProvider, isServerlessRuntime, } from "./env-llm.js";
4
4
  export { createRedis } from "./redis.js";
5
5
  export { XenovaEmbeddings } from "./embeddings/xenova.js";
6
6
  export { AgentRuntimeError, assertInvokeInput } from "./errors.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACxE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,WAAW,EACX,mBAAmB,EACnB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EACR,cAAc,EACd,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,cAAc,GACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,SAAS,EACT,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,SAAS,EACT,eAAe,EACf,WAAW,EACX,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,aAAa,GACd,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACxE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,WAAW,EACX,mBAAmB,EACnB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EACR,cAAc,EACd,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,cAAc,GACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,SAAS,EACT,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,SAAS,EACT,eAAe,EACf,WAAW,EACX,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,aAAa,GACd,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export { createAgentRuntime } from "./create-runtime.js";
2
2
  export { createModels } from "./llm.js";
3
- export { llmConfigFromEnv, resolveEmbeddingsProvider } from "./env-llm.js";
3
+ export { llmConfigFromEnv, resolveEmbeddingsProvider, isServerlessRuntime, } from "./env-llm.js";
4
4
  export { createRedis } from "./redis.js";
5
5
  export { XenovaEmbeddings } from "./embeddings/xenova.js";
6
6
  export { AgentRuntimeError, assertInvokeInput } from "./errors.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rag/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAG7D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,KAAK,iBAAiB,EACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,EACT,KAAK,iBAAiB,EACtB,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,CAAC;AACpE,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,GACV,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7D,CAAC;AAgCF;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,cAAc,CAAC,CAkC1B;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,OAAO,EAAE;IACxD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC;IACV,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,KAAK,EAAE,cAAc,CAAC;CACvB,CAAC,CAUD;AAED,0FAA0F;AAC1F,wBAAsB,sBAAsB,CAAC,OAAO,EAAE;IACpD,UAAU,EAAE,UAAU,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;cArBW,iBAAiB,EAAE;eAClB,iBAAiB,EAAE;WACvB,cAAc;GAgCtB;AAKD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,2EAA2E;IAC3E,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAEF;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,kBAAuB,2BA+B3D;AAED,wBAAgB,mBAAmB,WAElC;AAED,6EAA6E;AAC7E,wBAAgB,aAAa,SAG5B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rag/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAG7D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,KAAK,iBAAiB,EACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,EACT,KAAK,iBAAiB,EACtB,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,CAAC;AACpE,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,GACV,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7D,CAAC;AAgCF;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,cAAc,CAAC,CAkC1B;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,OAAO,EAAE;IACxD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC;IACV,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,KAAK,EAAE,cAAc,CAAC;CACvB,CAAC,CAUD;AAED,0FAA0F;AAC1F,wBAAsB,sBAAsB,CAAC,OAAO,EAAE;IACpD,UAAU,EAAE,UAAU,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;cArBW,iBAAiB,EAAE;eAClB,iBAAiB,EAAE;WACvB,cAAc;GAgCtB;AAKD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,2EAA2E;IAC3E,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAEF;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,kBAAuB,2BAiC3D;AAED,wBAAgB,mBAAmB,WAElC;AAED,6EAA6E;AAC7E,wBAAgB,aAAa,SAG5B"}
package/dist/rag/index.js CHANGED
@@ -104,10 +104,12 @@ let documentCount = 0;
104
104
  export function getRagStore(options = {}) {
105
105
  if (!storePromise) {
106
106
  storePromise = (async () => {
107
- const embeddings = options.embeddings ?? createModels(llmConfigFromEnv()).embeddings;
107
+ const env = options.env ?? process.env;
108
+ const embeddings = options.embeddings ??
109
+ createModels(llmConfigFromEnv(env)).embeddings;
108
110
  const { store, documents } = await createSimpleRagFromEnv({
109
111
  embeddings,
110
- env: options.env,
112
+ env,
111
113
  chunkSize: options.chunkSize,
112
114
  overlap: options.overlap,
113
115
  });
package/dist/types.d.ts CHANGED
@@ -77,8 +77,8 @@ export type LlmProvider = "ollama" | "openai" | "openrouter";
77
77
  /**
78
78
  * Intent-embedding backends.
79
79
  * - ollama — local Ollama server
80
- * - openai — paid OpenAI embeddings API
81
- * - xenova — free in-process Transformers.js (default when chat is not ollama and EMBEDDINGS_PROVIDER unset)
80
+ * - openai — paid OpenAI embeddings API (required on Vercel/Lambda; auto-selected there when OPENAI_API_KEY is set)
81
+ * - xenova — free in-process Transformers.js (local default when chat is not ollama and EMBEDDINGS_PROVIDER unset)
82
82
  */
83
83
  export type EmbeddingsProvider = "ollama" | "openai" | "xenova";
84
84
  export type LlmConfig = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "llm-agent-runtime",
3
- "version": "0.1.16",
3
+ "version": "0.1.17",
4
4
  "description": "Reusable LangGraph agent runtime: intent routing, sticky flows, Redis checkpointer, optional answer cache",
5
5
  "license": "ISC",
6
6
  "type": "module",