@delofarag/ai-utils 1.7.2 → 1.8.1

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 (108) hide show
  1. package/README.md +32 -44
  2. package/dist/heart/agent.d.ts +17 -2
  3. package/dist/heart/agent.d.ts.map +1 -1
  4. package/dist/heart/agent.js +49 -24
  5. package/dist/heart/agent.js.map +1 -1
  6. package/dist/heart/chain.d.ts +15 -0
  7. package/dist/heart/chain.d.ts.map +1 -1
  8. package/dist/heart/chain.js +28 -1
  9. package/dist/heart/chain.js.map +1 -1
  10. package/dist/heart/deepAgent.d.ts +20 -4
  11. package/dist/heart/deepAgent.d.ts.map +1 -1
  12. package/dist/heart/deepAgent.js +84 -50
  13. package/dist/heart/deepAgent.js.map +1 -1
  14. package/dist/heart/tools/MCP.d.ts +45 -0
  15. package/dist/heart/tools/MCP.d.ts.map +1 -0
  16. package/dist/heart/tools/MCP.js +51 -0
  17. package/dist/heart/tools/MCP.js.map +1 -0
  18. package/dist/helpers/deepagent/backend.d.ts +1 -4
  19. package/dist/helpers/deepagent/backend.d.ts.map +1 -1
  20. package/dist/helpers/deepagent/backend.js.map +1 -1
  21. package/dist/helpers/deepagent/interruptTypes.d.ts +7 -1
  22. package/dist/helpers/deepagent/interruptTypes.d.ts.map +1 -1
  23. package/dist/helpers/deepagent/streamEvents.d.ts +4 -2
  24. package/dist/helpers/deepagent/streamEvents.d.ts.map +1 -1
  25. package/dist/helpers/deepagent/streamEvents.js +15 -0
  26. package/dist/helpers/deepagent/streamEvents.js.map +1 -1
  27. package/dist/helpers/{cli-llms.d.ts → llm/cli-llms.d.ts} +2 -2
  28. package/dist/helpers/llm/cli-llms.d.ts.map +1 -0
  29. package/dist/helpers/{cli-llms.js → llm/cli-llms.js} +1 -1
  30. package/dist/helpers/llm/cli-llms.js.map +1 -0
  31. package/dist/helpers/llm/free-llm.d.ts +92 -0
  32. package/dist/helpers/llm/free-llm.d.ts.map +1 -0
  33. package/dist/helpers/llm/free-llm.js +219 -0
  34. package/dist/helpers/llm/free-llm.js.map +1 -0
  35. package/dist/helpers/llm/llms.d.ts +28 -0
  36. package/dist/helpers/llm/llms.d.ts.map +1 -0
  37. package/dist/helpers/{llms.js → llm/llms.js} +11 -45
  38. package/dist/helpers/llm/llms.js.map +1 -0
  39. package/dist/helpers/llm/types.d.ts +82 -0
  40. package/dist/helpers/llm/types.d.ts.map +1 -0
  41. package/dist/helpers/llm/types.js +2 -0
  42. package/dist/helpers/llm/types.js.map +1 -0
  43. package/dist/helpers/memory.js +1 -1
  44. package/dist/helpers/memory.js.map +1 -1
  45. package/dist/imports.d.ts +1 -1
  46. package/dist/imports.d.ts.map +1 -1
  47. package/dist/imports.js +1 -1
  48. package/dist/imports.js.map +1 -1
  49. package/dist/index.d.ts +4 -5
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +3 -4
  52. package/dist/index.js.map +1 -1
  53. package/dist/magic-funcs/answerers/ask.js +1 -1
  54. package/dist/magic-funcs/answerers/ask.js.map +1 -1
  55. package/dist/magic-funcs/evaluators/classify.js +1 -1
  56. package/dist/magic-funcs/evaluators/classify.js.map +1 -1
  57. package/dist/magic-funcs/evaluators/decide.js +1 -1
  58. package/dist/magic-funcs/evaluators/decide.js.map +1 -1
  59. package/dist/magic-funcs/optimizers/promptify.js +1 -1
  60. package/dist/magic-funcs/optimizers/promptify.js.map +1 -1
  61. package/dist/magic-funcs/optimizers/ragify.js +1 -1
  62. package/dist/magic-funcs/optimizers/ragify.js.map +1 -1
  63. package/dist/magic-funcs/parsers/extract.js +1 -1
  64. package/dist/magic-funcs/parsers/extract.js.map +1 -1
  65. package/dist/magic-funcs/parsers/rewrite.js +1 -1
  66. package/dist/magic-funcs/parsers/rewrite.js.map +1 -1
  67. package/dist/magic-funcs/parsers/structure.js +1 -1
  68. package/dist/magic-funcs/parsers/structure.js.map +1 -1
  69. package/dist/magic-funcs/parsers/summarize.js +1 -1
  70. package/dist/magic-funcs/parsers/summarize.js.map +1 -1
  71. package/dist/modalities/image-gen/generateImages.d.ts +5 -3
  72. package/dist/modalities/image-gen/generateImages.d.ts.map +1 -1
  73. package/dist/modalities/image-gen/generateImages.js +5 -5
  74. package/dist/modalities/image-gen/generateImages.js.map +1 -1
  75. package/dist/modalities/image-gen/helpers.d.ts +1 -1
  76. package/dist/modalities/image-gen/helpers.d.ts.map +1 -1
  77. package/dist/modalities/openrouter.d.ts +1 -1
  78. package/dist/modalities/openrouter.d.ts.map +1 -1
  79. package/dist/modalities/vision/vision.d.ts +5 -3
  80. package/dist/modalities/vision/vision.d.ts.map +1 -1
  81. package/dist/modalities/vision/vision.js +4 -5
  82. package/dist/modalities/vision/vision.js.map +1 -1
  83. package/package.json +1 -1
  84. package/dist/helpers/cli-llms.d.ts.map +0 -1
  85. package/dist/helpers/cli-llms.js.map +0 -1
  86. package/dist/helpers/llms.d.ts +0 -135
  87. package/dist/helpers/llms.d.ts.map +0 -1
  88. package/dist/helpers/llms.js.map +0 -1
  89. package/dist/modalities/speech/VoiceEngine.d.ts +0 -3
  90. package/dist/modalities/speech/VoiceEngine.d.ts.map +0 -1
  91. package/dist/modalities/speech/VoiceEngine.js +0 -3
  92. package/dist/modalities/speech/VoiceEngine.js.map +0 -1
  93. package/dist/modalities/speech/stt/helpers.d.ts +0 -3
  94. package/dist/modalities/speech/stt/helpers.d.ts.map +0 -1
  95. package/dist/modalities/speech/stt/helpers.js +0 -28
  96. package/dist/modalities/speech/stt/helpers.js.map +0 -1
  97. package/dist/modalities/speech/stt/stt.d.ts +0 -113
  98. package/dist/modalities/speech/stt/stt.d.ts.map +0 -1
  99. package/dist/modalities/speech/stt/stt.js +0 -177
  100. package/dist/modalities/speech/stt/stt.js.map +0 -1
  101. package/dist/modalities/speech/tts/helpers.d.ts +0 -12
  102. package/dist/modalities/speech/tts/helpers.d.ts.map +0 -1
  103. package/dist/modalities/speech/tts/helpers.js +0 -10
  104. package/dist/modalities/speech/tts/helpers.js.map +0 -1
  105. package/dist/modalities/speech/tts/tts.d.ts +0 -115
  106. package/dist/modalities/speech/tts/tts.d.ts.map +0 -1
  107. package/dist/modalities/speech/tts/tts.js +0 -142
  108. package/dist/modalities/speech/tts/tts.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-llms.js","sourceRoot":"","sources":["../../../src/helpers/llm/cli-llms.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ import { ChatOpenAI, BaseMessage, ChatGenerationChunk, type ChatResult, type CallbackManagerForLLMRun } from "../../imports";
