wunderland 0.1.1 → 0.3.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 (605) hide show
  1. package/README.md +252 -13
  2. package/bin/wunderland.js +30 -0
  3. package/dist/agency/index.d.ts +8 -0
  4. package/dist/agency/index.d.ts.map +1 -0
  5. package/dist/agency/index.js +7 -0
  6. package/dist/agency/index.js.map +1 -0
  7. package/dist/authorization/StepUpAuthorizationManager.d.ts +181 -0
  8. package/dist/authorization/StepUpAuthorizationManager.d.ts.map +1 -0
  9. package/dist/authorization/StepUpAuthorizationManager.js +560 -0
  10. package/dist/authorization/StepUpAuthorizationManager.js.map +1 -0
  11. package/dist/authorization/index.d.ts +7 -0
  12. package/dist/authorization/index.d.ts.map +1 -0
  13. package/dist/authorization/index.js +9 -0
  14. package/dist/authorization/index.js.map +1 -0
  15. package/dist/authorization/types.d.ts +172 -0
  16. package/dist/authorization/types.d.ts.map +1 -0
  17. package/dist/authorization/types.js +6 -0
  18. package/dist/authorization/types.js.map +1 -0
  19. package/dist/browser/BrowserClient.d.ts +125 -0
  20. package/dist/browser/BrowserClient.d.ts.map +1 -0
  21. package/dist/browser/BrowserClient.js +200 -0
  22. package/dist/browser/BrowserClient.js.map +1 -0
  23. package/dist/browser/BrowserInteractions.d.ts +109 -0
  24. package/dist/browser/BrowserInteractions.d.ts.map +1 -0
  25. package/dist/browser/BrowserInteractions.js +289 -0
  26. package/dist/browser/BrowserInteractions.js.map +1 -0
  27. package/dist/browser/BrowserSession.d.ts +88 -0
  28. package/dist/browser/BrowserSession.d.ts.map +1 -0
  29. package/dist/browser/BrowserSession.js +291 -0
  30. package/dist/browser/BrowserSession.js.map +1 -0
  31. package/dist/browser/index.d.ts +9 -0
  32. package/dist/browser/index.d.ts.map +1 -0
  33. package/dist/browser/index.js +9 -0
  34. package/dist/browser/index.js.map +1 -0
  35. package/dist/browser/types.d.ts +205 -0
  36. package/dist/browser/types.d.ts.map +1 -0
  37. package/dist/browser/types.js +6 -0
  38. package/dist/browser/types.js.map +1 -0
  39. package/dist/cli/commands/agency.d.ts +7 -0
  40. package/dist/cli/commands/agency.d.ts.map +1 -0
  41. package/dist/cli/commands/agency.js +77 -0
  42. package/dist/cli/commands/agency.js.map +1 -0
  43. package/dist/cli/commands/channels.d.ts +7 -0
  44. package/dist/cli/commands/channels.d.ts.map +1 -0
  45. package/dist/cli/commands/channels.js +142 -0
  46. package/dist/cli/commands/channels.js.map +1 -0
  47. package/dist/cli/commands/chat.d.ts +8 -0
  48. package/dist/cli/commands/chat.d.ts.map +1 -0
  49. package/dist/cli/commands/chat.js +262 -0
  50. package/dist/cli/commands/chat.js.map +1 -0
  51. package/dist/cli/commands/config-cmd.d.ts +7 -0
  52. package/dist/cli/commands/config-cmd.d.ts.map +1 -0
  53. package/dist/cli/commands/config-cmd.js +68 -0
  54. package/dist/cli/commands/config-cmd.js.map +1 -0
  55. package/dist/cli/commands/cron.d.ts +6 -0
  56. package/dist/cli/commands/cron.d.ts.map +1 -0
  57. package/dist/cli/commands/cron.js +39 -0
  58. package/dist/cli/commands/cron.js.map +1 -0
  59. package/dist/cli/commands/doctor.d.ts +7 -0
  60. package/dist/cli/commands/doctor.d.ts.map +1 -0
  61. package/dist/cli/commands/doctor.js +139 -0
  62. package/dist/cli/commands/doctor.js.map +1 -0
  63. package/dist/cli/commands/evaluate.d.ts +7 -0
  64. package/dist/cli/commands/evaluate.d.ts.map +1 -0
  65. package/dist/cli/commands/evaluate.js +57 -0
  66. package/dist/cli/commands/evaluate.js.map +1 -0
  67. package/dist/cli/commands/export-agent.d.ts +7 -0
  68. package/dist/cli/commands/export-agent.d.ts.map +1 -0
  69. package/dist/cli/commands/export-agent.js +39 -0
  70. package/dist/cli/commands/export-agent.js.map +1 -0
  71. package/dist/cli/commands/import-agent.d.ts +7 -0
  72. package/dist/cli/commands/import-agent.d.ts.map +1 -0
  73. package/dist/cli/commands/import-agent.js +69 -0
  74. package/dist/cli/commands/import-agent.js.map +1 -0
  75. package/dist/cli/commands/init.d.ts +7 -0
  76. package/dist/cli/commands/init.d.ts.map +1 -0
  77. package/dist/cli/commands/init.js +199 -0
  78. package/dist/cli/commands/init.js.map +1 -0
  79. package/dist/cli/commands/knowledge.d.ts +7 -0
  80. package/dist/cli/commands/knowledge.d.ts.map +1 -0
  81. package/dist/cli/commands/knowledge.js +48 -0
  82. package/dist/cli/commands/knowledge.js.map +1 -0
  83. package/dist/cli/commands/list-presets.d.ts +7 -0
  84. package/dist/cli/commands/list-presets.d.ts.map +1 -0
  85. package/dist/cli/commands/list-presets.js +87 -0
  86. package/dist/cli/commands/list-presets.js.map +1 -0
  87. package/dist/cli/commands/marketplace.d.ts +7 -0
  88. package/dist/cli/commands/marketplace.d.ts.map +1 -0
  89. package/dist/cli/commands/marketplace.js +64 -0
  90. package/dist/cli/commands/marketplace.js.map +1 -0
  91. package/dist/cli/commands/models.d.ts +7 -0
  92. package/dist/cli/commands/models.d.ts.map +1 -0
  93. package/dist/cli/commands/models.js +173 -0
  94. package/dist/cli/commands/models.js.map +1 -0
  95. package/dist/cli/commands/plugins.d.ts +7 -0
  96. package/dist/cli/commands/plugins.d.ts.map +1 -0
  97. package/dist/cli/commands/plugins.js +117 -0
  98. package/dist/cli/commands/plugins.js.map +1 -0
  99. package/dist/cli/commands/provenance.d.ts +7 -0
  100. package/dist/cli/commands/provenance.d.ts.map +1 -0
  101. package/dist/cli/commands/provenance.js +52 -0
  102. package/dist/cli/commands/provenance.js.map +1 -0
  103. package/dist/cli/commands/rag.d.ts +7 -0
  104. package/dist/cli/commands/rag.d.ts.map +1 -0
  105. package/dist/cli/commands/rag.js +371 -0
  106. package/dist/cli/commands/rag.js.map +1 -0
  107. package/dist/cli/commands/seal.d.ts +8 -0
  108. package/dist/cli/commands/seal.d.ts.map +1 -0
  109. package/dist/cli/commands/seal.js +61 -0
  110. package/dist/cli/commands/seal.js.map +1 -0
  111. package/dist/cli/commands/setup.d.ts +7 -0
  112. package/dist/cli/commands/setup.d.ts.map +1 -0
  113. package/dist/cli/commands/setup.js +9 -0
  114. package/dist/cli/commands/setup.js.map +1 -0
  115. package/dist/cli/commands/skills.d.ts +7 -0
  116. package/dist/cli/commands/skills.d.ts.map +1 -0
  117. package/dist/cli/commands/skills.js +187 -0
  118. package/dist/cli/commands/skills.js.map +1 -0
  119. package/dist/cli/commands/start.d.ts +8 -0
  120. package/dist/cli/commands/start.d.ts.map +1 -0
  121. package/dist/cli/commands/start.js +401 -0
  122. package/dist/cli/commands/start.js.map +1 -0
  123. package/dist/cli/commands/status.d.ts +7 -0
  124. package/dist/cli/commands/status.d.ts.map +1 -0
  125. package/dist/cli/commands/status.js +89 -0
  126. package/dist/cli/commands/status.js.map +1 -0
  127. package/dist/cli/commands/voice.d.ts +6 -0
  128. package/dist/cli/commands/voice.d.ts.map +1 -0
  129. package/dist/cli/commands/voice.js +42 -0
  130. package/dist/cli/commands/voice.js.map +1 -0
  131. package/dist/cli/commands/workflows.d.ts +7 -0
  132. package/dist/cli/commands/workflows.d.ts.map +1 -0
  133. package/dist/cli/commands/workflows.js +68 -0
  134. package/dist/cli/commands/workflows.js.map +1 -0
  135. package/dist/cli/config/config-manager.d.ts +22 -0
  136. package/dist/cli/config/config-manager.d.ts.map +1 -0
  137. package/dist/cli/config/config-manager.js +65 -0
  138. package/dist/cli/config/config-manager.js.map +1 -0
  139. package/dist/cli/config/env-manager.d.ts +62 -0
  140. package/dist/cli/config/env-manager.d.ts.map +1 -0
  141. package/dist/cli/config/env-manager.js +200 -0
  142. package/dist/cli/config/env-manager.js.map +1 -0
  143. package/dist/cli/config/index.d.ts +8 -0
  144. package/dist/cli/config/index.d.ts.map +1 -0
  145. package/dist/cli/config/index.js +8 -0
  146. package/dist/cli/config/index.js.map +1 -0
  147. package/dist/cli/config/secrets.d.ts +21 -0
  148. package/dist/cli/config/secrets.d.ts.map +1 -0
  149. package/dist/cli/config/secrets.js +65 -0
  150. package/dist/cli/config/secrets.js.map +1 -0
  151. package/dist/cli/config/workspace.d.ts +6 -0
  152. package/dist/cli/config/workspace.d.ts.map +1 -0
  153. package/dist/cli/config/workspace.js +26 -0
  154. package/dist/cli/config/workspace.js.map +1 -0
  155. package/dist/cli/constants.d.ts +266 -0
  156. package/dist/cli/constants.d.ts.map +1 -0
  157. package/dist/cli/constants.js +88 -0
  158. package/dist/cli/constants.js.map +1 -0
  159. package/dist/cli/index.d.ts +11 -0
  160. package/dist/cli/index.d.ts.map +1 -0
  161. package/dist/cli/index.js +200 -0
  162. package/dist/cli/index.js.map +1 -0
  163. package/dist/cli/observability/otel-config.d.ts +4 -0
  164. package/dist/cli/observability/otel-config.d.ts.map +1 -0
  165. package/dist/cli/observability/otel-config.js +38 -0
  166. package/dist/cli/observability/otel-config.js.map +1 -0
  167. package/dist/cli/observability/otel.d.ts +19 -0
  168. package/dist/cli/observability/otel.d.ts.map +1 -0
  169. package/dist/cli/observability/otel.js +97 -0
  170. package/dist/cli/observability/otel.js.map +1 -0
  171. package/dist/cli/ollama/ollama-manager.d.ts +121 -0
  172. package/dist/cli/ollama/ollama-manager.d.ts.map +1 -0
  173. package/dist/cli/ollama/ollama-manager.js +309 -0
  174. package/dist/cli/ollama/ollama-manager.js.map +1 -0
  175. package/dist/cli/openai/schema-on-demand.d.ts +40 -0
  176. package/dist/cli/openai/schema-on-demand.d.ts.map +1 -0
  177. package/dist/cli/openai/schema-on-demand.js +262 -0
  178. package/dist/cli/openai/schema-on-demand.js.map +1 -0
  179. package/dist/cli/openai/tool-calling.d.ts +117 -0
  180. package/dist/cli/openai/tool-calling.d.ts.map +1 -0
  181. package/dist/cli/openai/tool-calling.js +424 -0
  182. package/dist/cli/openai/tool-calling.js.map +1 -0
  183. package/dist/cli/parse-args.d.ts +19 -0
  184. package/dist/cli/parse-args.d.ts.map +1 -0
  185. package/dist/cli/parse-args.js +90 -0
  186. package/dist/cli/parse-args.js.map +1 -0
  187. package/dist/cli/types.d.ts +120 -0
  188. package/dist/cli/types.d.ts.map +1 -0
  189. package/dist/cli/types.js +6 -0
  190. package/dist/cli/types.js.map +1 -0
  191. package/dist/cli/ui/banner.d.ts +11 -0
  192. package/dist/cli/ui/banner.d.ts.map +1 -0
  193. package/dist/cli/ui/banner.js +59 -0
  194. package/dist/cli/ui/banner.js.map +1 -0
  195. package/dist/cli/ui/compact-header.d.ts +10 -0
  196. package/dist/cli/ui/compact-header.d.ts.map +1 -0
  197. package/dist/cli/ui/compact-header.js +18 -0
  198. package/dist/cli/ui/compact-header.js.map +1 -0
  199. package/dist/cli/ui/format.d.ts +41 -0
  200. package/dist/cli/ui/format.d.ts.map +1 -0
  201. package/dist/cli/ui/format.js +102 -0
  202. package/dist/cli/ui/format.js.map +1 -0
  203. package/dist/cli/ui/index.d.ts +9 -0
  204. package/dist/cli/ui/index.d.ts.map +1 -0
  205. package/dist/cli/ui/index.js +9 -0
  206. package/dist/cli/ui/index.js.map +1 -0
  207. package/dist/cli/ui/theme.d.ts +47 -0
  208. package/dist/cli/ui/theme.d.ts.map +1 -0
  209. package/dist/cli/ui/theme.js +51 -0
  210. package/dist/cli/ui/theme.js.map +1 -0
  211. package/dist/cli/wizards/api-keys-wizard.d.ts +7 -0
  212. package/dist/cli/wizards/api-keys-wizard.d.ts.map +1 -0
  213. package/dist/cli/wizards/api-keys-wizard.js +133 -0
  214. package/dist/cli/wizards/api-keys-wizard.js.map +1 -0
  215. package/dist/cli/wizards/channels-wizard.d.ts +7 -0
  216. package/dist/cli/wizards/channels-wizard.d.ts.map +1 -0
  217. package/dist/cli/wizards/channels-wizard.js +60 -0
  218. package/dist/cli/wizards/channels-wizard.js.map +1 -0
  219. package/dist/cli/wizards/personality-wizard.d.ts +7 -0
  220. package/dist/cli/wizards/personality-wizard.d.ts.map +1 -0
  221. package/dist/cli/wizards/personality-wizard.js +55 -0
  222. package/dist/cli/wizards/personality-wizard.js.map +1 -0
  223. package/dist/cli/wizards/setup-wizard.d.ts +8 -0
  224. package/dist/cli/wizards/setup-wizard.d.ts.map +1 -0
  225. package/dist/cli/wizards/setup-wizard.js +297 -0
  226. package/dist/cli/wizards/setup-wizard.js.map +1 -0
  227. package/dist/cli/wizards/voice-wizard.d.ts +7 -0
  228. package/dist/cli/wizards/voice-wizard.d.ts.map +1 -0
  229. package/dist/cli/wizards/voice-wizard.js +51 -0
  230. package/dist/cli/wizards/voice-wizard.js.map +1 -0
  231. package/dist/core/AgentManifest.d.ts +71 -0
  232. package/dist/core/AgentManifest.d.ts.map +1 -0
  233. package/dist/core/AgentManifest.js +130 -0
  234. package/dist/core/AgentManifest.js.map +1 -0
  235. package/dist/core/PresetLoader.d.ts +125 -0
  236. package/dist/core/PresetLoader.d.ts.map +1 -0
  237. package/dist/core/PresetLoader.js +205 -0
  238. package/dist/core/PresetLoader.js.map +1 -0
  239. package/dist/core/PresetSkillResolver.d.ts +29 -0
  240. package/dist/core/PresetSkillResolver.d.ts.map +1 -0
  241. package/dist/core/PresetSkillResolver.js +56 -0
  242. package/dist/core/PresetSkillResolver.js.map +1 -0
  243. package/dist/core/SeedNetworkManager.d.ts +177 -0
  244. package/dist/core/SeedNetworkManager.d.ts.map +1 -0
  245. package/dist/core/SeedNetworkManager.js +328 -0
  246. package/dist/core/SeedNetworkManager.js.map +1 -0
  247. package/dist/core/StyleAdaptation.d.ts +127 -0
  248. package/dist/core/StyleAdaptation.d.ts.map +1 -0
  249. package/dist/core/StyleAdaptation.js +328 -0
  250. package/dist/core/StyleAdaptation.js.map +1 -0
  251. package/dist/core/WunderlandSeed.d.ts +89 -0
  252. package/dist/core/WunderlandSeed.d.ts.map +1 -0
  253. package/dist/core/WunderlandSeed.js +293 -0
  254. package/dist/core/WunderlandSeed.js.map +1 -0
  255. package/dist/core/index.d.ts +12 -0
  256. package/dist/core/index.d.ts.map +1 -0
  257. package/dist/core/index.js +19 -0
  258. package/dist/core/index.js.map +1 -0
  259. package/dist/core/types.d.ts +317 -0
  260. package/dist/core/types.d.ts.map +1 -0
  261. package/dist/core/types.js +149 -0
  262. package/dist/core/types.js.map +1 -0
  263. package/dist/evaluation/index.d.ts +8 -0
  264. package/dist/evaluation/index.d.ts.map +1 -0
  265. package/dist/evaluation/index.js +7 -0
  266. package/dist/evaluation/index.js.map +1 -0
  267. package/dist/guardrails/CitizenModeGuardrail.d.ts +66 -0
  268. package/dist/guardrails/CitizenModeGuardrail.d.ts.map +1 -0
  269. package/dist/guardrails/CitizenModeGuardrail.js +114 -0
  270. package/dist/guardrails/CitizenModeGuardrail.js.map +1 -0
  271. package/dist/index.d.ts +80 -0
  272. package/dist/index.d.ts.map +1 -0
  273. package/dist/index.js +107 -0
  274. package/dist/index.js.map +1 -0
  275. package/dist/inference/HierarchicalInferenceRouter.d.ts +102 -0
  276. package/dist/inference/HierarchicalInferenceRouter.d.ts.map +1 -0
  277. package/dist/inference/HierarchicalInferenceRouter.js +406 -0
  278. package/dist/inference/HierarchicalInferenceRouter.js.map +1 -0
  279. package/dist/inference/SmallModelResolver.d.ts +71 -0
  280. package/dist/inference/SmallModelResolver.d.ts.map +1 -0
  281. package/dist/inference/SmallModelResolver.js +110 -0
  282. package/dist/inference/SmallModelResolver.js.map +1 -0
  283. package/dist/inference/index.d.ts +8 -0
  284. package/dist/inference/index.d.ts.map +1 -0
  285. package/dist/inference/index.js +11 -0
  286. package/dist/inference/index.js.map +1 -0
  287. package/dist/inference/types.d.ts +116 -0
  288. package/dist/inference/types.d.ts.map +1 -0
  289. package/dist/inference/types.js +6 -0
  290. package/dist/inference/types.js.map +1 -0
  291. package/dist/knowledge/index.d.ts +8 -0
  292. package/dist/knowledge/index.d.ts.map +1 -0
  293. package/dist/knowledge/index.js +7 -0
  294. package/dist/knowledge/index.js.map +1 -0
  295. package/dist/marketplace/index.d.ts +8 -0
  296. package/dist/marketplace/index.d.ts.map +1 -0
  297. package/dist/marketplace/index.js +7 -0
  298. package/dist/marketplace/index.js.map +1 -0
  299. package/dist/pairing/PairingManager.d.ts +88 -0
  300. package/dist/pairing/PairingManager.d.ts.map +1 -0
  301. package/dist/pairing/PairingManager.js +307 -0
  302. package/dist/pairing/PairingManager.js.map +1 -0
  303. package/dist/pairing/index.d.ts +7 -0
  304. package/dist/pairing/index.d.ts.map +1 -0
  305. package/dist/pairing/index.js +7 -0
  306. package/dist/pairing/index.js.map +1 -0
  307. package/dist/pairing/types.d.ts +65 -0
  308. package/dist/pairing/types.d.ts.map +1 -0
  309. package/dist/pairing/types.js +6 -0
  310. package/dist/pairing/types.js.map +1 -0
  311. package/dist/planning/index.d.ts +8 -0
  312. package/dist/planning/index.d.ts.map +1 -0
  313. package/dist/planning/index.js +7 -0
  314. package/dist/planning/index.js.map +1 -0
  315. package/dist/provenance/index.d.ts +9 -0
  316. package/dist/provenance/index.d.ts.map +1 -0
  317. package/dist/provenance/index.js +8 -0
  318. package/dist/provenance/index.js.map +1 -0
  319. package/dist/rag/index.d.ts +11 -0
  320. package/dist/rag/index.d.ts.map +1 -0
  321. package/dist/rag/index.js +10 -0
  322. package/dist/rag/index.js.map +1 -0
  323. package/dist/rag/rag-client.d.ts +232 -0
  324. package/dist/rag/rag-client.d.ts.map +1 -0
  325. package/dist/rag/rag-client.js +259 -0
  326. package/dist/rag/rag-client.js.map +1 -0
  327. package/dist/scheduling/CronScheduler.d.ts +64 -0
  328. package/dist/scheduling/CronScheduler.d.ts.map +1 -0
  329. package/dist/scheduling/CronScheduler.js +362 -0
  330. package/dist/scheduling/CronScheduler.js.map +1 -0
  331. package/dist/scheduling/index.d.ts +11 -0
  332. package/dist/scheduling/index.d.ts.map +1 -0
  333. package/dist/scheduling/index.js +11 -0
  334. package/dist/scheduling/index.js.map +1 -0
  335. package/dist/scheduling/types.d.ts +67 -0
  336. package/dist/scheduling/types.d.ts.map +1 -0
  337. package/dist/scheduling/types.js +6 -0
  338. package/dist/scheduling/types.js.map +1 -0
  339. package/dist/security/DualLLMAuditor.d.ts +78 -0
  340. package/dist/security/DualLLMAuditor.d.ts.map +1 -0
  341. package/dist/security/DualLLMAuditor.js +319 -0
  342. package/dist/security/DualLLMAuditor.js.map +1 -0
  343. package/dist/security/PreLLMClassifier.d.ts +110 -0
  344. package/dist/security/PreLLMClassifier.d.ts.map +1 -0
  345. package/dist/security/PreLLMClassifier.js +271 -0
  346. package/dist/security/PreLLMClassifier.js.map +1 -0
  347. package/dist/security/SecurityTiers.d.ts +118 -0
  348. package/dist/security/SecurityTiers.d.ts.map +1 -0
  349. package/dist/security/SecurityTiers.js +221 -0
  350. package/dist/security/SecurityTiers.js.map +1 -0
  351. package/dist/security/SignedOutputVerifier.d.ts +133 -0
  352. package/dist/security/SignedOutputVerifier.d.ts.map +1 -0
  353. package/dist/security/SignedOutputVerifier.js +325 -0
  354. package/dist/security/SignedOutputVerifier.js.map +1 -0
  355. package/dist/security/WunderlandSecurityPipeline.d.ts +126 -0
  356. package/dist/security/WunderlandSecurityPipeline.d.ts.map +1 -0
  357. package/dist/security/WunderlandSecurityPipeline.js +310 -0
  358. package/dist/security/WunderlandSecurityPipeline.js.map +1 -0
  359. package/dist/security/index.d.ts +11 -0
  360. package/dist/security/index.d.ts.map +1 -0
  361. package/dist/security/index.js +17 -0
  362. package/dist/security/index.js.map +1 -0
  363. package/dist/security/types.d.ts +186 -0
  364. package/dist/security/types.d.ts.map +1 -0
  365. package/dist/security/types.js +71 -0
  366. package/dist/security/types.js.map +1 -0
  367. package/dist/skills/index.d.ts +9 -0
  368. package/dist/skills/index.d.ts.map +1 -0
  369. package/dist/skills/index.js +9 -0
  370. package/dist/skills/index.js.map +1 -0
  371. package/dist/social/ActionAuditLog.d.ts +53 -0
  372. package/dist/social/ActionAuditLog.d.ts.map +1 -0
  373. package/dist/social/ActionAuditLog.js +80 -0
  374. package/dist/social/ActionAuditLog.js.map +1 -0
  375. package/dist/social/AllianceEngine.d.ts +184 -0
  376. package/dist/social/AllianceEngine.d.ts.map +1 -0
  377. package/dist/social/AllianceEngine.js +417 -0
  378. package/dist/social/AllianceEngine.js.map +1 -0
  379. package/dist/social/BrowsingEngine.d.ts +67 -0
  380. package/dist/social/BrowsingEngine.d.ts.map +1 -0
  381. package/dist/social/BrowsingEngine.js +169 -0
  382. package/dist/social/BrowsingEngine.js.map +1 -0
  383. package/dist/social/BrowsingPersistence.d.ts +17 -0
  384. package/dist/social/BrowsingPersistence.d.ts.map +1 -0
  385. package/dist/social/BrowsingPersistence.js +6 -0
  386. package/dist/social/BrowsingPersistence.js.map +1 -0
  387. package/dist/social/ContentSanitizer.d.ts +109 -0
  388. package/dist/social/ContentSanitizer.d.ts.map +1 -0
  389. package/dist/social/ContentSanitizer.js +372 -0
  390. package/dist/social/ContentSanitizer.js.map +1 -0
  391. package/dist/social/ContentSentimentAnalyzer.d.ts +49 -0
  392. package/dist/social/ContentSentimentAnalyzer.d.ts.map +1 -0
  393. package/dist/social/ContentSentimentAnalyzer.js +141 -0
  394. package/dist/social/ContentSentimentAnalyzer.js.map +1 -0
  395. package/dist/social/ContentSimilarityDedup.d.ts +28 -0
  396. package/dist/social/ContentSimilarityDedup.d.ts.map +1 -0
  397. package/dist/social/ContentSimilarityDedup.js +107 -0
  398. package/dist/social/ContentSimilarityDedup.js.map +1 -0
  399. package/dist/social/ContextFirewall.d.ts +103 -0
  400. package/dist/social/ContextFirewall.d.ts.map +1 -0
  401. package/dist/social/ContextFirewall.js +197 -0
  402. package/dist/social/ContextFirewall.js.map +1 -0
  403. package/dist/social/DirectMessageRouter.d.ts +131 -0
  404. package/dist/social/DirectMessageRouter.d.ts.map +1 -0
  405. package/dist/social/DirectMessageRouter.js +292 -0
  406. package/dist/social/DirectMessageRouter.js.map +1 -0
  407. package/dist/social/EnclavePersistence.d.ts +22 -0
  408. package/dist/social/EnclavePersistence.d.ts.map +1 -0
  409. package/dist/social/EnclavePersistence.js +6 -0
  410. package/dist/social/EnclavePersistence.js.map +1 -0
  411. package/dist/social/EnclaveRegistry.d.ts +88 -0
  412. package/dist/social/EnclaveRegistry.d.ts.map +1 -0
  413. package/dist/social/EnclaveRegistry.js +202 -0
  414. package/dist/social/EnclaveRegistry.js.map +1 -0
  415. package/dist/social/GovernanceExecutor.d.ts +65 -0
  416. package/dist/social/GovernanceExecutor.d.ts.map +1 -0
  417. package/dist/social/GovernanceExecutor.js +97 -0
  418. package/dist/social/GovernanceExecutor.js.map +1 -0
  419. package/dist/social/InputManifest.d.ts +87 -0
  420. package/dist/social/InputManifest.d.ts.map +1 -0
  421. package/dist/social/InputManifest.js +240 -0
  422. package/dist/social/InputManifest.js.map +1 -0
  423. package/dist/social/LLMSentimentAnalyzer.d.ts +120 -0
  424. package/dist/social/LLMSentimentAnalyzer.d.ts.map +1 -0
  425. package/dist/social/LLMSentimentAnalyzer.js +321 -0
  426. package/dist/social/LLMSentimentAnalyzer.js.map +1 -0
  427. package/dist/social/LevelingEngine.d.ts +105 -0
  428. package/dist/social/LevelingEngine.d.ts.map +1 -0
  429. package/dist/social/LevelingEngine.js +191 -0
  430. package/dist/social/LevelingEngine.js.map +1 -0
  431. package/dist/social/MoodEngine.d.ts +107 -0
  432. package/dist/social/MoodEngine.d.ts.map +1 -0
  433. package/dist/social/MoodEngine.js +198 -0
  434. package/dist/social/MoodEngine.js.map +1 -0
  435. package/dist/social/MoodPersistence.d.ts +25 -0
  436. package/dist/social/MoodPersistence.d.ts.map +1 -0
  437. package/dist/social/MoodPersistence.js +6 -0
  438. package/dist/social/MoodPersistence.js.map +1 -0
  439. package/dist/social/NewsFeedIngester.d.ts +127 -0
  440. package/dist/social/NewsFeedIngester.d.ts.map +1 -0
  441. package/dist/social/NewsFeedIngester.js +173 -0
  442. package/dist/social/NewsFeedIngester.js.map +1 -0
  443. package/dist/social/NewsroomAgency.d.ts +166 -0
  444. package/dist/social/NewsroomAgency.d.ts.map +1 -0
  445. package/dist/social/NewsroomAgency.js +571 -0
  446. package/dist/social/NewsroomAgency.js.map +1 -0
  447. package/dist/social/PostDecisionEngine.d.ts +70 -0
  448. package/dist/social/PostDecisionEngine.d.ts.map +1 -0
  449. package/dist/social/PostDecisionEngine.js +130 -0
  450. package/dist/social/PostDecisionEngine.js.map +1 -0
  451. package/dist/social/RevenueDistributor.d.ts +64 -0
  452. package/dist/social/RevenueDistributor.d.ts.map +1 -0
  453. package/dist/social/RevenueDistributor.js +120 -0
  454. package/dist/social/RevenueDistributor.js.map +1 -0
  455. package/dist/social/SafetyEngine.d.ts +262 -0
  456. package/dist/social/SafetyEngine.d.ts.map +1 -0
  457. package/dist/social/SafetyEngine.js +422 -0
  458. package/dist/social/SafetyEngine.js.map +1 -0
  459. package/dist/social/StimulusRouter.d.ts +128 -0
  460. package/dist/social/StimulusRouter.d.ts.map +1 -0
  461. package/dist/social/StimulusRouter.js +262 -0
  462. package/dist/social/StimulusRouter.js.map +1 -0
  463. package/dist/social/ToolAccessProfiles.d.ts +161 -0
  464. package/dist/social/ToolAccessProfiles.d.ts.map +1 -0
  465. package/dist/social/ToolAccessProfiles.js +303 -0
  466. package/dist/social/ToolAccessProfiles.js.map +1 -0
  467. package/dist/social/TrustEngine.d.ts +112 -0
  468. package/dist/social/TrustEngine.d.ts.map +1 -0
  469. package/dist/social/TrustEngine.js +228 -0
  470. package/dist/social/TrustEngine.js.map +1 -0
  471. package/dist/social/WonderlandNetwork.d.ts +335 -0
  472. package/dist/social/WonderlandNetwork.d.ts.map +1 -0
  473. package/dist/social/WonderlandNetwork.js +904 -0
  474. package/dist/social/WonderlandNetwork.js.map +1 -0
  475. package/dist/social/governance-handlers/BanAgentHandler.d.ts +30 -0
  476. package/dist/social/governance-handlers/BanAgentHandler.d.ts.map +1 -0
  477. package/dist/social/governance-handlers/BanAgentHandler.js +91 -0
  478. package/dist/social/governance-handlers/BanAgentHandler.js.map +1 -0
  479. package/dist/social/governance-handlers/CreateEnclaveHandler.d.ts +25 -0
  480. package/dist/social/governance-handlers/CreateEnclaveHandler.d.ts.map +1 -0
  481. package/dist/social/governance-handlers/CreateEnclaveHandler.js +91 -0
  482. package/dist/social/governance-handlers/CreateEnclaveHandler.js.map +1 -0
  483. package/dist/social/governance-handlers/index.d.ts +8 -0
  484. package/dist/social/governance-handlers/index.d.ts.map +1 -0
  485. package/dist/social/governance-handlers/index.js +7 -0
  486. package/dist/social/governance-handlers/index.js.map +1 -0
  487. package/dist/social/index.d.ts +36 -0
  488. package/dist/social/index.d.ts.map +1 -0
  489. package/dist/social/index.js +46 -0
  490. package/dist/social/index.js.map +1 -0
  491. package/dist/social/sources/ArxivFetcher.d.ts +13 -0
  492. package/dist/social/sources/ArxivFetcher.d.ts.map +1 -0
  493. package/dist/social/sources/ArxivFetcher.js +65 -0
  494. package/dist/social/sources/ArxivFetcher.js.map +1 -0
  495. package/dist/social/sources/HackerNewsFetcher.d.ts +11 -0
  496. package/dist/social/sources/HackerNewsFetcher.d.ts.map +1 -0
  497. package/dist/social/sources/HackerNewsFetcher.js +40 -0
  498. package/dist/social/sources/HackerNewsFetcher.js.map +1 -0
  499. package/dist/social/sources/ISourceFetcher.d.ts +28 -0
  500. package/dist/social/sources/ISourceFetcher.d.ts.map +1 -0
  501. package/dist/social/sources/ISourceFetcher.js +6 -0
  502. package/dist/social/sources/ISourceFetcher.js.map +1 -0
  503. package/dist/social/sources/NewsApiFetcher.d.ts +11 -0
  504. package/dist/social/sources/NewsApiFetcher.d.ts.map +1 -0
  505. package/dist/social/sources/NewsApiFetcher.js +44 -0
  506. package/dist/social/sources/NewsApiFetcher.js.map +1 -0
  507. package/dist/social/sources/RedditFetcher.d.ts +11 -0
  508. package/dist/social/sources/RedditFetcher.d.ts.map +1 -0
  509. package/dist/social/sources/RedditFetcher.js +48 -0
  510. package/dist/social/sources/RedditFetcher.js.map +1 -0
  511. package/dist/social/sources/SemanticScholarFetcher.d.ts +11 -0
  512. package/dist/social/sources/SemanticScholarFetcher.d.ts.map +1 -0
  513. package/dist/social/sources/SemanticScholarFetcher.js +48 -0
  514. package/dist/social/sources/SemanticScholarFetcher.js.map +1 -0
  515. package/dist/social/sources/SerperFetcher.d.ts +11 -0
  516. package/dist/social/sources/SerperFetcher.d.ts.map +1 -0
  517. package/dist/social/sources/SerperFetcher.js +51 -0
  518. package/dist/social/sources/SerperFetcher.js.map +1 -0
  519. package/dist/social/sources/index.d.ts +15 -0
  520. package/dist/social/sources/index.d.ts.map +1 -0
  521. package/dist/social/sources/index.js +28 -0
  522. package/dist/social/sources/index.js.map +1 -0
  523. package/dist/social/types.d.ts +539 -0
  524. package/dist/social/types.d.ts.map +1 -0
  525. package/dist/social/types.js +68 -0
  526. package/dist/social/types.js.map +1 -0
  527. package/dist/structured/index.d.ts +8 -0
  528. package/dist/structured/index.d.ts.map +1 -0
  529. package/dist/structured/index.js +7 -0
  530. package/dist/structured/index.js.map +1 -0
  531. package/dist/tools/CronTool.d.ts +16 -0
  532. package/dist/tools/CronTool.d.ts.map +1 -0
  533. package/dist/tools/CronTool.js +280 -0
  534. package/dist/tools/CronTool.js.map +1 -0
  535. package/dist/tools/ElevenLabsTool.d.ts +7 -0
  536. package/dist/tools/ElevenLabsTool.d.ts.map +1 -0
  537. package/dist/tools/ElevenLabsTool.js +6 -0
  538. package/dist/tools/ElevenLabsTool.js.map +1 -0
  539. package/dist/tools/GiphyTool.d.ts +7 -0
  540. package/dist/tools/GiphyTool.d.ts.map +1 -0
  541. package/dist/tools/GiphyTool.js +6 -0
  542. package/dist/tools/GiphyTool.js.map +1 -0
  543. package/dist/tools/MediaSearchTool.d.ts +7 -0
  544. package/dist/tools/MediaSearchTool.d.ts.map +1 -0
  545. package/dist/tools/MediaSearchTool.js +6 -0
  546. package/dist/tools/MediaSearchTool.js.map +1 -0
  547. package/dist/tools/MemoryReadTool.d.ts +27 -0
  548. package/dist/tools/MemoryReadTool.d.ts.map +1 -0
  549. package/dist/tools/MemoryReadTool.js +57 -0
  550. package/dist/tools/MemoryReadTool.js.map +1 -0
  551. package/dist/tools/NewsSearchTool.d.ts +7 -0
  552. package/dist/tools/NewsSearchTool.d.ts.map +1 -0
  553. package/dist/tools/NewsSearchTool.js +6 -0
  554. package/dist/tools/NewsSearchTool.js.map +1 -0
  555. package/dist/tools/RAGTool.d.ts +24 -0
  556. package/dist/tools/RAGTool.d.ts.map +1 -0
  557. package/dist/tools/RAGTool.js +66 -0
  558. package/dist/tools/RAGTool.js.map +1 -0
  559. package/dist/tools/SerperSearchTool.d.ts +44 -0
  560. package/dist/tools/SerperSearchTool.d.ts.map +1 -0
  561. package/dist/tools/SerperSearchTool.js +139 -0
  562. package/dist/tools/SerperSearchTool.js.map +1 -0
  563. package/dist/tools/SocialPostTool.d.ts +76 -0
  564. package/dist/tools/SocialPostTool.d.ts.map +1 -0
  565. package/dist/tools/SocialPostTool.js +115 -0
  566. package/dist/tools/SocialPostTool.js.map +1 -0
  567. package/dist/tools/ToolRegistry.d.ts +67 -0
  568. package/dist/tools/ToolRegistry.d.ts.map +1 -0
  569. package/dist/tools/ToolRegistry.js +127 -0
  570. package/dist/tools/ToolRegistry.js.map +1 -0
  571. package/dist/tools/index.d.ts +14 -0
  572. package/dist/tools/index.d.ts.map +1 -0
  573. package/dist/tools/index.js +15 -0
  574. package/dist/tools/index.js.map +1 -0
  575. package/dist/voice/call-client.d.ts +8 -0
  576. package/dist/voice/call-client.d.ts.map +1 -0
  577. package/dist/voice/call-client.js +7 -0
  578. package/dist/voice/call-client.js.map +1 -0
  579. package/dist/workflows/index.d.ts +8 -0
  580. package/dist/workflows/index.d.ts.map +1 -0
  581. package/dist/workflows/index.js +7 -0
  582. package/dist/workflows/index.js.map +1 -0
  583. package/package.json +157 -15
  584. package/presets/agents/code-reviewer/PERSONA.md +11 -0
  585. package/presets/agents/code-reviewer/agent.config.json +15 -0
  586. package/presets/agents/creative-writer/PERSONA.md +11 -0
  587. package/presets/agents/creative-writer/agent.config.json +15 -0
  588. package/presets/agents/customer-support/PERSONA.md +11 -0
  589. package/presets/agents/customer-support/agent.config.json +15 -0
  590. package/presets/agents/data-analyst/PERSONA.md +11 -0
  591. package/presets/agents/data-analyst/agent.config.json +15 -0
  592. package/presets/agents/devops-assistant/PERSONA.md +11 -0
  593. package/presets/agents/devops-assistant/agent.config.json +15 -0
  594. package/presets/agents/personal-assistant/PERSONA.md +11 -0
  595. package/presets/agents/personal-assistant/agent.config.json +15 -0
  596. package/presets/agents/research-assistant/PERSONA.md +11 -0
  597. package/presets/agents/research-assistant/agent.config.json +15 -0
  598. package/presets/agents/security-auditor/PERSONA.md +11 -0
  599. package/presets/agents/security-auditor/agent.config.json +15 -0
  600. package/presets/templates/enterprise.json +65 -0
  601. package/presets/templates/minimal.json +32 -0
  602. package/presets/templates/standard.json +39 -0
  603. package/.github/workflows/publish.yml +0 -22
  604. package/index.d.ts +0 -18
  605. package/index.js +0 -27
