diff --git a/docs/kit/dock-system.md b/docs/kit/dock-system.md index 73d921d8..da23a83d 100644 --- a/docs/kit/dock-system.md +++ b/docs/kit/dock-system.md @@ -154,6 +154,8 @@ When the anchor's iframe mounts, Vite DevTools attaches the hub's frame-nav adap The embedded app stays decoupled: it ships a small `postMessage` nav shim and takes no hub or RPC dependency, so this works cross-origin and in static builds. When no shim answers within the handshake window, the anchor renders as a single plain iframe dock. The protocol, the member-dock data model, and the shim contract live in devframe's [shared-iframe soft-navigation design](https://github.com/devframes/devframe/blob/main/plans/shared-iframe-soft-nav.md). +Set [`visibility: 'false'`](/kit/when-clauses#render-only-visibility) on the anchor when only its synthesized member tabs should have their own dock-bar buttons — the anchor keeps driving the nav loop, but its own button disappears. + ## Action buttons Action buttons run a client-side script when clicked. They suit: @@ -559,6 +561,7 @@ Every dock type accepts these base fields: | `category` | `'app' \| 'framework' \| 'web' \| 'advanced' \| 'default'` | Outer dock-bar bucket, or the in-group sub-category when `groupId` resolves to a group — see [Categories inside a group](#categories-inside-a-group). Defaults to `'default'`. | | `defaultOrder` | `number` | Orders entries within a category; lower numbers appear first. Default `0`. | | `when` | `string` | Visibility expression — see [When Clauses](/kit/when-clauses). | +| `visibility` | `string` | Render-only counterpart to `when` — hides just this entry's dock-bar button, leaving it registered and reachable. See [Render-only visibility](/kit/when-clauses#render-only-visibility). | | `badge` | `string` | Short text badge (e.g. unread count). | | `groupId` | `string` | Collapse this entry under a group's button; the group's `category` becomes this entry's outer bucket — see [Docked groups](#docked-groups). | diff --git a/docs/kit/when-clauses.md b/docs/kit/when-clauses.md index fdda82d1..94ae5f99 100644 --- a/docs/kit/when-clauses.md +++ b/docs/kit/when-clauses.md @@ -40,6 +40,24 @@ ctx.docks.register(defineDockEntry({ `when: 'false'` hides a dock entry unconditionally. +### Render-only visibility + +`visibility` is a narrower, render-only counterpart to `when`: it hides only the entry's own dock-bar button, while the entry stays registered and fully reachable — `docks.activate()`/`switchEntry()` by id, RPC lookups, and anything else that walks the raw entry list keep working exactly as if it were visible. + +The canonical use case is a shared-frame [`subTabs`](/kit/dock-system#shared-iframe-soft-navigation) anchor: the anchor iframe must stay registered to keep driving the postMessage nav loop, but only its synthesized member tabs should render as dock-bar buttons. + +```ts +ctx.docks.register(defineDockEntry({ + id: 'my-plugin:anchor', + title: 'Anchor', + type: 'iframe', + url: '/my-plugin/', + icon: 'ph:cursor-duotone', + visibility: 'false', // no button of its own — only its subTabs members render + subTabs: { /* ... */ }, +})) +``` + ## Expression syntax ### Operators @@ -134,7 +152,7 @@ Flat keys take priority over nested objects when both exist. ## Type-safe `when` clauses -`defineCommand` and `defineDockEntry` capture the `when:` string as a TypeScript literal and validate it against `WhenContext` through [`whenexpr`](https://github.com/antfu/whenexpr)'s `WhenExpression` helper. Syntax errors surface as compile-time errors at the call site. +`defineCommand` and `defineDockEntry` capture the `when:` string as a TypeScript literal and validate it against `WhenContext` through [`whenexpr`](https://github.com/antfu/whenexpr)'s `WhenExpression` helper. Syntax errors surface as compile-time errors at the call site. `defineDockEntry` validates `visibility:` the same way. ```ts import { defineCommand } from '@vitejs/devtools-kit' diff --git a/packages/core/src/client/webcomponents/components/dock/DockEntries.vue b/packages/core/src/client/webcomponents/components/dock/DockEntries.vue index 86b27be8..b862e9d4 100644 --- a/packages/core/src/client/webcomponents/components/dock/DockEntries.vue +++ b/packages/core/src/client/webcomponents/components/dock/DockEntries.vue @@ -30,9 +30,13 @@ function isDockVisible(dock: DevToolsDockEntry): boolean { if (members.length === 0) return false } - if (!dock.when) - return true - return evaluateWhen(dock.when, props.context.when.context) + if (dock.when && !evaluateWhen(dock.when, props.context.when.context)) + return false + // Render-only counterpart to `when`: hides just this button, leaving the + // entry itself registered and reachable everywhere else. + if (dock.visibility && !evaluateWhen(dock.visibility, props.context.when.context)) + return false + return true } function toggleDockEntry(dock: DevToolsDockEntry) { diff --git a/packages/core/src/client/webcomponents/state/__tests__/dock-groups.test.ts b/packages/core/src/client/webcomponents/state/__tests__/dock-groups.test.ts index 6dd0245d..c42c3580 100644 --- a/packages/core/src/client/webcomponents/state/__tests__/dock-groups.test.ts +++ b/packages/core/src/client/webcomponents/state/__tests__/dock-groups.test.ts @@ -97,6 +97,48 @@ describe('dock groups', () => { }) }) +describe('render-only `visibility` (subTabs anchor use case)', () => { + // A shared-frame subTabs anchor: registered so it keeps driving the + // postMessage nav loop, but hidden from the dock bar in favor of its + // synthesized member tabs rendering their own buttons. + const entries: DevToolsDockEntry[] = [ + iframe('anchor', { visibility: 'false', subTabs: {} } as any), + iframe('anchor:overview', { groupId: undefined }), + iframe('a'), + ] + + it('drops the entry from the rendered dock bar', () => { + const grouped = docksGroupByCategories(entries, settings) + const ids = grouped.flatMap(([, items]) => items.map(i => i.id)) + expect(ids).not.toContain('anchor') + expect(ids).toContain('anchor:overview') + expect(ids).toContain('a') + }) + + it('stays reachable in the raw entries array (activation, RPC, subTabs)', () => { + // `visibility` never removes the entry from the raw list — only grouped/ + // rendered results (as produced by `docksGroupByCategories`) omit it. + expect(entries.map(e => e.id)).toContain('anchor') + }) + + it('still lists the entry in the settings management view (includeHidden)', () => { + const grouped = docksGroupByCategories(entries, settings, { includeHidden: true }) + const ids = grouped.flatMap(([, items]) => items.map(i => i.id)) + expect(ids).toContain('anchor') + }) + + it('evaluates `visibility` against a whenContext, same as `when`', () => { + const conditional: DevToolsDockEntry[] = [ + iframe('conditional', { visibility: 'clientType == embedded' } as any), + ] + const standalone = docksGroupByCategories(conditional, settings, { whenContext: { clientType: 'standalone' } as any }) + expect(standalone.flatMap(([, items]) => items.map(i => i.id))).not.toContain('conditional') + + const embedded = docksGroupByCategories(conditional, settings, { whenContext: { clientType: 'embedded' } as any }) + expect(embedded.flatMap(([, items]) => items.map(i => i.id))).toContain('conditional') + }) +}) + describe('in-group sub-categories (dual role of `category`)', () => { // The group carries category 'framework' (the OUTER bucket for the whole // group); its members carry their own categories, which act as IN-GROUP diff --git a/packages/core/src/client/webcomponents/state/dock-settings.ts b/packages/core/src/client/webcomponents/state/dock-settings.ts index aad97913..fa128e62 100644 --- a/packages/core/src/client/webcomponents/state/dock-settings.ts +++ b/packages/core/src/client/webcomponents/state/dock-settings.ts @@ -176,6 +176,12 @@ export function getGroupMembers( * Filters out hidden entries and categories, then sorts by custom order and * default order within each category. * + * Both `when` and its render-only counterpart `visibility` only ever drop an + * entry out of the grouped result *this call* produces — the entry always + * remains in the caller's raw `entries` array, so activation, RPC, and the + * `subTabs` frame-nav adapter (which read `entries` directly rather than a + * grouped result) are unaffected by either clause. + * * Outer bucketing follows the dual role of `category`: a grouped member whose * `groupId` resolves to a registered group takes that **group's** `category` as * its outer bucket (its own `category` is the in-group sub-category instead). @@ -237,6 +243,17 @@ export function docksGroupByCategories( continue if (entry.when && !whenContext && entry.when === 'false' && !includeHidden) continue + // Skip if hidden by the render-only `visibility` clause. Unlike `when`, + // `visibility` never affects the entry's registration or reachability — + // it only decides whether *this call* (a dock-bar/popover/sidebar render) + // includes the entry's own button. Callers that need the entry regardless + // (activation, RPC, the `subTabs` frame-nav adapter, the settings + // management view via `includeHidden`) read `entries` directly and are + // unaffected by this check. + if (entry.visibility && whenContext && !evaluateWhen(entry.visibility, whenContext) && !includeHidden) + continue + if (entry.visibility && !whenContext && entry.visibility === 'false' && !includeHidden) + continue // The Devframe Inspector is hidden by default; it only joins the dock bar // once opted into via Settings → Advanced. The settings management view // (`includeHidden`) still lists it so users can discover the toggle. diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c9a01a38..7f014370 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -44,20 +44,20 @@ catalogs: version: 0.3.1 deps: '@devframes/hub': - specifier: ^0.7.12 - version: 0.7.12 + specifier: ^0.7.13 + version: 0.7.13 '@devframes/json-render': - specifier: ^0.7.12 - version: 0.7.12 + specifier: ^0.7.13 + version: 0.7.13 '@devframes/plugin-inspect': - specifier: ^0.7.12 - version: 0.7.12 + specifier: ^0.7.13 + version: 0.7.13 '@devframes/plugin-messages': - specifier: ^0.7.12 - version: 0.7.12 + specifier: ^0.7.13 + version: 0.7.13 '@devframes/plugin-terminals': - specifier: ^0.7.12 - version: 0.7.12 + specifier: ^0.7.13 + version: 0.7.13 actionspack: specifier: ^0.1.5 version: 0.1.5 @@ -65,8 +65,8 @@ catalogs: specifier: ^4.0.0 version: 4.0.0 devframe: - specifier: ^0.7.12 - version: 0.7.12 + specifier: ^0.7.13 + version: 0.7.13 diff: specifier: ^9.0.0 version: 9.0.0 @@ -499,10 +499,10 @@ importers: version: 1.2.67 '@json-render/core': specifier: catalog:frontend - version: 0.19.0(zod@4.3.6) + version: 0.19.0(zod@4.4.3) '@json-render/vue': specifier: catalog:frontend - version: 0.19.0(vue@3.5.40(typescript@6.0.3))(zod@4.3.6) + version: 0.19.0(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) '@nuxt/devtools': specifier: ^3.2.4 version: 3.2.4(@vitejs/devtools@0.3.4)(magic-string@1.1.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(supports-color@10.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.5)(webpack@5.104.1(esbuild@0.28.1)))(vite@8.1.5)(vue@3.5.40(typescript@6.0.3)) @@ -655,7 +655,7 @@ importers: version: 5.0.4(change-case@5.4.4)(focus-trap@8.2.2)(fuse.js@7.5.0)(idb-keyval@6.3.0)(vite@8.1.5(@types/node@25.0.3)(@vitejs/devtools@packages+core)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.1)(yaml@2.9.0))(vitepress@2.0.0-alpha.18(@types/node@25.0.3)(@vitejs/devtools@packages+core)(change-case@5.4.4)(esbuild@0.28.1)(fuse.js@7.5.0)(idb-keyval@6.3.0)(jiti@2.7.0)(postcss@8.5.20)(terser@5.44.1)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) devframe: specifier: catalog:deps - version: 0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) + version: 0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) mermaid: specifier: catalog:docs version: 11.16.0 @@ -799,16 +799,16 @@ importers: dependencies: '@devframes/hub': specifier: catalog:deps - version: 0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)) + version: 0.7.13(devframe@0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)) '@devframes/plugin-inspect': specifier: catalog:deps - version: 0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))(valibot@1.4.2(typescript@6.0.3))(vite@8.1.5) + version: 0.7.13(devframe@0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))(valibot@1.4.2(typescript@6.0.3))(vite@8.1.5) '@devframes/plugin-messages': specifier: catalog:deps - version: 0.7.12(@devframes/hub@0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)))(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))(vite@8.1.5) + version: 0.7.13(@devframes/hub@0.7.13(devframe@0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)))(devframe@0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))(vite@8.1.5) '@devframes/plugin-terminals': specifier: catalog:deps - version: 0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))(typescript@6.0.3)(vite@8.1.5) + version: 0.7.13(devframe@0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))(typescript@6.0.3)(vite@8.1.5) '@vitejs/devtools-kit': specifier: workspace:* version: link:../kit @@ -823,7 +823,7 @@ importers: version: 7.0.0 devframe: specifier: catalog:deps - version: 0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) + version: 0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) h3: specifier: catalog:deps version: 2.0.1-rc.22(crossws@0.4.10(srvx@0.11.22)) @@ -902,13 +902,13 @@ importers: dependencies: '@devframes/hub': specifier: catalog:deps - version: 0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)) + version: 0.7.13(devframe@0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)) '@devframes/json-render': specifier: catalog:deps - version: 0.7.12(@devframes/hub@0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)))(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)) + version: 0.7.13(@devframes/hub@0.7.13(devframe@0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)))(devframe@0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)) devframe: specifier: catalog:deps - version: 0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) + version: 0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) local-pkg: specifier: catalog:deps version: 1.2.1 @@ -945,7 +945,7 @@ importers: version: 7.0.0 devframe: specifier: catalog:deps - version: 0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) + version: 0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) local-pkg: specifier: catalog:deps version: 1.2.1 @@ -1085,7 +1085,7 @@ importers: version: 3.1.2 devframe: specifier: catalog:deps - version: 0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) + version: 0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) diff-match-patch-es: specifier: catalog:frontend version: 2.0.0 @@ -1215,7 +1215,7 @@ importers: version: 3.1.2 devframe: specifier: catalog:deps - version: 0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) + version: 0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) diff-match-patch-es: specifier: catalog:frontend version: 2.0.0 @@ -1280,7 +1280,7 @@ importers: devDependencies: tsdown: specifier: catalog:build - version: 0.22.14(@vitejs/devtools@0.4.5)(@volar/typescript@2.4.28)(oxc-resolver@11.23.0)(publint@0.3.21)(tsx@4.23.1)(typescript@6.0.3)(unrun@0.3.1(synckit@0.11.13))(vue-tsc@3.3.8(typescript@6.0.3)) + version: 0.22.14(@vitejs/devtools@0.4.6)(@volar/typescript@2.4.28)(oxc-resolver@11.23.0)(publint@0.3.21)(tsx@4.23.1)(typescript@6.0.3)(unrun@0.3.1(synckit@0.11.13))(vue-tsc@3.3.8(typescript@6.0.3)) tsx: specifier: catalog:build version: 4.23.1 @@ -1327,7 +1327,7 @@ importers: version: 6.0.8(vite@8.1.5(@types/node@25.0.3)(@vitejs/devtools@packages+core)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)) devframe: specifier: catalog:deps - version: 0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@5.9.3) + version: 0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@5.9.3) storybook: specifier: catalog:storybook version: 10.5.3(@types/react@19.2.17)(prettier@2.8.8)(react@19.2.8) @@ -1655,14 +1655,10 @@ packages: peerDependencies: devframe: 0.7.12 - '@devframes/json-render@0.7.11': - resolution: {integrity: sha512-Iza65fq6U9OSxKUEhGokfpfMz21ISLkWF9jeS0bQHugTLKRGcPRO/tu3YE+nTe6EiKP3kQFBvSNZ1FcZ1FPfSg==} + '@devframes/hub@0.7.13': + resolution: {integrity: sha512-fr/5bTFU5AOB3D/5vGj/HDUlNRDJrem0AV3AL5Z9ON2wcawIzSbpFN6bNmeLSxlst2ojUJHXUiq4LQ/dNsyk3A==} peerDependencies: - '@devframes/hub': 0.7.11 - devframe: 0.7.11 - peerDependenciesMeta: - '@devframes/hub': - optional: true + devframe: 0.7.13 '@devframes/json-render@0.7.12': resolution: {integrity: sha512-TO241cB08loEmVzTOuRWyn0YMjUwSPGP/6rxB/PyJkaAheSo5Kap/mNU8l2lknPWucBF65RCDcMtf68oopV69Q==} @@ -1673,14 +1669,13 @@ packages: '@devframes/hub': optional: true - '@devframes/plugin-inspect@0.7.11': - resolution: {integrity: sha512-eL1zFUqr65PFORTlBmdJuV7VlqUed5AXRG8SB9ofRyyiauvEWX31PUMD5g6DnZyJBztq97pCxiB0X4AIXNGmeg==} - hasBin: true + '@devframes/json-render@0.7.13': + resolution: {integrity: sha512-QHP7C/kT6utf/eXUN6+09jMj9E64W9x/CJ6Z+0pFK6QvSMfKNHKY/y+g3v6AjtttaiaIuDxISzMGvt7SkGwNhQ==} peerDependencies: - devframe: 0.7.11 - vite: ^8.1.5 + '@devframes/hub': 0.7.13 + devframe: 0.7.13 peerDependenciesMeta: - vite: + '@devframes/hub': optional: true '@devframes/plugin-inspect@0.7.12': @@ -1693,12 +1688,11 @@ packages: vite: optional: true - '@devframes/plugin-messages@0.7.11': - resolution: {integrity: sha512-7Hbgtlo84g6gp5xUOzxKWuBVVBQmT5QswzQ3K2Ax6nZyYO9kGdjDrdGrIWxH5D3acEvzxJw1ixgoRDHPmNtQSQ==} + '@devframes/plugin-inspect@0.7.13': + resolution: {integrity: sha512-M0YlVE1zWtTzCWCrugcpuI+zFk1aTfxVtPHBPvtQxikHG8K5d23Zn9rO1wWbzuQ5nJ4DWwzp9V2W94bjoYpceQ==} hasBin: true peerDependencies: - '@devframes/hub': 0.7.11 - devframe: 0.7.11 + devframe: 0.7.13 vite: ^8.1.5 peerDependenciesMeta: vite: @@ -1715,11 +1709,12 @@ packages: vite: optional: true - '@devframes/plugin-terminals@0.7.11': - resolution: {integrity: sha512-eeUvY0IyBJ2Ao529Wwn/7tgXIrtVyXs5kfPRtsLiFq9/gAl4fmS0Lj4FXX0fpFFrbjraazj7Z9AIlBaPLVp83A==} + '@devframes/plugin-messages@0.7.13': + resolution: {integrity: sha512-cZb3b/32HCFc8awVBNmIVFsKNzk5FJgnrtjhWXhaOenKXiH7gziigz5AjMbILLLqrSesaIoNuvWhnuWSOJ47mA==} hasBin: true peerDependencies: - devframe: 0.7.11 + '@devframes/hub': 0.7.13 + devframe: 0.7.13 vite: ^8.1.5 peerDependenciesMeta: vite: @@ -1735,6 +1730,16 @@ packages: vite: optional: true + '@devframes/plugin-terminals@0.7.13': + resolution: {integrity: sha512-yfUbG9sfnirW06C+oKB87x3HYmg71hm6ONOo1KL1ZNR6DOO3GOtyBUUqxNnX/JhVP8mrFN4fs+phOBIf5oJ7TA==} + hasBin: true + peerDependencies: + devframe: 0.7.13 + vite: ^8.1.5 + peerDependenciesMeta: + vite: + optional: true + '@docsearch/css@4.6.3': resolution: {integrity: sha512-nlOwcXcsNAptQl4vlL4MA78qNJKO0Qlds5GuBjCoePgkebTXLSf8Qt1oyZ3YBshYupKXG9VRGEsk1zr23d+bzQ==} @@ -4676,28 +4681,28 @@ packages: peerDependencies: vite: ^8.1.5 - '@vitejs/devtools-kit@0.4.5': - resolution: {integrity: sha512-fBjJ8Dyv0XvtyxxWyraah3+WC+7QDePfRQZ60Hh+gS0KrbuvgxoESiBVikE5IG9hwy03WliOM4yPWO/sVRP3+A==} + '@vitejs/devtools-kit@0.4.6': + resolution: {integrity: sha512-JGAmxfsF/6oNBuHc+qgN2xEqYiQKro09VwlXPwwKE6A0wpEGkSIqE1G9TTgIi+dacsST1cV5scoCHlhChQmu9g==} peerDependencies: vite: ^8.1.5 - '@vitejs/devtools-oxc@0.4.5': - resolution: {integrity: sha512-r/+vN4Wf2FAUkd8AJXhcULjBeXy5N6+kPwKT+5bfGIywF0pEcpy3ZsW//de7oliOYEvVIbNCI0QYL/r7ZedAlA==} + '@vitejs/devtools-oxc@0.4.6': + resolution: {integrity: sha512-2r/pFx/vvYOIjJN+6MUmGC0h5JvSNATmy/nrKtGc80r5gBeWpShOUZrkTF/cBn/kEH8SFnON3PUa3H4vMi4dmA==} hasBin: true '@vitejs/devtools-rolldown@0.3.4': resolution: {integrity: sha512-5MFcRpZIqL50A6Kb31jHaRDt1jg7WkdQUKx53deFZdp8DxRezzzwGBaYH00kK7fWJC1UDvlwROByHgavC/O52A==} - '@vitejs/devtools-rolldown@0.4.5': - resolution: {integrity: sha512-2HuNKMUmrbDDe9MIvkFywptQPnOuLotQGq1b64EmjG2O8MoLrEQQ3w3S8xFZ4ez7vQo2HXQ+juAhPOgQ5I6GXg==} + '@vitejs/devtools-rolldown@0.4.6': + resolution: {integrity: sha512-LcADzmfeBgAix74hlPmQQCgeaJqhnyl912u2PejF8yMAx9TD2BeSoj4LE2wOcsPQKCboTma1s23U6M+yy2sp5Q==} - '@vitejs/devtools-vite@0.4.5': - resolution: {integrity: sha512-OT1knJOZaeXicPlVNinxWIvox2GeLpxq69wsHDRh2bTDFBRP2/++YhaAYDz+UvfvkvskdDMb4MBBo+RxQbzz5w==} + '@vitejs/devtools-vite@0.4.6': + resolution: {integrity: sha512-aff8vpK/wHAIMgEJeXIF3r2LpcUDiyC6ehd3VwELQZSx3It5TKcUIvAHhSVNNq0PmCBO1ddqbbLFoVnHObGMgw==} peerDependencies: vite: ^8.1.5 - '@vitejs/devtools-vitest@0.4.5': - resolution: {integrity: sha512-FlMuL4V5CubxxCbJ39vy3vpsBoWUyffL/7yPTJToU4I8rfSisBdRrKMfIqrHofSJ8wlA4tLxqd9Bw1K8O/7PsA==} + '@vitejs/devtools-vitest@0.4.6': + resolution: {integrity: sha512-pLplmAedIsnMB6ykq8bW3DFyZFWIPJHUgMUvSP9YsqVgJgDFLAdp2hvWEddjveXN/Jm8rbN0OuDDvuWYNnxnPg==} peerDependencies: vitest: '*' peerDependenciesMeta: @@ -4710,14 +4715,14 @@ packages: peerDependencies: vite: ^8.1.5 - '@vitejs/devtools@0.4.5': - resolution: {integrity: sha512-jBawA1bnLhlUYNmVBVP94rOzezsa68kTaYD1+zVExzHG1xNp4udYnbbKLjjRtaMlZAOYwahwqhblrdNyr/fqPA==} + '@vitejs/devtools@0.4.6': + resolution: {integrity: sha512-p5a8PQKyzS3Yh9dqviEUooosjSCtgSH6sBKY+muhxttXN1QVSR/Y8V2QnEOCh4W2uw7VHezie6YIV4e3Ij5WCg==} hasBin: true peerDependencies: - '@vitejs/devtools-oxc': ^0.4.5 - '@vitejs/devtools-rolldown': ^0.4.5 - '@vitejs/devtools-vite': ^0.4.5 - '@vitejs/devtools-vitest': ^0.4.5 + '@vitejs/devtools-oxc': ^0.4.6 + '@vitejs/devtools-rolldown': ^0.4.6 + '@vitejs/devtools-vite': ^0.4.6 + '@vitejs/devtools-vitest': ^0.4.6 vite: ^8.1.5 peerDependenciesMeta: '@vitejs/devtools-oxc': @@ -6058,6 +6063,17 @@ packages: cac: optional: true + devframe@0.7.13: + resolution: {integrity: sha512-Ay/FJxXpzlLuN0dT4f4F4uE+XTmUO3mGe+lkbkWIALg95fUdlBZWkRq/nMi7S2B7xll/b2FhvjUi/sXm8IQPcw==} + peerDependencies: + '@modelcontextprotocol/sdk': ^1.0.0 + cac: ^7.0.0 + peerDependenciesMeta: + '@modelcontextprotocol/sdk': + optional: true + cac: + optional: true + devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -9845,6 +9861,9 @@ packages: zod@4.3.6: resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} + zod@4.4.3: + resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} + zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -10224,8 +10243,20 @@ snapshots: perfect-debounce: 2.1.0 tinyexec: 1.2.4 zigpty: 0.2.1 + optional: true - '@devframes/json-render@0.7.11(@devframes/hub@0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)))(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))': + '@devframes/hub@0.7.13(devframe@0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))': + dependencies: + birpc: 4.0.0 + destr: 2.0.5 + devframe: 0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) + nostics: 1.2.0 + pathe: 2.0.3 + perfect-debounce: 2.1.0 + tinyexec: 1.2.4 + zigpty: 0.2.1 + + '@devframes/json-render@0.7.12(@devframes/hub@0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)))(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))': dependencies: '@json-render/core': 0.19.0(zod@4.3.6) devframe: 0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) @@ -10235,58 +10266,58 @@ snapshots: '@devframes/hub': 0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)) optional: true - '@devframes/json-render@0.7.12(@devframes/hub@0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)))(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))': + '@devframes/json-render@0.7.13(@devframes/hub@0.7.13(devframe@0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)))(devframe@0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))': dependencies: - '@json-render/core': 0.19.0(zod@4.3.6) - devframe: 0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) + '@json-render/core': 0.19.0(zod@4.4.3) + devframe: 0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) nostics: 1.2.0 - zod: 4.3.6 + zod: 4.4.3 optionalDependencies: - '@devframes/hub': 0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)) + '@devframes/hub': 0.7.13(devframe@0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)) - '@devframes/plugin-inspect@0.7.11(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))(valibot@1.4.2(typescript@6.0.3))(vite@8.1.5)': + '@devframes/plugin-inspect@0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))(valibot@1.4.2(typescript@6.0.3))(vite@8.1.5)': dependencies: '@valibot/to-json-schema': 1.7.1(valibot@1.4.2(typescript@6.0.3)) cac: 7.0.0 devframe: 0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) nostics: 1.2.0 optionalDependencies: - vite: 8.1.5(@types/node@25.0.3)(@vitejs/devtools@0.4.5)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.1)(yaml@2.9.0) + vite: 8.1.5(@types/node@25.0.3)(@vitejs/devtools@0.4.6)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.1)(yaml@2.9.0) transitivePeerDependencies: - valibot optional: true - '@devframes/plugin-inspect@0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))(valibot@1.4.2(typescript@6.0.3))(vite@8.1.5)': + '@devframes/plugin-inspect@0.7.13(devframe@0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))(valibot@1.4.2(typescript@6.0.3))(vite@8.1.5)': dependencies: '@valibot/to-json-schema': 1.7.1(valibot@1.4.2(typescript@6.0.3)) cac: 7.0.0 - devframe: 0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) + devframe: 0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) nostics: 1.2.0 optionalDependencies: vite: 8.1.5(@types/node@25.0.3)(@vitejs/devtools@0.3.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.1)(yaml@2.9.0) transitivePeerDependencies: - valibot - '@devframes/plugin-messages@0.7.11(@devframes/hub@0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)))(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))(vite@8.1.5)': + '@devframes/plugin-messages@0.7.12(@devframes/hub@0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)))(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))(vite@8.1.5)': dependencies: '@devframes/hub': 0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)) cac: 7.0.0 devframe: 0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) nostics: 1.2.0 optionalDependencies: - vite: 8.1.5(@types/node@25.0.3)(@vitejs/devtools@0.4.5)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.1)(yaml@2.9.0) + vite: 8.1.5(@types/node@25.0.3)(@vitejs/devtools@0.4.6)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.1)(yaml@2.9.0) optional: true - '@devframes/plugin-messages@0.7.12(@devframes/hub@0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)))(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))(vite@8.1.5)': + '@devframes/plugin-messages@0.7.13(@devframes/hub@0.7.13(devframe@0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)))(devframe@0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))(vite@8.1.5)': dependencies: - '@devframes/hub': 0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)) + '@devframes/hub': 0.7.13(devframe@0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)) cac: 7.0.0 - devframe: 0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) + devframe: 0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) nostics: 1.2.0 optionalDependencies: vite: 8.1.5(@types/node@25.0.3)(@vitejs/devtools@0.3.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.1)(yaml@2.9.0) - '@devframes/plugin-terminals@0.7.11(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))(typescript@6.0.3)(vite@8.1.5)': + '@devframes/plugin-terminals@0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))(typescript@6.0.3)(vite@8.1.5)': dependencies: '@xterm/addon-fit': 0.11.0 '@xterm/xterm': 6.0.0 @@ -10297,17 +10328,15 @@ snapshots: valibot: 1.4.2(typescript@6.0.3) zigpty: 0.2.1 optionalDependencies: - vite: 8.1.5(@types/node@25.0.3)(@vitejs/devtools@0.4.5)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.1)(yaml@2.9.0) + vite: 8.1.5(@types/node@25.0.3)(@vitejs/devtools@0.4.6)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.1)(yaml@2.9.0) transitivePeerDependencies: - typescript optional: true - '@devframes/plugin-terminals@0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))(typescript@6.0.3)(vite@8.1.5)': + '@devframes/plugin-terminals@0.7.13(devframe@0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))(typescript@6.0.3)(vite@8.1.5)': dependencies: - '@xterm/addon-fit': 0.11.0 - '@xterm/xterm': 6.0.0 cac: 7.0.0 - devframe: 0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) + devframe: 0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) nostics: 1.2.0 pathe: 2.0.3 valibot: 1.4.2(typescript@6.0.3) @@ -10784,12 +10813,17 @@ snapshots: '@json-render/core@0.19.0(zod@4.3.6)': dependencies: zod: 4.3.6 + optional: true - '@json-render/vue@0.19.0(vue@3.5.40(typescript@6.0.3))(zod@4.3.6)': + '@json-render/core@0.19.0(zod@4.4.3)': dependencies: - '@json-render/core': 0.19.0(zod@4.3.6) + zod: 4.4.3 + + '@json-render/vue@0.19.0(vue@3.5.40(typescript@6.0.3))(zod@4.4.3)': + dependencies: + '@json-render/core': 0.19.0(zod@4.4.3) vue: 3.5.40(typescript@6.0.3) - zod: 4.3.6 + zod: 4.4.3 '@kwsites/file-exists@1.1.1(supports-color@10.2.2)': dependencies: @@ -13374,16 +13408,16 @@ snapshots: - srvx - typescript - '@vitejs/devtools-kit@0.4.5(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5)': + '@vitejs/devtools-kit@0.4.6(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5)': dependencies: '@devframes/hub': 0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)) - '@devframes/json-render': 0.7.11(@devframes/hub@0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)))(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)) + '@devframes/json-render': 0.7.12(@devframes/hub@0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)))(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)) devframe: 0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) local-pkg: 1.2.1 mlly: 1.8.2 nostics: 1.2.0 nypm: 0.6.8 - vite: 8.1.5(@types/node@25.0.3)(@vitejs/devtools@0.4.5)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.1)(yaml@2.9.0) + vite: 8.1.5(@types/node@25.0.3)(@vitejs/devtools@0.4.6)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.1)(yaml@2.9.0) transitivePeerDependencies: - '@modelcontextprotocol/sdk' - cac @@ -13391,9 +13425,9 @@ snapshots: - typescript optional: true - '@vitejs/devtools-oxc@0.4.5(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5)': + '@vitejs/devtools-oxc@0.4.6(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5)': dependencies: - '@vitejs/devtools-kit': 0.4.5(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5) + '@vitejs/devtools-kit': 0.4.6(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5) cac: 7.0.0 devframe: 0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) local-pkg: 1.2.1 @@ -13467,11 +13501,11 @@ snapshots: - webpack optional: true - '@vitejs/devtools-rolldown@0.4.5(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5)(vue@3.5.40(typescript@6.0.3))': + '@vitejs/devtools-rolldown@0.4.6(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5)(vue@3.5.40(typescript@6.0.3))': dependencies: '@floating-ui/dom': 1.8.0 '@rolldown/debug': 1.2.0 - '@vitejs/devtools-kit': 0.4.5(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5) + '@vitejs/devtools-kit': 0.4.6(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5) d3-shape: 3.2.0 diff: 9.0.0 nostics: 1.2.0 @@ -13486,16 +13520,16 @@ snapshots: - vue optional: true - '@vitejs/devtools-vite@0.4.5(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5)': + '@vitejs/devtools-vite@0.4.6(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5)': dependencies: '@floating-ui/dom': 1.8.0 - '@vitejs/devtools-kit': 0.4.5(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5) + '@vitejs/devtools-kit': 0.4.6(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5) d3-shape: 3.2.0 envinfo: 7.21.0 nostics: 1.2.0 pathe: 2.0.3 perfect-debounce: 2.1.0 - vite: 8.1.5(@types/node@25.0.3)(@vitejs/devtools@0.4.5)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.1)(yaml@2.9.0) + vite: 8.1.5(@types/node@25.0.3)(@vitejs/devtools@0.4.6)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.1)(yaml@2.9.0) transitivePeerDependencies: - '@modelcontextprotocol/sdk' - cac @@ -13503,9 +13537,9 @@ snapshots: - typescript optional: true - '@vitejs/devtools-vitest@0.4.5(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5)(vitest@4.1.10)': + '@vitejs/devtools-vitest@0.4.6(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5)(vitest@4.1.10)': dependencies: - '@vitejs/devtools-kit': 0.4.5(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5) + '@vitejs/devtools-kit': 0.4.6(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5) get-port-please: 3.2.0 local-pkg: 1.2.1 nostics: 1.2.0 @@ -13574,13 +13608,13 @@ snapshots: - webpack optional: true - '@vitejs/devtools@0.4.5(@vitejs/devtools-oxc@0.4.5)(@vitejs/devtools-rolldown@0.4.5)(@vitejs/devtools-vite@0.4.5)(@vitejs/devtools-vitest@0.4.5)(crossws@0.4.10(srvx@0.11.22))(srvx@0.11.22)(typescript@6.0.3)(valibot@1.4.2(typescript@6.0.3))(vite@8.1.5)': + '@vitejs/devtools@0.4.6(@vitejs/devtools-oxc@0.4.6)(@vitejs/devtools-rolldown@0.4.6)(@vitejs/devtools-vite@0.4.6)(@vitejs/devtools-vitest@0.4.6)(crossws@0.4.10(srvx@0.11.22))(srvx@0.11.22)(typescript@6.0.3)(valibot@1.4.2(typescript@6.0.3))(vite@8.1.5)': dependencies: '@devframes/hub': 0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)) - '@devframes/plugin-inspect': 0.7.11(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))(valibot@1.4.2(typescript@6.0.3))(vite@8.1.5) - '@devframes/plugin-messages': 0.7.11(@devframes/hub@0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)))(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))(vite@8.1.5) - '@devframes/plugin-terminals': 0.7.11(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))(typescript@6.0.3)(vite@8.1.5) - '@vitejs/devtools-kit': 0.4.5(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5) + '@devframes/plugin-inspect': 0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))(valibot@1.4.2(typescript@6.0.3))(vite@8.1.5) + '@devframes/plugin-messages': 0.7.12(@devframes/hub@0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)))(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))(vite@8.1.5) + '@devframes/plugin-terminals': 0.7.12(devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))(typescript@6.0.3)(vite@8.1.5) + '@vitejs/devtools-kit': 0.4.6(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5) birpc: 4.0.0 cac: 7.0.0 devframe: 0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3) @@ -13590,13 +13624,13 @@ snapshots: nostics: 1.2.0 obug: 2.1.4 pathe: 2.0.3 - vite: 8.1.5(@types/node@25.0.3)(@vitejs/devtools@0.4.5)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.1)(yaml@2.9.0) + vite: 8.1.5(@types/node@25.0.3)(@vitejs/devtools@0.4.6)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.1)(yaml@2.9.0) vue: 3.5.40(typescript@6.0.3) optionalDependencies: - '@vitejs/devtools-oxc': 0.4.5(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5) - '@vitejs/devtools-rolldown': 0.4.5(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5)(vue@3.5.40(typescript@6.0.3)) - '@vitejs/devtools-vite': 0.4.5(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5) - '@vitejs/devtools-vitest': 0.4.5(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5)(vitest@4.1.10) + '@vitejs/devtools-oxc': 0.4.6(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5) + '@vitejs/devtools-rolldown': 0.4.6(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5)(vue@3.5.40(typescript@6.0.3)) + '@vitejs/devtools-vite': 0.4.6(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5) + '@vitejs/devtools-vitest': 0.4.6(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)(vite@8.1.5)(vitest@4.1.10) transitivePeerDependencies: - '@modelcontextprotocol/sdk' - crossws @@ -14144,9 +14178,11 @@ snapshots: '@webcontainer/env@1.1.1': {} - '@xterm/addon-fit@0.11.0': {} + '@xterm/addon-fit@0.11.0': + optional: true - '@xterm/xterm@6.0.0': {} + '@xterm/xterm@6.0.0': + optional: true '@xtuc/ieee754@1.2.0': {} @@ -15071,7 +15107,26 @@ snapshots: - srvx - typescript - devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@5.9.3): + devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3): + dependencies: + '@valibot/to-json-schema': 1.7.1(valibot@1.4.2(typescript@6.0.3)) + birpc: 4.0.0 + crossws: 0.4.10(srvx@0.11.22) + destr: 2.0.5 + h3: 2.0.1-rc.22(crossws@0.4.10(srvx@0.11.22)) + mrmime: 2.0.1 + nostics: 1.2.0 + pathe: 2.0.3 + ufo: 1.6.4 + valibot: 1.4.2(typescript@6.0.3) + optionalDependencies: + cac: 7.0.0 + transitivePeerDependencies: + - srvx + - typescript + optional: true + + devframe@0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@5.9.3): dependencies: '@valibot/to-json-schema': 1.7.1(valibot@1.4.2(typescript@6.0.3)) birpc: 4.0.0 @@ -15089,7 +15144,7 @@ snapshots: - srvx - typescript - devframe@0.7.12(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3): + devframe@0.7.13(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3): dependencies: '@valibot/to-json-schema': 1.7.1(valibot@1.4.2(typescript@6.0.3)) birpc: 4.0.0 @@ -18717,7 +18772,7 @@ snapshots: - oxc-resolver - vue-tsc - tsdown@0.22.14(@vitejs/devtools@0.4.5)(@volar/typescript@2.4.28)(oxc-resolver@11.23.0)(publint@0.3.21)(tsx@4.23.1)(typescript@6.0.3)(unrun@0.3.1(synckit@0.11.13))(vue-tsc@3.3.8(typescript@6.0.3)): + tsdown@0.22.14(@vitejs/devtools@0.4.6)(@volar/typescript@2.4.28)(oxc-resolver@11.23.0)(publint@0.3.21)(tsx@4.23.1)(typescript@6.0.3)(unrun@0.3.1(synckit@0.11.13))(vue-tsc@3.3.8(typescript@6.0.3)): dependencies: ansis: 4.3.1 cac: 7.0.0 @@ -18735,7 +18790,7 @@ snapshots: unconfig-core: 7.5.0 verkit: 0.3.0 optionalDependencies: - '@vitejs/devtools': 0.4.5(@vitejs/devtools-oxc@0.4.5)(@vitejs/devtools-rolldown@0.4.5)(@vitejs/devtools-vite@0.4.5)(@vitejs/devtools-vitest@0.4.5)(crossws@0.4.10(srvx@0.11.22))(srvx@0.11.22)(typescript@6.0.3)(valibot@1.4.2(typescript@6.0.3))(vite@8.1.5) + '@vitejs/devtools': 0.4.6(@vitejs/devtools-oxc@0.4.6)(@vitejs/devtools-rolldown@0.4.6)(@vitejs/devtools-vite@0.4.6)(@vitejs/devtools-vitest@0.4.6)(crossws@0.4.10(srvx@0.11.22))(srvx@0.11.22)(typescript@6.0.3)(valibot@1.4.2(typescript@6.0.3))(vite@8.1.5) publint: 0.3.21 tsx: 4.23.1 typescript: 6.0.3 @@ -19351,7 +19406,7 @@ snapshots: tsx: 4.23.1 yaml: 2.9.0 - vite@8.1.5(@types/node@25.0.3)(@vitejs/devtools@0.4.5)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.1)(yaml@2.9.0): + vite@8.1.5(@types/node@25.0.3)(@vitejs/devtools@0.4.6)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.1)(yaml@2.9.0): dependencies: lightningcss: 1.32.0 picomatch: 4.0.5 @@ -19360,7 +19415,7 @@ snapshots: tinyglobby: 0.2.17 optionalDependencies: '@types/node': 25.0.3 - '@vitejs/devtools': 0.4.5(@vitejs/devtools-oxc@0.4.5)(@vitejs/devtools-rolldown@0.4.5)(@vitejs/devtools-vite@0.4.5)(@vitejs/devtools-vitest@0.4.5)(crossws@0.4.10(srvx@0.11.22))(srvx@0.11.22)(typescript@6.0.3)(valibot@1.4.2(typescript@6.0.3))(vite@8.1.5) + '@vitejs/devtools': 0.4.6(@vitejs/devtools-oxc@0.4.6)(@vitejs/devtools-rolldown@0.4.6)(@vitejs/devtools-vite@0.4.6)(@vitejs/devtools-vitest@0.4.6)(crossws@0.4.10(srvx@0.11.22))(srvx@0.11.22)(typescript@6.0.3)(valibot@1.4.2(typescript@6.0.3))(vite@8.1.5) esbuild: 0.28.1 fsevents: 2.3.3 jiti: 2.7.0 @@ -19903,6 +19958,9 @@ snapshots: compress-commons: 6.0.2 readable-stream: 4.7.0 - zod@4.3.6: {} + zod@4.3.6: + optional: true + + zod@4.4.3: {} zwitch@2.0.4: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 38805a5f..02c90a45 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -42,7 +42,7 @@ overrides: vite: 'catalog:build' refs: - devframe: &devframe ^0.7.12 + devframe: &devframe ^0.7.13 nuxt: &nuxt ^4.5.0 shiki: &shiki ^4.3.1 storybook: &storybook ^10.5.3