下一个实体建模
Vue 3 视觉实体-建模 / class-diagram 编辑器.
以图书包形式分发( U)@g1cloud/entity-modeler-next并嵌入其中 bluework4-tool (纳克特语/Vue/蒙戈语).
堆栈
类型脚本 ^ Vue 3 → Vue 流量 · Pinia (opt-in) · Vite (图书馆模式) · Vitest · 以 @g1cloud/open-bluesea-core (BS)组件
安装
pnpm add @g1cloud/entity-modeler-next
需要同伴的依赖关系 vue ^3.5.0 财务报告和审定财务报表 @g1cloud/bluesea >=5.0.0-beta.31 <6.0.0 (由主机安装).
使用量
import { EntityModeler } from '@g1cloud/entity-modeler-next'
import '@g1cloud/entity-modeler-next/style.css' // required — components render unstyled without it
结构
src/
core/ logical/layout types (separated) · resolve (consistency) · routing · autolayout · propagation · validation · type catalogs. Framework-agnostic
command/ Command (do/undo) · CommandStack · op/opSync (semantic op emit + CAS concurrency)
editor/ reactive controller (composable wrapping CommandStack, EDITOR inject key) + axis modules split out of it
(commandPlans · clipboardImport · hostSync · selection — each takes a minimal injected context)
view/ Vue Flow components (DiagramCanvas · EntityNode · GroupNode · AssociationEdge · PropertyPanel · ValidationPanel, etc.)
plus composables (useAttributeEditing · useResizableWidth · useTreeCollapse) and pure helpers
adapter/ storage-schema mapping (persisted v1/v2 · fromPersisted/toPersisted/toPersistedV2 round-trip)
agent/ natural-language → op track (symbolicOp · resolver · schema · buildAgentBatch)
dev/ demo harness (excluded from the library build)
核心设计: 布局引用逻辑模型 modelId (单向)。逻辑模型没有地理/出行点/类型.
脚本
pnpm dev # demo harness dev server (src/dev)
pnpm test # Vitest (unit)
pnpm test:coverage # Vitest + v8 coverage report (no threshold — report only)
pnpm typecheck # vue-tsc --noEmit
pnpm build # library build (dist/)
pnpm verify # headless GUI probe suite (scripts/verify-*.mjs) — boots the dev harness once, runs all probes
pnpm verify:floor # raise the per-probe assertion-count floor to current (never lowers)
pnpm check # CI gate: test && build
check 是CI的切入点; verify 运行浏览器并保持分离,因为它需要一个
dev 服务器并使用~100s.
verify 还执行每个检测器 实数底数 (单位:千美元)scripts/probe-assertion-floor.json探测器
即使剩下的每个断言都通过——删除 ok()
否则也会缩小分母,然后通过 0/0添加断言不需要记账
刻意减少需要用手编辑JSON,而diff是审查信号.