2
+ export declare const OPENROUTER_BASE_URL = "https://openrouter.ai/api/v1";
3
+ export declare const OPENROUTER_EU_BASE_URL = "https://eu.openrouter.ai/api/v1";
4
+ /**
5
+ * dataSafe-Routing im Request-Body (`provider` wie in der OpenRouter-Doku:
6
+ * `data_collection`/`zdr` INNERHALB von `provider`). LangChain `ChatOpenAI`
7
+ * reicht `modelKwargs` unverändert an die Chat-Completions-API durch.
8
+ */
9
+ export declare const OPENROUTER_DATA_SAFE_KWARGS: {
10
+ readonly provider: {
11
+ readonly data_collection: "deny";
12
+ readonly zdr: true;
13
+ readonly allow_fallbacks: false;
14
+ };
15
+ };
16
+ /**
17
+ * Holt das beste kostenlose Model von OpenRouter — Doppel-Ranking aus
18
+ * Intelligenz UND Latenz.
19
+ *
20
+ * Zwei parallele Queries (`max_price=0` + `supported_parameters=tools`, einmal
21
+ * `sort=intelligence-high-to-low`, einmal `sort=latency-low-to-high`), dann
22
+ * gewinnt die kleinste Rang-Summe: so schlau wie möglich, ohne bei einem
23
+ * lahmen 550B-Reasoning-Brocken zu landen, der pro Antwort ewig "nachdenkt".
24
+ * Kein Test-Request — tote Kandidaten fängt das Self-Healing der Instanz ab.
25
+ */
26
+ export declare function fetchBestFreeModel(baseURL?: string): Promise<string>;
27
+ /**
28
+ * OpenRouter-Limits für :free-Models (Stand 2026-07, docs/api/reference/limits):
29
+ * 20 Requests/Minute; 50 Requests/Tag (unter 10 lifetime gekauften Credits)
30
+ * bzw. 1000 Requests/Tag (ab 10 Credits). Beide Limits gelten ACCOUNT-WEIT über
31
+ * alle :free-Models hinweg — ein Model-Wechsel hilft also nicht, deshalb wird
32
+ * bei diesem Fehler bewusst NICHT geheilt, sondern gezielt filterbar geworfen:
33
+ *
34
+ * ```ts
35
+ * try { await llm.invoke(msgs) }
36
+ * catch (e) {
37
+ * if (e instanceof FreeLimitError && e.scope === "day") {
38
+ * show("Sie haben Ihre Free-Requests für heute verbraucht.")
39
+ * }
40
+ * }
41
+ * ```
42
+ */
43
+ export declare class FreeLimitError extends Error {
44
+ /** Stabil filterbar — überlebt im Gegensatz zu instanceof auch JSON-Serialisierung Richtung Frontend. */
45
+ readonly code = "FREE_LIMIT_EXCEEDED";
46
+ /** "day" = Tageskontingent verbraucht, "minute" = 20-Requests/min-Limit, "unknown" = 429 ohne klare Zuordnung. */
47
+ readonly scope: "day" | "minute" | "unknown";
48
+ /** Sekunden bis zum Retry (aus dem Retry-After-Header, falls der Server ihn mitschickt). */
49
+ readonly retryAfterSeconds?: number;
50
+ /** Das :free-Model, mit dem der Request lief. */
51
+ readonly model: string;
52
+ constructor(message: string, opts: {
53
+ scope: "day" | "minute" | "unknown";
54
+ model: string;
55
+ retryAfterSeconds?: number;
56
+ });
57
+ }
58
+ /**
59
+ * Übersetzt ein 429-Rate-Limit von OpenRouter in einen FreeLimitError; alles
60
+ * andere → null. Die scope-Erkennung hängt an OpenRouters Fehlertext
61
+ * ("free-models-per-day" / "free-models-per-min") und fällt sonst auf
62
+ * "unknown" zurück. Exportiert, damit man auch anderweitig gefangene
63
+ * Roh-Fehler nachklassifizieren kann.
64
+ */
65
+ export declare function toFreeLimitError(error: unknown, model: string): FreeLimitError | null;
66
+ /**
67
+ * ChatOpenAI gegen OpenRouter, festgenagelt auf das beste :free-Model.
68
+ *
69
+ * Self-Healing: Verschwindet das Model oder ist es nicht mehr gratis, wird es
70
+ * ausgeschlossen, das nächstbeste :free-Model geholt, `this.model` getauscht
71
+ * und der Request transparent wiederholt (max. 3-mal, dann fliegt der Error).
72
+ * Das aktive Model ist jederzeit über `.model` ablesbar.
73
+ */
74
+ export declare class FreeOpenRouterLLM extends ChatOpenAI {
75
+ provider: "openrouter";
76
+ private readonly freeBaseURL;
77
+ constructor(fields: {
78
+ model: string;
79
+ apiKey?: string;
80
+ baseURL: string;
81
+ modelKwargs?: Record<string, unknown>;
82
+ });
83
+ private heal;
84
+ _generate(messages: BaseMessage[], options: this["ParsedCallOptions"], runManager?: CallbackManagerForLLMRun): Promise<ChatResult>;
85
+ _streamResponseChunks(messages: BaseMessage[], options: this["ParsedCallOptions"], runManager?: CallbackManagerForLLMRun): AsyncGenerator<ChatGenerationChunk>;
86
+ }
87
+ /** Async-Pfad von `getLLM({ provider: "openrouter", free: true })`. */
88
+ export declare function getFreeOpenRouterLLM(config: {
89
+ apikey?: string;
90
+ dataSafe?: boolean;
91
+ }): Promise<FreeOpenRouterLLM>;
92
+ //# sourceMappingURL=free-llm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"free-llm.d.ts","sourceRoot":"","sources":["../../../src/helpers/llm/free-llm.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,KAAK,UAAU,EACf,KAAK,wBAAwB,EAC9B,MAAM,eAAe,CAAA;AAEtB,eAAO,MAAM,mBAAmB,iCAAiC,CAAA;AACjE,eAAO,MAAM,sBAAsB,oCAAoC,CAAA;AAEvE;;;;GAIG;AACH,eAAO,MAAM,2BAA2B;;;;;;CAM9B,CAAA;AAuBV;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,GAAE,MAA4B,GAAG,OAAO,CAAC,MAAM,CAAC,CAuB/F;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC,yGAAyG;IACzG,QAAQ,CAAC,IAAI,yBAAwB;IACrC,kHAAkH;IAClH,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAA;IAC5C,4FAA4F;IAC5F,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IACnC,iDAAiD;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;gBAEV,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAE;CAStH;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CA6BrF;AAmBD;;;;;;;GAOG;AACH,qBAAa,iBAAkB,SAAQ,UAAU;IAC/C,QAAQ,EAAE,YAAY,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;gBAExB,MAAM,EAAE;QAClB,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KACtC;YAUa,IAAI;IAKZ,SAAS,CACb,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAClC,UAAU,CAAC,EAAE,wBAAwB,GACpC,OAAO,CAAC,UAAU,CAAC;IAef,qBAAqB,CAC1B,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAClC,UAAU,CAAC,EAAE,wBAAwB,GACpC,cAAc,CAAC,mBAAmB,CAAC;CAqBvC;AAED,uEAAuE;AACvE,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IACjD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAU7B"}
@@ -0,0 +1,219 @@
1
+ import { ChatOpenAI, } from "../../imports";
2
+ export const OPENROUTER_BASE_URL = "https://openrouter.ai/api/v1";
3
+ export const OPENROUTER_EU_BASE_URL = "https://eu.openrouter.ai/api/v1";
4
+ /**
5
+ * dataSafe-Routing im Request-Body (`provider` wie in der OpenRouter-Doku:
6
+ * `data_collection`/`zdr` INNERHALB von `provider`). LangChain `ChatOpenAI`
7
+ * reicht `modelKwargs` unverändert an die Chat-Completions-API durch.
8
+ */
9
+ export const OPENROUTER_DATA_SAFE_KWARGS = {
10
+ provider: {
11
+ data_collection: "deny",
12
+ zdr: true,
13
+ allow_fallbacks: false,
14
+ },
15
+ };
16
+ /**
17
+ * Models, die zur Laufzeit mit einem "gibt es nicht mehr / nicht mehr gratis"-Error
18
+ * gescheitert sind. Werden bei der Neuauswahl übersprungen (Lebensdauer: Prozess).
19
+ */
20
+ const excludedFreeModels = new Set();
21
+ /** Ein Ranking der :free-Models mit Tool-Support, sortiert nach `sort`. */
22
+ async function fetchFreeRanking(baseURL, sort) {
23
+ const res = await fetch(`${baseURL}/models?max_price=0&supported_parameters=tools&sort=${sort}`);
24
+ if (!res.ok) {
25
+ throw new Error(`OpenRouter models request failed: ${res.status} ${res.statusText}`);
26
+ }
27
+ const body = (await res.json());
28
+ // Client-seitig aufs :free-Suffix gefiltert, weil max_price=0 vereinzelt
29
+ // auch Promo-Modelle ohne Suffix listet.
30
+ return (body.data ?? [])
31
+ .map((model) => model.id ?? "")
32
+ .filter((id) => id.endsWith(":free"));
33
+ }
34
+ /**
35
+ * Holt das beste kostenlose Model von OpenRouter — Doppel-Ranking aus
36
+ * Intelligenz UND Latenz.
37
+ *
38
+ * Zwei parallele Queries (`max_price=0` + `supported_parameters=tools`, einmal
39
+ * `sort=intelligence-high-to-low`, einmal `sort=latency-low-to-high`), dann
40
+ * gewinnt die kleinste Rang-Summe: so schlau wie möglich, ohne bei einem
41
+ * lahmen 550B-Reasoning-Brocken zu landen, der pro Antwort ewig "nachdenkt".
42
+ * Kein Test-Request — tote Kandidaten fängt das Self-Healing der Instanz ab.
43
+ */
44
+ export async function fetchBestFreeModel(baseURL = OPENROUTER_BASE_URL) {
45
+ const [byIntelligence, byLatency] = await Promise.all([
46
+ fetchFreeRanking(baseURL, "intelligence-high-to-low"),
47
+ fetchFreeRanking(baseURL, "latency-low-to-high"),
48
+ ]);
49
+ // Fehlt ein Model in einem der Rankings, bekommt es dort den schlechtesten Rang.
50
+ const worstRank = Math.max(byIntelligence.length, byLatency.length);
51
+ const latencyRank = new Map(byLatency.map((id, rank) => [id, rank]));
52
+ const ranked = byIntelligence
53
+ .map((id, intelligenceRank) => ({
54
+ id,
55
+ score: intelligenceRank + (latencyRank.get(id) ?? worstRank),
56
+ }))
57
+ .sort((a, b) => a.score - b.score);
58
+ // Sind alle Kandidaten ausgeschlossen, lieber den besten erneut versuchen als hart failen.
59
+ const pick = ranked.find((candidate) => !excludedFreeModels.has(candidate.id))?.id ?? ranked[0]?.id;
60
+ if (!pick) {
61
+ throw new Error("No :free model with tool support available on OpenRouter right now");
62
+ }
63
+ return pick;
64
+ }
65
+ /**
66
+ * OpenRouter-Limits für :free-Models (Stand 2026-07, docs/api/reference/limits):
67
+ * 20 Requests/Minute; 50 Requests/Tag (unter 10 lifetime gekauften Credits)
68
+ * bzw. 1000 Requests/Tag (ab 10 Credits). Beide Limits gelten ACCOUNT-WEIT über
69
+ * alle :free-Models hinweg — ein Model-Wechsel hilft also nicht, deshalb wird
70
+ * bei diesem Fehler bewusst NICHT geheilt, sondern gezielt filterbar geworfen:
71
+ *
72
+ * ```ts
73
+ * try { await llm.invoke(msgs) }
74
+ * catch (e) {
75
+ * if (e instanceof FreeLimitError && e.scope === "day") {
76
+ * show("Sie haben Ihre Free-Requests für heute verbraucht.")
77
+ * }
78
+ * }
79
+ * ```
80
+ */
81
+ export class FreeLimitError extends Error {
82
+ /** Stabil filterbar — überlebt im Gegensatz zu instanceof auch JSON-Serialisierung Richtung Frontend. */
83
+ code = "FREE_LIMIT_EXCEEDED";
84
+ /** "day" = Tageskontingent verbraucht, "minute" = 20-Requests/min-Limit, "unknown" = 429 ohne klare Zuordnung. */
85
+ scope;
86
+ /** Sekunden bis zum Retry (aus dem Retry-After-Header, falls der Server ihn mitschickt). */
87
+ retryAfterSeconds;
88
+ /** Das :free-Model, mit dem der Request lief. */
89
+ model;
90
+ constructor(message, opts) {
91
+ super(message);
92
+ this.name = "FreeLimitError";
93
+ this.scope = opts.scope;
94
+ this.model = opts.model;
95
+ this.retryAfterSeconds = opts.retryAfterSeconds;
96
+ // instanceof bleibt auch nach Transpilation/Bundling korrekt:
97
+ Object.setPrototypeOf(this, new.target.prototype);
98
+ }
99
+ }
100
+ /**
101
+ * Übersetzt ein 429-Rate-Limit von OpenRouter in einen FreeLimitError; alles
102
+ * andere → null. Die scope-Erkennung hängt an OpenRouters Fehlertext
103
+ * ("free-models-per-day" / "free-models-per-min") und fällt sonst auf
104
+ * "unknown" zurück. Exportiert, damit man auch anderweitig gefangene
105
+ * Roh-Fehler nachklassifizieren kann.
106
+ */
107
+ export function toFreeLimitError(error, model) {
108
+ const err = error;
109
+ const status = err?.status ?? err?.code;
110
+ if (status !== 429)
111
+ return null;
112
+ const message = String(err?.error?.message ?? err?.message ?? "Rate limit exceeded");
113
+ const scope = /per.?day|daily/i.test(message)
114
+ ? "day"
115
+ : /per.?min|minute/i.test(message)
116
+ ? "minute"
117
+ : "unknown";
118
+ // OpenAI-SDK-Errors tragen die Response-Header mal als Headers-Objekt, mal als Record.
119
+ const rawRetryAfter = typeof err?.headers?.get === "function"
120
+ ? err.headers.get("retry-after")
121
+ : err?.headers?.["retry-after"];
122
+ const parsedRetryAfter = Number(rawRetryAfter);
123
+ const retryAfterSeconds = Number.isFinite(parsedRetryAfter) && parsedRetryAfter > 0 ? parsedRetryAfter : undefined;
124
+ return new FreeLimitError(message, { scope, model, retryAfterSeconds });
125
+ }
126
+ /**
127
+ * Erkennt "Model ist weg oder nicht mehr gratis"-Errors (400 invalid model id,
128
+ * 402 credits nötig, 403/404 kein Zugriff/keine Endpoints). Bewusst NICHT dabei:
129
+ * 429 Rate-Limit (→ FreeLimitError, Model-Wechsel hilft da nicht) und Auth-Fehler.
130
+ */
131
+ function isModelGoneError(error) {
132
+ const err = error;
133
+ const status = err?.status ?? err?.code;
134
+ const message = String(err?.message ?? "");
135
+ if (status === 402 || status === 404)
136
+ return true;
137
+ if ((status === 400 || status === 403) && /model/i.test(message))
138
+ return true;
139
+ return /not a valid model id|no endpoints found/i.test(message);
140
+ }
141
+ const MAX_HEALS_PER_CALL = 3;
142
+ /**
143
+ * ChatOpenAI gegen OpenRouter, festgenagelt auf das beste :free-Model.
144
+ *
145
+ * Self-Healing: Verschwindet das Model oder ist es nicht mehr gratis, wird es
146
+ * ausgeschlossen, das nächstbeste :free-Model geholt, `this.model` getauscht
147
+ * und der Request transparent wiederholt (max. 3-mal, dann fliegt der Error).
148
+ * Das aktive Model ist jederzeit über `.model` ablesbar.
149
+ */
150
+ export class FreeOpenRouterLLM extends ChatOpenAI {
151
+ provider = "openrouter";
152
+ freeBaseURL;
153
+ constructor(fields) {
154
+ super({
155
+ model: fields.model,
156
+ apiKey: fields.apiKey,
157
+ configuration: { baseURL: fields.baseURL },
158
+ ...(fields.modelKwargs ? { modelKwargs: fields.modelKwargs } : {}),
159
+ });
160
+ this.freeBaseURL = fields.baseURL;
161
+ }
162
+ async heal() {
163
+ excludedFreeModels.add(this.model);
164
+ this.model = await fetchBestFreeModel(this.freeBaseURL);
165
+ }
166
+ async _generate(messages, options, runManager) {
167
+ let heals = 0;
168
+ while (true) {
169
+ try {
170
+ return await super._generate(messages, options, runManager);
171
+ }
172
+ catch (error) {
173
+ const limitError = toFreeLimitError(error, this.model);
174
+ if (limitError)
175
+ throw limitError;
176
+ if (!isModelGoneError(error) || heals >= MAX_HEALS_PER_CALL)
177
+ throw error;
178
+ heals++;
179
+ await this.heal();
180
+ }
181
+ }
182
+ }
183
+ async *_streamResponseChunks(messages, options, runManager) {
184
+ let heals = 0;
185
+ while (true) {
186
+ // Nur heilen, solange noch kein Chunk beim Aufrufer ist — danach wäre ein
187
+ // Neustart des Streams eine stille Duplizierung von Output.
188
+ let yielded = false;
189
+ try {
190
+ for await (const chunk of super._streamResponseChunks(messages, options, runManager)) {
191
+ yielded = true;
192
+ yield chunk;
193
+ }
194
+ return;
195
+ }
196
+ catch (error) {
197
+ const limitError = toFreeLimitError(error, this.model);
198
+ if (limitError)
199
+ throw limitError;
200
+ if (yielded || !isModelGoneError(error) || heals >= MAX_HEALS_PER_CALL)
201
+ throw error;
202
+ heals++;
203
+ await this.heal();
204
+ }
205
+ }
206
+ }
207
+ }
208
+ /** Async-Pfad von `getLLM({ provider: "openrouter", free: true })`. */
209
+ export async function getFreeOpenRouterLLM(config) {
210
+ const baseURL = config.dataSafe ? OPENROUTER_EU_BASE_URL : OPENROUTER_BASE_URL;
211
+ const model = await fetchBestFreeModel(baseURL);
212
+ return new FreeOpenRouterLLM({
213
+ model,
214
+ apiKey: config.apikey ?? process.env.OPENROUTER_API_KEY,
215
+ baseURL,
216
+ ...(config.dataSafe ? { modelKwargs: OPENROUTER_DATA_SAFE_KWARGS } : {}),
217
+ });
218
+ }
219
+ //# sourceMappingURL=free-llm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"free-llm.js","sourceRoot":"","sources":["../../../src/helpers/llm/free-llm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { ClaudeCLI_LLM, OpenAICLI_LLM } from "./cli-llms";
2
+ import { FreeOpenRouterLLM } from "./free-llm";
3
+ import type { GroqLLMConfig, OpenRouterLLMConfig, OpenRouterFreeLLMConfig, LocalLLMConfig, ClaudeCLILLMConfig, OpenAICLILLMConfig, GroqLLM, OpenRouterLLM, LocalLLM } from "./types";
4
+ export * from "./types";
5
+ export { FreeOpenRouterLLM, fetchBestFreeModel, FreeLimitError, toFreeLimitError } from "./free-llm";
6
+ /**
7
+ * `free: true` (nur openrouter): holt live das beste kostenlose `:free`-Model
8
+ * mit Tool-Support (Doppel-Ranking: Intelligenz + Latenz) und gibt deshalb ein
9
+ * Promise zurück — `await getLLM(...)`. Das gewählte Model ist über `.model` ablesbar.
10
+ */
11
+ export declare function getLLM(config: OpenRouterFreeLLMConfig): Promise<FreeOpenRouterLLM>;
12
+ /**
13
+ * env-var for openrouter: process.env.OPENROUTER_API_KEY
14
+ *
15
+ * env-var for chatgroq: process.env.CHATGROQ_API_KEY
16
+ *
17
+ * default llm for chatgroq: "llama-3.3-70b-versatile"
18
+ *
19
+ * default llm for openrouter: "openai/gpt-5.4-mini"
20
+ *
21
+ * default llm for local: "nvidia/nemotron-3-nano-4b"
22
+ *
23
+ * provider "claude-cli": nutzt die eingeloggte `claude -p` CLI als reines LLM (Default-Model "claude-opus-4-8")
24
+ *
25
+ * provider "openai-cli": nutzt `codex exec` als reines LLM (Default-Model "gpt-5.5"; CLI muss installiert sein)
26
+ */
27
+ export declare function getLLM(config: GroqLLMConfig | OpenRouterLLMConfig | LocalLLMConfig | ClaudeCLILLMConfig | OpenAICLILLMConfig): GroqLLM | OpenRouterLLM | LocalLLM | ClaudeCLI_LLM | OpenAICLI_LLM;
28
+ //# sourceMappingURL=llms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llms.d.ts","sourceRoot":"","sources":["../../../src/helpers/llm/llms.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EACL,iBAAiB,EAKlB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAEV,aAAa,EACb,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,OAAO,EACP,aAAa,EACb,QAAQ,EACT,MAAM,SAAS,CAAC;AAEjB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAErG;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;AACnF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,MAAM,CACpB,MAAM,EAAE,aAAa,GAAG,mBAAmB,GAAG,cAAc,GAAG,kBAAkB,GAAG,kBAAkB,GACrG,OAAO,GAAG,aAAa,GAAG,QAAQ,GAAG,aAAa,GAAG,aAAa,CAAA"}
@@ -1,63 +1,29 @@
1
- import { ChatGroq, ChatOpenAI } from "../imports";
1
+ import { ChatGroq, ChatOpenAI } from "../../imports";
2
2
  import { ClaudeCLI_LLM, OpenAICLI_LLM } from "./cli-llms";
