feat(desktop): embed BoosAPI Desktop client as a subproject

Vendor the rebranded BoosAPI Desktop client (Tauri + Vue) into metapi as
a monorepo subdirectory under desktop/. Source only — node_modules,
dist, Cargo target and the upstream .git history are excluded.

desktop/ keeps its own independent Cargo workspace (desktop/src-tauri
with crates/*); it is not part of the backend boosapi crate, so a
`cargo check` at the metapi root still compiles only the backend. Build
the desktop app from desktop/src-tauri per desktop/README.md.

Note: app icons are still placeholder assets pending the final BoosAPI
logo. The updater signing keys live outside the repo and are not
included.
This commit is contained in:
boos
2026-06-22 11:32:57 +08:00
parent d9c78ecc73
commit e0a5f57793
2305 changed files with 449355 additions and 0 deletions
+326
View File
@@ -0,0 +1,326 @@
{
"name": "markstream-vue",
"type": "module",
"version": "0.0.14-beta.2",
"packageManager": "pnpm@10.33.0",
"description": "Streaming-friendly Vue 3 Markdown renderer for docs sites, AI chat UIs, and large documents.",
"author": "Simon He",
"license": "MIT",
"homepage": "https://markstream-vue-docs.simonhe.me/guide/",
"repository": {
"type": "git",
"url": "git+https://github.com/Simon-He95/markstream-vue.git"
},
"bugs": {
"url": "https://github.com/Simon-He95/markstream-vue/issues"
},
"keywords": [
"vue",
"vue3",
"markdown",
"markdown-to-html",
"markdown-renderer",
"streaming-markdown",
"streaming-renderer",
"vue-markdown",
"vue-markdown-renderer",
"vue-markdown-component",
"markdown-preview",
"markdown-viewer",
"vue-component",
"nuxt",
"vitepress",
"vite",
"sse",
"sse-markdown",
"ai",
"ai-chat",
"chat-ui",
"docs-site",
"knowledge-base",
"html",
"renderer",
"custom-component",
"mermaid",
"mermaid-diagram",
"katex",
"shiki",
"monaco-editor",
"progressive-mermaid",
"streaming-diff",
"diff-codeblock",
"large-documents",
"performance",
"real-time-preview",
"markstream-vue"
],
"sideEffects": [
"**/*.css"
],
"exports": {
".": {
"types": "./dist/index.d.ts",
"import": "./dist/index.js",
"require": "./dist/index.js"
},
"./utils": {
"types": "./dist/index.d.ts",
"import": "./dist/exports.js",
"require": "./dist/exports.js"
},
"./utils/katex-threshold": {
"types": "./dist/index.d.ts",
"import": "./dist/exports.js",
"require": "./dist/exports.js"
},
"./utils/performance-monitor": {
"types": "./dist/index.d.ts",
"import": "./dist/exports.js",
"require": "./dist/exports.js"
},
"./utils/safeRaf": {
"types": "./dist/index.d.ts",
"import": "./dist/safeRaf.js",
"require": "./dist/safeRaf.js"
},
"./index.css": "./dist/index.css",
"./index.px.css": "./dist/index.px.css",
"./index.tailwind.css": "./dist/index.tailwind.css",
"./tailwind": "./dist/tailwind.ts",
"./workers/katexWorkerClient": {
"types": "./dist/index.d.ts",
"import": "./dist/exports.js",
"require": "./dist/exports.js"
},
"./workers/mermaidWorkerClient": {
"types": "./dist/index.d.ts",
"import": "./dist/exports.js",
"require": "./dist/exports.js"
},
"./workers/katexCdnWorker": {
"types": "./dist/index.d.ts",
"import": "./dist/exports.js",
"require": "./dist/exports.js"
},
"./workers/mermaidCdnWorker": {
"types": "./dist/index.d.ts",
"import": "./dist/exports.js",
"require": "./dist/exports.js"
},
"./workers/katexRenderer.worker": "./dist/workers/katexRenderer.worker.js",
"./workers/mermaidParser.worker": "./dist/workers/mermaidParser.worker.js"
},
"main": "./dist/index.js",
"module": "./dist/index.js",
"types": "./dist/index.d.ts",
"bin": {
"markstream-vue": "./bin/markstream-vue.mjs"
},
"files": [
".agents",
"bin",
"dist",
"dist/workers",
"prompts"
],
"scripts": {
"dev": "pnpm run -C playground dev",
"test": "vitest",
"test:perf:height-estimation-experiment": "node scripts/benchmark-height-estimation-experiment.mjs",
"test:e2e:diff-folding": "node scripts/e2e-diff-folding.mjs",
"test:e2e:codeblock-highlight-stability": "node scripts/e2e-codeblock-highlight-stability.mjs",
"test:e2e:height-estimation-experiment": "node scripts/e2e-height-estimation-experiment.mjs",
"test:e2e:main-playground-performance": "node scripts/e2e-main-playground-performance.mjs",
"test:e2e:playground-performance": "node scripts/e2e-playground-performance.mjs",
"test:e2e:angular-playground": "node scripts/e2e-angular-playground.mjs",
"test:e2e:diff-theme-switch": "node scripts/e2e-diff-theme-switch.mjs",
"test:e2e:nuxt-ssr": "node scripts/e2e-nuxt-ssr.mjs",
"test:e2e:katex-unicode-unit": "node scripts/e2e-katex-unicode-unit-regression.mjs",
"lint": "eslint . --cache",
"lint:fix": "pnpm run lint --fix",
"test:ui": "vitest --ui",
"test:update": "vitest -u",
"typecheck": "vue-tsc --noEmit",
"check:ssr": "vitest --run -t \"SSR import safety\"",
"prepublishOnly": "npm run build",
"play": "pnpm run -C playground dev",
"play:angular": "pnpm run -C playground-angular dev",
"play:vue2": "pnpm run -C playground-vue2 dev",
"play:vue2-cli": "pnpm run -C playground-vue2-cli dev",
"play:build": "pnpm run -C playground build",
"play:vue2:build": "pnpm run -C playground-vue2 build",
"play:vue2:preview": "pnpm run -C playground-vue2 preview",
"play:nuxt": "pnpm run -C playground-nuxt dev",
"play:nuxt:build": "pnpm run -C playground-nuxt build",
"play:nuxt:preview": "pnpm run -C playground-nuxt preview",
"play:react": "pnpm run -C playground-react18 dev",
"play:react18": "pnpm run -C playground-react18 dev",
"play:react19": "pnpm run -C playground-react19 dev",
"play:next14": "pnpm run build:parser && pnpm --filter markstream-react build && pnpm run -C playground-next14 dev",
"play:next15": "pnpm run build:parser && pnpm --filter markstream-react build && pnpm run -C playground-next15 dev",
"play:angular:build": "pnpm run -C playground-angular build",
"play:react:build": "pnpm run -C playground-react18 build",
"play:react18:build": "pnpm run -C playground-react18 build",
"play:react19:build": "pnpm run -C playground-react19 build",
"play:angular:preview": "pnpm run -C playground-angular preview",
"play:react:preview": "pnpm run -C playground-react18 preview",
"play:react18:preview": "pnpm run -C playground-react18 preview",
"play:react19:preview": "pnpm run -C playground-react19 preview",
"preview": "pnpm run -C playground preview",
"build:parser": "pnpm run -C packages/markdown-parser build",
"build": "vite build --mode npm && vite build --config vite.config.tailwind.ts --mode npm && node scripts/copy-tailwind-css.mjs && node scripts/generate-px-css.mjs && pnpm run build:dts",
"build:analyze": "ANALYZE=true pnpm build",
"size:check": "node scripts/check-package-size.mjs",
"docs:dev": "vitepress dev docs",
"docs:sync-zh": "node scripts/sync-zh-docs.mjs",
"docs:check-zh": "node scripts/check-zh-parity.mjs",
"docs:build": "vitepress build docs",
"docs:build:ci": "pnpm run build:parser && pnpm run build && pnpm docs:build",
"docs:build:netlify": "VITEPRESS_BASE=/ pnpm docs:build",
"docs:build:gh": "VITEPRESS_BASE=/markstream-vue/ pnpm docs:build",
"docs:build:gh:ci": "pnpm run build:parser && pnpm run build && pnpm docs:build:gh",
"docs:serve": "vitepress serve docs",
"docs:deploy": "VITEPRESS_BASE=/markstream-vue/ pnpm docs:build && pnpm docs:serve",
"docs:deploy:netlify": "pnpm docs:build && echo 'Docs built to docs/.vitepress/dist'",
"skills:list": "node ./bin/markstream-vue.mjs skills list",
"skills:install": "node ./bin/markstream-vue.mjs skills install --target agents --mode symlink",
"skills:install:copy": "node ./bin/markstream-vue.mjs skills install --target agents --mode copy",
"skills:install:codex": "node ./bin/markstream-vue.mjs skills install --target codex --mode symlink",
"prompts:list": "node ./bin/markstream-vue.mjs prompts list",
"prompts:dir": "node ./bin/markstream-vue.mjs prompts dir",
"prebuild:dts": "node ./scripts/prepare-dts-entry.cjs",
"build:dts": "rollup -c ./scripts/rollup.dts.config.mjs && node ./scripts/clean-dts.cjs",
"build:demo": "vite build",
"build:view": "vite preview",
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",
"release": "bumpp --all --commit --no-tag --no-push --execute 'conventional-changelog -p angular -i CHANGELOG.md -s -r 0' && pnpm publish && node scripts/tag-package.mjs --package-json package.json --push",
"release:angular": "pnpm run -C packages/markstream-angular release",
"tag": "node scripts/tag-package.mjs",
"tag:vue3": "node scripts/tag-package.mjs --package-json package.json",
"tag:vue3:push": "node scripts/tag-package.mjs --package-json package.json --push",
"tag:vue2": "node scripts/tag-package.mjs --package-json packages/markstream-vue2/package.json",
"tag:vue2:push": "node scripts/tag-package.mjs --package-json packages/markstream-vue2/package.json --push",
"tag:react": "node scripts/tag-package.mjs --package-json packages/markstream-react/package.json",
"tag:react:push": "node scripts/tag-package.mjs --package-json packages/markstream-react/package.json --push",
"tag:angular": "node scripts/tag-package.mjs --package-json packages/markstream-angular/package.json",
"tag:angular:push": "node scripts/tag-package.mjs --package-json packages/markstream-angular/package.json --push",
"tag:parser": "node scripts/tag-package.mjs --package-json packages/markdown-parser/package.json",
"tag:parser:push": "node scripts/tag-package.mjs --package-json packages/markdown-parser/package.json --push",
"tag:backfill:dry": "node scripts/backfill-legacy-tags.mjs --dry-run",
"tag:backfill": "node scripts/backfill-legacy-tags.mjs --apply",
"tag:prune:v:dry": "node scripts/prune-tags.mjs --pattern 'v*' --dry-run",
"tag:prune:v:local": "node scripts/prune-tags.mjs --pattern 'v*' --apply --local",
"tag:prune:v:all": "node scripts/prune-tags.mjs --pattern 'v*' --apply --local --remote-delete",
"check:peer-deps": "node ./scripts/check-peer-deps.cjs",
"test:e2e:link-tooltip-streaming": "node scripts/e2e-link-tooltip-streaming.mjs",
"test:e2e:vue2-cli-smoke": "node scripts/e2e-vue2-cli-smoke.mjs",
"test:e2e:math-streaming-stability": "node scripts/e2e-math-streaming-stability.mjs",
"test:e2e:next14-ssr": "node scripts/e2e-next-ssr.mjs --playground playground-next14 --version next14",
"test:e2e:next15-ssr": "node scripts/e2e-next-ssr.mjs --playground playground-next15 --version next15",
"test:e2e:next-ssr": "pnpm run test:e2e:next14-ssr && pnpm run test:e2e:next15-ssr"
},
"peerDependencies": {
"@antv/infographic": "^0.2.3",
"@terrastruct/d2": ">=0.1.33",
"katex": ">=0.16.22",
"mermaid": ">=11",
"stream-markdown": ">=0.0.15",
"stream-monaco": ">=0.0.40",
"vue": ">=3.0.0",
"vue-i18n": ">=9"
},
"peerDependenciesMeta": {
"@antv/infographic": {
"optional": true
},
"@terrastruct/d2": {
"optional": true
},
"katex": {
"optional": true
},
"mermaid": {
"optional": true
},
"stream-markdown": {
"optional": true
},
"stream-monaco": {
"optional": true
},
"vue-i18n": {
"optional": true
}
},
"dependencies": {
"@chenglou/pretext": "^0.0.5",
"@floating-ui/dom": "^1.7.6",
"stream-markdown-parser": "workspace:*"
},
"devDependencies": {
"@antfu/eslint-config": "^5.4.1",
"@shikijs/vitepress-twoslash": "^4.0.2",
"@types/markdown-it-emoji": "^3.0.1",
"@types/node": "^18.19.130",
"@vitejs/plugin-vue": "^5.2.4",
"@vitest/ui": "^4.1.2",
"@vue/test-utils": "^2.4.6",
"autoprefixer": "^10.4.27",
"brotli-compress": "^1.3.3",
"bumpp": "^8.2.1",
"conventional-changelog-cli": "^5.0.0",
"eslint": "^9.39.4",
"fflate": "^0.8.2",
"lint-staged": "^13.3.0",
"lz-string": "^1.5.0",
"markdown-it-emoji": "^3.0.0",
"material-icon-theme": "^5.33.1",
"picocolors": "^1.1.1",
"playwright-core": "^1.59.0",
"postcss-cli": "^11.0.1",
"rollup": "^3.30.0",
"rollup-plugin-dts": "^5.3.1",
"rollup-plugin-visualizer": "^6.0.11",
"tailwindcss": "^3.4.19",
"terser": "^5.46.1",
"tsx": "^4.21.0",
"typescript": "^5.9.3",
"unplugin-class-extractor": "^0.0.22",
"unplugin-vue-components": "^28.8.0",
"vite": "^7.3.1",
"vite-plugin-dts": "^4.5.4",
"vite-plugin-pages": "^0.33.3",
"vite-svg-loader": "^5.1.1",
"vitepress": "^1.6.4",
"vitest": "^4.1.2",
"vue": "^3.5.31",
"vue-tsc": "^2.2.12"
},
"pnpm": {
"packageExtensions": {
"vue-template-compiler@2.6.14": {
"dependencies": {
"vue": "2.6.14"
}
},
"vue-template-compiler@2.7.16": {
"dependencies": {
"vue": "2.7.16"
}
}
},
"overrides": {
"@vue/reactivity": "3.5.25",
"@vue/runtime-core": "3.5.25",
"@vue/runtime-dom": "3.5.25",
"playground-vue2-cli>vue": "2.6.14",
"playground-vue2-cli>vue-template-compiler": "2.6.14",
"playground-vue2>vue": "2.7.16",
"playground-vue2>vue-template-compiler": "2.7.16",
"vue@^3": "3.5.25"
}
},
"lint-staged": {
"*.{vue,js,ts,jsx,tsx,md,json}": "eslint --fix"
}
}