schematex 0.5.0 → 0.6.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 +89 -7
- package/dist/ai/ai-sdk.cjs +32 -26
- package/dist/ai/ai-sdk.cjs.map +1 -1
- package/dist/ai/ai-sdk.d.cts +4 -3
- package/dist/ai/ai-sdk.d.ts +4 -3
- package/dist/ai/ai-sdk.js +28 -22
- package/dist/ai/ai-sdk.js.map +1 -1
- package/dist/ai/index.cjs +37 -25
- package/dist/ai/index.d.cts +20 -153
- package/dist/ai/index.d.ts +20 -153
- package/dist/ai/index.js +17 -17
- package/dist/{api-C5UcmT7n.d.cts → api-XWHHAhQI.d.ts} +12 -2
- package/dist/{api-C5UcmT7n.d.ts → api-qVDutqXH.d.cts} +12 -2
- package/dist/browser.cjs +37 -19
- package/dist/browser.cjs.map +1 -1
- package/dist/browser.d.cts +12 -3
- package/dist/browser.d.ts +12 -3
- package/dist/browser.js +27 -19
- package/dist/browser.js.map +1 -1
- package/dist/{chunk-3YUUC6RN.cjs → chunk-25ZON47K.cjs} +4105 -267
- package/dist/chunk-25ZON47K.cjs.map +1 -0
- package/dist/{chunk-N7W5KZK7.cjs → chunk-2L4YXZAZ.cjs} +4 -4
- package/dist/{chunk-N7W5KZK7.cjs.map → chunk-2L4YXZAZ.cjs.map} +1 -1
- package/dist/{chunk-ZYRCPSBU.js → chunk-3IE7KZY4.js} +4 -4
- package/dist/{chunk-ZYRCPSBU.js.map → chunk-3IE7KZY4.js.map} +1 -1
- package/dist/{chunk-ZX74KJPM.js → chunk-3VB5AT4R.js} +3 -3
- package/dist/{chunk-ZX74KJPM.js.map → chunk-3VB5AT4R.js.map} +1 -1
- package/dist/{chunk-S2KJRHDZ.cjs → chunk-4UFR2LB6.cjs} +13 -13
- package/dist/{chunk-S2KJRHDZ.cjs.map → chunk-4UFR2LB6.cjs.map} +1 -1
- package/dist/{chunk-QTNPMIO2.cjs → chunk-6JI6FWLZ.cjs} +341 -35
- package/dist/chunk-6JI6FWLZ.cjs.map +1 -0
- package/dist/{chunk-GTDQAN2Z.js → chunk-7AFW2J6J.js} +4075 -247
- package/dist/chunk-7AFW2J6J.js.map +1 -0
- package/dist/{chunk-UFTYX73U.js → chunk-7F76AWOI.js} +339 -35
- package/dist/chunk-7F76AWOI.js.map +1 -0
- package/dist/{chunk-BW4KGTV7.cjs → chunk-C5C5EF3W.cjs} +4 -4
- package/dist/{chunk-BW4KGTV7.cjs.map → chunk-C5C5EF3W.cjs.map} +1 -1
- package/dist/{chunk-VJGMEGMR.js → chunk-DOK7LKLO.js} +125 -13
- package/dist/chunk-DOK7LKLO.js.map +1 -0
- package/dist/{chunk-3M6WB62Y.cjs → chunk-ECD5XHBM.cjs} +139 -7
- package/dist/chunk-ECD5XHBM.cjs.map +1 -0
- package/dist/{chunk-L3CTXXVZ.js → chunk-FBS3PACU.js} +3 -3
- package/dist/{chunk-L3CTXXVZ.js.map → chunk-FBS3PACU.js.map} +1 -1
- package/dist/{chunk-QUKVGHN4.cjs → chunk-FKJBXGWP.cjs} +4 -4
- package/dist/{chunk-QUKVGHN4.cjs.map → chunk-FKJBXGWP.cjs.map} +1 -1
- package/dist/{chunk-SZK376QB.js → chunk-H4MT5TJP.js} +3 -3
- package/dist/{chunk-SZK376QB.js.map → chunk-H4MT5TJP.js.map} +1 -1
- package/dist/{chunk-3M6T7KB4.js → chunk-HAZALB7U.js} +3 -3
- package/dist/{chunk-3M6T7KB4.js.map → chunk-HAZALB7U.js.map} +1 -1
- package/dist/{chunk-VFZOPRQP.cjs → chunk-HWVBHU3O.cjs} +5 -5
- package/dist/{chunk-VFZOPRQP.cjs.map → chunk-HWVBHU3O.cjs.map} +1 -1
- package/dist/{chunk-D7EHZFK4.cjs → chunk-L7POWM5B.cjs} +138 -2
- package/dist/chunk-L7POWM5B.cjs.map +1 -0
- package/dist/{chunk-6OSUNBZY.js → chunk-LGABFD3L.js} +135 -7
- package/dist/chunk-LGABFD3L.js.map +1 -0
- package/dist/{chunk-2VNMKOUO.js → chunk-LRI4RH2N.js} +135 -3
- package/dist/chunk-LRI4RH2N.js.map +1 -0
- package/dist/{chunk-VDSYMSUY.js → chunk-MVIEIKOI.js} +3 -3
- package/dist/{chunk-VDSYMSUY.js.map → chunk-MVIEIKOI.js.map} +1 -1
- package/dist/{chunk-ZL5RB4UV.js → chunk-N5B242WY.js} +3 -3
- package/dist/{chunk-ZL5RB4UV.js.map → chunk-N5B242WY.js.map} +1 -1
- package/dist/{chunk-IM4RCUHA.js → chunk-P63S7P6N.js} +1309 -69
- package/dist/chunk-P63S7P6N.js.map +1 -0
- package/dist/{chunk-YLEVMOK2.cjs → chunk-R66QG3XT.cjs} +5 -4
- package/dist/{chunk-YLEVMOK2.cjs.map → chunk-R66QG3XT.cjs.map} +1 -1
- package/dist/{chunk-I55HO32M.js → chunk-RJMCWT7Z.js} +3 -3
- package/dist/{chunk-I55HO32M.js.map → chunk-RJMCWT7Z.js.map} +1 -1
- package/dist/{chunk-TZTCIAYW.cjs → chunk-S3RMAXH5.cjs} +137 -25
- package/dist/chunk-S3RMAXH5.cjs.map +1 -0
- package/dist/{chunk-IBRW3UOA.js → chunk-TWLKXV2O.js} +3 -3
- package/dist/{chunk-IBRW3UOA.js.map → chunk-TWLKXV2O.js.map} +1 -1
- package/dist/{chunk-HUPDIRBX.js → chunk-UWA5MWCI.js} +949 -918
- package/dist/chunk-UWA5MWCI.js.map +1 -0
- package/dist/{chunk-RYVV5UVI.cjs → chunk-V4GILQR6.cjs} +4 -4
- package/dist/{chunk-RYVV5UVI.cjs.map → chunk-V4GILQR6.cjs.map} +1 -1
- package/dist/{chunk-XRCY75UV.cjs → chunk-V4RO5KYY.cjs} +951 -918
- package/dist/chunk-V4RO5KYY.cjs.map +1 -0
- package/dist/{chunk-VZ5LDNHK.cjs → chunk-VTSH4YPT.cjs} +12 -12
- package/dist/{chunk-VZ5LDNHK.cjs.map → chunk-VTSH4YPT.cjs.map} +1 -1
- package/dist/{chunk-UUBNQV2T.cjs → chunk-WQDIZH2Z.cjs} +12 -12
- package/dist/{chunk-UUBNQV2T.cjs.map → chunk-WQDIZH2Z.cjs.map} +1 -1
- package/dist/{chunk-EGSUMHCS.cjs → chunk-YB4XJY5L.cjs} +12 -12
- package/dist/{chunk-EGSUMHCS.cjs.map → chunk-YB4XJY5L.cjs.map} +1 -1
- package/dist/{chunk-JHDR56XO.js → chunk-YS6CGUNH.js} +3 -3
- package/dist/{chunk-JHDR56XO.js.map → chunk-YS6CGUNH.js.map} +1 -1
- package/dist/{chunk-NWPCY65Z.cjs → chunk-YVDUEUFV.cjs} +1311 -68
- package/dist/chunk-YVDUEUFV.cjs.map +1 -0
- package/dist/{types-BOAsqHoU.d.ts → diagnostics-DRxhodP6.d.cts} +74 -2
- package/dist/{types-BOAsqHoU.d.cts → diagnostics-DRxhodP6.d.ts} +74 -2
- package/dist/diagrams/blockdiagram/index.d.cts +1 -1
- package/dist/diagrams/blockdiagram/index.d.ts +1 -1
- package/dist/diagrams/circuit/index.cjs +8 -8
- package/dist/diagrams/circuit/index.d.cts +1 -1
- package/dist/diagrams/circuit/index.d.ts +1 -1
- package/dist/diagrams/circuit/index.js +2 -2
- package/dist/diagrams/ecomap/index.cjs +7 -7
- package/dist/diagrams/ecomap/index.d.cts +1 -1
- package/dist/diagrams/ecomap/index.d.ts +1 -1
- package/dist/diagrams/ecomap/index.js +2 -2
- package/dist/diagrams/entity/index.cjs +6 -6
- package/dist/diagrams/entity/index.d.cts +1 -1
- package/dist/diagrams/entity/index.d.ts +1 -1
- package/dist/diagrams/entity/index.js +2 -2
- package/dist/diagrams/fishbone/index.cjs +8 -8
- package/dist/diagrams/fishbone/index.d.cts +1 -1
- package/dist/diagrams/fishbone/index.d.ts +1 -1
- package/dist/diagrams/fishbone/index.js +2 -2
- package/dist/diagrams/flowchart/index.cjs +8 -8
- package/dist/diagrams/flowchart/index.d.cts +2 -2
- package/dist/diagrams/flowchart/index.d.ts +2 -2
- package/dist/diagrams/flowchart/index.js +2 -2
- package/dist/diagrams/genogram/index.cjs +9 -9
- package/dist/diagrams/genogram/index.d.cts +1 -1
- package/dist/diagrams/genogram/index.d.ts +1 -1
- package/dist/diagrams/genogram/index.js +2 -2
- package/dist/diagrams/ladder/index.cjs +6 -6
- package/dist/diagrams/ladder/index.d.cts +1 -1
- package/dist/diagrams/ladder/index.d.ts +1 -1
- package/dist/diagrams/ladder/index.js +2 -2
- package/dist/diagrams/logic/index.cjs +6 -6
- package/dist/diagrams/logic/index.d.cts +1 -1
- package/dist/diagrams/logic/index.d.ts +1 -1
- package/dist/diagrams/logic/index.js +2 -2
- package/dist/diagrams/orgchart/index.cjs +7 -7
- package/dist/diagrams/orgchart/index.d.cts +1 -1
- package/dist/diagrams/orgchart/index.d.ts +1 -1
- package/dist/diagrams/orgchart/index.js +2 -2
- package/dist/diagrams/pedigree/index.cjs +7 -7
- package/dist/diagrams/pedigree/index.d.cts +1 -1
- package/dist/diagrams/pedigree/index.d.ts +1 -1
- package/dist/diagrams/pedigree/index.js +2 -2
- package/dist/diagrams/phylo/index.cjs +7 -7
- package/dist/diagrams/phylo/index.d.cts +1 -1
- package/dist/diagrams/phylo/index.d.ts +1 -1
- package/dist/diagrams/phylo/index.js +2 -2
- package/dist/diagrams/sld/index.cjs +14 -6
- package/dist/diagrams/sld/index.d.cts +14 -2
- package/dist/diagrams/sld/index.d.ts +14 -2
- package/dist/diagrams/sld/index.js +2 -2
- package/dist/diagrams/sociogram/index.cjs +6 -6
- package/dist/diagrams/sociogram/index.d.cts +1 -1
- package/dist/diagrams/sociogram/index.d.ts +1 -1
- package/dist/diagrams/sociogram/index.js +2 -2
- package/dist/diagrams/timing/index.d.cts +1 -1
- package/dist/diagrams/timing/index.d.ts +1 -1
- package/dist/diagrams/venn/index.cjs +9 -9
- package/dist/diagrams/venn/index.d.cts +1 -1
- package/dist/diagrams/venn/index.d.ts +1 -1
- package/dist/diagrams/venn/index.js +2 -2
- package/dist/{index-CJai_TEZ.d.ts → index-BRIkOPnd.d.cts} +60 -2
- package/dist/{index-C9A0h-CB.d.cts → index-C7SN-FB3.d.ts} +60 -2
- package/dist/index.cjs +351 -51
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +38 -4
- package/dist/index.d.ts +38 -4
- package/dist/index.js +283 -16
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +21 -23
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +3 -2
- package/dist/react.d.ts +3 -2
- package/dist/react.js +21 -23
- package/dist/react.js.map +1 -1
- package/dist/tools-BVeUNdsU.d.ts +161 -0
- package/dist/tools-DdhP1kWY.d.cts +161 -0
- package/package.json +2 -2
- package/dist/chunk-2VNMKOUO.js.map +0 -1
- package/dist/chunk-3M6WB62Y.cjs.map +0 -1
- package/dist/chunk-3YUUC6RN.cjs.map +0 -1
- package/dist/chunk-6OSUNBZY.js.map +0 -1
- package/dist/chunk-D7EHZFK4.cjs.map +0 -1
- package/dist/chunk-GTDQAN2Z.js.map +0 -1
- package/dist/chunk-HUPDIRBX.js.map +0 -1
- package/dist/chunk-IM4RCUHA.js.map +0 -1
- package/dist/chunk-NWPCY65Z.cjs.map +0 -1
- package/dist/chunk-QTNPMIO2.cjs.map +0 -1
- package/dist/chunk-TZTCIAYW.cjs.map +0 -1
- package/dist/chunk-UFTYX73U.js.map +0 -1
- package/dist/chunk-VJGMEGMR.js.map +0 -1
- package/dist/chunk-XRCY75UV.cjs.map +0 -1
package/README.md
CHANGED
|
@@ -29,15 +29,16 @@
|
|
|
29
29
|
|
|
30
30
|
---
|
|
31
31
|
|
|
32
|
-
**Schematex** is the open-source rendering engine for the diagrams professionals actually use — medical, electrical, legal, and analytical.
|
|
32
|
+
**Schematex** is the open-source rendering engine for the diagrams professionals actually use — medical, electrical, legal, and analytical. 33 diagram families across ten domains:
|
|
33
33
|
|
|
34
34
|
- 👪 **Relationships** — genograms, ecomaps, pedigrees, sociograms, phylogenetic trees
|
|
35
35
|
- ⚡ **Electrical & Industrial** — ladder logic, single-line diagrams, circuit schematics, logic gates, timing, block diagrams, **FBD**, **SFC**, breadboard, **P&ID** (ISA-5.1)
|
|
36
36
|
- 🏢 **Corporate & Legal** — entity structures, cap tables
|
|
37
37
|
- 🐟 **Causality & Analysis** — fishbone / Ishikawa, decision trees (Howard-Raiffa EV · CART/sklearn · taxonomy)
|
|
38
|
-
- 🔄 **Behavior modeling** — UML 2.5 / Harel **state diagrams** (Mermaid-compatible superset), **BPMN 2.0** (OMG), **use case diagrams** (UML 2.5.1 §18)
|
|
38
|
+
- 🔄 **Behavior modeling** — UML 2.5 / Harel **state diagrams** (Mermaid-compatible superset), **BPMN 2.0** (OMG), **use case diagrams** (UML 2.5.1 §18), **sequence diagrams** (UML 2.5.1 §17 — all 12 combined fragments + `ref`)
|
|
39
39
|
- 🗄️ **Data modeling** — ERD crow's-foot notation
|
|
40
40
|
- 🗓️ **Project management** — **PERT / CPM** networks (PMBOK 7) that *compute* the schedule: ES/EF/LS/LF, slack, critical path, three-point estimation, swimlanes, time-scaled layout
|
|
41
|
+
- 🖧 **Network & Infrastructure** — **network topology** diagrams (Cisco-convention icons) with device/link/port integrity, IP-CCTV camera systems, three-tier campus, spine-leaf fabric, subnets & VLANs
|
|
41
42
|
- 📅 **Timelines** — proportional / equidistant / log axis · swimlane · gantt · lollipop · BC dates · geological Ma scale
|
|
42
43
|
|
|
43
44
|
Mermaid draws generic flowcharts. Schematex draws the diagrams doctors, engineers, and lawyers actually use — a genogram a genetic counselor accepts clinically, ladder logic that maps 1:1 to IEC 61131-3, a cap table that survives a Series A review.
|
|
@@ -73,7 +74,7 @@ import { render } from 'schematex/genogram';
|
|
|
73
74
|
|
|
74
75
|
## Gallery
|
|
75
76
|
|
|
76
|
-
|
|
77
|
+
31 diagram types, one unified pipeline. **Try any of these live at [schematex.dev/playground](https://schematex.dev/playground).**
|
|
77
78
|
|
|
78
79
|
### 👪 Genogram — *McGoldrick family-systems standard*
|
|
79
80
|
|
|
@@ -502,6 +503,79 @@ task G "Launch event" duration: 2 after: E, F
|
|
|
502
503
|
|
|
503
504
|
[PERT / CPM syntax →](https://schematex.dev/docs/pert)
|
|
504
505
|
|
|
506
|
+
---
|
|
507
|
+
|
|
508
|
+
### ◉ Petri net — *Murata 1989 / ISO-IEC 15909 place-transition net*
|
|
509
|
+
|
|
510
|
+
The only text-DSL Petri net tool that **understands the dynamics**, not just the shapes. You declare places (circles holding tokens), transitions (bars), and weighted arcs; the engine validates the bipartite structure, computes which transitions are *enabled* under the marking (highlighted green), and can `fire:` a sequence forward to render any reachable marking. Immediate vs. timed transitions, arc weights, capacity, and inhibitor / read / reset arcs — the recognised concurrency vocabulary.
|
|
511
|
+
|
|
512
|
+
```
|
|
513
|
+
petri "Mutual Exclusion — two processes, one resource"
|
|
514
|
+
place idleA *1 "A idle"
|
|
515
|
+
place idleB *1 "B idle"
|
|
516
|
+
place mutex *1 "resource"
|
|
517
|
+
place critA "A critical"
|
|
518
|
+
place critB "B critical"
|
|
519
|
+
transition enterA
|
|
520
|
+
transition exitA
|
|
521
|
+
transition enterB
|
|
522
|
+
transition exitB
|
|
523
|
+
idleA -> enterA
|
|
524
|
+
mutex -> enterA
|
|
525
|
+
enterA -> critA
|
|
526
|
+
critA -> exitA
|
|
527
|
+
exitA -> idleA
|
|
528
|
+
exitA -> mutex
|
|
529
|
+
idleB -> enterB
|
|
530
|
+
mutex -> enterB
|
|
531
|
+
enterB -> critB
|
|
532
|
+
critB -> exitB
|
|
533
|
+
exitB -> idleB
|
|
534
|
+
exitB -> mutex
|
|
535
|
+
```
|
|
536
|
+
|
|
537
|
+

|
|
538
|
+
|
|
539
|
+
[Petri net syntax →](https://schematex.dev/docs/petri)
|
|
540
|
+
|
|
541
|
+
---
|
|
542
|
+
|
|
543
|
+
### 🖧 Network topology — *Cisco-convention icons · device / link / port integrity*
|
|
544
|
+
|
|
545
|
+
The free, text-first, zero-dependency network-diagram engine. Declare typed devices (router, switch, firewall, AP, server, **IP camera / NVR / PoE switch**, …) and typed annotated links (copper / fiber / wireless / serial / **PoE** / VPN / LAG, carrying VLAN / speed / port / mode), group them into sites, racks, subnets and VLANs, and let the engine lay out the topology class correctly — `tiered` (three-tier campus), `star`, `ring`, `bus`, `mesh`, `spine-leaf` (auto-meshed Clos), or `tree`. Unlike an LLM emitting raw Mermaid, it **never drops a device, a port, or a link**, and it validates IP-in-subnet and VLAN ranges.
|
|
546
|
+
|
|
547
|
+
```
|
|
548
|
+
network "Acme HQ — CCTV"
|
|
549
|
+
layout: tiered
|
|
550
|
+
internet net "Internet"
|
|
551
|
+
firewall fw1 "Perimeter FW" tier: edge
|
|
552
|
+
l3switch core1 "Core SW" tier: core
|
|
553
|
+
poeswitch poe1 "PoE Switch A" tier: access
|
|
554
|
+
poeswitch poe2 "PoE Switch B" tier: access
|
|
555
|
+
nvr nvr1 "Video Recorder"
|
|
556
|
+
monitor wall1 "Guard Station"
|
|
557
|
+
subnet cams "192.168.20.0/24" {
|
|
558
|
+
camera cam1 "Lobby Dome" type: dome ip: 192.168.20.11
|
|
559
|
+
camera cam2 "Gate PTZ" type: ptz ip: 192.168.20.12
|
|
560
|
+
camera cam3 "Dock Bullet" type: bullet ip: 192.168.20.13
|
|
561
|
+
poe1
|
|
562
|
+
poe2
|
|
563
|
+
}
|
|
564
|
+
net -- fw1 : wan "ISP 1Gbps"
|
|
565
|
+
fw1 -- core1 : fiber 10G
|
|
566
|
+
core1 -- poe1 : trunk vlan: 20 1G
|
|
567
|
+
core1 -- poe2 : trunk vlan: 20 1G
|
|
568
|
+
core1 -- nvr1 : 1G
|
|
569
|
+
core1 -- wall1
|
|
570
|
+
poe1 -- cam1 : poe
|
|
571
|
+
poe1 -- cam2 : poe
|
|
572
|
+
poe2 -- cam3 : poe
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+

|
|
576
|
+
|
|
577
|
+
[Network topology syntax →](https://schematex.dev/docs/network)
|
|
578
|
+
|
|
505
579
|
## Why SchemaTex?
|
|
506
580
|
|
|
507
581
|
**Generic flowchart tools can't draw professional diagrams.** Every diagram domain has published standards — symbol conventions, layout rules, labelling grammars — and when you ignore them, domain experts reject the output:
|
|
@@ -538,16 +612,24 @@ Written by humans, shaped by what LLMs get wrong.
|
|
|
538
612
|
|
|
539
613
|
```ts
|
|
540
614
|
// Universal entry — auto-detects diagram type from first keyword
|
|
541
|
-
import { render, parse } from 'schematex';
|
|
615
|
+
import { render, renderPreview, renderResult, parse, parseResult } from 'schematex';
|
|
542
616
|
|
|
543
|
-
const svg = render(text, config?);
|
|
544
|
-
const ast = parse(text, config?);
|
|
617
|
+
const svg = render(text, config?); // strict → SVG string or throw
|
|
618
|
+
const ast = parse(text, config?); // strict → AST or throw
|
|
619
|
+
const previewSvg = renderPreview(text, config?); // always → SVG, including a visible diagnostic fallback
|
|
620
|
+
const renderState = renderResult(text, config?); // → SVG + diagnostics + valid/partial/invalid status
|
|
621
|
+
const parseState = parseResult(text, config?); // → AST or diagnostics without throwing
|
|
545
622
|
|
|
546
623
|
// Per-diagram tree-shaking
|
|
547
624
|
import { render } from 'schematex/genogram';
|
|
548
625
|
|
|
549
626
|
// Browser DOM
|
|
550
|
-
import {
|
|
627
|
+
import {
|
|
628
|
+
renderToElement,
|
|
629
|
+
renderToContainer,
|
|
630
|
+
renderPreviewToElement,
|
|
631
|
+
renderPreviewToContainer,
|
|
632
|
+
} from 'schematex/browser';
|
|
551
633
|
container.appendChild(renderToElement(dsl));
|
|
552
634
|
|
|
553
635
|
// React
|
package/dist/ai/ai-sdk.cjs
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('../chunk-
|
|
5
|
-
require('../chunk-
|
|
6
|
-
require('../chunk-
|
|
3
|
+
var chunkYVDUEUFV_cjs = require('../chunk-YVDUEUFV.cjs');
|
|
4
|
+
require('../chunk-25ZON47K.cjs');
|
|
5
|
+
require('../chunk-FKJBXGWP.cjs');
|
|
6
|
+
require('../chunk-V4RO5KYY.cjs');
|
|
7
7
|
require('../chunk-SUIDD2C5.cjs');
|
|
8
|
-
require('../chunk-
|
|
9
|
-
require('../chunk-
|
|
8
|
+
require('../chunk-2L4YXZAZ.cjs');
|
|
9
|
+
require('../chunk-ECD5XHBM.cjs');
|
|
10
10
|
require('../chunk-SBB6C4OP.cjs');
|
|
11
|
-
require('../chunk-
|
|
12
|
-
require('../chunk-
|
|
13
|
-
require('../chunk-
|
|
14
|
-
require('../chunk-
|
|
15
|
-
require('../chunk-
|
|
16
|
-
require('../chunk-
|
|
17
|
-
require('../chunk-
|
|
11
|
+
require('../chunk-V4GILQR6.cjs');
|
|
12
|
+
require('../chunk-HWVBHU3O.cjs');
|
|
13
|
+
require('../chunk-C5C5EF3W.cjs');
|
|
14
|
+
require('../chunk-6JI6FWLZ.cjs');
|
|
15
|
+
require('../chunk-S3RMAXH5.cjs');
|
|
16
|
+
require('../chunk-VTSH4YPT.cjs');
|
|
17
|
+
require('../chunk-YB4XJY5L.cjs');
|
|
18
18
|
require('../chunk-3KRL2EGN.cjs');
|
|
19
|
-
require('../chunk-
|
|
20
|
-
require('../chunk-
|
|
19
|
+
require('../chunk-4UFR2LB6.cjs');
|
|
20
|
+
require('../chunk-WQDIZH2Z.cjs');
|
|
21
21
|
require('../chunk-5UCXMYE7.cjs');
|
|
22
22
|
require('../chunk-ST5YRTTV.cjs');
|
|
23
|
-
require('../chunk-
|
|
24
|
-
require('../chunk-
|
|
23
|
+
require('../chunk-R66QG3XT.cjs');
|
|
24
|
+
require('../chunk-L7POWM5B.cjs');
|
|
25
25
|
require('../chunk-NAGUZFXX.cjs');
|
|
26
26
|
require('../chunk-3WNW5Y7P.cjs');
|
|
27
27
|
var ai = require('ai');
|
|
@@ -31,16 +31,22 @@ var schematexTools = {
|
|
|
31
31
|
listDiagrams: ai.tool({
|
|
32
32
|
description: "List every Schematex diagram type with a tagline, 'use when' hint, domain cluster, and authoritative standard. Call this first to discover what's available.",
|
|
33
33
|
inputSchema: zod.z.object({}),
|
|
34
|
-
execute: async () =>
|
|
34
|
+
execute: async () => chunkYVDUEUFV_cjs.listDiagrams()
|
|
35
35
|
}),
|
|
36
36
|
getSyntax: ai.tool({
|
|
37
|
-
description: "Return
|
|
37
|
+
description: "Return syntax for one diagram type. Default `detail: canonical` is the compact first-shot generation path: canonical header, preferred forms, rules, and repair checks. Request `detail: reference` only for advanced forms or imported adapters after choosing a type.",
|
|
38
38
|
inputSchema: zod.z.object({
|
|
39
39
|
type: zod.z.string().describe(
|
|
40
40
|
"Diagram type id from listDiagrams (e.g. 'genogram', 'sld', 'fishbone')."
|
|
41
|
+
),
|
|
42
|
+
detail: zod.z.enum(["canonical", "reference"]).optional().describe(
|
|
43
|
+
"Default `canonical` is best for generation. Use `reference` for the fuller grammar/tutorial."
|
|
41
44
|
)
|
|
42
45
|
}),
|
|
43
|
-
execute: async ({
|
|
46
|
+
execute: async ({
|
|
47
|
+
type,
|
|
48
|
+
detail
|
|
49
|
+
}) => chunkYVDUEUFV_cjs.getSyntax(type, { detail })
|
|
44
50
|
}),
|
|
45
51
|
getExamples: ai.tool({
|
|
46
52
|
description: "Return curated real-world DSL examples for a diagram type, each with scenario notes and tags. Use as few-shot context before generating DSL.",
|
|
@@ -50,26 +56,26 @@ var schematexTools = {
|
|
|
50
56
|
preferFeatured: zod.z.boolean().optional().describe("Rank featured examples first."),
|
|
51
57
|
maxComplexity: zod.z.number().int().min(1).max(5).optional().describe("Only return examples with complexity <= this value (1=simplest).")
|
|
52
58
|
}),
|
|
53
|
-
execute: async (args) =>
|
|
59
|
+
execute: async (args) => chunkYVDUEUFV_cjs.getExamples(args.type, {
|
|
54
60
|
limit: args.limit,
|
|
55
61
|
preferFeatured: args.preferFeatured,
|
|
56
62
|
maxComplexity: args.maxComplexity
|
|
57
63
|
})
|
|
58
64
|
}),
|
|
59
65
|
validateDsl: ai.tool({
|
|
60
|
-
description: "Validate Schematex DSL. Returns { ok: true } or { ok: false, errors: [{line, column, message, source}] }. Call before returning DSL
|
|
66
|
+
description: "Validate Schematex DSL. Pass the selected diagram `type` whenever you know it. Returns { ok: true } or { ok: false, errors: [{line, column, message, source, hint}] }. Call before returning DSL and self-correct on errors.",
|
|
61
67
|
inputSchema: zod.z.object({
|
|
62
68
|
type: zod.z.string().optional().describe(
|
|
63
|
-
"
|
|
69
|
+
"Selected diagram type. Optional for adapters/autodetect, but explicit canonical types are more robust."
|
|
64
70
|
),
|
|
65
71
|
dsl: zod.z.string().describe("The DSL source text to validate.")
|
|
66
72
|
}),
|
|
67
|
-
execute: async ({ type, dsl }) =>
|
|
73
|
+
execute: async ({ type, dsl }) => chunkYVDUEUFV_cjs.validateDsl(type, dsl)
|
|
68
74
|
}),
|
|
69
75
|
renderDsl: ai.tool({
|
|
70
76
|
description: "Render Schematex DSL to an SVG string. Returns { ok: true, svg } or { ok: false, errors }. Use when the caller needs the actual diagram output, not just validation.",
|
|
71
77
|
inputSchema: zod.z.object({
|
|
72
|
-
type: zod.z.string().optional().describe("
|
|
78
|
+
type: zod.z.string().optional().describe("Selected diagram type. Prefer passing it once chosen."),
|
|
73
79
|
dsl: zod.z.string().describe("The DSL source text to render."),
|
|
74
80
|
theme: zod.z.string().optional().describe("Theme name, e.g. 'default' or 'dark'."),
|
|
75
81
|
padding: zod.z.number().optional().describe("Outer padding in pixels.")
|
|
@@ -79,7 +85,7 @@ var schematexTools = {
|
|
|
79
85
|
dsl,
|
|
80
86
|
theme,
|
|
81
87
|
padding
|
|
82
|
-
}) =>
|
|
88
|
+
}) => chunkYVDUEUFV_cjs.renderDsl(type, dsl, { theme, padding })
|
|
83
89
|
})
|
|
84
90
|
};
|
|
85
91
|
|
package/dist/ai/ai-sdk.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ai/ai-sdk.ts"],"names":["tool","z","listDiagrams","getSyntax","getExamples","validateDsl","renderDsl"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCO,IAAM,cAAA,GAAiB;AAAA,EAC5B,cAAcA,OAAA,CAAK;AAAA,IACjB,WAAA,EACE,8JAAA;AAAA,IACF,WAAA,EAAaC,KAAA,CAAE,MAAA,CAAO,EAAE,CAAA;AAAA,IACxB,OAAA,EAAS,YAAYC,8BAAA;AAAiB,GACvC,CAAA;AAAA,EAED,WAAWF,OAAA,CAAK;AAAA,IACd,WAAA,EACE,
|
|
1
|
+
{"version":3,"sources":["../../src/ai/ai-sdk.ts"],"names":["tool","z","listDiagrams","getSyntax","getExamples","validateDsl","renderDsl"],"mappings":"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","file":"ai-sdk.cjs","sourcesContent":["/**\n * Vercel AI SDK adapter — ready-to-use `tools` object for `generateText` /\n * `streamText`.\n *\n * @example\n * ```ts\n * import { streamText } from 'ai';\n * import { schematexTools } from 'schematex/ai/sdk';\n *\n * const result = streamText({\n * model: 'anthropic/claude-opus-4-7',\n * tools: schematexTools,\n * maxSteps: 5,\n * system: `You write Schematex DSL. Discover types with listDiagrams,\n * then fetch getSyntax + getExamples before writing. Call validateDsl\n * before returning DSL to the user.`,\n * prompt: userMessage,\n * });\n * ```\n *\n * Peer-deps `ai` and `zod` are optional — this module only loads if both\n * are installed.\n */\nimport { tool } from \"ai\";\nimport { z } from \"zod\";\n\nimport {\n listDiagrams as listDiagramsImpl,\n getSyntax as getSyntaxImpl,\n getExamples as getExamplesImpl,\n validateDsl as validateDslImpl,\n renderDsl as renderDslImpl,\n} from \"./tools\";\n\nexport const schematexTools = {\n listDiagrams: tool({\n description:\n \"List every Schematex diagram type with a tagline, 'use when' hint, domain cluster, and authoritative standard. Call this first to discover what's available.\",\n inputSchema: z.object({}),\n execute: async () => listDiagramsImpl(),\n }),\n\n getSyntax: tool({\n description:\n \"Return syntax for one diagram type. Default `detail: canonical` is the compact first-shot generation path: canonical header, preferred forms, rules, and repair checks. Request `detail: reference` only for advanced forms or imported adapters after choosing a type.\",\n inputSchema: z.object({\n type: z\n .string()\n .describe(\n \"Diagram type id from listDiagrams (e.g. 'genogram', 'sld', 'fishbone').\"\n ),\n detail: z\n .enum([\"canonical\", \"reference\"])\n .optional()\n .describe(\n \"Default `canonical` is best for generation. Use `reference` for the fuller grammar/tutorial.\"\n ),\n }),\n execute: async ({\n type,\n detail,\n }: {\n type: string;\n detail?: \"canonical\" | \"reference\";\n }) => getSyntaxImpl(type, { detail }),\n }),\n\n getExamples: tool({\n description:\n \"Return curated real-world DSL examples for a diagram type, each with scenario notes and tags. Use as few-shot context before generating DSL.\",\n inputSchema: z.object({\n type: z.string().describe(\"Diagram type id.\"),\n limit: z\n .number()\n .int()\n .min(1)\n .max(10)\n .optional()\n .describe(\"Max examples to return (default 5).\"),\n preferFeatured: z\n .boolean()\n .optional()\n .describe(\"Rank featured examples first.\"),\n maxComplexity: z\n .number()\n .int()\n .min(1)\n .max(5)\n .optional()\n .describe(\"Only return examples with complexity <= this value (1=simplest).\"),\n }),\n execute: async (args: {\n type: string;\n limit?: number;\n preferFeatured?: boolean;\n maxComplexity?: number;\n }) =>\n getExamplesImpl(args.type, {\n limit: args.limit,\n preferFeatured: args.preferFeatured,\n maxComplexity: args.maxComplexity,\n }),\n }),\n\n validateDsl: tool({\n description:\n \"Validate Schematex DSL. Pass the selected diagram `type` whenever you know it. Returns { ok: true } or { ok: false, errors: [{line, column, message, source, hint}] }. Call before returning DSL and self-correct on errors.\",\n inputSchema: z.object({\n type: z\n .string()\n .optional()\n .describe(\n \"Selected diagram type. Optional for adapters/autodetect, but explicit canonical types are more robust.\"\n ),\n dsl: z.string().describe(\"The DSL source text to validate.\"),\n }),\n execute: async ({ type, dsl }: { type?: string; dsl: string }) =>\n validateDslImpl(type, dsl),\n }),\n\n renderDsl: tool({\n description:\n \"Render Schematex DSL to an SVG string. Returns { ok: true, svg } or { ok: false, errors }. Use when the caller needs the actual diagram output, not just validation.\",\n inputSchema: z.object({\n type: z\n .string()\n .optional()\n .describe(\"Selected diagram type. Prefer passing it once chosen.\"),\n dsl: z.string().describe(\"The DSL source text to render.\"),\n theme: z.string().optional().describe(\"Theme name, e.g. 'default' or 'dark'.\"),\n padding: z.number().optional().describe(\"Outer padding in pixels.\"),\n }),\n execute: async ({\n type,\n dsl,\n theme,\n padding,\n }: {\n type?: string;\n dsl: string;\n theme?: string;\n padding?: number;\n }) => renderDslImpl(type, dsl, { theme, padding }),\n }),\n} as const;\n\nexport type SchematexTools = typeof schematexTools;\n"]}
|
package/dist/ai/ai-sdk.d.cts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import * as ai from 'ai';
|
|
2
|
-
import { DiagramListItem, GetSyntaxResult, GetExamplesResult, ValidateDslResult, RenderDslResult } from '
|
|
3
|
-
import '../api-
|
|
4
|
-
import '../
|
|
2
|
+
import { c as DiagramListItem, g as GetSyntaxResult, e as GetExamplesResult, V as ValidateDslResult, R as RenderDslResult } from '../tools-DdhP1kWY.cjs';
|
|
3
|
+
import '../api-qVDutqXH.cjs';
|
|
4
|
+
import '../diagnostics-DRxhodP6.cjs';
|
|
5
5
|
|
|
6
6
|
declare const schematexTools: {
|
|
7
7
|
readonly listDiagrams: ai.Tool<{}, DiagramListItem[]>;
|
|
8
8
|
readonly getSyntax: ai.Tool<{
|
|
9
9
|
type: string;
|
|
10
|
+
detail?: "canonical" | "reference" | undefined;
|
|
10
11
|
}, GetSyntaxResult>;
|
|
11
12
|
readonly getExamples: ai.Tool<{
|
|
12
13
|
type: string;
|
package/dist/ai/ai-sdk.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import * as ai from 'ai';
|
|
2
|
-
import { DiagramListItem, GetSyntaxResult, GetExamplesResult, ValidateDslResult, RenderDslResult } from '
|
|
3
|
-
import '../api-
|
|
4
|
-
import '../
|
|
2
|
+
import { c as DiagramListItem, g as GetSyntaxResult, e as GetExamplesResult, V as ValidateDslResult, R as RenderDslResult } from '../tools-BVeUNdsU.js';
|
|
3
|
+
import '../api-XWHHAhQI.js';
|
|
4
|
+
import '../diagnostics-DRxhodP6.js';
|
|
5
5
|
|
|
6
6
|
declare const schematexTools: {
|
|
7
7
|
readonly listDiagrams: ai.Tool<{}, DiagramListItem[]>;
|
|
8
8
|
readonly getSyntax: ai.Tool<{
|
|
9
9
|
type: string;
|
|
10
|
+
detail?: "canonical" | "reference" | undefined;
|
|
10
11
|
}, GetSyntaxResult>;
|
|
11
12
|
readonly getExamples: ai.Tool<{
|
|
12
13
|
type: string;
|
package/dist/ai/ai-sdk.js
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { renderDsl, validateDsl, getExamples, getSyntax, listDiagrams } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
1
|
+
import { renderDsl, validateDsl, getExamples, getSyntax, listDiagrams } from '../chunk-P63S7P6N.js';
|
|
2
|
+
import '../chunk-7AFW2J6J.js';
|
|
3
|
+
import '../chunk-RJMCWT7Z.js';
|
|
4
|
+
import '../chunk-UWA5MWCI.js';
|
|
5
5
|
import '../chunk-EPKIJEH7.js';
|
|
6
|
-
import '../chunk-
|
|
7
|
-
import '../chunk-
|
|
6
|
+
import '../chunk-TWLKXV2O.js';
|
|
7
|
+
import '../chunk-LGABFD3L.js';
|
|
8
8
|
import '../chunk-PIV2A3HG.js';
|
|
9
|
-
import '../chunk-
|
|
10
|
-
import '../chunk-
|
|
11
|
-
import '../chunk-
|
|
12
|
-
import '../chunk-
|
|
13
|
-
import '../chunk-
|
|
14
|
-
import '../chunk-
|
|
15
|
-
import '../chunk-
|
|
9
|
+
import '../chunk-H4MT5TJP.js';
|
|
10
|
+
import '../chunk-HAZALB7U.js';
|
|
11
|
+
import '../chunk-FBS3PACU.js';
|
|
12
|
+
import '../chunk-7F76AWOI.js';
|
|
13
|
+
import '../chunk-DOK7LKLO.js';
|
|
14
|
+
import '../chunk-YS6CGUNH.js';
|
|
15
|
+
import '../chunk-N5B242WY.js';
|
|
16
16
|
import '../chunk-2KTQ75LN.js';
|
|
17
|
-
import '../chunk-
|
|
18
|
-
import '../chunk-
|
|
17
|
+
import '../chunk-MVIEIKOI.js';
|
|
18
|
+
import '../chunk-3VB5AT4R.js';
|
|
19
19
|
import '../chunk-FO7BLCEW.js';
|
|
20
20
|
import '../chunk-6URNSB6G.js';
|
|
21
|
-
import '../chunk-
|
|
22
|
-
import '../chunk-
|
|
21
|
+
import '../chunk-3IE7KZY4.js';
|
|
22
|
+
import '../chunk-LRI4RH2N.js';
|
|
23
23
|
import '../chunk-5IKOLUWK.js';
|
|
24
24
|
import '../chunk-SYYBKDL7.js';
|
|
25
25
|
import { tool } from 'ai';
|
|
@@ -32,13 +32,19 @@ var schematexTools = {
|
|
|
32
32
|
execute: async () => listDiagrams()
|
|
33
33
|
}),
|
|
34
34
|
getSyntax: tool({
|
|
35
|
-
description: "Return
|
|
35
|
+
description: "Return syntax for one diagram type. Default `detail: canonical` is the compact first-shot generation path: canonical header, preferred forms, rules, and repair checks. Request `detail: reference` only for advanced forms or imported adapters after choosing a type.",
|
|
36
36
|
inputSchema: z.object({
|
|
37
37
|
type: z.string().describe(
|
|
38
38
|
"Diagram type id from listDiagrams (e.g. 'genogram', 'sld', 'fishbone')."
|
|
39
|
+
),
|
|
40
|
+
detail: z.enum(["canonical", "reference"]).optional().describe(
|
|
41
|
+
"Default `canonical` is best for generation. Use `reference` for the fuller grammar/tutorial."
|
|
39
42
|
)
|
|
40
43
|
}),
|
|
41
|
-
execute: async ({
|
|
44
|
+
execute: async ({
|
|
45
|
+
type,
|
|
46
|
+
detail
|
|
47
|
+
}) => getSyntax(type, { detail })
|
|
42
48
|
}),
|
|
43
49
|
getExamples: tool({
|
|
44
50
|
description: "Return curated real-world DSL examples for a diagram type, each with scenario notes and tags. Use as few-shot context before generating DSL.",
|
|
@@ -55,10 +61,10 @@ var schematexTools = {
|
|
|
55
61
|
})
|
|
56
62
|
}),
|
|
57
63
|
validateDsl: tool({
|
|
58
|
-
description: "Validate Schematex DSL. Returns { ok: true } or { ok: false, errors: [{line, column, message, source}] }. Call before returning DSL
|
|
64
|
+
description: "Validate Schematex DSL. Pass the selected diagram `type` whenever you know it. Returns { ok: true } or { ok: false, errors: [{line, column, message, source, hint}] }. Call before returning DSL and self-correct on errors.",
|
|
59
65
|
inputSchema: z.object({
|
|
60
66
|
type: z.string().optional().describe(
|
|
61
|
-
"
|
|
67
|
+
"Selected diagram type. Optional for adapters/autodetect, but explicit canonical types are more robust."
|
|
62
68
|
),
|
|
63
69
|
dsl: z.string().describe("The DSL source text to validate.")
|
|
64
70
|
}),
|
|
@@ -67,7 +73,7 @@ var schematexTools = {
|
|
|
67
73
|
renderDsl: tool({
|
|
68
74
|
description: "Render Schematex DSL to an SVG string. Returns { ok: true, svg } or { ok: false, errors }. Use when the caller needs the actual diagram output, not just validation.",
|
|
69
75
|
inputSchema: z.object({
|
|
70
|
-
type: z.string().optional().describe("
|
|
76
|
+
type: z.string().optional().describe("Selected diagram type. Prefer passing it once chosen."),
|
|
71
77
|
dsl: z.string().describe("The DSL source text to render."),
|
|
72
78
|
theme: z.string().optional().describe("Theme name, e.g. 'default' or 'dark'."),
|
|
73
79
|
padding: z.number().optional().describe("Outer padding in pixels.")
|
package/dist/ai/ai-sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ai/ai-sdk.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCO,IAAM,cAAA,GAAiB;AAAA,EAC5B,cAAc,IAAA,CAAK;AAAA,IACjB,WAAA,EACE,8JAAA;AAAA,IACF,WAAA,EAAa,CAAA,CAAE,MAAA,CAAO,EAAE,CAAA;AAAA,IACxB,OAAA,EAAS,YAAY,YAAA;AAAiB,GACvC,CAAA;AAAA,EAED,WAAW,IAAA,CAAK;AAAA,IACd,WAAA,EACE,
|
|
1
|
+
{"version":3,"sources":["../../src/ai/ai-sdk.ts"],"names":[],"mappings":"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","file":"ai-sdk.js","sourcesContent":["/**\n * Vercel AI SDK adapter — ready-to-use `tools` object for `generateText` /\n * `streamText`.\n *\n * @example\n * ```ts\n * import { streamText } from 'ai';\n * import { schematexTools } from 'schematex/ai/sdk';\n *\n * const result = streamText({\n * model: 'anthropic/claude-opus-4-7',\n * tools: schematexTools,\n * maxSteps: 5,\n * system: `You write Schematex DSL. Discover types with listDiagrams,\n * then fetch getSyntax + getExamples before writing. Call validateDsl\n * before returning DSL to the user.`,\n * prompt: userMessage,\n * });\n * ```\n *\n * Peer-deps `ai` and `zod` are optional — this module only loads if both\n * are installed.\n */\nimport { tool } from \"ai\";\nimport { z } from \"zod\";\n\nimport {\n listDiagrams as listDiagramsImpl,\n getSyntax as getSyntaxImpl,\n getExamples as getExamplesImpl,\n validateDsl as validateDslImpl,\n renderDsl as renderDslImpl,\n} from \"./tools\";\n\nexport const schematexTools = {\n listDiagrams: tool({\n description:\n \"List every Schematex diagram type with a tagline, 'use when' hint, domain cluster, and authoritative standard. Call this first to discover what's available.\",\n inputSchema: z.object({}),\n execute: async () => listDiagramsImpl(),\n }),\n\n getSyntax: tool({\n description:\n \"Return syntax for one diagram type. Default `detail: canonical` is the compact first-shot generation path: canonical header, preferred forms, rules, and repair checks. Request `detail: reference` only for advanced forms or imported adapters after choosing a type.\",\n inputSchema: z.object({\n type: z\n .string()\n .describe(\n \"Diagram type id from listDiagrams (e.g. 'genogram', 'sld', 'fishbone').\"\n ),\n detail: z\n .enum([\"canonical\", \"reference\"])\n .optional()\n .describe(\n \"Default `canonical` is best for generation. Use `reference` for the fuller grammar/tutorial.\"\n ),\n }),\n execute: async ({\n type,\n detail,\n }: {\n type: string;\n detail?: \"canonical\" | \"reference\";\n }) => getSyntaxImpl(type, { detail }),\n }),\n\n getExamples: tool({\n description:\n \"Return curated real-world DSL examples for a diagram type, each with scenario notes and tags. Use as few-shot context before generating DSL.\",\n inputSchema: z.object({\n type: z.string().describe(\"Diagram type id.\"),\n limit: z\n .number()\n .int()\n .min(1)\n .max(10)\n .optional()\n .describe(\"Max examples to return (default 5).\"),\n preferFeatured: z\n .boolean()\n .optional()\n .describe(\"Rank featured examples first.\"),\n maxComplexity: z\n .number()\n .int()\n .min(1)\n .max(5)\n .optional()\n .describe(\"Only return examples with complexity <= this value (1=simplest).\"),\n }),\n execute: async (args: {\n type: string;\n limit?: number;\n preferFeatured?: boolean;\n maxComplexity?: number;\n }) =>\n getExamplesImpl(args.type, {\n limit: args.limit,\n preferFeatured: args.preferFeatured,\n maxComplexity: args.maxComplexity,\n }),\n }),\n\n validateDsl: tool({\n description:\n \"Validate Schematex DSL. Pass the selected diagram `type` whenever you know it. Returns { ok: true } or { ok: false, errors: [{line, column, message, source, hint}] }. Call before returning DSL and self-correct on errors.\",\n inputSchema: z.object({\n type: z\n .string()\n .optional()\n .describe(\n \"Selected diagram type. Optional for adapters/autodetect, but explicit canonical types are more robust.\"\n ),\n dsl: z.string().describe(\"The DSL source text to validate.\"),\n }),\n execute: async ({ type, dsl }: { type?: string; dsl: string }) =>\n validateDslImpl(type, dsl),\n }),\n\n renderDsl: tool({\n description:\n \"Render Schematex DSL to an SVG string. Returns { ok: true, svg } or { ok: false, errors }. Use when the caller needs the actual diagram output, not just validation.\",\n inputSchema: z.object({\n type: z\n .string()\n .optional()\n .describe(\"Selected diagram type. Prefer passing it once chosen.\"),\n dsl: z.string().describe(\"The DSL source text to render.\"),\n theme: z.string().optional().describe(\"Theme name, e.g. 'default' or 'dark'.\"),\n padding: z.number().optional().describe(\"Outer padding in pixels.\"),\n }),\n execute: async ({\n type,\n dsl,\n theme,\n padding,\n }: {\n type?: string;\n dsl: string;\n theme?: string;\n padding?: number;\n }) => renderDslImpl(type, dsl, { theme, padding }),\n }),\n} as const;\n\nexport type SchematexTools = typeof schematexTools;\n"]}
|
package/dist/ai/index.cjs
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('../chunk-
|
|
5
|
-
require('../chunk-
|
|
6
|
-
require('../chunk-
|
|
3
|
+
var chunkYVDUEUFV_cjs = require('../chunk-YVDUEUFV.cjs');
|
|
4
|
+
require('../chunk-25ZON47K.cjs');
|
|
5
|
+
require('../chunk-FKJBXGWP.cjs');
|
|
6
|
+
require('../chunk-V4RO5KYY.cjs');
|
|
7
7
|
require('../chunk-SUIDD2C5.cjs');
|
|
8
|
-
require('../chunk-
|
|
9
|
-
require('../chunk-
|
|
8
|
+
require('../chunk-2L4YXZAZ.cjs');
|
|
9
|
+
require('../chunk-ECD5XHBM.cjs');
|
|
10
10
|
require('../chunk-SBB6C4OP.cjs');
|
|
11
|
-
require('../chunk-
|
|
12
|
-
require('../chunk-
|
|
13
|
-
require('../chunk-
|
|
14
|
-
require('../chunk-
|
|
15
|
-
require('../chunk-
|
|
16
|
-
require('../chunk-
|
|
17
|
-
require('../chunk-
|
|
11
|
+
require('../chunk-V4GILQR6.cjs');
|
|
12
|
+
require('../chunk-HWVBHU3O.cjs');
|
|
13
|
+
require('../chunk-C5C5EF3W.cjs');
|
|
14
|
+
require('../chunk-6JI6FWLZ.cjs');
|
|
15
|
+
require('../chunk-S3RMAXH5.cjs');
|
|
16
|
+
require('../chunk-VTSH4YPT.cjs');
|
|
17
|
+
require('../chunk-YB4XJY5L.cjs');
|
|
18
18
|
require('../chunk-3KRL2EGN.cjs');
|
|
19
|
-
require('../chunk-
|
|
20
|
-
require('../chunk-
|
|
19
|
+
require('../chunk-4UFR2LB6.cjs');
|
|
20
|
+
require('../chunk-WQDIZH2Z.cjs');
|
|
21
21
|
require('../chunk-5UCXMYE7.cjs');
|
|
22
22
|
require('../chunk-ST5YRTTV.cjs');
|
|
23
|
-
require('../chunk-
|
|
24
|
-
require('../chunk-
|
|
23
|
+
require('../chunk-R66QG3XT.cjs');
|
|
24
|
+
require('../chunk-L7POWM5B.cjs');
|
|
25
25
|
require('../chunk-NAGUZFXX.cjs');
|
|
26
26
|
require('../chunk-3WNW5Y7P.cjs');
|
|
27
27
|
|
|
@@ -29,35 +29,47 @@ require('../chunk-3WNW5Y7P.cjs');
|
|
|
29
29
|
|
|
30
30
|
Object.defineProperty(exports, "DIAGRAM_REGISTRY", {
|
|
31
31
|
enumerable: true,
|
|
32
|
-
get: function () { return
|
|
32
|
+
get: function () { return chunkYVDUEUFV_cjs.DIAGRAM_REGISTRY; }
|
|
33
|
+
});
|
|
34
|
+
Object.defineProperty(exports, "DIAGRAM_SINCE", {
|
|
35
|
+
enumerable: true,
|
|
36
|
+
get: function () { return chunkYVDUEUFV_cjs.DIAGRAM_SINCE; }
|
|
33
37
|
});
|
|
34
38
|
Object.defineProperty(exports, "getAllDiagramTypes", {
|
|
35
39
|
enumerable: true,
|
|
36
|
-
get: function () { return
|
|
40
|
+
get: function () { return chunkYVDUEUFV_cjs.getAllDiagramTypes; }
|
|
37
41
|
});
|
|
38
42
|
Object.defineProperty(exports, "getDiagramMeta", {
|
|
39
43
|
enumerable: true,
|
|
40
|
-
get: function () { return
|
|
44
|
+
get: function () { return chunkYVDUEUFV_cjs.getDiagramMeta; }
|
|
45
|
+
});
|
|
46
|
+
Object.defineProperty(exports, "getDiagramSince", {
|
|
47
|
+
enumerable: true,
|
|
48
|
+
get: function () { return chunkYVDUEUFV_cjs.getDiagramSince; }
|
|
41
49
|
});
|
|
42
50
|
Object.defineProperty(exports, "getExamples", {
|
|
43
51
|
enumerable: true,
|
|
44
|
-
get: function () { return
|
|
52
|
+
get: function () { return chunkYVDUEUFV_cjs.getExamples; }
|
|
45
53
|
});
|
|
46
54
|
Object.defineProperty(exports, "getSyntax", {
|
|
47
55
|
enumerable: true,
|
|
48
|
-
get: function () { return
|
|
56
|
+
get: function () { return chunkYVDUEUFV_cjs.getSyntax; }
|
|
49
57
|
});
|
|
50
58
|
Object.defineProperty(exports, "listDiagrams", {
|
|
51
59
|
enumerable: true,
|
|
52
|
-
get: function () { return
|
|
60
|
+
get: function () { return chunkYVDUEUFV_cjs.listDiagrams; }
|
|
53
61
|
});
|
|
54
62
|
Object.defineProperty(exports, "renderDsl", {
|
|
55
63
|
enumerable: true,
|
|
56
|
-
get: function () { return
|
|
64
|
+
get: function () { return chunkYVDUEUFV_cjs.renderDsl; }
|
|
65
|
+
});
|
|
66
|
+
Object.defineProperty(exports, "resolveDiagramType", {
|
|
67
|
+
enumerable: true,
|
|
68
|
+
get: function () { return chunkYVDUEUFV_cjs.resolveDiagramType; }
|
|
57
69
|
});
|
|
58
70
|
Object.defineProperty(exports, "validateDsl", {
|
|
59
71
|
enumerable: true,
|
|
60
|
-
get: function () { return
|
|
72
|
+
get: function () { return chunkYVDUEUFV_cjs.validateDsl; }
|
|
61
73
|
});
|
|
62
74
|
//# sourceMappingURL=index.cjs.map
|
|
63
75
|
//# sourceMappingURL=index.cjs.map
|