wunderland 0.36.29 → 0.38.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 (184) hide show
  1. package/dist/api/chat-runtime.d.ts.map +1 -1
  2. package/dist/api/chat-runtime.js +99 -2
  3. package/dist/api/chat-runtime.js.map +1 -1
  4. package/dist/api/server.d.ts +2 -0
  5. package/dist/api/server.d.ts.map +1 -1
  6. package/dist/api/server.js +158 -21
  7. package/dist/api/server.js.map +1 -1
  8. package/dist/api/types.d.ts +118 -32
  9. package/dist/api/types.d.ts.map +1 -1
  10. package/dist/cli/commands/channels.d.ts.map +1 -1
  11. package/dist/cli/commands/channels.js +10 -0
  12. package/dist/cli/commands/channels.js.map +1 -1
  13. package/dist/cli/commands/chat.d.ts.map +1 -1
  14. package/dist/cli/commands/chat.js +50 -32
  15. package/dist/cli/commands/chat.js.map +1 -1
  16. package/dist/cli/commands/completions.d.ts.map +1 -1
  17. package/dist/cli/commands/completions.js +1 -0
  18. package/dist/cli/commands/completions.js.map +1 -1
  19. package/dist/cli/commands/create.d.ts +6 -0
  20. package/dist/cli/commands/create.d.ts.map +1 -1
  21. package/dist/cli/commands/create.js +44 -16
  22. package/dist/cli/commands/create.js.map +1 -1
  23. package/dist/cli/commands/deploy.d.ts.map +1 -1
  24. package/dist/cli/commands/deploy.js +32 -32
  25. package/dist/cli/commands/deploy.js.map +1 -1
  26. package/dist/cli/commands/extensions.js +2 -2
  27. package/dist/cli/commands/extensions.js.map +1 -1
  28. package/dist/cli/commands/init.d.ts.map +1 -1
  29. package/dist/cli/commands/init.js +27 -42
  30. package/dist/cli/commands/init.js.map +1 -1
  31. package/dist/cli/commands/list-personas.d.ts +7 -0
  32. package/dist/cli/commands/list-personas.d.ts.map +1 -0
  33. package/dist/cli/commands/list-personas.js +79 -0
  34. package/dist/cli/commands/list-personas.js.map +1 -0
  35. package/dist/cli/commands/list-presets.d.ts.map +1 -1
  36. package/dist/cli/commands/list-presets.js +4 -0
  37. package/dist/cli/commands/list-presets.js.map +1 -1
  38. package/dist/cli/commands/rag.d.ts.map +1 -1
  39. package/dist/cli/commands/rag.js +8 -9
  40. package/dist/cli/commands/rag.js.map +1 -1
  41. package/dist/cli/commands/start/channel-handler.d.ts.map +1 -1
  42. package/dist/cli/commands/start/channel-handler.js +9 -3
  43. package/dist/cli/commands/start/channel-handler.js.map +1 -1
  44. package/dist/cli/commands/start/config-loader.d.ts +3 -0
  45. package/dist/cli/commands/start/config-loader.d.ts.map +1 -1
  46. package/dist/cli/commands/start/config-loader.js +57 -10
  47. package/dist/cli/commands/start/config-loader.js.map +1 -1
  48. package/dist/cli/commands/start/extension-loader.d.ts.map +1 -1
  49. package/dist/cli/commands/start/extension-loader.js +43 -0
  50. package/dist/cli/commands/start/extension-loader.js.map +1 -1
  51. package/dist/cli/commands/start/http-server.d.ts.map +1 -1
  52. package/dist/cli/commands/start/http-server.js +80 -21
  53. package/dist/cli/commands/start/http-server.js.map +1 -1
  54. package/dist/cli/commands/start/index.d.ts.map +1 -1
  55. package/dist/cli/commands/start/index.js +62 -25
  56. package/dist/cli/commands/start/index.js.map +1 -1
  57. package/dist/cli/commands/start/startup-display.d.ts.map +1 -1
  58. package/dist/cli/commands/start/startup-display.js +51 -19
  59. package/dist/cli/commands/start/startup-display.js.map +1 -1
  60. package/dist/cli/commands/status.d.ts.map +1 -1
  61. package/dist/cli/commands/status.js +20 -1
  62. package/dist/cli/commands/status.js.map +1 -1
  63. package/dist/cli/daemon/daemon-state.d.ts +5 -0
  64. package/dist/cli/daemon/daemon-state.d.ts.map +1 -1
  65. package/dist/cli/daemon/daemon-state.js.map +1 -1
  66. package/dist/cli/helpers/build-agent-scaffold.d.ts +2 -12
  67. package/dist/cli/helpers/build-agent-scaffold.d.ts.map +1 -1
  68. package/dist/cli/helpers/build-agent-scaffold.js +15 -4
  69. package/dist/cli/helpers/build-agent-scaffold.js.map +1 -1
  70. package/dist/cli/index.d.ts.map +1 -1
  71. package/dist/cli/index.js +277 -2
  72. package/dist/cli/index.js.map +1 -1
  73. package/dist/cli/openai/schema-on-demand.d.ts +2 -0
  74. package/dist/cli/openai/schema-on-demand.d.ts.map +1 -1
  75. package/dist/cli/openai/schema-on-demand.js +9 -1
  76. package/dist/cli/openai/schema-on-demand.js.map +1 -1
  77. package/dist/cli/tui/views/rag-view.d.ts.map +1 -1
  78. package/dist/cli/tui/views/rag-view.js +17 -6
  79. package/dist/cli/tui/views/rag-view.js.map +1 -1
  80. package/dist/cli/tui/views/status-view.d.ts.map +1 -1
  81. package/dist/cli/tui/views/status-view.js +37 -17
  82. package/dist/cli/tui/views/status-view.js.map +1 -1
  83. package/dist/cli/wizards/api-keys-wizard.d.ts.map +1 -1
  84. package/dist/cli/wizards/api-keys-wizard.js +19 -0
  85. package/dist/cli/wizards/api-keys-wizard.js.map +1 -1
  86. package/dist/cli/wizards/init-llm-step.d.ts.map +1 -1
  87. package/dist/cli/wizards/init-llm-step.js +11 -2
  88. package/dist/cli/wizards/init-llm-step.js.map +1 -1
  89. package/dist/cli/wizards/setup-wizard.d.ts.map +1 -1
  90. package/dist/cli/wizards/setup-wizard.js +29 -18
  91. package/dist/cli/wizards/setup-wizard.js.map +1 -1
  92. package/dist/config/effective-agent-config.d.ts +24 -0
  93. package/dist/config/effective-agent-config.d.ts.map +1 -0
  94. package/dist/config/effective-agent-config.js +265 -0
  95. package/dist/config/effective-agent-config.js.map +1 -0
  96. package/dist/config/load.d.ts.map +1 -1
  97. package/dist/config/load.js +11 -3
  98. package/dist/config/load.js.map +1 -1
  99. package/dist/config/persona-registry.d.ts +48 -0
  100. package/dist/config/persona-registry.d.ts.map +1 -0
  101. package/dist/config/persona-registry.js +253 -0
  102. package/dist/config/persona-registry.js.map +1 -0
  103. package/dist/config/schema.d.ts.map +1 -1
  104. package/dist/config/schema.js +117 -8
  105. package/dist/config/schema.js.map +1 -1
  106. package/dist/core/AgentManifest.d.ts +15 -0
  107. package/dist/core/AgentManifest.d.ts.map +1 -1
  108. package/dist/core/AgentManifest.js +54 -2
  109. package/dist/core/AgentManifest.js.map +1 -1
  110. package/dist/core/PresetLoader.d.ts +6 -6
  111. package/dist/core/PresetLoader.d.ts.map +1 -1
  112. package/dist/core/PresetLoader.js +2 -0
  113. package/dist/core/PresetLoader.js.map +1 -1
  114. package/dist/discord/welcomeHandler.d.ts +5 -2
  115. package/dist/discord/welcomeHandler.d.ts.map +1 -1
  116. package/dist/discord/welcomeHandler.js +221 -71
  117. package/dist/discord/welcomeHandler.js.map +1 -1
  118. package/dist/discovery/WunderlandDiscoveryManager.d.ts +7 -0
  119. package/dist/discovery/WunderlandDiscoveryManager.d.ts.map +1 -1
  120. package/dist/discovery/WunderlandDiscoveryManager.js +11 -0
  121. package/dist/discovery/WunderlandDiscoveryManager.js.map +1 -1
  122. package/dist/public/index.d.ts +8 -2
  123. package/dist/public/index.d.ts.map +1 -1
  124. package/dist/public/index.js +92 -70
  125. package/dist/public/index.js.map +1 -1
  126. package/dist/rag/http-proxy.d.ts +16 -0
  127. package/dist/rag/http-proxy.d.ts.map +1 -0
  128. package/dist/rag/http-proxy.js +126 -0
  129. package/dist/rag/http-proxy.js.map +1 -0
  130. package/dist/rag/rag-client.d.ts +24 -0
  131. package/dist/rag/rag-client.d.ts.map +1 -1
  132. package/dist/rag/rag-client.js +11 -1
  133. package/dist/rag/rag-client.js.map +1 -1
  134. package/dist/rag/runtime-tools.d.ts +4 -0
  135. package/dist/rag/runtime-tools.d.ts.map +1 -0
  136. package/dist/rag/runtime-tools.js +112 -0
  137. package/dist/rag/runtime-tools.js.map +1 -0
  138. package/dist/runtime/request-persona.d.ts +38 -0
  139. package/dist/runtime/request-persona.d.ts.map +1 -0
  140. package/dist/runtime/request-persona.js +116 -0
  141. package/dist/runtime/request-persona.js.map +1 -0
  142. package/dist/runtime/system-prompt-builder.d.ts.map +1 -1
  143. package/dist/runtime/system-prompt-builder.js +27 -5
  144. package/dist/runtime/system-prompt-builder.js.map +1 -1
  145. package/dist/runtime/tool-calling.d.ts +3 -0
  146. package/dist/runtime/tool-calling.d.ts.map +1 -1
  147. package/dist/runtime/tool-calling.js +96 -4
  148. package/dist/runtime/tool-calling.js.map +1 -1
  149. package/dist/security/FolderPermissions.d.ts.map +1 -1
  150. package/dist/security/FolderPermissions.js +15 -0
  151. package/dist/security/FolderPermissions.js.map +1 -1
  152. package/dist/security/SafeGuardrails.d.ts +16 -1
  153. package/dist/security/SafeGuardrails.d.ts.map +1 -1
  154. package/dist/security/SafeGuardrails.js +55 -1
  155. package/dist/security/SafeGuardrails.js.map +1 -1
  156. package/dist/tools/RAGTool.d.ts +21 -1
  157. package/dist/tools/RAGTool.d.ts.map +1 -1
  158. package/dist/tools/RAGTool.js +41 -19
  159. package/dist/tools/RAGTool.js.map +1 -1
  160. package/dist/tools/RequestFolderAccessTool.d.ts +26 -0
  161. package/dist/tools/RequestFolderAccessTool.d.ts.map +1 -0
  162. package/dist/tools/RequestFolderAccessTool.js +121 -0
  163. package/dist/tools/RequestFolderAccessTool.js.map +1 -0
  164. package/dist/tools/index.d.ts +1 -0
  165. package/dist/tools/index.d.ts.map +1 -1
  166. package/dist/tools/index.js +1 -0
  167. package/dist/tools/index.js.map +1 -1
  168. package/package.json +6 -6
  169. package/presets/agents/code-reviewer/agent.config.json +32 -3
  170. package/presets/agents/creative-writer/agent.config.json +30 -3
  171. package/presets/agents/customer-support/agent.config.json +30 -4
  172. package/presets/agents/data-analyst/agent.config.json +31 -3
  173. package/presets/agents/devops-assistant/agent.config.json +29 -3
  174. package/presets/agents/personal-assistant/agent.config.json +42 -7
  175. package/presets/agents/research-assistant/agent.config.json +33 -3
  176. package/presets/agents/security-auditor/agent.config.json +31 -3
  177. package/dist/cli/commands/start.d.ts +0 -8
  178. package/dist/cli/commands/start.d.ts.map +0 -1
  179. package/dist/cli/commands/start.js +0 -2570
  180. package/dist/cli/commands/start.js.map +0 -1
  181. package/dist/scheduling/__tests__/CronScheduler.spec.d.ts +0 -9
  182. package/dist/scheduling/__tests__/CronScheduler.spec.d.ts.map +0 -1
  183. package/dist/scheduling/__tests__/CronScheduler.spec.js +0 -510
  184. package/dist/scheduling/__tests__/CronScheduler.spec.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"chat-runtime.d.ts","sourceRoot":"","sources":["../../src/api/chat-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAYnF,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAElG,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,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;AAoQF,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;;;;;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,CA6GjC"}
