@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,163 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.generateCatalogEntry = generateCatalogEntry;
|
|
37
|
+
exports.generateCatalogMarkdown = generateCatalogMarkdown;
|
|
38
|
+
exports.groupModulesByCategory = groupModulesByCategory;
|
|
39
|
+
exports.generateModulesCatalog = generateModulesCatalog;
|
|
40
|
+
exports.updateModulesCatalog = updateModulesCatalog;
|
|
41
|
+
const fs = __importStar(require("fs"));
|
|
42
|
+
const module_system_1 = require("./module-system");
|
|
43
|
+
/**
|
|
44
|
+
* Generate catalog entry for a module
|
|
45
|
+
*/
|
|
46
|
+
function generateCatalogEntry(module) {
|
|
47
|
+
const displayName = module.metadata.displayName || module.fullName;
|
|
48
|
+
const version = module.metadata.version;
|
|
49
|
+
const characterCount = module.metadata.augment?.characterCount || 0;
|
|
50
|
+
const description = module.metadata.description;
|
|
51
|
+
// Extract contents from rules and examples
|
|
52
|
+
const contents = [];
|
|
53
|
+
// Add rule files
|
|
54
|
+
module.rules.forEach(rule => {
|
|
55
|
+
const ruleName = rule.replace('.md', '').replace(/-/g, ' ');
|
|
56
|
+
contents.push(ruleName.charAt(0).toUpperCase() + ruleName.slice(1));
|
|
57
|
+
});
|
|
58
|
+
return {
|
|
59
|
+
module,
|
|
60
|
+
displayName,
|
|
61
|
+
version,
|
|
62
|
+
characterCount,
|
|
63
|
+
description,
|
|
64
|
+
contents
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Generate markdown for a catalog entry
|
|
69
|
+
*/
|
|
70
|
+
function generateCatalogMarkdown(entry) {
|
|
71
|
+
let markdown = `### ${entry.displayName}\n`;
|
|
72
|
+
markdown += `- **Module**: \`${entry.module.fullName}\`\n`;
|
|
73
|
+
markdown += `- **Version**: ${entry.version}\n`;
|
|
74
|
+
markdown += `- **Character Count**: ~${entry.characterCount.toLocaleString()}\n`;
|
|
75
|
+
markdown += `- **Description**: ${entry.description}\n`;
|
|
76
|
+
if (entry.contents.length > 0) {
|
|
77
|
+
markdown += `- **Contents**:\n`;
|
|
78
|
+
entry.contents.forEach(content => {
|
|
79
|
+
markdown += ` - ${content}\n`;
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
markdown += `\n**Usage**:\n`;
|
|
83
|
+
markdown += `\`\`\`bash\n`;
|
|
84
|
+
markdown += `augx link ${entry.module.fullName}\n`;
|
|
85
|
+
markdown += `\`\`\`\n`;
|
|
86
|
+
return markdown;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Group modules by category
|
|
90
|
+
*/
|
|
91
|
+
function groupModulesByCategory(modules) {
|
|
92
|
+
const grouped = new Map();
|
|
93
|
+
for (const module of modules) {
|
|
94
|
+
const category = module.metadata.type;
|
|
95
|
+
if (!grouped.has(category)) {
|
|
96
|
+
grouped.set(category, []);
|
|
97
|
+
}
|
|
98
|
+
grouped.get(category).push(module);
|
|
99
|
+
}
|
|
100
|
+
// Sort modules within each category by name
|
|
101
|
+
for (const [category, categoryModules] of grouped.entries()) {
|
|
102
|
+
categoryModules.sort((a, b) => a.fullName.localeCompare(b.fullName));
|
|
103
|
+
}
|
|
104
|
+
return grouped;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Generate complete MODULES.md content
|
|
108
|
+
*/
|
|
109
|
+
function generateModulesCatalog() {
|
|
110
|
+
const modules = (0, module_system_1.discoverModules)();
|
|
111
|
+
const grouped = groupModulesByCategory(modules);
|
|
112
|
+
let catalog = `# Augment Extensions Module Catalog\n\n`;
|
|
113
|
+
catalog += `This catalog lists all available extension modules for Augment Code AI.\n\n`;
|
|
114
|
+
catalog += `## Quick Start\n\n`;
|
|
115
|
+
catalog += `\`\`\`bash\n`;
|
|
116
|
+
catalog += `# List all modules\n`;
|
|
117
|
+
catalog += `augx list\n\n`;
|
|
118
|
+
catalog += `# Show module details\n`;
|
|
119
|
+
catalog += `augx show <module-name>\n\n`;
|
|
120
|
+
catalog += `# Link a module to your project\n`;
|
|
121
|
+
catalog += `augx link <module-name>\n`;
|
|
122
|
+
catalog += `\`\`\`\n\n`;
|
|
123
|
+
// Category order
|
|
124
|
+
const categoryOrder = ['coding-standards', 'domain-rules', 'workflows', 'examples'];
|
|
125
|
+
const categoryTitles = {
|
|
126
|
+
'coding-standards': 'Coding Standards',
|
|
127
|
+
'domain-rules': 'Domain Rules',
|
|
128
|
+
'workflows': 'Workflows',
|
|
129
|
+
'examples': 'Examples'
|
|
130
|
+
};
|
|
131
|
+
for (const category of categoryOrder) {
|
|
132
|
+
const categoryModules = grouped.get(category);
|
|
133
|
+
if (!categoryModules || categoryModules.length === 0) {
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
catalog += `## ${categoryTitles[category]}\n\n`;
|
|
137
|
+
for (const module of categoryModules) {
|
|
138
|
+
const entry = generateCatalogEntry(module);
|
|
139
|
+
catalog += generateCatalogMarkdown(entry);
|
|
140
|
+
catalog += `\n`;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// Add statistics
|
|
144
|
+
catalog += `## Statistics\n\n`;
|
|
145
|
+
catalog += `- **Total Modules**: ${modules.length}\n`;
|
|
146
|
+
for (const category of categoryOrder) {
|
|
147
|
+
const count = grouped.get(category)?.length || 0;
|
|
148
|
+
if (count > 0) {
|
|
149
|
+
catalog += `- **${categoryTitles[category]}**: ${count}\n`;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
const totalChars = modules.reduce((sum, m) => sum + (m.metadata.augment?.characterCount || 0), 0);
|
|
153
|
+
catalog += `- **Total Character Count**: ~${totalChars.toLocaleString()}\n`;
|
|
154
|
+
return catalog;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Update MODULES.md file
|
|
158
|
+
*/
|
|
159
|
+
function updateModulesCatalog(catalogPath = 'MODULES.md') {
|
|
160
|
+
const content = generateModulesCatalog();
|
|
161
|
+
fs.writeFileSync(catalogPath, content, 'utf-8');
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=modules-catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modules-catalog.js","sourceRoot":"","sources":["../../src/utils/modules-catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create a Git hook for automatic rule installation
|
|
3
|
+
* This ensures the character count rule is installed when cloning/pulling
|
|
4
|
+
*/
|
|
5
|
+
export declare function createRuleInstallGitHook(hookType?: 'post-checkout' | 'post-merge', gitDir?: string): Promise<void>;
|
|
6
|
+
/**
|
|
7
|
+
* Remove rule installation from Git hook
|
|
8
|
+
*/
|
|
9
|
+
export declare function removeRuleInstallGitHook(hookType?: 'post-checkout' | 'post-merge', gitDir?: string): Promise<void>;
|
|
10
|
+
/**
|
|
11
|
+
* Create NPM post-install hook for rule installation
|
|
12
|
+
* This ensures the rule is installed when running npm install
|
|
13
|
+
*/
|
|
14
|
+
export declare function createNpmPostInstallHook(packageJsonPath?: string): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* Remove NPM post-install hook for rule installation
|
|
17
|
+
*/
|
|
18
|
+
export declare function removeNpmPostInstallHook(packageJsonPath?: string): Promise<void>;
|
|
19
|
+
//# sourceMappingURL=rule-install-hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-install-hooks.d.ts","sourceRoot":"","sources":["../../src/utils/rule-install-hooks.ts"],"names":[],"mappings":"AAqBA;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,GAAE,eAAe,GAAG,YAA8B,EAC1D,MAAM,GAAE,MAAe,GACtB,OAAO,CAAC,IAAI,CAAC,CAmDf;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,GAAE,eAAe,GAAG,YAA8B,EAC1D,MAAM,GAAE,MAAe,GACtB,OAAO,CAAC,IAAI,CAAC,CA8Bf;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,eAAe,GAAE,MAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkCtG;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,eAAe,GAAE,MAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsCtG"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.createRuleInstallGitHook = createRuleInstallGitHook;
|
|
40
|
+
exports.removeRuleInstallGitHook = removeRuleInstallGitHook;
|
|
41
|
+
exports.createNpmPostInstallHook = createNpmPostInstallHook;
|
|
42
|
+
exports.removeNpmPostInstallHook = removeNpmPostInstallHook;
|
|
43
|
+
const fs = __importStar(require("fs/promises"));
|
|
44
|
+
const fsSync = __importStar(require("fs"));
|
|
45
|
+
const path = __importStar(require("path"));
|
|
46
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
47
|
+
/**
|
|
48
|
+
* Set file permissions (cross-platform)
|
|
49
|
+
* On Unix: sets executable permissions
|
|
50
|
+
* On Windows: no-op (Windows doesn't use Unix permissions)
|
|
51
|
+
*/
|
|
52
|
+
async function setExecutablePermissions(filePath) {
|
|
53
|
+
// Only set permissions on Unix-like systems
|
|
54
|
+
if (process.platform !== 'win32') {
|
|
55
|
+
try {
|
|
56
|
+
await fs.chmod(filePath, 0o755);
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
console.warn(chalk_1.default.yellow(`Warning: Could not set executable permissions on ${filePath}`));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Create a Git hook for automatic rule installation
|
|
65
|
+
* This ensures the character count rule is installed when cloning/pulling
|
|
66
|
+
*/
|
|
67
|
+
async function createRuleInstallGitHook(hookType = 'post-checkout', gitDir = '.git') {
|
|
68
|
+
try {
|
|
69
|
+
// Ensure .git/hooks directory exists
|
|
70
|
+
const hooksDir = path.join(gitDir, 'hooks');
|
|
71
|
+
if (!fsSync.existsSync(hooksDir)) {
|
|
72
|
+
await fs.mkdir(hooksDir, { recursive: true });
|
|
73
|
+
}
|
|
74
|
+
const hookPath = path.join(hooksDir, hookType);
|
|
75
|
+
// Check if hook already exists
|
|
76
|
+
let existingContent = '';
|
|
77
|
+
if (fsSync.existsSync(hookPath)) {
|
|
78
|
+
existingContent = await fs.readFile(hookPath, 'utf-8');
|
|
79
|
+
// Check if rule installation is already in the hook
|
|
80
|
+
if (existingContent.includes('augx install-rules')) {
|
|
81
|
+
console.log(chalk_1.default.gray(`Rule installation already configured in ${hookType} hook`));
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Cross-platform hook content
|
|
86
|
+
// Use sh for Unix, but also works on Git Bash on Windows
|
|
87
|
+
const ruleInstallHookContent = `
|
|
88
|
+
# Auto-install character count management rule
|
|
89
|
+
if [ -d .augment ]; then
|
|
90
|
+
echo "Installing character count management rule..."
|
|
91
|
+
augx install-rules --quiet
|
|
92
|
+
fi
|
|
93
|
+
`;
|
|
94
|
+
// If hook exists, append to it; otherwise create new
|
|
95
|
+
if (existingContent) {
|
|
96
|
+
const updatedContent = existingContent.trimEnd() + '\n' + ruleInstallHookContent;
|
|
97
|
+
await fs.writeFile(hookPath, updatedContent, 'utf-8');
|
|
98
|
+
await setExecutablePermissions(hookPath);
|
|
99
|
+
console.log(chalk_1.default.green(`✓ Updated ${hookType} hook with rule installation`));
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
const newHookContent = `#!/bin/sh
|
|
103
|
+
# Auto-install character count management rule
|
|
104
|
+
${ruleInstallHookContent}`;
|
|
105
|
+
await fs.writeFile(hookPath, newHookContent, 'utf-8');
|
|
106
|
+
await setExecutablePermissions(hookPath);
|
|
107
|
+
console.log(chalk_1.default.green(`✓ Created ${hookType} hook with rule installation`));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
112
|
+
console.error(chalk_1.default.red(`✗ Failed to create Git hook: ${errorMessage}`));
|
|
113
|
+
throw error;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Remove rule installation from Git hook
|
|
118
|
+
*/
|
|
119
|
+
async function removeRuleInstallGitHook(hookType = 'post-checkout', gitDir = '.git') {
|
|
120
|
+
try {
|
|
121
|
+
const hookPath = path.join(gitDir, 'hooks', hookType);
|
|
122
|
+
if (!fsSync.existsSync(hookPath)) {
|
|
123
|
+
console.log(chalk_1.default.gray(`No ${hookType} hook found`));
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
const content = await fs.readFile(hookPath, 'utf-8');
|
|
127
|
+
// Remove rule installation section
|
|
128
|
+
const updatedContent = content
|
|
129
|
+
.replace(/# Auto-install character count management rule[\s\S]*?fi\n/g, '')
|
|
130
|
+
.trim();
|
|
131
|
+
if (updatedContent.length === 0 || updatedContent === '#!/bin/sh') {
|
|
132
|
+
// Hook is now empty, remove it
|
|
133
|
+
await fs.unlink(hookPath);
|
|
134
|
+
console.log(chalk_1.default.green(`✓ Removed ${hookType} hook`));
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
await fs.writeFile(hookPath, updatedContent, 'utf-8');
|
|
138
|
+
await setExecutablePermissions(hookPath);
|
|
139
|
+
console.log(chalk_1.default.green(`✓ Removed rule installation from ${hookType} hook`));
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
144
|
+
console.error(chalk_1.default.red(`✗ Failed to remove Git hook: ${errorMessage}`));
|
|
145
|
+
throw error;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Create NPM post-install hook for rule installation
|
|
150
|
+
* This ensures the rule is installed when running npm install
|
|
151
|
+
*/
|
|
152
|
+
async function createNpmPostInstallHook(packageJsonPath = 'package.json') {
|
|
153
|
+
if (!fsSync.existsSync(packageJsonPath)) {
|
|
154
|
+
console.log(chalk_1.default.yellow('⚠ No package.json found, skipping NPM hook setup'));
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
try {
|
|
158
|
+
const packageJsonContent = await fs.readFile(packageJsonPath, 'utf-8');
|
|
159
|
+
const packageJson = JSON.parse(packageJsonContent);
|
|
160
|
+
// Check if postinstall script already exists
|
|
161
|
+
if (packageJson.scripts && packageJson.scripts.postinstall) {
|
|
162
|
+
if (packageJson.scripts.postinstall.includes('augx install-rules')) {
|
|
163
|
+
console.log(chalk_1.default.gray('Rule installation already configured in package.json postinstall'));
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
// Append to existing postinstall
|
|
167
|
+
packageJson.scripts.postinstall += ' && augx install-rules --quiet';
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
// Create new postinstall script
|
|
171
|
+
if (!packageJson.scripts) {
|
|
172
|
+
packageJson.scripts = {};
|
|
173
|
+
}
|
|
174
|
+
packageJson.scripts.postinstall = 'augx install-rules --quiet';
|
|
175
|
+
}
|
|
176
|
+
await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2) + '\n', 'utf-8');
|
|
177
|
+
console.log(chalk_1.default.green('✓ Added rule installation to package.json postinstall'));
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
181
|
+
console.error(chalk_1.default.red(`✗ Failed to update package.json: ${errorMessage}`));
|
|
182
|
+
throw error;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Remove NPM post-install hook for rule installation
|
|
187
|
+
*/
|
|
188
|
+
async function removeNpmPostInstallHook(packageJsonPath = 'package.json') {
|
|
189
|
+
if (!fsSync.existsSync(packageJsonPath)) {
|
|
190
|
+
console.log(chalk_1.default.gray('No package.json found'));
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
try {
|
|
194
|
+
const packageJsonContent = await fs.readFile(packageJsonPath, 'utf-8');
|
|
195
|
+
const packageJson = JSON.parse(packageJsonContent);
|
|
196
|
+
if (!packageJson.scripts || !packageJson.scripts.postinstall) {
|
|
197
|
+
console.log(chalk_1.default.gray('No postinstall script found in package.json'));
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
// Remove augx install-rules from postinstall
|
|
201
|
+
const updatedPostinstall = packageJson.scripts.postinstall
|
|
202
|
+
.replace(/\s*&&\s*augx install-rules --quiet/g, '')
|
|
203
|
+
.replace(/augx install-rules --quiet\s*&&\s*/g, '')
|
|
204
|
+
.replace(/augx install-rules --quiet/g, '')
|
|
205
|
+
.trim();
|
|
206
|
+
if (updatedPostinstall.length === 0) {
|
|
207
|
+
delete packageJson.scripts.postinstall;
|
|
208
|
+
if (Object.keys(packageJson.scripts).length === 0) {
|
|
209
|
+
delete packageJson.scripts;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
packageJson.scripts.postinstall = updatedPostinstall;
|
|
214
|
+
}
|
|
215
|
+
await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2) + '\n', 'utf-8');
|
|
216
|
+
console.log(chalk_1.default.green('✓ Removed rule installation from package.json postinstall'));
|
|
217
|
+
}
|
|
218
|
+
catch (error) {
|
|
219
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
220
|
+
console.error(chalk_1.default.red(`✗ Failed to update package.json: ${errorMessage}`));
|
|
221
|
+
throw error;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=rule-install-hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-install-hooks.js","sourceRoot":"","sources":["../../src/utils/rule-install-hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill System Utilities
|
|
3
|
+
*
|
|
4
|
+
* Manages skill file structure, storage, and validation.
|
|
5
|
+
*/
|
|
6
|
+
export interface SkillMetadata {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
version: string;
|
|
10
|
+
category: 'retrieval' | 'transformation' | 'analysis' | 'generation' | 'integration' | 'utility';
|
|
11
|
+
tags?: string[];
|
|
12
|
+
tokenBudget: number;
|
|
13
|
+
priority?: 'critical' | 'high' | 'medium' | 'low';
|
|
14
|
+
dependencies?: string[];
|
|
15
|
+
cliCommand?: string;
|
|
16
|
+
mcpServer?: string;
|
|
17
|
+
autoLoad?: boolean;
|
|
18
|
+
replaces?: string[];
|
|
19
|
+
}
|
|
20
|
+
export interface Skill {
|
|
21
|
+
metadata: SkillMetadata;
|
|
22
|
+
content: string;
|
|
23
|
+
filePath: string;
|
|
24
|
+
}
|
|
25
|
+
export declare const SKILL_CATEGORIES: readonly ["retrieval", "transformation", "analysis", "generation", "integration", "utility"];
|
|
26
|
+
/**
|
|
27
|
+
* Get the skills directory path
|
|
28
|
+
*/
|
|
29
|
+
export declare function getSkillsDir(repoRoot?: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* Get the path for a skill file
|
|
32
|
+
*/
|
|
33
|
+
export declare function getSkillPath(skillId: string, category: string, repoRoot?: string): string;
|
|
34
|
+
/**
|
|
35
|
+
* Parse skill frontmatter and content
|
|
36
|
+
*/
|
|
37
|
+
export declare function parseSkill(filePath: string): Skill;
|
|
38
|
+
/**
|
|
39
|
+
* Validate skill metadata
|
|
40
|
+
*/
|
|
41
|
+
export declare function validateSkillMetadata(metadata: SkillMetadata): {
|
|
42
|
+
valid: boolean;
|
|
43
|
+
errors: string[];
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Discover all skills in the skills directory
|
|
47
|
+
*/
|
|
48
|
+
export declare function discoverSkills(repoRoot?: string): Skill[];
|
|
49
|
+
/**
|
|
50
|
+
* Find a skill by ID
|
|
51
|
+
*/
|
|
52
|
+
export declare function findSkill(skillId: string, repoRoot?: string): Skill | null;
|
|
53
|
+
/**
|
|
54
|
+
* Register skill in coordination manifest
|
|
55
|
+
*/
|
|
56
|
+
export declare function registerSkillInCoordination(skill: Skill, taskId?: string): void;
|
|
57
|
+
/**
|
|
58
|
+
* Dynamic Skill Loader
|
|
59
|
+
*
|
|
60
|
+
* Loads skills on-demand with dependency resolution and token budget management.
|
|
61
|
+
*/
|
|
62
|
+
export interface LoadedSkill {
|
|
63
|
+
skill: Skill;
|
|
64
|
+
dependencies: LoadedSkill[];
|
|
65
|
+
totalTokens: number;
|
|
66
|
+
}
|
|
67
|
+
export interface SkillLoaderOptions {
|
|
68
|
+
maxTokens?: number;
|
|
69
|
+
resolveDependencies?: boolean;
|
|
70
|
+
cache?: boolean;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Load a skill with dependency resolution
|
|
74
|
+
*/
|
|
75
|
+
export declare function loadSkillDynamic(skillId: string, options?: SkillLoaderOptions): LoadedSkill | null;
|
|
76
|
+
/**
|
|
77
|
+
* Load multiple skills with shared dependency resolution
|
|
78
|
+
*/
|
|
79
|
+
export declare function loadSkillsBatch(skillIds: string[], options?: SkillLoaderOptions): LoadedSkill[];
|
|
80
|
+
/**
|
|
81
|
+
* Get skill content for injection (flattened with dependencies)
|
|
82
|
+
*/
|
|
83
|
+
export declare function getSkillContentForInjection(loadedSkill: LoadedSkill): string;
|
|
84
|
+
/**
|
|
85
|
+
* Clear skill cache
|
|
86
|
+
*/
|
|
87
|
+
export declare function clearSkillCache(): void;
|
|
88
|
+
/**
|
|
89
|
+
* Get cache statistics
|
|
90
|
+
*/
|
|
91
|
+
export declare function getSkillCacheStats(): {
|
|
92
|
+
size: number;
|
|
93
|
+
skills: string[];
|
|
94
|
+
};
|
|
95
|
+
//# sourceMappingURL=skill-system.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-system.d.ts","sourceRoot":"","sources":["../../src/utils/skill-system.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,WAAW,GAAG,gBAAgB,GAAG,UAAU,GAAG,YAAY,GAAG,aAAa,GAAG,SAAS,CAAC;IACjG,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAClD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,KAAK;IACpB,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,gBAAgB,8FAOnB,CAAC;AAEX;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAGzF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,CAqBlD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,aAAa,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAuCnG;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,CAgCzD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAG1E;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CA6B/E;AAED;;;;GAIG;AAEH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAKD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,kBAAuB,GAC/B,WAAW,GAAG,IAAI,CA0DpB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAAE,EAClB,OAAO,GAAE,kBAAuB,GAC/B,WAAW,EAAE,CA0Bf;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAkB5E;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAKvE"}
|