3
- /**
4
- * env-var for openrouter: process.env.OPENROUTER_API_KEY
5
- *
6
- * env-var for chatgroq: process.env.CHATGROQ_API_KEY
7
- *
8
- * default llm for chatgroq: "llama-3.3-70b-versatile"
9
- *
10
- * default llm for openrouter: "openai/gpt-5.4-mini"
11
- *
12
- * default llm for local: "nvidia/nemotron-3-nano-4b"
13
- *
14
- * provider "claude-cli": nutzt die eingeloggte `claude -p` CLI als reines LLM (Default-Model "claude-opus-4-8")
15
- *
16
- * provider "openai-cli": nutzt `codex exec` als reines LLM (Default-Model "gpt-5.5"; CLI muss installiert sein)
17
- */
3
+ import { getFreeOpenRouterLLM, OPENROUTER_BASE_URL, OPENROUTER_EU_BASE_URL, OPENROUTER_DATA_SAFE_KWARGS, } from "./free-llm";
4
+ export * from "./types";
5
+ export { FreeOpenRouterLLM, fetchBestFreeModel, FreeLimitError, toFreeLimitError } from "./free-llm";
18
6
  export function getLLM(config) {
19
- const type = config.type;
20
7
  switch (config.provider) {
21
8
  case "chatgroq": {
22
9
  const llm = new ChatGroq({
23
10
  apiKey: config.apikey ?? process.env.CHATGROQ_API_KEY,
24
- model: config.model ?? (type === "vision"
25
- ? "meta-llama/llama-4-scout-17b-16e-instruct"
26
- : type === "stt"
27
- ? "whisper-large-v3-turbo"
28
- : type === "tts"
29
- ? "canopylabs/orpheus-v1-english"
30
- : "llama-3.3-70b-versatile")
11
+ model: config.model ?? "llama-3.3-70b-versatile",
31
12
  });
32
13
  llm.provider = "chatgroq";
33
14
  return llm;
34
15
  }
35
16
  case "openrouter": {
17
+ if (config.free) {
18
+ return getFreeOpenRouterLLM(config);
19
+ }
36
20
  const llm = new ChatOpenAI({
37
21
  apiKey: config.apikey ?? process.env.OPENROUTER_API_KEY,
38
22
  configuration: {
39
- baseURL: config.dataSafe
40
- ? "https://eu.openrouter.ai/api/v1"
41
- : "https://openrouter.ai/api/v1",
23
+ baseURL: config.dataSafe ? OPENROUTER_EU_BASE_URL : OPENROUTER_BASE_URL,
42
24
  },
43
- model: config.model ?? (type === "image-gen"
44
- ? "google/gemini-3.1-flash-image-preview"
45
- : type === "stt"
46
- ? "google/gemini-2.5-flash"
47
- : type === "tts"
48
- ? "openai/gpt-4o-mini-tts-2025-12-15"
49
- : "openai/gpt-5.4-mini"),
50
- ...(config.dataSafe
51
- ? {
52
- modelKwargs: {
53
- provider: {
54
- data_collection: "deny",
55
- zdr: true,
56
- allow_fallbacks: false,
57
- },
58
- },
59
- }
60
- : {}),
25
+ model: config.model ?? "openai/gpt-5.4-mini",
26
+ ...(config.dataSafe ? { modelKwargs: OPENROUTER_DATA_SAFE_KWARGS } : {}),
61
27
  });
62
28
  llm.provider = "openrouter";
63
29
  return llm;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llms.js","sourceRoot":"","sources":["../../../src/helpers/llm/llms.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import type { ChatGroq, ChatOpenAI } from "../../imports";
2
+ import type { ClaudeCLIModel, OpenAICLIModel } from "./cli-llms";
3
+ export type Prettify<T> = {
4
+ [K in keyof T]: T[K];
5
+ } & {};
6
+ export type AutoComplete<T extends string> = T | (string & {});
7
+ /** Groq Cloud Chat-Completions (https://console.groq.com/docs/models): Production, Compound, Preview. */
8
+ export type ChatGroqModel = AutoComplete<"groq/compound" | "groq/compound-mini" | "llama-3.1-8b-instant" | "llama-3.3-70b-versatile" | "meta-llama/llama-4-scout-17b-16e-instruct" | "openai/gpt-oss-120b" | "openai/gpt-oss-20b" | "openai/gpt-oss-safeguard-20b" | "qwen/qwen3-32b">;
9
+ /**
10
+ * OpenRouter öffentliche /api/v1/models (2026-07). Ohne `:free`-Varianten —
11
+ * für kostenlose Modelle gibt es `free: true`, das dynamisch das beste wählt.
12
+ */
13
+ export type OpenRouterModel = AutoComplete<"anthropic/claude-haiku-4.5" | "anthropic/claude-opus-4" | "anthropic/claude-opus-4.1" | "anthropic/claude-opus-4.5" | "anthropic/claude-opus-4.6" | "anthropic/claude-opus-4.6-fast" | "anthropic/claude-opus-4.7" | "anthropic/claude-sonnet-4" | "anthropic/claude-sonnet-4.5" | "anthropic/claude-sonnet-4.6" | "arcee-ai/trinity-large-thinking" | "arcee-ai/trinity-mini" | "bytedance-seed/seed-2.0-lite" | "bytedance-seed/seed-2.0-mini" | "deepseek/deepseek-r1" | "deepseek/deepseek-r1-0528" | "deepseek/deepseek-r1-distill-llama-70b" | "deepseek/deepseek-r1-distill-qwen-32b" | "deepseek/deepseek-v3.1-terminus" | "deepseek/deepseek-v3.2" | "deepseek/deepseek-v3.2-exp" | "deepseek/deepseek-v3.2-speciale" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-image" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-lite-preview-09-2025" | "google/gemini-2.5-pro" | "google/gemini-2.5-pro-preview" | "google/gemini-2.5-pro-preview-05-06" | "google/gemini-3-flash-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3.1-flash-image-preview" | "google/gemini-3.1-flash-lite-preview" | "google/gemini-3.1-pro-preview" | "google/gemini-3.1-pro-preview-customtools" | "google/gemma-4-26b-a4b-it" | "google/gemma-4-31b-it" | "inception/mercury-2" | "liquid/lfm-2-24b-a2b" | "meta-llama/llama-3.3-70b-instruct" | "meta-llama/llama-4-maverick" | "meta-llama/llama-4-scout" | "meta-llama/llama-guard-4-12b" | "minimax/minimax-m2" | "minimax/minimax-m2-her" | "minimax/minimax-m2.1" | "minimax/minimax-m2.5" | "minimax/minimax-m2.7" | "mistralai/devstral-2512" | "mistralai/devstral-medium" | "mistralai/devstral-small" | "mistralai/mistral-large-2512" | "mistralai/mistral-small-2603" | "moonshotai/kimi-k2" | "moonshotai/kimi-k2-0905" | "moonshotai/kimi-k2-thinking" | "moonshotai/kimi-k2.5" | "nvidia/nemotron-3-nano-30b-a3b" | "nvidia/nemotron-3-super-120b-a12b" | "openai/gpt-4.1" | "openai/gpt-4.1-mini" | "openai/gpt-4.1-nano" | "openai/gpt-5" | "openai/gpt-5-chat" | "openai/gpt-5-codex" | "openai/gpt-5-image" | "openai/gpt-5-image-mini" | "openai/gpt-5-mini" | "openai/gpt-5-nano" | "openai/gpt-5-pro" | "openai/gpt-5.1" | "openai/gpt-5.1-chat" | "openai/gpt-5.1-codex" | "openai/gpt-5.1-codex-max" | "openai/gpt-5.1-codex-mini" | "openai/gpt-5.2" | "openai/gpt-5.2-chat" | "openai/gpt-5.2-codex" | "openai/gpt-5.2-pro" | "openai/gpt-5.3-chat" | "openai/gpt-5.3-codex" | "openai/gpt-5.4" | "openai/gpt-5.4-mini" | "openai/gpt-5.4-nano" | "openai/gpt-5.4-pro" | "openai/gpt-oss-120b" | "openai/gpt-oss-20b" | "openai/gpt-oss-safeguard-20b" | "qwen/qwen3-coder" | "qwen/qwen3-coder-30b-a3b-instruct" | "qwen/qwen3-coder-flash" | "qwen/qwen3-coder-next" | "qwen/qwen3-coder-plus" | "qwen/qwen3-max" | "qwen/qwen3-max-thinking" | "qwen/qwen3.5-122b-a10b" | "qwen/qwen3.5-27b" | "qwen/qwen3.5-35b-a3b" | "qwen/qwen3.5-397b-a17b" | "qwen/qwen3.5-9b" | "qwen/qwen3.5-flash-02-23" | "qwen/qwen3.5-plus-02-15" | "qwen/qwen3.6-plus" | "rekaai/reka-edge" | "xiaomi/mimo-v2-flash" | "xiaomi/mimo-v2-omni" | "xiaomi/mimo-v2-pro" | "z-ai/glm-5" | "z-ai/glm-5-turbo" | "z-ai/glm-5.1" | "z-ai/glm-5.2" | "z-ai/glm-5v-turbo">;
14
+ /** LM Studio Model-IDs (kurze Hub-Bezeichner, siehe GET /v1/models). */
15
+ export type LocalModel = AutoComplete<"google/gemma-4-12b-qat" | "nvidia/nemotron-3-nano-4b" | "google/gemma-4-e4b" | "igorls/gemma-4-12b-it-qat-unquantized-heretic">;
16
+ export type GroqLLMConfig = {
17
+ provider: "chatgroq";
18
+ model?: ChatGroqModel;
19
+ apikey?: string;
20
+ };
21
+ type OpenRouterConfigBase = {
22
+ provider: "openrouter";
23
+ apikey?: string;
24
+ /**
25
+ * Strengeres OpenRouter-Routing + EU-Endpunkt (`eu.openrouter.ai`) mit
26
+ * `data_collection: "deny"`, `zdr: true` und ohne Fallbacks.
27
+ */
28
+ dataSafe?: boolean;
29
+ };
30
+ export type OpenRouterLLMConfig = OpenRouterConfigBase & {
31
+ model?: OpenRouterModel;
32
+ free?: false;
33
+ };
34
+ export type OpenRouterFreeLLMConfig = OpenRouterConfigBase & {
35
+ /**
36
+ * `free: true` wählt dynamisch das beste aktuell kostenlose Model (`:free`)
37
+ * mit Tool-Support — getLLM wird dadurch async. Das gewählte Model steht auf
38
+ * `.model`; stirbt es, heilt sich die Instanz selbst (siehe free-llm.ts).
39
+ */
40
+ free: true;
41
+ model?: never;
42
+ };
43
+ export type LocalLLMConfig = {
44
+ provider: "local";
45
+ model?: LocalModel;
46
+ };
47
+ /**
48
+ * Headless-CLI-Provider: nutzen die eingeloggte CLI (`claude -p` / `codex exec`)
49
+ * als reines LangChain-Chat-Model (Abo-Auth, kein API-Key). Siehe `cli-llms.ts`.
50
+ */
51
+ type CLILLMConfigBase = {
52
+ /** System-Prompt; Default `""` (ersetzt den Coder-Default der CLI). */
53
+ systemPrompt?: string;
54
+ /** Arbeitsverzeichnis des Subprozesses; Default: neutrales Temp-Verzeichnis. */
55
+ cwd?: string;
56
+ /** Pfad/Name des CLI-Binaries (Default je Provider). */
57
+ cliPath?: string;
58
+ /** Zusätzliche CLI-Flags (Escape-Hatch). */
59
+ extraArgs?: string[];
60
+ /** Timeout in ms. */
61
+ timeoutMs?: number;
62
+ };
63
+ export type ClaudeCLILLMConfig = CLILLMConfigBase & {
64
+ provider: "claude-cli";
65
+ model?: ClaudeCLIModel;
66
+ };
67
+ export type OpenAICLILLMConfig = CLILLMConfigBase & {
68
+ provider: "openai-cli";
69
+ model?: OpenAICLIModel;
70
+ };
71
+ export type LLMConfig = GroqLLMConfig | OpenRouterLLMConfig | OpenRouterFreeLLMConfig | LocalLLMConfig | ClaudeCLILLMConfig | OpenAICLILLMConfig;
72
+ export type GroqLLM = ChatGroq & {
73
+ provider?: "chatgroq";
74
+ };
75
+ export type OpenRouterLLM = ChatOpenAI & {
76
+ provider?: "openrouter";
77
+ };
78
+ export type LocalLLM = ChatOpenAI & {
79
+ provider?: "local";
80
+ };
81
+ export {};
82
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/helpers/llm/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/helpers/llm/types.ts"],"names":[],"mappings":""}
@@ -1,5 +1,5 @@
1
1
  import { createSimpleChain } from "./helpers";
2
- import { getLLM } from "./llms";
2
+ import { getLLM } from "./llm/llms";
3
3
  import { BaseCheckpointSaver, HumanMessage, AIMessage, SystemMessage, StringOutputParser, ChatPromptTemplate } from "../imports";
4
4
  import { ToolMessage, } from "@langchain/core/messages";
5
5
  /** Nachrichten-Channel aus einem gespeicherten Checkpoint (meist `channel_values.messages`). */