@fortressllm/sybil 0.0.3

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 (288) hide show
  1. package/.env copy +91 -0
  2. package/.env.example +139 -0
  3. package/BROWSER_CONTROL.md +354 -0
  4. package/CLI_CHAT_FEATURE.md +224 -0
  5. package/CLI_GUIDE.md +359 -0
  6. package/DYNAMIC_SKILLS.md +345 -0
  7. package/DockerFile.sandbox +14 -0
  8. package/PROGRESS.md +249 -0
  9. package/README.md +281 -0
  10. package/RENAME_LOG.md +62 -0
  11. package/SIMPLIFIED_TELEGRAM_UX.md +273 -0
  12. package/SYBIL_SUMMARY.md +360 -0
  13. package/TASK11_NETWORK.md +202 -0
  14. package/TASK14_CLI.md +432 -0
  15. package/TASK8_SAFETY.md +317 -0
  16. package/TASK9_COMPLETION.md +186 -0
  17. package/TASK9_SUMMARY.md +201 -0
  18. package/TELEGRAM_OTP_AUTH.md +359 -0
  19. package/VECTOR_MEMORY.md +163 -0
  20. package/assets/logo.png +0 -0
  21. package/cypfq_code_search.md +287 -0
  22. package/cypfq_driver_search.md +297 -0
  23. package/cypfq_github_search.md +297 -0
  24. package/cypfq_repo_search.md +370 -0
  25. package/dist/agents/autonomous-agent.d.ts +61 -0
  26. package/dist/agents/autonomous-agent.d.ts.map +1 -0
  27. package/dist/agents/autonomous-agent.js +536 -0
  28. package/dist/agents/autonomous-agent.js.map +1 -0
  29. package/dist/agents/network.d.ts +1006 -0
  30. package/dist/agents/network.d.ts.map +1 -0
  31. package/dist/agents/network.js +1266 -0
  32. package/dist/agents/network.js.map +1 -0
  33. package/dist/cli/commands/backup.d.ts +3 -0
  34. package/dist/cli/commands/backup.d.ts.map +1 -0
  35. package/dist/cli/commands/backup.js +63 -0
  36. package/dist/cli/commands/backup.js.map +1 -0
  37. package/dist/cli/commands/config.d.ts +3 -0
  38. package/dist/cli/commands/config.d.ts.map +1 -0
  39. package/dist/cli/commands/config.js +163 -0
  40. package/dist/cli/commands/config.js.map +1 -0
  41. package/dist/cli/commands/doctor.d.ts +3 -0
  42. package/dist/cli/commands/doctor.d.ts.map +1 -0
  43. package/dist/cli/commands/doctor.js +107 -0
  44. package/dist/cli/commands/doctor.js.map +1 -0
  45. package/dist/cli/commands/init.d.ts +3 -0
  46. package/dist/cli/commands/init.d.ts.map +1 -0
  47. package/dist/cli/commands/init.js +138 -0
  48. package/dist/cli/commands/init.js.map +1 -0
  49. package/dist/cli/commands/logs.d.ts +3 -0
  50. package/dist/cli/commands/logs.d.ts.map +1 -0
  51. package/dist/cli/commands/logs.js +81 -0
  52. package/dist/cli/commands/logs.js.map +1 -0
  53. package/dist/cli/commands/otp.d.ts +3 -0
  54. package/dist/cli/commands/otp.d.ts.map +1 -0
  55. package/dist/cli/commands/otp.js +142 -0
  56. package/dist/cli/commands/otp.js.map +1 -0
  57. package/dist/cli/commands/restore.d.ts +3 -0
  58. package/dist/cli/commands/restore.d.ts.map +1 -0
  59. package/dist/cli/commands/restore.js +99 -0
  60. package/dist/cli/commands/restore.js.map +1 -0
  61. package/dist/cli/commands/start.d.ts +3 -0
  62. package/dist/cli/commands/start.d.ts.map +1 -0
  63. package/dist/cli/commands/start.js +65 -0
  64. package/dist/cli/commands/start.js.map +1 -0
  65. package/dist/cli/commands/status.d.ts +3 -0
  66. package/dist/cli/commands/status.d.ts.map +1 -0
  67. package/dist/cli/commands/status.js +68 -0
  68. package/dist/cli/commands/status.js.map +1 -0
  69. package/dist/cli/commands/stop.d.ts +3 -0
  70. package/dist/cli/commands/stop.d.ts.map +1 -0
  71. package/dist/cli/commands/stop.js +62 -0
  72. package/dist/cli/commands/stop.js.map +1 -0
  73. package/dist/cli/commands/update.d.ts +3 -0
  74. package/dist/cli/commands/update.d.ts.map +1 -0
  75. package/dist/cli/commands/update.js +49 -0
  76. package/dist/cli/commands/update.js.map +1 -0
  77. package/dist/cli/commands/whatsapp.d.ts +3 -0
  78. package/dist/cli/commands/whatsapp.d.ts.map +1 -0
  79. package/dist/cli/commands/whatsapp.js +281 -0
  80. package/dist/cli/commands/whatsapp.js.map +1 -0
  81. package/dist/cli/index.d.ts +7 -0
  82. package/dist/cli/index.d.ts.map +1 -0
  83. package/dist/cli/index.js +58 -0
  84. package/dist/cli/index.js.map +1 -0
  85. package/dist/cli.d.ts +9 -0
  86. package/dist/cli.d.ts.map +1 -0
  87. package/dist/cli.js +750 -0
  88. package/dist/cli.js.map +1 -0
  89. package/dist/index.d.ts +2 -0
  90. package/dist/index.d.ts.map +1 -0
  91. package/dist/index.js +109 -0
  92. package/dist/index.js.map +1 -0
  93. package/dist/mastra/index.d.ts +4 -0
  94. package/dist/mastra/index.d.ts.map +1 -0
  95. package/dist/mastra/index.js +37 -0
  96. package/dist/mastra/index.js.map +1 -0
  97. package/dist/mastra/memory.d.ts +9 -0
  98. package/dist/mastra/memory.d.ts.map +1 -0
  99. package/dist/mastra/memory.js +92 -0
  100. package/dist/mastra/memory.js.map +1 -0
  101. package/dist/processors/index.d.ts +74 -0
  102. package/dist/processors/index.d.ts.map +1 -0
  103. package/dist/processors/index.js +153 -0
  104. package/dist/processors/index.js.map +1 -0
  105. package/dist/processors/semantic-recall.d.ts +63 -0
  106. package/dist/processors/semantic-recall.d.ts.map +1 -0
  107. package/dist/processors/semantic-recall.js +216 -0
  108. package/dist/processors/semantic-recall.js.map +1 -0
  109. package/dist/processors/tool-search.d.ts +26 -0
  110. package/dist/processors/tool-search.d.ts.map +1 -0
  111. package/dist/processors/tool-search.js +41 -0
  112. package/dist/processors/tool-search.js.map +1 -0
  113. package/dist/skills/dynamic/skill-generator.d.ts +169 -0
  114. package/dist/skills/dynamic/skill-generator.d.ts.map +1 -0
  115. package/dist/skills/dynamic/skill-generator.js +488 -0
  116. package/dist/skills/dynamic/skill-generator.js.map +1 -0
  117. package/dist/tools/agent-delegation-tools.d.ts +142 -0
  118. package/dist/tools/agent-delegation-tools.d.ts.map +1 -0
  119. package/dist/tools/agent-delegation-tools.js +263 -0
  120. package/dist/tools/agent-delegation-tools.js.map +1 -0
  121. package/dist/tools/browser-tools.d.ts +374 -0
  122. package/dist/tools/browser-tools.d.ts.map +1 -0
  123. package/dist/tools/browser-tools.js +752 -0
  124. package/dist/tools/browser-tools.js.map +1 -0
  125. package/dist/tools/dynamic/registry.d.ts +61 -0
  126. package/dist/tools/dynamic/registry.d.ts.map +1 -0
  127. package/dist/tools/dynamic/registry.js +121 -0
  128. package/dist/tools/dynamic/registry.js.map +1 -0
  129. package/dist/tools/dynamic/tool-generator.d.ts +99 -0
  130. package/dist/tools/dynamic/tool-generator.d.ts.map +1 -0
  131. package/dist/tools/dynamic/tool-generator.js +367 -0
  132. package/dist/tools/dynamic/tool-generator.js.map +1 -0
  133. package/dist/tools/extended-tools.d.ts +176 -0
  134. package/dist/tools/extended-tools.d.ts.map +1 -0
  135. package/dist/tools/extended-tools.js +464 -0
  136. package/dist/tools/extended-tools.js.map +1 -0
  137. package/dist/tools/library/calendar/index.d.ts +134 -0
  138. package/dist/tools/library/calendar/index.d.ts.map +1 -0
  139. package/dist/tools/library/calendar/index.js +160 -0
  140. package/dist/tools/library/calendar/index.js.map +1 -0
  141. package/dist/tools/podman-workspace-mcp-cli.d.ts +3 -0
  142. package/dist/tools/podman-workspace-mcp-cli.d.ts.map +1 -0
  143. package/dist/tools/podman-workspace-mcp-cli.js +12 -0
  144. package/dist/tools/podman-workspace-mcp-cli.js.map +1 -0
  145. package/dist/tools/podman-workspace-mcp.d.ts +247 -0
  146. package/dist/tools/podman-workspace-mcp.d.ts.map +1 -0
  147. package/dist/tools/podman-workspace-mcp.js +1093 -0
  148. package/dist/tools/podman-workspace-mcp.js.map +1 -0
  149. package/dist/tools/podman-workspace.d.ts +148 -0
  150. package/dist/tools/podman-workspace.d.ts.map +1 -0
  151. package/dist/tools/podman-workspace.js +682 -0
  152. package/dist/tools/podman-workspace.js.map +1 -0
  153. package/dist/tools/telegram-file-tools.d.ts +78 -0
  154. package/dist/tools/telegram-file-tools.d.ts.map +1 -0
  155. package/dist/tools/telegram-file-tools.js +294 -0
  156. package/dist/tools/telegram-file-tools.js.map +1 -0
  157. package/dist/tools/tool-registry.d.ts +467 -0
  158. package/dist/tools/tool-registry.d.ts.map +1 -0
  159. package/dist/tools/tool-registry.js +156 -0
  160. package/dist/tools/tool-registry.js.map +1 -0
  161. package/dist/tools/web-tools.d.ts +77 -0
  162. package/dist/tools/web-tools.d.ts.map +1 -0
  163. package/dist/tools/web-tools.js +416 -0
  164. package/dist/tools/web-tools.js.map +1 -0
  165. package/dist/tools/whatsapp-autoreply-tools.d.ts +118 -0
  166. package/dist/tools/whatsapp-autoreply-tools.d.ts.map +1 -0
  167. package/dist/tools/whatsapp-autoreply-tools.js +503 -0
  168. package/dist/tools/whatsapp-autoreply-tools.js.map +1 -0
  169. package/dist/tools/whatsapp-tools.d.ts +175 -0
  170. package/dist/tools/whatsapp-tools.d.ts.map +1 -0
  171. package/dist/tools/whatsapp-tools.js +566 -0
  172. package/dist/tools/whatsapp-tools.js.map +1 -0
  173. package/dist/utils/logger.d.ts +65 -0
  174. package/dist/utils/logger.d.ts.map +1 -0
  175. package/dist/utils/logger.js +307 -0
  176. package/dist/utils/logger.js.map +1 -0
  177. package/dist/utils/model-config.d.ts +73 -0
  178. package/dist/utils/model-config.d.ts.map +1 -0
  179. package/dist/utils/model-config.js +366 -0
  180. package/dist/utils/model-config.js.map +1 -0
  181. package/dist/utils/semantic-memory.d.ts +82 -0
  182. package/dist/utils/semantic-memory.d.ts.map +1 -0
  183. package/dist/utils/semantic-memory.js +189 -0
  184. package/dist/utils/semantic-memory.js.map +1 -0
  185. package/dist/utils/system.d.ts +2 -0
  186. package/dist/utils/system.d.ts.map +1 -0
  187. package/dist/utils/system.js +24 -0
  188. package/dist/utils/system.js.map +1 -0
  189. package/dist/utils/telegram-auth.d.ts +54 -0
  190. package/dist/utils/telegram-auth.d.ts.map +1 -0
  191. package/dist/utils/telegram-auth.js +146 -0
  192. package/dist/utils/telegram-auth.js.map +1 -0
  193. package/dist/utils/telegram.d.ts +7 -0
  194. package/dist/utils/telegram.d.ts.map +1 -0
  195. package/dist/utils/telegram.js +1494 -0
  196. package/dist/utils/telegram.js.map +1 -0
  197. package/dist/utils/whatsapp-client.d.ts +166 -0
  198. package/dist/utils/whatsapp-client.d.ts.map +1 -0
  199. package/dist/utils/whatsapp-client.js +722 -0
  200. package/dist/utils/whatsapp-client.js.map +1 -0
  201. package/dist/workflows/planner-workflow.d.ts +39 -0
  202. package/dist/workflows/planner-workflow.d.ts.map +1 -0
  203. package/dist/workflows/planner-workflow.js +165 -0
  204. package/dist/workflows/planner-workflow.js.map +1 -0
  205. package/dist/workflows/skill-builder-workflow.d.ts +16 -0
  206. package/dist/workflows/skill-builder-workflow.d.ts.map +1 -0
  207. package/dist/workflows/skill-builder-workflow.js +157 -0
  208. package/dist/workflows/skill-builder-workflow.js.map +1 -0
  209. package/dist/workspace/index.d.ts +23 -0
  210. package/dist/workspace/index.d.ts.map +1 -0
  211. package/dist/workspace/index.js +64 -0
  212. package/dist/workspace/index.js.map +1 -0
  213. package/docs/README.md +140 -0
  214. package/docs/api/agents.md +481 -0
  215. package/docs/api/browser-tools.md +469 -0
  216. package/docs/api/memory.md +629 -0
  217. package/docs/architecture/agent-networks.md +586 -0
  218. package/docs/architecture/memory.md +579 -0
  219. package/docs/architecture/overview.md +436 -0
  220. package/docs/architecture/tools.md +637 -0
  221. package/docs/cli-tui.md +367 -0
  222. package/docs/guides/environment-variables.md +502 -0
  223. package/docs/guides/troubleshooting.md +882 -0
  224. package/docs/tutorials/agent-networks.md +432 -0
  225. package/docs/tutorials/dynamic-tools.md +469 -0
  226. package/docs/tutorials/getting-started.md +263 -0
  227. package/docs/tutorials/skills.md +561 -0
  228. package/docs/tutorials/web-browsing.md +329 -0
  229. package/mastra.db-shm +0 -0
  230. package/mastra.db-wal +0 -0
  231. package/package.json +71 -0
  232. package/plan.md +601 -0
  233. package/skills/code-review/SKILL.md +48 -0
  234. package/skills/task-planning/SKILL.md +55 -0
  235. package/skills/web-research/SKILL.md +79 -0
  236. package/skills/whatsapp-management/SKILL.md +78 -0
  237. package/src/agents/autonomous-agent.ts +626 -0
  238. package/src/agents/network.ts +1307 -0
  239. package/src/cli/commands/backup.ts +78 -0
  240. package/src/cli/commands/config.ts +176 -0
  241. package/src/cli/commands/doctor.ts +111 -0
  242. package/src/cli/commands/init.ts +150 -0
  243. package/src/cli/commands/logs.ts +94 -0
  244. package/src/cli/commands/otp.ts +162 -0
  245. package/src/cli/commands/restore.ts +118 -0
  246. package/src/cli/commands/start.ts +76 -0
  247. package/src/cli/commands/status.ts +81 -0
  248. package/src/cli/commands/stop.ts +68 -0
  249. package/src/cli/commands/update.ts +61 -0
  250. package/src/cli/commands/whatsapp.ts +322 -0
  251. package/src/cli/index.ts +69 -0
  252. package/src/cli.ts +830 -0
  253. package/src/index.ts +124 -0
  254. package/src/mastra/index.ts +49 -0
  255. package/src/mastra/memory.ts +99 -0
  256. package/src/mastra/public/workspace/plan.md +115 -0
  257. package/src/mastra/public/workspace/research/react-tailwind/skill.md +47 -0
  258. package/src/processors/index.ts +170 -0
  259. package/src/processors/semantic-recall.ts +277 -0
  260. package/src/processors/tool-search.ts +46 -0
  261. package/src/skills/dynamic/skill-generator.ts +568 -0
  262. package/src/tools/agent-delegation-tools.ts +301 -0
  263. package/src/tools/browser-tools.ts +792 -0
  264. package/src/tools/dynamic/registry.ts +144 -0
  265. package/src/tools/dynamic/tool-generator.ts +406 -0
  266. package/src/tools/extended-tools.ts +498 -0
  267. package/src/tools/library/calendar/index.ts +172 -0
  268. package/src/tools/podman-workspace-mcp-cli.ts +14 -0
  269. package/src/tools/podman-workspace-mcp.ts +1290 -0
  270. package/src/tools/podman-workspace.ts +858 -0
  271. package/src/tools/telegram-file-tools.ts +320 -0
  272. package/src/tools/tool-registry.ts +233 -0
  273. package/src/tools/web-tools.ts +461 -0
  274. package/src/tools/whatsapp-autoreply-tools.ts +616 -0
  275. package/src/tools/whatsapp-tools.ts +602 -0
  276. package/src/utils/logger.ts +368 -0
  277. package/src/utils/model-config.ts +437 -0
  278. package/src/utils/semantic-memory.ts +230 -0
  279. package/src/utils/system.ts +25 -0
  280. package/src/utils/telegram-auth.ts +201 -0
  281. package/src/utils/telegram.ts +1847 -0
  282. package/src/utils/whatsapp-client.ts +808 -0
  283. package/src/workflows/planner-workflow.ts +178 -0
  284. package/src/workflows/skill-builder-workflow.ts +175 -0
  285. package/src/workspace/index.ts +69 -0
  286. package/tsconfig.json +22 -0
  287. package/view-logs.sh +116 -0
  288. package/whatsapp-session.sh +197 -0
