wunderland 0.50.2 → 0.52.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 (172) hide show
  1. package/README.md +167 -2
  2. package/dist/advanced/index.d.ts +9 -1
  3. package/dist/advanced/index.d.ts.map +1 -1
  4. package/dist/advanced/index.js +9 -1
  5. package/dist/advanced/index.js.map +1 -1
  6. package/dist/api/server.d.ts +4 -0
  7. package/dist/api/server.d.ts.map +1 -1
  8. package/dist/api/server.js +40 -1
  9. package/dist/api/server.js.map +1 -1
  10. package/dist/api/types.d.ts +5 -0
  11. package/dist/api/types.d.ts.map +1 -1
  12. package/dist/cli/commands/chat.d.ts.map +1 -1
  13. package/dist/cli/commands/chat.js +272 -3
  14. package/dist/cli/commands/chat.js.map +1 -1
  15. package/dist/cli/commands/completions.d.ts.map +1 -1
  16. package/dist/cli/commands/completions.js +12 -1
  17. package/dist/cli/commands/completions.js.map +1 -1
  18. package/dist/cli/commands/connect.d.ts.map +1 -1
  19. package/dist/cli/commands/connect.js +3 -14
  20. package/dist/cli/commands/connect.js.map +1 -1
  21. package/dist/cli/commands/doctor.d.ts.map +1 -1
  22. package/dist/cli/commands/doctor.js +50 -0
  23. package/dist/cli/commands/doctor.js.map +1 -1
  24. package/dist/cli/commands/extensions.d.ts +5 -0
  25. package/dist/cli/commands/extensions.d.ts.map +1 -1
  26. package/dist/cli/commands/extensions.js +29 -45
  27. package/dist/cli/commands/extensions.js.map +1 -1
  28. package/dist/cli/commands/image.d.ts +17 -0
  29. package/dist/cli/commands/image.d.ts.map +1 -0
  30. package/dist/cli/commands/image.js +109 -0
  31. package/dist/cli/commands/image.js.map +1 -0
  32. package/dist/cli/commands/init.js +1 -1
  33. package/dist/cli/commands/init.js.map +1 -1
  34. package/dist/cli/commands/mission.d.ts +12 -0
  35. package/dist/cli/commands/mission.d.ts.map +1 -0
  36. package/dist/cli/commands/mission.js +93 -0
  37. package/dist/cli/commands/mission.js.map +1 -0
  38. package/dist/cli/commands/rag.d.ts.map +1 -1
  39. package/dist/cli/commands/rag.js +157 -22
  40. package/dist/cli/commands/rag.js.map +1 -1
  41. package/dist/cli/commands/skills.d.ts.map +1 -1
  42. package/dist/cli/commands/skills.js +3 -49
  43. package/dist/cli/commands/skills.js.map +1 -1
  44. package/dist/cli/commands/start/extension-loader.js +1 -1
  45. package/dist/cli/commands/start/extension-loader.js.map +1 -1
  46. package/dist/cli/commands/start/http-server.d.ts.map +1 -1
  47. package/dist/cli/commands/start/http-server.js +27 -0
  48. package/dist/cli/commands/start/http-server.js.map +1 -1
  49. package/dist/cli/commands/status.d.ts +4 -5
  50. package/dist/cli/commands/status.d.ts.map +1 -1
  51. package/dist/cli/commands/status.js +15 -15
  52. package/dist/cli/commands/status.js.map +1 -1
  53. package/dist/cli/commands/structured.d.ts +19 -0
  54. package/dist/cli/commands/structured.d.ts.map +1 -0
  55. package/dist/cli/commands/structured.js +126 -0
  56. package/dist/cli/commands/structured.js.map +1 -0
  57. package/dist/cli/commands/workflows.d.ts +6 -0
  58. package/dist/cli/commands/workflows.d.ts.map +1 -1
  59. package/dist/cli/commands/workflows.js +184 -9
  60. package/dist/cli/commands/workflows.js.map +1 -1
  61. package/dist/cli/constants.d.ts +1 -0
  62. package/dist/cli/constants.d.ts.map +1 -1
  63. package/dist/cli/constants.js +1 -0
  64. package/dist/cli/constants.js.map +1 -1
  65. package/dist/cli/help/topics.d.ts +1 -1
  66. package/dist/cli/help/topics.d.ts.map +1 -1
  67. package/dist/cli/help/topics.js +196 -5
  68. package/dist/cli/help/topics.js.map +1 -1
  69. package/dist/cli/helpers/build-agent-scaffold.d.ts.map +1 -1
  70. package/dist/cli/helpers/build-agent-scaffold.js +8 -0
  71. package/dist/cli/helpers/build-agent-scaffold.js.map +1 -1
  72. package/dist/cli/index.d.ts.map +1 -1
  73. package/dist/cli/index.js +33 -5
  74. package/dist/cli/index.js.map +1 -1
  75. package/dist/cli/tui/views/extensions-view.d.ts.map +1 -1
  76. package/dist/cli/tui/views/extensions-view.js +4 -6
  77. package/dist/cli/tui/views/extensions-view.js.map +1 -1
  78. package/dist/cli/tui/views/skills-view.d.ts.map +1 -1
  79. package/dist/cli/tui/views/skills-view.js +4 -6
  80. package/dist/cli/tui/views/skills-view.js.map +1 -1
  81. package/dist/cli/types.d.ts +1 -1
  82. package/dist/cli/types.d.ts.map +1 -1
  83. package/dist/cli/utils/search-scoring.d.ts +43 -0
  84. package/dist/cli/utils/search-scoring.d.ts.map +1 -0
  85. package/dist/cli/utils/search-scoring.js +106 -0
  86. package/dist/cli/utils/search-scoring.js.map +1 -0
  87. package/dist/observability/session-text-log.d.ts +73 -0
  88. package/dist/observability/session-text-log.d.ts.map +1 -0
  89. package/dist/observability/session-text-log.js +187 -0
  90. package/dist/observability/session-text-log.js.map +1 -0
  91. package/dist/observability/token-usage.d.ts +23 -0
  92. package/dist/observability/token-usage.d.ts.map +1 -0
  93. package/dist/observability/token-usage.js +24 -0
  94. package/dist/observability/token-usage.js.map +1 -0
  95. package/dist/observability/usage-ledger.d.ts +51 -0
  96. package/dist/observability/usage-ledger.d.ts.map +1 -0
  97. package/dist/observability/usage-ledger.js +233 -0
  98. package/dist/observability/usage-ledger.js.map +1 -0
  99. package/dist/orchestration/index.d.ts +3 -0
  100. package/dist/orchestration/index.d.ts.map +1 -0
  101. package/dist/orchestration/index.js +3 -0
  102. package/dist/orchestration/index.js.map +1 -0
  103. package/dist/orchestration/yaml-compiler.d.ts +112 -0
  104. package/dist/orchestration/yaml-compiler.d.ts.map +1 -0
  105. package/dist/orchestration/yaml-compiler.js +270 -0
  106. package/dist/orchestration/yaml-compiler.js.map +1 -0
  107. package/dist/orchestration/yaml-schema.d.ts +37 -0
  108. package/dist/orchestration/yaml-schema.d.ts.map +1 -0
  109. package/dist/orchestration/yaml-schema.js +62 -0
  110. package/dist/orchestration/yaml-schema.js.map +1 -0
  111. package/dist/public/index.d.ts +6 -1
  112. package/dist/public/index.d.ts.map +1 -1
  113. package/dist/public/index.js +403 -2
  114. package/dist/public/index.js.map +1 -1
  115. package/dist/public/types.d.ts +82 -6
  116. package/dist/public/types.d.ts.map +1 -1
  117. package/dist/rag/rag-client.d.ts +19 -9
  118. package/dist/rag/rag-client.d.ts.map +1 -1
  119. package/dist/rag/rag-client.js +108 -47
  120. package/dist/rag/rag-client.js.map +1 -1
  121. package/dist/runtime/graph-runner.d.ts +45 -0
  122. package/dist/runtime/graph-runner.d.ts.map +1 -0
  123. package/dist/runtime/graph-runner.js +232 -0
  124. package/dist/runtime/graph-runner.js.map +1 -0
  125. package/dist/runtime/index.d.ts +1 -0
  126. package/dist/runtime/index.d.ts.map +1 -1
  127. package/dist/runtime/index.js +1 -0
  128. package/dist/runtime/index.js.map +1 -1
  129. package/dist/runtime/llm-stream-adapter.d.ts +101 -0
  130. package/dist/runtime/llm-stream-adapter.d.ts.map +1 -0
  131. package/dist/runtime/llm-stream-adapter.js +180 -0
  132. package/dist/runtime/llm-stream-adapter.js.map +1 -0
  133. package/dist/runtime/system-prompt-builder.js +2 -0
  134. package/dist/runtime/system-prompt-builder.js.map +1 -1
  135. package/dist/runtime/tool-calling.d.ts +81 -0
  136. package/dist/runtime/tool-calling.d.ts.map +1 -1
  137. package/dist/runtime/tool-calling.js +1040 -497
  138. package/dist/runtime/tool-calling.js.map +1 -1
  139. package/dist/runtime/tool-helpers.d.ts +42 -0
  140. package/dist/runtime/tool-helpers.d.ts.map +1 -1
  141. package/dist/runtime/tool-helpers.js +166 -0
  142. package/dist/runtime/tool-helpers.js.map +1 -1
  143. package/dist/security/WunderlandSecurityPipeline.d.ts.map +1 -1
  144. package/dist/security/WunderlandSecurityPipeline.js +5 -0
  145. package/dist/security/WunderlandSecurityPipeline.js.map +1 -1
  146. package/dist/voice/index.d.ts +6 -0
  147. package/dist/voice/index.d.ts.map +1 -1
  148. package/dist/voice/index.js +6 -0
  149. package/dist/voice/index.js.map +1 -1
  150. package/dist/voice/streaming-pipeline.d.ts +115 -0
  151. package/dist/voice/streaming-pipeline.d.ts.map +1 -0
  152. package/dist/voice/streaming-pipeline.js +162 -0
  153. package/dist/voice/streaming-pipeline.js.map +1 -0
  154. package/dist/voice/telephony-webhook-server.d.ts +79 -0
  155. package/dist/voice/telephony-webhook-server.d.ts.map +1 -0
  156. package/dist/voice/telephony-webhook-server.js +157 -0
  157. package/dist/voice/telephony-webhook-server.js.map +1 -0
  158. package/dist/voice/ws-server.d.ts +73 -0
  159. package/dist/voice/ws-server.d.ts.map +1 -0
  160. package/dist/voice/ws-server.js +186 -0
  161. package/dist/voice/ws-server.js.map +1 -0
  162. package/dist/workflows/index.d.ts +9 -2
  163. package/dist/workflows/index.d.ts.map +1 -1
  164. package/dist/workflows/index.js +9 -2
  165. package/dist/workflows/index.js.map +1 -1
  166. package/package.json +12 -6
  167. package/presets/missions/deep-research.mission.yaml +15 -0
  168. package/presets/missions/report-writer.mission.yaml +14 -0
  169. package/presets/workflows/content-generation.workflow.yaml +21 -0
  170. package/presets/workflows/data-extraction.workflow.yaml +20 -0
  171. package/presets/workflows/evaluation.workflow.yaml +21 -0
  172. package/presets/workflows/research-pipeline.workflow.yaml +19 -0
