[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-vite-writing-vite-devtools-integrations":3,"mdc--55mqsy-key":36,"related-org-vite-writing-vite-devtools-integrations":11581,"related-repo-vite-writing-vite-devtools-integrations":11589},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":21,"repoUrl":22,"updatedAt":23,"license":24,"forks":25,"topics":26,"repo":31,"sourceUrl":34,"mdContent":35},"writing-vite-devtools-integrations","build Vite devtools integrations","Creates devtools integrations that mount inside the Vite DevTools hub via @vitejs\u002Fdevtools-kit. Use when building Vite plugins with devtools panels, RPC functions, dock entries, shared state, messages\u002Fnotifications, terminals, command palette entries, or any hub-level integration. Applies to files importing from @vitejs\u002Fdevtools-kit or containing devtools.setup hooks in Vite plugins. For building one portable devtool integration without a hub (CLI, static deploy, MCP), see the `devframe` skill instead.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"vite","Vite","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fvite.jpg","vitejs",[13,17,18],{"name":14,"slug":15,"type":16},"Engineering","engineering","tag",{"name":9,"slug":8,"type":16},{"name":19,"slug":20,"type":16},"Frontend","frontend",1172,"https:\u002F\u002Fgithub.com\u002Fvitejs\u002Fdevtools","2026-07-17T06:07:48.194916",null,82,[27,28,8,29,30],"devtools-kit","rolldown","vite-devtools","vite-plus",{"repoUrl":22,"stars":21,"forks":25,"topics":32,"description":33},[27,28,8,29,30],"DevTools for Vite (Rolldown). ","https:\u002F\u002Fgithub.com\u002Fvitejs\u002Fdevtools\u002Ftree\u002FHEAD\u002Fskills\u002Fvite-devtools-kit","---\nname: writing-vite-devtools-integrations\ndescription: >\n  Creates devtools integrations that mount inside the Vite DevTools\n  hub via @vitejs\u002Fdevtools-kit. Use when building Vite plugins with\n  devtools panels, RPC functions, dock entries, shared state,\n  messages\u002Fnotifications, terminals, command palette entries, or any\n  hub-level integration. Applies to files importing from\n  @vitejs\u002Fdevtools-kit or containing devtools.setup hooks in Vite\n  plugins. For building one portable devtool integration without a\n  hub (CLI, static deploy, MCP), see the `devframe` skill instead.\n---\n\n# Vite DevTools Kit\n\n**`@vitejs\u002Fdevtools-kit` is the hub that unites many devtools integrations.** It owns the cross-tool surface — docking, the command palette, terminal aggregation, cross-tool toasts — and wraps the framework-neutral [Devframe](https:\u002F\u002Fdevfra.me\u002F) container with the Vite-specific glue (`Plugin.devtools.setup`).\n\nIf you have a portable Devframe app already, drop it in via `createPluginFromDevframe(d)` from `@vitejs\u002Fdevtools-kit\u002Fnode` and the kit auto-derives the iframe dock entry. If you're authoring a Vite-specific integration that needs hub features directly, reach for `Plugin.devtools.setup`.\n\n## Core Concepts\n\nA DevTools plugin extends a Vite plugin with a `devtools.setup(ctx)` hook. The context is the **kit-augmented context** (`KitNodeContext` extended with Vite-specific fields) — it carries Devframe's portable surface plus the hub-only subsystems the kit owns:\n\n| Property | Layer | Purpose |\n|----------|-------|---------|\n| `ctx.docks` | **kit** | Register dock entries (iframe, action, custom-render, launcher, json-render) |\n| `ctx.terminals` | **kit** | Spawn and manage child processes with streaming terminal output |\n| `ctx.messages` | **kit** | Emit structured message entries and toast notifications |\n| `ctx.commands` | **kit** | Register executable commands with keyboard shortcuts and palette visibility |\n| `ctx.rpc` | devframe | Register RPC functions, broadcast to clients |\n| `ctx.rpc.sharedState` | devframe | Synchronized server-client state |\n| `ctx.rpc.streaming` | devframe | Streaming channels — chunk-style server↔client data with cancellation, replay, Web Streams interop |\n| `ctx.views` | devframe | Host static files for UI (`hostStatic(base, distDir)`) |\n| `ctx.diagnostics` | devframe | Structured diagnostics host (nostics) — register custom error codes |\n| `ctx.createJsonRenderer` | **kit** | Create server-side JSON render specs for zero-client-code UIs |\n| `ctx.viteConfig` | core | Resolved Vite configuration |\n| `ctx.viteServer` | core | Dev server instance (dev mode only) |\n| `ctx.mode` | devframe | `'dev'` or `'build'` |\n\n## Quick Start: Bridge a Devframe App\n\nIf you already have a portable Devframe definition, this is the one-liner. The kit synthesises the iframe dock entry from the definition's `id` \u002F `name` \u002F `icon` \u002F `basePath`, mounts the SPA via `views.hostStatic`, runs the devtool's own `setup`, then runs the optional kit-only `options.setup`.\n\n```ts\n\u002F\u002F vite.config.ts\nimport { createPluginFromDevframe } from '@vitejs\u002Fdevtools-kit\u002Fnode'\nimport devtool from '.\u002Fmy-devtool'\n\nexport default {\n  plugins: [\n    createPluginFromDevframe(devtool, {\n      \u002F\u002F Optional kit-only setup for hub features:\n      setup(ctx) {\n        ctx.commands.register({\n          id: 'my-devtool:clear-cache',\n          title: 'Clear Cache',\n          handler: () => {\u002F* ... *\u002F},\n        })\n      },\n    }),\n  ],\n}\n```\n\n## Quick Start: Minimal Hub-Native Plugin\n\nWhen the integration is intrinsically tied to Vite (it inspects the resolved config, augments middleware, etc.), reach for `Plugin.devtools.setup` directly:\n\n```ts\n\u002F\u002F\u002F \u003Creference types=\"@vitejs\u002Fdevtools-kit\" \u002F>\nimport type { Plugin } from 'vite'\n\nexport default function myPlugin(): Plugin {\n  return {\n    name: 'my-plugin',\n    devtools: {\n      setup(ctx) {\n        ctx.docks.register({\n          id: 'my-plugin',\n          title: 'My Plugin',\n          icon: 'ph:puzzle-piece-duotone',\n          type: 'iframe',\n          url: 'https:\u002F\u002Fexample.com\u002Fdevtools',\n        })\n      },\n    },\n  }\n}\n```\n\n## Quick Start: Full Integration\n\n```ts\n\u002F\u002F\u002F \u003Creference types=\"@vitejs\u002Fdevtools-kit\" \u002F>\nimport type { Plugin } from 'vite'\nimport { fileURLToPath } from 'node:url'\nimport { defineRpcFunction } from '@vitejs\u002Fdevtools-kit'\n\nexport default function myAnalyzer(): Plugin {\n  const data = new Map\u003Cstring, { size: number }>()\n\n  return {\n    name: 'my-analyzer',\n\n    \u002F\u002F Collect data in Vite hooks\n    transform(code, id) {\n      data.set(id, { size: code.length })\n    },\n\n    devtools: {\n      setup(ctx) {\n        \u002F\u002F 1. Host static UI\n        const clientPath = fileURLToPath(\n          new URL('..\u002Fdist\u002Fclient', import.meta.url)\n        )\n        ctx.views.hostStatic('\u002F__my-analyzer\u002F', clientPath)\n\n        \u002F\u002F 2. Register dock entry\n        ctx.docks.register({\n          id: 'my-analyzer',\n          title: 'Analyzer',\n          icon: 'ph:chart-bar-duotone',\n          type: 'iframe',\n          url: '\u002F__my-analyzer\u002F',\n        })\n\n        \u002F\u002F 3. Register RPC function\n        ctx.rpc.register(\n          defineRpcFunction({\n            name: 'my-analyzer:get-data',\n            type: 'query',\n            setup: () => ({\n              handler: async () => Array.from(data.entries()),\n            }),\n          })\n        )\n      },\n    },\n  }\n}\n```\n\n## Namespacing Convention\n\n**CRITICAL**: Always prefix RPC functions, shared state keys, dock IDs, and command IDs with your plugin name:\n\n```ts\n\u002F\u002F Good - namespaced\n'my-plugin:get-modules'\n'my-plugin:state'\n'my-plugin:clear-cache'  \u002F\u002F command ID\n\n\u002F\u002F Bad - may conflict\n'get-modules'\n'state'\n```\n\n## Dock Entry Types\n\n| Type | Use Case |\n|------|----------|\n| `iframe` | Full UI panels, dashboards (most common) |\n| `json-render` | Server-side JSON specs — zero client code needed |\n| `action` | Buttons that trigger client-side scripts (inspectors, toggles) |\n| `custom-render` | Direct DOM access in panel (framework mounting) |\n| `launcher` | Actionable setup cards for initialization tasks |\n\n### Iframe Entry\n\n```ts\nctx.docks.register({\n  id: 'my-plugin',\n  title: 'My Plugin',\n  icon: 'ph:house-duotone',\n  type: 'iframe',\n  url: '\u002F__my-plugin\u002F',\n})\n```\n\nIframes can also point at a **remote-hosted URL** that connects back via WebSocket, so you don't have to ship a SPA dist with your plugin:\n\n```ts\nctx.docks.register({\n  id: 'my-remote-tool',\n  title: 'My Tool',\n  icon: 'ph:cloud-duotone',\n  type: 'iframe',\n  url: 'https:\u002F\u002Fexample.com\u002Fdevtools',\n  remote: true, \u002F\u002F or { transport: 'query', originLock: false }\n})\n```\n\nOn the hosted page, call `connectRemoteDevTools()` from `@vitejs\u002Fdevtools-kit\u002Fclient` to get a fully connected `DevToolsRpcClient`. Dev-mode only — auto-hidden in build mode. See [Remote Client Patterns](.\u002Freferences\u002Fremote-client-patterns.md).\n\n### Action Entry\n\n```ts\nctx.docks.register({\n  id: 'my-inspector',\n  title: 'Inspector',\n  icon: 'ph:cursor-duotone',\n  type: 'action',\n  action: {\n    importFrom: 'my-plugin\u002Fdevtools-action',\n    importName: 'default',\n  },\n})\n```\n\n### Custom Render Entry\n\n```ts\nctx.docks.register({\n  id: 'my-custom',\n  title: 'Custom View',\n  icon: 'ph:code-duotone',\n  type: 'custom-render',\n  renderer: {\n    importFrom: 'my-plugin\u002Fdevtools-renderer',\n    importName: 'default',\n  },\n})\n```\n\n### JSON Render Entry\n\nBuild UIs entirely from server-side TypeScript — no client code needed:\n\n```ts\nconst ui = ctx.createJsonRenderer({\n  root: 'root',\n  elements: {\n    root: {\n      type: 'Stack',\n      props: { direction: 'vertical', gap: 12 },\n      children: ['heading', 'info'],\n    },\n    heading: {\n      type: 'Text',\n      props: { content: 'Hello from JSON!', variant: 'heading' },\n    },\n    info: {\n      type: 'KeyValueTable',\n      props: {\n        entries: [\n          { key: 'Version', value: '1.0.0' },\n          { key: 'Status', value: 'Running' },\n        ],\n      },\n    },\n  },\n})\n\nctx.docks.register({\n  id: 'my-panel',\n  title: 'My Panel',\n  icon: 'ph:chart-bar-duotone',\n  type: 'json-render',\n  ui,\n})\n```\n\n### Launcher Entry\n\n```ts\nconst entry = ctx.docks.register({\n  id: 'my-setup',\n  title: 'My Setup',\n  icon: 'ph:rocket-launch-duotone',\n  type: 'launcher',\n  launcher: {\n    title: 'Initialize My Plugin',\n    description: 'Run initial setup before using the plugin',\n    buttonStart: 'Start Setup',\n    buttonLoading: 'Setting up...',\n    onLaunch: async () => {\n      \u002F\u002F Run initialization logic\n    },\n  },\n})\n```\n\n## Terminals & Subprocesses\n\nSpawn and manage child processes with streaming terminal output:\n\n```ts\nconst session = await ctx.terminals.startChildProcess(\n  {\n    command: 'vite',\n    args: ['build', '--watch'],\n    cwd: process.cwd(),\n  },\n  {\n    id: 'my-plugin:build-watcher',\n    title: 'Build Watcher',\n    icon: 'ph:terminal-duotone',\n  },\n)\n\n\u002F\u002F Lifecycle controls\nawait session.terminate()\nawait session.restart()\n```\n\nA common pattern is combining with launcher docks — see [Terminals Patterns](.\u002Freferences\u002Fterminals-patterns.md).\n\n## Commands & Command Palette\n\nRegister executable commands discoverable via `Mod+K` palette:\n\n```ts\nimport { defineCommand } from '@vitejs\u002Fdevtools-kit'\n\nctx.commands.register(defineCommand({\n  id: 'my-plugin:clear-cache',\n  title: 'Clear Build Cache',\n  icon: 'ph:trash-duotone',\n  keybindings: [{ key: 'Mod+Shift+C' }],\n  when: 'clientType == embedded',\n  handler: async () => { \u002F* ... *\u002F },\n}))\n```\n\nCommands support sub-commands (two-level hierarchy), conditional visibility via `when` clauses, and user-customizable keyboard shortcuts.\n\nSee [Commands Patterns](.\u002Freferences\u002Fcommands-patterns.md) and [When Clauses](.\u002Freferences\u002Fwhen-clauses.md) for full details.\n\n## Logs & Notifications\n\nPlugins can emit structured log entries from both server and client contexts. Logs appear in the built-in **Logs** panel and can optionally show as toast notifications.\n\n### Fire-and-Forget\n\n```ts\n\u002F\u002F No await needed\ncontext.messages.add({\n  message: 'Plugin initialized',\n  level: 'info',\n})\n```\n\n### With Handle\n\n```ts\nconst handle = await context.messages.add({\n  id: 'my-build',\n  message: 'Building...',\n  level: 'info',\n  status: 'loading',\n})\n\n\u002F\u002F Update later\nawait handle.update({\n  message: 'Build complete',\n  level: 'success',\n  status: 'idle',\n})\n\n\u002F\u002F Or dismiss\nawait handle.dismiss()\n```\n\n### Key Fields\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `message` | `string` | Short title (required) |\n| `level` | `'info' \\| 'warn' \\| 'error' \\| 'success' \\| 'debug'` | Severity (required) |\n| `description` | `string` | Detailed description |\n| `notify` | `boolean` | Show as toast notification |\n| `filePosition` | `{ file, line?, column? }` | Source file location (clickable) |\n| `elementPosition` | `{ selector?, boundingBox?, description? }` | DOM element position |\n| `id` | `string` | Explicit id for deduplication |\n| `status` | `'loading' \\| 'idle'` | Shows spinner when loading |\n| `category` | `string` | Grouping (e.g., `'a11y'`, `'lint'`) |\n| `labels` | `string[]` | Tags for filtering |\n| `autoDismiss` | `number` | Toast auto-dismiss time in ms (default: 5000) |\n| `autoDelete` | `number` | Auto-delete time in ms |\n\nThe `from` field is automatically set to `'server'` or `'browser'`.\n\n### Deduplication\n\nRe-adding with the same `id` updates the existing entry instead of creating a duplicate:\n\n```ts\ncontext.messages.add({ id: 'my-scan', message: 'Scanning...', level: 'info', status: 'loading' })\ncontext.messages.add({ id: 'my-scan', message: 'Scan complete', level: 'success', status: 'idle' })\n```\n\n## RPC Functions\n\n### Server-Side Definition\n\n```ts\nimport { defineRpcFunction } from '@vitejs\u002Fdevtools-kit'\n\nconst getModules = defineRpcFunction({\n  name: 'my-plugin:get-modules',\n  type: 'query', \u002F\u002F 'query' | 'action' | 'static'\n  setup: ctx => ({\n    handler: async (filter?: string) => {\n      \u002F\u002F ctx has full ViteDevToolsNodeContext\n      return modules.filter(m => !filter || m.includes(filter))\n    },\n  }),\n})\n\n\u002F\u002F Register in setup\nctx.rpc.register(getModules)\n```\n\n### Client-Side Call (iframe)\n\n```ts\nimport { getDevToolsRpcClient } from '@vitejs\u002Fdevtools-kit\u002Fclient'\n\nconst rpc = await getDevToolsRpcClient()\nconst modules = await rpc.call('my-plugin:get-modules', 'src\u002F')\n```\n\n### Client-Side Call (action\u002Frenderer script)\n\n```ts\nimport type { DevToolsClientScriptContext } from '@vitejs\u002Fdevtools-kit\u002Fclient'\n\nexport default function setup(ctx: DevToolsClientScriptContext) {\n  ctx.current.events.on('entry:activated', async () => {\n    const data = await ctx.current.rpc.call('my-plugin:get-data')\n  })\n}\n```\n\n## Client Context\n\nThe global client context (`DevToolsClientContext`) provides access to the RPC client and is set automatically when DevTools initializes (embedded or standalone). Use `getDevToolsClientContext()` to access it from anywhere on the client side:\n\n```ts\nimport { getDevToolsClientContext } from '@vitejs\u002Fdevtools-kit\u002Fclient'\n\nconst ctx = getDevToolsClientContext()\nif (ctx) {\n  const modules = await ctx.rpc.call('my-plugin:get-modules')\n}\n```\n\n### Broadcasting to Clients\n\n```ts\n\u002F\u002F Server broadcasts to all clients\nctx.rpc.broadcast({\n  method: 'my-plugin:on-update',\n  args: [{ changedFile: '\u002Fsrc\u002Fmain.ts' }],\n})\n```\n\n## Type Safety\n\nExtend the DevTools Kit interfaces for full type checking:\n\n```ts\n\u002F\u002F src\u002Ftypes.ts\nimport '@vitejs\u002Fdevtools-kit'\n\ndeclare module '@vitejs\u002Fdevtools-kit' {\n  interface DevToolsRpcServerFunctions {\n    'my-plugin:get-modules': (filter?: string) => Promise\u003CModule[]>\n  }\n\n  interface DevToolsRpcClientFunctions {\n    'my-plugin:on-update': (data: { changedFile: string }) => void\n  }\n\n  interface DevToolsRpcSharedStates {\n    'my-plugin:state': MyPluginState\n  }\n}\n```\n\n## Shared State\n\n### Server-Side\n\n```ts\nconst state = await ctx.rpc.sharedState.get('my-plugin:state', {\n  initialValue: { count: 0, items: [] },\n})\n\n\u002F\u002F Read\nconsole.log(state.value())\n\n\u002F\u002F Mutate (auto-syncs to clients)\nstate.mutate((draft) => {\n  draft.count += 1\n  draft.items.push('new item')\n})\n```\n\n### Client-Side\n\n```ts\nconst client = await getDevToolsRpcClient()\nconst state = await client.rpc.sharedState.get('my-plugin:state')\n\n\u002F\u002F Read\nconsole.log(state.value())\n\n\u002F\u002F Subscribe to changes\nstate.on('updated', (newState) => {\n  console.log('State updated:', newState)\n})\n```\n\n## Streaming Channels\n\nFor chunk-style data flowing in either direction (LLM deltas, build logs, file uploads), use a streaming channel rather than hand-rolling `action + delta\u002Fend events`. The same `channel` handles server→client and client→server.\n\n### Server-to-Client\n\n```ts\nctx.rpc.streaming.create\u003Cstring>('my-plugin:tokens', {\n  replayWindow: 256, \u002F\u002F chunks retained per stream id\n})\n\n\u002F\u002F Inside an action handler:\nconst stream = channel.start()\n;(async () => {\n  for (const token of fakeLLM(prompt)) {\n    if (stream.signal.aborted)\n      return\n    stream.write(token)\n  }\n  stream.close()\n})()\nreturn { streamId: stream.id }\n```\n\n```ts\n\u002F\u002F Client\nimport { getDevToolsRpcClient } from '@vitejs\u002Fdevtools-kit\u002Fclient'\n\nconst rpc = await getDevToolsRpcClient()\nconst { streamId } = await rpc.call('my-plugin:start', { prompt })\nconst reader = rpc.streaming.subscribe\u003Cstring>('my-plugin:tokens', streamId)\nfor await (const token of reader)\n  appendToken(token)\nreader.cancel() \u002F\u002F server stream.signal aborts\n```\n\nThe reader is also `.readable: ReadableStream\u003CT>` for `pipeTo` consumption. The sink is also `.writable: WritableStream\u003CT>` — `await channel.pipeFrom(readableSource)` is the one-call shortcut.\n\n### Client-to-Server Uploads\n\n```ts\n\u002F\u002F Server\nctx.rpc.register(defineRpcFunction({\n  name: 'my-plugin:upload-file',\n  type: 'action',\n  handler: async ({ name }) => {\n    const reader = channel.openInbound()\n    ;(async () => {\n      const file = createWriteStream(name)\n      for await (const chunk of reader)\n        file.write(chunk)\n      file.close()\n    })()\n    return { uploadId: reader.id }\n  },\n}))\n\n\u002F\u002F Client\nconst { uploadId } = await rpc.call('my-plugin:upload-file', { name })\nconst upload = rpc.streaming.upload\u003CUint8Array>('my-plugin:files', uploadId)\nfileReadable.pipeTo(upload.writable, { signal: upload.signal })\n```\n\n`upload.signal` aborts when the server calls `reader.cancel()`. Client disconnect surfaces as `UploadDisconnected` in the server's `for await`.\n\n### When to use streaming\n\n| Use streaming for | Use `event`-typed RPC for | Use shared state for |\n|-------------------|---------------------------|----------------------|\n| Token \u002F chunk feeds, uploads | Notifications without payload | Long-lived UI state |\n| Per-call lifecycles + cancellation | Cross-cutting fire-and-forget | Diff-based snapshots |\n| Replay on reconnect | | |\n\nFor chat-style UIs, combine: keep the **conversation log** in shared state and stream **active responses** through the channel. Working example: [`devframe\u002Fexamples\u002Fdevframe-streaming-chat`](https:\u002F\u002Fgithub.com\u002Fvitejs\u002Fdevtools\u002Ftree\u002Fmain\u002Fdevframe\u002Fexamples\u002Fdevframe-streaming-chat). Full reference: [Streaming Patterns](.\u002Freferences\u002Fstreaming-patterns.md).\n\n## Client Scripts\n\nFor action buttons and custom renderers:\n\n```ts\n\u002F\u002F src\u002Fdevtools-action.ts\nimport type { DevToolsClientScriptContext } from '@vitejs\u002Fdevtools-kit\u002Fclient'\n\nexport default function setup(ctx: DevToolsClientScriptContext) {\n  ctx.current.events.on('entry:activated', () => {\n    console.log('Action activated')\n    \u002F\u002F Your inspector\u002Ftool logic here\n  })\n\n  ctx.current.events.on('entry:deactivated', () => {\n    console.log('Action deactivated')\n    \u002F\u002F Cleanup\n  })\n}\n```\n\nExport from package.json:\n\n```json\n{\n  \"exports\": {\n    \".\": \".\u002Fdist\u002Findex.mjs\",\n    \".\u002Fdevtools-action\": \".\u002Fdist\u002Fdevtools-action.mjs\"\n  }\n}\n```\n\n## Debugging with the inspector\n\nVite DevTools ships the official `@devframes\u002Fplugin-inspect` inspector as a built-in panel (enabled by default via `builtinDevTools`). It shows registered RPC functions, dock entries, client scripts, and plugins in a meta-introspection UI — open the \"Inspect\" dock, no extra install needed.\n\n```ts\nimport DevTools from '@vitejs\u002Fdevtools'\n\nexport default defineConfig({\n  plugins: [\n    DevTools(), \u002F\u002F inspector included by default\n  ],\n})\n```\n\n## Best Practices\n\n1. **Always namespace** - Prefix all identifiers with your plugin name\n2. **Use type augmentation** - Extend `DevToolsRpcServerFunctions` for type-safe RPC\n3. **Keep state serializable** - No functions or circular references in shared state\n4. **Batch mutations** - Use single `mutate()` call for multiple changes\n5. **Host static files** - Use `ctx.views.hostStatic()` for your UI assets\n6. **Use Iconify icons** - Prefer `ph:*` (Phosphor) icons: `icon: 'ph:chart-bar-duotone'`\n7. **Deduplicate logs** - Use explicit `id` for logs representing ongoing operations\n8. **Use the inspector** - The built-in `@devframes\u002Fplugin-inspect` panel helps debug your plugin during development\n9. **Namespace command IDs** - Use `my-plugin:action` pattern for command IDs, same as RPC and state\n10. **Use `when` clauses** - Conditionally show commands\u002Fdocks with `when` expressions instead of programmatic show\u002Fhide\n\n## Example Plugins\n\nReal-world example plugins in the repo — reference their code structure and patterns when building new integrations:\n\n- **A11y Checker** ([`examples\u002Fplugin-a11y-checker`](https:\u002F\u002Fgithub.com\u002Fvitejs\u002Fdevtools\u002Ftree\u002Fmain\u002Fexamples\u002Fplugin-a11y-checker)) — Action dock entry, client-side axe-core audits, logs with severity levels and element positions, log handle updates\n- **File Explorer** ([`examples\u002Fplugin-file-explorer`](https:\u002F\u002Fgithub.com\u002Fvitejs\u002Fdevtools\u002Ftree\u002Fmain\u002Fexamples\u002Fplugin-file-explorer)) — Iframe dock entry, RPC functions (static\u002Fquery\u002Faction), hosted UI panel, RPC dump for static builds, backend mode detection\n- **Git UI** ([`examples\u002Fplugin-git-ui`](https:\u002F\u002Fgithub.com\u002Fvitejs\u002Fdevtools\u002Ftree\u002Fmain\u002Fexamples\u002Fplugin-git-ui)) — JSON render dock entry, server-side JSON specs, `$bindState` two-way binding, `$state` in action params, dynamic badge updates\n\n## Further Reading\n\n- [RPC Patterns](.\u002Freferences\u002Frpc-patterns.md) - Advanced RPC patterns and type utilities\n- [Dock Entry Types](.\u002Freferences\u002Fdock-entry-types.md) - Detailed dock configuration options\n- [Shared State Patterns](.\u002Freferences\u002Fshared-state-patterns.md) - Framework integration examples\n- [Streaming Patterns](.\u002Freferences\u002Fstreaming-patterns.md) - Streaming channels, uploads, replay, chat-history pattern\n- [Project Structure](.\u002Freferences\u002Fproject-structure.md) - Recommended file organization\n- [JSON Render Patterns](.\u002Freferences\u002Fjson-render-patterns.md) - Server-side JSON specs, components, state binding\n- [Terminals Patterns](.\u002Freferences\u002Fterminals-patterns.md) - Child processes, custom streams, session lifecycle\n- [Messages Patterns](.\u002Freferences\u002Fmessages-patterns.md) - Message entries, toast notifications, and handle patterns\n- [Diagnostics Patterns](.\u002Freferences\u002Fdiagnostics-patterns.md) - Coded errors \u002F warnings via `ctx.diagnostics` (nostics integration)\n- [Commands Patterns](.\u002Freferences\u002Fcommands-patterns.md) - Command registration, sub-commands, keybindings, palette integration\n- [When Clauses](.\u002Freferences\u002Fwhen-clauses.md) - Conditional expression syntax, context variables, API reference\n- [Remote Client Patterns](.\u002Freferences\u002Fremote-client-patterns.md) - Remote-hosted iframe docks, `connectRemoteDevTools`, trust model\n- [Migration Guide](https:\u002F\u002Fgithub.com\u002Fvitejs\u002Fdevtools\u002Fblob\u002Fmain\u002FMIGRATION.md) - Breaking changes between versions\n",{"data":37,"body":38},{"name":4,"description":6},{"type":39,"children":40},"root",[41,50,88,116,123,151,495,501,559,968,974,986,1421,1427,2554,2560,2570,2685,2691,2797,2804,2996,3008,3222,3257,3263,3505,3511,3749,3755,3760,4544,4550,4905,4911,4916,5274,5286,5292,5305,5610,5623,5644,5650,5662,5668,5785,5791,6148,6154,6501,6527,6533,6545,6820,6826,6832,7203,7209,7358,7364,7621,7627,7648,7805,7811,7952,7958,7963,8277,8283,8289,8624,8630,8907,8913,8934,8940,9338,9649,9686,9692,10323,10357,10363,10448,10487,10493,10498,10854,10859,10986,10992,11013,11138,11144,11321,11327,11332,11418,11424,11575],{"type":42,"tag":43,"props":44,"children":46},"element","h1",{"id":45},"vite-devtools-kit",[47],{"type":48,"value":49},"text","Vite DevTools Kit",{"type":42,"tag":51,"props":52,"children":53},"p",{},[54,67,69,78,80,86],{"type":42,"tag":55,"props":56,"children":57},"strong",{},[58,65],{"type":42,"tag":59,"props":60,"children":62},"code",{"className":61},[],[63],{"type":48,"value":64},"@vitejs\u002Fdevtools-kit",{"type":48,"value":66}," is the hub that unites many devtools integrations.",{"type":48,"value":68}," It owns the cross-tool surface — docking, the command palette, terminal aggregation, cross-tool toasts — and wraps the framework-neutral ",{"type":42,"tag":70,"props":71,"children":75},"a",{"href":72,"rel":73},"https:\u002F\u002Fdevfra.me\u002F",[74],"nofollow",[76],{"type":48,"value":77},"Devframe",{"type":48,"value":79}," container with the Vite-specific glue (",{"type":42,"tag":59,"props":81,"children":83},{"className":82},[],[84],{"type":48,"value":85},"Plugin.devtools.setup",{"type":48,"value":87},").",{"type":42,"tag":51,"props":89,"children":90},{},[91,93,99,101,107,109,114],{"type":48,"value":92},"If you have a portable Devframe app already, drop it in via ",{"type":42,"tag":59,"props":94,"children":96},{"className":95},[],[97],{"type":48,"value":98},"createPluginFromDevframe(d)",{"type":48,"value":100}," from ",{"type":42,"tag":59,"props":102,"children":104},{"className":103},[],[105],{"type":48,"value":106},"@vitejs\u002Fdevtools-kit\u002Fnode",{"type":48,"value":108}," and the kit auto-derives the iframe dock entry. If you're authoring a Vite-specific integration that needs hub features directly, reach for ",{"type":42,"tag":59,"props":110,"children":112},{"className":111},[],[113],{"type":48,"value":85},{"type":48,"value":115},".",{"type":42,"tag":117,"props":118,"children":120},"h2",{"id":119},"core-concepts",[121],{"type":48,"value":122},"Core Concepts",{"type":42,"tag":51,"props":124,"children":125},{},[126,128,134,136,141,143,149],{"type":48,"value":127},"A DevTools plugin extends a Vite plugin with a ",{"type":42,"tag":59,"props":129,"children":131},{"className":130},[],[132],{"type":48,"value":133},"devtools.setup(ctx)",{"type":48,"value":135}," hook. The context is the ",{"type":42,"tag":55,"props":137,"children":138},{},[139],{"type":48,"value":140},"kit-augmented context",{"type":48,"value":142}," (",{"type":42,"tag":59,"props":144,"children":146},{"className":145},[],[147],{"type":48,"value":148},"KitNodeContext",{"type":48,"value":150}," extended with Vite-specific fields) — it carries Devframe's portable surface plus the hub-only subsystems the kit owns:",{"type":42,"tag":152,"props":153,"children":154},"table",{},[155,179],{"type":42,"tag":156,"props":157,"children":158},"thead",{},[159],{"type":42,"tag":160,"props":161,"children":162},"tr",{},[163,169,174],{"type":42,"tag":164,"props":165,"children":166},"th",{},[167],{"type":48,"value":168},"Property",{"type":42,"tag":164,"props":170,"children":171},{},[172],{"type":48,"value":173},"Layer",{"type":42,"tag":164,"props":175,"children":176},{},[177],{"type":48,"value":178},"Purpose",{"type":42,"tag":180,"props":181,"children":182},"tbody",{},[183,209,233,257,281,303,324,345,374,395,419,441,462],{"type":42,"tag":160,"props":184,"children":185},{},[186,196,204],{"type":42,"tag":187,"props":188,"children":189},"td",{},[190],{"type":42,"tag":59,"props":191,"children":193},{"className":192},[],[194],{"type":48,"value":195},"ctx.docks",{"type":42,"tag":187,"props":197,"children":198},{},[199],{"type":42,"tag":55,"props":200,"children":201},{},[202],{"type":48,"value":203},"kit",{"type":42,"tag":187,"props":205,"children":206},{},[207],{"type":48,"value":208},"Register dock entries (iframe, action, custom-render, launcher, json-render)",{"type":42,"tag":160,"props":210,"children":211},{},[212,221,228],{"type":42,"tag":187,"props":213,"children":214},{},[215],{"type":42,"tag":59,"props":216,"children":218},{"className":217},[],[219],{"type":48,"value":220},"ctx.terminals",{"type":42,"tag":187,"props":222,"children":223},{},[224],{"type":42,"tag":55,"props":225,"children":226},{},[227],{"type":48,"value":203},{"type":42,"tag":187,"props":229,"children":230},{},[231],{"type":48,"value":232},"Spawn and manage child processes with streaming terminal output",{"type":42,"tag":160,"props":234,"children":235},{},[236,245,252],{"type":42,"tag":187,"props":237,"children":238},{},[239],{"type":42,"tag":59,"props":240,"children":242},{"className":241},[],[243],{"type":48,"value":244},"ctx.messages",{"type":42,"tag":187,"props":246,"children":247},{},[248],{"type":42,"tag":55,"props":249,"children":250},{},[251],{"type":48,"value":203},{"type":42,"tag":187,"props":253,"children":254},{},[255],{"type":48,"value":256},"Emit structured message entries and toast notifications",{"type":42,"tag":160,"props":258,"children":259},{},[260,269,276],{"type":42,"tag":187,"props":261,"children":262},{},[263],{"type":42,"tag":59,"props":264,"children":266},{"className":265},[],[267],{"type":48,"value":268},"ctx.commands",{"type":42,"tag":187,"props":270,"children":271},{},[272],{"type":42,"tag":55,"props":273,"children":274},{},[275],{"type":48,"value":203},{"type":42,"tag":187,"props":277,"children":278},{},[279],{"type":48,"value":280},"Register executable commands with keyboard shortcuts and palette visibility",{"type":42,"tag":160,"props":282,"children":283},{},[284,293,298],{"type":42,"tag":187,"props":285,"children":286},{},[287],{"type":42,"tag":59,"props":288,"children":290},{"className":289},[],[291],{"type":48,"value":292},"ctx.rpc",{"type":42,"tag":187,"props":294,"children":295},{},[296],{"type":48,"value":297},"devframe",{"type":42,"tag":187,"props":299,"children":300},{},[301],{"type":48,"value":302},"Register RPC functions, broadcast to clients",{"type":42,"tag":160,"props":304,"children":305},{},[306,315,319],{"type":42,"tag":187,"props":307,"children":308},{},[309],{"type":42,"tag":59,"props":310,"children":312},{"className":311},[],[313],{"type":48,"value":314},"ctx.rpc.sharedState",{"type":42,"tag":187,"props":316,"children":317},{},[318],{"type":48,"value":297},{"type":42,"tag":187,"props":320,"children":321},{},[322],{"type":48,"value":323},"Synchronized server-client state",{"type":42,"tag":160,"props":325,"children":326},{},[327,336,340],{"type":42,"tag":187,"props":328,"children":329},{},[330],{"type":42,"tag":59,"props":331,"children":333},{"className":332},[],[334],{"type":48,"value":335},"ctx.rpc.streaming",{"type":42,"tag":187,"props":337,"children":338},{},[339],{"type":48,"value":297},{"type":42,"tag":187,"props":341,"children":342},{},[343],{"type":48,"value":344},"Streaming channels — chunk-style server↔client data with cancellation, replay, Web Streams interop",{"type":42,"tag":160,"props":346,"children":347},{},[348,357,361],{"type":42,"tag":187,"props":349,"children":350},{},[351],{"type":42,"tag":59,"props":352,"children":354},{"className":353},[],[355],{"type":48,"value":356},"ctx.views",{"type":42,"tag":187,"props":358,"children":359},{},[360],{"type":48,"value":297},{"type":42,"tag":187,"props":362,"children":363},{},[364,366,372],{"type":48,"value":365},"Host static files for UI (",{"type":42,"tag":59,"props":367,"children":369},{"className":368},[],[370],{"type":48,"value":371},"hostStatic(base, distDir)",{"type":48,"value":373},")",{"type":42,"tag":160,"props":375,"children":376},{},[377,386,390],{"type":42,"tag":187,"props":378,"children":379},{},[380],{"type":42,"tag":59,"props":381,"children":383},{"className":382},[],[384],{"type":48,"value":385},"ctx.diagnostics",{"type":42,"tag":187,"props":387,"children":388},{},[389],{"type":48,"value":297},{"type":42,"tag":187,"props":391,"children":392},{},[393],{"type":48,"value":394},"Structured diagnostics host (nostics) — register custom error codes",{"type":42,"tag":160,"props":396,"children":397},{},[398,407,414],{"type":42,"tag":187,"props":399,"children":400},{},[401],{"type":42,"tag":59,"props":402,"children":404},{"className":403},[],[405],{"type":48,"value":406},"ctx.createJsonRenderer",{"type":42,"tag":187,"props":408,"children":409},{},[410],{"type":42,"tag":55,"props":411,"children":412},{},[413],{"type":48,"value":203},{"type":42,"tag":187,"props":415,"children":416},{},[417],{"type":48,"value":418},"Create server-side JSON render specs for zero-client-code UIs",{"type":42,"tag":160,"props":420,"children":421},{},[422,431,436],{"type":42,"tag":187,"props":423,"children":424},{},[425],{"type":42,"tag":59,"props":426,"children":428},{"className":427},[],[429],{"type":48,"value":430},"ctx.viteConfig",{"type":42,"tag":187,"props":432,"children":433},{},[434],{"type":48,"value":435},"core",{"type":42,"tag":187,"props":437,"children":438},{},[439],{"type":48,"value":440},"Resolved Vite configuration",{"type":42,"tag":160,"props":442,"children":443},{},[444,453,457],{"type":42,"tag":187,"props":445,"children":446},{},[447],{"type":42,"tag":59,"props":448,"children":450},{"className":449},[],[451],{"type":48,"value":452},"ctx.viteServer",{"type":42,"tag":187,"props":454,"children":455},{},[456],{"type":48,"value":435},{"type":42,"tag":187,"props":458,"children":459},{},[460],{"type":48,"value":461},"Dev server instance (dev mode only)",{"type":42,"tag":160,"props":463,"children":464},{},[465,474,478],{"type":42,"tag":187,"props":466,"children":467},{},[468],{"type":42,"tag":59,"props":469,"children":471},{"className":470},[],[472],{"type":48,"value":473},"ctx.mode",{"type":42,"tag":187,"props":475,"children":476},{},[477],{"type":48,"value":297},{"type":42,"tag":187,"props":479,"children":480},{},[481,487,489],{"type":42,"tag":59,"props":482,"children":484},{"className":483},[],[485],{"type":48,"value":486},"'dev'",{"type":48,"value":488}," or ",{"type":42,"tag":59,"props":490,"children":492},{"className":491},[],[493],{"type":48,"value":494},"'build'",{"type":42,"tag":117,"props":496,"children":498},{"id":497},"quick-start-bridge-a-devframe-app",[499],{"type":48,"value":500},"Quick Start: Bridge a Devframe App",{"type":42,"tag":51,"props":502,"children":503},{},[504,506,512,514,520,521,527,528,534,536,542,544,550,552,558],{"type":48,"value":505},"If you already have a portable Devframe definition, this is the one-liner. The kit synthesises the iframe dock entry from the definition's ",{"type":42,"tag":59,"props":507,"children":509},{"className":508},[],[510],{"type":48,"value":511},"id",{"type":48,"value":513}," \u002F ",{"type":42,"tag":59,"props":515,"children":517},{"className":516},[],[518],{"type":48,"value":519},"name",{"type":48,"value":513},{"type":42,"tag":59,"props":522,"children":524},{"className":523},[],[525],{"type":48,"value":526},"icon",{"type":48,"value":513},{"type":42,"tag":59,"props":529,"children":531},{"className":530},[],[532],{"type":48,"value":533},"basePath",{"type":48,"value":535},", mounts the SPA via ",{"type":42,"tag":59,"props":537,"children":539},{"className":538},[],[540],{"type":48,"value":541},"views.hostStatic",{"type":48,"value":543},", runs the devtool's own ",{"type":42,"tag":59,"props":545,"children":547},{"className":546},[],[548],{"type":48,"value":549},"setup",{"type":48,"value":551},", then runs the optional kit-only ",{"type":42,"tag":59,"props":553,"children":555},{"className":554},[],[556],{"type":48,"value":557},"options.setup",{"type":48,"value":115},{"type":42,"tag":560,"props":561,"children":566},"pre",{"className":562,"code":563,"language":564,"meta":565,"style":565},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F vite.config.ts\nimport { createPluginFromDevframe } from '@vitejs\u002Fdevtools-kit\u002Fnode'\nimport devtool from '.\u002Fmy-devtool'\n\nexport default {\n  plugins: [\n    createPluginFromDevframe(devtool, {\n      \u002F\u002F Optional kit-only setup for hub features:\n      setup(ctx) {\n        ctx.commands.register({\n          id: 'my-devtool:clear-cache',\n          title: 'Clear Cache',\n          handler: () => {\u002F* ... *\u002F},\n        })\n      },\n    }),\n  ],\n}\n","ts","",[567],{"type":42,"tag":59,"props":568,"children":569},{"__ignoreMap":565},[570,582,629,660,670,689,709,733,742,770,806,838,868,906,920,929,946,959],{"type":42,"tag":571,"props":572,"children":575},"span",{"class":573,"line":574},"line",1,[576],{"type":42,"tag":571,"props":577,"children":579},{"style":578},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[580],{"type":48,"value":581},"\u002F\u002F vite.config.ts\n",{"type":42,"tag":571,"props":583,"children":585},{"class":573,"line":584},2,[586,592,598,604,609,614,619,624],{"type":42,"tag":571,"props":587,"children":589},{"style":588},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[590],{"type":48,"value":591},"import",{"type":42,"tag":571,"props":593,"children":595},{"style":594},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[596],{"type":48,"value":597}," {",{"type":42,"tag":571,"props":599,"children":601},{"style":600},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[602],{"type":48,"value":603}," createPluginFromDevframe",{"type":42,"tag":571,"props":605,"children":606},{"style":594},[607],{"type":48,"value":608}," }",{"type":42,"tag":571,"props":610,"children":611},{"style":588},[612],{"type":48,"value":613}," from",{"type":42,"tag":571,"props":615,"children":616},{"style":594},[617],{"type":48,"value":618}," '",{"type":42,"tag":571,"props":620,"children":622},{"style":621},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[623],{"type":48,"value":106},{"type":42,"tag":571,"props":625,"children":626},{"style":594},[627],{"type":48,"value":628},"'\n",{"type":42,"tag":571,"props":630,"children":632},{"class":573,"line":631},3,[633,637,642,647,651,656],{"type":42,"tag":571,"props":634,"children":635},{"style":588},[636],{"type":48,"value":591},{"type":42,"tag":571,"props":638,"children":639},{"style":600},[640],{"type":48,"value":641}," devtool ",{"type":42,"tag":571,"props":643,"children":644},{"style":588},[645],{"type":48,"value":646},"from",{"type":42,"tag":571,"props":648,"children":649},{"style":594},[650],{"type":48,"value":618},{"type":42,"tag":571,"props":652,"children":653},{"style":621},[654],{"type":48,"value":655},".\u002Fmy-devtool",{"type":42,"tag":571,"props":657,"children":658},{"style":594},[659],{"type":48,"value":628},{"type":42,"tag":571,"props":661,"children":663},{"class":573,"line":662},4,[664],{"type":42,"tag":571,"props":665,"children":667},{"emptyLinePlaceholder":666},true,[668],{"type":48,"value":669},"\n",{"type":42,"tag":571,"props":671,"children":673},{"class":573,"line":672},5,[674,679,684],{"type":42,"tag":571,"props":675,"children":676},{"style":588},[677],{"type":48,"value":678},"export",{"type":42,"tag":571,"props":680,"children":681},{"style":588},[682],{"type":48,"value":683}," default",{"type":42,"tag":571,"props":685,"children":686},{"style":594},[687],{"type":48,"value":688}," {\n",{"type":42,"tag":571,"props":690,"children":692},{"class":573,"line":691},6,[693,699,704],{"type":42,"tag":571,"props":694,"children":696},{"style":695},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[697],{"type":48,"value":698},"  plugins",{"type":42,"tag":571,"props":700,"children":701},{"style":594},[702],{"type":48,"value":703},":",{"type":42,"tag":571,"props":705,"children":706},{"style":600},[707],{"type":48,"value":708}," [\n",{"type":42,"tag":571,"props":710,"children":712},{"class":573,"line":711},7,[713,719,724,729],{"type":42,"tag":571,"props":714,"children":716},{"style":715},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[717],{"type":48,"value":718},"    createPluginFromDevframe",{"type":42,"tag":571,"props":720,"children":721},{"style":600},[722],{"type":48,"value":723},"(devtool",{"type":42,"tag":571,"props":725,"children":726},{"style":594},[727],{"type":48,"value":728},",",{"type":42,"tag":571,"props":730,"children":731},{"style":594},[732],{"type":48,"value":688},{"type":42,"tag":571,"props":734,"children":736},{"class":573,"line":735},8,[737],{"type":42,"tag":571,"props":738,"children":739},{"style":578},[740],{"type":48,"value":741},"      \u002F\u002F Optional kit-only setup for hub features:\n",{"type":42,"tag":571,"props":743,"children":745},{"class":573,"line":744},9,[746,751,756,762,766],{"type":42,"tag":571,"props":747,"children":748},{"style":695},[749],{"type":48,"value":750},"      setup",{"type":42,"tag":571,"props":752,"children":753},{"style":594},[754],{"type":48,"value":755},"(",{"type":42,"tag":571,"props":757,"children":759},{"style":758},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[760],{"type":48,"value":761},"ctx",{"type":42,"tag":571,"props":763,"children":764},{"style":594},[765],{"type":48,"value":373},{"type":42,"tag":571,"props":767,"children":768},{"style":594},[769],{"type":48,"value":688},{"type":42,"tag":571,"props":771,"children":773},{"class":573,"line":772},10,[774,779,783,788,792,797,801],{"type":42,"tag":571,"props":775,"children":776},{"style":600},[777],{"type":48,"value":778},"        ctx",{"type":42,"tag":571,"props":780,"children":781},{"style":594},[782],{"type":48,"value":115},{"type":42,"tag":571,"props":784,"children":785},{"style":600},[786],{"type":48,"value":787},"commands",{"type":42,"tag":571,"props":789,"children":790},{"style":594},[791],{"type":48,"value":115},{"type":42,"tag":571,"props":793,"children":794},{"style":715},[795],{"type":48,"value":796},"register",{"type":42,"tag":571,"props":798,"children":799},{"style":695},[800],{"type":48,"value":755},{"type":42,"tag":571,"props":802,"children":803},{"style":594},[804],{"type":48,"value":805},"{\n",{"type":42,"tag":571,"props":807,"children":809},{"class":573,"line":808},11,[810,815,819,823,828,833],{"type":42,"tag":571,"props":811,"children":812},{"style":695},[813],{"type":48,"value":814},"          id",{"type":42,"tag":571,"props":816,"children":817},{"style":594},[818],{"type":48,"value":703},{"type":42,"tag":571,"props":820,"children":821},{"style":594},[822],{"type":48,"value":618},{"type":42,"tag":571,"props":824,"children":825},{"style":621},[826],{"type":48,"value":827},"my-devtool:clear-cache",{"type":42,"tag":571,"props":829,"children":830},{"style":594},[831],{"type":48,"value":832},"'",{"type":42,"tag":571,"props":834,"children":835},{"style":594},[836],{"type":48,"value":837},",\n",{"type":42,"tag":571,"props":839,"children":841},{"class":573,"line":840},12,[842,847,851,855,860,864],{"type":42,"tag":571,"props":843,"children":844},{"style":695},[845],{"type":48,"value":846},"          title",{"type":42,"tag":571,"props":848,"children":849},{"style":594},[850],{"type":48,"value":703},{"type":42,"tag":571,"props":852,"children":853},{"style":594},[854],{"type":48,"value":618},{"type":42,"tag":571,"props":856,"children":857},{"style":621},[858],{"type":48,"value":859},"Clear Cache",{"type":42,"tag":571,"props":861,"children":862},{"style":594},[863],{"type":48,"value":832},{"type":42,"tag":571,"props":865,"children":866},{"style":594},[867],{"type":48,"value":837},{"type":42,"tag":571,"props":869,"children":871},{"class":573,"line":870},13,[872,877,881,886,892,896,901],{"type":42,"tag":571,"props":873,"children":874},{"style":715},[875],{"type":48,"value":876},"          handler",{"type":42,"tag":571,"props":878,"children":879},{"style":594},[880],{"type":48,"value":703},{"type":42,"tag":571,"props":882,"children":883},{"style":594},[884],{"type":48,"value":885}," ()",{"type":42,"tag":571,"props":887,"children":889},{"style":888},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[890],{"type":48,"value":891}," =>",{"type":42,"tag":571,"props":893,"children":894},{"style":594},[895],{"type":48,"value":597},{"type":42,"tag":571,"props":897,"children":898},{"style":578},[899],{"type":48,"value":900},"\u002F* ... *\u002F",{"type":42,"tag":571,"props":902,"children":903},{"style":594},[904],{"type":48,"value":905},"},\n",{"type":42,"tag":571,"props":907,"children":909},{"class":573,"line":908},14,[910,915],{"type":42,"tag":571,"props":911,"children":912},{"style":594},[913],{"type":48,"value":914},"        }",{"type":42,"tag":571,"props":916,"children":917},{"style":695},[918],{"type":48,"value":919},")\n",{"type":42,"tag":571,"props":921,"children":923},{"class":573,"line":922},15,[924],{"type":42,"tag":571,"props":925,"children":926},{"style":594},[927],{"type":48,"value":928},"      },\n",{"type":42,"tag":571,"props":930,"children":932},{"class":573,"line":931},16,[933,938,942],{"type":42,"tag":571,"props":934,"children":935},{"style":594},[936],{"type":48,"value":937},"    }",{"type":42,"tag":571,"props":939,"children":940},{"style":600},[941],{"type":48,"value":373},{"type":42,"tag":571,"props":943,"children":944},{"style":594},[945],{"type":48,"value":837},{"type":42,"tag":571,"props":947,"children":949},{"class":573,"line":948},17,[950,955],{"type":42,"tag":571,"props":951,"children":952},{"style":600},[953],{"type":48,"value":954},"  ]",{"type":42,"tag":571,"props":956,"children":957},{"style":594},[958],{"type":48,"value":837},{"type":42,"tag":571,"props":960,"children":962},{"class":573,"line":961},18,[963],{"type":42,"tag":571,"props":964,"children":965},{"style":594},[966],{"type":48,"value":967},"}\n",{"type":42,"tag":117,"props":969,"children":971},{"id":970},"quick-start-minimal-hub-native-plugin",[972],{"type":48,"value":973},"Quick Start: Minimal Hub-Native Plugin",{"type":42,"tag":51,"props":975,"children":976},{},[977,979,984],{"type":48,"value":978},"When the integration is intrinsically tied to Vite (it inspects the resolved config, augments middleware, etc.), reach for ",{"type":42,"tag":59,"props":980,"children":982},{"className":981},[],[983],{"type":48,"value":85},{"type":48,"value":985}," directly:",{"type":42,"tag":560,"props":987,"children":989},{"className":562,"code":988,"language":564,"meta":565,"style":565},"\u002F\u002F\u002F \u003Creference types=\"@vitejs\u002Fdevtools-kit\" \u002F>\nimport type { Plugin } from 'vite'\n\nexport default function myPlugin(): Plugin {\n  return {\n    name: 'my-plugin',\n    devtools: {\n      setup(ctx) {\n        ctx.docks.register({\n          id: 'my-plugin',\n          title: 'My Plugin',\n          icon: 'ph:puzzle-piece-duotone',\n          type: 'iframe',\n          url: 'https:\u002F\u002Fexample.com\u002Fdevtools',\n        })\n      },\n    },\n  }\n}\n",[990],{"type":42,"tag":59,"props":991,"children":992},{"__ignoreMap":565},[993,1042,1083,1090,1125,1137,1166,1182,1205,1237,1264,1292,1321,1350,1379,1390,1397,1405,1413],{"type":42,"tag":571,"props":994,"children":995},{"class":573,"line":574},[996,1001,1006,1012,1018,1023,1028,1033,1037],{"type":42,"tag":571,"props":997,"children":998},{"style":578},[999],{"type":48,"value":1000},"\u002F\u002F\u002F ",{"type":42,"tag":571,"props":1002,"children":1003},{"style":588},[1004],{"type":48,"value":1005},"\u003C",{"type":42,"tag":571,"props":1007,"children":1009},{"style":1008},"--shiki-light:#E53935;--shiki-light-font-style:italic;--shiki-default:#F07178;--shiki-default-font-style:italic;--shiki-dark:#F07178;--shiki-dark-font-style:italic",[1010],{"type":48,"value":1011},"reference",{"type":42,"tag":571,"props":1013,"children":1015},{"style":1014},"--shiki-light:#9C3EDA;--shiki-light-font-style:italic;--shiki-default:#C792EA;--shiki-default-font-style:italic;--shiki-dark:#C792EA;--shiki-dark-font-style:italic",[1016],{"type":48,"value":1017}," types",{"type":42,"tag":571,"props":1019,"children":1020},{"style":588},[1021],{"type":48,"value":1022},"=",{"type":42,"tag":571,"props":1024,"children":1025},{"style":588},[1026],{"type":48,"value":1027},"\"",{"type":42,"tag":571,"props":1029,"children":1031},{"style":1030},"--shiki-light:#91B859;--shiki-light-font-style:italic;--shiki-default:#C3E88D;--shiki-default-font-style:italic;--shiki-dark:#C3E88D;--shiki-dark-font-style:italic",[1032],{"type":48,"value":64},{"type":42,"tag":571,"props":1034,"children":1035},{"style":588},[1036],{"type":48,"value":1027},{"type":42,"tag":571,"props":1038,"children":1039},{"style":588},[1040],{"type":48,"value":1041}," \u002F>\n",{"type":42,"tag":571,"props":1043,"children":1044},{"class":573,"line":584},[1045,1049,1054,1058,1063,1067,1071,1075,1079],{"type":42,"tag":571,"props":1046,"children":1047},{"style":588},[1048],{"type":48,"value":591},{"type":42,"tag":571,"props":1050,"children":1051},{"style":588},[1052],{"type":48,"value":1053}," type",{"type":42,"tag":571,"props":1055,"children":1056},{"style":594},[1057],{"type":48,"value":597},{"type":42,"tag":571,"props":1059,"children":1060},{"style":600},[1061],{"type":48,"value":1062}," Plugin",{"type":42,"tag":571,"props":1064,"children":1065},{"style":594},[1066],{"type":48,"value":608},{"type":42,"tag":571,"props":1068,"children":1069},{"style":588},[1070],{"type":48,"value":613},{"type":42,"tag":571,"props":1072,"children":1073},{"style":594},[1074],{"type":48,"value":618},{"type":42,"tag":571,"props":1076,"children":1077},{"style":621},[1078],{"type":48,"value":8},{"type":42,"tag":571,"props":1080,"children":1081},{"style":594},[1082],{"type":48,"value":628},{"type":42,"tag":571,"props":1084,"children":1085},{"class":573,"line":631},[1086],{"type":42,"tag":571,"props":1087,"children":1088},{"emptyLinePlaceholder":666},[1089],{"type":48,"value":669},{"type":42,"tag":571,"props":1091,"children":1092},{"class":573,"line":662},[1093,1097,1101,1106,1111,1116,1121],{"type":42,"tag":571,"props":1094,"children":1095},{"style":588},[1096],{"type":48,"value":678},{"type":42,"tag":571,"props":1098,"children":1099},{"style":588},[1100],{"type":48,"value":683},{"type":42,"tag":571,"props":1102,"children":1103},{"style":888},[1104],{"type":48,"value":1105}," function",{"type":42,"tag":571,"props":1107,"children":1108},{"style":715},[1109],{"type":48,"value":1110}," myPlugin",{"type":42,"tag":571,"props":1112,"children":1113},{"style":594},[1114],{"type":48,"value":1115},"():",{"type":42,"tag":571,"props":1117,"children":1119},{"style":1118},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[1120],{"type":48,"value":1062},{"type":42,"tag":571,"props":1122,"children":1123},{"style":594},[1124],{"type":48,"value":688},{"type":42,"tag":571,"props":1126,"children":1127},{"class":573,"line":672},[1128,1133],{"type":42,"tag":571,"props":1129,"children":1130},{"style":588},[1131],{"type":48,"value":1132},"  return",{"type":42,"tag":571,"props":1134,"children":1135},{"style":594},[1136],{"type":48,"value":688},{"type":42,"tag":571,"props":1138,"children":1139},{"class":573,"line":691},[1140,1145,1149,1153,1158,1162],{"type":42,"tag":571,"props":1141,"children":1142},{"style":695},[1143],{"type":48,"value":1144},"    name",{"type":42,"tag":571,"props":1146,"children":1147},{"style":594},[1148],{"type":48,"value":703},{"type":42,"tag":571,"props":1150,"children":1151},{"style":594},[1152],{"type":48,"value":618},{"type":42,"tag":571,"props":1154,"children":1155},{"style":621},[1156],{"type":48,"value":1157},"my-plugin",{"type":42,"tag":571,"props":1159,"children":1160},{"style":594},[1161],{"type":48,"value":832},{"type":42,"tag":571,"props":1163,"children":1164},{"style":594},[1165],{"type":48,"value":837},{"type":42,"tag":571,"props":1167,"children":1168},{"class":573,"line":711},[1169,1174,1178],{"type":42,"tag":571,"props":1170,"children":1171},{"style":695},[1172],{"type":48,"value":1173},"    devtools",{"type":42,"tag":571,"props":1175,"children":1176},{"style":594},[1177],{"type":48,"value":703},{"type":42,"tag":571,"props":1179,"children":1180},{"style":594},[1181],{"type":48,"value":688},{"type":42,"tag":571,"props":1183,"children":1184},{"class":573,"line":735},[1185,1189,1193,1197,1201],{"type":42,"tag":571,"props":1186,"children":1187},{"style":695},[1188],{"type":48,"value":750},{"type":42,"tag":571,"props":1190,"children":1191},{"style":594},[1192],{"type":48,"value":755},{"type":42,"tag":571,"props":1194,"children":1195},{"style":758},[1196],{"type":48,"value":761},{"type":42,"tag":571,"props":1198,"children":1199},{"style":594},[1200],{"type":48,"value":373},{"type":42,"tag":571,"props":1202,"children":1203},{"style":594},[1204],{"type":48,"value":688},{"type":42,"tag":571,"props":1206,"children":1207},{"class":573,"line":744},[1208,1212,1216,1221,1225,1229,1233],{"type":42,"tag":571,"props":1209,"children":1210},{"style":600},[1211],{"type":48,"value":778},{"type":42,"tag":571,"props":1213,"children":1214},{"style":594},[1215],{"type":48,"value":115},{"type":42,"tag":571,"props":1217,"children":1218},{"style":600},[1219],{"type":48,"value":1220},"docks",{"type":42,"tag":571,"props":1222,"children":1223},{"style":594},[1224],{"type":48,"value":115},{"type":42,"tag":571,"props":1226,"children":1227},{"style":715},[1228],{"type":48,"value":796},{"type":42,"tag":571,"props":1230,"children":1231},{"style":695},[1232],{"type":48,"value":755},{"type":42,"tag":571,"props":1234,"children":1235},{"style":594},[1236],{"type":48,"value":805},{"type":42,"tag":571,"props":1238,"children":1239},{"class":573,"line":772},[1240,1244,1248,1252,1256,1260],{"type":42,"tag":571,"props":1241,"children":1242},{"style":695},[1243],{"type":48,"value":814},{"type":42,"tag":571,"props":1245,"children":1246},{"style":594},[1247],{"type":48,"value":703},{"type":42,"tag":571,"props":1249,"children":1250},{"style":594},[1251],{"type":48,"value":618},{"type":42,"tag":571,"props":1253,"children":1254},{"style":621},[1255],{"type":48,"value":1157},{"type":42,"tag":571,"props":1257,"children":1258},{"style":594},[1259],{"type":48,"value":832},{"type":42,"tag":571,"props":1261,"children":1262},{"style":594},[1263],{"type":48,"value":837},{"type":42,"tag":571,"props":1265,"children":1266},{"class":573,"line":808},[1267,1271,1275,1279,1284,1288],{"type":42,"tag":571,"props":1268,"children":1269},{"style":695},[1270],{"type":48,"value":846},{"type":42,"tag":571,"props":1272,"children":1273},{"style":594},[1274],{"type":48,"value":703},{"type":42,"tag":571,"props":1276,"children":1277},{"style":594},[1278],{"type":48,"value":618},{"type":42,"tag":571,"props":1280,"children":1281},{"style":621},[1282],{"type":48,"value":1283},"My Plugin",{"type":42,"tag":571,"props":1285,"children":1286},{"style":594},[1287],{"type":48,"value":832},{"type":42,"tag":571,"props":1289,"children":1290},{"style":594},[1291],{"type":48,"value":837},{"type":42,"tag":571,"props":1293,"children":1294},{"class":573,"line":840},[1295,1300,1304,1308,1313,1317],{"type":42,"tag":571,"props":1296,"children":1297},{"style":695},[1298],{"type":48,"value":1299},"          icon",{"type":42,"tag":571,"props":1301,"children":1302},{"style":594},[1303],{"type":48,"value":703},{"type":42,"tag":571,"props":1305,"children":1306},{"style":594},[1307],{"type":48,"value":618},{"type":42,"tag":571,"props":1309,"children":1310},{"style":621},[1311],{"type":48,"value":1312},"ph:puzzle-piece-duotone",{"type":42,"tag":571,"props":1314,"children":1315},{"style":594},[1316],{"type":48,"value":832},{"type":42,"tag":571,"props":1318,"children":1319},{"style":594},[1320],{"type":48,"value":837},{"type":42,"tag":571,"props":1322,"children":1323},{"class":573,"line":870},[1324,1329,1333,1337,1342,1346],{"type":42,"tag":571,"props":1325,"children":1326},{"style":695},[1327],{"type":48,"value":1328},"          type",{"type":42,"tag":571,"props":1330,"children":1331},{"style":594},[1332],{"type":48,"value":703},{"type":42,"tag":571,"props":1334,"children":1335},{"style":594},[1336],{"type":48,"value":618},{"type":42,"tag":571,"props":1338,"children":1339},{"style":621},[1340],{"type":48,"value":1341},"iframe",{"type":42,"tag":571,"props":1343,"children":1344},{"style":594},[1345],{"type":48,"value":832},{"type":42,"tag":571,"props":1347,"children":1348},{"style":594},[1349],{"type":48,"value":837},{"type":42,"tag":571,"props":1351,"children":1352},{"class":573,"line":908},[1353,1358,1362,1366,1371,1375],{"type":42,"tag":571,"props":1354,"children":1355},{"style":695},[1356],{"type":48,"value":1357},"          url",{"type":42,"tag":571,"props":1359,"children":1360},{"style":594},[1361],{"type":48,"value":703},{"type":42,"tag":571,"props":1363,"children":1364},{"style":594},[1365],{"type":48,"value":618},{"type":42,"tag":571,"props":1367,"children":1368},{"style":621},[1369],{"type":48,"value":1370},"https:\u002F\u002Fexample.com\u002Fdevtools",{"type":42,"tag":571,"props":1372,"children":1373},{"style":594},[1374],{"type":48,"value":832},{"type":42,"tag":571,"props":1376,"children":1377},{"style":594},[1378],{"type":48,"value":837},{"type":42,"tag":571,"props":1380,"children":1381},{"class":573,"line":922},[1382,1386],{"type":42,"tag":571,"props":1383,"children":1384},{"style":594},[1385],{"type":48,"value":914},{"type":42,"tag":571,"props":1387,"children":1388},{"style":695},[1389],{"type":48,"value":919},{"type":42,"tag":571,"props":1391,"children":1392},{"class":573,"line":931},[1393],{"type":42,"tag":571,"props":1394,"children":1395},{"style":594},[1396],{"type":48,"value":928},{"type":42,"tag":571,"props":1398,"children":1399},{"class":573,"line":948},[1400],{"type":42,"tag":571,"props":1401,"children":1402},{"style":594},[1403],{"type":48,"value":1404},"    },\n",{"type":42,"tag":571,"props":1406,"children":1407},{"class":573,"line":961},[1408],{"type":42,"tag":571,"props":1409,"children":1410},{"style":594},[1411],{"type":48,"value":1412},"  }\n",{"type":42,"tag":571,"props":1414,"children":1416},{"class":573,"line":1415},19,[1417],{"type":42,"tag":571,"props":1418,"children":1419},{"style":594},[1420],{"type":48,"value":967},{"type":42,"tag":117,"props":1422,"children":1424},{"id":1423},"quick-start-full-integration",[1425],{"type":48,"value":1426},"Quick Start: Full Integration",{"type":42,"tag":560,"props":1428,"children":1430},{"className":562,"code":1429,"language":564,"meta":565,"style":565},"\u002F\u002F\u002F \u003Creference types=\"@vitejs\u002Fdevtools-kit\" \u002F>\nimport type { Plugin } from 'vite'\nimport { fileURLToPath } from 'node:url'\nimport { defineRpcFunction } from '@vitejs\u002Fdevtools-kit'\n\nexport default function myAnalyzer(): Plugin {\n  const data = new Map\u003Cstring, { size: number }>()\n\n  return {\n    name: 'my-analyzer',\n\n    \u002F\u002F Collect data in Vite hooks\n    transform(code, id) {\n      data.set(id, { size: code.length })\n    },\n\n    devtools: {\n      setup(ctx) {\n        \u002F\u002F 1. Host static UI\n        const clientPath = fileURLToPath(\n          new URL('..\u002Fdist\u002Fclient', import.meta.url)\n        )\n        ctx.views.hostStatic('\u002F__my-analyzer\u002F', clientPath)\n\n        \u002F\u002F 2. Register dock entry\n        ctx.docks.register({\n          id: 'my-analyzer',\n          title: 'Analyzer',\n          icon: 'ph:chart-bar-duotone',\n          type: 'iframe',\n          url: '\u002F__my-analyzer\u002F',\n        })\n\n        \u002F\u002F 3. Register RPC function\n        ctx.rpc.register(\n          defineRpcFunction({\n            name: 'my-analyzer:get-data',\n            type: 'query',\n            setup: () => ({\n              handler: async () => Array.from(data.entries()),\n            }),\n          })\n        )\n      },\n    },\n  }\n}\n",[1431],{"type":42,"tag":59,"props":1432,"children":1433},{"__ignoreMap":565},[1434,1473,1512,1549,1585,1592,1624,1693,1700,1711,1739,1746,1754,1787,1850,1857,1864,1879,1902,1910,1937,1999,2008,2063,2071,2080,2112,2140,2169,2198,2226,2254,2266,2274,2283,2312,2329,2359,2389,2418,2484,2501,2514,2522,2530,2538,2546],{"type":42,"tag":571,"props":1435,"children":1436},{"class":573,"line":574},[1437,1441,1445,1449,1453,1457,1461,1465,1469],{"type":42,"tag":571,"props":1438,"children":1439},{"style":578},[1440],{"type":48,"value":1000},{"type":42,"tag":571,"props":1442,"children":1443},{"style":588},[1444],{"type":48,"value":1005},{"type":42,"tag":571,"props":1446,"children":1447},{"style":1008},[1448],{"type":48,"value":1011},{"type":42,"tag":571,"props":1450,"children":1451},{"style":1014},[1452],{"type":48,"value":1017},{"type":42,"tag":571,"props":1454,"children":1455},{"style":588},[1456],{"type":48,"value":1022},{"type":42,"tag":571,"props":1458,"children":1459},{"style":588},[1460],{"type":48,"value":1027},{"type":42,"tag":571,"props":1462,"children":1463},{"style":1030},[1464],{"type":48,"value":64},{"type":42,"tag":571,"props":1466,"children":1467},{"style":588},[1468],{"type":48,"value":1027},{"type":42,"tag":571,"props":1470,"children":1471},{"style":588},[1472],{"type":48,"value":1041},{"type":42,"tag":571,"props":1474,"children":1475},{"class":573,"line":584},[1476,1480,1484,1488,1492,1496,1500,1504,1508],{"type":42,"tag":571,"props":1477,"children":1478},{"style":588},[1479],{"type":48,"value":591},{"type":42,"tag":571,"props":1481,"children":1482},{"style":588},[1483],{"type":48,"value":1053},{"type":42,"tag":571,"props":1485,"children":1486},{"style":594},[1487],{"type":48,"value":597},{"type":42,"tag":571,"props":1489,"children":1490},{"style":600},[1491],{"type":48,"value":1062},{"type":42,"tag":571,"props":1493,"children":1494},{"style":594},[1495],{"type":48,"value":608},{"type":42,"tag":571,"props":1497,"children":1498},{"style":588},[1499],{"type":48,"value":613},{"type":42,"tag":571,"props":1501,"children":1502},{"style":594},[1503],{"type":48,"value":618},{"type":42,"tag":571,"props":1505,"children":1506},{"style":621},[1507],{"type":48,"value":8},{"type":42,"tag":571,"props":1509,"children":1510},{"style":594},[1511],{"type":48,"value":628},{"type":42,"tag":571,"props":1513,"children":1514},{"class":573,"line":631},[1515,1519,1523,1528,1532,1536,1540,1545],{"type":42,"tag":571,"props":1516,"children":1517},{"style":588},[1518],{"type":48,"value":591},{"type":42,"tag":571,"props":1520,"children":1521},{"style":594},[1522],{"type":48,"value":597},{"type":42,"tag":571,"props":1524,"children":1525},{"style":600},[1526],{"type":48,"value":1527}," fileURLToPath",{"type":42,"tag":571,"props":1529,"children":1530},{"style":594},[1531],{"type":48,"value":608},{"type":42,"tag":571,"props":1533,"children":1534},{"style":588},[1535],{"type":48,"value":613},{"type":42,"tag":571,"props":1537,"children":1538},{"style":594},[1539],{"type":48,"value":618},{"type":42,"tag":571,"props":1541,"children":1542},{"style":621},[1543],{"type":48,"value":1544},"node:url",{"type":42,"tag":571,"props":1546,"children":1547},{"style":594},[1548],{"type":48,"value":628},{"type":42,"tag":571,"props":1550,"children":1551},{"class":573,"line":662},[1552,1556,1560,1565,1569,1573,1577,1581],{"type":42,"tag":571,"props":1553,"children":1554},{"style":588},[1555],{"type":48,"value":591},{"type":42,"tag":571,"props":1557,"children":1558},{"style":594},[1559],{"type":48,"value":597},{"type":42,"tag":571,"props":1561,"children":1562},{"style":600},[1563],{"type":48,"value":1564}," defineRpcFunction",{"type":42,"tag":571,"props":1566,"children":1567},{"style":594},[1568],{"type":48,"value":608},{"type":42,"tag":571,"props":1570,"children":1571},{"style":588},[1572],{"type":48,"value":613},{"type":42,"tag":571,"props":1574,"children":1575},{"style":594},[1576],{"type":48,"value":618},{"type":42,"tag":571,"props":1578,"children":1579},{"style":621},[1580],{"type":48,"value":64},{"type":42,"tag":571,"props":1582,"children":1583},{"style":594},[1584],{"type":48,"value":628},{"type":42,"tag":571,"props":1586,"children":1587},{"class":573,"line":672},[1588],{"type":42,"tag":571,"props":1589,"children":1590},{"emptyLinePlaceholder":666},[1591],{"type":48,"value":669},{"type":42,"tag":571,"props":1593,"children":1594},{"class":573,"line":691},[1595,1599,1603,1607,1612,1616,1620],{"type":42,"tag":571,"props":1596,"children":1597},{"style":588},[1598],{"type":48,"value":678},{"type":42,"tag":571,"props":1600,"children":1601},{"style":588},[1602],{"type":48,"value":683},{"type":42,"tag":571,"props":1604,"children":1605},{"style":888},[1606],{"type":48,"value":1105},{"type":42,"tag":571,"props":1608,"children":1609},{"style":715},[1610],{"type":48,"value":1611}," myAnalyzer",{"type":42,"tag":571,"props":1613,"children":1614},{"style":594},[1615],{"type":48,"value":1115},{"type":42,"tag":571,"props":1617,"children":1618},{"style":1118},[1619],{"type":48,"value":1062},{"type":42,"tag":571,"props":1621,"children":1622},{"style":594},[1623],{"type":48,"value":688},{"type":42,"tag":571,"props":1625,"children":1626},{"class":573,"line":711},[1627,1632,1637,1642,1647,1652,1656,1661,1665,1669,1674,1678,1683,1688],{"type":42,"tag":571,"props":1628,"children":1629},{"style":888},[1630],{"type":48,"value":1631},"  const",{"type":42,"tag":571,"props":1633,"children":1634},{"style":600},[1635],{"type":48,"value":1636}," data",{"type":42,"tag":571,"props":1638,"children":1639},{"style":594},[1640],{"type":48,"value":1641}," =",{"type":42,"tag":571,"props":1643,"children":1644},{"style":594},[1645],{"type":48,"value":1646}," new",{"type":42,"tag":571,"props":1648,"children":1649},{"style":715},[1650],{"type":48,"value":1651}," Map",{"type":42,"tag":571,"props":1653,"children":1654},{"style":594},[1655],{"type":48,"value":1005},{"type":42,"tag":571,"props":1657,"children":1658},{"style":1118},[1659],{"type":48,"value":1660},"string",{"type":42,"tag":571,"props":1662,"children":1663},{"style":594},[1664],{"type":48,"value":728},{"type":42,"tag":571,"props":1666,"children":1667},{"style":594},[1668],{"type":48,"value":597},{"type":42,"tag":571,"props":1670,"children":1671},{"style":695},[1672],{"type":48,"value":1673}," size",{"type":42,"tag":571,"props":1675,"children":1676},{"style":594},[1677],{"type":48,"value":703},{"type":42,"tag":571,"props":1679,"children":1680},{"style":1118},[1681],{"type":48,"value":1682}," number",{"type":42,"tag":571,"props":1684,"children":1685},{"style":594},[1686],{"type":48,"value":1687}," }>",{"type":42,"tag":571,"props":1689,"children":1690},{"style":695},[1691],{"type":48,"value":1692},"()\n",{"type":42,"tag":571,"props":1694,"children":1695},{"class":573,"line":735},[1696],{"type":42,"tag":571,"props":1697,"children":1698},{"emptyLinePlaceholder":666},[1699],{"type":48,"value":669},{"type":42,"tag":571,"props":1701,"children":1702},{"class":573,"line":744},[1703,1707],{"type":42,"tag":571,"props":1704,"children":1705},{"style":588},[1706],{"type":48,"value":1132},{"type":42,"tag":571,"props":1708,"children":1709},{"style":594},[1710],{"type":48,"value":688},{"type":42,"tag":571,"props":1712,"children":1713},{"class":573,"line":772},[1714,1718,1722,1726,1731,1735],{"type":42,"tag":571,"props":1715,"children":1716},{"style":695},[1717],{"type":48,"value":1144},{"type":42,"tag":571,"props":1719,"children":1720},{"style":594},[1721],{"type":48,"value":703},{"type":42,"tag":571,"props":1723,"children":1724},{"style":594},[1725],{"type":48,"value":618},{"type":42,"tag":571,"props":1727,"children":1728},{"style":621},[1729],{"type":48,"value":1730},"my-analyzer",{"type":42,"tag":571,"props":1732,"children":1733},{"style":594},[1734],{"type":48,"value":832},{"type":42,"tag":571,"props":1736,"children":1737},{"style":594},[1738],{"type":48,"value":837},{"type":42,"tag":571,"props":1740,"children":1741},{"class":573,"line":808},[1742],{"type":42,"tag":571,"props":1743,"children":1744},{"emptyLinePlaceholder":666},[1745],{"type":48,"value":669},{"type":42,"tag":571,"props":1747,"children":1748},{"class":573,"line":840},[1749],{"type":42,"tag":571,"props":1750,"children":1751},{"style":578},[1752],{"type":48,"value":1753},"    \u002F\u002F Collect data in Vite hooks\n",{"type":42,"tag":571,"props":1755,"children":1756},{"class":573,"line":870},[1757,1762,1766,1770,1774,1779,1783],{"type":42,"tag":571,"props":1758,"children":1759},{"style":695},[1760],{"type":48,"value":1761},"    transform",{"type":42,"tag":571,"props":1763,"children":1764},{"style":594},[1765],{"type":48,"value":755},{"type":42,"tag":571,"props":1767,"children":1768},{"style":758},[1769],{"type":48,"value":59},{"type":42,"tag":571,"props":1771,"children":1772},{"style":594},[1773],{"type":48,"value":728},{"type":42,"tag":571,"props":1775,"children":1776},{"style":758},[1777],{"type":48,"value":1778}," id",{"type":42,"tag":571,"props":1780,"children":1781},{"style":594},[1782],{"type":48,"value":373},{"type":42,"tag":571,"props":1784,"children":1785},{"style":594},[1786],{"type":48,"value":688},{"type":42,"tag":571,"props":1788,"children":1789},{"class":573,"line":908},[1790,1795,1799,1804,1808,1812,1816,1820,1824,1828,1833,1837,1842,1846],{"type":42,"tag":571,"props":1791,"children":1792},{"style":600},[1793],{"type":48,"value":1794},"      data",{"type":42,"tag":571,"props":1796,"children":1797},{"style":594},[1798],{"type":48,"value":115},{"type":42,"tag":571,"props":1800,"children":1801},{"style":715},[1802],{"type":48,"value":1803},"set",{"type":42,"tag":571,"props":1805,"children":1806},{"style":695},[1807],{"type":48,"value":755},{"type":42,"tag":571,"props":1809,"children":1810},{"style":600},[1811],{"type":48,"value":511},{"type":42,"tag":571,"props":1813,"children":1814},{"style":594},[1815],{"type":48,"value":728},{"type":42,"tag":571,"props":1817,"children":1818},{"style":594},[1819],{"type":48,"value":597},{"type":42,"tag":571,"props":1821,"children":1822},{"style":695},[1823],{"type":48,"value":1673},{"type":42,"tag":571,"props":1825,"children":1826},{"style":594},[1827],{"type":48,"value":703},{"type":42,"tag":571,"props":1829,"children":1830},{"style":600},[1831],{"type":48,"value":1832}," code",{"type":42,"tag":571,"props":1834,"children":1835},{"style":594},[1836],{"type":48,"value":115},{"type":42,"tag":571,"props":1838,"children":1839},{"style":600},[1840],{"type":48,"value":1841},"length",{"type":42,"tag":571,"props":1843,"children":1844},{"style":594},[1845],{"type":48,"value":608},{"type":42,"tag":571,"props":1847,"children":1848},{"style":695},[1849],{"type":48,"value":919},{"type":42,"tag":571,"props":1851,"children":1852},{"class":573,"line":922},[1853],{"type":42,"tag":571,"props":1854,"children":1855},{"style":594},[1856],{"type":48,"value":1404},{"type":42,"tag":571,"props":1858,"children":1859},{"class":573,"line":931},[1860],{"type":42,"tag":571,"props":1861,"children":1862},{"emptyLinePlaceholder":666},[1863],{"type":48,"value":669},{"type":42,"tag":571,"props":1865,"children":1866},{"class":573,"line":948},[1867,1871,1875],{"type":42,"tag":571,"props":1868,"children":1869},{"style":695},[1870],{"type":48,"value":1173},{"type":42,"tag":571,"props":1872,"children":1873},{"style":594},[1874],{"type":48,"value":703},{"type":42,"tag":571,"props":1876,"children":1877},{"style":594},[1878],{"type":48,"value":688},{"type":42,"tag":571,"props":1880,"children":1881},{"class":573,"line":961},[1882,1886,1890,1894,1898],{"type":42,"tag":571,"props":1883,"children":1884},{"style":695},[1885],{"type":48,"value":750},{"type":42,"tag":571,"props":1887,"children":1888},{"style":594},[1889],{"type":48,"value":755},{"type":42,"tag":571,"props":1891,"children":1892},{"style":758},[1893],{"type":48,"value":761},{"type":42,"tag":571,"props":1895,"children":1896},{"style":594},[1897],{"type":48,"value":373},{"type":42,"tag":571,"props":1899,"children":1900},{"style":594},[1901],{"type":48,"value":688},{"type":42,"tag":571,"props":1903,"children":1904},{"class":573,"line":1415},[1905],{"type":42,"tag":571,"props":1906,"children":1907},{"style":578},[1908],{"type":48,"value":1909},"        \u002F\u002F 1. Host static UI\n",{"type":42,"tag":571,"props":1911,"children":1913},{"class":573,"line":1912},20,[1914,1919,1924,1928,1932],{"type":42,"tag":571,"props":1915,"children":1916},{"style":888},[1917],{"type":48,"value":1918},"        const",{"type":42,"tag":571,"props":1920,"children":1921},{"style":600},[1922],{"type":48,"value":1923}," clientPath",{"type":42,"tag":571,"props":1925,"children":1926},{"style":594},[1927],{"type":48,"value":1641},{"type":42,"tag":571,"props":1929,"children":1930},{"style":715},[1931],{"type":48,"value":1527},{"type":42,"tag":571,"props":1933,"children":1934},{"style":695},[1935],{"type":48,"value":1936},"(\n",{"type":42,"tag":571,"props":1938,"children":1940},{"class":573,"line":1939},21,[1941,1946,1951,1955,1959,1964,1968,1972,1977,1981,1986,1990,1995],{"type":42,"tag":571,"props":1942,"children":1943},{"style":594},[1944],{"type":48,"value":1945},"          new",{"type":42,"tag":571,"props":1947,"children":1948},{"style":715},[1949],{"type":48,"value":1950}," URL",{"type":42,"tag":571,"props":1952,"children":1953},{"style":695},[1954],{"type":48,"value":755},{"type":42,"tag":571,"props":1956,"children":1957},{"style":594},[1958],{"type":48,"value":832},{"type":42,"tag":571,"props":1960,"children":1961},{"style":621},[1962],{"type":48,"value":1963},"..\u002Fdist\u002Fclient",{"type":42,"tag":571,"props":1965,"children":1966},{"style":594},[1967],{"type":48,"value":832},{"type":42,"tag":571,"props":1969,"children":1970},{"style":594},[1971],{"type":48,"value":728},{"type":42,"tag":571,"props":1973,"children":1974},{"style":588},[1975],{"type":48,"value":1976}," import",{"type":42,"tag":571,"props":1978,"children":1979},{"style":594},[1980],{"type":48,"value":115},{"type":42,"tag":571,"props":1982,"children":1983},{"style":600},[1984],{"type":48,"value":1985},"meta",{"type":42,"tag":571,"props":1987,"children":1988},{"style":594},[1989],{"type":48,"value":115},{"type":42,"tag":571,"props":1991,"children":1992},{"style":600},[1993],{"type":48,"value":1994},"url",{"type":42,"tag":571,"props":1996,"children":1997},{"style":695},[1998],{"type":48,"value":919},{"type":42,"tag":571,"props":2000,"children":2002},{"class":573,"line":2001},22,[2003],{"type":42,"tag":571,"props":2004,"children":2005},{"style":695},[2006],{"type":48,"value":2007},"        )\n",{"type":42,"tag":571,"props":2009,"children":2011},{"class":573,"line":2010},23,[2012,2016,2020,2025,2029,2034,2038,2042,2047,2051,2055,2059],{"type":42,"tag":571,"props":2013,"children":2014},{"style":600},[2015],{"type":48,"value":778},{"type":42,"tag":571,"props":2017,"children":2018},{"style":594},[2019],{"type":48,"value":115},{"type":42,"tag":571,"props":2021,"children":2022},{"style":600},[2023],{"type":48,"value":2024},"views",{"type":42,"tag":571,"props":2026,"children":2027},{"style":594},[2028],{"type":48,"value":115},{"type":42,"tag":571,"props":2030,"children":2031},{"style":715},[2032],{"type":48,"value":2033},"hostStatic",{"type":42,"tag":571,"props":2035,"children":2036},{"style":695},[2037],{"type":48,"value":755},{"type":42,"tag":571,"props":2039,"children":2040},{"style":594},[2041],{"type":48,"value":832},{"type":42,"tag":571,"props":2043,"children":2044},{"style":621},[2045],{"type":48,"value":2046},"\u002F__my-analyzer\u002F",{"type":42,"tag":571,"props":2048,"children":2049},{"style":594},[2050],{"type":48,"value":832},{"type":42,"tag":571,"props":2052,"children":2053},{"style":594},[2054],{"type":48,"value":728},{"type":42,"tag":571,"props":2056,"children":2057},{"style":600},[2058],{"type":48,"value":1923},{"type":42,"tag":571,"props":2060,"children":2061},{"style":695},[2062],{"type":48,"value":919},{"type":42,"tag":571,"props":2064,"children":2066},{"class":573,"line":2065},24,[2067],{"type":42,"tag":571,"props":2068,"children":2069},{"emptyLinePlaceholder":666},[2070],{"type":48,"value":669},{"type":42,"tag":571,"props":2072,"children":2074},{"class":573,"line":2073},25,[2075],{"type":42,"tag":571,"props":2076,"children":2077},{"style":578},[2078],{"type":48,"value":2079},"        \u002F\u002F 2. Register dock entry\n",{"type":42,"tag":571,"props":2081,"children":2083},{"class":573,"line":2082},26,[2084,2088,2092,2096,2100,2104,2108],{"type":42,"tag":571,"props":2085,"children":2086},{"style":600},[2087],{"type":48,"value":778},{"type":42,"tag":571,"props":2089,"children":2090},{"style":594},[2091],{"type":48,"value":115},{"type":42,"tag":571,"props":2093,"children":2094},{"style":600},[2095],{"type":48,"value":1220},{"type":42,"tag":571,"props":2097,"children":2098},{"style":594},[2099],{"type":48,"value":115},{"type":42,"tag":571,"props":2101,"children":2102},{"style":715},[2103],{"type":48,"value":796},{"type":42,"tag":571,"props":2105,"children":2106},{"style":695},[2107],{"type":48,"value":755},{"type":42,"tag":571,"props":2109,"children":2110},{"style":594},[2111],{"type":48,"value":805},{"type":42,"tag":571,"props":2113,"children":2115},{"class":573,"line":2114},27,[2116,2120,2124,2128,2132,2136],{"type":42,"tag":571,"props":2117,"children":2118},{"style":695},[2119],{"type":48,"value":814},{"type":42,"tag":571,"props":2121,"children":2122},{"style":594},[2123],{"type":48,"value":703},{"type":42,"tag":571,"props":2125,"children":2126},{"style":594},[2127],{"type":48,"value":618},{"type":42,"tag":571,"props":2129,"children":2130},{"style":621},[2131],{"type":48,"value":1730},{"type":42,"tag":571,"props":2133,"children":2134},{"style":594},[2135],{"type":48,"value":832},{"type":42,"tag":571,"props":2137,"children":2138},{"style":594},[2139],{"type":48,"value":837},{"type":42,"tag":571,"props":2141,"children":2143},{"class":573,"line":2142},28,[2144,2148,2152,2156,2161,2165],{"type":42,"tag":571,"props":2145,"children":2146},{"style":695},[2147],{"type":48,"value":846},{"type":42,"tag":571,"props":2149,"children":2150},{"style":594},[2151],{"type":48,"value":703},{"type":42,"tag":571,"props":2153,"children":2154},{"style":594},[2155],{"type":48,"value":618},{"type":42,"tag":571,"props":2157,"children":2158},{"style":621},[2159],{"type":48,"value":2160},"Analyzer",{"type":42,"tag":571,"props":2162,"children":2163},{"style":594},[2164],{"type":48,"value":832},{"type":42,"tag":571,"props":2166,"children":2167},{"style":594},[2168],{"type":48,"value":837},{"type":42,"tag":571,"props":2170,"children":2172},{"class":573,"line":2171},29,[2173,2177,2181,2185,2190,2194],{"type":42,"tag":571,"props":2174,"children":2175},{"style":695},[2176],{"type":48,"value":1299},{"type":42,"tag":571,"props":2178,"children":2179},{"style":594},[2180],{"type":48,"value":703},{"type":42,"tag":571,"props":2182,"children":2183},{"style":594},[2184],{"type":48,"value":618},{"type":42,"tag":571,"props":2186,"children":2187},{"style":621},[2188],{"type":48,"value":2189},"ph:chart-bar-duotone",{"type":42,"tag":571,"props":2191,"children":2192},{"style":594},[2193],{"type":48,"value":832},{"type":42,"tag":571,"props":2195,"children":2196},{"style":594},[2197],{"type":48,"value":837},{"type":42,"tag":571,"props":2199,"children":2201},{"class":573,"line":2200},30,[2202,2206,2210,2214,2218,2222],{"type":42,"tag":571,"props":2203,"children":2204},{"style":695},[2205],{"type":48,"value":1328},{"type":42,"tag":571,"props":2207,"children":2208},{"style":594},[2209],{"type":48,"value":703},{"type":42,"tag":571,"props":2211,"children":2212},{"style":594},[2213],{"type":48,"value":618},{"type":42,"tag":571,"props":2215,"children":2216},{"style":621},[2217],{"type":48,"value":1341},{"type":42,"tag":571,"props":2219,"children":2220},{"style":594},[2221],{"type":48,"value":832},{"type":42,"tag":571,"props":2223,"children":2224},{"style":594},[2225],{"type":48,"value":837},{"type":42,"tag":571,"props":2227,"children":2229},{"class":573,"line":2228},31,[2230,2234,2238,2242,2246,2250],{"type":42,"tag":571,"props":2231,"children":2232},{"style":695},[2233],{"type":48,"value":1357},{"type":42,"tag":571,"props":2235,"children":2236},{"style":594},[2237],{"type":48,"value":703},{"type":42,"tag":571,"props":2239,"children":2240},{"style":594},[2241],{"type":48,"value":618},{"type":42,"tag":571,"props":2243,"children":2244},{"style":621},[2245],{"type":48,"value":2046},{"type":42,"tag":571,"props":2247,"children":2248},{"style":594},[2249],{"type":48,"value":832},{"type":42,"tag":571,"props":2251,"children":2252},{"style":594},[2253],{"type":48,"value":837},{"type":42,"tag":571,"props":2255,"children":2257},{"class":573,"line":2256},32,[2258,2262],{"type":42,"tag":571,"props":2259,"children":2260},{"style":594},[2261],{"type":48,"value":914},{"type":42,"tag":571,"props":2263,"children":2264},{"style":695},[2265],{"type":48,"value":919},{"type":42,"tag":571,"props":2267,"children":2269},{"class":573,"line":2268},33,[2270],{"type":42,"tag":571,"props":2271,"children":2272},{"emptyLinePlaceholder":666},[2273],{"type":48,"value":669},{"type":42,"tag":571,"props":2275,"children":2277},{"class":573,"line":2276},34,[2278],{"type":42,"tag":571,"props":2279,"children":2280},{"style":578},[2281],{"type":48,"value":2282},"        \u002F\u002F 3. Register RPC function\n",{"type":42,"tag":571,"props":2284,"children":2286},{"class":573,"line":2285},35,[2287,2291,2295,2300,2304,2308],{"type":42,"tag":571,"props":2288,"children":2289},{"style":600},[2290],{"type":48,"value":778},{"type":42,"tag":571,"props":2292,"children":2293},{"style":594},[2294],{"type":48,"value":115},{"type":42,"tag":571,"props":2296,"children":2297},{"style":600},[2298],{"type":48,"value":2299},"rpc",{"type":42,"tag":571,"props":2301,"children":2302},{"style":594},[2303],{"type":48,"value":115},{"type":42,"tag":571,"props":2305,"children":2306},{"style":715},[2307],{"type":48,"value":796},{"type":42,"tag":571,"props":2309,"children":2310},{"style":695},[2311],{"type":48,"value":1936},{"type":42,"tag":571,"props":2313,"children":2315},{"class":573,"line":2314},36,[2316,2321,2325],{"type":42,"tag":571,"props":2317,"children":2318},{"style":715},[2319],{"type":48,"value":2320},"          defineRpcFunction",{"type":42,"tag":571,"props":2322,"children":2323},{"style":695},[2324],{"type":48,"value":755},{"type":42,"tag":571,"props":2326,"children":2327},{"style":594},[2328],{"type":48,"value":805},{"type":42,"tag":571,"props":2330,"children":2332},{"class":573,"line":2331},37,[2333,2338,2342,2346,2351,2355],{"type":42,"tag":571,"props":2334,"children":2335},{"style":695},[2336],{"type":48,"value":2337},"            name",{"type":42,"tag":571,"props":2339,"children":2340},{"style":594},[2341],{"type":48,"value":703},{"type":42,"tag":571,"props":2343,"children":2344},{"style":594},[2345],{"type":48,"value":618},{"type":42,"tag":571,"props":2347,"children":2348},{"style":621},[2349],{"type":48,"value":2350},"my-analyzer:get-data",{"type":42,"tag":571,"props":2352,"children":2353},{"style":594},[2354],{"type":48,"value":832},{"type":42,"tag":571,"props":2356,"children":2357},{"style":594},[2358],{"type":48,"value":837},{"type":42,"tag":571,"props":2360,"children":2362},{"class":573,"line":2361},38,[2363,2368,2372,2376,2381,2385],{"type":42,"tag":571,"props":2364,"children":2365},{"style":695},[2366],{"type":48,"value":2367},"            type",{"type":42,"tag":571,"props":2369,"children":2370},{"style":594},[2371],{"type":48,"value":703},{"type":42,"tag":571,"props":2373,"children":2374},{"style":594},[2375],{"type":48,"value":618},{"type":42,"tag":571,"props":2377,"children":2378},{"style":621},[2379],{"type":48,"value":2380},"query",{"type":42,"tag":571,"props":2382,"children":2383},{"style":594},[2384],{"type":48,"value":832},{"type":42,"tag":571,"props":2386,"children":2387},{"style":594},[2388],{"type":48,"value":837},{"type":42,"tag":571,"props":2390,"children":2392},{"class":573,"line":2391},39,[2393,2398,2402,2406,2410,2414],{"type":42,"tag":571,"props":2394,"children":2395},{"style":715},[2396],{"type":48,"value":2397},"            setup",{"type":42,"tag":571,"props":2399,"children":2400},{"style":594},[2401],{"type":48,"value":703},{"type":42,"tag":571,"props":2403,"children":2404},{"style":594},[2405],{"type":48,"value":885},{"type":42,"tag":571,"props":2407,"children":2408},{"style":888},[2409],{"type":48,"value":891},{"type":42,"tag":571,"props":2411,"children":2412},{"style":695},[2413],{"type":48,"value":142},{"type":42,"tag":571,"props":2415,"children":2416},{"style":594},[2417],{"type":48,"value":805},{"type":42,"tag":571,"props":2419,"children":2421},{"class":573,"line":2420},40,[2422,2427,2431,2436,2440,2444,2449,2453,2457,2461,2466,2470,2475,2480],{"type":42,"tag":571,"props":2423,"children":2424},{"style":715},[2425],{"type":48,"value":2426},"              handler",{"type":42,"tag":571,"props":2428,"children":2429},{"style":594},[2430],{"type":48,"value":703},{"type":42,"tag":571,"props":2432,"children":2433},{"style":888},[2434],{"type":48,"value":2435}," async",{"type":42,"tag":571,"props":2437,"children":2438},{"style":594},[2439],{"type":48,"value":885},{"type":42,"tag":571,"props":2441,"children":2442},{"style":888},[2443],{"type":48,"value":891},{"type":42,"tag":571,"props":2445,"children":2446},{"style":600},[2447],{"type":48,"value":2448}," Array",{"type":42,"tag":571,"props":2450,"children":2451},{"style":594},[2452],{"type":48,"value":115},{"type":42,"tag":571,"props":2454,"children":2455},{"style":715},[2456],{"type":48,"value":646},{"type":42,"tag":571,"props":2458,"children":2459},{"style":695},[2460],{"type":48,"value":755},{"type":42,"tag":571,"props":2462,"children":2463},{"style":600},[2464],{"type":48,"value":2465},"data",{"type":42,"tag":571,"props":2467,"children":2468},{"style":594},[2469],{"type":48,"value":115},{"type":42,"tag":571,"props":2471,"children":2472},{"style":715},[2473],{"type":48,"value":2474},"entries",{"type":42,"tag":571,"props":2476,"children":2477},{"style":695},[2478],{"type":48,"value":2479},"())",{"type":42,"tag":571,"props":2481,"children":2482},{"style":594},[2483],{"type":48,"value":837},{"type":42,"tag":571,"props":2485,"children":2487},{"class":573,"line":2486},41,[2488,2493,2497],{"type":42,"tag":571,"props":2489,"children":2490},{"style":594},[2491],{"type":48,"value":2492},"            }",{"type":42,"tag":571,"props":2494,"children":2495},{"style":695},[2496],{"type":48,"value":373},{"type":42,"tag":571,"props":2498,"children":2499},{"style":594},[2500],{"type":48,"value":837},{"type":42,"tag":571,"props":2502,"children":2504},{"class":573,"line":2503},42,[2505,2510],{"type":42,"tag":571,"props":2506,"children":2507},{"style":594},[2508],{"type":48,"value":2509},"          }",{"type":42,"tag":571,"props":2511,"children":2512},{"style":695},[2513],{"type":48,"value":919},{"type":42,"tag":571,"props":2515,"children":2517},{"class":573,"line":2516},43,[2518],{"type":42,"tag":571,"props":2519,"children":2520},{"style":695},[2521],{"type":48,"value":2007},{"type":42,"tag":571,"props":2523,"children":2525},{"class":573,"line":2524},44,[2526],{"type":42,"tag":571,"props":2527,"children":2528},{"style":594},[2529],{"type":48,"value":928},{"type":42,"tag":571,"props":2531,"children":2533},{"class":573,"line":2532},45,[2534],{"type":42,"tag":571,"props":2535,"children":2536},{"style":594},[2537],{"type":48,"value":1404},{"type":42,"tag":571,"props":2539,"children":2541},{"class":573,"line":2540},46,[2542],{"type":42,"tag":571,"props":2543,"children":2544},{"style":594},[2545],{"type":48,"value":1412},{"type":42,"tag":571,"props":2547,"children":2549},{"class":573,"line":2548},47,[2550],{"type":42,"tag":571,"props":2551,"children":2552},{"style":594},[2553],{"type":48,"value":967},{"type":42,"tag":117,"props":2555,"children":2557},{"id":2556},"namespacing-convention",[2558],{"type":48,"value":2559},"Namespacing Convention",{"type":42,"tag":51,"props":2561,"children":2562},{},[2563,2568],{"type":42,"tag":55,"props":2564,"children":2565},{},[2566],{"type":48,"value":2567},"CRITICAL",{"type":48,"value":2569},": Always prefix RPC functions, shared state keys, dock IDs, and command IDs with your plugin name:",{"type":42,"tag":560,"props":2571,"children":2573},{"className":562,"code":2572,"language":564,"meta":565,"style":565},"\u002F\u002F Good - namespaced\n'my-plugin:get-modules'\n'my-plugin:state'\n'my-plugin:clear-cache'  \u002F\u002F command ID\n\n\u002F\u002F Bad - may conflict\n'get-modules'\n'state'\n",[2574],{"type":42,"tag":59,"props":2575,"children":2576},{"__ignoreMap":565},[2577,2585,2601,2617,2638,2645,2653,2669],{"type":42,"tag":571,"props":2578,"children":2579},{"class":573,"line":574},[2580],{"type":42,"tag":571,"props":2581,"children":2582},{"style":578},[2583],{"type":48,"value":2584},"\u002F\u002F Good - namespaced\n",{"type":42,"tag":571,"props":2586,"children":2587},{"class":573,"line":584},[2588,2592,2597],{"type":42,"tag":571,"props":2589,"children":2590},{"style":594},[2591],{"type":48,"value":832},{"type":42,"tag":571,"props":2593,"children":2594},{"style":621},[2595],{"type":48,"value":2596},"my-plugin:get-modules",{"type":42,"tag":571,"props":2598,"children":2599},{"style":594},[2600],{"type":48,"value":628},{"type":42,"tag":571,"props":2602,"children":2603},{"class":573,"line":631},[2604,2608,2613],{"type":42,"tag":571,"props":2605,"children":2606},{"style":594},[2607],{"type":48,"value":832},{"type":42,"tag":571,"props":2609,"children":2610},{"style":621},[2611],{"type":48,"value":2612},"my-plugin:state",{"type":42,"tag":571,"props":2614,"children":2615},{"style":594},[2616],{"type":48,"value":628},{"type":42,"tag":571,"props":2618,"children":2619},{"class":573,"line":662},[2620,2624,2629,2633],{"type":42,"tag":571,"props":2621,"children":2622},{"style":594},[2623],{"type":48,"value":832},{"type":42,"tag":571,"props":2625,"children":2626},{"style":621},[2627],{"type":48,"value":2628},"my-plugin:clear-cache",{"type":42,"tag":571,"props":2630,"children":2631},{"style":594},[2632],{"type":48,"value":832},{"type":42,"tag":571,"props":2634,"children":2635},{"style":578},[2636],{"type":48,"value":2637},"  \u002F\u002F command ID\n",{"type":42,"tag":571,"props":2639,"children":2640},{"class":573,"line":672},[2641],{"type":42,"tag":571,"props":2642,"children":2643},{"emptyLinePlaceholder":666},[2644],{"type":48,"value":669},{"type":42,"tag":571,"props":2646,"children":2647},{"class":573,"line":691},[2648],{"type":42,"tag":571,"props":2649,"children":2650},{"style":578},[2651],{"type":48,"value":2652},"\u002F\u002F Bad - may conflict\n",{"type":42,"tag":571,"props":2654,"children":2655},{"class":573,"line":711},[2656,2660,2665],{"type":42,"tag":571,"props":2657,"children":2658},{"style":594},[2659],{"type":48,"value":832},{"type":42,"tag":571,"props":2661,"children":2662},{"style":621},[2663],{"type":48,"value":2664},"get-modules",{"type":42,"tag":571,"props":2666,"children":2667},{"style":594},[2668],{"type":48,"value":628},{"type":42,"tag":571,"props":2670,"children":2671},{"class":573,"line":735},[2672,2676,2681],{"type":42,"tag":571,"props":2673,"children":2674},{"style":594},[2675],{"type":48,"value":832},{"type":42,"tag":571,"props":2677,"children":2678},{"style":621},[2679],{"type":48,"value":2680},"state",{"type":42,"tag":571,"props":2682,"children":2683},{"style":594},[2684],{"type":48,"value":628},{"type":42,"tag":117,"props":2686,"children":2688},{"id":2687},"dock-entry-types",[2689],{"type":48,"value":2690},"Dock Entry Types",{"type":42,"tag":152,"props":2692,"children":2693},{},[2694,2710],{"type":42,"tag":156,"props":2695,"children":2696},{},[2697],{"type":42,"tag":160,"props":2698,"children":2699},{},[2700,2705],{"type":42,"tag":164,"props":2701,"children":2702},{},[2703],{"type":48,"value":2704},"Type",{"type":42,"tag":164,"props":2706,"children":2707},{},[2708],{"type":48,"value":2709},"Use Case",{"type":42,"tag":180,"props":2711,"children":2712},{},[2713,2729,2746,2763,2780],{"type":42,"tag":160,"props":2714,"children":2715},{},[2716,2724],{"type":42,"tag":187,"props":2717,"children":2718},{},[2719],{"type":42,"tag":59,"props":2720,"children":2722},{"className":2721},[],[2723],{"type":48,"value":1341},{"type":42,"tag":187,"props":2725,"children":2726},{},[2727],{"type":48,"value":2728},"Full UI panels, dashboards (most common)",{"type":42,"tag":160,"props":2730,"children":2731},{},[2732,2741],{"type":42,"tag":187,"props":2733,"children":2734},{},[2735],{"type":42,"tag":59,"props":2736,"children":2738},{"className":2737},[],[2739],{"type":48,"value":2740},"json-render",{"type":42,"tag":187,"props":2742,"children":2743},{},[2744],{"type":48,"value":2745},"Server-side JSON specs — zero client code needed",{"type":42,"tag":160,"props":2747,"children":2748},{},[2749,2758],{"type":42,"tag":187,"props":2750,"children":2751},{},[2752],{"type":42,"tag":59,"props":2753,"children":2755},{"className":2754},[],[2756],{"type":48,"value":2757},"action",{"type":42,"tag":187,"props":2759,"children":2760},{},[2761],{"type":48,"value":2762},"Buttons that trigger client-side scripts (inspectors, toggles)",{"type":42,"tag":160,"props":2764,"children":2765},{},[2766,2775],{"type":42,"tag":187,"props":2767,"children":2768},{},[2769],{"type":42,"tag":59,"props":2770,"children":2772},{"className":2771},[],[2773],{"type":48,"value":2774},"custom-render",{"type":42,"tag":187,"props":2776,"children":2777},{},[2778],{"type":48,"value":2779},"Direct DOM access in panel (framework mounting)",{"type":42,"tag":160,"props":2781,"children":2782},{},[2783,2792],{"type":42,"tag":187,"props":2784,"children":2785},{},[2786],{"type":42,"tag":59,"props":2787,"children":2789},{"className":2788},[],[2790],{"type":48,"value":2791},"launcher",{"type":42,"tag":187,"props":2793,"children":2794},{},[2795],{"type":48,"value":2796},"Actionable setup cards for initialization tasks",{"type":42,"tag":2798,"props":2799,"children":2801},"h3",{"id":2800},"iframe-entry",[2802],{"type":48,"value":2803},"Iframe Entry",{"type":42,"tag":560,"props":2805,"children":2807},{"className":562,"code":2806,"language":564,"meta":565,"style":565},"ctx.docks.register({\n  id: 'my-plugin',\n  title: 'My Plugin',\n  icon: 'ph:house-duotone',\n  type: 'iframe',\n  url: '\u002F__my-plugin\u002F',\n})\n",[2808],{"type":42,"tag":59,"props":2809,"children":2810},{"__ignoreMap":565},[2811,2842,2870,2898,2927,2955,2984],{"type":42,"tag":571,"props":2812,"children":2813},{"class":573,"line":574},[2814,2818,2822,2826,2830,2834,2838],{"type":42,"tag":571,"props":2815,"children":2816},{"style":600},[2817],{"type":48,"value":761},{"type":42,"tag":571,"props":2819,"children":2820},{"style":594},[2821],{"type":48,"value":115},{"type":42,"tag":571,"props":2823,"children":2824},{"style":600},[2825],{"type":48,"value":1220},{"type":42,"tag":571,"props":2827,"children":2828},{"style":594},[2829],{"type":48,"value":115},{"type":42,"tag":571,"props":2831,"children":2832},{"style":715},[2833],{"type":48,"value":796},{"type":42,"tag":571,"props":2835,"children":2836},{"style":600},[2837],{"type":48,"value":755},{"type":42,"tag":571,"props":2839,"children":2840},{"style":594},[2841],{"type":48,"value":805},{"type":42,"tag":571,"props":2843,"children":2844},{"class":573,"line":584},[2845,2850,2854,2858,2862,2866],{"type":42,"tag":571,"props":2846,"children":2847},{"style":695},[2848],{"type":48,"value":2849},"  id",{"type":42,"tag":571,"props":2851,"children":2852},{"style":594},[2853],{"type":48,"value":703},{"type":42,"tag":571,"props":2855,"children":2856},{"style":594},[2857],{"type":48,"value":618},{"type":42,"tag":571,"props":2859,"children":2860},{"style":621},[2861],{"type":48,"value":1157},{"type":42,"tag":571,"props":2863,"children":2864},{"style":594},[2865],{"type":48,"value":832},{"type":42,"tag":571,"props":2867,"children":2868},{"style":594},[2869],{"type":48,"value":837},{"type":42,"tag":571,"props":2871,"children":2872},{"class":573,"line":631},[2873,2878,2882,2886,2890,2894],{"type":42,"tag":571,"props":2874,"children":2875},{"style":695},[2876],{"type":48,"value":2877},"  title",{"type":42,"tag":571,"props":2879,"children":2880},{"style":594},[2881],{"type":48,"value":703},{"type":42,"tag":571,"props":2883,"children":2884},{"style":594},[2885],{"type":48,"value":618},{"type":42,"tag":571,"props":2887,"children":2888},{"style":621},[2889],{"type":48,"value":1283},{"type":42,"tag":571,"props":2891,"children":2892},{"style":594},[2893],{"type":48,"value":832},{"type":42,"tag":571,"props":2895,"children":2896},{"style":594},[2897],{"type":48,"value":837},{"type":42,"tag":571,"props":2899,"children":2900},{"class":573,"line":662},[2901,2906,2910,2914,2919,2923],{"type":42,"tag":571,"props":2902,"children":2903},{"style":695},[2904],{"type":48,"value":2905},"  icon",{"type":42,"tag":571,"props":2907,"children":2908},{"style":594},[2909],{"type":48,"value":703},{"type":42,"tag":571,"props":2911,"children":2912},{"style":594},[2913],{"type":48,"value":618},{"type":42,"tag":571,"props":2915,"children":2916},{"style":621},[2917],{"type":48,"value":2918},"ph:house-duotone",{"type":42,"tag":571,"props":2920,"children":2921},{"style":594},[2922],{"type":48,"value":832},{"type":42,"tag":571,"props":2924,"children":2925},{"style":594},[2926],{"type":48,"value":837},{"type":42,"tag":571,"props":2928,"children":2929},{"class":573,"line":672},[2930,2935,2939,2943,2947,2951],{"type":42,"tag":571,"props":2931,"children":2932},{"style":695},[2933],{"type":48,"value":2934},"  type",{"type":42,"tag":571,"props":2936,"children":2937},{"style":594},[2938],{"type":48,"value":703},{"type":42,"tag":571,"props":2940,"children":2941},{"style":594},[2942],{"type":48,"value":618},{"type":42,"tag":571,"props":2944,"children":2945},{"style":621},[2946],{"type":48,"value":1341},{"type":42,"tag":571,"props":2948,"children":2949},{"style":594},[2950],{"type":48,"value":832},{"type":42,"tag":571,"props":2952,"children":2953},{"style":594},[2954],{"type":48,"value":837},{"type":42,"tag":571,"props":2956,"children":2957},{"class":573,"line":691},[2958,2963,2967,2971,2976,2980],{"type":42,"tag":571,"props":2959,"children":2960},{"style":695},[2961],{"type":48,"value":2962},"  url",{"type":42,"tag":571,"props":2964,"children":2965},{"style":594},[2966],{"type":48,"value":703},{"type":42,"tag":571,"props":2968,"children":2969},{"style":594},[2970],{"type":48,"value":618},{"type":42,"tag":571,"props":2972,"children":2973},{"style":621},[2974],{"type":48,"value":2975},"\u002F__my-plugin\u002F",{"type":42,"tag":571,"props":2977,"children":2978},{"style":594},[2979],{"type":48,"value":832},{"type":42,"tag":571,"props":2981,"children":2982},{"style":594},[2983],{"type":48,"value":837},{"type":42,"tag":571,"props":2985,"children":2986},{"class":573,"line":711},[2987,2992],{"type":42,"tag":571,"props":2988,"children":2989},{"style":594},[2990],{"type":48,"value":2991},"}",{"type":42,"tag":571,"props":2993,"children":2994},{"style":600},[2995],{"type":48,"value":919},{"type":42,"tag":51,"props":2997,"children":2998},{},[2999,3001,3006],{"type":48,"value":3000},"Iframes can also point at a ",{"type":42,"tag":55,"props":3002,"children":3003},{},[3004],{"type":48,"value":3005},"remote-hosted URL",{"type":48,"value":3007}," that connects back via WebSocket, so you don't have to ship a SPA dist with your plugin:",{"type":42,"tag":560,"props":3009,"children":3011},{"className":562,"code":3010,"language":564,"meta":565,"style":565},"ctx.docks.register({\n  id: 'my-remote-tool',\n  title: 'My Tool',\n  icon: 'ph:cloud-duotone',\n  type: 'iframe',\n  url: 'https:\u002F\u002Fexample.com\u002Fdevtools',\n  remote: true, \u002F\u002F or { transport: 'query', originLock: false }\n})\n",[3012],{"type":42,"tag":59,"props":3013,"children":3014},{"__ignoreMap":565},[3015,3046,3074,3102,3130,3157,3184,3211],{"type":42,"tag":571,"props":3016,"children":3017},{"class":573,"line":574},[3018,3022,3026,3030,3034,3038,3042],{"type":42,"tag":571,"props":3019,"children":3020},{"style":600},[3021],{"type":48,"value":761},{"type":42,"tag":571,"props":3023,"children":3024},{"style":594},[3025],{"type":48,"value":115},{"type":42,"tag":571,"props":3027,"children":3028},{"style":600},[3029],{"type":48,"value":1220},{"type":42,"tag":571,"props":3031,"children":3032},{"style":594},[3033],{"type":48,"value":115},{"type":42,"tag":571,"props":3035,"children":3036},{"style":715},[3037],{"type":48,"value":796},{"type":42,"tag":571,"props":3039,"children":3040},{"style":600},[3041],{"type":48,"value":755},{"type":42,"tag":571,"props":3043,"children":3044},{"style":594},[3045],{"type":48,"value":805},{"type":42,"tag":571,"props":3047,"children":3048},{"class":573,"line":584},[3049,3053,3057,3061,3066,3070],{"type":42,"tag":571,"props":3050,"children":3051},{"style":695},[3052],{"type":48,"value":2849},{"type":42,"tag":571,"props":3054,"children":3055},{"style":594},[3056],{"type":48,"value":703},{"type":42,"tag":571,"props":3058,"children":3059},{"style":594},[3060],{"type":48,"value":618},{"type":42,"tag":571,"props":3062,"children":3063},{"style":621},[3064],{"type":48,"value":3065},"my-remote-tool",{"type":42,"tag":571,"props":3067,"children":3068},{"style":594},[3069],{"type":48,"value":832},{"type":42,"tag":571,"props":3071,"children":3072},{"style":594},[3073],{"type":48,"value":837},{"type":42,"tag":571,"props":3075,"children":3076},{"class":573,"line":631},[3077,3081,3085,3089,3094,3098],{"type":42,"tag":571,"props":3078,"children":3079},{"style":695},[3080],{"type":48,"value":2877},{"type":42,"tag":571,"props":3082,"children":3083},{"style":594},[3084],{"type":48,"value":703},{"type":42,"tag":571,"props":3086,"children":3087},{"style":594},[3088],{"type":48,"value":618},{"type":42,"tag":571,"props":3090,"children":3091},{"style":621},[3092],{"type":48,"value":3093},"My Tool",{"type":42,"tag":571,"props":3095,"children":3096},{"style":594},[3097],{"type":48,"value":832},{"type":42,"tag":571,"props":3099,"children":3100},{"style":594},[3101],{"type":48,"value":837},{"type":42,"tag":571,"props":3103,"children":3104},{"class":573,"line":662},[3105,3109,3113,3117,3122,3126],{"type":42,"tag":571,"props":3106,"children":3107},{"style":695},[3108],{"type":48,"value":2905},{"type":42,"tag":571,"props":3110,"children":3111},{"style":594},[3112],{"type":48,"value":703},{"type":42,"tag":571,"props":3114,"children":3115},{"style":594},[3116],{"type":48,"value":618},{"type":42,"tag":571,"props":3118,"children":3119},{"style":621},[3120],{"type":48,"value":3121},"ph:cloud-duotone",{"type":42,"tag":571,"props":3123,"children":3124},{"style":594},[3125],{"type":48,"value":832},{"type":42,"tag":571,"props":3127,"children":3128},{"style":594},[3129],{"type":48,"value":837},{"type":42,"tag":571,"props":3131,"children":3132},{"class":573,"line":672},[3133,3137,3141,3145,3149,3153],{"type":42,"tag":571,"props":3134,"children":3135},{"style":695},[3136],{"type":48,"value":2934},{"type":42,"tag":571,"props":3138,"children":3139},{"style":594},[3140],{"type":48,"value":703},{"type":42,"tag":571,"props":3142,"children":3143},{"style":594},[3144],{"type":48,"value":618},{"type":42,"tag":571,"props":3146,"children":3147},{"style":621},[3148],{"type":48,"value":1341},{"type":42,"tag":571,"props":3150,"children":3151},{"style":594},[3152],{"type":48,"value":832},{"type":42,"tag":571,"props":3154,"children":3155},{"style":594},[3156],{"type":48,"value":837},{"type":42,"tag":571,"props":3158,"children":3159},{"class":573,"line":691},[3160,3164,3168,3172,3176,3180],{"type":42,"tag":571,"props":3161,"children":3162},{"style":695},[3163],{"type":48,"value":2962},{"type":42,"tag":571,"props":3165,"children":3166},{"style":594},[3167],{"type":48,"value":703},{"type":42,"tag":571,"props":3169,"children":3170},{"style":594},[3171],{"type":48,"value":618},{"type":42,"tag":571,"props":3173,"children":3174},{"style":621},[3175],{"type":48,"value":1370},{"type":42,"tag":571,"props":3177,"children":3178},{"style":594},[3179],{"type":48,"value":832},{"type":42,"tag":571,"props":3181,"children":3182},{"style":594},[3183],{"type":48,"value":837},{"type":42,"tag":571,"props":3185,"children":3186},{"class":573,"line":711},[3187,3192,3196,3202,3206],{"type":42,"tag":571,"props":3188,"children":3189},{"style":695},[3190],{"type":48,"value":3191},"  remote",{"type":42,"tag":571,"props":3193,"children":3194},{"style":594},[3195],{"type":48,"value":703},{"type":42,"tag":571,"props":3197,"children":3199},{"style":3198},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[3200],{"type":48,"value":3201}," true",{"type":42,"tag":571,"props":3203,"children":3204},{"style":594},[3205],{"type":48,"value":728},{"type":42,"tag":571,"props":3207,"children":3208},{"style":578},[3209],{"type":48,"value":3210}," \u002F\u002F or { transport: 'query', originLock: false }\n",{"type":42,"tag":571,"props":3212,"children":3213},{"class":573,"line":735},[3214,3218],{"type":42,"tag":571,"props":3215,"children":3216},{"style":594},[3217],{"type":48,"value":2991},{"type":42,"tag":571,"props":3219,"children":3220},{"style":600},[3221],{"type":48,"value":919},{"type":42,"tag":51,"props":3223,"children":3224},{},[3225,3227,3233,3234,3240,3242,3248,3250,3256],{"type":48,"value":3226},"On the hosted page, call ",{"type":42,"tag":59,"props":3228,"children":3230},{"className":3229},[],[3231],{"type":48,"value":3232},"connectRemoteDevTools()",{"type":48,"value":100},{"type":42,"tag":59,"props":3235,"children":3237},{"className":3236},[],[3238],{"type":48,"value":3239},"@vitejs\u002Fdevtools-kit\u002Fclient",{"type":48,"value":3241}," to get a fully connected ",{"type":42,"tag":59,"props":3243,"children":3245},{"className":3244},[],[3246],{"type":48,"value":3247},"DevToolsRpcClient",{"type":48,"value":3249},". Dev-mode only — auto-hidden in build mode. See ",{"type":42,"tag":70,"props":3251,"children":3253},{"href":3252},".\u002Freferences\u002Fremote-client-patterns.md",[3254],{"type":48,"value":3255},"Remote Client Patterns",{"type":48,"value":115},{"type":42,"tag":2798,"props":3258,"children":3260},{"id":3259},"action-entry",[3261],{"type":48,"value":3262},"Action Entry",{"type":42,"tag":560,"props":3264,"children":3266},{"className":562,"code":3265,"language":564,"meta":565,"style":565},"ctx.docks.register({\n  id: 'my-inspector',\n  title: 'Inspector',\n  icon: 'ph:cursor-duotone',\n  type: 'action',\n  action: {\n    importFrom: 'my-plugin\u002Fdevtools-action',\n    importName: 'default',\n  },\n})\n",[3267],{"type":42,"tag":59,"props":3268,"children":3269},{"__ignoreMap":565},[3270,3301,3329,3357,3385,3412,3428,3457,3486,3494],{"type":42,"tag":571,"props":3271,"children":3272},{"class":573,"line":574},[3273,3277,3281,3285,3289,3293,3297],{"type":42,"tag":571,"props":3274,"children":3275},{"style":600},[3276],{"type":48,"value":761},{"type":42,"tag":571,"props":3278,"children":3279},{"style":594},[3280],{"type":48,"value":115},{"type":42,"tag":571,"props":3282,"children":3283},{"style":600},[3284],{"type":48,"value":1220},{"type":42,"tag":571,"props":3286,"children":3287},{"style":594},[3288],{"type":48,"value":115},{"type":42,"tag":571,"props":3290,"children":3291},{"style":715},[3292],{"type":48,"value":796},{"type":42,"tag":571,"props":3294,"children":3295},{"style":600},[3296],{"type":48,"value":755},{"type":42,"tag":571,"props":3298,"children":3299},{"style":594},[3300],{"type":48,"value":805},{"type":42,"tag":571,"props":3302,"children":3303},{"class":573,"line":584},[3304,3308,3312,3316,3321,3325],{"type":42,"tag":571,"props":3305,"children":3306},{"style":695},[3307],{"type":48,"value":2849},{"type":42,"tag":571,"props":3309,"children":3310},{"style":594},[3311],{"type":48,"value":703},{"type":42,"tag":571,"props":3313,"children":3314},{"style":594},[3315],{"type":48,"value":618},{"type":42,"tag":571,"props":3317,"children":3318},{"style":621},[3319],{"type":48,"value":3320},"my-inspector",{"type":42,"tag":571,"props":3322,"children":3323},{"style":594},[3324],{"type":48,"value":832},{"type":42,"tag":571,"props":3326,"children":3327},{"style":594},[3328],{"type":48,"value":837},{"type":42,"tag":571,"props":3330,"children":3331},{"class":573,"line":631},[3332,3336,3340,3344,3349,3353],{"type":42,"tag":571,"props":3333,"children":3334},{"style":695},[3335],{"type":48,"value":2877},{"type":42,"tag":571,"props":3337,"children":3338},{"style":594},[3339],{"type":48,"value":703},{"type":42,"tag":571,"props":3341,"children":3342},{"style":594},[3343],{"type":48,"value":618},{"type":42,"tag":571,"props":3345,"children":3346},{"style":621},[3347],{"type":48,"value":3348},"Inspector",{"type":42,"tag":571,"props":3350,"children":3351},{"style":594},[3352],{"type":48,"value":832},{"type":42,"tag":571,"props":3354,"children":3355},{"style":594},[3356],{"type":48,"value":837},{"type":42,"tag":571,"props":3358,"children":3359},{"class":573,"line":662},[3360,3364,3368,3372,3377,3381],{"type":42,"tag":571,"props":3361,"children":3362},{"style":695},[3363],{"type":48,"value":2905},{"type":42,"tag":571,"props":3365,"children":3366},{"style":594},[3367],{"type":48,"value":703},{"type":42,"tag":571,"props":3369,"children":3370},{"style":594},[3371],{"type":48,"value":618},{"type":42,"tag":571,"props":3373,"children":3374},{"style":621},[3375],{"type":48,"value":3376},"ph:cursor-duotone",{"type":42,"tag":571,"props":3378,"children":3379},{"style":594},[3380],{"type":48,"value":832},{"type":42,"tag":571,"props":3382,"children":3383},{"style":594},[3384],{"type":48,"value":837},{"type":42,"tag":571,"props":3386,"children":3387},{"class":573,"line":672},[3388,3392,3396,3400,3404,3408],{"type":42,"tag":571,"props":3389,"children":3390},{"style":695},[3391],{"type":48,"value":2934},{"type":42,"tag":571,"props":3393,"children":3394},{"style":594},[3395],{"type":48,"value":703},{"type":42,"tag":571,"props":3397,"children":3398},{"style":594},[3399],{"type":48,"value":618},{"type":42,"tag":571,"props":3401,"children":3402},{"style":621},[3403],{"type":48,"value":2757},{"type":42,"tag":571,"props":3405,"children":3406},{"style":594},[3407],{"type":48,"value":832},{"type":42,"tag":571,"props":3409,"children":3410},{"style":594},[3411],{"type":48,"value":837},{"type":42,"tag":571,"props":3413,"children":3414},{"class":573,"line":691},[3415,3420,3424],{"type":42,"tag":571,"props":3416,"children":3417},{"style":695},[3418],{"type":48,"value":3419},"  action",{"type":42,"tag":571,"props":3421,"children":3422},{"style":594},[3423],{"type":48,"value":703},{"type":42,"tag":571,"props":3425,"children":3426},{"style":594},[3427],{"type":48,"value":688},{"type":42,"tag":571,"props":3429,"children":3430},{"class":573,"line":711},[3431,3436,3440,3444,3449,3453],{"type":42,"tag":571,"props":3432,"children":3433},{"style":695},[3434],{"type":48,"value":3435},"    importFrom",{"type":42,"tag":571,"props":3437,"children":3438},{"style":594},[3439],{"type":48,"value":703},{"type":42,"tag":571,"props":3441,"children":3442},{"style":594},[3443],{"type":48,"value":618},{"type":42,"tag":571,"props":3445,"children":3446},{"style":621},[3447],{"type":48,"value":3448},"my-plugin\u002Fdevtools-action",{"type":42,"tag":571,"props":3450,"children":3451},{"style":594},[3452],{"type":48,"value":832},{"type":42,"tag":571,"props":3454,"children":3455},{"style":594},[3456],{"type":48,"value":837},{"type":42,"tag":571,"props":3458,"children":3459},{"class":573,"line":735},[3460,3465,3469,3473,3478,3482],{"type":42,"tag":571,"props":3461,"children":3462},{"style":695},[3463],{"type":48,"value":3464},"    importName",{"type":42,"tag":571,"props":3466,"children":3467},{"style":594},[3468],{"type":48,"value":703},{"type":42,"tag":571,"props":3470,"children":3471},{"style":594},[3472],{"type":48,"value":618},{"type":42,"tag":571,"props":3474,"children":3475},{"style":621},[3476],{"type":48,"value":3477},"default",{"type":42,"tag":571,"props":3479,"children":3480},{"style":594},[3481],{"type":48,"value":832},{"type":42,"tag":571,"props":3483,"children":3484},{"style":594},[3485],{"type":48,"value":837},{"type":42,"tag":571,"props":3487,"children":3488},{"class":573,"line":744},[3489],{"type":42,"tag":571,"props":3490,"children":3491},{"style":594},[3492],{"type":48,"value":3493},"  },\n",{"type":42,"tag":571,"props":3495,"children":3496},{"class":573,"line":772},[3497,3501],{"type":42,"tag":571,"props":3498,"children":3499},{"style":594},[3500],{"type":48,"value":2991},{"type":42,"tag":571,"props":3502,"children":3503},{"style":600},[3504],{"type":48,"value":919},{"type":42,"tag":2798,"props":3506,"children":3508},{"id":3507},"custom-render-entry",[3509],{"type":48,"value":3510},"Custom Render Entry",{"type":42,"tag":560,"props":3512,"children":3514},{"className":562,"code":3513,"language":564,"meta":565,"style":565},"ctx.docks.register({\n  id: 'my-custom',\n  title: 'Custom View',\n  icon: 'ph:code-duotone',\n  type: 'custom-render',\n  renderer: {\n    importFrom: 'my-plugin\u002Fdevtools-renderer',\n    importName: 'default',\n  },\n})\n",[3515],{"type":42,"tag":59,"props":3516,"children":3517},{"__ignoreMap":565},[3518,3549,3577,3605,3633,3660,3676,3704,3731,3738],{"type":42,"tag":571,"props":3519,"children":3520},{"class":573,"line":574},[3521,3525,3529,3533,3537,3541,3545],{"type":42,"tag":571,"props":3522,"children":3523},{"style":600},[3524],{"type":48,"value":761},{"type":42,"tag":571,"props":3526,"children":3527},{"style":594},[3528],{"type":48,"value":115},{"type":42,"tag":571,"props":3530,"children":3531},{"style":600},[3532],{"type":48,"value":1220},{"type":42,"tag":571,"props":3534,"children":3535},{"style":594},[3536],{"type":48,"value":115},{"type":42,"tag":571,"props":3538,"children":3539},{"style":715},[3540],{"type":48,"value":796},{"type":42,"tag":571,"props":3542,"children":3543},{"style":600},[3544],{"type":48,"value":755},{"type":42,"tag":571,"props":3546,"children":3547},{"style":594},[3548],{"type":48,"value":805},{"type":42,"tag":571,"props":3550,"children":3551},{"class":573,"line":584},[3552,3556,3560,3564,3569,3573],{"type":42,"tag":571,"props":3553,"children":3554},{"style":695},[3555],{"type":48,"value":2849},{"type":42,"tag":571,"props":3557,"children":3558},{"style":594},[3559],{"type":48,"value":703},{"type":42,"tag":571,"props":3561,"children":3562},{"style":594},[3563],{"type":48,"value":618},{"type":42,"tag":571,"props":3565,"children":3566},{"style":621},[3567],{"type":48,"value":3568},"my-custom",{"type":42,"tag":571,"props":3570,"children":3571},{"style":594},[3572],{"type":48,"value":832},{"type":42,"tag":571,"props":3574,"children":3575},{"style":594},[3576],{"type":48,"value":837},{"type":42,"tag":571,"props":3578,"children":3579},{"class":573,"line":631},[3580,3584,3588,3592,3597,3601],{"type":42,"tag":571,"props":3581,"children":3582},{"style":695},[3583],{"type":48,"value":2877},{"type":42,"tag":571,"props":3585,"children":3586},{"style":594},[3587],{"type":48,"value":703},{"type":42,"tag":571,"props":3589,"children":3590},{"style":594},[3591],{"type":48,"value":618},{"type":42,"tag":571,"props":3593,"children":3594},{"style":621},[3595],{"type":48,"value":3596},"Custom View",{"type":42,"tag":571,"props":3598,"children":3599},{"style":594},[3600],{"type":48,"value":832},{"type":42,"tag":571,"props":3602,"children":3603},{"style":594},[3604],{"type":48,"value":837},{"type":42,"tag":571,"props":3606,"children":3607},{"class":573,"line":662},[3608,3612,3616,3620,3625,3629],{"type":42,"tag":571,"props":3609,"children":3610},{"style":695},[3611],{"type":48,"value":2905},{"type":42,"tag":571,"props":3613,"children":3614},{"style":594},[3615],{"type":48,"value":703},{"type":42,"tag":571,"props":3617,"children":3618},{"style":594},[3619],{"type":48,"value":618},{"type":42,"tag":571,"props":3621,"children":3622},{"style":621},[3623],{"type":48,"value":3624},"ph:code-duotone",{"type":42,"tag":571,"props":3626,"children":3627},{"style":594},[3628],{"type":48,"value":832},{"type":42,"tag":571,"props":3630,"children":3631},{"style":594},[3632],{"type":48,"value":837},{"type":42,"tag":571,"props":3634,"children":3635},{"class":573,"line":672},[3636,3640,3644,3648,3652,3656],{"type":42,"tag":571,"props":3637,"children":3638},{"style":695},[3639],{"type":48,"value":2934},{"type":42,"tag":571,"props":3641,"children":3642},{"style":594},[3643],{"type":48,"value":703},{"type":42,"tag":571,"props":3645,"children":3646},{"style":594},[3647],{"type":48,"value":618},{"type":42,"tag":571,"props":3649,"children":3650},{"style":621},[3651],{"type":48,"value":2774},{"type":42,"tag":571,"props":3653,"children":3654},{"style":594},[3655],{"type":48,"value":832},{"type":42,"tag":571,"props":3657,"children":3658},{"style":594},[3659],{"type":48,"value":837},{"type":42,"tag":571,"props":3661,"children":3662},{"class":573,"line":691},[3663,3668,3672],{"type":42,"tag":571,"props":3664,"children":3665},{"style":695},[3666],{"type":48,"value":3667},"  renderer",{"type":42,"tag":571,"props":3669,"children":3670},{"style":594},[3671],{"type":48,"value":703},{"type":42,"tag":571,"props":3673,"children":3674},{"style":594},[3675],{"type":48,"value":688},{"type":42,"tag":571,"props":3677,"children":3678},{"class":573,"line":711},[3679,3683,3687,3691,3696,3700],{"type":42,"tag":571,"props":3680,"children":3681},{"style":695},[3682],{"type":48,"value":3435},{"type":42,"tag":571,"props":3684,"children":3685},{"style":594},[3686],{"type":48,"value":703},{"type":42,"tag":571,"props":3688,"children":3689},{"style":594},[3690],{"type":48,"value":618},{"type":42,"tag":571,"props":3692,"children":3693},{"style":621},[3694],{"type":48,"value":3695},"my-plugin\u002Fdevtools-renderer",{"type":42,"tag":571,"props":3697,"children":3698},{"style":594},[3699],{"type":48,"value":832},{"type":42,"tag":571,"props":3701,"children":3702},{"style":594},[3703],{"type":48,"value":837},{"type":42,"tag":571,"props":3705,"children":3706},{"class":573,"line":735},[3707,3711,3715,3719,3723,3727],{"type":42,"tag":571,"props":3708,"children":3709},{"style":695},[3710],{"type":48,"value":3464},{"type":42,"tag":571,"props":3712,"children":3713},{"style":594},[3714],{"type":48,"value":703},{"type":42,"tag":571,"props":3716,"children":3717},{"style":594},[3718],{"type":48,"value":618},{"type":42,"tag":571,"props":3720,"children":3721},{"style":621},[3722],{"type":48,"value":3477},{"type":42,"tag":571,"props":3724,"children":3725},{"style":594},[3726],{"type":48,"value":832},{"type":42,"tag":571,"props":3728,"children":3729},{"style":594},[3730],{"type":48,"value":837},{"type":42,"tag":571,"props":3732,"children":3733},{"class":573,"line":744},[3734],{"type":42,"tag":571,"props":3735,"children":3736},{"style":594},[3737],{"type":48,"value":3493},{"type":42,"tag":571,"props":3739,"children":3740},{"class":573,"line":772},[3741,3745],{"type":42,"tag":571,"props":3742,"children":3743},{"style":594},[3744],{"type":48,"value":2991},{"type":42,"tag":571,"props":3746,"children":3747},{"style":600},[3748],{"type":48,"value":919},{"type":42,"tag":2798,"props":3750,"children":3752},{"id":3751},"json-render-entry",[3753],{"type":48,"value":3754},"JSON Render Entry",{"type":42,"tag":51,"props":3756,"children":3757},{},[3758],{"type":48,"value":3759},"Build UIs entirely from server-side TypeScript — no client code needed:",{"type":42,"tag":560,"props":3761,"children":3763},{"className":562,"code":3762,"language":564,"meta":565,"style":565},"const ui = ctx.createJsonRenderer({\n  root: 'root',\n  elements: {\n    root: {\n      type: 'Stack',\n      props: { direction: 'vertical', gap: 12 },\n      children: ['heading', 'info'],\n    },\n    heading: {\n      type: 'Text',\n      props: { content: 'Hello from JSON!', variant: 'heading' },\n    },\n    info: {\n      type: 'KeyValueTable',\n      props: {\n        entries: [\n          { key: 'Version', value: '1.0.0' },\n          { key: 'Status', value: 'Running' },\n        ],\n      },\n    },\n  },\n})\n\nctx.docks.register({\n  id: 'my-panel',\n  title: 'My Panel',\n  icon: 'ph:chart-bar-duotone',\n  type: 'json-render',\n  ui,\n})\n",[3764],{"type":42,"tag":59,"props":3765,"children":3766},{"__ignoreMap":565},[3767,3806,3834,3850,3866,3895,3957,4013,4020,4036,4064,4130,4137,4153,4181,4196,4212,4272,4329,4341,4348,4355,4362,4373,4380,4411,4439,4467,4494,4521,4533],{"type":42,"tag":571,"props":3768,"children":3769},{"class":573,"line":574},[3770,3775,3780,3784,3789,3793,3798,3802],{"type":42,"tag":571,"props":3771,"children":3772},{"style":888},[3773],{"type":48,"value":3774},"const",{"type":42,"tag":571,"props":3776,"children":3777},{"style":600},[3778],{"type":48,"value":3779}," ui ",{"type":42,"tag":571,"props":3781,"children":3782},{"style":594},[3783],{"type":48,"value":1022},{"type":42,"tag":571,"props":3785,"children":3786},{"style":600},[3787],{"type":48,"value":3788}," ctx",{"type":42,"tag":571,"props":3790,"children":3791},{"style":594},[3792],{"type":48,"value":115},{"type":42,"tag":571,"props":3794,"children":3795},{"style":715},[3796],{"type":48,"value":3797},"createJsonRenderer",{"type":42,"tag":571,"props":3799,"children":3800},{"style":600},[3801],{"type":48,"value":755},{"type":42,"tag":571,"props":3803,"children":3804},{"style":594},[3805],{"type":48,"value":805},{"type":42,"tag":571,"props":3807,"children":3808},{"class":573,"line":584},[3809,3814,3818,3822,3826,3830],{"type":42,"tag":571,"props":3810,"children":3811},{"style":695},[3812],{"type":48,"value":3813},"  root",{"type":42,"tag":571,"props":3815,"children":3816},{"style":594},[3817],{"type":48,"value":703},{"type":42,"tag":571,"props":3819,"children":3820},{"style":594},[3821],{"type":48,"value":618},{"type":42,"tag":571,"props":3823,"children":3824},{"style":621},[3825],{"type":48,"value":39},{"type":42,"tag":571,"props":3827,"children":3828},{"style":594},[3829],{"type":48,"value":832},{"type":42,"tag":571,"props":3831,"children":3832},{"style":594},[3833],{"type":48,"value":837},{"type":42,"tag":571,"props":3835,"children":3836},{"class":573,"line":631},[3837,3842,3846],{"type":42,"tag":571,"props":3838,"children":3839},{"style":695},[3840],{"type":48,"value":3841},"  elements",{"type":42,"tag":571,"props":3843,"children":3844},{"style":594},[3845],{"type":48,"value":703},{"type":42,"tag":571,"props":3847,"children":3848},{"style":594},[3849],{"type":48,"value":688},{"type":42,"tag":571,"props":3851,"children":3852},{"class":573,"line":662},[3853,3858,3862],{"type":42,"tag":571,"props":3854,"children":3855},{"style":695},[3856],{"type":48,"value":3857},"    root",{"type":42,"tag":571,"props":3859,"children":3860},{"style":594},[3861],{"type":48,"value":703},{"type":42,"tag":571,"props":3863,"children":3864},{"style":594},[3865],{"type":48,"value":688},{"type":42,"tag":571,"props":3867,"children":3868},{"class":573,"line":672},[3869,3874,3878,3882,3887,3891],{"type":42,"tag":571,"props":3870,"children":3871},{"style":695},[3872],{"type":48,"value":3873},"      type",{"type":42,"tag":571,"props":3875,"children":3876},{"style":594},[3877],{"type":48,"value":703},{"type":42,"tag":571,"props":3879,"children":3880},{"style":594},[3881],{"type":48,"value":618},{"type":42,"tag":571,"props":3883,"children":3884},{"style":621},[3885],{"type":48,"value":3886},"Stack",{"type":42,"tag":571,"props":3888,"children":3889},{"style":594},[3890],{"type":48,"value":832},{"type":42,"tag":571,"props":3892,"children":3893},{"style":594},[3894],{"type":48,"value":837},{"type":42,"tag":571,"props":3896,"children":3897},{"class":573,"line":691},[3898,3903,3907,3911,3916,3920,3924,3929,3933,3937,3942,3946,3952],{"type":42,"tag":571,"props":3899,"children":3900},{"style":695},[3901],{"type":48,"value":3902},"      props",{"type":42,"tag":571,"props":3904,"children":3905},{"style":594},[3906],{"type":48,"value":703},{"type":42,"tag":571,"props":3908,"children":3909},{"style":594},[3910],{"type":48,"value":597},{"type":42,"tag":571,"props":3912,"children":3913},{"style":695},[3914],{"type":48,"value":3915}," direction",{"type":42,"tag":571,"props":3917,"children":3918},{"style":594},[3919],{"type":48,"value":703},{"type":42,"tag":571,"props":3921,"children":3922},{"style":594},[3923],{"type":48,"value":618},{"type":42,"tag":571,"props":3925,"children":3926},{"style":621},[3927],{"type":48,"value":3928},"vertical",{"type":42,"tag":571,"props":3930,"children":3931},{"style":594},[3932],{"type":48,"value":832},{"type":42,"tag":571,"props":3934,"children":3935},{"style":594},[3936],{"type":48,"value":728},{"type":42,"tag":571,"props":3938,"children":3939},{"style":695},[3940],{"type":48,"value":3941}," gap",{"type":42,"tag":571,"props":3943,"children":3944},{"style":594},[3945],{"type":48,"value":703},{"type":42,"tag":571,"props":3947,"children":3949},{"style":3948},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[3950],{"type":48,"value":3951}," 12",{"type":42,"tag":571,"props":3953,"children":3954},{"style":594},[3955],{"type":48,"value":3956}," },\n",{"type":42,"tag":571,"props":3958,"children":3959},{"class":573,"line":711},[3960,3965,3969,3974,3978,3983,3987,3991,3995,4000,4004,4009],{"type":42,"tag":571,"props":3961,"children":3962},{"style":695},[3963],{"type":48,"value":3964},"      children",{"type":42,"tag":571,"props":3966,"children":3967},{"style":594},[3968],{"type":48,"value":703},{"type":42,"tag":571,"props":3970,"children":3971},{"style":600},[3972],{"type":48,"value":3973}," [",{"type":42,"tag":571,"props":3975,"children":3976},{"style":594},[3977],{"type":48,"value":832},{"type":42,"tag":571,"props":3979,"children":3980},{"style":621},[3981],{"type":48,"value":3982},"heading",{"type":42,"tag":571,"props":3984,"children":3985},{"style":594},[3986],{"type":48,"value":832},{"type":42,"tag":571,"props":3988,"children":3989},{"style":594},[3990],{"type":48,"value":728},{"type":42,"tag":571,"props":3992,"children":3993},{"style":594},[3994],{"type":48,"value":618},{"type":42,"tag":571,"props":3996,"children":3997},{"style":621},[3998],{"type":48,"value":3999},"info",{"type":42,"tag":571,"props":4001,"children":4002},{"style":594},[4003],{"type":48,"value":832},{"type":42,"tag":571,"props":4005,"children":4006},{"style":600},[4007],{"type":48,"value":4008},"]",{"type":42,"tag":571,"props":4010,"children":4011},{"style":594},[4012],{"type":48,"value":837},{"type":42,"tag":571,"props":4014,"children":4015},{"class":573,"line":735},[4016],{"type":42,"tag":571,"props":4017,"children":4018},{"style":594},[4019],{"type":48,"value":1404},{"type":42,"tag":571,"props":4021,"children":4022},{"class":573,"line":744},[4023,4028,4032],{"type":42,"tag":571,"props":4024,"children":4025},{"style":695},[4026],{"type":48,"value":4027},"    heading",{"type":42,"tag":571,"props":4029,"children":4030},{"style":594},[4031],{"type":48,"value":703},{"type":42,"tag":571,"props":4033,"children":4034},{"style":594},[4035],{"type":48,"value":688},{"type":42,"tag":571,"props":4037,"children":4038},{"class":573,"line":772},[4039,4043,4047,4051,4056,4060],{"type":42,"tag":571,"props":4040,"children":4041},{"style":695},[4042],{"type":48,"value":3873},{"type":42,"tag":571,"props":4044,"children":4045},{"style":594},[4046],{"type":48,"value":703},{"type":42,"tag":571,"props":4048,"children":4049},{"style":594},[4050],{"type":48,"value":618},{"type":42,"tag":571,"props":4052,"children":4053},{"style":621},[4054],{"type":48,"value":4055},"Text",{"type":42,"tag":571,"props":4057,"children":4058},{"style":594},[4059],{"type":48,"value":832},{"type":42,"tag":571,"props":4061,"children":4062},{"style":594},[4063],{"type":48,"value":837},{"type":42,"tag":571,"props":4065,"children":4066},{"class":573,"line":808},[4067,4071,4075,4079,4084,4088,4092,4097,4101,4105,4110,4114,4118,4122,4126],{"type":42,"tag":571,"props":4068,"children":4069},{"style":695},[4070],{"type":48,"value":3902},{"type":42,"tag":571,"props":4072,"children":4073},{"style":594},[4074],{"type":48,"value":703},{"type":42,"tag":571,"props":4076,"children":4077},{"style":594},[4078],{"type":48,"value":597},{"type":42,"tag":571,"props":4080,"children":4081},{"style":695},[4082],{"type":48,"value":4083}," content",{"type":42,"tag":571,"props":4085,"children":4086},{"style":594},[4087],{"type":48,"value":703},{"type":42,"tag":571,"props":4089,"children":4090},{"style":594},[4091],{"type":48,"value":618},{"type":42,"tag":571,"props":4093,"children":4094},{"style":621},[4095],{"type":48,"value":4096},"Hello from JSON!",{"type":42,"tag":571,"props":4098,"children":4099},{"style":594},[4100],{"type":48,"value":832},{"type":42,"tag":571,"props":4102,"children":4103},{"style":594},[4104],{"type":48,"value":728},{"type":42,"tag":571,"props":4106,"children":4107},{"style":695},[4108],{"type":48,"value":4109}," variant",{"type":42,"tag":571,"props":4111,"children":4112},{"style":594},[4113],{"type":48,"value":703},{"type":42,"tag":571,"props":4115,"children":4116},{"style":594},[4117],{"type":48,"value":618},{"type":42,"tag":571,"props":4119,"children":4120},{"style":621},[4121],{"type":48,"value":3982},{"type":42,"tag":571,"props":4123,"children":4124},{"style":594},[4125],{"type":48,"value":832},{"type":42,"tag":571,"props":4127,"children":4128},{"style":594},[4129],{"type":48,"value":3956},{"type":42,"tag":571,"props":4131,"children":4132},{"class":573,"line":840},[4133],{"type":42,"tag":571,"props":4134,"children":4135},{"style":594},[4136],{"type":48,"value":1404},{"type":42,"tag":571,"props":4138,"children":4139},{"class":573,"line":870},[4140,4145,4149],{"type":42,"tag":571,"props":4141,"children":4142},{"style":695},[4143],{"type":48,"value":4144},"    info",{"type":42,"tag":571,"props":4146,"children":4147},{"style":594},[4148],{"type":48,"value":703},{"type":42,"tag":571,"props":4150,"children":4151},{"style":594},[4152],{"type":48,"value":688},{"type":42,"tag":571,"props":4154,"children":4155},{"class":573,"line":908},[4156,4160,4164,4168,4173,4177],{"type":42,"tag":571,"props":4157,"children":4158},{"style":695},[4159],{"type":48,"value":3873},{"type":42,"tag":571,"props":4161,"children":4162},{"style":594},[4163],{"type":48,"value":703},{"type":42,"tag":571,"props":4165,"children":4166},{"style":594},[4167],{"type":48,"value":618},{"type":42,"tag":571,"props":4169,"children":4170},{"style":621},[4171],{"type":48,"value":4172},"KeyValueTable",{"type":42,"tag":571,"props":4174,"children":4175},{"style":594},[4176],{"type":48,"value":832},{"type":42,"tag":571,"props":4178,"children":4179},{"style":594},[4180],{"type":48,"value":837},{"type":42,"tag":571,"props":4182,"children":4183},{"class":573,"line":922},[4184,4188,4192],{"type":42,"tag":571,"props":4185,"children":4186},{"style":695},[4187],{"type":48,"value":3902},{"type":42,"tag":571,"props":4189,"children":4190},{"style":594},[4191],{"type":48,"value":703},{"type":42,"tag":571,"props":4193,"children":4194},{"style":594},[4195],{"type":48,"value":688},{"type":42,"tag":571,"props":4197,"children":4198},{"class":573,"line":931},[4199,4204,4208],{"type":42,"tag":571,"props":4200,"children":4201},{"style":695},[4202],{"type":48,"value":4203},"        entries",{"type":42,"tag":571,"props":4205,"children":4206},{"style":594},[4207],{"type":48,"value":703},{"type":42,"tag":571,"props":4209,"children":4210},{"style":600},[4211],{"type":48,"value":708},{"type":42,"tag":571,"props":4213,"children":4214},{"class":573,"line":948},[4215,4220,4225,4229,4233,4238,4242,4246,4251,4255,4259,4264,4268],{"type":42,"tag":571,"props":4216,"children":4217},{"style":594},[4218],{"type":48,"value":4219},"          {",{"type":42,"tag":571,"props":4221,"children":4222},{"style":695},[4223],{"type":48,"value":4224}," key",{"type":42,"tag":571,"props":4226,"children":4227},{"style":594},[4228],{"type":48,"value":703},{"type":42,"tag":571,"props":4230,"children":4231},{"style":594},[4232],{"type":48,"value":618},{"type":42,"tag":571,"props":4234,"children":4235},{"style":621},[4236],{"type":48,"value":4237},"Version",{"type":42,"tag":571,"props":4239,"children":4240},{"style":594},[4241],{"type":48,"value":832},{"type":42,"tag":571,"props":4243,"children":4244},{"style":594},[4245],{"type":48,"value":728},{"type":42,"tag":571,"props":4247,"children":4248},{"style":695},[4249],{"type":48,"value":4250}," value",{"type":42,"tag":571,"props":4252,"children":4253},{"style":594},[4254],{"type":48,"value":703},{"type":42,"tag":571,"props":4256,"children":4257},{"style":594},[4258],{"type":48,"value":618},{"type":42,"tag":571,"props":4260,"children":4261},{"style":621},[4262],{"type":48,"value":4263},"1.0.0",{"type":42,"tag":571,"props":4265,"children":4266},{"style":594},[4267],{"type":48,"value":832},{"type":42,"tag":571,"props":4269,"children":4270},{"style":594},[4271],{"type":48,"value":3956},{"type":42,"tag":571,"props":4273,"children":4274},{"class":573,"line":961},[4275,4279,4283,4287,4291,4296,4300,4304,4308,4312,4316,4321,4325],{"type":42,"tag":571,"props":4276,"children":4277},{"style":594},[4278],{"type":48,"value":4219},{"type":42,"tag":571,"props":4280,"children":4281},{"style":695},[4282],{"type":48,"value":4224},{"type":42,"tag":571,"props":4284,"children":4285},{"style":594},[4286],{"type":48,"value":703},{"type":42,"tag":571,"props":4288,"children":4289},{"style":594},[4290],{"type":48,"value":618},{"type":42,"tag":571,"props":4292,"children":4293},{"style":621},[4294],{"type":48,"value":4295},"Status",{"type":42,"tag":571,"props":4297,"children":4298},{"style":594},[4299],{"type":48,"value":832},{"type":42,"tag":571,"props":4301,"children":4302},{"style":594},[4303],{"type":48,"value":728},{"type":42,"tag":571,"props":4305,"children":4306},{"style":695},[4307],{"type":48,"value":4250},{"type":42,"tag":571,"props":4309,"children":4310},{"style":594},[4311],{"type":48,"value":703},{"type":42,"tag":571,"props":4313,"children":4314},{"style":594},[4315],{"type":48,"value":618},{"type":42,"tag":571,"props":4317,"children":4318},{"style":621},[4319],{"type":48,"value":4320},"Running",{"type":42,"tag":571,"props":4322,"children":4323},{"style":594},[4324],{"type":48,"value":832},{"type":42,"tag":571,"props":4326,"children":4327},{"style":594},[4328],{"type":48,"value":3956},{"type":42,"tag":571,"props":4330,"children":4331},{"class":573,"line":1415},[4332,4337],{"type":42,"tag":571,"props":4333,"children":4334},{"style":600},[4335],{"type":48,"value":4336},"        ]",{"type":42,"tag":571,"props":4338,"children":4339},{"style":594},[4340],{"type":48,"value":837},{"type":42,"tag":571,"props":4342,"children":4343},{"class":573,"line":1912},[4344],{"type":42,"tag":571,"props":4345,"children":4346},{"style":594},[4347],{"type":48,"value":928},{"type":42,"tag":571,"props":4349,"children":4350},{"class":573,"line":1939},[4351],{"type":42,"tag":571,"props":4352,"children":4353},{"style":594},[4354],{"type":48,"value":1404},{"type":42,"tag":571,"props":4356,"children":4357},{"class":573,"line":2001},[4358],{"type":42,"tag":571,"props":4359,"children":4360},{"style":594},[4361],{"type":48,"value":3493},{"type":42,"tag":571,"props":4363,"children":4364},{"class":573,"line":2010},[4365,4369],{"type":42,"tag":571,"props":4366,"children":4367},{"style":594},[4368],{"type":48,"value":2991},{"type":42,"tag":571,"props":4370,"children":4371},{"style":600},[4372],{"type":48,"value":919},{"type":42,"tag":571,"props":4374,"children":4375},{"class":573,"line":2065},[4376],{"type":42,"tag":571,"props":4377,"children":4378},{"emptyLinePlaceholder":666},[4379],{"type":48,"value":669},{"type":42,"tag":571,"props":4381,"children":4382},{"class":573,"line":2073},[4383,4387,4391,4395,4399,4403,4407],{"type":42,"tag":571,"props":4384,"children":4385},{"style":600},[4386],{"type":48,"value":761},{"type":42,"tag":571,"props":4388,"children":4389},{"style":594},[4390],{"type":48,"value":115},{"type":42,"tag":571,"props":4392,"children":4393},{"style":600},[4394],{"type":48,"value":1220},{"type":42,"tag":571,"props":4396,"children":4397},{"style":594},[4398],{"type":48,"value":115},{"type":42,"tag":571,"props":4400,"children":4401},{"style":715},[4402],{"type":48,"value":796},{"type":42,"tag":571,"props":4404,"children":4405},{"style":600},[4406],{"type":48,"value":755},{"type":42,"tag":571,"props":4408,"children":4409},{"style":594},[4410],{"type":48,"value":805},{"type":42,"tag":571,"props":4412,"children":4413},{"class":573,"line":2082},[4414,4418,4422,4426,4431,4435],{"type":42,"tag":571,"props":4415,"children":4416},{"style":695},[4417],{"type":48,"value":2849},{"type":42,"tag":571,"props":4419,"children":4420},{"style":594},[4421],{"type":48,"value":703},{"type":42,"tag":571,"props":4423,"children":4424},{"style":594},[4425],{"type":48,"value":618},{"type":42,"tag":571,"props":4427,"children":4428},{"style":621},[4429],{"type":48,"value":4430},"my-panel",{"type":42,"tag":571,"props":4432,"children":4433},{"style":594},[4434],{"type":48,"value":832},{"type":42,"tag":571,"props":4436,"children":4437},{"style":594},[4438],{"type":48,"value":837},{"type":42,"tag":571,"props":4440,"children":4441},{"class":573,"line":2114},[4442,4446,4450,4454,4459,4463],{"type":42,"tag":571,"props":4443,"children":4444},{"style":695},[4445],{"type":48,"value":2877},{"type":42,"tag":571,"props":4447,"children":4448},{"style":594},[4449],{"type":48,"value":703},{"type":42,"tag":571,"props":4451,"children":4452},{"style":594},[4453],{"type":48,"value":618},{"type":42,"tag":571,"props":4455,"children":4456},{"style":621},[4457],{"type":48,"value":4458},"My Panel",{"type":42,"tag":571,"props":4460,"children":4461},{"style":594},[4462],{"type":48,"value":832},{"type":42,"tag":571,"props":4464,"children":4465},{"style":594},[4466],{"type":48,"value":837},{"type":42,"tag":571,"props":4468,"children":4469},{"class":573,"line":2142},[4470,4474,4478,4482,4486,4490],{"type":42,"tag":571,"props":4471,"children":4472},{"style":695},[4473],{"type":48,"value":2905},{"type":42,"tag":571,"props":4475,"children":4476},{"style":594},[4477],{"type":48,"value":703},{"type":42,"tag":571,"props":4479,"children":4480},{"style":594},[4481],{"type":48,"value":618},{"type":42,"tag":571,"props":4483,"children":4484},{"style":621},[4485],{"type":48,"value":2189},{"type":42,"tag":571,"props":4487,"children":4488},{"style":594},[4489],{"type":48,"value":832},{"type":42,"tag":571,"props":4491,"children":4492},{"style":594},[4493],{"type":48,"value":837},{"type":42,"tag":571,"props":4495,"children":4496},{"class":573,"line":2171},[4497,4501,4505,4509,4513,4517],{"type":42,"tag":571,"props":4498,"children":4499},{"style":695},[4500],{"type":48,"value":2934},{"type":42,"tag":571,"props":4502,"children":4503},{"style":594},[4504],{"type":48,"value":703},{"type":42,"tag":571,"props":4506,"children":4507},{"style":594},[4508],{"type":48,"value":618},{"type":42,"tag":571,"props":4510,"children":4511},{"style":621},[4512],{"type":48,"value":2740},{"type":42,"tag":571,"props":4514,"children":4515},{"style":594},[4516],{"type":48,"value":832},{"type":42,"tag":571,"props":4518,"children":4519},{"style":594},[4520],{"type":48,"value":837},{"type":42,"tag":571,"props":4522,"children":4523},{"class":573,"line":2200},[4524,4529],{"type":42,"tag":571,"props":4525,"children":4526},{"style":600},[4527],{"type":48,"value":4528},"  ui",{"type":42,"tag":571,"props":4530,"children":4531},{"style":594},[4532],{"type":48,"value":837},{"type":42,"tag":571,"props":4534,"children":4535},{"class":573,"line":2228},[4536,4540],{"type":42,"tag":571,"props":4537,"children":4538},{"style":594},[4539],{"type":48,"value":2991},{"type":42,"tag":571,"props":4541,"children":4542},{"style":600},[4543],{"type":48,"value":919},{"type":42,"tag":2798,"props":4545,"children":4547},{"id":4546},"launcher-entry",[4548],{"type":48,"value":4549},"Launcher Entry",{"type":42,"tag":560,"props":4551,"children":4553},{"className":562,"code":4552,"language":564,"meta":565,"style":565},"const entry = ctx.docks.register({\n  id: 'my-setup',\n  title: 'My Setup',\n  icon: 'ph:rocket-launch-duotone',\n  type: 'launcher',\n  launcher: {\n    title: 'Initialize My Plugin',\n    description: 'Run initial setup before using the plugin',\n    buttonStart: 'Start Setup',\n    buttonLoading: 'Setting up...',\n    onLaunch: async () => {\n      \u002F\u002F Run initialization logic\n    },\n  },\n})\n",[4554],{"type":42,"tag":59,"props":4555,"children":4556},{"__ignoreMap":565},[4557,4601,4629,4657,4685,4712,4728,4757,4786,4815,4844,4872,4880,4887,4894],{"type":42,"tag":571,"props":4558,"children":4559},{"class":573,"line":574},[4560,4564,4569,4573,4577,4581,4585,4589,4593,4597],{"type":42,"tag":571,"props":4561,"children":4562},{"style":888},[4563],{"type":48,"value":3774},{"type":42,"tag":571,"props":4565,"children":4566},{"style":600},[4567],{"type":48,"value":4568}," entry ",{"type":42,"tag":571,"props":4570,"children":4571},{"style":594},[4572],{"type":48,"value":1022},{"type":42,"tag":571,"props":4574,"children":4575},{"style":600},[4576],{"type":48,"value":3788},{"type":42,"tag":571,"props":4578,"children":4579},{"style":594},[4580],{"type":48,"value":115},{"type":42,"tag":571,"props":4582,"children":4583},{"style":600},[4584],{"type":48,"value":1220},{"type":42,"tag":571,"props":4586,"children":4587},{"style":594},[4588],{"type":48,"value":115},{"type":42,"tag":571,"props":4590,"children":4591},{"style":715},[4592],{"type":48,"value":796},{"type":42,"tag":571,"props":4594,"children":4595},{"style":600},[4596],{"type":48,"value":755},{"type":42,"tag":571,"props":4598,"children":4599},{"style":594},[4600],{"type":48,"value":805},{"type":42,"tag":571,"props":4602,"children":4603},{"class":573,"line":584},[4604,4608,4612,4616,4621,4625],{"type":42,"tag":571,"props":4605,"children":4606},{"style":695},[4607],{"type":48,"value":2849},{"type":42,"tag":571,"props":4609,"children":4610},{"style":594},[4611],{"type":48,"value":703},{"type":42,"tag":571,"props":4613,"children":4614},{"style":594},[4615],{"type":48,"value":618},{"type":42,"tag":571,"props":4617,"children":4618},{"style":621},[4619],{"type":48,"value":4620},"my-setup",{"type":42,"tag":571,"props":4622,"children":4623},{"style":594},[4624],{"type":48,"value":832},{"type":42,"tag":571,"props":4626,"children":4627},{"style":594},[4628],{"type":48,"value":837},{"type":42,"tag":571,"props":4630,"children":4631},{"class":573,"line":631},[4632,4636,4640,4644,4649,4653],{"type":42,"tag":571,"props":4633,"children":4634},{"style":695},[4635],{"type":48,"value":2877},{"type":42,"tag":571,"props":4637,"children":4638},{"style":594},[4639],{"type":48,"value":703},{"type":42,"tag":571,"props":4641,"children":4642},{"style":594},[4643],{"type":48,"value":618},{"type":42,"tag":571,"props":4645,"children":4646},{"style":621},[4647],{"type":48,"value":4648},"My Setup",{"type":42,"tag":571,"props":4650,"children":4651},{"style":594},[4652],{"type":48,"value":832},{"type":42,"tag":571,"props":4654,"children":4655},{"style":594},[4656],{"type":48,"value":837},{"type":42,"tag":571,"props":4658,"children":4659},{"class":573,"line":662},[4660,4664,4668,4672,4677,4681],{"type":42,"tag":571,"props":4661,"children":4662},{"style":695},[4663],{"type":48,"value":2905},{"type":42,"tag":571,"props":4665,"children":4666},{"style":594},[4667],{"type":48,"value":703},{"type":42,"tag":571,"props":4669,"children":4670},{"style":594},[4671],{"type":48,"value":618},{"type":42,"tag":571,"props":4673,"children":4674},{"style":621},[4675],{"type":48,"value":4676},"ph:rocket-launch-duotone",{"type":42,"tag":571,"props":4678,"children":4679},{"style":594},[4680],{"type":48,"value":832},{"type":42,"tag":571,"props":4682,"children":4683},{"style":594},[4684],{"type":48,"value":837},{"type":42,"tag":571,"props":4686,"children":4687},{"class":573,"line":672},[4688,4692,4696,4700,4704,4708],{"type":42,"tag":571,"props":4689,"children":4690},{"style":695},[4691],{"type":48,"value":2934},{"type":42,"tag":571,"props":4693,"children":4694},{"style":594},[4695],{"type":48,"value":703},{"type":42,"tag":571,"props":4697,"children":4698},{"style":594},[4699],{"type":48,"value":618},{"type":42,"tag":571,"props":4701,"children":4702},{"style":621},[4703],{"type":48,"value":2791},{"type":42,"tag":571,"props":4705,"children":4706},{"style":594},[4707],{"type":48,"value":832},{"type":42,"tag":571,"props":4709,"children":4710},{"style":594},[4711],{"type":48,"value":837},{"type":42,"tag":571,"props":4713,"children":4714},{"class":573,"line":691},[4715,4720,4724],{"type":42,"tag":571,"props":4716,"children":4717},{"style":695},[4718],{"type":48,"value":4719},"  launcher",{"type":42,"tag":571,"props":4721,"children":4722},{"style":594},[4723],{"type":48,"value":703},{"type":42,"tag":571,"props":4725,"children":4726},{"style":594},[4727],{"type":48,"value":688},{"type":42,"tag":571,"props":4729,"children":4730},{"class":573,"line":711},[4731,4736,4740,4744,4749,4753],{"type":42,"tag":571,"props":4732,"children":4733},{"style":695},[4734],{"type":48,"value":4735},"    title",{"type":42,"tag":571,"props":4737,"children":4738},{"style":594},[4739],{"type":48,"value":703},{"type":42,"tag":571,"props":4741,"children":4742},{"style":594},[4743],{"type":48,"value":618},{"type":42,"tag":571,"props":4745,"children":4746},{"style":621},[4747],{"type":48,"value":4748},"Initialize My Plugin",{"type":42,"tag":571,"props":4750,"children":4751},{"style":594},[4752],{"type":48,"value":832},{"type":42,"tag":571,"props":4754,"children":4755},{"style":594},[4756],{"type":48,"value":837},{"type":42,"tag":571,"props":4758,"children":4759},{"class":573,"line":735},[4760,4765,4769,4773,4778,4782],{"type":42,"tag":571,"props":4761,"children":4762},{"style":695},[4763],{"type":48,"value":4764},"    description",{"type":42,"tag":571,"props":4766,"children":4767},{"style":594},[4768],{"type":48,"value":703},{"type":42,"tag":571,"props":4770,"children":4771},{"style":594},[4772],{"type":48,"value":618},{"type":42,"tag":571,"props":4774,"children":4775},{"style":621},[4776],{"type":48,"value":4777},"Run initial setup before using the plugin",{"type":42,"tag":571,"props":4779,"children":4780},{"style":594},[4781],{"type":48,"value":832},{"type":42,"tag":571,"props":4783,"children":4784},{"style":594},[4785],{"type":48,"value":837},{"type":42,"tag":571,"props":4787,"children":4788},{"class":573,"line":744},[4789,4794,4798,4802,4807,4811],{"type":42,"tag":571,"props":4790,"children":4791},{"style":695},[4792],{"type":48,"value":4793},"    buttonStart",{"type":42,"tag":571,"props":4795,"children":4796},{"style":594},[4797],{"type":48,"value":703},{"type":42,"tag":571,"props":4799,"children":4800},{"style":594},[4801],{"type":48,"value":618},{"type":42,"tag":571,"props":4803,"children":4804},{"style":621},[4805],{"type":48,"value":4806},"Start Setup",{"type":42,"tag":571,"props":4808,"children":4809},{"style":594},[4810],{"type":48,"value":832},{"type":42,"tag":571,"props":4812,"children":4813},{"style":594},[4814],{"type":48,"value":837},{"type":42,"tag":571,"props":4816,"children":4817},{"class":573,"line":772},[4818,4823,4827,4831,4836,4840],{"type":42,"tag":571,"props":4819,"children":4820},{"style":695},[4821],{"type":48,"value":4822},"    buttonLoading",{"type":42,"tag":571,"props":4824,"children":4825},{"style":594},[4826],{"type":48,"value":703},{"type":42,"tag":571,"props":4828,"children":4829},{"style":594},[4830],{"type":48,"value":618},{"type":42,"tag":571,"props":4832,"children":4833},{"style":621},[4834],{"type":48,"value":4835},"Setting up...",{"type":42,"tag":571,"props":4837,"children":4838},{"style":594},[4839],{"type":48,"value":832},{"type":42,"tag":571,"props":4841,"children":4842},{"style":594},[4843],{"type":48,"value":837},{"type":42,"tag":571,"props":4845,"children":4846},{"class":573,"line":808},[4847,4852,4856,4860,4864,4868],{"type":42,"tag":571,"props":4848,"children":4849},{"style":715},[4850],{"type":48,"value":4851},"    onLaunch",{"type":42,"tag":571,"props":4853,"children":4854},{"style":594},[4855],{"type":48,"value":703},{"type":42,"tag":571,"props":4857,"children":4858},{"style":888},[4859],{"type":48,"value":2435},{"type":42,"tag":571,"props":4861,"children":4862},{"style":594},[4863],{"type":48,"value":885},{"type":42,"tag":571,"props":4865,"children":4866},{"style":888},[4867],{"type":48,"value":891},{"type":42,"tag":571,"props":4869,"children":4870},{"style":594},[4871],{"type":48,"value":688},{"type":42,"tag":571,"props":4873,"children":4874},{"class":573,"line":840},[4875],{"type":42,"tag":571,"props":4876,"children":4877},{"style":578},[4878],{"type":48,"value":4879},"      \u002F\u002F Run initialization logic\n",{"type":42,"tag":571,"props":4881,"children":4882},{"class":573,"line":870},[4883],{"type":42,"tag":571,"props":4884,"children":4885},{"style":594},[4886],{"type":48,"value":1404},{"type":42,"tag":571,"props":4888,"children":4889},{"class":573,"line":908},[4890],{"type":42,"tag":571,"props":4891,"children":4892},{"style":594},[4893],{"type":48,"value":3493},{"type":42,"tag":571,"props":4895,"children":4896},{"class":573,"line":922},[4897,4901],{"type":42,"tag":571,"props":4898,"children":4899},{"style":594},[4900],{"type":48,"value":2991},{"type":42,"tag":571,"props":4902,"children":4903},{"style":600},[4904],{"type":48,"value":919},{"type":42,"tag":117,"props":4906,"children":4908},{"id":4907},"terminals-subprocesses",[4909],{"type":48,"value":4910},"Terminals & Subprocesses",{"type":42,"tag":51,"props":4912,"children":4913},{},[4914],{"type":48,"value":4915},"Spawn and manage child processes with streaming terminal output:",{"type":42,"tag":560,"props":4917,"children":4919},{"className":562,"code":4918,"language":564,"meta":565,"style":565},"const session = await ctx.terminals.startChildProcess(\n  {\n    command: 'vite',\n    args: ['build', '--watch'],\n    cwd: process.cwd(),\n  },\n  {\n    id: 'my-plugin:build-watcher',\n    title: 'Build Watcher',\n    icon: 'ph:terminal-duotone',\n  },\n)\n\n\u002F\u002F Lifecycle controls\nawait session.terminate()\nawait session.restart()\n",[4920],{"type":42,"tag":59,"props":4921,"children":4922},{"__ignoreMap":565},[4923,4970,4978,5006,5060,5095,5102,5109,5138,5166,5195,5202,5209,5216,5224,5250],{"type":42,"tag":571,"props":4924,"children":4925},{"class":573,"line":574},[4926,4930,4935,4939,4944,4948,4952,4957,4961,4966],{"type":42,"tag":571,"props":4927,"children":4928},{"style":888},[4929],{"type":48,"value":3774},{"type":42,"tag":571,"props":4931,"children":4932},{"style":600},[4933],{"type":48,"value":4934}," session ",{"type":42,"tag":571,"props":4936,"children":4937},{"style":594},[4938],{"type":48,"value":1022},{"type":42,"tag":571,"props":4940,"children":4941},{"style":588},[4942],{"type":48,"value":4943}," await",{"type":42,"tag":571,"props":4945,"children":4946},{"style":600},[4947],{"type":48,"value":3788},{"type":42,"tag":571,"props":4949,"children":4950},{"style":594},[4951],{"type":48,"value":115},{"type":42,"tag":571,"props":4953,"children":4954},{"style":600},[4955],{"type":48,"value":4956},"terminals",{"type":42,"tag":571,"props":4958,"children":4959},{"style":594},[4960],{"type":48,"value":115},{"type":42,"tag":571,"props":4962,"children":4963},{"style":715},[4964],{"type":48,"value":4965},"startChildProcess",{"type":42,"tag":571,"props":4967,"children":4968},{"style":600},[4969],{"type":48,"value":1936},{"type":42,"tag":571,"props":4971,"children":4972},{"class":573,"line":584},[4973],{"type":42,"tag":571,"props":4974,"children":4975},{"style":594},[4976],{"type":48,"value":4977},"  {\n",{"type":42,"tag":571,"props":4979,"children":4980},{"class":573,"line":631},[4981,4986,4990,4994,4998,5002],{"type":42,"tag":571,"props":4982,"children":4983},{"style":695},[4984],{"type":48,"value":4985},"    command",{"type":42,"tag":571,"props":4987,"children":4988},{"style":594},[4989],{"type":48,"value":703},{"type":42,"tag":571,"props":4991,"children":4992},{"style":594},[4993],{"type":48,"value":618},{"type":42,"tag":571,"props":4995,"children":4996},{"style":621},[4997],{"type":48,"value":8},{"type":42,"tag":571,"props":4999,"children":5000},{"style":594},[5001],{"type":48,"value":832},{"type":42,"tag":571,"props":5003,"children":5004},{"style":594},[5005],{"type":48,"value":837},{"type":42,"tag":571,"props":5007,"children":5008},{"class":573,"line":662},[5009,5014,5018,5022,5026,5031,5035,5039,5043,5048,5052,5056],{"type":42,"tag":571,"props":5010,"children":5011},{"style":695},[5012],{"type":48,"value":5013},"    args",{"type":42,"tag":571,"props":5015,"children":5016},{"style":594},[5017],{"type":48,"value":703},{"type":42,"tag":571,"props":5019,"children":5020},{"style":600},[5021],{"type":48,"value":3973},{"type":42,"tag":571,"props":5023,"children":5024},{"style":594},[5025],{"type":48,"value":832},{"type":42,"tag":571,"props":5027,"children":5028},{"style":621},[5029],{"type":48,"value":5030},"build",{"type":42,"tag":571,"props":5032,"children":5033},{"style":594},[5034],{"type":48,"value":832},{"type":42,"tag":571,"props":5036,"children":5037},{"style":594},[5038],{"type":48,"value":728},{"type":42,"tag":571,"props":5040,"children":5041},{"style":594},[5042],{"type":48,"value":618},{"type":42,"tag":571,"props":5044,"children":5045},{"style":621},[5046],{"type":48,"value":5047},"--watch",{"type":42,"tag":571,"props":5049,"children":5050},{"style":594},[5051],{"type":48,"value":832},{"type":42,"tag":571,"props":5053,"children":5054},{"style":600},[5055],{"type":48,"value":4008},{"type":42,"tag":571,"props":5057,"children":5058},{"style":594},[5059],{"type":48,"value":837},{"type":42,"tag":571,"props":5061,"children":5062},{"class":573,"line":672},[5063,5068,5072,5077,5081,5086,5091],{"type":42,"tag":571,"props":5064,"children":5065},{"style":695},[5066],{"type":48,"value":5067},"    cwd",{"type":42,"tag":571,"props":5069,"children":5070},{"style":594},[5071],{"type":48,"value":703},{"type":42,"tag":571,"props":5073,"children":5074},{"style":600},[5075],{"type":48,"value":5076}," process",{"type":42,"tag":571,"props":5078,"children":5079},{"style":594},[5080],{"type":48,"value":115},{"type":42,"tag":571,"props":5082,"children":5083},{"style":715},[5084],{"type":48,"value":5085},"cwd",{"type":42,"tag":571,"props":5087,"children":5088},{"style":600},[5089],{"type":48,"value":5090},"()",{"type":42,"tag":571,"props":5092,"children":5093},{"style":594},[5094],{"type":48,"value":837},{"type":42,"tag":571,"props":5096,"children":5097},{"class":573,"line":691},[5098],{"type":42,"tag":571,"props":5099,"children":5100},{"style":594},[5101],{"type":48,"value":3493},{"type":42,"tag":571,"props":5103,"children":5104},{"class":573,"line":711},[5105],{"type":42,"tag":571,"props":5106,"children":5107},{"style":594},[5108],{"type":48,"value":4977},{"type":42,"tag":571,"props":5110,"children":5111},{"class":573,"line":735},[5112,5117,5121,5125,5130,5134],{"type":42,"tag":571,"props":5113,"children":5114},{"style":695},[5115],{"type":48,"value":5116},"    id",{"type":42,"tag":571,"props":5118,"children":5119},{"style":594},[5120],{"type":48,"value":703},{"type":42,"tag":571,"props":5122,"children":5123},{"style":594},[5124],{"type":48,"value":618},{"type":42,"tag":571,"props":5126,"children":5127},{"style":621},[5128],{"type":48,"value":5129},"my-plugin:build-watcher",{"type":42,"tag":571,"props":5131,"children":5132},{"style":594},[5133],{"type":48,"value":832},{"type":42,"tag":571,"props":5135,"children":5136},{"style":594},[5137],{"type":48,"value":837},{"type":42,"tag":571,"props":5139,"children":5140},{"class":573,"line":744},[5141,5145,5149,5153,5158,5162],{"type":42,"tag":571,"props":5142,"children":5143},{"style":695},[5144],{"type":48,"value":4735},{"type":42,"tag":571,"props":5146,"children":5147},{"style":594},[5148],{"type":48,"value":703},{"type":42,"tag":571,"props":5150,"children":5151},{"style":594},[5152],{"type":48,"value":618},{"type":42,"tag":571,"props":5154,"children":5155},{"style":621},[5156],{"type":48,"value":5157},"Build Watcher",{"type":42,"tag":571,"props":5159,"children":5160},{"style":594},[5161],{"type":48,"value":832},{"type":42,"tag":571,"props":5163,"children":5164},{"style":594},[5165],{"type":48,"value":837},{"type":42,"tag":571,"props":5167,"children":5168},{"class":573,"line":772},[5169,5174,5178,5182,5187,5191],{"type":42,"tag":571,"props":5170,"children":5171},{"style":695},[5172],{"type":48,"value":5173},"    icon",{"type":42,"tag":571,"props":5175,"children":5176},{"style":594},[5177],{"type":48,"value":703},{"type":42,"tag":571,"props":5179,"children":5180},{"style":594},[5181],{"type":48,"value":618},{"type":42,"tag":571,"props":5183,"children":5184},{"style":621},[5185],{"type":48,"value":5186},"ph:terminal-duotone",{"type":42,"tag":571,"props":5188,"children":5189},{"style":594},[5190],{"type":48,"value":832},{"type":42,"tag":571,"props":5192,"children":5193},{"style":594},[5194],{"type":48,"value":837},{"type":42,"tag":571,"props":5196,"children":5197},{"class":573,"line":808},[5198],{"type":42,"tag":571,"props":5199,"children":5200},{"style":594},[5201],{"type":48,"value":3493},{"type":42,"tag":571,"props":5203,"children":5204},{"class":573,"line":840},[5205],{"type":42,"tag":571,"props":5206,"children":5207},{"style":600},[5208],{"type":48,"value":919},{"type":42,"tag":571,"props":5210,"children":5211},{"class":573,"line":870},[5212],{"type":42,"tag":571,"props":5213,"children":5214},{"emptyLinePlaceholder":666},[5215],{"type":48,"value":669},{"type":42,"tag":571,"props":5217,"children":5218},{"class":573,"line":908},[5219],{"type":42,"tag":571,"props":5220,"children":5221},{"style":578},[5222],{"type":48,"value":5223},"\u002F\u002F Lifecycle controls\n",{"type":42,"tag":571,"props":5225,"children":5226},{"class":573,"line":922},[5227,5232,5237,5241,5246],{"type":42,"tag":571,"props":5228,"children":5229},{"style":588},[5230],{"type":48,"value":5231},"await",{"type":42,"tag":571,"props":5233,"children":5234},{"style":600},[5235],{"type":48,"value":5236}," session",{"type":42,"tag":571,"props":5238,"children":5239},{"style":594},[5240],{"type":48,"value":115},{"type":42,"tag":571,"props":5242,"children":5243},{"style":715},[5244],{"type":48,"value":5245},"terminate",{"type":42,"tag":571,"props":5247,"children":5248},{"style":600},[5249],{"type":48,"value":1692},{"type":42,"tag":571,"props":5251,"children":5252},{"class":573,"line":931},[5253,5257,5261,5265,5270],{"type":42,"tag":571,"props":5254,"children":5255},{"style":588},[5256],{"type":48,"value":5231},{"type":42,"tag":571,"props":5258,"children":5259},{"style":600},[5260],{"type":48,"value":5236},{"type":42,"tag":571,"props":5262,"children":5263},{"style":594},[5264],{"type":48,"value":115},{"type":42,"tag":571,"props":5266,"children":5267},{"style":715},[5268],{"type":48,"value":5269},"restart",{"type":42,"tag":571,"props":5271,"children":5272},{"style":600},[5273],{"type":48,"value":1692},{"type":42,"tag":51,"props":5275,"children":5276},{},[5277,5279,5285],{"type":48,"value":5278},"A common pattern is combining with launcher docks — see ",{"type":42,"tag":70,"props":5280,"children":5282},{"href":5281},".\u002Freferences\u002Fterminals-patterns.md",[5283],{"type":48,"value":5284},"Terminals Patterns",{"type":48,"value":115},{"type":42,"tag":117,"props":5287,"children":5289},{"id":5288},"commands-command-palette",[5290],{"type":48,"value":5291},"Commands & Command Palette",{"type":42,"tag":51,"props":5293,"children":5294},{},[5295,5297,5303],{"type":48,"value":5296},"Register executable commands discoverable via ",{"type":42,"tag":59,"props":5298,"children":5300},{"className":5299},[],[5301],{"type":48,"value":5302},"Mod+K",{"type":48,"value":5304}," palette:",{"type":42,"tag":560,"props":5306,"children":5308},{"className":562,"code":5307,"language":564,"meta":565,"style":565},"import { defineCommand } from '@vitejs\u002Fdevtools-kit'\n\nctx.commands.register(defineCommand({\n  id: 'my-plugin:clear-cache',\n  title: 'Clear Build Cache',\n  icon: 'ph:trash-duotone',\n  keybindings: [{ key: 'Mod+Shift+C' }],\n  when: 'clientType == embedded',\n  handler: async () => { \u002F* ... *\u002F },\n}))\n",[5309],{"type":42,"tag":59,"props":5310,"children":5311},{"__ignoreMap":565},[5312,5348,5355,5395,5422,5450,5478,5532,5561,5598],{"type":42,"tag":571,"props":5313,"children":5314},{"class":573,"line":574},[5315,5319,5323,5328,5332,5336,5340,5344],{"type":42,"tag":571,"props":5316,"children":5317},{"style":588},[5318],{"type":48,"value":591},{"type":42,"tag":571,"props":5320,"children":5321},{"style":594},[5322],{"type":48,"value":597},{"type":42,"tag":571,"props":5324,"children":5325},{"style":600},[5326],{"type":48,"value":5327}," defineCommand",{"type":42,"tag":571,"props":5329,"children":5330},{"style":594},[5331],{"type":48,"value":608},{"type":42,"tag":571,"props":5333,"children":5334},{"style":588},[5335],{"type":48,"value":613},{"type":42,"tag":571,"props":5337,"children":5338},{"style":594},[5339],{"type":48,"value":618},{"type":42,"tag":571,"props":5341,"children":5342},{"style":621},[5343],{"type":48,"value":64},{"type":42,"tag":571,"props":5345,"children":5346},{"style":594},[5347],{"type":48,"value":628},{"type":42,"tag":571,"props":5349,"children":5350},{"class":573,"line":584},[5351],{"type":42,"tag":571,"props":5352,"children":5353},{"emptyLinePlaceholder":666},[5354],{"type":48,"value":669},{"type":42,"tag":571,"props":5356,"children":5357},{"class":573,"line":631},[5358,5362,5366,5370,5374,5378,5382,5387,5391],{"type":42,"tag":571,"props":5359,"children":5360},{"style":600},[5361],{"type":48,"value":761},{"type":42,"tag":571,"props":5363,"children":5364},{"style":594},[5365],{"type":48,"value":115},{"type":42,"tag":571,"props":5367,"children":5368},{"style":600},[5369],{"type":48,"value":787},{"type":42,"tag":571,"props":5371,"children":5372},{"style":594},[5373],{"type":48,"value":115},{"type":42,"tag":571,"props":5375,"children":5376},{"style":715},[5377],{"type":48,"value":796},{"type":42,"tag":571,"props":5379,"children":5380},{"style":600},[5381],{"type":48,"value":755},{"type":42,"tag":571,"props":5383,"children":5384},{"style":715},[5385],{"type":48,"value":5386},"defineCommand",{"type":42,"tag":571,"props":5388,"children":5389},{"style":600},[5390],{"type":48,"value":755},{"type":42,"tag":571,"props":5392,"children":5393},{"style":594},[5394],{"type":48,"value":805},{"type":42,"tag":571,"props":5396,"children":5397},{"class":573,"line":662},[5398,5402,5406,5410,5414,5418],{"type":42,"tag":571,"props":5399,"children":5400},{"style":695},[5401],{"type":48,"value":2849},{"type":42,"tag":571,"props":5403,"children":5404},{"style":594},[5405],{"type":48,"value":703},{"type":42,"tag":571,"props":5407,"children":5408},{"style":594},[5409],{"type":48,"value":618},{"type":42,"tag":571,"props":5411,"children":5412},{"style":621},[5413],{"type":48,"value":2628},{"type":42,"tag":571,"props":5415,"children":5416},{"style":594},[5417],{"type":48,"value":832},{"type":42,"tag":571,"props":5419,"children":5420},{"style":594},[5421],{"type":48,"value":837},{"type":42,"tag":571,"props":5423,"children":5424},{"class":573,"line":672},[5425,5429,5433,5437,5442,5446],{"type":42,"tag":571,"props":5426,"children":5427},{"style":695},[5428],{"type":48,"value":2877},{"type":42,"tag":571,"props":5430,"children":5431},{"style":594},[5432],{"type":48,"value":703},{"type":42,"tag":571,"props":5434,"children":5435},{"style":594},[5436],{"type":48,"value":618},{"type":42,"tag":571,"props":5438,"children":5439},{"style":621},[5440],{"type":48,"value":5441},"Clear Build Cache",{"type":42,"tag":571,"props":5443,"children":5444},{"style":594},[5445],{"type":48,"value":832},{"type":42,"tag":571,"props":5447,"children":5448},{"style":594},[5449],{"type":48,"value":837},{"type":42,"tag":571,"props":5451,"children":5452},{"class":573,"line":691},[5453,5457,5461,5465,5470,5474],{"type":42,"tag":571,"props":5454,"children":5455},{"style":695},[5456],{"type":48,"value":2905},{"type":42,"tag":571,"props":5458,"children":5459},{"style":594},[5460],{"type":48,"value":703},{"type":42,"tag":571,"props":5462,"children":5463},{"style":594},[5464],{"type":48,"value":618},{"type":42,"tag":571,"props":5466,"children":5467},{"style":621},[5468],{"type":48,"value":5469},"ph:trash-duotone",{"type":42,"tag":571,"props":5471,"children":5472},{"style":594},[5473],{"type":48,"value":832},{"type":42,"tag":571,"props":5475,"children":5476},{"style":594},[5477],{"type":48,"value":837},{"type":42,"tag":571,"props":5479,"children":5480},{"class":573,"line":711},[5481,5486,5490,5494,5499,5503,5507,5511,5516,5520,5524,5528],{"type":42,"tag":571,"props":5482,"children":5483},{"style":695},[5484],{"type":48,"value":5485},"  keybindings",{"type":42,"tag":571,"props":5487,"children":5488},{"style":594},[5489],{"type":48,"value":703},{"type":42,"tag":571,"props":5491,"children":5492},{"style":600},[5493],{"type":48,"value":3973},{"type":42,"tag":571,"props":5495,"children":5496},{"style":594},[5497],{"type":48,"value":5498},"{",{"type":42,"tag":571,"props":5500,"children":5501},{"style":695},[5502],{"type":48,"value":4224},{"type":42,"tag":571,"props":5504,"children":5505},{"style":594},[5506],{"type":48,"value":703},{"type":42,"tag":571,"props":5508,"children":5509},{"style":594},[5510],{"type":48,"value":618},{"type":42,"tag":571,"props":5512,"children":5513},{"style":621},[5514],{"type":48,"value":5515},"Mod+Shift+C",{"type":42,"tag":571,"props":5517,"children":5518},{"style":594},[5519],{"type":48,"value":832},{"type":42,"tag":571,"props":5521,"children":5522},{"style":594},[5523],{"type":48,"value":608},{"type":42,"tag":571,"props":5525,"children":5526},{"style":600},[5527],{"type":48,"value":4008},{"type":42,"tag":571,"props":5529,"children":5530},{"style":594},[5531],{"type":48,"value":837},{"type":42,"tag":571,"props":5533,"children":5534},{"class":573,"line":735},[5535,5540,5544,5548,5553,5557],{"type":42,"tag":571,"props":5536,"children":5537},{"style":695},[5538],{"type":48,"value":5539},"  when",{"type":42,"tag":571,"props":5541,"children":5542},{"style":594},[5543],{"type":48,"value":703},{"type":42,"tag":571,"props":5545,"children":5546},{"style":594},[5547],{"type":48,"value":618},{"type":42,"tag":571,"props":5549,"children":5550},{"style":621},[5551],{"type":48,"value":5552},"clientType == embedded",{"type":42,"tag":571,"props":5554,"children":5555},{"style":594},[5556],{"type":48,"value":832},{"type":42,"tag":571,"props":5558,"children":5559},{"style":594},[5560],{"type":48,"value":837},{"type":42,"tag":571,"props":5562,"children":5563},{"class":573,"line":744},[5564,5569,5573,5577,5581,5585,5589,5594],{"type":42,"tag":571,"props":5565,"children":5566},{"style":715},[5567],{"type":48,"value":5568},"  handler",{"type":42,"tag":571,"props":5570,"children":5571},{"style":594},[5572],{"type":48,"value":703},{"type":42,"tag":571,"props":5574,"children":5575},{"style":888},[5576],{"type":48,"value":2435},{"type":42,"tag":571,"props":5578,"children":5579},{"style":594},[5580],{"type":48,"value":885},{"type":42,"tag":571,"props":5582,"children":5583},{"style":888},[5584],{"type":48,"value":891},{"type":42,"tag":571,"props":5586,"children":5587},{"style":594},[5588],{"type":48,"value":597},{"type":42,"tag":571,"props":5590,"children":5591},{"style":578},[5592],{"type":48,"value":5593}," \u002F* ... *\u002F",{"type":42,"tag":571,"props":5595,"children":5596},{"style":594},[5597],{"type":48,"value":3956},{"type":42,"tag":571,"props":5599,"children":5600},{"class":573,"line":772},[5601,5605],{"type":42,"tag":571,"props":5602,"children":5603},{"style":594},[5604],{"type":48,"value":2991},{"type":42,"tag":571,"props":5606,"children":5607},{"style":600},[5608],{"type":48,"value":5609},"))\n",{"type":42,"tag":51,"props":5611,"children":5612},{},[5613,5615,5621],{"type":48,"value":5614},"Commands support sub-commands (two-level hierarchy), conditional visibility via ",{"type":42,"tag":59,"props":5616,"children":5618},{"className":5617},[],[5619],{"type":48,"value":5620},"when",{"type":48,"value":5622}," clauses, and user-customizable keyboard shortcuts.",{"type":42,"tag":51,"props":5624,"children":5625},{},[5626,5628,5634,5636,5642],{"type":48,"value":5627},"See ",{"type":42,"tag":70,"props":5629,"children":5631},{"href":5630},".\u002Freferences\u002Fcommands-patterns.md",[5632],{"type":48,"value":5633},"Commands Patterns",{"type":48,"value":5635}," and ",{"type":42,"tag":70,"props":5637,"children":5639},{"href":5638},".\u002Freferences\u002Fwhen-clauses.md",[5640],{"type":48,"value":5641},"When Clauses",{"type":48,"value":5643}," for full details.",{"type":42,"tag":117,"props":5645,"children":5647},{"id":5646},"logs-notifications",[5648],{"type":48,"value":5649},"Logs & Notifications",{"type":42,"tag":51,"props":5651,"children":5652},{},[5653,5655,5660],{"type":48,"value":5654},"Plugins can emit structured log entries from both server and client contexts. Logs appear in the built-in ",{"type":42,"tag":55,"props":5656,"children":5657},{},[5658],{"type":48,"value":5659},"Logs",{"type":48,"value":5661}," panel and can optionally show as toast notifications.",{"type":42,"tag":2798,"props":5663,"children":5665},{"id":5664},"fire-and-forget",[5666],{"type":48,"value":5667},"Fire-and-Forget",{"type":42,"tag":560,"props":5669,"children":5671},{"className":562,"code":5670,"language":564,"meta":565,"style":565},"\u002F\u002F No await needed\ncontext.messages.add({\n  message: 'Plugin initialized',\n  level: 'info',\n})\n",[5672],{"type":42,"tag":59,"props":5673,"children":5674},{"__ignoreMap":565},[5675,5683,5717,5746,5774],{"type":42,"tag":571,"props":5676,"children":5677},{"class":573,"line":574},[5678],{"type":42,"tag":571,"props":5679,"children":5680},{"style":578},[5681],{"type":48,"value":5682},"\u002F\u002F No await needed\n",{"type":42,"tag":571,"props":5684,"children":5685},{"class":573,"line":584},[5686,5691,5695,5700,5704,5709,5713],{"type":42,"tag":571,"props":5687,"children":5688},{"style":600},[5689],{"type":48,"value":5690},"context",{"type":42,"tag":571,"props":5692,"children":5693},{"style":594},[5694],{"type":48,"value":115},{"type":42,"tag":571,"props":5696,"children":5697},{"style":600},[5698],{"type":48,"value":5699},"messages",{"type":42,"tag":571,"props":5701,"children":5702},{"style":594},[5703],{"type":48,"value":115},{"type":42,"tag":571,"props":5705,"children":5706},{"style":715},[5707],{"type":48,"value":5708},"add",{"type":42,"tag":571,"props":5710,"children":5711},{"style":600},[5712],{"type":48,"value":755},{"type":42,"tag":571,"props":5714,"children":5715},{"style":594},[5716],{"type":48,"value":805},{"type":42,"tag":571,"props":5718,"children":5719},{"class":573,"line":631},[5720,5725,5729,5733,5738,5742],{"type":42,"tag":571,"props":5721,"children":5722},{"style":695},[5723],{"type":48,"value":5724},"  message",{"type":42,"tag":571,"props":5726,"children":5727},{"style":594},[5728],{"type":48,"value":703},{"type":42,"tag":571,"props":5730,"children":5731},{"style":594},[5732],{"type":48,"value":618},{"type":42,"tag":571,"props":5734,"children":5735},{"style":621},[5736],{"type":48,"value":5737},"Plugin initialized",{"type":42,"tag":571,"props":5739,"children":5740},{"style":594},[5741],{"type":48,"value":832},{"type":42,"tag":571,"props":5743,"children":5744},{"style":594},[5745],{"type":48,"value":837},{"type":42,"tag":571,"props":5747,"children":5748},{"class":573,"line":662},[5749,5754,5758,5762,5766,5770],{"type":42,"tag":571,"props":5750,"children":5751},{"style":695},[5752],{"type":48,"value":5753},"  level",{"type":42,"tag":571,"props":5755,"children":5756},{"style":594},[5757],{"type":48,"value":703},{"type":42,"tag":571,"props":5759,"children":5760},{"style":594},[5761],{"type":48,"value":618},{"type":42,"tag":571,"props":5763,"children":5764},{"style":621},[5765],{"type":48,"value":3999},{"type":42,"tag":571,"props":5767,"children":5768},{"style":594},[5769],{"type":48,"value":832},{"type":42,"tag":571,"props":5771,"children":5772},{"style":594},[5773],{"type":48,"value":837},{"type":42,"tag":571,"props":5775,"children":5776},{"class":573,"line":672},[5777,5781],{"type":42,"tag":571,"props":5778,"children":5779},{"style":594},[5780],{"type":48,"value":2991},{"type":42,"tag":571,"props":5782,"children":5783},{"style":600},[5784],{"type":48,"value":919},{"type":42,"tag":2798,"props":5786,"children":5788},{"id":5787},"with-handle",[5789],{"type":48,"value":5790},"With Handle",{"type":42,"tag":560,"props":5792,"children":5794},{"className":562,"code":5793,"language":564,"meta":565,"style":565},"const handle = await context.messages.add({\n  id: 'my-build',\n  message: 'Building...',\n  level: 'info',\n  status: 'loading',\n})\n\n\u002F\u002F Update later\nawait handle.update({\n  message: 'Build complete',\n  level: 'success',\n  status: 'idle',\n})\n\n\u002F\u002F Or dismiss\nawait handle.dismiss()\n",[5795],{"type":42,"tag":59,"props":5796,"children":5797},{"__ignoreMap":565},[5798,5847,5875,5903,5930,5959,5970,5977,5985,6014,6042,6070,6098,6109,6116,6124],{"type":42,"tag":571,"props":5799,"children":5800},{"class":573,"line":574},[5801,5805,5810,5814,5818,5823,5827,5831,5835,5839,5843],{"type":42,"tag":571,"props":5802,"children":5803},{"style":888},[5804],{"type":48,"value":3774},{"type":42,"tag":571,"props":5806,"children":5807},{"style":600},[5808],{"type":48,"value":5809}," handle ",{"type":42,"tag":571,"props":5811,"children":5812},{"style":594},[5813],{"type":48,"value":1022},{"type":42,"tag":571,"props":5815,"children":5816},{"style":588},[5817],{"type":48,"value":4943},{"type":42,"tag":571,"props":5819,"children":5820},{"style":600},[5821],{"type":48,"value":5822}," context",{"type":42,"tag":571,"props":5824,"children":5825},{"style":594},[5826],{"type":48,"value":115},{"type":42,"tag":571,"props":5828,"children":5829},{"style":600},[5830],{"type":48,"value":5699},{"type":42,"tag":571,"props":5832,"children":5833},{"style":594},[5834],{"type":48,"value":115},{"type":42,"tag":571,"props":5836,"children":5837},{"style":715},[5838],{"type":48,"value":5708},{"type":42,"tag":571,"props":5840,"children":5841},{"style":600},[5842],{"type":48,"value":755},{"type":42,"tag":571,"props":5844,"children":5845},{"style":594},[5846],{"type":48,"value":805},{"type":42,"tag":571,"props":5848,"children":5849},{"class":573,"line":584},[5850,5854,5858,5862,5867,5871],{"type":42,"tag":571,"props":5851,"children":5852},{"style":695},[5853],{"type":48,"value":2849},{"type":42,"tag":571,"props":5855,"children":5856},{"style":594},[5857],{"type":48,"value":703},{"type":42,"tag":571,"props":5859,"children":5860},{"style":594},[5861],{"type":48,"value":618},{"type":42,"tag":571,"props":5863,"children":5864},{"style":621},[5865],{"type":48,"value":5866},"my-build",{"type":42,"tag":571,"props":5868,"children":5869},{"style":594},[5870],{"type":48,"value":832},{"type":42,"tag":571,"props":5872,"children":5873},{"style":594},[5874],{"type":48,"value":837},{"type":42,"tag":571,"props":5876,"children":5877},{"class":573,"line":631},[5878,5882,5886,5890,5895,5899],{"type":42,"tag":571,"props":5879,"children":5880},{"style":695},[5881],{"type":48,"value":5724},{"type":42,"tag":571,"props":5883,"children":5884},{"style":594},[5885],{"type":48,"value":703},{"type":42,"tag":571,"props":5887,"children":5888},{"style":594},[5889],{"type":48,"value":618},{"type":42,"tag":571,"props":5891,"children":5892},{"style":621},[5893],{"type":48,"value":5894},"Building...",{"type":42,"tag":571,"props":5896,"children":5897},{"style":594},[5898],{"type":48,"value":832},{"type":42,"tag":571,"props":5900,"children":5901},{"style":594},[5902],{"type":48,"value":837},{"type":42,"tag":571,"props":5904,"children":5905},{"class":573,"line":662},[5906,5910,5914,5918,5922,5926],{"type":42,"tag":571,"props":5907,"children":5908},{"style":695},[5909],{"type":48,"value":5753},{"type":42,"tag":571,"props":5911,"children":5912},{"style":594},[5913],{"type":48,"value":703},{"type":42,"tag":571,"props":5915,"children":5916},{"style":594},[5917],{"type":48,"value":618},{"type":42,"tag":571,"props":5919,"children":5920},{"style":621},[5921],{"type":48,"value":3999},{"type":42,"tag":571,"props":5923,"children":5924},{"style":594},[5925],{"type":48,"value":832},{"type":42,"tag":571,"props":5927,"children":5928},{"style":594},[5929],{"type":48,"value":837},{"type":42,"tag":571,"props":5931,"children":5932},{"class":573,"line":672},[5933,5938,5942,5946,5951,5955],{"type":42,"tag":571,"props":5934,"children":5935},{"style":695},[5936],{"type":48,"value":5937},"  status",{"type":42,"tag":571,"props":5939,"children":5940},{"style":594},[5941],{"type":48,"value":703},{"type":42,"tag":571,"props":5943,"children":5944},{"style":594},[5945],{"type":48,"value":618},{"type":42,"tag":571,"props":5947,"children":5948},{"style":621},[5949],{"type":48,"value":5950},"loading",{"type":42,"tag":571,"props":5952,"children":5953},{"style":594},[5954],{"type":48,"value":832},{"type":42,"tag":571,"props":5956,"children":5957},{"style":594},[5958],{"type":48,"value":837},{"type":42,"tag":571,"props":5960,"children":5961},{"class":573,"line":691},[5962,5966],{"type":42,"tag":571,"props":5963,"children":5964},{"style":594},[5965],{"type":48,"value":2991},{"type":42,"tag":571,"props":5967,"children":5968},{"style":600},[5969],{"type":48,"value":919},{"type":42,"tag":571,"props":5971,"children":5972},{"class":573,"line":711},[5973],{"type":42,"tag":571,"props":5974,"children":5975},{"emptyLinePlaceholder":666},[5976],{"type":48,"value":669},{"type":42,"tag":571,"props":5978,"children":5979},{"class":573,"line":735},[5980],{"type":42,"tag":571,"props":5981,"children":5982},{"style":578},[5983],{"type":48,"value":5984},"\u002F\u002F Update later\n",{"type":42,"tag":571,"props":5986,"children":5987},{"class":573,"line":744},[5988,5992,5997,6001,6006,6010],{"type":42,"tag":571,"props":5989,"children":5990},{"style":588},[5991],{"type":48,"value":5231},{"type":42,"tag":571,"props":5993,"children":5994},{"style":600},[5995],{"type":48,"value":5996}," handle",{"type":42,"tag":571,"props":5998,"children":5999},{"style":594},[6000],{"type":48,"value":115},{"type":42,"tag":571,"props":6002,"children":6003},{"style":715},[6004],{"type":48,"value":6005},"update",{"type":42,"tag":571,"props":6007,"children":6008},{"style":600},[6009],{"type":48,"value":755},{"type":42,"tag":571,"props":6011,"children":6012},{"style":594},[6013],{"type":48,"value":805},{"type":42,"tag":571,"props":6015,"children":6016},{"class":573,"line":772},[6017,6021,6025,6029,6034,6038],{"type":42,"tag":571,"props":6018,"children":6019},{"style":695},[6020],{"type":48,"value":5724},{"type":42,"tag":571,"props":6022,"children":6023},{"style":594},[6024],{"type":48,"value":703},{"type":42,"tag":571,"props":6026,"children":6027},{"style":594},[6028],{"type":48,"value":618},{"type":42,"tag":571,"props":6030,"children":6031},{"style":621},[6032],{"type":48,"value":6033},"Build complete",{"type":42,"tag":571,"props":6035,"children":6036},{"style":594},[6037],{"type":48,"value":832},{"type":42,"tag":571,"props":6039,"children":6040},{"style":594},[6041],{"type":48,"value":837},{"type":42,"tag":571,"props":6043,"children":6044},{"class":573,"line":808},[6045,6049,6053,6057,6062,6066],{"type":42,"tag":571,"props":6046,"children":6047},{"style":695},[6048],{"type":48,"value":5753},{"type":42,"tag":571,"props":6050,"children":6051},{"style":594},[6052],{"type":48,"value":703},{"type":42,"tag":571,"props":6054,"children":6055},{"style":594},[6056],{"type":48,"value":618},{"type":42,"tag":571,"props":6058,"children":6059},{"style":621},[6060],{"type":48,"value":6061},"success",{"type":42,"tag":571,"props":6063,"children":6064},{"style":594},[6065],{"type":48,"value":832},{"type":42,"tag":571,"props":6067,"children":6068},{"style":594},[6069],{"type":48,"value":837},{"type":42,"tag":571,"props":6071,"children":6072},{"class":573,"line":840},[6073,6077,6081,6085,6090,6094],{"type":42,"tag":571,"props":6074,"children":6075},{"style":695},[6076],{"type":48,"value":5937},{"type":42,"tag":571,"props":6078,"children":6079},{"style":594},[6080],{"type":48,"value":703},{"type":42,"tag":571,"props":6082,"children":6083},{"style":594},[6084],{"type":48,"value":618},{"type":42,"tag":571,"props":6086,"children":6087},{"style":621},[6088],{"type":48,"value":6089},"idle",{"type":42,"tag":571,"props":6091,"children":6092},{"style":594},[6093],{"type":48,"value":832},{"type":42,"tag":571,"props":6095,"children":6096},{"style":594},[6097],{"type":48,"value":837},{"type":42,"tag":571,"props":6099,"children":6100},{"class":573,"line":870},[6101,6105],{"type":42,"tag":571,"props":6102,"children":6103},{"style":594},[6104],{"type":48,"value":2991},{"type":42,"tag":571,"props":6106,"children":6107},{"style":600},[6108],{"type":48,"value":919},{"type":42,"tag":571,"props":6110,"children":6111},{"class":573,"line":908},[6112],{"type":42,"tag":571,"props":6113,"children":6114},{"emptyLinePlaceholder":666},[6115],{"type":48,"value":669},{"type":42,"tag":571,"props":6117,"children":6118},{"class":573,"line":922},[6119],{"type":42,"tag":571,"props":6120,"children":6121},{"style":578},[6122],{"type":48,"value":6123},"\u002F\u002F Or dismiss\n",{"type":42,"tag":571,"props":6125,"children":6126},{"class":573,"line":931},[6127,6131,6135,6139,6144],{"type":42,"tag":571,"props":6128,"children":6129},{"style":588},[6130],{"type":48,"value":5231},{"type":42,"tag":571,"props":6132,"children":6133},{"style":600},[6134],{"type":48,"value":5996},{"type":42,"tag":571,"props":6136,"children":6137},{"style":594},[6138],{"type":48,"value":115},{"type":42,"tag":571,"props":6140,"children":6141},{"style":715},[6142],{"type":48,"value":6143},"dismiss",{"type":42,"tag":571,"props":6145,"children":6146},{"style":600},[6147],{"type":48,"value":1692},{"type":42,"tag":2798,"props":6149,"children":6151},{"id":6150},"key-fields",[6152],{"type":48,"value":6153},"Key Fields",{"type":42,"tag":152,"props":6155,"children":6156},{},[6157,6177],{"type":42,"tag":156,"props":6158,"children":6159},{},[6160],{"type":42,"tag":160,"props":6161,"children":6162},{},[6163,6168,6172],{"type":42,"tag":164,"props":6164,"children":6165},{},[6166],{"type":48,"value":6167},"Field",{"type":42,"tag":164,"props":6169,"children":6170},{},[6171],{"type":48,"value":2704},{"type":42,"tag":164,"props":6173,"children":6174},{},[6175],{"type":48,"value":6176},"Description",{"type":42,"tag":180,"props":6178,"children":6179},{},[6180,6205,6231,6256,6282,6308,6334,6358,6384,6424,6450,6476],{"type":42,"tag":160,"props":6181,"children":6182},{},[6183,6192,6200],{"type":42,"tag":187,"props":6184,"children":6185},{},[6186],{"type":42,"tag":59,"props":6187,"children":6189},{"className":6188},[],[6190],{"type":48,"value":6191},"message",{"type":42,"tag":187,"props":6193,"children":6194},{},[6195],{"type":42,"tag":59,"props":6196,"children":6198},{"className":6197},[],[6199],{"type":48,"value":1660},{"type":42,"tag":187,"props":6201,"children":6202},{},[6203],{"type":48,"value":6204},"Short title (required)",{"type":42,"tag":160,"props":6206,"children":6207},{},[6208,6217,6226],{"type":42,"tag":187,"props":6209,"children":6210},{},[6211],{"type":42,"tag":59,"props":6212,"children":6214},{"className":6213},[],[6215],{"type":48,"value":6216},"level",{"type":42,"tag":187,"props":6218,"children":6219},{},[6220],{"type":42,"tag":59,"props":6221,"children":6223},{"className":6222},[],[6224],{"type":48,"value":6225},"'info' | 'warn' | 'error' | 'success' | 'debug'",{"type":42,"tag":187,"props":6227,"children":6228},{},[6229],{"type":48,"value":6230},"Severity (required)",{"type":42,"tag":160,"props":6232,"children":6233},{},[6234,6243,6251],{"type":42,"tag":187,"props":6235,"children":6236},{},[6237],{"type":42,"tag":59,"props":6238,"children":6240},{"className":6239},[],[6241],{"type":48,"value":6242},"description",{"type":42,"tag":187,"props":6244,"children":6245},{},[6246],{"type":42,"tag":59,"props":6247,"children":6249},{"className":6248},[],[6250],{"type":48,"value":1660},{"type":42,"tag":187,"props":6252,"children":6253},{},[6254],{"type":48,"value":6255},"Detailed description",{"type":42,"tag":160,"props":6257,"children":6258},{},[6259,6268,6277],{"type":42,"tag":187,"props":6260,"children":6261},{},[6262],{"type":42,"tag":59,"props":6263,"children":6265},{"className":6264},[],[6266],{"type":48,"value":6267},"notify",{"type":42,"tag":187,"props":6269,"children":6270},{},[6271],{"type":42,"tag":59,"props":6272,"children":6274},{"className":6273},[],[6275],{"type":48,"value":6276},"boolean",{"type":42,"tag":187,"props":6278,"children":6279},{},[6280],{"type":48,"value":6281},"Show as toast notification",{"type":42,"tag":160,"props":6283,"children":6284},{},[6285,6294,6303],{"type":42,"tag":187,"props":6286,"children":6287},{},[6288],{"type":42,"tag":59,"props":6289,"children":6291},{"className":6290},[],[6292],{"type":48,"value":6293},"filePosition",{"type":42,"tag":187,"props":6295,"children":6296},{},[6297],{"type":42,"tag":59,"props":6298,"children":6300},{"className":6299},[],[6301],{"type":48,"value":6302},"{ file, line?, column? }",{"type":42,"tag":187,"props":6304,"children":6305},{},[6306],{"type":48,"value":6307},"Source file location (clickable)",{"type":42,"tag":160,"props":6309,"children":6310},{},[6311,6320,6329],{"type":42,"tag":187,"props":6312,"children":6313},{},[6314],{"type":42,"tag":59,"props":6315,"children":6317},{"className":6316},[],[6318],{"type":48,"value":6319},"elementPosition",{"type":42,"tag":187,"props":6321,"children":6322},{},[6323],{"type":42,"tag":59,"props":6324,"children":6326},{"className":6325},[],[6327],{"type":48,"value":6328},"{ selector?, boundingBox?, description? }",{"type":42,"tag":187,"props":6330,"children":6331},{},[6332],{"type":48,"value":6333},"DOM element position",{"type":42,"tag":160,"props":6335,"children":6336},{},[6337,6345,6353],{"type":42,"tag":187,"props":6338,"children":6339},{},[6340],{"type":42,"tag":59,"props":6341,"children":6343},{"className":6342},[],[6344],{"type":48,"value":511},{"type":42,"tag":187,"props":6346,"children":6347},{},[6348],{"type":42,"tag":59,"props":6349,"children":6351},{"className":6350},[],[6352],{"type":48,"value":1660},{"type":42,"tag":187,"props":6354,"children":6355},{},[6356],{"type":48,"value":6357},"Explicit id for deduplication",{"type":42,"tag":160,"props":6359,"children":6360},{},[6361,6370,6379],{"type":42,"tag":187,"props":6362,"children":6363},{},[6364],{"type":42,"tag":59,"props":6365,"children":6367},{"className":6366},[],[6368],{"type":48,"value":6369},"status",{"type":42,"tag":187,"props":6371,"children":6372},{},[6373],{"type":42,"tag":59,"props":6374,"children":6376},{"className":6375},[],[6377],{"type":48,"value":6378},"'loading' | 'idle'",{"type":42,"tag":187,"props":6380,"children":6381},{},[6382],{"type":48,"value":6383},"Shows spinner when loading",{"type":42,"tag":160,"props":6385,"children":6386},{},[6387,6396,6404],{"type":42,"tag":187,"props":6388,"children":6389},{},[6390],{"type":42,"tag":59,"props":6391,"children":6393},{"className":6392},[],[6394],{"type":48,"value":6395},"category",{"type":42,"tag":187,"props":6397,"children":6398},{},[6399],{"type":42,"tag":59,"props":6400,"children":6402},{"className":6401},[],[6403],{"type":48,"value":1660},{"type":42,"tag":187,"props":6405,"children":6406},{},[6407,6409,6415,6417,6423],{"type":48,"value":6408},"Grouping (e.g., ",{"type":42,"tag":59,"props":6410,"children":6412},{"className":6411},[],[6413],{"type":48,"value":6414},"'a11y'",{"type":48,"value":6416},", ",{"type":42,"tag":59,"props":6418,"children":6420},{"className":6419},[],[6421],{"type":48,"value":6422},"'lint'",{"type":48,"value":373},{"type":42,"tag":160,"props":6425,"children":6426},{},[6427,6436,6445],{"type":42,"tag":187,"props":6428,"children":6429},{},[6430],{"type":42,"tag":59,"props":6431,"children":6433},{"className":6432},[],[6434],{"type":48,"value":6435},"labels",{"type":42,"tag":187,"props":6437,"children":6438},{},[6439],{"type":42,"tag":59,"props":6440,"children":6442},{"className":6441},[],[6443],{"type":48,"value":6444},"string[]",{"type":42,"tag":187,"props":6446,"children":6447},{},[6448],{"type":48,"value":6449},"Tags for filtering",{"type":42,"tag":160,"props":6451,"children":6452},{},[6453,6462,6471],{"type":42,"tag":187,"props":6454,"children":6455},{},[6456],{"type":42,"tag":59,"props":6457,"children":6459},{"className":6458},[],[6460],{"type":48,"value":6461},"autoDismiss",{"type":42,"tag":187,"props":6463,"children":6464},{},[6465],{"type":42,"tag":59,"props":6466,"children":6468},{"className":6467},[],[6469],{"type":48,"value":6470},"number",{"type":42,"tag":187,"props":6472,"children":6473},{},[6474],{"type":48,"value":6475},"Toast auto-dismiss time in ms (default: 5000)",{"type":42,"tag":160,"props":6477,"children":6478},{},[6479,6488,6496],{"type":42,"tag":187,"props":6480,"children":6481},{},[6482],{"type":42,"tag":59,"props":6483,"children":6485},{"className":6484},[],[6486],{"type":48,"value":6487},"autoDelete",{"type":42,"tag":187,"props":6489,"children":6490},{},[6491],{"type":42,"tag":59,"props":6492,"children":6494},{"className":6493},[],[6495],{"type":48,"value":6470},{"type":42,"tag":187,"props":6497,"children":6498},{},[6499],{"type":48,"value":6500},"Auto-delete time in ms",{"type":42,"tag":51,"props":6502,"children":6503},{},[6504,6506,6511,6513,6519,6520,6526],{"type":48,"value":6505},"The ",{"type":42,"tag":59,"props":6507,"children":6509},{"className":6508},[],[6510],{"type":48,"value":646},{"type":48,"value":6512}," field is automatically set to ",{"type":42,"tag":59,"props":6514,"children":6516},{"className":6515},[],[6517],{"type":48,"value":6518},"'server'",{"type":48,"value":488},{"type":42,"tag":59,"props":6521,"children":6523},{"className":6522},[],[6524],{"type":48,"value":6525},"'browser'",{"type":48,"value":115},{"type":42,"tag":2798,"props":6528,"children":6530},{"id":6529},"deduplication",[6531],{"type":48,"value":6532},"Deduplication",{"type":42,"tag":51,"props":6534,"children":6535},{},[6536,6538,6543],{"type":48,"value":6537},"Re-adding with the same ",{"type":42,"tag":59,"props":6539,"children":6541},{"className":6540},[],[6542],{"type":48,"value":511},{"type":48,"value":6544}," updates the existing entry instead of creating a duplicate:",{"type":42,"tag":560,"props":6546,"children":6548},{"className":562,"code":6547,"language":564,"meta":565,"style":565},"context.messages.add({ id: 'my-scan', message: 'Scanning...', level: 'info', status: 'loading' })\ncontext.messages.add({ id: 'my-scan', message: 'Scan complete', level: 'success', status: 'idle' })\n",[6549],{"type":42,"tag":59,"props":6550,"children":6551},{"__ignoreMap":565},[6552,6688],{"type":42,"tag":571,"props":6553,"children":6554},{"class":573,"line":574},[6555,6559,6563,6567,6571,6575,6579,6583,6587,6591,6595,6600,6604,6608,6613,6617,6621,6626,6630,6634,6639,6643,6647,6651,6655,6659,6664,6668,6672,6676,6680,6684],{"type":42,"tag":571,"props":6556,"children":6557},{"style":600},[6558],{"type":48,"value":5690},{"type":42,"tag":571,"props":6560,"children":6561},{"style":594},[6562],{"type":48,"value":115},{"type":42,"tag":571,"props":6564,"children":6565},{"style":600},[6566],{"type":48,"value":5699},{"type":42,"tag":571,"props":6568,"children":6569},{"style":594},[6570],{"type":48,"value":115},{"type":42,"tag":571,"props":6572,"children":6573},{"style":715},[6574],{"type":48,"value":5708},{"type":42,"tag":571,"props":6576,"children":6577},{"style":600},[6578],{"type":48,"value":755},{"type":42,"tag":571,"props":6580,"children":6581},{"style":594},[6582],{"type":48,"value":5498},{"type":42,"tag":571,"props":6584,"children":6585},{"style":695},[6586],{"type":48,"value":1778},{"type":42,"tag":571,"props":6588,"children":6589},{"style":594},[6590],{"type":48,"value":703},{"type":42,"tag":571,"props":6592,"children":6593},{"style":594},[6594],{"type":48,"value":618},{"type":42,"tag":571,"props":6596,"children":6597},{"style":621},[6598],{"type":48,"value":6599},"my-scan",{"type":42,"tag":571,"props":6601,"children":6602},{"style":594},[6603],{"type":48,"value":832},{"type":42,"tag":571,"props":6605,"children":6606},{"style":594},[6607],{"type":48,"value":728},{"type":42,"tag":571,"props":6609,"children":6610},{"style":695},[6611],{"type":48,"value":6612}," message",{"type":42,"tag":571,"props":6614,"children":6615},{"style":594},[6616],{"type":48,"value":703},{"type":42,"tag":571,"props":6618,"children":6619},{"style":594},[6620],{"type":48,"value":618},{"type":42,"tag":571,"props":6622,"children":6623},{"style":621},[6624],{"type":48,"value":6625},"Scanning...",{"type":42,"tag":571,"props":6627,"children":6628},{"style":594},[6629],{"type":48,"value":832},{"type":42,"tag":571,"props":6631,"children":6632},{"style":594},[6633],{"type":48,"value":728},{"type":42,"tag":571,"props":6635,"children":6636},{"style":695},[6637],{"type":48,"value":6638}," level",{"type":42,"tag":571,"props":6640,"children":6641},{"style":594},[6642],{"type":48,"value":703},{"type":42,"tag":571,"props":6644,"children":6645},{"style":594},[6646],{"type":48,"value":618},{"type":42,"tag":571,"props":6648,"children":6649},{"style":621},[6650],{"type":48,"value":3999},{"type":42,"tag":571,"props":6652,"children":6653},{"style":594},[6654],{"type":48,"value":832},{"type":42,"tag":571,"props":6656,"children":6657},{"style":594},[6658],{"type":48,"value":728},{"type":42,"tag":571,"props":6660,"children":6661},{"style":695},[6662],{"type":48,"value":6663}," status",{"type":42,"tag":571,"props":6665,"children":6666},{"style":594},[6667],{"type":48,"value":703},{"type":42,"tag":571,"props":6669,"children":6670},{"style":594},[6671],{"type":48,"value":618},{"type":42,"tag":571,"props":6673,"children":6674},{"style":621},[6675],{"type":48,"value":5950},{"type":42,"tag":571,"props":6677,"children":6678},{"style":594},[6679],{"type":48,"value":832},{"type":42,"tag":571,"props":6681,"children":6682},{"style":594},[6683],{"type":48,"value":608},{"type":42,"tag":571,"props":6685,"children":6686},{"style":600},[6687],{"type":48,"value":919},{"type":42,"tag":571,"props":6689,"children":6690},{"class":573,"line":584},[6691,6695,6699,6703,6707,6711,6715,6719,6723,6727,6731,6735,6739,6743,6747,6751,6755,6760,6764,6768,6772,6776,6780,6784,6788,6792,6796,6800,6804,6808,6812,6816],{"type":42,"tag":571,"props":6692,"children":6693},{"style":600},[6694],{"type":48,"value":5690},{"type":42,"tag":571,"props":6696,"children":6697},{"style":594},[6698],{"type":48,"value":115},{"type":42,"tag":571,"props":6700,"children":6701},{"style":600},[6702],{"type":48,"value":5699},{"type":42,"tag":571,"props":6704,"children":6705},{"style":594},[6706],{"type":48,"value":115},{"type":42,"tag":571,"props":6708,"children":6709},{"style":715},[6710],{"type":48,"value":5708},{"type":42,"tag":571,"props":6712,"children":6713},{"style":600},[6714],{"type":48,"value":755},{"type":42,"tag":571,"props":6716,"children":6717},{"style":594},[6718],{"type":48,"value":5498},{"type":42,"tag":571,"props":6720,"children":6721},{"style":695},[6722],{"type":48,"value":1778},{"type":42,"tag":571,"props":6724,"children":6725},{"style":594},[6726],{"type":48,"value":703},{"type":42,"tag":571,"props":6728,"children":6729},{"style":594},[6730],{"type":48,"value":618},{"type":42,"tag":571,"props":6732,"children":6733},{"style":621},[6734],{"type":48,"value":6599},{"type":42,"tag":571,"props":6736,"children":6737},{"style":594},[6738],{"type":48,"value":832},{"type":42,"tag":571,"props":6740,"children":6741},{"style":594},[6742],{"type":48,"value":728},{"type":42,"tag":571,"props":6744,"children":6745},{"style":695},[6746],{"type":48,"value":6612},{"type":42,"tag":571,"props":6748,"children":6749},{"style":594},[6750],{"type":48,"value":703},{"type":42,"tag":571,"props":6752,"children":6753},{"style":594},[6754],{"type":48,"value":618},{"type":42,"tag":571,"props":6756,"children":6757},{"style":621},[6758],{"type":48,"value":6759},"Scan complete",{"type":42,"tag":571,"props":6761,"children":6762},{"style":594},[6763],{"type":48,"value":832},{"type":42,"tag":571,"props":6765,"children":6766},{"style":594},[6767],{"type":48,"value":728},{"type":42,"tag":571,"props":6769,"children":6770},{"style":695},[6771],{"type":48,"value":6638},{"type":42,"tag":571,"props":6773,"children":6774},{"style":594},[6775],{"type":48,"value":703},{"type":42,"tag":571,"props":6777,"children":6778},{"style":594},[6779],{"type":48,"value":618},{"type":42,"tag":571,"props":6781,"children":6782},{"style":621},[6783],{"type":48,"value":6061},{"type":42,"tag":571,"props":6785,"children":6786},{"style":594},[6787],{"type":48,"value":832},{"type":42,"tag":571,"props":6789,"children":6790},{"style":594},[6791],{"type":48,"value":728},{"type":42,"tag":571,"props":6793,"children":6794},{"style":695},[6795],{"type":48,"value":6663},{"type":42,"tag":571,"props":6797,"children":6798},{"style":594},[6799],{"type":48,"value":703},{"type":42,"tag":571,"props":6801,"children":6802},{"style":594},[6803],{"type":48,"value":618},{"type":42,"tag":571,"props":6805,"children":6806},{"style":621},[6807],{"type":48,"value":6089},{"type":42,"tag":571,"props":6809,"children":6810},{"style":594},[6811],{"type":48,"value":832},{"type":42,"tag":571,"props":6813,"children":6814},{"style":594},[6815],{"type":48,"value":608},{"type":42,"tag":571,"props":6817,"children":6818},{"style":600},[6819],{"type":48,"value":919},{"type":42,"tag":117,"props":6821,"children":6823},{"id":6822},"rpc-functions",[6824],{"type":48,"value":6825},"RPC Functions",{"type":42,"tag":2798,"props":6827,"children":6829},{"id":6828},"server-side-definition",[6830],{"type":48,"value":6831},"Server-Side Definition",{"type":42,"tag":560,"props":6833,"children":6835},{"className":562,"code":6834,"language":564,"meta":565,"style":565},"import { defineRpcFunction } from '@vitejs\u002Fdevtools-kit'\n\nconst getModules = defineRpcFunction({\n  name: 'my-plugin:get-modules',\n  type: 'query', \u002F\u002F 'query' | 'action' | 'static'\n  setup: ctx => ({\n    handler: async (filter?: string) => {\n      \u002F\u002F ctx has full ViteDevToolsNodeContext\n      return modules.filter(m => !filter || m.includes(filter))\n    },\n  }),\n})\n\n\u002F\u002F Register in setup\nctx.rpc.register(getModules)\n",[6836],{"type":42,"tag":59,"props":6837,"children":6838},{"__ignoreMap":565},[6839,6874,6881,6909,6937,6969,6997,7044,7052,7126,7133,7149,7160,7167,7175],{"type":42,"tag":571,"props":6840,"children":6841},{"class":573,"line":574},[6842,6846,6850,6854,6858,6862,6866,6870],{"type":42,"tag":571,"props":6843,"children":6844},{"style":588},[6845],{"type":48,"value":591},{"type":42,"tag":571,"props":6847,"children":6848},{"style":594},[6849],{"type":48,"value":597},{"type":42,"tag":571,"props":6851,"children":6852},{"style":600},[6853],{"type":48,"value":1564},{"type":42,"tag":571,"props":6855,"children":6856},{"style":594},[6857],{"type":48,"value":608},{"type":42,"tag":571,"props":6859,"children":6860},{"style":588},[6861],{"type":48,"value":613},{"type":42,"tag":571,"props":6863,"children":6864},{"style":594},[6865],{"type":48,"value":618},{"type":42,"tag":571,"props":6867,"children":6868},{"style":621},[6869],{"type":48,"value":64},{"type":42,"tag":571,"props":6871,"children":6872},{"style":594},[6873],{"type":48,"value":628},{"type":42,"tag":571,"props":6875,"children":6876},{"class":573,"line":584},[6877],{"type":42,"tag":571,"props":6878,"children":6879},{"emptyLinePlaceholder":666},[6880],{"type":48,"value":669},{"type":42,"tag":571,"props":6882,"children":6883},{"class":573,"line":631},[6884,6888,6893,6897,6901,6905],{"type":42,"tag":571,"props":6885,"children":6886},{"style":888},[6887],{"type":48,"value":3774},{"type":42,"tag":571,"props":6889,"children":6890},{"style":600},[6891],{"type":48,"value":6892}," getModules ",{"type":42,"tag":571,"props":6894,"children":6895},{"style":594},[6896],{"type":48,"value":1022},{"type":42,"tag":571,"props":6898,"children":6899},{"style":715},[6900],{"type":48,"value":1564},{"type":42,"tag":571,"props":6902,"children":6903},{"style":600},[6904],{"type":48,"value":755},{"type":42,"tag":571,"props":6906,"children":6907},{"style":594},[6908],{"type":48,"value":805},{"type":42,"tag":571,"props":6910,"children":6911},{"class":573,"line":662},[6912,6917,6921,6925,6929,6933],{"type":42,"tag":571,"props":6913,"children":6914},{"style":695},[6915],{"type":48,"value":6916},"  name",{"type":42,"tag":571,"props":6918,"children":6919},{"style":594},[6920],{"type":48,"value":703},{"type":42,"tag":571,"props":6922,"children":6923},{"style":594},[6924],{"type":48,"value":618},{"type":42,"tag":571,"props":6926,"children":6927},{"style":621},[6928],{"type":48,"value":2596},{"type":42,"tag":571,"props":6930,"children":6931},{"style":594},[6932],{"type":48,"value":832},{"type":42,"tag":571,"props":6934,"children":6935},{"style":594},[6936],{"type":48,"value":837},{"type":42,"tag":571,"props":6938,"children":6939},{"class":573,"line":672},[6940,6944,6948,6952,6956,6960,6964],{"type":42,"tag":571,"props":6941,"children":6942},{"style":695},[6943],{"type":48,"value":2934},{"type":42,"tag":571,"props":6945,"children":6946},{"style":594},[6947],{"type":48,"value":703},{"type":42,"tag":571,"props":6949,"children":6950},{"style":594},[6951],{"type":48,"value":618},{"type":42,"tag":571,"props":6953,"children":6954},{"style":621},[6955],{"type":48,"value":2380},{"type":42,"tag":571,"props":6957,"children":6958},{"style":594},[6959],{"type":48,"value":832},{"type":42,"tag":571,"props":6961,"children":6962},{"style":594},[6963],{"type":48,"value":728},{"type":42,"tag":571,"props":6965,"children":6966},{"style":578},[6967],{"type":48,"value":6968}," \u002F\u002F 'query' | 'action' | 'static'\n",{"type":42,"tag":571,"props":6970,"children":6971},{"class":573,"line":691},[6972,6977,6981,6985,6989,6993],{"type":42,"tag":571,"props":6973,"children":6974},{"style":715},[6975],{"type":48,"value":6976},"  setup",{"type":42,"tag":571,"props":6978,"children":6979},{"style":594},[6980],{"type":48,"value":703},{"type":42,"tag":571,"props":6982,"children":6983},{"style":758},[6984],{"type":48,"value":3788},{"type":42,"tag":571,"props":6986,"children":6987},{"style":888},[6988],{"type":48,"value":891},{"type":42,"tag":571,"props":6990,"children":6991},{"style":600},[6992],{"type":48,"value":142},{"type":42,"tag":571,"props":6994,"children":6995},{"style":594},[6996],{"type":48,"value":805},{"type":42,"tag":571,"props":6998,"children":6999},{"class":573,"line":711},[7000,7005,7009,7013,7017,7022,7027,7032,7036,7040],{"type":42,"tag":571,"props":7001,"children":7002},{"style":715},[7003],{"type":48,"value":7004},"    handler",{"type":42,"tag":571,"props":7006,"children":7007},{"style":594},[7008],{"type":48,"value":703},{"type":42,"tag":571,"props":7010,"children":7011},{"style":888},[7012],{"type":48,"value":2435},{"type":42,"tag":571,"props":7014,"children":7015},{"style":594},[7016],{"type":48,"value":142},{"type":42,"tag":571,"props":7018,"children":7019},{"style":758},[7020],{"type":48,"value":7021},"filter",{"type":42,"tag":571,"props":7023,"children":7024},{"style":594},[7025],{"type":48,"value":7026},"?:",{"type":42,"tag":571,"props":7028,"children":7029},{"style":1118},[7030],{"type":48,"value":7031}," string",{"type":42,"tag":571,"props":7033,"children":7034},{"style":594},[7035],{"type":48,"value":373},{"type":42,"tag":571,"props":7037,"children":7038},{"style":888},[7039],{"type":48,"value":891},{"type":42,"tag":571,"props":7041,"children":7042},{"style":594},[7043],{"type":48,"value":688},{"type":42,"tag":571,"props":7045,"children":7046},{"class":573,"line":735},[7047],{"type":42,"tag":571,"props":7048,"children":7049},{"style":578},[7050],{"type":48,"value":7051},"      \u002F\u002F ctx has full ViteDevToolsNodeContext\n",{"type":42,"tag":571,"props":7053,"children":7054},{"class":573,"line":744},[7055,7060,7065,7069,7073,7077,7082,7086,7091,7095,7100,7105,7109,7114,7118,7122],{"type":42,"tag":571,"props":7056,"children":7057},{"style":588},[7058],{"type":48,"value":7059},"      return",{"type":42,"tag":571,"props":7061,"children":7062},{"style":600},[7063],{"type":48,"value":7064}," modules",{"type":42,"tag":571,"props":7066,"children":7067},{"style":594},[7068],{"type":48,"value":115},{"type":42,"tag":571,"props":7070,"children":7071},{"style":715},[7072],{"type":48,"value":7021},{"type":42,"tag":571,"props":7074,"children":7075},{"style":695},[7076],{"type":48,"value":755},{"type":42,"tag":571,"props":7078,"children":7079},{"style":758},[7080],{"type":48,"value":7081},"m",{"type":42,"tag":571,"props":7083,"children":7084},{"style":888},[7085],{"type":48,"value":891},{"type":42,"tag":571,"props":7087,"children":7088},{"style":594},[7089],{"type":48,"value":7090}," !",{"type":42,"tag":571,"props":7092,"children":7093},{"style":600},[7094],{"type":48,"value":7021},{"type":42,"tag":571,"props":7096,"children":7097},{"style":594},[7098],{"type":48,"value":7099}," ||",{"type":42,"tag":571,"props":7101,"children":7102},{"style":600},[7103],{"type":48,"value":7104}," m",{"type":42,"tag":571,"props":7106,"children":7107},{"style":594},[7108],{"type":48,"value":115},{"type":42,"tag":571,"props":7110,"children":7111},{"style":715},[7112],{"type":48,"value":7113},"includes",{"type":42,"tag":571,"props":7115,"children":7116},{"style":695},[7117],{"type":48,"value":755},{"type":42,"tag":571,"props":7119,"children":7120},{"style":600},[7121],{"type":48,"value":7021},{"type":42,"tag":571,"props":7123,"children":7124},{"style":695},[7125],{"type":48,"value":5609},{"type":42,"tag":571,"props":7127,"children":7128},{"class":573,"line":772},[7129],{"type":42,"tag":571,"props":7130,"children":7131},{"style":594},[7132],{"type":48,"value":1404},{"type":42,"tag":571,"props":7134,"children":7135},{"class":573,"line":808},[7136,7141,7145],{"type":42,"tag":571,"props":7137,"children":7138},{"style":594},[7139],{"type":48,"value":7140},"  }",{"type":42,"tag":571,"props":7142,"children":7143},{"style":600},[7144],{"type":48,"value":373},{"type":42,"tag":571,"props":7146,"children":7147},{"style":594},[7148],{"type":48,"value":837},{"type":42,"tag":571,"props":7150,"children":7151},{"class":573,"line":840},[7152,7156],{"type":42,"tag":571,"props":7153,"children":7154},{"style":594},[7155],{"type":48,"value":2991},{"type":42,"tag":571,"props":7157,"children":7158},{"style":600},[7159],{"type":48,"value":919},{"type":42,"tag":571,"props":7161,"children":7162},{"class":573,"line":870},[7163],{"type":42,"tag":571,"props":7164,"children":7165},{"emptyLinePlaceholder":666},[7166],{"type":48,"value":669},{"type":42,"tag":571,"props":7168,"children":7169},{"class":573,"line":908},[7170],{"type":42,"tag":571,"props":7171,"children":7172},{"style":578},[7173],{"type":48,"value":7174},"\u002F\u002F Register in setup\n",{"type":42,"tag":571,"props":7176,"children":7177},{"class":573,"line":922},[7178,7182,7186,7190,7194,7198],{"type":42,"tag":571,"props":7179,"children":7180},{"style":600},[7181],{"type":48,"value":761},{"type":42,"tag":571,"props":7183,"children":7184},{"style":594},[7185],{"type":48,"value":115},{"type":42,"tag":571,"props":7187,"children":7188},{"style":600},[7189],{"type":48,"value":2299},{"type":42,"tag":571,"props":7191,"children":7192},{"style":594},[7193],{"type":48,"value":115},{"type":42,"tag":571,"props":7195,"children":7196},{"style":715},[7197],{"type":48,"value":796},{"type":42,"tag":571,"props":7199,"children":7200},{"style":600},[7201],{"type":48,"value":7202},"(getModules)\n",{"type":42,"tag":2798,"props":7204,"children":7206},{"id":7205},"client-side-call-iframe",[7207],{"type":48,"value":7208},"Client-Side Call (iframe)",{"type":42,"tag":560,"props":7210,"children":7212},{"className":562,"code":7211,"language":564,"meta":565,"style":565},"import { getDevToolsRpcClient } from '@vitejs\u002Fdevtools-kit\u002Fclient'\n\nconst rpc = await getDevToolsRpcClient()\nconst modules = await rpc.call('my-plugin:get-modules', 'src\u002F')\n",[7213],{"type":42,"tag":59,"props":7214,"children":7215},{"__ignoreMap":565},[7216,7252,7259,7287],{"type":42,"tag":571,"props":7217,"children":7218},{"class":573,"line":574},[7219,7223,7227,7232,7236,7240,7244,7248],{"type":42,"tag":571,"props":7220,"children":7221},{"style":588},[7222],{"type":48,"value":591},{"type":42,"tag":571,"props":7224,"children":7225},{"style":594},[7226],{"type":48,"value":597},{"type":42,"tag":571,"props":7228,"children":7229},{"style":600},[7230],{"type":48,"value":7231}," getDevToolsRpcClient",{"type":42,"tag":571,"props":7233,"children":7234},{"style":594},[7235],{"type":48,"value":608},{"type":42,"tag":571,"props":7237,"children":7238},{"style":588},[7239],{"type":48,"value":613},{"type":42,"tag":571,"props":7241,"children":7242},{"style":594},[7243],{"type":48,"value":618},{"type":42,"tag":571,"props":7245,"children":7246},{"style":621},[7247],{"type":48,"value":3239},{"type":42,"tag":571,"props":7249,"children":7250},{"style":594},[7251],{"type":48,"value":628},{"type":42,"tag":571,"props":7253,"children":7254},{"class":573,"line":584},[7255],{"type":42,"tag":571,"props":7256,"children":7257},{"emptyLinePlaceholder":666},[7258],{"type":48,"value":669},{"type":42,"tag":571,"props":7260,"children":7261},{"class":573,"line":631},[7262,7266,7271,7275,7279,7283],{"type":42,"tag":571,"props":7263,"children":7264},{"style":888},[7265],{"type":48,"value":3774},{"type":42,"tag":571,"props":7267,"children":7268},{"style":600},[7269],{"type":48,"value":7270}," rpc ",{"type":42,"tag":571,"props":7272,"children":7273},{"style":594},[7274],{"type":48,"value":1022},{"type":42,"tag":571,"props":7276,"children":7277},{"style":588},[7278],{"type":48,"value":4943},{"type":42,"tag":571,"props":7280,"children":7281},{"style":715},[7282],{"type":48,"value":7231},{"type":42,"tag":571,"props":7284,"children":7285},{"style":600},[7286],{"type":48,"value":1692},{"type":42,"tag":571,"props":7288,"children":7289},{"class":573,"line":662},[7290,7294,7299,7303,7307,7312,7316,7321,7325,7329,7333,7337,7341,7345,7350,7354],{"type":42,"tag":571,"props":7291,"children":7292},{"style":888},[7293],{"type":48,"value":3774},{"type":42,"tag":571,"props":7295,"children":7296},{"style":600},[7297],{"type":48,"value":7298}," modules ",{"type":42,"tag":571,"props":7300,"children":7301},{"style":594},[7302],{"type":48,"value":1022},{"type":42,"tag":571,"props":7304,"children":7305},{"style":588},[7306],{"type":48,"value":4943},{"type":42,"tag":571,"props":7308,"children":7309},{"style":600},[7310],{"type":48,"value":7311}," rpc",{"type":42,"tag":571,"props":7313,"children":7314},{"style":594},[7315],{"type":48,"value":115},{"type":42,"tag":571,"props":7317,"children":7318},{"style":715},[7319],{"type":48,"value":7320},"call",{"type":42,"tag":571,"props":7322,"children":7323},{"style":600},[7324],{"type":48,"value":755},{"type":42,"tag":571,"props":7326,"children":7327},{"style":594},[7328],{"type":48,"value":832},{"type":42,"tag":571,"props":7330,"children":7331},{"style":621},[7332],{"type":48,"value":2596},{"type":42,"tag":571,"props":7334,"children":7335},{"style":594},[7336],{"type":48,"value":832},{"type":42,"tag":571,"props":7338,"children":7339},{"style":594},[7340],{"type":48,"value":728},{"type":42,"tag":571,"props":7342,"children":7343},{"style":594},[7344],{"type":48,"value":618},{"type":42,"tag":571,"props":7346,"children":7347},{"style":621},[7348],{"type":48,"value":7349},"src\u002F",{"type":42,"tag":571,"props":7351,"children":7352},{"style":594},[7353],{"type":48,"value":832},{"type":42,"tag":571,"props":7355,"children":7356},{"style":600},[7357],{"type":48,"value":919},{"type":42,"tag":2798,"props":7359,"children":7361},{"id":7360},"client-side-call-actionrenderer-script",[7362],{"type":48,"value":7363},"Client-Side Call (action\u002Frenderer script)",{"type":42,"tag":560,"props":7365,"children":7367},{"className":562,"code":7366,"language":564,"meta":565,"style":565},"import type { DevToolsClientScriptContext } from '@vitejs\u002Fdevtools-kit\u002Fclient'\n\nexport default function setup(ctx: DevToolsClientScriptContext) {\n  ctx.current.events.on('entry:activated', async () => {\n    const data = await ctx.current.rpc.call('my-plugin:get-data')\n  })\n}\n",[7368],{"type":42,"tag":59,"props":7369,"children":7370},{"__ignoreMap":565},[7371,7411,7418,7462,7534,7603,7614],{"type":42,"tag":571,"props":7372,"children":7373},{"class":573,"line":574},[7374,7378,7382,7386,7391,7395,7399,7403,7407],{"type":42,"tag":571,"props":7375,"children":7376},{"style":588},[7377],{"type":48,"value":591},{"type":42,"tag":571,"props":7379,"children":7380},{"style":588},[7381],{"type":48,"value":1053},{"type":42,"tag":571,"props":7383,"children":7384},{"style":594},[7385],{"type":48,"value":597},{"type":42,"tag":571,"props":7387,"children":7388},{"style":600},[7389],{"type":48,"value":7390}," DevToolsClientScriptContext",{"type":42,"tag":571,"props":7392,"children":7393},{"style":594},[7394],{"type":48,"value":608},{"type":42,"tag":571,"props":7396,"children":7397},{"style":588},[7398],{"type":48,"value":613},{"type":42,"tag":571,"props":7400,"children":7401},{"style":594},[7402],{"type":48,"value":618},{"type":42,"tag":571,"props":7404,"children":7405},{"style":621},[7406],{"type":48,"value":3239},{"type":42,"tag":571,"props":7408,"children":7409},{"style":594},[7410],{"type":48,"value":628},{"type":42,"tag":571,"props":7412,"children":7413},{"class":573,"line":584},[7414],{"type":42,"tag":571,"props":7415,"children":7416},{"emptyLinePlaceholder":666},[7417],{"type":48,"value":669},{"type":42,"tag":571,"props":7419,"children":7420},{"class":573,"line":631},[7421,7425,7429,7433,7438,7442,7446,7450,7454,7458],{"type":42,"tag":571,"props":7422,"children":7423},{"style":588},[7424],{"type":48,"value":678},{"type":42,"tag":571,"props":7426,"children":7427},{"style":588},[7428],{"type":48,"value":683},{"type":42,"tag":571,"props":7430,"children":7431},{"style":888},[7432],{"type":48,"value":1105},{"type":42,"tag":571,"props":7434,"children":7435},{"style":715},[7436],{"type":48,"value":7437}," setup",{"type":42,"tag":571,"props":7439,"children":7440},{"style":594},[7441],{"type":48,"value":755},{"type":42,"tag":571,"props":7443,"children":7444},{"style":758},[7445],{"type":48,"value":761},{"type":42,"tag":571,"props":7447,"children":7448},{"style":594},[7449],{"type":48,"value":703},{"type":42,"tag":571,"props":7451,"children":7452},{"style":1118},[7453],{"type":48,"value":7390},{"type":42,"tag":571,"props":7455,"children":7456},{"style":594},[7457],{"type":48,"value":373},{"type":42,"tag":571,"props":7459,"children":7460},{"style":594},[7461],{"type":48,"value":688},{"type":42,"tag":571,"props":7463,"children":7464},{"class":573,"line":662},[7465,7470,7474,7479,7483,7488,7492,7497,7501,7505,7510,7514,7518,7522,7526,7530],{"type":42,"tag":571,"props":7466,"children":7467},{"style":600},[7468],{"type":48,"value":7469},"  ctx",{"type":42,"tag":571,"props":7471,"children":7472},{"style":594},[7473],{"type":48,"value":115},{"type":42,"tag":571,"props":7475,"children":7476},{"style":600},[7477],{"type":48,"value":7478},"current",{"type":42,"tag":571,"props":7480,"children":7481},{"style":594},[7482],{"type":48,"value":115},{"type":42,"tag":571,"props":7484,"children":7485},{"style":600},[7486],{"type":48,"value":7487},"events",{"type":42,"tag":571,"props":7489,"children":7490},{"style":594},[7491],{"type":48,"value":115},{"type":42,"tag":571,"props":7493,"children":7494},{"style":715},[7495],{"type":48,"value":7496},"on",{"type":42,"tag":571,"props":7498,"children":7499},{"style":695},[7500],{"type":48,"value":755},{"type":42,"tag":571,"props":7502,"children":7503},{"style":594},[7504],{"type":48,"value":832},{"type":42,"tag":571,"props":7506,"children":7507},{"style":621},[7508],{"type":48,"value":7509},"entry:activated",{"type":42,"tag":571,"props":7511,"children":7512},{"style":594},[7513],{"type":48,"value":832},{"type":42,"tag":571,"props":7515,"children":7516},{"style":594},[7517],{"type":48,"value":728},{"type":42,"tag":571,"props":7519,"children":7520},{"style":888},[7521],{"type":48,"value":2435},{"type":42,"tag":571,"props":7523,"children":7524},{"style":594},[7525],{"type":48,"value":885},{"type":42,"tag":571,"props":7527,"children":7528},{"style":888},[7529],{"type":48,"value":891},{"type":42,"tag":571,"props":7531,"children":7532},{"style":594},[7533],{"type":48,"value":688},{"type":42,"tag":571,"props":7535,"children":7536},{"class":573,"line":672},[7537,7542,7546,7550,7554,7558,7562,7566,7570,7574,7578,7582,7586,7590,7595,7599],{"type":42,"tag":571,"props":7538,"children":7539},{"style":888},[7540],{"type":48,"value":7541},"    const",{"type":42,"tag":571,"props":7543,"children":7544},{"style":600},[7545],{"type":48,"value":1636},{"type":42,"tag":571,"props":7547,"children":7548},{"style":594},[7549],{"type":48,"value":1641},{"type":42,"tag":571,"props":7551,"children":7552},{"style":588},[7553],{"type":48,"value":4943},{"type":42,"tag":571,"props":7555,"children":7556},{"style":600},[7557],{"type":48,"value":3788},{"type":42,"tag":571,"props":7559,"children":7560},{"style":594},[7561],{"type":48,"value":115},{"type":42,"tag":571,"props":7563,"children":7564},{"style":600},[7565],{"type":48,"value":7478},{"type":42,"tag":571,"props":7567,"children":7568},{"style":594},[7569],{"type":48,"value":115},{"type":42,"tag":571,"props":7571,"children":7572},{"style":600},[7573],{"type":48,"value":2299},{"type":42,"tag":571,"props":7575,"children":7576},{"style":594},[7577],{"type":48,"value":115},{"type":42,"tag":571,"props":7579,"children":7580},{"style":715},[7581],{"type":48,"value":7320},{"type":42,"tag":571,"props":7583,"children":7584},{"style":695},[7585],{"type":48,"value":755},{"type":42,"tag":571,"props":7587,"children":7588},{"style":594},[7589],{"type":48,"value":832},{"type":42,"tag":571,"props":7591,"children":7592},{"style":621},[7593],{"type":48,"value":7594},"my-plugin:get-data",{"type":42,"tag":571,"props":7596,"children":7597},{"style":594},[7598],{"type":48,"value":832},{"type":42,"tag":571,"props":7600,"children":7601},{"style":695},[7602],{"type":48,"value":919},{"type":42,"tag":571,"props":7604,"children":7605},{"class":573,"line":691},[7606,7610],{"type":42,"tag":571,"props":7607,"children":7608},{"style":594},[7609],{"type":48,"value":7140},{"type":42,"tag":571,"props":7611,"children":7612},{"style":695},[7613],{"type":48,"value":919},{"type":42,"tag":571,"props":7615,"children":7616},{"class":573,"line":711},[7617],{"type":42,"tag":571,"props":7618,"children":7619},{"style":594},[7620],{"type":48,"value":967},{"type":42,"tag":117,"props":7622,"children":7624},{"id":7623},"client-context",[7625],{"type":48,"value":7626},"Client Context",{"type":42,"tag":51,"props":7628,"children":7629},{},[7630,7632,7638,7640,7646],{"type":48,"value":7631},"The global client context (",{"type":42,"tag":59,"props":7633,"children":7635},{"className":7634},[],[7636],{"type":48,"value":7637},"DevToolsClientContext",{"type":48,"value":7639},") provides access to the RPC client and is set automatically when DevTools initializes (embedded or standalone). Use ",{"type":42,"tag":59,"props":7641,"children":7643},{"className":7642},[],[7644],{"type":48,"value":7645},"getDevToolsClientContext()",{"type":48,"value":7647}," to access it from anywhere on the client side:",{"type":42,"tag":560,"props":7649,"children":7651},{"className":562,"code":7650,"language":564,"meta":565,"style":565},"import { getDevToolsClientContext } from '@vitejs\u002Fdevtools-kit\u002Fclient'\n\nconst ctx = getDevToolsClientContext()\nif (ctx) {\n  const modules = await ctx.rpc.call('my-plugin:get-modules')\n}\n",[7652],{"type":42,"tag":59,"props":7653,"children":7654},{"__ignoreMap":565},[7655,7691,7698,7722,7739,7798],{"type":42,"tag":571,"props":7656,"children":7657},{"class":573,"line":574},[7658,7662,7666,7671,7675,7679,7683,7687],{"type":42,"tag":571,"props":7659,"children":7660},{"style":588},[7661],{"type":48,"value":591},{"type":42,"tag":571,"props":7663,"children":7664},{"style":594},[7665],{"type":48,"value":597},{"type":42,"tag":571,"props":7667,"children":7668},{"style":600},[7669],{"type":48,"value":7670}," getDevToolsClientContext",{"type":42,"tag":571,"props":7672,"children":7673},{"style":594},[7674],{"type":48,"value":608},{"type":42,"tag":571,"props":7676,"children":7677},{"style":588},[7678],{"type":48,"value":613},{"type":42,"tag":571,"props":7680,"children":7681},{"style":594},[7682],{"type":48,"value":618},{"type":42,"tag":571,"props":7684,"children":7685},{"style":621},[7686],{"type":48,"value":3239},{"type":42,"tag":571,"props":7688,"children":7689},{"style":594},[7690],{"type":48,"value":628},{"type":42,"tag":571,"props":7692,"children":7693},{"class":573,"line":584},[7694],{"type":42,"tag":571,"props":7695,"children":7696},{"emptyLinePlaceholder":666},[7697],{"type":48,"value":669},{"type":42,"tag":571,"props":7699,"children":7700},{"class":573,"line":631},[7701,7705,7710,7714,7718],{"type":42,"tag":571,"props":7702,"children":7703},{"style":888},[7704],{"type":48,"value":3774},{"type":42,"tag":571,"props":7706,"children":7707},{"style":600},[7708],{"type":48,"value":7709}," ctx ",{"type":42,"tag":571,"props":7711,"children":7712},{"style":594},[7713],{"type":48,"value":1022},{"type":42,"tag":571,"props":7715,"children":7716},{"style":715},[7717],{"type":48,"value":7670},{"type":42,"tag":571,"props":7719,"children":7720},{"style":600},[7721],{"type":48,"value":1692},{"type":42,"tag":571,"props":7723,"children":7724},{"class":573,"line":662},[7725,7730,7735],{"type":42,"tag":571,"props":7726,"children":7727},{"style":588},[7728],{"type":48,"value":7729},"if",{"type":42,"tag":571,"props":7731,"children":7732},{"style":600},[7733],{"type":48,"value":7734}," (ctx) ",{"type":42,"tag":571,"props":7736,"children":7737},{"style":594},[7738],{"type":48,"value":805},{"type":42,"tag":571,"props":7740,"children":7741},{"class":573,"line":672},[7742,7746,7750,7754,7758,7762,7766,7770,7774,7778,7782,7786,7790,7794],{"type":42,"tag":571,"props":7743,"children":7744},{"style":888},[7745],{"type":48,"value":1631},{"type":42,"tag":571,"props":7747,"children":7748},{"style":600},[7749],{"type":48,"value":7064},{"type":42,"tag":571,"props":7751,"children":7752},{"style":594},[7753],{"type":48,"value":1641},{"type":42,"tag":571,"props":7755,"children":7756},{"style":588},[7757],{"type":48,"value":4943},{"type":42,"tag":571,"props":7759,"children":7760},{"style":600},[7761],{"type":48,"value":3788},{"type":42,"tag":571,"props":7763,"children":7764},{"style":594},[7765],{"type":48,"value":115},{"type":42,"tag":571,"props":7767,"children":7768},{"style":600},[7769],{"type":48,"value":2299},{"type":42,"tag":571,"props":7771,"children":7772},{"style":594},[7773],{"type":48,"value":115},{"type":42,"tag":571,"props":7775,"children":7776},{"style":715},[7777],{"type":48,"value":7320},{"type":42,"tag":571,"props":7779,"children":7780},{"style":695},[7781],{"type":48,"value":755},{"type":42,"tag":571,"props":7783,"children":7784},{"style":594},[7785],{"type":48,"value":832},{"type":42,"tag":571,"props":7787,"children":7788},{"style":621},[7789],{"type":48,"value":2596},{"type":42,"tag":571,"props":7791,"children":7792},{"style":594},[7793],{"type":48,"value":832},{"type":42,"tag":571,"props":7795,"children":7796},{"style":695},[7797],{"type":48,"value":919},{"type":42,"tag":571,"props":7799,"children":7800},{"class":573,"line":691},[7801],{"type":42,"tag":571,"props":7802,"children":7803},{"style":594},[7804],{"type":48,"value":967},{"type":42,"tag":2798,"props":7806,"children":7808},{"id":7807},"broadcasting-to-clients",[7809],{"type":48,"value":7810},"Broadcasting to Clients",{"type":42,"tag":560,"props":7812,"children":7814},{"className":562,"code":7813,"language":564,"meta":565,"style":565},"\u002F\u002F Server broadcasts to all clients\nctx.rpc.broadcast({\n  method: 'my-plugin:on-update',\n  args: [{ changedFile: '\u002Fsrc\u002Fmain.ts' }],\n})\n",[7815],{"type":42,"tag":59,"props":7816,"children":7817},{"__ignoreMap":565},[7818,7826,7858,7887,7941],{"type":42,"tag":571,"props":7819,"children":7820},{"class":573,"line":574},[7821],{"type":42,"tag":571,"props":7822,"children":7823},{"style":578},[7824],{"type":48,"value":7825},"\u002F\u002F Server broadcasts to all clients\n",{"type":42,"tag":571,"props":7827,"children":7828},{"class":573,"line":584},[7829,7833,7837,7841,7845,7850,7854],{"type":42,"tag":571,"props":7830,"children":7831},{"style":600},[7832],{"type":48,"value":761},{"type":42,"tag":571,"props":7834,"children":7835},{"style":594},[7836],{"type":48,"value":115},{"type":42,"tag":571,"props":7838,"children":7839},{"style":600},[7840],{"type":48,"value":2299},{"type":42,"tag":571,"props":7842,"children":7843},{"style":594},[7844],{"type":48,"value":115},{"type":42,"tag":571,"props":7846,"children":7847},{"style":715},[7848],{"type":48,"value":7849},"broadcast",{"type":42,"tag":571,"props":7851,"children":7852},{"style":600},[7853],{"type":48,"value":755},{"type":42,"tag":571,"props":7855,"children":7856},{"style":594},[7857],{"type":48,"value":805},{"type":42,"tag":571,"props":7859,"children":7860},{"class":573,"line":631},[7861,7866,7870,7874,7879,7883],{"type":42,"tag":571,"props":7862,"children":7863},{"style":695},[7864],{"type":48,"value":7865},"  method",{"type":42,"tag":571,"props":7867,"children":7868},{"style":594},[7869],{"type":48,"value":703},{"type":42,"tag":571,"props":7871,"children":7872},{"style":594},[7873],{"type":48,"value":618},{"type":42,"tag":571,"props":7875,"children":7876},{"style":621},[7877],{"type":48,"value":7878},"my-plugin:on-update",{"type":42,"tag":571,"props":7880,"children":7881},{"style":594},[7882],{"type":48,"value":832},{"type":42,"tag":571,"props":7884,"children":7885},{"style":594},[7886],{"type":48,"value":837},{"type":42,"tag":571,"props":7888,"children":7889},{"class":573,"line":662},[7890,7895,7899,7903,7907,7912,7916,7920,7925,7929,7933,7937],{"type":42,"tag":571,"props":7891,"children":7892},{"style":695},[7893],{"type":48,"value":7894},"  args",{"type":42,"tag":571,"props":7896,"children":7897},{"style":594},[7898],{"type":48,"value":703},{"type":42,"tag":571,"props":7900,"children":7901},{"style":600},[7902],{"type":48,"value":3973},{"type":42,"tag":571,"props":7904,"children":7905},{"style":594},[7906],{"type":48,"value":5498},{"type":42,"tag":571,"props":7908,"children":7909},{"style":695},[7910],{"type":48,"value":7911}," changedFile",{"type":42,"tag":571,"props":7913,"children":7914},{"style":594},[7915],{"type":48,"value":703},{"type":42,"tag":571,"props":7917,"children":7918},{"style":594},[7919],{"type":48,"value":618},{"type":42,"tag":571,"props":7921,"children":7922},{"style":621},[7923],{"type":48,"value":7924},"\u002Fsrc\u002Fmain.ts",{"type":42,"tag":571,"props":7926,"children":7927},{"style":594},[7928],{"type":48,"value":832},{"type":42,"tag":571,"props":7930,"children":7931},{"style":594},[7932],{"type":48,"value":608},{"type":42,"tag":571,"props":7934,"children":7935},{"style":600},[7936],{"type":48,"value":4008},{"type":42,"tag":571,"props":7938,"children":7939},{"style":594},[7940],{"type":48,"value":837},{"type":42,"tag":571,"props":7942,"children":7943},{"class":573,"line":672},[7944,7948],{"type":42,"tag":571,"props":7945,"children":7946},{"style":594},[7947],{"type":48,"value":2991},{"type":42,"tag":571,"props":7949,"children":7950},{"style":600},[7951],{"type":48,"value":919},{"type":42,"tag":117,"props":7953,"children":7955},{"id":7954},"type-safety",[7956],{"type":48,"value":7957},"Type Safety",{"type":42,"tag":51,"props":7959,"children":7960},{},[7961],{"type":48,"value":7962},"Extend the DevTools Kit interfaces for full type checking:",{"type":42,"tag":560,"props":7964,"children":7966},{"className":562,"code":7965,"language":564,"meta":565,"style":565},"\u002F\u002F src\u002Ftypes.ts\nimport '@vitejs\u002Fdevtools-kit'\n\ndeclare module '@vitejs\u002Fdevtools-kit' {\n  interface DevToolsRpcServerFunctions {\n    'my-plugin:get-modules': (filter?: string) => Promise\u003CModule[]>\n  }\n\n  interface DevToolsRpcClientFunctions {\n    'my-plugin:on-update': (data: { changedFile: string }) => void\n  }\n\n  interface DevToolsRpcSharedStates {\n    'my-plugin:state': MyPluginState\n  }\n}\n",[7967],{"type":42,"tag":59,"props":7968,"children":7969},{"__ignoreMap":565},[7970,7978,7997,8004,8033,8050,8118,8125,8132,8148,8209,8216,8223,8239,8263,8270],{"type":42,"tag":571,"props":7971,"children":7972},{"class":573,"line":574},[7973],{"type":42,"tag":571,"props":7974,"children":7975},{"style":578},[7976],{"type":48,"value":7977},"\u002F\u002F src\u002Ftypes.ts\n",{"type":42,"tag":571,"props":7979,"children":7980},{"class":573,"line":584},[7981,7985,7989,7993],{"type":42,"tag":571,"props":7982,"children":7983},{"style":588},[7984],{"type":48,"value":591},{"type":42,"tag":571,"props":7986,"children":7987},{"style":594},[7988],{"type":48,"value":618},{"type":42,"tag":571,"props":7990,"children":7991},{"style":621},[7992],{"type":48,"value":64},{"type":42,"tag":571,"props":7994,"children":7995},{"style":594},[7996],{"type":48,"value":628},{"type":42,"tag":571,"props":7998,"children":7999},{"class":573,"line":631},[8000],{"type":42,"tag":571,"props":8001,"children":8002},{"emptyLinePlaceholder":666},[8003],{"type":48,"value":669},{"type":42,"tag":571,"props":8005,"children":8006},{"class":573,"line":662},[8007,8012,8017,8021,8025,8029],{"type":42,"tag":571,"props":8008,"children":8009},{"style":888},[8010],{"type":48,"value":8011},"declare",{"type":42,"tag":571,"props":8013,"children":8014},{"style":888},[8015],{"type":48,"value":8016}," module",{"type":42,"tag":571,"props":8018,"children":8019},{"style":594},[8020],{"type":48,"value":618},{"type":42,"tag":571,"props":8022,"children":8023},{"style":621},[8024],{"type":48,"value":64},{"type":42,"tag":571,"props":8026,"children":8027},{"style":594},[8028],{"type":48,"value":832},{"type":42,"tag":571,"props":8030,"children":8031},{"style":594},[8032],{"type":48,"value":688},{"type":42,"tag":571,"props":8034,"children":8035},{"class":573,"line":672},[8036,8041,8046],{"type":42,"tag":571,"props":8037,"children":8038},{"style":888},[8039],{"type":48,"value":8040},"  interface",{"type":42,"tag":571,"props":8042,"children":8043},{"style":1118},[8044],{"type":48,"value":8045}," DevToolsRpcServerFunctions",{"type":42,"tag":571,"props":8047,"children":8048},{"style":594},[8049],{"type":48,"value":688},{"type":42,"tag":571,"props":8051,"children":8052},{"class":573,"line":691},[8053,8058,8062,8066,8070,8074,8078,8082,8086,8090,8094,8099,8103,8108,8113],{"type":42,"tag":571,"props":8054,"children":8055},{"style":594},[8056],{"type":48,"value":8057},"    '",{"type":42,"tag":571,"props":8059,"children":8060},{"style":621},[8061],{"type":48,"value":2596},{"type":42,"tag":571,"props":8063,"children":8064},{"style":594},[8065],{"type":48,"value":832},{"type":42,"tag":571,"props":8067,"children":8068},{"style":594},[8069],{"type":48,"value":703},{"type":42,"tag":571,"props":8071,"children":8072},{"style":594},[8073],{"type":48,"value":142},{"type":42,"tag":571,"props":8075,"children":8076},{"style":758},[8077],{"type":48,"value":7021},{"type":42,"tag":571,"props":8079,"children":8080},{"style":594},[8081],{"type":48,"value":7026},{"type":42,"tag":571,"props":8083,"children":8084},{"style":1118},[8085],{"type":48,"value":7031},{"type":42,"tag":571,"props":8087,"children":8088},{"style":594},[8089],{"type":48,"value":373},{"type":42,"tag":571,"props":8091,"children":8092},{"style":888},[8093],{"type":48,"value":891},{"type":42,"tag":571,"props":8095,"children":8096},{"style":1118},[8097],{"type":48,"value":8098}," Promise",{"type":42,"tag":571,"props":8100,"children":8101},{"style":594},[8102],{"type":48,"value":1005},{"type":42,"tag":571,"props":8104,"children":8105},{"style":1118},[8106],{"type":48,"value":8107},"Module",{"type":42,"tag":571,"props":8109,"children":8110},{"style":695},[8111],{"type":48,"value":8112},"[]",{"type":42,"tag":571,"props":8114,"children":8115},{"style":594},[8116],{"type":48,"value":8117},">\n",{"type":42,"tag":571,"props":8119,"children":8120},{"class":573,"line":711},[8121],{"type":42,"tag":571,"props":8122,"children":8123},{"style":594},[8124],{"type":48,"value":1412},{"type":42,"tag":571,"props":8126,"children":8127},{"class":573,"line":735},[8128],{"type":42,"tag":571,"props":8129,"children":8130},{"emptyLinePlaceholder":666},[8131],{"type":48,"value":669},{"type":42,"tag":571,"props":8133,"children":8134},{"class":573,"line":744},[8135,8139,8144],{"type":42,"tag":571,"props":8136,"children":8137},{"style":888},[8138],{"type":48,"value":8040},{"type":42,"tag":571,"props":8140,"children":8141},{"style":1118},[8142],{"type":48,"value":8143}," DevToolsRpcClientFunctions",{"type":42,"tag":571,"props":8145,"children":8146},{"style":594},[8147],{"type":48,"value":688},{"type":42,"tag":571,"props":8149,"children":8150},{"class":573,"line":772},[8151,8155,8159,8163,8167,8171,8175,8179,8183,8187,8191,8195,8200,8204],{"type":42,"tag":571,"props":8152,"children":8153},{"style":594},[8154],{"type":48,"value":8057},{"type":42,"tag":571,"props":8156,"children":8157},{"style":621},[8158],{"type":48,"value":7878},{"type":42,"tag":571,"props":8160,"children":8161},{"style":594},[8162],{"type":48,"value":832},{"type":42,"tag":571,"props":8164,"children":8165},{"style":594},[8166],{"type":48,"value":703},{"type":42,"tag":571,"props":8168,"children":8169},{"style":594},[8170],{"type":48,"value":142},{"type":42,"tag":571,"props":8172,"children":8173},{"style":758},[8174],{"type":48,"value":2465},{"type":42,"tag":571,"props":8176,"children":8177},{"style":594},[8178],{"type":48,"value":703},{"type":42,"tag":571,"props":8180,"children":8181},{"style":594},[8182],{"type":48,"value":597},{"type":42,"tag":571,"props":8184,"children":8185},{"style":695},[8186],{"type":48,"value":7911},{"type":42,"tag":571,"props":8188,"children":8189},{"style":594},[8190],{"type":48,"value":703},{"type":42,"tag":571,"props":8192,"children":8193},{"style":1118},[8194],{"type":48,"value":7031},{"type":42,"tag":571,"props":8196,"children":8197},{"style":594},[8198],{"type":48,"value":8199}," })",{"type":42,"tag":571,"props":8201,"children":8202},{"style":888},[8203],{"type":48,"value":891},{"type":42,"tag":571,"props":8205,"children":8206},{"style":1118},[8207],{"type":48,"value":8208}," void\n",{"type":42,"tag":571,"props":8210,"children":8211},{"class":573,"line":808},[8212],{"type":42,"tag":571,"props":8213,"children":8214},{"style":594},[8215],{"type":48,"value":1412},{"type":42,"tag":571,"props":8217,"children":8218},{"class":573,"line":840},[8219],{"type":42,"tag":571,"props":8220,"children":8221},{"emptyLinePlaceholder":666},[8222],{"type":48,"value":669},{"type":42,"tag":571,"props":8224,"children":8225},{"class":573,"line":870},[8226,8230,8235],{"type":42,"tag":571,"props":8227,"children":8228},{"style":888},[8229],{"type":48,"value":8040},{"type":42,"tag":571,"props":8231,"children":8232},{"style":1118},[8233],{"type":48,"value":8234}," DevToolsRpcSharedStates",{"type":42,"tag":571,"props":8236,"children":8237},{"style":594},[8238],{"type":48,"value":688},{"type":42,"tag":571,"props":8240,"children":8241},{"class":573,"line":908},[8242,8246,8250,8254,8258],{"type":42,"tag":571,"props":8243,"children":8244},{"style":594},[8245],{"type":48,"value":8057},{"type":42,"tag":571,"props":8247,"children":8248},{"style":621},[8249],{"type":48,"value":2612},{"type":42,"tag":571,"props":8251,"children":8252},{"style":594},[8253],{"type":48,"value":832},{"type":42,"tag":571,"props":8255,"children":8256},{"style":594},[8257],{"type":48,"value":703},{"type":42,"tag":571,"props":8259,"children":8260},{"style":1118},[8261],{"type":48,"value":8262}," MyPluginState\n",{"type":42,"tag":571,"props":8264,"children":8265},{"class":573,"line":922},[8266],{"type":42,"tag":571,"props":8267,"children":8268},{"style":594},[8269],{"type":48,"value":1412},{"type":42,"tag":571,"props":8271,"children":8272},{"class":573,"line":931},[8273],{"type":42,"tag":571,"props":8274,"children":8275},{"style":594},[8276],{"type":48,"value":967},{"type":42,"tag":117,"props":8278,"children":8280},{"id":8279},"shared-state",[8281],{"type":48,"value":8282},"Shared State",{"type":42,"tag":2798,"props":8284,"children":8286},{"id":8285},"server-side",[8287],{"type":48,"value":8288},"Server-Side",{"type":42,"tag":560,"props":8290,"children":8292},{"className":562,"code":8291,"language":564,"meta":565,"style":565},"const state = await ctx.rpc.sharedState.get('my-plugin:state', {\n  initialValue: { count: 0, items: [] },\n})\n\n\u002F\u002F Read\nconsole.log(state.value())\n\n\u002F\u002F Mutate (auto-syncs to clients)\nstate.mutate((draft) => {\n  draft.count += 1\n  draft.items.push('new item')\n})\n",[8293],{"type":42,"tag":59,"props":8294,"children":8295},{"__ignoreMap":565},[8296,8370,8422,8433,8440,8448,8484,8491,8499,8540,8567,8613],{"type":42,"tag":571,"props":8297,"children":8298},{"class":573,"line":574},[8299,8303,8308,8312,8316,8320,8324,8328,8332,8337,8341,8346,8350,8354,8358,8362,8366],{"type":42,"tag":571,"props":8300,"children":8301},{"style":888},[8302],{"type":48,"value":3774},{"type":42,"tag":571,"props":8304,"children":8305},{"style":600},[8306],{"type":48,"value":8307}," state ",{"type":42,"tag":571,"props":8309,"children":8310},{"style":594},[8311],{"type":48,"value":1022},{"type":42,"tag":571,"props":8313,"children":8314},{"style":588},[8315],{"type":48,"value":4943},{"type":42,"tag":571,"props":8317,"children":8318},{"style":600},[8319],{"type":48,"value":3788},{"type":42,"tag":571,"props":8321,"children":8322},{"style":594},[8323],{"type":48,"value":115},{"type":42,"tag":571,"props":8325,"children":8326},{"style":600},[8327],{"type":48,"value":2299},{"type":42,"tag":571,"props":8329,"children":8330},{"style":594},[8331],{"type":48,"value":115},{"type":42,"tag":571,"props":8333,"children":8334},{"style":600},[8335],{"type":48,"value":8336},"sharedState",{"type":42,"tag":571,"props":8338,"children":8339},{"style":594},[8340],{"type":48,"value":115},{"type":42,"tag":571,"props":8342,"children":8343},{"style":715},[8344],{"type":48,"value":8345},"get",{"type":42,"tag":571,"props":8347,"children":8348},{"style":600},[8349],{"type":48,"value":755},{"type":42,"tag":571,"props":8351,"children":8352},{"style":594},[8353],{"type":48,"value":832},{"type":42,"tag":571,"props":8355,"children":8356},{"style":621},[8357],{"type":48,"value":2612},{"type":42,"tag":571,"props":8359,"children":8360},{"style":594},[8361],{"type":48,"value":832},{"type":42,"tag":571,"props":8363,"children":8364},{"style":594},[8365],{"type":48,"value":728},{"type":42,"tag":571,"props":8367,"children":8368},{"style":594},[8369],{"type":48,"value":688},{"type":42,"tag":571,"props":8371,"children":8372},{"class":573,"line":584},[8373,8378,8382,8386,8391,8395,8400,8404,8409,8413,8418],{"type":42,"tag":571,"props":8374,"children":8375},{"style":695},[8376],{"type":48,"value":8377},"  initialValue",{"type":42,"tag":571,"props":8379,"children":8380},{"style":594},[8381],{"type":48,"value":703},{"type":42,"tag":571,"props":8383,"children":8384},{"style":594},[8385],{"type":48,"value":597},{"type":42,"tag":571,"props":8387,"children":8388},{"style":695},[8389],{"type":48,"value":8390}," count",{"type":42,"tag":571,"props":8392,"children":8393},{"style":594},[8394],{"type":48,"value":703},{"type":42,"tag":571,"props":8396,"children":8397},{"style":3948},[8398],{"type":48,"value":8399}," 0",{"type":42,"tag":571,"props":8401,"children":8402},{"style":594},[8403],{"type":48,"value":728},{"type":42,"tag":571,"props":8405,"children":8406},{"style":695},[8407],{"type":48,"value":8408}," items",{"type":42,"tag":571,"props":8410,"children":8411},{"style":594},[8412],{"type":48,"value":703},{"type":42,"tag":571,"props":8414,"children":8415},{"style":600},[8416],{"type":48,"value":8417}," [] ",{"type":42,"tag":571,"props":8419,"children":8420},{"style":594},[8421],{"type":48,"value":905},{"type":42,"tag":571,"props":8423,"children":8424},{"class":573,"line":631},[8425,8429],{"type":42,"tag":571,"props":8426,"children":8427},{"style":594},[8428],{"type":48,"value":2991},{"type":42,"tag":571,"props":8430,"children":8431},{"style":600},[8432],{"type":48,"value":919},{"type":42,"tag":571,"props":8434,"children":8435},{"class":573,"line":662},[8436],{"type":42,"tag":571,"props":8437,"children":8438},{"emptyLinePlaceholder":666},[8439],{"type":48,"value":669},{"type":42,"tag":571,"props":8441,"children":8442},{"class":573,"line":672},[8443],{"type":42,"tag":571,"props":8444,"children":8445},{"style":578},[8446],{"type":48,"value":8447},"\u002F\u002F Read\n",{"type":42,"tag":571,"props":8449,"children":8450},{"class":573,"line":691},[8451,8456,8460,8465,8470,8474,8479],{"type":42,"tag":571,"props":8452,"children":8453},{"style":600},[8454],{"type":48,"value":8455},"console",{"type":42,"tag":571,"props":8457,"children":8458},{"style":594},[8459],{"type":48,"value":115},{"type":42,"tag":571,"props":8461,"children":8462},{"style":715},[8463],{"type":48,"value":8464},"log",{"type":42,"tag":571,"props":8466,"children":8467},{"style":600},[8468],{"type":48,"value":8469},"(state",{"type":42,"tag":571,"props":8471,"children":8472},{"style":594},[8473],{"type":48,"value":115},{"type":42,"tag":571,"props":8475,"children":8476},{"style":715},[8477],{"type":48,"value":8478},"value",{"type":42,"tag":571,"props":8480,"children":8481},{"style":600},[8482],{"type":48,"value":8483},"())\n",{"type":42,"tag":571,"props":8485,"children":8486},{"class":573,"line":711},[8487],{"type":42,"tag":571,"props":8488,"children":8489},{"emptyLinePlaceholder":666},[8490],{"type":48,"value":669},{"type":42,"tag":571,"props":8492,"children":8493},{"class":573,"line":735},[8494],{"type":42,"tag":571,"props":8495,"children":8496},{"style":578},[8497],{"type":48,"value":8498},"\u002F\u002F Mutate (auto-syncs to clients)\n",{"type":42,"tag":571,"props":8500,"children":8501},{"class":573,"line":744},[8502,8506,8510,8515,8519,8523,8528,8532,8536],{"type":42,"tag":571,"props":8503,"children":8504},{"style":600},[8505],{"type":48,"value":2680},{"type":42,"tag":571,"props":8507,"children":8508},{"style":594},[8509],{"type":48,"value":115},{"type":42,"tag":571,"props":8511,"children":8512},{"style":715},[8513],{"type":48,"value":8514},"mutate",{"type":42,"tag":571,"props":8516,"children":8517},{"style":600},[8518],{"type":48,"value":755},{"type":42,"tag":571,"props":8520,"children":8521},{"style":594},[8522],{"type":48,"value":755},{"type":42,"tag":571,"props":8524,"children":8525},{"style":758},[8526],{"type":48,"value":8527},"draft",{"type":42,"tag":571,"props":8529,"children":8530},{"style":594},[8531],{"type":48,"value":373},{"type":42,"tag":571,"props":8533,"children":8534},{"style":888},[8535],{"type":48,"value":891},{"type":42,"tag":571,"props":8537,"children":8538},{"style":594},[8539],{"type":48,"value":688},{"type":42,"tag":571,"props":8541,"children":8542},{"class":573,"line":772},[8543,8548,8552,8557,8562],{"type":42,"tag":571,"props":8544,"children":8545},{"style":600},[8546],{"type":48,"value":8547},"  draft",{"type":42,"tag":571,"props":8549,"children":8550},{"style":594},[8551],{"type":48,"value":115},{"type":42,"tag":571,"props":8553,"children":8554},{"style":600},[8555],{"type":48,"value":8556},"count",{"type":42,"tag":571,"props":8558,"children":8559},{"style":594},[8560],{"type":48,"value":8561}," +=",{"type":42,"tag":571,"props":8563,"children":8564},{"style":3948},[8565],{"type":48,"value":8566}," 1\n",{"type":42,"tag":571,"props":8568,"children":8569},{"class":573,"line":808},[8570,8574,8578,8583,8587,8592,8596,8600,8605,8609],{"type":42,"tag":571,"props":8571,"children":8572},{"style":600},[8573],{"type":48,"value":8547},{"type":42,"tag":571,"props":8575,"children":8576},{"style":594},[8577],{"type":48,"value":115},{"type":42,"tag":571,"props":8579,"children":8580},{"style":600},[8581],{"type":48,"value":8582},"items",{"type":42,"tag":571,"props":8584,"children":8585},{"style":594},[8586],{"type":48,"value":115},{"type":42,"tag":571,"props":8588,"children":8589},{"style":715},[8590],{"type":48,"value":8591},"push",{"type":42,"tag":571,"props":8593,"children":8594},{"style":695},[8595],{"type":48,"value":755},{"type":42,"tag":571,"props":8597,"children":8598},{"style":594},[8599],{"type":48,"value":832},{"type":42,"tag":571,"props":8601,"children":8602},{"style":621},[8603],{"type":48,"value":8604},"new item",{"type":42,"tag":571,"props":8606,"children":8607},{"style":594},[8608],{"type":48,"value":832},{"type":42,"tag":571,"props":8610,"children":8611},{"style":695},[8612],{"type":48,"value":919},{"type":42,"tag":571,"props":8614,"children":8615},{"class":573,"line":840},[8616,8620],{"type":42,"tag":571,"props":8617,"children":8618},{"style":594},[8619],{"type":48,"value":2991},{"type":42,"tag":571,"props":8621,"children":8622},{"style":600},[8623],{"type":48,"value":919},{"type":42,"tag":2798,"props":8625,"children":8627},{"id":8626},"client-side",[8628],{"type":48,"value":8629},"Client-Side",{"type":42,"tag":560,"props":8631,"children":8633},{"className":562,"code":8632,"language":564,"meta":565,"style":565},"const client = await getDevToolsRpcClient()\nconst state = await client.rpc.sharedState.get('my-plugin:state')\n\n\u002F\u002F Read\nconsole.log(state.value())\n\n\u002F\u002F Subscribe to changes\nstate.on('updated', (newState) => {\n  console.log('State updated:', newState)\n})\n",[8634],{"type":42,"tag":59,"props":8635,"children":8636},{"__ignoreMap":565},[8637,8665,8733,8740,8747,8778,8785,8793,8850,8896],{"type":42,"tag":571,"props":8638,"children":8639},{"class":573,"line":574},[8640,8644,8649,8653,8657,8661],{"type":42,"tag":571,"props":8641,"children":8642},{"style":888},[8643],{"type":48,"value":3774},{"type":42,"tag":571,"props":8645,"children":8646},{"style":600},[8647],{"type":48,"value":8648}," client ",{"type":42,"tag":571,"props":8650,"children":8651},{"style":594},[8652],{"type":48,"value":1022},{"type":42,"tag":571,"props":8654,"children":8655},{"style":588},[8656],{"type":48,"value":4943},{"type":42,"tag":571,"props":8658,"children":8659},{"style":715},[8660],{"type":48,"value":7231},{"type":42,"tag":571,"props":8662,"children":8663},{"style":600},[8664],{"type":48,"value":1692},{"type":42,"tag":571,"props":8666,"children":8667},{"class":573,"line":584},[8668,8672,8676,8680,8684,8689,8693,8697,8701,8705,8709,8713,8717,8721,8725,8729],{"type":42,"tag":571,"props":8669,"children":8670},{"style":888},[8671],{"type":48,"value":3774},{"type":42,"tag":571,"props":8673,"children":8674},{"style":600},[8675],{"type":48,"value":8307},{"type":42,"tag":571,"props":8677,"children":8678},{"style":594},[8679],{"type":48,"value":1022},{"type":42,"tag":571,"props":8681,"children":8682},{"style":588},[8683],{"type":48,"value":4943},{"type":42,"tag":571,"props":8685,"children":8686},{"style":600},[8687],{"type":48,"value":8688}," client",{"type":42,"tag":571,"props":8690,"children":8691},{"style":594},[8692],{"type":48,"value":115},{"type":42,"tag":571,"props":8694,"children":8695},{"style":600},[8696],{"type":48,"value":2299},{"type":42,"tag":571,"props":8698,"children":8699},{"style":594},[8700],{"type":48,"value":115},{"type":42,"tag":571,"props":8702,"children":8703},{"style":600},[8704],{"type":48,"value":8336},{"type":42,"tag":571,"props":8706,"children":8707},{"style":594},[8708],{"type":48,"value":115},{"type":42,"tag":571,"props":8710,"children":8711},{"style":715},[8712],{"type":48,"value":8345},{"type":42,"tag":571,"props":8714,"children":8715},{"style":600},[8716],{"type":48,"value":755},{"type":42,"tag":571,"props":8718,"children":8719},{"style":594},[8720],{"type":48,"value":832},{"type":42,"tag":571,"props":8722,"children":8723},{"style":621},[8724],{"type":48,"value":2612},{"type":42,"tag":571,"props":8726,"children":8727},{"style":594},[8728],{"type":48,"value":832},{"type":42,"tag":571,"props":8730,"children":8731},{"style":600},[8732],{"type":48,"value":919},{"type":42,"tag":571,"props":8734,"children":8735},{"class":573,"line":631},[8736],{"type":42,"tag":571,"props":8737,"children":8738},{"emptyLinePlaceholder":666},[8739],{"type":48,"value":669},{"type":42,"tag":571,"props":8741,"children":8742},{"class":573,"line":662},[8743],{"type":42,"tag":571,"props":8744,"children":8745},{"style":578},[8746],{"type":48,"value":8447},{"type":42,"tag":571,"props":8748,"children":8749},{"class":573,"line":672},[8750,8754,8758,8762,8766,8770,8774],{"type":42,"tag":571,"props":8751,"children":8752},{"style":600},[8753],{"type":48,"value":8455},{"type":42,"tag":571,"props":8755,"children":8756},{"style":594},[8757],{"type":48,"value":115},{"type":42,"tag":571,"props":8759,"children":8760},{"style":715},[8761],{"type":48,"value":8464},{"type":42,"tag":571,"props":8763,"children":8764},{"style":600},[8765],{"type":48,"value":8469},{"type":42,"tag":571,"props":8767,"children":8768},{"style":594},[8769],{"type":48,"value":115},{"type":42,"tag":571,"props":8771,"children":8772},{"style":715},[8773],{"type":48,"value":8478},{"type":42,"tag":571,"props":8775,"children":8776},{"style":600},[8777],{"type":48,"value":8483},{"type":42,"tag":571,"props":8779,"children":8780},{"class":573,"line":691},[8781],{"type":42,"tag":571,"props":8782,"children":8783},{"emptyLinePlaceholder":666},[8784],{"type":48,"value":669},{"type":42,"tag":571,"props":8786,"children":8787},{"class":573,"line":711},[8788],{"type":42,"tag":571,"props":8789,"children":8790},{"style":578},[8791],{"type":48,"value":8792},"\u002F\u002F Subscribe to changes\n",{"type":42,"tag":571,"props":8794,"children":8795},{"class":573,"line":735},[8796,8800,8804,8808,8812,8816,8821,8825,8829,8833,8838,8842,8846],{"type":42,"tag":571,"props":8797,"children":8798},{"style":600},[8799],{"type":48,"value":2680},{"type":42,"tag":571,"props":8801,"children":8802},{"style":594},[8803],{"type":48,"value":115},{"type":42,"tag":571,"props":8805,"children":8806},{"style":715},[8807],{"type":48,"value":7496},{"type":42,"tag":571,"props":8809,"children":8810},{"style":600},[8811],{"type":48,"value":755},{"type":42,"tag":571,"props":8813,"children":8814},{"style":594},[8815],{"type":48,"value":832},{"type":42,"tag":571,"props":8817,"children":8818},{"style":621},[8819],{"type":48,"value":8820},"updated",{"type":42,"tag":571,"props":8822,"children":8823},{"style":594},[8824],{"type":48,"value":832},{"type":42,"tag":571,"props":8826,"children":8827},{"style":594},[8828],{"type":48,"value":728},{"type":42,"tag":571,"props":8830,"children":8831},{"style":594},[8832],{"type":48,"value":142},{"type":42,"tag":571,"props":8834,"children":8835},{"style":758},[8836],{"type":48,"value":8837},"newState",{"type":42,"tag":571,"props":8839,"children":8840},{"style":594},[8841],{"type":48,"value":373},{"type":42,"tag":571,"props":8843,"children":8844},{"style":888},[8845],{"type":48,"value":891},{"type":42,"tag":571,"props":8847,"children":8848},{"style":594},[8849],{"type":48,"value":688},{"type":42,"tag":571,"props":8851,"children":8852},{"class":573,"line":744},[8853,8858,8862,8866,8870,8874,8879,8883,8887,8892],{"type":42,"tag":571,"props":8854,"children":8855},{"style":600},[8856],{"type":48,"value":8857},"  console",{"type":42,"tag":571,"props":8859,"children":8860},{"style":594},[8861],{"type":48,"value":115},{"type":42,"tag":571,"props":8863,"children":8864},{"style":715},[8865],{"type":48,"value":8464},{"type":42,"tag":571,"props":8867,"children":8868},{"style":695},[8869],{"type":48,"value":755},{"type":42,"tag":571,"props":8871,"children":8872},{"style":594},[8873],{"type":48,"value":832},{"type":42,"tag":571,"props":8875,"children":8876},{"style":621},[8877],{"type":48,"value":8878},"State updated:",{"type":42,"tag":571,"props":8880,"children":8881},{"style":594},[8882],{"type":48,"value":832},{"type":42,"tag":571,"props":8884,"children":8885},{"style":594},[8886],{"type":48,"value":728},{"type":42,"tag":571,"props":8888,"children":8889},{"style":600},[8890],{"type":48,"value":8891}," newState",{"type":42,"tag":571,"props":8893,"children":8894},{"style":695},[8895],{"type":48,"value":919},{"type":42,"tag":571,"props":8897,"children":8898},{"class":573,"line":772},[8899,8903],{"type":42,"tag":571,"props":8900,"children":8901},{"style":594},[8902],{"type":48,"value":2991},{"type":42,"tag":571,"props":8904,"children":8905},{"style":600},[8906],{"type":48,"value":919},{"type":42,"tag":117,"props":8908,"children":8910},{"id":8909},"streaming-channels",[8911],{"type":48,"value":8912},"Streaming Channels",{"type":42,"tag":51,"props":8914,"children":8915},{},[8916,8918,8924,8926,8932],{"type":48,"value":8917},"For chunk-style data flowing in either direction (LLM deltas, build logs, file uploads), use a streaming channel rather than hand-rolling ",{"type":42,"tag":59,"props":8919,"children":8921},{"className":8920},[],[8922],{"type":48,"value":8923},"action + delta\u002Fend events",{"type":48,"value":8925},". The same ",{"type":42,"tag":59,"props":8927,"children":8929},{"className":8928},[],[8930],{"type":48,"value":8931},"channel",{"type":48,"value":8933}," handles server→client and client→server.",{"type":42,"tag":2798,"props":8935,"children":8937},{"id":8936},"server-to-client",[8938],{"type":48,"value":8939},"Server-to-Client",{"type":42,"tag":560,"props":8941,"children":8943},{"className":562,"code":8942,"language":564,"meta":565,"style":565},"ctx.rpc.streaming.create\u003Cstring>('my-plugin:tokens', {\n  replayWindow: 256, \u002F\u002F chunks retained per stream id\n})\n\n\u002F\u002F Inside an action handler:\nconst stream = channel.start()\n;(async () => {\n  for (const token of fakeLLM(prompt)) {\n    if (stream.signal.aborted)\n      return\n    stream.write(token)\n  }\n  stream.close()\n})()\nreturn { streamId: stream.id }\n",[8944],{"type":42,"tag":59,"props":8945,"children":8946},{"__ignoreMap":565},[8947,9018,9044,9055,9062,9070,9104,9133,9182,9221,9229,9259,9266,9287,9299],{"type":42,"tag":571,"props":8948,"children":8949},{"class":573,"line":574},[8950,8954,8958,8962,8966,8971,8975,8980,8984,8988,8993,8997,9001,9006,9010,9014],{"type":42,"tag":571,"props":8951,"children":8952},{"style":600},[8953],{"type":48,"value":761},{"type":42,"tag":571,"props":8955,"children":8956},{"style":594},[8957],{"type":48,"value":115},{"type":42,"tag":571,"props":8959,"children":8960},{"style":600},[8961],{"type":48,"value":2299},{"type":42,"tag":571,"props":8963,"children":8964},{"style":594},[8965],{"type":48,"value":115},{"type":42,"tag":571,"props":8967,"children":8968},{"style":600},[8969],{"type":48,"value":8970},"streaming",{"type":42,"tag":571,"props":8972,"children":8973},{"style":594},[8974],{"type":48,"value":115},{"type":42,"tag":571,"props":8976,"children":8977},{"style":715},[8978],{"type":48,"value":8979},"create",{"type":42,"tag":571,"props":8981,"children":8982},{"style":594},[8983],{"type":48,"value":1005},{"type":42,"tag":571,"props":8985,"children":8986},{"style":1118},[8987],{"type":48,"value":1660},{"type":42,"tag":571,"props":8989,"children":8990},{"style":594},[8991],{"type":48,"value":8992},">",{"type":42,"tag":571,"props":8994,"children":8995},{"style":600},[8996],{"type":48,"value":755},{"type":42,"tag":571,"props":8998,"children":8999},{"style":594},[9000],{"type":48,"value":832},{"type":42,"tag":571,"props":9002,"children":9003},{"style":621},[9004],{"type":48,"value":9005},"my-plugin:tokens",{"type":42,"tag":571,"props":9007,"children":9008},{"style":594},[9009],{"type":48,"value":832},{"type":42,"tag":571,"props":9011,"children":9012},{"style":594},[9013],{"type":48,"value":728},{"type":42,"tag":571,"props":9015,"children":9016},{"style":594},[9017],{"type":48,"value":688},{"type":42,"tag":571,"props":9019,"children":9020},{"class":573,"line":584},[9021,9026,9030,9035,9039],{"type":42,"tag":571,"props":9022,"children":9023},{"style":695},[9024],{"type":48,"value":9025},"  replayWindow",{"type":42,"tag":571,"props":9027,"children":9028},{"style":594},[9029],{"type":48,"value":703},{"type":42,"tag":571,"props":9031,"children":9032},{"style":3948},[9033],{"type":48,"value":9034}," 256",{"type":42,"tag":571,"props":9036,"children":9037},{"style":594},[9038],{"type":48,"value":728},{"type":42,"tag":571,"props":9040,"children":9041},{"style":578},[9042],{"type":48,"value":9043}," \u002F\u002F chunks retained per stream id\n",{"type":42,"tag":571,"props":9045,"children":9046},{"class":573,"line":631},[9047,9051],{"type":42,"tag":571,"props":9048,"children":9049},{"style":594},[9050],{"type":48,"value":2991},{"type":42,"tag":571,"props":9052,"children":9053},{"style":600},[9054],{"type":48,"value":919},{"type":42,"tag":571,"props":9056,"children":9057},{"class":573,"line":662},[9058],{"type":42,"tag":571,"props":9059,"children":9060},{"emptyLinePlaceholder":666},[9061],{"type":48,"value":669},{"type":42,"tag":571,"props":9063,"children":9064},{"class":573,"line":672},[9065],{"type":42,"tag":571,"props":9066,"children":9067},{"style":578},[9068],{"type":48,"value":9069},"\u002F\u002F Inside an action handler:\n",{"type":42,"tag":571,"props":9071,"children":9072},{"class":573,"line":691},[9073,9077,9082,9086,9091,9095,9100],{"type":42,"tag":571,"props":9074,"children":9075},{"style":888},[9076],{"type":48,"value":3774},{"type":42,"tag":571,"props":9078,"children":9079},{"style":600},[9080],{"type":48,"value":9081}," stream ",{"type":42,"tag":571,"props":9083,"children":9084},{"style":594},[9085],{"type":48,"value":1022},{"type":42,"tag":571,"props":9087,"children":9088},{"style":600},[9089],{"type":48,"value":9090}," channel",{"type":42,"tag":571,"props":9092,"children":9093},{"style":594},[9094],{"type":48,"value":115},{"type":42,"tag":571,"props":9096,"children":9097},{"style":715},[9098],{"type":48,"value":9099},"start",{"type":42,"tag":571,"props":9101,"children":9102},{"style":600},[9103],{"type":48,"value":1692},{"type":42,"tag":571,"props":9105,"children":9106},{"class":573,"line":711},[9107,9112,9116,9121,9125,9129],{"type":42,"tag":571,"props":9108,"children":9109},{"style":594},[9110],{"type":48,"value":9111},";",{"type":42,"tag":571,"props":9113,"children":9114},{"style":600},[9115],{"type":48,"value":755},{"type":42,"tag":571,"props":9117,"children":9118},{"style":888},[9119],{"type":48,"value":9120},"async",{"type":42,"tag":571,"props":9122,"children":9123},{"style":594},[9124],{"type":48,"value":885},{"type":42,"tag":571,"props":9126,"children":9127},{"style":888},[9128],{"type":48,"value":891},{"type":42,"tag":571,"props":9130,"children":9131},{"style":594},[9132],{"type":48,"value":688},{"type":42,"tag":571,"props":9134,"children":9135},{"class":573,"line":735},[9136,9141,9145,9149,9154,9159,9164,9168,9173,9178],{"type":42,"tag":571,"props":9137,"children":9138},{"style":588},[9139],{"type":48,"value":9140},"  for",{"type":42,"tag":571,"props":9142,"children":9143},{"style":695},[9144],{"type":48,"value":142},{"type":42,"tag":571,"props":9146,"children":9147},{"style":888},[9148],{"type":48,"value":3774},{"type":42,"tag":571,"props":9150,"children":9151},{"style":600},[9152],{"type":48,"value":9153}," token",{"type":42,"tag":571,"props":9155,"children":9156},{"style":594},[9157],{"type":48,"value":9158}," of",{"type":42,"tag":571,"props":9160,"children":9161},{"style":715},[9162],{"type":48,"value":9163}," fakeLLM",{"type":42,"tag":571,"props":9165,"children":9166},{"style":695},[9167],{"type":48,"value":755},{"type":42,"tag":571,"props":9169,"children":9170},{"style":600},[9171],{"type":48,"value":9172},"prompt",{"type":42,"tag":571,"props":9174,"children":9175},{"style":695},[9176],{"type":48,"value":9177},")) ",{"type":42,"tag":571,"props":9179,"children":9180},{"style":594},[9181],{"type":48,"value":805},{"type":42,"tag":571,"props":9183,"children":9184},{"class":573,"line":744},[9185,9190,9194,9199,9203,9208,9212,9217],{"type":42,"tag":571,"props":9186,"children":9187},{"style":588},[9188],{"type":48,"value":9189},"    if",{"type":42,"tag":571,"props":9191,"children":9192},{"style":695},[9193],{"type":48,"value":142},{"type":42,"tag":571,"props":9195,"children":9196},{"style":600},[9197],{"type":48,"value":9198},"stream",{"type":42,"tag":571,"props":9200,"children":9201},{"style":594},[9202],{"type":48,"value":115},{"type":42,"tag":571,"props":9204,"children":9205},{"style":600},[9206],{"type":48,"value":9207},"signal",{"type":42,"tag":571,"props":9209,"children":9210},{"style":594},[9211],{"type":48,"value":115},{"type":42,"tag":571,"props":9213,"children":9214},{"style":600},[9215],{"type":48,"value":9216},"aborted",{"type":42,"tag":571,"props":9218,"children":9219},{"style":695},[9220],{"type":48,"value":919},{"type":42,"tag":571,"props":9222,"children":9223},{"class":573,"line":772},[9224],{"type":42,"tag":571,"props":9225,"children":9226},{"style":588},[9227],{"type":48,"value":9228},"      return\n",{"type":42,"tag":571,"props":9230,"children":9231},{"class":573,"line":808},[9232,9237,9241,9246,9250,9255],{"type":42,"tag":571,"props":9233,"children":9234},{"style":600},[9235],{"type":48,"value":9236},"    stream",{"type":42,"tag":571,"props":9238,"children":9239},{"style":594},[9240],{"type":48,"value":115},{"type":42,"tag":571,"props":9242,"children":9243},{"style":715},[9244],{"type":48,"value":9245},"write",{"type":42,"tag":571,"props":9247,"children":9248},{"style":695},[9249],{"type":48,"value":755},{"type":42,"tag":571,"props":9251,"children":9252},{"style":600},[9253],{"type":48,"value":9254},"token",{"type":42,"tag":571,"props":9256,"children":9257},{"style":695},[9258],{"type":48,"value":919},{"type":42,"tag":571,"props":9260,"children":9261},{"class":573,"line":840},[9262],{"type":42,"tag":571,"props":9263,"children":9264},{"style":594},[9265],{"type":48,"value":1412},{"type":42,"tag":571,"props":9267,"children":9268},{"class":573,"line":870},[9269,9274,9278,9283],{"type":42,"tag":571,"props":9270,"children":9271},{"style":600},[9272],{"type":48,"value":9273},"  stream",{"type":42,"tag":571,"props":9275,"children":9276},{"style":594},[9277],{"type":48,"value":115},{"type":42,"tag":571,"props":9279,"children":9280},{"style":715},[9281],{"type":48,"value":9282},"close",{"type":42,"tag":571,"props":9284,"children":9285},{"style":695},[9286],{"type":48,"value":1692},{"type":42,"tag":571,"props":9288,"children":9289},{"class":573,"line":908},[9290,9294],{"type":42,"tag":571,"props":9291,"children":9292},{"style":594},[9293],{"type":48,"value":2991},{"type":42,"tag":571,"props":9295,"children":9296},{"style":600},[9297],{"type":48,"value":9298},")()\n",{"type":42,"tag":571,"props":9300,"children":9301},{"class":573,"line":922},[9302,9307,9311,9316,9320,9325,9329,9334],{"type":42,"tag":571,"props":9303,"children":9304},{"style":588},[9305],{"type":48,"value":9306},"return",{"type":42,"tag":571,"props":9308,"children":9309},{"style":594},[9310],{"type":48,"value":597},{"type":42,"tag":571,"props":9312,"children":9313},{"style":695},[9314],{"type":48,"value":9315}," streamId",{"type":42,"tag":571,"props":9317,"children":9318},{"style":594},[9319],{"type":48,"value":703},{"type":42,"tag":571,"props":9321,"children":9322},{"style":600},[9323],{"type":48,"value":9324}," stream",{"type":42,"tag":571,"props":9326,"children":9327},{"style":594},[9328],{"type":48,"value":115},{"type":42,"tag":571,"props":9330,"children":9331},{"style":600},[9332],{"type":48,"value":9333},"id ",{"type":42,"tag":571,"props":9335,"children":9336},{"style":594},[9337],{"type":48,"value":967},{"type":42,"tag":560,"props":9339,"children":9341},{"className":562,"code":9340,"language":564,"meta":565,"style":565},"\u002F\u002F Client\nimport { getDevToolsRpcClient } from '@vitejs\u002Fdevtools-kit\u002Fclient'\n\nconst rpc = await getDevToolsRpcClient()\nconst { streamId } = await rpc.call('my-plugin:start', { prompt })\nconst reader = rpc.streaming.subscribe\u003Cstring>('my-plugin:tokens', streamId)\nfor await (const token of reader)\n  appendToken(token)\nreader.cancel() \u002F\u002F server stream.signal aborts\n",[9342],{"type":42,"tag":59,"props":9343,"children":9344},{"__ignoreMap":565},[9345,9353,9388,9395,9422,9500,9574,9609,9622],{"type":42,"tag":571,"props":9346,"children":9347},{"class":573,"line":574},[9348],{"type":42,"tag":571,"props":9349,"children":9350},{"style":578},[9351],{"type":48,"value":9352},"\u002F\u002F Client\n",{"type":42,"tag":571,"props":9354,"children":9355},{"class":573,"line":584},[9356,9360,9364,9368,9372,9376,9380,9384],{"type":42,"tag":571,"props":9357,"children":9358},{"style":588},[9359],{"type":48,"value":591},{"type":42,"tag":571,"props":9361,"children":9362},{"style":594},[9363],{"type":48,"value":597},{"type":42,"tag":571,"props":9365,"children":9366},{"style":600},[9367],{"type":48,"value":7231},{"type":42,"tag":571,"props":9369,"children":9370},{"style":594},[9371],{"type":48,"value":608},{"type":42,"tag":571,"props":9373,"children":9374},{"style":588},[9375],{"type":48,"value":613},{"type":42,"tag":571,"props":9377,"children":9378},{"style":594},[9379],{"type":48,"value":618},{"type":42,"tag":571,"props":9381,"children":9382},{"style":621},[9383],{"type":48,"value":3239},{"type":42,"tag":571,"props":9385,"children":9386},{"style":594},[9387],{"type":48,"value":628},{"type":42,"tag":571,"props":9389,"children":9390},{"class":573,"line":631},[9391],{"type":42,"tag":571,"props":9392,"children":9393},{"emptyLinePlaceholder":666},[9394],{"type":48,"value":669},{"type":42,"tag":571,"props":9396,"children":9397},{"class":573,"line":662},[9398,9402,9406,9410,9414,9418],{"type":42,"tag":571,"props":9399,"children":9400},{"style":888},[9401],{"type":48,"value":3774},{"type":42,"tag":571,"props":9403,"children":9404},{"style":600},[9405],{"type":48,"value":7270},{"type":42,"tag":571,"props":9407,"children":9408},{"style":594},[9409],{"type":48,"value":1022},{"type":42,"tag":571,"props":9411,"children":9412},{"style":588},[9413],{"type":48,"value":4943},{"type":42,"tag":571,"props":9415,"children":9416},{"style":715},[9417],{"type":48,"value":7231},{"type":42,"tag":571,"props":9419,"children":9420},{"style":600},[9421],{"type":48,"value":1692},{"type":42,"tag":571,"props":9423,"children":9424},{"class":573,"line":672},[9425,9429,9433,9438,9442,9446,9450,9454,9458,9462,9466,9470,9475,9479,9483,9487,9492,9496],{"type":42,"tag":571,"props":9426,"children":9427},{"style":888},[9428],{"type":48,"value":3774},{"type":42,"tag":571,"props":9430,"children":9431},{"style":594},[9432],{"type":48,"value":597},{"type":42,"tag":571,"props":9434,"children":9435},{"style":600},[9436],{"type":48,"value":9437}," streamId ",{"type":42,"tag":571,"props":9439,"children":9440},{"style":594},[9441],{"type":48,"value":2991},{"type":42,"tag":571,"props":9443,"children":9444},{"style":594},[9445],{"type":48,"value":1641},{"type":42,"tag":571,"props":9447,"children":9448},{"style":588},[9449],{"type":48,"value":4943},{"type":42,"tag":571,"props":9451,"children":9452},{"style":600},[9453],{"type":48,"value":7311},{"type":42,"tag":571,"props":9455,"children":9456},{"style":594},[9457],{"type":48,"value":115},{"type":42,"tag":571,"props":9459,"children":9460},{"style":715},[9461],{"type":48,"value":7320},{"type":42,"tag":571,"props":9463,"children":9464},{"style":600},[9465],{"type":48,"value":755},{"type":42,"tag":571,"props":9467,"children":9468},{"style":594},[9469],{"type":48,"value":832},{"type":42,"tag":571,"props":9471,"children":9472},{"style":621},[9473],{"type":48,"value":9474},"my-plugin:start",{"type":42,"tag":571,"props":9476,"children":9477},{"style":594},[9478],{"type":48,"value":832},{"type":42,"tag":571,"props":9480,"children":9481},{"style":594},[9482],{"type":48,"value":728},{"type":42,"tag":571,"props":9484,"children":9485},{"style":594},[9486],{"type":48,"value":597},{"type":42,"tag":571,"props":9488,"children":9489},{"style":600},[9490],{"type":48,"value":9491}," prompt ",{"type":42,"tag":571,"props":9493,"children":9494},{"style":594},[9495],{"type":48,"value":2991},{"type":42,"tag":571,"props":9497,"children":9498},{"style":600},[9499],{"type":48,"value":919},{"type":42,"tag":571,"props":9501,"children":9502},{"class":573,"line":691},[9503,9507,9512,9516,9520,9524,9528,9532,9537,9541,9545,9549,9553,9557,9561,9565,9569],{"type":42,"tag":571,"props":9504,"children":9505},{"style":888},[9506],{"type":48,"value":3774},{"type":42,"tag":571,"props":9508,"children":9509},{"style":600},[9510],{"type":48,"value":9511}," reader ",{"type":42,"tag":571,"props":9513,"children":9514},{"style":594},[9515],{"type":48,"value":1022},{"type":42,"tag":571,"props":9517,"children":9518},{"style":600},[9519],{"type":48,"value":7311},{"type":42,"tag":571,"props":9521,"children":9522},{"style":594},[9523],{"type":48,"value":115},{"type":42,"tag":571,"props":9525,"children":9526},{"style":600},[9527],{"type":48,"value":8970},{"type":42,"tag":571,"props":9529,"children":9530},{"style":594},[9531],{"type":48,"value":115},{"type":42,"tag":571,"props":9533,"children":9534},{"style":715},[9535],{"type":48,"value":9536},"subscribe",{"type":42,"tag":571,"props":9538,"children":9539},{"style":594},[9540],{"type":48,"value":1005},{"type":42,"tag":571,"props":9542,"children":9543},{"style":1118},[9544],{"type":48,"value":1660},{"type":42,"tag":571,"props":9546,"children":9547},{"style":594},[9548],{"type":48,"value":8992},{"type":42,"tag":571,"props":9550,"children":9551},{"style":600},[9552],{"type":48,"value":755},{"type":42,"tag":571,"props":9554,"children":9555},{"style":594},[9556],{"type":48,"value":832},{"type":42,"tag":571,"props":9558,"children":9559},{"style":621},[9560],{"type":48,"value":9005},{"type":42,"tag":571,"props":9562,"children":9563},{"style":594},[9564],{"type":48,"value":832},{"type":42,"tag":571,"props":9566,"children":9567},{"style":594},[9568],{"type":48,"value":728},{"type":42,"tag":571,"props":9570,"children":9571},{"style":600},[9572],{"type":48,"value":9573}," streamId)\n",{"type":42,"tag":571,"props":9575,"children":9576},{"class":573,"line":711},[9577,9582,9586,9590,9594,9599,9604],{"type":42,"tag":571,"props":9578,"children":9579},{"style":588},[9580],{"type":48,"value":9581},"for",{"type":42,"tag":571,"props":9583,"children":9584},{"style":588},[9585],{"type":48,"value":4943},{"type":42,"tag":571,"props":9587,"children":9588},{"style":600},[9589],{"type":48,"value":142},{"type":42,"tag":571,"props":9591,"children":9592},{"style":888},[9593],{"type":48,"value":3774},{"type":42,"tag":571,"props":9595,"children":9596},{"style":600},[9597],{"type":48,"value":9598}," token ",{"type":42,"tag":571,"props":9600,"children":9601},{"style":594},[9602],{"type":48,"value":9603},"of",{"type":42,"tag":571,"props":9605,"children":9606},{"style":600},[9607],{"type":48,"value":9608}," reader)\n",{"type":42,"tag":571,"props":9610,"children":9611},{"class":573,"line":735},[9612,9617],{"type":42,"tag":571,"props":9613,"children":9614},{"style":715},[9615],{"type":48,"value":9616},"  appendToken",{"type":42,"tag":571,"props":9618,"children":9619},{"style":600},[9620],{"type":48,"value":9621},"(token)\n",{"type":42,"tag":571,"props":9623,"children":9624},{"class":573,"line":744},[9625,9630,9634,9639,9644],{"type":42,"tag":571,"props":9626,"children":9627},{"style":600},[9628],{"type":48,"value":9629},"reader",{"type":42,"tag":571,"props":9631,"children":9632},{"style":594},[9633],{"type":48,"value":115},{"type":42,"tag":571,"props":9635,"children":9636},{"style":715},[9637],{"type":48,"value":9638},"cancel",{"type":42,"tag":571,"props":9640,"children":9641},{"style":600},[9642],{"type":48,"value":9643},"() ",{"type":42,"tag":571,"props":9645,"children":9646},{"style":578},[9647],{"type":48,"value":9648},"\u002F\u002F server stream.signal aborts\n",{"type":42,"tag":51,"props":9650,"children":9651},{},[9652,9654,9660,9662,9668,9670,9676,9678,9684],{"type":48,"value":9653},"The reader is also ",{"type":42,"tag":59,"props":9655,"children":9657},{"className":9656},[],[9658],{"type":48,"value":9659},".readable: ReadableStream\u003CT>",{"type":48,"value":9661}," for ",{"type":42,"tag":59,"props":9663,"children":9665},{"className":9664},[],[9666],{"type":48,"value":9667},"pipeTo",{"type":48,"value":9669}," consumption. The sink is also ",{"type":42,"tag":59,"props":9671,"children":9673},{"className":9672},[],[9674],{"type":48,"value":9675},".writable: WritableStream\u003CT>",{"type":48,"value":9677}," — ",{"type":42,"tag":59,"props":9679,"children":9681},{"className":9680},[],[9682],{"type":48,"value":9683},"await channel.pipeFrom(readableSource)",{"type":48,"value":9685}," is the one-call shortcut.",{"type":42,"tag":2798,"props":9687,"children":9689},{"id":9688},"client-to-server-uploads",[9690],{"type":48,"value":9691},"Client-to-Server Uploads",{"type":42,"tag":560,"props":9693,"children":9695},{"className":562,"code":9694,"language":564,"meta":565,"style":565},"\u002F\u002F Server\nctx.rpc.register(defineRpcFunction({\n  name: 'my-plugin:upload-file',\n  type: 'action',\n  handler: async ({ name }) => {\n    const reader = channel.openInbound()\n    ;(async () => {\n      const file = createWriteStream(name)\n      for await (const chunk of reader)\n        file.write(chunk)\n      file.close()\n    })()\n    return { uploadId: reader.id }\n  },\n}))\n\n\u002F\u002F Client\nconst { uploadId } = await rpc.call('my-plugin:upload-file', { name })\nconst upload = rpc.streaming.upload\u003CUint8Array>('my-plugin:files', uploadId)\nfileReadable.pipeTo(upload.writable, { signal: upload.signal })\n",[9696],{"type":42,"tag":59,"props":9697,"children":9698},{"__ignoreMap":565},[9699,9707,9747,9775,9802,9839,9872,9900,9934,9971,10000,10020,10031,10069,10076,10087,10094,10101,10178,10254],{"type":42,"tag":571,"props":9700,"children":9701},{"class":573,"line":574},[9702],{"type":42,"tag":571,"props":9703,"children":9704},{"style":578},[9705],{"type":48,"value":9706},"\u002F\u002F Server\n",{"type":42,"tag":571,"props":9708,"children":9709},{"class":573,"line":584},[9710,9714,9718,9722,9726,9730,9734,9739,9743],{"type":42,"tag":571,"props":9711,"children":9712},{"style":600},[9713],{"type":48,"value":761},{"type":42,"tag":571,"props":9715,"children":9716},{"style":594},[9717],{"type":48,"value":115},{"type":42,"tag":571,"props":9719,"children":9720},{"style":600},[9721],{"type":48,"value":2299},{"type":42,"tag":571,"props":9723,"children":9724},{"style":594},[9725],{"type":48,"value":115},{"type":42,"tag":571,"props":9727,"children":9728},{"style":715},[9729],{"type":48,"value":796},{"type":42,"tag":571,"props":9731,"children":9732},{"style":600},[9733],{"type":48,"value":755},{"type":42,"tag":571,"props":9735,"children":9736},{"style":715},[9737],{"type":48,"value":9738},"defineRpcFunction",{"type":42,"tag":571,"props":9740,"children":9741},{"style":600},[9742],{"type":48,"value":755},{"type":42,"tag":571,"props":9744,"children":9745},{"style":594},[9746],{"type":48,"value":805},{"type":42,"tag":571,"props":9748,"children":9749},{"class":573,"line":631},[9750,9754,9758,9762,9767,9771],{"type":42,"tag":571,"props":9751,"children":9752},{"style":695},[9753],{"type":48,"value":6916},{"type":42,"tag":571,"props":9755,"children":9756},{"style":594},[9757],{"type":48,"value":703},{"type":42,"tag":571,"props":9759,"children":9760},{"style":594},[9761],{"type":48,"value":618},{"type":42,"tag":571,"props":9763,"children":9764},{"style":621},[9765],{"type":48,"value":9766},"my-plugin:upload-file",{"type":42,"tag":571,"props":9768,"children":9769},{"style":594},[9770],{"type":48,"value":832},{"type":42,"tag":571,"props":9772,"children":9773},{"style":594},[9774],{"type":48,"value":837},{"type":42,"tag":571,"props":9776,"children":9777},{"class":573,"line":662},[9778,9782,9786,9790,9794,9798],{"type":42,"tag":571,"props":9779,"children":9780},{"style":695},[9781],{"type":48,"value":2934},{"type":42,"tag":571,"props":9783,"children":9784},{"style":594},[9785],{"type":48,"value":703},{"type":42,"tag":571,"props":9787,"children":9788},{"style":594},[9789],{"type":48,"value":618},{"type":42,"tag":571,"props":9791,"children":9792},{"style":621},[9793],{"type":48,"value":2757},{"type":42,"tag":571,"props":9795,"children":9796},{"style":594},[9797],{"type":48,"value":832},{"type":42,"tag":571,"props":9799,"children":9800},{"style":594},[9801],{"type":48,"value":837},{"type":42,"tag":571,"props":9803,"children":9804},{"class":573,"line":672},[9805,9809,9813,9817,9822,9827,9831,9835],{"type":42,"tag":571,"props":9806,"children":9807},{"style":715},[9808],{"type":48,"value":5568},{"type":42,"tag":571,"props":9810,"children":9811},{"style":594},[9812],{"type":48,"value":703},{"type":42,"tag":571,"props":9814,"children":9815},{"style":888},[9816],{"type":48,"value":2435},{"type":42,"tag":571,"props":9818,"children":9819},{"style":594},[9820],{"type":48,"value":9821}," ({",{"type":42,"tag":571,"props":9823,"children":9824},{"style":758},[9825],{"type":48,"value":9826}," name",{"type":42,"tag":571,"props":9828,"children":9829},{"style":594},[9830],{"type":48,"value":8199},{"type":42,"tag":571,"props":9832,"children":9833},{"style":888},[9834],{"type":48,"value":891},{"type":42,"tag":571,"props":9836,"children":9837},{"style":594},[9838],{"type":48,"value":688},{"type":42,"tag":571,"props":9840,"children":9841},{"class":573,"line":691},[9842,9846,9851,9855,9859,9863,9868],{"type":42,"tag":571,"props":9843,"children":9844},{"style":888},[9845],{"type":48,"value":7541},{"type":42,"tag":571,"props":9847,"children":9848},{"style":600},[9849],{"type":48,"value":9850}," reader",{"type":42,"tag":571,"props":9852,"children":9853},{"style":594},[9854],{"type":48,"value":1641},{"type":42,"tag":571,"props":9856,"children":9857},{"style":600},[9858],{"type":48,"value":9090},{"type":42,"tag":571,"props":9860,"children":9861},{"style":594},[9862],{"type":48,"value":115},{"type":42,"tag":571,"props":9864,"children":9865},{"style":715},[9866],{"type":48,"value":9867},"openInbound",{"type":42,"tag":571,"props":9869,"children":9870},{"style":695},[9871],{"type":48,"value":1692},{"type":42,"tag":571,"props":9873,"children":9874},{"class":573,"line":711},[9875,9880,9884,9888,9892,9896],{"type":42,"tag":571,"props":9876,"children":9877},{"style":594},[9878],{"type":48,"value":9879},"    ;",{"type":42,"tag":571,"props":9881,"children":9882},{"style":695},[9883],{"type":48,"value":755},{"type":42,"tag":571,"props":9885,"children":9886},{"style":888},[9887],{"type":48,"value":9120},{"type":42,"tag":571,"props":9889,"children":9890},{"style":594},[9891],{"type":48,"value":885},{"type":42,"tag":571,"props":9893,"children":9894},{"style":888},[9895],{"type":48,"value":891},{"type":42,"tag":571,"props":9897,"children":9898},{"style":594},[9899],{"type":48,"value":688},{"type":42,"tag":571,"props":9901,"children":9902},{"class":573,"line":735},[9903,9908,9913,9917,9922,9926,9930],{"type":42,"tag":571,"props":9904,"children":9905},{"style":888},[9906],{"type":48,"value":9907},"      const",{"type":42,"tag":571,"props":9909,"children":9910},{"style":600},[9911],{"type":48,"value":9912}," file",{"type":42,"tag":571,"props":9914,"children":9915},{"style":594},[9916],{"type":48,"value":1641},{"type":42,"tag":571,"props":9918,"children":9919},{"style":715},[9920],{"type":48,"value":9921}," createWriteStream",{"type":42,"tag":571,"props":9923,"children":9924},{"style":695},[9925],{"type":48,"value":755},{"type":42,"tag":571,"props":9927,"children":9928},{"style":600},[9929],{"type":48,"value":519},{"type":42,"tag":571,"props":9931,"children":9932},{"style":695},[9933],{"type":48,"value":919},{"type":42,"tag":571,"props":9935,"children":9936},{"class":573,"line":744},[9937,9942,9946,9950,9954,9959,9963,9967],{"type":42,"tag":571,"props":9938,"children":9939},{"style":588},[9940],{"type":48,"value":9941},"      for",{"type":42,"tag":571,"props":9943,"children":9944},{"style":588},[9945],{"type":48,"value":4943},{"type":42,"tag":571,"props":9947,"children":9948},{"style":695},[9949],{"type":48,"value":142},{"type":42,"tag":571,"props":9951,"children":9952},{"style":888},[9953],{"type":48,"value":3774},{"type":42,"tag":571,"props":9955,"children":9956},{"style":600},[9957],{"type":48,"value":9958}," chunk",{"type":42,"tag":571,"props":9960,"children":9961},{"style":594},[9962],{"type":48,"value":9158},{"type":42,"tag":571,"props":9964,"children":9965},{"style":600},[9966],{"type":48,"value":9850},{"type":42,"tag":571,"props":9968,"children":9969},{"style":695},[9970],{"type":48,"value":919},{"type":42,"tag":571,"props":9972,"children":9973},{"class":573,"line":772},[9974,9979,9983,9987,9991,9996],{"type":42,"tag":571,"props":9975,"children":9976},{"style":600},[9977],{"type":48,"value":9978},"        file",{"type":42,"tag":571,"props":9980,"children":9981},{"style":594},[9982],{"type":48,"value":115},{"type":42,"tag":571,"props":9984,"children":9985},{"style":715},[9986],{"type":48,"value":9245},{"type":42,"tag":571,"props":9988,"children":9989},{"style":695},[9990],{"type":48,"value":755},{"type":42,"tag":571,"props":9992,"children":9993},{"style":600},[9994],{"type":48,"value":9995},"chunk",{"type":42,"tag":571,"props":9997,"children":9998},{"style":695},[9999],{"type":48,"value":919},{"type":42,"tag":571,"props":10001,"children":10002},{"class":573,"line":808},[10003,10008,10012,10016],{"type":42,"tag":571,"props":10004,"children":10005},{"style":600},[10006],{"type":48,"value":10007},"      file",{"type":42,"tag":571,"props":10009,"children":10010},{"style":594},[10011],{"type":48,"value":115},{"type":42,"tag":571,"props":10013,"children":10014},{"style":715},[10015],{"type":48,"value":9282},{"type":42,"tag":571,"props":10017,"children":10018},{"style":695},[10019],{"type":48,"value":1692},{"type":42,"tag":571,"props":10021,"children":10022},{"class":573,"line":840},[10023,10027],{"type":42,"tag":571,"props":10024,"children":10025},{"style":594},[10026],{"type":48,"value":937},{"type":42,"tag":571,"props":10028,"children":10029},{"style":695},[10030],{"type":48,"value":9298},{"type":42,"tag":571,"props":10032,"children":10033},{"class":573,"line":870},[10034,10039,10043,10048,10052,10056,10060,10064],{"type":42,"tag":571,"props":10035,"children":10036},{"style":588},[10037],{"type":48,"value":10038},"    return",{"type":42,"tag":571,"props":10040,"children":10041},{"style":594},[10042],{"type":48,"value":597},{"type":42,"tag":571,"props":10044,"children":10045},{"style":695},[10046],{"type":48,"value":10047}," uploadId",{"type":42,"tag":571,"props":10049,"children":10050},{"style":594},[10051],{"type":48,"value":703},{"type":42,"tag":571,"props":10053,"children":10054},{"style":600},[10055],{"type":48,"value":9850},{"type":42,"tag":571,"props":10057,"children":10058},{"style":594},[10059],{"type":48,"value":115},{"type":42,"tag":571,"props":10061,"children":10062},{"style":600},[10063],{"type":48,"value":511},{"type":42,"tag":571,"props":10065,"children":10066},{"style":594},[10067],{"type":48,"value":10068}," }\n",{"type":42,"tag":571,"props":10070,"children":10071},{"class":573,"line":908},[10072],{"type":42,"tag":571,"props":10073,"children":10074},{"style":594},[10075],{"type":48,"value":3493},{"type":42,"tag":571,"props":10077,"children":10078},{"class":573,"line":922},[10079,10083],{"type":42,"tag":571,"props":10080,"children":10081},{"style":594},[10082],{"type":48,"value":2991},{"type":42,"tag":571,"props":10084,"children":10085},{"style":600},[10086],{"type":48,"value":5609},{"type":42,"tag":571,"props":10088,"children":10089},{"class":573,"line":931},[10090],{"type":42,"tag":571,"props":10091,"children":10092},{"emptyLinePlaceholder":666},[10093],{"type":48,"value":669},{"type":42,"tag":571,"props":10095,"children":10096},{"class":573,"line":948},[10097],{"type":42,"tag":571,"props":10098,"children":10099},{"style":578},[10100],{"type":48,"value":9352},{"type":42,"tag":571,"props":10102,"children":10103},{"class":573,"line":961},[10104,10108,10112,10117,10121,10125,10129,10133,10137,10141,10145,10149,10153,10157,10161,10165,10170,10174],{"type":42,"tag":571,"props":10105,"children":10106},{"style":888},[10107],{"type":48,"value":3774},{"type":42,"tag":571,"props":10109,"children":10110},{"style":594},[10111],{"type":48,"value":597},{"type":42,"tag":571,"props":10113,"children":10114},{"style":600},[10115],{"type":48,"value":10116}," uploadId ",{"type":42,"tag":571,"props":10118,"children":10119},{"style":594},[10120],{"type":48,"value":2991},{"type":42,"tag":571,"props":10122,"children":10123},{"style":594},[10124],{"type":48,"value":1641},{"type":42,"tag":571,"props":10126,"children":10127},{"style":588},[10128],{"type":48,"value":4943},{"type":42,"tag":571,"props":10130,"children":10131},{"style":600},[10132],{"type":48,"value":7311},{"type":42,"tag":571,"props":10134,"children":10135},{"style":594},[10136],{"type":48,"value":115},{"type":42,"tag":571,"props":10138,"children":10139},{"style":715},[10140],{"type":48,"value":7320},{"type":42,"tag":571,"props":10142,"children":10143},{"style":600},[10144],{"type":48,"value":755},{"type":42,"tag":571,"props":10146,"children":10147},{"style":594},[10148],{"type":48,"value":832},{"type":42,"tag":571,"props":10150,"children":10151},{"style":621},[10152],{"type":48,"value":9766},{"type":42,"tag":571,"props":10154,"children":10155},{"style":594},[10156],{"type":48,"value":832},{"type":42,"tag":571,"props":10158,"children":10159},{"style":594},[10160],{"type":48,"value":728},{"type":42,"tag":571,"props":10162,"children":10163},{"style":594},[10164],{"type":48,"value":597},{"type":42,"tag":571,"props":10166,"children":10167},{"style":600},[10168],{"type":48,"value":10169}," name ",{"type":42,"tag":571,"props":10171,"children":10172},{"style":594},[10173],{"type":48,"value":2991},{"type":42,"tag":571,"props":10175,"children":10176},{"style":600},[10177],{"type":48,"value":919},{"type":42,"tag":571,"props":10179,"children":10180},{"class":573,"line":1415},[10181,10185,10190,10194,10198,10202,10206,10210,10215,10219,10224,10228,10232,10236,10241,10245,10249],{"type":42,"tag":571,"props":10182,"children":10183},{"style":888},[10184],{"type":48,"value":3774},{"type":42,"tag":571,"props":10186,"children":10187},{"style":600},[10188],{"type":48,"value":10189}," upload ",{"type":42,"tag":571,"props":10191,"children":10192},{"style":594},[10193],{"type":48,"value":1022},{"type":42,"tag":571,"props":10195,"children":10196},{"style":600},[10197],{"type":48,"value":7311},{"type":42,"tag":571,"props":10199,"children":10200},{"style":594},[10201],{"type":48,"value":115},{"type":42,"tag":571,"props":10203,"children":10204},{"style":600},[10205],{"type":48,"value":8970},{"type":42,"tag":571,"props":10207,"children":10208},{"style":594},[10209],{"type":48,"value":115},{"type":42,"tag":571,"props":10211,"children":10212},{"style":715},[10213],{"type":48,"value":10214},"upload",{"type":42,"tag":571,"props":10216,"children":10217},{"style":594},[10218],{"type":48,"value":1005},{"type":42,"tag":571,"props":10220,"children":10221},{"style":1118},[10222],{"type":48,"value":10223},"Uint8Array",{"type":42,"tag":571,"props":10225,"children":10226},{"style":594},[10227],{"type":48,"value":8992},{"type":42,"tag":571,"props":10229,"children":10230},{"style":600},[10231],{"type":48,"value":755},{"type":42,"tag":571,"props":10233,"children":10234},{"style":594},[10235],{"type":48,"value":832},{"type":42,"tag":571,"props":10237,"children":10238},{"style":621},[10239],{"type":48,"value":10240},"my-plugin:files",{"type":42,"tag":571,"props":10242,"children":10243},{"style":594},[10244],{"type":48,"value":832},{"type":42,"tag":571,"props":10246,"children":10247},{"style":594},[10248],{"type":48,"value":728},{"type":42,"tag":571,"props":10250,"children":10251},{"style":600},[10252],{"type":48,"value":10253}," uploadId)\n",{"type":42,"tag":571,"props":10255,"children":10256},{"class":573,"line":1912},[10257,10262,10266,10270,10275,10279,10284,10288,10292,10297,10301,10306,10310,10315,10319],{"type":42,"tag":571,"props":10258,"children":10259},{"style":600},[10260],{"type":48,"value":10261},"fileReadable",{"type":42,"tag":571,"props":10263,"children":10264},{"style":594},[10265],{"type":48,"value":115},{"type":42,"tag":571,"props":10267,"children":10268},{"style":715},[10269],{"type":48,"value":9667},{"type":42,"tag":571,"props":10271,"children":10272},{"style":600},[10273],{"type":48,"value":10274},"(upload",{"type":42,"tag":571,"props":10276,"children":10277},{"style":594},[10278],{"type":48,"value":115},{"type":42,"tag":571,"props":10280,"children":10281},{"style":600},[10282],{"type":48,"value":10283},"writable",{"type":42,"tag":571,"props":10285,"children":10286},{"style":594},[10287],{"type":48,"value":728},{"type":42,"tag":571,"props":10289,"children":10290},{"style":594},[10291],{"type":48,"value":597},{"type":42,"tag":571,"props":10293,"children":10294},{"style":695},[10295],{"type":48,"value":10296}," signal",{"type":42,"tag":571,"props":10298,"children":10299},{"style":594},[10300],{"type":48,"value":703},{"type":42,"tag":571,"props":10302,"children":10303},{"style":600},[10304],{"type":48,"value":10305}," upload",{"type":42,"tag":571,"props":10307,"children":10308},{"style":594},[10309],{"type":48,"value":115},{"type":42,"tag":571,"props":10311,"children":10312},{"style":600},[10313],{"type":48,"value":10314},"signal ",{"type":42,"tag":571,"props":10316,"children":10317},{"style":594},[10318],{"type":48,"value":2991},{"type":42,"tag":571,"props":10320,"children":10321},{"style":600},[10322],{"type":48,"value":919},{"type":42,"tag":51,"props":10324,"children":10325},{},[10326,10332,10334,10340,10342,10348,10350,10356],{"type":42,"tag":59,"props":10327,"children":10329},{"className":10328},[],[10330],{"type":48,"value":10331},"upload.signal",{"type":48,"value":10333}," aborts when the server calls ",{"type":42,"tag":59,"props":10335,"children":10337},{"className":10336},[],[10338],{"type":48,"value":10339},"reader.cancel()",{"type":48,"value":10341},". Client disconnect surfaces as ",{"type":42,"tag":59,"props":10343,"children":10345},{"className":10344},[],[10346],{"type":48,"value":10347},"UploadDisconnected",{"type":48,"value":10349}," in the server's ",{"type":42,"tag":59,"props":10351,"children":10353},{"className":10352},[],[10354],{"type":48,"value":10355},"for await",{"type":48,"value":115},{"type":42,"tag":2798,"props":10358,"children":10360},{"id":10359},"when-to-use-streaming",[10361],{"type":48,"value":10362},"When to use streaming",{"type":42,"tag":152,"props":10364,"children":10365},{},[10366,10395],{"type":42,"tag":156,"props":10367,"children":10368},{},[10369],{"type":42,"tag":160,"props":10370,"children":10371},{},[10372,10377,10390],{"type":42,"tag":164,"props":10373,"children":10374},{},[10375],{"type":48,"value":10376},"Use streaming for",{"type":42,"tag":164,"props":10378,"children":10379},{},[10380,10382,10388],{"type":48,"value":10381},"Use ",{"type":42,"tag":59,"props":10383,"children":10385},{"className":10384},[],[10386],{"type":48,"value":10387},"event",{"type":48,"value":10389},"-typed RPC for",{"type":42,"tag":164,"props":10391,"children":10392},{},[10393],{"type":48,"value":10394},"Use shared state for",{"type":42,"tag":180,"props":10396,"children":10397},{},[10398,10416,10434],{"type":42,"tag":160,"props":10399,"children":10400},{},[10401,10406,10411],{"type":42,"tag":187,"props":10402,"children":10403},{},[10404],{"type":48,"value":10405},"Token \u002F chunk feeds, uploads",{"type":42,"tag":187,"props":10407,"children":10408},{},[10409],{"type":48,"value":10410},"Notifications without payload",{"type":42,"tag":187,"props":10412,"children":10413},{},[10414],{"type":48,"value":10415},"Long-lived UI state",{"type":42,"tag":160,"props":10417,"children":10418},{},[10419,10424,10429],{"type":42,"tag":187,"props":10420,"children":10421},{},[10422],{"type":48,"value":10423},"Per-call lifecycles + cancellation",{"type":42,"tag":187,"props":10425,"children":10426},{},[10427],{"type":48,"value":10428},"Cross-cutting fire-and-forget",{"type":42,"tag":187,"props":10430,"children":10431},{},[10432],{"type":48,"value":10433},"Diff-based snapshots",{"type":42,"tag":160,"props":10435,"children":10436},{},[10437,10442,10445],{"type":42,"tag":187,"props":10438,"children":10439},{},[10440],{"type":48,"value":10441},"Replay on reconnect",{"type":42,"tag":187,"props":10443,"children":10444},{},[],{"type":42,"tag":187,"props":10446,"children":10447},{},[],{"type":42,"tag":51,"props":10449,"children":10450},{},[10451,10453,10458,10460,10465,10467,10478,10480,10486],{"type":48,"value":10452},"For chat-style UIs, combine: keep the ",{"type":42,"tag":55,"props":10454,"children":10455},{},[10456],{"type":48,"value":10457},"conversation log",{"type":48,"value":10459}," in shared state and stream ",{"type":42,"tag":55,"props":10461,"children":10462},{},[10463],{"type":48,"value":10464},"active responses",{"type":48,"value":10466}," through the channel. Working example: ",{"type":42,"tag":70,"props":10468,"children":10471},{"href":10469,"rel":10470},"https:\u002F\u002Fgithub.com\u002Fvitejs\u002Fdevtools\u002Ftree\u002Fmain\u002Fdevframe\u002Fexamples\u002Fdevframe-streaming-chat",[74],[10472],{"type":42,"tag":59,"props":10473,"children":10475},{"className":10474},[],[10476],{"type":48,"value":10477},"devframe\u002Fexamples\u002Fdevframe-streaming-chat",{"type":48,"value":10479},". Full reference: ",{"type":42,"tag":70,"props":10481,"children":10483},{"href":10482},".\u002Freferences\u002Fstreaming-patterns.md",[10484],{"type":48,"value":10485},"Streaming Patterns",{"type":48,"value":115},{"type":42,"tag":117,"props":10488,"children":10490},{"id":10489},"client-scripts",[10491],{"type":48,"value":10492},"Client Scripts",{"type":42,"tag":51,"props":10494,"children":10495},{},[10496],{"type":48,"value":10497},"For action buttons and custom renderers:",{"type":42,"tag":560,"props":10499,"children":10501},{"className":562,"code":10500,"language":564,"meta":565,"style":565},"\u002F\u002F src\u002Fdevtools-action.ts\nimport type { DevToolsClientScriptContext } from '@vitejs\u002Fdevtools-kit\u002Fclient'\n\nexport default function setup(ctx: DevToolsClientScriptContext) {\n  ctx.current.events.on('entry:activated', () => {\n    console.log('Action activated')\n    \u002F\u002F Your inspector\u002Ftool logic here\n  })\n\n  ctx.current.events.on('entry:deactivated', () => {\n    console.log('Action deactivated')\n    \u002F\u002F Cleanup\n  })\n}\n",[10502],{"type":42,"tag":59,"props":10503,"children":10504},{"__ignoreMap":565},[10505,10513,10552,10559,10602,10665,10702,10710,10721,10728,10792,10828,10836,10847],{"type":42,"tag":571,"props":10506,"children":10507},{"class":573,"line":574},[10508],{"type":42,"tag":571,"props":10509,"children":10510},{"style":578},[10511],{"type":48,"value":10512},"\u002F\u002F src\u002Fdevtools-action.ts\n",{"type":42,"tag":571,"props":10514,"children":10515},{"class":573,"line":584},[10516,10520,10524,10528,10532,10536,10540,10544,10548],{"type":42,"tag":571,"props":10517,"children":10518},{"style":588},[10519],{"type":48,"value":591},{"type":42,"tag":571,"props":10521,"children":10522},{"style":588},[10523],{"type":48,"value":1053},{"type":42,"tag":571,"props":10525,"children":10526},{"style":594},[10527],{"type":48,"value":597},{"type":42,"tag":571,"props":10529,"children":10530},{"style":600},[10531],{"type":48,"value":7390},{"type":42,"tag":571,"props":10533,"children":10534},{"style":594},[10535],{"type":48,"value":608},{"type":42,"tag":571,"props":10537,"children":10538},{"style":588},[10539],{"type":48,"value":613},{"type":42,"tag":571,"props":10541,"children":10542},{"style":594},[10543],{"type":48,"value":618},{"type":42,"tag":571,"props":10545,"children":10546},{"style":621},[10547],{"type":48,"value":3239},{"type":42,"tag":571,"props":10549,"children":10550},{"style":594},[10551],{"type":48,"value":628},{"type":42,"tag":571,"props":10553,"children":10554},{"class":573,"line":631},[10555],{"type":42,"tag":571,"props":10556,"children":10557},{"emptyLinePlaceholder":666},[10558],{"type":48,"value":669},{"type":42,"tag":571,"props":10560,"children":10561},{"class":573,"line":662},[10562,10566,10570,10574,10578,10582,10586,10590,10594,10598],{"type":42,"tag":571,"props":10563,"children":10564},{"style":588},[10565],{"type":48,"value":678},{"type":42,"tag":571,"props":10567,"children":10568},{"style":588},[10569],{"type":48,"value":683},{"type":42,"tag":571,"props":10571,"children":10572},{"style":888},[10573],{"type":48,"value":1105},{"type":42,"tag":571,"props":10575,"children":10576},{"style":715},[10577],{"type":48,"value":7437},{"type":42,"tag":571,"props":10579,"children":10580},{"style":594},[10581],{"type":48,"value":755},{"type":42,"tag":571,"props":10583,"children":10584},{"style":758},[10585],{"type":48,"value":761},{"type":42,"tag":571,"props":10587,"children":10588},{"style":594},[10589],{"type":48,"value":703},{"type":42,"tag":571,"props":10591,"children":10592},{"style":1118},[10593],{"type":48,"value":7390},{"type":42,"tag":571,"props":10595,"children":10596},{"style":594},[10597],{"type":48,"value":373},{"type":42,"tag":571,"props":10599,"children":10600},{"style":594},[10601],{"type":48,"value":688},{"type":42,"tag":571,"props":10603,"children":10604},{"class":573,"line":672},[10605,10609,10613,10617,10621,10625,10629,10633,10637,10641,10645,10649,10653,10657,10661],{"type":42,"tag":571,"props":10606,"children":10607},{"style":600},[10608],{"type":48,"value":7469},{"type":42,"tag":571,"props":10610,"children":10611},{"style":594},[10612],{"type":48,"value":115},{"type":42,"tag":571,"props":10614,"children":10615},{"style":600},[10616],{"type":48,"value":7478},{"type":42,"tag":571,"props":10618,"children":10619},{"style":594},[10620],{"type":48,"value":115},{"type":42,"tag":571,"props":10622,"children":10623},{"style":600},[10624],{"type":48,"value":7487},{"type":42,"tag":571,"props":10626,"children":10627},{"style":594},[10628],{"type":48,"value":115},{"type":42,"tag":571,"props":10630,"children":10631},{"style":715},[10632],{"type":48,"value":7496},{"type":42,"tag":571,"props":10634,"children":10635},{"style":695},[10636],{"type":48,"value":755},{"type":42,"tag":571,"props":10638,"children":10639},{"style":594},[10640],{"type":48,"value":832},{"type":42,"tag":571,"props":10642,"children":10643},{"style":621},[10644],{"type":48,"value":7509},{"type":42,"tag":571,"props":10646,"children":10647},{"style":594},[10648],{"type":48,"value":832},{"type":42,"tag":571,"props":10650,"children":10651},{"style":594},[10652],{"type":48,"value":728},{"type":42,"tag":571,"props":10654,"children":10655},{"style":594},[10656],{"type":48,"value":885},{"type":42,"tag":571,"props":10658,"children":10659},{"style":888},[10660],{"type":48,"value":891},{"type":42,"tag":571,"props":10662,"children":10663},{"style":594},[10664],{"type":48,"value":688},{"type":42,"tag":571,"props":10666,"children":10667},{"class":573,"line":691},[10668,10673,10677,10681,10685,10689,10694,10698],{"type":42,"tag":571,"props":10669,"children":10670},{"style":600},[10671],{"type":48,"value":10672},"    console",{"type":42,"tag":571,"props":10674,"children":10675},{"style":594},[10676],{"type":48,"value":115},{"type":42,"tag":571,"props":10678,"children":10679},{"style":715},[10680],{"type":48,"value":8464},{"type":42,"tag":571,"props":10682,"children":10683},{"style":695},[10684],{"type":48,"value":755},{"type":42,"tag":571,"props":10686,"children":10687},{"style":594},[10688],{"type":48,"value":832},{"type":42,"tag":571,"props":10690,"children":10691},{"style":621},[10692],{"type":48,"value":10693},"Action activated",{"type":42,"tag":571,"props":10695,"children":10696},{"style":594},[10697],{"type":48,"value":832},{"type":42,"tag":571,"props":10699,"children":10700},{"style":695},[10701],{"type":48,"value":919},{"type":42,"tag":571,"props":10703,"children":10704},{"class":573,"line":711},[10705],{"type":42,"tag":571,"props":10706,"children":10707},{"style":578},[10708],{"type":48,"value":10709},"    \u002F\u002F Your inspector\u002Ftool logic here\n",{"type":42,"tag":571,"props":10711,"children":10712},{"class":573,"line":735},[10713,10717],{"type":42,"tag":571,"props":10714,"children":10715},{"style":594},[10716],{"type":48,"value":7140},{"type":42,"tag":571,"props":10718,"children":10719},{"style":695},[10720],{"type":48,"value":919},{"type":42,"tag":571,"props":10722,"children":10723},{"class":573,"line":744},[10724],{"type":42,"tag":571,"props":10725,"children":10726},{"emptyLinePlaceholder":666},[10727],{"type":48,"value":669},{"type":42,"tag":571,"props":10729,"children":10730},{"class":573,"line":772},[10731,10735,10739,10743,10747,10751,10755,10759,10763,10767,10772,10776,10780,10784,10788],{"type":42,"tag":571,"props":10732,"children":10733},{"style":600},[10734],{"type":48,"value":7469},{"type":42,"tag":571,"props":10736,"children":10737},{"style":594},[10738],{"type":48,"value":115},{"type":42,"tag":571,"props":10740,"children":10741},{"style":600},[10742],{"type":48,"value":7478},{"type":42,"tag":571,"props":10744,"children":10745},{"style":594},[10746],{"type":48,"value":115},{"type":42,"tag":571,"props":10748,"children":10749},{"style":600},[10750],{"type":48,"value":7487},{"type":42,"tag":571,"props":10752,"children":10753},{"style":594},[10754],{"type":48,"value":115},{"type":42,"tag":571,"props":10756,"children":10757},{"style":715},[10758],{"type":48,"value":7496},{"type":42,"tag":571,"props":10760,"children":10761},{"style":695},[10762],{"type":48,"value":755},{"type":42,"tag":571,"props":10764,"children":10765},{"style":594},[10766],{"type":48,"value":832},{"type":42,"tag":571,"props":10768,"children":10769},{"style":621},[10770],{"type":48,"value":10771},"entry:deactivated",{"type":42,"tag":571,"props":10773,"children":10774},{"style":594},[10775],{"type":48,"value":832},{"type":42,"tag":571,"props":10777,"children":10778},{"style":594},[10779],{"type":48,"value":728},{"type":42,"tag":571,"props":10781,"children":10782},{"style":594},[10783],{"type":48,"value":885},{"type":42,"tag":571,"props":10785,"children":10786},{"style":888},[10787],{"type":48,"value":891},{"type":42,"tag":571,"props":10789,"children":10790},{"style":594},[10791],{"type":48,"value":688},{"type":42,"tag":571,"props":10793,"children":10794},{"class":573,"line":808},[10795,10799,10803,10807,10811,10815,10820,10824],{"type":42,"tag":571,"props":10796,"children":10797},{"style":600},[10798],{"type":48,"value":10672},{"type":42,"tag":571,"props":10800,"children":10801},{"style":594},[10802],{"type":48,"value":115},{"type":42,"tag":571,"props":10804,"children":10805},{"style":715},[10806],{"type":48,"value":8464},{"type":42,"tag":571,"props":10808,"children":10809},{"style":695},[10810],{"type":48,"value":755},{"type":42,"tag":571,"props":10812,"children":10813},{"style":594},[10814],{"type":48,"value":832},{"type":42,"tag":571,"props":10816,"children":10817},{"style":621},[10818],{"type":48,"value":10819},"Action deactivated",{"type":42,"tag":571,"props":10821,"children":10822},{"style":594},[10823],{"type":48,"value":832},{"type":42,"tag":571,"props":10825,"children":10826},{"style":695},[10827],{"type":48,"value":919},{"type":42,"tag":571,"props":10829,"children":10830},{"class":573,"line":840},[10831],{"type":42,"tag":571,"props":10832,"children":10833},{"style":578},[10834],{"type":48,"value":10835},"    \u002F\u002F Cleanup\n",{"type":42,"tag":571,"props":10837,"children":10838},{"class":573,"line":870},[10839,10843],{"type":42,"tag":571,"props":10840,"children":10841},{"style":594},[10842],{"type":48,"value":7140},{"type":42,"tag":571,"props":10844,"children":10845},{"style":695},[10846],{"type":48,"value":919},{"type":42,"tag":571,"props":10848,"children":10849},{"class":573,"line":908},[10850],{"type":42,"tag":571,"props":10851,"children":10852},{"style":594},[10853],{"type":48,"value":967},{"type":42,"tag":51,"props":10855,"children":10856},{},[10857],{"type":48,"value":10858},"Export from package.json:",{"type":42,"tag":560,"props":10860,"children":10864},{"className":10861,"code":10862,"language":10863,"meta":565,"style":565},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"exports\": {\n    \".\": \".\u002Fdist\u002Findex.mjs\",\n    \".\u002Fdevtools-action\": \".\u002Fdist\u002Fdevtools-action.mjs\"\n  }\n}\n","json",[10865],{"type":42,"tag":59,"props":10866,"children":10867},{"__ignoreMap":565},[10868,10875,10900,10938,10972,10979],{"type":42,"tag":571,"props":10869,"children":10870},{"class":573,"line":574},[10871],{"type":42,"tag":571,"props":10872,"children":10873},{"style":594},[10874],{"type":48,"value":805},{"type":42,"tag":571,"props":10876,"children":10877},{"class":573,"line":584},[10878,10883,10888,10892,10896],{"type":42,"tag":571,"props":10879,"children":10880},{"style":594},[10881],{"type":48,"value":10882},"  \"",{"type":42,"tag":571,"props":10884,"children":10885},{"style":888},[10886],{"type":48,"value":10887},"exports",{"type":42,"tag":571,"props":10889,"children":10890},{"style":594},[10891],{"type":48,"value":1027},{"type":42,"tag":571,"props":10893,"children":10894},{"style":594},[10895],{"type":48,"value":703},{"type":42,"tag":571,"props":10897,"children":10898},{"style":594},[10899],{"type":48,"value":688},{"type":42,"tag":571,"props":10901,"children":10902},{"class":573,"line":631},[10903,10908,10912,10916,10920,10925,10930,10934],{"type":42,"tag":571,"props":10904,"children":10905},{"style":594},[10906],{"type":48,"value":10907},"    \"",{"type":42,"tag":571,"props":10909,"children":10910},{"style":1118},[10911],{"type":48,"value":115},{"type":42,"tag":571,"props":10913,"children":10914},{"style":594},[10915],{"type":48,"value":1027},{"type":42,"tag":571,"props":10917,"children":10918},{"style":594},[10919],{"type":48,"value":703},{"type":42,"tag":571,"props":10921,"children":10922},{"style":594},[10923],{"type":48,"value":10924}," \"",{"type":42,"tag":571,"props":10926,"children":10927},{"style":621},[10928],{"type":48,"value":10929},".\u002Fdist\u002Findex.mjs",{"type":42,"tag":571,"props":10931,"children":10932},{"style":594},[10933],{"type":48,"value":1027},{"type":42,"tag":571,"props":10935,"children":10936},{"style":594},[10937],{"type":48,"value":837},{"type":42,"tag":571,"props":10939,"children":10940},{"class":573,"line":662},[10941,10945,10950,10954,10958,10962,10967],{"type":42,"tag":571,"props":10942,"children":10943},{"style":594},[10944],{"type":48,"value":10907},{"type":42,"tag":571,"props":10946,"children":10947},{"style":1118},[10948],{"type":48,"value":10949},".\u002Fdevtools-action",{"type":42,"tag":571,"props":10951,"children":10952},{"style":594},[10953],{"type":48,"value":1027},{"type":42,"tag":571,"props":10955,"children":10956},{"style":594},[10957],{"type":48,"value":703},{"type":42,"tag":571,"props":10959,"children":10960},{"style":594},[10961],{"type":48,"value":10924},{"type":42,"tag":571,"props":10963,"children":10964},{"style":621},[10965],{"type":48,"value":10966},".\u002Fdist\u002Fdevtools-action.mjs",{"type":42,"tag":571,"props":10968,"children":10969},{"style":594},[10970],{"type":48,"value":10971},"\"\n",{"type":42,"tag":571,"props":10973,"children":10974},{"class":573,"line":672},[10975],{"type":42,"tag":571,"props":10976,"children":10977},{"style":594},[10978],{"type":48,"value":1412},{"type":42,"tag":571,"props":10980,"children":10981},{"class":573,"line":691},[10982],{"type":42,"tag":571,"props":10983,"children":10984},{"style":594},[10985],{"type":48,"value":967},{"type":42,"tag":117,"props":10987,"children":10989},{"id":10988},"debugging-with-the-inspector",[10990],{"type":48,"value":10991},"Debugging with the inspector",{"type":42,"tag":51,"props":10993,"children":10994},{},[10995,10997,11003,11005,11011],{"type":48,"value":10996},"Vite DevTools ships the official ",{"type":42,"tag":59,"props":10998,"children":11000},{"className":10999},[],[11001],{"type":48,"value":11002},"@devframes\u002Fplugin-inspect",{"type":48,"value":11004}," inspector as a built-in panel (enabled by default via ",{"type":42,"tag":59,"props":11006,"children":11008},{"className":11007},[],[11009],{"type":48,"value":11010},"builtinDevTools",{"type":48,"value":11012},"). It shows registered RPC functions, dock entries, client scripts, and plugins in a meta-introspection UI — open the \"Inspect\" dock, no extra install needed.",{"type":42,"tag":560,"props":11014,"children":11016},{"className":562,"code":11015,"language":564,"meta":565,"style":565},"import DevTools from '@vitejs\u002Fdevtools'\n\nexport default defineConfig({\n  plugins: [\n    DevTools(), \u002F\u002F inspector included by default\n  ],\n})\n",[11017],{"type":42,"tag":59,"props":11018,"children":11019},{"__ignoreMap":565},[11020,11049,11056,11080,11095,11116,11127],{"type":42,"tag":571,"props":11021,"children":11022},{"class":573,"line":574},[11023,11027,11032,11036,11040,11045],{"type":42,"tag":571,"props":11024,"children":11025},{"style":588},[11026],{"type":48,"value":591},{"type":42,"tag":571,"props":11028,"children":11029},{"style":600},[11030],{"type":48,"value":11031}," DevTools ",{"type":42,"tag":571,"props":11033,"children":11034},{"style":588},[11035],{"type":48,"value":646},{"type":42,"tag":571,"props":11037,"children":11038},{"style":594},[11039],{"type":48,"value":618},{"type":42,"tag":571,"props":11041,"children":11042},{"style":621},[11043],{"type":48,"value":11044},"@vitejs\u002Fdevtools",{"type":42,"tag":571,"props":11046,"children":11047},{"style":594},[11048],{"type":48,"value":628},{"type":42,"tag":571,"props":11050,"children":11051},{"class":573,"line":584},[11052],{"type":42,"tag":571,"props":11053,"children":11054},{"emptyLinePlaceholder":666},[11055],{"type":48,"value":669},{"type":42,"tag":571,"props":11057,"children":11058},{"class":573,"line":631},[11059,11063,11067,11072,11076],{"type":42,"tag":571,"props":11060,"children":11061},{"style":588},[11062],{"type":48,"value":678},{"type":42,"tag":571,"props":11064,"children":11065},{"style":588},[11066],{"type":48,"value":683},{"type":42,"tag":571,"props":11068,"children":11069},{"style":715},[11070],{"type":48,"value":11071}," defineConfig",{"type":42,"tag":571,"props":11073,"children":11074},{"style":600},[11075],{"type":48,"value":755},{"type":42,"tag":571,"props":11077,"children":11078},{"style":594},[11079],{"type":48,"value":805},{"type":42,"tag":571,"props":11081,"children":11082},{"class":573,"line":662},[11083,11087,11091],{"type":42,"tag":571,"props":11084,"children":11085},{"style":695},[11086],{"type":48,"value":698},{"type":42,"tag":571,"props":11088,"children":11089},{"style":594},[11090],{"type":48,"value":703},{"type":42,"tag":571,"props":11092,"children":11093},{"style":600},[11094],{"type":48,"value":708},{"type":42,"tag":571,"props":11096,"children":11097},{"class":573,"line":672},[11098,11103,11107,11111],{"type":42,"tag":571,"props":11099,"children":11100},{"style":715},[11101],{"type":48,"value":11102},"    DevTools",{"type":42,"tag":571,"props":11104,"children":11105},{"style":600},[11106],{"type":48,"value":5090},{"type":42,"tag":571,"props":11108,"children":11109},{"style":594},[11110],{"type":48,"value":728},{"type":42,"tag":571,"props":11112,"children":11113},{"style":578},[11114],{"type":48,"value":11115}," \u002F\u002F inspector included by default\n",{"type":42,"tag":571,"props":11117,"children":11118},{"class":573,"line":691},[11119,11123],{"type":42,"tag":571,"props":11120,"children":11121},{"style":600},[11122],{"type":48,"value":954},{"type":42,"tag":571,"props":11124,"children":11125},{"style":594},[11126],{"type":48,"value":837},{"type":42,"tag":571,"props":11128,"children":11129},{"class":573,"line":711},[11130,11134],{"type":42,"tag":571,"props":11131,"children":11132},{"style":594},[11133],{"type":48,"value":2991},{"type":42,"tag":571,"props":11135,"children":11136},{"style":600},[11137],{"type":48,"value":919},{"type":42,"tag":117,"props":11139,"children":11141},{"id":11140},"best-practices",[11142],{"type":48,"value":11143},"Best Practices",{"type":42,"tag":11145,"props":11146,"children":11147},"ol",{},[11148,11159,11177,11187,11205,11223,11247,11264,11281,11298],{"type":42,"tag":11149,"props":11150,"children":11151},"li",{},[11152,11157],{"type":42,"tag":55,"props":11153,"children":11154},{},[11155],{"type":48,"value":11156},"Always namespace",{"type":48,"value":11158}," - Prefix all identifiers with your plugin name",{"type":42,"tag":11149,"props":11160,"children":11161},{},[11162,11167,11169,11175],{"type":42,"tag":55,"props":11163,"children":11164},{},[11165],{"type":48,"value":11166},"Use type augmentation",{"type":48,"value":11168}," - Extend ",{"type":42,"tag":59,"props":11170,"children":11172},{"className":11171},[],[11173],{"type":48,"value":11174},"DevToolsRpcServerFunctions",{"type":48,"value":11176}," for type-safe RPC",{"type":42,"tag":11149,"props":11178,"children":11179},{},[11180,11185],{"type":42,"tag":55,"props":11181,"children":11182},{},[11183],{"type":48,"value":11184},"Keep state serializable",{"type":48,"value":11186}," - No functions or circular references in shared state",{"type":42,"tag":11149,"props":11188,"children":11189},{},[11190,11195,11197,11203],{"type":42,"tag":55,"props":11191,"children":11192},{},[11193],{"type":48,"value":11194},"Batch mutations",{"type":48,"value":11196}," - Use single ",{"type":42,"tag":59,"props":11198,"children":11200},{"className":11199},[],[11201],{"type":48,"value":11202},"mutate()",{"type":48,"value":11204}," call for multiple changes",{"type":42,"tag":11149,"props":11206,"children":11207},{},[11208,11213,11215,11221],{"type":42,"tag":55,"props":11209,"children":11210},{},[11211],{"type":48,"value":11212},"Host static files",{"type":48,"value":11214}," - Use ",{"type":42,"tag":59,"props":11216,"children":11218},{"className":11217},[],[11219],{"type":48,"value":11220},"ctx.views.hostStatic()",{"type":48,"value":11222}," for your UI assets",{"type":42,"tag":11149,"props":11224,"children":11225},{},[11226,11231,11233,11239,11241],{"type":42,"tag":55,"props":11227,"children":11228},{},[11229],{"type":48,"value":11230},"Use Iconify icons",{"type":48,"value":11232}," - Prefer ",{"type":42,"tag":59,"props":11234,"children":11236},{"className":11235},[],[11237],{"type":48,"value":11238},"ph:*",{"type":48,"value":11240}," (Phosphor) icons: ",{"type":42,"tag":59,"props":11242,"children":11244},{"className":11243},[],[11245],{"type":48,"value":11246},"icon: 'ph:chart-bar-duotone'",{"type":42,"tag":11149,"props":11248,"children":11249},{},[11250,11255,11257,11262],{"type":42,"tag":55,"props":11251,"children":11252},{},[11253],{"type":48,"value":11254},"Deduplicate logs",{"type":48,"value":11256}," - Use explicit ",{"type":42,"tag":59,"props":11258,"children":11260},{"className":11259},[],[11261],{"type":48,"value":511},{"type":48,"value":11263}," for logs representing ongoing operations",{"type":42,"tag":11149,"props":11265,"children":11266},{},[11267,11272,11274,11279],{"type":42,"tag":55,"props":11268,"children":11269},{},[11270],{"type":48,"value":11271},"Use the inspector",{"type":48,"value":11273}," - The built-in ",{"type":42,"tag":59,"props":11275,"children":11277},{"className":11276},[],[11278],{"type":48,"value":11002},{"type":48,"value":11280}," panel helps debug your plugin during development",{"type":42,"tag":11149,"props":11282,"children":11283},{},[11284,11289,11290,11296],{"type":42,"tag":55,"props":11285,"children":11286},{},[11287],{"type":48,"value":11288},"Namespace command IDs",{"type":48,"value":11214},{"type":42,"tag":59,"props":11291,"children":11293},{"className":11292},[],[11294],{"type":48,"value":11295},"my-plugin:action",{"type":48,"value":11297}," pattern for command IDs, same as RPC and state",{"type":42,"tag":11149,"props":11299,"children":11300},{},[11301,11312,11314,11319],{"type":42,"tag":55,"props":11302,"children":11303},{},[11304,11305,11310],{"type":48,"value":10381},{"type":42,"tag":59,"props":11306,"children":11308},{"className":11307},[],[11309],{"type":48,"value":5620},{"type":48,"value":11311}," clauses",{"type":48,"value":11313}," - Conditionally show commands\u002Fdocks with ",{"type":42,"tag":59,"props":11315,"children":11317},{"className":11316},[],[11318],{"type":48,"value":5620},{"type":48,"value":11320}," expressions instead of programmatic show\u002Fhide",{"type":42,"tag":117,"props":11322,"children":11324},{"id":11323},"example-plugins",[11325],{"type":48,"value":11326},"Example Plugins",{"type":42,"tag":51,"props":11328,"children":11329},{},[11330],{"type":48,"value":11331},"Real-world example plugins in the repo — reference their code structure and patterns when building new integrations:",{"type":42,"tag":11333,"props":11334,"children":11335},"ul",{},[11336,11358,11380],{"type":42,"tag":11149,"props":11337,"children":11338},{},[11339,11344,11345,11356],{"type":42,"tag":55,"props":11340,"children":11341},{},[11342],{"type":48,"value":11343},"A11y Checker",{"type":48,"value":142},{"type":42,"tag":70,"props":11346,"children":11349},{"href":11347,"rel":11348},"https:\u002F\u002Fgithub.com\u002Fvitejs\u002Fdevtools\u002Ftree\u002Fmain\u002Fexamples\u002Fplugin-a11y-checker",[74],[11350],{"type":42,"tag":59,"props":11351,"children":11353},{"className":11352},[],[11354],{"type":48,"value":11355},"examples\u002Fplugin-a11y-checker",{"type":48,"value":11357},") — Action dock entry, client-side axe-core audits, logs with severity levels and element positions, log handle updates",{"type":42,"tag":11149,"props":11359,"children":11360},{},[11361,11366,11367,11378],{"type":42,"tag":55,"props":11362,"children":11363},{},[11364],{"type":48,"value":11365},"File Explorer",{"type":48,"value":142},{"type":42,"tag":70,"props":11368,"children":11371},{"href":11369,"rel":11370},"https:\u002F\u002Fgithub.com\u002Fvitejs\u002Fdevtools\u002Ftree\u002Fmain\u002Fexamples\u002Fplugin-file-explorer",[74],[11372],{"type":42,"tag":59,"props":11373,"children":11375},{"className":11374},[],[11376],{"type":48,"value":11377},"examples\u002Fplugin-file-explorer",{"type":48,"value":11379},") — Iframe dock entry, RPC functions (static\u002Fquery\u002Faction), hosted UI panel, RPC dump for static builds, backend mode detection",{"type":42,"tag":11149,"props":11381,"children":11382},{},[11383,11388,11389,11400,11402,11408,11410,11416],{"type":42,"tag":55,"props":11384,"children":11385},{},[11386],{"type":48,"value":11387},"Git UI",{"type":48,"value":142},{"type":42,"tag":70,"props":11390,"children":11393},{"href":11391,"rel":11392},"https:\u002F\u002Fgithub.com\u002Fvitejs\u002Fdevtools\u002Ftree\u002Fmain\u002Fexamples\u002Fplugin-git-ui",[74],[11394],{"type":42,"tag":59,"props":11395,"children":11397},{"className":11396},[],[11398],{"type":48,"value":11399},"examples\u002Fplugin-git-ui",{"type":48,"value":11401},") — JSON render dock entry, server-side JSON specs, ",{"type":42,"tag":59,"props":11403,"children":11405},{"className":11404},[],[11406],{"type":48,"value":11407},"$bindState",{"type":48,"value":11409}," two-way binding, ",{"type":42,"tag":59,"props":11411,"children":11413},{"className":11412},[],[11414],{"type":48,"value":11415},"$state",{"type":48,"value":11417}," in action params, dynamic badge updates",{"type":42,"tag":117,"props":11419,"children":11421},{"id":11420},"further-reading",[11422],{"type":48,"value":11423},"Further Reading",{"type":42,"tag":11333,"props":11425,"children":11426},{},[11427,11438,11448,11459,11468,11479,11490,11499,11510,11528,11537,11546,11563],{"type":42,"tag":11149,"props":11428,"children":11429},{},[11430,11436],{"type":42,"tag":70,"props":11431,"children":11433},{"href":11432},".\u002Freferences\u002Frpc-patterns.md",[11434],{"type":48,"value":11435},"RPC Patterns",{"type":48,"value":11437}," - Advanced RPC patterns and type utilities",{"type":42,"tag":11149,"props":11439,"children":11440},{},[11441,11446],{"type":42,"tag":70,"props":11442,"children":11444},{"href":11443},".\u002Freferences\u002Fdock-entry-types.md",[11445],{"type":48,"value":2690},{"type":48,"value":11447}," - Detailed dock configuration options",{"type":42,"tag":11149,"props":11449,"children":11450},{},[11451,11457],{"type":42,"tag":70,"props":11452,"children":11454},{"href":11453},".\u002Freferences\u002Fshared-state-patterns.md",[11455],{"type":48,"value":11456},"Shared State Patterns",{"type":48,"value":11458}," - Framework integration examples",{"type":42,"tag":11149,"props":11460,"children":11461},{},[11462,11466],{"type":42,"tag":70,"props":11463,"children":11464},{"href":10482},[11465],{"type":48,"value":10485},{"type":48,"value":11467}," - Streaming channels, uploads, replay, chat-history pattern",{"type":42,"tag":11149,"props":11469,"children":11470},{},[11471,11477],{"type":42,"tag":70,"props":11472,"children":11474},{"href":11473},".\u002Freferences\u002Fproject-structure.md",[11475],{"type":48,"value":11476},"Project Structure",{"type":48,"value":11478}," - Recommended file organization",{"type":42,"tag":11149,"props":11480,"children":11481},{},[11482,11488],{"type":42,"tag":70,"props":11483,"children":11485},{"href":11484},".\u002Freferences\u002Fjson-render-patterns.md",[11486],{"type":48,"value":11487},"JSON Render Patterns",{"type":48,"value":11489}," - Server-side JSON specs, components, state binding",{"type":42,"tag":11149,"props":11491,"children":11492},{},[11493,11497],{"type":42,"tag":70,"props":11494,"children":11495},{"href":5281},[11496],{"type":48,"value":5284},{"type":48,"value":11498}," - Child processes, custom streams, session lifecycle",{"type":42,"tag":11149,"props":11500,"children":11501},{},[11502,11508],{"type":42,"tag":70,"props":11503,"children":11505},{"href":11504},".\u002Freferences\u002Fmessages-patterns.md",[11506],{"type":48,"value":11507},"Messages Patterns",{"type":48,"value":11509}," - Message entries, toast notifications, and handle patterns",{"type":42,"tag":11149,"props":11511,"children":11512},{},[11513,11519,11521,11526],{"type":42,"tag":70,"props":11514,"children":11516},{"href":11515},".\u002Freferences\u002Fdiagnostics-patterns.md",[11517],{"type":48,"value":11518},"Diagnostics Patterns",{"type":48,"value":11520}," - Coded errors \u002F warnings via ",{"type":42,"tag":59,"props":11522,"children":11524},{"className":11523},[],[11525],{"type":48,"value":385},{"type":48,"value":11527}," (nostics integration)",{"type":42,"tag":11149,"props":11529,"children":11530},{},[11531,11535],{"type":42,"tag":70,"props":11532,"children":11533},{"href":5630},[11534],{"type":48,"value":5633},{"type":48,"value":11536}," - Command registration, sub-commands, keybindings, palette integration",{"type":42,"tag":11149,"props":11538,"children":11539},{},[11540,11544],{"type":42,"tag":70,"props":11541,"children":11542},{"href":5638},[11543],{"type":48,"value":5641},{"type":48,"value":11545}," - Conditional expression syntax, context variables, API reference",{"type":42,"tag":11149,"props":11547,"children":11548},{},[11549,11553,11555,11561],{"type":42,"tag":70,"props":11550,"children":11551},{"href":3252},[11552],{"type":48,"value":3255},{"type":48,"value":11554}," - Remote-hosted iframe docks, ",{"type":42,"tag":59,"props":11556,"children":11558},{"className":11557},[],[11559],{"type":48,"value":11560},"connectRemoteDevTools",{"type":48,"value":11562},", trust model",{"type":42,"tag":11149,"props":11564,"children":11565},{},[11566,11573],{"type":42,"tag":70,"props":11567,"children":11570},{"href":11568,"rel":11569},"https:\u002F\u002Fgithub.com\u002Fvitejs\u002Fdevtools\u002Fblob\u002Fmain\u002FMIGRATION.md",[74],[11571],{"type":48,"value":11572},"Migration Guide",{"type":48,"value":11574}," - Breaking changes between versions",{"type":42,"tag":11576,"props":11577,"children":11578},"style",{},[11579],{"type":48,"value":11580},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":11582,"total":574},[11583],{"slug":4,"name":4,"fn":5,"description":6,"org":11584,"tags":11585,"stars":21,"repoUrl":22,"updatedAt":23},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[11586,11587,11588],{"name":14,"slug":15,"type":16},{"name":19,"slug":20,"type":16},{"name":9,"slug":8,"type":16},{"items":11590,"total":574},[11591],{"slug":4,"name":4,"fn":5,"description":6,"org":11592,"tags":11593,"stars":21,"repoUrl":22,"updatedAt":23},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[11594,11595,11596],{"name":14,"slug":15,"type":16},{"name":19,"slug":20,"type":16},{"name":9,"slug":8,"type":16}]