@mcp-abap-adt/llm-agent 1.0.0

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 (211) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +515 -0
  3. package/dist/agent.d.ts +49 -0
  4. package/dist/agent.d.ts.map +1 -0
  5. package/dist/agent.js +96 -0
  6. package/dist/agent.js.map +1 -0
  7. package/dist/agents/anthropic-agent.d.ts +32 -0
  8. package/dist/agents/anthropic-agent.d.ts.map +1 -0
  9. package/dist/agents/anthropic-agent.js +80 -0
  10. package/dist/agents/anthropic-agent.js.map +1 -0
  11. package/dist/agents/base.d.ts +64 -0
  12. package/dist/agents/base.d.ts.map +1 -0
  13. package/dist/agents/base.js +93 -0
  14. package/dist/agents/base.js.map +1 -0
  15. package/dist/agents/deepseek-agent.d.ts +31 -0
  16. package/dist/agents/deepseek-agent.d.ts.map +1 -0
  17. package/dist/agents/deepseek-agent.js +76 -0
  18. package/dist/agents/deepseek-agent.js.map +1 -0
  19. package/dist/agents/index.d.ts +9 -0
  20. package/dist/agents/index.d.ts.map +1 -0
  21. package/dist/agents/index.js +9 -0
  22. package/dist/agents/index.js.map +1 -0
  23. package/dist/agents/openai-agent.d.ts +32 -0
  24. package/dist/agents/openai-agent.d.ts.map +1 -0
  25. package/dist/agents/openai-agent.js +69 -0
  26. package/dist/agents/openai-agent.js.map +1 -0
  27. package/dist/agents/prompt-based-agent.d.ts +28 -0
  28. package/dist/agents/prompt-based-agent.d.ts.map +1 -0
  29. package/dist/agents/prompt-based-agent.js +62 -0
  30. package/dist/agents/prompt-based-agent.js.map +1 -0
  31. package/dist/agents/sap-core-ai-agent.d.ts +22 -0
  32. package/dist/agents/sap-core-ai-agent.d.ts.map +1 -0
  33. package/dist/agents/sap-core-ai-agent.js +20 -0
  34. package/dist/agents/sap-core-ai-agent.js.map +1 -0
  35. package/dist/cli.d.ts +53 -0
  36. package/dist/cli.d.ts.map +1 -0
  37. package/dist/cli.js +313 -0
  38. package/dist/cli.js.map +1 -0
  39. package/dist/index.d.ts +18 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +24 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/llm-providers/anthropic.d.ts +21 -0
  44. package/dist/llm-providers/anthropic.d.ts.map +1 -0
  45. package/dist/llm-providers/anthropic.js +58 -0
  46. package/dist/llm-providers/anthropic.js.map +1 -0
  47. package/dist/llm-providers/base.d.ts +28 -0
  48. package/dist/llm-providers/base.d.ts.map +1 -0
  49. package/dist/llm-providers/base.js +18 -0
  50. package/dist/llm-providers/base.js.map +1 -0
  51. package/dist/llm-providers/deepseek.d.ts +21 -0
  52. package/dist/llm-providers/deepseek.d.ts.map +1 -0
  53. package/dist/llm-providers/deepseek.js +50 -0
  54. package/dist/llm-providers/deepseek.js.map +1 -0
  55. package/dist/llm-providers/index.d.ts +13 -0
  56. package/dist/llm-providers/index.d.ts.map +1 -0
  57. package/dist/llm-providers/index.js +15 -0
  58. package/dist/llm-providers/index.js.map +1 -0
  59. package/dist/llm-providers/openai.d.ts +23 -0
  60. package/dist/llm-providers/openai.d.ts.map +1 -0
  61. package/dist/llm-providers/openai.js +59 -0
  62. package/dist/llm-providers/openai.js.map +1 -0
  63. package/dist/llm-providers/sap-core-ai.d.ts +72 -0
  64. package/dist/llm-providers/sap-core-ai.d.ts.map +1 -0
  65. package/dist/llm-providers/sap-core-ai.js +114 -0
  66. package/dist/llm-providers/sap-core-ai.js.map +1 -0
  67. package/dist/mcp/client.d.ts +119 -0
  68. package/dist/mcp/client.d.ts.map +1 -0
  69. package/dist/mcp/client.js +271 -0
  70. package/dist/mcp/client.js.map +1 -0
  71. package/dist/smart-agent/adapters/index.d.ts +3 -0
  72. package/dist/smart-agent/adapters/index.d.ts.map +1 -0
  73. package/dist/smart-agent/adapters/index.js +3 -0
  74. package/dist/smart-agent/adapters/index.js.map +1 -0
  75. package/dist/smart-agent/adapters/llm-adapter.d.ts +18 -0
  76. package/dist/smart-agent/adapters/llm-adapter.d.ts.map +1 -0
  77. package/dist/smart-agent/adapters/llm-adapter.js +111 -0
  78. package/dist/smart-agent/adapters/llm-adapter.js.map +1 -0
  79. package/dist/smart-agent/adapters/mcp-client-adapter.d.ts +13 -0
  80. package/dist/smart-agent/adapters/mcp-client-adapter.d.ts.map +1 -0
  81. package/dist/smart-agent/adapters/mcp-client-adapter.js +68 -0
  82. package/dist/smart-agent/adapters/mcp-client-adapter.js.map +1 -0
  83. package/dist/smart-agent/agent.d.ts +71 -0
  84. package/dist/smart-agent/agent.d.ts.map +1 -0
  85. package/dist/smart-agent/agent.js +462 -0
  86. package/dist/smart-agent/agent.js.map +1 -0
  87. package/dist/smart-agent/builder.d.ts +129 -0
  88. package/dist/smart-agent/builder.d.ts.map +1 -0
  89. package/dist/smart-agent/builder.js +230 -0
  90. package/dist/smart-agent/builder.js.map +1 -0
  91. package/dist/smart-agent/classifier/index.d.ts +3 -0
  92. package/dist/smart-agent/classifier/index.d.ts.map +1 -0
  93. package/dist/smart-agent/classifier/index.js +2 -0
  94. package/dist/smart-agent/classifier/index.js.map +1 -0
  95. package/dist/smart-agent/classifier/llm-classifier.d.ts +20 -0
  96. package/dist/smart-agent/classifier/llm-classifier.d.ts.map +1 -0
  97. package/dist/smart-agent/classifier/llm-classifier.js +121 -0
  98. package/dist/smart-agent/classifier/llm-classifier.js.map +1 -0
  99. package/dist/smart-agent/cli.d.ts +61 -0
  100. package/dist/smart-agent/cli.d.ts.map +1 -0
  101. package/dist/smart-agent/cli.js +181 -0
  102. package/dist/smart-agent/cli.js.map +1 -0
  103. package/dist/smart-agent/config.d.ts +41 -0
  104. package/dist/smart-agent/config.d.ts.map +1 -0
  105. package/dist/smart-agent/config.js +199 -0
  106. package/dist/smart-agent/config.js.map +1 -0
  107. package/dist/smart-agent/context/context-assembler.d.ts +24 -0
  108. package/dist/smart-agent/context/context-assembler.d.ts.map +1 -0
  109. package/dist/smart-agent/context/context-assembler.js +165 -0
  110. package/dist/smart-agent/context/context-assembler.js.map +1 -0
  111. package/dist/smart-agent/context/index.d.ts +3 -0
  112. package/dist/smart-agent/context/index.d.ts.map +1 -0
  113. package/dist/smart-agent/context/index.js +2 -0
  114. package/dist/smart-agent/context/index.js.map +1 -0
  115. package/dist/smart-agent/interfaces/assembler.d.ts +11 -0
  116. package/dist/smart-agent/interfaces/assembler.d.ts.map +1 -0
  117. package/dist/smart-agent/interfaces/assembler.js +2 -0
  118. package/dist/smart-agent/interfaces/assembler.js.map +1 -0
  119. package/dist/smart-agent/interfaces/classifier.d.ts +5 -0
  120. package/dist/smart-agent/interfaces/classifier.d.ts.map +1 -0
  121. package/dist/smart-agent/interfaces/classifier.js +2 -0
  122. package/dist/smart-agent/interfaces/classifier.js.map +1 -0
  123. package/dist/smart-agent/interfaces/index.d.ts +8 -0
  124. package/dist/smart-agent/interfaces/index.d.ts.map +1 -0
  125. package/dist/smart-agent/interfaces/index.js +2 -0
  126. package/dist/smart-agent/interfaces/index.js.map +1 -0
  127. package/dist/smart-agent/interfaces/llm.d.ts +6 -0
  128. package/dist/smart-agent/interfaces/llm.d.ts.map +1 -0
  129. package/dist/smart-agent/interfaces/llm.js +2 -0
  130. package/dist/smart-agent/interfaces/llm.js.map +1 -0
  131. package/dist/smart-agent/interfaces/mcp-client.d.ts +6 -0
  132. package/dist/smart-agent/interfaces/mcp-client.d.ts.map +1 -0
  133. package/dist/smart-agent/interfaces/mcp-client.js +2 -0
  134. package/dist/smart-agent/interfaces/mcp-client.js.map +1 -0
  135. package/dist/smart-agent/interfaces/rag.d.ts +6 -0
  136. package/dist/smart-agent/interfaces/rag.d.ts.map +1 -0
  137. package/dist/smart-agent/interfaces/rag.js +2 -0
  138. package/dist/smart-agent/interfaces/rag.js.map +1 -0
  139. package/dist/smart-agent/interfaces/types.d.ts +109 -0
  140. package/dist/smart-agent/interfaces/types.d.ts.map +1 -0
  141. package/dist/smart-agent/interfaces/types.js +45 -0
  142. package/dist/smart-agent/interfaces/types.js.map +1 -0
  143. package/dist/smart-agent/llm/token-counting-llm.d.ts +25 -0
  144. package/dist/smart-agent/llm/token-counting-llm.d.ts.map +1 -0
  145. package/dist/smart-agent/llm/token-counting-llm.js +56 -0
  146. package/dist/smart-agent/llm/token-counting-llm.js.map +1 -0
  147. package/dist/smart-agent/logger/console-logger.d.ts +7 -0
  148. package/dist/smart-agent/logger/console-logger.d.ts.map +1 -0
  149. package/dist/smart-agent/logger/console-logger.js +12 -0
  150. package/dist/smart-agent/logger/console-logger.js.map +1 -0
  151. package/dist/smart-agent/logger/index.d.ts +3 -0
  152. package/dist/smart-agent/logger/index.d.ts.map +1 -0
  153. package/dist/smart-agent/logger/index.js +2 -0
  154. package/dist/smart-agent/logger/index.js.map +1 -0
  155. package/dist/smart-agent/logger/types.d.ts +59 -0
  156. package/dist/smart-agent/logger/types.d.ts.map +1 -0
  157. package/dist/smart-agent/logger/types.js +2 -0
  158. package/dist/smart-agent/logger/types.js.map +1 -0
  159. package/dist/smart-agent/pipeline.d.ts +62 -0
  160. package/dist/smart-agent/pipeline.d.ts.map +1 -0
  161. package/dist/smart-agent/pipeline.js +70 -0
  162. package/dist/smart-agent/pipeline.js.map +1 -0
  163. package/dist/smart-agent/policy/heuristic-injection-detector.d.ts +5 -0
  164. package/dist/smart-agent/policy/heuristic-injection-detector.d.ts.map +1 -0
  165. package/dist/smart-agent/policy/heuristic-injection-detector.js +36 -0
  166. package/dist/smart-agent/policy/heuristic-injection-detector.js.map +1 -0
  167. package/dist/smart-agent/policy/index.d.ts +5 -0
  168. package/dist/smart-agent/policy/index.d.ts.map +1 -0
  169. package/dist/smart-agent/policy/index.js +4 -0
  170. package/dist/smart-agent/policy/index.js.map +1 -0
  171. package/dist/smart-agent/policy/tool-policy-guard.d.ts +8 -0
  172. package/dist/smart-agent/policy/tool-policy-guard.d.ts.map +1 -0
  173. package/dist/smart-agent/policy/tool-policy-guard.js +40 -0
  174. package/dist/smart-agent/policy/tool-policy-guard.js.map +1 -0
  175. package/dist/smart-agent/policy/types.d.ts +51 -0
  176. package/dist/smart-agent/policy/types.d.ts.map +1 -0
  177. package/dist/smart-agent/policy/types.js +17 -0
  178. package/dist/smart-agent/policy/types.js.map +1 -0
  179. package/dist/smart-agent/rag/in-memory-rag.d.ts +18 -0
  180. package/dist/smart-agent/rag/in-memory-rag.d.ts.map +1 -0
  181. package/dist/smart-agent/rag/in-memory-rag.js +111 -0
  182. package/dist/smart-agent/rag/in-memory-rag.js.map +1 -0
  183. package/dist/smart-agent/rag/index.d.ts +5 -0
  184. package/dist/smart-agent/rag/index.d.ts.map +1 -0
  185. package/dist/smart-agent/rag/index.js +3 -0
  186. package/dist/smart-agent/rag/index.js.map +1 -0
  187. package/dist/smart-agent/rag/ollama-rag.d.ts +25 -0
  188. package/dist/smart-agent/rag/ollama-rag.d.ts.map +1 -0
  189. package/dist/smart-agent/rag/ollama-rag.js +111 -0
  190. package/dist/smart-agent/rag/ollama-rag.js.map +1 -0
  191. package/dist/smart-agent/server.d.ts +19 -0
  192. package/dist/smart-agent/server.d.ts.map +1 -0
  193. package/dist/smart-agent/server.js +156 -0
  194. package/dist/smart-agent/server.js.map +1 -0
  195. package/dist/smart-agent/smart-server.d.ts +116 -0
  196. package/dist/smart-agent/smart-server.d.ts.map +1 -0
  197. package/dist/smart-agent/smart-server.js +230 -0
  198. package/dist/smart-agent/smart-server.js.map +1 -0
  199. package/dist/smart-agent/testing/index.d.ts +76 -0
  200. package/dist/smart-agent/testing/index.d.ts.map +1 -0
  201. package/dist/smart-agent/testing/index.js +188 -0
  202. package/dist/smart-agent/testing/index.js.map +1 -0
  203. package/dist/smoke-adapters.d.ts +17 -0
  204. package/dist/smoke-adapters.d.ts.map +1 -0
  205. package/dist/smoke-adapters.js +178 -0
  206. package/dist/smoke-adapters.js.map +1 -0
  207. package/dist/types.d.ts +54 -0
  208. package/dist/types.d.ts.map +1 -0
  209. package/dist/types.js +5 -0
  210. package/dist/types.js.map +1 -0
  211. package/package.json +89 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/smart-agent/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Shared config utilities for SmartServer.