1
+ {"version":3,"file":"chat-runtime.d.ts","sourceRoot":"","sources":["../../src/api/chat-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAkBnF,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAElG,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,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;AA6RF,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;;;;;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,CA0LjC"}
@@ -11,6 +11,7 @@
11
11
  * want the full server + HITL UI + channel runtime.
12
12
  */
13
13
  import { filterToolMapByPolicy, getPermissionsForSet, normalizeRuntimePolicy, } from '../runtime/policy.js';
14
+ import { SkillRegistry, resolveDefaultSkillsDirs } from '../skills/index.js';
14
15
  import { createEnvSecretResolver } from '../cli/security/env-secrets.js';
15
16
  import { createSchemaOnDemandTools } from '../cli/openai/schema-on-demand.js';
16
17
  import { runToolCallingTurn } from '../runtime/tool-calling.js';
@@ -19,7 +20,10 @@ import { resolveAgentWorkspaceBaseDir, sanitizeAgentWorkspaceId } from '../runti
19
20
  import { resolveAgentDisplayName } from '../runtime/agent-identity.js';
20
21
  import { buildAgenticSystemPrompt } from '../runtime/system-prompt-builder.js';
21
22
  import { createWunderlandSeed, DEFAULT_INFERENCE_HIERARCHY, DEFAULT_SECURITY_PROFILE, DEFAULT_STEP_UP_AUTH_CONFIG, } from '../core/index.js';
23
+ import { buildDiscoveryOptionsFromAgentConfig, resolveEffectiveAgentConfig, } from '../config/effective-agent-config.js';
22
24
  import { resolveExtensionsByNames } from '../core/PresetExtensionResolver.js';
25
+ import { WunderlandDiscoveryManager } from '../discovery/index.js';
26
+ import { createConfiguredRagTools } from '../rag/runtime-tools.js';
23
27
  function consoleLogger() {
24
28
  return {
25
29
  debug: (msg, meta) => console.debug(msg, meta ?? ''),
@@ -28,6 +32,17 @@ function consoleLogger() {
28
32
  error: (msg, meta) => console.error(msg, meta ?? ''),
29
33
  };
30
34
  }
35
+ function toToolInstance(tool) {
36
+ return {
37
+ name: tool.name,
38
+ description: tool.description,
39
+ inputSchema: tool.inputSchema,
40
+ hasSideEffects: tool.hasSideEffects === true,
41
+ category: typeof tool.category === 'string' && tool.category.trim() ? tool.category : 'productivity',
42
+ requiredCapabilities: tool.requiredCapabilities,
43
+ execute: tool.execute,
44
+ };
45
+ }
31
46
  function inferTurnApprovalMode(cfg) {
32
47
  const raw = cfg?.hitl && typeof cfg.hitl === 'object' && !Array.isArray(cfg.hitl)
33
48
  ? cfg.hitl.turnApprovalMode ?? cfg.hitl.turnApproval
@@ -233,6 +248,11 @@ async function loadToolMapFromAgentConfig(opts) {
233
248
  })) {
234
249
  toolMap.set(metaTool.name, metaTool);
235
250
  }
251
+ for (const ragTool of createConfiguredRagTools(cfg)) {
252
+ if (!ragTool?.name)
253
+ continue;
254
+ toolMap.set(ragTool.name, toToolInstance(ragTool));
255
+ }
236
256
  // Enforce policy (tool access profile + permission set).
237
257
  const filtered = filterToolMapByPolicy({ toolMap, toolAccessProfile: policy.toolAccessProfile, permissions });
238
258
  return { toolMap: filtered.toolMap, preloadedPackages };
@@ -245,7 +265,12 @@ export async function createWunderlandChatRuntime(opts) {
245
265
  warn: opts.logger?.warn ?? baseLogger.warn,
246
266
  error: opts.logger?.error ?? baseLogger.error,
247
267
  };
248
- const agentConfig = opts.agentConfig ?? {};
268
+ const workingDirectory = opts.workingDirectory ?? process.cwd();
269
+ const { agentConfig } = await resolveEffectiveAgentConfig({
270
+ agentConfig: opts.agentConfig ?? {},
271
+ workingDirectory,
272
+ logger,
273
+ });
249
274
  const policy = normalizeRuntimePolicy(agentConfig);
250
275
  const turnApprovalMode = inferTurnApprovalMode(agentConfig);
251
276
  const strictToolNames = resolveStrictToolNames(agentConfig?.toolCalling?.strictToolNames);
@@ -257,8 +282,10 @@ export async function createWunderlandChatRuntime(opts) {
257
282
  baseDir: opts.workspace?.baseDir ?? resolveAgentWorkspaceBaseDir(),
258
283
  };
259
284
  const seed = buildSeedFromAgentConfig(agentConfig, seedIdForWorkspace);
285
+ const activePersonaId = typeof agentConfig.selectedPersonaId === 'string' && agentConfig.selectedPersonaId.trim()
286
+ ? agentConfig.selectedPersonaId.trim()
287
+ : seed.seedId;
260
288
  const dangerouslySkipCommandSafety = false;
261
- const workingDirectory = opts.workingDirectory ?? process.cwd();
262
289
  const { toolMap } = await loadToolMapFromAgentConfig({
263
290
  agentConfig,
264
291
  policy,
@@ -267,6 +294,74 @@ export async function createWunderlandChatRuntime(opts) {
267
294
  dangerouslySkipCommandSafety,
268
295
  logger,
269
296
  });
297
+ let skillsPrompt = '';
298
+ const skillEntries = [];
299
+ const skillRegistry = new SkillRegistry();
300
+ const dirs = resolveDefaultSkillsDirs({ cwd: workingDirectory });
301
+ if (dirs.length > 0) {
302
+ try {
303
+ await skillRegistry.loadFromDirs(dirs);
304
+ const snapshot = skillRegistry.buildSnapshot({ platform: process.platform, strict: true });
305
+ if (snapshot.prompt)
306
+ skillsPrompt = snapshot.prompt;
307
+ if (typeof skillRegistry.listAll === 'function') {
308
+ for (const entry of skillRegistry.listAll()) {
309
+ const skill = entry.skill ?? entry;
310
+ skillEntries.push({
311
+ name: skill.name ?? 'unknown',
312
+ description: skill.description ?? '',
313
+ content: skill.content ?? '',
314
+ });
315
+ }
316
+ }
317
+ }
318
+ catch (error) {
319
+ logger.warn?.('[wunderland/api] Failed to load filesystem skills', {
320
+ error: error instanceof Error ? error.message : String(error),
321
+ });
322
+ }
323
+ }
324
+ if (Array.isArray(agentConfig.skills) && agentConfig.skills.length > 0) {
325
+ try {
326
+ const { resolveSkillsByNames } = await import('../core/PresetSkillResolver.js');
327
+ const snapshot = await resolveSkillsByNames(agentConfig.skills);
328
+ if (snapshot?.prompt) {
329
+ skillsPrompt = [skillsPrompt, snapshot.prompt].filter(Boolean).join('\n\n');
330
+ }
331
+ if (Array.isArray(snapshot?.skills)) {
332
+ const existing = new Set(skillEntries.map((entry) => entry.name));
333
+ for (const skill of snapshot.skills) {
334
+ const name = typeof skill === 'string' ? skill : skill.name ?? 'unknown';
335
+ if (!existing.has(name)) {
336
+ skillEntries.push({ name, description: '', content: '' });
337
+ existing.add(name);
338
+ }
339
+ }
340
+ }
341
+ }
342
+ catch (error) {
343
+ logger.warn?.('[wunderland/api] Failed to resolve curated skills', {
344
+ error: error instanceof Error ? error.message : String(error),
345
+ });
346
+ }
347
+ }
348
+ const discoveryManager = new WunderlandDiscoveryManager(buildDiscoveryOptionsFromAgentConfig(agentConfig));
349
+ try {
350
+ await discoveryManager.initialize({
351
+ toolMap,
352
+ skillEntries: skillEntries.length > 0 ? skillEntries : undefined,
353
+ llmConfig: { providerId: opts.llm.providerId, apiKey: opts.llm.apiKey, baseUrl: opts.llm.baseUrl },
354
+ });
355
+ const metaTool = discoveryManager.getMetaTool();
356
+ if (metaTool) {
357
+ toolMap.set(metaTool.name, toToolInstance(metaTool));
358
+ }
359
+ }
360
+ catch (error) {
361
+ logger.warn?.('[wunderland/api] Discovery initialization failed (continuing without)', {
362
+ error: error instanceof Error ? error.message : String(error),
363
+ });
364
+ }
270
365
  const sessions = new Map();
271
366
  const autoApprove = opts.autoApproveToolCalls === true || policy.executionMode === 'autonomous';
272
367
  const systemPrompt = buildAgenticSystemPrompt({
@@ -275,6 +370,7 @@ export async function createWunderlandChatRuntime(opts) {
275
370
  mode: 'library',
276
371
  lazyTools: agentConfig.lazyTools === true,
277
372
  autoApproveToolCalls: autoApprove,
373
+ skillsPrompt: skillsPrompt || undefined,
278
374
  turnApprovalMode,
279
375
  });
280
376
  if (!autoApprove && typeof opts.askPermission !== 'function') {
@@ -287,6 +383,7 @@ export async function createWunderlandChatRuntime(opts) {
287
383
  };
288
384
  const toolContext = {
289
385
  agentId: workspace.agentId,
386
+ personaId: activePersonaId,
290
387
  securityTier: policy.securityTier,
291
388
  permissionSet: policy.permissionSet,
292
389
  toolAccessProfile: policy.toolAccessProfile,
@@ -1 +1 @@
1
- {"version":3,"file":"chat-runtime.js","sourceRoot":"","sources":["../../src/api/chat-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-runtime.js","sourceRoot":"","sources":["../../src/api/chat-runtime.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,8 @@ export type WunderlandServerHandle = {
34
34
  canUseLLM: boolean;
35
35
  toolCount: number;
36
36
  channelCount: number;
37
+ selectedPersonaId?: string;
38
+ personaCount: number;
37
39
  pairingEnabled: boolean;
38
40
  policy: NormalizedRuntimePolicy;
39
41
  autoApproveToolCalls: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/api/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/api/server.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@ import { SkillRegistry, resolveDefaultSkillsDirs } from '../skills/index.js';
21
21
  import { resolveExtensionsByNames } from '../core/PresetExtensionResolver.js';
22
22
  import { PairingManager } from '../pairing/PairingManager.js';
23
23
  import { createWunderlandSeed, DEFAULT_INFERENCE_HIERARCHY, DEFAULT_SECURITY_PROFILE, DEFAULT_STEP_UP_AUTH_CONFIG, } from '../core/index.js';
24
+ import { buildDiscoveryOptionsFromAgentConfig, resolveEffectiveAgentConfig, } from '../config/effective-agent-config.js';
24
25
  import { loadDotEnvIntoProcessUpward } from '../cli/config/env-manager.js';
25
26
  import { resolveAgentWorkspaceBaseDir, sanitizeAgentWorkspaceId } from '../runtime/workspace.js';
26
27
  import { runToolCallingTurn, safeJsonStringify, } from '../runtime/tool-calling.js';
@@ -31,7 +32,11 @@ import { startWunderlandOtel, shutdownWunderlandOtel } from '../observability/ot
31
32
  import { filterToolMapByPolicy, getPermissionsForSet, normalizeRuntimePolicy, } from '../runtime/policy.js';
32
33
  import { createEnvSecretResolver } from '../cli/security/env-secrets.js';
33
34
  import { resolveAgentDisplayName } from '../runtime/agent-identity.js';
35
+ import { buildPersonaSessionKey, createRequestScopedToolMap, extractRequestedPersonaId, resolveRequestScopedPersonaRuntime, } from '../runtime/request-persona.js';
34
36
  import { buildAgenticSystemPrompt } from '../runtime/system-prompt-builder.js';
37
+ import { WunderlandDiscoveryManager } from '../discovery/index.js';
38
+ import { createConfiguredRagTools } from '../rag/runtime-tools.js';
39
+ import { maybeProxyAgentosRagRequest } from '../rag/http-proxy.js';
35
40
  function consoleLogger() {
36
41
  return {
37
42
  debug: (msg, meta) => console.debug(msg, meta ?? ''),
@@ -40,6 +45,17 @@ function consoleLogger() {
40
45
  error: (msg, meta) => console.error(msg, meta ?? ''),
41
46
  };
42
47
  }
48
+ function toToolInstance(tool) {
49
+ return {
50
+ name: tool.name,
51
+ description: tool.description,
52
+ inputSchema: tool.inputSchema,
53
+ hasSideEffects: tool.hasSideEffects === true,
54
+ category: typeof tool.category === 'string' && tool.category.trim() ? tool.category : 'productivity',
55
+ requiredCapabilities: tool.requiredCapabilities,
56
+ execute: tool.execute,
57
+ };
58
+ }
43
59
  // ── HTTP helpers ────────────────────────────────────────────────────────────
44
60
  function readBody(req) {
45
61
  return new Promise((resolve, reject) => {
@@ -489,7 +505,19 @@ export async function createWunderlandServer(opts) {
489
505
  }
490
506
  cfg = JSON.parse(await readFile(configPath, 'utf8'));
491
507
  }
508
+ const rawAgentConfig = JSON.parse(JSON.stringify(cfg));
509
+ const effectiveConfigResult = await resolveEffectiveAgentConfig({
510
+ agentConfig: cfg,
511
+ workingDirectory,
512
+ logger,
513
+ });
514
+ cfg = effectiveConfigResult.agentConfig;
515
+ const selectedPersona = effectiveConfigResult.selectedPersona;
516
+ const availablePersonas = effectiveConfigResult.availablePersonas;
492
517
  const seedId = String(cfg.seedId || 'seed_local_agent');
518
+ const activePersonaId = typeof cfg.selectedPersonaId === 'string' && cfg.selectedPersonaId.trim()
519
+ ? cfg.selectedPersonaId.trim()
520
+ : seedId;
493
521
  const displayName = resolveAgentDisplayName({
494
522
  displayName: cfg.displayName,
495
523
  agentName: cfg.agentName,
@@ -845,6 +873,11 @@ export async function createWunderlandServer(opts) {
845
873
  })) {
846
874
  toolMap.set(meta.name, meta);
847
875
  }
876
+ for (const ragTool of createConfiguredRagTools(cfg)) {
877
+ if (!ragTool?.name)
878
+ continue;
879
+ toolMap.set(ragTool.name, toToolInstance(ragTool));
880
+ }
848
881
  const filtered = filterToolMapByPolicy({
849
882
  toolMap,
850
883
  toolAccessProfile: policy.toolAccessProfile,
@@ -854,6 +887,7 @@ export async function createWunderlandServer(opts) {
854
887
  for (const [k, v] of filtered.toolMap.entries())
855
888
  toolMap.set(k, v);
856
889
  let skillsPrompt = '';
890
+ const skillEntries = [];
857
891
  if (enableSkills) {
858
892
  const parts = [];
859
893
  const skillRegistry = new SkillRegistry();
@@ -863,6 +897,16 @@ export async function createWunderlandServer(opts) {
863
897
  const snapshot = skillRegistry.buildSnapshot({ platform: process.platform, strict: true });
864
898
  if (snapshot.prompt)
865
899
  parts.push(snapshot.prompt);
900
+ if (typeof skillRegistry.listAll === 'function') {
901
+ for (const entry of skillRegistry.listAll()) {
902
+ const skill = entry.skill ?? entry;
903
+ skillEntries.push({
904
+ name: skill.name ?? 'unknown',
905
+ description: skill.description ?? '',
906
+ content: skill.content ?? '',
907
+ });
908
+ }
909
+ }
866
910
  }
867
911
  if (Array.isArray(cfg.skills) && cfg.skills.length > 0) {
868
912
  try {
@@ -870,6 +914,16 @@ export async function createWunderlandServer(opts) {
870
914
  const presetSnapshot = await resolveSkillsByNames(cfg.skills);
871
915
  if (presetSnapshot?.prompt)
872
916
  parts.push(presetSnapshot.prompt);
917
+ if (Array.isArray(presetSnapshot?.skills)) {
918
+ const existing = new Set(skillEntries.map((entry) => entry.name));
919
+ for (const skill of presetSnapshot.skills) {
920
+ const name = typeof skill === 'string' ? skill : skill.name ?? 'unknown';
921
+ if (!existing.has(name)) {
922
+ skillEntries.push({ name, description: '', content: '' });
923
+ existing.add(name);
924
+ }
925
+ }
926
+ }
873
927
  }
874
928
  catch {
875
929
  // optional
@@ -877,6 +931,23 @@ export async function createWunderlandServer(opts) {
877
931
  }
878
932
  skillsPrompt = parts.filter(Boolean).join('\n\n');
879
933
  }
934
+ const discoveryManager = new WunderlandDiscoveryManager(buildDiscoveryOptionsFromAgentConfig(cfg));
935
+ try {
936
+ await discoveryManager.initialize({
937
+ toolMap,
938
+ skillEntries: skillEntries.length > 0 ? skillEntries : undefined,
939
+ llmConfig: { providerId: providerId, apiKey: llmApiKey, baseUrl: llmBaseUrl },
940
+ });
941
+ const metaTool = discoveryManager.getMetaTool();
942
+ if (metaTool) {
943
+ toolMap.set(metaTool.name, toToolInstance(metaTool));
944
+ }
945
+ }
946
+ catch (err) {
947
+ logger.warn?.('[wunderland/api] Discovery initialization failed (continuing without)', {
948
+ error: err instanceof Error ? err.message : String(err),
949
+ });
950
+ }
880
951
  const systemPrompt = buildAgenticSystemPrompt({
881
952
  seed,
882
953
  policy,
@@ -1073,7 +1144,7 @@ export async function createWunderlandServer(opts) {
1073
1144
  scope: {
1074
1145
  sessionId: sessionKey,
1075
1146
  userId: senderId,
1076
- personaId: seed.seedId,
1147
+ personaId: activePersonaId,
1077
1148
  tenantId: tenantId || undefined,
1078
1149
  },
1079
1150
  });
@@ -1085,7 +1156,7 @@ export async function createWunderlandServer(opts) {
1085
1156
  if (canUseLLM) {
1086
1157
  const toolContext = {
1087
1158
  gmiId: `wunderland-channel-${sessionKey}`,
1088
- personaId: seed.seedId,
1159
+ personaId: activePersonaId,
1089
1160
  userContext: {
1090
1161
  userId: senderId,
1091
1162
  platform,
@@ -1203,7 +1274,7 @@ export async function createWunderlandServer(opts) {
1203
1274
  scope: {
1204
1275
  sessionId: sessionKey,
1205
1276
  userId: senderId,
1206
- personaId: seed.seedId,
1277
+ personaId: activePersonaId,
1207
1278
  tenantId: tenantId || undefined,
1208
1279
  },
1209
1280
  degraded: adaptiveDecision.degraded || fallbackTriggered,
@@ -1259,14 +1330,37 @@ export async function createWunderlandServer(opts) {
1259
1330
  const server = createServer(async (req, res) => {
1260
1331
  try {
1261
1332
  res.setHeader('Access-Control-Allow-Origin', '*');
1262
- res.setHeader('Access-Control-Allow-Methods', 'GET,POST,OPTIONS');
1263
- res.setHeader('Access-Control-Allow-Headers', 'Content-Type, X-Wunderland-HITL-Secret, X-Api-Key');
1333
+ res.setHeader('Access-Control-Allow-Methods', 'GET,POST,PUT,PATCH,DELETE,OPTIONS');
1334
+ res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization, X-Api-Key, X-Wunderland-HITL-Secret, X-Wunderland-Chat-Secret, X-Wunderland-Feed-Secret');
1264
1335
  if (req.method === 'OPTIONS') {
1265
1336
  res.writeHead(204);
1266
1337
  res.end();
1267
1338
  return;
1268
1339
  }
1269
1340
  const url = new URL(req.url || '/', `http://${req.headers.host || 'localhost'}`);
1341
+ if (await maybeProxyAgentosRagRequest({ req, res, url, agentConfig: cfg, logger })) {
1342
+ return;
1343
+ }
1344
+ if (req.method === 'GET' && url.pathname === '/api/agentos/personas') {
1345
+ sendJson(res, 200, {
1346
+ selectedPersonaId: activePersonaId !== seedId ? activePersonaId : undefined,
1347
+ selectedPersona: selectedPersona ?? undefined,
1348
+ personas: availablePersonas ?? [],
1349
+ });
1350
+ return;
1351
+ }
1352
+ if (req.method === 'GET' && url.pathname.startsWith('/api/agentos/personas/')) {
1353
+ const personaId = decodeURIComponent(url.pathname.slice('/api/agentos/personas/'.length));
1354
+ const persona = Array.isArray(availablePersonas)
1355
+ ? availablePersonas.find((entry) => entry.id === personaId)
1356
+ : undefined;
1357
+ if (!persona) {
1358
+ sendJson(res, 404, { error: `Persona '${personaId}' not found.` });
1359
+ return;
1360
+ }
1361
+ sendJson(res, 200, { persona });
1362
+ return;
1363
+ }
1270
1364
  if (url.pathname.startsWith('/pairing')) {
1271
1365
  if (req.method === 'GET' && url.pathname === '/pairing') {
1272
1366
  res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
@@ -1433,7 +1527,13 @@ export async function createWunderlandServer(opts) {
1433
1527
  return;
1434
1528
  }
1435
1529
  if (req.method === 'GET' && url.pathname === '/health') {
1436
- sendJson(res, 200, { ok: true, seedId, name: displayName });
1530
+ sendJson(res, 200, {
1531
+ ok: true,
1532
+ seedId,
1533
+ name: displayName,
1534
+ persona: selectedPersona ?? (activePersonaId !== seedId ? { id: activePersonaId } : undefined),
1535
+ personasAvailable: Array.isArray(availablePersonas) ? availablePersonas.length : 0,
1536
+ });
1437
1537
  return;
1438
1538
  }
1439
1539
  if (req.method === 'POST' && url.pathname === '/chat') {
@@ -1449,6 +1549,40 @@ export async function createWunderlandServer(opts) {
1449
1549
  let fallbackTriggered = false;
1450
1550
  let toolCallCount = 0;
1451
1551
  const sessionId = typeof parsed.sessionId === 'string' && parsed.sessionId.trim() ? parsed.sessionId.trim().slice(0, 128) : 'default';
1552
+ const requestedPersonaId = extractRequestedPersonaId(parsed);
1553
+ let requestActivePersonaId = activePersonaId;
1554
+ let requestSystemPrompt = systemPrompt;
1555
+ let requestToolMap = toolMap;
1556
+ if (requestedPersonaId && requestedPersonaId !== activePersonaId) {
1557
+ const personaRuntime = await resolveRequestScopedPersonaRuntime({
1558
+ rawAgentConfig,
1559
+ requestedPersonaId,
1560
+ workingDirectory,
1561
+ logger,
1562
+ policy,
1563
+ mode: 'server',
1564
+ lazyTools,
1565
+ autoApproveToolCalls,
1566
+ turnApprovalMode,
1567
+ skillsPrompt: skillsPrompt || undefined,
1568
+ channelNames: loadedChannelAdapters.length > 0
1569
+ ? loadedChannelAdapters
1570
+ .map((adapter) => adapter.displayName || adapter.platform)
1571
+ .filter((name) => typeof name === 'string' && name.trim().length > 0)
1572
+ : undefined,
1573
+ });
1574
+ if (!personaRuntime) {
1575
+ sendJson(res, 400, {
1576
+ error: `Persona '${requestedPersonaId}' not found.`,
1577
+ availablePersonaIds: Array.isArray(availablePersonas) ? availablePersonas.map((persona) => persona.id) : [],
1578
+ });
1579
+ return;
1580
+ }
1581
+ requestActivePersonaId = personaRuntime.activePersonaId;
1582
+ requestSystemPrompt = personaRuntime.systemPrompt;
1583
+ requestToolMap = createRequestScopedToolMap(toolMap, personaRuntime.agentConfig);
1584
+ }
1585
+ const internalSessionId = buildPersonaSessionKey(sessionId, requestActivePersonaId);
1452
1586
  const requestedToolFailureMode = typeof parsed.toolFailureMode === 'string' ? parsed.toolFailureMode : undefined;
1453
1587
  const tenantId = (typeof parsed.tenantId === 'string' && parsed.tenantId.trim())
1454
1588
  || defaultTenantId;
@@ -1456,29 +1590,29 @@ export async function createWunderlandServer(opts) {
1456
1590
  scope: {
1457
1591
  sessionId,
1458
1592
  userId: sessionId,
1459
- personaId: seed.seedId,
1593
+ personaId: requestActivePersonaId,
1460
1594
  tenantId: tenantId || undefined,
1461
1595
  },
1462
1596
  requestedToolFailureMode,
1463
1597
  });
1464
1598
  if (parsed.reset === true) {
1465
- sessions.delete(sessionId);
1599
+ sessions.delete(internalSessionId);
1466
1600
  }
1467
- let messages = sessions.get(sessionId);
1601
+ let messages = sessions.get(internalSessionId);
1468
1602
  if (!messages) {
1469
- messages = [{ role: 'system', content: systemPrompt }];
1470
- sessions.set(sessionId, messages);
1603
+ messages = [{ role: 'system', content: requestSystemPrompt }];
1604
+ sessions.set(internalSessionId, messages);
1471
1605
  }
1472
1606
  if (messages.length > 200) {
1473
1607
  messages = [messages[0], ...messages.slice(-120)];
1474
- sessions.set(sessionId, messages);
1608
+ sessions.set(internalSessionId, messages);
1475
1609
  }
1476
1610
  messages.push({ role: 'user', content: message });
1477
1611
  try {
1478
1612
  if (canUseLLM) {
1479
1613
  const toolContext = {
1480
- gmiId: `wunderland-server-${sessionId}`,
1481
- personaId: seed.seedId,
1614
+ gmiId: `wunderland-server-${internalSessionId}`,
1615
+ personaId: requestActivePersonaId,
1482
1616
  userContext: {
1483
1617
  userId: sessionId,
1484
1618
  ...(tenantId ? { organizationId: tenantId } : null),
@@ -1506,7 +1640,7 @@ export async function createWunderlandServer(opts) {
1506
1640
  apiKey: llmApiKey,
1507
1641
  model,
1508
1642
  messages,
1509
- toolMap,
1643
+ toolMap: requestToolMap,
1510
1644
  toolContext,
1511
1645
  maxRounds: 8,
1512
1646
  dangerouslySkipPermissions: autoApproveToolCalls,
@@ -1527,7 +1661,7 @@ export async function createWunderlandServer(opts) {
1527
1661
  severity: tool.hasSideEffects === true ? 'high' : 'low',
1528
1662
  category: toAgentosApprovalCategory(tool),
1529
1663
  agentId: seed.seedId,
1530
- context: { toolName: tool.name, args, sessionId },
1664
+ context: { toolName: tool.name, args, sessionId, personaId: requestActivePersonaId },
1531
1665
  reversible: tool.hasSideEffects !== true,
1532
1666
  requestedAt: new Date(),
1533
1667
  timeoutMs: 5 * 60_000,
@@ -1539,7 +1673,7 @@ export async function createWunderlandServer(opts) {
1539
1673
  : async ({ round, toolCalls }) => {
1540
1674
  if (autoApproveToolCalls)
1541
1675
  return true;
1542
- const checkpointId = `checkpoint-${seedId}-${sessionId}-${round}-${randomUUID()}`;
1676
+ const checkpointId = `checkpoint-${seedId}-${internalSessionId}-${round}-${randomUUID()}`;
1543
1677
  const completedWork = toolCalls.map((c) => {
1544
1678
  const effect = c.hasSideEffects ? 'side effects' : 'read-only';
1545
1679
  const preview = safeJsonStringify(c.args, 800);
@@ -1549,7 +1683,7 @@ export async function createWunderlandServer(opts) {
1549
1683
  const checkpointPromise = hitlManager
1550
1684
  .checkpoint({
1551
1685
  checkpointId,
1552
- workflowId: `chat-${sessionId}`,
1686
+ workflowId: `chat-${internalSessionId}`,
1553
1687
  currentPhase: `tool-round-${round}`,
1554
1688
  progress: Math.min(1, (round + 1) / 8),
1555
1689
  completedWork,
@@ -1596,7 +1730,7 @@ export async function createWunderlandServer(opts) {
1596
1730
  scope: {
1597
1731
  sessionId,
1598
1732
  userId: sessionId,
1599
- personaId: seed.seedId,
1733
+ personaId: requestActivePersonaId,
1600
1734
  tenantId: tenantId || undefined,
1601
1735
  },
1602
1736
  degraded: adaptiveDecision.degraded || fallbackTriggered,
@@ -1611,7 +1745,7 @@ export async function createWunderlandServer(opts) {
1611
1745
  });
1612
1746
  }
1613
1747
  }
1614
- sendJson(res, 200, { reply });
1748
+ sendJson(res, 200, { reply, personaId: requestActivePersonaId });
1615
1749
  return;
1616
1750
  }
1617
1751
  // ── Tool Execution API ──────────────────────────────────────
@@ -1654,7 +1788,7 @@ export async function createWunderlandServer(opts) {
1654
1788
  try {
1655
1789
  const ctx = {
1656
1790
  gmiId: 'tool-api',
1657
- personaId: seedId,
1791
+ personaId: activePersonaId,
1658
1792
  permissionSet: policy.permissionSet,
1659
1793
  securityTier: policy.securityTier,
1660
1794
  executionMode: 'autonomous',
@@ -1711,6 +1845,7 @@ export async function createWunderlandServer(opts) {
1711
1845
  server.close((err) => (err ? reject(err) : resolve()));
1712
1846
  });
1713
1847
  await adaptiveRuntime.close();
1848
+ await discoveryManager.close().catch(() => undefined);
1714
1849
  await shutdownWunderlandOtel();
1715
1850
  };
1716
1851
  logger.info?.('[wunderland/api] server started', {
@@ -1733,6 +1868,8 @@ export async function createWunderlandServer(opts) {
1733
1868
  canUseLLM,
1734
1869
  toolCount: toolMap.size,
1735
1870
  channelCount: adapterByPlatform.size,
1871
+ selectedPersonaId: activePersonaId !== seedId ? activePersonaId : undefined,
1872
+ personaCount: availablePersonas?.length ?? 0,
1736
1873
  pairingEnabled,
1737
1874
  policy,
1738
1875
  autoApproveToolCalls,