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.
Files changed (443) hide show
  1. package/README.md +164 -0
  2. package/bin/0agent.js +614 -0
  3. package/package.json +59 -0
  4. package/packages/core/dist/bootstrap/BootstrapProtocol.d.ts +37 -0
  5. package/packages/core/dist/bootstrap/BootstrapProtocol.d.ts.map +1 -0
  6. package/packages/core/dist/bootstrap/BootstrapProtocol.js +82 -0
  7. package/packages/core/dist/bootstrap/BootstrapProtocol.js.map +1 -0
  8. package/packages/core/dist/bootstrap/GraphConstructor.d.ts +44 -0
  9. package/packages/core/dist/bootstrap/GraphConstructor.d.ts.map +1 -0
  10. package/packages/core/dist/bootstrap/GraphConstructor.js +160 -0
  11. package/packages/core/dist/bootstrap/GraphConstructor.js.map +1 -0
  12. package/packages/core/dist/bootstrap/HypothesisManager.d.ts +50 -0
  13. package/packages/core/dist/bootstrap/HypothesisManager.d.ts.map +1 -0
  14. package/packages/core/dist/bootstrap/HypothesisManager.js +108 -0
  15. package/packages/core/dist/bootstrap/HypothesisManager.js.map +1 -0
  16. package/packages/core/dist/bootstrap/StagedMutations.d.ts +50 -0
  17. package/packages/core/dist/bootstrap/StagedMutations.d.ts.map +1 -0
  18. package/packages/core/dist/bootstrap/StagedMutations.js +80 -0
  19. package/packages/core/dist/bootstrap/StagedMutations.js.map +1 -0
  20. package/packages/core/dist/concurrency/EdgeWeightUpdater.d.ts +16 -0
  21. package/packages/core/dist/concurrency/EdgeWeightUpdater.d.ts.map +1 -0
  22. package/packages/core/dist/concurrency/EdgeWeightUpdater.js +57 -0
  23. package/packages/core/dist/concurrency/EdgeWeightUpdater.js.map +1 -0
  24. package/packages/core/dist/concurrency/SessionSnapshot.d.ts +63 -0
  25. package/packages/core/dist/concurrency/SessionSnapshot.d.ts.map +1 -0
  26. package/packages/core/dist/concurrency/SessionSnapshot.js +124 -0
  27. package/packages/core/dist/concurrency/SessionSnapshot.js.map +1 -0
  28. package/packages/core/dist/embedding/HNSWIndex.d.ts +37 -0
  29. package/packages/core/dist/embedding/HNSWIndex.d.ts.map +1 -0
  30. package/packages/core/dist/embedding/HNSWIndex.js +86 -0
  31. package/packages/core/dist/embedding/HNSWIndex.js.map +1 -0
  32. package/packages/core/dist/embedding/MultimodalEmbedder.d.ts +24 -0
  33. package/packages/core/dist/embedding/MultimodalEmbedder.d.ts.map +1 -0
  34. package/packages/core/dist/embedding/MultimodalEmbedder.js +75 -0
  35. package/packages/core/dist/embedding/MultimodalEmbedder.js.map +1 -0
  36. package/packages/core/dist/embedding/adapters/NomicAdapter.d.ts +7 -0
  37. package/packages/core/dist/embedding/adapters/NomicAdapter.d.ts.map +1 -0
  38. package/packages/core/dist/embedding/adapters/NomicAdapter.js +11 -0
  39. package/packages/core/dist/embedding/adapters/NomicAdapter.js.map +1 -0
  40. package/packages/core/dist/embedding/adapters/OllamaAdapter.d.ts +19 -0
  41. package/packages/core/dist/embedding/adapters/OllamaAdapter.d.ts.map +1 -0
  42. package/packages/core/dist/embedding/adapters/OllamaAdapter.js +27 -0
  43. package/packages/core/dist/embedding/adapters/OllamaAdapter.js.map +1 -0
  44. package/packages/core/dist/embedding/adapters/OpenAIAdapter.d.ts +14 -0
  45. package/packages/core/dist/embedding/adapters/OpenAIAdapter.d.ts.map +1 -0
  46. package/packages/core/dist/embedding/adapters/OpenAIAdapter.js +48 -0
  47. package/packages/core/dist/embedding/adapters/OpenAIAdapter.js.map +1 -0
  48. package/packages/core/dist/engine/CreditAttribution.d.ts +47 -0
  49. package/packages/core/dist/engine/CreditAttribution.d.ts.map +1 -0
  50. package/packages/core/dist/engine/CreditAttribution.js +196 -0
  51. package/packages/core/dist/engine/CreditAttribution.js.map +1 -0
  52. package/packages/core/dist/engine/DecayScheduler.d.ts +45 -0
  53. package/packages/core/dist/engine/DecayScheduler.d.ts.map +1 -0
  54. package/packages/core/dist/engine/DecayScheduler.js +115 -0
  55. package/packages/core/dist/engine/DecayScheduler.js.map +1 -0
  56. package/packages/core/dist/engine/InferenceEngine.d.ts +95 -0
  57. package/packages/core/dist/engine/InferenceEngine.d.ts.map +1 -0
  58. package/packages/core/dist/engine/InferenceEngine.js +242 -0
  59. package/packages/core/dist/engine/InferenceEngine.js.map +1 -0
  60. package/packages/core/dist/engine/SelectionPolicy.d.ts +29 -0
  61. package/packages/core/dist/engine/SelectionPolicy.d.ts.map +1 -0
  62. package/packages/core/dist/engine/SelectionPolicy.js +58 -0
  63. package/packages/core/dist/engine/SelectionPolicy.js.map +1 -0
  64. package/packages/core/dist/engine/SelfImprovementEngine.d.ts +58 -0
  65. package/packages/core/dist/engine/SelfImprovementEngine.d.ts.map +1 -0
  66. package/packages/core/dist/engine/SelfImprovementEngine.js +265 -0
  67. package/packages/core/dist/engine/SelfImprovementEngine.js.map +1 -0
  68. package/packages/core/dist/engine/SelfImprovementPrompt.d.ts +10 -0
  69. package/packages/core/dist/engine/SelfImprovementPrompt.d.ts.map +1 -0
  70. package/packages/core/dist/engine/SelfImprovementPrompt.js +193 -0
  71. package/packages/core/dist/engine/SelfImprovementPrompt.js.map +1 -0
  72. package/packages/core/dist/engine/WeightPropagation.d.ts +77 -0
  73. package/packages/core/dist/engine/WeightPropagation.d.ts.map +1 -0
  74. package/packages/core/dist/engine/WeightPropagation.js +101 -0
  75. package/packages/core/dist/engine/WeightPropagation.js.map +1 -0
  76. package/packages/core/dist/engine/WorkflowSuggestionEngine.d.ts +26 -0
  77. package/packages/core/dist/engine/WorkflowSuggestionEngine.d.ts.map +1 -0
  78. package/packages/core/dist/engine/WorkflowSuggestionEngine.js +54 -0
  79. package/packages/core/dist/engine/WorkflowSuggestionEngine.js.map +1 -0
  80. package/packages/core/dist/entity/AliasIndex.d.ts +39 -0
  81. package/packages/core/dist/entity/AliasIndex.d.ts.map +1 -0
  82. package/packages/core/dist/entity/AliasIndex.js +81 -0
  83. package/packages/core/dist/entity/AliasIndex.js.map +1 -0
  84. package/packages/core/dist/entity/ContextActivator.d.ts +53 -0
  85. package/packages/core/dist/entity/ContextActivator.d.ts.map +1 -0
  86. package/packages/core/dist/entity/ContextActivator.js +163 -0
  87. package/packages/core/dist/entity/ContextActivator.js.map +1 -0
  88. package/packages/core/dist/entity/EntityHierarchy.d.ts +48 -0
  89. package/packages/core/dist/entity/EntityHierarchy.d.ts.map +1 -0
  90. package/packages/core/dist/entity/EntityHierarchy.js +134 -0
  91. package/packages/core/dist/entity/EntityHierarchy.js.map +1 -0
  92. package/packages/core/dist/entity/EntityResolutionPipeline.d.ts +48 -0
  93. package/packages/core/dist/entity/EntityResolutionPipeline.d.ts.map +1 -0
  94. package/packages/core/dist/entity/EntityResolutionPipeline.js +221 -0
  95. package/packages/core/dist/entity/EntityResolutionPipeline.js.map +1 -0
  96. package/packages/core/dist/entity/MCPEnrichedResolver.d.ts +17 -0
  97. package/packages/core/dist/entity/MCPEnrichedResolver.d.ts.map +1 -0
  98. package/packages/core/dist/entity/MCPEnrichedResolver.js +19 -0
  99. package/packages/core/dist/entity/MCPEnrichedResolver.js.map +1 -0
  100. package/packages/core/dist/entity/NodeResolutionService.d.ts +46 -0
  101. package/packages/core/dist/entity/NodeResolutionService.d.ts.map +1 -0
  102. package/packages/core/dist/entity/NodeResolutionService.js +150 -0
  103. package/packages/core/dist/entity/NodeResolutionService.js.map +1 -0
  104. package/packages/core/dist/entity/PersonalityAccumulator.d.ts +41 -0
  105. package/packages/core/dist/entity/PersonalityAccumulator.d.ts.map +1 -0
  106. package/packages/core/dist/entity/PersonalityAccumulator.js +126 -0
  107. package/packages/core/dist/entity/PersonalityAccumulator.js.map +1 -0
  108. package/packages/core/dist/entity/PersonalityProfile.d.ts +31 -0
  109. package/packages/core/dist/entity/PersonalityProfile.d.ts.map +1 -0
  110. package/packages/core/dist/entity/PersonalityProfile.js +94 -0
  111. package/packages/core/dist/entity/PersonalityProfile.js.map +1 -0
  112. package/packages/core/dist/entity/index.d.ts +4 -0
  113. package/packages/core/dist/entity/index.d.ts.map +1 -0
  114. package/packages/core/dist/entity/index.js +4 -0
  115. package/packages/core/dist/entity/index.js.map +1 -0
  116. package/packages/core/dist/graph/GraphEdge.d.ts +37 -0
  117. package/packages/core/dist/graph/GraphEdge.d.ts.map +1 -0
  118. package/packages/core/dist/graph/GraphEdge.js +29 -0
  119. package/packages/core/dist/graph/GraphEdge.js.map +1 -0
  120. package/packages/core/dist/graph/GraphNode.d.ts +52 -0
  121. package/packages/core/dist/graph/GraphNode.d.ts.map +1 -0
  122. package/packages/core/dist/graph/GraphNode.js +41 -0
  123. package/packages/core/dist/graph/GraphNode.js.map +1 -0
  124. package/packages/core/dist/graph/GraphQuery.d.ts +46 -0
  125. package/packages/core/dist/graph/GraphQuery.d.ts.map +1 -0
  126. package/packages/core/dist/graph/GraphQuery.js +47 -0
  127. package/packages/core/dist/graph/GraphQuery.js.map +1 -0
  128. package/packages/core/dist/graph/KnowledgeGraph.d.ts +38 -0
  129. package/packages/core/dist/graph/KnowledgeGraph.d.ts.map +1 -0
  130. package/packages/core/dist/graph/KnowledgeGraph.js +345 -0
  131. package/packages/core/dist/graph/KnowledgeGraph.js.map +1 -0
  132. package/packages/core/dist/graph/SubGraph.d.ts +36 -0
  133. package/packages/core/dist/graph/SubGraph.d.ts.map +1 -0
  134. package/packages/core/dist/graph/SubGraph.js +86 -0
  135. package/packages/core/dist/graph/SubGraph.js.map +1 -0
  136. package/packages/core/dist/index.d.ts +54 -0
  137. package/packages/core/dist/index.d.ts.map +1 -0
  138. package/packages/core/dist/index.js +62 -0
  139. package/packages/core/dist/index.js.map +1 -0
  140. package/packages/core/dist/maintenance/CompactionOrchestrator.d.ts +22 -0
  141. package/packages/core/dist/maintenance/CompactionOrchestrator.d.ts.map +1 -0
  142. package/packages/core/dist/maintenance/CompactionOrchestrator.js +62 -0
  143. package/packages/core/dist/maintenance/CompactionOrchestrator.js.map +1 -0
  144. package/packages/core/dist/maintenance/EdgePruner.d.ts +20 -0
  145. package/packages/core/dist/maintenance/EdgePruner.d.ts.map +1 -0
  146. package/packages/core/dist/maintenance/EdgePruner.js +65 -0
  147. package/packages/core/dist/maintenance/EdgePruner.js.map +1 -0
  148. package/packages/core/dist/maintenance/GraphCheckpoint.d.ts +51 -0
  149. package/packages/core/dist/maintenance/GraphCheckpoint.d.ts.map +1 -0
  150. package/packages/core/dist/maintenance/GraphCheckpoint.js +81 -0
  151. package/packages/core/dist/maintenance/GraphCheckpoint.js.map +1 -0
  152. package/packages/core/dist/maintenance/GraphRollback.d.ts +36 -0
  153. package/packages/core/dist/maintenance/GraphRollback.d.ts.map +1 -0
  154. package/packages/core/dist/maintenance/GraphRollback.js +154 -0
  155. package/packages/core/dist/maintenance/GraphRollback.js.map +1 -0
  156. package/packages/core/dist/maintenance/NodeDeduplicator.d.ts +26 -0
  157. package/packages/core/dist/maintenance/NodeDeduplicator.d.ts.map +1 -0
  158. package/packages/core/dist/maintenance/NodeDeduplicator.js +171 -0
  159. package/packages/core/dist/maintenance/NodeDeduplicator.js.map +1 -0
  160. package/packages/core/dist/maintenance/SubgraphArchiver.d.ts +18 -0
  161. package/packages/core/dist/maintenance/SubgraphArchiver.d.ts.map +1 -0
  162. package/packages/core/dist/maintenance/SubgraphArchiver.js +180 -0
  163. package/packages/core/dist/maintenance/SubgraphArchiver.js.map +1 -0
  164. package/packages/core/dist/memory/ArchivalMemory.d.ts +28 -0
  165. package/packages/core/dist/memory/ArchivalMemory.d.ts.map +1 -0
  166. package/packages/core/dist/memory/ArchivalMemory.js +26 -0
  167. package/packages/core/dist/memory/ArchivalMemory.js.map +1 -0
  168. package/packages/core/dist/memory/BlinkingMemory.d.ts +34 -0
  169. package/packages/core/dist/memory/BlinkingMemory.d.ts.map +1 -0
  170. package/packages/core/dist/memory/BlinkingMemory.js +44 -0
  171. package/packages/core/dist/memory/BlinkingMemory.js.map +1 -0
  172. package/packages/core/dist/memory/WorkingMemory.d.ts +38 -0
  173. package/packages/core/dist/memory/WorkingMemory.d.ts.map +1 -0
  174. package/packages/core/dist/memory/WorkingMemory.js +70 -0
  175. package/packages/core/dist/memory/WorkingMemory.js.map +1 -0
  176. package/packages/core/dist/storage/ObjectStore.d.ts +24 -0
  177. package/packages/core/dist/storage/ObjectStore.d.ts.map +1 -0
  178. package/packages/core/dist/storage/ObjectStore.js +50 -0
  179. package/packages/core/dist/storage/ObjectStore.js.map +1 -0
  180. package/packages/core/dist/storage/TraceStore.d.ts +16 -0
  181. package/packages/core/dist/storage/TraceStore.d.ts.map +1 -0
  182. package/packages/core/dist/storage/TraceStore.js +19 -0
  183. package/packages/core/dist/storage/TraceStore.js.map +1 -0
  184. package/packages/core/dist/storage/WeightEventLog.d.ts +11 -0
  185. package/packages/core/dist/storage/WeightEventLog.d.ts.map +1 -0
  186. package/packages/core/dist/storage/WeightEventLog.js +16 -0
  187. package/packages/core/dist/storage/WeightEventLog.js.map +1 -0
  188. package/packages/core/dist/storage/adapters/SQLiteAdapter.d.ts +86 -0
  189. package/packages/core/dist/storage/adapters/SQLiteAdapter.d.ts.map +1 -0
  190. package/packages/core/dist/storage/adapters/SQLiteAdapter.js +514 -0
  191. package/packages/core/dist/storage/adapters/SQLiteAdapter.js.map +1 -0
  192. package/packages/core/dist/trace/DeferredTrace.d.ts +43 -0
  193. package/packages/core/dist/trace/DeferredTrace.d.ts.map +1 -0
  194. package/packages/core/dist/trace/DeferredTrace.js +44 -0
  195. package/packages/core/dist/trace/DeferredTrace.js.map +1 -0
  196. package/packages/core/dist/trace/OutcomeTrace.d.ts +38 -0
  197. package/packages/core/dist/trace/OutcomeTrace.d.ts.map +1 -0
  198. package/packages/core/dist/trace/OutcomeTrace.js +9 -0
  199. package/packages/core/dist/trace/OutcomeTrace.js.map +1 -0
  200. package/packages/core/dist/trace/SkillTraceDecorator.d.ts +25 -0
  201. package/packages/core/dist/trace/SkillTraceDecorator.d.ts.map +1 -0
  202. package/packages/core/dist/trace/SkillTraceDecorator.js +41 -0
  203. package/packages/core/dist/trace/SkillTraceDecorator.js.map +1 -0
  204. package/packages/core/dist/trace/TraceReplay.d.ts +25 -0
  205. package/packages/core/dist/trace/TraceReplay.d.ts.map +1 -0
  206. package/packages/core/dist/trace/TraceReplay.js +40 -0
  207. package/packages/core/dist/trace/TraceReplay.js.map +1 -0
  208. package/packages/core/dist/trace/TraversalLedger.d.ts +33 -0
  209. package/packages/core/dist/trace/TraversalLedger.d.ts.map +1 -0
  210. package/packages/core/dist/trace/TraversalLedger.js +61 -0
  211. package/packages/core/dist/trace/TraversalLedger.js.map +1 -0
  212. package/packages/core/dist/types/SelfImprovement.d.ts +174 -0
  213. package/packages/core/dist/types/SelfImprovement.d.ts.map +1 -0
  214. package/packages/core/dist/types/SelfImprovement.js +23 -0
  215. package/packages/core/dist/types/SelfImprovement.js.map +1 -0
  216. package/packages/core/dist/types/SkillDefinition.d.ts +68 -0
  217. package/packages/core/dist/types/SkillDefinition.d.ts.map +1 -0
  218. package/packages/core/dist/types/SkillDefinition.js +12 -0
  219. package/packages/core/dist/types/SkillDefinition.js.map +1 -0
  220. package/packages/daemon/dist/BackgroundWorkers.d.ts +55 -0
  221. package/packages/daemon/dist/BackgroundWorkers.d.ts.map +1 -0
  222. package/packages/daemon/dist/BackgroundWorkers.js +121 -0
  223. package/packages/daemon/dist/BackgroundWorkers.js.map +1 -0
  224. package/packages/daemon/dist/EntityScopedContext.d.ts +22 -0
  225. package/packages/daemon/dist/EntityScopedContext.d.ts.map +1 -0
  226. package/packages/daemon/dist/EntityScopedContext.js +85 -0
  227. package/packages/daemon/dist/EntityScopedContext.js.map +1 -0
  228. package/packages/daemon/dist/HTTPServer.d.ts +27 -0
  229. package/packages/daemon/dist/HTTPServer.d.ts.map +1 -0
  230. package/packages/daemon/dist/HTTPServer.js +62 -0
  231. package/packages/daemon/dist/HTTPServer.js.map +1 -0
  232. package/packages/daemon/dist/SessionManager.d.ts +95 -0
  233. package/packages/daemon/dist/SessionManager.d.ts.map +1 -0
  234. package/packages/daemon/dist/SessionManager.js +205 -0
  235. package/packages/daemon/dist/SessionManager.js.map +1 -0
  236. package/packages/daemon/dist/SkillRegistry.d.ts +34 -0
  237. package/packages/daemon/dist/SkillRegistry.d.ts.map +1 -0
  238. package/packages/daemon/dist/SkillRegistry.js +90 -0
  239. package/packages/daemon/dist/SkillRegistry.js.map +1 -0
  240. package/packages/daemon/dist/SkillVariableResolver.d.ts +24 -0
  241. package/packages/daemon/dist/SkillVariableResolver.d.ts.map +1 -0
  242. package/packages/daemon/dist/SkillVariableResolver.js +85 -0
  243. package/packages/daemon/dist/SkillVariableResolver.js.map +1 -0
  244. package/packages/daemon/dist/WebSocketEvents.d.ts +107 -0
  245. package/packages/daemon/dist/WebSocketEvents.d.ts.map +1 -0
  246. package/packages/daemon/dist/WebSocketEvents.js +111 -0
  247. package/packages/daemon/dist/WebSocketEvents.js.map +1 -0
  248. package/packages/daemon/dist/ZeroAgentDaemon.d.ts +39 -0
  249. package/packages/daemon/dist/ZeroAgentDaemon.d.ts.map +1 -0
  250. package/packages/daemon/dist/ZeroAgentDaemon.js +161 -0
  251. package/packages/daemon/dist/ZeroAgentDaemon.js.map +1 -0
  252. package/packages/daemon/dist/config/ConfigSchema.d.ts +631 -0
  253. package/packages/daemon/dist/config/ConfigSchema.d.ts.map +1 -0
  254. package/packages/daemon/dist/config/ConfigSchema.js +107 -0
  255. package/packages/daemon/dist/config/ConfigSchema.js.map +1 -0
  256. package/packages/daemon/dist/config/DaemonConfig.d.ts +10 -0
  257. package/packages/daemon/dist/config/DaemonConfig.d.ts.map +1 -0
  258. package/packages/daemon/dist/config/DaemonConfig.js +34 -0
  259. package/packages/daemon/dist/config/DaemonConfig.js.map +1 -0
  260. package/packages/daemon/dist/index.d.ts +10 -0
  261. package/packages/daemon/dist/index.d.ts.map +1 -0
  262. package/packages/daemon/dist/index.js +8 -0
  263. package/packages/daemon/dist/index.js.map +1 -0
  264. package/packages/daemon/dist/routes/entities.d.ts +6 -0
  265. package/packages/daemon/dist/routes/entities.d.ts.map +1 -0
  266. package/packages/daemon/dist/routes/entities.js +54 -0
  267. package/packages/daemon/dist/routes/entities.js.map +1 -0
  268. package/packages/daemon/dist/routes/graph.d.ts +6 -0
  269. package/packages/daemon/dist/routes/graph.d.ts.map +1 -0
  270. package/packages/daemon/dist/routes/graph.js +61 -0
  271. package/packages/daemon/dist/routes/graph.js.map +1 -0
  272. package/packages/daemon/dist/routes/health.d.ts +15 -0
  273. package/packages/daemon/dist/routes/health.d.ts.map +1 -0
  274. package/packages/daemon/dist/routes/health.js +11 -0
  275. package/packages/daemon/dist/routes/health.js.map +1 -0
  276. package/packages/daemon/dist/routes/sessions.d.ts +6 -0
  277. package/packages/daemon/dist/routes/sessions.d.ts.map +1 -0
  278. package/packages/daemon/dist/routes/sessions.js +43 -0
  279. package/packages/daemon/dist/routes/sessions.js.map +1 -0
  280. package/packages/daemon/dist/routes/skills.d.ts +6 -0
  281. package/packages/daemon/dist/routes/skills.d.ts.map +1 -0
  282. package/packages/daemon/dist/routes/skills.js +62 -0
  283. package/packages/daemon/dist/routes/skills.js.map +1 -0
  284. package/packages/daemon/dist/routes/subagents.d.ts +3 -0
  285. package/packages/daemon/dist/routes/subagents.d.ts.map +1 -0
  286. package/packages/daemon/dist/routes/subagents.js +14 -0
  287. package/packages/daemon/dist/routes/subagents.js.map +1 -0
  288. package/packages/daemon/dist/routes/traces.d.ts +6 -0
  289. package/packages/daemon/dist/routes/traces.d.ts.map +1 -0
  290. package/packages/daemon/dist/routes/traces.js +31 -0
  291. package/packages/daemon/dist/routes/traces.js.map +1 -0
  292. package/packages/daemon/dist/start.d.ts +7 -0
  293. package/packages/daemon/dist/start.d.ts.map +1 -0
  294. package/packages/daemon/dist/start.js +24 -0
  295. package/packages/daemon/dist/start.js.map +1 -0
  296. package/packages/mcp-hub/dist/FilteredProxy.d.ts +20 -0
  297. package/packages/mcp-hub/dist/FilteredProxy.d.ts.map +1 -0
  298. package/packages/mcp-hub/dist/FilteredProxy.js +43 -0
  299. package/packages/mcp-hub/dist/FilteredProxy.js.map +1 -0
  300. package/packages/mcp-hub/dist/MCPDiscovery.d.ts +18 -0
  301. package/packages/mcp-hub/dist/MCPDiscovery.d.ts.map +1 -0
  302. package/packages/mcp-hub/dist/MCPDiscovery.js +86 -0
  303. package/packages/mcp-hub/dist/MCPDiscovery.js.map +1 -0
  304. package/packages/mcp-hub/dist/MCPHub.d.ts +48 -0
  305. package/packages/mcp-hub/dist/MCPHub.d.ts.map +1 -0
  306. package/packages/mcp-hub/dist/MCPHub.js +100 -0
  307. package/packages/mcp-hub/dist/MCPHub.js.map +1 -0
  308. package/packages/mcp-hub/dist/builtin/BrowserMCP.d.ts +6 -0
  309. package/packages/mcp-hub/dist/builtin/BrowserMCP.d.ts.map +1 -0
  310. package/packages/mcp-hub/dist/builtin/BrowserMCP.js +69 -0
  311. package/packages/mcp-hub/dist/builtin/BrowserMCP.js.map +1 -0
  312. package/packages/mcp-hub/dist/builtin/FilesystemMCP.d.ts +11 -0
  313. package/packages/mcp-hub/dist/builtin/FilesystemMCP.d.ts.map +1 -0
  314. package/packages/mcp-hub/dist/builtin/FilesystemMCP.js +104 -0
  315. package/packages/mcp-hub/dist/builtin/FilesystemMCP.js.map +1 -0
  316. package/packages/mcp-hub/dist/builtin/MemoryMCP.d.ts +9 -0
  317. package/packages/mcp-hub/dist/builtin/MemoryMCP.d.ts.map +1 -0
  318. package/packages/mcp-hub/dist/builtin/MemoryMCP.js +185 -0
  319. package/packages/mcp-hub/dist/builtin/MemoryMCP.js.map +1 -0
  320. package/packages/mcp-hub/dist/builtin/ShellMCP.d.ts +8 -0
  321. package/packages/mcp-hub/dist/builtin/ShellMCP.d.ts.map +1 -0
  322. package/packages/mcp-hub/dist/builtin/ShellMCP.js +74 -0
  323. package/packages/mcp-hub/dist/builtin/ShellMCP.js.map +1 -0
  324. package/packages/mcp-hub/dist/index.d.ts +9 -0
  325. package/packages/mcp-hub/dist/index.d.ts.map +1 -0
  326. package/packages/mcp-hub/dist/index.js +8 -0
  327. package/packages/mcp-hub/dist/index.js.map +1 -0
  328. package/packages/mcp-hub/dist/types.d.ts +30 -0
  329. package/packages/mcp-hub/dist/types.d.ts.map +1 -0
  330. package/packages/mcp-hub/dist/types.js +2 -0
  331. package/packages/mcp-hub/dist/types.js.map +1 -0
  332. package/packages/subagent/dist/CapabilityToken.d.ts +66 -0
  333. package/packages/subagent/dist/CapabilityToken.d.ts.map +1 -0
  334. package/packages/subagent/dist/CapabilityToken.js +120 -0
  335. package/packages/subagent/dist/CapabilityToken.js.map +1 -0
  336. package/packages/subagent/dist/ResourceDefaults.d.ts +16 -0
  337. package/packages/subagent/dist/ResourceDefaults.d.ts.map +1 -0
  338. package/packages/subagent/dist/ResourceDefaults.js +68 -0
  339. package/packages/subagent/dist/ResourceDefaults.js.map +1 -0
  340. package/packages/subagent/dist/SkillInputResolver.d.ts +30 -0
  341. package/packages/subagent/dist/SkillInputResolver.d.ts.map +1 -0
  342. package/packages/subagent/dist/SkillInputResolver.js +59 -0
  343. package/packages/subagent/dist/SkillInputResolver.js.map +1 -0
  344. package/packages/subagent/dist/SkillInvoker.d.ts +33 -0
  345. package/packages/subagent/dist/SkillInvoker.d.ts.map +1 -0
  346. package/packages/subagent/dist/SkillInvoker.js +69 -0
  347. package/packages/subagent/dist/SkillInvoker.js.map +1 -0
  348. package/packages/subagent/dist/SubagentOrchestrator.d.ts +52 -0
  349. package/packages/subagent/dist/SubagentOrchestrator.d.ts.map +1 -0
  350. package/packages/subagent/dist/SubagentOrchestrator.js +198 -0
  351. package/packages/subagent/dist/SubagentOrchestrator.js.map +1 -0
  352. package/packages/subagent/dist/SubagentResult.d.ts +34 -0
  353. package/packages/subagent/dist/SubagentResult.d.ts.map +1 -0
  354. package/packages/subagent/dist/SubagentResult.js +21 -0
  355. package/packages/subagent/dist/SubagentResult.js.map +1 -0
  356. package/packages/subagent/dist/Watchdog.d.ts +23 -0
  357. package/packages/subagent/dist/Watchdog.d.ts.map +1 -0
  358. package/packages/subagent/dist/Watchdog.js +44 -0
  359. package/packages/subagent/dist/Watchdog.js.map +1 -0
  360. package/packages/subagent/dist/index.d.ts +15 -0
  361. package/packages/subagent/dist/index.d.ts.map +1 -0
  362. package/packages/subagent/dist/index.js +23 -0
  363. package/packages/subagent/dist/index.js.map +1 -0
  364. package/packages/subagent/dist/sandbox/BwrapBackend.d.ts +14 -0
  365. package/packages/subagent/dist/sandbox/BwrapBackend.d.ts.map +1 -0
  366. package/packages/subagent/dist/sandbox/BwrapBackend.js +171 -0
  367. package/packages/subagent/dist/sandbox/BwrapBackend.js.map +1 -0
  368. package/packages/subagent/dist/sandbox/CloudBackend.d.ts +28 -0
  369. package/packages/subagent/dist/sandbox/CloudBackend.d.ts.map +1 -0
  370. package/packages/subagent/dist/sandbox/CloudBackend.js +52 -0
  371. package/packages/subagent/dist/sandbox/CloudBackend.js.map +1 -0
  372. package/packages/subagent/dist/sandbox/DockerBackend.d.ts +14 -0
  373. package/packages/subagent/dist/sandbox/DockerBackend.d.ts.map +1 -0
  374. package/packages/subagent/dist/sandbox/DockerBackend.js +149 -0
  375. package/packages/subagent/dist/sandbox/DockerBackend.js.map +1 -0
  376. package/packages/subagent/dist/sandbox/FirecrackerBackend.d.ts +17 -0
  377. package/packages/subagent/dist/sandbox/FirecrackerBackend.d.ts.map +1 -0
  378. package/packages/subagent/dist/sandbox/FirecrackerBackend.js +54 -0
  379. package/packages/subagent/dist/sandbox/FirecrackerBackend.js.map +1 -0
  380. package/packages/subagent/dist/sandbox/PodmanBackend.d.ts +13 -0
  381. package/packages/subagent/dist/sandbox/PodmanBackend.d.ts.map +1 -0
  382. package/packages/subagent/dist/sandbox/PodmanBackend.js +144 -0
  383. package/packages/subagent/dist/sandbox/PodmanBackend.js.map +1 -0
  384. package/packages/subagent/dist/sandbox/ProcessBackend.d.ts +16 -0
  385. package/packages/subagent/dist/sandbox/ProcessBackend.d.ts.map +1 -0
  386. package/packages/subagent/dist/sandbox/ProcessBackend.js +152 -0
  387. package/packages/subagent/dist/sandbox/ProcessBackend.js.map +1 -0
  388. package/packages/subagent/dist/sandbox/SandboxManager.d.ts +17 -0
  389. package/packages/subagent/dist/sandbox/SandboxManager.d.ts.map +1 -0
  390. package/packages/subagent/dist/sandbox/SandboxManager.js +45 -0
  391. package/packages/subagent/dist/sandbox/SandboxManager.js.map +1 -0
  392. package/packages/subagent/dist/sandbox/types.d.ts +35 -0
  393. package/packages/subagent/dist/sandbox/types.d.ts.map +1 -0
  394. package/packages/subagent/dist/sandbox/types.js +5 -0
  395. package/packages/subagent/dist/sandbox/types.js.map +1 -0
  396. package/packages/subagent-runtime/dist/AgentLoop.d.ts +46 -0
  397. package/packages/subagent-runtime/dist/AgentLoop.d.ts.map +1 -0
  398. package/packages/subagent-runtime/dist/AgentLoop.js +85 -0
  399. package/packages/subagent-runtime/dist/AgentLoop.js.map +1 -0
  400. package/packages/subagent-runtime/dist/MCPProxy.d.ts +24 -0
  401. package/packages/subagent-runtime/dist/MCPProxy.d.ts.map +1 -0
  402. package/packages/subagent-runtime/dist/MCPProxy.js +31 -0
  403. package/packages/subagent-runtime/dist/MCPProxy.js.map +1 -0
  404. package/packages/subagent-runtime/dist/OutputChannel.d.ts +10 -0
  405. package/packages/subagent-runtime/dist/OutputChannel.d.ts.map +1 -0
  406. package/packages/subagent-runtime/dist/OutputChannel.js +14 -0
  407. package/packages/subagent-runtime/dist/OutputChannel.js.map +1 -0
  408. package/packages/subagent-runtime/dist/ResourceTracker.d.ts +29 -0
  409. package/packages/subagent-runtime/dist/ResourceTracker.d.ts.map +1 -0
  410. package/packages/subagent-runtime/dist/ResourceTracker.js +46 -0
  411. package/packages/subagent-runtime/dist/ResourceTracker.js.map +1 -0
  412. package/packages/subagent-runtime/dist/TokenValidator.d.ts +17 -0
  413. package/packages/subagent-runtime/dist/TokenValidator.d.ts.map +1 -0
  414. package/packages/subagent-runtime/dist/TokenValidator.js +29 -0
  415. package/packages/subagent-runtime/dist/TokenValidator.js.map +1 -0
  416. package/packages/subagent-runtime/dist/index.d.ts +6 -0
  417. package/packages/subagent-runtime/dist/index.d.ts.map +1 -0
  418. package/packages/subagent-runtime/dist/index.js +11 -0
  419. package/packages/subagent-runtime/dist/index.js.map +1 -0
  420. package/packages/subagent-runtime/dist/main.d.ts +2 -0
  421. package/packages/subagent-runtime/dist/main.d.ts.map +1 -0
  422. package/packages/subagent-runtime/dist/main.js +102 -0
  423. package/packages/subagent-runtime/dist/main.js.map +1 -0
  424. package/seeds/b2b-outbound/package.json +6 -0
  425. package/seeds/research/package.json +6 -0
  426. package/seeds/software-engineering/install.ts +78 -0
  427. package/seeds/software-engineering/package.json +6 -0
  428. package/seeds/software-engineering/sprint-workflow.json +102 -0
  429. package/skills/build.yaml +97 -0
  430. package/skills/debug.yaml +117 -0
  431. package/skills/design-review.yaml +119 -0
  432. package/skills/doc.yaml +107 -0
  433. package/skills/office-hours.yaml +76 -0
  434. package/skills/plan-ceo-review.yaml +84 -0
  435. package/skills/plan-eng-review.yaml +96 -0
  436. package/skills/qa.yaml +116 -0
  437. package/skills/refactor.yaml +125 -0
  438. package/skills/research.yaml +108 -0
  439. package/skills/retro.yaml +106 -0
  440. package/skills/review.yaml +101 -0
  441. package/skills/security-audit.yaml +114 -0
  442. package/skills/ship.yaml +108 -0
  443. 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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"}