3
+ *
4
+ * Single source of truth for:
5
+ * - YAML_TEMPLATE — default config template
6
+ * - resolveEnvVars — ${ENV_VAR} substitution in YAML values
7
+ * - loadYamlConfig — read + parse + substitute a YAML file
8
+ * - generateConfigTemplate — write YAML_TEMPLATE to a path
9
+ * - resolveSmartServerConfig — merge CLI args > YAML > env vars > defaults
10
+ */
11
+ import type { SmartServerConfig } from './smart-server.js';
12
+ export type YamlConfig = Record<string, any>;
13
+ export interface ResolveConfigArgs {
14
+ port?: string | boolean;
15
+ host?: string | boolean;
16
+ 'llm-api-key'?: string | boolean;
17
+ 'llm-model'?: string | boolean;
18
+ 'llm-temperature'?: string | boolean;
19
+ 'rag-type'?: string | boolean;
20
+ 'rag-url'?: string | boolean;
21
+ 'rag-model'?: string | boolean;
22
+ 'mcp-type'?: string | boolean;
23
+ 'mcp-url'?: string | boolean;
24
+ 'mcp-command'?: string | boolean;
25
+ 'mcp-args'?: string | boolean;
26
+ 'prompt-system'?: string | boolean;
27
+ 'prompt-classifier'?: string | boolean;
28
+ mode?: string | boolean;
29
+ }
30
+ export declare const YAML_TEMPLATE = "port: 3001\nhost: 0.0.0.0\n\n# Request routing mode:\n# smart \u2014 all requests via SmartAgent (RAG tool selection). Best for SAP/ABAP work.\n# passthrough \u2014 all requests directly to LLM (no agent). Preserves Cline XML protocol.\n# hybrid \u2014 auto-detect: Cline client \u2192 passthrough, others \u2192 SmartAgent. (default)\nmode: hybrid\n\nllm:\n apiKey: ${DEEPSEEK_API_KEY}\n model: deepseek-chat\n temperature: 0.7\n classifierTemperature: 0.1\n\nrag:\n type: ollama # ollama | in-memory\n url: http://localhost:11434\n model: nomic-embed-text\n dedupThreshold: 0.92\n\nmcp:\n type: http # http | stdio\n url: http://localhost:3000/mcp/stream/http\n # type: stdio\n # command: node\n # args: path/to/mcp-server/dist/index.js\n\nagent:\n maxIterations: 10\n maxToolCalls: 30\n ragQueryK: 10\n\n# prompts:\n# system: \"You are a helpful assistant.\"\n# classifier: null\n\nlog: smart-server.log # path to log file; omit for stdout\n\n# --- Advanced pipeline config (optional) ------------------------------------\n# When present, overrides / extends the flat llm / rag / mcp fields above.\n# pipeline:\n# llm:\n# main:\n# provider: deepseek # deepseek | openai | anthropic\n# apiKey: ${DEEPSEEK_API_KEY}\n# model: deepseek-chat\n# temperature: 0.7\n# classifier: # optional; if absent, main config is reused at 0.1 temp\n# provider: openai\n# apiKey: ${OPENAI_API_KEY}\n# model: gpt-4o-mini\n# temperature: 0.1\n#\n# rag:\n# facts:\n# type: ollama\n# url: http://localhost:11434\n# model: nomic-embed-text\n# dedupThreshold: 0.92\n# feedback:\n# type: in-memory\n# state:\n# type: in-memory\n#\n# mcp:\n# - type: http\n# url: http://sap-server:3000/mcp/stream/http\n# - type: stdio\n# command: npx\n# args: [github-mcp-server]\n";
31
+ export declare function resolveEnvVars(value: unknown, env?: NodeJS.ProcessEnv): unknown;
32
+ export declare function loadYamlConfig(filePath: string, env?: NodeJS.ProcessEnv): YamlConfig;
33
+ export declare function generateConfigTemplate(outputPath: string): void;
34
+ /**
35
+ * Merge: CLI args > YAML config > env vars > defaults.
36
+ * Throws Error if no API key can be resolved — caller must catch and exit(1).
37
+ * When pipeline.llm.main is present its apiKey is used as fallback, so the
38
+ * flat llm.apiKey is not required.
39
+ */
40
+ export declare function resolveSmartServerConfig(args?: ResolveConfigArgs, yaml?: YamlConfig, env?: NodeJS.ProcessEnv): Omit<SmartServerConfig, 'log'>;
41
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/smart-agent/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAmB,MAAM,mBAAmB,CAAC;AAO5E,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE7C,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACvC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACzB;AAMD,eAAO,MAAM,aAAa,69DAuEzB,CAAC;AAMF,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAW5F;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,UAAU,CAGjG;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAE/D;AASD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,GAAE,iBAAsB,EAC5B,IAAI,GAAE,UAAe,EACrB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CA6GhC"}
@@ -0,0 +1,199 @@
1
+ /**
2
+ * Shared config utilities for SmartServer.
3
+ *
4
+ * Single source of truth for:
5
+ * - YAML_TEMPLATE — default config template
6
+ * - resolveEnvVars — ${ENV_VAR} substitution in YAML values
7
+ * - loadYamlConfig — read + parse + substitute a YAML file
8
+ * - generateConfigTemplate — write YAML_TEMPLATE to a path
9
+ * - resolveSmartServerConfig — merge CLI args > YAML > env vars > defaults
10
+ */
11
+ import fs from 'node:fs';
12
+ import { parse as parseYaml } from 'yaml';
13
+ // ---------------------------------------------------------------------------
14
+ // YAML template
15
+ // ---------------------------------------------------------------------------
16
+ export const YAML_TEMPLATE = `port: 3001
17
+ host: 0.0.0.0
18
+
19
+ # Request routing mode:
20
+ # smart — all requests via SmartAgent (RAG tool selection). Best for SAP/ABAP work.
21
+ # passthrough — all requests directly to LLM (no agent). Preserves Cline XML protocol.
22
+ # hybrid — auto-detect: Cline client → passthrough, others → SmartAgent. (default)
23
+ mode: hybrid
24
+
25
+ llm:
26
+ apiKey: \${DEEPSEEK_API_KEY}
27
+ model: deepseek-chat
28
+ temperature: 0.7
29
+ classifierTemperature: 0.1
30
+
31
+ rag:
32
+ type: ollama # ollama | in-memory
33
+ url: http://localhost:11434
34
+ model: nomic-embed-text
35
+ dedupThreshold: 0.92
36
+
37
+ mcp:
38
+ type: http # http | stdio
39
+ url: http://localhost:3000/mcp/stream/http
40
+ # type: stdio
41
+ # command: node
42
+ # args: path/to/mcp-server/dist/index.js
43
+
44
+ agent:
45
+ maxIterations: 10
46
+ maxToolCalls: 30
47
+ ragQueryK: 10
48
+
49
+ # prompts:
50
+ # system: "You are a helpful assistant."
51
+ # classifier: null
52
+
53
+ log: smart-server.log # path to log file; omit for stdout
54
+
55
+ # --- Advanced pipeline config (optional) ------------------------------------
56
+ # When present, overrides / extends the flat llm / rag / mcp fields above.
57
+ # pipeline:
58
+ # llm:
59
+ # main:
60
+ # provider: deepseek # deepseek | openai | anthropic
61
+ # apiKey: \${DEEPSEEK_API_KEY}
62
+ # model: deepseek-chat
63
+ # temperature: 0.7
64
+ # classifier: # optional; if absent, main config is reused at 0.1 temp
65
+ # provider: openai
66
+ # apiKey: \${OPENAI_API_KEY}
67
+ # model: gpt-4o-mini
68
+ # temperature: 0.1
69
+ #
70
+ # rag:
71
+ # facts:
72
+ # type: ollama
73
+ # url: http://localhost:11434
74
+ # model: nomic-embed-text
75
+ # dedupThreshold: 0.92
76
+ # feedback:
77
+ # type: in-memory
78
+ # state:
79
+ # type: in-memory
80
+ #
81
+ # mcp:
82
+ # - type: http
83
+ # url: http://sap-server:3000/mcp/stream/http
84
+ # - type: stdio
85
+ # command: npx
86
+ # args: [github-mcp-server]
87
+ `;
88
+ // ---------------------------------------------------------------------------
89
+ // Utilities
90
+ // ---------------------------------------------------------------------------
91
+ export function resolveEnvVars(value, env = process.env) {
92
+ if (typeof value === 'string') {
93
+ return value.replace(/\$\{([^}]+)\}/g, (_, name) => env[name] ?? '');
94
+ }
95
+ if (Array.isArray(value))
96
+ return value.map((v) => resolveEnvVars(v, env));
97
+ if (value !== null && typeof value === 'object') {
98
+ return Object.fromEntries(Object.entries(value).map(([k, v]) => [k, resolveEnvVars(v, env)]));
99
+ }
100
+ return value;
101
+ }
102
+ export function loadYamlConfig(filePath, env = process.env) {
103
+ const raw = fs.readFileSync(filePath, 'utf8');
104
+ return resolveEnvVars(parseYaml(raw), env);
105
+ }
106
+ export function generateConfigTemplate(outputPath) {
107
+ fs.writeFileSync(outputPath, YAML_TEMPLATE, 'utf8');
108
+ }
109
+ // ---------------------------------------------------------------------------
110
+ // Config resolver
111
+ // ---------------------------------------------------------------------------
112
+ // biome-ignore lint/suspicious/noExplicitAny: helper for nested get
113
+ const get = (obj, ...keys) => keys.reduce((o, k) => o?.[k], obj);
114
+ /**
115
+ * Merge: CLI args > YAML config > env vars > defaults.
116
+ * Throws Error if no API key can be resolved — caller must catch and exit(1).
117
+ * When pipeline.llm.main is present its apiKey is used as fallback, so the
118
+ * flat llm.apiKey is not required.
119
+ */
120
+ export function resolveSmartServerConfig(args = {}, yaml = {}, env = process.env) {
121
+ const flatApiKey = args['llm-api-key'] ??
122
+ get(yaml, 'llm', 'apiKey') ??
123
+ env['DEEPSEEK_API_KEY'] ??
124
+ '';
125
+ // pipeline.llm.main.apiKey serves as fallback when the flat section is absent
126
+ const pipelineApiKey = get(yaml, 'pipeline', 'llm', 'main', 'apiKey');
127
+ const hasPipelineLlm = !!get(yaml, 'pipeline', 'llm', 'main');
128
+ const apiKey = flatApiKey || pipelineApiKey || '';
129
+ if (!apiKey && !hasPipelineLlm) {
130
+ throw new Error('LLM API key is required. Set --llm-api-key, YAML llm.apiKey, DEEPSEEK_API_KEY, or pipeline.llm.main.apiKey.');
131
+ }
132
+ const mcpUrl = args['mcp-url'] ?? get(yaml, 'mcp', 'url') ?? env['MCP_ENDPOINT'];
133
+ const mcpCommand = args['mcp-command'] ?? get(yaml, 'mcp', 'command') ?? env['MCP_COMMAND'];
134
+ const mcpType = (args['mcp-type'] ??
135
+ get(yaml, 'mcp', 'type') ??
136
+ (mcpUrl ? 'http' : mcpCommand ? 'stdio' : null));
137
+ const promptSystem = args['prompt-system'] ??
138
+ get(yaml, 'prompts', 'system') ??
139
+ env['PROMPT_SYSTEM'] ??
140
+ null;
141
+ const promptClassifier = args['prompt-classifier'] ??
142
+ get(yaml, 'prompts', 'classifier') ??
143
+ env['PROMPT_CLASSIFIER'] ??
144
+ null;
145
+ return {
146
+ port: Number(args['port'] ?? get(yaml, 'port') ?? env['PORT'] ?? 3001),
147
+ host: args['host'] ?? get(yaml, 'host') ?? '0.0.0.0',
148
+ llm: {
149
+ apiKey,
150
+ model: args['llm-model'] ??
151
+ get(yaml, 'llm', 'model') ??
152
+ env['DEEPSEEK_MODEL'] ??
153
+ 'deepseek-chat',
154
+ temperature: Number(args['llm-temperature'] ?? get(yaml, 'llm', 'temperature') ?? 0.7),
155
+ classifierTemperature: Number(get(yaml, 'llm', 'classifierTemperature') ?? 0.1),
156
+ },
157
+ rag: {
158
+ type: (args['rag-type'] ?? get(yaml, 'rag', 'type') ?? 'ollama'),
159
+ url: args['rag-url'] ??
160
+ get(yaml, 'rag', 'url') ??
161
+ env['OLLAMA_URL'] ??
162
+ 'http://localhost:11434',
163
+ model: args['rag-model'] ??
164
+ get(yaml, 'rag', 'model') ??
165
+ env['OLLAMA_EMBED_MODEL'] ??
166
+ 'nomic-embed-text',
167
+ dedupThreshold: Number(get(yaml, 'rag', 'dedupThreshold') ?? 0.92),
168
+ },
169
+ mcp: mcpType
170
+ ? {
171
+ type: mcpType,
172
+ url: mcpUrl,
173
+ command: mcpCommand,
174
+ args: (args['mcp-args'] ?? get(yaml, 'mcp', 'args'))
175
+ ? String(args['mcp-args'] ?? get(yaml, 'mcp', 'args')).split(' ')
176
+ : undefined,
177
+ }
178
+ : undefined,
179
+ agent: {
180
+ maxIterations: Number(get(yaml, 'agent', 'maxIterations') ?? 10),
181
+ maxToolCalls: Number(get(yaml, 'agent', 'maxToolCalls') ?? 30),
182
+ ragQueryK: Number(get(yaml, 'agent', 'ragQueryK') ?? 10),
183
+ },
184
+ prompts: promptSystem || promptClassifier
185
+ ? {
186
+ ...(promptSystem ? { system: promptSystem } : {}),
187
+ ...(promptClassifier ? { classifier: promptClassifier } : {}),
188
+ }
189
+ : undefined,
190
+ mode: (args['mode'] ??
191
+ get(yaml, 'mode') ??
192
+ env['SMART_AGENT_MODE'] ??
193
+ 'hybrid'),
194
+ // Pass through pipeline config as-is — env-var substitution was already applied
195
+ // by loadYamlConfig, so no further transformation is needed here.
196
+ ...(yaml.pipeline ? { pipeline: yaml.pipeline } : {}),
197
+ };
198
+ }
199
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/smart-agent/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { Message } from '../../types.js';
2
+ import type { IContextAssembler } from '../interfaces/assembler.js';
3
+ import { AssemblerError, type CallOptions, type McpTool, type RagResult, type Result, type Subprompt, type ToolCallRecord } from '../interfaces/types.js';
4
+ export interface ContextAssemblerConfig {
5
+ /** chars/4 token budget. No limit when undefined. */
6
+ maxTokens?: number;
7
+ /** Preamble prepended before context sections in system message. */
8
+ systemPromptPreamble?: string;
9
+ /** Emit RAG scores as annotations for observability. Default: false. */
10
+ includeProvenance?: boolean;
11
+ }
12
+ export declare class ContextAssembler implements IContextAssembler {
13
+ private readonly maxTokens;
14
+ private readonly systemPromptPreamble;
15
+ private readonly includeProvenance;
16
+ constructor(config?: ContextAssemblerConfig);
17
+ assemble(action: Subprompt, retrieved: {
18
+ facts: RagResult[];
19
+ feedback: RagResult[];
20
+ state: RagResult[];
21
+ tools: McpTool[];
22
+ }, toolResults: ToolCallRecord[], options?: CallOptions): Promise<Result<Message[], AssemblerError>>;
23
+ }
24
+ //# sourceMappingURL=context-assembler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-assembler.d.ts","sourceRoot":"","sources":["../../../src/smart-agent/context/context-assembler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EACL,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,OAAO,EAEZ,KAAK,SAAS,EACd,KAAK,MAAM,EACX,KAAK,SAAS,EACd,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAC;AAMhC,MAAM,WAAW,sBAAsB;IACrC,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAwJD,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAqB;IAC1D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAU;gBAEhC,MAAM,CAAC,EAAE,sBAAsB;IAMrC,QAAQ,CACZ,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE;QACT,KAAK,EAAE,SAAS,EAAE,CAAC;QACnB,QAAQ,EAAE,SAAS,EAAE,CAAC;QACtB,KAAK,EAAE,SAAS,EAAE,CAAC;QACnB,KAAK,EAAE,OAAO,EAAE,CAAC;KAClB,EACD,WAAW,EAAE,cAAc,EAAE,EAC7B,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC;CAgF9C"}
@@ -0,0 +1,165 @@
1
+ import { AssemblerError, } from '../interfaces/types.js';
2
+ // ---------------------------------------------------------------------------
3
+ // Module-private helpers
4
+ // ---------------------------------------------------------------------------
5
+ /** Approximate token count: ceil(text.length / 4) */
6
+ function estimateTokens(text) {
7
+ return Math.ceil(text.length / 4);
8
+ }
9
+ /** Single RagResult → "- <text> [score: 0.92]" (provenance) or "- <text>" */
10
+ function formatRagEntry(r, provenance) {
11
+ if (provenance) {
12
+ return `- ${r.text} [score: ${r.score.toFixed(2)}]`;
13
+ }
14
+ return `- ${r.text}`;
15
+ }
16
+ /** Header + entries → "## Header\n- e1\n- e2" or '' if entries empty */
17
+ function buildSection(header, entries) {
18
+ if (entries.length === 0)
19
+ return '';
20
+ return `## ${header}\n${entries.join('\n')}`;
21
+ }
22
+ /** McpToolResult content → string (JSON.stringify if object) */
23
+ function toolResultContent(result) {
24
+ if (typeof result.content === 'string') {
25
+ return result.content;
26
+ }
27
+ return JSON.stringify(result.content);
28
+ }
29
+ /** Combine all sections into system message content */
30
+ function buildSystemContent(facts, feedback, state, tools, provenance) {
31
+ const sections = [];
32
+ const factsSection = buildSection('Known Facts', facts.map((r) => formatRagEntry(r, provenance)));
33
+ if (factsSection)
34
+ sections.push(factsSection);
35
+ const feedbackSection = buildSection('Feedback', feedback.map((r) => formatRagEntry(r, provenance)));
36
+ if (feedbackSection)
37
+ sections.push(feedbackSection);
38
+ const stateSection = buildSection('Current State', state.map((r) => formatRagEntry(r, provenance)));
39
+ if (stateSection)
40
+ sections.push(stateSection);
41
+ const toolsSection = buildSection('Available Tools', tools.map((t) => `- ${t.name}: ${t.description}`));
42
+ if (toolsSection)
43
+ sections.push(toolsSection);
44
+ return sections.join('\n\n');
45
+ }
46
+ // ---------------------------------------------------------------------------
47
+ // Token budgeting
48
+ // ---------------------------------------------------------------------------
49
+ /**
50
+ * Drop entries until total token count fits within budget.
51
+ *
52
+ * Drop priority (lowest first):
53
+ * 1st — tools (last entry first, no score)
54
+ * 2nd — state (lowest score first)
55
+ * 3rd — feedback (lowest score first)
56
+ * 4th — facts (lowest score first)
57
+ * action is never dropped.
58
+ */
59
+ function applyTokenBudget(facts, feedback, state, tools, actionTokens, maxTokens, provenance) {
60
+ // Work on mutable copies (already sorted by caller)
61
+ let mutableFacts = [...facts];
62
+ let mutableFeedback = [...feedback];
63
+ let mutableState = [...state];
64
+ let mutableTools = [...tools];
65
+ const totalTokens = () => {
66
+ const content = buildSystemContent(mutableFacts, mutableFeedback, mutableState, mutableTools, provenance);
67
+ return actionTokens + estimateTokens(content);
68
+ };
69
+ while (totalTokens() > maxTokens) {
70
+ // Drop tools last entry first
71
+ if (mutableTools.length > 0) {
72
+ mutableTools = mutableTools.slice(0, -1);
73
+ continue;
74
+ }
75
+ // Drop state lowest score first (already sorted desc, so last = lowest)
76
+ if (mutableState.length > 0) {
77
+ mutableState = mutableState.slice(0, -1);
78
+ continue;
79
+ }
80
+ // Drop feedback lowest score first
81
+ if (mutableFeedback.length > 0) {
82
+ mutableFeedback = mutableFeedback.slice(0, -1);
83
+ continue;
84
+ }
85
+ // Drop facts lowest score first
86
+ if (mutableFacts.length > 0) {
87
+ mutableFacts = mutableFacts.slice(0, -1);
88
+ continue;
89
+ }
90
+ // Nothing left to drop
91
+ break;
92
+ }
93
+ return {
94
+ facts: mutableFacts,
95
+ feedback: mutableFeedback,
96
+ state: mutableState,
97
+ tools: mutableTools,
98
+ };
99
+ }
100
+ // ---------------------------------------------------------------------------
101
+ // ContextAssembler
102
+ // ---------------------------------------------------------------------------
103
+ export class ContextAssembler {
104
+ maxTokens;
105
+ systemPromptPreamble;
106
+ includeProvenance;
107
+ constructor(config) {
108
+ this.maxTokens = config?.maxTokens;
109
+ this.systemPromptPreamble = config?.systemPromptPreamble;
110
+ this.includeProvenance = config?.includeProvenance ?? false;
111
+ }
112
+ async assemble(action, retrieved, toolResults, options) {
113
+ try {
114
+ // 1. Check abort signal
115
+ if (options?.signal?.aborted) {
116
+ return { ok: false, error: new AssemblerError('Aborted', 'ABORTED') };
117
+ }
118
+ // 2. Sort facts, feedback, state by score descending (stable copy, no mutation)
119
+ const sortedFacts = [...retrieved.facts].sort((a, b) => b.score - a.score);
120
+ const sortedFeedback = [...retrieved.feedback].sort((a, b) => b.score - a.score);
121
+ const sortedState = [...retrieved.state].sort((a, b) => b.score - a.score);
122
+ let tools = [...retrieved.tools];
123
+ let facts = sortedFacts;
124
+ let feedback = sortedFeedback;
125
+ let state = sortedState;
126
+ // 3. Apply token budget if configured
127
+ if (this.maxTokens !== undefined) {
128
+ const actionTokens = estimateTokens(action.text);
129
+ const budgeted = applyTokenBudget(facts, feedback, state, tools, actionTokens, this.maxTokens, this.includeProvenance);
130
+ facts = budgeted.facts;
131
+ feedback = budgeted.feedback;
132
+ state = budgeted.state;
133
+ tools = budgeted.tools;
134
+ }
135
+ // 4. Build system content
136
+ const systemContent = buildSystemContent(facts, feedback, state, tools, this.includeProvenance);
137
+ // 5. Assemble messages
138
+ const messages = [];
139
+ // a. System message (only if preamble or content is non-empty)
140
+ const preamble = this.systemPromptPreamble ?? '';
141
+ if (preamble || systemContent) {
142
+ const parts = [preamble, systemContent].filter(Boolean);
143
+ messages.push({ role: 'system', content: parts.join('\n\n') });
144
+ }
145
+ // b. User message with action text
146
+ messages.push({ role: 'user', content: action.text });
147
+ // c. Tool result messages
148
+ for (const tr of toolResults) {
149
+ messages.push({
150
+ role: 'tool',
151
+ content: `${tr.call.name}: ${toolResultContent(tr.result)}`,
152
+ });
153
+ }
154
+ // 6. Return success
155
+ return { ok: true, value: messages };
156
+ }
157
+ catch (err) {
158
+ return {
159
+ ok: false,
160
+ error: new AssemblerError(String(err), 'ASSEMBLER_ERROR'),
161
+ };
162
+ }
163
+ }
164
+ }
165
+ //# sourceMappingURL=context-assembler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-assembler.js","sourceRoot":"","sources":["../../../src/smart-agent/context/context-assembler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export type { ContextAssemblerConfig } from './context-assembler.js';
2
+ export { ContextAssembler } from './context-assembler.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/smart-agent/context/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { ContextAssembler } from './context-assembler.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/smart-agent/context/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { Message } from '../../types.js';
2
+ import type { AssemblerError, CallOptions, McpTool, RagResult, Result, Subprompt, ToolCallRecord } from './types.js';
3
+ export interface IContextAssembler {
4
+ assemble(action: Subprompt, retrieved: {
5
+ facts: RagResult[];
6
+ feedback: RagResult[];
7
+ state: RagResult[];
8
+ tools: McpTool[];
9
+ }, toolResults: ToolCallRecord[], options?: CallOptions): Promise<Result<Message[], AssemblerError>>;
10
+ }
11
+ //# sourceMappingURL=assembler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assembler.d.ts","sourceRoot":"","sources":["../../../src/smart-agent/interfaces/assembler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,OAAO,EACP,SAAS,EACT,MAAM,EACN,SAAS,EACT,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CACN,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE;QACT,KAAK,EAAE,SAAS,EAAE,CAAC;QACnB,QAAQ,EAAE,SAAS,EAAE,CAAC;QACtB,KAAK,EAAE,SAAS,EAAE,CAAC;QACnB,KAAK,EAAE,OAAO,EAAE,CAAC;KAClB,EACD,WAAW,EAAE,cAAc,EAAE,EAC7B,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;CAC/C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=assembler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assembler.js","sourceRoot":"","sources":["../../../src/smart-agent/interfaces/assembler.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import type { CallOptions, ClassifierError, Result, Subprompt } from './types.js';
2
+ export interface ISubpromptClassifier {
3
+ classify(text: string, options?: CallOptions): Promise<Result<Subprompt[], ClassifierError>>;
4
+ }
5
+ //# sourceMappingURL=classifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../../../src/smart-agent/interfaces/classifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,MAAM,EACN,SAAS,EACV,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CACN,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;CAClD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=classifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classifier.js","sourceRoot":"","sources":["../../../src/smart-agent/interfaces/classifier.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ export type { IContextAssembler } from './assembler.js';
2
+ export type { ISubpromptClassifier } from './classifier.js';
3
+ export type { ILlm } from './llm.js';
4
+ export type { IMcpClient } from './mcp-client.js';
5
+ export type { IRag } from './rag.js';
6
+ export type { AgentConfig, CallOptions, ContextFrame, LlmFinishReason, LlmResponse, LlmTool, LlmToolCall, McpTool, McpToolResult, RagMetadata, RagResult, Result, Subprompt, SubpromptType, ToolCallRecord, TraceContext, } from './types.js';
7
+ export { AssemblerError, ClassifierError, LlmError, McpError, RagError, SmartAgentError, } from './types.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/smart-agent/interfaces/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,YAAY,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACrC,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACrC,YAAY,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,eAAe,EACf,WAAW,EACX,OAAO,EACP,WAAW,EACX,OAAO,EACP,aAAa,EACb,WAAW,EACX,SAAS,EACT,MAAM,EACN,SAAS,EACT,aAAa,EACb,cAAc,EACd,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,cAAc,EACd,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,eAAe,GAChB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { AssemblerError, ClassifierError, LlmError, McpError, RagError, SmartAgentError, } from './types.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/smart-agent/interfaces/index.ts"],"names":[],"mappings":"AAuBA,OAAO,EACL,cAAc,EACd,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,eAAe,GAChB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { Message } from '../../types.js';
2
+ import type { CallOptions, LlmError, LlmResponse, LlmTool, Result } from './types.js';
3
+ export interface ILlm {
4
+ chat(messages: Message[], tools?: LlmTool[], options?: CallOptions): Promise<Result<LlmResponse, LlmError>>;
5
+ }
6
+ //# sourceMappingURL=llm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../../../src/smart-agent/interfaces/llm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EACR,WAAW,EACX,OAAO,EACP,MAAM,EACP,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,IAAI;IACnB,IAAI,CACF,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,CAAC,EAAE,OAAO,EAAE,EACjB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;CAC3C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=llm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm.js","sourceRoot":"","sources":["../../../src/smart-agent/interfaces/llm.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import type { CallOptions, McpError, McpTool, McpToolResult, Result } from './types.js';
2
+ export interface IMcpClient {
3
+ listTools(options?: CallOptions): Promise<Result<McpTool[], McpError>>;
4
+ callTool(name: string, args: Record<string, unknown>, options?: CallOptions): Promise<Result<McpToolResult, McpError>>;
5
+ }
6
+ //# sourceMappingURL=mcp-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../../src/smart-agent/interfaces/mcp-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EACR,OAAO,EACP,aAAa,EACb,MAAM,EACP,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEvE,QAAQ,CACN,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;CAC7C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mcp-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../../../src/smart-agent/interfaces/mcp-client.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import type { CallOptions, RagError, RagMetadata, RagResult, Result } from './types.js';
2
+ export interface IRag {
3
+ upsert(text: string, metadata: RagMetadata, options?: CallOptions): Promise<Result<void, RagError>>;
4
+ query(text: string, k: number, options?: CallOptions): Promise<Result<RagResult[], RagError>>;
5
+ }
6
+ //# sourceMappingURL=rag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rag.d.ts","sourceRoot":"","sources":["../../../src/smart-agent/interfaces/rag.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EACR,WAAW,EACX,SAAS,EACT,MAAM,EACP,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,IAAI;IACnB,MAAM,CACJ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,WAAW,EACrB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEnC,KAAK,CACH,IAAI,EAAE,MAAM,EACZ,CAAC,EAAE,MAAM,EACT,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;CAC3C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=rag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rag.js","sourceRoot":"","sources":["../../../src/smart-agent/interfaces/rag.ts"],"names":[],"mappings":""}