feat(server): add plugin manager#16
Draft
Emin017 wants to merge 16 commits intoekko/resource-managerfrom
Draft
Conversation
faac9e8 to
6c07e92
Compare
a9c9950 to
14ad148
Compare
- Added a new plugin API for managing EDA tools, including installation, uninstallation, and status tracking. - Introduced a `PluginToolsPanel` component for displaying and interacting with available tools. - Created a `PluginToolsView` to serve as the main interface for tool management. - Updated routing to include a new path for the tools view. - Enhanced the ECOS view to provide better navigation and integration with the new tools functionality. - Implemented a store for managing tool state and progress, improving user experience during installations.
… improved UX (#64) - Unify color system: replace hardcoded hex colors with CSS variables (--accent-color, --text-primary, --bg-primary, --border-color, etc.) - Add semantic status tokens (--info-*, --danger-*, --success-*, --warn-*) with dark mode variants to index.css - Add per-row action buttons: Install, Uninstall, Update, Retry - Remove dead UI elements: fake pagination, non-functional Change button, placeholder more-menu icon - Improve empty states with icons, guidance text, and clear-filters action - Complete dark mode coverage via CSS variables with minimal overrides - Refine responsive breakpoints: 3-col >1120px, tablet 768-1120px, mobile <768px - Optimize table: column grid, row height, uppercase headers, color-mix hover/selected states - Compact toolbar: pill-shaped search box aligned to 28px tab button height, icons added to status filter tabs - Fix selected panel layout: flex fill area for consistent button positions - Enlarge checkbox and fine-tune spacing throughout - Remove Platform column and Sky130/GF180 from PDK catalog --------- Signed-off-by: Emin <me@emin.chat> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-authored-by: KoEkko <114348497+KoEkko@users.noreply.github.com>
Signed-off-by: Emin <me@emin.chat>
Signed-off-by: Emin <me@emin.chat>
Signed-off-by: Emin <me@emin.chat>
Signed-off-by: Emin <me@emin.chat>
…try services Introduce the ecos_server.resource package with ResourceInfo/ResourceJob schemas, a local inventory service for tool and PDK manifest management, and a remote-first registry service with cache fallback. All 72 new tests pass alongside the existing 29 plugin tests. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add ToolResourceService wrapping plugin installer/manager behind resource APIs, PdkResourceService porting Tauri scan logic to Python (ics55/sky130 auto-detection), and JobTracker for SSE progress and duplicate detection. 140 tests passing (111 resource + 29 plugin, zero regressions). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Register resource router in main.py with registry URL config. Implements list, detail, install, uninstall, PDK scan/import/activate/validate/delete, registry refresh, and SSE event stream endpoints. 163 tests pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Prevent accidental commits of runtime registry cache and manifest JSON files. Resource Manager data policy requires these to stay local only. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…, 409, registry, router
- Unify SSE channels on resource:{resource_id} format
- Add archive traversal validation in installer (.. and absolute path rejection)
- Return structured 409 conflict detail with job_id and event_url
- Add ResourceRegistryV1 schema with explicit version validation
- Add batch, doctor, and DELETE /api/resources/pdks/{pdk_id} endpoints
- Reorder router: static routes before dynamic /{resource_id} routes
- Make /plugin registry service remote-first without bundled JSON default
- Add 8 new tests (archive traversal, registry schema, batch, doctor, PDK delete)
- 183 total tests passing
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…odule - Delete entire ecos_server/plugin/ (router, schemas, services, data, tests) - Move installer service to resource module (standalone, no ManagerService dep) - Move registry schemas (PlatformAsset, RegistryTool, ToolRegistry) to resource - Remove plugin router from main.py - Remove bundled tool-registry.json from pyproject.toml wheel packaging - Fix SSE double-publish: tools.py now callback-only, JobTracker owns SSE - Harden installer: reject tar symlinks, hardlinks, special files - Align ResourceRegistryV1 schema_version to 2 (per design spec) - Make PDK delete return 404 for missing entries - Complete batch contract: support install/uninstall/activate/validate/remove - Recreate installer tests (12) in tests/resource/ - 162 total tests passing Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ion test
- Remove generic DELETE /{resource_id} route (keep only /pdks/{pdk_id})
- Fix batch remove_reference to return 404 for missing PDKs
- Patch _tool_service.install in router install tests for determinism
- Add SSE subscription test proving one event per JobTracker.publish
- Add batch remove_reference missing 404 test
- 164 tests passing
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Add batch tests: install acceptance, install unknown tool, activate, validate - Batch install tests use _patch_installer() for determinism - Expand .gitignore: resources/manifest.json, tools/manifest.json, manifest.json - 168 tests passing Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ble, remove dead imports - Extract batch_operations into dispatch table with focused per-action helpers - Add _utc_now_iso() and _to_tool_registry() to eliminate duplicate code - Simplify validate() in PDK service to single compute/set/return - Use _TOOL_PREFIX/_PDK_PREFIX constants to replace magic string literals - Remove unused imports and promote function-local imports to module level Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
a3c7e1a to
044cb08
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.