From a2620c0b71e5dd1d9ce8e53ced997abcfdfc08c5 Mon Sep 17 00:00:00 2001 From: Andrea Mellini Date: Tue, 5 May 2026 15:58:47 +0200 Subject: [PATCH] feat(ui): composer + settings + cross-platform folder picker MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Composer • Fix `- ` not rendering as bullet after Shift+Enter — bound Shift+Enter to ProseMirror splitBlock (creates a real new paragraph instead of a hard break). • Fix Enter swallowing list continuation — keymap is now context-aware: lets Milkdown handle Enter inside list items. • Fix black input area — scoped `.composer .ProseMirror.editor` override resolves a class collision with the Monaco panel rule. • New bar layout: [hint] ───── [clear] [model ▾] [send]. Clear runs resetSession; model dropdown lists the available models with short label + full id, with reset-to-default. Header • New HeaderCommandPalette with searchable /login /model /clear /usage /cost /init /permissions /status /ask and inline args. Folder picker `/api/pick-folder` • Now cross-platform: macOS osascript, Windows PowerShell FolderBrowserDialog (-STA + TopMost parent), Linux zenity. • Client splits paths on both `/` and `\` for Windows segments. Settings modal • Per-row red trash icon for delete (Lucide-style SVG); removed the central "delete project" button. • Click-outside-to-close disabled to prevent silent loss of unsaved inputs. • List item changed to div+role="button" (a button cannot nest another button). --- .vs/ProjectSettings.json | 3 + .vs/VSWorkspaceState.json | 6 + .vs/slnx.sqlite | Bin 0 -> 135168 bytes .vs/sublodex.slnx/v18/.wsuo | Bin 0 -> 15872 bytes .vs/sublodex.slnx/v18/DocumentLayout.json | 113 +++++++ bun.lock | 265 +++++++++++++++- package.json | 9 +- server.ts | 46 ++- src/App.tsx | 2 + src/components/Composer.tsx | 226 +++++++++++--- src/components/HeaderCommandPalette.tsx | 223 ++++++++++++++ src/components/Settings.tsx | 33 +- src/components/SidebarLeft.tsx | 8 - src/components/icons.tsx | 22 ++ src/lib/commands.ts | 2 +- src/lib/ui.ts | 6 +- src/styles.css | 359 +++++++++++++++++++++- 17 files changed, 1225 insertions(+), 98 deletions(-) create mode 100644 .vs/ProjectSettings.json create mode 100644 .vs/VSWorkspaceState.json create mode 100644 .vs/slnx.sqlite create mode 100644 .vs/sublodex.slnx/v18/.wsuo create mode 100644 .vs/sublodex.slnx/v18/DocumentLayout.json create mode 100644 src/components/HeaderCommandPalette.tsx diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json new file mode 100644 index 0000000..f8b4888 --- /dev/null +++ b/.vs/ProjectSettings.json @@ -0,0 +1,3 @@ +{ + "CurrentProjectSetting": null +} \ No newline at end of file diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json new file mode 100644 index 0000000..6b61141 --- /dev/null +++ b/.vs/VSWorkspaceState.json @@ -0,0 +1,6 @@ +{ + "ExpandedNodes": [ + "" + ], + "PreviewInSolutionExplorer": false +} \ No newline at end of file diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..85c8a9ecc132eb9e4fad26c80a0decad1857cd49 GIT binary patch literal 135168 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 PSHRjSWBoht=>Go)FGp|H literal 0 HcmV?d00001 diff --git a/.vs/sublodex.slnx/v18/.wsuo b/.vs/sublodex.slnx/v18/.wsuo new file mode 100644 index 0000000000000000000000000000000000000000..5a3649f9daa77eb2789caceb37f77b5dec3ceda5 GIT binary patch literal 15872 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 u|JV2ZLl3%Y?w@ta-`q#~pzi{Dw1 literal 0 HcmV?d00001 diff --git a/.vs/sublodex.slnx/v18/DocumentLayout.json b/.vs/sublodex.slnx/v18/DocumentLayout.json new file mode 100644 index 0000000..02fa3ec --- /dev/null +++ b/.vs/sublodex.slnx/v18/DocumentLayout.json @@ -0,0 +1,113 @@ +{ + "Version": 1, + "WorkspaceRootPath": "J:\\Projects\\sublodex\\", + "Documents": [], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": -1, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:128:0:{1fc202d4-d401-403c-9834-5b218574bb67}" + }, + { + "$type": "Bookmark", + "Name": "ST:131:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" + }, + { + "$type": "Bookmark", + "Name": "ST:132:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" + }, + { + "$type": "Bookmark", + "Name": "ST:133:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" + }, + { + "$type": "Bookmark", + "Name": "ST:129:0:{1fc202d4-d401-403c-9834-5b218574bb67}" + }, + { + "$type": "Bookmark", + "Name": "ST:131:0:{1fc202d4-d401-403c-9834-5b218574bb67}" + }, + { + "$type": "Bookmark", + "Name": "ST:130:0:{13b12e3e-c1b4-4539-9371-4fe9a0d523fc}" + }, + { + "$type": "Bookmark", + "Name": "ST:128:0:{13b12e3e-c1b4-4539-9371-4fe9a0d523fc}" + }, + { + "$type": "Bookmark", + "Name": "ST:1:0:{e8b06f52-6d01-11d2-aa7d-00c04f990343}" + }, + { + "$type": "Bookmark", + "Name": "ST:130:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{e506b91c-c606-466a-90a9-123d1d1e12b3}" + }, + { + "$type": "Bookmark", + "Name": "ST:129:0:{75188d03-9892-4ae2-abf1-207126247ce5}" + }, + { + "$type": "Bookmark", + "Name": "ST:130:0:{1fc202d4-d401-403c-9834-5b218574bb67}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{df2740a2-19bf-324c-9ec7-e1b274384c15}" + }, + { + "$type": "Bookmark", + "Name": "ST:1:0:{fabf9319-47eb-497e-b8f6-d9f73fba5f55}" + }, + { + "$type": "Bookmark", + "Name": "ST:128:0:{75188d03-9892-4ae2-abf1-207126247ce5}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{57d563b6-44a5-47df-85be-f4199ad6b651}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{79664857-03bf-4bca-aa54-ec998b3328f8}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{266c9e7b-20c9-3927-b630-727132b11a5b}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{b2c3d4e5-f6a7-4b8c-9d0e-1f2a3b4c5d6e}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}" + } + ] + }, + { + "DockedWidth": 151, + "SelectedChildIndex": -1, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:0:0:{e1b7d1f8-9b3c-49b1-8f4f-bfc63a88835d}" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/bun.lock b/bun.lock index fda1b6e..2ce056a 100644 --- a/bun.lock +++ b/bun.lock @@ -6,6 +6,13 @@ "name": "claude-web", "dependencies": { "@anthropic-ai/claude-agent-sdk": "^0.2.126", + "@milkdown/core": "^7.20.0", + "@milkdown/plugin-history": "^7.20.0", + "@milkdown/plugin-listener": "^7.20.0", + "@milkdown/preset-commonmark": "^7.20.0", + "@milkdown/prose": "^7.20.0", + "@milkdown/react": "^7.20.0", + "@milkdown/utils": "^7.20.0", "@monaco-editor/react": "^4.6.0", "@xterm/addon-fit": "^0.11.0", "@xterm/xterm": "^6.0.0", @@ -28,7 +35,7 @@ "@types/react-dom": "^18.3.0", "@types/react-syntax-highlighter": "^15.5.13", "@vitejs/plugin-react": "^4.3.1", - "concurrently": "^8.2.2", + "concurrently": "^9.2.1", "typescript": "^5.5.3", "vite": "^5.4.0", }, @@ -95,6 +102,68 @@ "@babel/types": ["@babel/types@7.29.0", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A=="], + "@codemirror/autocomplete": ["@codemirror/autocomplete@6.20.1", "", { "dependencies": { "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.17.0", "@lezer/common": "^1.0.0" } }, "sha512-1cvg3Vz1dSSToCNlJfRA2WSI4ht3K+WplO0UMOgmUYPivCyy2oueZY6Lx7M9wThm7SDUBViRmuT+OG/i8+ON9A=="], + + "@codemirror/commands": ["@codemirror/commands@6.10.3", "", { "dependencies": { "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.6.0", "@codemirror/view": "^6.27.0", "@lezer/common": "^1.1.0" } }, "sha512-JFRiqhKu+bvSkDLI+rUhJwSxQxYb759W5GBezE8Uc8mHLqC9aV/9aTC7yJSqCtB3F00pylrLCwnyS91Ap5ej4Q=="], + + "@codemirror/lang-angular": ["@codemirror/lang-angular@0.1.4", "", { "dependencies": { "@codemirror/lang-html": "^6.0.0", "@codemirror/lang-javascript": "^6.1.2", "@codemirror/language": "^6.0.0", "@lezer/common": "^1.2.0", "@lezer/highlight": "^1.0.0", "@lezer/lr": "^1.3.3" } }, "sha512-oap+gsltb/fzdlTQWD6BFF4bSLKcDnlxDsLdePiJpCVNKWXSTAbiiQeYI3UmES+BLAdkmIC1WjyztC1pi/bX4g=="], + + "@codemirror/lang-cpp": ["@codemirror/lang-cpp@6.0.3", "", { "dependencies": { "@codemirror/language": "^6.0.0", "@lezer/cpp": "^1.0.0" } }, "sha512-URM26M3vunFFn9/sm6rzqrBzDgfWuDixp85uTY49wKudToc2jTHUrKIGGKs+QWND+YLofNNZpxcNGRynFJfvgA=="], + + "@codemirror/lang-css": ["@codemirror/lang-css@6.3.1", "", { "dependencies": { "@codemirror/autocomplete": "^6.0.0", "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.0.0", "@lezer/common": "^1.0.2", "@lezer/css": "^1.1.7" } }, "sha512-kr5fwBGiGtmz6l0LSJIbno9QrifNMUusivHbnA1H6Dmqy4HZFte3UAICix1VuKo0lMPKQr2rqB+0BkKi/S3Ejg=="], + + "@codemirror/lang-go": ["@codemirror/lang-go@6.0.1", "", { "dependencies": { "@codemirror/autocomplete": "^6.0.0", "@codemirror/language": "^6.6.0", "@codemirror/state": "^6.0.0", "@lezer/common": "^1.0.0", "@lezer/go": "^1.0.0" } }, "sha512-7fNvbyNylvqCphW9HD6WFnRpcDjr+KXX/FgqXy5H5ZS0eC5edDljukm/yNgYkwTsgp2busdod50AOTIy6Jikfg=="], + + "@codemirror/lang-html": ["@codemirror/lang-html@6.4.11", "", { "dependencies": { "@codemirror/autocomplete": "^6.0.0", "@codemirror/lang-css": "^6.0.0", "@codemirror/lang-javascript": "^6.0.0", "@codemirror/language": "^6.4.0", "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.17.0", "@lezer/common": "^1.0.0", "@lezer/css": "^1.1.0", "@lezer/html": "^1.3.12" } }, "sha512-9NsXp7Nwp891pQchI7gPdTwBuSuT3K65NGTHWHNJ55HjYcHLllr0rbIZNdOzas9ztc1EUVBlHou85FFZS4BNnw=="], + + "@codemirror/lang-java": ["@codemirror/lang-java@6.0.2", "", { "dependencies": { "@codemirror/language": "^6.0.0", "@lezer/java": "^1.0.0" } }, "sha512-m5Nt1mQ/cznJY7tMfQTJchmrjdjQ71IDs+55d1GAa8DGaB8JXWsVCkVT284C3RTASaY43YknrK2X3hPO/J3MOQ=="], + + "@codemirror/lang-javascript": ["@codemirror/lang-javascript@6.2.5", "", { "dependencies": { "@codemirror/autocomplete": "^6.0.0", "@codemirror/language": "^6.6.0", "@codemirror/lint": "^6.0.0", "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.17.0", "@lezer/common": "^1.0.0", "@lezer/javascript": "^1.0.0" } }, "sha512-zD4e5mS+50htS7F+TYjBPsiIFGanfVqg4HyUz6WNFikgOPf2BgKlx+TQedI1w6n/IqRBVBbBWmGFdLB/7uxO4A=="], + + "@codemirror/lang-jinja": ["@codemirror/lang-jinja@6.0.1", "", { "dependencies": { "@codemirror/autocomplete": "^6.0.0", "@codemirror/lang-html": "^6.0.0", "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.0.0", "@lezer/common": "^1.2.0", "@lezer/highlight": "^1.2.0", "@lezer/lr": "^1.4.0" } }, "sha512-P5kyHLObzjtbGj16h+hyvZTxJhSjBEeSx4wMjbnAf3b0uwTy2+F0zGjMZL4PQOm/mh2eGZ5xUDVZXgwP783Nsw=="], + + "@codemirror/lang-json": ["@codemirror/lang-json@6.0.2", "", { "dependencies": { "@codemirror/language": "^6.0.0", "@lezer/json": "^1.0.0" } }, "sha512-x2OtO+AvwEHrEwR0FyyPtfDUiloG3rnVTSZV1W8UteaLL8/MajQd8DpvUb2YVzC+/T18aSDv0H9mu+xw0EStoQ=="], + + "@codemirror/lang-less": ["@codemirror/lang-less@6.0.2", "", { "dependencies": { "@codemirror/lang-css": "^6.2.0", "@codemirror/language": "^6.0.0", "@lezer/common": "^1.2.0", "@lezer/highlight": "^1.0.0", "@lezer/lr": "^1.0.0" } }, "sha512-EYdQTG22V+KUUk8Qq582g7FMnCZeEHsyuOJisHRft/mQ+ZSZ2w51NupvDUHiqtsOy7It5cHLPGfHQLpMh9bqpQ=="], + + "@codemirror/lang-liquid": ["@codemirror/lang-liquid@6.3.2", "", { "dependencies": { "@codemirror/autocomplete": "^6.0.0", "@codemirror/lang-html": "^6.0.0", "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.0.0", "@lezer/common": "^1.0.0", "@lezer/highlight": "^1.0.0", "@lezer/lr": "^1.3.1" } }, "sha512-6PDVU3ZnfeYyz1at1E/ttorErZvZFXXt1OPhtfe1EZJ2V2iDFa0CwPqPgG5F7NXN0yONGoBogKmFAafKTqlwIw=="], + + "@codemirror/lang-markdown": ["@codemirror/lang-markdown@6.5.0", "", { "dependencies": { "@codemirror/autocomplete": "^6.7.1", "@codemirror/lang-html": "^6.0.0", "@codemirror/language": "^6.3.0", "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.0.0", "@lezer/common": "^1.2.1", "@lezer/markdown": "^1.0.0" } }, "sha512-0K40bZ35jpHya6FriukbgaleaqzBLZfOh7HuzqbMxBXkbYMJDxfF39c23xOgxFezR+3G+tR2/Mup+Xk865OMvw=="], + + "@codemirror/lang-php": ["@codemirror/lang-php@6.0.2", "", { "dependencies": { "@codemirror/lang-html": "^6.0.0", "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.0.0", "@lezer/common": "^1.0.0", "@lezer/php": "^1.0.0" } }, "sha512-ZKy2v1n8Fc8oEXj0Th0PUMXzQJ0AIR6TaZU+PbDHExFwdu+guzOA4jmCHS1Nz4vbFezwD7LyBdDnddSJeScMCA=="], + + "@codemirror/lang-python": ["@codemirror/lang-python@6.2.1", "", { "dependencies": { "@codemirror/autocomplete": "^6.3.2", "@codemirror/language": "^6.8.0", "@codemirror/state": "^6.0.0", "@lezer/common": "^1.2.1", "@lezer/python": "^1.1.4" } }, "sha512-IRjC8RUBhn9mGR9ywecNhB51yePWCGgvHfY1lWN/Mrp3cKuHr0isDKia+9HnvhiWNnMpbGhWrkhuWOc09exRyw=="], + + "@codemirror/lang-rust": ["@codemirror/lang-rust@6.0.2", "", { "dependencies": { "@codemirror/language": "^6.0.0", "@lezer/rust": "^1.0.0" } }, "sha512-EZaGjCUegtiU7kSMvOfEZpaCReowEf3yNidYu7+vfuGTm9ow4mthAparY5hisJqOHmJowVH3Upu+eJlUji6qqA=="], + + "@codemirror/lang-sass": ["@codemirror/lang-sass@6.0.2", "", { "dependencies": { "@codemirror/lang-css": "^6.2.0", "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.0.0", "@lezer/common": "^1.0.2", "@lezer/sass": "^1.0.0" } }, "sha512-l/bdzIABvnTo1nzdY6U+kPAC51czYQcOErfzQ9zSm9D8GmNPD0WTW8st/CJwBTPLO8jlrbyvlSEcN20dc4iL0Q=="], + + "@codemirror/lang-sql": ["@codemirror/lang-sql@6.10.0", "", { "dependencies": { "@codemirror/autocomplete": "^6.0.0", "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.0.0", "@lezer/common": "^1.2.0", "@lezer/highlight": "^1.0.0", "@lezer/lr": "^1.0.0" } }, "sha512-6ayPkEd/yRw0XKBx5uAiToSgGECo/GY2NoJIHXIIQh1EVwLuKoU8BP/qK0qH5NLXAbtJRLuT73hx7P9X34iO4w=="], + + "@codemirror/lang-vue": ["@codemirror/lang-vue@0.1.3", "", { "dependencies": { "@codemirror/lang-html": "^6.0.0", "@codemirror/lang-javascript": "^6.1.2", "@codemirror/language": "^6.0.0", "@lezer/common": "^1.2.0", "@lezer/highlight": "^1.0.0", "@lezer/lr": "^1.3.1" } }, "sha512-QSKdtYTDRhEHCfo5zOShzxCmqKJvgGrZwDQSdbvCRJ5pRLWBS7pD/8e/tH44aVQT6FKm0t6RVNoSUWHOI5vNug=="], + + "@codemirror/lang-wast": ["@codemirror/lang-wast@6.0.2", "", { "dependencies": { "@codemirror/language": "^6.0.0", "@lezer/common": "^1.2.0", "@lezer/highlight": "^1.0.0", "@lezer/lr": "^1.0.0" } }, "sha512-Imi2KTpVGm7TKuUkqyJ5NRmeFWF7aMpNiwHnLQe0x9kmrxElndyH0K6H/gXtWwY6UshMRAhpENsgfpSwsgmC6Q=="], + + "@codemirror/lang-xml": ["@codemirror/lang-xml@6.1.0", "", { "dependencies": { "@codemirror/autocomplete": "^6.0.0", "@codemirror/language": "^6.4.0", "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.0.0", "@lezer/common": "^1.0.0", "@lezer/xml": "^1.0.0" } }, "sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg=="], + + "@codemirror/lang-yaml": ["@codemirror/lang-yaml@6.1.3", "", { "dependencies": { "@codemirror/autocomplete": "^6.0.0", "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.0.0", "@lezer/common": "^1.2.0", "@lezer/highlight": "^1.2.0", "@lezer/lr": "^1.0.0", "@lezer/yaml": "^1.0.0" } }, "sha512-AZ8DJBuXGVHybpBQhmZtgew5//4hv3tdkXnr3vDmOUMJRuB6vn/uuwtmTOTlqEaQFg3hQSVeA90NmvIQyUV6FQ=="], + + "@codemirror/language": ["@codemirror/language@6.12.3", "", { "dependencies": { "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.23.0", "@lezer/common": "^1.5.0", "@lezer/highlight": "^1.0.0", "@lezer/lr": "^1.0.0", "style-mod": "^4.0.0" } }, "sha512-QwCZW6Tt1siP37Jet9Tb02Zs81TQt6qQrZR2H+eGMcFsL1zMrk2/b9CLC7/9ieP1fjIUMgviLWMmgiHoJrj+ZA=="], + + "@codemirror/language-data": ["@codemirror/language-data@6.5.2", "", { "dependencies": { "@codemirror/lang-angular": "^0.1.0", "@codemirror/lang-cpp": "^6.0.0", "@codemirror/lang-css": "^6.0.0", "@codemirror/lang-go": "^6.0.0", "@codemirror/lang-html": "^6.0.0", "@codemirror/lang-java": "^6.0.0", "@codemirror/lang-javascript": "^6.0.0", "@codemirror/lang-jinja": "^6.0.0", "@codemirror/lang-json": "^6.0.0", "@codemirror/lang-less": "^6.0.0", "@codemirror/lang-liquid": "^6.0.0", "@codemirror/lang-markdown": "^6.0.0", "@codemirror/lang-php": "^6.0.0", "@codemirror/lang-python": "^6.0.0", "@codemirror/lang-rust": "^6.0.0", "@codemirror/lang-sass": "^6.0.0", "@codemirror/lang-sql": "^6.0.0", "@codemirror/lang-vue": "^0.1.1", "@codemirror/lang-wast": "^6.0.0", "@codemirror/lang-xml": "^6.0.0", "@codemirror/lang-yaml": "^6.0.0", "@codemirror/language": "^6.0.0", "@codemirror/legacy-modes": "^6.4.0" } }, "sha512-CPkWBKrNS8stYbEU5kwBwTf3JB1kghlbh4FSAwzGW2TEscdeHHH4FGysREW86Mqnj3Qn09s0/6Ea/TutmoTobg=="], + + "@codemirror/legacy-modes": ["@codemirror/legacy-modes@6.5.2", "", { "dependencies": { "@codemirror/language": "^6.0.0" } }, "sha512-/jJbwSTazlQEDOQw2FJ8LEEKVS72pU0lx6oM54kGpL8t/NJ2Jda3CZ4pcltiKTdqYSRk3ug1B3pil1gsjA6+8Q=="], + + "@codemirror/lint": ["@codemirror/lint@6.9.5", "", { "dependencies": { "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.35.0", "crelt": "^1.0.5" } }, "sha512-GElsbU9G7QT9xXhpUg1zWGmftA/7jamh+7+ydKRuT0ORpWS3wOSP0yT1FOlIZa7mIJjpVPipErsyvVqB9cfTFA=="], + + "@codemirror/search": ["@codemirror/search@6.7.0", "", { "dependencies": { "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.37.0", "crelt": "^1.0.5" } }, "sha512-ZvGm99wc/s2cITtMT15LFdn8aH/aS+V+DqyGq/N5ZlV5vWtH+nILvC2nw0zX7ByNoHHDZ2IxxdW38O0tc5nVHg=="], + + "@codemirror/state": ["@codemirror/state@6.6.0", "", { "dependencies": { "@marijn/find-cluster-break": "^1.0.0" } }, "sha512-4nbvra5R5EtiCzr9BTHiTLc+MLXK2QGiAVYMyi8PkQd3SR+6ixar/Q/01Fa21TBIDOZXgeWV4WppsQolSreAPQ=="], + + "@codemirror/theme-one-dark": ["@codemirror/theme-one-dark@6.1.3", "", { "dependencies": { "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.0.0", "@lezer/highlight": "^1.0.0" } }, "sha512-NzBdIvEJmx6fjeremiGp3t/okrLPYT0d9orIc7AFun8oZcRk58aejkqhv6spnz4MLAevrKNPMQYXEWMg4s+sKA=="], + + "@codemirror/view": ["@codemirror/view@6.41.1", "", { "dependencies": { "@codemirror/state": "^6.6.0", "crelt": "^1.0.6", "style-mod": "^4.1.0", "w3c-keyname": "^2.2.4" } }, "sha512-ToDnWKbBnke+ZLrP6vgTTDScGi5H37YYuZGniQaBzxMVdtCxMrslsmtnOvbPZk4RX9bvkQqnWR/WS/35tJA0qg=="], + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.21.5", "", { "os": "aix", "cpu": "ppc64" }, "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ=="], "@esbuild/android-arm": ["@esbuild/android-arm@0.21.5", "", { "os": "android", "cpu": "arm" }, "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg=="], @@ -141,6 +210,12 @@ "@esbuild/win32-x64": ["@esbuild/win32-x64@0.21.5", "", { "os": "win32", "cpu": "x64" }, "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw=="], + "@floating-ui/core": ["@floating-ui/core@1.7.5", "", { "dependencies": { "@floating-ui/utils": "^0.2.11" } }, "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ=="], + + "@floating-ui/dom": ["@floating-ui/dom@1.7.6", "", { "dependencies": { "@floating-ui/core": "^1.7.5", "@floating-ui/utils": "^0.2.11" } }, "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ=="], + + "@floating-ui/utils": ["@floating-ui/utils@0.2.11", "", {}, "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg=="], + "@hono/node-server": ["@hono/node-server@1.19.14", "", { "peerDependencies": { "hono": "^4" } }, "sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw=="], "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], @@ -153,12 +228,94 @@ "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], + "@lezer/common": ["@lezer/common@1.5.2", "", {}, "sha512-sxQE460fPZyU3sdc8lafxiPwJHBzZRy/udNFynGQky1SePYBdhkBl1kOagA9uT3pxR8K09bOrmTUqA9wb/PjSQ=="], + + "@lezer/cpp": ["@lezer/cpp@1.1.5", "", { "dependencies": { "@lezer/common": "^1.2.0", "@lezer/highlight": "^1.0.0", "@lezer/lr": "^1.0.0" } }, "sha512-DIhSXmYtJKLehrjzDFN+2cPt547ySQ41nA8yqcDf/GxMc+YM736xqltFkvADL2M0VebU5I+3+4ks2Vv+Kyq3Aw=="], + + "@lezer/css": ["@lezer/css@1.3.3", "", { "dependencies": { "@lezer/common": "^1.2.0", "@lezer/highlight": "^1.0.0", "@lezer/lr": "^1.3.0" } }, "sha512-RzBo8r+/6QJeow7aPHIpGVIH59xTcJXp399820gZoMo9noQDRVpJLheIBUicYwKcsbOYoBRoLZlf2720dG/4Tg=="], + + "@lezer/go": ["@lezer/go@1.0.1", "", { "dependencies": { "@lezer/common": "^1.2.0", "@lezer/highlight": "^1.0.0", "@lezer/lr": "^1.3.0" } }, "sha512-xToRsYxwsgJNHTgNdStpcvmbVuKxTapV0dM0wey1geMMRc9aggoVyKgzYp41D2/vVOx+Ii4hmE206kvxIXBVXQ=="], + + "@lezer/highlight": ["@lezer/highlight@1.2.3", "", { "dependencies": { "@lezer/common": "^1.3.0" } }, "sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g=="], + + "@lezer/html": ["@lezer/html@1.3.13", "", { "dependencies": { "@lezer/common": "^1.2.0", "@lezer/highlight": "^1.0.0", "@lezer/lr": "^1.0.0" } }, "sha512-oI7n6NJml729m7pjm9lvLvmXbdoMoi2f+1pwSDJkl9d68zGr7a9Btz8NdHTGQZtW2DA25ybeuv/SyDb9D5tseg=="], + + "@lezer/java": ["@lezer/java@1.1.3", "", { "dependencies": { "@lezer/common": "^1.2.0", "@lezer/highlight": "^1.0.0", "@lezer/lr": "^1.0.0" } }, "sha512-yHquUfujwg6Yu4Fd1GNHCvidIvJwi/1Xu2DaKl/pfWIA2c1oXkVvawH3NyXhCaFx4OdlYBVX5wvz2f7Aoa/4Xw=="], + + "@lezer/javascript": ["@lezer/javascript@1.5.4", "", { "dependencies": { "@lezer/common": "^1.2.0", "@lezer/highlight": "^1.1.3", "@lezer/lr": "^1.3.0" } }, "sha512-vvYx3MhWqeZtGPwDStM2dwgljd5smolYD2lR2UyFcHfxbBQebqx8yjmFmxtJ/E6nN6u1D9srOiVWm3Rb4tmcUA=="], + + "@lezer/json": ["@lezer/json@1.0.3", "", { "dependencies": { "@lezer/common": "^1.2.0", "@lezer/highlight": "^1.0.0", "@lezer/lr": "^1.0.0" } }, "sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ=="], + + "@lezer/lr": ["@lezer/lr@1.4.10", "", { "dependencies": { "@lezer/common": "^1.0.0" } }, "sha512-rnCpTIBafOx4mRp43xOxDJbFipJm/c0cia/V5TiGlhmMa+wsSdoGmUN3w5Bqrks/09Q/D4tNAmWaT8p6NRi77A=="], + + "@lezer/markdown": ["@lezer/markdown@1.6.3", "", { "dependencies": { "@lezer/common": "^1.5.0", "@lezer/highlight": "^1.0.0" } }, "sha512-jpGm5Ps+XErS+xA4urw7ogEGkeZOahVQF21Z6oECF0sj+2liwZopd2+I8uH5I/vZsRuuze3OxBREIANLf6KKUw=="], + + "@lezer/php": ["@lezer/php@1.0.5", "", { "dependencies": { "@lezer/common": "^1.2.0", "@lezer/highlight": "^1.0.0", "@lezer/lr": "^1.1.0" } }, "sha512-W7asp9DhM6q0W6DYNwIkLSKOvxlXRrif+UXBMxzsJUuqmhE7oVU+gS3THO4S/Puh7Xzgm858UNaFi6dxTP8dJA=="], + + "@lezer/python": ["@lezer/python@1.1.18", "", { "dependencies": { "@lezer/common": "^1.2.0", "@lezer/highlight": "^1.0.0", "@lezer/lr": "^1.0.0" } }, "sha512-31FiUrU7z9+d/ElGQLJFXl+dKOdx0jALlP3KEOsGTex8mvj+SoE1FgItcHWK/axkxCHGUSpqIHt6JAWfWu9Rhg=="], + + "@lezer/rust": ["@lezer/rust@1.0.2", "", { "dependencies": { "@lezer/common": "^1.2.0", "@lezer/highlight": "^1.0.0", "@lezer/lr": "^1.0.0" } }, "sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg=="], + + "@lezer/sass": ["@lezer/sass@1.1.0", "", { "dependencies": { "@lezer/common": "^1.2.0", "@lezer/highlight": "^1.0.0", "@lezer/lr": "^1.0.0" } }, "sha512-3mMGdCTUZ/84ArHOuXWQr37pnf7f+Nw9ycPUeKX+wu19b7pSMcZGLbaXwvD2APMBDOGxPmpK/O6S1v1EvLoqgQ=="], + + "@lezer/xml": ["@lezer/xml@1.0.6", "", { "dependencies": { "@lezer/common": "^1.2.0", "@lezer/highlight": "^1.0.0", "@lezer/lr": "^1.0.0" } }, "sha512-CdDwirL0OEaStFue/66ZmFSeppuL6Dwjlk8qk153mSQwiSH/Dlri4GNymrNWnUmPl2Um7QfV1FO9KFUyX3Twww=="], + + "@lezer/yaml": ["@lezer/yaml@1.0.4", "", { "dependencies": { "@lezer/common": "^1.2.0", "@lezer/highlight": "^1.0.0", "@lezer/lr": "^1.4.0" } }, "sha512-2lrrHqxalACEbxIbsjhqGpSW8kWpUKuY6RHgnSAFZa6qK62wvnPxA8hGOwOoDbwHcOFs5M4o27mjGu+P7TvBmw=="], + + "@marijn/find-cluster-break": ["@marijn/find-cluster-break@1.0.2", "", {}, "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g=="], + + "@milkdown/components": ["@milkdown/components@7.20.0", "", { "dependencies": { "@floating-ui/dom": "^1.5.1", "@milkdown/core": "7.20.0", "@milkdown/ctx": "7.20.0", "@milkdown/exception": "7.20.0", "@milkdown/plugin-tooltip": "7.20.0", "@milkdown/preset-commonmark": "7.20.0", "@milkdown/preset-gfm": "7.20.0", "@milkdown/prose": "7.20.0", "@milkdown/transformer": "7.20.0", "@milkdown/utils": "7.20.0", "@types/lodash-es": "^4.17.12", "clsx": "^2.0.0", "dompurify": "^3.2.5", "lodash-es": "^4.17.21", "nanoid": "^5.0.9", "unist-util-visit": "^5.0.0", "vue": "^3.5.20" }, "peerDependencies": { "@codemirror/language": "^6", "@codemirror/state": "^6", "@codemirror/view": "^6" } }, "sha512-Qn91/oZugGjf17ARE51nbEsH4YklZQaomRSsfxOAtIcwGEJe5osq+zhhKGtgAYFfUb6rU3W86Pe4XDlXN6vFjg=="], + + "@milkdown/core": ["@milkdown/core@7.20.0", "", { "dependencies": { "@milkdown/ctx": "7.20.0", "@milkdown/exception": "7.20.0", "@milkdown/prose": "7.20.0", "@milkdown/transformer": "7.20.0", "remark-parse": "^11.0.0", "remark-stringify": "^11.0.0", "unified": "^11.0.3" } }, "sha512-X9LaUcIR4Y2oiY2J5tslavlPVOwIB3X8/9z1bOeBjlIPtr+urbkY7YEX86EeLV9LyRQ3+t+jXaLMCIjW1wsV6w=="], + + "@milkdown/crepe": ["@milkdown/crepe@7.20.0", "", { "dependencies": { "@codemirror/commands": "^6.2.4", "@codemirror/language": "^6.10.1", "@codemirror/language-data": "^6.3.1", "@codemirror/state": "^6.4.1", "@codemirror/theme-one-dark": "^6.1.2", "@codemirror/view": "^6.16.0", "@milkdown/kit": "7.20.0", "@types/lodash-es": "^4.17.12", "clsx": "^2.0.0", "codemirror": "^6.0.1", "katex": "^0.16.0", "lodash-es": "^4.17.21", "prosemirror-virtual-cursor": "^0.4.2", "remark-math": "^6.0.0", "unist-util-visit": "^5.0.0", "vue": "^3.5.20" } }, "sha512-KT+oFF6Q7mI41z01c9v/wUUCyQ2f908TgOsa6mwi25yuxnxQxISZFCjRvlh0sc9p9D3CrMeuJWGCN6DialQdig=="], + + "@milkdown/ctx": ["@milkdown/ctx@7.20.0", "", { "dependencies": { "@milkdown/exception": "7.20.0" } }, "sha512-LUK4xdsUngY2xCCvPTyHPifjAknJ5rE6VBjgsP+LySIUKeFUrhqzo/zz2vaOODKzm3DBMIhpZAoW3MAqxoMGIQ=="], + + "@milkdown/exception": ["@milkdown/exception@7.20.0", "", {}, "sha512-u8EL7rbqgrWrPpkDhrxUYXauw2DO52JUQmuokrUZvqezmflo7pgIDCr+Rk6AQslzB4Xw+n9eYik5rXX3RXC7Qg=="], + + "@milkdown/kit": ["@milkdown/kit@7.20.0", "", { "dependencies": { "@milkdown/components": "7.20.0", "@milkdown/core": "7.20.0", "@milkdown/ctx": "7.20.0", "@milkdown/plugin-block": "7.20.0", "@milkdown/plugin-clipboard": "7.20.0", "@milkdown/plugin-cursor": "7.20.0", "@milkdown/plugin-history": "7.20.0", "@milkdown/plugin-indent": "7.20.0", "@milkdown/plugin-listener": "7.20.0", "@milkdown/plugin-slash": "7.20.0", "@milkdown/plugin-tooltip": "7.20.0", "@milkdown/plugin-trailing": "7.20.0", "@milkdown/plugin-upload": "7.20.0", "@milkdown/preset-commonmark": "7.20.0", "@milkdown/preset-gfm": "7.20.0", "@milkdown/prose": "7.20.0", "@milkdown/transformer": "7.20.0", "@milkdown/utils": "7.20.0" } }, "sha512-X74KMa0tcDAAMOE9aFtBRN+RCdD/HMXor5YN18e7d0pe4a65MGFklUGlcg1U6zEfeMMYeC3msNvMKLMwk3O5RA=="], + + "@milkdown/plugin-block": ["@milkdown/plugin-block@7.20.0", "", { "dependencies": { "@floating-ui/dom": "^1.5.1", "@milkdown/core": "7.20.0", "@milkdown/ctx": "7.20.0", "@milkdown/prose": "7.20.0", "@milkdown/utils": "7.20.0", "@types/lodash-es": "^4.17.12", "lodash-es": "^4.17.21" } }, "sha512-jIXfzJ8Zje+6+9ZwQuVmNeYE8KfzqL9YJ/YdMvWQIEiKhy2x9pZMAkkufgmUlq1aouxOV+gk5fX+ovxzEzfSrA=="], + + "@milkdown/plugin-clipboard": ["@milkdown/plugin-clipboard@7.20.0", "", { "dependencies": { "@milkdown/core": "7.20.0", "@milkdown/ctx": "7.20.0", "@milkdown/prose": "7.20.0", "@milkdown/utils": "7.20.0" } }, "sha512-PyokNvwgWcO6/I/0LxDRnATpnxvs5upFRlp6eO8PhjwBFZftCIU6D15Wg4JAxwW7Y0NyTWfViWjc9TwiBd6KOQ=="], + + "@milkdown/plugin-cursor": ["@milkdown/plugin-cursor@7.20.0", "", { "dependencies": { "@milkdown/ctx": "7.20.0", "@milkdown/prose": "7.20.0", "@milkdown/utils": "7.20.0", "prosemirror-drop-indicator": "^0.1.0" } }, "sha512-goCPwUARBzGV6Hvnr3P57Bj5TnyFjYIfDFLvgWTIlsm/dR2Wr4Syy4HDOtaKO9YL/VtZ8gtiZVgeo0vhc4CzMA=="], + + "@milkdown/plugin-history": ["@milkdown/plugin-history@7.20.0", "", { "dependencies": { "@milkdown/core": "7.20.0", "@milkdown/ctx": "7.20.0", "@milkdown/prose": "7.20.0", "@milkdown/utils": "7.20.0" } }, "sha512-lqOYQBrxKj4px/i0Cav3zRkCArwnkv8o7fGMh3NtnUXMLSE7/xojK5GFPS4EaS/UKK7/+i1oV2+HRA6+6Ezy7w=="], + + "@milkdown/plugin-indent": ["@milkdown/plugin-indent@7.20.0", "", { "dependencies": { "@milkdown/ctx": "7.20.0", "@milkdown/prose": "7.20.0", "@milkdown/utils": "7.20.0" } }, "sha512-KfdIztQMuHv4Rx1JmSQe2vooN4+Zm7MhjQkNolGyiI7BPZbu855hVIC/s96x3Dk04tkbb+M/i9MJhxCazxfd6Q=="], + + "@milkdown/plugin-listener": ["@milkdown/plugin-listener@7.20.0", "", { "dependencies": { "@milkdown/core": "7.20.0", "@milkdown/ctx": "7.20.0", "@milkdown/prose": "7.20.0", "@types/lodash-es": "^4.17.12", "lodash-es": "^4.17.21" } }, "sha512-Sj+B63JfM3NVVS3uGXTPkoz8xx8MQYrR28pI9AaqX5q60tvCvOJw9E1ODvSsBEjeqnN4kablDthIugLlBhOlwQ=="], + + "@milkdown/plugin-slash": ["@milkdown/plugin-slash@7.20.0", "", { "dependencies": { "@floating-ui/dom": "^1.5.1", "@milkdown/ctx": "7.20.0", "@milkdown/prose": "7.20.0", "@milkdown/utils": "7.20.0", "@types/lodash-es": "^4.17.12", "lodash-es": "^4.17.21" } }, "sha512-Qm3/ZxkGYd5XN+J/X91lGGu7SBzuQBOTOLjuJdg4qDBZmdEHlGojB+5BhCSAMB3WGyCpQQGbSqKOelUrXtj68w=="], + + "@milkdown/plugin-tooltip": ["@milkdown/plugin-tooltip@7.20.0", "", { "dependencies": { "@floating-ui/dom": "^1.5.1", "@milkdown/ctx": "7.20.0", "@milkdown/prose": "7.20.0", "@milkdown/utils": "7.20.0", "@types/lodash-es": "^4.17.12", "lodash-es": "^4.17.21" } }, "sha512-BVaXorpmA6ZAS3+xv0rgrtjV1h2K39G5Z9Wun4RxT1YXJTTbzIuFQ3hwBAGLjLMwTsosp7YhRLaMJJAC0jEY5Q=="], + + "@milkdown/plugin-trailing": ["@milkdown/plugin-trailing@7.20.0", "", { "dependencies": { "@milkdown/ctx": "7.20.0", "@milkdown/prose": "7.20.0", "@milkdown/utils": "7.20.0" } }, "sha512-AxDeMSAZfj0Er7RYLvLRf6FKdQtLVmotxML6Se6zgqIa++bFeIXCU22/FC+9r/6d1eUtraTva9ez5K2qPy8qig=="], + + "@milkdown/plugin-upload": ["@milkdown/plugin-upload@7.20.0", "", { "dependencies": { "@milkdown/core": "7.20.0", "@milkdown/ctx": "7.20.0", "@milkdown/exception": "7.20.0", "@milkdown/prose": "7.20.0", "@milkdown/utils": "7.20.0" } }, "sha512-g3UQrD2zfpm86r3BcBDfOdEAyQHhay1nf5wUQgNf4zn6IgRttfEF8tosQsL1B/WBnZB05hH5scLWo4DR2bFhUw=="], + + "@milkdown/preset-commonmark": ["@milkdown/preset-commonmark@7.20.0", "", { "dependencies": { "@milkdown/core": "7.20.0", "@milkdown/ctx": "7.20.0", "@milkdown/exception": "7.20.0", "@milkdown/prose": "7.20.0", "@milkdown/transformer": "7.20.0", "@milkdown/utils": "7.20.0", "remark-inline-links": "^7.0.0", "unist-util-visit": "^5.0.0", "unist-util-visit-parents": "^6.0.1" } }, "sha512-+mPcONXfdjaXdx8JMxDIOT3PWHfy5vewK8iY8j8bUiYD8Iw7YfyWTUh9JHOf4vmOpiKGCJd7+iz7e93u95bQRw=="], + + "@milkdown/preset-gfm": ["@milkdown/preset-gfm@7.20.0", "", { "dependencies": { "@milkdown/core": "7.20.0", "@milkdown/ctx": "7.20.0", "@milkdown/exception": "7.20.0", "@milkdown/preset-commonmark": "7.20.0", "@milkdown/prose": "7.20.0", "@milkdown/transformer": "7.20.0", "@milkdown/utils": "7.20.0", "prosemirror-safari-ime-span": "^1.0.1", "remark-gfm": "^4.0.1" } }, "sha512-ulErTWDqrGYYqto4kQO9dPTMRp+q44pdRTPW4MTeiSO7eJ6JIBUKSqtCm1zf7MX6nZPaPhuscmg5CU2moXOwxQ=="], + + "@milkdown/prose": ["@milkdown/prose@7.20.0", "", { "dependencies": { "@milkdown/exception": "7.20.0", "prosemirror-changeset": "^2.3.1", "prosemirror-commands": "^1.7.1", "prosemirror-dropcursor": "^1.8.2", "prosemirror-gapcursor": "^1.4.0", "prosemirror-history": "^1.5.0", "prosemirror-inputrules": "^1.5.1", "prosemirror-keymap": "^1.2.3", "prosemirror-model": "^1.25.4", "prosemirror-schema-list": "^1.5.1", "prosemirror-state": "^1.4.4", "prosemirror-tables": "^1.8.1", "prosemirror-transform": "^1.10.5", "prosemirror-view": "^1.41.3" } }, "sha512-Qe6jmKcXsjOfpk8duDFdkLCEo5044L8HSyKVn7ewAe7XJJPUM6bPQaP130UAznq75/+TiKxFCzurcrBO3LzNRg=="], + + "@milkdown/react": ["@milkdown/react@7.20.0", "", { "dependencies": { "@milkdown/crepe": "7.20.0", "@milkdown/kit": "7.20.0" }, "peerDependencies": { "react": "*", "react-dom": "*" } }, "sha512-uuMuMfTmp2SZJtmKhX+tmVkJNasKnzxlYoHtUwjxuZcy90cWQVYpGXnmwpFgjcXY38lMLsAOLx2jjXrqe7ZOuQ=="], + + "@milkdown/transformer": ["@milkdown/transformer@7.20.0", "", { "dependencies": { "@milkdown/exception": "7.20.0", "@milkdown/prose": "7.20.0", "remark": "^15.0.1", "unified": "^11.0.3" } }, "sha512-h7KGFr1o5AYwc+hEfnA3Dldo4jRrYOB/7KExaqelcjUz++KYI/9LXMOsV7CpgjtLI3Xtf2IIRTZND1+p2nsOaw=="], + + "@milkdown/utils": ["@milkdown/utils@7.20.0", "", { "dependencies": { "@milkdown/core": "7.20.0", "@milkdown/ctx": "7.20.0", "@milkdown/exception": "7.20.0", "@milkdown/prose": "7.20.0", "@milkdown/transformer": "7.20.0", "nanoid": "^5.0.9" } }, "sha512-ciEhtLKhIW/Kaz/NRE5DUXVoMCdenn7S4mClrO7sZ/nXtmObnk3okJzSDnamQoDOcLOIbpOu1V3E1Btkvc5x9w=="], + "@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@1.29.0", "", { "dependencies": { "@hono/node-server": "^1.19.9", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", "content-type": "^1.0.5", "cors": "^2.8.5", "cross-spawn": "^7.0.5", "eventsource": "^3.0.2", "eventsource-parser": "^3.0.0", "express": "^5.2.1", "express-rate-limit": "^8.2.1", "hono": "^4.11.4", "jose": "^6.1.3", "json-schema-typed": "^8.0.2", "pkce-challenge": "^5.0.0", "raw-body": "^3.0.0", "zod": "^3.25 || ^4.0", "zod-to-json-schema": "^3.25.1" }, "peerDependencies": { "@cfworker/json-schema": "^4.1.1" }, "optionalPeers": ["@cfworker/json-schema"] }, "sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ=="], "@monaco-editor/loader": ["@monaco-editor/loader@1.7.0", "", { "dependencies": { "state-local": "^1.0.6" } }, "sha512-gIwR1HrJrrx+vfyOhYmCZ0/JcWqG5kbfG7+d3f/C1LXk2EvzAbHSg3MQ5lO2sMlo9izoAZ04shohfKLVT6crVA=="], "@monaco-editor/react": ["@monaco-editor/react@4.7.0", "", { "dependencies": { "@monaco-editor/loader": "^1.5.0" }, "peerDependencies": { "monaco-editor": ">= 0.25.0 < 1", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-cyzXQCtO47ydzxpQtCGSQGOC8Gk3ZUeBXFAxD+CWXYFo5OqZyZUonFl0DwUlTyAfRHntBfw2p3w4s9R6oe1eCA=="], + "@ocavue/utils": ["@ocavue/utils@1.6.0", "", {}, "sha512-8W3q1hxx9qFdrYgPtbElllG/tqYkO/dMhlRUiqasO0SuDFTj78azSQjhIrBTFWxlBPPsSZN6zXYHmb3RwN2Jtg=="], + "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-beta.27", "", {}, "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA=="], "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.60.2", "", { "os": "android", "cpu": "arm" }, "sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw=="], @@ -255,6 +412,12 @@ "@types/hast": ["@types/hast@3.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ=="], + "@types/katex": ["@types/katex@0.16.8", "", {}, "sha512-trgaNyfU+Xh2Tc+ABIb44a5AYUpicB3uwirOioeOkNPPbmgRNtcWyDeeFRzjPZENO9Vq8gvVqfhaaXWLlevVwg=="], + + "@types/lodash": ["@types/lodash@4.17.24", "", {}, "sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ=="], + + "@types/lodash-es": ["@types/lodash-es@4.17.12", "", { "dependencies": { "@types/lodash": "*" } }, "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ=="], + "@types/mdast": ["@types/mdast@4.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA=="], "@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="], @@ -277,6 +440,24 @@ "@vitejs/plugin-react": ["@vitejs/plugin-react@4.7.0", "", { "dependencies": { "@babel/core": "^7.28.0", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", "@rolldown/pluginutils": "1.0.0-beta.27", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" }, "peerDependencies": { "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" } }, "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA=="], + "@vue/compiler-core": ["@vue/compiler-core@3.5.33", "", { "dependencies": { "@babel/parser": "^7.29.2", "@vue/shared": "3.5.33", "entities": "^7.0.1", "estree-walker": "^2.0.2", "source-map-js": "^1.2.1" } }, "sha512-3PZLQwFw4Za3TC8t0FvTy3wI16Kt+pmwcgNZca4Pj9iWL2E72a/gZlpBtAJvEdDMdCxdG/qq0C7PN0bsJuv0Rw=="], + + "@vue/compiler-dom": ["@vue/compiler-dom@3.5.33", "", { "dependencies": { "@vue/compiler-core": "3.5.33", "@vue/shared": "3.5.33" } }, "sha512-PXq0yrfCLzzL07rbXO4awtXY1Z06LG2eu6Adg3RJFa/j3Cii217XxxLXG22N330gw7GmALCY0Z8RgXEviwgpjA=="], + + "@vue/compiler-sfc": ["@vue/compiler-sfc@3.5.33", "", { "dependencies": { "@babel/parser": "^7.29.2", "@vue/compiler-core": "3.5.33", "@vue/compiler-dom": "3.5.33", "@vue/compiler-ssr": "3.5.33", "@vue/shared": "3.5.33", "estree-walker": "^2.0.2", "magic-string": "^0.30.21", "postcss": "^8.5.10", "source-map-js": "^1.2.1" } }, "sha512-UTUvRO9cY+rROrx/pvN9P5Z7FgA6QGfokUCfhQE4EnmUj3rVnK+CHI0LsEO1pg+I7//iRYMUfcNcCPe7tg0CoA=="], + + "@vue/compiler-ssr": ["@vue/compiler-ssr@3.5.33", "", { "dependencies": { "@vue/compiler-dom": "3.5.33", "@vue/shared": "3.5.33" } }, "sha512-IErjYdnj1qIupG5xxiVIYiiRvDhGWV4zuh/RCrwfYpuL+HWQzeU6lCk/nF9r7olWMnjKxCAkOctT2qFWFkzb1A=="], + + "@vue/reactivity": ["@vue/reactivity@3.5.33", "", { "dependencies": { "@vue/shared": "3.5.33" } }, "sha512-p8UfIqyIhb0rYGlSgSBV+lPhF2iUSBcRy7enhTmPqKWadHy9kcOFYF1AejYBP9P+avnd3OBbD49DU4pLWX/94A=="], + + "@vue/runtime-core": ["@vue/runtime-core@3.5.33", "", { "dependencies": { "@vue/reactivity": "3.5.33", "@vue/shared": "3.5.33" } }, "sha512-UpFF45RI9//a7rvq7RdOQblb4tup7hHG9QsmIrxkFQLzQ7R8/iNQ5LE15NhLZ1/WcHMU2b47u6P33CPUelHyIQ=="], + + "@vue/runtime-dom": ["@vue/runtime-dom@3.5.33", "", { "dependencies": { "@vue/reactivity": "3.5.33", "@vue/runtime-core": "3.5.33", "@vue/shared": "3.5.33", "csstype": "^3.2.3" } }, "sha512-IOxMsAOwquhfITgmOgaPYl7/j8gKUxUFoflRc+u4LxyD3+783xne8vNta1PONVCvCV9A0w7hkyEepINDqfO0tw=="], + + "@vue/server-renderer": ["@vue/server-renderer@3.5.33", "", { "dependencies": { "@vue/compiler-ssr": "3.5.33", "@vue/shared": "3.5.33" }, "peerDependencies": { "vue": "3.5.33" } }, "sha512-0xylq/8/h44lVG0pZFknv1XIdEgymq2E9n59uTWJBG+dIgiT0TMCSsxrN7nO16Z0MU0MPjFcguBbZV8Itk52Hw=="], + + "@vue/shared": ["@vue/shared@3.5.33", "", {}, "sha512-5vR2QIlmaLG77Ygd4pMP6+SGQ5yox9VhtnbDWTy9DzMzdmeLxZ1QqxrywEZ9sa1AVubfIJyaCG3ytyWU81ufcQ=="], + "@xterm/addon-fit": ["@xterm/addon-fit@0.11.0", "", {}, "sha512-jYcgT6xtVYhnhgxh3QgYDnnNMYTcf8ElbxxFzX0IZo+vabQqSPAjC3c1wJrKB5E19VwQei89QCiZZP86DCPF7g=="], "@xterm/xterm": ["@xterm/xterm@6.0.0", "", {}, "sha512-TQwDdQGtwwDt+2cgKDLn0IRaSxYu1tSUjgKarSDkUM0ZNiSRXFpjxEsvc/Zgc5kq5omJ+V0a8/kIM2WD3sMOYg=="], @@ -325,13 +506,17 @@ "clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="], + "codemirror": ["codemirror@6.0.2", "", { "dependencies": { "@codemirror/autocomplete": "^6.0.0", "@codemirror/commands": "^6.0.0", "@codemirror/language": "^6.0.0", "@codemirror/lint": "^6.0.0", "@codemirror/search": "^6.0.0", "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.0.0" } }, "sha512-VhydHotNW5w1UGK0Qj96BwSk/Zqbp9WbnyK2W/eVMv4QyF41INRGpjUhFJY7/uDNuudSc33a/PKr4iDqRduvHw=="], + "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], "comma-separated-tokens": ["comma-separated-tokens@2.0.3", "", {}, "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg=="], - "concurrently": ["concurrently@8.2.2", "", { "dependencies": { "chalk": "^4.1.2", "date-fns": "^2.30.0", "lodash": "^4.17.21", "rxjs": "^7.8.1", "shell-quote": "^1.8.1", "spawn-command": "0.0.2", "supports-color": "^8.1.1", "tree-kill": "^1.2.2", "yargs": "^17.7.2" }, "bin": { "conc": "dist/bin/concurrently.js", "concurrently": "dist/bin/concurrently.js" } }, "sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg=="], + "commander": ["commander@8.3.0", "", {}, "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="], + + "concurrently": ["concurrently@9.2.1", "", { "dependencies": { "chalk": "4.1.2", "rxjs": "7.8.2", "shell-quote": "1.8.3", "supports-color": "8.1.1", "tree-kill": "1.2.2", "yargs": "17.7.2" }, "bin": { "conc": "dist/bin/concurrently.js", "concurrently": "dist/bin/concurrently.js" } }, "sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng=="], "content-disposition": ["content-disposition@1.1.0", "", {}, "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g=="], @@ -345,12 +530,12 @@ "cors": ["cors@2.8.6", "", { "dependencies": { "object-assign": "^4", "vary": "^1" } }, "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw=="], + "crelt": ["crelt@1.0.6", "", {}, "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g=="], + "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], - "date-fns": ["date-fns@2.30.0", "", { "dependencies": { "@babel/runtime": "^7.21.0" } }, "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw=="], - "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], "decode-named-character-reference": ["decode-named-character-reference@1.3.0", "", { "dependencies": { "character-entities": "^2.0.0" } }, "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q=="], @@ -373,6 +558,8 @@ "encodeurl": ["encodeurl@2.0.0", "", {}, "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="], + "entities": ["entities@7.0.1", "", {}, "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA=="], + "es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="], "es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="], @@ -389,6 +576,8 @@ "estree-util-is-identifier-name": ["estree-util-is-identifier-name@3.0.0", "", {}, "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg=="], + "estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], + "etag": ["etag@1.8.1", "", {}, "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="], "eventsource": ["eventsource@3.0.7", "", { "dependencies": { "eventsource-parser": "^3.0.1" } }, "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA=="], @@ -493,7 +682,9 @@ "json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], - "lodash": ["lodash@4.18.1", "", {}, "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q=="], + "katex": ["katex@0.16.45", "", { "dependencies": { "commander": "^8.3.0" }, "bin": { "katex": "cli.js" } }, "sha512-pQpZbdBu7wCTmQUh7ufPmLr0pFoObnGUoL/yhtwJDgmmQpbkg/0HSVti25Fu4rmd1oCR6NGWe9vqTWuWv3GcNA=="], + + "lodash-es": ["lodash-es@4.18.1", "", {}, "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A=="], "longest-streak": ["longest-streak@3.1.0", "", {}, "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="], @@ -503,12 +694,16 @@ "lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], + "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], + "markdown-table": ["markdown-table@3.0.4", "", {}, "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw=="], "marked": ["marked@14.0.0", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ=="], "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], + "mdast-util-definitions": ["mdast-util-definitions@6.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "unist-util-visit": "^5.0.0" } }, "sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ=="], + "mdast-util-find-and-replace": ["mdast-util-find-and-replace@3.0.2", "", { "dependencies": { "@types/mdast": "^4.0.0", "escape-string-regexp": "^5.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg=="], "mdast-util-from-markdown": ["mdast-util-from-markdown@2.0.3", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "mdast-util-to-string": "^4.0.0", "micromark": "^4.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q=="], @@ -525,6 +720,8 @@ "mdast-util-gfm-task-list-item": ["mdast-util-gfm-task-list-item@2.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ=="], + "mdast-util-math": ["mdast-util-math@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "longest-streak": "^3.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.1.0", "unist-util-remove-position": "^5.0.0" } }, "sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w=="], + "mdast-util-mdx-expression": ["mdast-util-mdx-expression@2.0.1", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ=="], "mdast-util-mdx-jsx": ["mdast-util-mdx-jsx@3.2.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "devlop": "^1.1.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "parse-entities": "^4.0.0", "stringify-entities": "^4.0.0", "unist-util-stringify-position": "^4.0.0", "vfile-message": "^4.0.0" } }, "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q=="], @@ -561,6 +758,8 @@ "micromark-extension-gfm-task-list-item": ["micromark-extension-gfm-task-list-item@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw=="], + "micromark-extension-math": ["micromark-extension-math@3.1.0", "", { "dependencies": { "@types/katex": "^0.16.0", "devlop": "^1.0.0", "katex": "^0.16.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg=="], + "micromark-factory-destination": ["micromark-factory-destination@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA=="], "micromark-factory-label": ["micromark-factory-label@2.0.1", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg=="], @@ -607,7 +806,7 @@ "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], - "nanoid": ["nanoid@3.3.12", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ=="], + "nanoid": ["nanoid@5.1.11", "", { "bin": { "nanoid": "bin/nanoid.js" } }, "sha512-v+KEsUv2ps74PaSKv0gHTxTCgMXOIfBEbaqa6w6ISIGC7ZsvHN4N9oJ8d4cmf0n5oTzQz2SLmThbQWhjd/8eKg=="], "negotiator": ["negotiator@1.0.0", "", {}, "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg=="], @@ -625,6 +824,8 @@ "once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="], + "orderedmap": ["orderedmap@2.1.1", "", {}, "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g=="], + "parse-entities": ["parse-entities@2.0.0", "", { "dependencies": { "character-entities": "^1.0.0", "character-entities-legacy": "^1.0.0", "character-reference-invalid": "^1.0.0", "is-alphanumerical": "^1.0.0", "is-decimal": "^1.0.0", "is-hexadecimal": "^1.0.0" } }, "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ=="], "parseurl": ["parseurl@1.3.3", "", {}, "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="], @@ -643,6 +844,38 @@ "property-information": ["property-information@7.1.0", "", {}, "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ=="], + "prosemirror-changeset": ["prosemirror-changeset@2.4.1", "", { "dependencies": { "prosemirror-transform": "^1.0.0" } }, "sha512-96WBLhOaYhJ+kPhLg3uW359Tz6I/MfcrQfL4EGv4SrcqKEMC1gmoGrXHecPE8eOwTVCJ4IwgfzM8fFad25wNfw=="], + + "prosemirror-commands": ["prosemirror-commands@1.7.1", "", { "dependencies": { "prosemirror-model": "^1.0.0", "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.10.2" } }, "sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w=="], + + "prosemirror-drop-indicator": ["prosemirror-drop-indicator@0.1.3", "", { "dependencies": { "@ocavue/utils": "^1.0.0", "prosemirror-model": "^1.25.4", "prosemirror-state": "^1.4.4", "prosemirror-view": "^1.41.3" } }, "sha512-fJV6G2tHIVXZLUuc60fS9ly1/GuGOlAZUm67S1El+kGFUYh27Hyv6hcGx3rrJ+Q/JZL5jnyAibIZYYWpPqE45g=="], + + "prosemirror-dropcursor": ["prosemirror-dropcursor@1.8.2", "", { "dependencies": { "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.1.0", "prosemirror-view": "^1.1.0" } }, "sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw=="], + + "prosemirror-gapcursor": ["prosemirror-gapcursor@1.4.1", "", { "dependencies": { "prosemirror-keymap": "^1.0.0", "prosemirror-model": "^1.0.0", "prosemirror-state": "^1.0.0", "prosemirror-view": "^1.0.0" } }, "sha512-pMdYaEnjNMSwl11yjEGtgTmLkR08m/Vl+Jj443167p9eB3HVQKhYCc4gmHVDsLPODfZfjr/MmirsdyZziXbQKw=="], + + "prosemirror-history": ["prosemirror-history@1.5.0", "", { "dependencies": { "prosemirror-state": "^1.2.2", "prosemirror-transform": "^1.0.0", "prosemirror-view": "^1.31.0", "rope-sequence": "^1.3.0" } }, "sha512-zlzTiH01eKA55UAf1MEjtssJeHnGxO0j4K4Dpx+gnmX9n+SHNlDqI2oO1Kv1iPN5B1dm5fsljCfqKF9nFL6HRg=="], + + "prosemirror-inputrules": ["prosemirror-inputrules@1.5.1", "", { "dependencies": { "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.0.0" } }, "sha512-7wj4uMjKaXWAQ1CDgxNzNtR9AlsuwzHfdFH1ygEHA2KHF2DOEaXl1CJfNPAKCg9qNEh4rum975QLaCiQPyY6Fw=="], + + "prosemirror-keymap": ["prosemirror-keymap@1.2.3", "", { "dependencies": { "prosemirror-state": "^1.0.0", "w3c-keyname": "^2.2.0" } }, "sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw=="], + + "prosemirror-model": ["prosemirror-model@1.25.4", "", { "dependencies": { "orderedmap": "^2.0.0" } }, "sha512-PIM7E43PBxKce8OQeezAs9j4TP+5yDpZVbuurd1h5phUxEKIu+G2a+EUZzIC5nS1mJktDJWzbqS23n1tsAf5QA=="], + + "prosemirror-safari-ime-span": ["prosemirror-safari-ime-span@1.0.2", "", { "dependencies": { "prosemirror-state": "^1.4.3", "prosemirror-view": "^1.33.8" } }, "sha512-QJqD8s1zE/CuK56kDsUhndh5hiHh/gFnAuPOA9ytva2s85/ZEt2tNWeALTJN48DtWghSKOmiBsvVn2OlnJ5H2w=="], + + "prosemirror-schema-list": ["prosemirror-schema-list@1.5.1", "", { "dependencies": { "prosemirror-model": "^1.0.0", "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.7.3" } }, "sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q=="], + + "prosemirror-state": ["prosemirror-state@1.4.4", "", { "dependencies": { "prosemirror-model": "^1.0.0", "prosemirror-transform": "^1.0.0", "prosemirror-view": "^1.27.0" } }, "sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw=="], + + "prosemirror-tables": ["prosemirror-tables@1.8.5", "", { "dependencies": { "prosemirror-keymap": "^1.2.3", "prosemirror-model": "^1.25.4", "prosemirror-state": "^1.4.4", "prosemirror-transform": "^1.10.5", "prosemirror-view": "^1.41.4" } }, "sha512-V/0cDCsHKHe/tfWkeCmthNUcEp1IVO3p6vwN8XtwE9PZQLAZJigbw3QoraAdfJPir4NKJtNvOB8oYGKRl+t0Dw=="], + + "prosemirror-transform": ["prosemirror-transform@1.12.0", "", { "dependencies": { "prosemirror-model": "^1.21.0" } }, "sha512-GxboyN4AMIsoHNtz5uf2r2Ru551i5hWeCMD6E2Ib4Eogqoub0NflniaBPVQ4MrGE5yZ8JV9tUHg9qcZTTrcN4w=="], + + "prosemirror-view": ["prosemirror-view@1.41.8", "", { "dependencies": { "prosemirror-model": "^1.20.0", "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.1.0" } }, "sha512-TnKDdohEatgyZNGCDWIdccOHXhYloJwbwU+phw/a23KBvJIR9lWQWW7WHHK3vBdOLDNuF7TaX98GObUZOWkOnA=="], + + "prosemirror-virtual-cursor": ["prosemirror-virtual-cursor@0.4.2", "", { "peerDependencies": { "prosemirror-model": "^1.0.0", "prosemirror-state": "^1.0.0", "prosemirror-view": "^1.0.0" }, "optionalPeers": ["prosemirror-model", "prosemirror-state", "prosemirror-view"] }, "sha512-pUMKnIuOhhnMcgIJUjhIQTVJruBEGxfMBVQSrK0g2qhGPDm1i12KdsVaFw15dYk+29tZcxjMeR7P5VDKwmbwJg=="], + "proxy-addr": ["proxy-addr@2.0.7", "", { "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" } }, "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg=="], "qs": ["qs@6.15.1", "", { "dependencies": { "side-channel": "^1.1.0" } }, "sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg=="], @@ -665,8 +898,14 @@ "refractor": ["refractor@3.6.0", "", { "dependencies": { "hastscript": "^6.0.0", "parse-entities": "^2.0.0", "prismjs": "~1.27.0" } }, "sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA=="], + "remark": ["remark@15.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "remark-parse": "^11.0.0", "remark-stringify": "^11.0.0", "unified": "^11.0.0" } }, "sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A=="], + "remark-gfm": ["remark-gfm@4.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-gfm": "^3.0.0", "micromark-extension-gfm": "^3.0.0", "remark-parse": "^11.0.0", "remark-stringify": "^11.0.0", "unified": "^11.0.0" } }, "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg=="], + "remark-inline-links": ["remark-inline-links@7.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-definitions": "^6.0.0", "unist-util-visit": "^5.0.0" } }, "sha512-4uj1pPM+F495ySZhTIB6ay2oSkTsKgmYaKk/q5HIdhX2fuyLEegpjWa0VdJRJ01sgOqAFo7MBKdDUejIYBMVMQ=="], + + "remark-math": ["remark-math@6.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-math": "^3.0.0", "micromark-extension-math": "^3.0.0", "unified": "^11.0.0" } }, "sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA=="], + "remark-parse": ["remark-parse@11.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", "micromark-util-types": "^2.0.0", "unified": "^11.0.0" } }, "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA=="], "remark-rehype": ["remark-rehype@11.1.2", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "mdast-util-to-hast": "^13.0.0", "unified": "^11.0.0", "vfile": "^6.0.0" } }, "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw=="], @@ -679,6 +918,8 @@ "rollup": ["rollup@4.60.2", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.60.2", "@rollup/rollup-android-arm64": "4.60.2", "@rollup/rollup-darwin-arm64": "4.60.2", "@rollup/rollup-darwin-x64": "4.60.2", "@rollup/rollup-freebsd-arm64": "4.60.2", "@rollup/rollup-freebsd-x64": "4.60.2", "@rollup/rollup-linux-arm-gnueabihf": "4.60.2", "@rollup/rollup-linux-arm-musleabihf": "4.60.2", "@rollup/rollup-linux-arm64-gnu": "4.60.2", "@rollup/rollup-linux-arm64-musl": "4.60.2", "@rollup/rollup-linux-loong64-gnu": "4.60.2", "@rollup/rollup-linux-loong64-musl": "4.60.2", "@rollup/rollup-linux-ppc64-gnu": "4.60.2", "@rollup/rollup-linux-ppc64-musl": "4.60.2", "@rollup/rollup-linux-riscv64-gnu": "4.60.2", "@rollup/rollup-linux-riscv64-musl": "4.60.2", "@rollup/rollup-linux-s390x-gnu": "4.60.2", "@rollup/rollup-linux-x64-gnu": "4.60.2", "@rollup/rollup-linux-x64-musl": "4.60.2", "@rollup/rollup-openbsd-x64": "4.60.2", "@rollup/rollup-openharmony-arm64": "4.60.2", "@rollup/rollup-win32-arm64-msvc": "4.60.2", "@rollup/rollup-win32-ia32-msvc": "4.60.2", "@rollup/rollup-win32-x64-gnu": "4.60.2", "@rollup/rollup-win32-x64-msvc": "4.60.2", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ=="], + "rope-sequence": ["rope-sequence@1.3.4", "", {}, "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ=="], + "router": ["router@2.2.0", "", { "dependencies": { "debug": "^4.4.0", "depd": "^2.0.0", "is-promise": "^4.0.0", "parseurl": "^1.3.3", "path-to-regexp": "^8.0.0" } }, "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ=="], "rxjs": ["rxjs@7.8.2", "", { "dependencies": { "tslib": "^2.1.0" } }, "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA=="], @@ -713,8 +954,6 @@ "space-separated-tokens": ["space-separated-tokens@2.0.2", "", {}, "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="], - "spawn-command": ["spawn-command@0.0.2", "", {}, "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ=="], - "state-local": ["state-local@1.0.7", "", {}, "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w=="], "statuses": ["statuses@2.0.2", "", {}, "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw=="], @@ -725,6 +964,8 @@ "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + "style-mod": ["style-mod@4.1.3", "", {}, "sha512-i/n8VsZydrugj3Iuzll8+x/00GH2vnYsk1eomD8QiRrSAeW6ItbCQDtfXCeJHd0iwiNagqjQkvpvREEPtW3IoQ=="], + "style-to-js": ["style-to-js@1.1.21", "", { "dependencies": { "style-to-object": "1.0.14" } }, "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ=="], "style-to-object": ["style-to-object@1.0.14", "", { "dependencies": { "inline-style-parser": "0.2.7" } }, "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw=="], @@ -755,6 +996,8 @@ "unist-util-position": ["unist-util-position@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA=="], + "unist-util-remove-position": ["unist-util-remove-position@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-visit": "^5.0.0" } }, "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q=="], + "unist-util-stringify-position": ["unist-util-stringify-position@4.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ=="], "unist-util-visit": ["unist-util-visit@5.1.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg=="], @@ -775,6 +1018,10 @@ "vite": ["vite@5.4.21", "", { "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", "rollup": "^4.20.0" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || >=20.0.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" }, "optionalPeers": ["@types/node", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser"], "bin": { "vite": "bin/vite.js" } }, "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw=="], + "vue": ["vue@3.5.33", "", { "dependencies": { "@vue/compiler-dom": "3.5.33", "@vue/compiler-sfc": "3.5.33", "@vue/runtime-dom": "3.5.33", "@vue/server-renderer": "3.5.33", "@vue/shared": "3.5.33" }, "peerDependencies": { "typescript": "*" }, "optionalPeers": ["typescript"] }, "sha512-1AgChhx5w3ALgT4oK3acm2Es/7jyZhWSVUfs3rOBlGQC0rjEDkS7G4lWlJJGGNQD+BV3reCwbQrOe1mPNwKHBQ=="], + + "w3c-keyname": ["w3c-keyname@2.2.8", "", {}, "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ=="], + "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], "wrap-ansi": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], @@ -813,6 +1060,8 @@ "mdast-util-mdx-jsx/parse-entities": ["parse-entities@4.0.2", "", { "dependencies": { "@types/unist": "^2.0.0", "character-entities-legacy": "^3.0.0", "character-reference-invalid": "^2.0.0", "decode-named-character-reference": "^1.0.0", "is-alphanumerical": "^2.0.0", "is-decimal": "^2.0.0", "is-hexadecimal": "^2.0.0" } }, "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw=="], + "postcss/nanoid": ["nanoid@3.3.12", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ=="], + "refractor/prismjs": ["prismjs@1.27.0", "", {}, "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA=="], "stringify-entities/character-entities-legacy": ["character-entities-legacy@3.0.0", "", {}, "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ=="], diff --git a/package.json b/package.json index d35eb89..18c07a7 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,13 @@ }, "dependencies": { "@anthropic-ai/claude-agent-sdk": "^0.2.126", + "@milkdown/core": "^7.20.0", + "@milkdown/plugin-history": "^7.20.0", + "@milkdown/plugin-listener": "^7.20.0", + "@milkdown/preset-commonmark": "^7.20.0", + "@milkdown/prose": "^7.20.0", + "@milkdown/react": "^7.20.0", + "@milkdown/utils": "^7.20.0", "@monaco-editor/react": "^4.6.0", "@xterm/addon-fit": "^0.11.0", "@xterm/xterm": "^6.0.0", @@ -38,7 +45,7 @@ "@types/react-dom": "^18.3.0", "@types/react-syntax-highlighter": "^15.5.13", "@vitejs/plugin-react": "^4.3.1", - "concurrently": "^8.2.2", + "concurrently": "^9.2.1", "typescript": "^5.5.3", "vite": "^5.4.0" } diff --git a/server.ts b/server.ts index b8554d6..d501339 100644 --- a/server.ts +++ b/server.ts @@ -2090,27 +2090,51 @@ const server = Bun.serve({ } if (url.pathname === '/api/pick-folder' && req.method === 'POST') { - if (process.platform !== 'darwin') { - return Response.json( - { error: 'native picker is macOS only — paste the path manually' }, - { status: 501 }, - ); + let cmd: string; + let args: string[]; + if (process.platform === 'darwin') { + cmd = 'osascript'; + args = ['-e', 'POSIX path of (choose folder with prompt "Choose the project folder")']; + } else if (process.platform === 'win32') { + // PowerShell FolderBrowserDialog. STA mode is required for WinForms. + // A topmost dummy form is parented to the dialog so it doesn't get + // hidden behind the main app window. + const ps = [ + "Add-Type -AssemblyName System.Windows.Forms;", + "$f = New-Object System.Windows.Forms.FolderBrowserDialog;", + "$f.Description = 'Choose the project folder';", + "$f.ShowNewFolderButton = $true;", + "$top = New-Object System.Windows.Forms.Form;", + "$top.TopMost = $true;", + "$r = $f.ShowDialog($top);", + "$top.Dispose();", + "if ($r -eq [System.Windows.Forms.DialogResult]::OK) { Write-Output $f.SelectedPath }", + ].join(' '); + cmd = 'powershell.exe'; + args = ['-NoProfile', '-STA', '-Command', ps]; + } else { + // Linux / others: try zenity (GNOME) — falls through to error if missing. + cmd = 'zenity'; + args = ['--file-selection', '--directory', '--title=Choose the project folder']; } return new Promise((resolve) => { - const proc = spawn('osascript', [ - '-e', - 'POSIX path of (choose folder with prompt "Choose the project folder")', - ]); + const proc = spawn(cmd, args); let out = ''; proc.stdout.on('data', (c: Buffer) => { out += c.toString(); }); proc.on('close', (code) => { - if (code === 0) { - const picked = out.trim().replace(/\/$/, ''); + const picked = out.trim().replace(/[\/\\]$/, ''); + if (code === 0 && picked) { resolve(Response.json({ path: picked })); } else { resolve(Response.json({ canceled: true })); } }); + proc.on('error', (e) => { + resolve(Response.json( + { error: `folder picker failed: ${e.message}` }, + { status: 501 }, + )); + }); }); } diff --git a/src/App.tsx b/src/App.tsx index 6aa4c28..6240a2b 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -11,6 +11,7 @@ import { ThemePicker } from './components/ThemePicker'; import { QuickOpen } from './components/QuickOpen'; import { ProjectSwitcher } from './components/ProjectSwitcher'; import { Extensions } from './components/Extensions'; +import { HeaderCommandPalette } from './components/HeaderCommandPalette'; import { useScopedTheme } from './components/ThemeApplier'; import { conversationToMarkdown, downloadMarkdown } from './lib/exportConversation'; @@ -151,6 +152,7 @@ export default function App() { )} {isStreaming && claude is working…} + {lastError && error} {messageCount > 0 && (