package/README.md CHANGED
@@ -76,7 +76,7 @@
76
76
  - **Tool registry** -- Loads curated AgentOS tools via `@framers/agentos-extensions-registry`
77
77
  - **Memory hooks** -- Optional `memory_read` tool with pluggable storage (SQL, vector, graph)
78
78
  - **Immutability** -- Seal agent configuration after setup; rotate operational secrets without changing the sealed spec
79
- - **Streamlined library API** -- `createWunderland()` + sessions from the root import; advanced modules under `wunderland/advanced/*`
79
+ - **Streamlined library API** -- `createWunderland()` + sessions from the root import, plus `app.runGraph(...)` / `app.streamGraph(...)` for orchestrated execution
80
80
  - **RAG memory** -- Multimodal retrieval-augmented generation with vector, graph, and hybrid search
81
81
  - **Multi-agent collectives** -- Agency registry, communication bus, and shared memory
82
82
  - **Knowledge graph** -- Entity extraction, semantic search, and graph traversal
@@ -100,7 +100,7 @@ wunderland/
100
100
  browser/ BrowserClient, BrowserSession, BrowserInteractions
101
101
  scheduling/ CronScheduler (one-shot, interval, cron expression)
102
102
  agency/ AgencyRegistry, AgentCommunicationBus, AgencyMemoryManager
