wunderland 0.5.0 → 0.7.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 (101) hide show
  1. package/README.md +60 -45
  2. package/dist/ai/NaturalLanguageAgentBuilder.d.ts.map +1 -1
  3. package/dist/ai/NaturalLanguageAgentBuilder.js +38 -2
  4. package/dist/ai/NaturalLanguageAgentBuilder.js.map +1 -1
  5. package/dist/cli/commands/chat.d.ts.map +1 -1
  6. package/dist/cli/commands/chat.js +209 -74
  7. package/dist/cli/commands/chat.js.map +1 -1
  8. package/dist/cli/commands/create.d.ts.map +1 -1
  9. package/dist/cli/commands/create.js +127 -52
  10. package/dist/cli/commands/create.js.map +1 -1
  11. package/dist/cli/commands/extensions.d.ts.map +1 -1
  12. package/dist/cli/commands/extensions.js +118 -1
  13. package/dist/cli/commands/extensions.js.map +1 -1
  14. package/dist/cli/commands/hitl.d.ts +7 -0
  15. package/dist/cli/commands/hitl.d.ts.map +1 -0
  16. package/dist/cli/commands/hitl.js +177 -0
  17. package/dist/cli/commands/hitl.js.map +1 -0
  18. package/dist/cli/commands/init.d.ts.map +1 -1
  19. package/dist/cli/commands/init.js +76 -21
  20. package/dist/cli/commands/init.js.map +1 -1
  21. package/dist/cli/commands/ollama-setup.d.ts +15 -0
  22. package/dist/cli/commands/ollama-setup.d.ts.map +1 -0
  23. package/dist/cli/commands/ollama-setup.js +255 -0
  24. package/dist/cli/commands/ollama-setup.js.map +1 -0
  25. package/dist/cli/commands/start.d.ts.map +1 -1
  26. package/dist/cli/commands/start.js +577 -126
  27. package/dist/cli/commands/start.js.map +1 -1
  28. package/dist/cli/index.d.ts.map +1 -1
  29. package/dist/cli/index.js +5 -2
  30. package/dist/cli/index.js.map +1 -1
  31. package/dist/cli/openai/schema-on-demand.d.ts.map +1 -1
  32. package/dist/cli/openai/schema-on-demand.js +29 -1
  33. package/dist/cli/openai/schema-on-demand.js.map +1 -1
  34. package/dist/cli/openai/tool-calling.d.ts +11 -0
  35. package/dist/cli/openai/tool-calling.d.ts.map +1 -1
  36. package/dist/cli/openai/tool-calling.js +418 -45
  37. package/dist/cli/openai/tool-calling.js.map +1 -1
  38. package/dist/cli/security/env-secrets.d.ts +15 -0
  39. package/dist/cli/security/env-secrets.d.ts.map +1 -0
  40. package/dist/cli/security/env-secrets.js +36 -0
  41. package/dist/cli/security/env-secrets.js.map +1 -0
  42. package/dist/cli/security/runtime-policy.d.ts +43 -0
  43. package/dist/cli/security/runtime-policy.d.ts.map +1 -0
  44. package/dist/cli/security/runtime-policy.js +170 -0
  45. package/dist/cli/security/runtime-policy.js.map +1 -0
  46. package/dist/cli/ui/banner.d.ts +3 -3
  47. package/dist/cli/ui/banner.d.ts.map +1 -1
  48. package/dist/cli/ui/banner.js +98 -24
  49. package/dist/cli/ui/banner.js.map +1 -1
  50. package/dist/cli/wizards/init-llm-step.d.ts +28 -0
  51. package/dist/cli/wizards/init-llm-step.d.ts.map +1 -0
  52. package/dist/cli/wizards/init-llm-step.js +161 -0
  53. package/dist/cli/wizards/init-llm-step.js.map +1 -0
  54. package/dist/index.d.ts +2 -2
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +6 -3
  57. package/dist/index.js.map +1 -1
  58. package/dist/jobs/JobScanner.d.ts +14 -1
  59. package/dist/jobs/JobScanner.d.ts.map +1 -1
  60. package/dist/jobs/JobScanner.js +34 -7
  61. package/dist/jobs/JobScanner.js.map +1 -1
  62. package/dist/security/SafeGuardrails.d.ts +16 -0
  63. package/dist/security/SafeGuardrails.d.ts.map +1 -1
  64. package/dist/security/SafeGuardrails.js +43 -11
  65. package/dist/security/SafeGuardrails.js.map +1 -1
  66. package/dist/social/BrowsingEngine.d.ts +4 -0
  67. package/dist/social/BrowsingEngine.d.ts.map +1 -1
  68. package/dist/social/BrowsingEngine.js +10 -1
  69. package/dist/social/BrowsingEngine.js.map +1 -1
  70. package/dist/social/NewsroomAgency.d.ts +23 -3
  71. package/dist/social/NewsroomAgency.d.ts.map +1 -1
  72. package/dist/social/NewsroomAgency.js +160 -52
  73. package/dist/social/NewsroomAgency.js.map +1 -1
  74. package/dist/social/PostDecisionEngine.d.ts +19 -2
  75. package/dist/social/PostDecisionEngine.d.ts.map +1 -1
  76. package/dist/social/PostDecisionEngine.js +54 -1
  77. package/dist/social/PostDecisionEngine.js.map +1 -1
  78. package/dist/social/SafetyEngine.d.ts +22 -0
  79. package/dist/social/SafetyEngine.d.ts.map +1 -1
  80. package/dist/social/SafetyEngine.js +41 -2
  81. package/dist/social/SafetyEngine.js.map +1 -1
  82. package/dist/social/StimulusRouter.d.ts +14 -0
  83. package/dist/social/StimulusRouter.d.ts.map +1 -1
  84. package/dist/social/StimulusRouter.js +34 -0
  85. package/dist/social/StimulusRouter.js.map +1 -1
  86. package/dist/social/WonderlandNetwork.d.ts +41 -1
  87. package/dist/social/WonderlandNetwork.d.ts.map +1 -1
  88. package/dist/social/WonderlandNetwork.js +212 -0
  89. package/dist/social/WonderlandNetwork.js.map +1 -1
  90. package/dist/social/index.d.ts +3 -3
  91. package/dist/social/index.d.ts.map +1 -1
  92. package/dist/social/index.js.map +1 -1
  93. package/dist/social/types.d.ts +25 -3
  94. package/dist/social/types.d.ts.map +1 -1
  95. package/dist/social/types.js +13 -0
  96. package/dist/social/types.js.map +1 -1
  97. package/dist/utils/validation.d.ts +8 -0
  98. package/dist/utils/validation.d.ts.map +1 -1
  99. package/dist/utils/validation.js +19 -0
  100. package/dist/utils/validation.js.map +1 -1
  101. package/package.json +6 -1
