0agent 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +164 -0
- package/bin/0agent.js +614 -0
- package/package.json +59 -0
- package/packages/core/dist/bootstrap/BootstrapProtocol.d.ts +37 -0
- package/packages/core/dist/bootstrap/BootstrapProtocol.d.ts.map +1 -0
- package/packages/core/dist/bootstrap/BootstrapProtocol.js +82 -0
- package/packages/core/dist/bootstrap/BootstrapProtocol.js.map +1 -0
- package/packages/core/dist/bootstrap/GraphConstructor.d.ts +44 -0
- package/packages/core/dist/bootstrap/GraphConstructor.d.ts.map +1 -0
- package/packages/core/dist/bootstrap/GraphConstructor.js +160 -0
- package/packages/core/dist/bootstrap/GraphConstructor.js.map +1 -0
- package/packages/core/dist/bootstrap/HypothesisManager.d.ts +50 -0
- package/packages/core/dist/bootstrap/HypothesisManager.d.ts.map +1 -0
- package/packages/core/dist/bootstrap/HypothesisManager.js +108 -0
- package/packages/core/dist/bootstrap/HypothesisManager.js.map +1 -0
- package/packages/core/dist/bootstrap/StagedMutations.d.ts +50 -0
- package/packages/core/dist/bootstrap/StagedMutations.d.ts.map +1 -0
- package/packages/core/dist/bootstrap/StagedMutations.js +80 -0
- package/packages/core/dist/bootstrap/StagedMutations.js.map +1 -0
- package/packages/core/dist/concurrency/EdgeWeightUpdater.d.ts +16 -0
- package/packages/core/dist/concurrency/EdgeWeightUpdater.d.ts.map +1 -0
- package/packages/core/dist/concurrency/EdgeWeightUpdater.js +57 -0
- package/packages/core/dist/concurrency/EdgeWeightUpdater.js.map +1 -0
- package/packages/core/dist/concurrency/SessionSnapshot.d.ts +63 -0
- package/packages/core/dist/concurrency/SessionSnapshot.d.ts.map +1 -0
- package/packages/core/dist/concurrency/SessionSnapshot.js +124 -0
- package/packages/core/dist/concurrency/SessionSnapshot.js.map +1 -0
- package/packages/core/dist/embedding/HNSWIndex.d.ts +37 -0
- package/packages/core/dist/embedding/HNSWIndex.d.ts.map +1 -0
- package/packages/core/dist/embedding/HNSWIndex.js +86 -0
- package/packages/core/dist/embedding/HNSWIndex.js.map +1 -0
- package/packages/core/dist/embedding/MultimodalEmbedder.d.ts +24 -0
- package/packages/core/dist/embedding/MultimodalEmbedder.d.ts.map +1 -0
- package/packages/core/dist/embedding/MultimodalEmbedder.js +75 -0
- package/packages/core/dist/embedding/MultimodalEmbedder.js.map +1 -0
- package/packages/core/dist/embedding/adapters/NomicAdapter.d.ts +7 -0
- package/packages/core/dist/embedding/adapters/NomicAdapter.d.ts.map +1 -0
- package/packages/core/dist/embedding/adapters/NomicAdapter.js +11 -0
- package/packages/core/dist/embedding/adapters/NomicAdapter.js.map +1 -0
- package/packages/core/dist/embedding/adapters/OllamaAdapter.d.ts +19 -0
- package/packages/core/dist/embedding/adapters/OllamaAdapter.d.ts.map +1 -0
- package/packages/core/dist/embedding/adapters/OllamaAdapter.js +27 -0
- package/packages/core/dist/embedding/adapters/OllamaAdapter.js.map +1 -0
- package/packages/core/dist/embedding/adapters/OpenAIAdapter.d.ts +14 -0
- package/packages/core/dist/embedding/adapters/OpenAIAdapter.d.ts.map +1 -0
- package/packages/core/dist/embedding/adapters/OpenAIAdapter.js +48 -0
- package/packages/core/dist/embedding/adapters/OpenAIAdapter.js.map +1 -0
- package/packages/core/dist/engine/CreditAttribution.d.ts +47 -0
- package/packages/core/dist/engine/CreditAttribution.d.ts.map +1 -0
- package/packages/core/dist/engine/CreditAttribution.js +196 -0
- package/packages/core/dist/engine/CreditAttribution.js.map +1 -0
- package/packages/core/dist/engine/DecayScheduler.d.ts +45 -0
- package/packages/core/dist/engine/DecayScheduler.d.ts.map +1 -0
- package/packages/core/dist/engine/DecayScheduler.js +115 -0
- package/packages/core/dist/engine/DecayScheduler.js.map +1 -0
- package/packages/core/dist/engine/InferenceEngine.d.ts +95 -0
- package/packages/core/dist/engine/InferenceEngine.d.ts.map +1 -0
- package/packages/core/dist/engine/InferenceEngine.js +242 -0
- package/packages/core/dist/engine/InferenceEngine.js.map +1 -0
- package/packages/core/dist/engine/SelectionPolicy.d.ts +29 -0
- package/packages/core/dist/engine/SelectionPolicy.d.ts.map +1 -0
- package/packages/core/dist/engine/SelectionPolicy.js +58 -0
- package/packages/core/dist/engine/SelectionPolicy.js.map +1 -0
- package/packages/core/dist/engine/SelfImprovementEngine.d.ts +58 -0
- package/packages/core/dist/engine/SelfImprovementEngine.d.ts.map +1 -0
- package/packages/core/dist/engine/SelfImprovementEngine.js +265 -0
- package/packages/core/dist/engine/SelfImprovementEngine.js.map +1 -0
- package/packages/core/dist/engine/SelfImprovementPrompt.d.ts +10 -0
- package/packages/core/dist/engine/SelfImprovementPrompt.d.ts.map +1 -0
- package/packages/core/dist/engine/SelfImprovementPrompt.js +193 -0
- package/packages/core/dist/engine/SelfImprovementPrompt.js.map +1 -0
- package/packages/core/dist/engine/WeightPropagation.d.ts +77 -0
- package/packages/core/dist/engine/WeightPropagation.d.ts.map +1 -0
- package/packages/core/dist/engine/WeightPropagation.js +101 -0
- package/packages/core/dist/engine/WeightPropagation.js.map +1 -0
- package/packages/core/dist/engine/WorkflowSuggestionEngine.d.ts +26 -0
- package/packages/core/dist/engine/WorkflowSuggestionEngine.d.ts.map +1 -0
- package/packages/core/dist/engine/WorkflowSuggestionEngine.js +54 -0
- package/packages/core/dist/engine/WorkflowSuggestionEngine.js.map +1 -0
- package/packages/core/dist/entity/AliasIndex.d.ts +39 -0
- package/packages/core/dist/entity/AliasIndex.d.ts.map +1 -0
- package/packages/core/dist/entity/AliasIndex.js +81 -0
- package/packages/core/dist/entity/AliasIndex.js.map +1 -0
- package/packages/core/dist/entity/ContextActivator.d.ts +53 -0
- package/packages/core/dist/entity/ContextActivator.d.ts.map +1 -0
- package/packages/core/dist/entity/ContextActivator.js +163 -0
- package/packages/core/dist/entity/ContextActivator.js.map +1 -0
- package/packages/core/dist/entity/EntityHierarchy.d.ts +48 -0
- package/packages/core/dist/entity/EntityHierarchy.d.ts.map +1 -0
- package/packages/core/dist/entity/EntityHierarchy.js +134 -0
- package/packages/core/dist/entity/EntityHierarchy.js.map +1 -0
- package/packages/core/dist/entity/EntityResolutionPipeline.d.ts +48 -0
- package/packages/core/dist/entity/EntityResolutionPipeline.d.ts.map +1 -0
- package/packages/core/dist/entity/EntityResolutionPipeline.js +221 -0
- package/packages/core/dist/entity/EntityResolutionPipeline.js.map +1 -0
- package/packages/core/dist/entity/MCPEnrichedResolver.d.ts +17 -0
- package/packages/core/dist/entity/MCPEnrichedResolver.d.ts.map +1 -0
- package/packages/core/dist/entity/MCPEnrichedResolver.js +19 -0
- package/packages/core/dist/entity/MCPEnrichedResolver.js.map +1 -0
- package/packages/core/dist/entity/NodeResolutionService.d.ts +46 -0
- package/packages/core/dist/entity/NodeResolutionService.d.ts.map +1 -0
- package/packages/core/dist/entity/NodeResolutionService.js +150 -0
- package/packages/core/dist/entity/NodeResolutionService.js.map +1 -0
- package/packages/core/dist/entity/PersonalityAccumulator.d.ts +41 -0
- package/packages/core/dist/entity/PersonalityAccumulator.d.ts.map +1 -0
- package/packages/core/dist/entity/PersonalityAccumulator.js +126 -0
- package/packages/core/dist/entity/PersonalityAccumulator.js.map +1 -0
- package/packages/core/dist/entity/PersonalityProfile.d.ts +31 -0
- package/packages/core/dist/entity/PersonalityProfile.d.ts.map +1 -0
- package/packages/core/dist/entity/PersonalityProfile.js +94 -0
- package/packages/core/dist/entity/PersonalityProfile.js.map +1 -0
- package/packages/core/dist/entity/index.d.ts +4 -0
- package/packages/core/dist/entity/index.d.ts.map +1 -0
- package/packages/core/dist/entity/index.js +4 -0
- package/packages/core/dist/entity/index.js.map +1 -0
- package/packages/core/dist/graph/GraphEdge.d.ts +37 -0
- package/packages/core/dist/graph/GraphEdge.d.ts.map +1 -0
- package/packages/core/dist/graph/GraphEdge.js +29 -0
- package/packages/core/dist/graph/GraphEdge.js.map +1 -0
- package/packages/core/dist/graph/GraphNode.d.ts +52 -0
- package/packages/core/dist/graph/GraphNode.d.ts.map +1 -0
- package/packages/core/dist/graph/GraphNode.js +41 -0
- package/packages/core/dist/graph/GraphNode.js.map +1 -0
- package/packages/core/dist/graph/GraphQuery.d.ts +46 -0
- package/packages/core/dist/graph/GraphQuery.d.ts.map +1 -0
- package/packages/core/dist/graph/GraphQuery.js +47 -0
- package/packages/core/dist/graph/GraphQuery.js.map +1 -0
- package/packages/core/dist/graph/KnowledgeGraph.d.ts +38 -0
- package/packages/core/dist/graph/KnowledgeGraph.d.ts.map +1 -0
- package/packages/core/dist/graph/KnowledgeGraph.js +345 -0
- package/packages/core/dist/graph/KnowledgeGraph.js.map +1 -0
- package/packages/core/dist/graph/SubGraph.d.ts +36 -0
- package/packages/core/dist/graph/SubGraph.d.ts.map +1 -0
- package/packages/core/dist/graph/SubGraph.js +86 -0
- package/packages/core/dist/graph/SubGraph.js.map +1 -0
- package/packages/core/dist/index.d.ts +54 -0
- package/packages/core/dist/index.d.ts.map +1 -0
- package/packages/core/dist/index.js +62 -0
- package/packages/core/dist/index.js.map +1 -0
- package/packages/core/dist/maintenance/CompactionOrchestrator.d.ts +22 -0
- package/packages/core/dist/maintenance/CompactionOrchestrator.d.ts.map +1 -0
- package/packages/core/dist/maintenance/CompactionOrchestrator.js +62 -0
- package/packages/core/dist/maintenance/CompactionOrchestrator.js.map +1 -0
- package/packages/core/dist/maintenance/EdgePruner.d.ts +20 -0
- package/packages/core/dist/maintenance/EdgePruner.d.ts.map +1 -0
- package/packages/core/dist/maintenance/EdgePruner.js +65 -0
- package/packages/core/dist/maintenance/EdgePruner.js.map +1 -0
- package/packages/core/dist/maintenance/GraphCheckpoint.d.ts +51 -0
- package/packages/core/dist/maintenance/GraphCheckpoint.d.ts.map +1 -0
- package/packages/core/dist/maintenance/GraphCheckpoint.js +81 -0
- package/packages/core/dist/maintenance/GraphCheckpoint.js.map +1 -0
- package/packages/core/dist/maintenance/GraphRollback.d.ts +36 -0
- package/packages/core/dist/maintenance/GraphRollback.d.ts.map +1 -0
- package/packages/core/dist/maintenance/GraphRollback.js +154 -0
- package/packages/core/dist/maintenance/GraphRollback.js.map +1 -0
- package/packages/core/dist/maintenance/NodeDeduplicator.d.ts +26 -0
- package/packages/core/dist/maintenance/NodeDeduplicator.d.ts.map +1 -0
- package/packages/core/dist/maintenance/NodeDeduplicator.js +171 -0
- package/packages/core/dist/maintenance/NodeDeduplicator.js.map +1 -0
- package/packages/core/dist/maintenance/SubgraphArchiver.d.ts +18 -0
- package/packages/core/dist/maintenance/SubgraphArchiver.d.ts.map +1 -0
- package/packages/core/dist/maintenance/SubgraphArchiver.js +180 -0
- package/packages/core/dist/maintenance/SubgraphArchiver.js.map +1 -0
- package/packages/core/dist/memory/ArchivalMemory.d.ts +28 -0
- package/packages/core/dist/memory/ArchivalMemory.d.ts.map +1 -0
- package/packages/core/dist/memory/ArchivalMemory.js +26 -0
- package/packages/core/dist/memory/ArchivalMemory.js.map +1 -0
- package/packages/core/dist/memory/BlinkingMemory.d.ts +34 -0
- package/packages/core/dist/memory/BlinkingMemory.d.ts.map +1 -0
- package/packages/core/dist/memory/BlinkingMemory.js +44 -0
- package/packages/core/dist/memory/BlinkingMemory.js.map +1 -0
- package/packages/core/dist/memory/WorkingMemory.d.ts +38 -0
- package/packages/core/dist/memory/WorkingMemory.d.ts.map +1 -0
- package/packages/core/dist/memory/WorkingMemory.js +70 -0
- package/packages/core/dist/memory/WorkingMemory.js.map +1 -0
- package/packages/core/dist/storage/ObjectStore.d.ts +24 -0
- package/packages/core/dist/storage/ObjectStore.d.ts.map +1 -0
- package/packages/core/dist/storage/ObjectStore.js +50 -0
- package/packages/core/dist/storage/ObjectStore.js.map +1 -0
- package/packages/core/dist/storage/TraceStore.d.ts +16 -0
- package/packages/core/dist/storage/TraceStore.d.ts.map +1 -0
- package/packages/core/dist/storage/TraceStore.js +19 -0
- package/packages/core/dist/storage/TraceStore.js.map +1 -0
- package/packages/core/dist/storage/WeightEventLog.d.ts +11 -0
- package/packages/core/dist/storage/WeightEventLog.d.ts.map +1 -0
- package/packages/core/dist/storage/WeightEventLog.js +16 -0
- package/packages/core/dist/storage/WeightEventLog.js.map +1 -0
- package/packages/core/dist/storage/adapters/SQLiteAdapter.d.ts +86 -0
- package/packages/core/dist/storage/adapters/SQLiteAdapter.d.ts.map +1 -0
- package/packages/core/dist/storage/adapters/SQLiteAdapter.js +514 -0
- package/packages/core/dist/storage/adapters/SQLiteAdapter.js.map +1 -0
- package/packages/core/dist/trace/DeferredTrace.d.ts +43 -0
- package/packages/core/dist/trace/DeferredTrace.d.ts.map +1 -0
- package/packages/core/dist/trace/DeferredTrace.js +44 -0
- package/packages/core/dist/trace/DeferredTrace.js.map +1 -0
- package/packages/core/dist/trace/OutcomeTrace.d.ts +38 -0
- package/packages/core/dist/trace/OutcomeTrace.d.ts.map +1 -0
- package/packages/core/dist/trace/OutcomeTrace.js +9 -0
- package/packages/core/dist/trace/OutcomeTrace.js.map +1 -0
- package/packages/core/dist/trace/SkillTraceDecorator.d.ts +25 -0
- package/packages/core/dist/trace/SkillTraceDecorator.d.ts.map +1 -0
- package/packages/core/dist/trace/SkillTraceDecorator.js +41 -0
- package/packages/core/dist/trace/SkillTraceDecorator.js.map +1 -0
- package/packages/core/dist/trace/TraceReplay.d.ts +25 -0
- package/packages/core/dist/trace/TraceReplay.d.ts.map +1 -0
- package/packages/core/dist/trace/TraceReplay.js +40 -0
- package/packages/core/dist/trace/TraceReplay.js.map +1 -0
- package/packages/core/dist/trace/TraversalLedger.d.ts +33 -0
- package/packages/core/dist/trace/TraversalLedger.d.ts.map +1 -0
- package/packages/core/dist/trace/TraversalLedger.js +61 -0
- package/packages/core/dist/trace/TraversalLedger.js.map +1 -0
- package/packages/core/dist/types/SelfImprovement.d.ts +174 -0
- package/packages/core/dist/types/SelfImprovement.d.ts.map +1 -0
- package/packages/core/dist/types/SelfImprovement.js +23 -0
- package/packages/core/dist/types/SelfImprovement.js.map +1 -0
- package/packages/core/dist/types/SkillDefinition.d.ts +68 -0
- package/packages/core/dist/types/SkillDefinition.d.ts.map +1 -0
- package/packages/core/dist/types/SkillDefinition.js +12 -0
- package/packages/core/dist/types/SkillDefinition.js.map +1 -0
- package/packages/daemon/dist/BackgroundWorkers.d.ts +55 -0
- package/packages/daemon/dist/BackgroundWorkers.d.ts.map +1 -0
- package/packages/daemon/dist/BackgroundWorkers.js +121 -0
- package/packages/daemon/dist/BackgroundWorkers.js.map +1 -0
- package/packages/daemon/dist/EntityScopedContext.d.ts +22 -0
- package/packages/daemon/dist/EntityScopedContext.d.ts.map +1 -0
- package/packages/daemon/dist/EntityScopedContext.js +85 -0
- package/packages/daemon/dist/EntityScopedContext.js.map +1 -0
- package/packages/daemon/dist/HTTPServer.d.ts +27 -0
- package/packages/daemon/dist/HTTPServer.d.ts.map +1 -0
- package/packages/daemon/dist/HTTPServer.js +62 -0
- package/packages/daemon/dist/HTTPServer.js.map +1 -0
- package/packages/daemon/dist/SessionManager.d.ts +95 -0
- package/packages/daemon/dist/SessionManager.d.ts.map +1 -0
- package/packages/daemon/dist/SessionManager.js +205 -0
- package/packages/daemon/dist/SessionManager.js.map +1 -0
- package/packages/daemon/dist/SkillRegistry.d.ts +34 -0
- package/packages/daemon/dist/SkillRegistry.d.ts.map +1 -0
- package/packages/daemon/dist/SkillRegistry.js +90 -0
- package/packages/daemon/dist/SkillRegistry.js.map +1 -0
- package/packages/daemon/dist/SkillVariableResolver.d.ts +24 -0
- package/packages/daemon/dist/SkillVariableResolver.d.ts.map +1 -0
- package/packages/daemon/dist/SkillVariableResolver.js +85 -0
- package/packages/daemon/dist/SkillVariableResolver.js.map +1 -0
- package/packages/daemon/dist/WebSocketEvents.d.ts +107 -0
- package/packages/daemon/dist/WebSocketEvents.d.ts.map +1 -0
- package/packages/daemon/dist/WebSocketEvents.js +111 -0
- package/packages/daemon/dist/WebSocketEvents.js.map +1 -0
- package/packages/daemon/dist/ZeroAgentDaemon.d.ts +39 -0
- package/packages/daemon/dist/ZeroAgentDaemon.d.ts.map +1 -0
- package/packages/daemon/dist/ZeroAgentDaemon.js +161 -0
- package/packages/daemon/dist/ZeroAgentDaemon.js.map +1 -0
- package/packages/daemon/dist/config/ConfigSchema.d.ts +631 -0
- package/packages/daemon/dist/config/ConfigSchema.d.ts.map +1 -0
- package/packages/daemon/dist/config/ConfigSchema.js +107 -0
- package/packages/daemon/dist/config/ConfigSchema.js.map +1 -0
- package/packages/daemon/dist/config/DaemonConfig.d.ts +10 -0
- package/packages/daemon/dist/config/DaemonConfig.d.ts.map +1 -0
- package/packages/daemon/dist/config/DaemonConfig.js +34 -0
- package/packages/daemon/dist/config/DaemonConfig.js.map +1 -0
- package/packages/daemon/dist/index.d.ts +10 -0
- package/packages/daemon/dist/index.d.ts.map +1 -0
- package/packages/daemon/dist/index.js +8 -0
- package/packages/daemon/dist/index.js.map +1 -0
- package/packages/daemon/dist/routes/entities.d.ts +6 -0
- package/packages/daemon/dist/routes/entities.d.ts.map +1 -0
- package/packages/daemon/dist/routes/entities.js +54 -0
- package/packages/daemon/dist/routes/entities.js.map +1 -0
- package/packages/daemon/dist/routes/graph.d.ts +6 -0
- package/packages/daemon/dist/routes/graph.d.ts.map +1 -0
- package/packages/daemon/dist/routes/graph.js +61 -0
- package/packages/daemon/dist/routes/graph.js.map +1 -0
- package/packages/daemon/dist/routes/health.d.ts +15 -0
- package/packages/daemon/dist/routes/health.d.ts.map +1 -0
- package/packages/daemon/dist/routes/health.js +11 -0
- package/packages/daemon/dist/routes/health.js.map +1 -0
- package/packages/daemon/dist/routes/sessions.d.ts +6 -0
- package/packages/daemon/dist/routes/sessions.d.ts.map +1 -0
- package/packages/daemon/dist/routes/sessions.js +43 -0
- package/packages/daemon/dist/routes/sessions.js.map +1 -0
- package/packages/daemon/dist/routes/skills.d.ts +6 -0
- package/packages/daemon/dist/routes/skills.d.ts.map +1 -0
- package/packages/daemon/dist/routes/skills.js +62 -0
- package/packages/daemon/dist/routes/skills.js.map +1 -0
- package/packages/daemon/dist/routes/subagents.d.ts +3 -0
- package/packages/daemon/dist/routes/subagents.d.ts.map +1 -0
- package/packages/daemon/dist/routes/subagents.js +14 -0
- package/packages/daemon/dist/routes/subagents.js.map +1 -0
- package/packages/daemon/dist/routes/traces.d.ts +6 -0
- package/packages/daemon/dist/routes/traces.d.ts.map +1 -0
- package/packages/daemon/dist/routes/traces.js +31 -0
- package/packages/daemon/dist/routes/traces.js.map +1 -0
- package/packages/daemon/dist/start.d.ts +7 -0
- package/packages/daemon/dist/start.d.ts.map +1 -0
- package/packages/daemon/dist/start.js +24 -0
- package/packages/daemon/dist/start.js.map +1 -0
- package/packages/mcp-hub/dist/FilteredProxy.d.ts +20 -0
- package/packages/mcp-hub/dist/FilteredProxy.d.ts.map +1 -0
- package/packages/mcp-hub/dist/FilteredProxy.js +43 -0
- package/packages/mcp-hub/dist/FilteredProxy.js.map +1 -0
- package/packages/mcp-hub/dist/MCPDiscovery.d.ts +18 -0
- package/packages/mcp-hub/dist/MCPDiscovery.d.ts.map +1 -0
- package/packages/mcp-hub/dist/MCPDiscovery.js +86 -0
- package/packages/mcp-hub/dist/MCPDiscovery.js.map +1 -0
- package/packages/mcp-hub/dist/MCPHub.d.ts +48 -0
- package/packages/mcp-hub/dist/MCPHub.d.ts.map +1 -0
- package/packages/mcp-hub/dist/MCPHub.js +100 -0
- package/packages/mcp-hub/dist/MCPHub.js.map +1 -0
- package/packages/mcp-hub/dist/builtin/BrowserMCP.d.ts +6 -0
- package/packages/mcp-hub/dist/builtin/BrowserMCP.d.ts.map +1 -0
- package/packages/mcp-hub/dist/builtin/BrowserMCP.js +69 -0
- package/packages/mcp-hub/dist/builtin/BrowserMCP.js.map +1 -0
- package/packages/mcp-hub/dist/builtin/FilesystemMCP.d.ts +11 -0
- package/packages/mcp-hub/dist/builtin/FilesystemMCP.d.ts.map +1 -0
- package/packages/mcp-hub/dist/builtin/FilesystemMCP.js +104 -0
- package/packages/mcp-hub/dist/builtin/FilesystemMCP.js.map +1 -0
- package/packages/mcp-hub/dist/builtin/MemoryMCP.d.ts +9 -0
- package/packages/mcp-hub/dist/builtin/MemoryMCP.d.ts.map +1 -0
- package/packages/mcp-hub/dist/builtin/MemoryMCP.js +185 -0
- package/packages/mcp-hub/dist/builtin/MemoryMCP.js.map +1 -0
- package/packages/mcp-hub/dist/builtin/ShellMCP.d.ts +8 -0
- package/packages/mcp-hub/dist/builtin/ShellMCP.d.ts.map +1 -0
- package/packages/mcp-hub/dist/builtin/ShellMCP.js +74 -0
- package/packages/mcp-hub/dist/builtin/ShellMCP.js.map +1 -0
- package/packages/mcp-hub/dist/index.d.ts +9 -0
- package/packages/mcp-hub/dist/index.d.ts.map +1 -0
- package/packages/mcp-hub/dist/index.js +8 -0
- package/packages/mcp-hub/dist/index.js.map +1 -0
- package/packages/mcp-hub/dist/types.d.ts +30 -0
- package/packages/mcp-hub/dist/types.d.ts.map +1 -0
- package/packages/mcp-hub/dist/types.js +2 -0
- package/packages/mcp-hub/dist/types.js.map +1 -0
- package/packages/subagent/dist/CapabilityToken.d.ts +66 -0
- package/packages/subagent/dist/CapabilityToken.d.ts.map +1 -0
- package/packages/subagent/dist/CapabilityToken.js +120 -0
- package/packages/subagent/dist/CapabilityToken.js.map +1 -0
- package/packages/subagent/dist/ResourceDefaults.d.ts +16 -0
- package/packages/subagent/dist/ResourceDefaults.d.ts.map +1 -0
- package/packages/subagent/dist/ResourceDefaults.js +68 -0
- package/packages/subagent/dist/ResourceDefaults.js.map +1 -0
- package/packages/subagent/dist/SkillInputResolver.d.ts +30 -0
- package/packages/subagent/dist/SkillInputResolver.d.ts.map +1 -0
- package/packages/subagent/dist/SkillInputResolver.js +59 -0
- package/packages/subagent/dist/SkillInputResolver.js.map +1 -0
- package/packages/subagent/dist/SkillInvoker.d.ts +33 -0
- package/packages/subagent/dist/SkillInvoker.d.ts.map +1 -0
- package/packages/subagent/dist/SkillInvoker.js +69 -0
- package/packages/subagent/dist/SkillInvoker.js.map +1 -0
- package/packages/subagent/dist/SubagentOrchestrator.d.ts +52 -0
- package/packages/subagent/dist/SubagentOrchestrator.d.ts.map +1 -0
- package/packages/subagent/dist/SubagentOrchestrator.js +198 -0
- package/packages/subagent/dist/SubagentOrchestrator.js.map +1 -0
- package/packages/subagent/dist/SubagentResult.d.ts +34 -0
- package/packages/subagent/dist/SubagentResult.d.ts.map +1 -0
- package/packages/subagent/dist/SubagentResult.js +21 -0
- package/packages/subagent/dist/SubagentResult.js.map +1 -0
- package/packages/subagent/dist/Watchdog.d.ts +23 -0
- package/packages/subagent/dist/Watchdog.d.ts.map +1 -0
- package/packages/subagent/dist/Watchdog.js +44 -0
- package/packages/subagent/dist/Watchdog.js.map +1 -0
- package/packages/subagent/dist/index.d.ts +15 -0
- package/packages/subagent/dist/index.d.ts.map +1 -0
- package/packages/subagent/dist/index.js +23 -0
- package/packages/subagent/dist/index.js.map +1 -0
- package/packages/subagent/dist/sandbox/BwrapBackend.d.ts +14 -0
- package/packages/subagent/dist/sandbox/BwrapBackend.d.ts.map +1 -0
- package/packages/subagent/dist/sandbox/BwrapBackend.js +171 -0
- package/packages/subagent/dist/sandbox/BwrapBackend.js.map +1 -0
- package/packages/subagent/dist/sandbox/CloudBackend.d.ts +28 -0
- package/packages/subagent/dist/sandbox/CloudBackend.d.ts.map +1 -0
- package/packages/subagent/dist/sandbox/CloudBackend.js +52 -0
- package/packages/subagent/dist/sandbox/CloudBackend.js.map +1 -0
- package/packages/subagent/dist/sandbox/DockerBackend.d.ts +14 -0
- package/packages/subagent/dist/sandbox/DockerBackend.d.ts.map +1 -0
- package/packages/subagent/dist/sandbox/DockerBackend.js +149 -0
- package/packages/subagent/dist/sandbox/DockerBackend.js.map +1 -0
- package/packages/subagent/dist/sandbox/FirecrackerBackend.d.ts +17 -0
- package/packages/subagent/dist/sandbox/FirecrackerBackend.d.ts.map +1 -0
- package/packages/subagent/dist/sandbox/FirecrackerBackend.js +54 -0
- package/packages/subagent/dist/sandbox/FirecrackerBackend.js.map +1 -0
- package/packages/subagent/dist/sandbox/PodmanBackend.d.ts +13 -0
- package/packages/subagent/dist/sandbox/PodmanBackend.d.ts.map +1 -0
- package/packages/subagent/dist/sandbox/PodmanBackend.js +144 -0
- package/packages/subagent/dist/sandbox/PodmanBackend.js.map +1 -0
- package/packages/subagent/dist/sandbox/ProcessBackend.d.ts +16 -0
- package/packages/subagent/dist/sandbox/ProcessBackend.d.ts.map +1 -0
- package/packages/subagent/dist/sandbox/ProcessBackend.js +152 -0
- package/packages/subagent/dist/sandbox/ProcessBackend.js.map +1 -0
- package/packages/subagent/dist/sandbox/SandboxManager.d.ts +17 -0
- package/packages/subagent/dist/sandbox/SandboxManager.d.ts.map +1 -0
- package/packages/subagent/dist/sandbox/SandboxManager.js +45 -0
- package/packages/subagent/dist/sandbox/SandboxManager.js.map +1 -0
- package/packages/subagent/dist/sandbox/types.d.ts +35 -0
- package/packages/subagent/dist/sandbox/types.d.ts.map +1 -0
- package/packages/subagent/dist/sandbox/types.js +5 -0
- package/packages/subagent/dist/sandbox/types.js.map +1 -0
- package/packages/subagent-runtime/dist/AgentLoop.d.ts +46 -0
- package/packages/subagent-runtime/dist/AgentLoop.d.ts.map +1 -0
- package/packages/subagent-runtime/dist/AgentLoop.js +85 -0
- package/packages/subagent-runtime/dist/AgentLoop.js.map +1 -0
- package/packages/subagent-runtime/dist/MCPProxy.d.ts +24 -0
- package/packages/subagent-runtime/dist/MCPProxy.d.ts.map +1 -0
- package/packages/subagent-runtime/dist/MCPProxy.js +31 -0
- package/packages/subagent-runtime/dist/MCPProxy.js.map +1 -0
- package/packages/subagent-runtime/dist/OutputChannel.d.ts +10 -0
- package/packages/subagent-runtime/dist/OutputChannel.d.ts.map +1 -0
- package/packages/subagent-runtime/dist/OutputChannel.js +14 -0
- package/packages/subagent-runtime/dist/OutputChannel.js.map +1 -0
- package/packages/subagent-runtime/dist/ResourceTracker.d.ts +29 -0
- package/packages/subagent-runtime/dist/ResourceTracker.d.ts.map +1 -0
- package/packages/subagent-runtime/dist/ResourceTracker.js +46 -0
- package/packages/subagent-runtime/dist/ResourceTracker.js.map +1 -0
- package/packages/subagent-runtime/dist/TokenValidator.d.ts +17 -0
- package/packages/subagent-runtime/dist/TokenValidator.d.ts.map +1 -0
- package/packages/subagent-runtime/dist/TokenValidator.js +29 -0
- package/packages/subagent-runtime/dist/TokenValidator.js.map +1 -0
- package/packages/subagent-runtime/dist/index.d.ts +6 -0
- package/packages/subagent-runtime/dist/index.d.ts.map +1 -0
- package/packages/subagent-runtime/dist/index.js +11 -0
- package/packages/subagent-runtime/dist/index.js.map +1 -0
- package/packages/subagent-runtime/dist/main.d.ts +2 -0
- package/packages/subagent-runtime/dist/main.d.ts.map +1 -0
- package/packages/subagent-runtime/dist/main.js +102 -0
- package/packages/subagent-runtime/dist/main.js.map +1 -0
- package/seeds/b2b-outbound/package.json +6 -0
- package/seeds/research/package.json +6 -0
- package/seeds/software-engineering/install.ts +78 -0
- package/seeds/software-engineering/package.json +6 -0
- package/seeds/software-engineering/sprint-workflow.json +102 -0
- package/skills/build.yaml +97 -0
- package/skills/debug.yaml +117 -0
- package/skills/design-review.yaml +119 -0
- package/skills/doc.yaml +107 -0
- package/skills/office-hours.yaml +76 -0
- package/skills/plan-ceo-review.yaml +84 -0
- package/skills/plan-eng-review.yaml +96 -0
- package/skills/qa.yaml +116 -0
- package/skills/refactor.yaml +125 -0
- package/skills/research.yaml +108 -0
- package/skills/retro.yaml +106 -0
- package/skills/review.yaml +101 -0
- package/skills/security-audit.yaml +114 -0
- package/skills/ship.yaml +108 -0
- package/skills/test-writer.yaml +131 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { KnowledgeGraph } from '../graph/KnowledgeGraph.js';
|
|
2
|
+
import type { GraphConstructor } from './GraphConstructor.js';
|
|
3
|
+
import type { StagedMutationStore } from './StagedMutations.js';
|
|
4
|
+
import type { HypothesisManager } from './HypothesisManager.js';
|
|
5
|
+
export declare class BootstrapProtocol {
|
|
6
|
+
private graph;
|
|
7
|
+
private constructor_;
|
|
8
|
+
private mutations;
|
|
9
|
+
private hypotheses;
|
|
10
|
+
constructor(graph: KnowledgeGraph, constructor_: GraphConstructor, mutations: StagedMutationStore, hypotheses: HypothesisManager);
|
|
11
|
+
/**
|
|
12
|
+
* Check if the graph is in bootstrap mode (< 10 nodes).
|
|
13
|
+
*/
|
|
14
|
+
shouldBootstrap(): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Run the bootstrap protocol for a task:
|
|
17
|
+
* 1. Use GraphConstructor to generate a proposal from LLM
|
|
18
|
+
* 2. Store as StagedMutation
|
|
19
|
+
* 3. Register proposed nodes as hypotheses
|
|
20
|
+
* Returns mutation ID, or null if proposal generation failed.
|
|
21
|
+
*/
|
|
22
|
+
bootstrap(task: string, traceId: string, graphId?: string): Promise<string | null>;
|
|
23
|
+
/**
|
|
24
|
+
* Called when a trace outcome is received.
|
|
25
|
+
* If positive: commit the staged mutation to live graph.
|
|
26
|
+
* If negative: discard the mutation.
|
|
27
|
+
*/
|
|
28
|
+
resolveOutcome(traceId: string, positive: boolean): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Run maintenance: prune expired hypotheses and mutations.
|
|
31
|
+
*/
|
|
32
|
+
runMaintenance(): {
|
|
33
|
+
hypothesesPruned: number;
|
|
34
|
+
mutationsPruned: number;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=BootstrapProtocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BootstrapProtocol.d.ts","sourceRoot":"","sources":["../../src/bootstrap/BootstrapProtocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAIhE,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,UAAU;gBAHV,KAAK,EAAE,cAAc,EACrB,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE,mBAAmB,EAC9B,UAAU,EAAE,iBAAiB;IAGvC;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;;;;;OAMG;IACG,SAAS,CACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,MAAe,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAezB;;;;OAIG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BvE;;OAEG;IACH,cAAc,IAAI;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE;CAMxE"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
const BOOTSTRAP_NODE_THRESHOLD = 10;
|
|
2
|
+
export class BootstrapProtocol {
|
|
3
|
+
graph;
|
|
4
|
+
constructor_;
|
|
5
|
+
mutations;
|
|
6
|
+
hypotheses;
|
|
7
|
+
constructor(graph, constructor_, mutations, hypotheses) {
|
|
8
|
+
this.graph = graph;
|
|
9
|
+
this.constructor_ = constructor_;
|
|
10
|
+
this.mutations = mutations;
|
|
11
|
+
this.hypotheses = hypotheses;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Check if the graph is in bootstrap mode (< 10 nodes).
|
|
15
|
+
*/
|
|
16
|
+
shouldBootstrap() {
|
|
17
|
+
return this.graph.nodeCount() < BOOTSTRAP_NODE_THRESHOLD;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Run the bootstrap protocol for a task:
|
|
21
|
+
* 1. Use GraphConstructor to generate a proposal from LLM
|
|
22
|
+
* 2. Store as StagedMutation
|
|
23
|
+
* 3. Register proposed nodes as hypotheses
|
|
24
|
+
* Returns mutation ID, or null if proposal generation failed.
|
|
25
|
+
*/
|
|
26
|
+
async bootstrap(task, traceId, graphId = 'root') {
|
|
27
|
+
const mutationId = await this.constructor_.propose(task, traceId, graphId);
|
|
28
|
+
if (!mutationId)
|
|
29
|
+
return null;
|
|
30
|
+
// Register proposed nodes as hypotheses
|
|
31
|
+
const mutation = this.mutations.get(mutationId);
|
|
32
|
+
if (mutation) {
|
|
33
|
+
for (const node of mutation.proposed_nodes) {
|
|
34
|
+
this.hypotheses.register(node.id);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return mutationId;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Called when a trace outcome is received.
|
|
41
|
+
* If positive: commit the staged mutation to live graph.
|
|
42
|
+
* If negative: discard the mutation.
|
|
43
|
+
*/
|
|
44
|
+
async resolveOutcome(traceId, positive) {
|
|
45
|
+
const pendingMutations = this.mutations.getByTrace(traceId);
|
|
46
|
+
for (const mutation of pendingMutations) {
|
|
47
|
+
if (positive) {
|
|
48
|
+
const committed = this.mutations.commit(mutation.id);
|
|
49
|
+
if (committed) {
|
|
50
|
+
// Apply to live graph
|
|
51
|
+
for (const node of committed.proposed_nodes) {
|
|
52
|
+
this.graph.addNode(node);
|
|
53
|
+
}
|
|
54
|
+
for (const edge of committed.proposed_edges) {
|
|
55
|
+
this.graph.addEdge(edge);
|
|
56
|
+
}
|
|
57
|
+
// Record positive outcome for hypotheses
|
|
58
|
+
for (const node of committed.proposed_nodes) {
|
|
59
|
+
this.hypotheses.recordOutcome(node.id, true);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
this.mutations.discard(mutation.id);
|
|
65
|
+
// Record negative outcome for hypotheses
|
|
66
|
+
for (const node of mutation.proposed_nodes) {
|
|
67
|
+
this.hypotheses.recordOutcome(node.id, false);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Run maintenance: prune expired hypotheses and mutations.
|
|
74
|
+
*/
|
|
75
|
+
runMaintenance() {
|
|
76
|
+
return {
|
|
77
|
+
hypothesesPruned: this.hypotheses.pruneExpired(),
|
|
78
|
+
mutationsPruned: this.mutations.pruneExpired(),
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=BootstrapProtocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BootstrapProtocol.js","sourceRoot":"","sources":["../../src/bootstrap/BootstrapProtocol.ts"],"names":[],"mappings":"AAKA,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAEpC,MAAM,OAAO,iBAAiB;IAElB;IACA;IACA;IACA;IAJV,YACU,KAAqB,EACrB,YAA8B,EAC9B,SAA8B,EAC9B,UAA6B;QAH7B,UAAK,GAAL,KAAK,CAAgB;QACrB,iBAAY,GAAZ,YAAY,CAAkB;QAC9B,cAAS,GAAT,SAAS,CAAqB;QAC9B,eAAU,GAAV,UAAU,CAAmB;IACpC,CAAC;IAEJ;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,wBAAwB,CAAC;IAC3D,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,SAAS,CACb,IAAY,EACZ,OAAe,EACf,UAAkB,MAAM;QAExB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC3E,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAE7B,wCAAwC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,OAAe,EAAE,QAAiB;QACrD,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE5D,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;YACxC,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACrD,IAAI,SAAS,EAAE,CAAC;oBACd,sBAAsB;oBACtB,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,cAAc,EAAE,CAAC;wBAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC3B,CAAC;oBACD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,cAAc,EAAE,CAAC;wBAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC3B,CAAC;oBACD,yCAAyC;oBACzC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,cAAc,EAAE,CAAC;wBAC5C,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;oBAC/C,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACpC,yCAAyC;gBACzC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;oBAC3C,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO;YACL,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE;YAChD,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;SAC/C,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type GraphNode } from '../graph/GraphNode.js';
|
|
2
|
+
import { type GraphEdge } from '../graph/GraphEdge.js';
|
|
3
|
+
import type { StagedMutationStore } from './StagedMutations.js';
|
|
4
|
+
/**
|
|
5
|
+
* Minimal LLM interface -- injectable for testing.
|
|
6
|
+
*/
|
|
7
|
+
export interface ILLMClient {
|
|
8
|
+
complete(prompt: string): Promise<string>;
|
|
9
|
+
}
|
|
10
|
+
export interface BootstrapProposal {
|
|
11
|
+
context: string;
|
|
12
|
+
strategy: string;
|
|
13
|
+
steps: string[];
|
|
14
|
+
expected_outcome: string;
|
|
15
|
+
}
|
|
16
|
+
export declare class GraphConstructor {
|
|
17
|
+
private llm;
|
|
18
|
+
private mutations;
|
|
19
|
+
constructor(llm: ILLMClient, mutations: StagedMutationStore);
|
|
20
|
+
/**
|
|
21
|
+
* Parse LLM response into a BootstrapProposal.
|
|
22
|
+
*/
|
|
23
|
+
parseResponse(response: string): BootstrapProposal | null;
|
|
24
|
+
/**
|
|
25
|
+
* Generate a graph proposal from a task.
|
|
26
|
+
* Returns the StagedMutation ID, or null if parsing failed.
|
|
27
|
+
*/
|
|
28
|
+
propose(task: string, traceId: string, graphId?: string): Promise<string | null>;
|
|
29
|
+
/**
|
|
30
|
+
* Build graph nodes and edges from a bootstrap proposal.
|
|
31
|
+
* Creates:
|
|
32
|
+
* - 1 CONTEXT node
|
|
33
|
+
* - 1 STRATEGY node
|
|
34
|
+
* - N STEP nodes
|
|
35
|
+
* - 1 OUTCOME node
|
|
36
|
+
* Edges: CONTEXT -SUPPORTS-> STRATEGY, STRATEGY -LEADS_TO-> each STEP,
|
|
37
|
+
* last STEP -PRODUCES-> OUTCOME
|
|
38
|
+
*/
|
|
39
|
+
buildGraph(proposal: BootstrapProposal, graphId: string): {
|
|
40
|
+
nodes: GraphNode[];
|
|
41
|
+
edges: GraphEdge[];
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=GraphConstructor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GraphConstructor.d.ts","sourceRoot":"","sources":["../../src/bootstrap/GraphConstructor.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAYD,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,SAAS;gBADT,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,mBAAmB;IAGxC;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IA+BzD;;;OAGG;IACG,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,MAAe,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAkBzB;;;;;;;;;OASG;IACH,UAAU,CACR,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,MAAM,GACd;QAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAAC,KAAK,EAAE,SAAS,EAAE,CAAA;KAAE;CA4F9C"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { createNode, NodeType, ContentType, } from '../graph/GraphNode.js';
|
|
2
|
+
import { createEdge, EdgeType } from '../graph/GraphEdge.js';
|
|
3
|
+
const BOOTSTRAP_PROMPT = `Analyze the following task and produce a structured knowledge graph proposal.
|
|
4
|
+
|
|
5
|
+
Task: {task}
|
|
6
|
+
|
|
7
|
+
Respond ONLY in this exact format (one item per line):
|
|
8
|
+
CONTEXT: <brief description of the domain context>
|
|
9
|
+
STRATEGY: <high-level strategy name>
|
|
10
|
+
PLAN: <step 1> | <step 2> | <step 3>
|
|
11
|
+
EXPECTED_OUTCOME: <what success looks like>`;
|
|
12
|
+
export class GraphConstructor {
|
|
13
|
+
llm;
|
|
14
|
+
mutations;
|
|
15
|
+
constructor(llm, mutations) {
|
|
16
|
+
this.llm = llm;
|
|
17
|
+
this.mutations = mutations;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Parse LLM response into a BootstrapProposal.
|
|
21
|
+
*/
|
|
22
|
+
parseResponse(response) {
|
|
23
|
+
const lines = response.trim().split('\n');
|
|
24
|
+
let context = '';
|
|
25
|
+
let strategy = '';
|
|
26
|
+
let steps = [];
|
|
27
|
+
let expected_outcome = '';
|
|
28
|
+
for (const line of lines) {
|
|
29
|
+
const trimmed = line.trim();
|
|
30
|
+
if (trimmed.startsWith('CONTEXT:')) {
|
|
31
|
+
context = trimmed.slice('CONTEXT:'.length).trim();
|
|
32
|
+
}
|
|
33
|
+
else if (trimmed.startsWith('STRATEGY:')) {
|
|
34
|
+
strategy = trimmed.slice('STRATEGY:'.length).trim();
|
|
35
|
+
}
|
|
36
|
+
else if (trimmed.startsWith('PLAN:')) {
|
|
37
|
+
const planStr = trimmed.slice('PLAN:'.length).trim();
|
|
38
|
+
steps = planStr
|
|
39
|
+
.split('|')
|
|
40
|
+
.map((s) => s.trim())
|
|
41
|
+
.filter(Boolean);
|
|
42
|
+
}
|
|
43
|
+
else if (trimmed.startsWith('EXPECTED_OUTCOME:')) {
|
|
44
|
+
expected_outcome = trimmed.slice('EXPECTED_OUTCOME:'.length).trim();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (!context || !strategy || steps.length === 0 || !expected_outcome) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
return { context, strategy, steps, expected_outcome };
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Generate a graph proposal from a task.
|
|
54
|
+
* Returns the StagedMutation ID, or null if parsing failed.
|
|
55
|
+
*/
|
|
56
|
+
async propose(task, traceId, graphId = 'root') {
|
|
57
|
+
const prompt = BOOTSTRAP_PROMPT.replace('{task}', task);
|
|
58
|
+
const response = await this.llm.complete(prompt);
|
|
59
|
+
const proposal = this.parseResponse(response);
|
|
60
|
+
if (!proposal)
|
|
61
|
+
return null;
|
|
62
|
+
const { nodes, edges } = this.buildGraph(proposal, graphId);
|
|
63
|
+
const mutation = this.mutations.stage({
|
|
64
|
+
id: crypto.randomUUID(),
|
|
65
|
+
trace_id: traceId,
|
|
66
|
+
proposed_nodes: nodes,
|
|
67
|
+
proposed_edges: edges,
|
|
68
|
+
});
|
|
69
|
+
return mutation.id;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Build graph nodes and edges from a bootstrap proposal.
|
|
73
|
+
* Creates:
|
|
74
|
+
* - 1 CONTEXT node
|
|
75
|
+
* - 1 STRATEGY node
|
|
76
|
+
* - N STEP nodes
|
|
77
|
+
* - 1 OUTCOME node
|
|
78
|
+
* Edges: CONTEXT -SUPPORTS-> STRATEGY, STRATEGY -LEADS_TO-> each STEP,
|
|
79
|
+
* last STEP -PRODUCES-> OUTCOME
|
|
80
|
+
*/
|
|
81
|
+
buildGraph(proposal, graphId) {
|
|
82
|
+
const nodes = [];
|
|
83
|
+
const edges = [];
|
|
84
|
+
// Context node
|
|
85
|
+
const contextNodeId = crypto.randomUUID();
|
|
86
|
+
const contentId = crypto.randomUUID();
|
|
87
|
+
const contextNode = createNode({
|
|
88
|
+
id: contextNodeId,
|
|
89
|
+
graph_id: graphId,
|
|
90
|
+
label: proposal.context,
|
|
91
|
+
type: NodeType.CONTEXT,
|
|
92
|
+
content: [
|
|
93
|
+
{
|
|
94
|
+
id: contentId,
|
|
95
|
+
node_id: contextNodeId,
|
|
96
|
+
type: ContentType.TEXT,
|
|
97
|
+
data: proposal.context,
|
|
98
|
+
metadata: {},
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
});
|
|
102
|
+
nodes.push(contextNode);
|
|
103
|
+
// Strategy node
|
|
104
|
+
const strategyNode = createNode({
|
|
105
|
+
id: crypto.randomUUID(),
|
|
106
|
+
graph_id: graphId,
|
|
107
|
+
label: proposal.strategy,
|
|
108
|
+
type: NodeType.STRATEGY,
|
|
109
|
+
});
|
|
110
|
+
nodes.push(strategyNode);
|
|
111
|
+
// CONTEXT -SUPPORTS-> STRATEGY
|
|
112
|
+
edges.push(createEdge({
|
|
113
|
+
id: crypto.randomUUID(),
|
|
114
|
+
graph_id: graphId,
|
|
115
|
+
from_node: contextNode.id,
|
|
116
|
+
to_node: strategyNode.id,
|
|
117
|
+
type: EdgeType.SUPPORTS,
|
|
118
|
+
}));
|
|
119
|
+
// Step nodes
|
|
120
|
+
const stepNodes = [];
|
|
121
|
+
for (const stepText of proposal.steps) {
|
|
122
|
+
const stepNode = createNode({
|
|
123
|
+
id: crypto.randomUUID(),
|
|
124
|
+
graph_id: graphId,
|
|
125
|
+
label: stepText,
|
|
126
|
+
type: NodeType.STEP,
|
|
127
|
+
});
|
|
128
|
+
stepNodes.push(stepNode);
|
|
129
|
+
nodes.push(stepNode);
|
|
130
|
+
// STRATEGY -LEADS_TO-> STEP
|
|
131
|
+
edges.push(createEdge({
|
|
132
|
+
id: crypto.randomUUID(),
|
|
133
|
+
graph_id: graphId,
|
|
134
|
+
from_node: strategyNode.id,
|
|
135
|
+
to_node: stepNode.id,
|
|
136
|
+
type: EdgeType.LEADS_TO,
|
|
137
|
+
}));
|
|
138
|
+
}
|
|
139
|
+
// Outcome node
|
|
140
|
+
const outcomeNode = createNode({
|
|
141
|
+
id: crypto.randomUUID(),
|
|
142
|
+
graph_id: graphId,
|
|
143
|
+
label: proposal.expected_outcome,
|
|
144
|
+
type: NodeType.OUTCOME,
|
|
145
|
+
});
|
|
146
|
+
nodes.push(outcomeNode);
|
|
147
|
+
// Last step -PRODUCES-> OUTCOME
|
|
148
|
+
if (stepNodes.length > 0) {
|
|
149
|
+
edges.push(createEdge({
|
|
150
|
+
id: crypto.randomUUID(),
|
|
151
|
+
graph_id: graphId,
|
|
152
|
+
from_node: stepNodes[stepNodes.length - 1].id,
|
|
153
|
+
to_node: outcomeNode.id,
|
|
154
|
+
type: EdgeType.PRODUCES,
|
|
155
|
+
}));
|
|
156
|
+
}
|
|
157
|
+
return { nodes, edges };
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=GraphConstructor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GraphConstructor.js","sourceRoot":"","sources":["../../src/bootstrap/GraphConstructor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { KnowledgeGraph } from '../graph/KnowledgeGraph.js';
|
|
2
|
+
export interface HypothesisRecord {
|
|
3
|
+
node_id: string;
|
|
4
|
+
created_at: number;
|
|
5
|
+
expires_at: number;
|
|
6
|
+
promoted: boolean;
|
|
7
|
+
demoted: boolean;
|
|
8
|
+
outcome_count: number;
|
|
9
|
+
positive_outcomes: number;
|
|
10
|
+
negative_outcomes: number;
|
|
11
|
+
}
|
|
12
|
+
export declare class HypothesisManager {
|
|
13
|
+
private graph;
|
|
14
|
+
private hypotheses;
|
|
15
|
+
constructor(graph: KnowledgeGraph);
|
|
16
|
+
/**
|
|
17
|
+
* Register a new hypothesis node.
|
|
18
|
+
*/
|
|
19
|
+
register(nodeId: string): HypothesisRecord;
|
|
20
|
+
/**
|
|
21
|
+
* Record an outcome for a hypothesis.
|
|
22
|
+
*/
|
|
23
|
+
recordOutcome(nodeId: string, positive: boolean): void;
|
|
24
|
+
/**
|
|
25
|
+
* Promote: hypothesis becomes a real node (change type from HYPOTHESIS to its intended type).
|
|
26
|
+
*/
|
|
27
|
+
promote(nodeId: string): void;
|
|
28
|
+
/**
|
|
29
|
+
* Demote: remove the hypothesis node and its edges from the graph.
|
|
30
|
+
*/
|
|
31
|
+
demote(nodeId: string): void;
|
|
32
|
+
/**
|
|
33
|
+
* Prune expired hypotheses that haven't been promoted.
|
|
34
|
+
* Returns number of hypotheses pruned.
|
|
35
|
+
*/
|
|
36
|
+
pruneExpired(): number;
|
|
37
|
+
/**
|
|
38
|
+
* Get a hypothesis record.
|
|
39
|
+
*/
|
|
40
|
+
get(nodeId: string): HypothesisRecord | null;
|
|
41
|
+
/**
|
|
42
|
+
* Check if a node is a hypothesis.
|
|
43
|
+
*/
|
|
44
|
+
isHypothesis(nodeId: string): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Get all active hypotheses.
|
|
47
|
+
*/
|
|
48
|
+
getActive(): HypothesisRecord[];
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=HypothesisManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HypothesisManager.d.ts","sourceRoot":"","sources":["../../src/bootstrap/HypothesisManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAOD,qBAAa,iBAAiB;IAGhB,OAAO,CAAC,KAAK;IAFzB,OAAO,CAAC,UAAU,CAA4C;gBAE1C,KAAK,EAAE,cAAc;IAEzC;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB;IAgB1C;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAkBtD;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ7B;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAO5B;;;OAGG;IACH,YAAY,IAAI,MAAM;IAYtB;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAI5C;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAKrC;;OAEG;IACH,SAAS,IAAI,gBAAgB,EAAE;CAKhC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
const HYPOTHESIS_TTL_MS = 14 * 24 * 60 * 60 * 1000; // 14 days
|
|
2
|
+
const PROMOTION_THRESHOLD = 0.7; // positive_rate >= 70% to promote
|
|
3
|
+
const DEMOTION_THRESHOLD = 0.3; // positive_rate < 30% to demote
|
|
4
|
+
const MIN_OUTCOMES_TO_JUDGE = 3;
|
|
5
|
+
export class HypothesisManager {
|
|
6
|
+
graph;
|
|
7
|
+
hypotheses = new Map();
|
|
8
|
+
constructor(graph) {
|
|
9
|
+
this.graph = graph;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Register a new hypothesis node.
|
|
13
|
+
*/
|
|
14
|
+
register(nodeId) {
|
|
15
|
+
const now = Date.now();
|
|
16
|
+
const record = {
|
|
17
|
+
node_id: nodeId,
|
|
18
|
+
created_at: now,
|
|
19
|
+
expires_at: now + HYPOTHESIS_TTL_MS,
|
|
20
|
+
promoted: false,
|
|
21
|
+
demoted: false,
|
|
22
|
+
outcome_count: 0,
|
|
23
|
+
positive_outcomes: 0,
|
|
24
|
+
negative_outcomes: 0,
|
|
25
|
+
};
|
|
26
|
+
this.hypotheses.set(nodeId, record);
|
|
27
|
+
return record;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Record an outcome for a hypothesis.
|
|
31
|
+
*/
|
|
32
|
+
recordOutcome(nodeId, positive) {
|
|
33
|
+
const h = this.hypotheses.get(nodeId);
|
|
34
|
+
if (!h || h.promoted || h.demoted)
|
|
35
|
+
return;
|
|
36
|
+
h.outcome_count++;
|
|
37
|
+
if (positive)
|
|
38
|
+
h.positive_outcomes++;
|
|
39
|
+
else
|
|
40
|
+
h.negative_outcomes++;
|
|
41
|
+
// Auto-promote/demote if enough outcomes
|
|
42
|
+
if (h.outcome_count >= MIN_OUTCOMES_TO_JUDGE) {
|
|
43
|
+
const rate = h.positive_outcomes / h.outcome_count;
|
|
44
|
+
if (rate >= PROMOTION_THRESHOLD) {
|
|
45
|
+
this.promote(nodeId);
|
|
46
|
+
}
|
|
47
|
+
else if (rate <= DEMOTION_THRESHOLD) {
|
|
48
|
+
this.demote(nodeId);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Promote: hypothesis becomes a real node (change type from HYPOTHESIS to its intended type).
|
|
54
|
+
*/
|
|
55
|
+
promote(nodeId) {
|
|
56
|
+
const h = this.hypotheses.get(nodeId);
|
|
57
|
+
if (!h || h.promoted || h.demoted)
|
|
58
|
+
return;
|
|
59
|
+
h.promoted = true;
|
|
60
|
+
// The node's type was already set correctly during bootstrap.
|
|
61
|
+
// "Promoting" means it's no longer subject to hypothesis TTL pruning.
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Demote: remove the hypothesis node and its edges from the graph.
|
|
65
|
+
*/
|
|
66
|
+
demote(nodeId) {
|
|
67
|
+
const h = this.hypotheses.get(nodeId);
|
|
68
|
+
if (!h || h.promoted || h.demoted)
|
|
69
|
+
return;
|
|
70
|
+
h.demoted = true;
|
|
71
|
+
this.graph.deleteNode(nodeId);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Prune expired hypotheses that haven't been promoted.
|
|
75
|
+
* Returns number of hypotheses pruned.
|
|
76
|
+
*/
|
|
77
|
+
pruneExpired() {
|
|
78
|
+
const now = Date.now();
|
|
79
|
+
let pruned = 0;
|
|
80
|
+
for (const [_nodeId, h] of this.hypotheses) {
|
|
81
|
+
if (!h.promoted && !h.demoted && now > h.expires_at) {
|
|
82
|
+
this.demote(h.node_id);
|
|
83
|
+
pruned++;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return pruned;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Get a hypothesis record.
|
|
90
|
+
*/
|
|
91
|
+
get(nodeId) {
|
|
92
|
+
return this.hypotheses.get(nodeId) ?? null;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Check if a node is a hypothesis.
|
|
96
|
+
*/
|
|
97
|
+
isHypothesis(nodeId) {
|
|
98
|
+
const h = this.hypotheses.get(nodeId);
|
|
99
|
+
return h !== undefined && !h.promoted && !h.demoted;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Get all active hypotheses.
|
|
103
|
+
*/
|
|
104
|
+
getActive() {
|
|
105
|
+
return [...this.hypotheses.values()].filter((h) => !h.promoted && !h.demoted);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=HypothesisManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HypothesisManager.js","sourceRoot":"","sources":["../../src/bootstrap/HypothesisManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { GraphNode } from '../graph/GraphNode.js';
|
|
2
|
+
import type { GraphEdge } from '../graph/GraphEdge.js';
|
|
3
|
+
export interface StagedMutation {
|
|
4
|
+
id: string;
|
|
5
|
+
trace_id: string;
|
|
6
|
+
proposed_nodes: GraphNode[];
|
|
7
|
+
proposed_edges: GraphEdge[];
|
|
8
|
+
created_at: number;
|
|
9
|
+
expires_at: number;
|
|
10
|
+
committed: boolean;
|
|
11
|
+
discarded: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare class StagedMutationStore {
|
|
14
|
+
private mutations;
|
|
15
|
+
/**
|
|
16
|
+
* Stage a new mutation (not committed to live graph).
|
|
17
|
+
*/
|
|
18
|
+
stage(params: {
|
|
19
|
+
id: string;
|
|
20
|
+
trace_id: string;
|
|
21
|
+
proposed_nodes: GraphNode[];
|
|
22
|
+
proposed_edges: GraphEdge[];
|
|
23
|
+
}): StagedMutation;
|
|
24
|
+
/**
|
|
25
|
+
* Commit a mutation -- caller must apply nodes/edges to the live graph.
|
|
26
|
+
*/
|
|
27
|
+
commit(id: string): StagedMutation | null;
|
|
28
|
+
/**
|
|
29
|
+
* Discard a mutation.
|
|
30
|
+
*/
|
|
31
|
+
discard(id: string): void;
|
|
32
|
+
/**
|
|
33
|
+
* Get pending (uncommitted, not expired) mutations for a trace.
|
|
34
|
+
*/
|
|
35
|
+
getByTrace(traceId: string): StagedMutation[];
|
|
36
|
+
/**
|
|
37
|
+
* Get a specific mutation.
|
|
38
|
+
*/
|
|
39
|
+
get(id: string): StagedMutation | null;
|
|
40
|
+
/**
|
|
41
|
+
* Prune all expired mutations.
|
|
42
|
+
*/
|
|
43
|
+
pruneExpired(): number;
|
|
44
|
+
/**
|
|
45
|
+
* Get all pending mutations.
|
|
46
|
+
*/
|
|
47
|
+
getAllPending(): StagedMutation[];
|
|
48
|
+
get size(): number;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=StagedMutations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StagedMutations.d.ts","sourceRoot":"","sources":["../../src/bootstrap/StagedMutations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,SAAS,EAAE,CAAC;IAC5B,cAAc,EAAE,SAAS,EAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAID,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,SAAS,CAA0C;IAE3D;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,SAAS,EAAE,CAAC;QAC5B,cAAc,EAAE,SAAS,EAAE,CAAC;KAC7B,GAAG,cAAc;IAalB;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAWzC;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKzB;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,EAAE;IAU7C;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAItC;;OAEG;IACH,YAAY,IAAI,MAAM;IAYtB;;OAEG;IACH,aAAa,IAAI,cAAc,EAAE;IAMjC,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
const TTL_MS = 14 * 24 * 60 * 60 * 1000; // 14 days
|
|
2
|
+
export class StagedMutationStore {
|
|
3
|
+
mutations = new Map();
|
|
4
|
+
/**
|
|
5
|
+
* Stage a new mutation (not committed to live graph).
|
|
6
|
+
*/
|
|
7
|
+
stage(params) {
|
|
8
|
+
const now = Date.now();
|
|
9
|
+
const mutation = {
|
|
10
|
+
...params,
|
|
11
|
+
created_at: now,
|
|
12
|
+
expires_at: now + TTL_MS,
|
|
13
|
+
committed: false,
|
|
14
|
+
discarded: false,
|
|
15
|
+
};
|
|
16
|
+
this.mutations.set(mutation.id, mutation);
|
|
17
|
+
return mutation;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Commit a mutation -- caller must apply nodes/edges to the live graph.
|
|
21
|
+
*/
|
|
22
|
+
commit(id) {
|
|
23
|
+
const m = this.mutations.get(id);
|
|
24
|
+
if (!m || m.committed || m.discarded)
|
|
25
|
+
return null;
|
|
26
|
+
if (Date.now() > m.expires_at) {
|
|
27
|
+
m.discarded = true;
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
m.committed = true;
|
|
31
|
+
return m;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Discard a mutation.
|
|
35
|
+
*/
|
|
36
|
+
discard(id) {
|
|
37
|
+
const m = this.mutations.get(id);
|
|
38
|
+
if (m)
|
|
39
|
+
m.discarded = true;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get pending (uncommitted, not expired) mutations for a trace.
|
|
43
|
+
*/
|
|
44
|
+
getByTrace(traceId) {
|
|
45
|
+
return [...this.mutations.values()].filter((m) => m.trace_id === traceId &&
|
|
46
|
+
!m.committed &&
|
|
47
|
+
!m.discarded &&
|
|
48
|
+
Date.now() <= m.expires_at);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Get a specific mutation.
|
|
52
|
+
*/
|
|
53
|
+
get(id) {
|
|
54
|
+
return this.mutations.get(id) ?? null;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Prune all expired mutations.
|
|
58
|
+
*/
|
|
59
|
+
pruneExpired() {
|
|
60
|
+
const now = Date.now();
|
|
61
|
+
let count = 0;
|
|
62
|
+
for (const [_id, m] of this.mutations) {
|
|
63
|
+
if (!m.committed && !m.discarded && now > m.expires_at) {
|
|
64
|
+
m.discarded = true;
|
|
65
|
+
count++;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return count;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Get all pending mutations.
|
|
72
|
+
*/
|
|
73
|
+
getAllPending() {
|
|
74
|
+
return [...this.mutations.values()].filter((m) => !m.committed && !m.discarded && Date.now() <= m.expires_at);
|
|
75
|
+
}
|
|
76
|
+
get size() {
|
|
77
|
+
return this.mutations.size;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=StagedMutations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StagedMutations.js","sourceRoot":"","sources":["../../src/bootstrap/StagedMutations.ts"],"names":[],"mappings":"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"}
|