From 968e19047bfbe8df117c377b2acd37fe668f811e Mon Sep 17 00:00:00 2001 From: Smartsheet-JB-Brown Date: Fri, 18 Apr 2025 10:23:02 -0700 Subject: [PATCH] rebrand to Marketplace --- cline_docs/marketplace/README.md | 50 +++++++++ .../implementation/01-architecture.md | 20 ++-- .../implementation/02-core-components.md | 8 +- .../implementation/03-data-structures.md | 8 +- .../implementation/04-search-and-filter.md | 6 +- .../implementation/05-ui-components.md | 24 ++-- .../implementation/06-testing-strategy.md | 22 ++-- .../implementation/07-extending.md | 18 +-- .../user-guide/01-introduction.md | 22 ++-- .../user-guide/02-browsing-packages.md | 90 ++++++++------- .../user-guide/03-searching-and-filtering.md | 54 ++++----- .../user-guide/04-working-with-details.md | 8 +- .../user-guide/05-adding-packages.md | 36 +++--- .../user-guide/06-adding-custom-sources.md | 48 ++++---- cline_docs/package-manager/README.md | 50 --------- .../package_manager/implementation/README.md | 35 ------ package.json | 2 +- src/services/package-manager/constants.ts | 2 +- webview-ui/src/App.tsx | 10 +- .../package-manager/PackageManagerView.tsx | 16 +-- .../PackageManagerViewStateManager.ts | 106 ++++++++++++++---- .../PackageManagerViewStateManager.test.ts | 8 +- .../package-manager/useStateManager.ts | 11 +- .../src/i18n/locales/ca/package-manager.json | 12 +- .../src/i18n/locales/de/package-manager.json | 12 +- .../src/i18n/locales/en/package-manager.json | 20 +++- .../src/i18n/locales/es/package-manager.json | 12 +- .../src/i18n/locales/fr/package-manager.json | 12 +- .../src/i18n/locales/hi/package-manager.json | 12 +- .../src/i18n/locales/it/package-manager.json | 12 +- .../src/i18n/locales/ja/package-manager.json | 12 +- .../src/i18n/locales/ko/package-manager.json | 12 +- .../src/i18n/locales/pl/package-manager.json | 12 +- .../i18n/locales/pt-BR/package-manager.json | 12 +- .../src/i18n/locales/tr/package-manager.json | 12 +- .../src/i18n/locales/vi/package-manager.json | 12 +- .../i18n/locales/zh-CN/package-manager.json | 12 +- .../i18n/locales/zh-TW/package-manager.json | 12 +- 38 files changed, 452 insertions(+), 390 deletions(-) create mode 100644 cline_docs/marketplace/README.md rename cline_docs/{package-manager => marketplace}/implementation/01-architecture.md (91%) rename cline_docs/{package-manager => marketplace}/implementation/02-core-components.md (96%) rename cline_docs/{package-manager => marketplace}/implementation/03-data-structures.md (96%) rename cline_docs/{package-manager => marketplace}/implementation/04-search-and-filter.md (96%) rename cline_docs/{package-manager => marketplace}/implementation/05-ui-components.md (96%) rename cline_docs/{package-manager => marketplace}/implementation/06-testing-strategy.md (97%) rename cline_docs/{package-manager => marketplace}/implementation/07-extending.md (96%) rename cline_docs/{package-manager => marketplace}/user-guide/01-introduction.md (63%) rename cline_docs/{package-manager => marketplace}/user-guide/02-browsing-packages.md (62%) rename cline_docs/{package-manager => marketplace}/user-guide/03-searching-and-filtering.md (65%) rename cline_docs/{package-manager => marketplace}/user-guide/04-working-with-details.md (85%) rename cline_docs/{package-manager => marketplace}/user-guide/05-adding-packages.md (86%) rename cline_docs/{package-manager => marketplace}/user-guide/06-adding-custom-sources.md (72%) delete mode 100644 cline_docs/package-manager/README.md delete mode 100644 cline_docs/package_manager/implementation/README.md diff --git a/cline_docs/marketplace/README.md b/cline_docs/marketplace/README.md new file mode 100644 index 0000000000..2c78fe3440 --- /dev/null +++ b/cline_docs/marketplace/README.md @@ -0,0 +1,50 @@ +# Marketplace Documentation + +This directory contains comprehensive documentation for the Roo Code Marketplace, including both user guides and implementation details. + +## Documentation Structure + +### User Guide + +The user guide provides end-user documentation for using the Marketplace: + +1. [Introduction to Marketplace](./user-guide/01-introduction.md) - Overview and purpose of the Marketplace +2. [Browsing Packages](./user-guide/02-browsing-packages.md) - Understanding the interface and navigating items +3. [Searching and Filtering](./user-guide/03-searching-and-filtering.md) - Using search and filters to find items +4. [Working with Package Details](./user-guide/04-working-with-details.md) - Exploring package details and subcomponents +5. [Adding Packages](./user-guide/05-adding-packages.md) - Creating and contributing your own items and package +6. [Adding Custom Sources](./user-guide/06-adding-custom-sources.md) - Setting up and managing custom sources + +### Implementation Documentation + +The implementation documentation provides technical details for developers: + +1. [Architecture](./implementation/01-architecture.md) - High-level architecture of the Marketplace +2. [Core Components](./implementation/02-core-components.md) - Key components and their responsibilities +3. [Data Structures](./implementation/03-data-structures.md) - Data models and structures used in the Marketplace +4. [Search and Filter](./implementation/04-search-and-filter.md) - Implementation of search and filtering functionality + +## Key Features + +The Marketplace provides the following key features: + +- **Component Discovery**: Browse and search for items +- **Package Management**: Add packages of items to your environment +- **Custom Sources**: Add your own repositories of team or private Marketplaces +- **Localization Support**: View items in your preferred language +- **Filtering**: Filter components by type, search term, and tags + +## Default Marketplace Repository + +The default Marketplace repository is located at: +[https://github.com/RooVetGit/Roo-Code-Marketplace](https://github.com/RooVetGit/Roo-Code-Marketplace) + +## Contributing + +To contribute to the Marketplace documentation: + +1. Make your changes to the relevant markdown files +2. Ensure that your changes are accurate and consistent with the actual implementation +3. Submit a pull request with your changes + +For code changes to the Marketplace itself, please refer to the main [CONTRIBUTING.md](../../CONTRIBUTING.md) file. diff --git a/cline_docs/package-manager/implementation/01-architecture.md b/cline_docs/marketplace/implementation/01-architecture.md similarity index 91% rename from cline_docs/package-manager/implementation/01-architecture.md rename to cline_docs/marketplace/implementation/01-architecture.md index ca3cda2108..5ffcce10b4 100644 --- a/cline_docs/package-manager/implementation/01-architecture.md +++ b/cline_docs/marketplace/implementation/01-architecture.md @@ -1,16 +1,16 @@ -# Package Manager Architecture +# Marketplace Architecture -This document provides a comprehensive overview of the Package Manager's architecture, including its components, interactions, and data flow. +This document provides a comprehensive overview of the Marketplace's architecture, including its components, interactions, and data flow. ## System Overview -The Package Manager is built on a modular architecture that separates concerns between data management, UI rendering, and user interactions. The system consists of several key components that work together to provide a seamless experience for discovering, browsing, and managing packages. +The Marketplace is built on a modular architecture that separates concerns between data management, UI rendering, and user interactions. The system consists of several key components that work together to provide a seamless experience for discovering, browsing, and managing packages. ### High-Level Architecture ```mermaid graph TD - User[User] -->|Interacts with| UI[Package Manager UI] + User[User] -->|Interacts with| UI[Marketplace UI] UI -->|Sends messages| MH[Message Handler] MH -->|Processes requests| PM[PackageManagerManager] PM -->|Validates sources| PSV[PackageManagerSourceValidation] @@ -31,7 +31,7 @@ The architecture follows a message-based pattern where: ## Component Interactions -The Package Manager components interact through a well-defined message flow: +The Marketplace components interact through a well-defined message flow: ### Core Interaction Patterns @@ -57,7 +57,7 @@ The Package Manager components interact through a well-defined message flow: ## Data Flow Diagram -The following diagram illustrates the data flow through the Package Manager system: +The following diagram illustrates the data flow through the Marketplace system: ```mermaid graph LR @@ -106,7 +106,7 @@ sequenceDiagram participant MS as MetadataScanner participant FS as File System/Git - User->>UI: Open Package Manager + User->>UI: Open Marketplace UI->>MH: Send init message MH->>PM: Initialize PM->>GF: Request repository data @@ -158,7 +158,7 @@ sequenceDiagram ### Core Classes -The following class diagram shows the main classes in the Package Manager system: +The following class diagram shows the main classes in the Marketplace system: ```mermaid classDiagram @@ -297,7 +297,7 @@ classDiagram ## Performance Considerations -The Package Manager architecture addresses several performance challenges: +The Marketplace architecture addresses several performance challenges: 1. **Concurrency Control**: @@ -345,7 +345,7 @@ The architecture includes robust error handling: ## Extensibility Points -The Package Manager architecture is designed for extensibility: +The Marketplace architecture is designed for extensibility: 1. **Repository Sources**: diff --git a/cline_docs/package-manager/implementation/02-core-components.md b/cline_docs/marketplace/implementation/02-core-components.md similarity index 96% rename from cline_docs/package-manager/implementation/02-core-components.md rename to cline_docs/marketplace/implementation/02-core-components.md index f274795de8..8ce55b4650 100644 --- a/cline_docs/package-manager/implementation/02-core-components.md +++ b/cline_docs/marketplace/implementation/02-core-components.md @@ -1,6 +1,6 @@ # Core Components -This document provides detailed information about the core components of the Package Manager system, their responsibilities, implementation details, and interactions. +This document provides detailed information about the core components of the Marketplace system, their responsibilities, implementation details, and interactions. ## GitFetcher @@ -130,7 +130,7 @@ class MetadataScanner { ## PackageManagerManager -The PackageManagerManager is the central component that manages package data, caching, and operations. +The PackageManagerManager is the central component that manages marketplace data, caching, and operations. ### Responsibilities @@ -236,7 +236,7 @@ The filtering system provides rich functionality: ## PackageManagerSourceValidation -The PackageManagerSourceValidation component handles validation of package manager sources and their configurations. +The PackageManagerSourceValidation component handles validation of marketplace sources and their configurations. ### Responsibilities @@ -424,4 +424,4 @@ The system includes several optimizations: --- -**Previous**: [Package Manager Architecture](./01-architecture.md) | **Next**: [Data Structures](./03-data-structures.md) +**Previous**: [Marketplace Architecture](./01-architecture.md) | **Next**: [Data Structures](./03-data-structures.md) diff --git a/cline_docs/package-manager/implementation/03-data-structures.md b/cline_docs/marketplace/implementation/03-data-structures.md similarity index 96% rename from cline_docs/package-manager/implementation/03-data-structures.md rename to cline_docs/marketplace/implementation/03-data-structures.md index b7b2012780..220e0843c4 100644 --- a/cline_docs/package-manager/implementation/03-data-structures.md +++ b/cline_docs/marketplace/implementation/03-data-structures.md @@ -1,10 +1,10 @@ # Data Structures -This document details the key data structures used in the Package Manager, including their definitions, relationships, and usage patterns. +This document details the key data structures used in the Marketplace, including their definitions, relationships, and usage patterns. ## Package and Component Types -The Package Manager uses a type system to categorize different kinds of components: +The Marketplace uses a type system to categorize different kinds of components: ### ComponentType Enumeration @@ -15,7 +15,7 @@ The Package Manager uses a type system to categorize different kinds of componen export type ComponentType = "mode" | "prompt" | "package" | "mcp server" ``` -These types represent the different kinds of components that can be managed by the Package Manager: +These types represent the different kinds of components that can be managed by the Marketplace: 1. **mode**: AI assistant personalities with specialized capabilities 2. **prompt**: Pre-configured instructions for specific tasks @@ -451,7 +451,7 @@ Supports: ## Data Flow -The Package Manager transforms data through several stages: +The Marketplace transforms data through several stages: 1. **Repository Level**: diff --git a/cline_docs/package-manager/implementation/04-search-and-filter.md b/cline_docs/marketplace/implementation/04-search-and-filter.md similarity index 96% rename from cline_docs/package-manager/implementation/04-search-and-filter.md rename to cline_docs/marketplace/implementation/04-search-and-filter.md index a941a39347..d6c9bf3cf2 100644 --- a/cline_docs/package-manager/implementation/04-search-and-filter.md +++ b/cline_docs/marketplace/implementation/04-search-and-filter.md @@ -1,10 +1,10 @@ # Search and Filter Implementation -This document details the implementation of search and filtering functionality in the Package Manager, including algorithms, optimization techniques, and performance considerations. +This document details the implementation of search and filtering functionality in the Marketplace, including algorithms, optimization techniques, and performance considerations. ## Core Filter System -The Package Manager implements a comprehensive filtering system that handles multiple filter types, concurrent operations, and detailed match tracking. +The Marketplace implements a comprehensive filtering system that handles multiple filter types, concurrent operations, and detailed match tracking. ### Filter Implementation @@ -133,7 +133,7 @@ function addMatchInfo(item: PackageManagerItem, filters: Filters): PackageManage ## Sort System -The Package Manager implements flexible sorting with subcomponent support: +The Marketplace implements flexible sorting with subcomponent support: ```typescript /** diff --git a/cline_docs/package-manager/implementation/05-ui-components.md b/cline_docs/marketplace/implementation/05-ui-components.md similarity index 96% rename from cline_docs/package-manager/implementation/05-ui-components.md rename to cline_docs/marketplace/implementation/05-ui-components.md index c8343e1ace..683d58ab43 100644 --- a/cline_docs/package-manager/implementation/05-ui-components.md +++ b/cline_docs/marketplace/implementation/05-ui-components.md @@ -1,10 +1,10 @@ # UI Component Design -This document details the design and implementation of the Package Manager's UI components, including their structure, styling, interactions, and accessibility features. +This document details the design and implementation of the Marketplace's UI components, including their structure, styling, interactions, and accessibility features. ## PackageManagerView -The PackageManagerView is the main container component that manages the overall package manager interface. +The PackageManagerView is the main container component that manages the overall marketplace interface. ### Component Structure @@ -498,7 +498,7 @@ export const TypeGroup: React.FC = ({ type, items, className, se ## Source Configuration Components -The Package Manager includes components for managing package sources. +The Marketplace includes components for managing package sources. ### SourcesView @@ -543,8 +543,8 @@ const SourcesView: React.FC = ({ sources, refreshingUrls, onRe return (
-

