wunderland 0.54.0 → 0.55.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 (402) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +4 -3
  3. package/dist/advanced/index.d.ts +2 -1
  4. package/dist/advanced/index.d.ts.map +1 -1
  5. package/dist/advanced/index.js +1 -1
  6. package/dist/advanced/index.js.map +1 -1
  7. package/dist/api/chat-runtime.d.ts +12 -1
  8. package/dist/api/chat-runtime.d.ts.map +1 -1
  9. package/dist/api/chat-runtime.js +29 -436
  10. package/dist/api/chat-runtime.js.map +1 -1
  11. package/dist/api/routes/agents.d.ts +21 -0
  12. package/dist/api/routes/agents.d.ts.map +1 -0
  13. package/dist/api/routes/agents.js +82 -0
  14. package/dist/api/routes/agents.js.map +1 -0
  15. package/dist/api/routes/chat.d.ts +23 -0
  16. package/dist/api/routes/chat.d.ts.map +1 -0
  17. package/dist/api/routes/chat.js +286 -0
  18. package/dist/api/routes/chat.js.map +1 -0
  19. package/dist/api/routes/config.d.ts +21 -0
  20. package/dist/api/routes/config.d.ts.map +1 -0
  21. package/dist/api/routes/config.js +43 -0
  22. package/dist/api/routes/config.js.map +1 -0
  23. package/dist/api/routes/health.d.ts +39 -0
  24. package/dist/api/routes/health.d.ts.map +1 -0
  25. package/dist/api/routes/health.js +155 -0
  26. package/dist/api/routes/health.js.map +1 -0
  27. package/dist/api/routes/index.d.ts +32 -0
  28. package/dist/api/routes/index.d.ts.map +1 -0
  29. package/dist/api/routes/index.js +55 -0
  30. package/dist/api/routes/index.js.map +1 -0
  31. package/dist/api/routes/social.d.ts +24 -0
  32. package/dist/api/routes/social.d.ts.map +1 -0
  33. package/dist/api/routes/social.js +96 -0
  34. package/dist/api/routes/social.js.map +1 -0
  35. package/dist/api/routes/types.d.ts +85 -0
  36. package/dist/api/routes/types.d.ts.map +1 -0
  37. package/dist/api/routes/types.js +11 -0
  38. package/dist/api/routes/types.js.map +1 -0
  39. package/dist/api/server.d.ts.map +1 -1
  40. package/dist/api/server.js +55 -501
  41. package/dist/api/server.js.map +1 -1
  42. package/dist/api/types.d.ts +126 -1
  43. package/dist/api/types.d.ts.map +1 -1
  44. package/dist/bootstrap/AgentBootstrap.d.ts +233 -0
  45. package/dist/bootstrap/AgentBootstrap.d.ts.map +1 -0
  46. package/dist/bootstrap/AgentBootstrap.js +673 -0
  47. package/dist/bootstrap/AgentBootstrap.js.map +1 -0
  48. package/dist/bootstrap/index.d.ts +7 -0
  49. package/dist/bootstrap/index.d.ts.map +1 -0
  50. package/dist/bootstrap/index.js +6 -0
  51. package/dist/bootstrap/index.js.map +1 -0
  52. package/dist/cli/commands/ChatREPL.d.ts +246 -0
  53. package/dist/cli/commands/ChatREPL.d.ts.map +1 -0
  54. package/dist/cli/commands/ChatREPL.js +410 -0
  55. package/dist/cli/commands/ChatREPL.js.map +1 -0
  56. package/dist/cli/commands/ChatStreamRenderer.d.ts +140 -0
  57. package/dist/cli/commands/ChatStreamRenderer.d.ts.map +1 -0
  58. package/dist/cli/commands/ChatStreamRenderer.js +187 -0
  59. package/dist/cli/commands/ChatStreamRenderer.js.map +1 -0
  60. package/dist/cli/commands/agency.d.ts +42 -0
  61. package/dist/cli/commands/agency.d.ts.map +1 -1
  62. package/dist/cli/commands/agency.js +362 -21
  63. package/dist/cli/commands/agency.js.map +1 -1
  64. package/dist/cli/commands/{agents.d.ts → agent/agents.d.ts} +1 -1
  65. package/dist/cli/commands/agent/agents.d.ts.map +1 -0
  66. package/dist/cli/commands/{agents.js → agent/agents.js} +4 -4
  67. package/dist/cli/commands/agent/agents.js.map +1 -0
  68. package/dist/cli/commands/{logs.d.ts → agent/logs.d.ts} +1 -1
  69. package/dist/cli/commands/agent/logs.d.ts.map +1 -0
  70. package/dist/cli/commands/{logs.js → agent/logs.js} +3 -3
  71. package/dist/cli/commands/agent/logs.js.map +1 -0
  72. package/dist/cli/commands/{monitor.d.ts → agent/monitor.d.ts} +1 -1
  73. package/dist/cli/commands/agent/monitor.d.ts.map +1 -0
  74. package/dist/cli/commands/{monitor.js → agent/monitor.js} +3 -3
  75. package/dist/cli/commands/agent/monitor.js.map +1 -0
  76. package/dist/cli/commands/{ps.d.ts → agent/ps.d.ts} +1 -1
  77. package/dist/cli/commands/agent/ps.d.ts.map +1 -0
  78. package/dist/cli/commands/{ps.js → agent/ps.js} +3 -3
  79. package/dist/cli/commands/agent/ps.js.map +1 -0
  80. package/dist/cli/commands/{serve.d.ts → agent/serve.d.ts} +1 -1
  81. package/dist/cli/commands/agent/serve.d.ts.map +1 -0
  82. package/dist/cli/commands/{serve.js → agent/serve.js} +5 -5
  83. package/dist/cli/commands/agent/serve.js.map +1 -0
  84. package/dist/cli/commands/{stop.d.ts → agent/stop.d.ts} +1 -1
  85. package/dist/cli/commands/agent/stop.d.ts.map +1 -0
  86. package/dist/cli/commands/{stop.js → agent/stop.js} +3 -3
  87. package/dist/cli/commands/agent/stop.js.map +1 -0
  88. package/dist/cli/commands/ai/audio.d.ts +18 -0
  89. package/dist/cli/commands/ai/audio.d.ts.map +1 -0
  90. package/dist/cli/commands/ai/audio.js +191 -0
  91. package/dist/cli/commands/ai/audio.js.map +1 -0
  92. package/dist/cli/commands/{image.d.ts → ai/image.d.ts} +1 -1
  93. package/dist/cli/commands/ai/image.d.ts.map +1 -0
  94. package/dist/cli/commands/{image.js → ai/image.js} +5 -5
  95. package/dist/cli/commands/ai/image.js.map +1 -0
  96. package/dist/cli/commands/{structured.d.ts → ai/structured.d.ts} +1 -1
  97. package/dist/cli/commands/ai/structured.d.ts.map +1 -0
  98. package/dist/cli/commands/{structured.js → ai/structured.js} +5 -5
  99. package/dist/cli/commands/ai/structured.js.map +1 -0
  100. package/dist/cli/commands/ai/video.d.ts +19 -0
  101. package/dist/cli/commands/ai/video.d.ts.map +1 -0
  102. package/dist/cli/commands/ai/video.js +232 -0
  103. package/dist/cli/commands/ai/video.js.map +1 -0
  104. package/dist/cli/commands/{vision.d.ts → ai/vision.d.ts} +1 -1
  105. package/dist/cli/commands/ai/vision.d.ts.map +1 -0
  106. package/dist/cli/commands/{vision.js → ai/vision.js} +4 -4
  107. package/dist/cli/commands/ai/vision.js.map +1 -0
  108. package/dist/cli/commands/{auth-status.d.ts → auth/auth-status.d.ts} +1 -1
  109. package/dist/cli/commands/auth/auth-status.d.ts.map +1 -0
  110. package/dist/cli/commands/{auth-status.js → auth/auth-status.js} +2 -2
  111. package/dist/cli/commands/auth/auth-status.js.map +1 -0
  112. package/dist/cli/commands/{login.d.ts → auth/login.d.ts} +1 -1
  113. package/dist/cli/commands/auth/login.d.ts.map +1 -0
  114. package/dist/cli/commands/{login.js → auth/login.js} +146 -6
  115. package/dist/cli/commands/auth/login.js.map +1 -0
  116. package/dist/cli/commands/{logout.d.ts → auth/logout.d.ts} +1 -1
  117. package/dist/cli/commands/auth/logout.d.ts.map +1 -0
  118. package/dist/cli/commands/{logout.js → auth/logout.js} +2 -2
  119. package/dist/cli/commands/auth/logout.js.map +1 -0
  120. package/dist/cli/commands/batch-create.d.ts +37 -0
  121. package/dist/cli/commands/batch-create.d.ts.map +1 -0
  122. package/dist/cli/commands/batch-create.js +655 -0
  123. package/dist/cli/commands/batch-create.js.map +1 -0
  124. package/dist/cli/commands/channels.js +1 -1
  125. package/dist/cli/commands/channels.js.map +1 -1
  126. package/dist/cli/commands/chat.d.ts +5 -1
  127. package/dist/cli/commands/chat.d.ts.map +1 -1
  128. package/dist/cli/commands/chat.js +290 -414
  129. package/dist/cli/commands/chat.js.map +1 -1
  130. package/dist/cli/commands/create.js +1 -1
  131. package/dist/cli/commands/create.js.map +1 -1
  132. package/dist/cli/commands/export-session.js +1 -1
  133. package/dist/cli/commands/export-session.js.map +1 -1
  134. package/dist/cli/commands/extensions.d.ts.map +1 -1
  135. package/dist/cli/commands/extensions.js +7 -1
  136. package/dist/cli/commands/extensions.js.map +1 -1
  137. package/dist/cli/commands/mission.d.ts +8 -4
  138. package/dist/cli/commands/mission.d.ts.map +1 -1
  139. package/dist/cli/commands/mission.js +235 -8
  140. package/dist/cli/commands/mission.js.map +1 -1
  141. package/dist/cli/commands/rag.d.ts +6 -0
  142. package/dist/cli/commands/rag.d.ts.map +1 -1
  143. package/dist/cli/commands/rag.js +487 -138
  144. package/dist/cli/commands/rag.js.map +1 -1
  145. package/dist/cli/commands/spawn.d.ts +40 -0
  146. package/dist/cli/commands/spawn.d.ts.map +1 -0
  147. package/dist/cli/commands/spawn.js +515 -0
  148. package/dist/cli/commands/spawn.js.map +1 -0
  149. package/dist/cli/commands/start/channel-handler.d.ts +1 -1
  150. package/dist/cli/commands/start/channel-handler.d.ts.map +1 -1
  151. package/dist/cli/commands/start/channel-handler.js +1 -1
  152. package/dist/cli/commands/start/channel-handler.js.map +1 -1
  153. package/dist/cli/commands/start/extension-loader.d.ts.map +1 -1
  154. package/dist/cli/commands/start/extension-loader.js +16 -18
  155. package/dist/cli/commands/start/extension-loader.js.map +1 -1
  156. package/dist/cli/commands/start/http-server.d.ts +5 -1
  157. package/dist/cli/commands/start/http-server.d.ts.map +1 -1
  158. package/dist/cli/commands/start/http-server.js +60 -1421
  159. package/dist/cli/commands/start/http-server.js.map +1 -1
  160. package/dist/cli/commands/start/llm-provider-setup.js +1 -1
  161. package/dist/cli/commands/start/llm-provider-setup.js.map +1 -1
  162. package/dist/cli/commands/start/routes/chat.d.ts +20 -0
  163. package/dist/cli/commands/start/routes/chat.d.ts.map +1 -0
  164. package/dist/cli/commands/start/routes/chat.js +443 -0
  165. package/dist/cli/commands/start/routes/chat.js.map +1 -0
  166. package/dist/cli/commands/start/routes/config.d.ts +17 -0
  167. package/dist/cli/commands/start/routes/config.d.ts.map +1 -0
  168. package/dist/cli/commands/start/routes/config.js +47 -0
  169. package/dist/cli/commands/start/routes/config.js.map +1 -0
  170. package/dist/cli/commands/start/routes/health.d.ts +32 -0
  171. package/dist/cli/commands/start/routes/health.d.ts.map +1 -0
  172. package/dist/cli/commands/start/routes/health.js +171 -0
  173. package/dist/cli/commands/start/routes/health.js.map +1 -0
  174. package/dist/cli/commands/start/routes/helpers.d.ts +30 -0
  175. package/dist/cli/commands/start/routes/helpers.d.ts.map +1 -0
  176. package/dist/cli/commands/start/routes/helpers.js +90 -0
  177. package/dist/cli/commands/start/routes/helpers.js.map +1 -0
  178. package/dist/cli/commands/start/routes/html-pages.d.ts +12 -0
  179. package/dist/cli/commands/start/routes/html-pages.d.ts.map +1 -0
  180. package/dist/cli/commands/start/routes/html-pages.js +612 -0
  181. package/dist/cli/commands/start/routes/html-pages.js.map +1 -0
  182. package/dist/cli/commands/start/routes/index.d.ts +31 -0
  183. package/dist/cli/commands/start/routes/index.d.ts.map +1 -0
  184. package/dist/cli/commands/start/routes/index.js +53 -0
  185. package/dist/cli/commands/start/routes/index.js.map +1 -0
  186. package/dist/cli/commands/start/routes/social.d.ts +36 -0
  187. package/dist/cli/commands/start/routes/social.d.ts.map +1 -0
  188. package/dist/cli/commands/start/routes/social.js +210 -0
  189. package/dist/cli/commands/start/routes/social.js.map +1 -0
  190. package/dist/cli/commands/start/routes/types.d.ts +71 -0
  191. package/dist/cli/commands/start/routes/types.d.ts.map +1 -0
  192. package/dist/cli/commands/start/routes/types.js +10 -0
  193. package/dist/cli/commands/start/routes/types.js.map +1 -0
  194. package/dist/cli/commands/start/seed-initializer.js +2 -2
  195. package/dist/cli/commands/start/seed-initializer.js.map +1 -1
  196. package/dist/cli/commands/start/startup-display.js +1 -1
  197. package/dist/cli/commands/start/startup-display.js.map +1 -1
  198. package/dist/cli/config/agent-history.js +2 -2
  199. package/dist/cli/config/agent-history.js.map +1 -1
  200. package/dist/cli/constants.d.ts +20 -4
  201. package/dist/cli/constants.d.ts.map +1 -1
  202. package/dist/cli/constants.js +3 -1
  203. package/dist/cli/constants.js.map +1 -1
  204. package/dist/cli/daemon/daemon-state.js +1 -1
  205. package/dist/cli/daemon/daemon-state.js.map +1 -1
  206. package/dist/cli/extensions/categories.d.ts +49 -0
  207. package/dist/cli/extensions/categories.d.ts.map +1 -0
  208. package/dist/cli/extensions/categories.js +87 -0
  209. package/dist/cli/extensions/categories.js.map +1 -0
  210. package/dist/cli/extensions/recommender.d.ts.map +1 -1
  211. package/dist/cli/extensions/recommender.js +70 -0
  212. package/dist/cli/extensions/recommender.js.map +1 -1
  213. package/dist/cli/help/topics.d.ts +1 -1
  214. package/dist/cli/help/topics.d.ts.map +1 -1
  215. package/dist/cli/help/topics.js +70 -1
  216. package/dist/cli/help/topics.js.map +1 -1
  217. package/dist/cli/index.d.ts.map +1 -1
  218. package/dist/cli/index.js +82 -13
  219. package/dist/cli/index.js.map +1 -1
  220. package/dist/cli/renderers/MissionStreamRenderer.d.ts +29 -0
  221. package/dist/cli/renderers/MissionStreamRenderer.d.ts.map +1 -0
  222. package/dist/cli/renderers/MissionStreamRenderer.js +170 -0
  223. package/dist/cli/renderers/MissionStreamRenderer.js.map +1 -0
  224. package/dist/cli/tui/index.d.ts.map +1 -1
  225. package/dist/cli/tui/index.js +29 -17
  226. package/dist/cli/tui/index.js.map +1 -1
  227. package/dist/cli/tui/views/agents-view.d.ts.map +1 -1
  228. package/dist/cli/tui/views/agents-view.js +17 -5
  229. package/dist/cli/tui/views/agents-view.js.map +1 -1
  230. package/dist/cli/tui/views/extensions-view.d.ts +7 -0
  231. package/dist/cli/tui/views/extensions-view.d.ts.map +1 -1
  232. package/dist/cli/tui/views/extensions-view.js +94 -29
  233. package/dist/cli/tui/views/extensions-view.js.map +1 -1
  234. package/dist/cli/tui/views/voice-view.d.ts +3 -0
  235. package/dist/cli/tui/views/voice-view.d.ts.map +1 -1
  236. package/dist/cli/tui/views/voice-view.js +15 -7
  237. package/dist/cli/tui/views/voice-view.js.map +1 -1
  238. package/dist/cli/types.d.ts +10 -0
  239. package/dist/cli/types.d.ts.map +1 -1
  240. package/dist/config/provider-defaults.d.ts.map +1 -1
  241. package/dist/config/provider-defaults.js +42 -1
  242. package/dist/config/provider-defaults.js.map +1 -1
  243. package/dist/config/schema.d.ts.map +1 -1
  244. package/dist/config/schema.js +152 -0
  245. package/dist/config/schema.js.map +1 -1
  246. package/dist/inference/SmallModelResolver.d.ts.map +1 -1
  247. package/dist/inference/SmallModelResolver.js +4 -0
  248. package/dist/inference/SmallModelResolver.js.map +1 -1
  249. package/dist/jobs/JobExecutor.d.ts +3 -1
  250. package/dist/jobs/JobExecutor.d.ts.map +1 -1
  251. package/dist/jobs/JobExecutor.js +46 -46
  252. package/dist/jobs/JobExecutor.js.map +1 -1
  253. package/dist/memory/CognitiveMemoryInitializer.d.ts +70 -0
  254. package/dist/memory/CognitiveMemoryInitializer.d.ts.map +1 -0
  255. package/dist/memory/CognitiveMemoryInitializer.js +97 -0
  256. package/dist/memory/CognitiveMemoryInitializer.js.map +1 -0
  257. package/dist/memory/MemorySystemInitializer.d.ts +23 -0
  258. package/dist/memory/MemorySystemInitializer.d.ts.map +1 -1
  259. package/dist/memory/MemorySystemInitializer.js +28 -5
  260. package/dist/memory/MemorySystemInitializer.js.map +1 -1
  261. package/dist/observability/usage-ledger.d.ts.map +1 -1
  262. package/dist/observability/usage-ledger.js +51 -19
  263. package/dist/observability/usage-ledger.js.map +1 -1
  264. package/dist/public/index.d.ts.map +1 -1
  265. package/dist/public/index.js +97 -133
  266. package/dist/public/index.js.map +1 -1
  267. package/dist/public/types.d.ts +38 -1
  268. package/dist/public/types.d.ts.map +1 -1
  269. package/dist/runtime/ToolApprovalHandler.d.ts +152 -0
  270. package/dist/runtime/ToolApprovalHandler.d.ts.map +1 -0
  271. package/dist/runtime/ToolApprovalHandler.js +268 -0
  272. package/dist/runtime/ToolApprovalHandler.js.map +1 -0
  273. package/dist/runtime/ToolStreamProcessor.d.ts +200 -0
  274. package/dist/runtime/ToolStreamProcessor.d.ts.map +1 -0
  275. package/dist/runtime/ToolStreamProcessor.js +409 -0
  276. package/dist/runtime/ToolStreamProcessor.js.map +1 -0
  277. package/dist/runtime/agentos-runtime.d.ts +9 -0
  278. package/dist/runtime/agentos-runtime.d.ts.map +1 -0
  279. package/dist/runtime/agentos-runtime.js +9 -0
  280. package/dist/runtime/agentos-runtime.js.map +1 -0
  281. package/dist/runtime/graph-runner.d.ts +14 -1
  282. package/dist/runtime/graph-runner.d.ts.map +1 -1
  283. package/dist/runtime/graph-runner.js +103 -8
  284. package/dist/runtime/graph-runner.js.map +1 -1
  285. package/dist/runtime/index.d.ts +3 -0
  286. package/dist/runtime/index.d.ts.map +1 -1
  287. package/dist/runtime/index.js +3 -0
  288. package/dist/runtime/index.js.map +1 -1
  289. package/dist/runtime/policy.js +1 -1
  290. package/dist/runtime/policy.js.map +1 -1
  291. package/dist/runtime/query-router-init.d.ts +145 -0
  292. package/dist/runtime/query-router-init.d.ts.map +1 -0
  293. package/dist/runtime/query-router-init.js +357 -0
  294. package/dist/runtime/query-router-init.js.map +1 -0
  295. package/dist/runtime/rag-state-persistence.d.ts +218 -0
  296. package/dist/runtime/rag-state-persistence.d.ts.map +1 -0
  297. package/dist/runtime/rag-state-persistence.js +280 -0
  298. package/dist/runtime/rag-state-persistence.js.map +1 -0
  299. package/dist/{cli/openai → runtime}/schema-on-demand.d.ts +2 -2
  300. package/dist/runtime/schema-on-demand.d.ts.map +1 -0
  301. package/dist/{cli/openai → runtime}/schema-on-demand.js +5 -5
  302. package/dist/runtime/schema-on-demand.js.map +1 -0
  303. package/dist/runtime/system-prompt-builder.d.ts.map +1 -1
  304. package/dist/runtime/system-prompt-builder.js +10 -1
  305. package/dist/runtime/system-prompt-builder.js.map +1 -1
  306. package/dist/runtime/tool-calling.d.ts +5 -185
  307. package/dist/runtime/tool-calling.d.ts.map +1 -1
  308. package/dist/runtime/tool-calling.js +44 -657
  309. package/dist/runtime/tool-calling.js.map +1 -1
  310. package/dist/runtime/unified-retriever-builder.d.ts +189 -0
  311. package/dist/runtime/unified-retriever-builder.d.ts.map +1 -0
  312. package/dist/runtime/unified-retriever-builder.js +334 -0
  313. package/dist/runtime/unified-retriever-builder.js.map +1 -0
  314. package/dist/security/DualLLMAuditor.d.ts +1 -1
  315. package/dist/security/DualLLMAuditor.d.ts.map +1 -1
  316. package/dist/security/NotificationManager.d.ts.map +1 -1
  317. package/dist/security/NotificationManager.js +46 -46
  318. package/dist/security/NotificationManager.js.map +1 -1
  319. package/dist/security/PreLLMClassifier.d.ts +1 -1
  320. package/dist/security/PreLLMClassifier.d.ts.map +1 -1
  321. package/dist/security/WunderlandSecurityPipeline.d.ts +1 -1
  322. package/dist/security/WunderlandSecurityPipeline.d.ts.map +1 -1
  323. package/dist/security/env-secrets.d.ts.map +1 -0
  324. package/dist/security/env-secrets.js.map +1 -0
  325. package/dist/security/types.d.ts +1 -1
  326. package/dist/security/types.d.ts.map +1 -1
  327. package/dist/security/types.js +1 -1
  328. package/dist/security/types.js.map +1 -1
  329. package/dist/social/NewsFeedIngester.d.ts +6 -6
  330. package/dist/social/NewsFeedIngester.js +6 -6
  331. package/dist/social/NewsroomAgency.d.ts +1 -1
  332. package/dist/social/NewsroomAgency.d.ts.map +1 -1
  333. package/dist/social/NewsroomAgency.js +1 -1
  334. package/dist/social/NewsroomAgency.js.map +1 -1
  335. package/dist/social/WonderlandNetwork.d.ts +1 -3
  336. package/dist/social/WonderlandNetwork.d.ts.map +1 -1
  337. package/dist/social/WonderlandNetwork.js +1 -5
  338. package/dist/social/WonderlandNetwork.js.map +1 -1
  339. package/dist/social/sources/HackerNewsFetcher.d.ts.map +1 -1
  340. package/dist/social/sources/HackerNewsFetcher.js +44 -1
  341. package/dist/social/sources/HackerNewsFetcher.js.map +1 -1
  342. package/dist/storage/MemoryAutoIngestPipeline.d.ts +26 -0
  343. package/dist/storage/MemoryAutoIngestPipeline.d.ts.map +1 -1
  344. package/dist/storage/MemoryAutoIngestPipeline.js +55 -25
  345. package/dist/storage/MemoryAutoIngestPipeline.js.map +1 -1
  346. package/package.json +6 -5
  347. package/presets/agents/ai-receptionist/agent.config.json +1 -0
  348. package/presets/agents/code-reviewer/agent.config.json +1 -0
  349. package/presets/agents/creative-writer/agent.config.json +4 -0
  350. package/presets/agents/customer-support/agent.config.json +1 -0
  351. package/presets/agents/data-analyst/agent.config.json +1 -0
  352. package/presets/agents/devops-assistant/agent.config.json +1 -0
  353. package/presets/agents/personal-assistant/agent.config.json +4 -0
  354. package/presets/agents/research-assistant/agent.config.json +4 -0
  355. package/presets/agents/security-auditor/agent.config.json +1 -0
  356. package/presets/missions/research-report.mission.yaml +90 -0
  357. package/dist/cli/commands/agents.d.ts.map +0 -1
  358. package/dist/cli/commands/agents.js.map +0 -1
  359. package/dist/cli/commands/auth-status.d.ts.map +0 -1
  360. package/dist/cli/commands/auth-status.js.map +0 -1
  361. package/dist/cli/commands/image.d.ts.map +0 -1
  362. package/dist/cli/commands/image.js.map +0 -1
  363. package/dist/cli/commands/login.d.ts.map +0 -1
  364. package/dist/cli/commands/login.js.map +0 -1
  365. package/dist/cli/commands/logout.d.ts.map +0 -1
  366. package/dist/cli/commands/logout.js.map +0 -1
  367. package/dist/cli/commands/logs.d.ts.map +0 -1
  368. package/dist/cli/commands/logs.js.map +0 -1
  369. package/dist/cli/commands/monitor.d.ts.map +0 -1
  370. package/dist/cli/commands/monitor.js.map +0 -1
  371. package/dist/cli/commands/ps.d.ts.map +0 -1
  372. package/dist/cli/commands/ps.js.map +0 -1
  373. package/dist/cli/commands/serve.d.ts.map +0 -1
  374. package/dist/cli/commands/serve.js.map +0 -1
  375. package/dist/cli/commands/stop.d.ts.map +0 -1
  376. package/dist/cli/commands/stop.js.map +0 -1
  377. package/dist/cli/commands/structured.d.ts.map +0 -1
  378. package/dist/cli/commands/structured.js.map +0 -1
  379. package/dist/cli/commands/vision.d.ts.map +0 -1
  380. package/dist/cli/commands/vision.js.map +0 -1
  381. package/dist/cli/config/workspace.d.ts +0 -6
  382. package/dist/cli/config/workspace.d.ts.map +0 -1
  383. package/dist/cli/config/workspace.js +0 -6
  384. package/dist/cli/config/workspace.js.map +0 -1
  385. package/dist/cli/observability/otel.d.ts +0 -6
  386. package/dist/cli/observability/otel.d.ts.map +0 -1
  387. package/dist/cli/observability/otel.js +0 -6
  388. package/dist/cli/observability/otel.js.map +0 -1
  389. package/dist/cli/openai/schema-on-demand.d.ts.map +0 -1
  390. package/dist/cli/openai/schema-on-demand.js.map +0 -1
  391. package/dist/cli/openai/tool-calling.d.ts +0 -6
  392. package/dist/cli/openai/tool-calling.d.ts.map +0 -1
  393. package/dist/cli/openai/tool-calling.js +0 -6
  394. package/dist/cli/openai/tool-calling.js.map +0 -1
  395. package/dist/cli/security/env-secrets.d.ts.map +0 -1
  396. package/dist/cli/security/env-secrets.js.map +0 -1
  397. package/dist/cli/security/runtime-policy.d.ts +0 -6
  398. package/dist/cli/security/runtime-policy.d.ts.map +0 -1
  399. package/dist/cli/security/runtime-policy.js +0 -6
  400. package/dist/cli/security/runtime-policy.js.map +0 -1
  401. /package/dist/{cli/security → security}/env-secrets.d.ts +0 -0
  402. /package/dist/{cli/security → security}/env-secrets.js +0 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025-2026 Manic Agency LLC
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -26,7 +26,7 @@
26
26
  <a href="https://rabbithole.inc">Rabbit Hole</a> &middot;