103
- workflows/ WorkflowEngine, InMemoryWorkflowStore
103
+ workflows/ AgentGraph, workflow(), mission(), WorkflowEngine, graph execution bridge
104
104
  planning/ PlanningEngine, task decomposition, autonomous loops
105
105
  evaluation/ Evaluator, LLMJudge, criteria presets
106
106
  knowledge/ KnowledgeGraph, entity extraction, semantic search
@@ -133,8 +133,67 @@ const session = app.session();
133
133
  const out = await session.sendText('Hello!');
134
134
 
135
135
  console.log(out.text);
136
+ console.log(await session.usage());
136
137
  ```
137
138
 
139
+ Usage and cost totals are persisted in the shared home ledger at `~/.framers/usage-ledger.jsonl` by default, so `wunderland status`, `app.usage()`, and `session.usage()` can all inspect cumulative model usage across separate runs. If you want a different shared file, set `AGENTOS_USAGE_LEDGER_PATH` or `WUNDERLAND_USAGE_LEDGER_PATH`. If you want Wunderland-only isolation, pass an explicit config-dir override.
140
+
141
+ For config-backed agent runs, Wunderland also writes dated plain-text session logs under `./logs/YYYY-MM-DD/*.log` by default. Disable that with `observability.textLogs.enabled=false`, or move it with `observability.textLogs.directory`.
142
+
143
+ ### Why `createWunderland()` instead of AgentOS `agent()`
144
+
145
+ Wunderland intentionally keeps `createWunderland()` as its public library entrypoint.
146
+
147
+ - `@framers/agentos` now exposes streamlined helpers like `generateText()`, `streamText()`, and `agent()` for lightweight in-process usage.
148
+ - Wunderland layers additional runtime behavior on top: curated tool loading, skills, capability discovery, approvals, extension loading, adaptive execution, workspace policies, and preset-driven configuration.
149
+
150
+ That means Wunderland should document the AgentOS high-level API, but it should not replace its own runtime with `agent()` until that helper covers the same operational surface.
151
+
152
+ ### Orchestrated execution with `wunderland/workflows`
153
+
154
+ Use the AgentOS orchestration builders for authoring, then execute the compiled graph through Wunderland so you keep its tools, approvals, extension loading, and runtime policies.
155
+
156
+ ```ts
157
+ import { createWunderland } from 'wunderland';
158
+ import { workflow } from 'wunderland/workflows';
159
+
160
+ const app = await createWunderland({
161
+ llm: { providerId: 'openai' },
162
+ tools: 'curated',
163
+ });
164
+
165
+ const compiled = workflow('research-pipeline')
166
+ .input({
167
+ type: 'object',
168
+ required: ['topic'],
169
+ properties: { topic: { type: 'string' } },
170
+ })
171
+ .returns({
172
+ type: 'object',
173
+ properties: { finalSummary: { type: 'string' } },
174
+ })
175
+ .step('research', {
176
+ gmi: {
177
+ instructions: 'Research the topic and return JSON under scratch.research.',
178
+ },
179
+ })
180
+ .then('judge', {
181
+ gmi: {
182
+ instructions: 'Score the research and return JSON under scratch.judge.',
183
+ },
184
+ })
185
+ .compile();
186
+
187
+ const result = await app.runGraph(compiled, { topic: 'graph-based agent runtimes' });
188
+ console.log(result);
189
+ ```
190
+
191
+ Use:
192
+
193
+ - `workflow()` for deterministic DAGs and explicit step ordering
194
+ - `AgentGraph` for loops, routers, and custom control flow
195
+ - `mission()` for planner-driven orchestration that compiles to the same graph IR
196
+
138
197
  ### With skills + extensions + discovery
139
198
 
140
199
  ```ts
@@ -254,9 +313,25 @@ await session.sendText('Investigate recent SQL adapter changes', {
254
313
  pnpm add -g wunderland
255
314
  # or: npm install -g wunderland (requires Node 22 LTS)
256
315
 
316
+ # Fastest first run
317
+ wunderland quickstart
318
+
257
319
  # Interactive setup wizard
258
320
  wunderland setup
259
321
 
322
+ # Open the dashboard + guided onboarding tour
323
+ wunderland
324
+
325
+ # Health check + operator help
326
+ wunderland doctor
327
+ wunderland help getting-started
328
+ wunderland help workflows
329
+ wunderland help tui
330
+
331
+ # Configure shared provider defaults (image gen, TTS, STT, web search)
332
+ wunderland extensions configure
333
+ wunderland extensions info image-generation
334
+
260
335
  # UI / accessibility
261
336
  wunderland --theme cyberpunk
262
337
  wunderland --ascii
@@ -271,6 +346,96 @@ wunderland chat
271
346
  wunderland doctor
272
347
  ```
273
348
 
349
+ ### Example files
350
+
351
+ - `examples/library-chat-basic.mjs` — minimal in-process chat
352
+ - `examples/library-chat-with-tools-and-approvals.mjs` — curated tools + safe approvals
353
+ - `examples/library-chat-image-generation.mjs` — image generation extension with provider defaults
354
+ - `examples/workflow-orchestration.mjs` — deterministic `workflow()` with an LLM-as-judge step
355
+ - `examples/agent-graph-orchestration.mjs` — explicit `AgentGraph` routing with a judge loop
356
+ - `examples/mission-orchestration.mjs` — planner-driven `mission()` plus `explain()` and execution
357
+ - `examples/chat-runtime.mjs` — lower-level runtime helper
358
+ - `examples/workflow-research.yaml` — runnable research-pipeline workflow (search → evaluate → summarize)
359
+ - `examples/mission-deep-research.yaml` — intent-driven deep research mission definition
360
+ - `examples/graph-research-loop.ts` — AgentGraph with conditional retry cycle
361
+ - `examples/graph-judge-pipeline.ts` — LLM-as-judge evaluation pipeline using judgeNode
362
+ - `examples/session-streaming.ts` — streaming session events with `session.stream()`
363
+ - `examples/checkpoint-resume.ts` — checkpoint and resume across session turns
364
+
365
+ See `docs/CLI_TUI_GUIDE.md` for the first-run checklist, TUI keybindings, help topics, troubleshooting pointers, and provider-default setup.
366
+
367
+ ---
368
+
369
+ ## Graph-Based Orchestration
370
+
371
+ Wunderland supports three levels of workflow orchestration powered by the AgentOS unified orchestration layer:
372
+
373
+ ### YAML Workflows (Deterministic DAGs)
374
+
375
+ ```yaml
376
+ # research-pipeline.workflow.yaml
377
+ name: research-pipeline
378
+ steps:
379
+ - id: search
380
+ tool: web_search
381
+ - id: evaluate
382
+ gmi: { instructions: "Evaluate results" }
383
+ - id: summarize
384
+ gmi: { instructions: "Write summary" }
385
+ ```
386
+
387
+ ```bash
388
+ # Execute a workflow YAML file
389
+ wunderland workflows run research-pipeline.workflow.yaml
390
+
391
+ # Print the compiled node/edge graph
392
+ wunderland workflows explain research-pipeline.workflow.yaml
393
+ ```
394
+
395
+ ### YAML Missions (Intent-Driven)
396
+
397
+ ```bash
398
+ # Execute a mission YAML file
399
+ wunderland mission run deep-research.mission.yaml
400
+
401
+ # Show the planner-derived mission graph
402
+ wunderland mission explain deep-research.mission.yaml
403
+ ```
404
+
405
+ ### Library API
406
+
407
+ ```typescript
408
+ import { createWunderland } from 'wunderland';
409
+
410
+ const app = await createWunderland({ llm: { providerId: 'openai', model: 'gpt-4o' } });
411
+
412
+ // Load and compile a workflow
413
+ const flow = await app.loadWorkflow('./research-pipeline.workflow.yaml');
414
+
415
+ // Stream session events
416
+ const session = app.session();
417
+ for await (const event of session.stream('Hello')) {
418
+ if (event.type === 'text_delta') process.stdout.write(event.content);
419
+ }
420
+
421
+ // Checkpoint and resume
422
+ const cpId = await session.checkpoint();
423
+ await session.resume(cpId);
424
+ ```
425
+
426
+ ### Prebuilt Templates
427
+
428
+ | Template | Type | Description |
429
+ |----------|------|-------------|
430
+ | `research-pipeline` | workflow | Search → evaluate → summarize |
431
+ | `content-generation` | workflow | Draft → judge → revise |
432
+ | `data-extraction` | workflow | Fetch → extract → validate |
433
+ | `evaluation` | workflow | Multi-judge scoring |
434
+ | `deep-research` | mission | Planner-driven research |
435
+ | `report-writer` | mission | Structured report generation |
436
+
437
+ See `presets/workflows/` and `presets/missions/` for all templates.
438
+
274
439
  ---
275
440
 
276
441
  ## What is Wunderland?
@@ -7,7 +7,15 @@
7
7
  * (new ergonomic API) unless you specifically need low-level modules.
8
8
  */
