Files
ycode/package.json
T
xiaohan.yuanandClaude Code 60438fc6a2 chore(release): bump version to 0.0.10
Record the published 0.0.10 release version in package.json and
package-lock.json (the 0.0.9 bump was never committed). The published
installer is release/publish/0.0.10/YCode-0.0.10-Setup-x64.exe,
SHA-256 d31dbf1c682d52aeffdc1c81387fac3952f96813d867bd25f963603615381ba8.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-21 18:04:35 +08:00

232 lines
18 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"name": "ycode",
"version": "0.0.10",
"private": true,
"description": "YCode - 个人 AI Agent 桌面应用(Electron)",
"author": "YCode",
"main": "./out/main/index.mjs",
"scripts": {
"test": "npm run test:core",
"test:core": "npm run typecheck && npm run test:chat && npm run test:sessions && npm run test:persistence && npm run test:conversation",
"test:model-bridge": "esbuild scripts/protocol-bridge-regression.ts --bundle --platform=node --format=esm --outfile=.tmp/protocol-bridge-regression.mjs --log-level=warning && node .tmp/protocol-bridge-regression.mjs && node scripts/claude-bridge-host-regression.mjs",
"test:alignment": "node scripts/run-alignment-regression.mjs",
"test:alignment:dom": "node scripts/run-alignment-regression.mjs --require-dom",
"test:image-lifecycle": "node scripts/test-image-lifecycle.mjs",
"test:permissions:loopback": "node scripts/build-full-access-loopback-kernel.mjs && node scripts/test-full-access-loopback.mjs --kernel",
"test:reporting": "node --test scripts/regression-reporting.test.mjs",
"test:capability-slash:ui": "node scripts/test-capability-slash-ui.mjs",
"test:recommended-skills": "esbuild scripts/recommended-skills-backend-regression.ts --bundle --platform=node --format=esm --external:esbuild --outfile=.tmp/recommended-skills-backend-regression.mjs --log-level=warning && node .tmp/recommended-skills-backend-regression.mjs",
"test:recommended-skills:ui": "node scripts/test-recommended-skills-ui.mjs",
"test:recommended-skills:dom": "node scripts/test-recommended-skills-dom.mjs",
"test:recommended-skills:app": "node scripts/verify-recommended-skills-app.cjs",
"test:recommended-skills:package": "node scripts/test-recommended-archify-package.mjs",
"test:composer-capabilities": "node scripts/run-composer-capabilities-regression.mjs",
"test:claude-append": "node scripts/build-claude-append-probe.mjs && node .tmp/claude-append-protocol-probe.mjs",
"test:claude-append:app": "node scripts/verify-claude-append-app.cjs",
"dev": "electron-vite dev",
"dev:renderer": "electron-vite dev --rendererOnly",
"build": "npm run typecheck && electron-vite build",
"start": "electron-vite preview",
"typecheck": "tsc --noEmit -p tsconfig.node.json && tsc --noEmit -p tsconfig.web.json",
"check:tokens": "node scripts/check-design-tokens.mjs",
"test:settings-performance": "node scripts/verify-settings-performance.cjs",
"models:sync-metadata": "node scripts/sync-model-metadata.mjs",
"test:model-metadata": "esbuild scripts/model-metadata-regression.ts --bundle --platform=node --format=esm --external:esbuild --outfile=.tmp/model-metadata-regression.mjs --log-level=warning && node .tmp/model-metadata-regression.mjs",
"test:claude-kernel": "esbuild scripts/claude-endpoint-regression.ts scripts/claude-tool-input-regression.ts --bundle --platform=node --format=esm --out-extension:.js=.mjs --outdir=.tmp/claude-tests --log-level=warning && node .tmp/claude-tests/claude-endpoint-regression.mjs && node .tmp/claude-tests/claude-tool-input-regression.mjs && node scripts/build-claude-kernel-regression.mjs && node .tmp/claude-kernel-integration.mjs && node scripts/claude-kernel-smoke.mjs",
"test:browser-agent": "esbuild scripts/browser-agent-host-regression.ts --bundle --platform=node --format=cjs --external:electron --outfile=.tmp/browser-agent-host-regression.cjs --log-level=warning && electron .tmp/browser-agent-host-regression.cjs",
"test:chat": "esbuild scripts/message-order-regression.ts scripts/chat-store-regression.ts scripts/chat-stream-committer-regression.ts --bundle --platform=node --format=esm --out-extension:.js=.mjs --outdir=.tmp/chat-tests --log-level=warning && node .tmp/chat-tests/message-order-regression.mjs && node .tmp/chat-tests/chat-store-regression.mjs && node .tmp/chat-tests/chat-stream-committer-regression.mjs",
"test:references": "esbuild scripts/reference-content-regression.tsx --bundle --platform=node --format=cjs --jsx=automatic --loader:.css=empty --outfile=.tmp/reference-content-regression.cjs --log-level=error && node .tmp/reference-content-regression.cjs",
"test:markdown": "esbuild scripts/markdown-regression.tsx --bundle --platform=node --format=cjs --jsx=automatic --loader:.css=empty --outfile=.tmp/markdown-regression.cjs --log-level=warning && node .tmp/markdown-regression.cjs",
"test:recovered": "esbuild scripts/recovered-parser-regression.ts scripts/source-projection-regression.ts scripts/code-block-regression.tsx scripts/incremental-markdown-regression.ts scripts/math-renderer-regression.tsx --bundle --platform=node --format=cjs --jsx=automatic --loader:.css=empty --out-extension:.js=.cjs --outdir=.tmp/recovered-tests --log-level=warning && node .tmp/recovered-tests/recovered-parser-regression.cjs && node .tmp/recovered-tests/source-projection-regression.cjs && node .tmp/recovered-tests/code-block-regression.cjs && node .tmp/recovered-tests/incremental-markdown-regression.cjs && node .tmp/recovered-tests/math-renderer-regression.cjs",
"recover:chat-reference": "node scripts/rea/recover-chat-reference.mjs",
"test:persistence": "esbuild scripts/chat-persistence-regression.ts --bundle --platform=node --format=esm --external:esbuild --outfile=.tmp/chat-persistence-regression.mjs --log-level=warning && node .tmp/chat-persistence-regression.mjs",
"test:sessions": "esbuild scripts/session-store-regression.ts --bundle --platform=node --format=esm --external:esbuild --outfile=.tmp/session-store-regression.mjs --log-level=warning && node .tmp/session-store-regression.mjs",
"shot": "node scripts/shot.mjs",
"icon:build": "node scripts/gen-icon.mjs",
"dist": "npm run runtimes:prepare && npm run build && electron-builder --win dir --x64",
"dist:installer": "npm run runtimes:prepare && npm run build && electron-builder --win nsis --x64",
"release": "node scripts/updates/release.mjs",
"test:release": "node scripts/updates/release-selftest.mjs",
"test:updates": "esbuild scripts/update-backend-regression.ts scripts/update-maintenance-regression.ts --bundle --platform=node --format=esm --out-extension:.js=.mjs --outdir=.tmp/update-tests --log-level=warning && node .tmp/update-tests/update-backend-regression.mjs && node .tmp/update-tests/update-maintenance-regression.mjs && node scripts/updates/selftest.mjs && node scripts/updates/contract-selftest.mjs && node scripts/updates/nsis-safety-regression.mjs",
"test:updates:ui": "node scripts/verify-updates-ui.cjs",
"updates:key": "node scripts/updates/init-key.mjs",
"updates:prepare": "node scripts/updates/prepare-release.mjs",
"updates:deploy": "node scripts/updates/deploy.mjs",
"verify:ui": "node scripts/verify-ui.mjs",
"test:media": "esbuild scripts/mermaid-regression.ts --bundle --platform=node --format=esm --packages=external --jsx=automatic --loader:.css=empty --outfile=.tmp/media-tests/mermaid-regression.mjs --log-level=warning && node .tmp/media-tests/mermaid-regression.mjs && esbuild scripts/image-renderer-regression.tsx scripts/path-renderer-regression.tsx --bundle --platform=node --format=cjs --jsx=automatic --loader:.css=empty --out-extension:.js=.cjs --outdir=.tmp/media-tests --log-level=warning && node .tmp/media-tests/image-renderer-regression.cjs && node .tmp/media-tests/path-renderer-regression.cjs",
"test:resources": "esbuild scripts/resource-bridge-regression.ts --bundle --platform=node --format=esm --external:esbuild --outfile=.tmp/resource-bridge-regression.mjs --log-level=warning && node .tmp/resource-bridge-regression.mjs",
"recover:typography": "node scripts/rea/recover-typography-reference.mjs",
"test:font-size": "esbuild scripts/font-size-regression.ts --bundle --platform=node --format=esm --outfile=.tmp/font-size-regression.mjs --log-level=warning && node .tmp/font-size-regression.mjs",
"test:conversation": "esbuild scripts/conversation-renderer-regression.tsx scripts/composer-regression.tsx scripts/completed-fold-regression.tsx scripts/streaming-footer-regression.tsx --bundle --platform=node --format=cjs --jsx=automatic --loader:.css=text --out-extension:.js=.cjs --outdir=.tmp/conversation-tests --log-level=error && node .tmp/conversation-tests/conversation-renderer-regression.cjs && node .tmp/conversation-tests/composer-regression.cjs && node .tmp/conversation-tests/streaming-footer-regression.cjs && node .tmp/conversation-tests/completed-fold-regression.cjs",
"test:workbench-escape": "esbuild scripts/workbench-escape-regression.ts --bundle --platform=node --format=esm --outfile=.tmp/workbench-escape-regression.mjs --log-level=warning && node .tmp/workbench-escape-regression.mjs",
"test:assistant-footer": "esbuild scripts/assistant-message-footer-regression.tsx --bundle --platform=node --format=cjs --jsx=automatic --loader:.css=empty --outfile=.tmp/assistant-message-footer-regression.cjs --log-level=error && node .tmp/assistant-message-footer-regression.cjs",
"test:personalization": "esbuild scripts/personalization-prompt-regression.ts --bundle --platform=node --format=esm --outfile=.tmp/personalization-prompt-regression.mjs --log-level=warning && node .tmp/personalization-prompt-regression.mjs",
"test:memory": "node scripts/verify-memory-settings.cjs",
"test:remediation": "esbuild scripts/remediation-pure-regression.ts --bundle --platform=node --format=esm --outfile=.tmp/remediation-pure-regression.mjs --log-level=warning && node .tmp/remediation-pure-regression.mjs",
"test:archived-tasks": "node scripts/verify-archived-tasks.cjs",
"test:app-discover": "node scripts/verify-app-discover.cjs",
"test:automations": "esbuild scripts/automation-regression.ts --bundle --platform=node --format=esm --outfile=.tmp/automation-regression.mjs --log-level=warning && node .tmp/automation-regression.mjs",
"test:library": "esbuild scripts/library-regression.ts --bundle --platform=node --format=esm --outfile=.tmp/library-regression.mjs --log-level=warning && node .tmp/library-regression.mjs",
"test:library-ui": "esbuild scripts/library-ui-regression.tsx --bundle --platform=node --format=cjs --jsx=automatic --loader:.css=empty --loader:.svg=dataurl --outfile=.tmp/library-ui-regression.cjs --log-level=warning && node .tmp/library-ui-regression.cjs",
"test:module-ui": "node scripts/verify-module-ui-parity.cjs",
"test:project-tasks": "esbuild scripts/project-task-regression.ts --bundle --platform=node --format=esm --outfile=.tmp/project-task-regression.mjs --log-level=warning && node .tmp/project-task-regression.mjs",
"recover:artifact-reference": "node scripts/rea/recover-artifact-reference.mjs",
"test:artifacts": "esbuild scripts/artifact-diff-regression.ts scripts/artifact-renderer-regression.tsx scripts/specialized-block-regression.tsx --bundle --platform=node --format=cjs --jsx=automatic --loader:.css=empty --out-extension:.js=.cjs --outdir=.tmp/artifact-tests --log-level=warning && node .tmp/artifact-tests/artifact-diff-regression.cjs && node .tmp/artifact-tests/artifact-renderer-regression.cjs && node .tmp/artifact-tests/specialized-block-regression.cjs",
"recover:conversation-labels": "node scripts/rea/recover-conversation-labels.mjs",
"rea:css:prepare": "node scripts/rea/prepare-css-runtime.mjs",
"rea:css:capture": "node scripts/rea/capture-css.mjs",
"recover:css-reference": "node scripts/rea/export-css-reference.mjs",
"test:rea-css": "node scripts/rea/css-capture-regression.mjs && node scripts/rea/css-runtime-contract-regression.mjs && node scripts/rea/visual-capture-regression.mjs && node scripts/rea/visual-probe-regression.mjs && node scripts/rea/visual-probe-budget-regression.mjs && node scripts/rea/media-assets-regression.mjs && node scripts/rea/selected-artifact-text-regression.mjs && node scripts/rea/css-mcp-regression.mjs && node scripts/rea/css-runtime-integrity.mjs",
"test:rea-visual-live": "node scripts/rea/visual-probe-live-regression.mjs",
"test:visual-pixels": "node scripts/rea/compare-visual-pixels.mjs --self-test",
"test:font-platform": "node scripts/rea/capture-ycode-font-platform-fixture.mjs && node scripts/rea/verify-font-platform-parity.mjs .tmp/ycode-font-platform-selftest-reference.json .tmp/ycode-font-platform-selftest-result.json",
"verify:previews": "node scripts/verify-conversation-previews.cjs",
"test:pierre": "node scripts/rea/test-recovered-pierre-diff.mjs",
"test:tool-virtualizer": "node scripts/rea/test-recovered-tool-virtualizer.mjs",
"verify:pierre": "node scripts/verify-pierre-diff.cjs",
"rea:visual:capture": "node scripts/rea/capture-css.mjs --visuals",
"recover:conversation-styles": "node scripts/rea/recover-conversation-styles.mjs && node scripts/rea/recover-composer-styles.mjs && node scripts/rea/recover-question-styles.mjs && node scripts/rea/recover-task-styles.mjs && node scripts/rea/recover-tool-result-styles.mjs && node scripts/rea/recover-artifact-styles.mjs",
"recover:streaming-footer": "node scripts/rea/recover-streaming-loading-tips.mjs && node scripts/rea/recover-streaming-footer-styles.mjs",
"recover:conversation-icons": "node scripts/rea/recover-action-icons.mjs && node scripts/rea/recover-runtime-icons.mjs && node scripts/rea/recover-question-icons.mjs && node scripts/rea/recover-approval-icon.mjs",
"recover:modern-conversation-labels": "node scripts/rea/recover-modern-conversation-labels.mjs",
"test:modern-conversation-labels": "node scripts/rea/modern-conversation-labels-regression.mjs",
"test:tool-approvals": "esbuild scripts/tool-approval-regression.tsx --bundle --platform=node --format=cjs --jsx=automatic --loader:.css=text --outfile=.tmp/tool-approval-regression.cjs --log-level=error && node .tmp/tool-approval-regression.cjs",
"verify:conversation-states": "node scripts/verify-conversation-states.cjs",
"recover:fold-summary": "node scripts/rea/recover-fold-summary.mjs",
"test:fold-summary": "node scripts/rea/recovered-fold-summary-regression.mjs",
"test:tool-styles": "node scripts/rea/tool-result-styles-regression.mjs",
"test:workbuddy-import": "esbuild scripts/workbuddy-import-regression.ts --bundle --platform=node --format=esm --outfile=.tmp/workbuddy-import-regression.mjs --log-level=warning && node .tmp/workbuddy-import-regression.mjs",
"test:rea-conversation": "node scripts/rea/selected-conversation-regression.mjs",
"runtimes:prepare": "node scripts/prepare-runtime-bundle.mjs",
"runtimes:verify": "node scripts/verify-runtime-bundle.mjs",
"runtimes:smoke": "node scripts/smoke-runtime-bundle.mjs",
"test:runtime-bundle": "node --test scripts/runtime-bundle.test.mjs"
},
"dependencies": {
"@anthropic-ai/claude-agent-sdk": "^0.3.304",
"@anthropic-ai/sdk": "^0.135.0",
"@floating-ui/react": "0.27.20",
"@modelcontextprotocol/sdk": "^1.32.1",
"@xterm/addon-fit": "0.11.0",
"@xterm/xterm": "6.0.0",
"dompurify": "3.4.17",
"fflate": "^0.8.3",
"get-east-asian-width": "^1.4.0",
"html-react-parser": "^6.1.8",
"katex": "0.16.47",
"markdown-it": "^14.1.0",
"markdown-it-texmath": "^1.0.0",
"mermaid": "11.17.2",
"node-pty": "1.1.0",
"prismjs": "^1.30.0",
"react": "^19.3.0",
"react-dom": "^19.3.0",
"rrule": "^2.8.1",
"slate": "0.143.0",
"slate-dom": "0.142.0",
"slate-history": "0.140.0",
"slate-react": "0.142.0",
"svg-pan-zoom": "3.6.2",
"yaml": "^2.9.1",
"zod": "^4.6.7",
"zustand": "^5.0.15"
},
"devDependencies": {
"@babel/generator": "^8.0.6",
"@babel/parser": "^8.0.7",
"@resvg/resvg-js": "^2.6.2",
"@types/katex": "^0.16.8",
"@types/markdown-it": "^14.2.0",
"@types/node": "^26.6.5",
"@types/prismjs": "^1.26.6",
"@types/react": "^19.3.0",
"@types/react-dom": "^19.3.0",
"@types/svg-pan-zoom": "^3.3.0",
"@vitejs/plugin-react": "^6.1.2",
"7zip-bin": "5.2.0",
"electron": "^37.10.3",
"electron-builder": "^26.15.3",
"electron-vite": "^5.0.0",
"postcss": "8.5.30",
"typescript": "^7.0.2",
"vite": "^8.3.4"
},
"build": {
"appId": "com.ycode.app",
"productName": "YCode",
"directories": {
"output": "release",
"buildResources": "build"
},
"files": [
"out/**/*",
"package.json",
"!node_modules/@anthropic-ai/claude-agent-sdk-win32-x64/**"
],
"npmRebuild": false,
"asarUnpack": [
"node_modules/@anthropic-ai/claude-agent-sdk/**"
],
"extraResources": [
{
"from": "resources/updates/public-key.pem",
"to": "updates/public-key.pem"
},
{
"from": "resources/model-metadata",
"to": "model-metadata",
"filter": [
"models.dev.json",
"manifest.json",
"LICENSE"
]
},
{
"from": "node_modules/@anthropic-ai/claude-agent-sdk-win32-x64",
"to": "claude",
"filter": [
"claude.exe",
"LICENSE.md",
"README.md",
"package.json"
]
},
{
"from": "resources/icon.png",
"to": "icon.png"
},
{
"from": "resources/tray.png",
"to": "tray.png"
},
{
"from": "resources/runtimes",
"to": "runtimes",
"filter": [
"manifest.json",
"THIRD-PARTY-NOTICES.md",
"win32-x64/**/*"
]
}
],
"win": {
"icon": "build/icon.ico",
"artifactName": "YCode-${version}-Setup-${arch}.${ext}",
"target": [
"dir"
]
},
"nsis": {
"include": "build/installer.nsh",
"oneClick": false,
"perMachine": false,
"allowToChangeInstallationDirectory": true,
"deleteAppDataOnUninstall": false,
"createDesktopShortcut": true,
"createStartMenuShortcut": true,
"shortcutName": "YCode"
},
"beforePack": "./scripts/runtime-before-pack.cjs"
}
}