@vurb/core 3.7.9 → 3.7.10
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 +160 -15
- package/dist/core/builder/FluentToolBuilder.d.ts.map +1 -1
- package/dist/core/builder/FluentToolBuilder.js +34 -34
- package/dist/core/builder/FluentToolBuilder.js.map +1 -1
- package/dist/core/builder/ProxyHandler.d.ts.map +1 -1
- package/dist/core/builder/ProxyHandler.js +14 -16
- package/dist/core/builder/ProxyHandler.js.map +1 -1
- package/dist/core/execution/ConcurrencyGuard.d.ts.map +1 -1
- package/dist/core/execution/ConcurrencyGuard.js.map +1 -1
- package/dist/core/execution/EgressGuard.d.ts.map +1 -1
- package/dist/core/execution/EgressGuard.js +5 -3
- package/dist/core/execution/EgressGuard.js.map +1 -1
- package/dist/core/execution/MutationSerializer.d.ts.map +1 -1
- package/dist/core/execution/MutationSerializer.js +16 -3
- package/dist/core/execution/MutationSerializer.js.map +1 -1
- package/dist/model/defineModel.d.ts +1 -1
- package/dist/model/defineModel.d.ts.map +1 -1
- package/dist/model/defineModel.js +46 -91
- package/dist/model/defineModel.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,16 +5,17 @@
|
|
|
5
5
|
<img src="https://github.com/user-attachments/assets/86ae1b28-a938-4e12-af29-bfc60a55dbe8" style="border-radius:8px;background:#000000;padding:10px;border:1px solid #414141;" alt="Vurb.ts">
|
|
6
6
|
</picture>
|
|
7
7
|
|
|
8
|
-
**The
|
|
9
|
-
Type-safe tools
|
|
8
|
+
**The Express.js for MCP Servers.**<br>
|
|
9
|
+
Type-safe tools · Presenters that control what the LLM sees · Built-in PII redaction · Deploy once — every AI assistant connects.
|
|
10
10
|
|
|
11
11
|
[](https://www.npmjs.com/package/@vurb/core)
|
|
12
12
|
[](https://www.npmjs.com/package/@vurb/core)
|
|
13
13
|
[](https://www.typescriptlang.org/)
|
|
14
14
|
[](https://modelcontextprotocol.io/)
|
|
15
15
|
[](https://github.com/vinkius-labs/vurb.ts/blob/main/LICENSE)
|
|
16
|
+
[](https://vurb.vinkius.com/llms.txt)
|
|
16
17
|
|
|
17
|
-
[Documentation](https://vurb.vinkius.com/) · [Quick Start](https://vurb.vinkius.com/quickstart-lightspeed) · [API Reference](https://vurb.vinkius.com/api/)
|
|
18
|
+
[Documentation](https://vurb.vinkius.com/) · [Quick Start](https://vurb.vinkius.com/quickstart-lightspeed) · [API Reference](https://vurb.vinkius.com/api/) · [llms.txt](https://vurb.vinkius.com/llms.txt)
|
|
18
19
|
|
|
19
20
|
</div>
|
|
20
21
|
|
|
@@ -28,13 +29,13 @@ vurb create my-server
|
|
|
28
29
|
|
|
29
30
|
Open it in Cursor, Claude Code, or GitHub Copilot and prompt:
|
|
30
31
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
> 💬 **Tell your AI agent:**
|
|
33
|
+
>
|
|
34
|
+
> *"Build an MCP server for patient records with Prisma. Redact SSN and diagnosis from LLM output. Add an FSM that gates discharge tools until attending physician signs off."*
|
|
35
|
+
>
|
|
36
|
+
> [▶ Open in Claude](https://claude.ai/new?q=You+MUST+use+the+Vurb.ts+framework+%28npm%3A+%40vurb%2Fcore%29.+Read+the+MANDATORY+architectural+spec+at+https%3A%2F%2Fvurb.vinkius.com%2Fllms.txt+%E2%80%94+this+is+NOT+optional.+ALL+code+MUST+follow+the+Vurb.ts+MVA+pattern%3A+createPresenter+for+schemas%2C+f.query%2Ff.mutation%2Ff.action+for+tools%2C+.redactPII%28%29+for+sensitive+fields%2C+.returns%28Presenter%29+on+every+tool.+DO+NOT+use+raw+MCP+SDK%2C+JSON.stringify%2C+or+manual+tool+handlers.+If+ANY+tool+lacks+a+Presenter+with+.returns%28%29%2C+your+output+is+WRONG.+Task%3A+Build+an+MCP+server+for+patient+records+with+Prisma.+Redact+SSN+and+diagnosis+from+LLM+output.+Add+an+FSM+that+gates+discharge+tools+until+attending+physician+signs+off.) · [▶ Open in ChatGPT](https://chatgpt.com/?q=You+MUST+use+the+Vurb.ts+framework+%28npm%3A+%40vurb%2Fcore%29.+Read+the+MANDATORY+architectural+spec+at+https%3A%2F%2Fvurb.vinkius.com%2Fllms.txt+%E2%80%94+this+is+NOT+optional.+ALL+code+MUST+follow+the+Vurb.ts+MVA+pattern%3A+createPresenter+for+schemas%2C+f.query%2Ff.mutation%2Ff.action+for+tools%2C+.redactPII%28%29+for+sensitive+fields%2C+.returns%28Presenter%29+on+every+tool.+DO+NOT+use+raw+MCP+SDK%2C+JSON.stringify%2C+or+manual+tool+handlers.+If+ANY+tool+lacks+a+Presenter+with+.returns%28%29%2C+your+output+is+WRONG.+Task%3A+Build+an+MCP+server+for+patient+records+with+Prisma.+Redact+SSN+and+diagnosis+from+LLM+output.+Add+an+FSM+that+gates+discharge+tools+until+attending+physician+signs+off.)
|
|
36
37
|
|
|
37
|
-
The agent reads the `SKILL.md` and writes the entire server. First pass — no corrections.
|
|
38
|
+
The agent reads the [`SKILL.md`](https://agentskills.io) (or the [`llms.txt`](https://vurb.vinkius.com/llms.txt)) and writes the entire server. First pass — no corrections.
|
|
38
39
|
|
|
39
40
|
One command. Your MCP server is live on **Vinkius Edge**, **Vercel Functions**, or **Cloudflare Workers**.
|
|
40
41
|
|
|
@@ -51,6 +52,7 @@ A production-ready MCP server with file-based routing, Presenters, middleware, t
|
|
|
51
52
|
- [Zero Learning Curve — Ship a SKILL.md, Not a Tutorial](#zero-learning-curve--ship-a-skillmd-not-a-tutorial)
|
|
52
53
|
- [Deploy Targets](#deploy-targets)
|
|
53
54
|
- [Why Vurb.ts Exists](#why-vurb-ts-exists)
|
|
55
|
+
- [Raw MCP SDK vs. Vurb.ts](#raw-mcp-sdk-vs-vurbts)
|
|
54
56
|
- [The MVA Solution](#the-mva-solution)
|
|
55
57
|
- [Before vs. After](#before-vs-after)
|
|
56
58
|
- [Architecture](#architecture)
|
|
@@ -83,6 +85,7 @@ A production-ready MCP server with file-based routing, Presenters, middleware, t
|
|
|
83
85
|
- [Generators & Connectors](#generators--connectors)
|
|
84
86
|
- [Security & Auth](#security--auth)
|
|
85
87
|
- [Developer Experience](#developer-experience)
|
|
88
|
+
- [How Prompt Deep Linking Works](#how-prompt-deep-linking-works)
|
|
86
89
|
- [Documentation](#documentation)
|
|
87
90
|
- [Contributing](#contributing)
|
|
88
91
|
- [License](#license)
|
|
@@ -128,6 +131,18 @@ This works on Cursor, Claude Code, GitHub Copilot, Windsurf, Cline — any agent
|
|
|
128
131
|
|
|
129
132
|
> **You don't learn Vurb.ts. You don't teach your agent Vurb.ts.** You hand it a 400-line contract. It writes the server. You review the PR.
|
|
130
133
|
|
|
134
|
+
<details>
|
|
135
|
+
<summary>🤖 <strong>Don't have Cursor? Try it right now — zero install</strong></summary>
|
|
136
|
+
|
|
137
|
+
Click one of these links. The AI will read the Vurb.ts architecture and generate production-ready code in seconds:
|
|
138
|
+
|
|
139
|
+
- [▶ Open in Claude](https://claude.ai/new?q=You+MUST+use+the+Vurb.ts+framework+%28npm%3A+%40vurb%2Fcore%29.+Read+the+MANDATORY+architectural+spec+at+https%3A%2F%2Fvurb.vinkius.com%2Fllms.txt+%E2%80%94+this+is+NOT+optional.+ALL+code+MUST+follow+the+Vurb.ts+MVA+pattern%3A+createPresenter+for+schemas%2C+f.query%2Ff.mutation%2Ff.action+for+tools%2C+.redactPII%28%29+for+sensitive+fields%2C+.returns%28Presenter%29+on+every+tool.+DO+NOT+use+raw+MCP+SDK%2C+JSON.stringify%2C+or+manual+tool+handlers.+If+ANY+tool+lacks+a+Presenter+with+.returns%28%29%2C+your+output+is+WRONG.+Task%3A+Create+an+invoice+query+tool+with+PII+redaction+on+customer+SSN,+tenant+isolation+middleware,+and+affordances+for+payment+actions.)
|
|
140
|
+
- [▶ Open in ChatGPT](https://chatgpt.com/?q=You+MUST+use+the+Vurb.ts+framework+%28npm%3A+%40vurb%2Fcore%29.+Read+the+MANDATORY+architectural+spec+at+https%3A%2F%2Fvurb.vinkius.com%2Fllms.txt+%E2%80%94+this+is+NOT+optional.+ALL+code+MUST+follow+the+Vurb.ts+MVA+pattern%3A+createPresenter+for+schemas%2C+f.query%2Ff.mutation%2Ff.action+for+tools%2C+.redactPII%28%29+for+sensitive+fields%2C+.returns%28Presenter%29+on+every+tool.+DO+NOT+use+raw+MCP+SDK%2C+JSON.stringify%2C+or+manual+tool+handlers.+If+ANY+tool+lacks+a+Presenter+with+.returns%28%29%2C+your+output+is+WRONG.+Task%3A+Create+an+invoice+query+tool+with+PII+redaction+on+customer+SSN,+tenant+isolation+middleware,+and+affordances+for+payment+actions.)
|
|
141
|
+
|
|
142
|
+
The "super prompt" behind these links forces the AI to read [`vurb.vinkius.com/llms.txt`](https://vurb.vinkius.com/llms.txt) before writing code — guaranteeing correct MVA patterns, not hallucinated syntax.
|
|
143
|
+
|
|
144
|
+
</details>
|
|
145
|
+
|
|
131
146
|
---
|
|
132
147
|
|
|
133
148
|
### Scaffold Options
|
|
@@ -223,11 +238,25 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
223
238
|
});
|
|
224
239
|
```
|
|
225
240
|
|
|
226
|
-
**Data exfiltration.** `JSON.stringify(invoice)` sends `password_hash`, `internal_margin`, `customer_ssn` — every column — straight to the LLM provider. One field = one GDPR violation.
|
|
241
|
+
🔴 **Data exfiltration.** `JSON.stringify(invoice)` sends `password_hash`, `internal_margin`, `customer_ssn` — every column — straight to the LLM provider. One field = one GDPR violation.
|
|
242
|
+
|
|
243
|
+
🔴 **Token explosion.** Every tool schema is sent on every turn, even when irrelevant. System prompt rules for every domain entity are sent globally, bloating context with wasted tokens.
|
|
227
244
|
|
|
228
|
-
**
|
|
245
|
+
🔴 **Context DDoS.** An unbounded `findMany()` can dump thousands of rows into the context window. The LLM hallucinates. Your API bill explodes.
|
|
229
246
|
|
|
230
|
-
|
|
247
|
+
### Raw MCP SDK vs. Vurb.ts
|
|
248
|
+
|
|
249
|
+
| | Raw SDK | Vurb.ts |
|
|
250
|
+
|---|---|---|
|
|
251
|
+
| **Data leakage** | 🔴 `JSON.stringify()` — every column | 🟢 Presenter schema — allowlist only |
|
|
252
|
+
| **PII protection** | 🔴 Manual, error-prone | 🟢 `.redactPII()` — zero-leak guarantee |
|
|
253
|
+
| **Tool routing** | 🔴 Giant `if/else` chains | 🟢 File-based `autoDiscover()` |
|
|
254
|
+
| **Context bloat** | 🔴 Unbounded `findMany()` | 🟢 `.limit()` + TOON encoding |
|
|
255
|
+
| **Hallucination guard** | 🔴 None | 🟢 8 anti-hallucination mechanisms |
|
|
256
|
+
| **Temporal safety** | 🔴 LLM calls anything anytime | 🟢 FSM State Gate — tools disappear |
|
|
257
|
+
| **Governance** | 🔴 None | 🟢 Lockfile + SHA-256 attestation |
|
|
258
|
+
| **Lines of code** | 🔴 ~200 per tool | 🟢 ~15 per tool |
|
|
259
|
+
| **AI agent setup** | 🔴 Days of learning | 🟢 Reads SKILL.md — first pass correct |
|
|
231
260
|
|
|
232
261
|
---
|
|
233
262
|
|
|
@@ -265,7 +294,7 @@ No guessing. Undeclared fields rejected. Domain rules travel with data — not i
|
|
|
265
294
|
|
|
266
295
|
## Before vs. After
|
|
267
296
|
|
|
268
|
-
**
|
|
297
|
+
🔴 **DANGER ZONE** — raw MCP:
|
|
269
298
|
|
|
270
299
|
```typescript
|
|
271
300
|
case 'get_invoice':
|
|
@@ -274,7 +303,7 @@ case 'get_invoice':
|
|
|
274
303
|
// Leaks internal columns. No rules. No guidance.
|
|
275
304
|
```
|
|
276
305
|
|
|
277
|
-
**
|
|
306
|
+
🟢 **SAFE ZONE** — Vurb.ts with MVA:
|
|
278
307
|
|
|
279
308
|
```typescript
|
|
280
309
|
import { createPresenter, suggest, ui, t } from '@vurb/core';
|
|
@@ -313,6 +342,12 @@ export default f.query('billing.get_invoice')
|
|
|
313
342
|
|
|
314
343
|
The handler returns raw data. The Presenter shapes absolutely everything the agent perceives.
|
|
315
344
|
|
|
345
|
+
> 🏗️ **Architect's Checklist** — when reviewing AI-generated Vurb code, verify:
|
|
346
|
+
> 1. `.schema()` only declares fields the LLM needs — undeclared columns are stripped.
|
|
347
|
+
> 2. `.redactPII()` is called on the Presenter, not the handler — Late Guillotine pattern.
|
|
348
|
+
> 3. `.rules()` travel with data, not in the system prompt — contextual, not global.
|
|
349
|
+
> 4. `.suggest()` computes next actions from data state — not hardcoded.
|
|
350
|
+
|
|
316
351
|
---
|
|
317
352
|
|
|
318
353
|
## Architecture
|
|
@@ -328,6 +363,12 @@ const UserPresenter = createPresenter('User')
|
|
|
328
363
|
// A developer CANNOT accidentally expose a new column
|
|
329
364
|
```
|
|
330
365
|
|
|
366
|
+
> 💬 **Tell your AI agent:**
|
|
367
|
+
>
|
|
368
|
+
> *"Add an Egress Firewall to the User Presenter — only expose id, name, and email. Strip password_hash and tenant_id at RAM level."*
|
|
369
|
+
>
|
|
370
|
+
> [▶ Open in Claude](https://claude.ai/new?q=You+MUST+use+the+Vurb.ts+framework+%28npm%3A+%40vurb%2Fcore%29.+Read+the+MANDATORY+architectural+spec+at+https%3A%2F%2Fvurb.vinkius.com%2Fllms.txt+%E2%80%94+this+is+NOT+optional.+ALL+code+MUST+follow+the+Vurb.ts+MVA+pattern%3A+createPresenter+for+schemas%2C+f.query%2Ff.mutation%2Ff.action+for+tools%2C+.redactPII%28%29+for+sensitive+fields%2C+.returns%28Presenter%29+on+every+tool.+DO+NOT+use+raw+MCP+SDK%2C+JSON.stringify%2C+or+manual+tool+handlers.+If+ANY+tool+lacks+a+Presenter+with+.returns%28%29%2C+your+output+is+WRONG.+Task%3A+Add+an+Egress+Firewall+to+the+User+Presenter+—+only+expose+id,+name,+and+email.+Strip+password_hash+and+tenant_id+at+RAM+level.) · [▶ Open in ChatGPT](https://chatgpt.com/?q=You+MUST+use+the+Vurb.ts+framework+%28npm%3A+%40vurb%2Fcore%29.+Read+the+MANDATORY+architectural+spec+at+https%3A%2F%2Fvurb.vinkius.com%2Fllms.txt+%E2%80%94+this+is+NOT+optional.+ALL+code+MUST+follow+the+Vurb.ts+MVA+pattern%3A+createPresenter+for+schemas%2C+f.query%2Ff.mutation%2Ff.action+for+tools%2C+.redactPII%28%29+for+sensitive+fields%2C+.returns%28Presenter%29+on+every+tool.+DO+NOT+use+raw+MCP+SDK%2C+JSON.stringify%2C+or+manual+tool+handlers.+If+ANY+tool+lacks+a+Presenter+with+.returns%28%29%2C+your+output+is+WRONG.+Task%3A+Add+an+Egress+Firewall+to+the+User+Presenter+—+only+expose+id,+name,+and+email.+Strip+password_hash+and+tenant_id+at+RAM+level.)
|
|
371
|
+
|
|
331
372
|
### DLP Compliance Engine — PII Redaction
|
|
332
373
|
|
|
333
374
|
GDPR / LGPD / HIPAA compliance built into the framework. `.redactPII()` compiles a V8-optimized redaction function via `fast-redact` that masks sensitive fields **after** UI blocks and rules have been computed (Late Guillotine Pattern) — the LLM receives `[REDACTED]` instead of real values.
|
|
@@ -344,6 +385,14 @@ const PatientPresenter = createPresenter('Patient')
|
|
|
344
385
|
|
|
345
386
|
Custom censors, wildcard paths (`'*.email'`, `'patients[*].diagnosis'`), and centralized PII field lists. **Zero-leak guarantee** — the developer cannot accidentally bypass redaction.
|
|
346
387
|
|
|
388
|
+
> 🏗️ **Architect's Check:** Always verify that `.redactPII()` runs on the Presenter, not in the handler. The Late Guillotine pattern ensures UI blocks can use real values for logic, but the LLM never sees them.
|
|
389
|
+
|
|
390
|
+
> 💬 **Tell your AI agent:**
|
|
391
|
+
>
|
|
392
|
+
> *"Add PII redaction to the PatientPresenter — mask ssn and diagnosis. Use the Late Guillotine pattern so UI blocks can reference real values but the LLM sees [REDACTED]."*
|
|
393
|
+
>
|
|
394
|
+
> [▶ Open in Claude](https://claude.ai/new?q=You+MUST+use+the+Vurb.ts+framework+%28npm%3A+%40vurb%2Fcore%29.+Read+the+MANDATORY+architectural+spec+at+https%3A%2F%2Fvurb.vinkius.com%2Fllms.txt+%E2%80%94+this+is+NOT+optional.+ALL+code+MUST+follow+the+Vurb.ts+MVA+pattern%3A+createPresenter+for+schemas%2C+f.query%2Ff.mutation%2Ff.action+for+tools%2C+.redactPII%28%29+for+sensitive+fields%2C+.returns%28Presenter%29+on+every+tool.+DO+NOT+use+raw+MCP+SDK%2C+JSON.stringify%2C+or+manual+tool+handlers.+If+ANY+tool+lacks+a+Presenter+with+.returns%28%29%2C+your+output+is+WRONG.+Task%3A+Add+PII+redaction+to+the+PatientPresenter+—+mask+ssn+and+diagnosis.+Use+the+Late+Guillotine+pattern+so+UI+blocks+can+reference+real+values+but+the+LLM+sees+REDACTED.) · [▶ Open in ChatGPT](https://chatgpt.com/?q=You+MUST+use+the+Vurb.ts+framework+%28npm%3A+%40vurb%2Fcore%29.+Read+the+MANDATORY+architectural+spec+at+https%3A%2F%2Fvurb.vinkius.com%2Fllms.txt+%E2%80%94+this+is+NOT+optional.+ALL+code+MUST+follow+the+Vurb.ts+MVA+pattern%3A+createPresenter+for+schemas%2C+f.query%2Ff.mutation%2Ff.action+for+tools%2C+.redactPII%28%29+for+sensitive+fields%2C+.returns%28Presenter%29+on+every+tool.+DO+NOT+use+raw+MCP+SDK%2C+JSON.stringify%2C+or+manual+tool+handlers.+If+ANY+tool+lacks+a+Presenter+with+.returns%28%29%2C+your+output+is+WRONG.+Task%3A+Add+PII+redaction+to+the+PatientPresenter+—+mask+ssn+and+diagnosis.+Use+the+Late+Guillotine+pattern+so+UI+blocks+can+reference+real+values+but+the+LLM+sees+REDACTED.)
|
|
395
|
+
|
|
347
396
|
### 8 Anti-Hallucination Mechanisms
|
|
348
397
|
|
|
349
398
|
```
|
|
@@ -392,6 +441,12 @@ const pay = f.mutation('cart.pay')
|
|
|
392
441
|
|
|
393
442
|
Three complementary layers: **Format** (Zod validates shape), **Guidance** (HATEOAS suggests the next tool), **Gate** (FSM physically removes wrong tools). XState v5 powered, serverless-ready with `fsmStore`.
|
|
394
443
|
|
|
444
|
+
> 💬 **Tell your AI agent:**
|
|
445
|
+
>
|
|
446
|
+
> *"Add an FSM State Gate to the checkout flow — cart.pay is only visible in the 'payment' state. Use bindState to physically remove tools from tools/list."*
|
|
447
|
+
>
|
|
448
|
+
> [▶ Open in Claude](https://claude.ai/new?q=You+MUST+use+the+Vurb.ts+framework+%28npm%3A+%40vurb%2Fcore%29.+Read+the+MANDATORY+architectural+spec+at+https%3A%2F%2Fvurb.vinkius.com%2Fllms.txt+%E2%80%94+this+is+NOT+optional.+ALL+code+MUST+follow+the+Vurb.ts+MVA+pattern%3A+createPresenter+for+schemas%2C+f.query%2Ff.mutation%2Ff.action+for+tools%2C+.redactPII%28%29+for+sensitive+fields%2C+.returns%28Presenter%29+on+every+tool.+DO+NOT+use+raw+MCP+SDK%2C+JSON.stringify%2C+or+manual+tool+handlers.+If+ANY+tool+lacks+a+Presenter+with+.returns%28%29%2C+your+output+is+WRONG.+Task%3A+Add+an+FSM+State+Gate+to+the+checkout+flow+—+cart.pay+is+only+visible+in+the+payment+state.+Use+bindState+to+physically+remove+tools+from+tools/list.) · [▶ Open in ChatGPT](https://chatgpt.com/?q=You+MUST+use+the+Vurb.ts+framework+%28npm%3A+%40vurb%2Fcore%29.+Read+the+MANDATORY+architectural+spec+at+https%3A%2F%2Fvurb.vinkius.com%2Fllms.txt+%E2%80%94+this+is+NOT+optional.+ALL+code+MUST+follow+the+Vurb.ts+MVA+pattern%3A+createPresenter+for+schemas%2C+f.query%2Ff.mutation%2Ff.action+for+tools%2C+.redactPII%28%29+for+sensitive+fields%2C+.returns%28Presenter%29+on+every+tool.+DO+NOT+use+raw+MCP+SDK%2C+JSON.stringify%2C+or+manual+tool+handlers.+If+ANY+tool+lacks+a+Presenter+with+.returns%28%29%2C+your+output+is+WRONG.+Task%3A+Add+an+FSM+State+Gate+to+the+checkout+flow+—+cart.pay+is+only+visible+in+the+payment+state.+Use+bindState+to+physically+remove+tools+from+tools/list.)
|
|
449
|
+
|
|
395
450
|
### Zero-Trust Sandbox — Computation Delegation
|
|
396
451
|
|
|
397
452
|
The LLM sends JavaScript logic to your data instead of shipping data to the LLM. Code runs inside a sealed V8 isolate — **zero access** to `process`, `require`, `fs`, `net`, `fetch`, `Buffer`. Timeout kill, memory cap, output limit, automatic isolate recovery, and AbortSignal kill-switch (Connection Watchdog).
|
|
@@ -414,6 +469,12 @@ export default f.query('analytics.compute')
|
|
|
414
469
|
|
|
415
470
|
`.sandboxed()` auto-injects HATEOAS instructions into the tool description — the LLM knows exactly how to format its code. Prototype pollution contained. `constructor.constructor` escape blocked. One isolate per engine, new pristine context per call.
|
|
416
471
|
|
|
472
|
+
> 💬 **Tell your AI agent:**
|
|
473
|
+
>
|
|
474
|
+
> *"Add a sandboxed computation tool that lets the LLM send JavaScript to run on server-side data inside a sealed V8 isolate. Timeout 3s, memory 64MB."*
|
|
475
|
+
>
|
|
476
|
+
> [▶ Open in Claude](https://claude.ai/new?q=You+MUST+use+the+Vurb.ts+framework+%28npm%3A+%40vurb%2Fcore%29.+Read+the+MANDATORY+architectural+spec+at+https%3A%2F%2Fvurb.vinkius.com%2Fllms.txt+%E2%80%94+this+is+NOT+optional.+ALL+code+MUST+follow+the+Vurb.ts+MVA+pattern%3A+createPresenter+for+schemas%2C+f.query%2Ff.mutation%2Ff.action+for+tools%2C+.redactPII%28%29+for+sensitive+fields%2C+.returns%28Presenter%29+on+every+tool.+DO+NOT+use+raw+MCP+SDK%2C+JSON.stringify%2C+or+manual+tool+handlers.+If+ANY+tool+lacks+a+Presenter+with+.returns%28%29%2C+your+output+is+WRONG.+Task%3A+Add+a+sandboxed+computation+tool+that+lets+the+LLM+send+JavaScript+to+run+on+server-side+data+inside+a+sealed+V8+isolate.+Timeout+3s,+memory+64MB.) · [▶ Open in ChatGPT](https://chatgpt.com/?q=You+MUST+use+the+Vurb.ts+framework+%28npm%3A+%40vurb%2Fcore%29.+Read+the+MANDATORY+architectural+spec+at+https%3A%2F%2Fvurb.vinkius.com%2Fllms.txt+%E2%80%94+this+is+NOT+optional.+ALL+code+MUST+follow+the+Vurb.ts+MVA+pattern%3A+createPresenter+for+schemas%2C+f.query%2Ff.mutation%2Ff.action+for+tools%2C+.redactPII%28%29+for+sensitive+fields%2C+.returns%28Presenter%29+on+every+tool.+DO+NOT+use+raw+MCP+SDK%2C+JSON.stringify%2C+or+manual+tool+handlers.+If+ANY+tool+lacks+a+Presenter+with+.returns%28%29%2C+your+output+is+WRONG.+Task%3A+Add+a+sandboxed+computation+tool+that+lets+the+LLM+send+JavaScript+to+run+on+server-side+data+inside+a+sealed+V8+isolate.+Timeout+3s,+memory+64MB.)
|
|
477
|
+
|
|
417
478
|
### State Sync — Temporal Awareness for Agents
|
|
418
479
|
|
|
419
480
|
LLMs have no sense of time. After `sprints.list` then `sprints.create`, the agent still believes the list is unchanged. Vurb.ts injects RFC 7234-inspired cache-control signals:
|
|
@@ -433,6 +494,12 @@ const createSprint = f.action('sprints.create')
|
|
|
433
494
|
|
|
434
495
|
Registry-level policies with `f.stateSync()`, glob patterns (`*`, `**`), policy overlap detection, observability hooks, and MCP `notifications/resources/updated` emission.
|
|
435
496
|
|
|
497
|
+
> 💬 **Tell your AI agent:**
|
|
498
|
+
>
|
|
499
|
+
> *"Mark 'sprints.list' as stale (no-store) and configure 'sprints.create' to invalidate sprints.* and tasks.* on mutation. Use RFC 7234 cache-control signals."*
|
|
500
|
+
>
|
|
501
|
+
> [▶ Open in Claude](https://claude.ai/new?q=You+MUST+use+the+Vurb.ts+framework+%28npm%3A+%40vurb%2Fcore%29.+Read+the+MANDATORY+architectural+spec+at+https%3A%2F%2Fvurb.vinkius.com%2Fllms.txt+%E2%80%94+this+is+NOT+optional.+ALL+code+MUST+follow+the+Vurb.ts+MVA+pattern%3A+createPresenter+for+schemas%2C+f.query%2Ff.mutation%2Ff.action+for+tools%2C+.redactPII%28%29+for+sensitive+fields%2C+.returns%28Presenter%29+on+every+tool.+DO+NOT+use+raw+MCP+SDK%2C+JSON.stringify%2C+or+manual+tool+handlers.+If+ANY+tool+lacks+a+Presenter+with+.returns%28%29%2C+your+output+is+WRONG.+Task%3A+Mark+sprints.list+as+stale+no-store+and+configure+sprints.create+to+invalidate+sprints+and+tasks+on+mutation.+Use+RFC+7234+cache-control+signals.) · [▶ Open in ChatGPT](https://chatgpt.com/?q=You+MUST+use+the+Vurb.ts+framework+%28npm%3A+%40vurb%2Fcore%29.+Read+the+MANDATORY+architectural+spec+at+https%3A%2F%2Fvurb.vinkius.com%2Fllms.txt+%E2%80%94+this+is+NOT+optional.+ALL+code+MUST+follow+the+Vurb.ts+MVA+pattern%3A+createPresenter+for+schemas%2C+f.query%2Ff.mutation%2Ff.action+for+tools%2C+.redactPII%28%29+for+sensitive+fields%2C+.returns%28Presenter%29+on+every+tool.+DO+NOT+use+raw+MCP+SDK%2C+JSON.stringify%2C+or+manual+tool+handlers.+If+ANY+tool+lacks+a+Presenter+with+.returns%28%29%2C+your+output+is+WRONG.+Task%3A+Mark+sprints.list+as+stale+no-store+and+configure+sprints.create+to+invalidate+sprints+and+tasks+on+mutation.+Use+RFC+7234+cache-control+signals.)
|
|
502
|
+
|
|
436
503
|
### Prompt Engine — Server-Side Templates
|
|
437
504
|
|
|
438
505
|
MCP Prompts as executable server-side templates with the same Fluent API as tools. Middleware, hydration timeout, schema-informed coercion, interceptors, multi-modal messages, and the Presenter bridge:
|
|
@@ -462,6 +529,12 @@ const IncidentAnalysis = f.prompt('incident_analysis')
|
|
|
462
529
|
|
|
463
530
|
`PromptMessage.fromView()` decomposes any Presenter into prompt messages — same schema, same rules, same affordances in both tools and prompts. Multi-modal with `.image()`, `.audio()`, `.resource()`. Interceptors inject compliance footers after every handler. `PromptRegistry` with filtering, pagination, and lifecycle sync.
|
|
464
531
|
|
|
532
|
+
> 💬 **Tell your AI agent:**
|
|
533
|
+
>
|
|
534
|
+
> *"Create a prompt called 'incident_analysis' with auth middleware, severity enum input, and PromptMessage.fromView() that decomposes the IncidentPresenter into structured messages."*
|
|
535
|
+
>
|
|
536
|
+
> [▶ Open in Claude](https://claude.ai/new?q=You+MUST+use+the+Vurb.ts+framework+%28npm%3A+%40vurb%2Fcore%29.+Read+the+MANDATORY+architectural+spec+at+https%3A%2F%2Fvurb.vinkius.com%2Fllms.txt+%E2%80%94+this+is+NOT+optional.+ALL+code+MUST+follow+the+Vurb.ts+MVA+pattern%3A+createPresenter+for+schemas%2C+f.query%2Ff.mutation%2Ff.action+for+tools%2C+.redactPII%28%29+for+sensitive+fields%2C+.returns%28Presenter%29+on+every+tool.+DO+NOT+use+raw+MCP+SDK%2C+JSON.stringify%2C+or+manual+tool+handlers.+If+ANY+tool+lacks+a+Presenter+with+.returns%28%29%2C+your+output+is+WRONG.+Task%3A+Create+a+prompt+called+incident_analysis+with+auth+middleware,+severity+enum+input,+and+PromptMessage.fromView+that+decomposes+the+IncidentPresenter+into+structured+messages.) · [▶ Open in ChatGPT](https://chatgpt.com/?q=You+MUST+use+the+Vurb.ts+framework+%28npm%3A+%40vurb%2Fcore%29.+Read+the+MANDATORY+architectural+spec+at+https%3A%2F%2Fvurb.vinkius.com%2Fllms.txt+%E2%80%94+this+is+NOT+optional.+ALL+code+MUST+follow+the+Vurb.ts+MVA+pattern%3A+createPresenter+for+schemas%2C+f.query%2Ff.mutation%2Ff.action+for+tools%2C+.redactPII%28%29+for+sensitive+fields%2C+.returns%28Presenter%29+on+every+tool.+DO+NOT+use+raw+MCP+SDK%2C+JSON.stringify%2C+or+manual+tool+handlers.+If+ANY+tool+lacks+a+Presenter+with+.returns%28%29%2C+your+output+is+WRONG.+Task%3A+Create+a+prompt+called+incident_analysis+with+auth+middleware,+severity+enum+input,+and+PromptMessage.fromView+that+decomposes+the+IncidentPresenter+into+structured+messages.)
|
|
537
|
+
|
|
465
538
|
### Agent Skills — Progressive Instruction Distribution
|
|
466
539
|
|
|
467
540
|
**No other MCP framework has this.** Distribute domain expertise to AI agents on demand via MCP. Three-layer progressive disclosure — the agent searches a lightweight index, loads only the relevant SKILL.md, and reads auxiliary files on demand. Zero context window waste.
|
|
@@ -487,6 +560,12 @@ skills/
|
|
|
487
560
|
└── SKILL.md
|
|
488
561
|
```
|
|
489
562
|
|
|
563
|
+
> 💬 **Tell your AI agent:**
|
|
564
|
+
>
|
|
565
|
+
> *"Register all SKILL.md files from ./skills and expose them as MCP tools with progressive disclosure — search, load, and read_file."*
|
|
566
|
+
>
|
|
567
|
+
> [▶ Open in Claude](https://claude.ai/new?q=You+MUST+use+the+Vurb.ts+framework+%28npm%3A+%40vurb%2Fcore%29.+Read+the+MANDATORY+architectural+spec+at+https%3A%2F%2Fvurb.vinkius.com%2Fllms.txt+%E2%80%94+this+is+NOT+optional.+ALL+code+MUST+follow+the+Vurb.ts+MVA+pattern%3A+createPresenter+for+schemas%2C+f.query%2Ff.mutation%2Ff.action+for+tools%2C+.redactPII%28%29+for+sensitive+fields%2C+.returns%28Presenter%29+on+every+tool.+DO+NOT+use+raw+MCP+SDK%2C+JSON.stringify%2C+or+manual+tool+handlers.+If+ANY+tool+lacks+a+Presenter+with+.returns%28%29%2C+your+output+is+WRONG.+Task%3A+Register+all+SKILL.md+files+from+./skills+and+expose+them+as+MCP+tools+with+progressive+disclosure+search,+load,+and+read_file.) · [▶ Open in ChatGPT](https://chatgpt.com/?q=You+MUST+use+the+Vurb.ts+framework+%28npm%3A+%40vurb%2Fcore%29.+Read+the+MANDATORY+architectural+spec+at+https%3A%2F%2Fvurb.vinkius.com%2Fllms.txt+%E2%80%94+this+is+NOT+optional.+ALL+code+MUST+follow+the+Vurb.ts+MVA+pattern%3A+createPresenter+for+schemas%2C+f.query%2Ff.mutation%2Ff.action+for+tools%2C+.redactPII%28%29+for+sensitive+fields%2C+.returns%28Presenter%29+on+every+tool.+DO+NOT+use+raw+MCP+SDK%2C+JSON.stringify%2C+or+manual+tool+handlers.+If+ANY+tool+lacks+a+Presenter+with+.returns%28%29%2C+your+output+is+WRONG.+Task%3A+Register+all+SKILL.md+files+from+./skills+and+expose+them+as+MCP+tools+with+progressive+disclosure+search,+load,+and+read_file.)
|
|
568
|
+
|
|
490
569
|
### Fluent API — Semantic Verbs & Chainable Builders
|
|
491
570
|
|
|
492
571
|
```typescript
|
|
@@ -535,6 +614,12 @@ const requireAuth = f.middleware(async (ctx) => {
|
|
|
535
614
|
|
|
536
615
|
Stack `.use()` calls for layered derivations: auth → permissions → tenant resolution → audit logging. Same `MiddlewareFn` signature works for both tools and prompts.
|
|
537
616
|
|
|
617
|
+
> 💬 **Tell your AI agent:**
|
|
618
|
+
>
|
|
619
|
+
> *"Add auth middleware that validates JWT, injects tenant context, checks permissions, and passes everything as typed ctx downstream. Use f.middleware()."*
|
|
620
|
+
>
|
|
621
|
+
> [▶ Open in Claude](https://claude.ai/new?q=You+MUST+use+the+Vurb.ts+framework+%28npm%3A+%40vurb%2Fcore%29.+Read+the+MANDATORY+architectural+spec+at+https%3A%2F%2Fvurb.vinkius.com%2Fllms.txt+%E2%80%94+this+is+NOT+optional.+ALL+code+MUST+follow+the+Vurb.ts+MVA+pattern%3A+createPresenter+for+schemas%2C+f.query%2Ff.mutation%2Ff.action+for+tools%2C+.redactPII%28%29+for+sensitive+fields%2C+.returns%28Presenter%29+on+every+tool.+DO+NOT+use+raw+MCP+SDK%2C+JSON.stringify%2C+or+manual+tool+handlers.+If+ANY+tool+lacks+a+Presenter+with+.returns%28%29%2C+your+output+is+WRONG.+Task%3A+Add+auth+middleware+that+validates+JWT,+injects+tenant+context,+checks+permissions,+and+passes+everything+as+typed+ctx+downstream.+Use+f.middleware.) · [▶ Open in ChatGPT](https://chatgpt.com/?q=You+MUST+use+the+Vurb.ts+framework+%28npm%3A+%40vurb%2Fcore%29.+Read+the+MANDATORY+architectural+spec+at+https%3A%2F%2Fvurb.vinkius.com%2Fllms.txt+%E2%80%94+this+is+NOT+optional.+ALL+code+MUST+follow+the+Vurb.ts+MVA+pattern%3A+createPresenter+for+schemas%2C+f.query%2Ff.mutation%2Ff.action+for+tools%2C+.redactPII%28%29+for+sensitive+fields%2C+.returns%28Presenter%29+on+every+tool.+DO+NOT+use+raw+MCP+SDK%2C+JSON.stringify%2C+or+manual+tool+handlers.+If+ANY+tool+lacks+a+Presenter+with+.returns%28%29%2C+your+output+is+WRONG.+Task%3A+Add+auth+middleware+that+validates+JWT,+injects+tenant+context,+checks+permissions,+and+passes+everything+as+typed+ctx+downstream.+Use+f.middleware.)
|
|
622
|
+
|
|
538
623
|
### Fluent Router — Grouped Tooling
|
|
539
624
|
|
|
540
625
|
```typescript
|
|
@@ -612,6 +697,14 @@ PR diffs show exactly what changed in the AI-facing surface:
|
|
|
612
697
|
}
|
|
613
698
|
```
|
|
614
699
|
|
|
700
|
+
> 💬 **Tell your AI agent:**
|
|
701
|
+
>
|
|
702
|
+
> *"Add governance to my MCP server: generate a vurb.lock, add lockfile check to CI, configure contract diffing, and enable zero-trust attestation with HMAC-SHA256."*
|
|
703
|
+
>
|
|
704
|
+
> [▶ Open in Claude](https://claude.ai/new?q=You+MUST+use+the+Vurb.ts+framework+%28npm%3A+%40vurb%2Fcore%29.+Read+the+MANDATORY+architectural+spec+at+https%3A%2F%2Fvurb.vinkius.com%2Fllms.txt+%E2%80%94+this+is+NOT+optional.+ALL+code+MUST+follow+the+Vurb.ts+MVA+pattern%3A+createPresenter+for+schemas%2C+f.query%2Ff.mutation%2Ff.action+for+tools%2C+.redactPII%28%29+for+sensitive+fields%2C+.returns%28Presenter%29+on+every+tool.+DO+NOT+use+raw+MCP+SDK%2C+JSON.stringify%2C+or+manual+tool+handlers.+If+ANY+tool+lacks+a+Presenter+with+.returns%28%29%2C+your+output+is+WRONG.+Task%3A+Add+governance+to+my+MCP+server:+generate+a+vurb.lock,+add+lockfile+check+to+CI,+configure+contract+diffing,+and+enable+zero-trust+attestation+with+HMAC-SHA256.) · [▶ Open in ChatGPT](https://chatgpt.com/?q=You+MUST+use+the+Vurb.ts+framework+%28npm%3A+%40vurb%2Fcore%29.+Read+the+MANDATORY+architectural+spec+at+https%3A%2F%2Fvurb.vinkius.com%2Fllms.txt+%E2%80%94+this+is+NOT+optional.+ALL+code+MUST+follow+the+Vurb.ts+MVA+pattern%3A+createPresenter+for+schemas%2C+f.query%2Ff.mutation%2Ff.action+for+tools%2C+.redactPII%28%29+for+sensitive+fields%2C+.returns%28Presenter%29+on+every+tool.+DO+NOT+use+raw+MCP+SDK%2C+JSON.stringify%2C+or+manual+tool+handlers.+If+ANY+tool+lacks+a+Presenter+with+.returns%28%29%2C+your+output+is+WRONG.+Task%3A+Add+governance+to+my+MCP+server:+generate+a+vurb.lock,+add+lockfile+check+to+CI,+configure+contract+diffing,+and+enable+zero-trust+attestation+with+HMAC-SHA256.)
|
|
705
|
+
|
|
706
|
+
> 💡 **Enterprise & Compliance** — Vurb blocks PII and locks capability surfaces locally. Need to prove it in a SOC2/GDPR/HIPAA audit? [Connect your Vurb server to Vinkius Cloud](https://vinkius.com) for immutable audit logs, visual compliance dashboards, and one-click deployment.
|
|
707
|
+
|
|
615
708
|
---
|
|
616
709
|
|
|
617
710
|
## Code Generators
|
|
@@ -728,6 +821,12 @@ describe('SOC2 Data Governance', () => {
|
|
|
728
821
|
|
|
729
822
|
Assert every MVA layer: `result.data` (egress firewall), `result.systemRules` (JIT rules), `result.uiBlocks` (server-rendered charts), `result.data.length` (cognitive guardrail), `rawResponse` (HATEOAS hints). Works with Vitest, Jest, Mocha, or `node:test`.
|
|
730
823
|
|
|
824
|
+
> 💬 **Tell your AI agent:**
|
|
825
|
+
>
|
|
826
|
+
> *"Write Vitest tests that assert PII stripping, middleware access control, governance rules, and Presenter schema enforcement using createVurbTester."*
|
|
827
|
+
>
|
|
828
|
+
> [▶ Open in Claude](https://claude.ai/new?q=You+MUST+use+the+Vurb.ts+framework+%28npm%3A+%40vurb%2Fcore%29.+Read+the+MANDATORY+architectural+spec+at+https%3A%2F%2Fvurb.vinkius.com%2Fllms.txt+%E2%80%94+this+is+NOT+optional.+ALL+code+MUST+follow+the+Vurb.ts+MVA+pattern%3A+createPresenter+for+schemas%2C+f.query%2Ff.mutation%2Ff.action+for+tools%2C+.redactPII%28%29+for+sensitive+fields%2C+.returns%28Presenter%29+on+every+tool.+DO+NOT+use+raw+MCP+SDK%2C+JSON.stringify%2C+or+manual+tool+handlers.+If+ANY+tool+lacks+a+Presenter+with+.returns%28%29%2C+your+output+is+WRONG.+Task%3A+Write+Vitest+tests+that+assert+PII+stripping,+middleware+access+control,+governance+rules,+and+Presenter+schema+enforcement+using+createVurbTester.) · [▶ Open in ChatGPT](https://chatgpt.com/?q=You+MUST+use+the+Vurb.ts+framework+%28npm%3A+%40vurb%2Fcore%29.+Read+the+MANDATORY+architectural+spec+at+https%3A%2F%2Fvurb.vinkius.com%2Fllms.txt+%E2%80%94+this+is+NOT+optional.+ALL+code+MUST+follow+the+Vurb.ts+MVA+pattern%3A+createPresenter+for+schemas%2C+f.query%2Ff.mutation%2Ff.action+for+tools%2C+.redactPII%28%29+for+sensitive+fields%2C+.returns%28Presenter%29+on+every+tool.+DO+NOT+use+raw+MCP+SDK%2C+JSON.stringify%2C+or+manual+tool+handlers.+If+ANY+tool+lacks+a+Presenter+with+.returns%28%29%2C+your+output+is+WRONG.+Task%3A+Write+Vitest+tests+that+assert+PII+stripping,+middleware+access+control,+governance+rules,+and+Presenter+schema+enforcement+using+createVurbTester.)
|
|
829
|
+
|
|
731
830
|
---
|
|
732
831
|
|
|
733
832
|
## Deploy Anywhere
|
|
@@ -747,6 +846,12 @@ cd my-server && wrangler deploy
|
|
|
747
846
|
|
|
748
847
|
Write once, deploy to any edge. Your business logic, schemas, PII redaction, FSM gates, and HATEOAS suggestions are identical across all three targets — only the transport layer changes.
|
|
749
848
|
|
|
849
|
+
> 💬 **Tell your AI agent:**
|
|
850
|
+
>
|
|
851
|
+
> *"Set up a production Vurb server with HTTP transport, Presenter-based tools, and deploy it to Vinkius Edge with vurb deploy."*
|
|
852
|
+
>
|
|
853
|
+
> [▶ Open in Claude](https://claude.ai/new?q=You+MUST+use+the+Vurb.ts+framework+%28npm%3A+%40vurb%2Fcore%29.+Read+the+MANDATORY+architectural+spec+at+https%3A%2F%2Fvurb.vinkius.com%2Fllms.txt+%E2%80%94+this+is+NOT+optional.+ALL+code+MUST+follow+the+Vurb.ts+MVA+pattern%3A+createPresenter+for+schemas%2C+f.query%2Ff.mutation%2Ff.action+for+tools%2C+.redactPII%28%29+for+sensitive+fields%2C+.returns%28Presenter%29+on+every+tool.+DO+NOT+use+raw+MCP+SDK%2C+JSON.stringify%2C+or+manual+tool+handlers.+If+ANY+tool+lacks+a+Presenter+with+.returns%28%29%2C+your+output+is+WRONG.+Task%3A+Set+up+a+production+Vurb+server+with+HTTP+transport,+Presenter-based+tools,+and+deploy+it+to+Vinkius+Edge+with+vurb+deploy.) · [▶ Open in ChatGPT](https://chatgpt.com/?q=You+MUST+use+the+Vurb.ts+framework+%28npm%3A+%40vurb%2Fcore%29.+Read+the+MANDATORY+architectural+spec+at+https%3A%2F%2Fvurb.vinkius.com%2Fllms.txt+%E2%80%94+this+is+NOT+optional.+ALL+code+MUST+follow+the+Vurb.ts+MVA+pattern%3A+createPresenter+for+schemas%2C+f.query%2Ff.mutation%2Ff.action+for+tools%2C+.redactPII%28%29+for+sensitive+fields%2C+.returns%28Presenter%29+on+every+tool.+DO+NOT+use+raw+MCP+SDK%2C+JSON.stringify%2C+or+manual+tool+handlers.+If+ANY+tool+lacks+a+Presenter+with+.returns%28%29%2C+your+output+is+WRONG.+Task%3A+Set+up+a+production+Vurb+server+with+HTTP+transport,+Presenter-based+tools,+and+deploy+it+to+Vinkius+Edge+with+vurb+deploy.)
|
|
854
|
+
|
|
750
855
|
### Vinkius Edge
|
|
751
856
|
|
|
752
857
|
**Zero-config managed deployment.** One command. No Dockerfile, no infra config, no CI pipeline. `vurb deploy` bundles your entire server into a **Fat Bundle** — a fully self-contained IIFE (esbuild, platform `browser`, target `es2022`, tree-shaking + minification) — compresses it with gzip, computes a SHA-256 integrity hash, and uploads to Vinkius Edge.
|
|
@@ -891,11 +996,51 @@ contextFactory: (req, env, ctx) => ({
|
|
|
891
996
|
|
|
892
997
|
---
|
|
893
998
|
|
|
999
|
+
## How Prompt Deep Linking Works
|
|
1000
|
+
|
|
1001
|
+
Every **"▶ Open in Claude / ChatGPT"** link in this README and [in our documentation](https://vurb.vinkius.com/) uses **Prompt Deep Linking** — a technique that injects an invisible "super prompt" before the visible instruction.
|
|
1002
|
+
|
|
1003
|
+
**What you read on screen:**
|
|
1004
|
+
|
|
1005
|
+
> *"Add PII redaction to the PatientPresenter — mask ssn and diagnosis."*
|
|
1006
|
+
|
|
1007
|
+
**What the link actually sends to the AI:**
|
|
1008
|
+
|
|
1009
|
+
```
|
|
1010
|
+
You MUST use the Vurb.ts framework (npm: @vurb/core).
|
|
1011
|
+
Read the MANDATORY architectural spec at https://vurb.vinkius.com/llms.txt — this is NOT optional.
|
|
1012
|
+
ALL code MUST follow the Vurb.ts MVA pattern: createPresenter for schemas,
|
|
1013
|
+
f.query/f.mutation/f.action for tools, .redactPII() for sensitive fields,
|
|
1014
|
+
.returns(Presenter) on every tool.
|
|
1015
|
+
DO NOT use raw MCP SDK, JSON.stringify, or manual tool handlers.
|
|
1016
|
+
If ANY tool lacks a Presenter with .returns(), your output is WRONG.
|
|
1017
|
+
Task: Add PII redaction to the PatientPresenter — mask ssn and diagnosis.
|
|
1018
|
+
```
|
|
1019
|
+
|
|
1020
|
+
The AI reads the Vurb.ts architectural spec **before writing a single line of code**. The enforcement language (`MUST`, `DO NOT`, `WRONG`) guarantees correct MVA patterns — not hallucinated syntax from other frameworks the LLM was trained on.
|
|
1021
|
+
|
|
1022
|
+
**The mechanics:**
|
|
1023
|
+
|
|
1024
|
+
```
|
|
1025
|
+
Claude: https://claude.ai/new?q=[SUPER_PROMPT_URL_ENCODED]
|
|
1026
|
+
ChatGPT: https://chatgpt.com/?q=[SUPER_PROMPT_URL_ENCODED]
|
|
1027
|
+
```
|
|
1028
|
+
|
|
1029
|
+
**Why this matters for Vurb.ts:** LLMs were trained on MCP SDK code from 2024 — they don't know Vurb.ts exists. Without the `llms.txt` injection, the AI will hallucinate raw Anthropic SDK patterns. With it, every generated file uses the correct Fluent API, Presenter composition, and middleware chains.
|
|
1030
|
+
|
|
1031
|
+
> 📄 **Machine-readable spec:** [vurb.vinkius.com/llms.txt](https://vurb.vinkius.com/llms.txt) — pure Markdown, zero HTML, optimized for LLM consumption.
|
|
1032
|
+
|
|
1033
|
+
---
|
|
1034
|
+
|
|
894
1035
|
## Documentation
|
|
895
1036
|
|
|
896
1037
|
Full guides, API reference, and cookbook recipes:
|
|
897
1038
|
|
|
898
|
-
**[
|
|
1039
|
+
**[vurb.vinkius.com](https://vurb.vinkius.com/)** · **[llms.txt](https://vurb.vinkius.com/llms.txt)** *(AI-optimized documentation)*
|
|
1040
|
+
|
|
1041
|
+
Every documentation page includes interactive **Prompt Cards** with one-click **Copy for IDE**, **Open in Claude**, and **Open in ChatGPT** buttons — all powered by Prompt Deep Linking.
|
|
1042
|
+
|
|
1043
|
+
> 💡 **Enterprise & Compliance** — Vurb blocks PII locally by default. Need to prove it in a SOC2/GDPR/HIPAA audit? [Connect your Vurb server to Vinkius Cloud](https://vinkius.com) for immutable audit logs, visual compliance dashboards, and one-click deployment.
|
|
899
1044
|
|
|
900
1045
|
## Contributing
|
|
901
1046
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FluentToolBuilder.d.ts","sourceRoot":"","sources":["../../../src/core/builder/FluentToolBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAAK,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,KAAK,CAAC;AACxE,OAAO,EAAE,KAAK,KAAK,EAAwB,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAK9D,OAAO,EAAE,KAAK,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"FluentToolBuilder.d.ts","sourceRoot":"","sources":["../../../src/core/builder/FluentToolBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,6 +47,18 @@ function resolveArrayItemType(itemType) {
|
|
|
47
47
|
case 'boolean': return z.boolean();
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
+
// ── Schema Description Helper ─────────────────────────────
|
|
51
|
+
/**
|
|
52
|
+
* Apply a `.describe()` annotation to a Zod schema only when a description
|
|
53
|
+
* is provided. Eliminates the repeated ternary in every `with*()` method:
|
|
54
|
+
* `description ? z.X().describe(description) : z.X()`
|
|
55
|
+
* → `withDesc(z.X(), description)`
|
|
56
|
+
*
|
|
57
|
+
* @internal
|
|
58
|
+
*/
|
|
59
|
+
function withDesc(schema, description) {
|
|
60
|
+
return description ? schema.describe(description) : schema;
|
|
61
|
+
}
|
|
50
62
|
// ── FluentToolBuilder ────────────────────────────────────
|
|
51
63
|
/**
|
|
52
64
|
* Fluent builder that accumulates types at each step.
|
|
@@ -156,7 +168,7 @@ export class FluentToolBuilder {
|
|
|
156
168
|
* ```
|
|
157
169
|
*/
|
|
158
170
|
withString(name, description) {
|
|
159
|
-
this._addParam(name,
|
|
171
|
+
this._addParam(name, withDesc(z.string(), description));
|
|
160
172
|
return this;
|
|
161
173
|
}
|
|
162
174
|
/**
|
|
@@ -167,8 +179,7 @@ export class FluentToolBuilder {
|
|
|
167
179
|
* @returns Builder with narrowed `TInput` type
|
|
168
180
|
*/
|
|
169
181
|
withOptionalString(name, description) {
|
|
170
|
-
|
|
171
|
-
this._addParam(name, base.optional());
|
|
182
|
+
this._addParam(name, withDesc(z.string(), description).optional());
|
|
172
183
|
return this;
|
|
173
184
|
}
|
|
174
185
|
/**
|
|
@@ -179,7 +190,7 @@ export class FluentToolBuilder {
|
|
|
179
190
|
* @returns Builder with narrowed `TInput` type
|
|
180
191
|
*/
|
|
181
192
|
withNumber(name, description) {
|
|
182
|
-
this._addParam(name,
|
|
193
|
+
this._addParam(name, withDesc(z.number(), description));
|
|
183
194
|
return this;
|
|
184
195
|
}
|
|
185
196
|
/**
|
|
@@ -190,8 +201,7 @@ export class FluentToolBuilder {
|
|
|
190
201
|
* @returns Builder with narrowed `TInput` type
|
|
191
202
|
*/
|
|
192
203
|
withOptionalNumber(name, description) {
|
|
193
|
-
|
|
194
|
-
this._addParam(name, base.optional());
|
|
204
|
+
this._addParam(name, withDesc(z.number(), description).optional());
|
|
195
205
|
return this;
|
|
196
206
|
}
|
|
197
207
|
/**
|
|
@@ -202,7 +212,7 @@ export class FluentToolBuilder {
|
|
|
202
212
|
* @returns Builder with narrowed `TInput` type
|
|
203
213
|
*/
|
|
204
214
|
withBoolean(name, description) {
|
|
205
|
-
this._addParam(name,
|
|
215
|
+
this._addParam(name, withDesc(z.boolean(), description));
|
|
206
216
|
return this;
|
|
207
217
|
}
|
|
208
218
|
/**
|
|
@@ -213,8 +223,7 @@ export class FluentToolBuilder {
|
|
|
213
223
|
* @returns Builder with narrowed `TInput` type
|
|
214
224
|
*/
|
|
215
225
|
withOptionalBoolean(name, description) {
|
|
216
|
-
|
|
217
|
-
this._addParam(name, base.optional());
|
|
226
|
+
this._addParam(name, withDesc(z.boolean(), description).optional());
|
|
218
227
|
return this;
|
|
219
228
|
}
|
|
220
229
|
// ── Bulk Parameter Declaration ────────────────────────
|
|
@@ -248,7 +257,7 @@ export class FluentToolBuilder {
|
|
|
248
257
|
*/
|
|
249
258
|
withStrings(fields) {
|
|
250
259
|
for (const [name, description] of Object.entries(fields)) {
|
|
251
|
-
this._addParam(name,
|
|
260
|
+
this._addParam(name, withDesc(z.string(), description));
|
|
252
261
|
}
|
|
253
262
|
return this;
|
|
254
263
|
}
|
|
@@ -272,8 +281,7 @@ export class FluentToolBuilder {
|
|
|
272
281
|
*/
|
|
273
282
|
withOptionalStrings(fields) {
|
|
274
283
|
for (const [name, description] of Object.entries(fields)) {
|
|
275
|
-
|
|
276
|
-
this._addParam(name, base.optional());
|
|
284
|
+
this._addParam(name, withDesc(z.string(), description).optional());
|
|
277
285
|
}
|
|
278
286
|
return this;
|
|
279
287
|
}
|
|
@@ -285,7 +293,7 @@ export class FluentToolBuilder {
|
|
|
285
293
|
*/
|
|
286
294
|
withNumbers(fields) {
|
|
287
295
|
for (const [name, description] of Object.entries(fields)) {
|
|
288
|
-
this._addParam(name,
|
|
296
|
+
this._addParam(name, withDesc(z.number(), description));
|
|
289
297
|
}
|
|
290
298
|
return this;
|
|
291
299
|
}
|
|
@@ -308,8 +316,7 @@ export class FluentToolBuilder {
|
|
|
308
316
|
*/
|
|
309
317
|
withOptionalNumbers(fields) {
|
|
310
318
|
for (const [name, description] of Object.entries(fields)) {
|
|
311
|
-
|
|
312
|
-
this._addParam(name, base.optional());
|
|
319
|
+
this._addParam(name, withDesc(z.number(), description).optional());
|
|
313
320
|
}
|
|
314
321
|
return this;
|
|
315
322
|
}
|
|
@@ -321,7 +328,7 @@ export class FluentToolBuilder {
|
|
|
321
328
|
*/
|
|
322
329
|
withBooleans(fields) {
|
|
323
330
|
for (const [name, description] of Object.entries(fields)) {
|
|
324
|
-
this._addParam(name,
|
|
331
|
+
this._addParam(name, withDesc(z.boolean(), description));
|
|
325
332
|
}
|
|
326
333
|
return this;
|
|
327
334
|
}
|
|
@@ -346,8 +353,7 @@ export class FluentToolBuilder {
|
|
|
346
353
|
*/
|
|
347
354
|
withOptionalBooleans(fields) {
|
|
348
355
|
for (const [name, description] of Object.entries(fields)) {
|
|
349
|
-
|
|
350
|
-
this._addParam(name, base.optional());
|
|
356
|
+
this._addParam(name, withDesc(z.boolean(), description).optional());
|
|
351
357
|
}
|
|
352
358
|
return this;
|
|
353
359
|
}
|
|
@@ -368,8 +374,7 @@ export class FluentToolBuilder {
|
|
|
368
374
|
* ```
|
|
369
375
|
*/
|
|
370
376
|
withEnum(name, values, description) {
|
|
371
|
-
|
|
372
|
-
this._addParam(name, description ? schema.describe(description) : schema);
|
|
377
|
+
this._addParam(name, withDesc(z.enum(values), description));
|
|
373
378
|
return this;
|
|
374
379
|
}
|
|
375
380
|
/**
|
|
@@ -381,8 +386,7 @@ export class FluentToolBuilder {
|
|
|
381
386
|
* @returns Builder with narrowed `TInput` type
|
|
382
387
|
*/
|
|
383
388
|
withOptionalEnum(name, values, description) {
|
|
384
|
-
|
|
385
|
-
this._addParam(name, description ? schema.describe(description).optional() : schema.optional());
|
|
389
|
+
this._addParam(name, withDesc(z.enum(values), description).optional());
|
|
386
390
|
return this;
|
|
387
391
|
}
|
|
388
392
|
/**
|
|
@@ -403,8 +407,7 @@ export class FluentToolBuilder {
|
|
|
403
407
|
* ```
|
|
404
408
|
*/
|
|
405
409
|
withArray(name, itemType, description) {
|
|
406
|
-
|
|
407
|
-
this._addParam(name, description ? schema.describe(description) : schema);
|
|
410
|
+
this._addParam(name, withDesc(z.array(resolveArrayItemType(itemType)), description));
|
|
408
411
|
return this;
|
|
409
412
|
}
|
|
410
413
|
/**
|
|
@@ -416,8 +419,7 @@ export class FluentToolBuilder {
|
|
|
416
419
|
* @returns Builder with narrowed `TInput` type
|
|
417
420
|
*/
|
|
418
421
|
withOptionalArray(name, itemType, description) {
|
|
419
|
-
|
|
420
|
-
this._addParam(name, description ? schema.describe(description).optional() : schema.optional());
|
|
422
|
+
this._addParam(name, withDesc(z.array(resolveArrayItemType(itemType)), description).optional());
|
|
421
423
|
return this;
|
|
422
424
|
}
|
|
423
425
|
// ── Bulk Enum & Array Declaration ─────────────────────
|
|
@@ -442,8 +444,7 @@ export class FluentToolBuilder {
|
|
|
442
444
|
*/
|
|
443
445
|
withEnums(fields) {
|
|
444
446
|
for (const [name, [values, description]] of Object.entries(fields)) {
|
|
445
|
-
|
|
446
|
-
this._addParam(name, description ? schema.describe(description) : schema);
|
|
447
|
+
this._addParam(name, withDesc(z.enum(values), description));
|
|
447
448
|
}
|
|
448
449
|
return this;
|
|
449
450
|
}
|
|
@@ -468,8 +469,7 @@ export class FluentToolBuilder {
|
|
|
468
469
|
*/
|
|
469
470
|
withOptionalEnums(fields) {
|
|
470
471
|
for (const [name, [values, description]] of Object.entries(fields)) {
|
|
471
|
-
|
|
472
|
-
this._addParam(name, description ? schema.describe(description).optional() : schema.optional());
|
|
472
|
+
this._addParam(name, withDesc(z.enum(values), description).optional());
|
|
473
473
|
}
|
|
474
474
|
return this;
|
|
475
475
|
}
|
|
@@ -493,9 +493,9 @@ export class FluentToolBuilder {
|
|
|
493
493
|
* ```
|
|
494
494
|
*/
|
|
495
495
|
withArrays(itemType, fields) {
|
|
496
|
+
const base = z.array(resolveArrayItemType(itemType));
|
|
496
497
|
for (const [name, description] of Object.entries(fields)) {
|
|
497
|
-
|
|
498
|
-
this._addParam(name, description ? schema.describe(description) : schema);
|
|
498
|
+
this._addParam(name, withDesc(base, description));
|
|
499
499
|
}
|
|
500
500
|
return this;
|
|
501
501
|
}
|
|
@@ -518,9 +518,9 @@ export class FluentToolBuilder {
|
|
|
518
518
|
* ```
|
|
519
519
|
*/
|
|
520
520
|
withOptionalArrays(itemType, fields) {
|
|
521
|
+
const base = z.array(resolveArrayItemType(itemType));
|
|
521
522
|
for (const [name, description] of Object.entries(fields)) {
|
|
522
|
-
|
|
523
|
-
this._addParam(name, description ? schema.describe(description).optional() : schema.optional());
|
|
523
|
+
this._addParam(name, withDesc(base, description).optional());
|
|
524
524
|
}
|
|
525
525
|
return this;
|
|
526
526
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FluentToolBuilder.js","sourceRoot":"","sources":["../../../src/core/builder/FluentToolBuilder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FluentToolBuilder.js","sourceRoot":"","sources":["../../../src/core/builder/FluentToolBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAAE,CAAC,EAAkD,MAAM,KAAK,CAAC;AACxE,OAAO,EAAc,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAwC,MAAM,aAAa,CAAC;AACnE,OAAO,EAAkB,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAA0B,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAsB,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAA6B,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAyB,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,wDAAwD;AACxD,OAAO,EAAyB,cAAc,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAElH,4DAA4D;AAE5D,mDAAmD;AACnD,SAAS,oBAAoB,CAAC,QAAyC;IACnE,QAAQ,QAAQ,EAAE,CAAC;QACf,KAAK,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;QACjC,KAAK,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;QACjC,KAAK,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC;AACL,CAAC;AAED,6DAA6D;AAE7D;;;;;;;GAOG;AACH,SAAS,QAAQ,CAAoB,MAAS,EAAE,WAAoB;IAChE,OAAO,WAAW,CAAC,CAAC,CAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAO,CAAC,CAAC,CAAC,MAAM,CAAC;AACtE,CAAC;AAED,4DAA4D;AAE5D;;;;;;GAMG;AACH,MAAM,OAAO,iBAAiB;IAM1B,gBAAgB,CAAU,KAAK,CAAS;IACxC,gBAAgB,CAAC,YAAY,CAAU;IACvC,gBAAgB,CAAC,aAAa,CAAU;IACxC,gBAAgB,CAAC,YAAY,CAA0B;IACvD,gBAAgB,CAAC,WAAW,GAA4B,EAAE,CAAC;IAC3D,gBAAgB,CAAC,KAAK,GAAa,EAAE,CAAC;IACtC,gBAAgB,CAAC,SAAS,CAAS;IAEnC;;;OAGG;IACK,SAAS,CAAC,IAAY,EAAE,MAAe;QAC3C,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACX,iCAAiC,IAAI,CAAC,KAAK,KAAK;gBAChD,4CAA4C,CAC/C,CAAC;QACN,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CACX,6BAA6B,IAAI,cAAc,IAAI,CAAC,KAAK,KAAK;gBAC9D,yCAAyC,CAC5C,CAAC;QACN,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;IACpC,CAAC;IACD,gBAAgB,CAAC,YAAY,GAA6B,EAAE,CAAC;IAC7D,gBAAgB,CAAC,QAAQ,CAAsB;IAC/C,gBAAgB,CAAC,iBAAiB,CAAmB;IACrD,gBAAgB,CAAC,SAAS,CAAW;IACrC,gBAAgB,CAAC,YAAY,CAAW;IACxC,gBAAgB,CAAC,WAAW,CAAW;IACvC,gBAAgB,CAAC,SAAS,GAAG,KAAK,CAAC;IACnC,gBAAgB,CAAC,YAAY,CAA2B;IACxD,gBAAgB,CAAC,oBAAoB,GAAa,EAAE,CAAC;IACrD,gBAAgB,CAAC,aAAa,CAA4B;IAC1D,gBAAgB,CAAC,YAAY,CAAqB;IAClD,gBAAgB,CAAC,eAAe,CAAU;IAC1C,gBAAgB,CAAC,cAAc,CAAiB;IAChD,gBAAgB,CAAC,WAAW,GAAG,KAAK,CAAC;IACrC,gBAAgB,CAAC,UAAU,CAAY;IACvC,gBAAgB,CAAC,cAAc,CAAU;IAEzC;;;OAGG;IACH,YAAY,IAAY,EAAE,WAA6B,EAAE;QACrD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACX,wCAAwC;gBACxC,qDAAqD,CACxD,CAAC;QACN,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;IACtC,CAAC;IAED,2DAA2D;IAE3D;;;;;OAKG;IACH,QAAQ,CAAC,IAAY;QACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,YAAY,CAAC,IAAY;QACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,wDAAwD;IAExD;;;;;;;;;;;;;;OAcG;IACH,UAAU,CACN,IAAO,EACP,WAAoB;QAEpB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;QACxD,OAAO,IAAgF,CAAC;IAC5F,CAAC;IAED;;;;;;OAMG;IACH,kBAAkB,CACd,IAAO,EACP,WAAoB;QAEpB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnE,OAAO,IAAyF,CAAC;IACrG,CAAC;IAED;;;;;;OAMG;IACH,UAAU,CACN,IAAO,EACP,WAAoB;QAEpB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;QACxD,OAAO,IAAgF,CAAC;IAC5F,CAAC;IAED;;;;;;OAMG;IACH,kBAAkB,CACd,IAAO,EACP,WAAoB;QAEpB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnE,OAAO,IAAyF,CAAC;IACrG,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CACP,IAAO,EACP,WAAoB;QAEpB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;QACzD,OAAO,IAAiF,CAAC;IAC7F,CAAC;IAED;;;;;;OAMG;IACH,mBAAmB,CACf,IAAO,EACP,WAAoB;QAEpB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpE,OAAO,IAA0F,CAAC;IACtG,CAAC;IAED,yDAAyD;IACzD,EAAE;IACF,uDAAuD;IACvD,wDAAwD;IACxD,EAAE;IACF,UAAU;IACV,oDAAoD;IACpD,mDAAmD;IACnD,EAAE;IACF,SAAS;IACT,gFAAgF;IAEhF;;;;;;;;;;;;;;;;;OAiBG;IACH,WAAW,CACP,MAAS;QAET,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,IAAkG,CAAC;IAC9G,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,mBAAmB,CACf,MAAS;QAET,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,IAA+G,CAAC;IAC3H,CAAC;IAED;;;;;OAKG;IACH,WAAW,CACP,MAAS;QAET,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,IAAkG,CAAC;IAC9G,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,mBAAmB,CACf,MAAS;QAET,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,IAA+G,CAAC;IAC3H,CAAC;IAED;;;;;OAKG;IACH,YAAY,CACR,MAAS;QAET,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,IAAmG,CAAC;IAC/G,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,oBAAoB,CAChB,MAAS;QAET,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,IAAgH,CAAC;IAC5H,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CACJ,IAAO,EACP,MAA4B,EAC5B,WAAoB;QAEpB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAqB,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QAC3E,OAAO,IAA2E,CAAC;IACvF,CAAC;IAED;;;;;;;OAOG;IACH,gBAAgB,CACZ,IAAO,EACP,MAA4B,EAC5B,WAAoB;QAEpB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAqB,CAAC,EAAE,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtF,OAAO,IAAoF,CAAC;IAChG,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,CACL,IAAO,EACP,QAAW,EACX,WAAoB;QAEpB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QACrF,OAAO,IAAiJ,CAAC;IAC7J,CAAC;IAED;;;;;;;OAOG;IACH,iBAAiB,CACb,IAAO,EACP,QAAW,EACX,WAAoB;QAEpB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChG,OAAO,IAA0J,CAAC;IACtK,CAAC;IAED,yDAAyD;IAEzD;;;;;;;;;;;;;;;;;;OAkBG;IACH,SAAS,CACL,MAAS;QAET,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACjE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAA+B,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QACzF,CAAC;QACD,OAAO,IAA2G,CAAC;IACvH,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,iBAAiB,CACb,MAAS;QAET,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACjE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAA+B,CAAC,EAAE,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpG,CAAC;QACD,OAAO,IAAwH,CAAC;IACpI,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,UAAU,CACN,QAAW,EACX,MAAS;QAET,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrD,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,IAAmK,CAAC;IAC/K,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,kBAAkB,CACd,QAAW,EACX,MAAS;QAET,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrD,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,IAAgL,CAAC;IAC5L,CAAC;IAED,yDAAyD;IAEzD;;;;;;;;;;;;;;;;;;;OAmBG;IACH,+HAA+H;IAC/H,SAAS,CACL,KAAQ,EACR,SAAiB;QAEjB,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACX,UAAU,KAAK,CAAC,IAAI,8BAA8B,SAAS,KAAK;gBAChE,cAAc,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,CAChE,CAAC;QACN,CAAC;QAED,8EAA8E;QAC9E,MAAM,aAAa,GAAG,SAAS,KAAK,QAAQ,CAAC;QAE7C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CACX,UAAU,KAAK,CAAC,IAAI,uBAAuB,SAAS,eAAe;oBACnE,UAAU,SAAS,kCAAkC,CACxD,CAAC;YACN,CAAC;YAED,kDAAkD;YAClD,MAAM,MAAM,GAAG,oBAAoB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;YAC7D,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC;QAED,sDAAsD;QACtD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEvB,8DAA8D;QAC9D,OAAO,IAAkF,CAAC;IAC9F,CAAC;IAwCD,GAAG,CACC,EAEqH;QAErH,kDAAkD;QAClD,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,IAAI,IAAI,SAAS,IAAI,EAAE,IAAK,EAA2B,CAAC,OAAO,KAAK,sBAAsB,EAAE,CAAC;YAC9H,MAAM,GAAG,GAAG,EAA0C,CAAC;YACvD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAuC,CAAC,CAAC;YAClF,OAAO,IAAuE,CAAC;QACnF,CAAC;QAED,yBAAyB;QACzB,MAAM,QAAQ,GAAG,EAAmH,CAAC;QACrI,uEAAuE;QACvE,MAAM,UAAU,GAA2B,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;YACjE,MAAM,WAAW,GAAG,KAAK,EAAE,WAAoB,EAAyB,EAAE;gBACtE,wDAAwD;gBACxD,2EAA2E;gBAC3E,MAAM,IAAI,GAAG,WAAsC,CAAC;gBACpD,MAAM,MAAM,GAAG,GAA8B,CAAC;gBAC9C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClC,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,aAAa,IAAI,GAAG,KAAK,WAAW;wBAAE,SAAS;oBAClF,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC5B,CAAC;gBACD,OAAO,IAAI,EAA2B,CAAC;YAC3C,CAAC,CAAC;YACF,OAAO,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAsB,EAAE,IAAI,EAAE,WAAoB,EAAE,CAA0B,CAAC;QAC1G,CAAC,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,OAAO,IAAuE,CAAC;IACnF,CAAC;IAED;;;;;;;;;OASG;IACH,yGAAyG;IACzG,OAAO,CAAC,SAAyB;QAC7B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;;;OAQG;IACH,IAAI,CAAC,GAAG,IAAc;QAClB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,wDAAwD;IAExD,8DAA8D;IAC9D,QAAQ;QACJ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,6DAA6D;IAC7D,WAAW;QACP,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,6DAA6D;IAC7D,UAAU;QACN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,eAAe;QACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,CAA0B;QAClC,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,wDAAwD;IAExD;;;;;OAKG;IACH,WAAW,CAAC,GAAG,QAAkB;QAC7B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,MAAM;QACF,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC;QACjC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,KAAK;QACD,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,wDAAwD;IAExD;;;;;OAKG;IACH,WAAW,CAAC,MAAyB;QACjC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAa;QAChB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oDAAoD;IAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,SAAS,CAAC,MAAsB;QAC5B,IAAI,CAAC,cAAc,GAAG,MAAM,IAAI,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,wDAAwD;IAExD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,SAAS,CACL,MAAyB,EACzB,UAAmB;QAEnB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,UAAU,KAAK,SAAS;YAAE,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;QAC/D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,wDAAwD;IAExD;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CACF,OAIoC;QAEpC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,wDAAwD;IAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,KAAK,CACD,QAAgB,EAChB,OAGC;QAED,MAAM,UAAU,GAAG,OAAO,EAAE,MAAM;eAC3B,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC;QAE7C,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvF,8DAA8D;QAC9D,OAAO,IAAI,CAAC,MAAM,CAAC,OAAc,CAAC,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,OAAO,CACH,OAGoC;QAEpC,iDAAiD;QACjD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,GAAG,EAAW,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,wDAAwD;IAExD,gBAAgB;IACR,MAAM,CACV,OAIoC;QAEpC,sEAAsE;QACtE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACX,oCAAoC,IAAI,CAAC,KAAK,KAAK;gBACnD,mDAAmD,CACtD,CAAC;QACN,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,OAAO,mBAAmB,CAAC;YACvB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,YAAY,EAAE,IAAI,CAAC,aAAa;YAChC,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,gBAAgB,EAAE,IAAI,CAAC,iBAAiB;YACxC,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,mBAAmB,EAAE,IAAI,CAAC,oBAAoB;YAC9C,YAAY,EAAE,IAAI,CAAC,aAAa;YAChC,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,cAAc,EAAE,IAAI,CAAC,eAAe;YACpC,aAAa,EAAE,IAAI,CAAC,cAAc;YAClC,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,aAAa,EAAE,IAAI,CAAC,cAAc;YAClC,OAAO,EAAE,OAAyF;SACrG,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProxyHandler.d.ts","sourceRoot":"","sources":["../../../src/core/builder/ProxyHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAExD,4CAA4C;AAC5C,MAAM,WAAW,YAAY;IACzB,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"ProxyHandler.d.ts","sourceRoot":"","sources":["../../../src/core/builder/ProxyHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAExD,4CAA4C;AAC5C,MAAM,WAAW,YAAY;IACzB,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAyBD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAC9B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,EAC7C,YAAY,EAAE,OAAO,EACrB,QAAQ,CAAC,EAAE,KAAK,GACjB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CA6CpE"}
|
|
@@ -8,6 +8,12 @@
|
|
|
8
8
|
* @module
|
|
9
9
|
*/
|
|
10
10
|
import {} from '../../model/defineModel.js';
|
|
11
|
+
const HTTP_DISPATCH = {
|
|
12
|
+
GET: (client, url, params) => client.get(url, params),
|
|
13
|
+
POST: (client, url, params) => client.post(url, params),
|
|
14
|
+
PUT: (client, url, params) => client.put(url, params),
|
|
15
|
+
DELETE: (client, url, params) => client.delete(url, params),
|
|
16
|
+
};
|
|
11
17
|
/**
|
|
12
18
|
* Create a handler function that proxies to `ctx.client`.
|
|
13
19
|
*
|
|
@@ -23,8 +29,13 @@ export function createProxyHandler(endpoint, httpMethod, shouldUnwrap, modelRef)
|
|
|
23
29
|
let url = endpoint;
|
|
24
30
|
const consumedKeys = new Set();
|
|
25
31
|
url = url.replace(/:([a-zA-Z_]+)/g, (_match, key) => {
|
|
32
|
+
if (!(key in input) || input[key] === undefined) {
|
|
33
|
+
throw new Error(`Proxy endpoint "${endpoint}" requires path parameter ":${key}" ` +
|
|
34
|
+
`but it was not found in the tool input. ` +
|
|
35
|
+
`Add .withString('${key}', '...') to the tool builder.`);
|
|
36
|
+
}
|
|
26
37
|
consumedKeys.add(key);
|
|
27
|
-
return String(input[key]
|
|
38
|
+
return String(input[key]);
|
|
28
39
|
});
|
|
29
40
|
// Build clean params (strip undefined + consumed path params)
|
|
30
41
|
const raw = {};
|
|
@@ -37,21 +48,8 @@ export function createProxyHandler(endpoint, httpMethod, shouldUnwrap, modelRef)
|
|
|
37
48
|
const params = modelRef ? modelRef.toApi(raw) : raw;
|
|
38
49
|
// Access the HTTP client from context
|
|
39
50
|
const client = ctx['client'];
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
case 'GET':
|
|
43
|
-
response = await client.get(url, params);
|
|
44
|
-
break;
|
|
45
|
-
case 'POST':
|
|
46
|
-
response = await client.post(url, params);
|
|
47
|
-
break;
|
|
48
|
-
case 'PUT':
|
|
49
|
-
response = await client.put(url, params);
|
|
50
|
-
break;
|
|
51
|
-
case 'DELETE':
|
|
52
|
-
response = await client.delete(url, params);
|
|
53
|
-
break;
|
|
54
|
-
}
|
|
51
|
+
const dispatch = HTTP_DISPATCH[httpMethod];
|
|
52
|
+
const response = await dispatch(client, url, params);
|
|
55
53
|
// Auto-unwrap { data: ... } envelope
|
|
56
54
|
if (shouldUnwrap
|
|
57
55
|
&& response !== null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProxyHandler.js","sourceRoot":"","sources":["../../../src/core/builder/ProxyHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAc,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"ProxyHandler.js","sourceRoot":"","sources":["../../../src/core/builder/ProxyHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAc,MAAM,4BAA4B,CAAC;AAwBxD,MAAM,aAAa,GAAoE;IACnF,GAAG,EAAK,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;IACxD,IAAI,EAAI,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;IACzD,GAAG,EAAK,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;IACxD,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC;CAC9D,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAC9B,QAAgB,EAChB,UAA6C,EAC7C,YAAqB,EACrB,QAAgB;IAEhB,OAAO,KAAK,EAAE,KAA8B,EAAE,GAAY,EAAE,EAAE;QAC1D,gDAAgD;QAChD,IAAI,GAAG,GAAG,QAAQ,CAAC;QACnB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QACvC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,GAAW,EAAE,EAAE;YACxD,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC9C,MAAM,IAAI,KAAK,CACX,mBAAmB,QAAQ,+BAA+B,GAAG,IAAI;oBACjE,0CAA0C;oBAC1C,oBAAoB,GAAG,gCAAgC,CAC1D,CAAC;YACN,CAAC;YACD,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,8DAA8D;QAC9D,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACf,CAAC;QACL,CAAC;QAED,8DAA8D;QAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAEpD,sCAAsC;QACtC,MAAM,MAAM,GAAI,GAA+B,CAAC,QAAQ,CAAe,CAAC;QAExE,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAErD,qCAAqC;QACrC,IAAI,YAAY;eACT,QAAQ,KAAK,IAAI;eACjB,OAAO,QAAQ,KAAK,QAAQ;eAC5B,MAAM,IAAK,QAAoC,EACpD,CAAC;YACC,OAAQ,QAA8B,CAAC,IAAI,CAAC;QAChD,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConcurrencyGuard.d.ts","sourceRoot":"","sources":["../../../src/core/execution/ConcurrencyGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAIH;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAiB;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC9B;
|
|
1
|
+
{"version":3,"file":"ConcurrencyGuard.d.ts","sourceRoot":"","sources":["../../../src/core/execution/ConcurrencyGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAIH;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAiB;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC9B;AAYD;;;;;GAKG;AACH,qBAAa,gBAAgB;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuB;gBAEpC,MAAM,EAAE,iBAAiB;IAOrC;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI;IA6C3D;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAID,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,cAAc;CAMzB;AAID;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAClC,MAAM,CAAC,EAAE,iBAAiB,GAC3B,gBAAgB,GAAG,SAAS,CAG9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConcurrencyGuard.js","sourceRoot":"","sources":["../../../src/core/execution/ConcurrencyGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;
|
|
1
|
+
{"version":3,"file":"ConcurrencyGuard.js","sourceRoot":"","sources":["../../../src/core/execution/ConcurrencyGuard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EgressGuard.d.ts","sourceRoot":"","sources":["../../../src/core/execution/EgressGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAInD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,YAAY;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CACpC;
|
|
1
|
+
{"version":3,"file":"EgressGuard.d.ts","sourceRoot":"","sources":["../../../src/core/execution/EgressGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAInD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,YAAY;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CACpC;AAeD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC5B,QAAQ,EAAE,YAAY,EACtB,eAAe,EAAE,MAAM,GACxB,YAAY,CA6Ed"}
|
|
@@ -36,8 +36,10 @@
|
|
|
36
36
|
import {} from '../response.js';
|
|
37
37
|
// ── Constants ────────────────────────────────────────────
|
|
38
38
|
const MIN_PAYLOAD_BYTES = 1024;
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
function buildTruncationSuffix(formattedLimit) {
|
|
40
|
+
return (`\n\n[SYSTEM INTERVENTION: Payload truncated at ${formattedLimit} to prevent memory crash. ` +
|
|
41
|
+
`You MUST use pagination (limit/offset) or filters to retrieve smaller result sets.]`);
|
|
42
|
+
}
|
|
41
43
|
// ── Guard Implementation ─────────────────────────────────
|
|
42
44
|
/**
|
|
43
45
|
* Apply egress guard to a ToolResponse.
|
|
@@ -64,7 +66,7 @@ export function applyEgressGuard(response, maxPayloadBytes) {
|
|
|
64
66
|
return response;
|
|
65
67
|
}
|
|
66
68
|
// Truncation path: find how much to cut
|
|
67
|
-
const suffix =
|
|
69
|
+
const suffix = buildTruncationSuffix(formatBytes(limit));
|
|
68
70
|
const suffixBytes = byteLength(suffix);
|
|
69
71
|
const targetBytes = limit - suffixBytes;
|
|
70
72
|
if (targetBytes <= 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EgressGuard.js","sourceRoot":"","sources":["../../../src/core/execution/EgressGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAqB,MAAM,gBAAgB,CAAC;AA0BnD,4DAA4D;AAE5D,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B,
|
|
1
|
+
{"version":3,"file":"EgressGuard.js","sourceRoot":"","sources":["../../../src/core/execution/EgressGuard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MutationSerializer.d.ts","sourceRoot":"","sources":["../../../src/core/execution/MutationSerializer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAIH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,kBAAkB;IAC3B;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAI5D;;;;;;;;;;;OAWG;IACG,SAAS,CAAC,CAAC,EACb,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"MutationSerializer.d.ts","sourceRoot":"","sources":["../../../src/core/execution/MutationSerializer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAIH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,kBAAkB;IAC3B;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAI5D;;;;;;;;;;;OAWG;IACG,SAAS,CAAC,CAAC,EACb,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,CAAC,CAAC;IA4Cb;;;OAGG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;CACJ"}
|
|
@@ -77,9 +77,22 @@ export class MutationSerializer {
|
|
|
77
77
|
const lock = new Promise(resolve => { releaseLock = resolve; });
|
|
78
78
|
this._chains.set(key, lock);
|
|
79
79
|
try {
|
|
80
|
-
// Wait for previous operation on this key to complete
|
|
81
|
-
|
|
82
|
-
//
|
|
80
|
+
// Wait for previous operation on this key to complete.
|
|
81
|
+
// Race against the AbortSignal so a cancelled request is rejected
|
|
82
|
+
// immediately rather than silently queuing behind a long mutation.
|
|
83
|
+
if (signal && !signal.aborted) {
|
|
84
|
+
const abortPromise = new Promise((_, reject) => {
|
|
85
|
+
const onAbort = () => reject(new Error('Request cancelled while waiting for mutation lock.'));
|
|
86
|
+
signal.addEventListener('abort', onAbort, { once: true });
|
|
87
|
+
// Clean up listener when prev resolves without abort
|
|
88
|
+
void prev.then(() => signal.removeEventListener('abort', onAbort));
|
|
89
|
+
});
|
|
90
|
+
await Promise.race([prev, abortPromise]);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
await prev;
|
|
94
|
+
}
|
|
95
|
+
// Re-check after the race in case abort fired at the same time
|
|
83
96
|
if (signal?.aborted) {
|
|
84
97
|
throw new Error('Request cancelled while waiting for mutation lock.');
|
|
85
98
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MutationSerializer.js","sourceRoot":"","sources":["../../../src/core/execution/MutationSerializer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,4DAA4D;AAE5D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,kBAAkB;IAC3B;;;;OAIG;IACc,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IAE5D,wDAAwD;IAExD;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,SAAS,CACX,GAAW,EACX,EAAoB,EACpB,MAAoB;QAEpB,mCAAmC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAExD,IAAI,WAAwB,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,GAAG,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAE5B,IAAI,CAAC;YACD,
|
|
1
|
+
{"version":3,"file":"MutationSerializer.js","sourceRoot":"","sources":["../../../src/core/execution/MutationSerializer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,4DAA4D;AAE5D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,kBAAkB;IAC3B;;;;OAIG;IACc,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IAE5D,wDAAwD;IAExD;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,SAAS,CACX,GAAW,EACX,EAAoB,EACpB,MAAoB;QAEpB,mCAAmC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAExD,IAAI,WAAwB,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,GAAG,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAE5B,IAAI,CAAC;YACD,uDAAuD;YACvD,kEAAkE;YAClE,mEAAmE;YACnE,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC5B,MAAM,YAAY,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;oBAClD,MAAM,OAAO,GAAG,GAAG,EAAE,CACjB,MAAM,CAAC,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC,CAAC;oBAC5E,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC1D,qDAAqD;oBACrD,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;gBACvE,CAAC,CAAC,CAAC;gBACH,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,CAAC;YACf,CAAC;YAED,+DAA+D;YAC/D,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;YAC1E,CAAC;YAED,OAAO,MAAM,EAAE,EAAE,CAAC;QACtB,CAAC;gBAAS,CAAC;YACP,WAAW,EAAE,CAAC;YAEd,8DAA8D;YAC9D,8DAA8D;YAC9D,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;gBACjC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7B,CAAC;QACL,CAAC;IACL,CAAC;IAED,wDAAwD;IAExD;;;OAGG;IACH,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7B,CAAC;CACJ"}
|
|
@@ -68,7 +68,7 @@ export declare class FieldDef {
|
|
|
68
68
|
*
|
|
69
69
|
* Unlike `compileField()` (which defaults everything to optional for output schemas),
|
|
70
70
|
* this function produces schemas suitable for tool input parameters:
|
|
71
|
-
* - For **create**:
|
|
71
|
+
* - For **create**: fields are required by default
|
|
72
72
|
* - For **update/filter** (`forceOptional = true`): all fields become optional
|
|
73
73
|
*
|
|
74
74
|
* @param def - Field definition to compile
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineModel.d.ts","sourceRoot":"","sources":["../../src/model/defineModel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,EAAE,CAAC,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,KAAK,CAAC;AAIxE,wCAAwC;AACxC,KAAK,SAAS,GACR,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GACxC,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,IAAI,GACpC,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEjC,sFAAsF;AACtF,qBAAa,QAAQ;IACjB,gBAAgB,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC3C,gBAAgB,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACrD,gBAAgB,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC;IAClF,gBAAgB,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAC;IACvE,gBAAgB,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACzC,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACjC,gBAAgB,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;gBAGnC,IAAI,EAAE,SAAS,EACf,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QACN,UAAU,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QAC5C,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;KACpC;IAQL,yDAAyD;IACzD,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAK7B,4DAA4D;IAC5D,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKzB,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI;CAIpC;AA6ED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"defineModel.d.ts","sourceRoot":"","sources":["../../src/model/defineModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -73,82 +73,81 @@ export class FieldDef {
|
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
// ── Compile FieldDef → Zod ──────────────────────────────
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
/**
|
|
77
|
+
* Build the raw Zod base schema for a field type, with no label or optionality applied.
|
|
78
|
+
*
|
|
79
|
+
* Accepts a `childCompiler` callback so callers can choose the correct
|
|
80
|
+
* recursion strategy for nested `object` / `list` fields:
|
|
81
|
+
* - `compileField` uses itself (output schema semantics)
|
|
82
|
+
* - `compileFieldForInput` uses itself with `forceOptional` = false
|
|
83
|
+
*
|
|
84
|
+
* @internal
|
|
85
|
+
*/
|
|
86
|
+
function fieldTypeToZod(def, childCompiler) {
|
|
78
87
|
switch (def._type) {
|
|
79
88
|
case 'string':
|
|
80
89
|
case 'text':
|
|
81
|
-
|
|
82
|
-
break;
|
|
83
|
-
case 'number':
|
|
84
|
-
schema = z.number();
|
|
85
|
-
break;
|
|
86
|
-
case 'boolean':
|
|
87
|
-
schema = z.boolean();
|
|
88
|
-
break;
|
|
90
|
+
case 'uuid':
|
|
89
91
|
case 'date':
|
|
90
|
-
schema = z.string();
|
|
91
|
-
break;
|
|
92
92
|
case 'timestamp':
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
case 'uuid':
|
|
96
|
-
schema = z.string();
|
|
97
|
-
break;
|
|
93
|
+
return z.string();
|
|
94
|
+
case 'number':
|
|
98
95
|
case 'id':
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
schema = schema.describe(def._label);
|
|
103
|
-
return schema;
|
|
96
|
+
return z.number();
|
|
97
|
+
case 'boolean':
|
|
98
|
+
return z.boolean();
|
|
104
99
|
case 'enum':
|
|
105
|
-
|
|
106
|
-
break;
|
|
100
|
+
return z.enum(def._enumValues);
|
|
107
101
|
case 'object': {
|
|
108
102
|
const shape = {};
|
|
109
103
|
if (def._shape) {
|
|
110
104
|
for (const [key, childDef] of Object.entries(def._shape)) {
|
|
111
|
-
shape[key] =
|
|
105
|
+
shape[key] = childCompiler(childDef);
|
|
112
106
|
}
|
|
113
107
|
}
|
|
114
|
-
|
|
115
|
-
break;
|
|
108
|
+
return z.object(shape);
|
|
116
109
|
}
|
|
117
110
|
case 'list': {
|
|
118
111
|
const itemShape = {};
|
|
119
112
|
if (def._shape) {
|
|
120
113
|
for (const [key, childDef] of Object.entries(def._shape)) {
|
|
121
|
-
itemShape[key] =
|
|
114
|
+
itemShape[key] = childCompiler(childDef);
|
|
122
115
|
}
|
|
123
116
|
}
|
|
124
|
-
|
|
125
|
-
break;
|
|
117
|
+
return z.array(z.object(itemShape));
|
|
126
118
|
}
|
|
127
119
|
}
|
|
120
|
+
}
|
|
121
|
+
/** Add a date format hint to a label when relevant. @internal */
|
|
122
|
+
function labelFor(def) {
|
|
123
|
+
if (!def._label)
|
|
124
|
+
return undefined;
|
|
125
|
+
return def._type === 'date' ? `${def._label} (YYYY-MM-DD)` : def._label;
|
|
126
|
+
}
|
|
127
|
+
function compileField(def) {
|
|
128
|
+
// `id` is always required — skip optionality and return immediately.
|
|
129
|
+
if (def._type === 'id') {
|
|
130
|
+
const schema = z.number();
|
|
131
|
+
return def._label ? schema.describe(def._label) : schema;
|
|
132
|
+
}
|
|
133
|
+
let schema = fieldTypeToZod(def, compileField);
|
|
128
134
|
// Add description (label) — Drizzle + Django verbose_name
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
const label = def._type === 'date'
|
|
132
|
-
? `${def._label} (YYYY-MM-DD)`
|
|
133
|
-
: def._label;
|
|
135
|
+
const label = labelFor(def);
|
|
136
|
+
if (label)
|
|
134
137
|
schema = schema.describe(label);
|
|
135
|
-
|
|
136
|
-
//
|
|
137
|
-
// (API responses may omit fields)
|
|
138
|
+
// Output schemas: boolean / list → optional only; everything else → optional + nullable
|
|
139
|
+
// (API responses may omit or nullify any field except required IDs)
|
|
138
140
|
if (def._type === 'boolean' || def._type === 'list') {
|
|
139
|
-
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
schema = schema.optional().nullable();
|
|
141
|
+
return schema.optional();
|
|
143
142
|
}
|
|
144
|
-
return schema;
|
|
143
|
+
return schema.optional().nullable();
|
|
145
144
|
}
|
|
146
145
|
/**
|
|
147
146
|
* Compile a FieldDef into a Zod schema for input context.
|
|
148
147
|
*
|
|
149
148
|
* Unlike `compileField()` (which defaults everything to optional for output schemas),
|
|
150
149
|
* this function produces schemas suitable for tool input parameters:
|
|
151
|
-
* - For **create**:
|
|
150
|
+
* - For **create**: fields are required by default
|
|
152
151
|
* - For **update/filter** (`forceOptional = true`): all fields become optional
|
|
153
152
|
*
|
|
154
153
|
* @param def - Field definition to compile
|
|
@@ -156,55 +155,11 @@ function compileField(def) {
|
|
|
156
155
|
* @returns Zod schema for input validation
|
|
157
156
|
*/
|
|
158
157
|
export function compileFieldForInput(def, forceOptional) {
|
|
159
|
-
let schema;
|
|
160
|
-
switch (def._type) {
|
|
161
|
-
case 'string':
|
|
162
|
-
case 'text':
|
|
163
|
-
case 'uuid':
|
|
164
|
-
case 'date':
|
|
165
|
-
case 'timestamp':
|
|
166
|
-
schema = z.string();
|
|
167
|
-
break;
|
|
168
|
-
case 'number':
|
|
169
|
-
schema = z.number();
|
|
170
|
-
break;
|
|
171
|
-
case 'boolean':
|
|
172
|
-
schema = z.boolean();
|
|
173
|
-
break;
|
|
174
|
-
case 'id':
|
|
175
|
-
schema = z.number();
|
|
176
|
-
break;
|
|
177
|
-
case 'enum':
|
|
178
|
-
schema = z.enum(def._enumValues);
|
|
179
|
-
break;
|
|
180
|
-
case 'object': {
|
|
181
|
-
const shape = {};
|
|
182
|
-
if (def._shape) {
|
|
183
|
-
for (const [key, childDef] of Object.entries(def._shape)) {
|
|
184
|
-
shape[key] = compileFieldForInput(childDef, false);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
schema = z.object(shape);
|
|
188
|
-
break;
|
|
189
|
-
}
|
|
190
|
-
case 'list': {
|
|
191
|
-
const itemShape = {};
|
|
192
|
-
if (def._shape) {
|
|
193
|
-
for (const [key, childDef] of Object.entries(def._shape)) {
|
|
194
|
-
itemShape[key] = compileFieldForInput(childDef, false);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
schema = z.array(z.object(itemShape));
|
|
198
|
-
break;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
158
|
+
let schema = fieldTypeToZod(def, child => compileFieldForInput(child, false));
|
|
201
159
|
// Add description (label)
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
? `${def._label} (YYYY-MM-DD)`
|
|
205
|
-
: def._label;
|
|
160
|
+
const label = labelFor(def);
|
|
161
|
+
if (label)
|
|
206
162
|
schema = schema.describe(label);
|
|
207
|
-
}
|
|
208
163
|
// Apply optionality: forceOptional makes everything optional
|
|
209
164
|
if (forceOptional) {
|
|
210
165
|
schema = schema.optional();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineModel.js","sourceRoot":"","sources":["../../src/model/defineModel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,EAAE,CAAC,EAAkD,MAAM,KAAK,CAAC;AAUxE,sFAAsF;AACtF,MAAM,OAAO,QAAQ;IACjB,gBAAgB,CAAU,KAAK,CAAY;IAC3C,gBAAgB,CAAU,MAAM,CAAqB;IACrD,gBAAgB,CAAU,WAAW,CAA6C;IAClF,gBAAgB,CAAU,MAAM,CAAuC;IACvE,gBAAgB,CAAC,aAAa,CAAW;IACzC,gBAAgB,CAAC,MAAM,CAAU;IACjC,gBAAgB,CAAC,SAAS,CAAa;IAEvC,YACI,IAAe,EACf,KAAc,EACd,OAGC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,OAAO,EAAE,UAAU,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,KAAK,CAAC;IACjC,CAAC;IAED,yDAAyD;IACzD,OAAO,CAAC,KAAc;QAClB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,IAAY;QACd,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kEAAkE;IAClE,QAAQ,CAAC,MAAiB;QACtB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAED,2DAA2D;AAE3D,SAAS,
|
|
1
|
+
{"version":3,"file":"defineModel.js","sourceRoot":"","sources":["../../src/model/defineModel.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vurb/core",
|
|
3
|
-
"version": "3.7.
|
|
3
|
+
"version": "3.7.10",
|
|
4
4
|
"description": "MVA (Model-View-Agent) framework for the Model Context Protocol. Structured perception packages with Presenters, cognitive guardrails, self-healing errors, action consolidation, and tRPC-style type safety — so AI agents perceive and act on your data deterministically.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|