mirror of
https://github.com/soconnor0919/hristudio.git
synced 2025-12-11 14:44:44 -05:00
• Fix repository sync implementation in admin API (was TODO placeholder) - Add full fetch/parse logic for repository.json and plugin index - Implement robot matching by name/manufacturer patterns - Handle plugin creation/updates with proper error handling - Add comprehensive TypeScript typing throughout • Fix plugin store installation state detection - Add getStudyPlugins API integration to check installed plugins - Update PluginCard component with isInstalled prop and correct button states - Fix repository name display using metadata.repositoryId mapping - Show "Installed" (disabled) vs "Install" (enabled) based on actual state • Resolve admin access and authentication issues - Add missing administrator role to user system roles table - Fix admin route access for repository management - Enable repository sync functionality in admin dashboard • Add repository metadata integration - Update plugin records with proper repositoryId references - Add metadata field to robots.plugins.list API response - Enable repository name display for all plugins from metadata • Fix TypeScript compliance across plugin system - Replace unsafe 'any' types with proper interfaces - Add type definitions for repository and plugin data structures - Use nullish coalescing operators for safer null handling - Remove unnecessary type assertions • Integrate live repository at https://repo.hristudio.com - Successfully loads 3 robot plugins (TurtleBot3 Burger/Waffle, NAO) - Complete ROS2 action definitions with parameter schemas - Trust level categorization (official, verified, community) - Platform and documentation metadata preservation • Update documentation and development workflow - Document plugin repository system in work_in_progress.md - Update quick-reference.md with repository sync examples - Add plugin installation and management guidance - Remove problematic test script with TypeScript errors BREAKING CHANGE: Plugin store now requires repository sync for robot plugins. Run repository sync in admin dashboard after deployment to populate plugin store. Closes: Plugin store repository integration Resolves: Installation state detection and repository name display Fixes: Admin authentication and TypeScript compliance issues
110 lines
3.5 KiB
JSON
110 lines
3.5 KiB
JSON
{
|
|
"name": "hristudio",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"build": "next build",
|
|
"check": "next lint && tsc --noEmit",
|
|
"db:generate": "drizzle-kit generate",
|
|
"db:migrate": "drizzle-kit migrate",
|
|
"db:push": "drizzle-kit push",
|
|
"db:studio": "drizzle-kit studio",
|
|
"db:seed": "bun scripts/seed-dev.ts",
|
|
"db:seed:simple": "bun scripts/seed-simple.ts",
|
|
"db:seed:plugins": "bun scripts/seed-plugins.ts",
|
|
"db:seed:core-blocks": "bun scripts/seed-core-blocks.ts",
|
|
"db:seed:full": "bun scripts/seed.ts",
|
|
"dev": "next dev --turbo",
|
|
"docker:up": "colima start && docker-compose up -d",
|
|
"docker:down": "docker-compose down && colima stop",
|
|
"format:check": "prettier --check \"**/*.{ts,tsx,js,jsx,mdx}\" --cache",
|
|
"format:write": "prettier --write \"**/*.{ts,tsx,js,jsx,mdx}\" --cache",
|
|
"lint": "next lint",
|
|
"lint:fix": "next lint --fix",
|
|
"preview": "next build && next start",
|
|
"start": "next start",
|
|
"typecheck": "tsc --noEmit"
|
|
},
|
|
"dependencies": {
|
|
"@auth/drizzle-adapter": "^1.10.0",
|
|
"@aws-sdk/client-s3": "^3.859.0",
|
|
"@aws-sdk/s3-request-presigner": "^3.859.0",
|
|
"@dnd-kit/core": "^6.3.1",
|
|
"@dnd-kit/sortable": "^10.0.0",
|
|
"@dnd-kit/utilities": "^3.2.2",
|
|
"@hookform/resolvers": "^5.1.1",
|
|
"@radix-ui/react-accordion": "^1.2.11",
|
|
"@radix-ui/react-alert-dialog": "^1.1.14",
|
|
"@radix-ui/react-avatar": "^1.1.10",
|
|
"@radix-ui/react-checkbox": "^1.3.2",
|
|
"@radix-ui/react-collapsible": "^1.1.11",
|
|
"@radix-ui/react-dialog": "^1.1.14",
|
|
"@radix-ui/react-dropdown-menu": "^2.1.15",
|
|
"@radix-ui/react-label": "^2.1.7",
|
|
"@radix-ui/react-progress": "^1.1.7",
|
|
"@radix-ui/react-scroll-area": "^1.2.9",
|
|
"@radix-ui/react-select": "^2.2.5",
|
|
"@radix-ui/react-separator": "^1.1.7",
|
|
"@radix-ui/react-slot": "^1.2.3",
|
|
"@radix-ui/react-switch": "^1.2.5",
|
|
"@radix-ui/react-tabs": "^1.1.12",
|
|
"@radix-ui/react-tooltip": "^1.2.7",
|
|
"@shadcn/ui": "^0.0.4",
|
|
"@t3-oss/env-nextjs": "^0.13.8",
|
|
"@tanstack/react-query": "^5.69.0",
|
|
"@tanstack/react-table": "^8.21.3",
|
|
"@trpc/client": "^11.0.0",
|
|
"@trpc/react-query": "^11.0.0",
|
|
"@trpc/server": "^11.0.0",
|
|
"@types/ws": "^8.18.1",
|
|
"bcryptjs": "^3.0.2",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"cmdk": "^1.1.1",
|
|
"date-fns": "^4.1.0",
|
|
"drizzle-orm": "^0.41.0",
|
|
"lucide-react": "^0.536.0",
|
|
"next": "^15.4.6",
|
|
"next-auth": "^5.0.0-beta.29",
|
|
"postgres": "^3.4.4",
|
|
"react": "^19.0.0",
|
|
"react-dom": "^19.0.0",
|
|
"react-hook-form": "^7.60.0",
|
|
"react-resizable-panels": "^3.0.4",
|
|
"server-only": "^0.0.1",
|
|
"sonner": "^2.0.7",
|
|
"superjson": "^2.2.1",
|
|
"tailwind-merge": "^3.3.1",
|
|
"ws": "^8.18.3",
|
|
"zod": "^4.0.5"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/eslintrc": "^3.3.1",
|
|
"@tailwindcss/postcss": "^4.0.15",
|
|
"@types/bcryptjs": "^3.0.0",
|
|
"@types/node": "^20.14.10",
|
|
"@types/react": "^19.0.0",
|
|
"@types/react-dom": "^19.0.0",
|
|
"drizzle-kit": "^0.30.5",
|
|
"eslint": "^9.23.0",
|
|
"eslint-config-next": "^15.2.3",
|
|
"eslint-plugin-drizzle": "^0.2.3",
|
|
"postcss": "^8.5.3",
|
|
"prettier": "^3.5.3",
|
|
"prettier-plugin-tailwindcss": "^0.6.11",
|
|
"tailwindcss": "^4.0.15",
|
|
"ts-unused-exports": "^11.0.1",
|
|
"tw-animate-css": "^1.3.5",
|
|
"typescript": "^5.8.2",
|
|
"typescript-eslint": "^8.27.0"
|
|
},
|
|
"ct3aMetadata": {
|
|
"initVersion": "7.39.3"
|
|
},
|
|
"trustedDependencies": [
|
|
"@tailwindcss/oxide",
|
|
"unrs-resolver"
|
|
]
|
|
}
|