@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.
- package/.env copy +91 -0
- package/.env.example +139 -0
- package/BROWSER_CONTROL.md +354 -0
- package/CLI_CHAT_FEATURE.md +224 -0
- package/CLI_GUIDE.md +359 -0
- package/DYNAMIC_SKILLS.md +345 -0
- package/DockerFile.sandbox +14 -0
- package/PROGRESS.md +249 -0
- package/README.md +281 -0
- package/RENAME_LOG.md +62 -0
- package/SIMPLIFIED_TELEGRAM_UX.md +273 -0
- package/SYBIL_SUMMARY.md +360 -0
- package/TASK11_NETWORK.md +202 -0
- package/TASK14_CLI.md +432 -0
- package/TASK8_SAFETY.md +317 -0
- package/TASK9_COMPLETION.md +186 -0
- package/TASK9_SUMMARY.md +201 -0
- package/TELEGRAM_OTP_AUTH.md +359 -0
- package/VECTOR_MEMORY.md +163 -0
- package/assets/logo.png +0 -0
- package/cypfq_code_search.md +287 -0
- package/cypfq_driver_search.md +297 -0
- package/cypfq_github_search.md +297 -0
- package/cypfq_repo_search.md +370 -0
- package/dist/agents/autonomous-agent.d.ts +61 -0
- package/dist/agents/autonomous-agent.d.ts.map +1 -0
- package/dist/agents/autonomous-agent.js +536 -0
- package/dist/agents/autonomous-agent.js.map +1 -0
- package/dist/agents/network.d.ts +1006 -0
- package/dist/agents/network.d.ts.map +1 -0
- package/dist/agents/network.js +1266 -0
- package/dist/agents/network.js.map +1 -0
- package/dist/cli/commands/backup.d.ts +3 -0
- package/dist/cli/commands/backup.d.ts.map +1 -0
- package/dist/cli/commands/backup.js +63 -0
- package/dist/cli/commands/backup.js.map +1 -0
- package/dist/cli/commands/config.d.ts +3 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +163 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +3 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +107 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/init.d.ts +3 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +138 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/logs.d.ts +3 -0
- package/dist/cli/commands/logs.d.ts.map +1 -0
- package/dist/cli/commands/logs.js +81 -0
- package/dist/cli/commands/logs.js.map +1 -0
- package/dist/cli/commands/otp.d.ts +3 -0
- package/dist/cli/commands/otp.d.ts.map +1 -0
- package/dist/cli/commands/otp.js +142 -0
- package/dist/cli/commands/otp.js.map +1 -0
- package/dist/cli/commands/restore.d.ts +3 -0
- package/dist/cli/commands/restore.d.ts.map +1 -0
- package/dist/cli/commands/restore.js +99 -0
- package/dist/cli/commands/restore.js.map +1 -0
- package/dist/cli/commands/start.d.ts +3 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +65 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/commands/status.d.ts +3 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +68 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/stop.d.ts +3 -0
- package/dist/cli/commands/stop.d.ts.map +1 -0
- package/dist/cli/commands/stop.js +62 -0
- package/dist/cli/commands/stop.js.map +1 -0
- package/dist/cli/commands/update.d.ts +3 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/commands/update.js +49 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/commands/whatsapp.d.ts +3 -0
- package/dist/cli/commands/whatsapp.d.ts.map +1 -0
- package/dist/cli/commands/whatsapp.js +281 -0
- package/dist/cli/commands/whatsapp.js.map +1 -0
- package/dist/cli/index.d.ts +7 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +58 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli.d.ts +9 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +750 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +109 -0
- package/dist/index.js.map +1 -0
- package/dist/mastra/index.d.ts +4 -0
- package/dist/mastra/index.d.ts.map +1 -0
- package/dist/mastra/index.js +37 -0
- package/dist/mastra/index.js.map +1 -0
- package/dist/mastra/memory.d.ts +9 -0
- package/dist/mastra/memory.d.ts.map +1 -0
- package/dist/mastra/memory.js +92 -0
- package/dist/mastra/memory.js.map +1 -0
- package/dist/processors/index.d.ts +74 -0
- package/dist/processors/index.d.ts.map +1 -0
- package/dist/processors/index.js +153 -0
- package/dist/processors/index.js.map +1 -0
- package/dist/processors/semantic-recall.d.ts +63 -0
- package/dist/processors/semantic-recall.d.ts.map +1 -0
- package/dist/processors/semantic-recall.js +216 -0
- package/dist/processors/semantic-recall.js.map +1 -0
- package/dist/processors/tool-search.d.ts +26 -0
- package/dist/processors/tool-search.d.ts.map +1 -0
- package/dist/processors/tool-search.js +41 -0
- package/dist/processors/tool-search.js.map +1 -0
- package/dist/skills/dynamic/skill-generator.d.ts +169 -0
- package/dist/skills/dynamic/skill-generator.d.ts.map +1 -0
- package/dist/skills/dynamic/skill-generator.js +488 -0
- package/dist/skills/dynamic/skill-generator.js.map +1 -0
- package/dist/tools/agent-delegation-tools.d.ts +142 -0
- package/dist/tools/agent-delegation-tools.d.ts.map +1 -0
- package/dist/tools/agent-delegation-tools.js +263 -0
- package/dist/tools/agent-delegation-tools.js.map +1 -0
- package/dist/tools/browser-tools.d.ts +374 -0
- package/dist/tools/browser-tools.d.ts.map +1 -0
- package/dist/tools/browser-tools.js +752 -0
- package/dist/tools/browser-tools.js.map +1 -0
- package/dist/tools/dynamic/registry.d.ts +61 -0
- package/dist/tools/dynamic/registry.d.ts.map +1 -0
- package/dist/tools/dynamic/registry.js +121 -0
- package/dist/tools/dynamic/registry.js.map +1 -0
- package/dist/tools/dynamic/tool-generator.d.ts +99 -0
- package/dist/tools/dynamic/tool-generator.d.ts.map +1 -0
- package/dist/tools/dynamic/tool-generator.js +367 -0
- package/dist/tools/dynamic/tool-generator.js.map +1 -0
- package/dist/tools/extended-tools.d.ts +176 -0
- package/dist/tools/extended-tools.d.ts.map +1 -0
- package/dist/tools/extended-tools.js +464 -0
- package/dist/tools/extended-tools.js.map +1 -0
- package/dist/tools/library/calendar/index.d.ts +134 -0
- package/dist/tools/library/calendar/index.d.ts.map +1 -0
- package/dist/tools/library/calendar/index.js +160 -0
- package/dist/tools/library/calendar/index.js.map +1 -0
- package/dist/tools/podman-workspace-mcp-cli.d.ts +3 -0
- package/dist/tools/podman-workspace-mcp-cli.d.ts.map +1 -0
- package/dist/tools/podman-workspace-mcp-cli.js +12 -0
- package/dist/tools/podman-workspace-mcp-cli.js.map +1 -0
- package/dist/tools/podman-workspace-mcp.d.ts +247 -0
- package/dist/tools/podman-workspace-mcp.d.ts.map +1 -0
- package/dist/tools/podman-workspace-mcp.js +1093 -0
- package/dist/tools/podman-workspace-mcp.js.map +1 -0
- package/dist/tools/podman-workspace.d.ts +148 -0
- package/dist/tools/podman-workspace.d.ts.map +1 -0
- package/dist/tools/podman-workspace.js +682 -0
- package/dist/tools/podman-workspace.js.map +1 -0
- package/dist/tools/telegram-file-tools.d.ts +78 -0
- package/dist/tools/telegram-file-tools.d.ts.map +1 -0
- package/dist/tools/telegram-file-tools.js +294 -0
- package/dist/tools/telegram-file-tools.js.map +1 -0
- package/dist/tools/tool-registry.d.ts +467 -0
- package/dist/tools/tool-registry.d.ts.map +1 -0
- package/dist/tools/tool-registry.js +156 -0
- package/dist/tools/tool-registry.js.map +1 -0
- package/dist/tools/web-tools.d.ts +77 -0
- package/dist/tools/web-tools.d.ts.map +1 -0
- package/dist/tools/web-tools.js +416 -0
- package/dist/tools/web-tools.js.map +1 -0
- package/dist/tools/whatsapp-autoreply-tools.d.ts +118 -0
- package/dist/tools/whatsapp-autoreply-tools.d.ts.map +1 -0
- package/dist/tools/whatsapp-autoreply-tools.js +503 -0
- package/dist/tools/whatsapp-autoreply-tools.js.map +1 -0
- package/dist/tools/whatsapp-tools.d.ts +175 -0
- package/dist/tools/whatsapp-tools.d.ts.map +1 -0
- package/dist/tools/whatsapp-tools.js +566 -0
- package/dist/tools/whatsapp-tools.js.map +1 -0
- package/dist/utils/logger.d.ts +65 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +307 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/model-config.d.ts +73 -0
- package/dist/utils/model-config.d.ts.map +1 -0
- package/dist/utils/model-config.js +366 -0
- package/dist/utils/model-config.js.map +1 -0
- package/dist/utils/semantic-memory.d.ts +82 -0
- package/dist/utils/semantic-memory.d.ts.map +1 -0
- package/dist/utils/semantic-memory.js +189 -0
- package/dist/utils/semantic-memory.js.map +1 -0
- package/dist/utils/system.d.ts +2 -0
- package/dist/utils/system.d.ts.map +1 -0
- package/dist/utils/system.js +24 -0
- package/dist/utils/system.js.map +1 -0
- package/dist/utils/telegram-auth.d.ts +54 -0
- package/dist/utils/telegram-auth.d.ts.map +1 -0
- package/dist/utils/telegram-auth.js +146 -0
- package/dist/utils/telegram-auth.js.map +1 -0
- package/dist/utils/telegram.d.ts +7 -0
- package/dist/utils/telegram.d.ts.map +1 -0
- package/dist/utils/telegram.js +1494 -0
- package/dist/utils/telegram.js.map +1 -0
- package/dist/utils/whatsapp-client.d.ts +166 -0
- package/dist/utils/whatsapp-client.d.ts.map +1 -0
- package/dist/utils/whatsapp-client.js +722 -0
- package/dist/utils/whatsapp-client.js.map +1 -0
- package/dist/workflows/planner-workflow.d.ts +39 -0
- package/dist/workflows/planner-workflow.d.ts.map +1 -0
- package/dist/workflows/planner-workflow.js +165 -0
- package/dist/workflows/planner-workflow.js.map +1 -0
- package/dist/workflows/skill-builder-workflow.d.ts +16 -0
- package/dist/workflows/skill-builder-workflow.d.ts.map +1 -0
- package/dist/workflows/skill-builder-workflow.js +157 -0
- package/dist/workflows/skill-builder-workflow.js.map +1 -0
- package/dist/workspace/index.d.ts +23 -0
- package/dist/workspace/index.d.ts.map +1 -0
- package/dist/workspace/index.js +64 -0
- package/dist/workspace/index.js.map +1 -0
- package/docs/README.md +140 -0
- package/docs/api/agents.md +481 -0
- package/docs/api/browser-tools.md +469 -0
- package/docs/api/memory.md +629 -0
- package/docs/architecture/agent-networks.md +586 -0
- package/docs/architecture/memory.md +579 -0
- package/docs/architecture/overview.md +436 -0
- package/docs/architecture/tools.md +637 -0
- package/docs/cli-tui.md +367 -0
- package/docs/guides/environment-variables.md +502 -0
- package/docs/guides/troubleshooting.md +882 -0
- package/docs/tutorials/agent-networks.md +432 -0
- package/docs/tutorials/dynamic-tools.md +469 -0
- package/docs/tutorials/getting-started.md +263 -0
- package/docs/tutorials/skills.md +561 -0
- package/docs/tutorials/web-browsing.md +329 -0
- package/mastra.db-shm +0 -0
- package/mastra.db-wal +0 -0
- package/package.json +71 -0
- package/plan.md +601 -0
- package/skills/code-review/SKILL.md +48 -0
- package/skills/task-planning/SKILL.md +55 -0
- package/skills/web-research/SKILL.md +79 -0
- package/skills/whatsapp-management/SKILL.md +78 -0
- package/src/agents/autonomous-agent.ts +626 -0
- package/src/agents/network.ts +1307 -0
- package/src/cli/commands/backup.ts +78 -0
- package/src/cli/commands/config.ts +176 -0
- package/src/cli/commands/doctor.ts +111 -0
- package/src/cli/commands/init.ts +150 -0
- package/src/cli/commands/logs.ts +94 -0
- package/src/cli/commands/otp.ts +162 -0
- package/src/cli/commands/restore.ts +118 -0
- package/src/cli/commands/start.ts +76 -0
- package/src/cli/commands/status.ts +81 -0
- package/src/cli/commands/stop.ts +68 -0
- package/src/cli/commands/update.ts +61 -0
- package/src/cli/commands/whatsapp.ts +322 -0
- package/src/cli/index.ts +69 -0
- package/src/cli.ts +830 -0
- package/src/index.ts +124 -0
- package/src/mastra/index.ts +49 -0
- package/src/mastra/memory.ts +99 -0
- package/src/mastra/public/workspace/plan.md +115 -0
- package/src/mastra/public/workspace/research/react-tailwind/skill.md +47 -0
- package/src/processors/index.ts +170 -0
- package/src/processors/semantic-recall.ts +277 -0
- package/src/processors/tool-search.ts +46 -0
- package/src/skills/dynamic/skill-generator.ts +568 -0
- package/src/tools/agent-delegation-tools.ts +301 -0
- package/src/tools/browser-tools.ts +792 -0
- package/src/tools/dynamic/registry.ts +144 -0
- package/src/tools/dynamic/tool-generator.ts +406 -0
- package/src/tools/extended-tools.ts +498 -0
- package/src/tools/library/calendar/index.ts +172 -0
- package/src/tools/podman-workspace-mcp-cli.ts +14 -0
- package/src/tools/podman-workspace-mcp.ts +1290 -0
- package/src/tools/podman-workspace.ts +858 -0
- package/src/tools/telegram-file-tools.ts +320 -0
- package/src/tools/tool-registry.ts +233 -0
- package/src/tools/web-tools.ts +461 -0
- package/src/tools/whatsapp-autoreply-tools.ts +616 -0
- package/src/tools/whatsapp-tools.ts +602 -0
- package/src/utils/logger.ts +368 -0
- package/src/utils/model-config.ts +437 -0
- package/src/utils/semantic-memory.ts +230 -0
- package/src/utils/system.ts +25 -0
- package/src/utils/telegram-auth.ts +201 -0
- package/src/utils/telegram.ts +1847 -0
- package/src/utils/whatsapp-client.ts +808 -0
- package/src/workflows/planner-workflow.ts +178 -0
- package/src/workflows/skill-builder-workflow.ts +175 -0
- package/src/workspace/index.ts +69 -0
- package/tsconfig.json +22 -0
- package/view-logs.sh +116 -0
- 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 @@
|
|
|
1
|
+
{"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../src/utils/system.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,IAAI,MAAM,CAsBzC"}
|