Rich-text editor with AI and shadcn/ui
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 91b6f5f · analyzer v33 · 2h ago
skills & prompt files 40
- agent-rules udecode-plate-91b6f5f/.agents/AGENTS.md
- skill udecode-plate-91b6f5f/.agents/skills/adversarial-document-reviewer/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/agent-browser-issue/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/agent-native-reviewer/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/architecture-strategist/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/autoclosure/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/autogoal/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/autoreview/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/best-practices-researcher/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/changeset/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/clawpatch/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/clawsweeper/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/code-simplicity-reviewer/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/coherence-reviewer/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/components/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/continue/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/correctness-reviewer/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/dev-browser/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/diagnosing-bugs/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/docs-creator/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/editor-harvest-plan/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/editor-test-harvester/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/feasibility-reviewer/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/framework-docs-researcher/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/frontend-design/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/git-history-analyzer/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/gpt-pro/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/grill-me/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/hard-cut/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/issue-intelligence-analyst/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/learnings-researcher/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/maintainability-reviewer/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/major-task/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/north-star/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/orchestrator/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/pattern-recognition-specialist/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/performance-oracle/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/performance/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/plate-plan/SKILL.md
- skill udecode-plate-91b6f5f/.agents/skills/plate-plugin-creator/SKILL.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 3371
filesystem 67
- fs (weak) udecode-plate-91b6f5f/.agents/rules/sync-shadcn/scripts/build-dashboard.mjs :3
import fs from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/.agents/skills/autogoal/scripts/check-complete.mjs :3
import { existsSync } from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/.agents/skills/autogoal/scripts/create-goal-scratchpad.mjs :3
import { existsSync } from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/.agents/skills/autogoal/scripts/create-goal-template.mjs :3
import { existsSync } from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/.agents/skills/autogoal/scripts/init-templates.mjs :3
import { existsSync } from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/apps/www/next.config.ts :1
import fs from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/apps/www/scripts/build-docs-registry.mts :8
import { promises as fs } from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/apps/www/scripts/build-registry.mts :2
import { promises as fs } from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/apps/www/scripts/capture-registry.mts :1
import { existsSync } from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/apps/www/scripts/check-docs-source-parity.mts :4
import { promises as fs } from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/apps/www/scripts/run-editor-perf.mts :1
import { mkdir, writeFile } from 'node:fs/promises'; - fs (weak) udecode-plate-91b6f5f/apps/www/scripts/run-table-perf.mts :1
import { mkdir, writeFile } from 'node:fs/promises';
show 28 more
- fs (weak) udecode-plate-91b6f5f/apps/www/src/__tests__/package-integration/docx-io.roundtrip.slow.tsx :3
import fs from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/apps/www/src/__tests__/package-integration/docx/readTestFile.ts :1
import fs from 'node:fs'; - fs udecode-plate-91b6f5f/apps/www/src/lib/registry-changelog.ts :1
import fs from 'node:fs'; - fs udecode-plate-91b6f5f/apps/www/src/lib/rehype-component.ts :3
import fs from 'node:fs'; - fs udecode-plate-91b6f5f/apps/www/src/lib/rehype-utils.ts :4
import { promises as fs } from 'node:fs'; - fs udecode-plate-91b6f5f/apps/www/src/registry/blocks/slate-to-html/page.tsx :4
import fs from 'node:fs/promises'; - fs (weak) udecode-plate-91b6f5f/benchmarks/editor/benchmarks/benchmark-health.mjs :1
import fs from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/benchmarks/editor/benchmarks/core-benchmark.mjs :1
import fs from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/benchmarks/editor/benchmarks/fetch-editor-frameworks-research.mjs :3
import fs from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/benchmarks/editor/benchmarks/fetch-source-pass-research.mjs :3
import fs from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/benchmarks/editor/benchmarks/package-boundary-gates.mjs :1
import fs from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/benchmarks/editor/benchmarks/render-perf-index.mjs :1
import fs from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/benchmarks/editor/benchmarks/render-rich-text-viewer.mjs :1
import fs from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/benchmarks/editor/benchmarks/rich-text-editors-benchmark.mjs :1
import fs from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/benchmarks/editor/benchmarks/slate-v2-legacy-benchmark.mjs :1
import fs from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/benchmarks/editor/benchmarks/startup-import.mjs :2
import fs from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/benchmarks/editor/src/index.mjs :1
import fs from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/benchmarks/editor/test/fuzz/core-fuzz.mjs :1
import fs from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/packages/docx-io/src/lib/__tests__/testDocxImporter.tsx :3
import fs from 'node:fs'; - fs udecode-plate-91b6f5f/packages/docx/src/lib/docx-cleaner/cleanDocx.slow.ts :1
import fs from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/packages/docx/src/lib/docx-cleaner/utils/getVShapes.spec.ts :1
import fs from 'node:fs'; - fs udecode-plate-91b6f5f/packages/udecode/depset/src/index.slow.ts :3
import { mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs'; - fs udecode-plate-91b6f5f/packages/udecode/depset/src/index.ts :4
import fs from 'node:fs/promises'; - fs (weak) udecode-plate-91b6f5f/templates/plate-playground-template/.agents/skills/autogoal/scripts/check-complete.mjs :3
import { existsSync } from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/templates/plate-playground-template/.agents/skills/autogoal/scripts/create-goal-scratchpad.mjs :3
import { existsSync } from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/templates/plate-playground-template/.agents/skills/autogoal/scripts/create-goal-template.mjs :3
import { existsSync } from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/templates/plate-playground-template/.agents/skills/autogoal/scripts/init-templates.mjs :3
import { existsSync } from 'node:fs'; - fs (weak) udecode-plate-91b6f5f/templates/plate-template/.agents/skills/autogoal/scripts/check-complete.mjs :3
import { existsSync } from 'node:fs';
27 more not shown — this panel samples each group; the count above is the real total.
shell / exec 25
- shell (weak) udecode-plate-91b6f5f/.agents/rules/sync-shadcn/scripts/build-dashboard.mjs :4
import { spawnSync } from 'node:child_process'; - shell (weak) udecode-plate-91b6f5f/apps/www/scripts/build-registry.mts :1
import { spawn } from 'node:child_process'; - shell (weak) udecode-plate-91b6f5f/benchmarks/editor/benchmarks/fetch-editor-frameworks-research.mjs :2
import { spawnSync } from 'node:child_process'; - shell (weak) udecode-plate-91b6f5f/benchmarks/editor/benchmarks/fetch-source-pass-research.mjs :2
import { spawnSync } from 'node:child_process'; - shell (weak) udecode-plate-91b6f5f/benchmarks/editor/benchmarks/package-boundary-gates.mjs :3
import { spawnSync } from 'node:child_process'; - shell (weak) udecode-plate-91b6f5f/benchmarks/editor/benchmarks/startup-import.mjs :1
import { spawnSync } from 'node:child_process'; - shell udecode-plate-91b6f5f/packages/csv/src/lib/esmInterop.slow.ts :1
import { execFileSync } from 'node:child_process'; - shell udecode-plate-91b6f5f/packages/plate-scripts/run-with-pkg-dir.cjs :7
const { spawnSync } = require('node:child_process'); - shell udecode-plate-91b6f5f/packages/udecode/depset/src/index.slow.ts :2
import { spawnSync } from 'node:child_process'; - shell udecode-plate-91b6f5f/packages/udecode/depset/src/index.ts :3
import { execSync } from 'node:child_process'; - shell (weak) udecode-plate-91b6f5f/tooling/scripts/await-npm-publish.mjs :3
import { execFile } from 'node:child_process'; - shell (weak) udecode-plate-91b6f5f/tooling/scripts/bench-targets.mjs :3
import { spawnSync } from 'node:child_process';
show 13 more
- shell (weak) udecode-plate-91b6f5f/tooling/scripts/check-templates.integration.mjs :2
import { spawnSync } from 'node:child_process'; - shell (weak) udecode-plate-91b6f5f/tooling/scripts/generate-ui-changelog-entries.mjs :6
import { execFileSync } from 'node:child_process'; - shell (weak) udecode-plate-91b6f5f/tooling/scripts/prepare-local-template-packages.mjs :3
import { spawnSync } from 'node:child_process'; - shell (weak) udecode-plate-91b6f5f/tooling/scripts/prepare-release-changesets.mjs :3
import { spawnSync } from 'node:child_process'; - shell (weak) udecode-plate-91b6f5f/tooling/scripts/release-branch-prs.mjs :3
import { spawnSync } from 'node:child_process'; - shell (weak) udecode-plate-91b6f5f/tooling/scripts/release-notes.mjs :3
import { execFileSync } from 'node:child_process'; - shell (weak) udecode-plate-91b6f5f/tooling/scripts/release-packages.mjs :4
import { spawnSync } from 'node:child_process'; - shell (weak) udecode-plate-91b6f5f/tooling/scripts/slate-autoresearch.mjs :3
import { spawnSync } from 'node:child_process'; - shell (weak) udecode-plate-91b6f5f/tooling/scripts/sync-version-package-releases.mjs :3
import { execFile as execFileCallback } from 'node:child_process'; - shell (weak) udecode-plate-91b6f5f/tooling/scripts/test-deferred.mjs :3
import { spawnSync } from 'node:child_process'; - shell (weak) udecode-plate-91b6f5f/tooling/scripts/test-fast.mjs :3
import { spawnSync } from 'node:child_process'; - shell (weak) udecode-plate-91b6f5f/tooling/scripts/test-slow.mjs :10
import { spawnSync } from 'node:child_process'; - shell (weak) udecode-plate-91b6f5f/tooling/scripts/test-slowest.mjs :4
import { spawnSync } from 'node:child_process';
network 14
- net udecode-plate-91b6f5f/apps/www/src/components/block-viewer.tsx :72
const response = await fetch( - net udecode-plate-91b6f5f/apps/www/src/hooks/use-lazy-sidebar-nav.ts :30
const promise = fetch(`/api/sidebar-nav?locale=${normalizedLocale}`) - net udecode-plate-91b6f5f/apps/www/src/lib/bundlephobia.ts :1
import fetch from 'node-fetch'; - net udecode-plate-91b6f5f/apps/www/src/registry/components/editor/use-chat.ts :77
const res = await fetch(input, { - net (weak) udecode-plate-91b6f5f/apps/www/src/registry/examples/values/code-block-value.tsx :19
{' const response = await fetch(`/api/users/${userId}`);'} - net udecode-plate-91b6f5f/apps/www/src/registry/ui/export-toolbar-button.tsx :62
const response = await fetch(url); - net (weak) udecode-plate-91b6f5f/benchmarks/editor/benchmarks/fetch-editor-frameworks-research.mjs :109
const response = await fetch(source.url); - net (weak) udecode-plate-91b6f5f/benchmarks/editor/benchmarks/fetch-source-pass-research.mjs :109
const response = await fetch(source.url); - net (weak) udecode-plate-91b6f5f/benchmarks/editor/benchmarks/render-rich-text-viewer.mjs :422
fetch(${JSON.stringify(dataUrl)}, { cache: "no-store" }) - net udecode-plate-91b6f5f/packages/ai/src/react/copilot/utils/callCompletionApi.ts :52
const res = await fetch(api, { - net udecode-plate-91b6f5f/packages/code-drawing/src/lib/utils/renderers.ts :40
const response = await fetch(svgUrl); - net udecode-plate-91b6f5f/packages/docx-io/src/lib/internal/utils/image-to-base64.ts :21
const response = await fetch(imageUrl);
show 2 more
- net udecode-plate-91b6f5f/templates/plate-playground-template/src/components/editor/use-chat.ts :74
const res = await fetch(input, { - net udecode-plate-91b6f5f/templates/plate-playground-template/src/components/ui/export-toolbar-button.tsx :58
const response = await fetch(url);
secrets 1
- secrets (weak) udecode-plate-91b6f5f/apps/www/src/registry/app/api/ai/credentials.spec.ts :24
const initialApiKey = process.env.AI_GATEWAY_API_KEY;
install hooks 4
- postinstall udecode-plate-91b6f5f/apps/www/package.json :21
fumadocs-mdx - prepare udecode-plate-91b6f5f/package.json :80
bun x skiller@latest apply - prepare udecode-plate-91b6f5f/templates/plate-playground-template/package.json :11
bun x skiller@latest apply || true - prepare udecode-plate-91b6f5f/templates/plate-template/package.json :11
bun x skiller@latest apply || true
declared dependencies 79
- @biomejs/biome@2.5.0
- @changesets/cli@2.30.0
- @changesets/get-github-info@0.8.0
- @happy-dom/global-registrator@20.0.10
- @hocuspocus/provider@3.4.4
- @platejs/basic-nodes@workspace:^
- @platejs/basic-styles@workspace:^
- @platejs/code-block@workspace:^
- @platejs/combobox@workspace:^
- @platejs/docx@workspace:^
- @platejs/indent@workspace:^
- @platejs/juice@workspace:^
show 28 more
- @platejs/link@workspace:^
- @platejs/list@workspace:^
- @platejs/list-classic@workspace:^
- @platejs/markdown@workspace:^
- @platejs/math@workspace:^
- @platejs/media@workspace:^
- @platejs/mention@workspace:^
- @platejs/selection@workspace:^
- @platejs/slate@workspace:^
- @platejs/suggestion@workspace:^
- @platejs/table@workspace:^
- @platejs/test-utils@workspace:^
- @playwright/test@1.53.0
- @roarr/cli@5.12.4
- @rollup/plugin-babel@6.1.0
- @swc/core@1.12.0
- @tailwindcss/postcss@4.1.8
- @testing-library/dom@10.4.0
- @testing-library/jest-dom@6.6.3
- @testing-library/react@16.3.0
- @testing-library/user-event@14.6.1
- @types/bun@1.3.2
- @types/is-hotkey@0.1.10
- @types/jest@29.5.14
- @types/lodash@4.17.17
- @types/node@24.12.0
- @types/prismjs@1.26.5
- @types/prompts@2.4.9
39 more not shown — this panel samples each group; the count above is the real total.
obfuscation 16
- dynamic require()/import() udecode-plate-91b6f5f/apps/www/scripts/build-registry.mts :76
const mod = await import("${componentPath}") - dynamic require()/import() udecode-plate-91b6f5f/packages/ai/src/react/ai-chat/hooks/useAIChatEditor.slow.tsx :36
import(`./useAIChatEditor?test=${Math.random().toString(36).slice(2)}`); - dynamic require()/import() udecode-plate-91b6f5f/packages/ai/src/react/ai-chat/hooks/useChatChunk.slow.tsx :19
import(`./useChatChunk?test=${Math.random().toString(36).slice(2)}`); - dynamic require()/import() udecode-plate-91b6f5f/packages/ai/src/react/ai-chat/hooks/useEditorChat.slow.tsx :35
import(`./useEditorChat?test=${Math.random().toString(36).slice(2)}`); - dynamic require()/import() udecode-plate-91b6f5f/packages/ai/src/react/ai-chat/utils/aiChatActions.slow.ts :64
import(`./acceptAISuggestions?test=${Math.random().toString(36).slice(2)}`); - dynamic require()/import() udecode-plate-91b6f5f/packages/ai/src/react/ai-chat/utils/applyAISuggestions.spec.ts :57
import(`./applyAISuggestions?test=${Math.random().toString(36).slice(2)}`); - dynamic require()/import() udecode-plate-91b6f5f/packages/ai/src/react/ai-chat/utils/submitAIChat.slow.ts :39
import(`./submitAIChat?test=${Math.random().toString(36).slice(2)}`); - dynamic require()/import() udecode-plate-91b6f5f/packages/docx-io/src/lib/html-to-docx.spec.ts :17
import(`./html-to-docx?test=${Math.random().toString(36).slice(2)}`); - dynamic require()/import() udecode-plate-91b6f5f/packages/docx-io/src/lib/importDocx.spec.ts :17
import(`./importDocx?test=${Math.random().toString(36).slice(2)}`); - dynamic require()/import() udecode-plate-91b6f5f/packages/selection/src/react/hooks/useBlockSelectable.spec.tsx :18
import(`./useBlockSelectable?test=${Math.random().toString(36).slice(2)}`); - dynamic require()/import() udecode-plate-91b6f5f/packages/selection/src/react/hooks/useCursorOverlay.spec.tsx :40
import(`./useCursorOverlay?test=${Math.random().toString(36).slice(2)}`); - dynamic require()/import() udecode-plate-91b6f5f/packages/selection/src/react/hooks/useRefreshOnResize.spec.tsx :12
import(`./useRefreshOnResize?test=${Math.random().toString(36).slice(2)}`);
show 4 more
- dynamic require()/import() udecode-plate-91b6f5f/packages/selection/src/react/hooks/useSelectionArea.slow.tsx :43
import(`./useSelectionArea?test=${Math.random().toString(36).slice(2)}`); - dynamic require()/import() udecode-plate-91b6f5f/packages/udecode/depset/src/utils/get-package-manager.spec.ts :10
import(`./get-package-manager?test=${Math.random().toString(36).slice(2)}`); - dynamic require()/import() udecode-plate-91b6f5f/packages/udecode/depset/src/utils/spinner.spec.ts :10
import(`./spinner?test=${Math.random().toString(36).slice(2)}`); - dynamic require()/import() udecode-plate-91b6f5f/packages/yjs/src/lib/providers/indexeddb-provider.spec.ts :82
const module = await import(`./indexeddb-provider?test=${importId++}`);