overai 1.4.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.
- package/README.md +248 -0
- package/dist/agent/context.d.ts +74 -0
- package/dist/agent/context.js +140 -0
- package/dist/agent/enhanced.d.ts +98 -0
- package/dist/agent/enhanced.js +293 -0
- package/dist/agent/handoff.d.ts +82 -0
- package/dist/agent/handoff.js +124 -0
- package/dist/agent/image.d.ts +57 -0
- package/dist/agent/image.js +116 -0
- package/dist/agent/index.d.ts +19 -0
- package/dist/agent/index.js +38 -0
- package/dist/agent/prompt-expander.d.ts +43 -0
- package/dist/agent/prompt-expander.js +99 -0
- package/dist/agent/proxy.d.ts +26 -0
- package/dist/agent/proxy.js +173 -0
- package/dist/agent/query-rewriter.d.ts +41 -0
- package/dist/agent/query-rewriter.js +94 -0
- package/dist/agent/research.d.ts +55 -0
- package/dist/agent/research.js +134 -0
- package/dist/agent/router.d.ts +141 -0
- package/dist/agent/router.js +209 -0
- package/dist/agent/simple.d.ts +289 -0
- package/dist/agent/simple.js +696 -0
- package/dist/agent/types.d.ts +56 -0
- package/dist/agent/types.js +165 -0
- package/dist/ai/agent-loop.d.ts +177 -0
- package/dist/ai/agent-loop.js +313 -0
- package/dist/ai/devtools.d.ts +74 -0
- package/dist/ai/devtools.js +216 -0
- package/dist/ai/embed.d.ts +71 -0
- package/dist/ai/embed.js +154 -0
- package/dist/ai/generate-image.d.ts +66 -0
- package/dist/ai/generate-image.js +138 -0
- package/dist/ai/generate-object.d.ts +132 -0
- package/dist/ai/generate-object.js +206 -0
- package/dist/ai/generate-text.d.ts +201 -0
- package/dist/ai/generate-text.js +253 -0
- package/dist/ai/index.d.ts +27 -0
- package/dist/ai/index.js +140 -0
- package/dist/ai/mcp.d.ts +181 -0
- package/dist/ai/mcp.js +234 -0
- package/dist/ai/middleware.d.ts +110 -0
- package/dist/ai/middleware.js +186 -0
- package/dist/ai/models.d.ts +67 -0
- package/dist/ai/models.js +249 -0
- package/dist/ai/multimodal.d.ts +125 -0
- package/dist/ai/multimodal.js +270 -0
- package/dist/ai/nextjs.d.ts +122 -0
- package/dist/ai/nextjs.js +218 -0
- package/dist/ai/server.d.ts +126 -0
- package/dist/ai/server.js +336 -0
- package/dist/ai/speech.d.ts +135 -0
- package/dist/ai/speech.js +296 -0
- package/dist/ai/telemetry.d.ts +162 -0
- package/dist/ai/telemetry.js +311 -0
- package/dist/ai/tool-approval.d.ts +225 -0
- package/dist/ai/tool-approval.js +407 -0
- package/dist/ai/tools.d.ts +93 -0
- package/dist/ai/tools.js +89 -0
- package/dist/ai/types.d.ts +47 -0
- package/dist/ai/types.js +5 -0
- package/dist/ai/ui-message.d.ts +218 -0
- package/dist/ai/ui-message.js +291 -0
- package/dist/auto/index.d.ts +62 -0
- package/dist/auto/index.js +163 -0
- package/dist/cache/index.d.ts +78 -0
- package/dist/cache/index.js +235 -0
- package/dist/cli/commands/agent.d.ts +30 -0
- package/dist/cli/commands/agent.js +151 -0
- package/dist/cli/commands/agents.d.ts +24 -0
- package/dist/cli/commands/agents.js +166 -0
- package/dist/cli/commands/approval.d.ts +10 -0
- package/dist/cli/commands/approval.js +253 -0
- package/dist/cli/commands/auto.d.ts +12 -0
- package/dist/cli/commands/auto.js +109 -0
- package/dist/cli/commands/autonomy.d.ts +5 -0
- package/dist/cli/commands/autonomy.js +152 -0
- package/dist/cli/commands/benchmark.d.ts +19 -0
- package/dist/cli/commands/benchmark.js +484 -0
- package/dist/cli/commands/cache.d.ts +9 -0
- package/dist/cli/commands/cache.js +143 -0
- package/dist/cli/commands/chat.d.ts +14 -0
- package/dist/cli/commands/chat.js +127 -0
- package/dist/cli/commands/checkpoints.d.ts +5 -0
- package/dist/cli/commands/checkpoints.js +236 -0
- package/dist/cli/commands/context.d.ts +11 -0
- package/dist/cli/commands/context.js +182 -0
- package/dist/cli/commands/cost.d.ts +5 -0
- package/dist/cli/commands/cost.js +146 -0
- package/dist/cli/commands/db.d.ts +9 -0
- package/dist/cli/commands/db.js +149 -0
- package/dist/cli/commands/embed.d.ts +20 -0
- package/dist/cli/commands/embed.js +375 -0
- package/dist/cli/commands/eval.d.ts +17 -0
- package/dist/cli/commands/eval.js +247 -0
- package/dist/cli/commands/external-agents.d.ts +5 -0
- package/dist/cli/commands/external-agents.js +170 -0
- package/dist/cli/commands/fast-context.d.ts +5 -0
- package/dist/cli/commands/fast-context.js +126 -0
- package/dist/cli/commands/flow.d.ts +5 -0
- package/dist/cli/commands/flow.js +141 -0
- package/dist/cli/commands/git.d.ts +5 -0
- package/dist/cli/commands/git.js +178 -0
- package/dist/cli/commands/graph-rag.d.ts +9 -0
- package/dist/cli/commands/graph-rag.js +131 -0
- package/dist/cli/commands/guardrail.d.ts +11 -0
- package/dist/cli/commands/guardrail.js +156 -0
- package/dist/cli/commands/handoff.d.ts +9 -0
- package/dist/cli/commands/handoff.js +133 -0
- package/dist/cli/commands/help.d.ts +8 -0
- package/dist/cli/commands/help.js +139 -0
- package/dist/cli/commands/image.d.ts +13 -0
- package/dist/cli/commands/image.js +192 -0
- package/dist/cli/commands/interactive.d.ts +6 -0
- package/dist/cli/commands/interactive.js +79 -0
- package/dist/cli/commands/jobs.d.ts +5 -0
- package/dist/cli/commands/jobs.js +282 -0
- package/dist/cli/commands/knowledge.d.ts +9 -0
- package/dist/cli/commands/knowledge.js +226 -0
- package/dist/cli/commands/llm.d.ts +21 -0
- package/dist/cli/commands/llm.js +748 -0
- package/dist/cli/commands/mcp.d.ts +9 -0
- package/dist/cli/commands/mcp.js +243 -0
- package/dist/cli/commands/memory.d.ts +10 -0
- package/dist/cli/commands/memory.js +198 -0
- package/dist/cli/commands/n8n.d.ts +5 -0
- package/dist/cli/commands/n8n.js +137 -0
- package/dist/cli/commands/observability.d.ts +16 -0
- package/dist/cli/commands/observability.js +335 -0
- package/dist/cli/commands/planning.d.ts +9 -0
- package/dist/cli/commands/planning.js +167 -0
- package/dist/cli/commands/prompt-expand.d.ts +11 -0
- package/dist/cli/commands/prompt-expand.js +100 -0
- package/dist/cli/commands/providers.d.ts +17 -0
- package/dist/cli/commands/providers.js +386 -0
- package/dist/cli/commands/query-rewrite.d.ts +12 -0
- package/dist/cli/commands/query-rewrite.js +102 -0
- package/dist/cli/commands/repo-map.d.ts +5 -0
- package/dist/cli/commands/repo-map.js +151 -0
- package/dist/cli/commands/reranker.d.ts +10 -0
- package/dist/cli/commands/reranker.js +144 -0
- package/dist/cli/commands/research.d.ts +12 -0
- package/dist/cli/commands/research.js +108 -0
- package/dist/cli/commands/router.d.ts +11 -0
- package/dist/cli/commands/router.js +142 -0
- package/dist/cli/commands/run.d.ts +14 -0
- package/dist/cli/commands/run.js +111 -0
- package/dist/cli/commands/sandbox.d.ts +5 -0
- package/dist/cli/commands/sandbox.js +135 -0
- package/dist/cli/commands/scheduler.d.ts +5 -0
- package/dist/cli/commands/scheduler.js +260 -0
- package/dist/cli/commands/session.d.ts +9 -0
- package/dist/cli/commands/session.js +238 -0
- package/dist/cli/commands/skills.d.ts +9 -0
- package/dist/cli/commands/skills.js +256 -0
- package/dist/cli/commands/telemetry.d.ts +9 -0
- package/dist/cli/commands/telemetry.js +146 -0
- package/dist/cli/commands/tools.d.ts +19 -0
- package/dist/cli/commands/tools.js +576 -0
- package/dist/cli/commands/vector.d.ts +10 -0
- package/dist/cli/commands/vector.js +171 -0
- package/dist/cli/commands/version.d.ts +8 -0
- package/dist/cli/commands/version.js +40 -0
- package/dist/cli/commands/voice.d.ts +10 -0
- package/dist/cli/commands/voice.js +162 -0
- package/dist/cli/commands/workflow.d.ts +13 -0
- package/dist/cli/commands/workflow.js +184 -0
- package/dist/cli/config/index.d.ts +6 -0
- package/dist/cli/config/index.js +22 -0
- package/dist/cli/config/load.d.ts +20 -0
- package/dist/cli/config/load.js +229 -0
- package/dist/cli/config/resolve.d.ts +28 -0
- package/dist/cli/config/resolve.js +70 -0
- package/dist/cli/config/schema.d.ts +15 -0
- package/dist/cli/config/schema.js +65 -0
- package/dist/cli/features/autonomy-mode.d.ts +98 -0
- package/dist/cli/features/autonomy-mode.js +266 -0
- package/dist/cli/features/background-jobs.d.ts +155 -0
- package/dist/cli/features/background-jobs.js +416 -0
- package/dist/cli/features/checkpoints.d.ts +126 -0
- package/dist/cli/features/checkpoints.js +288 -0
- package/dist/cli/features/cost-tracker.d.ts +101 -0
- package/dist/cli/features/cost-tracker.js +212 -0
- package/dist/cli/features/external-agents.d.ts +117 -0
- package/dist/cli/features/external-agents.js +296 -0
- package/dist/cli/features/fast-context.d.ts +126 -0
- package/dist/cli/features/fast-context.js +310 -0
- package/dist/cli/features/flow-display.d.ts +100 -0
- package/dist/cli/features/flow-display.js +254 -0
- package/dist/cli/features/git-integration.d.ts +138 -0
- package/dist/cli/features/git-integration.js +374 -0
- package/dist/cli/features/index.d.ts +17 -0
- package/dist/cli/features/index.js +102 -0
- package/dist/cli/features/interactive-tui.d.ts +114 -0
- package/dist/cli/features/interactive-tui.js +326 -0
- package/dist/cli/features/n8n-integration.d.ts +111 -0
- package/dist/cli/features/n8n-integration.js +299 -0
- package/dist/cli/features/repo-map.d.ts +101 -0
- package/dist/cli/features/repo-map.js +350 -0
- package/dist/cli/features/sandbox-executor.d.ts +89 -0
- package/dist/cli/features/sandbox-executor.js +314 -0
- package/dist/cli/features/scheduler.d.ts +111 -0
- package/dist/cli/features/scheduler.js +298 -0
- package/dist/cli/features/slash-commands.d.ts +77 -0
- package/dist/cli/features/slash-commands.js +316 -0
- package/dist/cli/index.d.ts +24 -0
- package/dist/cli/index.js +214 -0
- package/dist/cli/output/errors.d.ts +23 -0
- package/dist/cli/output/errors.js +36 -0
- package/dist/cli/output/json.d.ts +27 -0
- package/dist/cli/output/json.js +31 -0
- package/dist/cli/output/pretty.d.ts +13 -0
- package/dist/cli/output/pretty.js +31 -0
- package/dist/cli/runtime/env.d.ts +12 -0
- package/dist/cli/runtime/env.js +55 -0
- package/dist/cli/runtime/exit.d.ts +11 -0
- package/dist/cli/runtime/exit.js +49 -0
- package/dist/cli/runtime/index.d.ts +6 -0
- package/dist/cli/runtime/index.js +22 -0
- package/dist/cli/runtime/lazy.d.ts +18 -0
- package/dist/cli/runtime/lazy.js +85 -0
- package/dist/cli/spec/cli-spec.d.ts +87 -0
- package/dist/cli/spec/cli-spec.js +551 -0
- package/dist/cli/spec/index.d.ts +4 -0
- package/dist/cli/spec/index.js +20 -0
- package/dist/db/index.d.ts +6 -0
- package/dist/db/index.js +75 -0
- package/dist/db/types.d.ts +42 -0
- package/dist/db/types.js +2 -0
- package/dist/eval/index.d.ts +61 -0
- package/dist/eval/index.js +157 -0
- package/dist/events/index.d.ts +84 -0
- package/dist/events/index.js +153 -0
- package/dist/guardrails/index.d.ts +82 -0
- package/dist/guardrails/index.js +202 -0
- package/dist/guardrails/llm-guardrail.d.ts +46 -0
- package/dist/guardrails/llm-guardrail.js +112 -0
- package/dist/index.d.ts +92 -0
- package/dist/index.js +608 -0
- package/dist/integrations/computer-use.d.ts +182 -0
- package/dist/integrations/computer-use.js +356 -0
- package/dist/integrations/index.d.ts +7 -0
- package/dist/integrations/index.js +26 -0
- package/dist/integrations/observability/base.d.ts +123 -0
- package/dist/integrations/observability/base.js +183 -0
- package/dist/integrations/observability/index.d.ts +8 -0
- package/dist/integrations/observability/index.js +29 -0
- package/dist/integrations/observability/langfuse.d.ts +32 -0
- package/dist/integrations/observability/langfuse.js +174 -0
- package/dist/integrations/postgres.d.ts +162 -0
- package/dist/integrations/postgres.js +396 -0
- package/dist/integrations/slack.d.ts +145 -0
- package/dist/integrations/slack.js +270 -0
- package/dist/integrations/vector/base.d.ts +110 -0
- package/dist/integrations/vector/base.js +158 -0
- package/dist/integrations/vector/chroma.d.ts +25 -0
- package/dist/integrations/vector/chroma.js +143 -0
- package/dist/integrations/vector/index.d.ts +14 -0
- package/dist/integrations/vector/index.js +37 -0
- package/dist/integrations/vector/pinecone.d.ts +28 -0
- package/dist/integrations/vector/pinecone.js +172 -0
- package/dist/integrations/vector/qdrant.d.ts +25 -0
- package/dist/integrations/vector/qdrant.js +146 -0
- package/dist/integrations/vector/weaviate.d.ts +30 -0
- package/dist/integrations/vector/weaviate.js +206 -0
- package/dist/integrations/voice/base.d.ts +76 -0
- package/dist/integrations/voice/base.js +168 -0
- package/dist/integrations/voice/index.d.ts +6 -0
- package/dist/integrations/voice/index.js +26 -0
- package/dist/knowledge/chunking.d.ts +55 -0
- package/dist/knowledge/chunking.js +158 -0
- package/dist/knowledge/graph-rag.d.ts +125 -0
- package/dist/knowledge/graph-rag.js +289 -0
- package/dist/knowledge/index.d.ts +24 -0
- package/dist/knowledge/index.js +47 -0
- package/dist/knowledge/knowledge.d.ts +0 -0
- package/dist/knowledge/knowledge.js +1 -0
- package/dist/knowledge/rag.d.ts +80 -0
- package/dist/knowledge/rag.js +147 -0
- package/dist/knowledge/reranker.d.ts +86 -0
- package/dist/knowledge/reranker.js +196 -0
- package/dist/llm/backend-resolver.d.ts +77 -0
- package/dist/llm/backend-resolver.js +242 -0
- package/dist/llm/embeddings.d.ts +66 -0
- package/dist/llm/embeddings.js +294 -0
- package/dist/llm/index.d.ts +29 -0
- package/dist/llm/index.js +33 -0
- package/dist/llm/llm.d.ts +0 -0
- package/dist/llm/llm.js +1 -0
- package/dist/llm/openai.d.ts +39 -0
- package/dist/llm/openai.js +302 -0
- package/dist/llm/providers/ai-sdk/adapter.d.ts +121 -0
- package/dist/llm/providers/ai-sdk/adapter.js +399 -0
- package/dist/llm/providers/ai-sdk/backend.d.ts +49 -0
- package/dist/llm/providers/ai-sdk/backend.js +421 -0
- package/dist/llm/providers/ai-sdk/index.d.ts +69 -0
- package/dist/llm/providers/ai-sdk/index.js +200 -0
- package/dist/llm/providers/ai-sdk/middleware.d.ts +60 -0
- package/dist/llm/providers/ai-sdk/middleware.js +262 -0
- package/dist/llm/providers/ai-sdk/provider-map.d.ts +75 -0
- package/dist/llm/providers/ai-sdk/provider-map.js +258 -0
- package/dist/llm/providers/ai-sdk/types.d.ts +217 -0
- package/dist/llm/providers/ai-sdk/types.js +222 -0
- package/dist/llm/providers/anthropic.d.ts +33 -0
- package/dist/llm/providers/anthropic.js +291 -0
- package/dist/llm/providers/base.d.ts +25 -0
- package/dist/llm/providers/base.js +43 -0
- package/dist/llm/providers/google.d.ts +27 -0
- package/dist/llm/providers/google.js +275 -0
- package/dist/llm/providers/index.d.ts +107 -0
- package/dist/llm/providers/index.js +216 -0
- package/dist/llm/providers/openai.d.ts +18 -0
- package/dist/llm/providers/openai.js +203 -0
- package/dist/llm/providers/registry.d.ts +159 -0
- package/dist/llm/providers/registry.js +279 -0
- package/dist/llm/providers/types.d.ts +94 -0
- package/dist/llm/providers/types.js +5 -0
- package/dist/main.d.ts +0 -0
- package/dist/main.js +1 -0
- package/dist/memory/auto-memory.d.ts +136 -0
- package/dist/memory/auto-memory.js +301 -0
- package/dist/memory/file-memory.d.ts +88 -0
- package/dist/memory/file-memory.js +287 -0
- package/dist/memory/index.d.ts +26 -0
- package/dist/memory/index.js +41 -0
- package/dist/memory/memory.d.ts +92 -0
- package/dist/memory/memory.js +170 -0
- package/dist/observability/adapters/console.d.ts +33 -0
- package/dist/observability/adapters/console.js +71 -0
- package/dist/observability/adapters/external/arize.d.ts +20 -0
- package/dist/observability/adapters/external/arize.js +22 -0
- package/dist/observability/adapters/external/axiom.d.ts +20 -0
- package/dist/observability/adapters/external/axiom.js +22 -0
- package/dist/observability/adapters/external/braintrust.d.ts +20 -0
- package/dist/observability/adapters/external/braintrust.js +22 -0
- package/dist/observability/adapters/external/helicone.d.ts +20 -0
- package/dist/observability/adapters/external/helicone.js +22 -0
- package/dist/observability/adapters/external/laminar.d.ts +20 -0
- package/dist/observability/adapters/external/laminar.js +22 -0
- package/dist/observability/adapters/external/langfuse.d.ts +28 -0
- package/dist/observability/adapters/external/langfuse.js +186 -0
- package/dist/observability/adapters/external/langsmith.d.ts +21 -0
- package/dist/observability/adapters/external/langsmith.js +83 -0
- package/dist/observability/adapters/external/langwatch.d.ts +20 -0
- package/dist/observability/adapters/external/langwatch.js +22 -0
- package/dist/observability/adapters/external/maxim.d.ts +20 -0
- package/dist/observability/adapters/external/maxim.js +22 -0
- package/dist/observability/adapters/external/patronus.d.ts +20 -0
- package/dist/observability/adapters/external/patronus.js +22 -0
- package/dist/observability/adapters/external/scorecard.d.ts +20 -0
- package/dist/observability/adapters/external/scorecard.js +22 -0
- package/dist/observability/adapters/external/signoz.d.ts +20 -0
- package/dist/observability/adapters/external/signoz.js +22 -0
- package/dist/observability/adapters/external/traceloop.d.ts +20 -0
- package/dist/observability/adapters/external/traceloop.js +22 -0
- package/dist/observability/adapters/external/weave.d.ts +20 -0
- package/dist/observability/adapters/external/weave.js +22 -0
- package/dist/observability/adapters/index.d.ts +19 -0
- package/dist/observability/adapters/index.js +289 -0
- package/dist/observability/adapters/memory.d.ts +41 -0
- package/dist/observability/adapters/memory.js +190 -0
- package/dist/observability/adapters/noop.d.ts +25 -0
- package/dist/observability/adapters/noop.js +64 -0
- package/dist/observability/index.d.ts +47 -0
- package/dist/observability/index.js +115 -0
- package/dist/observability/types.d.ts +165 -0
- package/dist/observability/types.js +165 -0
- package/dist/planning/index.d.ts +253 -0
- package/dist/planning/index.js +475 -0
- package/dist/process/index.d.ts +25 -0
- package/dist/process/index.js +37 -0
- package/dist/process/process.d.ts +0 -0
- package/dist/process/process.js +1 -0
- package/dist/session/index.d.ts +111 -0
- package/dist/session/index.js +250 -0
- package/dist/skills/index.d.ts +70 -0
- package/dist/skills/index.js +233 -0
- package/dist/task/index.d.ts +25 -0
- package/dist/task/index.js +32 -0
- package/dist/task/task.d.ts +0 -0
- package/dist/task/task.js +1 -0
- package/dist/telemetry/index.d.ts +175 -0
- package/dist/telemetry/index.js +287 -0
- package/dist/tools/arxivTools.d.ts +32 -0
- package/dist/tools/arxivTools.js +81 -0
- package/dist/tools/base.d.ts +97 -0
- package/dist/tools/base.js +147 -0
- package/dist/tools/builtins/airweave.d.ts +32 -0
- package/dist/tools/builtins/airweave.js +119 -0
- package/dist/tools/builtins/bedrock-agentcore.d.ts +62 -0
- package/dist/tools/builtins/bedrock-agentcore.js +233 -0
- package/dist/tools/builtins/code-execution.d.ts +36 -0
- package/dist/tools/builtins/code-execution.js +136 -0
- package/dist/tools/builtins/code-mode.d.ts +54 -0
- package/dist/tools/builtins/code-mode.js +167 -0
- package/dist/tools/builtins/custom.d.ts +42 -0
- package/dist/tools/builtins/custom.js +195 -0
- package/dist/tools/builtins/exa.d.ts +53 -0
- package/dist/tools/builtins/exa.js +112 -0
- package/dist/tools/builtins/firecrawl.d.ts +56 -0
- package/dist/tools/builtins/firecrawl.js +158 -0
- package/dist/tools/builtins/index.d.ts +45 -0
- package/dist/tools/builtins/index.js +180 -0
- package/dist/tools/builtins/parallel.d.ts +30 -0
- package/dist/tools/builtins/parallel.js +113 -0
- package/dist/tools/builtins/perplexity.d.ts +32 -0
- package/dist/tools/builtins/perplexity.js +113 -0
- package/dist/tools/builtins/superagent.d.ts +66 -0
- package/dist/tools/builtins/superagent.js +187 -0
- package/dist/tools/builtins/tavily.d.ts +99 -0
- package/dist/tools/builtins/tavily.js +285 -0
- package/dist/tools/builtins/valyu.d.ts +65 -0
- package/dist/tools/builtins/valyu.js +193 -0
- package/dist/tools/decorator.d.ts +91 -0
- package/dist/tools/decorator.js +165 -0
- package/dist/tools/index.d.ts +8 -0
- package/dist/tools/index.js +36 -0
- package/dist/tools/mcpSse.d.ts +43 -0
- package/dist/tools/mcpSse.js +110 -0
- package/dist/tools/registry/index.d.ts +9 -0
- package/dist/tools/registry/index.js +28 -0
- package/dist/tools/registry/middleware.d.ts +43 -0
- package/dist/tools/registry/middleware.js +220 -0
- package/dist/tools/registry/registry.d.ts +92 -0
- package/dist/tools/registry/registry.js +280 -0
- package/dist/tools/registry/types.d.ts +217 -0
- package/dist/tools/registry/types.js +49 -0
- package/dist/tools/test.d.ts +0 -0
- package/dist/tools/test.js +1 -0
- package/dist/tools/tools.d.ts +74 -0
- package/dist/tools/tools.js +133 -0
- package/dist/utils/logger.d.ts +25 -0
- package/dist/utils/logger.js +149 -0
- package/dist/utils/pretty-logger.d.ts +21 -0
- package/dist/utils/pretty-logger.js +248 -0
- package/dist/workflows/index.d.ts +118 -0
- package/dist/workflows/index.js +247 -0
- package/dist/workflows/loop.d.ts +0 -0
- package/dist/workflows/loop.js +1 -0
- package/dist/workflows/yaml-parser.d.ts +48 -0
- package/dist/workflows/yaml-parser.js +304 -0
- package/package.json +119 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLM Provider Types - Core type definitions for the provider abstraction layer
|
|
3
|
+
*/
|
|
4
|
+
export interface Message {
|
|
5
|
+
role: 'system' | 'user' | 'assistant' | 'tool';
|
|
6
|
+
content: string | null;
|
|
7
|
+
name?: string;
|
|
8
|
+
tool_call_id?: string;
|
|
9
|
+
tool_calls?: ToolCall[];
|
|
10
|
+
}
|
|
11
|
+
export interface ToolCall {
|
|
12
|
+
id: string;
|
|
13
|
+
type: 'function';
|
|
14
|
+
function: {
|
|
15
|
+
name: string;
|
|
16
|
+
arguments: string;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export interface ToolDefinition {
|
|
20
|
+
name: string;
|
|
21
|
+
description?: string;
|
|
22
|
+
parameters?: Record<string, any>;
|
|
23
|
+
}
|
|
24
|
+
export interface TokenUsage {
|
|
25
|
+
promptTokens: number;
|
|
26
|
+
completionTokens: number;
|
|
27
|
+
totalTokens: number;
|
|
28
|
+
}
|
|
29
|
+
export interface GenerateTextOptions {
|
|
30
|
+
messages: Message[];
|
|
31
|
+
temperature?: number;
|
|
32
|
+
maxTokens?: number;
|
|
33
|
+
tools?: ToolDefinition[];
|
|
34
|
+
toolChoice?: 'auto' | 'none' | 'required' | {
|
|
35
|
+
type: 'function';
|
|
36
|
+
function: {
|
|
37
|
+
name: string;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
stop?: string[];
|
|
41
|
+
topP?: number;
|
|
42
|
+
frequencyPenalty?: number;
|
|
43
|
+
presencePenalty?: number;
|
|
44
|
+
}
|
|
45
|
+
export interface GenerateTextResult {
|
|
46
|
+
text: string;
|
|
47
|
+
toolCalls?: ToolCall[];
|
|
48
|
+
usage: TokenUsage;
|
|
49
|
+
finishReason: 'stop' | 'length' | 'tool_calls' | 'content_filter' | 'error';
|
|
50
|
+
raw?: any;
|
|
51
|
+
}
|
|
52
|
+
export interface StreamTextOptions extends GenerateTextOptions {
|
|
53
|
+
onToken?: (token: string) => void;
|
|
54
|
+
onToolCall?: (toolCall: ToolCall) => void;
|
|
55
|
+
}
|
|
56
|
+
export interface StreamChunk {
|
|
57
|
+
text?: string;
|
|
58
|
+
toolCalls?: ToolCall[];
|
|
59
|
+
usage?: Partial<TokenUsage>;
|
|
60
|
+
finishReason?: string;
|
|
61
|
+
}
|
|
62
|
+
export interface GenerateObjectOptions<T = any> {
|
|
63
|
+
messages: Message[];
|
|
64
|
+
schema: Record<string, any> | any;
|
|
65
|
+
temperature?: number;
|
|
66
|
+
maxTokens?: number;
|
|
67
|
+
maxRetries?: number;
|
|
68
|
+
}
|
|
69
|
+
export interface GenerateObjectResult<T = any> {
|
|
70
|
+
object: T;
|
|
71
|
+
usage: TokenUsage;
|
|
72
|
+
raw?: any;
|
|
73
|
+
}
|
|
74
|
+
export interface ProviderConfig {
|
|
75
|
+
apiKey?: string;
|
|
76
|
+
baseUrl?: string;
|
|
77
|
+
maxRetries?: number;
|
|
78
|
+
timeout?: number;
|
|
79
|
+
defaultModel?: string;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Base interface for all LLM providers
|
|
83
|
+
*/
|
|
84
|
+
export interface LLMProvider {
|
|
85
|
+
readonly providerId: string;
|
|
86
|
+
readonly modelId: string;
|
|
87
|
+
generateText(options: GenerateTextOptions): Promise<GenerateTextResult>;
|
|
88
|
+
streamText(options: StreamTextOptions): Promise<AsyncIterable<StreamChunk>>;
|
|
89
|
+
generateObject<T = any>(options: GenerateObjectOptions<T>): Promise<GenerateObjectResult<T>>;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Provider factory function type
|
|
93
|
+
*/
|
|
94
|
+
export type ProviderFactory = (modelId: string, config?: ProviderConfig) => LLMProvider;
|
package/dist/main.d.ts
ADDED
|
File without changes
|
package/dist/main.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AutoMemory - Policy-based automatic memory capture
|
|
3
|
+
* Integrates with Memory, KnowledgeBase, and Vector stores
|
|
4
|
+
*/
|
|
5
|
+
import { Memory, MemoryEntry, MemoryConfig } from './memory';
|
|
6
|
+
export interface AutoMemoryPolicy {
|
|
7
|
+
name: string;
|
|
8
|
+
condition: (content: string, role: string, context: AutoMemoryContext) => boolean;
|
|
9
|
+
action: 'store' | 'summarize' | 'vectorize' | 'skip';
|
|
10
|
+
priority?: number;
|
|
11
|
+
}
|
|
12
|
+
export interface AutoMemoryContext {
|
|
13
|
+
messageCount: number;
|
|
14
|
+
tokenCount: number;
|
|
15
|
+
lastSummaryAt?: number;
|
|
16
|
+
metadata: Record<string, any>;
|
|
17
|
+
}
|
|
18
|
+
export interface AutoMemoryConfig extends MemoryConfig {
|
|
19
|
+
policies?: AutoMemoryPolicy[];
|
|
20
|
+
summaryThreshold?: number;
|
|
21
|
+
vectorizeThreshold?: number;
|
|
22
|
+
summarizer?: (entries: MemoryEntry[]) => Promise<string>;
|
|
23
|
+
vectorStore?: VectorStoreAdapter;
|
|
24
|
+
knowledgeBase?: KnowledgeBaseAdapter;
|
|
25
|
+
}
|
|
26
|
+
export interface VectorStoreAdapter {
|
|
27
|
+
add(id: string, embedding: number[], metadata?: Record<string, any>): Promise<void>;
|
|
28
|
+
search(embedding: number[], limit?: number): Promise<Array<{
|
|
29
|
+
id: string;
|
|
30
|
+
score: number;
|
|
31
|
+
}>>;
|
|
32
|
+
}
|
|
33
|
+
export interface KnowledgeBaseAdapter {
|
|
34
|
+
add(content: string, metadata?: Record<string, any>): Promise<string>;
|
|
35
|
+
search(query: string, limit?: number): Promise<Array<{
|
|
36
|
+
content: string;
|
|
37
|
+
score: number;
|
|
38
|
+
}>>;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Default policies for automatic memory management
|
|
42
|
+
*/
|
|
43
|
+
export declare const DEFAULT_POLICIES: AutoMemoryPolicy[];
|
|
44
|
+
/**
|
|
45
|
+
* AutoMemory - Automatic memory management with policies
|
|
46
|
+
*/
|
|
47
|
+
export declare class AutoMemory {
|
|
48
|
+
private memory;
|
|
49
|
+
private policies;
|
|
50
|
+
private summaryThreshold;
|
|
51
|
+
private vectorizeThreshold;
|
|
52
|
+
private summarizer?;
|
|
53
|
+
private vectorStore?;
|
|
54
|
+
private knowledgeBase?;
|
|
55
|
+
private embeddingProvider?;
|
|
56
|
+
private context;
|
|
57
|
+
private pendingVectorization;
|
|
58
|
+
constructor(config?: AutoMemoryConfig);
|
|
59
|
+
/**
|
|
60
|
+
* Process and add content with automatic policy application
|
|
61
|
+
*/
|
|
62
|
+
add(content: string, role: 'user' | 'assistant' | 'system', metadata?: Record<string, any>): Promise<MemoryEntry | null>;
|
|
63
|
+
/**
|
|
64
|
+
* Get a memory entry by ID
|
|
65
|
+
*/
|
|
66
|
+
get(id: string): MemoryEntry | undefined;
|
|
67
|
+
/**
|
|
68
|
+
* Get all entries
|
|
69
|
+
*/
|
|
70
|
+
getAll(): MemoryEntry[];
|
|
71
|
+
/**
|
|
72
|
+
* Get recent entries
|
|
73
|
+
*/
|
|
74
|
+
getRecent(count: number): MemoryEntry[];
|
|
75
|
+
/**
|
|
76
|
+
* Search memory
|
|
77
|
+
*/
|
|
78
|
+
search(query: string, limit?: number): Promise<Array<{
|
|
79
|
+
entry: MemoryEntry;
|
|
80
|
+
score: number;
|
|
81
|
+
}>>;
|
|
82
|
+
/**
|
|
83
|
+
* Build context with automatic retrieval
|
|
84
|
+
*/
|
|
85
|
+
buildContext(query?: string, maxTokens?: number): Promise<string>;
|
|
86
|
+
/**
|
|
87
|
+
* Add a custom policy
|
|
88
|
+
*/
|
|
89
|
+
addPolicy(policy: AutoMemoryPolicy): void;
|
|
90
|
+
/**
|
|
91
|
+
* Remove a policy by name
|
|
92
|
+
*/
|
|
93
|
+
removePolicy(name: string): boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Get current context stats
|
|
96
|
+
*/
|
|
97
|
+
getStats(): AutoMemoryContext;
|
|
98
|
+
/**
|
|
99
|
+
* Clear all memory
|
|
100
|
+
*/
|
|
101
|
+
clear(): void;
|
|
102
|
+
/**
|
|
103
|
+
* Export memory
|
|
104
|
+
*/
|
|
105
|
+
toJSON(): MemoryEntry[];
|
|
106
|
+
/**
|
|
107
|
+
* Import memory
|
|
108
|
+
*/
|
|
109
|
+
fromJSON(entries: MemoryEntry[]): void;
|
|
110
|
+
/**
|
|
111
|
+
* Get underlying memory instance
|
|
112
|
+
*/
|
|
113
|
+
getMemory(): Memory;
|
|
114
|
+
/**
|
|
115
|
+
* Flush pending vectorization
|
|
116
|
+
*/
|
|
117
|
+
private flushVectorization;
|
|
118
|
+
/**
|
|
119
|
+
* Summarize old entries to save space
|
|
120
|
+
*/
|
|
121
|
+
private summarizeOldEntries;
|
|
122
|
+
/**
|
|
123
|
+
* Estimate token count (rough approximation)
|
|
124
|
+
*/
|
|
125
|
+
private estimateTokens;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Create an auto-memory instance
|
|
129
|
+
*/
|
|
130
|
+
export declare function createAutoMemory(config?: AutoMemoryConfig): AutoMemory;
|
|
131
|
+
/**
|
|
132
|
+
* Create a simple summarizer using an LLM
|
|
133
|
+
*/
|
|
134
|
+
export declare function createLLMSummarizer(llm: {
|
|
135
|
+
chat: (prompt: string) => Promise<string>;
|
|
136
|
+
}): (entries: MemoryEntry[]) => Promise<string>;
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* AutoMemory - Policy-based automatic memory capture
|
|
4
|
+
* Integrates with Memory, KnowledgeBase, and Vector stores
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.AutoMemory = exports.DEFAULT_POLICIES = void 0;
|
|
8
|
+
exports.createAutoMemory = createAutoMemory;
|
|
9
|
+
exports.createLLMSummarizer = createLLMSummarizer;
|
|
10
|
+
const memory_1 = require("./memory");
|
|
11
|
+
/**
|
|
12
|
+
* Default policies for automatic memory management
|
|
13
|
+
*/
|
|
14
|
+
exports.DEFAULT_POLICIES = [
|
|
15
|
+
{
|
|
16
|
+
name: 'store-important',
|
|
17
|
+
condition: (content) => {
|
|
18
|
+
const importantKeywords = ['remember', 'important', 'note', 'save', 'key point'];
|
|
19
|
+
return importantKeywords.some(kw => content.toLowerCase().includes(kw));
|
|
20
|
+
},
|
|
21
|
+
action: 'store',
|
|
22
|
+
priority: 100
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
name: 'summarize-long',
|
|
26
|
+
condition: (content) => content.length > 2000,
|
|
27
|
+
action: 'summarize',
|
|
28
|
+
priority: 50
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: 'vectorize-knowledge',
|
|
32
|
+
condition: (content, role) => {
|
|
33
|
+
return role === 'assistant' && content.length > 500;
|
|
34
|
+
},
|
|
35
|
+
action: 'vectorize',
|
|
36
|
+
priority: 30
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'skip-short',
|
|
40
|
+
condition: (content) => content.length < 10,
|
|
41
|
+
action: 'skip',
|
|
42
|
+
priority: 10
|
|
43
|
+
}
|
|
44
|
+
];
|
|
45
|
+
/**
|
|
46
|
+
* AutoMemory - Automatic memory management with policies
|
|
47
|
+
*/
|
|
48
|
+
class AutoMemory {
|
|
49
|
+
constructor(config = {}) {
|
|
50
|
+
this.pendingVectorization = [];
|
|
51
|
+
this.memory = new memory_1.Memory(config);
|
|
52
|
+
this.policies = (config.policies || exports.DEFAULT_POLICIES).sort((a, b) => (b.priority || 0) - (a.priority || 0));
|
|
53
|
+
this.summaryThreshold = config.summaryThreshold ?? 50;
|
|
54
|
+
this.vectorizeThreshold = config.vectorizeThreshold ?? 10;
|
|
55
|
+
this.summarizer = config.summarizer;
|
|
56
|
+
this.vectorStore = config.vectorStore;
|
|
57
|
+
this.knowledgeBase = config.knowledgeBase;
|
|
58
|
+
this.embeddingProvider = config.embeddingProvider;
|
|
59
|
+
this.context = {
|
|
60
|
+
messageCount: 0,
|
|
61
|
+
tokenCount: 0,
|
|
62
|
+
metadata: {}
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Process and add content with automatic policy application
|
|
67
|
+
*/
|
|
68
|
+
async add(content, role, metadata) {
|
|
69
|
+
this.context.messageCount++;
|
|
70
|
+
this.context.tokenCount += this.estimateTokens(content);
|
|
71
|
+
// Find matching policy
|
|
72
|
+
const policy = this.policies.find(p => p.condition(content, role, this.context));
|
|
73
|
+
if (!policy || policy.action === 'skip') {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
let entry;
|
|
77
|
+
switch (policy.action) {
|
|
78
|
+
case 'summarize':
|
|
79
|
+
if (this.summarizer) {
|
|
80
|
+
const summary = await this.summarizer([{
|
|
81
|
+
id: '', content, role, timestamp: Date.now(), metadata
|
|
82
|
+
}]);
|
|
83
|
+
entry = await this.memory.add(summary, role, {
|
|
84
|
+
...metadata,
|
|
85
|
+
original: content,
|
|
86
|
+
summarized: true
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
entry = await this.memory.add(content, role, metadata);
|
|
91
|
+
}
|
|
92
|
+
break;
|
|
93
|
+
case 'vectorize':
|
|
94
|
+
entry = await this.memory.add(content, role, metadata);
|
|
95
|
+
this.pendingVectorization.push(entry);
|
|
96
|
+
if (this.pendingVectorization.length >= this.vectorizeThreshold) {
|
|
97
|
+
await this.flushVectorization();
|
|
98
|
+
}
|
|
99
|
+
break;
|
|
100
|
+
case 'store':
|
|
101
|
+
default:
|
|
102
|
+
entry = await this.memory.add(content, role, metadata);
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
// Check if we need to trigger summarization
|
|
106
|
+
if (this.memory.size >= this.summaryThreshold && this.summarizer) {
|
|
107
|
+
await this.summarizeOldEntries();
|
|
108
|
+
}
|
|
109
|
+
return entry;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Get a memory entry by ID
|
|
113
|
+
*/
|
|
114
|
+
get(id) {
|
|
115
|
+
return this.memory.get(id);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Get all entries
|
|
119
|
+
*/
|
|
120
|
+
getAll() {
|
|
121
|
+
return this.memory.getAll();
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Get recent entries
|
|
125
|
+
*/
|
|
126
|
+
getRecent(count) {
|
|
127
|
+
return this.memory.getRecent(count);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Search memory
|
|
131
|
+
*/
|
|
132
|
+
async search(query, limit = 5) {
|
|
133
|
+
const memoryResults = await this.memory.search(query, limit);
|
|
134
|
+
// Also search vector store if available
|
|
135
|
+
if (this.vectorStore && this.embeddingProvider) {
|
|
136
|
+
const queryEmbedding = await this.embeddingProvider.embed(query);
|
|
137
|
+
const vectorResults = await this.vectorStore.search(queryEmbedding, limit);
|
|
138
|
+
// Merge results (deduplicate by ID)
|
|
139
|
+
const seen = new Set(memoryResults.map(r => r.entry.id));
|
|
140
|
+
for (const vr of vectorResults) {
|
|
141
|
+
if (!seen.has(vr.id)) {
|
|
142
|
+
const entry = this.memory.get(vr.id);
|
|
143
|
+
if (entry) {
|
|
144
|
+
memoryResults.push({ entry, score: vr.score });
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
// Also search knowledge base if available
|
|
150
|
+
if (this.knowledgeBase) {
|
|
151
|
+
const kbResults = await this.knowledgeBase.search(query, limit);
|
|
152
|
+
// Knowledge base results are returned separately as they may not have IDs
|
|
153
|
+
}
|
|
154
|
+
return memoryResults
|
|
155
|
+
.sort((a, b) => b.score - a.score)
|
|
156
|
+
.slice(0, limit);
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Build context with automatic retrieval
|
|
160
|
+
*/
|
|
161
|
+
async buildContext(query, maxTokens = 4000) {
|
|
162
|
+
let entries;
|
|
163
|
+
if (query) {
|
|
164
|
+
const results = await this.search(query, 20);
|
|
165
|
+
entries = results.map(r => r.entry);
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
entries = this.getRecent(20);
|
|
169
|
+
}
|
|
170
|
+
// Build context within token limit
|
|
171
|
+
const contextParts = [];
|
|
172
|
+
let tokenCount = 0;
|
|
173
|
+
for (const entry of entries) {
|
|
174
|
+
const part = `${entry.role}: ${entry.content}`;
|
|
175
|
+
const partTokens = this.estimateTokens(part);
|
|
176
|
+
if (tokenCount + partTokens > maxTokens)
|
|
177
|
+
break;
|
|
178
|
+
contextParts.push(part);
|
|
179
|
+
tokenCount += partTokens;
|
|
180
|
+
}
|
|
181
|
+
return contextParts.join('\n');
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Add a custom policy
|
|
185
|
+
*/
|
|
186
|
+
addPolicy(policy) {
|
|
187
|
+
this.policies.push(policy);
|
|
188
|
+
this.policies.sort((a, b) => (b.priority || 0) - (a.priority || 0));
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Remove a policy by name
|
|
192
|
+
*/
|
|
193
|
+
removePolicy(name) {
|
|
194
|
+
const index = this.policies.findIndex(p => p.name === name);
|
|
195
|
+
if (index >= 0) {
|
|
196
|
+
this.policies.splice(index, 1);
|
|
197
|
+
return true;
|
|
198
|
+
}
|
|
199
|
+
return false;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Get current context stats
|
|
203
|
+
*/
|
|
204
|
+
getStats() {
|
|
205
|
+
return { ...this.context };
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Clear all memory
|
|
209
|
+
*/
|
|
210
|
+
clear() {
|
|
211
|
+
this.memory.clear();
|
|
212
|
+
this.pendingVectorization = [];
|
|
213
|
+
this.context = {
|
|
214
|
+
messageCount: 0,
|
|
215
|
+
tokenCount: 0,
|
|
216
|
+
metadata: {}
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Export memory
|
|
221
|
+
*/
|
|
222
|
+
toJSON() {
|
|
223
|
+
return this.memory.toJSON();
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Import memory
|
|
227
|
+
*/
|
|
228
|
+
fromJSON(entries) {
|
|
229
|
+
this.memory.fromJSON(entries);
|
|
230
|
+
this.context.messageCount = entries.length;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Get underlying memory instance
|
|
234
|
+
*/
|
|
235
|
+
getMemory() {
|
|
236
|
+
return this.memory;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Flush pending vectorization
|
|
240
|
+
*/
|
|
241
|
+
async flushVectorization() {
|
|
242
|
+
if (!this.vectorStore || !this.embeddingProvider || this.pendingVectorization.length === 0) {
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
for (const entry of this.pendingVectorization) {
|
|
246
|
+
if (entry.embedding) {
|
|
247
|
+
await this.vectorStore.add(entry.id, entry.embedding, entry.metadata);
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
const embedding = await this.embeddingProvider.embed(entry.content);
|
|
251
|
+
await this.vectorStore.add(entry.id, embedding, entry.metadata);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
this.pendingVectorization = [];
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Summarize old entries to save space
|
|
258
|
+
*/
|
|
259
|
+
async summarizeOldEntries() {
|
|
260
|
+
if (!this.summarizer)
|
|
261
|
+
return;
|
|
262
|
+
const entries = this.memory.getAll();
|
|
263
|
+
const oldEntries = entries.slice(0, Math.floor(entries.length / 2));
|
|
264
|
+
if (oldEntries.length < 10)
|
|
265
|
+
return;
|
|
266
|
+
const summary = await this.summarizer(oldEntries);
|
|
267
|
+
// Delete old entries and add summary
|
|
268
|
+
for (const entry of oldEntries) {
|
|
269
|
+
this.memory.delete(entry.id);
|
|
270
|
+
}
|
|
271
|
+
await this.memory.add(summary, 'system', {
|
|
272
|
+
type: 'summary',
|
|
273
|
+
summarizedCount: oldEntries.length,
|
|
274
|
+
summarizedAt: Date.now()
|
|
275
|
+
});
|
|
276
|
+
this.context.lastSummaryAt = Date.now();
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Estimate token count (rough approximation)
|
|
280
|
+
*/
|
|
281
|
+
estimateTokens(text) {
|
|
282
|
+
return Math.ceil(text.length / 4);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
exports.AutoMemory = AutoMemory;
|
|
286
|
+
/**
|
|
287
|
+
* Create an auto-memory instance
|
|
288
|
+
*/
|
|
289
|
+
function createAutoMemory(config) {
|
|
290
|
+
return new AutoMemory(config);
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Create a simple summarizer using an LLM
|
|
294
|
+
*/
|
|
295
|
+
function createLLMSummarizer(llm) {
|
|
296
|
+
return async (entries) => {
|
|
297
|
+
const content = entries.map(e => `${e.role}: ${e.content}`).join('\n');
|
|
298
|
+
const prompt = `Summarize the following conversation concisely, preserving key information:\n\n${content}`;
|
|
299
|
+
return llm.chat(prompt);
|
|
300
|
+
};
|
|
301
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File-based Memory Storage
|
|
3
|
+
* Persistent memory using JSONL files with lockfile support for concurrent access
|
|
4
|
+
*/
|
|
5
|
+
import { MemoryEntry, MemoryConfig, SearchResult } from './memory';
|
|
6
|
+
export interface FileMemoryConfig extends MemoryConfig {
|
|
7
|
+
filePath: string;
|
|
8
|
+
compactionThreshold?: number;
|
|
9
|
+
autoCompact?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface FileMemoryEntry extends MemoryEntry {
|
|
12
|
+
deleted?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* FileMemory - Append-only JSONL storage with compaction
|
|
16
|
+
*/
|
|
17
|
+
export declare class FileMemory {
|
|
18
|
+
private filePath;
|
|
19
|
+
private entries;
|
|
20
|
+
private maxEntries;
|
|
21
|
+
private embeddingProvider?;
|
|
22
|
+
private compactionThreshold;
|
|
23
|
+
private autoCompact;
|
|
24
|
+
private initialized;
|
|
25
|
+
private writeQueue;
|
|
26
|
+
constructor(config: FileMemoryConfig);
|
|
27
|
+
/**
|
|
28
|
+
* Initialize and load existing entries
|
|
29
|
+
*/
|
|
30
|
+
initialize(): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Add a memory entry
|
|
33
|
+
*/
|
|
34
|
+
add(content: string, role: 'user' | 'assistant' | 'system', metadata?: Record<string, any>): Promise<MemoryEntry>;
|
|
35
|
+
/**
|
|
36
|
+
* Get a memory entry by ID
|
|
37
|
+
*/
|
|
38
|
+
get(id: string): Promise<MemoryEntry | undefined>;
|
|
39
|
+
/**
|
|
40
|
+
* Get all entries
|
|
41
|
+
*/
|
|
42
|
+
getAll(): Promise<MemoryEntry[]>;
|
|
43
|
+
/**
|
|
44
|
+
* Get recent entries
|
|
45
|
+
*/
|
|
46
|
+
getRecent(count: number): Promise<MemoryEntry[]>;
|
|
47
|
+
/**
|
|
48
|
+
* Search memory by text similarity
|
|
49
|
+
*/
|
|
50
|
+
search(query: string, limit?: number): Promise<SearchResult[]>;
|
|
51
|
+
/**
|
|
52
|
+
* Delete a memory entry (soft delete)
|
|
53
|
+
*/
|
|
54
|
+
delete(id: string): Promise<boolean>;
|
|
55
|
+
/**
|
|
56
|
+
* Clear all memory
|
|
57
|
+
*/
|
|
58
|
+
clear(): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Compact the file by removing deleted entries
|
|
61
|
+
*/
|
|
62
|
+
compact(): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Get memory size
|
|
65
|
+
*/
|
|
66
|
+
get size(): number;
|
|
67
|
+
/**
|
|
68
|
+
* Export memory to JSON
|
|
69
|
+
*/
|
|
70
|
+
toJSON(): Promise<MemoryEntry[]>;
|
|
71
|
+
/**
|
|
72
|
+
* Import memory from JSON
|
|
73
|
+
*/
|
|
74
|
+
fromJSON(entries: MemoryEntry[]): Promise<void>;
|
|
75
|
+
/**
|
|
76
|
+
* Build context string from recent memory
|
|
77
|
+
*/
|
|
78
|
+
buildContext(count?: number): Promise<string>;
|
|
79
|
+
private appendEntry;
|
|
80
|
+
private textSearch;
|
|
81
|
+
private cosineSimilarity;
|
|
82
|
+
private generateId;
|
|
83
|
+
private enforceLimit;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Create a file-based memory instance
|
|
87
|
+
*/
|
|
88
|
+
export declare function createFileMemory(config: FileMemoryConfig): FileMemory;
|