@framers/agentos 0.1.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 (601) hide show
  1. package/LICENSE +98 -0
  2. package/README.md +576 -0
  3. package/dist/api/AgentOS.d.ts +451 -0
  4. package/dist/api/AgentOS.d.ts.map +1 -0
  5. package/dist/api/AgentOS.js +1157 -0
  6. package/dist/api/AgentOS.js.map +1 -0
  7. package/dist/api/AgentOSOrchestrator.d.ts +157 -0
  8. package/dist/api/AgentOSOrchestrator.d.ts.map +1 -0
  9. package/dist/api/AgentOSOrchestrator.js +679 -0
  10. package/dist/api/AgentOSOrchestrator.js.map +1 -0
  11. package/dist/api/interfaces/IAgentOS.d.ts +138 -0
  12. package/dist/api/interfaces/IAgentOS.d.ts.map +1 -0
  13. package/dist/api/interfaces/IAgentOS.js +11 -0
  14. package/dist/api/interfaces/IAgentOS.js.map +1 -0
  15. package/dist/api/interfaces/IUnifiedAgent.d.ts +126 -0
  16. package/dist/api/interfaces/IUnifiedAgent.d.ts.map +1 -0
  17. package/dist/api/interfaces/IUnifiedAgent.js +3 -0
  18. package/dist/api/interfaces/IUnifiedAgent.js.map +1 -0
  19. package/dist/api/types/AgentOSInput.d.ts +114 -0
  20. package/dist/api/types/AgentOSInput.d.ts.map +1 -0
  21. package/dist/api/types/AgentOSInput.js +13 -0
  22. package/dist/api/types/AgentOSInput.js.map +1 -0
  23. package/dist/api/types/AgentOSResponse.d.ts +170 -0
  24. package/dist/api/types/AgentOSResponse.d.ts.map +1 -0
  25. package/dist/api/types/AgentOSResponse.js +25 -0
  26. package/dist/api/types/AgentOSResponse.js.map +1 -0
  27. package/dist/cognitive_substrate/GMI.d.ts +148 -0
  28. package/dist/cognitive_substrate/GMI.d.ts.map +1 -0
  29. package/dist/cognitive_substrate/GMI.js +1003 -0
  30. package/dist/cognitive_substrate/GMI.js.map +1 -0
  31. package/dist/cognitive_substrate/GMIManager.d.ts +98 -0
  32. package/dist/cognitive_substrate/GMIManager.d.ts.map +1 -0
  33. package/dist/cognitive_substrate/GMIManager.js +517 -0
  34. package/dist/cognitive_substrate/GMIManager.js.map +1 -0
  35. package/dist/cognitive_substrate/IGMI.d.ts +469 -0
  36. package/dist/cognitive_substrate/IGMI.d.ts.map +1 -0
  37. package/dist/cognitive_substrate/IGMI.js +111 -0
  38. package/dist/cognitive_substrate/IGMI.js.map +1 -0
  39. package/dist/cognitive_substrate/memory/IWorkingMemory.d.ts +139 -0
  40. package/dist/cognitive_substrate/memory/IWorkingMemory.d.ts.map +1 -0
  41. package/dist/cognitive_substrate/memory/IWorkingMemory.js +14 -0
  42. package/dist/cognitive_substrate/memory/IWorkingMemory.js.map +1 -0
  43. package/dist/cognitive_substrate/memory/InMemoryWorkingMemory.d.ts +143 -0
  44. package/dist/cognitive_substrate/memory/InMemoryWorkingMemory.d.ts.map +1 -0
  45. package/dist/cognitive_substrate/memory/InMemoryWorkingMemory.js +186 -0
  46. package/dist/cognitive_substrate/memory/InMemoryWorkingMemory.js.map +1 -0
  47. package/dist/cognitive_substrate/persona_overlays/PersonaOverlayManager.d.ts +33 -0
  48. package/dist/cognitive_substrate/persona_overlays/PersonaOverlayManager.d.ts.map +1 -0
  49. package/dist/cognitive_substrate/persona_overlays/PersonaOverlayManager.js +138 -0
  50. package/dist/cognitive_substrate/persona_overlays/PersonaOverlayManager.js.map +1 -0
  51. package/dist/cognitive_substrate/persona_overlays/PersonaOverlayTypes.d.ts +32 -0
  52. package/dist/cognitive_substrate/persona_overlays/PersonaOverlayTypes.d.ts.map +1 -0
  53. package/dist/cognitive_substrate/persona_overlays/PersonaOverlayTypes.js +2 -0
  54. package/dist/cognitive_substrate/persona_overlays/PersonaOverlayTypes.js.map +1 -0
  55. package/dist/cognitive_substrate/personas/IPersonaDefinition.d.ts +336 -0
  56. package/dist/cognitive_substrate/personas/IPersonaDefinition.d.ts.map +1 -0
  57. package/dist/cognitive_substrate/personas/IPersonaDefinition.js +8 -0
  58. package/dist/cognitive_substrate/personas/IPersonaDefinition.js.map +1 -0
  59. package/dist/cognitive_substrate/personas/IPersonaLoader.d.ts +78 -0
  60. package/dist/cognitive_substrate/personas/IPersonaLoader.d.ts.map +1 -0
  61. package/dist/cognitive_substrate/personas/IPersonaLoader.js +9 -0
  62. package/dist/cognitive_substrate/personas/IPersonaLoader.js.map +1 -0
  63. package/dist/cognitive_substrate/personas/PersonaLoader.d.ts +60 -0
  64. package/dist/cognitive_substrate/personas/PersonaLoader.d.ts.map +1 -0
  65. package/dist/cognitive_substrate/personas/PersonaLoader.js +138 -0
  66. package/dist/cognitive_substrate/personas/PersonaLoader.js.map +1 -0
  67. package/dist/cognitive_substrate/personas/PersonaValidation.d.ts +139 -0
  68. package/dist/cognitive_substrate/personas/PersonaValidation.d.ts.map +1 -0
  69. package/dist/cognitive_substrate/personas/PersonaValidation.js +277 -0
  70. package/dist/cognitive_substrate/personas/PersonaValidation.js.map +1 -0
  71. package/dist/cognitive_substrate/personas/definitions/atlas_systems_architect.json +29 -0
  72. package/dist/cognitive_substrate/personas/definitions/default_assistant_persona.json +346 -0
  73. package/dist/cognitive_substrate/personas/definitions/default_free_assistant.json +13 -0
  74. package/dist/cognitive_substrate/personas/definitions/index.d.ts +14 -0
  75. package/dist/cognitive_substrate/personas/definitions/index.d.ts.map +1 -0
  76. package/dist/cognitive_substrate/personas/definitions/index.js +35 -0
  77. package/dist/cognitive_substrate/personas/definitions/index.js.map +1 -0
  78. package/dist/cognitive_substrate/personas/definitions/nerf_generalist.json +11 -0
  79. package/dist/cognitive_substrate/personas/definitions/v_researcher.json +11 -0
  80. package/dist/config/AgentOSConfig.d.ts +74 -0
  81. package/dist/config/AgentOSConfig.d.ts.map +1 -0
  82. package/dist/config/AgentOSConfig.js +399 -0
  83. package/dist/config/AgentOSConfig.js.map +1 -0
  84. package/dist/config/EmbeddingManagerConfiguration.d.ts +190 -0
  85. package/dist/config/EmbeddingManagerConfiguration.d.ts.map +1 -0
  86. package/dist/config/EmbeddingManagerConfiguration.js +16 -0
  87. package/dist/config/EmbeddingManagerConfiguration.js.map +1 -0
  88. package/dist/config/MemoryLifecycleManagerConfiguration.d.ts +165 -0
  89. package/dist/config/MemoryLifecycleManagerConfiguration.d.ts.map +1 -0
  90. package/dist/config/MemoryLifecycleManagerConfiguration.js +69 -0
  91. package/dist/config/MemoryLifecycleManagerConfiguration.js.map +1 -0
  92. package/dist/config/RetrievalAugmentorConfiguration.d.ts +98 -0
  93. package/dist/config/RetrievalAugmentorConfiguration.d.ts.map +1 -0
  94. package/dist/config/RetrievalAugmentorConfiguration.js +47 -0
  95. package/dist/config/RetrievalAugmentorConfiguration.js.map +1 -0
  96. package/dist/config/ToolOrchestratorConfig.d.ts +69 -0
  97. package/dist/config/ToolOrchestratorConfig.d.ts.map +1 -0
  98. package/dist/config/ToolOrchestratorConfig.js +11 -0
  99. package/dist/config/ToolOrchestratorConfig.js.map +1 -0
  100. package/dist/config/VectorStoreConfiguration.d.ts +223 -0
  101. package/dist/config/VectorStoreConfiguration.d.ts.map +1 -0
  102. package/dist/config/VectorStoreConfiguration.js +59 -0
  103. package/dist/config/VectorStoreConfiguration.js.map +1 -0
  104. package/dist/config/extension-secrets.json +38 -0
  105. package/dist/config/extensionSecrets.d.ts +13 -0
  106. package/dist/config/extensionSecrets.d.ts.map +1 -0
  107. package/dist/config/extensionSecrets.js +24 -0
  108. package/dist/config/extensionSecrets.js.map +1 -0
  109. package/dist/core/agency/AgencyMemoryManager.d.ts +300 -0
  110. package/dist/core/agency/AgencyMemoryManager.d.ts.map +1 -0
  111. package/dist/core/agency/AgencyMemoryManager.js +657 -0
  112. package/dist/core/agency/AgencyMemoryManager.js.map +1 -0
  113. package/dist/core/agency/AgencyRegistry.d.ts +100 -0
  114. package/dist/core/agency/AgencyRegistry.d.ts.map +1 -0
  115. package/dist/core/agency/AgencyRegistry.js +209 -0
  116. package/dist/core/agency/AgencyRegistry.js.map +1 -0
  117. package/dist/core/agency/AgencyTypes.d.ts +200 -0
  118. package/dist/core/agency/AgencyTypes.d.ts.map +1 -0
  119. package/dist/core/agency/AgencyTypes.js +7 -0
  120. package/dist/core/agency/AgencyTypes.js.map +1 -0
  121. package/dist/core/agency/AgentCommunicationBus.d.ts +150 -0
  122. package/dist/core/agency/AgentCommunicationBus.d.ts.map +1 -0
  123. package/dist/core/agency/AgentCommunicationBus.js +568 -0
  124. package/dist/core/agency/AgentCommunicationBus.js.map +1 -0
  125. package/dist/core/agency/IAgentCommunicationBus.d.ts +469 -0
  126. package/dist/core/agency/IAgentCommunicationBus.d.ts.map +1 -0
  127. package/dist/core/agency/IAgentCommunicationBus.js +40 -0
  128. package/dist/core/agency/IAgentCommunicationBus.js.map +1 -0
  129. package/dist/core/agency/index.d.ts +18 -0
  130. package/dist/core/agency/index.d.ts.map +1 -0
  131. package/dist/core/agency/index.js +18 -0
  132. package/dist/core/agency/index.js.map +1 -0
  133. package/dist/core/agents/AgentCore.d.ts +385 -0
  134. package/dist/core/agents/AgentCore.d.ts.map +1 -0
  135. package/dist/core/agents/AgentCore.js +527 -0
  136. package/dist/core/agents/AgentCore.js.map +1 -0
  137. package/dist/core/agents/AgentFactory.d.ts +123 -0
  138. package/dist/core/agents/AgentFactory.d.ts.map +1 -0
  139. package/dist/core/agents/AgentFactory.js +232 -0
  140. package/dist/core/agents/AgentFactory.js.map +1 -0
  141. package/dist/core/agents/AgentPoolAgent.d.ts +244 -0
  142. package/dist/core/agents/AgentPoolAgent.d.ts.map +1 -0
  143. package/dist/core/agents/AgentPoolAgent.js +697 -0
  144. package/dist/core/agents/AgentPoolAgent.js.map +1 -0
  145. package/dist/core/agents/AgentPoolConfig.d.ts +191 -0
  146. package/dist/core/agents/AgentPoolConfig.d.ts.map +1 -0
  147. package/dist/core/agents/AgentPoolConfig.js +58 -0
  148. package/dist/core/agents/AgentPoolConfig.js.map +1 -0
  149. package/dist/core/agents/IAgent.d.ts +226 -0
  150. package/dist/core/agents/IAgent.d.ts.map +1 -0
  151. package/dist/core/agents/IAgent.js +14 -0
  152. package/dist/core/agents/IAgent.js.map +1 -0
  153. package/dist/core/agents/IAgentFactory.d.ts +137 -0
  154. package/dist/core/agents/IAgentFactory.d.ts.map +1 -0
  155. package/dist/core/agents/IAgentFactory.js +13 -0
  156. package/dist/core/agents/IAgentFactory.js.map +1 -0
  157. package/dist/core/agents/tools/Tool.d.ts +17 -0
  158. package/dist/core/agents/tools/Tool.d.ts.map +1 -0
  159. package/dist/core/agents/tools/Tool.js +8 -0
  160. package/dist/core/agents/tools/Tool.js.map +1 -0
  161. package/dist/core/ai_utilities/HybridUtilityAI.d.ts +1 -0
  162. package/dist/core/ai_utilities/HybridUtilityAI.d.ts.map +1 -0
  163. package/dist/core/ai_utilities/HybridUtilityAI.js +2 -0
  164. package/dist/core/ai_utilities/HybridUtilityAI.js.map +1 -0
  165. package/dist/core/ai_utilities/IUtilityAI.d.ts +212 -0
  166. package/dist/core/ai_utilities/IUtilityAI.d.ts.map +1 -0
  167. package/dist/core/ai_utilities/IUtilityAI.js +11 -0
  168. package/dist/core/ai_utilities/IUtilityAI.js.map +1 -0
  169. package/dist/core/ai_utilities/LLMUtilityAI.d.ts +94 -0
  170. package/dist/core/ai_utilities/LLMUtilityAI.d.ts.map +1 -0
  171. package/dist/core/ai_utilities/LLMUtilityAI.js +434 -0
  172. package/dist/core/ai_utilities/LLMUtilityAI.js.map +1 -0
  173. package/dist/core/ai_utilities/StatisticalUtilityAI.d.ts +102 -0
  174. package/dist/core/ai_utilities/StatisticalUtilityAI.d.ts.map +1 -0
  175. package/dist/core/ai_utilities/StatisticalUtilityAI.js +617 -0
  176. package/dist/core/ai_utilities/StatisticalUtilityAI.js.map +1 -0
  177. package/dist/core/conversation/ConversationContext.d.ts +259 -0
  178. package/dist/core/conversation/ConversationContext.d.ts.map +1 -0
  179. package/dist/core/conversation/ConversationContext.js +450 -0
  180. package/dist/core/conversation/ConversationContext.js.map +1 -0
  181. package/dist/core/conversation/ConversationManager.d.ts +223 -0
  182. package/dist/core/conversation/ConversationManager.d.ts.map +1 -0
  183. package/dist/core/conversation/ConversationManager.js +558 -0
  184. package/dist/core/conversation/ConversationManager.js.map +1 -0
  185. package/dist/core/conversation/ConversationMessage.d.ts +184 -0
  186. package/dist/core/conversation/ConversationMessage.d.ts.map +1 -0
  187. package/dist/core/conversation/ConversationMessage.js +66 -0
  188. package/dist/core/conversation/ConversationMessage.js.map +1 -0
  189. package/dist/core/evaluation/Evaluator.d.ts +28 -0
  190. package/dist/core/evaluation/Evaluator.d.ts.map +1 -0
  191. package/dist/core/evaluation/Evaluator.js +490 -0
  192. package/dist/core/evaluation/Evaluator.js.map +1 -0
  193. package/dist/core/evaluation/IEvaluator.d.ts +309 -0
  194. package/dist/core/evaluation/IEvaluator.d.ts.map +1 -0
  195. package/dist/core/evaluation/IEvaluator.js +12 -0
  196. package/dist/core/evaluation/IEvaluator.js.map +1 -0
  197. package/dist/core/evaluation/LLMJudge.d.ts +105 -0
  198. package/dist/core/evaluation/LLMJudge.d.ts.map +1 -0
  199. package/dist/core/evaluation/LLMJudge.js +229 -0
  200. package/dist/core/evaluation/LLMJudge.js.map +1 -0
  201. package/dist/core/evaluation/index.d.ts +9 -0
  202. package/dist/core/evaluation/index.d.ts.map +1 -0
  203. package/dist/core/evaluation/index.js +9 -0
  204. package/dist/core/evaluation/index.js.map +1 -0
  205. package/dist/core/guardrails/IGuardrailService.d.ts +142 -0
  206. package/dist/core/guardrails/IGuardrailService.d.ts.map +1 -0
  207. package/dist/core/guardrails/IGuardrailService.js +24 -0
  208. package/dist/core/guardrails/IGuardrailService.js.map +1 -0
  209. package/dist/core/guardrails/guardrailDispatcher.d.ts +36 -0
  210. package/dist/core/guardrails/guardrailDispatcher.d.ts.map +1 -0
  211. package/dist/core/guardrails/guardrailDispatcher.js +240 -0
  212. package/dist/core/guardrails/guardrailDispatcher.js.map +1 -0
  213. package/dist/core/hitl/HumanInteractionManager.d.ts +146 -0
  214. package/dist/core/hitl/HumanInteractionManager.d.ts.map +1 -0
  215. package/dist/core/hitl/HumanInteractionManager.js +491 -0
  216. package/dist/core/hitl/HumanInteractionManager.js.map +1 -0
  217. package/dist/core/hitl/IHumanInteractionManager.d.ts +521 -0
  218. package/dist/core/hitl/IHumanInteractionManager.d.ts.map +1 -0
  219. package/dist/core/hitl/IHumanInteractionManager.js +33 -0
  220. package/dist/core/hitl/IHumanInteractionManager.js.map +1 -0
  221. package/dist/core/hitl/index.d.ts +17 -0
  222. package/dist/core/hitl/index.d.ts.map +1 -0
  223. package/dist/core/hitl/index.js +17 -0
  224. package/dist/core/hitl/index.js.map +1 -0
  225. package/dist/core/knowledge/IKnowledgeGraph.d.ts +351 -0
  226. package/dist/core/knowledge/IKnowledgeGraph.d.ts.map +1 -0
  227. package/dist/core/knowledge/IKnowledgeGraph.js +10 -0
  228. package/dist/core/knowledge/IKnowledgeGraph.js.map +1 -0
  229. package/dist/core/knowledge/KnowledgeGraph.d.ts +93 -0
  230. package/dist/core/knowledge/KnowledgeGraph.d.ts.map +1 -0
  231. package/dist/core/knowledge/KnowledgeGraph.js +601 -0
  232. package/dist/core/knowledge/KnowledgeGraph.js.map +1 -0
  233. package/dist/core/knowledge/index.d.ts +8 -0
  234. package/dist/core/knowledge/index.d.ts.map +1 -0
  235. package/dist/core/knowledge/index.js +8 -0
  236. package/dist/core/knowledge/index.js.map +1 -0
  237. package/dist/core/language/LanguageService.d.ts +77 -0
  238. package/dist/core/language/LanguageService.d.ts.map +1 -0
  239. package/dist/core/language/LanguageService.js +305 -0
  240. package/dist/core/language/LanguageService.js.map +1 -0
  241. package/dist/core/language/index.d.ts +6 -0
  242. package/dist/core/language/index.d.ts.map +1 -0
  243. package/dist/core/language/index.js +6 -0
  244. package/dist/core/language/index.js.map +1 -0
  245. package/dist/core/language/interfaces.d.ts +168 -0
  246. package/dist/core/language/interfaces.d.ts.map +1 -0
  247. package/dist/core/language/interfaces.js +37 -0
  248. package/dist/core/language/interfaces.js.map +1 -0
  249. package/dist/core/language/providers/DeepLTranslationProvider.d.ts +16 -0
  250. package/dist/core/language/providers/DeepLTranslationProvider.d.ts.map +1 -0
  251. package/dist/core/language/providers/DeepLTranslationProvider.js +28 -0
  252. package/dist/core/language/providers/DeepLTranslationProvider.js.map +1 -0
  253. package/dist/core/language/providers/OpenAITranslationProvider.d.ts +17 -0
  254. package/dist/core/language/providers/OpenAITranslationProvider.d.ts.map +1 -0
  255. package/dist/core/language/providers/OpenAITranslationProvider.js +34 -0
  256. package/dist/core/language/providers/OpenAITranslationProvider.js.map +1 -0
  257. package/dist/core/language/providers/WhisperDetectionProvider.d.ts +16 -0
  258. package/dist/core/language/providers/WhisperDetectionProvider.d.ts.map +1 -0
  259. package/dist/core/language/providers/WhisperDetectionProvider.js +15 -0
  260. package/dist/core/language/providers/WhisperDetectionProvider.js.map +1 -0
  261. package/dist/core/llm/IPromptEngine.d.ts +627 -0
  262. package/dist/core/llm/IPromptEngine.d.ts.map +1 -0
  263. package/dist/core/llm/IPromptEngine.js +81 -0
  264. package/dist/core/llm/IPromptEngine.js.map +1 -0
  265. package/dist/core/llm/PromptEngine.d.ts +108 -0
  266. package/dist/core/llm/PromptEngine.d.ts.map +1 -0
  267. package/dist/core/llm/PromptEngine.js +872 -0
  268. package/dist/core/llm/PromptEngine.js.map +1 -0
  269. package/dist/core/llm/providers/AIModelProviderManager.d.ts +74 -0
  270. package/dist/core/llm/providers/AIModelProviderManager.d.ts.map +1 -0
  271. package/dist/core/llm/providers/AIModelProviderManager.js +263 -0
  272. package/dist/core/llm/providers/AIModelProviderManager.js.map +1 -0
  273. package/dist/core/llm/providers/IProvider.d.ts +327 -0
  274. package/dist/core/llm/providers/IProvider.d.ts.map +1 -0
  275. package/dist/core/llm/providers/IProvider.js +39 -0
  276. package/dist/core/llm/providers/IProvider.js.map +1 -0
  277. package/dist/core/llm/providers/errors/OllamaProviderError.d.ts +36 -0
  278. package/dist/core/llm/providers/errors/OllamaProviderError.d.ts.map +1 -0
  279. package/dist/core/llm/providers/errors/OllamaProviderError.js +40 -0
  280. package/dist/core/llm/providers/errors/OllamaProviderError.js.map +1 -0
  281. package/dist/core/llm/providers/errors/OpenAIProviderError.d.ts +42 -0
  282. package/dist/core/llm/providers/errors/OpenAIProviderError.d.ts.map +1 -0
  283. package/dist/core/llm/providers/errors/OpenAIProviderError.js +44 -0
  284. package/dist/core/llm/providers/errors/OpenAIProviderError.js.map +1 -0
  285. package/dist/core/llm/providers/errors/OpenRouterProviderError.d.ts +39 -0
  286. package/dist/core/llm/providers/errors/OpenRouterProviderError.d.ts.map +1 -0
  287. package/dist/core/llm/providers/errors/OpenRouterProviderError.js +42 -0
  288. package/dist/core/llm/providers/errors/OpenRouterProviderError.js.map +1 -0
  289. package/dist/core/llm/providers/errors/ProviderError.d.ts +37 -0
  290. package/dist/core/llm/providers/errors/ProviderError.d.ts.map +1 -0
  291. package/dist/core/llm/providers/errors/ProviderError.js +36 -0
  292. package/dist/core/llm/providers/errors/ProviderError.js.map +1 -0
  293. package/dist/core/llm/providers/implementations/OllamaProvider.d.ts +80 -0
  294. package/dist/core/llm/providers/implementations/OllamaProvider.d.ts.map +1 -0
  295. package/dist/core/llm/providers/implementations/OllamaProvider.js +473 -0
  296. package/dist/core/llm/providers/implementations/OllamaProvider.js.map +1 -0
  297. package/dist/core/llm/providers/implementations/OpenAIProvider.d.ts +160 -0
  298. package/dist/core/llm/providers/implementations/OpenAIProvider.d.ts.map +1 -0
  299. package/dist/core/llm/providers/implementations/OpenAIProvider.js +672 -0
  300. package/dist/core/llm/providers/implementations/OpenAIProvider.js.map +1 -0
  301. package/dist/core/llm/providers/implementations/OpenRouterProvider.d.ts +51 -0
  302. package/dist/core/llm/providers/implementations/OpenRouterProvider.d.ts.map +1 -0
  303. package/dist/core/llm/providers/implementations/OpenRouterProvider.js +499 -0
  304. package/dist/core/llm/providers/implementations/OpenRouterProvider.js.map +1 -0
  305. package/dist/core/llm/routing/IModelRouter.d.ts +129 -0
  306. package/dist/core/llm/routing/IModelRouter.d.ts.map +1 -0
  307. package/dist/core/llm/routing/IModelRouter.js +14 -0
  308. package/dist/core/llm/routing/IModelRouter.js.map +1 -0
  309. package/dist/core/llm/routing/ModelRouter.d.ts +157 -0
  310. package/dist/core/llm/routing/ModelRouter.d.ts.map +1 -0
  311. package/dist/core/llm/routing/ModelRouter.js +190 -0
  312. package/dist/core/llm/routing/ModelRouter.js.map +1 -0
  313. package/dist/core/llm/streaming/StreamingBatcher.d.ts +54 -0
  314. package/dist/core/llm/streaming/StreamingBatcher.d.ts.map +1 -0
  315. package/dist/core/llm/streaming/StreamingBatcher.js +173 -0
  316. package/dist/core/llm/streaming/StreamingBatcher.js.map +1 -0
  317. package/dist/core/llm/streaming/StreamingReconstructor.d.ts +69 -0
  318. package/dist/core/llm/streaming/StreamingReconstructor.d.ts.map +1 -0
  319. package/dist/core/llm/streaming/StreamingReconstructor.js +102 -0
  320. package/dist/core/llm/streaming/StreamingReconstructor.js.map +1 -0
  321. package/dist/core/marketplace/IMarketplace.d.ts +500 -0
  322. package/dist/core/marketplace/IMarketplace.d.ts.map +1 -0
  323. package/dist/core/marketplace/IMarketplace.js +10 -0
  324. package/dist/core/marketplace/IMarketplace.js.map +1 -0
  325. package/dist/core/marketplace/Marketplace.d.ts +122 -0
  326. package/dist/core/marketplace/Marketplace.d.ts.map +1 -0
  327. package/dist/core/marketplace/Marketplace.js +591 -0
  328. package/dist/core/marketplace/Marketplace.js.map +1 -0
  329. package/dist/core/marketplace/index.d.ts +8 -0
  330. package/dist/core/marketplace/index.d.ts.map +1 -0
  331. package/dist/core/marketplace/index.js +8 -0
  332. package/dist/core/marketplace/index.js.map +1 -0
  333. package/dist/core/observability/ITracer.d.ts +317 -0
  334. package/dist/core/observability/ITracer.d.ts.map +1 -0
  335. package/dist/core/observability/ITracer.js +55 -0
  336. package/dist/core/observability/ITracer.js.map +1 -0
  337. package/dist/core/observability/Tracer.d.ts +76 -0
  338. package/dist/core/observability/Tracer.d.ts.map +1 -0
  339. package/dist/core/observability/Tracer.js +360 -0
  340. package/dist/core/observability/Tracer.js.map +1 -0
  341. package/dist/core/observability/index.d.ts +9 -0
  342. package/dist/core/observability/index.d.ts.map +1 -0
  343. package/dist/core/observability/index.js +8 -0
  344. package/dist/core/observability/index.js.map +1 -0
  345. package/dist/core/orchestration/AgentOrchestrator.d.ts +243 -0
  346. package/dist/core/orchestration/AgentOrchestrator.d.ts.map +1 -0
  347. package/dist/core/orchestration/AgentOrchestrator.js +648 -0
  348. package/dist/core/orchestration/AgentOrchestrator.js.map +1 -0
  349. package/dist/core/orchestration/IAgentOrchestrator.d.ts +44 -0
  350. package/dist/core/orchestration/IAgentOrchestrator.d.ts.map +1 -0
  351. package/dist/core/orchestration/IAgentOrchestrator.js +4 -0
  352. package/dist/core/orchestration/IAgentOrchestrator.js.map +1 -0
  353. package/dist/core/orchestration/helpers.d.ts +12 -0
  354. package/dist/core/orchestration/helpers.d.ts.map +1 -0
  355. package/dist/core/orchestration/helpers.js +36 -0
  356. package/dist/core/orchestration/helpers.js.map +1 -0
  357. package/dist/core/planning/IPlanningEngine.d.ts +524 -0
  358. package/dist/core/planning/IPlanningEngine.d.ts.map +1 -0
  359. package/dist/core/planning/IPlanningEngine.js +32 -0
  360. package/dist/core/planning/IPlanningEngine.js.map +1 -0
  361. package/dist/core/planning/PlanningEngine.d.ts +161 -0
  362. package/dist/core/planning/PlanningEngine.d.ts.map +1 -0
  363. package/dist/core/planning/PlanningEngine.js +783 -0
  364. package/dist/core/planning/PlanningEngine.js.map +1 -0
  365. package/dist/core/planning/index.d.ts +25 -0
  366. package/dist/core/planning/index.d.ts.map +1 -0
  367. package/dist/core/planning/index.js +25 -0
  368. package/dist/core/planning/index.js.map +1 -0
  369. package/dist/core/sandbox/CodeSandbox.d.ts +86 -0
  370. package/dist/core/sandbox/CodeSandbox.d.ts.map +1 -0
  371. package/dist/core/sandbox/CodeSandbox.js +475 -0
  372. package/dist/core/sandbox/CodeSandbox.js.map +1 -0
  373. package/dist/core/sandbox/ICodeSandbox.d.ts +249 -0
  374. package/dist/core/sandbox/ICodeSandbox.d.ts.map +1 -0
  375. package/dist/core/sandbox/ICodeSandbox.js +24 -0
  376. package/dist/core/sandbox/ICodeSandbox.js.map +1 -0
  377. package/dist/core/sandbox/index.d.ts +9 -0
  378. package/dist/core/sandbox/index.d.ts.map +1 -0
  379. package/dist/core/sandbox/index.js +8 -0
  380. package/dist/core/sandbox/index.js.map +1 -0
  381. package/dist/core/storage/IStorageAdapter.d.ts +483 -0
  382. package/dist/core/storage/IStorageAdapter.d.ts.map +1 -0
  383. package/dist/core/storage/IStorageAdapter.js +19 -0
  384. package/dist/core/storage/IStorageAdapter.js.map +1 -0
  385. package/dist/core/storage/InMemoryStorageAdapter.d.ts +192 -0
  386. package/dist/core/storage/InMemoryStorageAdapter.d.ts.map +1 -0
  387. package/dist/core/storage/InMemoryStorageAdapter.js +343 -0
  388. package/dist/core/storage/InMemoryStorageAdapter.js.map +1 -0
  389. package/dist/core/storage/SqlStorageAdapter.d.ts +262 -0
  390. package/dist/core/storage/SqlStorageAdapter.d.ts.map +1 -0
  391. package/dist/core/storage/SqlStorageAdapter.js +485 -0
  392. package/dist/core/storage/SqlStorageAdapter.js.map +1 -0
  393. package/dist/core/storage/index.d.ts +14 -0
  394. package/dist/core/storage/index.d.ts.map +1 -0
  395. package/dist/core/storage/index.js +14 -0
  396. package/dist/core/storage/index.js.map +1 -0
  397. package/dist/core/streaming/IStreamClient.d.ts +72 -0
  398. package/dist/core/streaming/IStreamClient.d.ts.map +1 -0
  399. package/dist/core/streaming/IStreamClient.js +12 -0
  400. package/dist/core/streaming/IStreamClient.js.map +1 -0
  401. package/dist/core/streaming/StreamingManager.d.ts +242 -0
  402. package/dist/core/streaming/StreamingManager.d.ts.map +1 -0
  403. package/dist/core/streaming/StreamingManager.js +282 -0
  404. package/dist/core/streaming/StreamingManager.js.map +1 -0
  405. package/dist/core/structured/IStructuredOutputManager.d.ts +701 -0
  406. package/dist/core/structured/IStructuredOutputManager.d.ts.map +1 -0
  407. package/dist/core/structured/IStructuredOutputManager.js +74 -0
  408. package/dist/core/structured/IStructuredOutputManager.js.map +1 -0
  409. package/dist/core/structured/StructuredOutputManager.d.ts +140 -0
  410. package/dist/core/structured/StructuredOutputManager.d.ts.map +1 -0
  411. package/dist/core/structured/StructuredOutputManager.js +1015 -0
  412. package/dist/core/structured/StructuredOutputManager.js.map +1 -0
  413. package/dist/core/structured/index.d.ts +34 -0
  414. package/dist/core/structured/index.d.ts.map +1 -0
  415. package/dist/core/structured/index.js +34 -0
  416. package/dist/core/structured/index.js.map +1 -0
  417. package/dist/core/tools/ITool.d.ts +228 -0
  418. package/dist/core/tools/ITool.d.ts.map +1 -0
  419. package/dist/core/tools/ITool.js +11 -0
  420. package/dist/core/tools/ITool.js.map +1 -0
  421. package/dist/core/tools/IToolOrchestrator.d.ts +131 -0
  422. package/dist/core/tools/IToolOrchestrator.d.ts.map +1 -0
  423. package/dist/core/tools/IToolOrchestrator.js +14 -0
  424. package/dist/core/tools/IToolOrchestrator.js.map +1 -0
  425. package/dist/core/tools/ToolExecutor.d.ts +143 -0
  426. package/dist/core/tools/ToolExecutor.d.ts.map +1 -0
  427. package/dist/core/tools/ToolExecutor.js +364 -0
  428. package/dist/core/tools/ToolExecutor.js.map +1 -0
  429. package/dist/core/tools/ToolOrchestrator.d.ts +142 -0
  430. package/dist/core/tools/ToolOrchestrator.d.ts.map +1 -0
  431. package/dist/core/tools/ToolOrchestrator.js +373 -0
  432. package/dist/core/tools/ToolOrchestrator.js.map +1 -0
  433. package/dist/core/tools/permissions/IToolPermissionManager.d.ts +195 -0
  434. package/dist/core/tools/permissions/IToolPermissionManager.d.ts.map +1 -0
  435. package/dist/core/tools/permissions/IToolPermissionManager.js +14 -0
  436. package/dist/core/tools/permissions/IToolPermissionManager.js.map +1 -0
  437. package/dist/core/tools/permissions/ToolPermissionManager.d.ts +203 -0
  438. package/dist/core/tools/permissions/ToolPermissionManager.d.ts.map +1 -0
  439. package/dist/core/tools/permissions/ToolPermissionManager.js +298 -0
  440. package/dist/core/tools/permissions/ToolPermissionManager.js.map +1 -0
  441. package/dist/core/ui/IUIComponent.d.ts +11 -0
  442. package/dist/core/ui/IUIComponent.d.ts.map +1 -0
  443. package/dist/core/ui/IUIComponent.js +2 -0
  444. package/dist/core/ui/IUIComponent.js.map +1 -0
  445. package/dist/core/usage/UsageLedger.d.ts +81 -0
  446. package/dist/core/usage/UsageLedger.d.ts.map +1 -0
  447. package/dist/core/usage/UsageLedger.js +135 -0
  448. package/dist/core/usage/UsageLedger.js.map +1 -0
  449. package/dist/core/workflows/IWorkflowEngine.d.ts +42 -0
  450. package/dist/core/workflows/IWorkflowEngine.d.ts.map +1 -0
  451. package/dist/core/workflows/IWorkflowEngine.js +2 -0
  452. package/dist/core/workflows/IWorkflowEngine.js.map +1 -0
  453. package/dist/core/workflows/WorkflowEngine.d.ts +28 -0
  454. package/dist/core/workflows/WorkflowEngine.d.ts.map +1 -0
  455. package/dist/core/workflows/WorkflowEngine.js +309 -0
  456. package/dist/core/workflows/WorkflowEngine.js.map +1 -0
  457. package/dist/core/workflows/WorkflowTypes.d.ts +180 -0
  458. package/dist/core/workflows/WorkflowTypes.d.ts.map +1 -0
  459. package/dist/core/workflows/WorkflowTypes.js +26 -0
  460. package/dist/core/workflows/WorkflowTypes.js.map +1 -0
  461. package/dist/core/workflows/runtime/WorkflowRuntime.d.ts +70 -0
  462. package/dist/core/workflows/runtime/WorkflowRuntime.d.ts.map +1 -0
  463. package/dist/core/workflows/runtime/WorkflowRuntime.js +566 -0
  464. package/dist/core/workflows/runtime/WorkflowRuntime.js.map +1 -0
  465. package/dist/core/workflows/storage/IWorkflowStore.d.ts +75 -0
  466. package/dist/core/workflows/storage/IWorkflowStore.d.ts.map +1 -0
  467. package/dist/core/workflows/storage/IWorkflowStore.js +2 -0
  468. package/dist/core/workflows/storage/IWorkflowStore.js.map +1 -0
  469. package/dist/core/workflows/storage/InMemoryWorkflowStore.d.ts +14 -0
  470. package/dist/core/workflows/storage/InMemoryWorkflowStore.d.ts.map +1 -0
  471. package/dist/core/workflows/storage/InMemoryWorkflowStore.js +130 -0
  472. package/dist/core/workflows/storage/InMemoryWorkflowStore.js.map +1 -0
  473. package/dist/extensions/ExtensionLoader.d.ts +119 -0
  474. package/dist/extensions/ExtensionLoader.d.ts.map +1 -0
  475. package/dist/extensions/ExtensionLoader.js +297 -0
  476. package/dist/extensions/ExtensionLoader.js.map +1 -0
  477. package/dist/extensions/ExtensionManager.d.ts +49 -0
  478. package/dist/extensions/ExtensionManager.d.ts.map +1 -0
  479. package/dist/extensions/ExtensionManager.js +197 -0
  480. package/dist/extensions/ExtensionManager.js.map +1 -0
  481. package/dist/extensions/ExtensionRegistry.d.ts +39 -0
  482. package/dist/extensions/ExtensionRegistry.d.ts.map +1 -0
  483. package/dist/extensions/ExtensionRegistry.js +103 -0
  484. package/dist/extensions/ExtensionRegistry.js.map +1 -0
  485. package/dist/extensions/MultiRegistryLoader.d.ts +61 -0
  486. package/dist/extensions/MultiRegistryLoader.d.ts.map +1 -0
  487. package/dist/extensions/MultiRegistryLoader.js +169 -0
  488. package/dist/extensions/MultiRegistryLoader.js.map +1 -0
  489. package/dist/extensions/RegistryConfig.d.ts +86 -0
  490. package/dist/extensions/RegistryConfig.d.ts.map +1 -0
  491. package/dist/extensions/RegistryConfig.js +99 -0
  492. package/dist/extensions/RegistryConfig.js.map +1 -0
  493. package/dist/extensions/events.d.ts +19 -0
  494. package/dist/extensions/events.d.ts.map +1 -0
  495. package/dist/extensions/events.js +2 -0
  496. package/dist/extensions/events.js.map +1 -0
  497. package/dist/extensions/index.d.ts +9 -0
  498. package/dist/extensions/index.d.ts.map +1 -0
  499. package/dist/extensions/index.js +9 -0
  500. package/dist/extensions/index.js.map +1 -0
  501. package/dist/extensions/manifest.d.ts +52 -0
  502. package/dist/extensions/manifest.d.ts.map +1 -0
  503. package/dist/extensions/manifest.js +2 -0
  504. package/dist/extensions/manifest.js.map +1 -0
  505. package/dist/extensions/types.d.ts +294 -0
  506. package/dist/extensions/types.d.ts.map +1 -0
  507. package/dist/extensions/types.js +12 -0
  508. package/dist/extensions/types.js.map +1 -0
  509. package/dist/index.d.ts +49 -0
  510. package/dist/index.d.ts.map +1 -0
  511. package/dist/index.js +59 -0
  512. package/dist/index.js.map +1 -0
  513. package/dist/logging/ILogger.d.ts +8 -0
  514. package/dist/logging/ILogger.d.ts.map +1 -0
  515. package/dist/logging/ILogger.js +2 -0
  516. package/dist/logging/ILogger.js.map +1 -0
  517. package/dist/logging/PinoLogger.d.ts +12 -0
  518. package/dist/logging/PinoLogger.d.ts.map +1 -0
  519. package/dist/logging/PinoLogger.js +22 -0
  520. package/dist/logging/PinoLogger.js.map +1 -0
  521. package/dist/logging/loggerFactory.d.ts +6 -0
  522. package/dist/logging/loggerFactory.d.ts.map +1 -0
  523. package/dist/logging/loggerFactory.js +14 -0
  524. package/dist/logging/loggerFactory.js.map +1 -0
  525. package/dist/rag/EmbeddingManager.d.ts +81 -0
  526. package/dist/rag/EmbeddingManager.d.ts.map +1 -0
  527. package/dist/rag/EmbeddingManager.js +412 -0
  528. package/dist/rag/EmbeddingManager.js.map +1 -0
  529. package/dist/rag/IEmbeddingManager.d.ts +277 -0
  530. package/dist/rag/IEmbeddingManager.d.ts.map +1 -0
  531. package/dist/rag/IEmbeddingManager.js +19 -0
  532. package/dist/rag/IEmbeddingManager.js.map +1 -0
  533. package/dist/rag/IRetrievalAugmentor.d.ts +208 -0
  534. package/dist/rag/IRetrievalAugmentor.d.ts.map +1 -0
  535. package/dist/rag/IRetrievalAugmentor.js +21 -0
  536. package/dist/rag/IRetrievalAugmentor.js.map +1 -0
  537. package/dist/rag/IVectorStore.d.ts +351 -0
  538. package/dist/rag/IVectorStore.d.ts.map +1 -0
  539. package/dist/rag/IVectorStore.js +15 -0
  540. package/dist/rag/IVectorStore.js.map +1 -0
  541. package/dist/rag/IVectorStoreManager.d.ts +121 -0
  542. package/dist/rag/IVectorStoreManager.d.ts.map +1 -0
  543. package/dist/rag/IVectorStoreManager.js +13 -0
  544. package/dist/rag/IVectorStoreManager.js.map +1 -0
  545. package/dist/rag/RetrievalAugmentor.d.ts +99 -0
  546. package/dist/rag/RetrievalAugmentor.d.ts.map +1 -0
  547. package/dist/rag/RetrievalAugmentor.js +674 -0
  548. package/dist/rag/RetrievalAugmentor.js.map +1 -0
  549. package/dist/rag/VectorStoreManager.d.ts +90 -0
  550. package/dist/rag/VectorStoreManager.d.ts.map +1 -0
  551. package/dist/rag/VectorStoreManager.js +283 -0
  552. package/dist/rag/VectorStoreManager.js.map +1 -0
  553. package/dist/rag/implementations/index.d.ts +9 -0
  554. package/dist/rag/implementations/index.d.ts.map +1 -0
  555. package/dist/rag/implementations/index.js +9 -0
  556. package/dist/rag/implementations/index.js.map +1 -0
  557. package/dist/rag/implementations/vector_stores/InMemoryVectorStore.d.ts +132 -0
  558. package/dist/rag/implementations/vector_stores/InMemoryVectorStore.d.ts.map +1 -0
  559. package/dist/rag/implementations/vector_stores/InMemoryVectorStore.js +539 -0
  560. package/dist/rag/implementations/vector_stores/InMemoryVectorStore.js.map +1 -0
  561. package/dist/rag/implementations/vector_stores/SqlVectorStore.d.ts +265 -0
  562. package/dist/rag/implementations/vector_stores/SqlVectorStore.d.ts.map +1 -0
  563. package/dist/rag/implementations/vector_stores/SqlVectorStore.js +755 -0
  564. package/dist/rag/implementations/vector_stores/SqlVectorStore.js.map +1 -0
  565. package/dist/rag/implementations/vector_stores/index.d.ts +10 -0
  566. package/dist/rag/implementations/vector_stores/index.d.ts.map +1 -0
  567. package/dist/rag/implementations/vector_stores/index.js +12 -0
  568. package/dist/rag/implementations/vector_stores/index.js.map +1 -0
  569. package/dist/rag/index.d.ts +95 -0
  570. package/dist/rag/index.d.ts.map +1 -0
  571. package/dist/rag/index.js +97 -0
  572. package/dist/rag/index.js.map +1 -0
  573. package/dist/services/user_auth/AuthService.d.ts +13 -0
  574. package/dist/services/user_auth/AuthService.d.ts.map +1 -0
  575. package/dist/services/user_auth/AuthService.js +24 -0
  576. package/dist/services/user_auth/AuthService.js.map +1 -0
  577. package/dist/services/user_auth/SubscriptionService.d.ts +14 -0
  578. package/dist/services/user_auth/SubscriptionService.d.ts.map +1 -0
  579. package/dist/services/user_auth/SubscriptionService.js +34 -0
  580. package/dist/services/user_auth/SubscriptionService.js.map +1 -0
  581. package/dist/services/user_auth/types.d.ts +30 -0
  582. package/dist/services/user_auth/types.d.ts.map +1 -0
  583. package/dist/services/user_auth/types.js +2 -0
  584. package/dist/services/user_auth/types.js.map +1 -0
  585. package/dist/stubs/prismaClient.d.ts +35 -0
  586. package/dist/stubs/prismaClient.d.ts.map +1 -0
  587. package/dist/stubs/prismaClient.js +47 -0
  588. package/dist/stubs/prismaClient.js.map +1 -0
  589. package/dist/types/rateLimitTypes.d.ts +70 -0
  590. package/dist/types/rateLimitTypes.d.ts.map +1 -0
  591. package/dist/types/rateLimitTypes.js +55 -0
  592. package/dist/types/rateLimitTypes.js.map +1 -0
  593. package/dist/utils/errors.d.ts +80 -0
  594. package/dist/utils/errors.d.ts.map +1 -0
  595. package/dist/utils/errors.js +201 -0
  596. package/dist/utils/errors.js.map +1 -0
  597. package/dist/utils/uuid.d.ts +11 -0
  598. package/dist/utils/uuid.d.ts.map +1 -0
  599. package/dist/utils/uuid.js +64 -0
  600. package/dist/utils/uuid.js.map +1 -0
  601. package/package.json +84 -0
