@nodetool-ai/runtime 0.7.0-rc.11

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 (198) hide show
  1. package/dist/bridge-protocol.d.ts +39 -0
  2. package/dist/bridge-protocol.d.ts.map +1 -0
  3. package/dist/bridge-protocol.js +39 -0
  4. package/dist/bridge-protocol.js.map +1 -0
  5. package/dist/comfy-executor.d.ts +41 -0
  6. package/dist/comfy-executor.d.ts.map +1 -0
  7. package/dist/comfy-executor.js +305 -0
  8. package/dist/comfy-executor.js.map +1 -0
  9. package/dist/context-packer.d.ts +22 -0
  10. package/dist/context-packer.d.ts.map +1 -0
  11. package/dist/context-packer.js +66 -0
  12. package/dist/context-packer.js.map +1 -0
  13. package/dist/context.d.ts +405 -0
  14. package/dist/context.d.ts.map +1 -0
  15. package/dist/context.js +1455 -0
  16. package/dist/context.js.map +1 -0
  17. package/dist/index.d.ts +18 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +15 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/node-executor.d.ts +53 -0
  22. package/dist/node-executor.d.ts.map +1 -0
  23. package/dist/node-executor.js +9 -0
  24. package/dist/node-executor.js.map +1 -0
  25. package/dist/providers/aki-manifest.json +34 -0
  26. package/dist/providers/aki-provider.d.ts +65 -0
  27. package/dist/providers/aki-provider.d.ts.map +1 -0
  28. package/dist/providers/aki-provider.js +517 -0
  29. package/dist/providers/aki-provider.js.map +1 -0
  30. package/dist/providers/anthropic-provider.d.ts +55 -0
  31. package/dist/providers/anthropic-provider.d.ts.map +1 -0
  32. package/dist/providers/anthropic-provider.js +563 -0
  33. package/dist/providers/anthropic-provider.js.map +1 -0
  34. package/dist/providers/base-provider.d.ts +194 -0
  35. package/dist/providers/base-provider.d.ts.map +1 -0
  36. package/dist/providers/base-provider.js +515 -0
  37. package/dist/providers/base-provider.js.map +1 -0
  38. package/dist/providers/cerebras-provider.d.ts +20 -0
  39. package/dist/providers/cerebras-provider.d.ts.map +1 -0
  40. package/dist/providers/cerebras-provider.js +52 -0
  41. package/dist/providers/cerebras-provider.js.map +1 -0
  42. package/dist/providers/claude-agent-provider.d.ts +107 -0
  43. package/dist/providers/claude-agent-provider.d.ts.map +1 -0
  44. package/dist/providers/claude-agent-provider.js +586 -0
  45. package/dist/providers/claude-agent-provider.js.map +1 -0
  46. package/dist/providers/cohere-provider.d.ts +36 -0
  47. package/dist/providers/cohere-provider.d.ts.map +1 -0
  48. package/dist/providers/cohere-provider.js +116 -0
  49. package/dist/providers/cohere-provider.js.map +1 -0
  50. package/dist/providers/cost-calculator.d.ts +109 -0
  51. package/dist/providers/cost-calculator.d.ts.map +1 -0
  52. package/dist/providers/cost-calculator.js +475 -0
  53. package/dist/providers/cost-calculator.js.map +1 -0
  54. package/dist/providers/deepseek-provider.d.ts +25 -0
  55. package/dist/providers/deepseek-provider.d.ts.map +1 -0
  56. package/dist/providers/deepseek-provider.js +58 -0
  57. package/dist/providers/deepseek-provider.js.map +1 -0
  58. package/dist/providers/fake-provider.d.ts +52 -0
  59. package/dist/providers/fake-provider.d.ts.map +1 -0
  60. package/dist/providers/fake-provider.js +107 -0
  61. package/dist/providers/fake-provider.js.map +1 -0
  62. package/dist/providers/fal-provider.d.ts +32 -0
  63. package/dist/providers/fal-provider.d.ts.map +1 -0
  64. package/dist/providers/fal-provider.js +445 -0
  65. package/dist/providers/fal-provider.js.map +1 -0
  66. package/dist/providers/gemini-provider.d.ts +109 -0
  67. package/dist/providers/gemini-provider.d.ts.map +1 -0
  68. package/dist/providers/gemini-provider.js +943 -0
  69. package/dist/providers/gemini-provider.js.map +1 -0
  70. package/dist/providers/groq-provider.d.ts +20 -0
  71. package/dist/providers/groq-provider.d.ts.map +1 -0
  72. package/dist/providers/groq-provider.js +52 -0
  73. package/dist/providers/groq-provider.js.map +1 -0
  74. package/dist/providers/huggingface-provider.d.ts +59 -0
  75. package/dist/providers/huggingface-provider.d.ts.map +1 -0
  76. package/dist/providers/huggingface-provider.js +305 -0
  77. package/dist/providers/huggingface-provider.js.map +1 -0
  78. package/dist/providers/index.d.ts +69 -0
  79. package/dist/providers/index.d.ts.map +1 -0
  80. package/dist/providers/index.js +137 -0
  81. package/dist/providers/index.js.map +1 -0
  82. package/dist/providers/jina-provider.d.ts +37 -0
  83. package/dist/providers/jina-provider.d.ts.map +1 -0
  84. package/dist/providers/jina-provider.js +118 -0
  85. package/dist/providers/jina-provider.js.map +1 -0
  86. package/dist/providers/kie-provider.d.ts +19 -0
  87. package/dist/providers/kie-provider.d.ts.map +1 -0
  88. package/dist/providers/kie-provider.js +118 -0
  89. package/dist/providers/kie-provider.js.map +1 -0
  90. package/dist/providers/llama-provider.d.ts +49 -0
  91. package/dist/providers/llama-provider.d.ts.map +1 -0
  92. package/dist/providers/llama-provider.js +381 -0
  93. package/dist/providers/llama-provider.js.map +1 -0
  94. package/dist/providers/lmstudio-provider.d.ts +22 -0
  95. package/dist/providers/lmstudio-provider.d.ts.map +1 -0
  96. package/dist/providers/lmstudio-provider.js +63 -0
  97. package/dist/providers/lmstudio-provider.js.map +1 -0
  98. package/dist/providers/manifest-models.d.ts +12 -0
  99. package/dist/providers/manifest-models.d.ts.map +1 -0
  100. package/dist/providers/manifest-models.js +96 -0
  101. package/dist/providers/manifest-models.js.map +1 -0
  102. package/dist/providers/meshy-provider.d.ts +53 -0
  103. package/dist/providers/meshy-provider.d.ts.map +1 -0
  104. package/dist/providers/meshy-provider.js +230 -0
  105. package/dist/providers/meshy-provider.js.map +1 -0
  106. package/dist/providers/minimax-provider.d.ts +66 -0
  107. package/dist/providers/minimax-provider.d.ts.map +1 -0
  108. package/dist/providers/minimax-provider.js +531 -0
  109. package/dist/providers/minimax-provider.js.map +1 -0
  110. package/dist/providers/mistral-provider.d.ts +26 -0
  111. package/dist/providers/mistral-provider.d.ts.map +1 -0
  112. package/dist/providers/mistral-provider.js +74 -0
  113. package/dist/providers/mistral-provider.js.map +1 -0
  114. package/dist/providers/moonshot-provider.d.ts +24 -0
  115. package/dist/providers/moonshot-provider.d.ts.map +1 -0
  116. package/dist/providers/moonshot-provider.js +43 -0
  117. package/dist/providers/moonshot-provider.js.map +1 -0
  118. package/dist/providers/ollama-provider.d.ts +71 -0
  119. package/dist/providers/ollama-provider.d.ts.map +1 -0
  120. package/dist/providers/ollama-provider.js +480 -0
  121. package/dist/providers/ollama-provider.js.map +1 -0
  122. package/dist/providers/openai-provider.d.ts +103 -0
  123. package/dist/providers/openai-provider.d.ts.map +1 -0
  124. package/dist/providers/openai-provider.js +917 -0
  125. package/dist/providers/openai-provider.js.map +1 -0
  126. package/dist/providers/openrouter-provider.d.ts +49 -0
  127. package/dist/providers/openrouter-provider.d.ts.map +1 -0
  128. package/dist/providers/openrouter-provider.js +147 -0
  129. package/dist/providers/openrouter-provider.js.map +1 -0
  130. package/dist/providers/provider-registry.d.ts +24 -0
  131. package/dist/providers/provider-registry.d.ts.map +1 -0
  132. package/dist/providers/provider-registry.js +124 -0
  133. package/dist/providers/provider-registry.js.map +1 -0
  134. package/dist/providers/python-provider.d.ts +75 -0
  135. package/dist/providers/python-provider.d.ts.map +1 -0
  136. package/dist/providers/python-provider.js +157 -0
  137. package/dist/providers/python-provider.js.map +1 -0
  138. package/dist/providers/replicate-provider.d.ts +73 -0
  139. package/dist/providers/replicate-provider.d.ts.map +1 -0
  140. package/dist/providers/replicate-provider.js +484 -0
  141. package/dist/providers/replicate-provider.js.map +1 -0
  142. package/dist/providers/rodin-provider.d.ts +41 -0
  143. package/dist/providers/rodin-provider.d.ts.map +1 -0
  144. package/dist/providers/rodin-provider.js +236 -0
  145. package/dist/providers/rodin-provider.js.map +1 -0
  146. package/dist/providers/scripted-provider.d.ts +141 -0
  147. package/dist/providers/scripted-provider.d.ts.map +1 -0
  148. package/dist/providers/scripted-provider.js +246 -0
  149. package/dist/providers/scripted-provider.js.map +1 -0
  150. package/dist/providers/together-provider.d.ts +20 -0
  151. package/dist/providers/together-provider.d.ts.map +1 -0
  152. package/dist/providers/together-provider.js +56 -0
  153. package/dist/providers/together-provider.js.map +1 -0
  154. package/dist/providers/types.d.ts +202 -0
  155. package/dist/providers/types.d.ts.map +1 -0
  156. package/dist/providers/types.js +2 -0
  157. package/dist/providers/types.js.map +1 -0
  158. package/dist/providers/vllm-provider.d.ts +22 -0
  159. package/dist/providers/vllm-provider.d.ts.map +1 -0
  160. package/dist/providers/vllm-provider.js +66 -0
  161. package/dist/providers/vllm-provider.js.map +1 -0
  162. package/dist/providers/voyage-provider.d.ts +37 -0
  163. package/dist/providers/voyage-provider.d.ts.map +1 -0
  164. package/dist/providers/voyage-provider.js +124 -0
  165. package/dist/providers/voyage-provider.js.map +1 -0
  166. package/dist/providers/xai-provider.d.ts +24 -0
  167. package/dist/providers/xai-provider.d.ts.map +1 -0
  168. package/dist/providers/xai-provider.js +57 -0
  169. package/dist/providers/xai-provider.js.map +1 -0
  170. package/dist/python-bridge-types.d.ts +70 -0
  171. package/dist/python-bridge-types.d.ts.map +1 -0
  172. package/dist/python-bridge-types.js +2 -0
  173. package/dist/python-bridge-types.js.map +1 -0
  174. package/dist/python-node-executor.d.ts +20 -0
  175. package/dist/python-node-executor.d.ts.map +1 -0
  176. package/dist/python-node-executor.js +219 -0
  177. package/dist/python-node-executor.js.map +1 -0
  178. package/dist/python-stdio-bridge.d.ts +67 -0
  179. package/dist/python-stdio-bridge.d.ts.map +1 -0
  180. package/dist/python-stdio-bridge.js +704 -0
  181. package/dist/python-stdio-bridge.js.map +1 -0
  182. package/dist/recommended-models.d.ts +17 -0
  183. package/dist/recommended-models.d.ts.map +1 -0
  184. package/dist/recommended-models.js +139 -0
  185. package/dist/recommended-models.js.map +1 -0
  186. package/dist/telemetry.d.ts +61 -0
  187. package/dist/telemetry.d.ts.map +1 -0
  188. package/dist/telemetry.js +128 -0
  189. package/dist/telemetry.js.map +1 -0
  190. package/dist/trace-exporters.d.ts +72 -0
  191. package/dist/trace-exporters.d.ts.map +1 -0
  192. package/dist/trace-exporters.js +216 -0
  193. package/dist/trace-exporters.js.map +1 -0
  194. package/dist/tracing-helpers.d.ts +99 -0
  195. package/dist/tracing-helpers.d.ts.map +1 -0
  196. package/dist/tracing-helpers.js +217 -0
  197. package/dist/tracing-helpers.js.map +1 -0
  198. package/package.json +64 -0
