mirror of
https://github.com/ZSeven-W/openpencil.git
synced 2026-06-01 03:14:29 +07:00
* feat(ai): add agent identity system with visual indicators for concurrent generation - Agent identity: assign unique colors and names to each sub-agent - Canvas indicators: breathing glow border + name pill above streaming nodes - Preview effect: outline appears 500ms before element materializes - Screen grouping: subtasks with same `screen` field share one root frame, fixing multi-page apps being split into too many frames - Screen-level parallelism: subtasks within same screen run sequentially (preserving section order), different screens run in parallel * fix(canvas): make agent indicator visual effect much more dramatic - Outer glow: 8px soft border for visible halo effect - Inner border: 2.5px sharp crisp border at high alpha - Preview fill: 10-15% alpha (was ~1% before, essentially invisible) - Breathing: faster cycle (400ms), higher range [0.35, 0.95] - Name pill: larger font (11px), bold 700, drop shadow - Pill dedup: only draw one name pill per agent (not per node) - Rounded rect helper for polished pill rendering * fix(canvas): use globalThis for agent indicator state to prevent module isolation Vite module splitting can create separate module instances for the same file when imported from different chunks. This causes the indicator Map written by the orchestrator (services/ai/) to be a different instance than the one read by the canvas hook (canvas/). Using globalThis guarantees a single shared instance across all chunks. * feat(i18n): enhance internationalization support by integrating i18next for translation in various components. Added new dependencies: i18next, i18next-browser-languagedetector, and react-i18next. Updated UI elements in the editor, toolbar, and status bar to utilize translation keys for improved localization. Enhanced README with language options for better accessibility. * feat(auto-update): implement auto-update functionality with settings management - Added auto-update feature to check for updates at app startup and periodically while running. - Introduced settings for enabling/disabling auto-update, stored in a JSON file. - Integrated IPC handlers to manage auto-update settings from the renderer process. - Created new API endpoints for managing MCP server status, including start/stop functionality. - Enhanced the UI to support theme presets, allowing users to save and load variable presets. - Updated internationalization support for new UI elements related to auto-update and presets. * feat(ai): add element boundaries to orchestrator subtask planning Orchestrator now outputs an "elements" field per subtask listing the specific UI elements it owns. Sub-agent prompts display these boundaries so each agent knows exactly what to generate and what belongs to other sections, preventing content duplication across subtasks. Also includes: sequential cascade reveal animation, agent indicator recursive tagging, delayed indicator removal, single-agent identity for sequential mode, model name truncation fix. * chore(package): bump version to 0.2.0 --------- Co-authored-by: Fini <fini.yang@gmail.com>
88 lines
No EOL
4.2 KiB
JSON
88 lines
No EOL
4.2 KiB
JSON
{
|
|
"name": "openpencil",
|
|
"version": "0.2.0",
|
|
"description": "Open-source vector design tool with Design-as-Code philosophy",
|
|
"author": {
|
|
"name": "ZSeven-W",
|
|
"email": "xkayshen@gmail.com"
|
|
},
|
|
"private": true,
|
|
"type": "module",
|
|
"main": "electron-dist/main.cjs",
|
|
"bin": {
|
|
"openpencil-mcp": "dist/mcp-server.cjs"
|
|
},
|
|
"scripts": {
|
|
"dev": "bun --bun vite dev --port 3000",
|
|
"build": "bun --bun vite build",
|
|
"preview": "bun --bun vite preview",
|
|
"test": "bun --bun vitest run --passWithNoTests",
|
|
"mcp:compile": "esbuild src/mcp/server.ts --bundle --platform=node --target=node20 --outfile=dist/mcp-server.cjs --format=cjs --sourcemap --alias:@=src",
|
|
"mcp:dev": "bun run src/mcp/server.ts",
|
|
"electron:dev": "bun run scripts/electron-dev.ts",
|
|
"electron:compile": "esbuild electron/main.ts electron/preload.ts --bundle --platform=node --target=node20 --outdir=electron-dist --external:electron --format=cjs --out-extension:.js=.cjs --sourcemap",
|
|
"electron:build": "BUILD_TARGET=electron bun --bun run build && bun run electron:compile && bun run mcp:compile && npx electron-builder --config electron-builder.yml",
|
|
"electron:build:mac-arm64": "BUILD_TARGET=electron bun --bun run build && bun run electron:compile && bun run mcp:compile && npx electron-builder --config electron-builder.yml --mac --arm64 && if [ -f dist-electron/latest-mac.yml ]; then mv dist-electron/latest-mac.yml dist-electron/latest-mac-arm64.yml; fi",
|
|
"electron:build:mac-x64": "BUILD_TARGET=electron bun --bun run build && bun run electron:compile && bun run mcp:compile && npx electron-builder --config electron-builder.yml --mac --x64",
|
|
"electron:build:mac-universal": "BUILD_TARGET=electron bun --bun run build && bun run electron:compile && bun run mcp:compile && npx electron-builder --config electron-builder.yml --mac --arm64 --x64",
|
|
"electron:build:mac-both": "bun run electron:build:mac-arm64 && bun run electron:build:mac-x64"
|
|
},
|
|
"dependencies": {
|
|
"@anthropic-ai/claude-agent-sdk": "^0.2.47",
|
|
"@anthropic-ai/sdk": "^0.77.0",
|
|
"@iconify-json/feather": "^1.2.1",
|
|
"@iconify-json/lucide": "^1.2.93",
|
|
"@iconify-json/simple-icons": "^1.2.71",
|
|
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
"@opencode-ai/sdk": "1.2.6",
|
|
"@radix-ui/react-select": "^2.2.6",
|
|
"@radix-ui/react-separator": "^1.1.8",
|
|
"@radix-ui/react-slider": "^1.3.6",
|
|
"@radix-ui/react-switch": "^1.2.6",
|
|
"@radix-ui/react-toggle": "^1.1.10",
|
|
"@radix-ui/react-tooltip": "^1.2.8",
|
|
"@tailwindcss/vite": "^4.1.18",
|
|
"@tanstack/react-devtools": "^0.7.0",
|
|
"@tanstack/react-router": "^1.132.0",
|
|
"@tanstack/react-router-devtools": "^1.132.0",
|
|
"@tanstack/react-router-ssr-query": "^1.131.7",
|
|
"@tanstack/react-start": "^1.132.0",
|
|
"@tanstack/router-plugin": "^1.132.0",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"electron-updater": "^6.6.2",
|
|
"fabric": "^7.1.0",
|
|
"fzstd": "^0.1.1",
|
|
"i18next": "^25.8.14",
|
|
"i18next-browser-languagedetector": "^8.2.1",
|
|
"kiwi-schema": "^0.5.0",
|
|
"lucide-react": "^0.545.0",
|
|
"nanoid": "^5.1.6",
|
|
"nitro": "npm:nitro-nightly@latest",
|
|
"react": "^19.2.0",
|
|
"react-dom": "^19.2.0",
|
|
"react-i18next": "^16.5.4",
|
|
"tailwind-merge": "^3.4.1",
|
|
"tailwindcss": "^4.1.18",
|
|
"uzip": "^0.20201231.0",
|
|
"vite-tsconfig-paths": "^5.1.4",
|
|
"zustand": "^5.0.11"
|
|
},
|
|
"devDependencies": {
|
|
"@tanstack/devtools-vite": "^0.3.11",
|
|
"@testing-library/dom": "^10.4.0",
|
|
"@testing-library/react": "^16.2.0",
|
|
"@types/node": "^22.10.2",
|
|
"@types/react": "^19.2.0",
|
|
"@types/react-dom": "^19.2.0",
|
|
"@types/uzip": "^0.20201231.2",
|
|
"@vitejs/plugin-react": "^5.0.4",
|
|
"electron": "^35.0.0",
|
|
"electron-builder": "^26.0.0",
|
|
"esbuild": "^0.25.0",
|
|
"jsdom": "^27.0.0",
|
|
"typescript": "^5.7.2",
|
|
"vite": "^7.1.7",
|
|
"vitest": "^3.0.5"
|
|
}
|
|
} |