@mytechtoday/augment-extensions 0.1.2 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +614 -39
- package/augment-extensions/coding-standards/bash/README.md +196 -0
- package/augment-extensions/coding-standards/bash/module.json +163 -0
- package/augment-extensions/coding-standards/bash/rules/naming-conventions.md +336 -0
- package/augment-extensions/coding-standards/bash/rules/universal-standards.md +289 -0
- package/augment-extensions/coding-standards/css/README.md +40 -0
- package/augment-extensions/coding-standards/css/examples/css-examples.css +550 -0
- package/augment-extensions/coding-standards/css/module.json +44 -0
- package/augment-extensions/coding-standards/css/rules/css-modern-features.md +448 -0
- package/augment-extensions/coding-standards/css/rules/css-standards.md +492 -0
- package/augment-extensions/coding-standards/html/README.md +40 -0
- package/augment-extensions/coding-standards/html/examples/html-examples.html +267 -0
- package/augment-extensions/coding-standards/html/examples/responsive-layout.html +505 -0
- package/augment-extensions/coding-standards/html/module.json +44 -0
- package/augment-extensions/coding-standards/html/rules/html-standards.md +349 -0
- package/augment-extensions/coding-standards/html-css-js/README.md +194 -0
- package/augment-extensions/coding-standards/html-css-js/examples/async-examples.js +487 -0
- package/augment-extensions/coding-standards/html-css-js/examples/css-examples.css +550 -0
- package/augment-extensions/coding-standards/html-css-js/examples/dom-examples.js +667 -0
- package/augment-extensions/coding-standards/html-css-js/examples/html-examples.html +267 -0
- package/augment-extensions/coding-standards/html-css-js/examples/javascript-examples.js +612 -0
- package/augment-extensions/coding-standards/html-css-js/examples/responsive-layout.html +505 -0
- package/augment-extensions/coding-standards/html-css-js/module.json +48 -0
- package/augment-extensions/coding-standards/html-css-js/rules/async-patterns.md +515 -0
- package/augment-extensions/coding-standards/html-css-js/rules/css-modern-features.md +448 -0
- package/augment-extensions/coding-standards/html-css-js/rules/css-standards.md +492 -0
- package/augment-extensions/coding-standards/html-css-js/rules/dom-manipulation.md +439 -0
- package/augment-extensions/coding-standards/html-css-js/rules/html-standards.md +349 -0
- package/augment-extensions/coding-standards/html-css-js/rules/javascript-standards.md +486 -0
- package/augment-extensions/coding-standards/html-css-js/rules/performance.md +463 -0
- package/augment-extensions/coding-standards/html-css-js/rules/tooling.md +543 -0
- package/augment-extensions/coding-standards/js/README.md +46 -0
- package/augment-extensions/coding-standards/js/examples/async-examples.js +487 -0
- package/augment-extensions/coding-standards/js/examples/dom-examples.js +667 -0
- package/augment-extensions/coding-standards/js/examples/javascript-examples.js +612 -0
- package/augment-extensions/coding-standards/js/module.json +49 -0
- package/augment-extensions/coding-standards/js/rules/async-patterns.md +515 -0
- package/augment-extensions/coding-standards/js/rules/dom-manipulation.md +439 -0
- package/augment-extensions/coding-standards/js/rules/javascript-standards.md +486 -0
- package/augment-extensions/coding-standards/js/rules/performance.md +463 -0
- package/augment-extensions/coding-standards/js/rules/tooling.md +543 -0
- package/augment-extensions/coding-standards/php/README.md +248 -0
- package/augment-extensions/coding-standards/php/examples/api-endpoint-example.php +204 -0
- package/augment-extensions/coding-standards/php/examples/cli-command-example.php +206 -0
- package/augment-extensions/coding-standards/php/examples/legacy-refactoring-example.php +234 -0
- package/augment-extensions/coding-standards/php/examples/web-application-example.php +211 -0
- package/augment-extensions/coding-standards/php/examples/woocommerce-extension-example.php +215 -0
- package/augment-extensions/coding-standards/php/examples/wordpress-plugin-example.php +189 -0
- package/augment-extensions/coding-standards/php/module.json +166 -0
- package/augment-extensions/coding-standards/php/rules/api-development.md +480 -0
- package/augment-extensions/coding-standards/php/rules/category-configuration.md +332 -0
- package/augment-extensions/coding-standards/php/rules/cli-tools.md +472 -0
- package/augment-extensions/coding-standards/php/rules/cms-integration.md +561 -0
- package/augment-extensions/coding-standards/php/rules/code-quality.md +402 -0
- package/augment-extensions/coding-standards/php/rules/documentation.md +425 -0
- package/augment-extensions/coding-standards/php/rules/ecommerce.md +627 -0
- package/augment-extensions/coding-standards/php/rules/error-handling.md +336 -0
- package/augment-extensions/coding-standards/php/rules/legacy-migration.md +677 -0
- package/augment-extensions/coding-standards/php/rules/naming-conventions.md +279 -0
- package/augment-extensions/coding-standards/php/rules/performance.md +392 -0
- package/augment-extensions/coding-standards/php/rules/psr-standards.md +186 -0
- package/augment-extensions/coding-standards/php/rules/security.md +358 -0
- package/augment-extensions/coding-standards/php/rules/testing.md +403 -0
- package/augment-extensions/coding-standards/php/rules/type-declarations.md +331 -0
- package/augment-extensions/coding-standards/php/rules/web-applications.md +426 -0
- package/augment-extensions/coding-standards/powershell/README.md +154 -0
- package/augment-extensions/coding-standards/powershell/examples/admin-example.ps1 +272 -0
- package/augment-extensions/coding-standards/powershell/examples/automation-example.ps1 +173 -0
- package/augment-extensions/coding-standards/powershell/examples/cloud-example.ps1 +243 -0
- package/augment-extensions/coding-standards/powershell/examples/cross-platform-example.ps1 +297 -0
- package/augment-extensions/coding-standards/powershell/examples/dsc-example.ps1 +224 -0
- package/augment-extensions/coding-standards/powershell/examples/legacy-migration-example.ps1 +340 -0
- package/augment-extensions/coding-standards/powershell/examples/module-example.psm1 +255 -0
- package/augment-extensions/coding-standards/powershell/module.json +165 -0
- package/augment-extensions/coding-standards/powershell/rules/administrative-tools.md +439 -0
- package/augment-extensions/coding-standards/powershell/rules/automation-scripts.md +240 -0
- package/augment-extensions/coding-standards/powershell/rules/cloud-orchestration.md +384 -0
- package/augment-extensions/coding-standards/powershell/rules/configuration-schema.md +383 -0
- package/augment-extensions/coding-standards/powershell/rules/cross-platform-scripts.md +482 -0
- package/augment-extensions/coding-standards/powershell/rules/dsc-configurations.md +296 -0
- package/augment-extensions/coding-standards/powershell/rules/error-handling.md +314 -0
- package/augment-extensions/coding-standards/powershell/rules/legacy-migrations.md +466 -0
- package/augment-extensions/coding-standards/powershell/rules/modules-functions.md +244 -0
- package/augment-extensions/coding-standards/powershell/rules/naming-conventions.md +266 -0
- package/augment-extensions/coding-standards/powershell/rules/performance-optimization.md +209 -0
- package/augment-extensions/coding-standards/powershell/rules/security-practices.md +314 -0
- package/augment-extensions/coding-standards/powershell/rules/testing-guidelines.md +268 -0
- package/augment-extensions/coding-standards/powershell/rules/universal-standards.md +197 -0
- package/augment-extensions/coding-standards/python/README.md +12 -8
- package/augment-extensions/coding-standards/python/examples/best-practices.py +373 -0
- package/augment-extensions/coding-standards/python/module.json +8 -4
- package/augment-extensions/coding-standards/python/rules/async-patterns.md +884 -0
- package/augment-extensions/coding-standards/python/rules/documentation.md +831 -0
- package/augment-extensions/coding-standards/python/rules/error-handling.md +855 -68
- package/augment-extensions/coding-standards/python/rules/testing.md +409 -0
- package/augment-extensions/coding-standards/python/rules/tooling.md +446 -0
- package/augment-extensions/coding-standards/python/rules/type-hints.md +115 -50
- package/augment-extensions/collections/html-css-js/README.md +82 -0
- package/augment-extensions/collections/html-css-js/collection.json +41 -0
- package/augment-extensions/domain-rules/database/README.md +161 -0
- package/augment-extensions/domain-rules/database/examples/flat-database-example.md +793 -0
- package/augment-extensions/domain-rules/database/examples/hybrid-database-example.md +1132 -0
- package/augment-extensions/domain-rules/database/examples/nosql-document-example.md +868 -0
- package/augment-extensions/domain-rules/database/examples/nosql-graph-example.md +805 -0
- package/augment-extensions/domain-rules/database/examples/relational-schema-example.md +621 -0
- package/augment-extensions/domain-rules/database/examples/vector-database-example.md +965 -0
- package/augment-extensions/domain-rules/database/module.json +28 -0
- package/augment-extensions/domain-rules/database/rules/flat-databases.md +624 -0
- package/augment-extensions/domain-rules/database/rules/nosql-databases.md +588 -0
- package/augment-extensions/domain-rules/database/rules/nosql-document-stores.md +856 -0
- package/augment-extensions/domain-rules/database/rules/nosql-graph-databases.md +778 -0
- package/augment-extensions/domain-rules/database/rules/nosql-key-value-stores.md +963 -0
- package/augment-extensions/domain-rules/database/rules/performance-optimization.md +1076 -0
- package/augment-extensions/domain-rules/database/rules/relational-databases.md +697 -0
- package/augment-extensions/domain-rules/database/rules/relational-indexing.md +671 -0
- package/augment-extensions/domain-rules/database/rules/relational-query-optimization.md +607 -0
- package/augment-extensions/domain-rules/database/rules/relational-schema-design.md +907 -0
- package/augment-extensions/domain-rules/database/rules/relational-transactions.md +783 -0
- package/augment-extensions/domain-rules/database/rules/security-standards.md +980 -0
- package/augment-extensions/domain-rules/database/rules/universal-best-practices.md +485 -0
- package/augment-extensions/domain-rules/database/rules/vector-databases.md +521 -0
- package/augment-extensions/domain-rules/database/rules/vector-embeddings.md +858 -0
- package/augment-extensions/domain-rules/database/rules/vector-indexing.md +934 -0
- package/augment-extensions/domain-rules/mcp/README.md +150 -0
- package/augment-extensions/domain-rules/mcp/examples/compressed-example.md +522 -0
- package/augment-extensions/domain-rules/mcp/examples/graph-augmented-example.md +520 -0
- package/augment-extensions/domain-rules/mcp/examples/hybrid-example.md +570 -0
- package/augment-extensions/domain-rules/mcp/examples/state-based-example.md +427 -0
- package/augment-extensions/domain-rules/mcp/examples/token-based-example.md +435 -0
- package/augment-extensions/domain-rules/mcp/examples/vector-based-example.md +502 -0
- package/augment-extensions/domain-rules/mcp/module.json +49 -0
- package/augment-extensions/domain-rules/mcp/rules/compressed-mcp.md +595 -0
- package/augment-extensions/domain-rules/mcp/rules/configuration.md +345 -0
- package/augment-extensions/domain-rules/mcp/rules/graph-augmented-mcp.md +687 -0
- package/augment-extensions/domain-rules/mcp/rules/hybrid-mcp.md +636 -0
- package/augment-extensions/domain-rules/mcp/rules/state-based-mcp.md +484 -0
- package/augment-extensions/domain-rules/mcp/rules/testing-validation.md +360 -0
- package/augment-extensions/domain-rules/mcp/rules/token-based-mcp.md +393 -0
- package/augment-extensions/domain-rules/mcp/rules/universal-rules.md +194 -0
- package/augment-extensions/domain-rules/mcp/rules/vector-based-mcp.md +625 -0
- package/augment-extensions/domain-rules/wordpress/README.md +163 -0
- package/augment-extensions/domain-rules/wordpress/module.json +32 -0
- package/augment-extensions/domain-rules/wordpress/rules/coding-standards.md +617 -0
- package/augment-extensions/domain-rules/wordpress/rules/directory-structure.md +270 -0
- package/augment-extensions/domain-rules/wordpress/rules/file-patterns.md +423 -0
- package/augment-extensions/domain-rules/wordpress/rules/gutenberg-blocks.md +493 -0
- package/augment-extensions/domain-rules/wordpress/rules/performance.md +568 -0
- package/augment-extensions/domain-rules/wordpress/rules/plugin-development.md +510 -0
- package/augment-extensions/domain-rules/wordpress/rules/project-detection.md +251 -0
- package/augment-extensions/domain-rules/wordpress/rules/rest-api.md +501 -0
- package/augment-extensions/domain-rules/wordpress/rules/security.md +564 -0
- package/augment-extensions/domain-rules/wordpress/rules/theme-development.md +388 -0
- package/augment-extensions/domain-rules/wordpress/rules/woocommerce.md +441 -0
- package/augment-extensions/domain-rules/wordpress-plugin/README.md +139 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/ajax-plugin.md +1599 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/custom-post-type-plugin.md +1727 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/gutenberg-block-plugin.md +428 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/gutenberg-block.md +422 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/mvc-plugin.md +1623 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/object-oriented-plugin.md +1343 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/rest-endpoint.md +734 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/settings-page-plugin.md +1350 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/simple-procedural-plugin.md +503 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/singleton-plugin.md +971 -0
- package/augment-extensions/domain-rules/wordpress-plugin/module.json +53 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/activation-hooks.md +770 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/admin-interface.md +874 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/ajax-handlers.md +629 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/asset-management.md +559 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/context-providers.md +709 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/cron-jobs.md +736 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/database-management.md +1057 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/documentation-standards.md +463 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/frontend-functionality.md +478 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/gutenberg-blocks.md +818 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/internationalization.md +416 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/migration.md +667 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/performance-optimization.md +878 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/plugin-architecture.md +693 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/plugin-structure.md +352 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/rest-api.md +818 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/scaffolding-workflow.md +624 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/security-best-practices.md +866 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/testing-patterns.md +1165 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/testing.md +414 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/vscode-integration.md +751 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/woocommerce-integration.md +949 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/wordpress-org-submission.md +458 -0
- package/augment-extensions/examples/gutenberg-block-plugin/README.md +101 -0
- package/augment-extensions/examples/gutenberg-block-plugin/examples/testimonial-block.md +428 -0
- package/augment-extensions/examples/gutenberg-block-plugin/module.json +40 -0
- package/augment-extensions/examples/rest-api-plugin/README.md +98 -0
- package/augment-extensions/examples/rest-api-plugin/examples/task-manager-api.md +1299 -0
- package/augment-extensions/examples/rest-api-plugin/module.json +40 -0
- package/augment-extensions/examples/woocommerce-extension/README.md +98 -0
- package/augment-extensions/examples/woocommerce-extension/examples/product-customizer.md +763 -0
- package/augment-extensions/examples/woocommerce-extension/module.json +40 -0
- package/augment-extensions/workflows/beads/module.json +4 -3
- package/augment-extensions/workflows/database/README.md +195 -0
- package/augment-extensions/workflows/database/ai-prompt-testing.md +295 -0
- package/augment-extensions/workflows/database/examples/migration-example.md +498 -0
- package/augment-extensions/workflows/database/examples/optimization-example.md +496 -0
- package/augment-extensions/workflows/database/examples/schema-design-example.md +444 -0
- package/augment-extensions/workflows/database/module.json +42 -0
- package/augment-extensions/workflows/database/rules/data-migration.md +249 -0
- package/augment-extensions/workflows/database/rules/documentation-standards.md +339 -0
- package/augment-extensions/workflows/database/rules/migration-workflow.md +352 -0
- package/augment-extensions/workflows/database/rules/optimization-workflow.md +435 -0
- package/augment-extensions/workflows/database/rules/schema-design-workflow.md +535 -0
- package/augment-extensions/workflows/database/rules/testing-patterns.md +305 -0
- package/augment-extensions/workflows/database/rules/workflow.md +458 -0
- package/augment-extensions/workflows/openspec/module.json +4 -3
- package/augment-extensions/workflows/wordpress-plugin/README.md +232 -0
- package/augment-extensions/workflows/wordpress-plugin/ai-prompts.md +839 -0
- package/augment-extensions/workflows/wordpress-plugin/bead-decomposition-patterns.md +854 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/complete-plugin-example.md +540 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/custom-post-type-example.md +1083 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/feature-addition-workflow.md +669 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/plugin-creation-workflow.md +597 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/secure-form-handler-example.md +925 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/security-audit-workflow.md +752 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/wordpress-org-submission-workflow.md +773 -0
- package/augment-extensions/workflows/wordpress-plugin/module.json +49 -0
- package/augment-extensions/workflows/wordpress-plugin/rules/best-practices.md +942 -0
- package/augment-extensions/workflows/wordpress-plugin/rules/development-workflow.md +702 -0
- package/augment-extensions/workflows/wordpress-plugin/rules/submission-workflow.md +728 -0
- package/augment-extensions/workflows/wordpress-plugin/rules/testing-workflow.md +775 -0
- package/augment-extensions/writing-standards/screenplay/README.md +171 -0
- package/augment-extensions/writing-standards/screenplay/examples/aaa-hollywood-scene.fountain +164 -0
- package/augment-extensions/writing-standards/screenplay/module.json +124 -0
- package/augment-extensions/writing-standards/screenplay/rules/universal-formatting.md +339 -0
- package/cli/MODULES.md +302 -0
- package/cli/dist/cli.js +142 -9
- package/cli/dist/cli.js.map +1 -1
- package/cli/dist/commands/catalog.d.ts +13 -0
- package/cli/dist/commands/catalog.d.ts.map +1 -0
- package/cli/dist/commands/catalog.js +104 -0
- package/cli/dist/commands/catalog.js.map +1 -0
- package/cli/dist/commands/gui.d.ts +6 -0
- package/cli/dist/commands/gui.d.ts.map +1 -0
- package/cli/dist/commands/gui.js +211 -0
- package/cli/dist/commands/gui.js.map +1 -0
- package/cli/dist/commands/init.d.ts.map +1 -1
- package/cli/dist/commands/init.js +12 -0
- package/cli/dist/commands/init.js.map +1 -1
- package/cli/dist/commands/install-rules.d.ts +14 -0
- package/cli/dist/commands/install-rules.d.ts.map +1 -0
- package/cli/dist/commands/install-rules.js +127 -0
- package/cli/dist/commands/install-rules.js.map +1 -0
- package/cli/dist/commands/link.d.ts.map +1 -1
- package/cli/dist/commands/link.js +9 -11
- package/cli/dist/commands/link.js.map +1 -1
- package/cli/dist/commands/list.d.ts.map +1 -1
- package/cli/dist/commands/list.js +11 -28
- package/cli/dist/commands/list.js.map +1 -1
- package/cli/dist/commands/mcp.d.ts +48 -0
- package/cli/dist/commands/mcp.d.ts.map +1 -0
- package/cli/dist/commands/mcp.js +229 -0
- package/cli/dist/commands/mcp.js.map +1 -0
- package/cli/dist/commands/self-remove.d.ts +7 -0
- package/cli/dist/commands/self-remove.d.ts.map +1 -0
- package/cli/dist/commands/self-remove.js +179 -0
- package/cli/dist/commands/self-remove.js.map +1 -0
- package/cli/dist/commands/show.d.ts.map +1 -1
- package/cli/dist/commands/show.js +42 -71
- package/cli/dist/commands/show.js.map +1 -1
- package/cli/dist/commands/skill.d.ts +67 -0
- package/cli/dist/commands/skill.d.ts.map +1 -0
- package/cli/dist/commands/skill.js +513 -0
- package/cli/dist/commands/skill.js.map +1 -0
- package/cli/dist/commands/unlink.d.ts +6 -0
- package/cli/dist/commands/unlink.d.ts.map +1 -0
- package/cli/dist/commands/unlink.js +115 -0
- package/cli/dist/commands/unlink.js.map +1 -0
- package/cli/dist/commands/validate.d.ts +6 -0
- package/cli/dist/commands/validate.d.ts.map +1 -0
- package/cli/dist/commands/validate.js +159 -0
- package/cli/dist/commands/validate.js.map +1 -0
- package/cli/dist/utils/catalog-sync.d.ts +22 -0
- package/cli/dist/utils/catalog-sync.d.ts.map +1 -0
- package/cli/dist/utils/catalog-sync.js +157 -0
- package/cli/dist/utils/catalog-sync.js.map +1 -0
- package/cli/dist/utils/character-count.d.ts +56 -0
- package/cli/dist/utils/character-count.d.ts.map +1 -0
- package/cli/dist/utils/character-count.js +190 -0
- package/cli/dist/utils/character-count.js.map +1 -0
- package/cli/dist/utils/documentation-validator.d.ts +18 -0
- package/cli/dist/utils/documentation-validator.d.ts.map +1 -0
- package/cli/dist/utils/documentation-validator.js +233 -0
- package/cli/dist/utils/documentation-validator.js.map +1 -0
- package/cli/dist/utils/install-rules.d.ts +32 -0
- package/cli/dist/utils/install-rules.d.ts.map +1 -0
- package/cli/dist/utils/install-rules.js +375 -0
- package/cli/dist/utils/install-rules.js.map +1 -0
- package/cli/dist/utils/mcp-integration.d.ts +70 -0
- package/cli/dist/utils/mcp-integration.d.ts.map +1 -0
- package/cli/dist/utils/mcp-integration.js +292 -0
- package/cli/dist/utils/mcp-integration.js.map +1 -0
- package/cli/dist/utils/module-system.d.ts +153 -0
- package/cli/dist/utils/module-system.d.ts.map +1 -0
- package/cli/dist/utils/module-system.js +528 -0
- package/cli/dist/utils/module-system.js.map +1 -0
- package/cli/dist/utils/modules-catalog.d.ts +33 -0
- package/cli/dist/utils/modules-catalog.d.ts.map +1 -0
- package/cli/dist/utils/modules-catalog.js +163 -0
- package/cli/dist/utils/modules-catalog.js.map +1 -0
- package/cli/dist/utils/rule-install-hooks.d.ts +19 -0
- package/cli/dist/utils/rule-install-hooks.d.ts.map +1 -0
- package/cli/dist/utils/rule-install-hooks.js +224 -0
- package/cli/dist/utils/rule-install-hooks.js.map +1 -0
- package/cli/dist/utils/skill-system.d.ts +95 -0
- package/cli/dist/utils/skill-system.d.ts.map +1 -0
- package/cli/dist/utils/skill-system.js +313 -0
- package/cli/dist/utils/skill-system.js.map +1 -0
- package/modules.md +534 -70
- package/package.json +12 -3
|
@@ -0,0 +1,502 @@
|
|
|
1
|
+
# Vector-Based MCP Example: Knowledge Base Q&A
|
|
2
|
+
|
|
3
|
+
## Use Case
|
|
4
|
+
|
|
5
|
+
A knowledge base Q&A system that retrieves relevant documentation using semantic search (RAG - Retrieval Augmented Generation).
|
|
6
|
+
|
|
7
|
+
**Challenges**:
|
|
8
|
+
- Large knowledge base (10,000+ documents)
|
|
9
|
+
- Semantic similarity search
|
|
10
|
+
- Relevance ranking
|
|
11
|
+
- Context window management
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Configuration
|
|
16
|
+
|
|
17
|
+
```json
|
|
18
|
+
{
|
|
19
|
+
"mcp": {
|
|
20
|
+
"type": "vector",
|
|
21
|
+
"embedding": {
|
|
22
|
+
"model": "voyage-3-large",
|
|
23
|
+
"dimensions": 1024,
|
|
24
|
+
"batchSize": 100
|
|
25
|
+
},
|
|
26
|
+
"vectorStore": {
|
|
27
|
+
"backend": "pinecone",
|
|
28
|
+
"index": "knowledge-base",
|
|
29
|
+
"metric": "cosine"
|
|
30
|
+
},
|
|
31
|
+
"retrieval": {
|
|
32
|
+
"topK": 10,
|
|
33
|
+
"minScore": 0.7,
|
|
34
|
+
"rerankingEnabled": true,
|
|
35
|
+
"rerankingModel": "cohere-rerank-v3"
|
|
36
|
+
},
|
|
37
|
+
"chunking": {
|
|
38
|
+
"strategy": "semantic",
|
|
39
|
+
"chunkSize": 512,
|
|
40
|
+
"overlap": 50
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Architecture
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
52
|
+
│ Knowledge Base (10,000 documents) │
|
|
53
|
+
└─────────────────────────────────────────────────────────────┘
|
|
54
|
+
│
|
|
55
|
+
▼
|
|
56
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
57
|
+
│ Document Processing Pipeline │
|
|
58
|
+
│ ┌──────────────────────────────────────────────────────┐ │
|
|
59
|
+
│ │ 1. Chunking (semantic, 512 tokens, 50 overlap) │ │
|
|
60
|
+
│ └──────────────────────────────────────────────────────┘ │
|
|
61
|
+
│ ┌──────────────────────────────────────────────────────┐ │
|
|
62
|
+
│ │ 2. Embedding (voyage-3-large, 1024 dims) │ │
|
|
63
|
+
│ └──────────────────────────────────────────────────────┘ │
|
|
64
|
+
│ ┌──────────────────────────────────────────────────────┐ │
|
|
65
|
+
│ │ 3. Indexing (Pinecone, cosine similarity) │ │
|
|
66
|
+
│ └──────────────────────────────────────────────────────┘ │
|
|
67
|
+
└─────────────────────────────────────────────────────────────┘
|
|
68
|
+
│
|
|
69
|
+
▼
|
|
70
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
71
|
+
│ Query Processing │
|
|
72
|
+
│ User Query → Embed → Vector Search → Rerank → Context │
|
|
73
|
+
└─────────────────────────────────────────────────────────────┘
|
|
74
|
+
│
|
|
75
|
+
▼
|
|
76
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
77
|
+
│ LLM Generation │
|
|
78
|
+
│ Context + Query → GPT-4o → Answer │
|
|
79
|
+
└─────────────────────────────────────────────────────────────┘
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Implementation
|
|
85
|
+
|
|
86
|
+
### Step 1: Document Processor
|
|
87
|
+
|
|
88
|
+
```python
|
|
89
|
+
import voyageai
|
|
90
|
+
from pinecone import Pinecone
|
|
91
|
+
from typing import List, Dict, Any
|
|
92
|
+
import hashlib
|
|
93
|
+
|
|
94
|
+
class DocumentProcessor:
|
|
95
|
+
def __init__(self, voyage_api_key: str, pinecone_api_key: str, index_name: str):
|
|
96
|
+
self.voyage_client = voyageai.Client(api_key=voyage_api_key)
|
|
97
|
+
self.pc = Pinecone(api_key=pinecone_api_key)
|
|
98
|
+
self.index = self.pc.Index(index_name)
|
|
99
|
+
self.chunk_size = 512
|
|
100
|
+
self.overlap = 50
|
|
101
|
+
|
|
102
|
+
def chunk_document(self, text: str, metadata: Dict[str, Any]) -> List[Dict[str, Any]]:
|
|
103
|
+
"""Chunk document using semantic chunking"""
|
|
104
|
+
# Simple sentence-based chunking (use semantic chunking in production)
|
|
105
|
+
sentences = text.split('. ')
|
|
106
|
+
chunks = []
|
|
107
|
+
current_chunk = []
|
|
108
|
+
current_length = 0
|
|
109
|
+
|
|
110
|
+
for sentence in sentences:
|
|
111
|
+
sentence_length = len(sentence.split())
|
|
112
|
+
|
|
113
|
+
if current_length + sentence_length > self.chunk_size:
|
|
114
|
+
# Save current chunk
|
|
115
|
+
chunk_text = '. '.join(current_chunk) + '.'
|
|
116
|
+
chunk_id = hashlib.md5(chunk_text.encode()).hexdigest()
|
|
117
|
+
|
|
118
|
+
chunks.append({
|
|
119
|
+
"id": chunk_id,
|
|
120
|
+
"text": chunk_text,
|
|
121
|
+
"metadata": {
|
|
122
|
+
**metadata,
|
|
123
|
+
"chunk_index": len(chunks),
|
|
124
|
+
"chunk_length": current_length
|
|
125
|
+
}
|
|
126
|
+
})
|
|
127
|
+
|
|
128
|
+
# Start new chunk with overlap
|
|
129
|
+
overlap_sentences = current_chunk[-self.overlap:] if len(current_chunk) > self.overlap else current_chunk
|
|
130
|
+
current_chunk = overlap_sentences + [sentence]
|
|
131
|
+
current_length = sum(len(s.split()) for s in current_chunk)
|
|
132
|
+
else:
|
|
133
|
+
current_chunk.append(sentence)
|
|
134
|
+
current_length += sentence_length
|
|
135
|
+
|
|
136
|
+
# Add final chunk
|
|
137
|
+
if current_chunk:
|
|
138
|
+
chunk_text = '. '.join(current_chunk) + '.'
|
|
139
|
+
chunk_id = hashlib.md5(chunk_text.encode()).hexdigest()
|
|
140
|
+
chunks.append({
|
|
141
|
+
"id": chunk_id,
|
|
142
|
+
"text": chunk_text,
|
|
143
|
+
"metadata": {
|
|
144
|
+
**metadata,
|
|
145
|
+
"chunk_index": len(chunks),
|
|
146
|
+
"chunk_length": current_length
|
|
147
|
+
}
|
|
148
|
+
})
|
|
149
|
+
|
|
150
|
+
return chunks
|
|
151
|
+
|
|
152
|
+
def embed_chunks(self, chunks: List[Dict[str, Any]]) -> List[Dict[str, Any]]:
|
|
153
|
+
"""Generate embeddings for chunks"""
|
|
154
|
+
texts = [chunk["text"] for chunk in chunks]
|
|
155
|
+
|
|
156
|
+
# Batch embedding
|
|
157
|
+
embeddings = self.voyage_client.embed(
|
|
158
|
+
texts=texts,
|
|
159
|
+
model="voyage-3-large",
|
|
160
|
+
input_type="document"
|
|
161
|
+
).embeddings
|
|
162
|
+
|
|
163
|
+
for chunk, embedding in zip(chunks, embeddings):
|
|
164
|
+
chunk["embedding"] = embedding
|
|
165
|
+
|
|
166
|
+
return chunks
|
|
167
|
+
|
|
168
|
+
def index_chunks(self, chunks: List[Dict[str, Any]]) -> None:
|
|
169
|
+
"""Index chunks in Pinecone"""
|
|
170
|
+
vectors = [
|
|
171
|
+
{
|
|
172
|
+
"id": chunk["id"],
|
|
173
|
+
"values": chunk["embedding"],
|
|
174
|
+
"metadata": {
|
|
175
|
+
"text": chunk["text"],
|
|
176
|
+
**chunk["metadata"]
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
for chunk in chunks
|
|
180
|
+
]
|
|
181
|
+
|
|
182
|
+
# Upsert in batches
|
|
183
|
+
batch_size = 100
|
|
184
|
+
for i in range(0, len(vectors), batch_size):
|
|
185
|
+
batch = vectors[i:i+batch_size]
|
|
186
|
+
self.index.upsert(vectors=batch)
|
|
187
|
+
|
|
188
|
+
def process_document(self, text: str, metadata: Dict[str, Any]) -> None:
|
|
189
|
+
"""Full pipeline: chunk → embed → index"""
|
|
190
|
+
chunks = self.chunk_document(text, metadata)
|
|
191
|
+
chunks_with_embeddings = self.embed_chunks(chunks)
|
|
192
|
+
self.index_chunks(chunks_with_embeddings)
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### Step 2: Retrieval System
|
|
196
|
+
|
|
197
|
+
```python
|
|
198
|
+
import cohere
|
|
199
|
+
import openai
|
|
200
|
+
from typing import List, Dict, Any
|
|
201
|
+
|
|
202
|
+
class KnowledgeBaseQA:
|
|
203
|
+
def __init__(
|
|
204
|
+
self,
|
|
205
|
+
voyage_api_key: str,
|
|
206
|
+
pinecone_api_key: str,
|
|
207
|
+
cohere_api_key: str,
|
|
208
|
+
openai_api_key: str,
|
|
209
|
+
index_name: str
|
|
210
|
+
):
|
|
211
|
+
self.voyage_client = voyageai.Client(api_key=voyage_api_key)
|
|
212
|
+
self.pc = Pinecone(api_key=pinecone_api_key)
|
|
213
|
+
self.index = self.pc.Index(index_name)
|
|
214
|
+
self.cohere_client = cohere.Client(api_key=cohere_api_key)
|
|
215
|
+
self.openai_client = openai.OpenAI(api_key=openai_api_key)
|
|
216
|
+
self.top_k = 10
|
|
217
|
+
self.min_score = 0.7
|
|
218
|
+
|
|
219
|
+
def retrieve(self, query: str) -> List[Dict[str, Any]]:
|
|
220
|
+
"""Retrieve relevant chunks using vector search"""
|
|
221
|
+
# Embed query
|
|
222
|
+
query_embedding = self.voyage_client.embed(
|
|
223
|
+
texts=[query],
|
|
224
|
+
model="voyage-3-large",
|
|
225
|
+
input_type="query"
|
|
226
|
+
).embeddings[0]
|
|
227
|
+
|
|
228
|
+
# Vector search
|
|
229
|
+
results = self.index.query(
|
|
230
|
+
vector=query_embedding,
|
|
231
|
+
top_k=self.top_k,
|
|
232
|
+
include_metadata=True
|
|
233
|
+
)
|
|
234
|
+
|
|
235
|
+
# Filter by score
|
|
236
|
+
filtered_results = [
|
|
237
|
+
{
|
|
238
|
+
"id": match.id,
|
|
239
|
+
"score": match.score,
|
|
240
|
+
"text": match.metadata["text"],
|
|
241
|
+
"metadata": {k: v for k, v in match.metadata.items() if k != "text"}
|
|
242
|
+
}
|
|
243
|
+
for match in results.matches
|
|
244
|
+
if match.score >= self.min_score
|
|
245
|
+
]
|
|
246
|
+
|
|
247
|
+
return filtered_results
|
|
248
|
+
|
|
249
|
+
def rerank(self, query: str, documents: List[Dict[str, Any]]) -> List[Dict[str, Any]]:
|
|
250
|
+
"""Rerank documents using Cohere Rerank"""
|
|
251
|
+
if not documents:
|
|
252
|
+
return []
|
|
253
|
+
|
|
254
|
+
# Prepare documents for reranking
|
|
255
|
+
texts = [doc["text"] for doc in documents]
|
|
256
|
+
|
|
257
|
+
# Rerank
|
|
258
|
+
rerank_results = self.cohere_client.rerank(
|
|
259
|
+
model="rerank-english-v3.0",
|
|
260
|
+
query=query,
|
|
261
|
+
documents=texts,
|
|
262
|
+
top_n=5
|
|
263
|
+
)
|
|
264
|
+
|
|
265
|
+
# Map back to original documents
|
|
266
|
+
reranked_docs = []
|
|
267
|
+
for result in rerank_results.results:
|
|
268
|
+
doc = documents[result.index]
|
|
269
|
+
doc["rerank_score"] = result.relevance_score
|
|
270
|
+
reranked_docs.append(doc)
|
|
271
|
+
|
|
272
|
+
return reranked_docs
|
|
273
|
+
|
|
274
|
+
def answer_question(self, query: str) -> Dict[str, Any]:
|
|
275
|
+
"""Answer question using RAG"""
|
|
276
|
+
# Retrieve relevant documents
|
|
277
|
+
retrieved_docs = self.retrieve(query)
|
|
278
|
+
|
|
279
|
+
if not retrieved_docs:
|
|
280
|
+
return {
|
|
281
|
+
"answer": "I couldn't find relevant information to answer your question.",
|
|
282
|
+
"sources": []
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
# Rerank documents
|
|
286
|
+
reranked_docs = self.rerank(query, retrieved_docs)
|
|
287
|
+
|
|
288
|
+
# Build context from top documents
|
|
289
|
+
context_parts = []
|
|
290
|
+
for i, doc in enumerate(reranked_docs[:5], 1):
|
|
291
|
+
source = doc["metadata"].get("source", "Unknown")
|
|
292
|
+
context_parts.append(f"[{i}] {doc['text']}\nSource: {source}")
|
|
293
|
+
|
|
294
|
+
context = "\n\n".join(context_parts)
|
|
295
|
+
|
|
296
|
+
# Generate answer
|
|
297
|
+
messages = [
|
|
298
|
+
{
|
|
299
|
+
"role": "system",
|
|
300
|
+
"content": """You are a helpful assistant that answers questions based on the provided context.
|
|
301
|
+
|
|
302
|
+
Rules:
|
|
303
|
+
1. Only use information from the provided context
|
|
304
|
+
2. If the context doesn't contain the answer, say so
|
|
305
|
+
3. Cite sources using [1], [2], etc.
|
|
306
|
+
4. Be concise and accurate"""
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
"role": "user",
|
|
310
|
+
"content": f"""Context:
|
|
311
|
+
{context}
|
|
312
|
+
|
|
313
|
+
Question: {query}
|
|
314
|
+
|
|
315
|
+
Answer:"""
|
|
316
|
+
}
|
|
317
|
+
]
|
|
318
|
+
|
|
319
|
+
response = self.openai_client.chat.completions.create(
|
|
320
|
+
model="gpt-4o",
|
|
321
|
+
messages=messages,
|
|
322
|
+
temperature=0.3
|
|
323
|
+
)
|
|
324
|
+
|
|
325
|
+
answer = response.choices[0].message.content
|
|
326
|
+
|
|
327
|
+
return {
|
|
328
|
+
"answer": answer,
|
|
329
|
+
"sources": [
|
|
330
|
+
{
|
|
331
|
+
"text": doc["text"],
|
|
332
|
+
"score": doc["score"],
|
|
333
|
+
"rerank_score": doc["rerank_score"],
|
|
334
|
+
"metadata": doc["metadata"]
|
|
335
|
+
}
|
|
336
|
+
for doc in reranked_docs
|
|
337
|
+
]
|
|
338
|
+
}
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
---
|
|
342
|
+
|
|
343
|
+
## Usage Example
|
|
344
|
+
|
|
345
|
+
```python
|
|
346
|
+
# Initialize processor
|
|
347
|
+
processor = DocumentProcessor(
|
|
348
|
+
voyage_api_key="your-voyage-key",
|
|
349
|
+
pinecone_api_key="your-pinecone-key",
|
|
350
|
+
index_name="knowledge-base"
|
|
351
|
+
)
|
|
352
|
+
|
|
353
|
+
# Process documents
|
|
354
|
+
documents = [
|
|
355
|
+
{
|
|
356
|
+
"text": "Python is a high-level programming language...",
|
|
357
|
+
"metadata": {"source": "python-docs.pdf", "category": "programming"}
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
"text": "Machine learning is a subset of artificial intelligence...",
|
|
361
|
+
"metadata": {"source": "ml-guide.pdf", "category": "ai"}
|
|
362
|
+
}
|
|
363
|
+
]
|
|
364
|
+
|
|
365
|
+
for doc in documents:
|
|
366
|
+
processor.process_document(doc["text"], doc["metadata"])
|
|
367
|
+
|
|
368
|
+
# Initialize Q&A system
|
|
369
|
+
qa_system = KnowledgeBaseQA(
|
|
370
|
+
voyage_api_key="your-voyage-key",
|
|
371
|
+
pinecone_api_key="your-pinecone-key",
|
|
372
|
+
cohere_api_key="your-cohere-key",
|
|
373
|
+
openai_api_key="your-openai-key",
|
|
374
|
+
index_name="knowledge-base"
|
|
375
|
+
)
|
|
376
|
+
|
|
377
|
+
# Ask questions
|
|
378
|
+
result = qa_system.answer_question("What is Python?")
|
|
379
|
+
print(f"Answer: {result['answer']}")
|
|
380
|
+
print(f"\nSources:")
|
|
381
|
+
for i, source in enumerate(result['sources'], 1):
|
|
382
|
+
print(f"[{i}] Score: {source['score']:.3f}, Rerank: {source['rerank_score']:.3f}")
|
|
383
|
+
print(f" {source['metadata']['source']}")
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
---
|
|
387
|
+
|
|
388
|
+
## Key Features
|
|
389
|
+
|
|
390
|
+
### 1. Semantic Chunking
|
|
391
|
+
- Sentence-based chunking with overlap
|
|
392
|
+
- Preserves semantic coherence
|
|
393
|
+
- Configurable chunk size
|
|
394
|
+
|
|
395
|
+
### 2. Vector Embeddings
|
|
396
|
+
- Voyage AI embeddings (1024 dimensions)
|
|
397
|
+
- Batch processing for efficiency
|
|
398
|
+
- Separate embeddings for documents and queries
|
|
399
|
+
|
|
400
|
+
### 3. Vector Search
|
|
401
|
+
- Pinecone vector database
|
|
402
|
+
- Cosine similarity metric
|
|
403
|
+
- Top-K retrieval with score filtering
|
|
404
|
+
|
|
405
|
+
### 4. Reranking
|
|
406
|
+
- Cohere Rerank for improved relevance
|
|
407
|
+
- Cross-encoder architecture
|
|
408
|
+
- Top-N selection after reranking
|
|
409
|
+
|
|
410
|
+
### 5. RAG Generation
|
|
411
|
+
- Context-aware answer generation
|
|
412
|
+
- Source citation
|
|
413
|
+
- Hallucination prevention
|
|
414
|
+
|
|
415
|
+
---
|
|
416
|
+
|
|
417
|
+
## Testing
|
|
418
|
+
|
|
419
|
+
```python
|
|
420
|
+
import pytest
|
|
421
|
+
from unittest.mock import Mock, patch
|
|
422
|
+
|
|
423
|
+
def test_chunking():
|
|
424
|
+
processor = DocumentProcessor("key", "key", "index")
|
|
425
|
+
|
|
426
|
+
text = "Sentence one. Sentence two. Sentence three."
|
|
427
|
+
metadata = {"source": "test.txt"}
|
|
428
|
+
|
|
429
|
+
chunks = processor.chunk_document(text, metadata)
|
|
430
|
+
|
|
431
|
+
assert len(chunks) > 0
|
|
432
|
+
assert all("text" in chunk for chunk in chunks)
|
|
433
|
+
assert all("metadata" in chunk for chunk in chunks)
|
|
434
|
+
|
|
435
|
+
def test_retrieval():
|
|
436
|
+
qa_system = KnowledgeBaseQA("key", "key", "key", "key", "index")
|
|
437
|
+
|
|
438
|
+
with patch.object(qa_system.index, 'query') as mock_query:
|
|
439
|
+
mock_query.return_value = Mock(matches=[
|
|
440
|
+
Mock(id="1", score=0.9, metadata={"text": "Test document"})
|
|
441
|
+
])
|
|
442
|
+
|
|
443
|
+
results = qa_system.retrieve("test query")
|
|
444
|
+
|
|
445
|
+
assert len(results) > 0
|
|
446
|
+
assert results[0]["score"] >= qa_system.min_score
|
|
447
|
+
|
|
448
|
+
def test_answer_generation():
|
|
449
|
+
qa_system = KnowledgeBaseQA("key", "key", "key", "key", "index")
|
|
450
|
+
|
|
451
|
+
with patch.object(qa_system, 'retrieve') as mock_retrieve:
|
|
452
|
+
mock_retrieve.return_value = [
|
|
453
|
+
{"id": "1", "score": 0.9, "text": "Python is a programming language", "metadata": {}}
|
|
454
|
+
]
|
|
455
|
+
|
|
456
|
+
with patch.object(qa_system, 'rerank') as mock_rerank:
|
|
457
|
+
mock_rerank.return_value = [
|
|
458
|
+
{"id": "1", "score": 0.9, "rerank_score": 0.95, "text": "Python is a programming language", "metadata": {}}
|
|
459
|
+
]
|
|
460
|
+
|
|
461
|
+
result = qa_system.answer_question("What is Python?")
|
|
462
|
+
|
|
463
|
+
assert "answer" in result
|
|
464
|
+
assert "sources" in result
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
---
|
|
468
|
+
|
|
469
|
+
## Best Practices
|
|
470
|
+
|
|
471
|
+
1. **Chunking Strategy**: Use semantic chunking for better coherence
|
|
472
|
+
2. **Embedding Model**: Choose model based on domain (general vs. specialized)
|
|
473
|
+
3. **Vector Store**: Select based on scale (Pinecone, Weaviate, Qdrant)
|
|
474
|
+
4. **Reranking**: Always rerank for improved relevance
|
|
475
|
+
5. **Metadata**: Include rich metadata for filtering and attribution
|
|
476
|
+
6. **Monitoring**: Track retrieval quality metrics (MRR, NDCG)
|
|
477
|
+
7. **Caching**: Cache embeddings for frequently queried documents
|
|
478
|
+
8. **Hybrid Search**: Combine vector search with keyword search
|
|
479
|
+
|
|
480
|
+
---
|
|
481
|
+
|
|
482
|
+
## Performance Optimization
|
|
483
|
+
|
|
484
|
+
- **Batch Embedding**: Process documents in batches (100-1000)
|
|
485
|
+
- **Async Processing**: Use async I/O for embedding and indexing
|
|
486
|
+
- **Index Optimization**: Use appropriate index type (HNSW, IVF)
|
|
487
|
+
- **Caching**: Cache query embeddings for repeated queries
|
|
488
|
+
- **Compression**: Use quantization for reduced storage
|
|
489
|
+
- **Sharding**: Distribute index across multiple shards
|
|
490
|
+
|
|
491
|
+
---
|
|
492
|
+
|
|
493
|
+
## Security
|
|
494
|
+
|
|
495
|
+
- **Access Control**: Implement document-level access control
|
|
496
|
+
- **Data Encryption**: Encrypt vectors at rest
|
|
497
|
+
- **Query Sanitization**: Sanitize user queries
|
|
498
|
+
- **Rate Limiting**: Limit queries per user
|
|
499
|
+
- **Audit Logging**: Log all retrieval operations
|
|
500
|
+
- **PII Filtering**: Remove PII before indexing
|
|
501
|
+
```
|
|
502
|
+
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "mcp",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"displayName": "Model Context Protocol (MCP) Guidelines",
|
|
5
|
+
"description": "Comprehensive guidelines for designing and implementing Model Context Protocol systems including token-based, state-based, vector-based, hybrid, graph-augmented, and compressed MCP",
|
|
6
|
+
"type": "domain-rules",
|
|
7
|
+
"tags": ["mcp", "context-management", "rag", "state-management", "llm", "ai-agents"],
|
|
8
|
+
"author": "MyTech Today Now",
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"repository": "https://github.com/mytech-today-now/augment",
|
|
11
|
+
"augment": {
|
|
12
|
+
"characterCount": 219130,
|
|
13
|
+
"priority": "high",
|
|
14
|
+
"category": "domain-rules",
|
|
15
|
+
"appliesTo": {
|
|
16
|
+
"filePatterns": [
|
|
17
|
+
"**/*mcp*.py",
|
|
18
|
+
"**/*context*.py",
|
|
19
|
+
"**/*memory*.py",
|
|
20
|
+
"**/*rag*.py",
|
|
21
|
+
"**/*agent*.py",
|
|
22
|
+
"**/*state*.py"
|
|
23
|
+
],
|
|
24
|
+
"projectTypes": ["ai-agent", "llm-application", "rag-system"]
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"dependencies": [],
|
|
28
|
+
"configuration": {
|
|
29
|
+
"mcpTypes": {
|
|
30
|
+
"type": "array",
|
|
31
|
+
"description": "MCP types to enable for this project",
|
|
32
|
+
"items": {
|
|
33
|
+
"enum": ["token", "state", "vector", "hybrid", "graph", "compressed"]
|
|
34
|
+
},
|
|
35
|
+
"default": ["token"]
|
|
36
|
+
},
|
|
37
|
+
"strictMode": {
|
|
38
|
+
"type": "boolean",
|
|
39
|
+
"description": "Enable strict validation of MCP patterns",
|
|
40
|
+
"default": true
|
|
41
|
+
},
|
|
42
|
+
"universalRules": {
|
|
43
|
+
"type": "boolean",
|
|
44
|
+
"description": "Apply universal cross-cutting rules",
|
|
45
|
+
"default": true
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|