@dawn-ai/langchain 0.8.2 → 0.8.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/README.md +1 -1
- package/dist/agent-adapter.d.ts.map +1 -1
- package/dist/agent-adapter.js +7 -7
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# @dawn-ai/langchain
|
|
6
6
|
|
|
7
|
-
LangChain backend adapters for Dawn, the TypeScript meta-framework for LangGraph. Dawn uses this package to materialize `chain` routes and provider-aware `agent` routes — handling tool conversion, streaming, and retry.
|
|
7
|
+
LangChain backend adapters for Dawn, the TypeScript meta-framework for LangGraph that lets you build LangGraph agents like Next.js apps. Dawn uses this package to materialize `chain` routes and provider-aware `agent` routes — handling tool conversion, streaming, and retry.
|
|
8
8
|
|
|
9
9
|
`agent()` materialization resolves a LangChain chat model from the route descriptor. Dawn includes `@langchain/openai` for the default/backcompat path and lazy-loads optional provider packages when an agent selects or infers another provider.
|
|
10
10
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-adapter.d.ts","sourceRoot":"","sources":["../src/agent-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1D,OAAO,EAAE,KAAK,eAAe,EAAgB,MAAM,0BAA0B,CAAA;AAE7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAA;AAI1E,OAAO,EAA0B,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAMpF,OAAO,EAAsB,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAC3F,OAAO,EAA0B,KAAK,2BAA2B,EAAE,MAAM,0BAA0B,CAAA;AACnG,OAAO,EAA0B,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE5E,MAAM,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,sBAAsB,GAAG,SAAS,CAAA;AAEvF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,EAAE,CACZ,KAAK,EAAE,OAAO,EACd,OAAO,EAAE;QACP,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;QACvD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;KAC7B,KACE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAC1B;
|
|
1
|
+
{"version":3,"file":"agent-adapter.d.ts","sourceRoot":"","sources":["../src/agent-adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/agent-adapter.js
CHANGED
|
@@ -17,11 +17,10 @@ function assertAgentLike(entry) {
|
|
|
17
17
|
throw new Error("Agent entry must expose invoke(input) — expected a LangChain agent");
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
// Cache keyed on descriptor only. Assumption: a given descriptor is always
|
|
21
|
-
// invoked with the same capability contributions (prompt fragments come from
|
|
22
|
-
// the route directory, which is stable per descriptor). If that assumption
|
|
23
|
-
// changes, the cache key must include a hash of the fragments/transformers.
|
|
24
20
|
let materializedAgents = new WeakMap();
|
|
21
|
+
function fragmentFingerprint(fragments) {
|
|
22
|
+
return fragments.map((f) => f.cacheKey ?? "").join("|");
|
|
23
|
+
}
|
|
25
24
|
/**
|
|
26
25
|
* Test-only escape hatch: reset the materialized-agents cache so the next
|
|
27
26
|
* harness run creates a fresh LLM instance (e.g. pointing at a new aimock
|
|
@@ -42,10 +41,11 @@ export function composePromptMessages(systemPrompt, promptFragments, state) {
|
|
|
42
41
|
return [{ role: "system", content: composed }, ...messages];
|
|
43
42
|
}
|
|
44
43
|
async function materializeAgent(descriptor, tools, checkpointer, opts = {}) {
|
|
44
|
+
const fingerprint = fragmentFingerprint(opts.promptFragments ?? []);
|
|
45
45
|
if (!opts.bypassCache) {
|
|
46
46
|
const cached = materializedAgents.get(descriptor);
|
|
47
|
-
if (cached) {
|
|
48
|
-
return cached;
|
|
47
|
+
if (cached && cached.fingerprint === fingerprint) {
|
|
48
|
+
return cached.agent;
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
const { createReactAgent } = await import("@langchain/langgraph/prebuilt");
|
|
@@ -89,7 +89,7 @@ async function materializeAgent(descriptor, tools, checkpointer, opts = {}) {
|
|
|
89
89
|
// biome-ignore lint/suspicious/noExplicitAny: dynamically-built options don't satisfy strict StateDefinition type
|
|
90
90
|
const compiled = createReactAgent(agentOptions);
|
|
91
91
|
if (!opts.bypassCache) {
|
|
92
|
-
materializedAgents.set(descriptor, compiled);
|
|
92
|
+
materializedAgents.set(descriptor, { fingerprint, agent: compiled });
|
|
93
93
|
}
|
|
94
94
|
return compiled;
|
|
95
95
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dawn-ai/langchain",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.4",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -34,9 +34,9 @@
|
|
|
34
34
|
"@langchain/langgraph": "^1.3.0",
|
|
35
35
|
"@langchain/openai": "^1.4.5",
|
|
36
36
|
"gpt-tokenizer": "^3.4.0",
|
|
37
|
-
"@dawn-ai/
|
|
38
|
-
"@dawn-ai/
|
|
39
|
-
"@dawn-ai/workspace": "0.8.
|
|
37
|
+
"@dawn-ai/core": "0.8.4",
|
|
38
|
+
"@dawn-ai/sdk": "0.8.4",
|
|
39
|
+
"@dawn-ai/workspace": "0.8.4"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
42
|
"@langchain/core": "^1.1.47",
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
"@langchain/xai": "^1.3.18",
|
|
90
90
|
"@types/node": "25.6.0",
|
|
91
91
|
"zod": "4.4.3",
|
|
92
|
-
"@dawn-ai/config-typescript": "0.8.
|
|
92
|
+
"@dawn-ai/config-typescript": "0.8.4"
|
|
93
93
|
},
|
|
94
94
|
"scripts": {
|
|
95
95
|
"build": "tsc -b tsconfig.json",
|