27
27
  <a href="https://github.com/jddunn/wunderland">GitHub</a> &middot;
28
28
  <a href="https://discord.gg/KxF9b6HY6h">Discord</a> &middot;
29
- <a href="https://t.me/rabbitholewld">Telegram</a>
29
+ <a href="https://t.me/rabbitholewun">Telegram</a>
30
30
  </p>
31
31
 
32
32
  ---
@@ -76,6 +76,7 @@
76
76
  - **Folder-level permissions** -- Fine-grained access control per folder with glob pattern support
77
77
  - **Tool registry** -- Loads curated AgentOS tools via `@framers/agentos-extensions-registry`
78
78
  - **Memory hooks** -- Optional `memory_read` tool with pluggable storage (SQL, vector, graph)
79
+ - **Cognitive mechanisms** -- 8 optional neuroscience-grounded memory mechanisms (reconsolidation, RIF, involuntary recall, FOK, temporal gist, schema encoding, source confidence decay, emotion regulation) with HEXACO personality modulation. Enabled via `memory.cognitiveMechanisms` in agent config.
79
80
  - **Immutability** -- Seal agent configuration after setup; rotate operational secrets without changing the sealed spec
80
81
  - **Streamlined library API** -- `createWunderland()` + sessions from the root import, plus `app.runGraph(...)` / `app.streamGraph(...)` for orchestrated execution