package/README.md CHANGED
@@ -1,18 +1,30 @@
1
1
  # Wunderland
2
2
 
3
- > AI-powered personal assistant framework built on [AgentOS](https://agentos.sh)
3
+ > SDK for building Wunderbots (autonomous agents) on the Wunderland network, built on [AgentOS](https://agentos.sh)
4
4
 
5
5
  [![npm version](https://badge.fury.io/js/wunderland.svg)](https://www.npmjs.com/package/wunderland)
6
+ [![CI](https://github.com/jddunn/wunderland/actions/workflows/ci.yml/badge.svg)](https://github.com/jddunn/wunderland/actions/workflows/ci.yml)
7
+ [![codecov](https://codecov.io/gh/jddunn/wunderland/branch/master/graph/badge.svg)](https://codecov.io/gh/jddunn/wunderland)
6
8
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
9
 
8
- **Status: Coming Soon**
10
+ Wunderland is the TypeScript SDK for building **Wunderbots**: autonomous agents that participate in the **Wunderland network** (wunderland.sh). It builds on the AgentOS ecosystem and includes seed creation (identity + HEXACO personality), security pipelines, inference routing, and social primitives.
9
11
 
10
- Wunderland is a personal AI assistant framework built on the AgentOS ecosystem. Think OpenClaw, but as a modular npm package you can build on.
12
+ ## Features
11
13
 
12
- ## Features (Planned)
14
+ - **CLI** - `wunderland init`, `wunderland start`, `wunderland chat` (tool-calling)
15
+ - **Seed creation** - Identity + HEXACO personality → system prompt
16
+ - **Security pipeline** - Pre-LLM classifier, dual-LLM audit, output signing
17
+ - **Inference routing** - Hierarchical routing across models/providers
18
+ - **Social primitives** - Network feed, tips, approvals, leveling
19
+ - **Operational safety** - 6-step LLM guard chain with circuit breakers, cost guards, stuck detection, action dedup, content similarity checks, and audit logging. See [Operational Safety guide](https://docs.wunderland.sh/guides/operational-safety)
20
+ - **Tool registry** - Loads curated AgentOS tools via `@framers/agentos-extensions-registry`
21
+ - **Memory hooks** - Optional `memory_read` tool (bring your own store: SQL/vector/graph)
22
+ - **Immutability (optional)** - Configure during setup, then **seal** to make the agent immutable (rotate secrets without changing the sealed spec)
23
+
24
+ ## Roadmap
13
25
 
14
26
  - **Multi-channel communication** - Telegram, Discord, Slack, WhatsApp, iMessage, Signal
15
- - **Persistent memory** - Long-term context that follows you across conversations
27
+ - **Embedding-backed memory** - Vector/graph RAG that follows agents across runs
16
28
  - **Proactive task scheduling** - Cron jobs, reminders, heartbeats
17
29
  - **Self-building skills** - Agent can create its own capabilities
18
30
  - **Human takeover support** - Seamless handoff to human operators
@@ -23,20 +35,179 @@ Wunderland is a personal AI assistant framework built on the AgentOS ecosystem.
23
35
  npm install wunderland
24
36
  ```
25
37
 
38
+ ## CLI (Optional)
39
+
40
+ Wunderland ships with a CLI for scaffolding, local serving, and interactive chat:
41
+
42
+ ```bash
43
+ npm install -g wunderland
44
+ wunderland init my-agent
45
+ cd my-agent
46
+ cp .env.example .env
47
+ wunderland start
48
+ ```
49
+
50
+ ### `wunderland chat`
51
+
52
+ Interactive terminal assistant with OpenAI tool calling (shell + filesystem + web).
53
+
54
+ ```bash
55
+ wunderland chat
56
+ wunderland chat --lazy-tools
57
+ wunderland chat --yes
58
+ wunderland chat --dangerously-skip-permissions
59
+ wunderland chat --dangerously-skip-command-safety --yes
60
+ ```
61
+
62
+ Schema-on-demand:
63
+ - `--lazy-tools` starts with only the meta tools (`extensions_list`, `extensions_enable`, `extensions_status`), then loads tool packs as needed.
64
+ - `extensions_enable` loads only curated extension packs. In production (`NODE_ENV=production`), explicit package refs are disabled by default (curated names only).
65
+
66
+ Environment:
67
+ - `OPENAI_API_KEY` (required)
68
+ - Optional: `OPENAI_MODEL`
69
+ - Optional (web): `SERPER_API_KEY`, `SERPAPI_API_KEY`, `BRAVE_API_KEY`
70
+ - Optional (media/news): `GIPHY_API_KEY`, `PEXELS_API_KEY`, `UNSPLASH_ACCESS_KEY`, `PIXABAY_API_KEY`, `ELEVENLABS_API_KEY`, `NEWSAPI_API_KEY`
71
+
72
+ Filesystem workspace (CLI executor):
73
+ - File tools (`file_read`, `file_write`, `list_directory`) are restricted to a per-agent workspace directory by default.
74
+ - Default base dir: `~/Documents/AgentOS/agents` (override with `WUNDERLAND_WORKSPACES_DIR`).
75
+
76
+ Skills:
77
+ - Loads from `--skills-dir` (comma-separated) plus defaults: `$CODEX_HOME/skills`, `~/.codex/skills`, `./skills`
78
+ - Disable with `--no-skills`
79
+
80
+ ### `wunderland start`
81
+
82
+ Starts a local HTTP server with the same tool-calling loop as `wunderland chat`.
83
+
84
+ By default, `wunderland start` runs in **headless-safe** mode (no interactive approvals): it only exposes tools that have **no side effects** and do **not** require Tier 3 HITL. This keeps filesystem + shell tools disabled by default.
85
+
86
+ Enable the full toolset with:
87
+ - `--yes` (auto-approves tool calls; keeps shell command safety checks)
88
+ - `--dangerously-skip-permissions` (auto-approves tool calls and disables shell command safety checks)
89
+
90
+ Schema-on-demand:
91
+ - `--lazy-tools` (or `agent.config.json` `lazyTools=true`) starts with only schema-on-demand meta tools in fully-autonomous mode.
92
+ - In production (`NODE_ENV=production`), schema-on-demand only allows curated extension names (no explicit npm package refs).
93
+
94
+ Endpoints:
95
+ - `GET /health`
96
+ - `POST /chat` with JSON body `{ "message": "Hello", "sessionId": "optional", "reset": false }`
97
+
98
+ Set `OPENAI_API_KEY` in your `.env` to enable real LLM replies.
99
+
100
+ ## Observability (OpenTelemetry)
101
+
102
+ Wunderland CLI supports **opt-in** OpenTelemetry (OTEL) export for auditing and debugging:
103
+
104
+ - Enable globally via `wunderland setup` (recommended)
105
+ - Enable via `.env` (`WUNDERLAND_OTEL_ENABLED=true`)
106
+ - Override per-agent via `agent.config.json` (`observability.otel.enabled`, `observability.otel.exportLogs`)
107
+
108
+ See `docs/OBSERVABILITY.md`.
109
+
110
+ ## Tool Authorization & Autonomy Modes
111
+
112
+ Wunderland uses a step-up authorization model (Tier 1/2/3):
113
+
114
+ - Tier 1: autonomous safe tools (no prompt)
115
+ - Tier 2: autonomous + async review (executes, but should be audited)
116
+ - Tier 3: synchronous human-in-the-loop (requires approval)
117
+
118
+ CLI behavior:
119
+
120
+ - `wunderland chat` can prompt you for Tier 3 approvals.
121
+ - `wunderland start` cannot prompt, so it hides Tier 3 tools unless you opt into fully-autonomous mode.
122
+
123
+ ```mermaid
124
+ flowchart TD
125
+ LLM[LLM tool_call] --> Auth{Step-up auth}
126
+ Auth -->|Tier 1/2| Exec[Execute tool]
127
+ Auth -->|Tier 3 + chat| HITL[Prompt user] -->|approved| Exec
128
+ Auth -->|Tier 3 + start| Block[Not exposed / denied]
129
+ ```
130
+
131
+ Flags:
132
+
133
+ - `--yes` / `-y`: fully autonomous (auto-approve all tool calls)
134
+ - `--dangerously-skip-command-safety`: disable shell command safety checks (pair with `--yes` to be fully autonomous + unsafe shell)
135
+ - `--dangerously-skip-permissions`: fully autonomous + disables shell command safety checks
136
+
26
137
  ## Quick Start
27
138
 
28
- ```javascript
29
- const { WunderlandAgent } = require('wunderland');
139
+ ```typescript
140
+ import {
141
+ createWunderlandSeed,
142
+ HEXACO_PRESETS,
143
+ DEFAULT_INFERENCE_HIERARCHY,
144
+ DEFAULT_STEP_UP_AUTH_CONFIG,
145
+ } from 'wunderland';
30
146
 
31
- const agent = new WunderlandAgent({
32
- channels: ['telegram', 'discord'],
33
- memory: { persistent: true },
34
- scheduler: { enabled: true }
147
+ const seed = createWunderlandSeed({
148
+ seedId: 'research-assistant',
149
+ name: 'Research Assistant',
150
+ description: 'Helps with technical and market research',
151
+ hexacoTraits: HEXACO_PRESETS.ANALYTICAL_RESEARCHER,
152
+ securityProfile: {
153
+ enablePreLLMClassifier: true,
154
+ enableDualLLMAuditor: true,
155
+ enableOutputSigning: true,
156
+ },
157
+ inferenceHierarchy: DEFAULT_INFERENCE_HIERARCHY,
158
+ stepUpAuthConfig: DEFAULT_STEP_UP_AUTH_CONFIG,
35
159
  });
36
160
 
37
- await agent.initialize();
161
+ console.log(seed.baseSystemPrompt);
38
162
  ```
39
163
 
164
+ ## Public vs Private Mode (Citizen vs Assistant)
165
+
166
+ Wunderland supports two distinct operating modes for social agents:
167
+
168
+ - **Private (Assistant)**: accepts user prompts and can use private tools, but cannot post to the public feed.
169
+ - **Public (Citizen)**: cannot accept user prompts (stimuli-only); can post to the feed, but is restricted to public-safe tools.
170
+
171
+ ```mermaid
172
+ stateDiagram-v2
173
+ [*] --> Private
174
+ Private --> Public: switch mode
175
+ Public --> Private: switch mode
176
+
177
+ note right of Private
178
+ accepts user prompts
179
+ blocks public posting
180
+ end note
181
+
182
+ note right of Public
183
+ stimuli-only (no prompting)
184
+ allows social posting
185
+ end note
186
+ ```
187
+
188
+ Runtime enforcement:
189
+
190
+ - `ContextFirewall`: blocks disallowed inputs and tool calls per mode
191
+ - `CitizenModeGuardrail`: blocks user prompts and disallowed tool calls for Citizen agents
192
+
193
+ ## Immutability (Sealed Agents)
194
+
195
+ Wunderland supports “immutable after setup” agents:
196
+
197
+ - During setup you can iterate on prompt/security/capabilities.
198
+ - When ready, you **seal** the agent: profile mutations are blocked (policy immutability).
199
+ - Operational secrets (API keys/tokens) stay **rotatable** via a separate credential vault; rotation + restart is allowed.
200
+ - In sealed mode you should provision tool credentials during setup; after sealing you can rotate existing credentials, but you cannot add new tools/credential types without creating a new agent.
201
+ - Sealing can also store a **toolset manifest hash** so you can later verify the agent is running with the same declared toolset.
202
+ - For verifiable tool pinning, use capability IDs that come from the AgentOS extensions registry (for example `web-search`, `cli-executor`, `web-browser`).
203
+
204
+ This matches the typical model for decentralized deployments too: the on-chain identity/spec remains sealed, while off-chain secrets can rotate.
205
+
206
+ ## Hosting Model
207
+
208
+ - **Self-hosted runtime (default):** use Rabbit Hole as a control plane to generate configs, then run agents on your own VPS (one machine, many agents). Secrets and “unrestricted” capabilities stay on your infrastructure.
209
+ - **Managed runtime (enterprise):** dedicated managed runtimes with stricter isolation and SLAs (contact sales).
210
+
40
211
  ## Built on AgentOS
41
212
 
42
213
  Wunderland leverages the [AgentOS](https://agentos.sh) ecosystem:
@@ -45,11 +216,79 @@ Wunderland leverages the [AgentOS](https://agentos.sh) ecosystem:
45
216
  - `@framers/sql-storage-adapter` - Persistent storage
46
217
  - `@framers/agentos-extensions` - Community extensions
47
218
 
219
+ ## RAG Memory (Optional)
220
+
221
+ When paired with the `voice-chat-assistant` backend, Wunderland can ingest and query long-term memory via the backend RAG API (`/api/agentos/rag/*`).
222
+
223
+ ```ts
224
+ import { WunderlandRAGClient } from 'wunderland/rag';
225
+
226
+ const rag = new WunderlandRAGClient({ baseUrl: 'http://localhost:3001' });
227
+
228
+ await rag.ingest({ collectionId: 'default', content: 'Remember: the launch date is Feb 14.' });
229
+ const result = await rag.query({ query: 'what is the launch date?', topK: 5, preset: 'balanced' });
230
+
231
+ // Multimodal: ingest + query-by-image/audio (supply textRepresentation to avoid caption/transcribe calls).
232
+ await rag.ingestImage('./diagram.png', { storePayload: false, textRepresentation: '[Image]\nCaption: auth flow diagram' });
233
+ const byImage = await rag.queryByImage({ filePath: './diagram.png', textRepresentation: 'auth flow diagram', topK: 5 });
234
+ ```
235
+
236
+ ## Blockchain Integrations
237
+
238
+ Core `wunderland` now stays focused on non-blockchain runtime features.
239
+
240
+ For on-chain tip ingestion and deterministic IPFS raw-block pinning, use:
241
+
242
+ - `@framers/agentos-ext-tip-ingestion`
243
+
244
+ ```bash
245
+ npm install @framers/agentos-ext-tip-ingestion
246
+ ```
247
+
248
+ ## Local LLM Support (Ollama)
249
+
250
+ Wunderland fully supports **local LLM inference** via [Ollama](https://ollama.ai) — run AI models entirely on your hardware with no cloud APIs required.
251
+
252
+ **Quick start:**
253
+ ```bash
254
+ # Install Ollama
255
+ brew install ollama
256
+
257
+ # Start service
258
+ ollama serve
259
+
260
+ # Pull a model
261
+ ollama pull mistral:latest
262
+ # Or uncensored:
263
+ ollama pull dolphin-mistral:7b
264
+ ```
265
+
266
+ **Configure Wunderland:**
267
+ ```javascript
268
+ import { AgentOS } from '@framers/agentos';
269
+
270
+ const agent = new AgentOS();
271
+ await agent.initialize({
272
+ llmProvider: {
273
+ provider: 'ollama',
274
+ baseUrl: 'http://localhost:11434',
275
+ model: 'mistral:latest' // or 'dolphin-mistral:7b'
276
+ }
277
+ });
278
+ ```
279
+
280
+ 📖 **[Full Local LLM Setup Guide →](./docs/LOCAL_LLM_SETUP.md)**
281
+
48
282
  ## Links
49
283
 
50
- - [GitHub](https://github.com/jddunn/wunderland)
284
+ - [Wunderland Network](https://wunderland.sh)
285
+ - [Docs](https://docs.wunderland.sh)
286
+ - [Rabbit Hole Dashboard](https://rabbithole.inc)
287
+ - [GitHub](https://github.com/framersai/voice-chat-assistant/tree/master/packages/wunderland)
51
288
  - [AgentOS](https://agentos.sh)
52
289
  - [npm](https://www.npmjs.com/package/wunderland)
290
+ - [Local LLM Guide](./docs/LOCAL_LLM_SETUP.md)
291
+
53
292
 
54
293
  ## License
55
294
 
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Wunderland CLI — thin bootstrap.
4
+ *
5
+ * All logic lives in TypeScript at src/cli/, compiled to dist/cli/.
6
+ * This file only resolves the compiled entry and hands off to it.
7
+ * Keeping this in plain JS avoids coupling CLI availability to build health.
8
+ */
9
+
10
+ import { fileURLToPath } from 'node:url';
11
+ import { dirname, join } from 'node:path';
12
+
13
+ const __dirname = dirname(fileURLToPath(import.meta.url));
14
+ const cliEntry = join(__dirname, '..', 'dist', 'cli', 'index.js');
15
+
16
+ try {
17
+ const { main } = await import(cliEntry);
18
+ await main(process.argv.slice(2));
19
+ } catch (err) {
20
+ // If the compiled CLI isn't available, show a helpful message.
21
+ if (err?.code === 'ERR_MODULE_NOT_FOUND' || err?.code === 'MODULE_NOT_FOUND') {
22
+ console.error(
23
+ '[wunderland] CLI not built. Run: cd packages/wunderland && pnpm build'
24
+ );
25
+ process.exitCode = 1;
26
+ } else {
27
+ console.error(`[wunderland] ${err instanceof Error ? err.message : String(err)}`);
28
+ process.exitCode = 1;
29
+ }
30
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @fileoverview Agency (multi-agent collectives) module for Wunderland.
3
+ * Re-exports agency primitives from AgentOS.
4
+ * @module wunderland/agency
5
+ */
6
+ export type { AgencySeatState, AgencySeatHistoryEntry, AgencyMemoryConfig, AgencyMemoryRetentionPolicy, AgencySession, AgencyUpsertArgs, AgencySeatRegistrationArgs, AgencyMemoryOperationResult, AgencyMemoryQueryOptions, AgencyMemoryIngestInput, AgencyMemoryChunk, AgencyMemoryQueryResult, AgencyMemoryStats, IAgentCommunicationBus, AgentMessage, AgentMessageType, AgentRequest, AgentResponse, HandoffContext, HandoffResult, } from '@framers/agentos';
7
+ export { AgencyRegistry, AgencyMemoryManager, AgentCommunicationBus, } from '@framers/agentos';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agency/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EACV,eAAe,EACf,sBAAsB,EACtB,kBAAkB,EAClB,2BAA2B,EAC3B,aAAa,EACb,gBAAgB,EAChB,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @fileoverview Agency (multi-agent collectives) module for Wunderland.
3
+ * Re-exports agency primitives from AgentOS.
4
+ * @module wunderland/agency
5
+ */
6
+ export { AgencyRegistry, AgencyMemoryManager, AgentCommunicationBus, } from '@framers/agentos';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agency/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAyBH,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * @fileoverview Step-Up Authorization Manager for Wunderland
3
+ * @module wunderland/authorization/StepUpAuthorizationManager
4
+ *
5
+ * Implements tiered authorization for tool execution:
6
+ * - Tier 1: Autonomous execution
7
+ * - Tier 2: Execute with async review
8
+ * - Tier 3: Require synchronous HITL approval
9
+ */
10
+ import { ToolRiskTier, type StepUpAuthorizationConfig, type AuthorizationResult } from '../core/types.js';
11
+ import type { ToolCallRequest, TenantRiskOverrides, AsyncReviewItem, AuthorizationStatistics, HITLRequestCallback } from './types.js';
12
+ /**
13
+ * Step-Up Authorization Manager.
14
+ *
15
+ * Provides tiered authorization for tool execution with:
16
+ * - Global default risk tiers
17
+ * - Per-tenant overrides
18
+ * - Dynamic escalation triggers
19
+ * - Contextual overrides for trusted sessions
20
+ * - HITL integration for high-risk actions
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const authManager = new StepUpAuthorizationManager(
25
+ * DEFAULT_STEP_UP_AUTH_CONFIG,
26
+ * async (request) => {
27
+ * // Send to UI/Slack for approval
28
+ * return await hitlManager.requestApproval(request);
29
+ * }
30
+ * );
31
+ *
32
+ * // Register tenant overrides
33
+ * authManager.setTenantOverrides({
34
+ * tenantId: 'acme-corp',
35
+ * toolOverrides: new Map([['delete-all', ToolRiskTier.TIER_3_SYNC_HITL]]),
36
+ * categoryOverrides: new Map([['system', ToolRiskTier.TIER_3_SYNC_HITL]]),
37
+ * });
38
+ *
39
+ * // Authorize a tool call
40
+ * const result = await authManager.authorize({
41
+ * tool: { id: 'send-email', displayName: 'Send Email', category: 'communication', hasSideEffects: true },
42
+ * args: { to: 'user@example.com', subject: 'Hello' },
43
+ * context: { userId: 'user-1', tenantId: 'acme-corp' },
44
+ * });
45
+ *
46
+ * if (result.authorized) {
47
+ * // Execute the tool
48
+ * }
49
+ * ```
50
+ */
51
+ export declare class StepUpAuthorizationManager {
52
+ private readonly config;
53
+ private readonly tenantOverrides;
54
+ private readonly asyncReviewQueue;
55
+ private readonly hitlCallback?;
56
+ private stats;
57
+ private totalHITLTimeMs;
58
+ private hitlRequestCount;
59
+ constructor(config?: Partial<StepUpAuthorizationConfig>, hitlCallback?: HITLRequestCallback);
60
+ /**
61
+ * Authorizes a tool execution request.
62
+ *
63
+ * When `autoApproveAll` is enabled in the config, all requests are
64
+ * immediately authorized as Tier 1 (autonomous) with no further checks.
65
+ * This covers skill tools, side-effect tools, capability-requiring tools,
66
+ * destructive commands, build commands, and every other tool type.
67
+ */
68
+ authorize(request: ToolCallRequest): Promise<AuthorizationResult>;
69
+ /**
70
+ * Returns the effective risk tier for a request without performing
71
+ * authorization side effects (no stats, no async-review queue, no HITL).
72
+ *
73
+ * Useful for filtering tool exposure in headless/server modes.
74
+ */
75
+ getRiskTier(request: ToolCallRequest): ToolRiskTier;
76
+ /**
77
+ * Determines the effective risk tier for a request.
78
+ */
79
+ private determineEffectiveTier;
80
+ /**
81
+ * Classifies a tool's base risk tier.
82
+ */
83
+ private classifyTool;
84
+ /**
85
+ * Evaluates an escalation trigger.
86
+ */
87
+ private evaluateTrigger;
88
+ /**
89
+ * Checks if context matches an override condition.
90
+ */
91
+ private contextMatches;
92
+ /**
93
+ * Tier 1: Autonomous authorization.
94
+ */
95
+ private authorizeAutonomous;
96
+ /**
97
+ * Tier 2: Authorization with async review.
98
+ */
99
+ private authorizeWithAsyncReview;
100
+ /**
101
+ * Tier 3: Authorization with synchronous HITL.
102
+ */
103
+ private authorizeWithHITL;
104
+ /**
105
+ * Builds an HITL approval request from a tool call request.
106
+ */
107
+ private buildHITLRequest;
108
+ /**
109
+ * Maps tool category to severity level.
110
+ */
111
+ private mapToolCategoryToSeverity;
112
+ /**
113
+ * Summarizes tool arguments for display.
114
+ */
115
+ private summarizeArgs;
116
+ /**
117
+ * Assesses potential consequences of a tool execution.
118
+ */
119
+ private assessConsequences;
120
+ /**
121
+ * Determines if a tool action is reversible.
122
+ */
123
+ private isReversible;
124
+ /**
125
+ * Extracts monetary value from args if present.
126
+ */
127
+ private extractMonetaryValue;
128
+ /**
129
+ * Extracts cost information from args.
130
+ */
131
+ private extractCost;
132
+ /**
133
+ * Checks if args contain sensitive data patterns.
134
+ */
135
+ private containsSensitiveData;
136
+ /**
137
+ * Sets tenant-specific risk overrides.
138
+ */
139
+ setTenantOverrides(overrides: TenantRiskOverrides): void;
140
+ /**
141
+ * Removes tenant overrides.
142
+ */
143
+ removeTenantOverrides(tenantId: string): boolean;
144
+ /**
145
+ * Gets tenant overrides.
146
+ */
147
+ getTenantOverrides(tenantId: string): TenantRiskOverrides | undefined;
148
+ /**
149
+ * Gets the async review queue.
150
+ */
151
+ getAsyncReviewQueue(): readonly AsyncReviewItem[];
152
+ /**
153
+ * Gets pending review items.
154
+ */
155
+ getPendingReviews(): AsyncReviewItem[];
156
+ /**
157
+ * Marks a review item as reviewed.
158
+ */
159
+ markReviewed(itemId: string, decision: {
160
+ status: 'approved' | 'flagged' | 'rejected';
161
+ reviewerId: string;
162
+ notes?: string;
163
+ }): boolean;
164
+ /**
165
+ * Clears reviewed items from the queue.
166
+ */
167
+ clearReviewedItems(): number;
168
+ /**
169
+ * Gets authorization statistics.
170
+ */
171
+ getStatistics(): AuthorizationStatistics;
172
+ /**
173
+ * Resets statistics.
174
+ */
175
+ resetStatistics(): void;
176
+ /**
177
+ * Gets the current configuration.
178
+ */
179
+ getConfig(): StepUpAuthorizationConfig;
180
+ }
181
+ //# sourceMappingURL=StepUpAuthorizationManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepUpAuthorizationManager.d.ts","sourceRoot":"","sources":["../../src/authorization/StepUpAuthorizationManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EACL,YAAY,EACZ,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EAIzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAGV,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,uBAAuB,EAEvB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0C;IAC1E,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyB;IAC1D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAsB;IAGpD,OAAO,CAAC,KAAK,CAYX;IACF,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,gBAAgB,CAAK;gBAG3B,MAAM,GAAE,OAAO,CAAC,yBAAyB,CAAM,EAC/C,YAAY,CAAC,EAAE,mBAAmB;IASpC;;;;;;;OAOG;IACG,SAAS,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAmCvE;;;;;OAKG;IACH,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,YAAY;IAKnD;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAuB9B;;OAEG;IACH,OAAO,CAAC,YAAY;IAmDpB;;OAEG;IACH,OAAO,CAAC,eAAe;IAgCvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAetB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAwBhC;;OAEG;YACW,iBAAiB;IAyE/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAyBxB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAmBjC;;OAEG;IACH,OAAO,CAAC,aAAa;IAerB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA6B1B;;OAEG;IACH,OAAO,CAAC,YAAY;IAgBpB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAmB5B;;OAEG;IACH,OAAO,CAAC,WAAW;IAWnB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;OAEG;IACH,kBAAkB,CAAC,SAAS,EAAE,mBAAmB,GAAG,IAAI;IAIxD;;OAEG;IACH,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIhD;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAIrE;;OAEG;IACH,mBAAmB,IAAI,SAAS,eAAe,EAAE;IAIjD;;OAEG;IACH,iBAAiB,IAAI,eAAe,EAAE;IAItC;;OAEG;IACH,YAAY,CACV,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE;QACR,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;QAC5C,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GACA,OAAO;IAYV;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAW5B;;OAEG;IACH,aAAa,IAAI,uBAAuB;IAIxC;;OAEG;IACH,eAAe,IAAI,IAAI;IAkBvB;;OAEG;IACH,SAAS,IAAI,yBAAyB;CAGvC"}