@@ -0,0 +1,783 @@
1
+ /**
2
+ * @file PlanningEngine.ts
3
+ * @description Implementation of the AgentOS Planning Engine.
4
+ * Provides autonomous goal pursuit, task decomposition, and self-correcting plans
5
+ * using ReAct (Reasoning + Acting) and other cognitive patterns.
6
+ *
7
+ * @module AgentOS/Planning
8
+ * @version 1.0.0
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { PlanningEngine } from '../../core/planning/index.js';
13
+ *
14
+ * const engine = new PlanningEngine({
15
+ * llmProvider: aiModelProviderManager,
16
+ * defaultModelId: 'gpt-4-turbo',
17
+ * });
18
+ *
19
+ * const plan = await engine.generatePlan('Build a web scraper', {
20
+ * strategy: 'react',
21
+ * maxSteps: 10,
22
+ * });
23
+ * ```
24
+ */
25
+ import { uuidv4 } from '../../utils/uuid.js';
26
+ /**
27
+ * Prompt templates for planning operations.
28
+ */
29
+ const PLANNING_PROMPTS = {
30
+ generatePlan: `You are an expert planning agent. Generate a detailed step-by-step plan to achieve the following goal.
31
+
32
+ GOAL: {goal}
33
+
34
+ CONTEXT:
35
+ {context}
36
+
37
+ AVAILABLE TOOLS:
38
+ {tools}
39
+
40
+ CONSTRAINTS:
41
+ - Maximum {maxSteps} steps
42
+ - Strategy: {strategy}
43
+ - {additionalConstraints}
44
+
45
+ Generate a plan in the following JSON format:
46
+ {
47
+ "reasoning": "Your chain-of-thought reasoning for the plan",
48
+ "steps": [
49
+ {
50
+ "action": {
51
+ "type": "tool_call|reasoning|information_gathering|synthesis|validation",
52
+ "toolId": "tool_name (if tool_call)",
53
+ "toolArgs": { "arg": "value" },
54
+ "content": "description of the action"
55
+ },
56
+ "reasoning": "Why this step is needed",
57
+ "expectedOutcome": "What this step should produce",
58
+ "dependsOn": ["step_ids"],
59
+ "estimatedTokens": 100,
60
+ "confidence": 0.85
61
+ }
62
+ ],
63
+ "overallConfidence": 0.8
64
+ }`,
65
+ decomposeTask: `Decompose the following complex task into simpler subtasks that can be executed independently or in sequence.
66
+
67
+ TASK: {task}
68
+
69
+ Provide a decomposition in JSON format:
70
+ {
71
+ "reasoning": "How you broke down the task",
72
+ "subtasks": [
73
+ {
74
+ "description": "Subtask description",
75
+ "complexity": 1-10,
76
+ "dependsOn": ["subtask_ids"],
77
+ "estimatedTokens": 100,
78
+ "parallelizable": true|false
79
+ }
80
+ ],
81
+ "executionOrder": ["subtask_ids in order"]
82
+ }`,
83
+ reflect: `Reflect on the current execution state and provide insights.
84
+
85
+ GOAL: {goal}
86
+ PLAN: {plan}
87
+ COMPLETED STEPS: {completedSteps}
88
+ CURRENT RESULTS: {results}
89
+ ISSUES ENCOUNTERED: {issues}
90
+
91
+ Analyze the execution and provide:
92
+ {
93
+ "insights": ["Key observations"],
94
+ "issues": ["Problems identified"],
95
+ "adjustments": [
96
+ {
97
+ "type": "add_step|remove_step|modify_step|reorder",
98
+ "targetStepId": "id",
99
+ "reason": "Why this change"
100
+ }
101
+ ],
102
+ "confidenceAdjustment": 0.1 (positive or negative),
103
+ "recommendation": "continue|adjust|replan|abort"
104
+ }`,
105
+ reactStep: `You are executing a plan step using the ReAct pattern.
106
+
107
+ GOAL: {goal}
108
+ CURRENT STEP: {step}
109
+ PREVIOUS RESULTS: {previousResults}
110
+ CONTEXT: {context}
111
+
112
+ Think through this step:
113
+ 1. THOUGHT: What needs to be done and why
114
+ 2. ACTION: The specific action to take
115
+ 3. OBSERVATION: (Will be filled after execution)
116
+
117
+ Respond with your thought and action plan in JSON:
118
+ {
119
+ "thought": "Your reasoning",
120
+ "action": {
121
+ "type": "tool_call|reasoning|synthesis",
122
+ "details": { ... }
123
+ },
124
+ "expectedObservation": "What you expect to see"
125
+ }`,
126
+ };
127
+ // ============================================================================
128
+ // PlanningEngine Implementation
129
+ // ============================================================================
130
+ /**
131
+ * Implementation of the AgentOS Planning Engine.
132
+ *
133
+ * Features:
134
+ * - ReAct (Reasoning + Acting) pattern for interleaved planning and execution
135
+ * - Plan-and-Execute for upfront planning
136
+ * - Tree-of-Thought for exploring multiple reasoning paths
137
+ * - Self-reflection and plan refinement
138
+ * - Checkpoint and rollback support
139
+ * - Human-in-the-loop integration points
140
+ *
141
+ * @implements {IPlanningEngine}
142
+ */
143
+ export class PlanningEngine {
144
+ /**
145
+ * Creates a new PlanningEngine instance.
146
+ *
147
+ * @param config - Engine configuration
148
+ */
149
+ constructor(config) {
150
+ /** Active execution states keyed by planId */
151
+ this.executionStates = new Map();
152
+ /** Saved checkpoints keyed by checkpointId */
153
+ this.checkpoints = new Map();
154
+ this.llmProvider = config.llmProvider;
155
+ this.defaultModelId = config.defaultModelId ?? 'gpt-4-turbo';
156
+ this.defaultProviderId = config.defaultProviderId;
157
+ this.logger = config.logger;
158
+ this.defaultOptions = {
159
+ maxSteps: 15,
160
+ maxIterations: 5,
161
+ minConfidence: 0.6,
162
+ allowToolUse: true,
163
+ strategy: 'react',
164
+ enableCheckpoints: true,
165
+ checkpointFrequency: 5,
166
+ maxTotalTokens: 100000,
167
+ planningTimeoutMs: 60000,
168
+ ...config.defaultOptions,
169
+ };
170
+ }
171
+ // ==========================================================================
172
+ // Plan Generation
173
+ // ==========================================================================
174
+ /**
175
+ * Generates a multi-step execution plan from a high-level goal.
176
+ *
177
+ * @param goal - The high-level goal to achieve
178
+ * @param context - Additional context for planning
179
+ * @param options - Planning configuration options
180
+ * @returns Generated execution plan
181
+ */
182
+ async generatePlan(goal, context, options) {
183
+ const opts = { ...this.defaultOptions, ...options };
184
+ const startTime = Date.now();
185
+ this.logger?.info?.('Generating execution plan', { goal, strategy: opts.strategy });
186
+ try {
187
+ // Build the planning prompt
188
+ const prompt = this.buildPlanningPrompt(goal, context, opts);
189
+ // Generate plan using LLM
190
+ const response = await this.callLLM(prompt, { jsonMode: true });
191
+ const planData = JSON.parse(response);
192
+ // Build the execution plan
193
+ const plan = this.buildExecutionPlan(goal, planData, opts, startTime);
194
+ // Validate the generated plan
195
+ const validation = await this.validatePlan(plan);
196
+ if (!validation.isValid) {
197
+ this.logger?.warn?.('Generated plan has validation issues', {
198
+ planId: plan.planId,
199
+ issues: validation.issues,
200
+ });
201
+ }
202
+ this.logger?.info?.('Plan generated successfully', {
203
+ planId: plan.planId,
204
+ steps: plan.steps.length,
205
+ confidence: plan.confidenceScore,
206
+ });
207
+ return plan;
208
+ }
209
+ catch (error) {
210
+ const errorMessage = error instanceof Error ? error.message : String(error);
211
+ this.logger?.error?.('Failed to generate plan', { goal, error: errorMessage });
212
+ throw new Error(`Planning failed: ${errorMessage}`);
213
+ }
214
+ }
215
+ /**
216
+ * Decomposes a complex task into simpler subtasks.
217
+ *
218
+ * @param task - The task description to decompose
219
+ * @param depth - Maximum decomposition depth
220
+ * @returns Task decomposition result
221
+ */
222
+ async decomposeTask(task, depth = 3) {
223
+ this.logger?.debug?.('Decomposing task', { task, depth });
224
+ const prompt = PLANNING_PROMPTS.decomposeTask.replace('{task}', task);
225
+ const response = await this.callLLM(prompt, { jsonMode: true });
226
+ const data = JSON.parse(response);
227
+ const subtasks = data.subtasks.map((st, idx) => ({
228
+ subtaskId: `subtask-${idx}-${uuidv4().slice(0, 8)}`,
229
+ description: st.description,
230
+ complexity: st.complexity,
231
+ dependsOn: st.dependsOn ?? [],
232
+ estimatedTokens: st.estimatedTokens ?? 500,
233
+ parallelizable: st.parallelizable ?? false,
234
+ }));
235
+ return {
236
+ originalTask: task,
237
+ subtasks,
238
+ reasoning: data.reasoning,
239
+ isComplete: true,
240
+ executionOrder: data.executionOrder ?? subtasks.map((st) => st.subtaskId),
241
+ };
242
+ }
243
+ /**
244
+ * Validates a plan for feasibility and completeness.
245
+ *
246
+ * @param plan - Plan to validate
247
+ * @returns Validation result with any issues found
248
+ */
249
+ async validatePlan(plan) {
250
+ const issues = [];
251
+ const suggestions = [];
252
+ // Check for empty plan
253
+ if (plan.steps.length === 0) {
254
+ issues.push({
255
+ severity: 'error',
256
+ message: 'Plan has no steps',
257
+ suggestedFix: 'Regenerate plan with clearer goal',
258
+ });
259
+ }
260
+ // Check for circular dependencies
261
+ const visited = new Set();
262
+ const recursionStack = new Set();
263
+ const hasCycle = (stepId) => {
264
+ if (recursionStack.has(stepId))
265
+ return true;
266
+ if (visited.has(stepId))
267
+ return false;
268
+ visited.add(stepId);
269
+ recursionStack.add(stepId);
270
+ const deps = plan.dependencies.get(stepId) ?? [];
271
+ for (const dep of deps) {
272
+ if (hasCycle(dep))
273
+ return true;
274
+ }
275
+ recursionStack.delete(stepId);
276
+ return false;
277
+ };
278
+ for (const step of plan.steps) {
279
+ if (hasCycle(step.stepId)) {
280
+ issues.push({
281
+ severity: 'error',
282
+ stepId: step.stepId,
283
+ message: 'Circular dependency detected',
284
+ suggestedFix: 'Remove or restructure dependent steps',
285
+ });
286
+ break;
287
+ }
288
+ }
289
+ // Check confidence scores
290
+ const lowConfidenceSteps = plan.steps.filter((s) => s.confidence < 0.5);
291
+ if (lowConfidenceSteps.length > 0) {
292
+ issues.push({
293
+ severity: 'warning',
294
+ message: `${lowConfidenceSteps.length} steps have low confidence (<0.5)`,
295
+ suggestedFix: 'Consider adding validation steps or gathering more context',
296
+ });
297
+ }
298
+ // Check for missing tool references
299
+ for (const step of plan.steps) {
300
+ if (step.action.type === 'tool_call' && !step.action.toolId) {
301
+ issues.push({
302
+ severity: 'error',
303
+ stepId: step.stepId,
304
+ message: 'Tool call step missing toolId',
305
+ suggestedFix: 'Specify the tool to be called',
306
+ });
307
+ }
308
+ }
309
+ // Suggestions
310
+ if (plan.steps.length > 10) {
311
+ suggestions.push('Consider breaking this plan into phases for better manageability');
312
+ }
313
+ if (plan.confidenceScore < 0.7) {
314
+ suggestions.push('Overall confidence is moderate - consider adding validation checkpoints');
315
+ }
316
+ return {
317
+ isValid: issues.filter((i) => i.severity === 'error').length === 0,
318
+ issues,
319
+ suggestions,
320
+ };
321
+ }
322
+ // ==========================================================================
323
+ // Plan Refinement
324
+ // ==========================================================================
325
+ /**
326
+ * Refines an existing plan based on execution feedback.
327
+ *
328
+ * @param plan - Original plan to refine
329
+ * @param feedback - Feedback from execution
330
+ * @returns Refined execution plan
331
+ */
332
+ async refinePlan(plan, feedback) {
333
+ this.logger?.info?.('Refining plan based on feedback', {
334
+ planId: plan.planId,
335
+ feedbackType: feedback.feedbackType,
336
+ });
337
+ // Get current execution state
338
+ const state = this.executionStates.get(plan.planId);
339
+ // Perform reflection
340
+ const reflection = await this.reflect(plan, state ?? this.createInitialState(plan));
341
+ // Apply adjustments based on reflection
342
+ let refinedPlan = { ...plan };
343
+ for (const adjustment of reflection.adjustments) {
344
+ refinedPlan = this.applyAdjustment(refinedPlan, adjustment);
345
+ }
346
+ // Update confidence
347
+ refinedPlan.confidenceScore = Math.max(0.1, Math.min(1.0, refinedPlan.confidenceScore + reflection.confidenceAdjustment));
348
+ // Update metadata
349
+ refinedPlan.metadata.iterations++;
350
+ this.logger?.info?.('Plan refined', {
351
+ planId: refinedPlan.planId,
352
+ adjustments: reflection.adjustments.length,
353
+ newConfidence: refinedPlan.confidenceScore,
354
+ });
355
+ return refinedPlan;
356
+ }
357
+ /**
358
+ * Performs self-reflection on plan execution state.
359
+ *
360
+ * @param plan - Current plan
361
+ * @param executionState - Current execution state
362
+ * @returns Reflection insights and suggested adjustments
363
+ */
364
+ async reflect(plan, executionState) {
365
+ const completedSteps = plan.steps.filter((s) => executionState.completedSteps.includes(s.stepId));
366
+ const failedSteps = plan.steps.filter((s) => executionState.failedSteps.includes(s.stepId));
367
+ const resultsStr = Array.from(executionState.results.entries())
368
+ .map(([id, result]) => `${id}: ${result.success ? 'Success' : 'Failed'} - ${JSON.stringify(result.output)}`)
369
+ .join('\n');
370
+ const prompt = PLANNING_PROMPTS.reflect
371
+ .replace('{goal}', plan.goal)
372
+ .replace('{plan}', JSON.stringify(plan.steps.map((s) => s.action)))
373
+ .replace('{completedSteps}', completedSteps.map((s) => s.stepId).join(', '))
374
+ .replace('{results}', resultsStr)
375
+ .replace('{issues}', failedSteps.map((s) => `Step ${s.stepId} failed`).join(', '));
376
+ const response = await this.callLLM(prompt, { jsonMode: true });
377
+ const data = JSON.parse(response);
378
+ return {
379
+ insights: data.insights ?? [],
380
+ issues: data.issues ?? [],
381
+ adjustments: (data.adjustments ?? []).map((adj) => ({
382
+ type: adj.type,
383
+ targetStepId: adj.targetStepId,
384
+ reason: adj.reason,
385
+ })),
386
+ confidenceAdjustment: data.confidenceAdjustment ?? 0,
387
+ recommendation: data.recommendation ?? 'continue',
388
+ };
389
+ }
390
+ // ==========================================================================
391
+ // Execution
392
+ // ==========================================================================
393
+ /**
394
+ * Executes a single plan step.
395
+ *
396
+ * @param step - Step to execute
397
+ * @param context - Execution context
398
+ * @returns Step execution result
399
+ */
400
+ async executeStep(step, context) {
401
+ const startTime = Date.now();
402
+ this.logger?.debug?.('Executing step', { stepId: step.stepId, action: step.action.type });
403
+ try {
404
+ let output;
405
+ const tokensUsed = 0;
406
+ const observations = [];
407
+ switch (step.action.type) {
408
+ case 'tool_call':
409
+ if (step.action.toolId && context?.tools) {
410
+ const tool = context.tools.find((t) => t.id === step.action.toolId);
411
+ if (tool) {
412
+ const toolResult = await tool.execute(step.action.toolArgs ?? {}, {
413
+ gmiId: 'planning-engine',
414
+ personaId: 'planner',
415
+ userContext: { userId: 'system' },
416
+ });
417
+ output = toolResult.output;
418
+ observations.push(`Tool ${tool.name} executed: ${toolResult.success ? 'success' : 'failed'}`);
419
+ }
420
+ else {
421
+ throw new Error(`Tool ${step.action.toolId} not found`);
422
+ }
423
+ }
424
+ break;
425
+ case 'reasoning': {
426
+ const reasoningPrompt = `Reason through: ${step.action.content}\n\nPrevious context: ${JSON.stringify(context?.previousResults)}`;
427
+ output = await this.callLLM(reasoningPrompt);
428
+ observations.push('Reasoning step completed');
429
+ break;
430
+ }
431
+ case 'information_gathering':
432
+ if (context?.retrieve && step.action.query) {
433
+ const retrieved = await context.retrieve(step.action.query);
434
+ output = retrieved;
435
+ observations.push(`Retrieved ${retrieved.length} relevant items`);
436
+ }
437
+ break;
438
+ case 'synthesis': {
439
+ const synthesisPrompt = `Synthesize the following results into a coherent output:\n${JSON.stringify(context?.previousResults)}\n\nContext: ${step.action.content}`;
440
+ output = await this.callLLM(synthesisPrompt);
441
+ observations.push('Synthesis completed');
442
+ break;
443
+ }
444
+ case 'validation': {
445
+ const validationPrompt = `Validate the following output against expected criteria:\nOutput: ${JSON.stringify(context?.previousResults)}\nCriteria: ${step.action.content}`;
446
+ output = await this.callLLM(validationPrompt, { jsonMode: true });
447
+ observations.push('Validation completed');
448
+ break;
449
+ }
450
+ default:
451
+ output = { message: 'Step type not implemented', type: step.action.type };
452
+ }
453
+ return {
454
+ success: true,
455
+ output,
456
+ tokensUsed,
457
+ durationMs: Date.now() - startTime,
458
+ observations,
459
+ };
460
+ }
461
+ catch (error) {
462
+ const errorMessage = error instanceof Error ? error.message : String(error);
463
+ this.logger?.error?.('Step execution failed', { stepId: step.stepId, error: errorMessage });
464
+ return {
465
+ success: false,
466
+ output: null,
467
+ error: errorMessage,
468
+ tokensUsed: 0,
469
+ durationMs: Date.now() - startTime,
470
+ observations: [`Error: ${errorMessage}`],
471
+ };
472
+ }
473
+ }
474
+ /**
475
+ * Runs an autonomous goal pursuit loop.
476
+ *
477
+ * @param goal - Goal to pursue
478
+ * @param options - Loop configuration
479
+ * @yields Progress updates
480
+ * @returns Final execution summary
481
+ */
482
+ async *runAutonomousLoop(goal, options) {
483
+ const opts = {
484
+ maxIterations: options?.maxIterations ?? 20,
485
+ goalConfidenceThreshold: options?.goalConfidenceThreshold ?? 0.9,
486
+ enableReflection: options?.enableReflection ?? true,
487
+ reflectionFrequency: options?.reflectionFrequency ?? 3,
488
+ requireApprovalFor: options?.requireApprovalFor ?? ['human_input'],
489
+ onProgress: options?.onProgress ?? (() => { }),
490
+ onApprovalRequired: options?.onApprovalRequired ?? (async () => true),
491
+ };
492
+ const startTime = Date.now();
493
+ let tokensUsed = 0;
494
+ const allObservations = [];
495
+ let iteration = 0;
496
+ let goalConfidence = 0;
497
+ let currentPlan = null;
498
+ this.logger?.info?.('Starting autonomous loop', { goal, maxIterations: opts.maxIterations });
499
+ try {
500
+ // Generate initial plan
501
+ currentPlan = await this.generatePlan(goal, {}, { strategy: 'react' });
502
+ const state = this.createInitialState(currentPlan);
503
+ this.executionStates.set(currentPlan.planId, state);
504
+ while (iteration < opts.maxIterations && goalConfidence < opts.goalConfidenceThreshold) {
505
+ iteration++;
506
+ // Get next ready step
507
+ const nextStep = this.getNextReadyStep(currentPlan, state);
508
+ if (!nextStep) {
509
+ // All steps complete or blocked
510
+ goalConfidence = currentPlan.confidenceScore;
511
+ break;
512
+ }
513
+ // Check if approval required
514
+ if (opts.requireApprovalFor.includes(nextStep.action.type)) {
515
+ const approved = await opts.onApprovalRequired({
516
+ requestId: uuidv4(),
517
+ step: nextStep,
518
+ reason: `Action type ${nextStep.action.type} requires approval`,
519
+ suggestedAction: 'approve',
520
+ timeoutMs: 30000,
521
+ });
522
+ if (!approved) {
523
+ state.failedSteps.push(nextStep.stepId);
524
+ continue;
525
+ }
526
+ }
527
+ // Execute step
528
+ const result = await this.executeStep(nextStep, {
529
+ previousResults: state.results,
530
+ tools: [],
531
+ });
532
+ // Update state
533
+ state.results.set(nextStep.stepId, result);
534
+ if (result.success) {
535
+ state.completedSteps.push(nextStep.stepId);
536
+ }
537
+ else {
538
+ state.failedSteps.push(nextStep.stepId);
539
+ }
540
+ state.tokensUsed += result.tokensUsed;
541
+ tokensUsed += result.tokensUsed;
542
+ allObservations.push(...result.observations);
543
+ state.lastUpdatedAt = new Date();
544
+ // Calculate progress
545
+ const progress = state.completedSteps.length / currentPlan.steps.length;
546
+ goalConfidence = progress * currentPlan.confidenceScore;
547
+ // Yield progress
548
+ const loopProgress = {
549
+ iteration,
550
+ currentStep: nextStep,
551
+ progress,
552
+ observations: allObservations,
553
+ goalConfidence,
554
+ tokensUsed,
555
+ };
556
+ opts.onProgress(loopProgress);
557
+ yield loopProgress;
558
+ // Reflection at intervals
559
+ if (opts.enableReflection && iteration % opts.reflectionFrequency === 0) {
560
+ const reflection = await this.reflect(currentPlan, state);
561
+ if (reflection.recommendation === 'replan') {
562
+ currentPlan = await this.generatePlan(goal, {
563
+ failedApproaches: state.failedSteps.map((id) => `Step ${id} failed`),
564
+ });
565
+ state.currentStepIndex = 0;
566
+ }
567
+ else if (reflection.recommendation === 'abort') {
568
+ break;
569
+ }
570
+ }
571
+ }
572
+ // Generate final summary
573
+ const summary = {
574
+ goalAchieved: goalConfidence >= opts.goalConfidenceThreshold,
575
+ finalConfidence: goalConfidence,
576
+ iterations: iteration,
577
+ totalTokensUsed: tokensUsed,
578
+ totalDurationMs: Date.now() - startTime,
579
+ outcomes: allObservations.slice(-10),
580
+ unresolvedIssues: state.failedSteps.map((id) => `Step ${id} failed`),
581
+ };
582
+ this.logger?.info?.('Autonomous loop completed', summary);
583
+ return summary;
584
+ }
585
+ catch (error) {
586
+ const errorMessage = error instanceof Error ? error.message : String(error);
587
+ this.logger?.error?.('Autonomous loop failed', { goal, error: errorMessage });
588
+ return {
589
+ goalAchieved: false,
590
+ finalConfidence: 0,
591
+ iterations: iteration,
592
+ totalTokensUsed: tokensUsed,
593
+ totalDurationMs: Date.now() - startTime,
594
+ outcomes: [],
595
+ unresolvedIssues: [errorMessage],
596
+ };
597
+ }
598
+ }
599
+ // ==========================================================================
600
+ // State Management
601
+ // ==========================================================================
602
+ /**
603
+ * Saves current execution state for checkpointing.
604
+ *
605
+ * @param plan - Plan being executed
606
+ * @param state - Current execution state
607
+ * @returns Checkpoint identifier
608
+ */
609
+ async saveCheckpoint(plan, state) {
610
+ const checkpointId = `checkpoint-${plan.planId}-${Date.now()}`;
611
+ this.checkpoints.set(checkpointId, {
612
+ plan: JSON.parse(JSON.stringify(plan)),
613
+ state: {
614
+ ...state,
615
+ results: new Map(state.results),
616
+ },
617
+ });
618
+ this.logger?.debug?.('Checkpoint saved', { checkpointId, planId: plan.planId });
619
+ return checkpointId;
620
+ }
621
+ /**
622
+ * Restores execution state from a checkpoint.
623
+ *
624
+ * @param checkpointId - Checkpoint to restore
625
+ * @returns Restored plan and state
626
+ */
627
+ async restoreCheckpoint(checkpointId) {
628
+ const checkpoint = this.checkpoints.get(checkpointId);
629
+ if (!checkpoint) {
630
+ throw new Error(`Checkpoint ${checkpointId} not found`);
631
+ }
632
+ this.logger?.debug?.('Checkpoint restored', { checkpointId });
633
+ return {
634
+ plan: JSON.parse(JSON.stringify(checkpoint.plan)),
635
+ state: {
636
+ ...checkpoint.state,
637
+ results: new Map(checkpoint.state.results),
638
+ },
639
+ };
640
+ }
641
+ /**
642
+ * Gets the current execution state for a plan.
643
+ *
644
+ * @param planId - Plan identifier
645
+ * @returns Current execution state or null
646
+ */
647
+ getExecutionState(planId) {
648
+ return this.executionStates.get(planId) ?? null;
649
+ }
650
+ // ==========================================================================
651
+ // Private Helpers
652
+ // ==========================================================================
653
+ buildPlanningPrompt(goal, context, options) {
654
+ const toolsStr = options.availableTools
655
+ ? options.availableTools.map((t) => `- ${t.name}: ${t.description}`).join('\n')
656
+ : 'No tools available';
657
+ const contextStr = [
658
+ context?.conversationHistory && `Conversation: ${context.conversationHistory}`,
659
+ context?.retrievedContext && `Retrieved Context: ${context.retrievedContext}`,
660
+ context?.domainContext && `Domain: ${context.domainContext}`,
661
+ context?.userConstraints?.length && `Constraints: ${context.userConstraints.join(', ')}`,
662
+ ]
663
+ .filter(Boolean)
664
+ .join('\n');
665
+ return PLANNING_PROMPTS.generatePlan
666
+ .replace('{goal}', goal)
667
+ .replace('{context}', contextStr || 'No additional context')
668
+ .replace('{tools}', toolsStr)
669
+ .replace('{maxSteps}', String(options.maxSteps))
670
+ .replace('{strategy}', options.strategy ?? 'react')
671
+ .replace('{additionalConstraints}', options.allowToolUse ? 'Tool use is allowed' : 'No tool use');
672
+ }
673
+ buildExecutionPlan(goal, planData, options, startTime) {
674
+ const planId = `plan-${uuidv4()}`;
675
+ const steps = [];
676
+ const dependencies = new Map();
677
+ const rawSteps = planData.steps;
678
+ let totalEstimatedTokens = 0;
679
+ for (let i = 0; i < rawSteps.length; i++) {
680
+ const rawStep = rawSteps[i];
681
+ const stepId = `step-${i}-${uuidv4().slice(0, 8)}`;
682
+ const action = rawStep.action;
683
+ const step = {
684
+ stepId,
685
+ index: i,
686
+ action: {
687
+ type: action.type ?? 'reasoning',
688
+ toolId: action.toolId,
689
+ toolArgs: action.toolArgs,
690
+ content: action.content ?? '',
691
+ },
692
+ reasoning: rawStep.reasoning ?? '',
693
+ expectedOutcome: rawStep.expectedOutcome ?? '',
694
+ dependsOn: rawStep.dependsOn ?? [],
695
+ estimatedTokens: rawStep.estimatedTokens ?? 500,
696
+ confidence: rawStep.confidence ?? 0.7,
697
+ requiresHumanApproval: action.type === 'human_input',
698
+ status: 'pending',
699
+ };
700
+ steps.push(step);
701
+ dependencies.set(stepId, step.dependsOn);
702
+ totalEstimatedTokens += step.estimatedTokens;
703
+ }
704
+ return {
705
+ planId,
706
+ goal,
707
+ steps,
708
+ dependencies,
709
+ estimatedTokens: totalEstimatedTokens,
710
+ confidenceScore: planData.overallConfidence ?? 0.7,
711
+ createdAt: new Date(),
712
+ strategy: options.strategy ?? 'react',
713
+ metadata: {
714
+ modelId: this.defaultModelId,
715
+ iterations: 1,
716
+ planningDurationMs: Date.now() - startTime,
717
+ alternativesConsidered: 1,
718
+ },
719
+ };
720
+ }
721
+ createInitialState(plan) {
722
+ return {
723
+ planId: plan.planId,
724
+ currentStepIndex: 0,
725
+ completedSteps: [],
726
+ failedSteps: [],
727
+ results: new Map(),
728
+ tokensUsed: 0,
729
+ startedAt: new Date(),
730
+ lastUpdatedAt: new Date(),
731
+ };
732
+ }
733
+ getNextReadyStep(plan, state) {
734
+ for (const step of plan.steps) {
735
+ if (state.completedSteps.includes(step.stepId))
736
+ continue;
737
+ if (state.failedSteps.includes(step.stepId))
738
+ continue;
739
+ // Check if dependencies are met
740
+ const depsmet = step.dependsOn.every((depId) => state.completedSteps.includes(depId));
741
+ if (depsmet) {
742
+ return step;
743
+ }
744
+ }
745
+ return null;
746
+ }
747
+ applyAdjustment(plan, adjustment) {
748
+ const newPlan = { ...plan, steps: [...plan.steps] };
749
+ switch (adjustment.type) {
750
+ case 'remove_step':
751
+ if (adjustment.targetStepId) {
752
+ newPlan.steps = newPlan.steps.filter((s) => s.stepId !== adjustment.targetStepId);
753
+ }
754
+ break;
755
+ case 'modify_step':
756
+ if (adjustment.targetStepId && adjustment.newStepData) {
757
+ const idx = newPlan.steps.findIndex((s) => s.stepId === adjustment.targetStepId);
758
+ if (idx >= 0) {
759
+ newPlan.steps[idx] = { ...newPlan.steps[idx], ...adjustment.newStepData };
760
+ }
761
+ }
762
+ break;
763
+ // Add other adjustment types as needed
764
+ }
765
+ return newPlan;
766
+ }
767
+ async callLLM(prompt, options) {
768
+ const messages = [{ role: 'user', content: prompt }];
769
+ const providerId = this.defaultProviderId ?? 'openai';
770
+ const provider = this.llmProvider.getProvider(providerId);
771
+ if (!provider) {
772
+ throw new Error(`Provider "${providerId}" not found`);
773
+ }
774
+ const response = await provider.generateCompletion(this.defaultModelId, messages, {
775
+ temperature: 0.7,
776
+ maxTokens: 4000,
777
+ responseFormat: options?.jsonMode ? { type: 'json_object' } : undefined,
778
+ });
779
+ const content = response.choices?.[0]?.message?.content;
780
+ return typeof content === 'string' ? content : '';
781
+ }
782
+ }
783
+ //# sourceMappingURL=PlanningEngine.js.map