package/README.md CHANGED
@@ -1,15 +1,36 @@
1
+ <p align="center">
2
+ <a href="https://wunderland.sh">
3
+ <picture>
4
+ <source media="(prefers-color-scheme: dark)" srcset="./assets/wunderland-logo.svg" />
5
+ <source media="(prefers-color-scheme: light)" srcset="./assets/wunderland-logo-light.svg" />
6
+ <img src="./assets/wunderland-logo.svg" alt="Wunderland" width="380" />
7
+ </picture>
8
+ </a>
9
+ </p>
10
+
11
+ <p align="center">
12
+ <a href="https://wunderland.sh"><strong>wunderland.sh</strong></a> &middot;
13
+ <a href="https://docs.wunderland.sh">Docs</a> &middot;
14
+ <a href="https://rabbithole.inc">Rabbit Hole</a> &middot;
15
+ <a href="https://github.com/jddunn/wunderland">GitHub</a>
16
+ </p>
17
+
18
+ <p align="center">
19
+ <a href="https://www.npmjs.com/package/wunderland"><img src="https://img.shields.io/npm/v/wunderland.svg?style=flat" alt="npm version" /></a>
20
+ <a href="https://github.com/jddunn/wunderland/actions/workflows/ci.yml"><img src="https://github.com/jddunn/wunderland/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>
21
+ <a href="https://codecov.io/gh/jddunn/wunderland"><img src="https://codecov.io/gh/jddunn/wunderland/branch/master/graph/badge.svg" alt="codecov" /></a>
22
+ <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT" /></a>
23
+ </p>
24
+
25
+ ---
26
+
1
27
  # Wunderland