81
82
  - **RAG memory** -- Multimodal retrieval-augmented generation with vector, graph, and hybrid search
@@ -662,8 +663,8 @@ The platform treasury reinvests at least **30%** of its funds back into platform
662
663
  | Rabbit Hole | [rabbithole.inc](https://rabbithole.inc) |
663
664
  | GitHub | [jddunn/wunderland](https://github.com/jddunn/wunderland) |
664
665
  | Discord | [discord.gg/KxF9b6HY6h](https://discord.gg/KxF9b6HY6h) |
665
- | Telegram | [@rabbitholewld](https://t.me/rabbitholewld) |
666
- | X/Twitter | [@rabbitholewld](https://x.com/rabbitholewld) |
666
+ | Telegram | [@rabbitholewun](https://t.me/rabbitholewun) |
667
+ | X/Twitter | [@rabbitholewun](https://x.com/rabbitholewun) |
667
668
 
668
669
  ---
669
670
 
@@ -27,7 +27,8 @@ export * from '../workflows/index.js';
27
27
  export * from '../voice/call-client.js';
28
28
  export * from '../structured/index.js';
29
29
  export * from '../knowledge/index.js';
30
- export * from '../planning/index.js';
30
+ export { PlanningEngine } from '../planning/index.js';
31
+ export type { IPlanningEngine, ExecutionPlan, PlanStep, PlanStepResult, PlanStepStatus, PlanAction, PlanActionType, PlanningOptions, PlanningContext, PlanningStrategy, TaskDecomposition, SubTask, ExecutionFeedback, AutonomousLoopOptions, LoopProgress, PlanValidationResult, ExecutionState, ExecutionSummary, PlanMetadata, } from '../planning/index.js';
31
32
  export * from '../evaluation/index.js';
32
33
  export * from '../provenance/index.js';
33
34
  export * from '../marketplace/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/advanced/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,cAAc,kBAAkB,CAAC;AAGjC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EACL,gBAAgB,EAChB,KAAK,sBAAsB,GAC5B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1F,OAAO,EACL,WAAW,EACX,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,cAAc,GACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,IAAI,sBAAsB,EAC/C,iBAAiB,EACjB,yBAAyB,EACzB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,GACnB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,gBAAgB,EAChB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,GACzB,MAAM,iCAAiC,CAAC;AAGzC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,qBAAqB,CAAC;AAGpC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,wBAAwB,CAAC;AAGvC,OAAO,EAAE,oBAAoB,EAAE,KAAK,sBAAsB,EAAE,KAAK,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAGvI,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC1G,OAAO,EACL,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,KAAK,kBAAkB,EACxF,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,cAAc,GACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACjI,OAAO,EAAE,oBAAoB,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACjI,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE/E,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC/G,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC7G,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACzF,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAG/F,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,cAAc,EACd,KAAK,eAAe,GACrB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,0BAA0B,EAC1B,gCAAgC,EAChC,iCAAiC,GAClC,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAC;AAE1F,OAAO,EAAE,0BAA0B,EAAE,MAAM,gDAAgD,CAAC;AAG5F,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAGxE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAK/D,eAAO,MAAM,OAAO,QAAc,CAAC;AACnC,eAAO,MAAM,YAAY,QAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/advanced/index.ts"],"names":[],"mappings":"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"}
@@ -42,7 +42,7 @@ export * from '../structured/index.js';
42
42
  // Knowledge graph exports
43
43
  export * from '../knowledge/index.js';
44
44
  // Planning engine exports
45
- export * from '../planning/index.js';
45
+ export { PlanningEngine } from '../planning/index.js';
46
46
  // Evaluation exports
47
47
  export * from '../evaluation/index.js';
48
48
  // Provenance & audit trail exports
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/advanced/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/advanced/index.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,12 @@
9
9
  *
10
10
  * It intentionally does NOT start an HTTP server. Use `wunderland start` when you
11
11
  * want the full server + HITL UI + channel runtime.
12
+ *
13
+ * Internally delegates to {@link AgentBootstrap.create} for the 14-step
14
+ * initialization sequence, then wraps the bootstrapped agent in the
15
+ * session-based {@link WunderlandChatRuntime} API.
12
16
  */
13
- import { type NormalizedRuntimePolicy } from '../runtime/policy.js';
17
+ import type { NormalizedRuntimePolicy } from '../runtime/policy.js';
14
18
  import { type ToolInstance } from '../runtime/tool-calling.js';
15
19
  import type { WunderlandAgentConfig, WunderlandLLMConfig, WunderlandWorkspace } from './types.js';
16
20
  import { AgentMemory } from '@framers/agentos';
@@ -33,6 +37,13 @@ export type WunderlandChatRuntime = {
33
37
  onToolCall?: (tool: ToolInstance, args: Record<string, unknown>) => void;
34
38
  }) => Promise<string>;
35
39
  };
40
+ /**
41
+ * Create a high-level in-process chat runtime.
42
+ *
43
+ * Delegates the 14-step agent initialization to {@link AgentBootstrap.create},
44
+ * then wraps the result in a session-based API with `getMessages()` and
45
+ * `runTurn()`.
46
+ */
36
47
  export declare function createWunderlandChatRuntime(opts: {
37
48
  agentConfig?: WunderlandAgentConfig;
38
49
  llm: WunderlandLLMConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"chat-runtime.d.ts","sourceRoot":"","sources":["../../src/api/chat-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAyBnF,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAIvE,KAAK,UAAU,GAAG;IAChB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,mEAAmE;IACnE,WAAW,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpE,+DAA+D;IAC/D,OAAO,EAAE,CACP,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;QACL,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;KAC1E,KACE,OAAO,CAAC,MAAM,CAAC,CAAC;CACtB,CAAC;AAkWF,wBAAsB,2BAA2B,CAAC,IAAI,EAAE;IACtD,WAAW,CAAC,EAAE,qBAAqB,CAAC;IACpC,GAAG,EAAE,mBAAmB,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,GAAG,uBAAuB,CAAC;IAC/C;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxF,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAmOjC"}
1
+ {"version":3,"file":"chat-runtime.d.ts","sourceRoot":"","sources":["../../src/api/chat-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAEnF,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAIvE,KAAK,UAAU,GAAG;IAChB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,mEAAmE;IACnE,WAAW,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpE,+DAA+D;IAC/D,OAAO,EAAE,CACP,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;QACL,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;KAC1E,KACE,OAAO,CAAC,MAAM,CAAC,CAAC;CACtB,CAAC;AAyBF;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAAC,IAAI,EAAE;IACtD,WAAW,CAAC,EAAE,qBAAqB,CAAC;IACpC,GAAG,EAAE,mBAAmB,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,GAAG,uBAAuB,CAAC;IAC/C;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxF,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAyFjC"}
@@ -9,28 +9,20 @@
9
9
  *
10
10
  * It intentionally does NOT start an HTTP server. Use `wunderland start` when you
11
11
  * want the full server + HITL UI + channel runtime.
12
+ *
13
+ * Internally delegates to {@link AgentBootstrap.create} for the 14-step
14
+ * initialization sequence, then wraps the bootstrapped agent in the
15
+ * session-based {@link WunderlandChatRuntime} API.
12
16
  */
13
- import { filterToolMapByPolicy, getPermissionsForSet, normalizeRuntimePolicy, } from '../runtime/policy.js';
14
- import { resolveDefaultSkillsDirs } from '../skills/index.js';
15
- import { createEnvSecretResolver } from '../cli/security/env-secrets.js';
16
- import { createSchemaOnDemandTools } from '../cli/openai/schema-on-demand.js';
17
17
  import { runToolCallingTurn } from '../runtime/tool-calling.js';
18
- import { resolveStrictToolNames } from '../runtime/tool-function-names.js';
19
- import { resolveAgentWorkspaceBaseDir, sanitizeAgentWorkspaceId } from '../runtime/workspace.js';
20
- import { resolveAgentDisplayName } from '../runtime/agent-identity.js';
21
- import { buildAgenticSystemPrompt } from '../runtime/system-prompt-builder.js';
22
18
  import { buildOllamaRuntimeOptions } from '../runtime/ollama-options.js';
23
- import { createWunderlandSeed, DEFAULT_INFERENCE_HIERARCHY, DEFAULT_SECURITY_PROFILE, DEFAULT_STEP_UP_AUTH_CONFIG, } from '../core/index.js';
24
- import { resolveSkillContext } from '../core/resolve-skill-context.js';
25
- import { buildDiscoveryOptionsFromAgentConfig, resolveEffectiveAgentConfig, } from '../config/effective-agent-config.js';
26
- import { resolveExtensionsByNames } from '../core/PresetExtensionResolver.js';
27
- import { WunderlandDiscoveryManager } from '../discovery/index.js';
28
- import { createConfiguredRagTools } from '../rag/runtime-tools.js';
29
- import { mergeExtensionOverrides } from '../cli/extensions/settings.js';
30
- import { createSpeechExtensionEnvOverrides, getDefaultVoiceExtensions, } from '../voice/speech-catalog.js';
31
19
  import { AgentMemory } from '@framers/agentos';
32
- import { createMemorySystem } from '../memory/index.js';
33
20
  import { injectMemoryContext } from '../memory/index.js';
21
+ import { AgentBootstrap } from '../bootstrap/index.js';
22
+ /**
23
+ * Resolve an {@link AgentMemory} or {@link ICognitiveMemoryManager} input
24
+ * into a canonical {@link AgentMemory} instance (or undefined).
25
+ */
34
26
  function resolveAgentMemory(input) {
35
27
  if (!input)
36
28
  return undefined;
@@ -44,417 +36,32 @@ function resolveAgentMemory(input) {
44
36
  }
45
37
  return AgentMemory.wrap(input);
46
38
  }
47
- function consoleLogger() {
48
- return {
49
- debug: (msg, meta) => console.debug(msg, meta ?? ''),
50
- info: (msg, meta) => console.log(msg, meta ?? ''),
51
- warn: (msg, meta) => console.warn(msg, meta ?? ''),
52
- error: (msg, meta) => console.error(msg, meta ?? ''),
53
- };
54
- }
55
- function toToolInstance(tool) {
56
- return {
57
- name: tool.name,
58
- description: tool.description,
59
- inputSchema: tool.inputSchema,
60
- hasSideEffects: tool.hasSideEffects === true,
61
- category: typeof tool.category === 'string' && tool.category.trim() ? tool.category : 'productivity',
62
- requiredCapabilities: tool.requiredCapabilities,
63
- execute: tool.execute,
64
- };
65
- }
66
- function inferTurnApprovalMode(cfg) {
67
- const raw = cfg?.hitl && typeof cfg.hitl === 'object' && !Array.isArray(cfg.hitl)
68
- ? cfg.hitl.turnApprovalMode ?? cfg.hitl.turnApproval
69
- : undefined;
70
- const v = typeof raw === 'string' ? raw.trim().toLowerCase() : '';
71
- if (v === 'after-each-turn')
72
- return 'after-each-turn';
73
- if (v === 'after-each-round')
74
- return 'after-each-round';
75
- return 'off';
76
- }
77
- function finiteNumber(value, fallback) {
78
- return typeof value === 'number' && Number.isFinite(value) ? value : fallback;
79
- }
80
- function buildSeedFromAgentConfig(cfg, workspaceSeedId) {
81
- const seedId = typeof cfg.seedId === 'string' && cfg.seedId.trim() ? cfg.seedId.trim() : workspaceSeedId;
82
- const displayName = resolveAgentDisplayName({
83
- displayName: cfg.displayName,
84
- agentName: cfg.agentName,
85
- seedId,
86
- fallback: seedId,
87
- });
88
- const bio = typeof cfg.bio === 'string' && cfg.bio.trim() ? cfg.bio.trim() : 'Autonomous Wunderbot';
89
- const p = cfg.personality || {};
90
- return createWunderlandSeed({
91
- seedId,
92
- name: displayName,
93
- description: bio,
94
- hexacoTraits: {
95
- honesty_humility: finiteNumber(p.honesty, 0.8),
96
- emotionality: finiteNumber(p.emotionality, 0.5),
97
- extraversion: finiteNumber(p.extraversion, 0.6),
98
- agreeableness: finiteNumber(p.agreeableness, 0.7),
99
- conscientiousness: finiteNumber(p.conscientiousness, 0.8),
100
- openness: finiteNumber(p.openness, 0.7),
101
- },
102
- baseSystemPrompt: typeof cfg.systemPrompt === 'string' ? cfg.systemPrompt : undefined,
103
- securityProfile: DEFAULT_SECURITY_PROFILE,
104
- inferenceHierarchy: DEFAULT_INFERENCE_HIERARCHY,
105
- stepUpAuthConfig: DEFAULT_STEP_UP_AUTH_CONFIG,
106
- });
107
- }
108
- async function loadToolMapFromAgentConfig(opts) {
109
- const { agentConfig: cfg, policy, workspace, workingDirectory, dangerouslySkipCommandSafety, logger } = opts;
110
- const permissions = getPermissionsForSet(policy.permissionSet);
111
- const lazyTools = cfg?.lazyTools === true;
112
- const toolMap = new Map();
113
- const preloadedPackages = [];
114
- let schemaOnDemandSecrets;
115
- let schemaOnDemandGetSecret;
116
- let schemaOnDemandOptions;
117
- if (!lazyTools) {
118
- const extensionsFromConfig = cfg.extensions;
119
- let toolExtensions = [];
120
- let voiceExtensions = [];
121
- let productivityExtensions = [];
122
- if (extensionsFromConfig) {
123
- toolExtensions = extensionsFromConfig.tools || [];
124
- voiceExtensions = extensionsFromConfig.voice || [];
125
- productivityExtensions = extensionsFromConfig.productivity || [];
126
- }
127
- else {
128
- toolExtensions = ['cli-executor', 'web-search', 'web-browser', 'giphy', 'image-search', 'news-search'];
129
- voiceExtensions = getDefaultVoiceExtensions();
130
- productivityExtensions = [];
131
- }
132
- // Auto-include GitHub extension when a PAT is available
133
- if (!toolExtensions.includes('github')) {
134
- const ghToken = (process.env['GITHUB_TOKEN'] || process.env['GH_TOKEN'] || '').trim();
135
- if (ghToken)
136
- toolExtensions.push('github');
137
- }
138
- // Auto-include Telegram extension when a bot token is available
139
- if (!toolExtensions.includes('telegram') && process.env['TELEGRAM_BOT_TOKEN']) {
140
- const tgToken = process.env['TELEGRAM_BOT_TOKEN'].trim();
141
- if (/^\d+:[A-Za-z0-9_-]{35,}$/.test(tgToken))
142
- toolExtensions.push('telegram');
143
- }
144
- try {
145
- const configOverrides = cfg?.extensionOverrides && typeof cfg.extensionOverrides === 'object' && !Array.isArray(cfg.extensionOverrides)
146
- ? cfg.extensionOverrides
147
- : {};
148
- // Build filesystem roots: agent workspace + user's home directory + cwd.
149
- const homeDir = (await import('node:os')).homedir();
150
- const agentWorkspaceId = sanitizeAgentWorkspaceId(workspace.agentId);
151
- const workspaceDir = (await import('node:path')).resolve(workspace.baseDir, agentWorkspaceId);
152
- const cwd = process.cwd();
153
- const readRoots = [workspaceDir, homeDir, cwd, '/tmp'];
154
- const writeRoots = [workspaceDir, homeDir, cwd, '/tmp'];
155
- const runtimeOverrides = {
156
- 'cli-executor': {
157
- options: {
158
- workingDirectory: cwd,
159
- filesystem: {
160
- allowRead: permissions.filesystem.read,
161
- allowWrite: permissions.filesystem.write,
162
- readRoots: permissions.filesystem.read ? readRoots : undefined,
163
- writeRoots: permissions.filesystem.write ? writeRoots : undefined,
164
- },
165
- agentWorkspace: {
166
- agentId: agentWorkspaceId,
167
- baseDir: workspace.baseDir,
168
- createIfMissing: true,
169
- subdirs: ['assets', 'exports', 'tmp'],
170
- },
171
- dangerouslySkipSecurityChecks: dangerouslySkipCommandSafety,
172
- },
173
- },
174
- 'web-search': {
175
- options: {
176
- serperApiKey: process.env['SERPER_API_KEY'],
177
- serpApiKey: process.env['SERPAPI_API_KEY'],
178
- braveApiKey: process.env['BRAVE_API_KEY'],
179
- },
180
- },
181
- 'web-browser': {
182
- options: {
183
- headless: true,
184
- executablePath: process.env['PUPPETEER_EXECUTABLE_PATH'] ||
185
- process.env['CHROME_EXECUTABLE_PATH'] ||
186
- process.env['CHROME_PATH'],
187
- },
188
- },
189
- giphy: { options: { giphyApiKey: process.env['GIPHY_API_KEY'] } },
190
- 'image-search': {
191
- options: {
192
- pexelsApiKey: process.env['PEXELS_API_KEY'],
193
- unsplashApiKey: process.env['UNSPLASH_ACCESS_KEY'],
194
- pixabayApiKey: process.env['PIXABAY_API_KEY'],
195
- },
196
- },
197
- ...createSpeechExtensionEnvOverrides(),
198
- 'news-search': { options: { newsApiKey: process.env['NEWSAPI_API_KEY'] } },
199
- // Telegram: send-only mode in server context to avoid 409 Conflict polling errors
200
- 'telegram': { options: { sendOnly: true } },
201
- 'channel-telegram': { options: { sendOnly: true } },
202
- };
203
- function mergeOverride(base, extra) {
204
- const out = { ...(base || {}), ...(extra || {}) };
205
- if ((base && base.options) || (extra && extra.options)) {
206
- out.options = { ...(base?.options || {}), ...(extra?.options || {}) };
207
- }
208
- return out;
209
- }
210
- const mergedOverrides = mergeExtensionOverrides(configOverrides, {});
211
- for (const [name, override] of Object.entries(runtimeOverrides)) {
212
- mergedOverrides[name] = mergeOverride(mergedOverrides[name], override);
213
- }
214
- const cfgSecrets = cfg?.secrets && typeof cfg.secrets === 'object' && !Array.isArray(cfg.secrets)
215
- ? cfg.secrets
216
- : undefined;
217
- const getSecret = createEnvSecretResolver({ configSecrets: cfgSecrets });
218
- const secrets = new Proxy({}, {
219
- get: (_target, prop) => (typeof prop === 'string' ? getSecret(prop) : undefined),
220
- });
221
- schemaOnDemandSecrets = cfgSecrets;
222
- schemaOnDemandGetSecret = getSecret;
223
- schemaOnDemandOptions = Object.fromEntries(Object.entries(mergedOverrides).map(([name, value]) => [
224
- name,
225
- value && typeof value === 'object' && !Array.isArray(value)
226
- ? value
227
- : {},
228
- ]));
229
- const channelsFromConfig = Array.isArray(cfg?.channels)
230
- ? cfg.channels
231
- : Array.isArray(cfg?.suggestedChannels)
232
- ? cfg.suggestedChannels
233
- : [];
234
- const channelsToLoad = Array.from(new Set(channelsFromConfig.map((v) => String(v ?? '').trim()).filter((v) => v.length > 0)));
235
- const CLI_REQUIRED_CHANNELS = new Set(['signal', 'zalouser']);
236
- const allowedChannels = permissions.network.externalApis === true
237
- ? channelsToLoad.filter((platform) => !CLI_REQUIRED_CHANNELS.has(platform) || permissions.system.cliExecution === true)
238
- : [];
239
- const resolved = await resolveExtensionsByNames(toolExtensions, voiceExtensions, productivityExtensions, mergedOverrides, { secrets: secrets, channels: allowedChannels.length > 0 ? allowedChannels : 'none' });
240
- const packs = [];
241
- for (const packEntry of resolved.manifest.packs) {
242
- try {
243
- if (packEntry?.enabled === false)
244
- continue;
245
- if (typeof packEntry?.factory === 'function') {
246
- const pack = await packEntry.factory();
247
- if (pack) {
248
- packs.push(pack);
249
- if (typeof pack?.name === 'string')
250
- preloadedPackages.push(pack.name);
251
- }
252
- continue;
253
- }
254
- let packageName;
255
- if ('package' in packEntry)
256
- packageName = packEntry.package;
257
- else if ('module' in packEntry)
258
- packageName = packEntry.module;
259
- if (!packageName)
260
- continue;
261
- const extModule = await import(packageName);
262
- const factory = extModule.createExtensionPack ?? extModule.default?.createExtensionPack ?? extModule.default;
263
- if (typeof factory !== 'function')
264
- continue;
265
- const options = packEntry.options || {};
266
- const pack = await factory({ options, logger: console, getSecret });
267
- packs.push(pack);
268
- if (typeof pack?.name === 'string')
269
- preloadedPackages.push(pack.name);
270
- }
271
- catch (err) {
272
- logger.warn?.('[wunderland/api] Failed to load extension pack', {
273
- error: err instanceof Error ? err.message : String(err),
274
- });
275
- }
276
- }
277
- await Promise.all(packs
278
- .map((p) => typeof p?.onActivate === 'function' ? p.onActivate({ logger: console, getSecret }) : null)
279
- .filter(Boolean));
280
- const tools = packs
281
- .flatMap((p) => (p?.descriptors || []).filter((d) => d?.kind === 'tool').map((d) => d.payload))
282
- .filter(Boolean);
283
- for (const tool of tools) {
284
- if (!tool?.name)
285
- continue;
286
- toolMap.set(tool.name, tool);
287
- }
288
- }
289
- catch (err) {
290
- logger.warn?.('[wunderland/api] Extension loading failed (continuing with meta tools only)', {
291
- error: err instanceof Error ? err.message : String(err),
292
- });
293
- }
294
- }
295
- // Schema-on-demand meta tools are always present (even in lazy-tools mode).
296
- for (const metaTool of createSchemaOnDemandTools({
297
- toolMap,
298
- runtimeDefaults: {
299
- workingDirectory,
300
- headlessBrowser: true,
301
- dangerouslySkipCommandSafety,
302
- agentWorkspace: { agentId: sanitizeAgentWorkspaceId(workspace.agentId), baseDir: workspace.baseDir },
303
- },
304
- initialEnabledPackages: preloadedPackages,
305
- secrets: schemaOnDemandSecrets,
306
- getSecret: schemaOnDemandGetSecret,
307
- defaultExtensionOptions: schemaOnDemandOptions,
308
- allowPackages: true,
309
- logger: console,
310
- onToolsChanged: opts.onSchemaToolsChanged,
311
- })) {
312
- toolMap.set(metaTool.name, metaTool);
313
- }
314
- for (const ragTool of createConfiguredRagTools(cfg)) {
315
- if (!ragTool?.name)
316
- continue;
317
- toolMap.set(ragTool.name, toToolInstance(ragTool));
318
- }
319
- // Enforce policy (tool access profile + permission set).
320
- const filtered = filterToolMapByPolicy({ toolMap, toolAccessProfile: policy.toolAccessProfile, permissions });
321
- return { toolMap: filtered.toolMap, preloadedPackages };
322
- }
39
+ /**
40
+ * Create a high-level in-process chat runtime.
41
+ *
42
+ * Delegates the 14-step agent initialization to {@link AgentBootstrap.create},
43
+ * then wraps the result in a session-based API with `getMessages()` and
44
+ * `runTurn()`.
45
+ */
323
46
  export async function createWunderlandChatRuntime(opts) {
324
47
  const memory = resolveAgentMemory(opts.memory);
325
- const baseLogger = consoleLogger();
326
- const logger = {
327
- debug: opts.logger?.debug ?? baseLogger.debug,
328
- info: opts.logger?.info ?? baseLogger.info,
329
- warn: opts.logger?.warn ?? baseLogger.warn,
330
- error: opts.logger?.error ?? baseLogger.error,
331
- };
332
48
  const workingDirectory = opts.workingDirectory ?? process.cwd();
333
- const { agentConfig } = await resolveEffectiveAgentConfig({
49
+ // ── Delegate bootstrap to shared AgentBootstrap ───────────────────────
50
+ const agent = await AgentBootstrap.create({
334
51
  agentConfig: opts.agentConfig ?? {},
52
+ providerId: opts.llm.providerId,
53
+ apiKey: opts.llm.apiKey,
54
+ baseUrl: opts.llm.baseUrl,
55
+ mode: 'library',
56
+ autoApproveToolCalls: opts.autoApproveToolCalls,
57
+ workspaceId: opts.workspace?.agentId,
58
+ workspaceBaseDir: opts.workspace?.baseDir,
335
59
  workingDirectory,
336
- logger,
337
- });
338
- const policy = normalizeRuntimePolicy(agentConfig);
339
- const turnApprovalMode = inferTurnApprovalMode(agentConfig);
340
- const strictToolNames = resolveStrictToolNames(agentConfig?.toolCalling?.strictToolNames);
341
- const seedIdForWorkspace = typeof agentConfig.seedId === 'string' && agentConfig.seedId.trim()
342
- ? agentConfig.seedId.trim()
343
- : `seed_${Date.now()}`;
344
- const workspace = {
345
- agentId: sanitizeAgentWorkspaceId(opts.workspace?.agentId ?? seedIdForWorkspace),
346
- baseDir: opts.workspace?.baseDir ?? resolveAgentWorkspaceBaseDir(),
347
- };
348
- const seed = buildSeedFromAgentConfig(agentConfig, seedIdForWorkspace);
349
- const activePersonaId = typeof agentConfig.selectedPersonaId === 'string' && agentConfig.selectedPersonaId.trim()
350
- ? agentConfig.selectedPersonaId.trim()
351
- : seed.seedId;
352
- const dangerouslySkipCommandSafety = false;
353
- // ── Content Security Pipeline (optional) ──────────────────────────────────
354
- // Initializes the WunderlandSecurityPipeline singleton for content-level
355
- // guardrails. Fail-safe: if creation fails, the runtime continues without them.
356
- try {
357
- const { initializeSecurityPipeline } = await import('../runtime/tool-helpers.js');
358
- await initializeSecurityPipeline({
359
- securityTier: policy.securityTier,
360
- guardrailPackOverrides: policy.guardrailPackOverrides,
361
- disableGuardrailPacks: policy.disableGuardrailPacks,
362
- enableOnlyPacks: policy.enableOnlyGuardrailPacks,
363
- seedId: seedIdForWorkspace,
364
- });
365
- }
366
- catch {
367
- // Non-fatal — content guardrails not available.
368
- logger.warn?.('[wunderland/api] Security pipeline initialization failed (continuing without content guardrails)');
369
- }
370
- let discoveryManager = null;
371
- let liveToolMap = null;
372
- const { toolMap } = await loadToolMapFromAgentConfig({
373
- agentConfig,
374
- policy,
375
- workspace,
376
- workingDirectory,
377
- dangerouslySkipCommandSafety,
378
- logger,
379
- onSchemaToolsChanged: () => {
380
- if (!discoveryManager || !liveToolMap)
381
- return;
382
- discoveryManager.reindex?.({ toolMap: liveToolMap }).catch(() => { });
383
- },
60
+ logger: opts.logger,
384
61
  });
385
- liveToolMap = toolMap;
386
- // ── Memory Retrieval System ───────────────────────────────────────────
387
- let memorySystem = null;
388
- if (agentConfig.memory?.enabled !== false) {
389
- try {
390
- const { AgentStorageManager, resolveAgentStorageConfig } = await import('../storage/index.js');
391
- const storageConfig = resolveAgentStorageConfig(seedIdForWorkspace, agentConfig.storage);
392
- const storageMgr = new AgentStorageManager(storageConfig);
393
- await storageMgr.initialize();
394
- memorySystem = await createMemorySystem({
395
- vectorStore: storageMgr.getVectorStore(),
396
- traits: (agentConfig.personality ?? {}),
397
- llm: { providerId: opts.llm.providerId, apiKey: opts.llm.apiKey, baseUrl: opts.llm.baseUrl },
398
- ollama: agentConfig.ollama,
399
- retrievalBudgetTokens: agentConfig.memory?.retrievalBudgetTokens ?? 4000,
400
- agentId: seedIdForWorkspace,
401
- });
402
- }
403
- catch (err) {
404
- logger.warn?.('[wunderland/api] Memory system init failed (continuing without retrieval)', {
405
- error: err instanceof Error ? err.message : String(err),
406
- });
407
- }
408
- }
409
- let skillsPrompt = '';
410
- const resolvedSkills = await resolveSkillContext({
411
- filesystemDirs: resolveDefaultSkillsDirs({ cwd: workingDirectory }),
412
- curatedSkills: Array.isArray(agentConfig.skills) && agentConfig.skills.length > 0
413
- ? agentConfig.skills
414
- : undefined,
415
- platform: process.platform,
416
- logger,
417
- warningPrefix: '[wunderland/api]',
418
- });
419
- skillsPrompt = resolvedSkills.skillsPrompt;
420
- const skillEntries = resolvedSkills.skillEntries;
421
- discoveryManager = new WunderlandDiscoveryManager(buildDiscoveryOptionsFromAgentConfig(agentConfig));
422
- try {
423
- await discoveryManager.initialize({
424
- toolMap,
425
- skillEntries: skillEntries.length > 0 ? skillEntries : undefined,
426
- llmConfig: { providerId: opts.llm.providerId, apiKey: opts.llm.apiKey, baseUrl: opts.llm.baseUrl },
427
- });
428
- const metaTool = discoveryManager.getMetaTool();
429
- if (metaTool) {
430
- toolMap.set(metaTool.name, toToolInstance(metaTool));
431
- }
432
- }
433
- catch (error) {
434
- logger.warn?.('[wunderland/api] Discovery initialization failed (continuing without)', {
435
- error: error instanceof Error ? error.message : String(error),
436
- });
437
- }
62
+ const { policy, toolMap, toolContext, systemPrompt, agentConfig, strictToolNames } = agent;
438
63
  const sessions = new Map();
439
64
  const autoApprove = opts.autoApproveToolCalls === true || policy.executionMode === 'autonomous';
440
- // Detect authenticated integrations
441
- const authenticatedIntegrations = [];
442
- if (toolMap.has('github_search') || toolMap.has('github_issue_list') || process.env['GITHUB_TOKEN'] || process.env['GH_TOKEN']) {
443
- authenticatedIntegrations.push('github');
444
- }
445
- if (toolMap.has('telegram_send_message') || process.env['TELEGRAM_BOT_TOKEN']) {
446
- authenticatedIntegrations.push('telegram');
447
- }
448
- const systemPrompt = buildAgenticSystemPrompt({
449
- seed,
450
- policy,
451
- mode: 'library',
452
- lazyTools: agentConfig.lazyTools === true,
453
- autoApproveToolCalls: autoApprove,
454
- skillsPrompt: skillsPrompt || undefined,
455
- turnApprovalMode,
456
- authenticatedIntegrations: authenticatedIntegrations.length > 0 ? authenticatedIntegrations : undefined,
457
- });
458
65
  if (!autoApprove && typeof opts.askPermission !== 'function') {
459
66
  throw new Error('createWunderlandChatRuntime: askPermission is required unless autoApproveToolCalls=true or executionMode="autonomous".');
460
67
  }
@@ -463,20 +70,6 @@ export async function createWunderlandChatRuntime(opts) {
463
70
  return true;
464
71
  return opts.askPermission(tool, args);
465
72
  };
466
- const toolContext = {
467
- agentId: workspace.agentId,
468
- personaId: activePersonaId,
469
- securityTier: policy.securityTier,
470
- permissionSet: policy.permissionSet,
471
- toolAccessProfile: policy.toolAccessProfile,
472
- executionMode: policy.executionMode,
473
- wrapToolOutputs: policy.wrapToolOutputs,
474
- strictToolNames,
475
- ...(policy.folderPermissions ? { folderPermissions: policy.folderPermissions } : null),
476
- turnApprovalMode,
477
- agentWorkspace: { agentId: workspace.agentId, baseDir: workspace.baseDir },
478
- workingDirectory,
479
- };
480
73
  return {
481
74
  policy,
482
75
  toolMap,
@@ -498,8 +91,8 @@ export async function createWunderlandChatRuntime(opts) {
498
91
  memory.observe('user', userContent).catch(() => { });
499
92
  }
500
93
  // Retrieve and inject memory context
501
- if (memorySystem) {
502
- await injectMemoryContext(history, memorySystem, userContent).catch(() => { });
94
+ if (agent.memorySystem) {
95
+ await injectMemoryContext(history, agent.memorySystem, userContent).catch(() => { });
503
96
  }
504
97
  const reply = await runToolCallingTurn({
505
98
  providerId: opts.llm.providerId,