@delofarag/ai-utils 1.7.3 → 1.8.2
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 +32 -44
- package/dist/heart/agent.d.ts +21 -9
- package/dist/heart/agent.d.ts.map +1 -1
- package/dist/heart/agent.js +11 -3
- package/dist/heart/agent.js.map +1 -1
- package/dist/heart/chain.d.ts +15 -0
- package/dist/heart/chain.d.ts.map +1 -1
- package/dist/heart/chain.js +28 -1
- package/dist/heart/chain.js.map +1 -1
- package/dist/heart/deepAgent.d.ts +36 -21
- package/dist/heart/deepAgent.d.ts.map +1 -1
- package/dist/heart/deepAgent.js +14 -6
- package/dist/heart/deepAgent.js.map +1 -1
- package/dist/helpers/deepagent/backend.d.ts +1 -4
- package/dist/helpers/deepagent/backend.d.ts.map +1 -1
- package/dist/helpers/deepagent/backend.js.map +1 -1
- package/dist/helpers/deepagent/interruptTypes.d.ts +25 -1
- package/dist/helpers/deepagent/interruptTypes.d.ts.map +1 -1
- package/dist/helpers/deepagent/streamEvents.d.ts +5 -2
- package/dist/helpers/deepagent/streamEvents.d.ts.map +1 -1
- package/dist/helpers/deepagent/streamEvents.js +52 -6
- package/dist/helpers/deepagent/streamEvents.js.map +1 -1
- package/dist/helpers/{cli-llms.d.ts → llm/cli-llms.d.ts} +2 -2
- package/dist/helpers/llm/cli-llms.d.ts.map +1 -0
- package/dist/helpers/{cli-llms.js → llm/cli-llms.js} +1 -1
- package/dist/helpers/llm/cli-llms.js.map +1 -0
- package/dist/helpers/llm/free-llm.d.ts +89 -0
- package/dist/helpers/llm/free-llm.d.ts.map +1 -0
- package/dist/helpers/llm/free-llm.js +204 -0
- package/dist/helpers/llm/free-llm.js.map +1 -0
- package/dist/helpers/llm/llms.d.ts +28 -0
- package/dist/helpers/llm/llms.d.ts.map +1 -0
- package/dist/helpers/{llms.js → llm/llms.js} +11 -45
- package/dist/helpers/llm/llms.js.map +1 -0
- package/dist/helpers/llm/types.d.ts +82 -0
- package/dist/helpers/llm/types.d.ts.map +1 -0
- package/dist/helpers/llm/types.js +2 -0
- package/dist/helpers/llm/types.js.map +1 -0
- package/dist/helpers/memory.js +1 -1
- package/dist/helpers/memory.js.map +1 -1
- package/dist/index.d.ts +3 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -4
- package/dist/index.js.map +1 -1
- package/dist/magic-funcs/answerers/ask.js +1 -1
- package/dist/magic-funcs/answerers/ask.js.map +1 -1
- package/dist/magic-funcs/evaluators/classify.js +1 -1
- package/dist/magic-funcs/evaluators/classify.js.map +1 -1
- package/dist/magic-funcs/evaluators/decide.js +1 -1
- package/dist/magic-funcs/evaluators/decide.js.map +1 -1
- package/dist/magic-funcs/optimizers/promptify.js +1 -1
- package/dist/magic-funcs/optimizers/promptify.js.map +1 -1
- package/dist/magic-funcs/optimizers/ragify.js +1 -1
- package/dist/magic-funcs/optimizers/ragify.js.map +1 -1
- package/dist/magic-funcs/parsers/extract.js +1 -1
- package/dist/magic-funcs/parsers/extract.js.map +1 -1
- package/dist/magic-funcs/parsers/rewrite.js +1 -1
- package/dist/magic-funcs/parsers/rewrite.js.map +1 -1
- package/dist/magic-funcs/parsers/structure.js +1 -1
- package/dist/magic-funcs/parsers/structure.js.map +1 -1
- package/dist/magic-funcs/parsers/summarize.js +1 -1
- package/dist/magic-funcs/parsers/summarize.js.map +1 -1
- package/dist/modalities/image-gen/generateImages.d.ts +5 -3
- package/dist/modalities/image-gen/generateImages.d.ts.map +1 -1
- package/dist/modalities/image-gen/generateImages.js +5 -5
- package/dist/modalities/image-gen/generateImages.js.map +1 -1
- package/dist/modalities/image-gen/helpers.d.ts +1 -1
- package/dist/modalities/image-gen/helpers.d.ts.map +1 -1
- package/dist/modalities/openrouter.d.ts +1 -1
- package/dist/modalities/openrouter.d.ts.map +1 -1
- package/dist/modalities/vision/vision.d.ts +5 -3
- package/dist/modalities/vision/vision.d.ts.map +1 -1
- package/dist/modalities/vision/vision.js +4 -5
- package/dist/modalities/vision/vision.js.map +1 -1
- package/package.json +1 -1
- package/dist/helpers/cli-llms.d.ts.map +0 -1
- package/dist/helpers/cli-llms.js.map +0 -1
- package/dist/helpers/llms.d.ts +0 -135
- package/dist/helpers/llms.d.ts.map +0 -1
- package/dist/helpers/llms.js.map +0 -1
- package/dist/modalities/speech/VoiceEngine.d.ts +0 -3
- package/dist/modalities/speech/VoiceEngine.d.ts.map +0 -1
- package/dist/modalities/speech/VoiceEngine.js +0 -3
- package/dist/modalities/speech/VoiceEngine.js.map +0 -1
- package/dist/modalities/speech/stt/helpers.d.ts +0 -3
- package/dist/modalities/speech/stt/helpers.d.ts.map +0 -1
- package/dist/modalities/speech/stt/helpers.js +0 -28
- package/dist/modalities/speech/stt/helpers.js.map +0 -1
- package/dist/modalities/speech/stt/stt.d.ts +0 -113
- package/dist/modalities/speech/stt/stt.d.ts.map +0 -1
- package/dist/modalities/speech/stt/stt.js +0 -177
- package/dist/modalities/speech/stt/stt.js.map +0 -1
- package/dist/modalities/speech/tts/helpers.d.ts +0 -12
- package/dist/modalities/speech/tts/helpers.d.ts.map +0 -1
- package/dist/modalities/speech/tts/helpers.js +0 -10
- package/dist/modalities/speech/tts/helpers.js.map +0 -1
- package/dist/modalities/speech/tts/tts.d.ts +0 -115
- package/dist/modalities/speech/tts/tts.d.ts.map +0 -1
- package/dist/modalities/speech/tts/tts.js +0 -142
- package/dist/modalities/speech/tts/tts.js.map +0 -1
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@ Ein praktisches Utility-Package für LLM-Apps mit LangChain:
|
|
|
7
7
|
- RAG-Helper (FAISS, Supabase, In-Memory)
|
|
8
8
|
- Tooling (`ToolRegistry`, `CombinedToolRegistry`, `ZodiosToolRegistry`, `createRAGTool`, `tavilySearchTool`)
|
|
9
9
|
- Magic-Funcs (Parser, Evaluator, Optimizer, Answerer)
|
|
10
|
-
- Modalities (
|
|
10
|
+
- Modalities (Vision, Image Generation)
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
|
@@ -20,7 +20,7 @@ Im Package gilt als Standard-LLM-Default für die allgemeine Nutzung:
|
|
|
20
20
|
|
|
21
21
|
Wenn du nichts explizit setzt, orientiere dich an diesem Default in deinen Aufrufen.
|
|
22
22
|
|
|
23
|
-
Für
|
|
23
|
+
Für kostenlose Modelle gibt es bei `provider: "openrouter"` die Option `free: true` — sie wählt dynamisch das beste aktuell kostenlose `:free`-Model (siehe Schnellstart).
|
|
24
24
|
|
|
25
25
|
---
|
|
26
26
|
|
|
@@ -76,13 +76,37 @@ const llmGroq = getLLM({ provider: "chatgroq", model: "llama-3.3-70b-versatile"
|
|
|
76
76
|
const llmLocal = getLLM({ provider: "local", model: "llama3.2:3b" })
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
-
|
|
79
|
+
Kostenloses Model (OpenRouter):
|
|
80
80
|
|
|
81
81
|
```ts
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
82
|
+
// free: true → getLLM wird async und wählt live das beste aktuell
|
|
83
|
+
// kostenlose :free-Model mit Tool-Support. Doppel-Ranking: Intelligenz
|
|
84
|
+
// (sort=intelligence-high-to-low) UND Latenz (sort=latency-low-to-high),
|
|
85
|
+
// kombiniert per Rang-Summe — schlau, aber kein lahmer Reasoning-Brocken.
|
|
86
|
+
// Kein model-Prop erlaubt.
|
|
87
|
+
const llm = await getLLM({ provider: "openrouter", free: true })
|
|
88
|
+
|
|
89
|
+
console.log(llm.model) // z.B. "openai/gpt-oss-120b:free"
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Verschwindet das gewählte Model später oder ist es nicht mehr gratis (400/402/403/404), heilt sich die Instanz selbst: nächstbestes `:free`-Model holen, `model` tauschen, Request transparent wiederholen.
|
|
93
|
+
|
|
94
|
+
**Free-Limits & `FreeLimitError`:** OpenRouter begrenzt `:free`-Models account-weit auf 20 Requests/Minute und 50 Requests/Tag (bzw. 1000/Tag ab 10 gekauften Credits). Weil ein Model-Wechsel dagegen nicht hilft, wird bei 429 nicht geheilt, sondern ein typisierter `FreeLimitError` geworfen — sauber filterbar fürs Frontend:
|
|
95
|
+
|
|
96
|
+
```ts
|
|
97
|
+
import { FreeLimitError } from "@delofarag/ai-utils"
|
|
98
|
+
|
|
99
|
+
try {
|
|
100
|
+
await llm.invoke(messages)
|
|
101
|
+
} catch (e) {
|
|
102
|
+
if (e instanceof FreeLimitError && e.scope === "day") {
|
|
103
|
+
// e.code === "FREE_LIMIT_EXCEEDED" (überlebt auch JSON-Serialisierung)
|
|
104
|
+
// e.retryAfterSeconds → Sekunden bis zum Reset, falls der Server sie liefert
|
|
105
|
+
showToast("Sie haben Ihre Free-Requests für heute verbraucht.")
|
|
106
|
+
} else if (e instanceof FreeLimitError && e.scope === "minute") {
|
|
107
|
+
showToast("Kurz durchatmen — max. 20 Free-Requests pro Minute.")
|
|
108
|
+
}
|
|
109
|
+
}
|
|
86
110
|
```
|
|
87
111
|
|
|
88
112
|
EU-Datenrouting (OpenRouter):
|
|
@@ -899,42 +923,6 @@ const short = await summarize({
|
|
|
899
923
|
|
|
900
924
|
## Modalities
|
|
901
925
|
|
|
902
|
-
### STT
|
|
903
|
-
|
|
904
|
-
- `stt(...)`
|
|
905
|
-
- `createSTTPhoneSocketSession(...)` für live phone socket chunks (Twilio/Telnyx-style)
|
|
906
|
-
|
|
907
|
-
```ts
|
|
908
|
-
import { stt } from "@delofarag/ai-utils"
|
|
909
|
-
|
|
910
|
-
const result = await stt({
|
|
911
|
-
audio: "./call.wav",
|
|
912
|
-
prompt: "Transcribe in German."
|
|
913
|
-
})
|
|
914
|
-
```
|
|
915
|
-
|
|
916
|
-
### TTS
|
|
917
|
-
|
|
918
|
-
- `tts(...)`
|
|
919
|
-
- `streamTTSOverPhoneSocket(...)` für chunked outbound audio
|
|
920
|
-
|
|
921
|
-
```ts
|
|
922
|
-
import { tts, streamTTSOverPhoneSocket } from "@delofarag/ai-utils"
|
|
923
|
-
|
|
924
|
-
const speech = await tts({
|
|
925
|
-
text: "Willkommen beim Support.",
|
|
926
|
-
model: "nova"
|
|
927
|
-
})
|
|
928
|
-
|
|
929
|
-
await streamTTSOverPhoneSocket({
|
|
930
|
-
text: "Einen Moment bitte.",
|
|
931
|
-
model: "nova",
|
|
932
|
-
onChunk: async (chunk) => {
|
|
933
|
-
// socket send
|
|
934
|
-
}
|
|
935
|
-
})
|
|
936
|
-
```
|
|
937
|
-
|
|
938
926
|
### Vision
|
|
939
927
|
|
|
940
928
|
```ts
|
|
@@ -1036,7 +1024,7 @@ Top-level Exports (`@delofarag/ai-utils`):
|
|
|
1036
1024
|
- Memory (`MemorySaver`, `SmartCheckpointSaver`, `SupabaseCheckpointSaver`, `chatSummarizer`)
|
|
1037
1025
|
- Tools (`ToolRegistry`, `CombinedToolRegistry`, `ZodiosToolRegistry`, `Tavily`, `RAGTool`)
|
|
1038
1026
|
- Magic-Funcs (answerers/evaluators/parsers/optimizers)
|
|
1039
|
-
- Modalities (`
|
|
1027
|
+
- Modalities (`vision`, `generateImages`)
|
|
1040
1028
|
|
|
1041
1029
|
Client-Subpath (`@delofarag/ai-utils/client`) — ohne LangChain-Bundle, für Frontend:
|
|
1042
1030
|
|
package/dist/heart/agent.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod/v4";
|
|
2
|
-
import type
|
|
2
|
+
import { type InvokeInputBase, type OutputSchema, type ReasoningEvent } from "./chain";
|
|
3
3
|
import { DynamicStructuredTool } from "../imports";
|
|
4
4
|
import { BaseChatModel } from "../imports";
|
|
5
5
|
import { BaseCheckpointSaver } from "../imports";
|
|
@@ -16,6 +16,12 @@ interface AgentProps<T extends OutputSchema | undefined = undefined> {
|
|
|
16
16
|
* die Tools per getTools() geladen und der Client am Ende wieder geschlossen.
|
|
17
17
|
*/
|
|
18
18
|
mcpServer?: MCPServersInput;
|
|
19
|
+
/**
|
|
20
|
+
* Rein deskriptiver Freitext: wofür der Agent da ist, was er macht.
|
|
21
|
+
* Der Agent selbst nutzt das NICHT — es dient nur als Kontext für externe
|
|
22
|
+
* Tools (z.B. die agent-tui `/eval`-Bewertung).
|
|
23
|
+
*/
|
|
24
|
+
describe?: string;
|
|
19
25
|
}
|
|
20
26
|
/**
|
|
21
27
|
* CONSTRUCTOR:
|
|
@@ -49,15 +55,16 @@ interface AgentProps<T extends OutputSchema | undefined = undefined> {
|
|
|
49
55
|
* @param output - Zod-Schema: beschreibt die Struktur des Rückgabewerts von .invoke()
|
|
50
56
|
*/
|
|
51
57
|
export declare class Agent<T extends OutputSchema | undefined = undefined> {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
prompt: Array<["system", string]>;
|
|
59
|
+
tools: DynamicStructuredTool[];
|
|
60
|
+
llm: BaseChatModel;
|
|
61
|
+
output: T | undefined;
|
|
62
|
+
agent: any;
|
|
63
|
+
checkpointer: BaseCheckpointSaver | undefined;
|
|
64
|
+
mcpServer: MCPServersInput | undefined;
|
|
65
|
+
describe: string | undefined;
|
|
59
66
|
private should_use_output;
|
|
60
|
-
constructor({ prompt, llm, tools, output, checkpointer, mcpServer, }: AgentProps<T>);
|
|
67
|
+
constructor({ prompt, llm, tools, output, checkpointer, mcpServer, describe, }: AgentProps<T>);
|
|
61
68
|
/** bruder ich weiss functional overloading tot aber muss hier sein! so kann sicher gesagt werden: wenn kein output gesetzt = string, wenn doch = z.infer<output>! */
|
|
62
69
|
invoke(this: Agent<undefined>, invokeInput: InvokeInputBase & {
|
|
63
70
|
thread_id?: string;
|
|
@@ -65,6 +72,11 @@ export declare class Agent<T extends OutputSchema | undefined = undefined> {
|
|
|
65
72
|
invoke<U extends OutputSchema>(this: Agent<U>, invokeInput: InvokeInputBase & {
|
|
66
73
|
thread_id?: string;
|
|
67
74
|
}): Promise<z.infer<U>>;
|
|
75
|
+
stream(invokeInput: InvokeInputBase & {
|
|
76
|
+
thread_id?: string;
|
|
77
|
+
stream_delay?: number;
|
|
78
|
+
showReasoning: true;
|
|
79
|
+
}): AsyncGenerator<string | ReasoningEvent, void, unknown>;
|
|
68
80
|
stream(invokeInput: InvokeInputBase & {
|
|
69
81
|
thread_id?: string;
|
|
70
82
|
stream_delay?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/heart/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/heart/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,OAAO,EAAyB,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAA;AAC7G,OAAO,EAAE,qBAAqB,EAAC,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAMhD,OAAO,EAAuC,KAAK,eAAe,EAAE,MAAM,aAAa,CAAA;AAqBvF,UAAU,UAAU,CAAC,CAAC,SAAS,YAAY,GAAG,SAAS,GAAG,SAAS;IAC/D,KAAK,EAAE,qBAAqB,EAAE,CAAA;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;IAC/B,GAAG,CAAC,EAAE,aAAa,CAAA;IACnB,MAAM,CAAC,EAAE,CAAC,CAAA;IACV,YAAY,CAAC,EAAE,mBAAmB,CAAA;IAClC;;;;OAIG;IACH,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,KAAK,CAAC,CAAC,SAAS,YAAY,GAAG,SAAS,GAAG,SAAS;IACtD,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAA;IACjC,KAAK,EAAE,qBAAqB,EAAE,CAAA;IAC9B,GAAG,EAAE,aAAa,CAAA;IAClB,MAAM,EAAE,CAAC,GAAG,SAAS,CAAA;IACrB,KAAK,EAAE,GAAG,CAAA;IACV,YAAY,EAAE,mBAAmB,GAAG,SAAS,CAAA;IAC7C,SAAS,EAAE,eAAe,GAAG,SAAS,CAAA;IACtC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,OAAO,CAAC,iBAAiB,CAAgB;gBAE7B,EACR,MAA6C,EAC7C,GAAoE,EACpE,KAAK,EACL,MAAM,EACN,YAAY,EACZ,SAAS,EACT,QAAQ,GACX,EAAE,UAAU,CAAC,CAAC,CAAC;IAqBhB,qKAAqK;IACxJ,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,eAAe,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IACtG,MAAM,CAAC,CAAC,SAAS,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,eAAe,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAgDhI,MAAM,CAAC,WAAW,EAAE,eAAe,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,IAAI,CAAA;KAAE,GAAG,cAAc,CAAC,MAAM,GAAG,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC;IACjK,MAAM,CAAC,WAAW,EAAE,eAAe,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC;IAqE3H,OAAO,CAAC,IAAI,EAAC,qBAAqB;IAIzC,IAAW,YAAY,IAAI,MAAM,EAAE,CAElC;CACJ"}
|
package/dist/heart/agent.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { PromptTemplate } from "@langchain/core/prompts";
|
|
2
|
+
import { extractReasoningDelta } from "./chain";
|
|
2
3
|
import { createReactAgent } from "../imports";
|
|
3
4
|
import { HumanMessage } from "../imports";
|
|
4
5
|
import { structure } from "../magic-funcs/parsers/structure";
|
|
5
|
-
import { getLLM } from "../helpers/llms";
|
|
6
|
+
import { getLLM } from "../helpers/llm/llms";
|
|
6
7
|
import { buildMcpClient, buildMcpPromptBlock } from "./tools/MCP";
|
|
7
8
|
async function resolveSystemPromptBlocks(blocks, promptVars) {
|
|
8
9
|
if (!promptVars || Object.keys(promptVars).length === 0) {
|
|
@@ -59,8 +60,9 @@ export class Agent {
|
|
|
59
60
|
agent;
|
|
60
61
|
checkpointer;
|
|
61
62
|
mcpServer;
|
|
63
|
+
describe;
|
|
62
64
|
should_use_output = true;
|
|
63
|
-
constructor({ prompt = `Du bist ein hilfreicher Assistent.`, llm = getLLM({ provider: "openrouter", model: "openai/gpt-5.4-mini" }), tools, output, checkpointer, mcpServer, }) {
|
|
65
|
+
constructor({ prompt = `Du bist ein hilfreicher Assistent.`, llm = getLLM({ provider: "openrouter", model: "openai/gpt-5.4-mini" }), tools, output, checkpointer, mcpServer, describe, }) {
|
|
64
66
|
this.prompt = typeof prompt === "string" ? [["system", prompt]] : Array.isArray(prompt) ? prompt.map((p) => {
|
|
65
67
|
if (typeof p === "string") {
|
|
66
68
|
return ["system", p];
|
|
@@ -79,6 +81,7 @@ export class Agent {
|
|
|
79
81
|
this.output = output;
|
|
80
82
|
this.checkpointer = checkpointer;
|
|
81
83
|
this.mcpServer = mcpServer;
|
|
84
|
+
this.describe = describe;
|
|
82
85
|
}
|
|
83
86
|
async invoke(invokeInput) {
|
|
84
87
|
const { thread_id, debug, promptVars, ...variables } = invokeInput;
|
|
@@ -126,7 +129,7 @@ export class Agent {
|
|
|
126
129
|
this.should_use_output = false;
|
|
127
130
|
const mcpClient = buildMcpClient(this.mcpServer);
|
|
128
131
|
try {
|
|
129
|
-
const { thread_id, promptVars, ...variables } = invokeInput;
|
|
132
|
+
const { thread_id, promptVars, showReasoning, ...variables } = invokeInput;
|
|
130
133
|
if (this.checkpointer && !thread_id)
|
|
131
134
|
throw new Error("thread_id is required when using checkpointer, else no state is stored");
|
|
132
135
|
if (!this.checkpointer && thread_id)
|
|
@@ -157,6 +160,11 @@ export class Agent {
|
|
|
157
160
|
if (node === "tools" || messageType === "tool") {
|
|
158
161
|
continue;
|
|
159
162
|
}
|
|
163
|
+
if (showReasoning) {
|
|
164
|
+
const reasoning = extractReasoningDelta(messageChunk);
|
|
165
|
+
if (reasoning)
|
|
166
|
+
yield { kind: "reasoning", text: reasoning };
|
|
167
|
+
}
|
|
160
168
|
const raw = messageChunk?.content;
|
|
161
169
|
if (typeof raw === "string") {
|
|
162
170
|
if (raw.length > 0)
|
package/dist/heart/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/heart/agent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/heart/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/heart/chain.d.ts
CHANGED
|
@@ -14,6 +14,17 @@ export interface InvokeInputBase {
|
|
|
14
14
|
promptVars?: Record<string, any>;
|
|
15
15
|
[key: string]: any;
|
|
16
16
|
}
|
|
17
|
+
/** Reasoning-Delta im Stream — kommt nur bei `showReasoning: true` und nur, wenn das Model Reasoning liefert. */
|
|
18
|
+
export type ReasoningEvent = {
|
|
19
|
+
kind: "reasoning";
|
|
20
|
+
text: string;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Liest das Reasoning-Delta aus einem LangChain-Message-Chunk: `reasoning_content`
|
|
24
|
+
* (mappt @langchain/openai selbst) bzw. OpenRouters `delta.reasoning` aus der
|
|
25
|
+
* Roh-Response (nur vorhanden, wenn das LLM mit `__includeRawResponse` gebaut wurde).
|
|
26
|
+
*/
|
|
27
|
+
export declare function extractReasoningDelta(messageChunk: any): string | undefined;
|
|
17
28
|
interface ChainProps<T extends OutputSchema> {
|
|
18
29
|
prompt?: string | Array<string | MessagesPlaceholder<any>>;
|
|
19
30
|
llm?: BaseChatModel;
|
|
@@ -52,6 +63,10 @@ export declare class Chain<T extends OutputSchema = typeof DEFAULT_OUTPUT_SCHEMA
|
|
|
52
63
|
private output;
|
|
53
64
|
constructor({ prompt, llm, output, vectorStore }?: ChainProps<T>);
|
|
54
65
|
invoke(input: InvokeInputBase): Promise<z.infer<T>>;
|
|
66
|
+
stream(input: Record<string, any> & {
|
|
67
|
+
debug?: boolean;
|
|
68
|
+
showReasoning: true;
|
|
69
|
+
}): AsyncGenerator<string | ReasoningEvent, void, unknown>;
|
|
55
70
|
stream(input: Record<string, any> & {
|
|
56
71
|
debug?: boolean;
|
|
57
72
|
}): AsyncGenerator<string, void, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/heart/chain.ts"],"names":[],"mappings":"AACA,OAAO,EACH,aAAa,EAGb,mBAAmB,EACnB,WAAW,EAGd,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAG1B,wEAAwE;AACxE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAA;AAEpD,eAAO,MAAM,qBAAqB;;iBAEhC,CAAA;AAEF;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB;AAED,UAAU,UAAU,CAAC,CAAC,SAAS,YAAY;IACvC,MAAM,CAAC,EAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAA;IACzD,GAAG,CAAC,EAAC,aAAa,CAAA;IAClB,MAAM,CAAC,EAAC,CAAC,CAAC;IACV,WAAW,CAAC,EAAE,WAAW,CAAA;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,KAAK,CAAC,CAAC,SAAS,YAAY,GAAG,OAAO,qBAAqB;IACpE,OAAO,CAAC,MAAM,CAA+D;IAC7E,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,sBAAsB,CAAY;IAC1C,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,MAAM,CAAE;gBAEJ,EACR,MAA4C,EAC5C,GAAoE,EACpE,MAAmD,EACnD,WAAuB,EAC1B,GAAC,UAAU,CAAC,CAAC,CAAM;IAcP,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/heart/chain.ts"],"names":[],"mappings":"AACA,OAAO,EACH,aAAa,EAGb,mBAAmB,EACnB,WAAW,EAGd,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAG1B,wEAAwE;AACxE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAA;AAEpD,eAAO,MAAM,qBAAqB;;iBAEhC,CAAA;AAEF;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB;AAED,iHAAiH;AACjH,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhE;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAQ3E;AAED,UAAU,UAAU,CAAC,CAAC,SAAS,YAAY;IACvC,MAAM,CAAC,EAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAA;IACzD,GAAG,CAAC,EAAC,aAAa,CAAA;IAClB,MAAM,CAAC,EAAC,CAAC,CAAC;IACV,WAAW,CAAC,EAAE,WAAW,CAAA;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,KAAK,CAAC,CAAC,SAAS,YAAY,GAAG,OAAO,qBAAqB;IACpE,OAAO,CAAC,MAAM,CAA+D;IAC7E,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,sBAAsB,CAAY;IAC1C,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,MAAM,CAAE;gBAEJ,EACR,MAA4C,EAC5C,GAAoE,EACpE,MAAmD,EACnD,WAAuB,EAC1B,GAAC,UAAU,CAAC,CAAC,CAAM;IAcP,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IA4CzD,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,aAAa,EAAE,IAAI,CAAA;KAAE,GAAG,cAAc,CAAC,MAAM,GAAG,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC;IACrI,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC;IAiEtG,8EAA8E;IACjE,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;IAWjC,UAAU,CAAC,WAAW,EAAE,WAAW;IAKnC,YAAY;CAKtB"}
|
package/dist/heart/chain.js
CHANGED
|
@@ -1,10 +1,25 @@
|
|
|
1
1
|
import { StructuredOutputParser, ChatPromptTemplate, createRetrievalChain, createStuffDocumentsChain, } from "../imports";
|
|
2
2
|
import { turn_to_docs, baseSplitter } from "../helpers/rag";
|
|
3
3
|
import { z } from "zod/v4";
|
|
4
|
-
import { getLLM } from "../helpers/llms";
|
|
4
|
+
import { getLLM } from "../helpers/llm/llms";
|
|
5
5
|
export const DEFAULT_OUTPUT_SCHEMA = z.object({
|
|
6
6
|
output: z.string().describe("Dein Output zur anfrage des Users")
|
|
7
7
|
});
|
|
8
|
+
/**
|
|
9
|
+
* Liest das Reasoning-Delta aus einem LangChain-Message-Chunk: `reasoning_content`
|
|
10
|
+
* (mappt @langchain/openai selbst) bzw. OpenRouters `delta.reasoning` aus der
|
|
11
|
+
* Roh-Response (nur vorhanden, wenn das LLM mit `__includeRawResponse` gebaut wurde).
|
|
12
|
+
*/
|
|
13
|
+
export function extractReasoningDelta(messageChunk) {
|
|
14
|
+
const kwargs = messageChunk?.additional_kwargs;
|
|
15
|
+
if (typeof kwargs?.reasoning_content === "string" && kwargs.reasoning_content.length > 0) {
|
|
16
|
+
return kwargs.reasoning_content;
|
|
17
|
+
}
|
|
18
|
+
const raw = kwargs?.__raw_response?.choices?.[0]?.delta?.reasoning;
|
|
19
|
+
if (typeof raw === "string" && raw.length > 0)
|
|
20
|
+
return raw;
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
8
23
|
/**
|
|
9
24
|
* CONSTRUCTOR:
|
|
10
25
|
* @example
|
|
@@ -102,6 +117,8 @@ export class Chain {
|
|
|
102
117
|
for (const key in input) {
|
|
103
118
|
if (key === "debug")
|
|
104
119
|
continue;
|
|
120
|
+
if (key === "showReasoning")
|
|
121
|
+
continue;
|
|
105
122
|
if (key === "thread_id") {
|
|
106
123
|
console.error("eine normale chain hat keine memory, deswegen wird thread_id ignoriert");
|
|
107
124
|
continue;
|
|
@@ -128,6 +145,11 @@ export class Chain {
|
|
|
128
145
|
const streamChain = true_prompt.pipe(this.llm);
|
|
129
146
|
const stream = await streamChain.stream({ ...invokeInput, context: contextText });
|
|
130
147
|
for await (const chunk of stream) {
|
|
148
|
+
if (input.showReasoning) {
|
|
149
|
+
const reasoning = extractReasoningDelta(chunk);
|
|
150
|
+
if (reasoning)
|
|
151
|
+
yield { kind: "reasoning", text: reasoning };
|
|
152
|
+
}
|
|
131
153
|
if (chunk && typeof chunk === 'object' && 'content' in chunk) {
|
|
132
154
|
yield chunk.content;
|
|
133
155
|
}
|
|
@@ -143,6 +165,11 @@ export class Chain {
|
|
|
143
165
|
console.log("created normal chain (streaming)");
|
|
144
166
|
const stream = await streamChain.stream(invokeInput);
|
|
145
167
|
for await (const chunk of stream) {
|
|
168
|
+
if (input.showReasoning) {
|
|
169
|
+
const reasoning = extractReasoningDelta(chunk);
|
|
170
|
+
if (reasoning)
|
|
171
|
+
yield { kind: "reasoning", text: reasoning };
|
|
172
|
+
}
|
|
146
173
|
if (chunk && typeof chunk === 'object' && 'content' in chunk) {
|
|
147
174
|
yield chunk.content;
|
|
148
175
|
}
|
package/dist/heart/chain.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/heart/chain.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,sBAAsB,EACtB,kBAAkB,EAGlB,oBAAoB,EACpB,yBAAyB,GAC5B,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC3D,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/heart/chain.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { z } from "zod/v4";
|
|
|
2
2
|
import type { OutputSchema } from "./chain";
|
|
3
3
|
import { DynamicStructuredTool, BaseChatModel, BaseCheckpointSaver, type AgentMiddleware, type BaseStore, type CreateDeepAgentParams, type SubAgent, type FilesystemPermission } from "../imports";
|
|
4
4
|
import { type MCPServersInput } from "./tools/MCP";
|
|
5
|
-
import type { DeepAgentInterrupt, DeepAgentRunInputBase, DeepAgentHitlFields, DeepAgentShowToolCallsField, DeepAgentToolEvent } from "../helpers/deepagent/interruptTypes";
|
|
5
|
+
import type { DeepAgentInterrupt, DeepAgentRunInputBase, DeepAgentHitlFields, DeepAgentShowToolCallsField, DeepAgentShowReasoningField, DeepAgentShowSubagentsField, DeepAgentToolEvent, DeepAgentReasoningEvent, DeepAgentSubagentEvent } from "../helpers/deepagent/interruptTypes";
|
|
6
6
|
import { type DeepAgentInterruptableToolName, type InterruptOnFor } from "../helpers/deepagent/interruptOn";
|
|
7
7
|
import type { DeepAgentBackend } from "../helpers/deepagent/backend";
|
|
8
8
|
interface DeepAgentProps<T extends OutputSchema | undefined = undefined, TTools extends readonly DynamicStructuredTool[] = readonly [], TBackend extends DeepAgentBackend | undefined = undefined> {
|
|
@@ -29,6 +29,12 @@ interface DeepAgentProps<T extends OutputSchema | undefined = undefined, TTools
|
|
|
29
29
|
* (Neuaufbau pro Aufruf), damit close() den Client nicht für Folge-Calls killt.
|
|
30
30
|
*/
|
|
31
31
|
mcpServer?: MCPServersInput;
|
|
32
|
+
/**
|
|
33
|
+
* Rein deskriptiver Freitext: wofür der Agent da ist, was er macht.
|
|
34
|
+
* Der Agent selbst nutzt das NICHT — es dient nur als Kontext für externe
|
|
35
|
+
* Tools (z.B. die agent-tui `/eval`-Bewertung).
|
|
36
|
+
*/
|
|
37
|
+
describe?: string;
|
|
32
38
|
}
|
|
33
39
|
/**
|
|
34
40
|
* @example
|
|
@@ -69,26 +75,27 @@ interface DeepAgentProps<T extends OutputSchema | undefined = undefined, TTools
|
|
|
69
75
|
}
|
|
70
76
|
*/
|
|
71
77
|
export declare class DeepAgent<T extends OutputSchema | undefined = undefined, const TTools extends readonly DynamicStructuredTool[] = readonly [], TBackend extends DeepAgentBackend | undefined = undefined, THasInterrupt extends boolean = false> {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
78
|
+
prompt: Array<["system", string]>;
|
|
79
|
+
tools: TTools;
|
|
80
|
+
llm: BaseChatModel;
|
|
81
|
+
output: T | undefined;
|
|
82
|
+
agent: any;
|
|
77
83
|
private agentCacheDirty;
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
84
|
+
checkpointer: BaseCheckpointSaver | boolean;
|
|
85
|
+
agentsMd: string[] | undefined;
|
|
86
|
+
subagents: SubAgent[] | undefined;
|
|
87
|
+
backend: TBackend | undefined;
|
|
88
|
+
permissions: FilesystemPermission[] | undefined;
|
|
89
|
+
skills: string[] | undefined;
|
|
90
|
+
middleware: AgentMiddleware[] | undefined;
|
|
91
|
+
interruptOn: InterruptOnFor<DeepAgentInterruptableToolName<TTools, TBackend>> | undefined;
|
|
92
|
+
store: BaseStore | undefined;
|
|
93
|
+
name: string | undefined;
|
|
94
|
+
contextSchema: CreateDeepAgentParams["contextSchema"];
|
|
95
|
+
mcpServer: MCPServersInput | undefined;
|
|
96
|
+
describe: string | undefined;
|
|
90
97
|
private should_use_output;
|
|
91
|
-
constructor({ prompt, llm, tools, output, checkpointer, agentsMd, subagents, backend, permissions, skills, middleware, interruptOn, store, name, contextSchema, mcpServer, }?: DeepAgentProps<T, TTools, TBackend>);
|
|
98
|
+
constructor({ prompt, llm, tools, output, checkpointer, agentsMd, subagents, backend, permissions, skills, middleware, interruptOn, store, name, contextSchema, mcpServer, describe, }?: DeepAgentProps<T, TTools, TBackend>);
|
|
92
99
|
static create<const TTools extends readonly DynamicStructuredTool[], TBackend extends DeepAgentBackend | undefined = undefined>(props: DeepAgentProps<undefined, TTools, TBackend> & {
|
|
93
100
|
interruptOn: InterruptOnFor<DeepAgentInterruptableToolName<TTools, TBackend>>;
|
|
94
101
|
}): DeepAgent<undefined, TTools, TBackend, true>;
|
|
@@ -112,10 +119,18 @@ export declare class DeepAgent<T extends OutputSchema | undefined = undefined, c
|
|
|
112
119
|
invoke<U extends OutputSchema>(this: DeepAgent<U, TTools, TBackend, true>, invokeInput: DeepAgentRunInputBase & DeepAgentHitlFields): Promise<z.infer<U> | DeepAgentInterrupt>;
|
|
113
120
|
invoke(this: DeepAgent<undefined, TTools, TBackend, false>, invokeInput: DeepAgentRunInputBase): Promise<string>;
|
|
114
121
|
invoke<U extends OutputSchema>(this: DeepAgent<U, TTools, TBackend, false>, invokeInput: DeepAgentRunInputBase): Promise<z.infer<U>>;
|
|
115
|
-
stream(this: DeepAgent<T, TTools, TBackend, true>, invokeInput: DeepAgentRunInputBase & DeepAgentHitlFields): AsyncGenerator<string | DeepAgentInterrupt, void, unknown>;
|
|
122
|
+
stream(this: DeepAgent<T, TTools, TBackend, true>, invokeInput: DeepAgentRunInputBase & DeepAgentHitlFields & DeepAgentShowToolCallsField & DeepAgentShowReasoningField & DeepAgentShowSubagentsField): AsyncGenerator<string | DeepAgentInterrupt | DeepAgentToolEvent | DeepAgentReasoningEvent | DeepAgentSubagentEvent, void, unknown>;
|
|
123
|
+
stream(this: DeepAgent<T, TTools, TBackend, true>, invokeInput: DeepAgentRunInputBase & DeepAgentHitlFields & DeepAgentShowToolCallsField & DeepAgentShowReasoningField): AsyncGenerator<string | DeepAgentInterrupt | DeepAgentToolEvent | DeepAgentReasoningEvent, void, unknown>;
|
|
116
124
|
stream(this: DeepAgent<T, TTools, TBackend, true>, invokeInput: DeepAgentRunInputBase & DeepAgentHitlFields & DeepAgentShowToolCallsField): AsyncGenerator<string | DeepAgentInterrupt | DeepAgentToolEvent, void, unknown>;
|
|
117
|
-
stream(this: DeepAgent<T, TTools, TBackend,
|
|
125
|
+
stream(this: DeepAgent<T, TTools, TBackend, true>, invokeInput: DeepAgentRunInputBase & DeepAgentHitlFields & DeepAgentShowReasoningField): AsyncGenerator<string | DeepAgentInterrupt | DeepAgentReasoningEvent, void, unknown>;
|
|
126
|
+
stream(this: DeepAgent<T, TTools, TBackend, true>, invokeInput: DeepAgentRunInputBase & DeepAgentHitlFields & DeepAgentShowSubagentsField): AsyncGenerator<string | DeepAgentInterrupt | DeepAgentSubagentEvent, void, unknown>;
|
|
127
|
+
stream(this: DeepAgent<T, TTools, TBackend, true>, invokeInput: DeepAgentRunInputBase & DeepAgentHitlFields): AsyncGenerator<string | DeepAgentInterrupt, void, unknown>;
|
|
128
|
+
stream(this: DeepAgent<T, TTools, TBackend, false>, invokeInput: DeepAgentRunInputBase & DeepAgentShowToolCallsField & DeepAgentShowReasoningField & DeepAgentShowSubagentsField): AsyncGenerator<string | DeepAgentToolEvent | DeepAgentReasoningEvent | DeepAgentSubagentEvent, void, unknown>;
|
|
129
|
+
stream(this: DeepAgent<T, TTools, TBackend, false>, invokeInput: DeepAgentRunInputBase & DeepAgentShowToolCallsField & DeepAgentShowReasoningField): AsyncGenerator<string | DeepAgentToolEvent | DeepAgentReasoningEvent, void, unknown>;
|
|
118
130
|
stream(this: DeepAgent<T, TTools, TBackend, false>, invokeInput: DeepAgentRunInputBase & DeepAgentShowToolCallsField): AsyncGenerator<string | DeepAgentToolEvent, void, unknown>;
|
|
131
|
+
stream(this: DeepAgent<T, TTools, TBackend, false>, invokeInput: DeepAgentRunInputBase & DeepAgentShowReasoningField): AsyncGenerator<string | DeepAgentReasoningEvent, void, unknown>;
|
|
132
|
+
stream(this: DeepAgent<T, TTools, TBackend, false>, invokeInput: DeepAgentRunInputBase & DeepAgentShowSubagentsField): AsyncGenerator<string | DeepAgentSubagentEvent, void, unknown>;
|
|
133
|
+
stream(this: DeepAgent<T, TTools, TBackend, false>, invokeInput: DeepAgentRunInputBase): AsyncGenerator<string, void, unknown>;
|
|
119
134
|
addTool(tool: DynamicStructuredTool): void;
|
|
120
135
|
get currentTools(): string[];
|
|
121
136
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deepAgent.d.ts","sourceRoot":"","sources":["../../src/heart/deepAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EACH,qBAAqB,EACrB,aAAa,EACb,mBAAmB,EAInB,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC1B,KAAK,QAAQ,EACb,KAAK,oBAAoB,EAC5B,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAuC,KAAK,eAAe,EAAE,MAAM,aAAa,CAAA;AACvF,OAAO,KAAK,EACR,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,2BAA2B,EAC3B,kBAAkB,
|
|
1
|
+
{"version":3,"file":"deepAgent.d.ts","sourceRoot":"","sources":["../../src/heart/deepAgent.ts"],"names":[],"mappings":"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"}
|
package/dist/heart/deepAgent.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PromptTemplate } from "@langchain/core/prompts";
|
|
2
2
|
import { createDeepAgent, HumanMessage, MemorySaver, } from "../imports";
|
|
3
|
-
import { getLLM } from "../helpers/llms";
|
|
3
|
+
import { getLLM } from "../helpers/llm/llms";
|
|
4
4
|
import { structure } from "../magic-funcs/parsers/structure";
|
|
5
5
|
import { buildMcpClient, buildMcpPromptBlock } from "./tools/MCP";
|
|
6
6
|
import { createResumeCommand, expandResumeDecisions, getPendingInterruptCount, mapInterruptOnToNative, mapResultToInterrupt, } from "../helpers/deepagent/interruptOn";
|
|
@@ -81,8 +81,9 @@ export class DeepAgent {
|
|
|
81
81
|
name;
|
|
82
82
|
contextSchema;
|
|
83
83
|
mcpServer;
|
|
84
|
+
describe;
|
|
84
85
|
should_use_output = true;
|
|
85
|
-
constructor({ prompt = `Du bist ein hilfreicher Deep Agent.`, llm = getLLM({ provider: "openrouter", model: "openai/gpt-5.4-mini" }), tools = [], output, checkpointer = new MemorySaver(), agentsMd, subagents, backend, permissions, skills, middleware, interruptOn, store, name, contextSchema, mcpServer, } = {}) {
|
|
86
|
+
constructor({ prompt = `Du bist ein hilfreicher Deep Agent.`, llm = getLLM({ provider: "openrouter", model: "openai/gpt-5.4-mini" }), tools = [], output, checkpointer = new MemorySaver(), agentsMd, subagents, backend, permissions, skills, middleware, interruptOn, store, name, contextSchema, mcpServer, describe, } = {}) {
|
|
86
87
|
this.prompt = typeof prompt === "string"
|
|
87
88
|
? [["system", prompt]]
|
|
88
89
|
: prompt.map((p) => ["system", p]);
|
|
@@ -101,6 +102,7 @@ export class DeepAgent {
|
|
|
101
102
|
this.name = name;
|
|
102
103
|
this.contextSchema = contextSchema;
|
|
103
104
|
this.mcpServer = mcpServer;
|
|
105
|
+
this.describe = describe;
|
|
104
106
|
}
|
|
105
107
|
static create(props) {
|
|
106
108
|
return new DeepAgent(props);
|
|
@@ -206,7 +208,7 @@ export class DeepAgent {
|
|
|
206
208
|
return this.mapInvokeResult(result);
|
|
207
209
|
}
|
|
208
210
|
async *runResumeStream(input) {
|
|
209
|
-
const { thread_id, context, decision, decisions, showToolCalls = false, mcpTools = [] } = input;
|
|
211
|
+
const { thread_id, context, decision, decisions, showToolCalls = false, showReasoning = false, showSubagents = false, mcpTools = [] } = input;
|
|
210
212
|
this.should_use_output = false;
|
|
211
213
|
const seenToolStarts = new Set();
|
|
212
214
|
try {
|
|
@@ -221,6 +223,8 @@ export class DeepAgent {
|
|
|
221
223
|
for (const mapped of mapNativeStreamChunk(chunk, {
|
|
222
224
|
interruptOn: true,
|
|
223
225
|
showToolCalls,
|
|
226
|
+
showReasoning,
|
|
227
|
+
showSubagents,
|
|
224
228
|
seenToolStarts,
|
|
225
229
|
})) {
|
|
226
230
|
if (typeof mapped === "object" && mapped !== null && mapped.kind === "interrupt") {
|
|
@@ -235,7 +239,7 @@ export class DeepAgent {
|
|
|
235
239
|
this.should_use_output = true;
|
|
236
240
|
}
|
|
237
241
|
}
|
|
238
|
-
async *runNativeStream(agent, input, config, showToolCalls) {
|
|
242
|
+
async *runNativeStream(agent, input, config, showToolCalls, showReasoning, showSubagents) {
|
|
239
243
|
const streamMode = this.interruptOn || showToolCalls
|
|
240
244
|
? ["messages", "updates"]
|
|
241
245
|
: "messages";
|
|
@@ -245,6 +249,8 @@ export class DeepAgent {
|
|
|
245
249
|
for (const mapped of mapNativeStreamChunk(chunk, {
|
|
246
250
|
interruptOn: Boolean(this.interruptOn),
|
|
247
251
|
showToolCalls,
|
|
252
|
+
showReasoning,
|
|
253
|
+
showSubagents,
|
|
248
254
|
seenToolStarts,
|
|
249
255
|
})) {
|
|
250
256
|
if (typeof mapped === "object" && mapped !== null && mapped.kind === "interrupt") {
|
|
@@ -290,7 +296,7 @@ export class DeepAgent {
|
|
|
290
296
|
}
|
|
291
297
|
}
|
|
292
298
|
async *stream(invokeInput) {
|
|
293
|
-
const { thread_id, decision, decisions, context, promptVars, showToolCalls, ...variables } = invokeInput;
|
|
299
|
+
const { thread_id, decision, decisions, context, promptVars, showToolCalls, showReasoning, showSubagents, ...variables } = invokeInput;
|
|
294
300
|
const isResume = decision !== undefined || decisions !== undefined;
|
|
295
301
|
this.should_use_output = false;
|
|
296
302
|
const mcpClient = buildMcpClient(this.mcpServer);
|
|
@@ -304,6 +310,8 @@ export class DeepAgent {
|
|
|
304
310
|
decision,
|
|
305
311
|
decisions,
|
|
306
312
|
showToolCalls: showToolCalls === true,
|
|
313
|
+
showReasoning: showReasoning === true,
|
|
314
|
+
showSubagents: showSubagents === true,
|
|
307
315
|
mcpTools,
|
|
308
316
|
});
|
|
309
317
|
return;
|
|
@@ -317,7 +325,7 @@ export class DeepAgent {
|
|
|
317
325
|
const systemPrompt = this.systemPromptWithMcp(resolvedPrompt);
|
|
318
326
|
const agent = await this.ensureAgent(systemPrompt, mcpTools);
|
|
319
327
|
const config = this.buildConfig(thread_id, context);
|
|
320
|
-
yield* this.runNativeStream(agent, { messages: humanMessages }, config, showToolCalls === true);
|
|
328
|
+
yield* this.runNativeStream(agent, { messages: humanMessages }, config, showToolCalls === true, showReasoning === true, showSubagents === true);
|
|
321
329
|
}
|
|
322
330
|
finally {
|
|
323
331
|
this.should_use_output = true;
|