Configure Package Manager Sources

-

Add Git repositories containing package manager items.

+

Configure Marketplace Sources

+

Add Git repositories containing marketplace items.

{/* Source form */}
@@ -592,7 +592,7 @@ const SourcesView: React.FC = ({ sources, refreshingUrls, onRe ## Filter Components -The Package Manager includes components for filtering and searching. +The Marketplace includes components for filtering and searching. ### SearchInput @@ -703,7 +703,7 @@ const TagFilterGroup: React.FC<{ ## Styling Approach -The Package Manager UI uses a combination of Tailwind CSS and VSCode theme variables for styling. +The Marketplace UI uses a combination of Tailwind CSS and VSCode theme variables for styling. ### VSCode Theme Integration @@ -758,7 +758,7 @@ export function cn(...inputs: ClassValue[]) { ## Responsive Design -The Package Manager UI is designed to work across different viewport sizes: +The Marketplace UI is designed to work across different viewport sizes: ### Layout Adjustments @@ -794,7 +794,7 @@ For smaller screens: ## Accessibility Features -The Package Manager UI includes several accessibility features: +The Marketplace UI includes several accessibility features: ### Keyboard Navigation @@ -859,7 +859,7 @@ The UI ensures sufficient color contrast for all text: ## Animation and Transitions -The Package Manager UI uses subtle animations to enhance the user experience: +The Marketplace UI uses subtle animations to enhance the user experience: ### Expand/Collapse Animation @@ -895,7 +895,7 @@ The Package Manager UI uses subtle animations to enhance the user experience: ## Error Handling in UI -The Package Manager UI includes graceful error handling: +The Marketplace UI includes graceful error handling: ### Error States @@ -958,7 +958,7 @@ const PackageCardSkeleton: React.FC = () => { ## Component Testing -The Package Manager UI components include comprehensive tests: +The Marketplace UI components include comprehensive tests: ### Unit Tests diff --git a/cline_docs/package-manager/implementation/06-testing-strategy.md b/cline_docs/marketplace/implementation/06-testing-strategy.md similarity index 97% rename from cline_docs/package-manager/implementation/06-testing-strategy.md rename to cline_docs/marketplace/implementation/06-testing-strategy.md index 3edb9cc446..5814ec17fb 100644 --- a/cline_docs/package-manager/implementation/06-testing-strategy.md +++ b/cline_docs/marketplace/implementation/06-testing-strategy.md @@ -1,10 +1,10 @@ # Testing Strategy -This document outlines the comprehensive testing strategy for the Package Manager, including unit tests, integration tests, and test data management. +This document outlines the comprehensive testing strategy for the Marketplace, including unit tests, integration tests, and test data management. ## Testing Philosophy -The Package Manager follows a multi-layered testing approach to ensure reliability and maintainability: +The Marketplace follows a multi-layered testing approach to ensure reliability and maintainability: 1. **Unit Testing**: Testing individual components in isolation 2. **Integration Testing**: Testing interactions between components @@ -16,7 +16,7 @@ The Package Manager follows a multi-layered testing approach to ensure reliabili ### Required Dependencies -The Package Manager requires specific testing dependencies: +The Marketplace requires specific testing dependencies: ```json { @@ -585,7 +585,7 @@ describe("Package Manager UI Integration", () => { ## Test Data Management -The Package Manager uses several approaches to manage test data: +The Marketplace uses several approaches to manage test data: ### Mock Data @@ -719,7 +719,7 @@ function generateSubcomponents(count: number): PackageManagerItem["items"] { ## Type Filter Test Plan -This section outlines the test plan for the type filtering functionality in the Package Manager, particularly focusing on the improvements to make type filter behavior consistent with search term behavior. +This section outlines the test plan for the type filtering functionality in the Marketplace, particularly focusing on the improvements to make type filter behavior consistent with search term behavior. ### Unit Tests @@ -906,7 +906,7 @@ This section outlines the test plan for the type filtering functionality in the ## Test Organization -The Package Manager tests are organized by functionality rather than by file structure: +The Marketplace tests are organized by functionality rather than by file structure: ### Consolidated Test Files @@ -941,7 +941,7 @@ describe("Package Manager", () => { ## Test Coverage -The Package Manager maintains high test coverage: +The Marketplace maintains high test coverage: ### Coverage Goals @@ -984,7 +984,7 @@ Critical paths have additional test coverage: ## Test Performance -The Package Manager tests are optimized for performance: +The Marketplace tests are optimized for performance: ### Fast Unit Tests @@ -1032,7 +1032,7 @@ module.exports = { ## Continuous Integration -The Package Manager tests are integrated into the CI/CD pipeline: +The Marketplace tests are integrated into the CI/CD pipeline: ### GitHub Actions Workflow @@ -1088,7 +1088,7 @@ jobs: ## Test Debugging -The Package Manager includes tools for debugging tests: +The Marketplace includes tools for debugging tests: ### Debug Logging @@ -1129,7 +1129,7 @@ describe("UI component test", () => { ## Test Documentation -The Package Manager tests include comprehensive documentation: +The Marketplace tests include comprehensive documentation: ### Test Comments diff --git a/cline_docs/package-manager/implementation/07-extending.md b/cline_docs/marketplace/implementation/07-extending.md similarity index 96% rename from cline_docs/package-manager/implementation/07-extending.md rename to cline_docs/marketplace/implementation/07-extending.md index f0f55778f8..fd85b45f82 100644 --- a/cline_docs/package-manager/implementation/07-extending.md +++ b/cline_docs/marketplace/implementation/07-extending.md @@ -1,10 +1,10 @@ -# Extending the Package Manager +# Extending the Marketplace -This document provides guidance on extending the Package Manager with new features, component types, and customizations. +This document provides guidance on extending the Marketplace with new features, component types, and customizations. ## Adding New Component Types -The Package Manager is designed to be extensible, allowing for the addition of new component types beyond the default ones (mode, mcp server, prompt, package). +The Marketplace is designed to be extensible, allowing for the addition of new component types beyond the default ones (mode, mcp server, prompt, package). ### Extending the ComponentType @@ -178,7 +178,7 @@ templateFor: "your-component-type" ### Template Registration -Register your template with the Package Manager: +Register your template with the Marketplace: ```typescript // In your extension code @@ -204,7 +204,7 @@ const createFromTemplate = (templateName: string) => { ## Implementing New Features -The Package Manager is designed to be extended with new features. Here's how to implement common types of features: +The Marketplace is designed to be extended with new features. Here's how to implement common types of features: ### Adding a New Filter Type @@ -391,7 +391,7 @@ case "customAction": ## Customizing the UI -The Package Manager UI can be customized in several ways: +The Marketplace UI can be customized in several ways: ### Custom Styling @@ -546,7 +546,7 @@ const CustomLayout: React.FC<{ ## Extending Backend Functionality -The Package Manager backend can be extended with new functionality: +The Marketplace backend can be extended with new functionality: ### Custom Source Providers @@ -669,7 +669,7 @@ context.subscriptions.push( ## Integration with Other Systems -The Package Manager can be integrated with other systems: +The Marketplace can be integrated with other systems: ### Integration with External APIs @@ -862,7 +862,7 @@ const registerLocalDevTools = (context: vscode.ExtensionContext) => { ## Best Practices for Extensions -When extending the Package Manager, follow these best practices: +When extending the Marketplace, follow these best practices: ### Maintainable Code diff --git a/cline_docs/package-manager/user-guide/01-introduction.md b/cline_docs/marketplace/user-guide/01-introduction.md similarity index 63% rename from cline_docs/package-manager/user-guide/01-introduction.md rename to cline_docs/marketplace/user-guide/01-introduction.md index c83664c6b9..e33f7734cc 100644 --- a/cline_docs/package-manager/user-guide/01-introduction.md +++ b/cline_docs/marketplace/user-guide/01-introduction.md @@ -1,54 +1,58 @@ -# Introduction to Package Manager +# Introduction to Marketplace ## Overview and Purpose -The Package Manager is a powerful feature in Roo Code that allows you to discover, browse, and utilize various components to enhance your development experience. It serves as a centralized hub for accessing: +The Marketplace is a powerful feature in Roo Code that allows you to discover, browse, and utilize various components to enhance your development experience. It serves as a centralized hub for accessing: - **Modes**: Specialized AI assistants with different capabilities - **MCP Servers**: Model Context Protocol servers that provide additional functionality - **Prompts**: Pre-configured instructions for specific tasks - **Packages**: Collections of related components -The Package Manager simplifies the process of extending Roo Code's capabilities by providing a user-friendly interface to find, filter, and add new components to your environment. +The Marketplace simplifies the process of extending Roo Code's capabilities by providing a user-friendly interface to find, filter, and add new components to your environment. ## Key Features and Capabilities ### Component Discovery + - Browse a curated collection of components - View detailed information about each component - Explore subcomponents within packages ### Search and Filter + - Search by name and description - Filter by component type (mode, MCP server, etc.) - Use tags to find related components - Combine search and filters for precise results ### Component Details + - View comprehensive information about each component - See version information - Access source repositories directly - Explore subcomponents organized by type ### Package Management + - Add new components to your environment - Manage custom package sources - Create and contribute your own packages -## How to Access the Package Manager +## How to Access the Marketplace -The Package Manager can be accessed through the Roo Code extension in VS Code: +The Marketplace can be accessed through the Roo Code extension in VS Code: 1. Open VS Code with the Roo Code extension installed 2. Click on the Roo Code icon in the activity bar -3. Select "Package Manager" from the available options +3. Select "Marketplace" from the available options Alternatively, you can use the Command Palette: 1. Press `Ctrl+Shift+P` (Windows/Linux) or `Cmd+Shift+P` (Mac) to open the Command Palette -2. Type "Roo Code: Open Package Manager" -3. Press Enter to open the Package Manager +2. Type "Roo Code: Open Marketplace" +3. Press Enter to open the Marketplace --- -**Next**: [Browsing Packages](./02-browsing-packages.md) \ No newline at end of file +**Next**: [Browsing Packages](./02-browsing-packages.md) diff --git a/cline_docs/package-manager/user-guide/02-browsing-packages.md b/cline_docs/marketplace/user-guide/02-browsing-packages.md similarity index 62% rename from cline_docs/package-manager/user-guide/02-browsing-packages.md rename to cline_docs/marketplace/user-guide/02-browsing-packages.md index 34ecbb9c8d..abc3160f48 100644 --- a/cline_docs/package-manager/user-guide/02-browsing-packages.md +++ b/cline_docs/marketplace/user-guide/02-browsing-packages.md @@ -1,23 +1,25 @@ -# Browsing Packages +# Browsing -## Understanding the Package Manager Interface +## Understanding the Marketplace Interface -The Package Manager interface is designed to provide a clean, intuitive experience for discovering and exploring available components. The main interface consists of several key areas: +The Marketplace interface is designed to provide a clean, intuitive experience for discovering and exploring available components. The main interface consists of several key areas: ### Main Sections 1. **Navigation Tabs** - - **Browse**: View all available components - - **Sources**: Manage package sources + + - **Browse**: View all available marketplace items + - **Sources**: Manage Marketplace sources 2. **Filter Panel** - - Type filters (Modes, MCP Servers, Packages, etc.) - - Search box - - Tag filters + + - Type filters (Modes, MCP Servers, Packages, etc.) + - Search box + - Tag filters 3. **Results Area** - - Package cards displaying component information - - Sorting options + - Marketplace items displaying component information + - Sorting options ### Interface Layout @@ -30,9 +32,9 @@ The Package Manager interface is designed to provide a clean, intuitive experien │ Search: [ ] │ │ Tags: [Tag cloud] │ ├─────────────────────────────────────────────────────────┤ -│ PACKAGE CARDS │ +│ MARKETPLACE Items │ │ ┌─────────────────────────────────────────────────┐ │ -│ │ Package Name [Type] │ │ +│ │ Name [Type] │ │ │ │ by Author │ │ │ │ │ │ │ │ Description text... │ │ @@ -43,41 +45,46 @@ The Package Manager interface is designed to provide a clean, intuitive experien │ └─────────────────────────────────────────────────┘ │ │ │ │ ┌─────────────────────────────────────────────────┐ │ -│ │ Another Package [Type] │ │ +│ │ Another Item [Type] │ │ │ │ ... │ │ └─────────────────────────────────────────────────────────┘ ``` -## Package Cards and Information Displayed +## Marketplace Item and Information Displayed -Each package in the Package Manager is represented by a card that contains essential information about the component: +Each item in the Marketplace is represented by a card that contains essential information about the component: ### Card Elements 1. **Header Section** - - **Package Name**: The name of the component - - **Author**: The creator or maintainer of the component (if available) - - **Type Badge**: Visual indicator of the component type (Mode, MCP Server, etc.) + + - **Name**: The name of the component + - **Author**: The creator or maintainer of the component (if available) + - **Type Badge**: Visual indicator of the component type (Mode, MCP Server, etc.) 2. **Description** - - A brief overview of the component's purpose and functionality + + - A brief overview of the component's purpose and functionality 3. **Tags** - - Clickable tags that categorize the component - - Can be used for filtering similar components + + - Clickable tags that categorize the component + - Can be used for filtering similar components 4. **Metadata** - - **Version**: The current version of the component (if available) - - **Last Updated**: When the component was last modified (if available) + + - **Version**: The current version of the component (if available) + - **Last Updated**: When the component was last modified (if available) 5. **Actions** - - **View**: Button to access the component's source repository or documentation + + - **View**: Button to access the component's source repository or documentation 6. **Details Section** (expandable) - - Shows subcomponents grouped by type - - Displays additional information when expanded + - Shows subcomponents grouped by type + - Displays additional information when expanded -### Example Card +### Example Item ``` ┌─────────────────────────────────────────────────────┐ @@ -102,37 +109,40 @@ Each package in the Package Manager is represented by a card that contains essen └─────────────────────────────────────────────────────┘ ``` -## Navigating Between Packages +## Navigating Between Items -The Package Manager provides several ways to navigate through the available packages: +The Marketplace provides several ways to navigate through the available items: ### Navigation Methods 1. **Scrolling** - - Scroll through the list of package cards to browse all available components + + - Scroll through the list of item cards to browse all available components 2. **Filtering** - - Use the filter panel to narrow down the displayed packages - - Click on type filters to show only specific component types - - Enter search terms to find packages by name or description - - Click on tags to filter by specific categories + + - Use the filter panel to narrow down the displayed items + - Click on type filters to show only specific component types + - Enter search terms to find items by name or description + - Click on tags to filter by specific categories 3. **Sorting** - - Sort packages by name or last updated date - - Toggle between ascending and descending order + + - Sort pacitemskages by name or last updated date + - Toggle between ascending and descending order 4. **Tab Navigation** - - Switch between "Browse" and "Sources" tabs to manage package sources + - Switch between "Browse" and "Sources" tabs to manage Marketplace sources ### Keyboard Navigation -For accessibility and efficiency, the Package Manager supports keyboard navigation: +For accessibility and efficiency, the Marketplace supports keyboard navigation: - **Tab**: Move focus between interactive elements - **Space/Enter**: Activate buttons or toggle filters -- **Arrow Keys**: Navigate between package cards +- **Arrow Keys**: Navigate between items - **Escape**: Close expanded details or clear filters --- -**Previous**: [Introduction to Package Manager](./01-introduction.md) | **Next**: [Searching and Filtering](./03-searching-and-filtering.md) \ No newline at end of file +**Previous**: [Introduction to Marketplace](./01-introduction.md) | **Next**: [Searching and Filtering](./03-searching-and-filtering.md) diff --git a/cline_docs/package-manager/user-guide/03-searching-and-filtering.md b/cline_docs/marketplace/user-guide/03-searching-and-filtering.md similarity index 65% rename from cline_docs/package-manager/user-guide/03-searching-and-filtering.md rename to cline_docs/marketplace/user-guide/03-searching-and-filtering.md index ab9d00b706..01b0c8d43d 100644 --- a/cline_docs/package-manager/user-guide/03-searching-and-filtering.md +++ b/cline_docs/marketplace/user-guide/03-searching-and-filtering.md @@ -1,6 +1,6 @@ # Searching and Filtering -The Package Manager provides powerful search and filtering capabilities to help you quickly find the components you need. This guide explains how to effectively use these features to narrow down your search results. +The Marketplace provides powerful search and filtering capabilities to help you quickly find the components you need. This guide explains how to effectively use these features to narrow down your search results. ## Using the Search Functionality @@ -8,11 +8,11 @@ The search box allows you to find components by matching text in various fields: ### What Gets Searched -When you enter a search term, the Package Manager looks for matches in: +When you enter a search term, the Marketplace looks for matches in: -1. **Component Name**: The primary identifier of the component -2. **Description**: The detailed explanation of the component's purpose -3. **Subcomponent Names and Descriptions**: Text within nested components +1. **Item Name**: The primary identifier of the item +2. **Description**: The detailed explanation of the item's purpose +3. **Subcomponent Names and Descriptions**: Text within nested items ### Search Features @@ -39,28 +39,28 @@ The search uses a simple string contains match that is case and whitespace insen ### Example Searches -| Search Term | Will Find | -| ------------------ | -------------------------------------------------------------------------------- | -| "data" | Components with "data" in their name, description, or subcomponents | -| "validator" | Components that include validation functionality or have validator subcomponents | -| "machine learning" | Components related to machine learning technology | +| Search Term | Will Find | +| ------------------ | --------------------------------------------------------------------------- | +| "data" | Items with "data" in their name, description, or subcomponents | +| "validator" | Items that include validation functionality or have validator subcomponents | +| "machine learning" | Items related to machine learning technology | -## Filtering by Package Type +## Filtering by Item Type -The type filter allows you to focus on specific categories of components: +The type filter allows you to focus on specific categories of items: ### Available Type Filters - **Mode**: AI assistant personalities with specialized capabilities - **MCP Server**: Model Context Protocol servers that provide additional functionality -- **Package**: Collections of related components +- **Package**: Collections of related items - **Prompt**: Pre-configured instructions for specific tasks ### Using Type Filters -1. Click on a type checkbox to show only components of that type -2. Select multiple types to show components that match any of the selected types -3. Clear all type filters to show all components again +1. Click on a type checkbox to show only items of that type +2. Select multiple types to show items that match any of the selected types +3. Clear all type filters to show all items again When filtering by type, packages are handled specially: @@ -70,27 +70,27 @@ When filtering by type, packages are handled specially: ### Type Filter Behavior -- Type filters apply to both the primary component type and subcomponents +- Type filters apply to both the primary item type and it's subcomponents - Packages are included if they contain subcomponents matching the selected type -- The type is displayed as a badge on each package card +- The type is displayed as a badge on each item card - Type filtering can be combined with search terms and tag filters ## Using Tags for Filtering -Tags provide a way to filter components by category, technology, or purpose: +Tags provide a way to filter items by category, technology, or purpose: ### Tag Functionality -- Tags appear as clickable buttons on package cards +- Tags appear as clickable buttons on item cards - Clicking a tag activates it as a filter - Active tag filters are highlighted -- Components must have at least one of the selected tags to be displayed +- Items must have at least one of the selected tags to be displayed ### Finding and Using Tags -1. Browse through package cards to discover available tags -2. Click on a tag to filter for components with that tag -3. Click on additional tags to expand your filter (components with any of the selected tags will be shown) +1. Browse through item cards to discover available tags +2. Click on a tag to filter for items with that tag +3. Click on additional tags to expand your filter (items with any of the selected tags will be shown) 4. Click on an active tag to deactivate it ### Common Tags @@ -106,8 +106,8 @@ For the most precise results, you can combine search terms, type filters, and ta ### How Combined Filtering Works -1. **AND Logic Between Filter Types**: Components must match the search term AND the selected types AND have at least one of the selected tags -2. **OR Logic Within Tag Filters**: Components must have at least one of the selected tags +1. **AND Logic Between Filter Types**: Items must match the search term AND the selected types AND have at least one of the selected tags +2. **OR Logic Within Tag Filters**: Items must have at least one of the selected tags ### Combined Filter Examples @@ -128,7 +128,7 @@ To reset your search and start over: ### Filter Status Indicators -The Package Manager provides visual feedback about your current filters: +The Marketplace provides visual feedback about your current filters: - Active type filters are checked - Active tag filters are highlighted diff --git a/cline_docs/package-manager/user-guide/04-working-with-details.md b/cline_docs/marketplace/user-guide/04-working-with-details.md similarity index 85% rename from cline_docs/package-manager/user-guide/04-working-with-details.md rename to cline_docs/marketplace/user-guide/04-working-with-details.md index 4e06822f24..8401c1e836 100644 --- a/cline_docs/package-manager/user-guide/04-working-with-details.md +++ b/cline_docs/marketplace/user-guide/04-working-with-details.md @@ -1,10 +1,10 @@ # Working with Package Details -Package Manager items often contain multiple components organized in a hierarchical structure. This guide explains how to work with the details section of package cards to explore and understand the components within each package. +Marketplace items often contain multiple items organized in a hierarchical structure; these items are referred to as "packages" and must have a type of package. The items organized within a package are referred to as "subcomponents" and have all the same metadata properties of regular items. This guide explains how to work with the details section of package cards to explore and understand the elements within each package. ## Expanding Package Details -Most packages in the Package Manager contain subcomponents that are hidden by default to keep the interface clean. You can expand these details to see what's inside each package: +Most packages in the Marketplace contain subcomponents that are hidden by default to keep the interface clean. You can expand these details to see what's inside each package: ### How to Expand Details @@ -94,12 +94,12 @@ Each subcomponent in the list displays: ## Matching Search Terms in Subcomponents -One of the most powerful features of the Package Manager is the ability to search within subcomponents: +One of the most powerful features of the Marketplace is the ability to search within subcomponents: ### How Subcomponent Matching Works 1. Enter a search term in the search box -2. The Package Manager searches through all subcomponent names and descriptions +2. The Marketplace searches through all subcomponent names and descriptions 3. Packages with matching subcomponents remain visible in the results 4. The details section automatically expands for packages with matches 5. Matching subcomponents are highlighted and marked with a "match" badge diff --git a/cline_docs/package-manager/user-guide/05-adding-packages.md b/cline_docs/marketplace/user-guide/05-adding-packages.md similarity index 86% rename from cline_docs/package-manager/user-guide/05-adding-packages.md rename to cline_docs/marketplace/user-guide/05-adding-packages.md index c1fc61c1d7..a31a922971 100644 --- a/cline_docs/package-manager/user-guide/05-adding-packages.md +++ b/cline_docs/marketplace/user-guide/05-adding-packages.md @@ -1,10 +1,10 @@ -# Adding Packages +# Adding Packages to the Marketplace -This guide explains how to create and contribute your own packages to the Roo Code Package Manager. By following these steps, you can share your components with the community and help expand the ecosystem. +This guide explains how to create and contribute your own packages to the Roo Code Marketplace. By following these steps, you can share your work with the community and help expand the ecosystem. -## Package Structure and Metadata +## Item Structure and Metadata -Each package in the Package Manager requires specific metadata files and follows a consistent directory structure. +Each item in the Marketplace requires specific metadata files and follows a consistent directory structure. ### Directory Structure @@ -41,6 +41,8 @@ tags: items: # Only for packages AND when a subcomponent isn't located in the packages directory tree - type: "prompt" path: "../shared-prompts/data-analysis" # Reference to component outside package directory +author: "your name" # optional +authorUrl: "http://your.profile.url/" #optional ``` ### Package Example in Source Tree @@ -72,7 +74,11 @@ Roo-Code-Packages/ - **version**: Semantic version number (e.g., "1.0.0") - **type**: Component type (one of: "package", "mode", "mcp server", "prompt") - **tags**: (Optional) Array of relevant tags for filtering -- **items**: (Only for packages) Array of subcomponents with their type and path - when the path is not in the packages directory tree +- **items**: (Only for packages) Array of subcomponents with their type and path - when the path is not in the packages directory + tree +- **author**: Your name +- **authorUrl**: A proile Url that you want people to see. GitHub profile, or linked-in profile for example +- **sourceUrl**: optional destination Url to your item's source if you haven't included it directly in the Marketplace. ### The Items Array and External References @@ -110,7 +116,7 @@ This allows you to: #### How It Works - The `path` is relative to the package's directory -- The Package Manager resolves these paths when loading the package +- The Marketplace resolves these paths when loading the package - Components referenced this way appear as part of the package in the UI - The same component can be included in multiple packages @@ -121,7 +127,7 @@ You can provide metadata in multiple languages by using locale-specific files: **Important Notes on Localization:** - Only files with the pattern `metadata.{locale}.yml` are supported -- The Package Manager will display metadata in the user's locale if available +- The Marketplace will display metadata in the user's locale if available - If the user's locale is not available, it will fall back to English - The English locale (`metadata.en.yml`) is required as a fallback - Files without a locale code (e.g., just `metadata.yml`) are not supported @@ -132,7 +138,7 @@ To contribute your package to the official repository, follow these steps: ### 1. Fork the Repository -1. Visit the official Roo Code Packages repository: [https://github.com/RooVetGit/Roo-Code-Packages](https://github.com/RooVetGit/Roo-Code-Packages) +1. Visit the official Roo Code Packages repository: [https://github.com/RooVetGit/Roo-Code-Marketplace](https://github.com/RooVetGit/Roo-Code-Marketplace) 2. Click the "Fork" button in the top-right corner 3. This creates your own copy of the repository where you can make changes @@ -141,8 +147,8 @@ To contribute your package to the official repository, follow these steps: Clone your forked repository to your local machine: ```bash -git clone https://github.com/YOUR-USERNAME/Roo-Code-Packages.git -cd Roo-Code-Packages +git clone https://github.com/YOUR-USERNAME/Roo-Code-Marketplace.git +cd Roo-Code-Marketplace ``` ### 3. Create Your Package @@ -163,12 +169,12 @@ touch my-package/modes/my-mode/metadata.en.yml ### 4. Test Your Package -Before submitting, test your package by adding your fork as a custom source in the Package Manager: +Before submitting, test your package by adding your fork as a custom source in the Marketplace: -1. In VS Code, open the Package Manager +1. In VS Code, open the Marketplace 2. Go to the "Settings" tab 3. Click "Add Source" -4. Enter your fork's URL (e.g., `https://github.com/YOUR-USERNAME/Roo-Code-Packages`) +4. Enter your fork's URL (e.g., `https://github.com/YOUR-USERNAME/Roo-Code-Marketplace`) 5. Click "Add" 6. Verify that your package appears and functions correctly @@ -184,7 +190,7 @@ git push origin main ### 6. Create a Pull Request -1. Go to the original repository: [https://github.com/RooVetGit/Roo-Code-Packages](https://github.com/RooVetGit/Roo-Code-Packages) +1. Go to the original repository: [https://github.com/RooVetGit/Roo-Code-Marketplace](https://github.com/RooVetGit/Roo-Code-Marketplace) 2. Click "Pull Requests" and then "New Pull Request" 3. Click "Compare across forks" 4. Select your fork as the head repository @@ -199,7 +205,7 @@ After submitting your pull request: 1. Maintainers will review your package 2. They may request changes or improvements 3. Once approved, your package will be merged into the main repository -4. Your package will be available to all users of the Package Manager +4. Your package will be available to all users of the Marketplace ## Best Practices diff --git a/cline_docs/package-manager/user-guide/06-adding-custom-sources.md b/cline_docs/marketplace/user-guide/06-adding-custom-sources.md similarity index 72% rename from cline_docs/package-manager/user-guide/06-adding-custom-sources.md rename to cline_docs/marketplace/user-guide/06-adding-custom-sources.md index d5386e59c6..c941257cbb 100644 --- a/cline_docs/package-manager/user-guide/06-adding-custom-sources.md +++ b/cline_docs/marketplace/user-guide/06-adding-custom-sources.md @@ -1,10 +1,10 @@ -# Adding Custom Package Sources +# Adding Custom Marketplace Sources -The Package Manager allows you to extend its functionality by adding custom package sources. This guide explains how to set up and manage your own package repositories to access additional components beyond the default offerings. +The Marketplace allows you to extend its functionality by adding custom sources. This guide explains how to set up and manage your own Marktplace repositories to access additional components beyond the default offerings. -## Setting up a Package Source Repository +## Setting up a Marketplace Source Repository -A package source repository is a Git repository that contains packages organized in a specific structure. You can create your own repository to host custom packages: +A Marketplace source repository is a Git repository that contains Marketplace items organized in a specific structure. You can create your own repository to host custom packages: ### Repository Requirements @@ -48,7 +48,7 @@ git push origin main ## Required Structure and Metadata -A package source repository must follow a specific structure to be properly recognized by the Package Manager: +A source repository must follow a specific structure to be properly recognized by the Marketplace: ### Repository Structure @@ -79,7 +79,7 @@ repository-root/ The root `metadata.en.yml` file describes the repository itself: ```yaml -name: "Custom Components Repository" +name: "Custom Roopository" description: "A collection of specialized components for data science workflows" version: "1.0.0" author: "Your Name or Organization" @@ -88,28 +88,28 @@ tags: - data-science ``` -### Component Organization +### Item Organization -- Components should be organized by type in their respective directories -- Each component must have its own directory containing a metadata file -- Components can be nested within packages +- Item should be organized by type in their respective directories +- Each item must have its own directory containing a metadata file +- Items can be nested within packages as subcomponents - Follow the same structure as described in [Adding Packages](./05-adding-packages.md) ## Adding Sources to Roo Code -Once you have a properly structured package source repository, you can add it to your Roo Code Package Manager: +Once you have a properly structured source repository, you can add it to your Roo Code Marketplace as a source: ### Default Package Source Roo Code comes with a default package source: -- URL: `https://github.com/RooVetGit/Roo-Code-Packages` +- URL: `https://github.com/RooVetGit/Roo-Code-Marketplace` - This source is enabled by default, and anytime all sources have been deleted. ### Adding a New Source 1. Open VS Code with the Roo Code extension -2. Navigate to the Package Manager +2. Navigate to the Marketplace 3. Switch to the "Sources" tab 4. Click the "Add Source" button 5. Enter the repository URL: @@ -122,11 +122,11 @@ Roo Code comes with a default package source: The "Sources" tab provides several options for managing your package sources: 1. **Remove**: Delete a source from your configuration -2. **Refresh**: Update the package list from a sources - this is forced git clone/pull to override local caching of data +2. **Refresh**: Update the item list from a sources - this is forced git clone/pull to override local caching of data ### Source Caching and Refreshing -Package Manager sources are cached to improve performance: +Marketplace sources are cached to improve performance: - **Cache Duration**: Sources are cached for 1 hour (3600000 ms) - **Force Refresh**: To force an immediate refresh of a source: @@ -140,13 +140,13 @@ If a source isn't loading properly: 1. Check that the repository URL is correct 2. Ensure the repository follows the required structure -3. Look for error messages in the Package Manager interface +3. Look for error messages in the Marketplace interface 4. Try refreshing the sources list 5. Disable and re-enable the source ## Creating Private Sources -For team or organization use, you might want to create private package sources: +For team or organization use, you might want to create private sources: ### Private Repository Setup @@ -166,21 +166,21 @@ To access private repositories, you may need to: For teams and organizations: -1. Designate maintainers responsible for the package source -2. Establish quality standards for contributed packages +1. Designate maintainers responsible for the source +2. Establish quality standards for contributed items and packages 3. Create a review process for new additions 4. Document usage guidelines for team members -5. Consider implementing versioning for your packages +5. Consider implementing versioning for your items and packages ## Using Multiple Sources -The Package Manager supports multiple package sources simultaneously: +The Marketplace supports multiple sources simultaneously: ### Benefits of Multiple Sources - Access components from different providers - Separate internal and external components -- Test new packages before contributing them to the main repository +- Test new work before contributing them to the main repository - Create specialized sources for different projects or teams ### Source Management Strategy @@ -188,8 +188,8 @@ The Package Manager supports multiple package sources simultaneously: 1. Keep the default source enabled for core components 2. Add specialized sources for specific needs 3. Create a personal source for testing and development -4. Refresh sources after you've pushed changes to them to get the latest components +4. Refresh sources after you've pushed changes to them to get the latest items --- -**Previous**: [Adding Packages](./05-adding-packages.md) | **Next**: [Package Manager Architecture](../implementation/01-architecture.md) +**Previous**: [Adding Packages](./05-adding-packages.md) | **Next**: [Marketplace Architecture](../implementation/01-architecture.md) diff --git a/cline_docs/package-manager/README.md b/cline_docs/package-manager/README.md deleted file mode 100644 index bb191c2e07..0000000000 --- a/cline_docs/package-manager/README.md +++ /dev/null @@ -1,50 +0,0 @@ -# Package Manager Documentation - -This directory contains comprehensive documentation for the Roo Code Package Manager, including both user guides and implementation details. - -## Documentation Structure - -### User Guide - -The user guide provides end-user documentation for using the Package Manager: - -1. [Introduction to Package Manager](./user-guide/01-introduction.md) - Overview and purpose of the Package Manager -2. [Browsing Packages](./user-guide/02-browsing-packages.md) - Understanding the interface and navigating packages -3. [Searching and Filtering](./user-guide/03-searching-and-filtering.md) - Using search and filters to find packages -4. [Working with Package Details](./user-guide/04-working-with-details.md) - Exploring package details and subcomponents -5. [Adding Packages](./user-guide/05-adding-packages.md) - Creating and contributing your own packages -6. [Adding Custom Sources](./user-guide/06-adding-custom-sources.md) - Setting up and managing custom package sources - -### Implementation Documentation - -The implementation documentation provides technical details for developers: - -1. [Architecture](./implementation/01-architecture.md) - High-level architecture of the Package Manager -2. [Core Components](./implementation/02-core-components.md) - Key components and their responsibilities -3. [Data Structures](./implementation/03-data-structures.md) - Data models and structures used in the Package Manager -4. [Search and Filter](./implementation/04-search-and-filter.md) - Implementation of search and filtering functionality - -## Key Features - -The Package Manager provides the following key features: - -- **Component Discovery**: Browse and search for components -- **Package Management**: Add components to your environment -- **Custom Sources**: Add your own package repositories -- **Localization Support**: View components in your preferred language -- **Filtering**: Filter components by type, search term, and tags - -## Default Package Repository - -The default package repository is located at: -[https://github.com/RooVetGit/Roo-Code-Packages](https://github.com/RooVetGit/Roo-Code-Packages) - -## Contributing - -To contribute to the Package Manager documentation: - -1. Make your changes to the relevant markdown files -2. Ensure that your changes are accurate and consistent with the actual implementation -3. Submit a pull request with your changes - -For code changes to the Package Manager itself, please refer to the main [CONTRIBUTING.md](../../CONTRIBUTING.md) file. diff --git a/cline_docs/package_manager/implementation/README.md b/cline_docs/package_manager/implementation/README.md deleted file mode 100644 index fa91e20754..0000000000 --- a/cline_docs/package_manager/implementation/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# Package Manager Implementation - -The package manager feature allows users to discover, browse, and manage Git-based package sources containing reusable components like modes, MCP servers, and prompts. - -## Core Components - -### Backend (VSCode Extension) - -- **PackageManagerManager**: Central service that manages package sources, fetching, and caching -- **GitFetcher**: Handles Git operations for cloning and updating repositories -- **MetadataScanner**: Scans repositories for component metadata -- **PackageManagerSourceValidation**: Validates package manager source URLs and configurations - -### Frontend (Webview UI) - -- **PackageManagerView**: React component for the package manager interface -- **PackageManagerViewStateManager**: Manages frontend state and synchronization with backend -- **useStateManager**: React hook for accessing the state manager - -## Key Features - -- Git repository integration (HTTPS, SSH, Git protocol) -- Component metadata scanning and validation -- Source configuration management -- Caching and concurrent operation handling -- Component filtering and sorting -- Real-time state synchronization between frontend and backend - -## Implementation Details - -See the following documentation for detailed implementation information: - -- [Architecture Overview](./architecture.md) -- [Class Diagram](./class-diagram.md) -- [Sequence Diagrams](./sequence-diagrams.md) diff --git a/package.json b/package.json index a9a9b48fc8..6cd6f7b7b5 100644 --- a/package.json +++ b/package.json @@ -97,7 +97,7 @@ }, { "command": "roo-cline.packageManagerButtonClicked", - "title": "Package Manager", + "title": "Marketplace", "icon": "$(extensions)" }, { diff --git a/src/services/package-manager/constants.ts b/src/services/package-manager/constants.ts index 6fe2941d90..8bf2fd8080 100644 --- a/src/services/package-manager/constants.ts +++ b/src/services/package-manager/constants.ts @@ -5,7 +5,7 @@ /** * Default package manager repository URL */ -export const DEFAULT_PACKAGE_MANAGER_REPO_URL = "https://github.com/RooVetGit/Roo-Code-Packages" +export const DEFAULT_PACKAGE_MANAGER_REPO_URL = "https://github.com/RooVetGit/Roo-Code-Marketplace" /** * Default package manager repository name diff --git a/webview-ui/src/App.tsx b/webview-ui/src/App.tsx index 38cd46b72a..327048bb61 100644 --- a/webview-ui/src/App.tsx +++ b/webview-ui/src/App.tsx @@ -1,9 +1,10 @@ -import { useCallback, useEffect, useRef, useState } from "react" +import { useCallback, useEffect, useRef, useState, useMemo } from "react" import { useEvent } from "react-use" import { QueryClient, QueryClientProvider } from "@tanstack/react-query" import { ExtensionMessage } from "../../src/shared/ExtensionMessage" import TranslationProvider from "./i18n/TranslationContext" +import { PackageManagerViewStateManager } from "./components/package-manager/PackageManagerViewStateManager" import { vscode } from "./utils/vscode" import { telemetryClient } from "./utils/TelemetryClient" @@ -32,6 +33,9 @@ const App = () => { const { didHydrateState, showWelcome, shouldShowAnnouncement, telemetrySetting, telemetryKey, machineId } = useExtensionState() + // Create a persistent state manager + const packageManagerStateManager = useMemo(() => new PackageManagerViewStateManager(), []) + const [showAnnouncement, setShowAnnouncement] = useState(false) const [tab, setTab] = useState("chat") @@ -120,7 +124,9 @@ const App = () => { {tab === "settings" && ( setTab("chat")} targetSection={currentSection} /> )} - {tab === "packageManager" && switchTab("chat")} />} + {tab === "packageManager" && ( + switchTab("chat")} /> + )} void + stateManager: PackageManagerViewStateManager } -const PackageManagerView: React.FC = ({ onDone }) => { +const PackageManagerView: React.FC = ({ onDone, stateManager }) => { const { t } = useAppTranslation() - const [state, manager] = useStateManager() + const [state, manager] = useStateManager(stateManager) const [tagSearch, setTagSearch] = useState("") const [isTagInputActive, setIsTagInputActive] = useState(false) - // Debug logging for state changes - - // Fetch items on mount + // Fetch items only on first mount or when no items exist useEffect(() => { - manager.transition({ type: "FETCH_ITEMS" }) - }, [manager]) + if (state.allItems.length === 0 && !state.isFetching) { + manager.transition({ type: "FETCH_ITEMS" }) + } + }, [manager, state.allItems.length, state.isFetching]) // Memoize all available tags const allTags = useMemo( diff --git a/webview-ui/src/components/package-manager/PackageManagerViewStateManager.ts b/webview-ui/src/components/package-manager/PackageManagerViewStateManager.ts index c585b3a6fd..b5679ec58a 100644 --- a/webview-ui/src/components/package-manager/PackageManagerViewStateManager.ts +++ b/webview-ui/src/components/package-manager/PackageManagerViewStateManager.ts @@ -41,14 +41,23 @@ export interface ViewStateTransition { export type StateChangeHandler = (state: ViewState) => void export class PackageManagerViewStateManager { - private state: ViewState - private fetchTimeoutId?: NodeJS.Timeout - private readonly FETCH_TIMEOUT = 30000 // 30 seconds - private stateChangeHandlers: Set = new Set() - private sourcesModified = false // Track if sources have been modified + private state: ViewState = this.loadInitialState() - constructor() { - this.state = { + private loadInitialState(): ViewState { + // Try to restore state from sessionStorage + const savedState = sessionStorage.getItem("packageManagerState") + if (savedState) { + try { + return JSON.parse(savedState) + } catch { + return this.getDefaultState() + } + } + return this.getDefaultState() + } + + private getDefaultState(): ViewState { + return { allItems: [], displayItems: [] as PackageManagerItem[], isFetching: false, @@ -66,6 +75,10 @@ export class PackageManagerViewStateManager { }, } } + private fetchTimeoutId?: NodeJS.Timeout + private readonly FETCH_TIMEOUT = 30000 // 30 seconds + private stateChangeHandlers: Set = new Set() + private sourcesModified = false // Track if sources have been modified public initialize(): void { // Send initial sources to extension @@ -81,8 +94,20 @@ export class PackageManagerViewStateManager { } public cleanup(): void { + // Clear any pending timeouts + if (this.fetchTimeoutId) { + clearTimeout(this.fetchTimeoutId) + this.fetchTimeoutId = undefined + } + + // Reset fetching state + if (this.state.isFetching) { + this.state.isFetching = false + this.notifyStateChange() + } + + // Clear handlers but preserve state this.stateChangeHandlers.clear() - if (this.fetchTimeoutId) clearTimeout(this.fetchTimeoutId) } public getState(): ViewState { @@ -110,6 +135,13 @@ export class PackageManagerViewStateManager { this.stateChangeHandlers.forEach((handler) => { handler(newState) }) + + // Save state to sessionStorage + try { + sessionStorage.setItem("packageManagerState", JSON.stringify(this.state)) + } catch (error) { + console.warn("Failed to save package manager state:", error) + } } public async transition(transition: ViewStateTransition): Promise { @@ -195,12 +227,25 @@ export class PackageManagerViewStateManager { // Clear any existing timeouts this.clearFetchTimeout() - // Always fetch when switching to browse if sources were modified - if (this.sourcesModified) { - this.sourcesModified = false // Reset the flag - void this.transition({ type: "FETCH_ITEMS" }) - } else if (this.state.allItems.length === 0) { - // Only fetch if we don't have any items yet + // Reset fetching state when switching tabs + if (this.state.isFetching) { + this.state.isFetching = false + this.notifyStateChange() + } + + // Restore previous display items if they exist + if (this.state.allItems.length > 0) { + if (this.isFilterActive()) { + // Re-apply filters to ensure display items are current + this.state.displayItems = this.filterItems(this.state.allItems) + } else { + // Use all items if no filters are active + this.state.displayItems = this.state.allItems + } + this.notifyStateChange() + } else if (this.sourcesModified) { + // Fetch new items only if sources were modified or we have no items + this.sourcesModified = false void this.transition({ type: "FETCH_ITEMS" }) } } @@ -209,11 +254,11 @@ export class PackageManagerViewStateManager { case "UPDATE_FILTERS": { const { filters = {} } = (transition.payload as TransitionPayloads["UPDATE_FILTERS"]) || {} - // Create new filters object, preserving existing filters unless explicitly changed + // Create new filters object with explicit checks for undefined and proper defaults const updatedFilters = { - type: filters.type ?? this.state.filters.type, - search: filters.search ?? this.state.filters.search, - tags: filters.tags ?? this.state.filters.tags, + type: "type" in filters ? filters.type || "" : this.state.filters.type, + search: "search" in filters ? filters.search || "" : this.state.filters.search, + tags: "tags" in filters ? filters.tags || [] : this.state.filters.tags, } // Update state with new filters @@ -221,13 +266,23 @@ export class PackageManagerViewStateManager { ...this.state, filters: updatedFilters, } - this.notifyStateChange() - // Send filter request immediately - vscode.postMessage({ - type: "filterPackageManagerItems", - filters: updatedFilters, - } as WebviewMessage) + // If all filters are cleared, restore all items + if ( + !updatedFilters.type && + !updatedFilters.search && + (!updatedFilters.tags || updatedFilters.tags.length === 0) + ) { + this.state.displayItems = [...this.state.allItems] + this.notifyStateChange() + } else { + // Otherwise, apply the filters + this.notifyStateChange() + vscode.postMessage({ + type: "filterPackageManagerItems", + filters: updatedFilters, + } as WebviewMessage) + } break } @@ -392,6 +447,9 @@ export class PackageManagerViewStateManager { } if (message.state?.packageManagerItems) { + // Clear fetching state before updating items + this.state.isFetching = false + void this.transition({ type: "FETCH_COMPLETE", payload: { items: message.state.packageManagerItems }, diff --git a/webview-ui/src/components/package-manager/__tests__/PackageManagerViewStateManager.test.ts b/webview-ui/src/components/package-manager/__tests__/PackageManagerViewStateManager.test.ts index a54d15dbf2..cb63900285 100644 --- a/webview-ui/src/components/package-manager/__tests__/PackageManagerViewStateManager.test.ts +++ b/webview-ui/src/components/package-manager/__tests__/PackageManagerViewStateManager.test.ts @@ -85,7 +85,7 @@ describe("PackageManagerViewStateManager", () => { const state = manager.getState() expect(state.sources).toEqual([ { - url: "https://github.com/RooVetGit/Roo-Code-Packages", + url: "https://github.com/RooVetGit/Roo-Code-Marketplace", name: "Roo Code", enabled: true, }, @@ -96,7 +96,7 @@ describe("PackageManagerViewStateManager", () => { type: "packageManagerSources", sources: [ { - url: "https://github.com/RooVetGit/Roo-Code-Packages", + url: "https://github.com/RooVetGit/Roo-Code-Marketplace", name: "Roo Code", enabled: true, }, @@ -744,7 +744,7 @@ describe("PackageManagerViewStateManager", () => { type: "packageManagerSources", sources: [ { - url: "https://github.com/RooVetGit/Roo-Code-Packages", + url: "https://github.com/RooVetGit/Roo-Code-Marketplace", name: "Roo Code", enabled: true, }, @@ -976,7 +976,7 @@ describe("PackageManagerViewStateManager", () => { it("should restore sources from packageManagerSources on webview launch", () => { const savedSources = [ { - url: "https://github.com/RooVetGit/Roo-Code-Packages", + url: "https://github.com/RooVetGit/Roo-Code-Marketplace", name: "Roo Code", enabled: true, }, diff --git a/webview-ui/src/components/package-manager/useStateManager.ts b/webview-ui/src/components/package-manager/useStateManager.ts index e6efc6981b..818fd277a7 100644 --- a/webview-ui/src/components/package-manager/useStateManager.ts +++ b/webview-ui/src/components/package-manager/useStateManager.ts @@ -1,8 +1,8 @@ import { useState, useEffect } from "react" import { PackageManagerViewStateManager, ViewState } from "./PackageManagerViewStateManager" -export function useStateManager() { - const [manager] = useState(() => new PackageManagerViewStateManager()) +export function useStateManager(existingManager?: PackageManagerViewStateManager) { + const [manager] = useState(() => existingManager || new PackageManagerViewStateManager()) const [state, setState] = useState(() => manager.getState()) useEffect(() => { @@ -26,9 +26,12 @@ export function useStateManager() { return () => { window.removeEventListener("message", handleMessage) unsubscribe() - manager.cleanup() + // Don't cleanup the manager if it was provided externally + if (!existingManager) { + manager.cleanup() + } } - }, [manager]) // Remove state from dependencies + }, [manager, existingManager]) return [state, manager] as const } diff --git a/webview-ui/src/i18n/locales/ca/package-manager.json b/webview-ui/src/i18n/locales/ca/package-manager.json index 55180d1f0b..6bc6aa96a4 100644 --- a/webview-ui/src/i18n/locales/ca/package-manager.json +++ b/webview-ui/src/i18n/locales/ca/package-manager.json @@ -1,12 +1,12 @@ { - "title": "Gestor de Paquets", + "title": "Marketplace", "tabs": { "browse": "Navega", "sources": "Fonts" }, "filters": { "search": { - "placeholder": "Cerca elements del gestor de paquets..." + "placeholder": "Cerca elements del marketplace..." }, "type": { "label": "Filtra per tipus:", @@ -36,7 +36,7 @@ }, "items": { "empty": { - "noItems": "No s'han trobat elements del gestor de paquets", + "noItems": "No s'han trobat elements del marketplace", "withFilters": "Prova d'ajustar els filtres", "noSources": "Prova d'afegir una font a la pestanya Fonts" }, @@ -58,13 +58,13 @@ } }, "sources": { - "title": "Configura les Fonts del Gestor de Paquets", - "description": "Afegeix repositoris Git que continguin elements del gestor de paquets. Aquests repositoris es recuperaran en navegar pel gestor de paquets.", + "title": "Configura les Fonts del Marketplace", + "description": "Afegeix repositoris Git que continguin elements del marketplace. Aquests repositoris es recuperaran en navegar pel marketplace.", "add": { "title": "Afegeix Nova Font", "urlPlaceholder": "URL del repositori Git (p. ex. https://github.com/username/repo)", "urlFormats": "Formats admesos: HTTPS (https://github.com/username/repo), SSH (git@github.com:username/repo.git) o protocol Git (git://github.com/username/repo.git)", - "namePlaceholder": "Nom de visualització (opcional, màx. 20 caràcters)", + "namePlaceholder": "Nom de visualització (màx. 20 caràcters)", "button": "Afegeix Font" }, "current": { diff --git a/webview-ui/src/i18n/locales/de/package-manager.json b/webview-ui/src/i18n/locales/de/package-manager.json index 454da0c639..8eb6e05f4e 100644 --- a/webview-ui/src/i18n/locales/de/package-manager.json +++ b/webview-ui/src/i18n/locales/de/package-manager.json @@ -1,12 +1,12 @@ { - "title": "Paket-Manager", + "title": "Marketplace", "tabs": { "browse": "Durchsuchen", "sources": "Quellen" }, "filters": { "search": { - "placeholder": "Paket-Manager-Elemente durchsuchen..." + "placeholder": "Marketplace-Elemente durchsuchen..." }, "type": { "label": "Nach Typ filtern:", @@ -34,7 +34,7 @@ }, "items": { "empty": { - "noItems": "Keine Paket-Manager-Elemente gefunden", + "noItems": "Keine Marketplace-Elemente gefunden", "withFilters": "Versuchen Sie, Ihre Filter anzupassen", "noSources": "Versuchen Sie, eine Quelle im Quellen-Tab hinzuzufügen" }, @@ -55,13 +55,13 @@ } }, "sources": { - "title": "Paket-Manager-Quellen konfigurieren", - "description": "Fügen Sie Git-Repositories hinzu, die Paket-Manager-Elemente enthalten. Diese Repositories werden beim Durchsuchen des Paket-Managers abgerufen.", + "title": "Marketplace-Quellen konfigurieren", + "description": "Fügen Sie Git-Repositories hinzu, die Marketplace-Elemente enthalten. Diese Repositories werden beim Durchsuchen des Marketplace abgerufen.", "add": { "title": "Neue Quelle hinzufügen", "urlPlaceholder": "Git-Repository-URL (z.B. https://github.com/username/repo)", "urlFormats": "Unterstützte Formate: HTTPS (https://github.com/username/repo), SSH (git@github.com:username/repo.git) oder Git-Protokoll (git://github.com/username/repo.git)", - "namePlaceholder": "Anzeigename (optional, max. 20 Zeichen)", + "namePlaceholder": "Anzeigename (max. 20 Zeichen)", "button": "Quelle hinzufügen" }, "current": { diff --git a/webview-ui/src/i18n/locales/en/package-manager.json b/webview-ui/src/i18n/locales/en/package-manager.json index bc74c9fd60..dd5c7a6848 100644 --- a/webview-ui/src/i18n/locales/en/package-manager.json +++ b/webview-ui/src/i18n/locales/en/package-manager.json @@ -1,12 +1,12 @@ { - "title": "Package Manager", + "title": "Marketplace", "tabs": { "browse": "Browse", "sources": "Sources" }, "filters": { "search": { - "placeholder": "Search package manager items..." + "placeholder": "Search marketplace items..." }, "type": { "label": "Filter by type:", @@ -32,9 +32,17 @@ "clickToFilter": "Click tags to filter items" } }, + "type-group": { + "match": "Match", + "modes": "Modes", + "mcp-servers": "MCP Servers", + "prompts": "Prompts", + "packages": "Packages", + "generic-type": "{{type}}" + }, "items": { "empty": { - "noItems": "No package manager items found", + "noItems": "No marketplace items found", "withFilters": "Try adjusting your filters", "noSources": "Try adding a source in the Sources tab" }, @@ -52,13 +60,13 @@ } }, "sources": { - "title": "Configure Package Manager Sources", - "description": "Add Git repositories that contain package manager items. These repositories will be fetched when browsing the package manager.", + "title": "Configure Marketplace Sources", + "description": "Add Git repositories that contain marketplace items. These repositories will be fetched when browsing the marketplace.", "add": { "title": "Add New Source", "urlPlaceholder": "Git repository URL (e.g., https://github.com/username/repo)", "urlFormats": "Supported formats: HTTPS (https://github.com/username/repo), SSH (git@github.com:username/repo.git), or Git protocol (git://github.com/username/repo.git)", - "namePlaceholder": "Display name (optional, max 20 chars)", + "namePlaceholder": "Display name (max 20 chars)", "button": "Add Source" }, "current": { diff --git a/webview-ui/src/i18n/locales/es/package-manager.json b/webview-ui/src/i18n/locales/es/package-manager.json index 188b750ea6..3cb3dfa7af 100644 --- a/webview-ui/src/i18n/locales/es/package-manager.json +++ b/webview-ui/src/i18n/locales/es/package-manager.json @@ -1,12 +1,12 @@ { - "title": "Gestor de Paquetes", + "title": "Marketplace", "tabs": { "browse": "Explorar", "sources": "Fuentes" }, "filters": { "search": { - "placeholder": "Buscar elementos del gestor de paquetes..." + "placeholder": "Buscar elementos del marketplace..." }, "type": { "label": "Filtrar por tipo:", @@ -34,7 +34,7 @@ }, "items": { "empty": { - "noItems": "No se encontraron elementos del gestor de paquetes", + "noItems": "No se encontraron elementos del marketplace", "withFilters": "Intente ajustar sus filtros", "noSources": "Intente agregar una fuente en la pestaña Fuentes" }, @@ -55,13 +55,13 @@ } }, "sources": { - "title": "Configurar Fuentes del Gestor de Paquetes", - "description": "Agregue repositorios Git que contengan elementos del gestor de paquetes. Estos repositorios se recuperarán al explorar el gestor de paquetes.", + "title": "Configurar Fuentes del Marketplace", + "description": "Agregue repositorios Git que contengan elementos del marketplace. Estos repositorios se recuperarán al explorar el marketplace.", "add": { "title": "Agregar Nueva Fuente", "urlPlaceholder": "URL del repositorio Git (ej., https://github.com/username/repo)", "urlFormats": "Formatos admitidos: HTTPS (https://github.com/username/repo), SSH (git@github.com:username/repo.git), o protocolo Git (git://github.com/username/repo.git)", - "namePlaceholder": "Nombre para mostrar (opcional, máx. 20 caracteres)", + "namePlaceholder": "Nombre para mostrar (máx. 20 caracteres)", "button": "Agregar Fuente" }, "current": { diff --git a/webview-ui/src/i18n/locales/fr/package-manager.json b/webview-ui/src/i18n/locales/fr/package-manager.json index e756702bb0..d9253d7dc8 100644 --- a/webview-ui/src/i18n/locales/fr/package-manager.json +++ b/webview-ui/src/i18n/locales/fr/package-manager.json @@ -1,12 +1,12 @@ { - "title": "Gestionnaire de Paquets", + "title": "Marketplace", "tabs": { "browse": "Parcourir", "sources": "Sources" }, "filters": { "search": { - "placeholder": "Rechercher des éléments du gestionnaire de paquets..." + "placeholder": "Rechercher des éléments du marketplace..." }, "type": { "label": "Filtrer par type :", @@ -36,7 +36,7 @@ }, "items": { "empty": { - "noItems": "Aucun élément trouvé dans le gestionnaire de paquets", + "noItems": "Aucun élément trouvé dans le marketplace", "withFilters": "Essayez d'ajuster vos filtres", "noSources": "Essayez d'ajouter une source dans l'onglet Sources" }, @@ -58,13 +58,13 @@ } }, "sources": { - "title": "Configurer les Sources du Gestionnaire de Paquets", - "description": "Ajoutez des dépôts Git contenant des éléments du gestionnaire de paquets. Ces dépôts seront récupérés lors de la navigation dans le gestionnaire de paquets.", + "title": "Configurer les Sources du Marketplace", + "description": "Ajoutez des dépôts Git contenant des éléments du marketplace. Ces dépôts seront récupérés lors de la navigation dans le marketplace.", "add": { "title": "Ajouter une Nouvelle Source", "urlPlaceholder": "URL du dépôt Git (ex. https://github.com/username/repo)", "urlFormats": "Formats pris en charge : HTTPS (https://github.com/username/repo), SSH (git@github.com:username/repo.git), ou protocole Git (git://github.com/username/repo.git)", - "namePlaceholder": "Nom d'affichage (optionnel, max 20 caractères)", + "namePlaceholder": "Nom d'affichage (max 20 caractères)", "button": "Ajouter la Source" }, "current": { diff --git a/webview-ui/src/i18n/locales/hi/package-manager.json b/webview-ui/src/i18n/locales/hi/package-manager.json index 01d4f626bc..76feb84b5b 100644 --- a/webview-ui/src/i18n/locales/hi/package-manager.json +++ b/webview-ui/src/i18n/locales/hi/package-manager.json @@ -1,12 +1,12 @@ { - "title": "पैकेज प्रबंधक", + "title": "मार्केटप्लेस", "tabs": { "browse": "ब्राउज़", "sources": "स्रोत" }, "filters": { "search": { - "placeholder": "पैकेज प्रबंधक आइटम खोजें..." + "placeholder": "मार्केटप्लेस आइटम खोजें..." }, "type": { "label": "प्रकार से फ़िल्टर करें:", @@ -34,7 +34,7 @@ }, "items": { "empty": { - "noItems": "कोई पैकेज प्रबंधक आइटम नहीं मिला", + "noItems": "कोई मार्केटप्लेस आइटम नहीं मिला", "withFilters": "फ़िल्टर समायोजित करने का प्रयास करें", "noSources": "स्रोत टैब में एक स्रोत जोड़ने का प्रयास करें" }, @@ -56,13 +56,13 @@ } }, "sources": { - "title": "पैकेज प्रबंधक स्रोत कॉन्फ़िगर करें", - "description": "पैकेज प्रबंधक आइटम वाले Git रिपॉजिटरी जोड़ें। पैकेज प्रबंधक ब्राउज़ करते समय इन रिपॉजिटरी को प्राप्त किया जाएगा।", + "title": "मार्केटप्लेस स्रोत कॉन्फ़िगर करें", + "description": "मार्केटप्लेस आइटम वाले Git रिपॉजिटरी जोड़ें। मार्केटप्लेस ब्राउज़ करते समय इन रिपॉजिटरी को प्राप्त किया जाएगा।", "add": { "title": "नया स्रोत जोड़ें", "urlPlaceholder": "Git रिपॉजिटरी URL (उदा. https://github.com/username/repo)", "urlFormats": "समर्थित प्रारूप: HTTPS (https://github.com/username/repo), SSH (git@github.com:username/repo.git), या Git प्रोटोकॉल (git://github.com/username/repo.git)", - "namePlaceholder": "प्रदर्शन नाम (वैकल्पिक, अधिकतम 20 वर्ण)", + "namePlaceholder": "प्रदर्शन नाम (अधिकतम 20 वर्ण)", "button": "स्रोत जोड़ें" }, "current": { diff --git a/webview-ui/src/i18n/locales/it/package-manager.json b/webview-ui/src/i18n/locales/it/package-manager.json index 5de7edf241..79e587fd4e 100644 --- a/webview-ui/src/i18n/locales/it/package-manager.json +++ b/webview-ui/src/i18n/locales/it/package-manager.json @@ -1,12 +1,12 @@ { - "title": "Gestore Pacchetti", + "title": "Marketplace", "tabs": { "browse": "Sfoglia", "sources": "Sorgenti" }, "filters": { "search": { - "placeholder": "Cerca elementi del gestore pacchetti..." + "placeholder": "Cerca elementi del marketplace..." }, "type": { "label": "Filtra per tipo:", @@ -36,7 +36,7 @@ }, "items": { "empty": { - "noItems": "Nessun elemento del gestore pacchetti trovato", + "noItems": "Nessun elemento del marketplace trovato", "withFilters": "Prova a modificare i filtri", "noSources": "Prova ad aggiungere una sorgente nella scheda Sorgenti" }, @@ -58,13 +58,13 @@ } }, "sources": { - "title": "Configura Sorgenti del Gestore Pacchetti", - "description": "Aggiungi repository Git che contengono elementi del gestore pacchetti. Questi repository verranno recuperati durante la navigazione del gestore pacchetti.", + "title": "Configura Sorgenti del Marketplace", + "description": "Aggiungi repository Git che contengono elementi del marketplace. Questi repository verranno recuperati durante la navigazione del marketplace.", "add": { "title": "Aggiungi Nuova Sorgente", "urlPlaceholder": "URL del repository Git (es. https://github.com/username/repo)", "urlFormats": "Formati supportati: HTTPS (https://github.com/username/repo), SSH (git@github.com:username/repo.git) o protocollo Git (git://github.com/username/repo.git)", - "namePlaceholder": "Nome visualizzato (opzionale, max 20 caratteri)", + "namePlaceholder": "Nome visualizzato (max 20 caratteri)", "button": "Aggiungi Sorgente" }, "current": { diff --git a/webview-ui/src/i18n/locales/ja/package-manager.json b/webview-ui/src/i18n/locales/ja/package-manager.json index e837b1a488..c12c86d9e9 100644 --- a/webview-ui/src/i18n/locales/ja/package-manager.json +++ b/webview-ui/src/i18n/locales/ja/package-manager.json @@ -1,12 +1,12 @@ { - "title": "パッケージマネージャー", + "title": "マーケットプレイス", "tabs": { "browse": "ブラウズ", "sources": "ソース" }, "filters": { "search": { - "placeholder": "パッケージマネージャーのアイテムを検索..." + "placeholder": "マーケットプレイスのアイテムを検索..." }, "type": { "label": "タイプでフィルター:", @@ -34,7 +34,7 @@ }, "items": { "empty": { - "noItems": "パッケージマネージャーのアイテムが見つかりません", + "noItems": "マーケットプレイスのアイテムが見つかりません", "withFilters": "フィルターを調整してみてください", "noSources": "ソースタブでソースを追加してみてください" }, @@ -52,13 +52,13 @@ } }, "sources": { - "title": "パッケージマネージャーのソースを設定", - "description": "パッケージマネージャーのアイテムを含むGitリポジトリを追加します。これらのリポジトリはパッケージマネージャーのブラウズ時に取得されます。", + "title": "マーケットプレイスのソースを設定", + "description": "マーケットプレイスのアイテムを含むGitリポジトリを追加します。これらのリポジトリはマーケットプレイスのブラウズ時に取得されます。", "add": { "title": "新しいソースを追加", "urlPlaceholder": "GitリポジトリのURL (例: https://github.com/username/repo)", "urlFormats": "サポートされている形式: HTTPS (https://github.com/username/repo)、SSH (git@github.com:username/repo.git)、またはGitプロトコル (git://github.com/username/repo.git)", - "namePlaceholder": "表示名 (オプション、最大20文字)", + "namePlaceholder": "表示名 (最大20文字)", "button": "ソースを追加" }, "current": { diff --git a/webview-ui/src/i18n/locales/ko/package-manager.json b/webview-ui/src/i18n/locales/ko/package-manager.json index 3a4e222034..714741ba77 100644 --- a/webview-ui/src/i18n/locales/ko/package-manager.json +++ b/webview-ui/src/i18n/locales/ko/package-manager.json @@ -1,12 +1,12 @@ { - "title": "패키지 관리자", + "title": "마켓플레이스", "tabs": { "browse": "찾아보기", "sources": "소스" }, "filters": { "search": { - "placeholder": "패키지 관리자 항목 검색..." + "placeholder": "마켓플레이스 항목 검색..." }, "type": { "label": "유형별 필터:", @@ -34,7 +34,7 @@ }, "items": { "empty": { - "noItems": "패키지 관리자 항목을 찾을 수 없습니다", + "noItems": "마켓플레이스 항목을 찾을 수 없습니다", "withFilters": "필터를 조정해 보세요", "noSources": "소스 탭에서 소스를 추가해 보세요" }, @@ -52,13 +52,13 @@ } }, "sources": { - "title": "패키지 관리자 소스 구성", - "description": "패키지 관리자 항목이 포함된 Git 저장소를 추가합니다. 패키지 관리자를 탐색할 때 이러한 저장소를 가져옵니다.", + "title": "마켓플레이스 소스 구성", + "description": "마켓플레이스 항목이 포함된 Git 저장소를 추가합니다. 마켓플레이스를 탐색할 때 이러한 저장소를 가져옵니다.", "add": { "title": "새 소스 추가", "urlPlaceholder": "Git 저장소 URL (예: https://github.com/username/repo)", "urlFormats": "지원되는 형식: HTTPS (https://github.com/username/repo), SSH (git@github.com:username/repo.git), 또는 Git 프로토콜 (git://github.com/username/repo.git)", - "namePlaceholder": "표시 이름 (선택 사항, 최대 20자)", + "namePlaceholder": "표시 이름 (최대 20자)", "button": "소스 추가" }, "current": { diff --git a/webview-ui/src/i18n/locales/pl/package-manager.json b/webview-ui/src/i18n/locales/pl/package-manager.json index c87599b93a..6a6e02b846 100644 --- a/webview-ui/src/i18n/locales/pl/package-manager.json +++ b/webview-ui/src/i18n/locales/pl/package-manager.json @@ -1,12 +1,12 @@ { - "title": "Menedżer pakietów", + "title": "Marketplace", "tabs": { "browse": "Przeglądaj", "sources": "Źródła" }, "filters": { "search": { - "placeholder": "Szukaj elementów menedżera pakietów..." + "placeholder": "Szukaj elementów marketplace..." }, "type": { "label": "Filtruj według typu:", @@ -34,7 +34,7 @@ }, "items": { "empty": { - "noItems": "Nie znaleziono elementów menedżera pakietów", + "noItems": "Nie znaleziono elementów marketplace", "withFilters": "Spróbuj dostosować filtry", "noSources": "Spróbuj dodać źródło w zakładce Źródła" }, @@ -53,13 +53,13 @@ } }, "sources": { - "title": "Konfiguruj źródła menedżera pakietów", - "description": "Dodaj repozytoria Git zawierające elementy menedżera pakietów. Te repozytoria będą pobierane podczas przeglądania menedżera pakietów.", + "title": "Konfiguruj źródła marketplace", + "description": "Dodaj repozytoria Git zawierające elementy marketplace. Te repozytoria będą pobierane podczas przeglądania marketplace.", "add": { "title": "Dodaj nowe źródło", "urlPlaceholder": "URL repozytorium Git (np. https://github.com/username/repo)", "urlFormats": "Obsługiwane formaty: HTTPS (https://github.com/username/repo), SSH (git@github.com:username/repo.git) lub protokół Git (git://github.com/username/repo.git)", - "namePlaceholder": "Nazwa wyświetlana (opcjonalnie, maks. 20 znaków)", + "namePlaceholder": "Nazwa wyświetlana (maks. 20 znaków)", "button": "Dodaj źródło" }, "current": { diff --git a/webview-ui/src/i18n/locales/pt-BR/package-manager.json b/webview-ui/src/i18n/locales/pt-BR/package-manager.json index 7762e72964..ac4c2160b4 100644 --- a/webview-ui/src/i18n/locales/pt-BR/package-manager.json +++ b/webview-ui/src/i18n/locales/pt-BR/package-manager.json @@ -1,12 +1,12 @@ { - "title": "Gerenciador de Pacotes", + "title": "Marketplace", "tabs": { "browse": "Navegar", "sources": "Fontes" }, "filters": { "search": { - "placeholder": "Pesquisar itens do gerenciador de pacotes..." + "placeholder": "Pesquisar itens do marketplace..." }, "type": { "label": "Filtrar por tipo:", @@ -36,7 +36,7 @@ }, "items": { "empty": { - "noItems": "Nenhum item do gerenciador de pacotes encontrado", + "noItems": "Nenhum item do marketplace encontrado", "withFilters": "Tente ajustar os filtros", "noSources": "Tente adicionar uma fonte na aba Fontes" }, @@ -58,13 +58,13 @@ } }, "sources": { - "title": "Configurar Fontes do Gerenciador de Pacotes", - "description": "Adicione repositórios Git que contenham itens do gerenciador de pacotes. Estes repositórios serão obtidos ao navegar pelo gerenciador de pacotes.", + "title": "Configurar Fontes do Marketplace", + "description": "Adicione repositórios Git que contenham itens do marketplace. Estes repositórios serão obtidos ao navegar pelo marketplace.", "add": { "title": "Adicionar Nova Fonte", "urlPlaceholder": "URL do repositório Git (ex: https://github.com/username/repo)", "urlFormats": "Formatos suportados: HTTPS (https://github.com/username/repo), SSH (git@github.com:username/repo.git) ou protocolo Git (git://github.com/username/repo.git)", - "namePlaceholder": "Nome de exibição (opcional, máx. 20 caracteres)", + "namePlaceholder": "Nome de exibição (máx. 20 caracteres)", "button": "Adicionar Fonte" }, "current": { diff --git a/webview-ui/src/i18n/locales/tr/package-manager.json b/webview-ui/src/i18n/locales/tr/package-manager.json index c179bf732c..55d55b4ef8 100644 --- a/webview-ui/src/i18n/locales/tr/package-manager.json +++ b/webview-ui/src/i18n/locales/tr/package-manager.json @@ -1,12 +1,12 @@ { - "title": "Paket Yöneticisi", + "title": "Marketplace", "tabs": { "browse": "Göz At", "sources": "Kaynaklar" }, "filters": { "search": { - "placeholder": "Paket yöneticisi öğelerini ara..." + "placeholder": "Marketplace öğelerini ara..." }, "type": { "label": "Türe göre filtrele:", @@ -34,7 +34,7 @@ }, "items": { "empty": { - "noItems": "Paket yöneticisi öğesi bulunamadı", + "noItems": "Marketplace öğesi bulunamadı", "withFilters": "Filtreleri ayarlamayı deneyin", "noSources": "Kaynaklar sekmesinde bir kaynak eklemeyi deneyin" }, @@ -52,13 +52,13 @@ } }, "sources": { - "title": "Paket Yöneticisi Kaynaklarını Yapılandır", - "description": "Paket yöneticisi öğeleri içeren Git depolarını ekleyin. Bu depolar, paket yöneticisine göz atarken getirilecektir.", + "title": "Marketplace Kaynaklarını Yapılandır", + "description": "Marketplace öğeleri içeren Git depolarını ekleyin. Bu depolar, marketplace'e göz atarken getirilecektir.", "add": { "title": "Yeni Kaynak Ekle", "urlPlaceholder": "Git deposu URL'si (örn. https://github.com/username/repo)", "urlFormats": "Desteklenen formatlar: HTTPS (https://github.com/username/repo), SSH (git@github.com:username/repo.git) veya Git protokolü (git://github.com/username/repo.git)", - "namePlaceholder": "Görünen ad (isteğe bağlı, en fazla 20 karakter)", + "namePlaceholder": "Görünen ad (en fazla 20 karakter)", "button": "Kaynak Ekle" }, "current": { diff --git a/webview-ui/src/i18n/locales/vi/package-manager.json b/webview-ui/src/i18n/locales/vi/package-manager.json index 185cbd29d7..c909f4cf69 100644 --- a/webview-ui/src/i18n/locales/vi/package-manager.json +++ b/webview-ui/src/i18n/locales/vi/package-manager.json @@ -1,12 +1,12 @@ { - "title": "Trình Quản Lý Gói", + "title": "Marketplace", "tabs": { "browse": "Duyệt", "sources": "Nguồn" }, "filters": { "search": { - "placeholder": "Tìm kiếm các mục quản lý gói..." + "placeholder": "Tìm kiếm các mục marketplace..." }, "type": { "label": "Lọc theo loại:", @@ -34,7 +34,7 @@ }, "items": { "empty": { - "noItems": "Không tìm thấy mục quản lý gói nào", + "noItems": "Không tìm thấy mục marketplace nào", "withFilters": "Thử điều chỉnh bộ lọc của bạn", "noSources": "Thử thêm một nguồn trong tab Nguồn" }, @@ -52,13 +52,13 @@ } }, "sources": { - "title": "Cấu hình Nguồn Trình Quản Lý Gói", - "description": "Thêm kho Git chứa các mục quản lý gói. Các kho này sẽ được tải khi duyệt trình quản lý gói.", + "title": "Cấu hình Nguồn Marketplace", + "description": "Thêm kho Git chứa các mục marketplace. Các kho này sẽ được tải khi duyệt marketplace.", "add": { "title": "Thêm Nguồn Mới", "urlPlaceholder": "URL kho Git (ví dụ: https://github.com/username/repo)", "urlFormats": "Định dạng được hỗ trợ: HTTPS (https://github.com/username/repo), SSH (git@github.com:username/repo.git), hoặc giao thức Git (git://github.com/username/repo.git)", - "namePlaceholder": "Tên hiển thị (tùy chọn, tối đa 20 ký tự)", + "namePlaceholder": "Tên hiển thị (tối đa 20 ký tự)", "button": "Thêm Nguồn" }, "current": { diff --git a/webview-ui/src/i18n/locales/zh-CN/package-manager.json b/webview-ui/src/i18n/locales/zh-CN/package-manager.json index 78025cf1f2..f82813d9b2 100644 --- a/webview-ui/src/i18n/locales/zh-CN/package-manager.json +++ b/webview-ui/src/i18n/locales/zh-CN/package-manager.json @@ -1,12 +1,12 @@ { - "title": "包管理器", + "title": "市场", "tabs": { "browse": "浏览", "sources": "源" }, "filters": { "search": { - "placeholder": "搜索包管理器项目..." + "placeholder": "搜索市场项目..." }, "type": { "label": "按类型筛选:", @@ -34,7 +34,7 @@ }, "items": { "empty": { - "noItems": "未找到包管理器项目", + "noItems": "未找到市场项目", "withFilters": "尝试调整筛选条件", "noSources": "尝试在源标签页中添加源" }, @@ -52,13 +52,13 @@ } }, "sources": { - "title": "配置包管理器源", - "description": "添加包含包管理器项目的Git仓库。浏览包管理器时将获取这些仓库。", + "title": "配置市场源", + "description": "添加包含市场项目的Git仓库。浏览市场时将获取这些仓库。", "add": { "title": "添加新源", "urlPlaceholder": "Git仓库URL(例如:https://github.com/username/repo)", "urlFormats": "支持的格式:HTTPS(https://github.com/username/repo)、SSH(git@github.com:username/repo.git)或Git协议(git://github.com/username/repo.git)", - "namePlaceholder": "显示名称(可选,最多20个字符)", + "namePlaceholder": "显示名称(最多20个字符)", "button": "添加源" }, "current": { diff --git a/webview-ui/src/i18n/locales/zh-TW/package-manager.json b/webview-ui/src/i18n/locales/zh-TW/package-manager.json index 59130948dd..28945ee512 100644 --- a/webview-ui/src/i18n/locales/zh-TW/package-manager.json +++ b/webview-ui/src/i18n/locales/zh-TW/package-manager.json @@ -1,12 +1,12 @@ { - "title": "套件管理器", + "title": "市集", "tabs": { "browse": "瀏覽", "sources": "來源" }, "filters": { "search": { - "placeholder": "搜尋套件管理器項目..." + "placeholder": "搜尋市集項目..." }, "type": { "label": "依類型篩選:", @@ -34,7 +34,7 @@ }, "items": { "empty": { - "noItems": "未找到套件管理器項目", + "noItems": "未找到市集項目", "withFilters": "嘗試調整篩選條件", "noSources": "嘗試在來源分頁中新增來源" }, @@ -52,13 +52,13 @@ } }, "sources": { - "title": "設定套件管理器來源", - "description": "新增包含套件管理器項目的Git儲存庫。瀏覽套件管理器時將擷取這些儲存庫。", + "title": "設定市集來源", + "description": "新增包含市集項目的Git儲存庫。瀏覽市集時將擷取這些儲存庫。", "add": { "title": "新增來源", "urlPlaceholder": "Git儲存庫URL(例如:https://github.com/username/repo)", "urlFormats": "支援的格式:HTTPS(https://github.com/username/repo)、SSH(git@github.com:username/repo.git)或Git協定(git://github.com/username/repo.git)", - "namePlaceholder": "顯示名稱(選填,最多20個字元)", + "namePlaceholder": "顯示名稱(最多20個字元)", "button": "新增來源" }, "current": {