9
9
  export * from '../core/index.js';
10
- export * from '../security/index.js';
10
+ export * from '../security/types.js';
11
+ export { PreLLMClassifier, type PreLLMClassifierConfig, } from '../security/PreLLMClassifier.js';
12
+ export { DualLLMAuditor } from '../security/DualLLMAuditor.js';
13
+ export { SignedOutputVerifier, IntentChainTracker, } from '../security/SignedOutputVerifier.js';
14
+ export { type SecurityTierName, type SecurityTierConfig, type EnhancedSecurityTierConfig, SECURITY_TIERS, getSecurityTier, createPipelineFromTier, isValidSecurityTier, } from '../security/SecurityTiers.js';
15
+ export { SafeGuardrails, type SafeGuardrailsConfig } from '../security/SafeGuardrails.js';
16
+ export { AuditLogger, type AuditLoggerConfig, type ViolationFilter, type ViolationStats, } from '../security/AuditLogger.js';
17
+ export { type FolderAccessRule, type FolderPermissionConfig, type FolderPermissionResult, type ValidationResult as FolderValidationResult, checkFolderAccess, createDefaultFolderConfig, validateFolderConfig, isContainedPath, validatePluginPath, } from '../security/FolderPermissions.js';
18
+ export { ToolLoopDetector, type ToolLoopDetectorConfig, type LoopDetectionResult, } from '../security/ToolLoopDetector.js';
11
19
  export * from '../inference/index.js';
