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.
- package/LICENSE +21 -0
- package/README.md +4 -3
- package/dist/advanced/index.d.ts +2 -1
- package/dist/advanced/index.d.ts.map +1 -1
- package/dist/advanced/index.js +1 -1
- package/dist/advanced/index.js.map +1 -1
- package/dist/api/chat-runtime.d.ts +12 -1
- package/dist/api/chat-runtime.d.ts.map +1 -1
- package/dist/api/chat-runtime.js +29 -436
- package/dist/api/chat-runtime.js.map +1 -1
- package/dist/api/routes/agents.d.ts +21 -0
- package/dist/api/routes/agents.d.ts.map +1 -0
- package/dist/api/routes/agents.js +82 -0
- package/dist/api/routes/agents.js.map +1 -0
- package/dist/api/routes/chat.d.ts +23 -0
- package/dist/api/routes/chat.d.ts.map +1 -0
- package/dist/api/routes/chat.js +286 -0
- package/dist/api/routes/chat.js.map +1 -0
- package/dist/api/routes/config.d.ts +21 -0
- package/dist/api/routes/config.d.ts.map +1 -0
- package/dist/api/routes/config.js +43 -0
- package/dist/api/routes/config.js.map +1 -0
- package/dist/api/routes/health.d.ts +39 -0
- package/dist/api/routes/health.d.ts.map +1 -0
- package/dist/api/routes/health.js +155 -0
- package/dist/api/routes/health.js.map +1 -0
- package/dist/api/routes/index.d.ts +32 -0
- package/dist/api/routes/index.d.ts.map +1 -0
- package/dist/api/routes/index.js +55 -0
- package/dist/api/routes/index.js.map +1 -0
- package/dist/api/routes/social.d.ts +24 -0
- package/dist/api/routes/social.d.ts.map +1 -0
- package/dist/api/routes/social.js +96 -0
- package/dist/api/routes/social.js.map +1 -0
- package/dist/api/routes/types.d.ts +85 -0
- package/dist/api/routes/types.d.ts.map +1 -0
- package/dist/api/routes/types.js +11 -0
- package/dist/api/routes/types.js.map +1 -0
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +55 -501
- package/dist/api/server.js.map +1 -1
- package/dist/api/types.d.ts +126 -1
- package/dist/api/types.d.ts.map +1 -1
- package/dist/bootstrap/AgentBootstrap.d.ts +233 -0
- package/dist/bootstrap/AgentBootstrap.d.ts.map +1 -0
- package/dist/bootstrap/AgentBootstrap.js +673 -0
- package/dist/bootstrap/AgentBootstrap.js.map +1 -0
- package/dist/bootstrap/index.d.ts +7 -0
- package/dist/bootstrap/index.d.ts.map +1 -0
- package/dist/bootstrap/index.js +6 -0
- package/dist/bootstrap/index.js.map +1 -0
- package/dist/cli/commands/ChatREPL.d.ts +246 -0
- package/dist/cli/commands/ChatREPL.d.ts.map +1 -0
- package/dist/cli/commands/ChatREPL.js +410 -0
- package/dist/cli/commands/ChatREPL.js.map +1 -0
- package/dist/cli/commands/ChatStreamRenderer.d.ts +140 -0
- package/dist/cli/commands/ChatStreamRenderer.d.ts.map +1 -0
- package/dist/cli/commands/ChatStreamRenderer.js +187 -0
- package/dist/cli/commands/ChatStreamRenderer.js.map +1 -0
- package/dist/cli/commands/agency.d.ts +42 -0
- package/dist/cli/commands/agency.d.ts.map +1 -1
- package/dist/cli/commands/agency.js +362 -21
- package/dist/cli/commands/agency.js.map +1 -1
- package/dist/cli/commands/{agents.d.ts → agent/agents.d.ts} +1 -1
- package/dist/cli/commands/agent/agents.d.ts.map +1 -0
- package/dist/cli/commands/{agents.js → agent/agents.js} +4 -4
- package/dist/cli/commands/agent/agents.js.map +1 -0
- package/dist/cli/commands/{logs.d.ts → agent/logs.d.ts} +1 -1
- package/dist/cli/commands/agent/logs.d.ts.map +1 -0
- package/dist/cli/commands/{logs.js → agent/logs.js} +3 -3
- package/dist/cli/commands/agent/logs.js.map +1 -0
- package/dist/cli/commands/{monitor.d.ts → agent/monitor.d.ts} +1 -1
- package/dist/cli/commands/agent/monitor.d.ts.map +1 -0
- package/dist/cli/commands/{monitor.js → agent/monitor.js} +3 -3
- package/dist/cli/commands/agent/monitor.js.map +1 -0
- package/dist/cli/commands/{ps.d.ts → agent/ps.d.ts} +1 -1
- package/dist/cli/commands/agent/ps.d.ts.map +1 -0
- package/dist/cli/commands/{ps.js → agent/ps.js} +3 -3
- package/dist/cli/commands/agent/ps.js.map +1 -0
- package/dist/cli/commands/{serve.d.ts → agent/serve.d.ts} +1 -1
- package/dist/cli/commands/agent/serve.d.ts.map +1 -0
- package/dist/cli/commands/{serve.js → agent/serve.js} +5 -5
- package/dist/cli/commands/agent/serve.js.map +1 -0
- package/dist/cli/commands/{stop.d.ts → agent/stop.d.ts} +1 -1
- package/dist/cli/commands/agent/stop.d.ts.map +1 -0
- package/dist/cli/commands/{stop.js → agent/stop.js} +3 -3
- package/dist/cli/commands/agent/stop.js.map +1 -0
- package/dist/cli/commands/ai/audio.d.ts +18 -0
- package/dist/cli/commands/ai/audio.d.ts.map +1 -0
- package/dist/cli/commands/ai/audio.js +191 -0
- package/dist/cli/commands/ai/audio.js.map +1 -0
- package/dist/cli/commands/{image.d.ts → ai/image.d.ts} +1 -1
- package/dist/cli/commands/ai/image.d.ts.map +1 -0
- package/dist/cli/commands/{image.js → ai/image.js} +5 -5
- package/dist/cli/commands/ai/image.js.map +1 -0
- package/dist/cli/commands/{structured.d.ts → ai/structured.d.ts} +1 -1
- package/dist/cli/commands/ai/structured.d.ts.map +1 -0
- package/dist/cli/commands/{structured.js → ai/structured.js} +5 -5
- package/dist/cli/commands/ai/structured.js.map +1 -0
- package/dist/cli/commands/ai/video.d.ts +19 -0
- package/dist/cli/commands/ai/video.d.ts.map +1 -0
- package/dist/cli/commands/ai/video.js +232 -0
- package/dist/cli/commands/ai/video.js.map +1 -0
- package/dist/cli/commands/{vision.d.ts → ai/vision.d.ts} +1 -1
- package/dist/cli/commands/ai/vision.d.ts.map +1 -0
- package/dist/cli/commands/{vision.js → ai/vision.js} +4 -4
- package/dist/cli/commands/ai/vision.js.map +1 -0
- package/dist/cli/commands/{auth-status.d.ts → auth/auth-status.d.ts} +1 -1
- package/dist/cli/commands/auth/auth-status.d.ts.map +1 -0
- package/dist/cli/commands/{auth-status.js → auth/auth-status.js} +2 -2
- package/dist/cli/commands/auth/auth-status.js.map +1 -0
- package/dist/cli/commands/{login.d.ts → auth/login.d.ts} +1 -1
- package/dist/cli/commands/auth/login.d.ts.map +1 -0
- package/dist/cli/commands/{login.js → auth/login.js} +146 -6
- package/dist/cli/commands/auth/login.js.map +1 -0
- package/dist/cli/commands/{logout.d.ts → auth/logout.d.ts} +1 -1
- package/dist/cli/commands/auth/logout.d.ts.map +1 -0
- package/dist/cli/commands/{logout.js → auth/logout.js} +2 -2
- package/dist/cli/commands/auth/logout.js.map +1 -0
- package/dist/cli/commands/batch-create.d.ts +37 -0
- package/dist/cli/commands/batch-create.d.ts.map +1 -0
- package/dist/cli/commands/batch-create.js +655 -0
- package/dist/cli/commands/batch-create.js.map +1 -0
- package/dist/cli/commands/channels.js +1 -1
- package/dist/cli/commands/channels.js.map +1 -1
- package/dist/cli/commands/chat.d.ts +5 -1
- package/dist/cli/commands/chat.d.ts.map +1 -1
- package/dist/cli/commands/chat.js +290 -414
- package/dist/cli/commands/chat.js.map +1 -1
- package/dist/cli/commands/create.js +1 -1
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/export-session.js +1 -1
- package/dist/cli/commands/export-session.js.map +1 -1
- package/dist/cli/commands/extensions.d.ts.map +1 -1
- package/dist/cli/commands/extensions.js +7 -1
- package/dist/cli/commands/extensions.js.map +1 -1
- package/dist/cli/commands/mission.d.ts +8 -4
- package/dist/cli/commands/mission.d.ts.map +1 -1
- package/dist/cli/commands/mission.js +235 -8
- package/dist/cli/commands/mission.js.map +1 -1
- package/dist/cli/commands/rag.d.ts +6 -0
- package/dist/cli/commands/rag.d.ts.map +1 -1
- package/dist/cli/commands/rag.js +487 -138
- package/dist/cli/commands/rag.js.map +1 -1
- package/dist/cli/commands/spawn.d.ts +40 -0
- package/dist/cli/commands/spawn.d.ts.map +1 -0
- package/dist/cli/commands/spawn.js +515 -0
- package/dist/cli/commands/spawn.js.map +1 -0
- package/dist/cli/commands/start/channel-handler.d.ts +1 -1
- package/dist/cli/commands/start/channel-handler.d.ts.map +1 -1
- package/dist/cli/commands/start/channel-handler.js +1 -1
- package/dist/cli/commands/start/channel-handler.js.map +1 -1
- package/dist/cli/commands/start/extension-loader.d.ts.map +1 -1
- package/dist/cli/commands/start/extension-loader.js +16 -18
- package/dist/cli/commands/start/extension-loader.js.map +1 -1
- package/dist/cli/commands/start/http-server.d.ts +5 -1
- package/dist/cli/commands/start/http-server.d.ts.map +1 -1
- package/dist/cli/commands/start/http-server.js +60 -1421
- package/dist/cli/commands/start/http-server.js.map +1 -1
- package/dist/cli/commands/start/llm-provider-setup.js +1 -1
- package/dist/cli/commands/start/llm-provider-setup.js.map +1 -1
- package/dist/cli/commands/start/routes/chat.d.ts +20 -0
- package/dist/cli/commands/start/routes/chat.d.ts.map +1 -0
- package/dist/cli/commands/start/routes/chat.js +443 -0
- package/dist/cli/commands/start/routes/chat.js.map +1 -0
- package/dist/cli/commands/start/routes/config.d.ts +17 -0
- package/dist/cli/commands/start/routes/config.d.ts.map +1 -0
- package/dist/cli/commands/start/routes/config.js +47 -0
- package/dist/cli/commands/start/routes/config.js.map +1 -0
- package/dist/cli/commands/start/routes/health.d.ts +32 -0
- package/dist/cli/commands/start/routes/health.d.ts.map +1 -0
- package/dist/cli/commands/start/routes/health.js +171 -0
- package/dist/cli/commands/start/routes/health.js.map +1 -0
- package/dist/cli/commands/start/routes/helpers.d.ts +30 -0
- package/dist/cli/commands/start/routes/helpers.d.ts.map +1 -0
- package/dist/cli/commands/start/routes/helpers.js +90 -0
- package/dist/cli/commands/start/routes/helpers.js.map +1 -0
- package/dist/cli/commands/start/routes/html-pages.d.ts +12 -0
- package/dist/cli/commands/start/routes/html-pages.d.ts.map +1 -0
- package/dist/cli/commands/start/routes/html-pages.js +612 -0
- package/dist/cli/commands/start/routes/html-pages.js.map +1 -0
- package/dist/cli/commands/start/routes/index.d.ts +31 -0
- package/dist/cli/commands/start/routes/index.d.ts.map +1 -0
- package/dist/cli/commands/start/routes/index.js +53 -0
- package/dist/cli/commands/start/routes/index.js.map +1 -0
- package/dist/cli/commands/start/routes/social.d.ts +36 -0
- package/dist/cli/commands/start/routes/social.d.ts.map +1 -0
- package/dist/cli/commands/start/routes/social.js +210 -0
- package/dist/cli/commands/start/routes/social.js.map +1 -0
- package/dist/cli/commands/start/routes/types.d.ts +71 -0
- package/dist/cli/commands/start/routes/types.d.ts.map +1 -0
- package/dist/cli/commands/start/routes/types.js +10 -0
- package/dist/cli/commands/start/routes/types.js.map +1 -0
- package/dist/cli/commands/start/seed-initializer.js +2 -2
- package/dist/cli/commands/start/seed-initializer.js.map +1 -1
- package/dist/cli/commands/start/startup-display.js +1 -1
- package/dist/cli/commands/start/startup-display.js.map +1 -1
- package/dist/cli/config/agent-history.js +2 -2
- package/dist/cli/config/agent-history.js.map +1 -1
- package/dist/cli/constants.d.ts +20 -4
- package/dist/cli/constants.d.ts.map +1 -1
- package/dist/cli/constants.js +3 -1
- package/dist/cli/constants.js.map +1 -1
- package/dist/cli/daemon/daemon-state.js +1 -1
- package/dist/cli/daemon/daemon-state.js.map +1 -1
- package/dist/cli/extensions/categories.d.ts +49 -0
- package/dist/cli/extensions/categories.d.ts.map +1 -0
- package/dist/cli/extensions/categories.js +87 -0
- package/dist/cli/extensions/categories.js.map +1 -0
- package/dist/cli/extensions/recommender.d.ts.map +1 -1
- package/dist/cli/extensions/recommender.js +70 -0
- package/dist/cli/extensions/recommender.js.map +1 -1
- package/dist/cli/help/topics.d.ts +1 -1
- package/dist/cli/help/topics.d.ts.map +1 -1
- package/dist/cli/help/topics.js +70 -1
- package/dist/cli/help/topics.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +82 -13
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/renderers/MissionStreamRenderer.d.ts +29 -0
- package/dist/cli/renderers/MissionStreamRenderer.d.ts.map +1 -0
- package/dist/cli/renderers/MissionStreamRenderer.js +170 -0
- package/dist/cli/renderers/MissionStreamRenderer.js.map +1 -0
- package/dist/cli/tui/index.d.ts.map +1 -1
- package/dist/cli/tui/index.js +29 -17
- package/dist/cli/tui/index.js.map +1 -1
- package/dist/cli/tui/views/agents-view.d.ts.map +1 -1
- package/dist/cli/tui/views/agents-view.js +17 -5
- package/dist/cli/tui/views/agents-view.js.map +1 -1
- package/dist/cli/tui/views/extensions-view.d.ts +7 -0
- package/dist/cli/tui/views/extensions-view.d.ts.map +1 -1
- package/dist/cli/tui/views/extensions-view.js +94 -29
- package/dist/cli/tui/views/extensions-view.js.map +1 -1
- package/dist/cli/tui/views/voice-view.d.ts +3 -0
- package/dist/cli/tui/views/voice-view.d.ts.map +1 -1
- package/dist/cli/tui/views/voice-view.js +15 -7
- package/dist/cli/tui/views/voice-view.js.map +1 -1
- package/dist/cli/types.d.ts +10 -0
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/config/provider-defaults.d.ts.map +1 -1
- package/dist/config/provider-defaults.js +42 -1
- package/dist/config/provider-defaults.js.map +1 -1
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +152 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/inference/SmallModelResolver.d.ts.map +1 -1
- package/dist/inference/SmallModelResolver.js +4 -0
- package/dist/inference/SmallModelResolver.js.map +1 -1
- package/dist/jobs/JobExecutor.d.ts +3 -1
- package/dist/jobs/JobExecutor.d.ts.map +1 -1
- package/dist/jobs/JobExecutor.js +46 -46
- package/dist/jobs/JobExecutor.js.map +1 -1
- package/dist/memory/CognitiveMemoryInitializer.d.ts +70 -0
- package/dist/memory/CognitiveMemoryInitializer.d.ts.map +1 -0
- package/dist/memory/CognitiveMemoryInitializer.js +97 -0
- package/dist/memory/CognitiveMemoryInitializer.js.map +1 -0
- package/dist/memory/MemorySystemInitializer.d.ts +23 -0
- package/dist/memory/MemorySystemInitializer.d.ts.map +1 -1
- package/dist/memory/MemorySystemInitializer.js +28 -5
- package/dist/memory/MemorySystemInitializer.js.map +1 -1
- package/dist/observability/usage-ledger.d.ts.map +1 -1
- package/dist/observability/usage-ledger.js +51 -19
- package/dist/observability/usage-ledger.js.map +1 -1
- package/dist/public/index.d.ts.map +1 -1
- package/dist/public/index.js +97 -133
- package/dist/public/index.js.map +1 -1
- package/dist/public/types.d.ts +38 -1
- package/dist/public/types.d.ts.map +1 -1
- package/dist/runtime/ToolApprovalHandler.d.ts +152 -0
- package/dist/runtime/ToolApprovalHandler.d.ts.map +1 -0
- package/dist/runtime/ToolApprovalHandler.js +268 -0
- package/dist/runtime/ToolApprovalHandler.js.map +1 -0
- package/dist/runtime/ToolStreamProcessor.d.ts +200 -0
- package/dist/runtime/ToolStreamProcessor.d.ts.map +1 -0
- package/dist/runtime/ToolStreamProcessor.js +409 -0
- package/dist/runtime/ToolStreamProcessor.js.map +1 -0
- package/dist/runtime/agentos-runtime.d.ts +9 -0
- package/dist/runtime/agentos-runtime.d.ts.map +1 -0
- package/dist/runtime/agentos-runtime.js +9 -0
- package/dist/runtime/agentos-runtime.js.map +1 -0
- package/dist/runtime/graph-runner.d.ts +14 -1
- package/dist/runtime/graph-runner.d.ts.map +1 -1
- package/dist/runtime/graph-runner.js +103 -8
- package/dist/runtime/graph-runner.js.map +1 -1
- package/dist/runtime/index.d.ts +3 -0
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +3 -0
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/policy.js +1 -1
- package/dist/runtime/policy.js.map +1 -1
- package/dist/runtime/query-router-init.d.ts +145 -0
- package/dist/runtime/query-router-init.d.ts.map +1 -0
- package/dist/runtime/query-router-init.js +357 -0
- package/dist/runtime/query-router-init.js.map +1 -0
- package/dist/runtime/rag-state-persistence.d.ts +218 -0
- package/dist/runtime/rag-state-persistence.d.ts.map +1 -0
- package/dist/runtime/rag-state-persistence.js +280 -0
- package/dist/runtime/rag-state-persistence.js.map +1 -0
- package/dist/{cli/openai → runtime}/schema-on-demand.d.ts +2 -2
- package/dist/runtime/schema-on-demand.d.ts.map +1 -0
- package/dist/{cli/openai → runtime}/schema-on-demand.js +5 -5
- package/dist/runtime/schema-on-demand.js.map +1 -0
- package/dist/runtime/system-prompt-builder.d.ts.map +1 -1
- package/dist/runtime/system-prompt-builder.js +10 -1
- package/dist/runtime/system-prompt-builder.js.map +1 -1
- package/dist/runtime/tool-calling.d.ts +5 -185
- package/dist/runtime/tool-calling.d.ts.map +1 -1
- package/dist/runtime/tool-calling.js +44 -657
- package/dist/runtime/tool-calling.js.map +1 -1
- package/dist/runtime/unified-retriever-builder.d.ts +189 -0
- package/dist/runtime/unified-retriever-builder.d.ts.map +1 -0
- package/dist/runtime/unified-retriever-builder.js +334 -0
- package/dist/runtime/unified-retriever-builder.js.map +1 -0
- package/dist/security/DualLLMAuditor.d.ts +1 -1
- package/dist/security/DualLLMAuditor.d.ts.map +1 -1
- package/dist/security/NotificationManager.d.ts.map +1 -1
- package/dist/security/NotificationManager.js +46 -46
- package/dist/security/NotificationManager.js.map +1 -1
- package/dist/security/PreLLMClassifier.d.ts +1 -1
- package/dist/security/PreLLMClassifier.d.ts.map +1 -1
- package/dist/security/WunderlandSecurityPipeline.d.ts +1 -1
- package/dist/security/WunderlandSecurityPipeline.d.ts.map +1 -1
- package/dist/security/env-secrets.d.ts.map +1 -0
- package/dist/security/env-secrets.js.map +1 -0
- package/dist/security/types.d.ts +1 -1
- package/dist/security/types.d.ts.map +1 -1
- package/dist/security/types.js +1 -1
- package/dist/security/types.js.map +1 -1
- package/dist/social/NewsFeedIngester.d.ts +6 -6
- package/dist/social/NewsFeedIngester.js +6 -6
- package/dist/social/NewsroomAgency.d.ts +1 -1
- package/dist/social/NewsroomAgency.d.ts.map +1 -1
- package/dist/social/NewsroomAgency.js +1 -1
- package/dist/social/NewsroomAgency.js.map +1 -1
- package/dist/social/WonderlandNetwork.d.ts +1 -3
- package/dist/social/WonderlandNetwork.d.ts.map +1 -1
- package/dist/social/WonderlandNetwork.js +1 -5
- package/dist/social/WonderlandNetwork.js.map +1 -1
- package/dist/social/sources/HackerNewsFetcher.d.ts.map +1 -1
- package/dist/social/sources/HackerNewsFetcher.js +44 -1
- package/dist/social/sources/HackerNewsFetcher.js.map +1 -1
- package/dist/storage/MemoryAutoIngestPipeline.d.ts +26 -0
- package/dist/storage/MemoryAutoIngestPipeline.d.ts.map +1 -1
- package/dist/storage/MemoryAutoIngestPipeline.js +55 -25
- package/dist/storage/MemoryAutoIngestPipeline.js.map +1 -1
- package/package.json +6 -5
- package/presets/agents/ai-receptionist/agent.config.json +1 -0
- package/presets/agents/code-reviewer/agent.config.json +1 -0
- package/presets/agents/creative-writer/agent.config.json +4 -0
- package/presets/agents/customer-support/agent.config.json +1 -0
- package/presets/agents/data-analyst/agent.config.json +1 -0
- package/presets/agents/devops-assistant/agent.config.json +1 -0
- package/presets/agents/personal-assistant/agent.config.json +4 -0
- package/presets/agents/research-assistant/agent.config.json +4 -0
- package/presets/agents/security-auditor/agent.config.json +1 -0
- package/presets/missions/research-report.mission.yaml +90 -0
- package/dist/cli/commands/agents.d.ts.map +0 -1
- package/dist/cli/commands/agents.js.map +0 -1
- package/dist/cli/commands/auth-status.d.ts.map +0 -1
- package/dist/cli/commands/auth-status.js.map +0 -1
- package/dist/cli/commands/image.d.ts.map +0 -1
- package/dist/cli/commands/image.js.map +0 -1
- package/dist/cli/commands/login.d.ts.map +0 -1
- package/dist/cli/commands/login.js.map +0 -1
- package/dist/cli/commands/logout.d.ts.map +0 -1
- package/dist/cli/commands/logout.js.map +0 -1
- package/dist/cli/commands/logs.d.ts.map +0 -1
- package/dist/cli/commands/logs.js.map +0 -1
- package/dist/cli/commands/monitor.d.ts.map +0 -1
- package/dist/cli/commands/monitor.js.map +0 -1
- package/dist/cli/commands/ps.d.ts.map +0 -1
- package/dist/cli/commands/ps.js.map +0 -1
- package/dist/cli/commands/serve.d.ts.map +0 -1
- package/dist/cli/commands/serve.js.map +0 -1
- package/dist/cli/commands/stop.d.ts.map +0 -1
- package/dist/cli/commands/stop.js.map +0 -1
- package/dist/cli/commands/structured.d.ts.map +0 -1
- package/dist/cli/commands/structured.js.map +0 -1
- package/dist/cli/commands/vision.d.ts.map +0 -1
- package/dist/cli/commands/vision.js.map +0 -1
- package/dist/cli/config/workspace.d.ts +0 -6
- package/dist/cli/config/workspace.d.ts.map +0 -1
- package/dist/cli/config/workspace.js +0 -6
- package/dist/cli/config/workspace.js.map +0 -1
- package/dist/cli/observability/otel.d.ts +0 -6
- package/dist/cli/observability/otel.d.ts.map +0 -1
- package/dist/cli/observability/otel.js +0 -6
- package/dist/cli/observability/otel.js.map +0 -1
- package/dist/cli/openai/schema-on-demand.d.ts.map +0 -1
- package/dist/cli/openai/schema-on-demand.js.map +0 -1
- package/dist/cli/openai/tool-calling.d.ts +0 -6
- package/dist/cli/openai/tool-calling.d.ts.map +0 -1
- package/dist/cli/openai/tool-calling.js +0 -6
- package/dist/cli/openai/tool-calling.js.map +0 -1
- package/dist/cli/security/env-secrets.d.ts.map +0 -1
- package/dist/cli/security/env-secrets.js.map +0 -1
- package/dist/cli/security/runtime-policy.d.ts +0 -6
- package/dist/cli/security/runtime-policy.d.ts.map +0 -1
- package/dist/cli/security/runtime-policy.js +0 -6
- package/dist/cli/security/runtime-policy.js.map +0 -1
- /package/dist/{cli/security → security}/env-secrets.d.ts +0 -0
- /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> ·
|
|
27
27
|
<a href="https://github.com/jddunn/wunderland">GitHub</a> ·
|
|
28
28
|
<a href="https://discord.gg/KxF9b6HY6h">Discord</a> ·
|
|
29
|
-
<a href="https://t.me/
|
|
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 | [@
|
|
666
|
-
| X/Twitter | [@
|
|
666
|
+
| Telegram | [@rabbitholewun](https://t.me/rabbitholewun) |
|
|
667
|
+
| X/Twitter | [@rabbitholewun](https://x.com/rabbitholewun) |
|
|
667
668
|
|
|
668
669
|
---
|
|
669
670
|
|
package/dist/advanced/index.d.ts
CHANGED
|
@@ -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
|
|
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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/advanced/index.ts"],"names":[],"mappings":"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"}
|
package/dist/advanced/index.js
CHANGED
|
@@ -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
|
|
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":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,eAAe;AACf,cAAc,kBAAkB,CAAC;AAEjC,mBAAmB;AACnB,cAAc,sBAAsB,CAAC;AACrC,OAAO,EACL,gBAAgB,GAEjB,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,EAIL,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,cAAc,EAA6B,MAAM,+BAA+B,CAAC;AAC1F,OAAO,EACL,WAAW,GAIZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAKL,iBAAiB,EACjB,yBAAyB,EACzB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,GACnB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,gBAAgB,GAGjB,MAAM,iCAAiC,CAAC;AAEzC,oBAAoB;AACpB,cAAc,uBAAuB,CAAC;AAEtC,wBAAwB;AACxB,cAAc,2BAA2B,CAAC;AAE1C,oDAAoD;AACpD,cAAc,qBAAqB,CAAC;AAEpC,mDAAmD;AACnD,cAAc,qBAAqB,CAAC;AAEpC,wCAAwC;AACxC,cAAc,oBAAoB,CAAC;AAEnC,+CAA+C;AAC/C,cAAc,iBAAiB,CAAC;AAEhC,2CAA2C;AAC3C,cAAc,oBAAoB,CAAC;AAEnC,2BAA2B;AAC3B,cAAc,uBAAuB,CAAC;AAEtC,wBAAwB;AACxB,cAAc,yBAAyB,CAAC;AAExC,6BAA6B;AAC7B,cAAc,wBAAwB,CAAC;AAEvC,0BAA0B;AAC1B,cAAc,uBAAuB,CAAC;AAEtC,0BAA0B;AAC1B,cAAc,sBAAsB,CAAC;
|
|
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 {
|
|
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
|
|
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"}
|
package/dist/api/chat-runtime.js
CHANGED
|
@@ -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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|