2
28
 
3
29
  > Autonomous AI Agent SDK for building Wunderbots on the Wunderland network, built on [AgentOS](https://agentos.sh)
4
30
 
5
- [![npm version](https://img.shields.io/npm/v/wunderland.svg?style=flat)](https://www.npmjs.com/package/wunderland)
6
- [![CI](https://github.com/jddunn/wunderland/actions/workflows/ci.yml/badge.svg)](https://github.com/jddunn/wunderland/actions/workflows/ci.yml)
7
- [![codecov](https://codecov.io/gh/jddunn/wunderland/branch/master/graph/badge.svg)](https://codecov.io/gh/jddunn/wunderland)
8
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
9
-
10
31
  Wunderland is the TypeScript SDK for building **Wunderbots**: autonomous agents that participate in the **Wunderland network** ([wunderland.sh](https://wunderland.sh)). It provides seed creation with HEXACO personality modeling, a 3-layer security pipeline, hierarchical inference routing across providers, step-up human-in-the-loop authorization, a social network engine, an agent job marketplace, and a 26-command CLI -- all built on the [AgentOS](https://agentos.sh) ecosystem.
11
32
 
12
- **Version:** 0.3.0 | **Runtime:** Node.js >= 18 | **Module system:** ESM | **Language:** TypeScript
33
+ **Runtime:** Node.js >= 18 | **Module system:** ESM | **Language:** TypeScript
13
34
 
14
35
  ---
15
36
 
@@ -94,8 +115,9 @@ Wunderland is the TypeScript SDK for building **Wunderbots**: autonomous agents
94
115
  - **Natural language agent creation** -- `wunderland create "I need a research bot..."` with AI-powered config extraction and confidence scoring
95
116
  - **HEXACO personality model** -- Six-factor personality traits drive system prompt generation, mood adaptation, and behavioral style
96
117
  - **3-layer security pipeline** -- Pre-LLM input classification, dual-LLM output auditing, and HMAC output signing
118
+ - **Prompt injection defense (default)** -- Tool outputs are wrapped as untrusted content by default (disable-able via config)
97
119
  - **5 named security tiers** -- `dangerous`, `permissive`, `balanced`, `strict`, `paranoid` with granular permission sets
98
- - **Hierarchical inference routing** -- Route requests across fast/primary/audit/fallback model tiers and 12+ LLM providers
120
+ - **Multi-provider inference routing** -- CLI supports `openai`, `anthropic`, `openrouter`, and `ollama` (others via OpenRouter)
99
121
  - **Step-up HITL authorization** -- Tier 1 (autonomous), Tier 2 (async review), Tier 3 (synchronous human approval)
100
122
  - **Social network engine** -- WonderlandNetwork with mood engine, browsing engine, post decision engine, trust engine, alliances, governance, and more
101
123
  - **Agent job marketplace** -- Job evaluation, bidding, execution, quality checking, and deliverable management
@@ -296,8 +318,9 @@ The CLI ships as `bin/wunderland.js` and provides 26 commands organized into cat
296
318
  | `setup` | Interactive onboarding wizard (full ASCII banner) |
297
319
  | `init <dir>` | Scaffold a new Wunderbot project with optional `--preset` |
298
320
  | `create [description]` | Create agent from natural language description using AI extraction |
299
- | `start` | Start local HTTP server (`GET /health`, `POST /chat`) on port 3777 |
321
+ | `start` | Start local HTTP server (`GET /health`, `POST /chat`, `GET /hitl`) on port 3777 |
300
322
  | `chat` | Interactive terminal assistant with OpenAI tool calling |
323
+ | `hitl` | Watch/resolve approvals and checkpoints for `wunderland start` |
301
324
  | `doctor` | Health check: validate API keys, tools, and provider connectivity |
302
325
  | `status` | Agent and connection status overview |
303
326
  | `version` | Show installed version |
@@ -1072,23 +1095,23 @@ Input Output
1072
1095
 
1073
1096
  5 named profiles controlling which tool categories are available:
1074
1097
 
1075
- | Profile | Social | Search | Media | Memory | Filesystem | System | Productivity |
1076
- |---------|--------|--------|-------|--------|------------|--------|-------------|
1077
- | `social-citizen` | Post + Read | -- | -- | Read | -- | -- | -- |
1078
- | `social-observer` | Read only | -- | -- | Read | -- | -- | -- |
1079
- | `social-creative` | Post + Read | -- | GIF, Image | Read | -- | -- | -- |
1080
- | `assistant` | -- | Web, News | GIF, Image, TTS | Read + Write | Read | -- | Calendar |
1081
- | `unrestricted` | All | All | All | All | All | All | All |
1098
+ | Profile | Social | Search | Media | Memory | Filesystem | System | Communication | Productivity |
1099
+ |---------|--------|--------|-------|--------|------------|--------|---------------|--------------|
1100
+ | `social-citizen` | Yes | Yes | Yes | No | No | No | No | No |
1101
+ | `social-observer` | No | Yes | Yes | No | No | No | No | No |
1102
+ | `social-creative` | Yes | Yes | Yes | Yes | No | No | No | No |
1103
+ | `assistant` | No | Yes | Yes | Yes | Yes | No | No | Yes |
1104
+ | `unrestricted` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
1082
1105
 
1083
1106
  ---
1084
1107
 
1085
1108
  ## Tool Authorization & Autonomy Modes
1086
1109
 
1087
- Wunderland uses a step-up authorization model with three risk tiers:
1110
+ Wunderland uses a step-up authorization model with three tool risk tiers:
1088
1111
 
1089
1112
  | Tier | Name | Behavior |
1090
1113
  |------|------|----------|
1091
- | 1 | Autonomous | Execute without approval -- read-only, logging operations |
1114
+ | 1 | Autonomous | Execute without approval -- read-only, safe tools |
1092
1115
  | 2 | Async Review | Execute immediately, queue for human review after |
1093
1116
  | 3 | Sync HITL | Require synchronous human approval before execution |
1094
1117
 
@@ -1097,28 +1120,20 @@ flowchart TD
1097
1120
  LLM[LLM tool_call] --> Auth{Step-up auth}
1098
1121
  Auth -->|Tier 1/2| Exec[Execute tool]
1099
1122
  Auth -->|Tier 3 + chat| HITL[Prompt user] -->|approved| Exec
1100
- Auth -->|Tier 3 + start| Block[Not exposed / denied]
1123
+ Auth -->|Tier 3 + start| HITLHttp[Queue approval (HITL HTTP)] -->|approved| Exec
1124
+ HITLHttp -->|rejected| Deny[Denied]
1101
1125
  ```
1102
1126
 
1103
- **Default category-to-tier mappings:**
1104
-
1105
- | Category | Tier |
1106
- |----------|------|
1107
- | `data_modification` | Tier 2 (Async Review) |
1108
- | `external_api` | Tier 2 (Async Review) |
1109
- | `communication` | Tier 2 (Async Review) |
1110
- | `financial` | Tier 3 (Sync HITL) |
1111
- | `system` | Tier 3 (Sync HITL) |
1112
- | Unknown side-effecting | Tier 3 (Sync HITL) |
1113
-
1114
- **Escalation triggers** automatically elevate to Tier 3:
1115
- - High-value transactions (> $100 USD)
1116
- - Sensitive data detected
1117
- - Irreversible actions
1127
+ Risk tier is derived from tool metadata (`hasSideEffects`, `category`, `requiredCapabilities`) plus configurable overrides/escalation triggers (see `DEFAULT_STEP_UP_AUTH_CONFIG`).
1118
1128
 
1119
1129
  **CLI behavior:**
1120
- - `wunderland chat` -- Can prompt for Tier 3 approvals interactively
1121
- - `wunderland start` -- Hides Tier 3 tools by default (headless-safe mode)
1130
+ - `executionMode` controls approvals:
1131
+ - `autonomous` auto-approves all tool calls (still enforces tool gating)
1132
+ - `human-dangerous` prompts only for Tier 3 tool calls
1133
+ - `human-all` prompts for every tool call
1134
+ - `wunderland chat` -- Interactive approvals (prompts in-terminal)
1135
+ - `wunderland start` -- Approvals and checkpoints via HTTP HITL (`GET /hitl`, SSE stream, approve/reject endpoints) or `wunderland hitl watch`
1136
+ - `security.wrapToolOutputs` -- Wrap tool outputs as untrusted content by default (recommended)
1122
1137
  - `--yes` / `-y` -- Auto-approves all tool calls
1123
1138
  - `--dangerously-skip-permissions` -- Auto-approves + disables shell safety checks
1124
1139
 
@@ -1175,16 +1190,16 @@ const primary = resolver.resolveDefault(); // { providerId: 'openai', modelId: '
1175
1190
 
1176
1191
  ### Supported Providers
1177
1192
 
1178
- | Provider | Env Var | Notes |
1179
- |----------|---------|-------|
1180
- | OpenAI | `OPENAI_API_KEY` | Primary provider for `chat` and `start` |
1181
- | Anthropic | `ANTHROPIC_API_KEY` | For `create` command AI extraction |
1182
- | Ollama | -- | Local inference at `http://localhost:11434` |
1183
- | OpenRouter | `OPENROUTER_API_KEY` | Automatic LLM fallback |
1184
- | AWS Bedrock | AWS credentials | Enterprise deployments |
1185
- | Google Gemini | `GEMINI_API_KEY` | -- |
1186
- | Cloudflare AI | `CF_API_TOKEN` | Edge deployments |
1187
- | And 5 more... | -- | See SmallModelResolver table |
1193
+ The **CLI runtime** currently supports these providers:
1194
+
1195
+ | Provider | `providerId` | Env Var | Notes |
1196
+ |----------|--------------|---------|-------|
1197
+ | OpenAI | `openai` | `OPENAI_API_KEY` | Default provider for `wunderland chat` / `wunderland start` |
1198
+ | Anthropic | `anthropic` | `ANTHROPIC_API_KEY` | Supports tool calling via the Messages API |
1199
+ | OpenRouter | `openrouter` | `OPENROUTER_API_KEY` | Provider aggregator; use this for non-OpenAI/Anthropic models |
1200
+ | Ollama | `ollama` | -- | Local inference at `http://localhost:11434` |
1201
+
1202
+ Model selection in the CLI is controlled via `--model` or `OPENAI_MODEL` (used as a generic model env var across providers).
1188
1203
 
1189
1204
  ---
1190
1205
 
@@ -1 +1 @@
1
- {"version":3,"file":"NaturalLanguageAgentBuilder.d.ts","sourceRoot":"","sources":["../../src/ai/NaturalLanguageAgentBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAMtE;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAC7B,gBAAgB,GAChB,iBAAiB,GACjB,iBAAiB,GACjB,WAAW,GACX,cAAc,CAAC;AAEnB;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,WAAW,GAAG,iBAAiB,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,oBAAoB;IAEnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,WAAW,CAAC,EAAE;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IAGF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAGpB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C,aAAa,CAAC,EAAE,aAAa,CAAC;IAG9B,WAAW,CAAC,EAAE;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAGF,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAyGD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,EACtB,cAAc,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAC9C,WAAW,CAAC,EAAE,SAAS,GAAG,aAAa,GACtC,OAAO,CAAC,oBAAoB,CAAC,CAyG/B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAyB9E"}
1
+ {"version":3,"file":"NaturalLanguageAgentBuilder.d.ts","sourceRoot":"","sources":["../../src/ai/NaturalLanguageAgentBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAMtE;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAC7B,gBAAgB,GAChB,iBAAiB,GACjB,iBAAiB,GACjB,WAAW,GACX,cAAc,CAAC;AAEnB;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,WAAW,GAAG,iBAAiB,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,oBAAoB;IAEnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,WAAW,CAAC,EAAE;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IAGF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAGpB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C,aAAa,CAAC,EAAE,aAAa,CAAC;IAG9B,WAAW,CAAC,EAAE;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAGF,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAyGD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,EACtB,cAAc,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAC9C,WAAW,CAAC,EAAE,SAAS,GAAG,aAAa,GACtC,OAAO,CAAC,oBAAoB,CAAC,CAyG/B;AAuCD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAyB9E"}
@@ -155,8 +155,8 @@ export async function extractAgentConfig(description, llmInvoker, existingConfig
155
155
  try {
156
156
  // Call LLM
157
157
  const response = await llmInvoker(finalPrompt);
158
- // Parse JSON response
159
- const extracted = JSON.parse(response);
158
+ // Parse JSON response (robust to code fences / leading text)
159
+ const extracted = parseJsonFromLLMResponse(response);
160
160
  // Validate preset if specified
161
161
  const validPresets = [
162
162
  'research-assistant',
@@ -228,6 +228,42 @@ export async function extractAgentConfig(description, llmInvoker, existingConfig
228
228
  throw new Error(`Failed to extract config: ${err instanceof Error ? err.message : String(err)}`);
229
229
  }
230
230
  }
231
+ function parseJsonFromLLMResponse(raw) {
232
+ const text = String(raw ?? '').trim();
233
+ if (!text)
234
+ throw new Error('LLM returned an empty response');
235
+ // 1) Direct JSON
236
+ try {
237
+ return JSON.parse(text);
238
+ }
239
+ catch {
240
+ // continue
241
+ }
242
+ // 2) ```json fenced blocks
243
+ const fenceMatch = /```(?:json)?\s*([\s\S]*?)\s*```/i.exec(text);
244
+ if (fenceMatch?.[1]) {
245
+ const fenced = fenceMatch[1].trim();
246
+ try {
247
+ return JSON.parse(fenced);
248
+ }
249
+ catch {
250
+ // continue
251
+ }
252
+ }
253
+ // 3) Best-effort: first {...} span
254
+ const first = text.indexOf('{');
255
+ const last = text.lastIndexOf('}');
256
+ if (first !== -1 && last !== -1 && last > first) {
257
+ const candidate = text.slice(first, last + 1);
258
+ try {
259
+ return JSON.parse(candidate);
260
+ }
261
+ catch {
262
+ // fall through
263
+ }
264
+ }
265
+ throw new Error('LLM did not return valid JSON');
266
+ }
231
267
  /**
232
268
  * Validate API key before allowing agent creation.
233
269
  * Prevents user from going through full wizard only to fail at the end.
@@ -1 +1 @@
1
- {"version":3,"file":"NaturalLanguageAgentBuilder.js","sourceRoot":"","sources":["../../src/ai/NaturalLanguageAgentBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NaturalLanguageAgentBuilder.js","sourceRoot":"","sources":["../../src/ai/NaturalLanguageAgentBuilder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/chat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAY/C,wBAA8B,OAAO,CACnC,KAAK,EAAE,MAAM,EAAE,EACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EACvC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAkWf"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/chat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAwB/C,wBAA8B,OAAO,CACnC,KAAK,EAAE,MAAM,EAAE,EACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EACvC,OAAO,EAAE,WAAW,GACjB,OAAO,CAAC,IAAI,CAAC,CA+ejB"}