12
20
  export * from '../authorization/index.js';
13
21
  export * from '../browser/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;AAGrC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,qBAAqB,CAAC;AAGpC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,wBAAwB,CAAC;AAGvC,OAAO,EAAE,oBAAoB,EAAE,KAAK,sBAAsB,EAAE,KAAK,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAGvI,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC1G,OAAO,EACL,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,KAAK,kBAAkB,EACxF,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,cAAc,GACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACjI,OAAO,EAAE,oBAAoB,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACjI,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE/E,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC/G,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC7G,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACzF,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAG/F,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,cAAc,EACd,KAAK,eAAe,GACrB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,0BAA0B,EAC1B,gCAAgC,EAChC,iCAAiC,GAClC,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAC;AAE1F,OAAO,EAAE,0BAA0B,EAAE,MAAM,gDAAgD,CAAC;AAG5F,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAGxE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAK/D,eAAO,MAAM,OAAO,QAAc,CAAC;AACnC,eAAO,MAAM,YAAY,QAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/advanced/index.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,15 @@ import { createRequire } from 'node:module';
10
10
  // Core exports
11
11
  export * from '../core/index.js';
12
12
  // Security exports
13
- export * from '../security/index.js';
13
+ export * from '../security/types.js';
14
+ export { PreLLMClassifier, } from '../security/PreLLMClassifier.js';
15
+ export { DualLLMAuditor } from '../security/DualLLMAuditor.js';
16
+ export { SignedOutputVerifier, IntentChainTracker, } from '../security/SignedOutputVerifier.js';
17
+ export { SECURITY_TIERS, getSecurityTier, createPipelineFromTier, isValidSecurityTier, } from '../security/SecurityTiers.js';
18
+ export { SafeGuardrails } from '../security/SafeGuardrails.js';
19
+ export { AuditLogger, } from '../security/AuditLogger.js';
20
+ export { checkFolderAccess, createDefaultFolderConfig, validateFolderConfig, isContainedPath, validatePluginPath, } from '../security/FolderPermissions.js';
21
+ export { ToolLoopDetector, } from '../security/ToolLoopDetector.js';
14
22
  // Inference exports