@@ -0,0 +1,137 @@
1
+ export { CostType, CostCalculator, calculateChatCost, calculateEmbeddingCost, calculateSpeechCost, calculateWhisperCost, calculateImageCost } from "./cost-calculator.js";
2
+ import { AnthropicProvider } from "./anthropic-provider.js";
3
+ import { GeminiProvider } from "./gemini-provider.js";
4
+ import { LlamaProvider } from "./llama-provider.js";
5
+ import { OpenAIProvider } from "./openai-provider.js";
6
+ import { OllamaProvider } from "./ollama-provider.js";
7
+ import { GroqProvider } from "./groq-provider.js";
8
+ import { MinimaxProvider } from "./minimax-provider.js";
9
+ import { MistralProvider } from "./mistral-provider.js";
10
+ import { MoonshotProvider } from "./moonshot-provider.js";
11
+ import { OpenRouterProvider } from "./openrouter-provider.js";
12
+ import { TogetherProvider } from "./together-provider.js";
13
+ import { CerebrasProvider } from "./cerebras-provider.js";
14
+ import { DeepSeekProvider } from "./deepseek-provider.js";
15
+ import { XAIProvider } from "./xai-provider.js";
16
+ import { LMStudioProvider } from "./lmstudio-provider.js";
17
+ import { VLLMProvider } from "./vllm-provider.js";
18
+ import { HuggingFaceProvider } from "./huggingface-provider.js";
19
+ import { PythonProvider } from "./python-provider.js";
20
+ import { ReplicateProvider } from "./replicate-provider.js";
21
+ import { ClaudeAgentProvider } from "./claude-agent-provider.js";
22
+ import { FalProvider } from "./fal-provider.js";
23
+ import { KieProvider } from "./kie-provider.js";
24
+ import { AkiProvider } from "./aki-provider.js";
25
+ import { MeshyProvider } from "./meshy-provider.js";
26
+ import { RodinProvider } from "./rodin-provider.js";
27
+ import { CohereProvider } from "./cohere-provider.js";
28
+ import { VoyageProvider } from "./voyage-provider.js";
29
+ import { JinaProvider } from "./jina-provider.js";
30
+ export { BaseProvider, providerCapabilities } from "./base-provider.js";
31
+ export { AnthropicProvider };
32
+ export { ClaudeAgentProvider };
33
+ export { ClaudeAgentError, classifyClaudeAgentError } from "./claude-agent-provider.js";
34
+ export { GeminiProvider };
35
+ export { LlamaProvider };
36
+ export { OpenAIProvider };
37
+ export { OllamaProvider };
38
+ export { GroqProvider };
39
+ export { MinimaxProvider };
40
+ export { MistralProvider };
41
+ export { MoonshotProvider };
42
+ export { OpenRouterProvider };
43
+ export { TogetherProvider };
44
+ export { CerebrasProvider };
45
+ export { DeepSeekProvider };
46
+ export { XAIProvider };
47
+ export { LMStudioProvider };
48
+ export { VLLMProvider };
49
+ export { HuggingFaceProvider };
50
+ export { PythonProvider };
51
+ export { ReplicateProvider };
52
+ export { FalProvider };
53
+ export { KieProvider };
54
+ export { AkiProvider };
55
+ export { MeshyProvider };
56
+ export { RodinProvider };
57
+ export { CohereProvider };
58
+ export { VoyageProvider };
59
+ export { JinaProvider };
60
+ export { FakeProvider, createFakeToolCall, createSimpleFakeProvider, createStreamingFakeProvider, createToolCallingFakeProvider } from "./fake-provider.js";
61
+ export { ScriptedProvider, planScript, multiTaskPlanScript, stepScript, textScript, toolCallScript, autoScript, toolThenFinishScript } from "./scripted-provider.js";
62
+ export { registerProvider, getRegisteredProvider, getProvider, getProviderSecretKey, isProviderConfigured, clearProviderCache, listRegisteredProviderIds, setSecretResolver } from "./provider-registry.js";
63
+ import { registerProvider as registerBuiltinProvider } from "./provider-registry.js";
64
+ registerBuiltinProvider("openai", OpenAIProvider, {
65
+ OPENAI_API_KEY: process.env["OPENAI_API_KEY"]
66
+ });
67
+ registerBuiltinProvider("anthropic", AnthropicProvider, {
68
+ ANTHROPIC_API_KEY: process.env["ANTHROPIC_API_KEY"]
69
+ });
70
+ registerBuiltinProvider("gemini", GeminiProvider, {
71
+ GEMINI_API_KEY: process.env["GEMINI_API_KEY"]
72
+ });
73
+ registerBuiltinProvider("groq", GroqProvider, {
74
+ GROQ_API_KEY: process.env["GROQ_API_KEY"]
75
+ });
76
+ registerBuiltinProvider("mistral", MistralProvider, {
77
+ MISTRAL_API_KEY: process.env["MISTRAL_API_KEY"]
78
+ });
79
+ registerBuiltinProvider("moonshot", MoonshotProvider, {
80
+ KIMI_API_KEY: process.env["KIMI_API_KEY"]
81
+ });
82
+ registerBuiltinProvider("minimax", MinimaxProvider, {
83
+ MINIMAX_API_KEY: process.env["MINIMAX_API_KEY"]
84
+ });
85
+ registerBuiltinProvider("replicate", ReplicateProvider, {
86
+ REPLICATE_API_TOKEN: process.env["REPLICATE_API_TOKEN"]
87
+ });
88
+ registerBuiltinProvider("fal_ai", FalProvider, {
89
+ FAL_API_KEY: process.env["FAL_API_KEY"]
90
+ });
91
+ registerBuiltinProvider("kie", KieProvider, {
92
+ KIE_API_KEY: process.env["KIE_API_KEY"]
93
+ });
94
+ registerBuiltinProvider("aki", AkiProvider, {
95
+ AKI_API_KEY: process.env["AKI_API_KEY"]
96
+ });
97
+ registerBuiltinProvider("meshy", MeshyProvider, {
98
+ MESHY_API_KEY: process.env["MESHY_API_KEY"]
99
+ });
100
+ registerBuiltinProvider("rodin", RodinProvider, {
101
+ RODIN_API_KEY: process.env["RODIN_API_KEY"]
102
+ });
103
+ registerBuiltinProvider("openrouter", OpenRouterProvider, {
104
+ OPENROUTER_API_KEY: process.env["OPENROUTER_API_KEY"]
105
+ });
106
+ registerBuiltinProvider("together", TogetherProvider, {
107
+ TOGETHER_API_KEY: process.env["TOGETHER_API_KEY"]
108
+ });
109
+ registerBuiltinProvider("cerebras", CerebrasProvider, {
110
+ CEREBRAS_API_KEY: process.env["CEREBRAS_API_KEY"]
111
+ });
112
+ registerBuiltinProvider("cohere", CohereProvider, {
113
+ COHERE_API_KEY: process.env["COHERE_API_KEY"]
114
+ });
115
+ registerBuiltinProvider("voyage", VoyageProvider, {
116
+ VOYAGE_API_KEY: process.env["VOYAGE_API_KEY"]
117
+ });
118
+ registerBuiltinProvider("jina", JinaProvider, {
119
+ JINA_API_KEY: process.env["JINA_API_KEY"]
120
+ });
121
+ registerBuiltinProvider("deepseek", DeepSeekProvider, {
122
+ DEEPSEEK_API_KEY: process.env["DEEPSEEK_API_KEY"]
123
+ });
124
+ registerBuiltinProvider("xai", XAIProvider, {
125
+ XAI_API_KEY: process.env["XAI_API_KEY"]
126
+ });
127
+ // Local-only providers — require local servers/CLIs, skip in production
128
+ if (process.env["NODETOOL_ENV"] !== "production") {
129
+ // Ollama defaults to the standard local daemon port so the provider is
130
+ // usable out-of-the-box. Users running a remote instance override via env.
131
+ registerBuiltinProvider("ollama", OllamaProvider, {
132
+ OLLAMA_API_URL: process.env["OLLAMA_API_URL"] ?? "http://127.0.0.1:11434"
133
+ });
134
+ registerBuiltinProvider("lmstudio", LMStudioProvider, {});
135
+ registerBuiltinProvider("claude_agent", ClaudeAgentProvider, {});
136
+ }
137
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Jina AI Provider — exposes Jina's `/v1/embeddings` API through the standard
3
+ * {@link BaseProvider} interface. The wire format is OpenAI-compatible.
4
+ *
5
+ * API docs: https://api.jina.ai/redoc
6
+ */
7
+ import { BaseProvider } from "./base-provider.js";
8
+ import type { EmbeddingModel, Message, ProviderStreamItem } from "./types.js";
9
+ export interface JinaProviderOptions {
10
+ fetchFn?: typeof fetch;
11
+ /**
12
+ * Jina-specific task hint. v3 supports `retrieval.passage` (default for
13
+ * indexing) and `retrieval.query` for query embeddings, plus
14
+ * `text-matching`, `classification`, and `separation`. Older v2 models
15
+ * ignore this field.
16
+ */
17
+ task?: string | null;
18
+ }
19
+ export declare class JinaProvider extends BaseProvider {
20
+ static requiredSecrets(): string[];
21
+ private readonly apiKey;
22
+ private readonly _fetch;
23
+ private readonly task;
24
+ constructor(secrets?: {
25
+ JINA_API_KEY?: string;
26
+ }, options?: JinaProviderOptions);
27
+ getContainerEnv(): Record<string, string>;
28
+ generateMessage(_args: Parameters<BaseProvider["generateMessage"]>[0]): Promise<Message>;
29
+ generateMessages(_args: Parameters<BaseProvider["generateMessages"]>[0]): AsyncGenerator<ProviderStreamItem>;
30
+ getAvailableEmbeddingModels(): Promise<EmbeddingModel[]>;
31
+ generateEmbedding(args: {
32
+ text: string | string[];
33
+ model: string;
34
+ dimensions?: number;
35
+ }): Promise<number[][]>;
36
+ }
37
+ //# sourceMappingURL=jina-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jina-provider.d.ts","sourceRoot":"","sources":["../../src/providers/jina-provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,KAAK,EACV,cAAc,EACd,OAAO,EACP,kBAAkB,EACnB,MAAM,YAAY,CAAC;AA6CpB,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,qBAAa,YAAa,SAAQ,YAAY;WAC5B,eAAe,IAAI,MAAM,EAAE;IAI3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgB;gBAGnC,OAAO,GAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAO,EACvC,OAAO,GAAE,mBAAwB;IAW1B,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAI5C,eAAe,CACnB,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,GACpD,OAAO,CAAC,OAAO,CAAC;IAIZ,gBAAgB,CACrB,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,GACrD,cAAc,CAAC,kBAAkB,CAAC;IAKtB,2BAA2B,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAIxD,iBAAiB,CAAC,IAAI,EAAE;QACrC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;CAgDxB"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Jina AI Provider — exposes Jina's `/v1/embeddings` API through the standard
3
+ * {@link BaseProvider} interface. The wire format is OpenAI-compatible.
4
+ *
5
+ * API docs: https://api.jina.ai/redoc
6
+ */
7
+ import { BaseProvider } from "./base-provider.js";
8
+ import { createLogger } from "@nodetool-ai/config";
9
+ const log = createLogger("nodetool.runtime.providers.jina");
10
+ const JINA_API_BASE_URL = "https://api.jina.ai/v1";
11
+ const JINA_EMBEDDING_MODELS = [
12
+ {
13
+ id: "jina-embeddings-v3",
14
+ name: "Jina Embeddings v3",
15
+ provider: "jina",
16
+ dimensions: 1024
17
+ },
18
+ {
19
+ id: "jina-clip-v2",
20
+ name: "Jina CLIP v2",
21
+ provider: "jina",
22
+ dimensions: 1024
23
+ },
24
+ {
25
+ id: "jina-embeddings-v2-base-en",
26
+ name: "Jina Embeddings v2 Base (English)",
27
+ provider: "jina",
28
+ dimensions: 768
29
+ },
30
+ {
31
+ id: "jina-embeddings-v2-base-de",
32
+ name: "Jina Embeddings v2 Base (German)",
33
+ provider: "jina",
34
+ dimensions: 768
35
+ },
36
+ {
37
+ id: "jina-embeddings-v2-base-zh",
38
+ name: "Jina Embeddings v2 Base (Chinese)",
39
+ provider: "jina",
40
+ dimensions: 768
41
+ },
42
+ {
43
+ id: "jina-embeddings-v2-base-code",
44
+ name: "Jina Embeddings v2 Base (Code)",
45
+ provider: "jina",
46
+ dimensions: 768
47
+ }
48
+ ];
49
+ export class JinaProvider extends BaseProvider {
50
+ static requiredSecrets() {
51
+ return ["JINA_API_KEY"];
52
+ }
53
+ apiKey;
54
+ _fetch;
55
+ task;
56
+ constructor(secrets = {}, options = {}) {
57
+ super("jina");
58
+ this.apiKey = secrets.JINA_API_KEY ?? "";
59
+ this._fetch = options.fetchFn ?? globalThis.fetch.bind(globalThis);
60
+ this.task = options.task ?? "retrieval.passage";
61
+ if (!this.apiKey) {
62
+ log.warn("Jina API key not configured");
63
+ }
64
+ }
65
+ getContainerEnv() {
66
+ return { JINA_API_KEY: this.apiKey };
67
+ }
68
+ async generateMessage(_args) {
69
+ throw new Error("jina provider does not support chat generation");
70
+ }
71
+ async *generateMessages(_args) {
72
+ throw new Error("jina provider does not support chat generation");
73
+ yield* [];
74
+ }
75
+ async getAvailableEmbeddingModels() {
76
+ return JINA_EMBEDDING_MODELS;
77
+ }
78
+ async generateEmbedding(args) {
79
+ if (!this.apiKey) {
80
+ throw new Error("JINA_API_KEY is not configured");
81
+ }
82
+ const texts = Array.isArray(args.text) ? args.text : [args.text];
83
+ if (texts.length === 0 ||
84
+ texts.some((v) => typeof v !== "string" || v.length === 0)) {
85
+ throw new Error("text must not be empty");
86
+ }
87
+ const model = args.model || "jina-embeddings-v3";
88
+ const body = {
89
+ model,
90
+ input: texts
91
+ };
92
+ if (this.task && model.startsWith("jina-embeddings-v3")) {
93
+ body.task = this.task;
94
+ }
95
+ if (args.dimensions) {
96
+ body.dimensions = args.dimensions;
97
+ }
98
+ const response = await this._fetch(`${JINA_API_BASE_URL}/embeddings`, {
99
+ method: "POST",
100
+ headers: {
101
+ Authorization: `Bearer ${this.apiKey}`,
102
+ "Content-Type": "application/json"
103
+ },
104
+ body: JSON.stringify(body)
105
+ });
106
+ if (!response.ok) {
107
+ const errText = await response.text().catch(() => "");
108
+ throw new Error(`Jina embedding error ${response.status}: ${errText}`);
109
+ }
110
+ const data = (await response.json());
111
+ const rows = data.data ?? [];
112
+ return rows
113
+ .slice()
114
+ .sort((a, b) => (a.index ?? 0) - (b.index ?? 0))
115
+ .map((row) => row.embedding);
116
+ }
117
+ }
118
+ //# sourceMappingURL=jina-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jina-provider.js","sourceRoot":"","sources":["../../src/providers/jina-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Kie.ai Provider — wraps the Kie.ai API to expose image, video, and audio
3
+ * generation through the standard BaseProvider interface.
4
+ *
5
+ * Model lists are loaded from the kie-manifest.json shipped by @nodetool-ai/kie-nodes.
6
+ */
7
+ import { BaseProvider } from "./base-provider.js";
8
+ import type { ImageModel, VideoModel, Message, ProviderStreamItem, TextToImageParams, TextToVideoParams } from "./types.js";
9
+ export declare class KieProvider extends BaseProvider {
10
+ private apiKey;
11
+ constructor(secrets?: Record<string, unknown>);
12
+ generateMessage(_args: Parameters<BaseProvider["generateMessage"]>[0]): Promise<Message>;
13
+ generateMessages(_args: Parameters<BaseProvider["generateMessages"]>[0]): AsyncGenerator<ProviderStreamItem>;
14
+ getAvailableVideoModels(): Promise<VideoModel[]>;
15
+ getAvailableImageModels(): Promise<ImageModel[]>;
16
+ textToVideo(params: TextToVideoParams): Promise<Uint8Array>;
17
+ textToImage(params: TextToImageParams): Promise<Uint8Array>;
18
+ }
19
+ //# sourceMappingURL=kie-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kie-provider.d.ts","sourceRoot":"","sources":["../../src/providers/kie-provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,OAAO,EACP,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAiFpB,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAK3C,eAAe,CACnB,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,GACpD,OAAO,CAAC,OAAO,CAAC;IAIZ,gBAAgB,CACrB,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,GACrD,cAAc,CAAC,kBAAkB,CAAC;IAItB,uBAAuB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAIhD,uBAAuB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAIhD,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IAiB3D,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;CAY3E"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Kie.ai Provider — wraps the Kie.ai API to expose image, video, and audio
3
+ * generation through the standard BaseProvider interface.
4
+ *
5
+ * Model lists are loaded from the kie-manifest.json shipped by @nodetool-ai/kie-nodes.
6
+ */
7
+ import { BaseProvider } from "./base-provider.js";
8
+ import { createLogger } from "@nodetool-ai/config";
9
+ import { loadVideoModels, loadImageModels } from "./manifest-models.js";
10
+ const log = createLogger("nodetool.runtime.providers.kie");
11
+ const KIE_API_BASE = "https://api.kie.ai";
12
+ function headers(apiKey) {
13
+ return {
14
+ Authorization: `Bearer ${apiKey}`,
15
+ "Content-Type": "application/json"
16
+ };
17
+ }
18
+ async function submitTask(apiKey, model, input) {
19
+ const res = await fetch(`${KIE_API_BASE}/api/v1/jobs/createTask`, {
20
+ method: "POST",
21
+ headers: headers(apiKey),
22
+ body: JSON.stringify({ model, input })
23
+ });
24
+ const data = (await res.json());
25
+ if (!res.ok) {
26
+ throw new Error(`Kie submit failed: ${res.status} ${JSON.stringify(data)}`);
27
+ }
28
+ const taskId = data.data?.taskId;
29
+ if (!taskId) {
30
+ throw new Error(`No taskId in Kie response: ${JSON.stringify(data)}`);
31
+ }
32
+ return taskId;
33
+ }
34
+ async function pollUntilDone(apiKey, taskId, pollInterval = 4000, maxAttempts = 300) {
35
+ const url = `${KIE_API_BASE}/api/v1/jobs/recordInfo?taskId=${taskId}`;
36
+ for (let i = 0; i < maxAttempts; i++) {
37
+ const res = await fetch(url, { headers: headers(apiKey) });
38
+ const data = (await res.json());
39
+ const state = data.data?.state;
40
+ if (state === "success")
41
+ return;
42
+ if (state === "failed") {
43
+ const msg = data.data?.failMsg || "Unknown error";
44
+ throw new Error(`Kie task failed: ${msg}`);
45
+ }
46
+ await new Promise((r) => setTimeout(r, pollInterval));
47
+ }
48
+ throw new Error(`Kie task timed out after ${maxAttempts * pollInterval}ms`);
49
+ }
50
+ async function downloadResultBytes(apiKey, taskId) {
51
+ const url = `${KIE_API_BASE}/api/v1/jobs/recordInfo?taskId=${taskId}`;
52
+ const res = await fetch(url, { headers: headers(apiKey) });
53
+ if (!res.ok)
54
+ throw new Error(`Failed to get Kie result: ${res.status}`);
55
+ const data = (await res.json());
56
+ const resultJsonStr = data.data
57
+ ?.resultJson;
58
+ if (!resultJsonStr)
59
+ throw new Error("No resultJson in Kie response");
60
+ const resultData = JSON.parse(resultJsonStr);
61
+ const resultUrls = resultData.resultUrls;
62
+ if (!resultUrls?.length)
63
+ throw new Error("No resultUrls in Kie resultJson");
64
+ const dlRes = await fetch(resultUrls[0]);
65
+ if (!dlRes.ok) {
66
+ throw new Error(`Failed to download from ${resultUrls[0]}`);
67
+ }
68
+ return new Uint8Array(await dlRes.arrayBuffer());
69
+ }
70
+ const KIE_MANIFEST_PKG = "@nodetool-ai/kie-nodes";
71
+ const KIE_MANIFEST_PATH = "kie-manifest.json";
72
+ export class KieProvider extends BaseProvider {
73
+ apiKey;
74
+ constructor(secrets = {}) {
75
+ super("kie");
76
+ this.apiKey = secrets["KIE_API_KEY"] ?? "";
77
+ }
78
+ async generateMessage(_args) {
79
+ throw new Error("Kie does not support chat generation");
80
+ }
81
+ async *generateMessages(_args) {
82
+ throw new Error("Kie does not support chat generation");
83
+ }
84
+ async getAvailableVideoModels() {
85
+ return loadVideoModels(KIE_MANIFEST_PKG, KIE_MANIFEST_PATH, "kie");
86
+ }
87
+ async getAvailableImageModels() {
88
+ return loadImageModels(KIE_MANIFEST_PKG, KIE_MANIFEST_PATH, "kie");
89
+ }
90
+ async textToVideo(params) {
91
+ if (!params.prompt)
92
+ throw new Error("Prompt is required");
93
+ const input = { prompt: params.prompt };
94
+ if (params.aspectRatio)
95
+ input.aspect_ratio = params.aspectRatio;
96
+ if (params.numFrames) {
97
+ input.duration = Math.ceil(params.numFrames / 24);
98
+ }
99
+ const modelId = params.model.id;
100
+ log.debug("Kie textToVideo", { model: modelId });
101
+ const taskId = await submitTask(this.apiKey, modelId, input);
102
+ await pollUntilDone(this.apiKey, taskId);
103
+ return downloadResultBytes(this.apiKey, taskId);
104
+ }
105
+ async textToImage(params) {
106
+ const input = { prompt: params.prompt };
107
+ if (params.width)
108
+ input.width = params.width;
109
+ if (params.height)
110
+ input.height = params.height;
111
+ const modelId = params.model.id;
112
+ log.debug("Kie textToImage", { model: modelId });
113
+ const taskId = await submitTask(this.apiKey, modelId, input);
114
+ await pollUntilDone(this.apiKey, taskId);
115
+ return downloadResultBytes(this.apiKey, taskId);
116
+ }
117
+ }
118
+ //# sourceMappingURL=kie-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kie-provider.js","sourceRoot":"","sources":["../../src/providers/kie-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import OpenAI from "openai";
2
+ import { BaseProvider } from "./base-provider.js";
3
+ import type { LanguageModel, Message, ProviderStreamItem, ProviderTool } from "./types.js";
4
+ interface LlamaProviderOptions {
5
+ client?: OpenAI;
6
+ clientFactory?: (baseUrl: string) => OpenAI;
7
+ fetchFn?: typeof fetch;
8
+ }
9
+ export declare class LlamaProvider extends BaseProvider {
10
+ static requiredSecrets(): string[];
11
+ readonly baseUrl: string;
12
+ private _client;
13
+ private _clientFactory;
14
+ private _fetch;
15
+ constructor(secrets: {
16
+ LLAMA_CPP_URL?: string;
17
+ }, options?: LlamaProviderOptions);
18
+ getContainerEnv(): Record<string, string>;
19
+ private getClient;
20
+ hasToolSupport(_model: string): Promise<boolean>;
21
+ getAvailableLanguageModels(): Promise<LanguageModel[]>;
22
+ private normalizeMessagesForLlama;
23
+ convertMessage(message: Message): Promise<Record<string, unknown>>;
24
+ formatTools(tools: ProviderTool[]): Array<Record<string, unknown>>;
25
+ generateMessages(args: {
26
+ messages: Message[];
27
+ model: string;
28
+ tools?: ProviderTool[];
29
+ maxTokens?: number;
30
+ temperature?: number;
31
+ topP?: number;
32
+ presencePenalty?: number;
33
+ frequencyPenalty?: number;
34
+ audio?: Record<string, unknown>;
35
+ }): AsyncGenerator<ProviderStreamItem>;
36
+ generateMessage(args: {
37
+ messages: Message[];
38
+ model: string;
39
+ tools?: ProviderTool[];
40
+ maxTokens?: number;
41
+ temperature?: number;
42
+ topP?: number;
43
+ presencePenalty?: number;
44
+ frequencyPenalty?: number;
45
+ }): Promise<Message>;
46
+ isContextLengthError(error: unknown): boolean;
47
+ }
48
+ export {};
49
+ //# sourceMappingURL=llama-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llama-provider.d.ts","sourceRoot":"","sources":["../../src/providers/llama-provider.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EACV,aAAa,EACb,OAAO,EAEP,kBAAkB,EAClB,YAAY,EAEb,MAAM,YAAY,CAAC;AAEpB,UAAU,oBAAoB;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAyJD,qBAAa,aAAc,SAAQ,YAAY;IAC7C,MAAM,CAAC,eAAe,IAAI,MAAM,EAAE;IAIlC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,MAAM,CAAe;gBAG3B,OAAO,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,EACnC,OAAO,GAAE,oBAAyB;IAsBpC,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAKzC,OAAO,CAAC,SAAS;IAOX,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKhD,0BAA0B,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAc9C,yBAAyB;IAmDjC,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA+BxE,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAW3D,gBAAgB,CAAC,IAAI,EAAE;QAC5B,QAAQ,EAAE,OAAO,EAAE,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,GAAG,cAAc,CAAC,kBAAkB,CAAC;IA0FhC,eAAe,CAAC,IAAI,EAAE;QAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,OAAO,CAAC,OAAO,CAAC;IAiDpB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;CAU9C"}