praisonai 1.2.2 → 1.2.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/dist/agent/simple.js +1 -1
- 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/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/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 +169 -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 +167 -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/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 +9 -0
- package/dist/cli/commands/observability.js +145 -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 +9 -0
- package/dist/cli/commands/providers.js +98 -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 +9 -0
- package/dist/cli/commands/tools.js +172 -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 +68 -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 +115 -0
- package/dist/cli/features/external-agents.js +294 -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 +108 -0
- package/dist/cli/features/n8n-integration.js +296 -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 +19 -15
- package/dist/cli/index.js +163 -123
- package/dist/cli/output/errors.d.ts +32 -0
- package/dist/cli/output/errors.js +72 -0
- package/dist/cli/output/index.d.ts +6 -0
- package/dist/cli/output/index.js +22 -0
- package/dist/cli/output/json.d.ts +17 -0
- package/dist/cli/output/json.js +54 -0
- package/dist/cli/output/pretty.d.ts +21 -0
- package/dist/cli/output/pretty.js +106 -0
- package/dist/cli/runtime/env.d.ts +12 -0
- package/dist/cli/runtime/env.js +49 -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 +478 -0
- package/dist/cli/spec/index.d.ts +4 -0
- package/dist/cli/spec/index.js +20 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.js +100 -7
- 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 +2 -0
- package/dist/memory/index.js +11 -1
- package/dist/workflows/loop.d.ts +0 -0
- package/dist/workflows/loop.js +1 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -14,9 +14,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
18
|
-
exports.
|
|
19
|
-
exports.BaseProvider = exports.GoogleProvider = exports.AnthropicProvider = exports.OpenAIProvider = exports.getAvailableProviders = exports.isProviderAvailable = exports.parseModelString = exports.getDefaultProvider = exports.createProvider = exports.createGraphRAG = exports.GraphRAG = exports.GraphStore = exports.createLLMReranker = exports.createCrossEncoderReranker = exports.createCohereReranker = exports.LLMReranker = exports.CrossEncoderReranker = exports.CohereReranker = exports.BaseReranker = exports.createElevenLabsVoice = exports.createOpenAIVoice = exports.ElevenLabsVoiceProvider = exports.OpenAIVoiceProvider = exports.BaseVoiceProvider = exports.createLangfuseObservability = exports.createMemoryObservability = exports.createConsoleObservability = exports.LangfuseObservabilityProvider = exports.MemoryObservabilityProvider = exports.ConsoleObservabilityProvider = exports.BaseObservabilityProvider = exports.createChromaStore = exports.ChromaVectorStore = void 0;
|
|
17
|
+
exports.ImageAgent = exports.createAutoAgents = exports.AutoAgents = exports.cleanupTelemetry = exports.disableTelemetry = exports.enableTelemetry = exports.getTelemetry = exports.TelemetryCollector = exports.DEFAULT_POLICIES = exports.createLLMSummarizer = exports.createAutoMemory = exports.AutoMemory = exports.createFileMemory = exports.FileMemory = exports.createMemory = exports.Memory = exports.CLI_SPEC_VERSION = exports.executeCommand = exports.parseArgs = exports.parseSkillFile = exports.createSkillManager = exports.SkillManager = exports.getObservabilityAdapter = exports.setObservabilityAdapter = exports.ConsoleObservabilityAdapter = exports.MemoryObservabilityAdapter = exports.EvalSuite = exports.reliabilityEval = exports.performanceEval = exports.accuracyEval = exports.createKnowledgeBase = exports.KnowledgeBase = exports.createContextAgent = exports.ContextAgent = exports.routeConditions = exports.createRouter = exports.RouterAgent = exports.handoffFilters = exports.handoff = exports.Handoff = exports.getTool = exports.registerTool = exports.getRegistry = exports.ToolRegistry = exports.tool = exports.FunctionTool = exports.createTool = exports.validateTool = exports.ToolValidationError = exports.BaseTool = void 0;
|
|
18
|
+
exports.PineconeVectorStore = exports.createMemoryVectorStore = exports.MemoryVectorStore = exports.BaseVectorStore = exports.createPostgresSessionStorage = exports.createMemoryPostgres = exports.createNeonPostgres = exports.PostgresSessionStorage = exports.MemoryPostgresAdapter = exports.NeonPostgresAdapter = exports.createMemoryRedis = exports.createUpstashRedis = exports.MemoryRedisAdapter = exports.UpstashRedisAdapter = exports.createSQLiteAdapter = exports.SQLiteAdapter = exports.validateWorkflowDefinition = exports.loadWorkflowFromFile = exports.createWorkflowFromYAML = exports.parseYAMLWorkflow = exports.createPubSub = exports.createEventBus = exports.AgentEvents = exports.AgentEventBus = exports.EventEmitterPubSub = exports.PubSub = exports.createFileCache = exports.createMemoryCache = exports.FileCache = exports.MemoryCache = exports.BaseCache = exports.createPlanStorage = exports.createTodoList = exports.createPlan = exports.PlanStorage = exports.TodoItem = exports.TodoList = exports.PlanStep = exports.Plan = exports.createLLMGuardrail = exports.LLMGuardrail = exports.createChunking = exports.Chunking = exports.createPromptExpanderAgent = exports.PromptExpanderAgent = exports.createQueryRewriterAgent = exports.QueryRewriterAgent = exports.createDeepResearchAgent = exports.DeepResearchAgent = exports.createImageAgent = void 0;
|
|
19
|
+
exports.InteractiveTUI = exports.MODEL_PRICING = exports.formatCost = exports.estimateTokens = exports.createCostTracker = exports.CostTracker = exports.isSlashCommand = exports.executeSlashCommand = exports.parseSlashCommand = exports.registerCommand = exports.createSlashCommandHandler = exports.SlashCommandHandler = exports.BaseProvider = exports.GoogleProvider = exports.AnthropicProvider = exports.OpenAIProvider = exports.getAvailableProviders = exports.isProviderAvailable = exports.parseModelString = exports.getDefaultProvider = exports.createProvider = exports.createGraphRAG = exports.GraphRAG = exports.GraphStore = exports.createLLMReranker = exports.createCrossEncoderReranker = exports.createCohereReranker = exports.LLMReranker = exports.CrossEncoderReranker = exports.CohereReranker = exports.BaseReranker = exports.createElevenLabsVoice = exports.createOpenAIVoice = exports.ElevenLabsVoiceProvider = exports.OpenAIVoiceProvider = exports.BaseVoiceProvider = exports.createLangfuseObservability = exports.createMemoryObservability = exports.createConsoleObservability = exports.LangfuseObservabilityProvider = exports.MemoryObservabilityProvider = exports.ConsoleObservabilityProvider = exports.BaseObservabilityProvider = exports.createChromaStore = exports.ChromaVectorStore = exports.createQdrantStore = exports.QdrantVectorStore = exports.createWeaviateStore = exports.WeaviateVectorStore = exports.createPineconeStore = void 0;
|
|
20
|
+
exports.createN8NIntegration = exports.N8NIntegration = exports.externalAgentAsTool = exports.createExternalAgent = exports.getExternalAgentRegistry = exports.GenericExternalAgent = exports.AiderAgent = exports.CodexCliAgent = exports.GeminiCliAgent = exports.ClaudeCodeAgent = exports.BaseExternalAgent = exports.renderWorkflow = exports.createFlowDisplay = exports.FlowDisplay = exports.createFileCheckpointStorage = exports.FileCheckpointStorage = exports.MemoryCheckpointStorage = exports.createCheckpointManager = exports.CheckpointManager = exports.createFileJobStorage = exports.FileJobStorage = exports.MemoryJobStorage = exports.createJobQueue = exports.JobQueue = exports.cronExpressions = exports.createScheduler = exports.Scheduler = exports.MODE_POLICIES = exports.cliApprovalPrompt = exports.createAutonomyManager = exports.AutonomyManager = exports.DEFAULT_BLOCKED_PATHS = exports.DEFAULT_BLOCKED_COMMANDS = exports.CommandValidator = exports.sandboxExec = exports.createSandboxExecutor = exports.SandboxExecutor = exports.createDiffViewer = exports.DiffViewer = exports.createGitManager = exports.GitManager = exports.DEFAULT_IGNORE_PATTERNS = exports.getRepoTree = exports.createRepoMap = exports.RepoMap = exports.createHistoryManager = exports.HistoryManager = exports.createStatusDisplay = exports.StatusDisplay = exports.createInteractiveTUI = void 0;
|
|
21
|
+
exports.getQuickContext = exports.createFastContext = exports.FastContext = exports.triggerN8NWebhook = void 0;
|
|
20
22
|
// Export all public modules
|
|
21
23
|
__exportStar(require("./agent"), exports);
|
|
22
24
|
__exportStar(require("./knowledge"), exports);
|
|
@@ -82,14 +84,23 @@ Object.defineProperty(exports, "createSkillManager", { enumerable: true, get: fu
|
|
|
82
84
|
Object.defineProperty(exports, "parseSkillFile", { enumerable: true, get: function () { return skills_1.parseSkillFile; } });
|
|
83
85
|
// Export CLI
|
|
84
86
|
var cli_1 = require("./cli");
|
|
85
|
-
Object.defineProperty(exports, "
|
|
86
|
-
Object.defineProperty(exports, "
|
|
87
|
-
Object.defineProperty(exports, "
|
|
88
|
-
Object.defineProperty(exports, "help", { enumerable: true, get: function () { return cli_1.help; } });
|
|
87
|
+
Object.defineProperty(exports, "parseArgs", { enumerable: true, get: function () { return cli_1.parseArgs; } });
|
|
88
|
+
Object.defineProperty(exports, "executeCommand", { enumerable: true, get: function () { return cli_1.executeCommand; } });
|
|
89
|
+
Object.defineProperty(exports, "CLI_SPEC_VERSION", { enumerable: true, get: function () { return cli_1.CLI_SPEC_VERSION; } });
|
|
89
90
|
// Export Memory
|
|
90
91
|
var memory_1 = require("./memory/memory");
|
|
91
92
|
Object.defineProperty(exports, "Memory", { enumerable: true, get: function () { return memory_1.Memory; } });
|
|
92
93
|
Object.defineProperty(exports, "createMemory", { enumerable: true, get: function () { return memory_1.createMemory; } });
|
|
94
|
+
// Export FileMemory
|
|
95
|
+
var file_memory_1 = require("./memory/file-memory");
|
|
96
|
+
Object.defineProperty(exports, "FileMemory", { enumerable: true, get: function () { return file_memory_1.FileMemory; } });
|
|
97
|
+
Object.defineProperty(exports, "createFileMemory", { enumerable: true, get: function () { return file_memory_1.createFileMemory; } });
|
|
98
|
+
// Export AutoMemory
|
|
99
|
+
var auto_memory_1 = require("./memory/auto-memory");
|
|
100
|
+
Object.defineProperty(exports, "AutoMemory", { enumerable: true, get: function () { return auto_memory_1.AutoMemory; } });
|
|
101
|
+
Object.defineProperty(exports, "createAutoMemory", { enumerable: true, get: function () { return auto_memory_1.createAutoMemory; } });
|
|
102
|
+
Object.defineProperty(exports, "createLLMSummarizer", { enumerable: true, get: function () { return auto_memory_1.createLLMSummarizer; } });
|
|
103
|
+
Object.defineProperty(exports, "DEFAULT_POLICIES", { enumerable: true, get: function () { return auto_memory_1.DEFAULT_POLICIES; } });
|
|
93
104
|
// Export Telemetry
|
|
94
105
|
var telemetry_1 = require("./telemetry");
|
|
95
106
|
Object.defineProperty(exports, "TelemetryCollector", { enumerable: true, get: function () { return telemetry_1.TelemetryCollector; } });
|
|
@@ -228,3 +239,85 @@ Object.defineProperty(exports, "OpenAIProvider", { enumerable: true, get: functi
|
|
|
228
239
|
Object.defineProperty(exports, "AnthropicProvider", { enumerable: true, get: function () { return providers_1.AnthropicProvider; } });
|
|
229
240
|
Object.defineProperty(exports, "GoogleProvider", { enumerable: true, get: function () { return providers_1.GoogleProvider; } });
|
|
230
241
|
Object.defineProperty(exports, "BaseProvider", { enumerable: true, get: function () { return providers_1.BaseProvider; } });
|
|
242
|
+
// Export CLI Features
|
|
243
|
+
var features_1 = require("./cli/features");
|
|
244
|
+
// Slash Commands
|
|
245
|
+
Object.defineProperty(exports, "SlashCommandHandler", { enumerable: true, get: function () { return features_1.SlashCommandHandler; } });
|
|
246
|
+
Object.defineProperty(exports, "createSlashCommandHandler", { enumerable: true, get: function () { return features_1.createSlashCommandHandler; } });
|
|
247
|
+
Object.defineProperty(exports, "registerCommand", { enumerable: true, get: function () { return features_1.registerCommand; } });
|
|
248
|
+
Object.defineProperty(exports, "parseSlashCommand", { enumerable: true, get: function () { return features_1.parseSlashCommand; } });
|
|
249
|
+
Object.defineProperty(exports, "executeSlashCommand", { enumerable: true, get: function () { return features_1.executeSlashCommand; } });
|
|
250
|
+
Object.defineProperty(exports, "isSlashCommand", { enumerable: true, get: function () { return features_1.isSlashCommand; } });
|
|
251
|
+
// Cost Tracker
|
|
252
|
+
Object.defineProperty(exports, "CostTracker", { enumerable: true, get: function () { return features_1.CostTracker; } });
|
|
253
|
+
Object.defineProperty(exports, "createCostTracker", { enumerable: true, get: function () { return features_1.createCostTracker; } });
|
|
254
|
+
Object.defineProperty(exports, "estimateTokens", { enumerable: true, get: function () { return features_1.estimateTokens; } });
|
|
255
|
+
Object.defineProperty(exports, "formatCost", { enumerable: true, get: function () { return features_1.formatCost; } });
|
|
256
|
+
Object.defineProperty(exports, "MODEL_PRICING", { enumerable: true, get: function () { return features_1.MODEL_PRICING; } });
|
|
257
|
+
// Interactive TUI
|
|
258
|
+
Object.defineProperty(exports, "InteractiveTUI", { enumerable: true, get: function () { return features_1.InteractiveTUI; } });
|
|
259
|
+
Object.defineProperty(exports, "createInteractiveTUI", { enumerable: true, get: function () { return features_1.createInteractiveTUI; } });
|
|
260
|
+
Object.defineProperty(exports, "StatusDisplay", { enumerable: true, get: function () { return features_1.StatusDisplay; } });
|
|
261
|
+
Object.defineProperty(exports, "createStatusDisplay", { enumerable: true, get: function () { return features_1.createStatusDisplay; } });
|
|
262
|
+
Object.defineProperty(exports, "HistoryManager", { enumerable: true, get: function () { return features_1.HistoryManager; } });
|
|
263
|
+
Object.defineProperty(exports, "createHistoryManager", { enumerable: true, get: function () { return features_1.createHistoryManager; } });
|
|
264
|
+
// Repo Map
|
|
265
|
+
Object.defineProperty(exports, "RepoMap", { enumerable: true, get: function () { return features_1.RepoMap; } });
|
|
266
|
+
Object.defineProperty(exports, "createRepoMap", { enumerable: true, get: function () { return features_1.createRepoMap; } });
|
|
267
|
+
Object.defineProperty(exports, "getRepoTree", { enumerable: true, get: function () { return features_1.getRepoTree; } });
|
|
268
|
+
Object.defineProperty(exports, "DEFAULT_IGNORE_PATTERNS", { enumerable: true, get: function () { return features_1.DEFAULT_IGNORE_PATTERNS; } });
|
|
269
|
+
// Git Integration
|
|
270
|
+
Object.defineProperty(exports, "GitManager", { enumerable: true, get: function () { return features_1.GitManager; } });
|
|
271
|
+
Object.defineProperty(exports, "createGitManager", { enumerable: true, get: function () { return features_1.createGitManager; } });
|
|
272
|
+
Object.defineProperty(exports, "DiffViewer", { enumerable: true, get: function () { return features_1.DiffViewer; } });
|
|
273
|
+
Object.defineProperty(exports, "createDiffViewer", { enumerable: true, get: function () { return features_1.createDiffViewer; } });
|
|
274
|
+
// Sandbox Executor
|
|
275
|
+
Object.defineProperty(exports, "SandboxExecutor", { enumerable: true, get: function () { return features_1.SandboxExecutor; } });
|
|
276
|
+
Object.defineProperty(exports, "createSandboxExecutor", { enumerable: true, get: function () { return features_1.createSandboxExecutor; } });
|
|
277
|
+
Object.defineProperty(exports, "sandboxExec", { enumerable: true, get: function () { return features_1.sandboxExec; } });
|
|
278
|
+
Object.defineProperty(exports, "CommandValidator", { enumerable: true, get: function () { return features_1.CommandValidator; } });
|
|
279
|
+
Object.defineProperty(exports, "DEFAULT_BLOCKED_COMMANDS", { enumerable: true, get: function () { return features_1.DEFAULT_BLOCKED_COMMANDS; } });
|
|
280
|
+
Object.defineProperty(exports, "DEFAULT_BLOCKED_PATHS", { enumerable: true, get: function () { return features_1.DEFAULT_BLOCKED_PATHS; } });
|
|
281
|
+
// Autonomy Mode
|
|
282
|
+
Object.defineProperty(exports, "AutonomyManager", { enumerable: true, get: function () { return features_1.AutonomyManager; } });
|
|
283
|
+
Object.defineProperty(exports, "createAutonomyManager", { enumerable: true, get: function () { return features_1.createAutonomyManager; } });
|
|
284
|
+
Object.defineProperty(exports, "cliApprovalPrompt", { enumerable: true, get: function () { return features_1.cliApprovalPrompt; } });
|
|
285
|
+
Object.defineProperty(exports, "MODE_POLICIES", { enumerable: true, get: function () { return features_1.MODE_POLICIES; } });
|
|
286
|
+
// Scheduler
|
|
287
|
+
Object.defineProperty(exports, "Scheduler", { enumerable: true, get: function () { return features_1.Scheduler; } });
|
|
288
|
+
Object.defineProperty(exports, "createScheduler", { enumerable: true, get: function () { return features_1.createScheduler; } });
|
|
289
|
+
Object.defineProperty(exports, "cronExpressions", { enumerable: true, get: function () { return features_1.cronExpressions; } });
|
|
290
|
+
// Background Jobs
|
|
291
|
+
Object.defineProperty(exports, "JobQueue", { enumerable: true, get: function () { return features_1.JobQueue; } });
|
|
292
|
+
Object.defineProperty(exports, "createJobQueue", { enumerable: true, get: function () { return features_1.createJobQueue; } });
|
|
293
|
+
Object.defineProperty(exports, "MemoryJobStorage", { enumerable: true, get: function () { return features_1.MemoryJobStorage; } });
|
|
294
|
+
Object.defineProperty(exports, "FileJobStorage", { enumerable: true, get: function () { return features_1.FileJobStorage; } });
|
|
295
|
+
Object.defineProperty(exports, "createFileJobStorage", { enumerable: true, get: function () { return features_1.createFileJobStorage; } });
|
|
296
|
+
// Checkpoints
|
|
297
|
+
Object.defineProperty(exports, "CheckpointManager", { enumerable: true, get: function () { return features_1.CheckpointManager; } });
|
|
298
|
+
Object.defineProperty(exports, "createCheckpointManager", { enumerable: true, get: function () { return features_1.createCheckpointManager; } });
|
|
299
|
+
Object.defineProperty(exports, "MemoryCheckpointStorage", { enumerable: true, get: function () { return features_1.MemoryCheckpointStorage; } });
|
|
300
|
+
Object.defineProperty(exports, "FileCheckpointStorage", { enumerable: true, get: function () { return features_1.FileCheckpointStorage; } });
|
|
301
|
+
Object.defineProperty(exports, "createFileCheckpointStorage", { enumerable: true, get: function () { return features_1.createFileCheckpointStorage; } });
|
|
302
|
+
// Flow Display
|
|
303
|
+
Object.defineProperty(exports, "FlowDisplay", { enumerable: true, get: function () { return features_1.FlowDisplay; } });
|
|
304
|
+
Object.defineProperty(exports, "createFlowDisplay", { enumerable: true, get: function () { return features_1.createFlowDisplay; } });
|
|
305
|
+
Object.defineProperty(exports, "renderWorkflow", { enumerable: true, get: function () { return features_1.renderWorkflow; } });
|
|
306
|
+
// External Agents
|
|
307
|
+
Object.defineProperty(exports, "BaseExternalAgent", { enumerable: true, get: function () { return features_1.BaseExternalAgent; } });
|
|
308
|
+
Object.defineProperty(exports, "ClaudeCodeAgent", { enumerable: true, get: function () { return features_1.ClaudeCodeAgent; } });
|
|
309
|
+
Object.defineProperty(exports, "GeminiCliAgent", { enumerable: true, get: function () { return features_1.GeminiCliAgent; } });
|
|
310
|
+
Object.defineProperty(exports, "CodexCliAgent", { enumerable: true, get: function () { return features_1.CodexCliAgent; } });
|
|
311
|
+
Object.defineProperty(exports, "AiderAgent", { enumerable: true, get: function () { return features_1.AiderAgent; } });
|
|
312
|
+
Object.defineProperty(exports, "GenericExternalAgent", { enumerable: true, get: function () { return features_1.GenericExternalAgent; } });
|
|
313
|
+
Object.defineProperty(exports, "getExternalAgentRegistry", { enumerable: true, get: function () { return features_1.getExternalAgentRegistry; } });
|
|
314
|
+
Object.defineProperty(exports, "createExternalAgent", { enumerable: true, get: function () { return features_1.createExternalAgent; } });
|
|
315
|
+
Object.defineProperty(exports, "externalAgentAsTool", { enumerable: true, get: function () { return features_1.externalAgentAsTool; } });
|
|
316
|
+
// N8N Integration
|
|
317
|
+
Object.defineProperty(exports, "N8NIntegration", { enumerable: true, get: function () { return features_1.N8NIntegration; } });
|
|
318
|
+
Object.defineProperty(exports, "createN8NIntegration", { enumerable: true, get: function () { return features_1.createN8NIntegration; } });
|
|
319
|
+
Object.defineProperty(exports, "triggerN8NWebhook", { enumerable: true, get: function () { return features_1.triggerN8NWebhook; } });
|
|
320
|
+
// Fast Context
|
|
321
|
+
Object.defineProperty(exports, "FastContext", { enumerable: true, get: function () { return features_1.FastContext; } });
|
|
322
|
+
Object.defineProperty(exports, "createFastContext", { enumerable: true, get: function () { return features_1.createFastContext; } });
|
|
323
|
+
Object.defineProperty(exports, "getQuickContext", { enumerable: true, get: function () { return features_1.getQuickContext; } });
|
|
@@ -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;
|