@mandujs/mcp 0.12.2 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,367 +1,366 @@
1
- <p align="center">
2
- <img src="https://raw.githubusercontent.com/konamgil/mandu/main/mandu_only_simbol.png" alt="Mandu" width="200" />
3
- </p>
4
-
5
- <h1 align="center">@mandujs/mcp</h1>
6
-
7
- <p align="center">
8
- <strong>Mandu MCP Server</strong><br/>
9
- Model Context Protocol server for AI agent integration
10
- </p>
11
-
12
- <p align="center">
13
- English | <a href="./README.ko.md"><strong>한국어</strong></a>
14
- </p>
15
-
16
- ## What is MCP?
17
-
18
- MCP (Model Context Protocol) enables AI agents to directly interact with the Mandu framework. Instead of generating code blindly, agents can:
19
-
20
- - Query current project structure
21
- - Add/modify routes with validation
22
- - Write business logic with auto-correction
23
- - Check architecture rules before making changes
24
- - Receive real-time violation notifications
25
-
26
- ## Setup
27
-
28
- ### Claude Code / Claude Desktop
29
-
30
- Add to your MCP configuration (`.mcp.json` or Claude settings):
31
-
32
- ```json
33
- {
34
- "mcpServers": {
35
- "mandu": {
36
- "command": "bunx",
37
- "args": ["@mandujs/mcp"],
38
- "cwd": "/path/to/your/project"
39
- }
40
- }
41
- }
42
- ```
43
-
44
- ### Direct Execution
45
-
46
- ```bash
47
- cd /path/to/project
48
- bunx @mandujs/mcp
49
- ```
50
-
51
- ### Global Mode
52
-
53
- Run MCP without project auto-detection (use current directory):
54
-
55
- ```bash
56
- bunx @mandujs/mcp --global
57
- ```
58
-
59
- Optional: target a specific root directory:
60
-
61
- ```bash
62
- bunx @mandujs/mcp --root /path/to/project
63
- ```
64
-
65
- ---
66
-
67
- ## Tools (35+)
68
-
69
- ### Spec Management
70
-
71
- | Tool | Description |
72
- |------|-------------|
73
- | `mandu_list_routes` | List all routes with details |
74
- | `mandu_get_route` | Get specific route by ID |
75
- | `mandu_add_route` | Add new route to manifest |
76
- | `mandu_update_route` | Modify existing route |
77
- | `mandu_delete_route` | Remove route from manifest |
78
- | `mandu_validate_spec` | Validate manifest schema |
79
-
80
- ### Code Generation
81
-
82
- | Tool | Description |
83
- |------|-------------|
84
- | `mandu_generate` | Generate code from manifest |
85
-
86
- ### Transaction Management
87
-
88
- | Tool | Description |
89
- |------|-------------|
90
- | `mandu_begin` | Start transaction with snapshot |
91
- | `mandu_commit` | Finalize changes |
92
- | `mandu_rollback` | Restore from snapshot |
93
- | `mandu_tx_status` | Get transaction state |
94
-
95
- ### Slot Management
96
-
97
- | Tool | Description |
98
- |------|-------------|
99
- | `mandu_read_slot` | Read slot file content |
100
- | `mandu_write_slot` | Write slot file (with auto-correction) |
101
- | `mandu_validate_slot` | Validate slot syntax |
102
-
103
- ### Guard & Architecture
104
-
105
- | Tool | Description |
106
- |------|-------------|
107
- | `mandu_guard_check` | Run all guard checks |
108
- | `mandu_guard_heal` | Self-Healing Guard - detect + auto-fix suggestions |
109
- | `mandu_explain_rule` | Explain architecture rule with examples |
110
- | `mandu_check_location` | Validate file location before creating |
111
- | `mandu_check_import` | Validate imports against architecture rules |
112
- | `mandu_get_architecture` | Get project architecture rules |
113
-
114
- ### Decision Memory (RFC-001) 🆕
115
-
116
- | Tool | Description |
117
- |------|-------------|
118
- | `mandu_search_decisions` | Search ADRs by tags or status |
119
- | `mandu_save_decision` | Save new architecture decision |
120
- | `mandu_check_consistency` | Check decision-implementation consistency |
121
-
122
- ### Semantic Slots (RFC-001) 🆕
123
-
124
- | Tool | Description |
125
- |------|-------------|
126
- | `mandu_validate_slot` | Validate slot against constraints |
127
- | `mandu_validate_slots` | Batch validate multiple slots |
128
-
129
- ### Architecture Negotiation (RFC-001) 🆕
130
-
131
- | Tool | Description |
132
- |------|-------------|
133
- | `mandu_negotiate` | AI-Framework negotiation dialog |
134
- | `mandu_generate_scaffold` | Generate structure scaffold |
135
- | `mandu_analyze_structure` | Analyze existing project structure |
136
-
137
- ### Brain & Monitoring
138
-
139
- | Tool | Description |
140
- |------|-------------|
141
- | `mandu_doctor` | Analyze failures + suggest patches |
142
- | `mandu_watch_start` | Start file watcher with notifications |
143
- | `mandu_watch_status` | Get watcher status |
144
- | `mandu_watch_stop` | Stop file watcher |
145
-
146
- ### Project & Dev
147
-
148
- | Tool | Description |
149
- |------|-------------|
150
- | `mandu_init` | Initialize new Mandu project (init + optional install) |
151
- | `mandu_dev_start` | Start dev server (bun run dev) |
152
- | `mandu_dev_stop` | Stop dev server |
153
-
154
- ### Hydration & Build
155
-
156
- | Tool | Description |
157
- |------|-------------|
158
- | `mandu_build` | Build client bundles |
159
- | `mandu_build_status` | Get bundle statistics |
160
- | `mandu_list_islands` | List routes with hydration |
161
- | `mandu_set_hydration` | Configure hydration strategy |
162
- | `mandu_add_client_slot` | Create client slot for route |
163
-
164
- ### History
165
-
166
- | Tool | Description |
167
- |------|-------------|
168
- | `mandu_list_changes` | View change history |
169
- | `mandu_prune_history` | Clean old snapshots |
170
-
171
- ---
172
-
173
- ## Resources
174
-
175
- | URI | Description |
176
- |-----|-------------|
177
- | `mandu://spec/manifest` | Current routes.manifest.json |
178
- | `mandu://spec/lock` | Current spec.lock.json with hash |
179
- | `mandu://generated/map` | Generated files mapping |
180
- | `mandu://transaction/active` | Active transaction state |
181
- | `mandu://slots/{routeId}` | Slot file content by route ID |
182
- | `mandu://watch/warnings` | Recent architecture violation warnings |
183
- | `mandu://watch/status` | Watcher status (active, uptime, count) |
184
-
185
- ---
186
-
187
- ## Real-Time Notifications
188
-
189
- When `mandu_watch_start` is active, the agent receives real-time push notifications for architecture violations:
190
-
191
- ```json
192
- {
193
- "jsonrpc": "2.0",
194
- "method": "notifications/message",
195
- "params": {
196
- "level": "warning",
197
- "logger": "mandu-watch",
198
- "data": {
199
- "type": "watch_warning",
200
- "ruleId": "GENERATED_DIRECT_EDIT",
201
- "file": "apps/server/generated/routes/home.route.ts",
202
- "message": "Generated file was directly modified",
203
- "timestamp": "2026-02-02T10:15:00.000Z"
204
- }
205
- }
206
- }
207
- ```
208
-
209
- ### Watched Rules
210
-
211
- | Rule | Description |
212
- |------|-------------|
213
- | `GENERATED_DIRECT_EDIT` | Manual edits to generated files |
214
- | `WRONG_SLOT_LOCATION` | Slot files outside `spec/slots/` |
215
- | `SLOT_NAMING` | Slot files not ending with `.slot.ts` |
216
- | `CONTRACT_NAMING` | Contract files not ending with `.contract.ts` |
217
- | `FORBIDDEN_IMPORT` | Dangerous imports in generated files |
218
-
219
- ---
220
-
221
- ## Activity Monitor (JSON Schema)
222
-
223
- The MCP server writes activity logs to `.mandu/activity.log` (pretty) or `.mandu/activity.jsonl` (JSON).
224
- JSON lines follow a stable schema with `schemaVersion`:
225
-
226
- ```json
227
- {
228
- "schemaVersion": "1.0",
229
- "ts": "2026-02-02T12:34:56.789Z",
230
- "type": "tool.call",
231
- "severity": "info",
232
- "source": "tool",
233
- "message": "",
234
- "actionRequired": false,
235
- "fingerprint": "tool:call:mandu_guard_check",
236
- "count": 1,
237
- "data": {
238
- "tool": "mandu_guard_check",
239
- "tag": "GUARD",
240
- "args": {}
241
- }
242
- }
243
- ```
244
-
245
- Common `type` values: `tool.call`, `tool.result`, `tool.error`, `watch.warning`, `guard.summary`, `guard.violation`, `routes.change`, `system.event`, `monitor.summary`.
246
-
247
- Default config is auto-created at `.mandu/monitor.config.json` on first run.
248
-
249
- ---
250
-
251
- ## Agent Workflow Examples
252
-
253
- ### Adding a New API Route
254
-
255
- ```
256
- Agent:
257
- 1. mandu_begin({ message: "Add users API" })
258
- → Creates snapshot
259
-
260
- 2. mandu_check_location({ path: "spec/slots/users.slot.ts" })
261
- → Validates location is allowed
262
-
263
- 3. mandu_add_route({
264
- id: "users-list",
265
- pattern: "/api/users",
266
- kind: "api",
267
- methods: ["GET", "POST"],
268
- slotModule: "spec/slots/users.slot.ts"
269
- })
270
- → Adds route to manifest
271
-
272
- 4. mandu_generate()
273
- → Creates route handlers
274
-
275
- 5. mandu_write_slot({
276
- routeId: "users-list",
277
- content: "...",
278
- autoCorrect: true
279
- })
280
- → Writes business logic
281
-
282
- 6. mandu_guard_check()
283
- → Validates architecture
284
-
285
- 7. mandu_commit()
286
- → Finalizes changes
287
- ```
288
-
289
- ### Checking Before Writing
290
-
291
- ```
292
- Agent:
293
- 1. mandu_get_architecture()
294
- → Gets folder rules, import rules, naming rules
295
-
296
- 2. mandu_check_location({ path: "src/features/user/api.ts" })
297
- → Checks if location is valid
298
-
299
- 3. mandu_check_import({
300
- sourceFile: "src/features/user/api.ts",
301
- imports: ["../../entities/product"]
302
- })
303
- → Checks if imports are allowed
304
-
305
- 4. Proceed with writing if all checks pass
306
- ```
307
-
308
- ### Monitoring Architecture
309
-
310
- ```
311
- Agent:
312
- 1. mandu_watch_start()
313
- → Starts watching with notifications
314
-
315
- 2. (Agent receives real-time warnings)
316
-
317
- 3. mandu_watch_status()
318
- → Gets current status and recent warnings
319
-
320
- 4. mandu_doctor()
321
- → Analyzes violations and suggests fixes
322
-
323
- 5. mandu_watch_stop()
324
- → Stops watching
325
- ```
326
-
327
- ---
328
-
329
- ## Architecture Integration
330
-
331
- The MCP server integrates with Mandu Guard to enforce architecture rules:
332
-
333
- ```
334
- ┌─────────────────────────────────────────────────────────────┐
335
- │ AI Agent (Claude) │
336
- ├─────────────────────────────────────────────────────────────┤
337
-
338
- Before writing code:
339
- 1. mandu_get_architecture() Get rules
340
- 2. mandu_check_location() → Validate placement
341
- 3. mandu_check_import() → Validate dependencies
342
-
343
- While writing:
344
- - mandu_watch_start() → Real-time notifications
345
-
346
- After writing:
347
- │ - mandu_guard_check() Full validation
348
- - mandu_doctor() → Get fix suggestions
349
- │ │
350
- └─────────────────────────────────────────────────────────────┘
351
- ```
352
-
353
- ---
354
-
355
- ## Requirements
356
-
357
- - Bun >= 1.0.0
358
- - @mandujs/core >= 0.9.25
359
-
360
- ## Related Packages
361
-
362
- - [@mandujs/core](https://www.npmjs.com/package/@mandujs/core) - Core runtime
363
- - [@mandujs/cli](https://www.npmjs.com/package/@mandujs/cli) - CLI tool
364
-
365
- ## License
366
-
367
- MIT
1
+ <p align="center">
2
+ <img src="https://raw.githubusercontent.com/konamgil/mandu/main/mandu_only_simbol.png" alt="Mandu" width="200" />
3
+ </p>
4
+
5
+ <h1 align="center">@mandujs/mcp</h1>
6
+
7
+ <p align="center">
8
+ <strong>Mandu MCP Server</strong><br/>
9
+ Model Context Protocol server for AI agent integration
10
+ </p>
11
+
12
+ <p align="center">
13
+ English | <a href="./README.ko.md"><strong>한국어</strong></a>
14
+ </p>
15
+
16
+ ## What is MCP?
17
+
18
+ MCP (Model Context Protocol) enables AI agents to directly interact with the Mandu framework. Instead of generating code blindly, agents can:
19
+
20
+ - Query current project structure
21
+ - Add/modify routes with validation
22
+ - Write business logic with auto-correction
23
+ - Check architecture rules before making changes
24
+ - Receive real-time violation notifications
25
+
26
+ ## Setup
27
+
28
+ ### Claude Code / Claude Desktop
29
+
30
+ Add to your MCP configuration (`.mcp.json` or `.claude.json`):
31
+
32
+ ```json
33
+ {
34
+ "mcpServers": {
35
+ "mandu": {
36
+ "command": "bunx",
37
+ "args": ["@mandujs/mcp"],
38
+ "cwd": "/path/to/your/project"
39
+ }
40
+ }
41
+ }
42
+ ```
43
+
44
+ ### Direct Execution
45
+
46
+ ```bash
47
+ cd /path/to/project
48
+ bunx @mandujs/mcp
49
+ ```
50
+
51
+ ### Global Mode
52
+
53
+ Run MCP without project auto-detection (use current directory):
54
+
55
+ ```bash
56
+ bunx @mandujs/mcp --global
57
+ ```
58
+
59
+ Optional: target a specific root directory:
60
+
61
+ ```bash
62
+ bunx @mandujs/mcp --root /path/to/project
63
+ ```
64
+
65
+ ---
66
+
67
+ ## Tools (35+)
68
+
69
+ ### Spec Management
70
+
71
+ | Tool | Description |
72
+ |------|-------------|
73
+ | `mandu_list_routes` | List all routes with details |
74
+ | `mandu_get_route` | Get specific route by ID |
75
+ | `mandu_add_route` | Add new route (scaffolds app/ files) |
76
+ | `mandu_delete_route` | Remove route from manifest |
77
+ | `mandu_validate_manifest` | Validate manifest schema |
78
+
79
+ ### Code Generation
80
+
81
+ | Tool | Description |
82
+ |------|-------------|
83
+ | `mandu_generate` | Generate code from manifest |
84
+
85
+ ### Transaction Management
86
+
87
+ | Tool | Description |
88
+ |------|-------------|
89
+ | `mandu_begin` | Start transaction with snapshot |
90
+ | `mandu_commit` | Finalize changes |
91
+ | `mandu_rollback` | Restore from snapshot |
92
+ | `mandu_tx_status` | Get transaction state |
93
+
94
+ ### Slot Management
95
+
96
+ | Tool | Description |
97
+ |------|-------------|
98
+ | `mandu_read_slot` | Read slot file content |
99
+ | `mandu_write_slot` | Write slot file (with auto-correction) |
100
+ | `mandu_validate_slot` | Validate slot syntax |
101
+
102
+ ### Guard & Architecture
103
+
104
+ | Tool | Description |
105
+ |------|-------------|
106
+ | `mandu_guard_check` | Run all guard checks |
107
+ | `mandu_guard_heal` | Self-Healing Guard - detect + auto-fix suggestions |
108
+ | `mandu_explain_rule` | Explain architecture rule with examples |
109
+ | `mandu_check_location` | Validate file location before creating |
110
+ | `mandu_check_import` | Validate imports against architecture rules |
111
+ | `mandu_get_architecture` | Get project architecture rules |
112
+
113
+ ### Decision Memory (RFC-001) 🆕
114
+
115
+ | Tool | Description |
116
+ |------|-------------|
117
+ | `mandu_search_decisions` | Search ADRs by tags or status |
118
+ | `mandu_save_decision` | Save new architecture decision |
119
+ | `mandu_check_consistency` | Check decision-implementation consistency |
120
+
121
+ ### Semantic Slots (RFC-001) 🆕
122
+
123
+ | Tool | Description |
124
+ |------|-------------|
125
+ | `mandu_validate_slot` | Validate slot against constraints |
126
+ | `mandu_validate_slots` | Batch validate multiple slots |
127
+
128
+ ### Architecture Negotiation (RFC-001) 🆕
129
+
130
+ | Tool | Description |
131
+ |------|-------------|
132
+ | `mandu_negotiate` | AI-Framework negotiation dialog |
133
+ | `mandu_generate_scaffold` | Generate structure scaffold |
134
+ | `mandu_analyze_structure` | Analyze existing project structure |
135
+
136
+ ### Brain & Monitoring
137
+
138
+ | Tool | Description |
139
+ |------|-------------|
140
+ | `mandu_doctor` | Analyze failures + suggest patches |
141
+ | `mandu_watch_start` | Start file watcher with notifications |
142
+ | `mandu_watch_status` | Get watcher status |
143
+ | `mandu_watch_stop` | Stop file watcher |
144
+
145
+ ### Project & Dev
146
+
147
+ | Tool | Description |
148
+ |------|-------------|
149
+ | `mandu_init` | Initialize new Mandu project (init + optional install) |
150
+ | `mandu_dev_start` | Start dev server (bun run dev) |
151
+ | `mandu_dev_stop` | Stop dev server |
152
+
153
+ ### Hydration & Build
154
+
155
+ | Tool | Description |
156
+ |------|-------------|
157
+ | `mandu_build` | Build client bundles |
158
+ | `mandu_build_status` | Get bundle statistics |
159
+ | `mandu_list_islands` | List routes with hydration |
160
+ | `mandu_set_hydration` | Configure hydration strategy |
161
+ | `mandu_add_client_slot` | Create client slot for route |
162
+
163
+ ### History
164
+
165
+ | Tool | Description |
166
+ |------|-------------|
167
+ | `mandu_list_changes` | View change history |
168
+ | `mandu_prune_history` | Clean old snapshots |
169
+
170
+ ---
171
+
172
+ ## Resources
173
+
174
+ | URI | Description |
175
+ |-----|-------------|
176
+ | `mandu://spec/manifest` | Current routes.manifest.json |
177
+ | `mandu://spec/lock` | Current spec.lock.json with hash |
178
+ | `mandu://generated/map` | Generated files mapping |
179
+ | `mandu://transaction/active` | Active transaction state |
180
+ | `mandu://slots/{routeId}` | Slot file content by route ID |
181
+ | `mandu://watch/warnings` | Recent architecture violation warnings |
182
+ | `mandu://watch/status` | Watcher status (active, uptime, count) |
183
+
184
+ ---
185
+
186
+ ## Real-Time Notifications
187
+
188
+ When `mandu_watch_start` is active, the agent receives real-time push notifications for architecture violations:
189
+
190
+ ```json
191
+ {
192
+ "jsonrpc": "2.0",
193
+ "method": "notifications/message",
194
+ "params": {
195
+ "level": "warning",
196
+ "logger": "mandu-watch",
197
+ "data": {
198
+ "type": "watch_warning",
199
+ "ruleId": "GENERATED_DIRECT_EDIT",
200
+ "file": "apps/server/generated/routes/home.route.ts",
201
+ "message": "Generated file was directly modified",
202
+ "timestamp": "2026-02-02T10:15:00.000Z"
203
+ }
204
+ }
205
+ }
206
+ ```
207
+
208
+ ### Watched Rules
209
+
210
+ | Rule | Description |
211
+ |------|-------------|
212
+ | `GENERATED_DIRECT_EDIT` | Manual edits to generated files |
213
+ | `WRONG_SLOT_LOCATION` | Slot files outside `spec/slots/` |
214
+ | `SLOT_NAMING` | Slot files not ending with `.slot.ts` |
215
+ | `CONTRACT_NAMING` | Contract files not ending with `.contract.ts` |
216
+ | `FORBIDDEN_IMPORT` | Dangerous imports in generated files |
217
+
218
+ ---
219
+
220
+ ## Activity Monitor (JSON Schema)
221
+
222
+ The MCP server writes activity logs to `.mandu/activity.log` (pretty) or `.mandu/activity.jsonl` (JSON).
223
+ JSON lines follow a stable schema with `schemaVersion`:
224
+
225
+ ```json
226
+ {
227
+ "schemaVersion": "1.0",
228
+ "ts": "2026-02-02T12:34:56.789Z",
229
+ "type": "tool.call",
230
+ "severity": "info",
231
+ "source": "tool",
232
+ "message": "",
233
+ "actionRequired": false,
234
+ "fingerprint": "tool:call:mandu_guard_check",
235
+ "count": 1,
236
+ "data": {
237
+ "tool": "mandu_guard_check",
238
+ "tag": "GUARD",
239
+ "args": {}
240
+ }
241
+ }
242
+ ```
243
+
244
+ Common `type` values: `tool.call`, `tool.result`, `tool.error`, `watch.warning`, `guard.summary`, `guard.violation`, `routes.change`, `system.event`, `monitor.summary`.
245
+
246
+ Default config is auto-created at `.mandu/monitor.config.json` on first run.
247
+
248
+ ---
249
+
250
+ ## Agent Workflow Examples
251
+
252
+ ### Adding a New API Route
253
+
254
+ ```
255
+ Agent:
256
+ 1. mandu_begin({ message: "Add users API" })
257
+ Creates snapshot
258
+
259
+ 2. mandu_check_location({ path: "spec/slots/users.slot.ts" })
260
+ Validates location is allowed
261
+
262
+ 3. mandu_add_route({
263
+ id: "users-list",
264
+ pattern: "/api/users",
265
+ kind: "api",
266
+ methods: ["GET", "POST"],
267
+ slotModule: "spec/slots/users.slot.ts"
268
+ })
269
+ → Adds route to manifest and scaffolds app/ files
270
+
271
+ 4. mandu_generate()
272
+ Creates route handlers
273
+
274
+ 5. mandu_write_slot({
275
+ routeId: "users-list",
276
+ content: "...",
277
+ autoCorrect: true
278
+ })
279
+ → Writes business logic
280
+
281
+ 6. mandu_guard_check()
282
+ Validates architecture
283
+
284
+ 7. mandu_commit()
285
+ Finalizes changes
286
+ ```
287
+
288
+ ### Checking Before Writing
289
+
290
+ ```
291
+ Agent:
292
+ 1. mandu_get_architecture()
293
+ Gets folder rules, import rules, naming rules
294
+
295
+ 2. mandu_check_location({ path: "src/features/user/api.ts" })
296
+ Checks if location is valid
297
+
298
+ 3. mandu_check_import({
299
+ sourceFile: "src/features/user/api.ts",
300
+ imports: ["../../entities/product"]
301
+ })
302
+ → Checks if imports are allowed
303
+
304
+ 4. Proceed with writing if all checks pass
305
+ ```
306
+
307
+ ### Monitoring Architecture
308
+
309
+ ```
310
+ Agent:
311
+ 1. mandu_watch_start()
312
+ Starts watching with notifications
313
+
314
+ 2. (Agent receives real-time warnings)
315
+
316
+ 3. mandu_watch_status()
317
+ Gets current status and recent warnings
318
+
319
+ 4. mandu_doctor()
320
+ Analyzes violations and suggests fixes
321
+
322
+ 5. mandu_watch_stop()
323
+ Stops watching
324
+ ```
325
+
326
+ ---
327
+
328
+ ## Architecture Integration
329
+
330
+ The MCP server integrates with Mandu Guard to enforce architecture rules:
331
+
332
+ ```
333
+ ┌─────────────────────────────────────────────────────────────┐
334
+ │ AI Agent (Claude) │
335
+ ├─────────────────────────────────────────────────────────────┤
336
+ │ │
337
+ Before writing code:
338
+ 1. mandu_get_architecture() → Get rules
339
+ 2. mandu_check_location() Validate placement
340
+ 3. mandu_check_import() → Validate dependencies
341
+
342
+ While writing:
343
+ - mandu_watch_start() → Real-time notifications
344
+
345
+ After writing:
346
+ - mandu_guard_check() → Full validation
347
+ │ - mandu_doctor() Get fix suggestions
348
+
349
+ └─────────────────────────────────────────────────────────────┘
350
+ ```
351
+
352
+ ---
353
+
354
+ ## Requirements
355
+
356
+ - Bun >= 1.0.0
357
+ - @mandujs/core >= 0.13.0
358
+
359
+ ## Related Packages
360
+
361
+ - [@mandujs/core](https://www.npmjs.com/package/@mandujs/core) - Core runtime
362
+ - [@mandujs/cli](https://www.npmjs.com/package/@mandujs/cli) - CLI tool
363
+
364
+ ## License
365
+
366
+ MPL-2.0