15
23
  export * from '../inference/index.js';
16
24
  // Authorization exports
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/advanced/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/advanced/index.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@
14
14
  import { type Server } from 'node:http';
15
15
  import { type LLMProviderConfig } from '../runtime/tool-calling.js';
16
16
  import { type NormalizedRuntimePolicy } from '../runtime/policy.js';
17
+ import type { TokenUsageSummary } from '../core/TokenUsageTracker.js';
17
18
  import type { WunderlandAdaptiveExecutionConfig, WunderlandAgentConfig, WunderlandProviderId, WunderlandTaskOutcomeTelemetryConfig, WunderlandToolFailureMode, WunderlandWorkspace } from './types.js';
18
19
  type LoggerLike = {
19
20
  debug?: (msg: string, meta?: unknown) => void;
@@ -42,6 +43,9 @@ export type WunderlandServerHandle = {
42
43
  autoApproveToolCalls: boolean;
43
44
  turnApprovalMode: 'off' | 'after-each-turn' | 'after-each-round';
44
45
  openaiFallbackEnabled: boolean;
46
+ usage: (opts?: {
47
+ sessionId?: string;
48
+ }) => Promise<TokenUsageSummary>;
45
49
  close: () => Promise<void>;
46
50
  };
47
51
  export declare function createWunderlandServer(opts?: {
@@ -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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"}
@@ -41,6 +41,8 @@ import { createConfiguredRagTools } from '../rag/runtime-tools.js';
41
41
  import { maybeProxyAgentosRagRequest } from '../rag/http-proxy.js';
42
42
  import { mergeExtensionOverrides } from '../cli/extensions/settings.js';
43
43
  import { createSpeechExtensionEnvOverrides, getDefaultVoiceExtensions, } from '../voice/speech-catalog.js';
44
+ import { getRecordedWunderlandSessionUsage, getRecordedWunderlandTokenUsage } from '../observability/token-usage.js';
45
+ import { resolveWunderlandTextLogConfig, WunderlandSessionTextLogger } from '../observability/session-text-log.js';
44
46
  // HTTP helpers extracted to server-helpers.ts
45
47
  export { consoleLogger, toToolInstance, readBody, sendJson, getHeaderString, extractHitlSecret, isHitlAuthorized, inferTurnApprovalMode, finiteNumber, HITL_PAGE_HTML, PAIRING_PAGE_HTML, } from "./server-helpers.js";
46
48
  import { consoleLogger, toToolInstance, readBody, sendJson, isHitlAuthorized, inferTurnApprovalMode, finiteNumber, HITL_PAGE_HTML, PAIRING_PAGE_HTML, } from "./server-helpers.js";
@@ -150,6 +152,13 @@ export async function createWunderlandServer(opts) {
150
152
  const lazyTools = opts?.lazyTools === true || cfg?.lazyTools === true;
151
153
  const workspaceBaseDir = opts?.workspace?.baseDir ?? resolveAgentWorkspaceBaseDir();
152
154
  const workspaceAgentId = sanitizeAgentWorkspaceId(opts?.workspace?.agentId ?? seedId);
155
+ const sessionTextLogger = new WunderlandSessionTextLogger(resolveWunderlandTextLogConfig({
156
+ agentConfig: cfg,
157
+ workingDirectory,
158
+ workspace: { agentId: workspaceAgentId, baseDir: workspaceBaseDir },
159
+ defaultAgentId: workspaceAgentId,
160
+ configBacked: true,
161
+ }), logger);
153
162
  const ollamaBaseUrl = (() => {
154
163
  if (opts?.llm?.baseUrl)
155
164
  return opts.llm.baseUrl;
@@ -414,7 +423,7 @@ export async function createWunderlandServer(opts) {
414
423
  }
415
424
  // Optional skills extension (may not be installed)
416
425
  try {
417
- const skillsPkg = '@framers/agentos-skills';
426
+ const skillsPkg = '@framers/agentos-ext-skills';
418
427
  const skillsExt = await import(/* webpackIgnore: true */ skillsPkg);
419
428
  if (skillsExt?.createExtensionPack) {
420
429
  packs.push(skillsExt.createExtensionPack({ options: {}, logger: console, getSecret }));
@@ -737,6 +746,7 @@ export async function createWunderlandServer(opts) {
737
746
  if (canUseLLM) {
738
747
  const toolContext = {
739
748
  gmiId: `wunderland-channel-${sessionKey}`,
749
+ sessionId: sessionKey,
740
750
  personaId: activePersonaId,
741
751
  userContext: {
742
752
  userId: senderId,
@@ -744,6 +754,7 @@ export async function createWunderlandServer(opts) {
744
754
  conversationId,
745
755
  ...(tenantId ? { organizationId: tenantId } : null),
746
756
  },
757
+ ...(opts?.configDirOverride ? { wunderlandConfigDir: opts.configDirOverride } : null),
747
758
  agentWorkspace: { agentId: workspaceAgentId, baseDir: workspaceBaseDir },
748
759
  permissionSet: policy.permissionSet,
749
760
  securityTier: policy.securityTier,
@@ -1130,6 +1141,7 @@ export async function createWunderlandServer(opts) {
1130
1141
  let turnFailed = false;
1131
1142
  let fallbackTriggered = false;
1132
1143
  let toolCallCount = 0;
1144
+ let turnError;
1133
1145
  const sessionId = typeof parsed.sessionId === 'string' && parsed.sessionId.trim() ? parsed.sessionId.trim().slice(0, 128) : 'default';
1134
1146
  const requestedPersonaId = extractRequestedPersonaId(parsed);
1135
1147
  let requestActivePersonaId = activePersonaId;
@@ -1194,11 +1206,13 @@ export async function createWunderlandServer(opts) {
1194
1206
  if (canUseLLM) {
1195
1207
  const toolContext = {
1196
1208
  gmiId: `wunderland-server-${internalSessionId}`,
1209
+ sessionId,
1197
1210
  personaId: requestActivePersonaId,
1198
1211
  userContext: {
1199
1212
  userId: sessionId,
1200
1213
  ...(tenantId ? { organizationId: tenantId } : null),
1201
1214
  },
1215
+ ...(opts?.configDirOverride ? { wunderlandConfigDir: opts.configDirOverride } : null),
1202
1216
  agentWorkspace: { agentId: workspaceAgentId, baseDir: workspaceBaseDir },
1203
1217
  permissionSet: policy.permissionSet,
1204
1218
  securityTier: policy.securityTier,
@@ -1305,6 +1319,7 @@ export async function createWunderlandServer(opts) {
1305
1319
  }
1306
1320
  catch (error) {
1307
1321
  turnFailed = true;
1322
+ turnError = error;
1308
1323
  throw error;
1309
1324
  }
1310
1325
  finally {
@@ -1327,6 +1342,23 @@ export async function createWunderlandServer(opts) {
1327
1342
  error: error instanceof Error ? error.message : String(error),
1328
1343
  });
1329
1344
  }
1345
+ await sessionTextLogger.logTurn({
1346
+ meta: {
1347
+ agentId: workspaceAgentId,
1348
+ seedId,
1349
+ displayName,
1350
+ providerId: String(providerId),
1351
+ model,
1352
+ personaId: requestActivePersonaId,
1353
+ },
1354
+ sessionId,
1355
+ userText: message,
1356
+ reply,
1357
+ error: turnError,
1358
+ toolCallCount,
1359
+ durationMs: 0,
1360
+ fallbackTriggered,
1361
+ });
1330
1362
  }
1331
1363
  sendJson(res, 200, { reply, personaId: requestActivePersonaId });
1332
1364
  return;
@@ -1438,6 +1470,12 @@ export async function createWunderlandServer(opts) {
1438
1470
  channelCount: adapterByPlatform.size,
1439
1471
  pairingEnabled,
1440
1472
  });
1473
+ const usage = async (usageOpts) => {
1474
+ if (usageOpts?.sessionId) {
1475
+ return getRecordedWunderlandSessionUsage(usageOpts.sessionId, opts?.configDirOverride);
1476
+ }
1477
+ return getRecordedWunderlandTokenUsage(opts?.configDirOverride);
1478
+ };
1441
1479
  return {
1442
1480
  server,
1443
1481
  url,
@@ -1458,6 +1496,7 @@ export async function createWunderlandServer(opts) {
1458
1496
  autoApproveToolCalls,
1459
1497
  turnApprovalMode,
1460
1498
  openaiFallbackEnabled,
1499
+ usage,
1461
1500
  close,
1462
1501
  };
1463
1502
  }