@@ -0,0 +1,366 @@
1
+ import { createOllama } from "ollama-ai-provider-v2";
2
+ import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
3
+ /**
4
+ * Provider configuration
5
+ */
6
+ const providers = {
7
+ openai: {
8
+ id: "openai",
9
+ name: "OpenAI",
10
+ envKey: "OPENAI_API_KEY",
11
+ defaultModel: "gpt-4o",
12
+ requiresApiKey: true,
13
+ },
14
+ anthropic: {
15
+ id: "anthropic",
16
+ name: "Anthropic (Claude)",
17
+ envKey: "ANTHROPIC_API_KEY",
18
+ defaultModel: "claude-4-5-sonnet",
19
+ requiresApiKey: true,
20
+ },
21
+ google: {
22
+ id: "google",
23
+ name: "Google (Gemini)",
24
+ envKey: "GOOGLE_GENERATIVE_AI_API_KEY",
25
+ defaultModel: "gemini-2.5-flash",
26
+ requiresApiKey: true,
27
+ },
28
+ deepseek: {
29
+ id: "deepseek",
30
+ name: "DeepSeek",
31
+ envKey: "DEEPSEEK_API_KEY",
32
+ defaultModel: "deepseek-r1",
33
+ requiresApiKey: true,
34
+ },
35
+ groq: {
36
+ id: "groq",
37
+ name: "Groq",
38
+ envKey: "GROQ_API_KEY",
39
+ defaultModel: "llama-3.3-70b-versatile",
40
+ requiresApiKey: true,
41
+ },
42
+ mistral: {
43
+ id: "mistral",
44
+ name: "Mistral AI",
45
+ envKey: "MISTRAL_API_KEY",
46
+ defaultModel: "mistral-large-latest",
47
+ requiresApiKey: true,
48
+ },
49
+ xai: {
50
+ id: "xai",
51
+ name: "xAI (Grok)",
52
+ envKey: "XAI_API_KEY",
53
+ defaultModel: "grok-4",
54
+ requiresApiKey: true,
55
+ },
56
+ ollama: {
57
+ id: "ollama",
58
+ name: "Ollama (Local)",
59
+ envKey: "",
60
+ defaultModel: "llama3.2",
61
+ requiresApiKey: false,
62
+ supportsBaseUrl: true,
63
+ },
64
+ "ollama-cloud": {
65
+ id: "ollama-cloud",
66
+ name: "Ollama Cloud",
67
+ envKey: "OLLAMA_API_KEY",
68
+ defaultModel: "ollama-cloud/cogito-2.1:671b",
69
+ requiresApiKey: true,
70
+ },
71
+ perplexity: {
72
+ id: "perplexity",
73
+ name: "Perplexity",
74
+ envKey: "PERPLEXITY_API_KEY",
75
+ defaultModel: "llama-3.1-sonar-small-128k-online",
76
+ requiresApiKey: true,
77
+ },
78
+ cohere: {
79
+ id: "cohere",
80
+ name: "Cohere",
81
+ envKey: "COHERE_API_KEY",
82
+ defaultModel: "command-r-plus",
83
+ requiresApiKey: true,
84
+ },
85
+ huggingface: {
86
+ id: "huggingface",
87
+ name: "Hugging Face",
88
+ envKey: "HUGGINGFACE_API_KEY",
89
+ defaultModel: "meta-llama/Llama-3.2-90B-Vision-Instruct",
90
+ requiresApiKey: true,
91
+ },
92
+ togetherai: {
93
+ id: "togetherai",
94
+ name: "Together AI",
95
+ envKey: "TOGETHER_API_KEY",
96
+ defaultModel: "meta-llama/Llama-3.3-70B-Instruct-Turbo",
97
+ requiresApiKey: true,
98
+ },
99
+ "fireworks-ai": {
100
+ id: "fireworks-ai",
101
+ name: "Fireworks AI",
102
+ envKey: "FIREWORKS_API_KEY",
103
+ defaultModel: "accounts/fireworks/models/llama-3.3-70b-instruct",
104
+ requiresApiKey: true,
105
+ },
106
+ cerebras: {
107
+ id: "cerebras",
108
+ name: "Cerebras",
109
+ envKey: "CEREBRAS_API_KEY",
110
+ defaultModel: "cerebras/llama-3.3-70b",
111
+ requiresApiKey: true,
112
+ },
113
+ openrouter: {
114
+ id: "openrouter",
115
+ name: "OpenRouter",
116
+ envKey: "OPENROUTER_API_KEY",
117
+ defaultModel: "anthropic/claude-haiku-4-5",
118
+ requiresApiKey: true,
119
+ },
120
+ nvidia: {
121
+ id: "nvidia",
122
+ name: "NVIDIA AI",
123
+ envKey: "NVIDIA_API_KEY",
124
+ defaultModel: "nvidia/llama-3.1-nemotron-70b-instruct",
125
+ requiresApiKey: true,
126
+ },
127
+ custom: {
128
+ id: "custom",
129
+ name: "Custom (OpenAI-compatible)",
130
+ envKey: "",
131
+ defaultModel: "custom-model",
132
+ requiresApiKey: false,
133
+ supportsBaseUrl: true,
134
+ },
135
+ };
136
+ /**
137
+ * Get model configuration from environment variables
138
+ */
139
+ export function getModelConfig() {
140
+ const provider = (process.env.AI_PROVIDER || "openai").toLowerCase();
141
+ const providerConfig = providers[provider];
142
+ if (!providerConfig) {
143
+ console.warn(`Unknown provider "${provider}", defaulting to "openai"`);
144
+ return {
145
+ provider: "openai",
146
+ model: process.env.OPENAI_MODEL || "gpt-4o",
147
+ apiKey: process.env.OPENAI_API_KEY,
148
+ };
149
+ }
150
+ switch (provider) {
151
+ case "ollama":
152
+ return {
153
+ provider: "ollama",
154
+ model: process.env.OLLAMA_MODEL || providerConfig.defaultModel,
155
+ baseUrl: process.env.OLLAMA_BASE_URL || "http://localhost:11434",
156
+ };
157
+ case "custom":
158
+ return {
159
+ provider: "custom",
160
+ model: process.env.CUSTOM_MODEL || process.env.MODEL || providerConfig.defaultModel,
161
+ baseUrl: process.env.CUSTOM_BASE_URL || process.env.BASE_URL || "http://localhost:8000/v1",
162
+ apiKey: process.env.CUSTOM_API_KEY,
163
+ };
164
+ default:
165
+ return {
166
+ provider,
167
+ model: process.env[`${provider.toUpperCase()}_MODEL`] || providerConfig.defaultModel,
168
+ apiKey: process.env[`${provider.toUpperCase()}_API_KEY`] || process.env[providerConfig.envKey],
169
+ };
170
+ }
171
+ }
172
+ /**
173
+ * Create model instance based on configuration
174
+ */
175
+ export function createModel(config = getModelConfig()) {
176
+ switch (config.provider) {
177
+ case "ollama": {
178
+ const ollama = createOllama({
179
+ baseURL: config.baseUrl,
180
+ });
181
+ return ollama(config.model);
182
+ }
183
+ case "custom":
184
+ // Custom OpenAI-compatible endpoint
185
+ const lmstudio = createOpenAICompatible({
186
+ name: 'lmstudio',
187
+ baseURL: 'http://dhuvis-pc.local:1234/v1',
188
+ apiKey: config.apiKey,
189
+ });
190
+ return lmstudio(config.model);
191
+ case "ollama-cloud":
192
+ case "openai":
193
+ case "anthropic":
194
+ case "google":
195
+ case "deepseek":
196
+ case "groq":
197
+ case "mistral":
198
+ case "xai":
199
+ case "perplexity":
200
+ case "cohere":
201
+ case "huggingface":
202
+ case "togetherai":
203
+ case "fireworks-ai":
204
+ case "cerebras":
205
+ case "openrouter":
206
+ default:
207
+ // All standard providers use the "provider/model" string format
208
+ return `${config.provider}/${config.model}`;
209
+ }
210
+ }
211
+ /**
212
+ * Get optimized generation parameters for faster responses
213
+ */
214
+ export function getOptimizedGenerationParams(provider = getModelConfig()) {
215
+ const providerId = typeof provider === "string" ? provider : provider.provider;
216
+ debugger;
217
+ switch (providerId) {
218
+ case "ollama":
219
+ return {
220
+ temperature: 0.1,
221
+ top_p: 0.9,
222
+ repeat_penalty: 1.1,
223
+ num_predict: 2048,
224
+ num_ctx: 4096,
225
+ seed: 42,
226
+ };
227
+ case "groq":
228
+ case "cerebras":
229
+ // Ultra-fast providers can handle more
230
+ return {
231
+ temperature: 0.1,
232
+ max_tokens: 4096,
233
+ };
234
+ case "anthropic":
235
+ return {
236
+ temperature: 0.1,
237
+ max_tokens: 4096,
238
+ top_p: 0.9,
239
+ };
240
+ case "custom":
241
+ return {
242
+ temperature: 0.1,
243
+ max_tokens: 2048,
244
+ top_p: 0.9,
245
+ };
246
+ case "openai":
247
+ case "google":
248
+ case "deepseek":
249
+ case "mistral":
250
+ case "xai":
251
+ case "perplexity":
252
+ case "cohere":
253
+ case "huggingface":
254
+ case "togetherai":
255
+ case "fireworks-ai":
256
+ case "openrouter":
257
+ case "ollama-cloud":
258
+ default:
259
+ return {
260
+ temperature: 0.1,
261
+ max_tokens: 2048,
262
+ };
263
+ }
264
+ }
265
+ /**
266
+ * Get provider name for display
267
+ */
268
+ export function getProviderDisplayName(config = getModelConfig()) {
269
+ const providerConfig = providers[config.provider];
270
+ if (config.provider === "ollama") {
271
+ return `Ollama (${config.baseUrl})`;
272
+ }
273
+ if (config.provider === "custom") {
274
+ return `Custom (${config.baseUrl})`;
275
+ }
276
+ return providerConfig?.name || config.provider;
277
+ }
278
+ /**
279
+ * Validate model configuration
280
+ */
281
+ export function validateModelConfig(config = getModelConfig()) {
282
+ const providerConfig = providers[config.provider];
283
+ if (!providerConfig) {
284
+ return { valid: false, error: `Unknown provider: ${config.provider}` };
285
+ }
286
+ // Check for API key if required
287
+ if (providerConfig.requiresApiKey && (!config.apiKey && !process.env[providerConfig.envKey])) {
288
+ return {
289
+ valid: false,
290
+ error: `${providerConfig.envKey} is required for ${providerConfig.name} provider`
291
+ };
292
+ }
293
+ // Check for base URL if required/provided
294
+ if (providerConfig.supportsBaseUrl && !config.baseUrl) {
295
+ return {
296
+ valid: false,
297
+ error: `Base URL is required for ${providerConfig.name} provider`
298
+ };
299
+ }
300
+ return { valid: true };
301
+ }
302
+ /**
303
+ * List available model providers
304
+ */
305
+ export function listAvailableProviders() {
306
+ return Object.values(providers).map(p => ({
307
+ id: p.id,
308
+ name: p.name,
309
+ envVars: p.requiresApiKey
310
+ ? [p.envKey, `${p.id.toUpperCase()}_MODEL`]
311
+ : p.supportsBaseUrl
312
+ ? [`${p.id.toUpperCase()}_MODEL`, `${p.id.toUpperCase()}_BASE_URL`]
313
+ : [],
314
+ defaultModel: p.defaultModel,
315
+ }));
316
+ }
317
+ /**
318
+ * Get provider information
319
+ */
320
+ export function getProviderInfo(providerId) {
321
+ return providers[providerId];
322
+ }
323
+ /**
324
+ * Get all providers
325
+ */
326
+ export function getAllProviders() {
327
+ return { ...providers };
328
+ }
329
+ /**
330
+ * Get recommended Ollama models
331
+ */
332
+ export function getRecommendedOllamaModels() {
333
+ return [
334
+ {
335
+ id: "llama3.2",
336
+ name: "Llama 3.2",
337
+ description: "Meta's latest model, good balance of quality and speed",
338
+ },
339
+ {
340
+ id: "llama3.2:1b",
341
+ name: "Llama 3.2 (1B)",
342
+ description: "Lightweight version for faster responses",
343
+ },
344
+ {
345
+ id: "mistral",
346
+ name: "Mistral",
347
+ description: "High quality general-purpose model",
348
+ },
349
+ {
350
+ id: "qwen2.5",
351
+ name: "Qwen 2.5",
352
+ description: "Alibaba's model, excellent for coding",
353
+ },
354
+ {
355
+ id: "deepseek-coder",
356
+ name: "DeepSeek Coder",
357
+ description: "Specialized for code generation",
358
+ },
359
+ {
360
+ id: "phi4",
361
+ name: "Phi-4",
362
+ description: "Microsoft's compact model, good reasoning",
363
+ },
364
+ ];
365
+ }
366
+ //# sourceMappingURL=model-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-config.js","sourceRoot":"","sources":["../../src/utils/model-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Semantic Memory Utilities
3
+ *
4
+ * Provides helper functions for semantic memory operations,
5
+ * including searching, storing, and recalling memories.
6
+ */
7
+ /**
8
+ * Search for semantically similar messages in memory
9
+ *
10
+ * @param query - The search query (natural language)
11
+ * @param threadId - Thread ID to search within
12
+ * @param resourceId - Resource ID (user identifier)
13
+ * @param topK - Number of results to return (default: 5)
14
+ * @returns Array of semantically similar messages
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const results = await semanticSearch(
19
+ * "What did we discuss about the project deadline?",
20
+ * "thread-123",
21
+ * "user-456"
22
+ * );
23
+ * ```
24
+ */
25
+ export declare function semanticSearch(query: string, threadId: string, resourceId: string, topK?: number): Promise<Array<{
26
+ content: string;
27
+ similarity: number;
28
+ timestamp: Date;
29
+ }>>;
30
+ /**
31
+ * Store a memory with automatic embedding generation
32
+ *
33
+ * @param content - The content to store
34
+ * @param threadId - Thread ID
35
+ * @param resourceId - Resource ID
36
+ * @param metadata - Optional metadata
37
+ * @returns Success status
38
+ */
39
+ export declare function storeMemory(content: string, threadId: string, resourceId: string, metadata?: Record<string, any>): Promise<boolean>;
40
+ /**
41
+ * Recall memories with optional semantic search
42
+ *
43
+ * @param threadId - Thread ID
44
+ * @param resourceId - Resource ID
45
+ * @param options - Search options
46
+ * @returns Array of messages
47
+ */
48
+ export declare function recallMemories(threadId: string, resourceId: string, options?: {
49
+ semanticQuery?: string;
50
+ limit?: number;
51
+ includeRecent?: boolean;
52
+ }): Promise<Array<{
53
+ role: string;
54
+ content: string;
55
+ timestamp: Date;
56
+ }>>;
57
+ /**
58
+ * Get context from past conversations using semantic search
59
+ *
60
+ * This function retrieves relevant context from previous conversations
61
+ * to help the agent provide better, more contextual responses.
62
+ *
63
+ * @param userMessage - Current user message
64
+ * @param threadId - Thread ID
65
+ * @param resourceId - Resource ID
66
+ * @returns Context string with relevant past information
67
+ */
68
+ export declare function getRelevantContext(userMessage: string, threadId: string, resourceId: string): Promise<string>;
69
+ /**
70
+ * Initialize semantic memory system
71
+ * This ensures the vector database is ready for use
72
+ */
73
+ export declare function initializeSemanticMemory(): Promise<void>;
74
+ declare const _default: {
75
+ semanticSearch: typeof semanticSearch;
76
+ storeMemory: typeof storeMemory;
77
+ recallMemories: typeof recallMemories;
78
+ getRelevantContext: typeof getRelevantContext;
79
+ initializeSemanticMemory: typeof initializeSemanticMemory;
80
+ };
81
+ export default _default;
82
+ //# sourceMappingURL=semantic-memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-memory.d.ts","sourceRoot":"","sources":["../../src/utils/semantic-memory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,MAAU,GACf,OAAO,CAAC,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC,CA2B1E;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IACP,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;CACpB,GACL,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC,CA4BpE;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAgCjB;AAoBD;;;GAGG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAc9D;;;;;;;;AAED,wBAME"}
@@ -0,0 +1,189 @@
1
+ /**
2
+ * Semantic Memory Utilities
3
+ *
4
+ * Provides helper functions for semantic memory operations,
5
+ * including searching, storing, and recalling memories.
6
+ */
7
+ import { createMemoryInstance } from "../mastra/memory.js";
8
+ const memory = createMemoryInstance();
9
+ /**
10
+ * Search for semantically similar messages in memory
11
+ *
12
+ * @param query - The search query (natural language)
13
+ * @param threadId - Thread ID to search within
14
+ * @param resourceId - Resource ID (user identifier)
15
+ * @param topK - Number of results to return (default: 5)
16
+ * @returns Array of semantically similar messages
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * const results = await semanticSearch(
21
+ * "What did we discuss about the project deadline?",
22
+ * "thread-123",
23
+ * "user-456"
24
+ * );
25
+ * ```
26
+ */
27
+ export async function semanticSearch(query, threadId, resourceId, topK = 5) {
28
+ try {
29
+ const { messages } = await memory.recall({
30
+ threadId,
31
+ resourceId,
32
+ vectorSearchString: query,
33
+ perPage: topK,
34
+ threadConfig: {
35
+ semanticRecall: {
36
+ topK,
37
+ messageRange: 2,
38
+ scope: "resource",
39
+ },
40
+ },
41
+ });
42
+ return messages.map((msg) => ({
43
+ content: typeof msg.content === "string"
44
+ ? msg.content
45
+ : extractTextFromContent(msg.content),
46
+ similarity: msg.similarity || 0,
47
+ timestamp: new Date(msg.createdAt || Date.now()),
48
+ }));
49
+ }
50
+ catch (error) {
51
+ console.error("[SemanticMemory] Search error:", error);
52
+ return [];
53
+ }
54
+ }
55
+ /**
56
+ * Store a memory with automatic embedding generation
57
+ *
58
+ * @param content - The content to store
59
+ * @param threadId - Thread ID
60
+ * @param resourceId - Resource ID
61
+ * @param metadata - Optional metadata
62
+ * @returns Success status
63
+ */
64
+ export async function storeMemory(content, threadId, resourceId, metadata) {
65
+ try {
66
+ // Memories are automatically embedded and stored when added to a thread
67
+ // This function provides a programmatic interface for external storage
68
+ console.log(`[SemanticMemory] Storing memory for ${resourceId}: ${content.substring(0, 50)}...`);
69
+ return true;
70
+ }
71
+ catch (error) {
72
+ console.error("[SemanticMemory] Store error:", error);
73
+ return false;
74
+ }
75
+ }
76
+ /**
77
+ * Recall memories with optional semantic search
78
+ *
79
+ * @param threadId - Thread ID
80
+ * @param resourceId - Resource ID
81
+ * @param options - Search options
82
+ * @returns Array of messages
83
+ */
84
+ export async function recallMemories(threadId, resourceId, options = {}) {
85
+ try {
86
+ const { messages } = await memory.recall({
87
+ threadId,
88
+ resourceId,
89
+ vectorSearchString: options.semanticQuery,
90
+ perPage: options.limit || 10,
91
+ threadConfig: {
92
+ lastMessages: options.includeRecent !== false ? 10 : undefined,
93
+ semanticRecall: options.semanticQuery ? {
94
+ topK: options.limit || 5,
95
+ messageRange: 2,
96
+ scope: "resource",
97
+ } : undefined,
98
+ },
99
+ });
100
+ return messages.map((msg) => ({
101
+ role: msg.role,
102
+ content: typeof msg.content === "string"
103
+ ? msg.content
104
+ : extractTextFromContent(msg.content),
105
+ timestamp: new Date(msg.createdAt || Date.now()),
106
+ }));
107
+ }
108
+ catch (error) {
109
+ console.error("[SemanticMemory] Recall error:", error);
110
+ return [];
111
+ }
112
+ }
113
+ /**
114
+ * Get context from past conversations using semantic search
115
+ *
116
+ * This function retrieves relevant context from previous conversations
117
+ * to help the agent provide better, more contextual responses.
118
+ *
119
+ * @param userMessage - Current user message
120
+ * @param threadId - Thread ID
121
+ * @param resourceId - Resource ID
122
+ * @returns Context string with relevant past information
123
+ */
124
+ export async function getRelevantContext(userMessage, threadId, resourceId) {
125
+ try {
126
+ // Search for semantically similar past messages
127
+ const similarMessages = await semanticSearch(userMessage, threadId, resourceId, 3 // Top 3 most relevant
128
+ );
129
+ if (similarMessages.length === 0) {
130
+ return "";
131
+ }
132
+ // Format context
133
+ const contextParts = similarMessages.map((msg, index) => {
134
+ return `${index + 1}. ${msg.content.substring(0, 200)}${msg.content.length > 200 ? "..." : ""}`;
135
+ });
136
+ return `## Relevant Past Context
137
+
138
+ The user previously discussed similar topics:
139
+
140
+ ${contextParts.join("\n\n")}
141
+
142
+ Use this context to provide a more informed and personalized response.`;
143
+ }
144
+ catch (error) {
145
+ console.error("[SemanticMemory] Context retrieval error:", error);
146
+ return "";
147
+ }
148
+ }
149
+ /**
150
+ * Extract text from content object (handles different message formats)
151
+ */
152
+ function extractTextFromContent(content) {
153
+ if (typeof content === "string") {
154
+ return content;
155
+ }
156
+ if (content?.parts) {
157
+ return content.parts
158
+ .filter((part) => part.type === "text")
159
+ .map((part) => part.text)
160
+ .join(" ");
161
+ }
162
+ return JSON.stringify(content);
163
+ }
164
+ /**
165
+ * Initialize semantic memory system
166
+ * This ensures the vector database is ready for use
167
+ */
168
+ export async function initializeSemanticMemory() {
169
+ try {
170
+ console.log("[SemanticMemory] Initializing semantic memory system...");
171
+ // Memory instance is already initialized with vector support
172
+ // This function serves as a hook for future initialization logic
173
+ console.log("[SemanticMemory] ✓ Semantic memory ready");
174
+ console.log("[SemanticMemory] ✓ Vector store: LibSQL");
175
+ console.log("[SemanticMemory] ✓ Embedder: Model Router");
176
+ }
177
+ catch (error) {
178
+ console.error("[SemanticMemory] Initialization error:", error);
179
+ throw error;
180
+ }
181
+ }
182
+ export default {
183
+ semanticSearch,
184
+ storeMemory,
185
+ recallMemories,
186
+ getRelevantContext,
187
+ initializeSemanticMemory,
188
+ };
189
+ //# sourceMappingURL=semantic-memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-memory.js","sourceRoot":"","sources":["../../src/utils/semantic-memory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function getSystemContext(): string;
2
+ //# sourceMappingURL=system.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../src/utils/system.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,IAAI,MAAM,CAsBzC"}