claude-code-templates 1.21.13 → 1.21.14
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/.claude/settings.local.json +8 -2
- package/.claude-plugin/marketplace.json +251 -0
- package/.github/workflows/component-security-validation.yml +129 -0
- package/README.md +13 -6
- package/cli-tool/README.md +56 -0
- package/cli-tool/bin/create-claude-config.js +2 -0
- package/cli-tool/components/.claude-plugin/marketplace.json +92 -0
- package/cli-tool/components/agents/development-tools/flutter-go-reviewer.md +163 -0
- package/cli-tool/components/agents/development-tools/unused-code-cleaner.md +194 -0
- package/cli-tool/components/commands/git-workflow/gemini-review.md +293 -0
- package/cli-tool/components/commands/testing/add-mutation-testing.md +2 -2
- package/cli-tool/components/commands/testing/add-property-based-testing.md +2 -2
- package/cli-tool/components/commands/testing/e2e-setup.md +2 -2
- package/cli-tool/components/commands/testing/generate-test-cases.md +2 -2
- package/cli-tool/components/commands/testing/generate-tests.md +8 -3
- package/cli-tool/components/commands/testing/setup-comprehensive-testing.md +2 -2
- package/cli-tool/components/commands/testing/setup-load-testing.md +2 -2
- package/cli-tool/components/commands/testing/setup-visual-testing.md +2 -2
- package/cli-tool/components/commands/testing/test-automation-orchestrator.md +2 -2
- package/cli-tool/components/commands/testing/test-changelog-automation.md +2 -2
- package/cli-tool/components/commands/testing/test-coverage.md +2 -2
- package/cli-tool/components/commands/testing/test-quality-analyzer.md +2 -2
- package/cli-tool/components/commands/testing/testing_plan_integration.md +2 -2
- package/cli-tool/components/commands/testing/write-tests.md +2 -2
- package/cli-tool/components/commands/utilities/ultra-think.md +10 -5
- package/cli-tool/components/hooks/git/validate-branch-name.json +1 -1
- package/cli-tool/components/mcps/devtools/chrome-devtools.json +9 -0
- package/cli-tool/components/mcps/devtools/grafana.json +15 -0
- package/cli-tool/components/mcps/devtools/pulumi.json +9 -0
- package/cli-tool/components/mcps/devtools/terraform.json +1 -1
- package/cli-tool/components/settings/statusline/context-monitor.py +1 -1
- package/cli-tool/components/skills/ANTHROPIC_ATTRIBUTION.md +81 -0
- package/cli-tool/components/skills/creative-design/algorithmic-art/LICENSE.txt +202 -0
- package/cli-tool/components/skills/creative-design/algorithmic-art/SKILL.md +405 -0
- package/cli-tool/components/skills/creative-design/algorithmic-art/templates/generator_template.js +223 -0
- package/cli-tool/components/skills/creative-design/algorithmic-art/templates/viewer.html +599 -0
- package/cli-tool/components/skills/creative-design/canvas-design/LICENSE.txt +202 -0
- package/cli-tool/components/skills/creative-design/canvas-design/SKILL.md +130 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/LICENSE.txt +202 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/SKILL.md +646 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/core/color_palettes.py +302 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/core/easing.py +230 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/core/frame_composer.py +469 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/core/gif_builder.py +246 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/core/typography.py +357 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/core/validators.py +264 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/core/visual_effects.py +494 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/requirements.txt +4 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/bounce.py +106 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/explode.py +331 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/fade.py +329 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/flip.py +291 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/kaleidoscope.py +211 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/morph.py +329 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/move.py +293 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/pulse.py +268 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/shake.py +127 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/slide.py +291 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/spin.py +269 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/wiggle.py +300 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/zoom.py +312 -0
- package/cli-tool/components/skills/creative-design/theme-factory/LICENSE.txt +202 -0
- package/cli-tool/components/skills/creative-design/theme-factory/SKILL.md +59 -0
- package/cli-tool/components/skills/creative-design/theme-factory/theme-showcase.pdf +0 -0
- package/cli-tool/components/skills/creative-design/theme-factory/themes/arctic-frost.md +19 -0
- package/cli-tool/components/skills/creative-design/theme-factory/themes/botanical-garden.md +19 -0
- package/cli-tool/components/skills/creative-design/theme-factory/themes/desert-rose.md +19 -0
- package/cli-tool/components/skills/creative-design/theme-factory/themes/forest-canopy.md +19 -0
- package/cli-tool/components/skills/creative-design/theme-factory/themes/golden-hour.md +19 -0
- package/cli-tool/components/skills/creative-design/theme-factory/themes/midnight-galaxy.md +19 -0
- package/cli-tool/components/skills/creative-design/theme-factory/themes/modern-minimalist.md +19 -0
- package/cli-tool/components/skills/creative-design/theme-factory/themes/ocean-depths.md +19 -0
- package/cli-tool/components/skills/creative-design/theme-factory/themes/sunset-boulevard.md +19 -0
- package/cli-tool/components/skills/creative-design/theme-factory/themes/tech-innovation.md +19 -0
- package/cli-tool/components/skills/development/artifacts-builder/LICENSE.txt +202 -0
- package/cli-tool/components/skills/development/artifacts-builder/SKILL.md +74 -0
- package/cli-tool/components/skills/development/artifacts-builder/scripts/bundle-artifact.sh +54 -0
- package/cli-tool/components/skills/development/artifacts-builder/scripts/init-artifact.sh +322 -0
- package/cli-tool/components/skills/development/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- package/cli-tool/components/skills/development/git-commit-helper/SKILL.md +203 -0
- package/cli-tool/components/skills/development/mcp-builder/LICENSE.txt +202 -0
- package/cli-tool/components/skills/development/mcp-builder/SKILL.md +328 -0
- package/cli-tool/components/skills/development/mcp-builder/reference/evaluation.md +602 -0
- package/cli-tool/components/skills/development/mcp-builder/reference/mcp_best_practices.md +915 -0
- package/cli-tool/components/skills/development/mcp-builder/reference/node_mcp_server.md +916 -0
- package/cli-tool/components/skills/development/mcp-builder/reference/python_mcp_server.md +752 -0
- package/cli-tool/components/skills/development/mcp-builder/scripts/connections.py +151 -0
- package/cli-tool/components/skills/development/mcp-builder/scripts/evaluation.py +373 -0
- package/cli-tool/components/skills/development/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/cli-tool/components/skills/development/mcp-builder/scripts/requirements.txt +2 -0
- package/cli-tool/components/skills/development/skill-creator/LICENSE.txt +202 -0
- package/cli-tool/components/skills/development/skill-creator/SKILL.md +209 -0
- package/cli-tool/components/skills/development/skill-creator/scripts/init_skill.py +303 -0
- package/cli-tool/components/skills/development/skill-creator/scripts/package_skill.py +110 -0
- package/cli-tool/components/skills/development/skill-creator/scripts/quick_validate.py +65 -0
- package/cli-tool/components/skills/development/webapp-testing/LICENSE.txt +202 -0
- package/cli-tool/components/skills/development/webapp-testing/SKILL.md +96 -0
- package/cli-tool/components/skills/development/webapp-testing/examples/console_logging.py +35 -0
- package/cli-tool/components/skills/development/webapp-testing/examples/element_discovery.py +40 -0
- package/cli-tool/components/skills/development/webapp-testing/examples/static_html_automation.py +33 -0
- package/cli-tool/components/skills/development/webapp-testing/scripts/with_server.py +106 -0
- package/cli-tool/components/skills/document-processing/docx/LICENSE.txt +30 -0
- package/cli-tool/components/skills/document-processing/docx/SKILL.md +197 -0
- package/cli-tool/components/skills/document-processing/docx/docx-js.md +350 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/mce/mc.xsd +75 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/pack.py +159 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/unpack.py +29 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/validate.py +69 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/validation/__init__.py +15 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/validation/base.py +951 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/validation/docx.py +274 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/validation/pptx.py +315 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/validation/redlining.py +279 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml.md +610 -0
- package/cli-tool/components/skills/document-processing/docx/scripts/__init__.py +1 -0
- package/cli-tool/components/skills/document-processing/docx/scripts/document.py +1276 -0
- package/cli-tool/components/skills/document-processing/docx/scripts/templates/comments.xml +3 -0
- package/cli-tool/components/skills/document-processing/docx/scripts/templates/commentsExtended.xml +3 -0
- package/cli-tool/components/skills/document-processing/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/cli-tool/components/skills/document-processing/docx/scripts/templates/commentsIds.xml +3 -0
- package/cli-tool/components/skills/document-processing/docx/scripts/templates/people.xml +3 -0
- package/cli-tool/components/skills/document-processing/docx/scripts/utilities.py +374 -0
- package/cli-tool/components/skills/document-processing/pdf-anthropic/LICENSE.txt +30 -0
- package/cli-tool/components/skills/document-processing/pdf-anthropic/SKILL.md +294 -0
- package/cli-tool/components/skills/document-processing/pdf-anthropic/forms.md +205 -0
- package/cli-tool/components/skills/document-processing/pdf-anthropic/reference.md +612 -0
- package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/check_bounding_boxes.py +70 -0
- package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/check_bounding_boxes_test.py +226 -0
- package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/check_fillable_fields.py +12 -0
- package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/convert_pdf_to_images.py +35 -0
- package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/create_validation_image.py +41 -0
- package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/extract_form_field_info.py +152 -0
- package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/fill_fillable_fields.py +114 -0
- package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/fill_pdf_form_with_annotations.py +108 -0
- package/cli-tool/components/skills/document-processing/pdf-processing/FORMS.md +143 -0
- package/cli-tool/components/skills/document-processing/pdf-processing/SKILL.md +149 -0
- package/cli-tool/components/skills/document-processing/pdf-processing-pro/FORMS.md +610 -0
- package/cli-tool/components/skills/document-processing/pdf-processing-pro/OCR.md +137 -0
- package/cli-tool/components/skills/document-processing/pdf-processing-pro/SKILL.md +296 -0
- package/cli-tool/components/skills/document-processing/pdf-processing-pro/TABLES.md +626 -0
- package/cli-tool/components/skills/document-processing/pdf-processing-pro/scripts/analyze_form.py +307 -0
- package/cli-tool/components/skills/document-processing/pptx/LICENSE.txt +30 -0
- package/cli-tool/components/skills/document-processing/pptx/SKILL.md +484 -0
- package/cli-tool/components/skills/document-processing/pptx/html2pptx.md +625 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/mce/mc.xsd +75 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/pack.py +159 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/unpack.py +29 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/validate.py +69 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/validation/__init__.py +15 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/validation/base.py +951 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/validation/docx.py +274 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/validation/pptx.py +315 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/validation/redlining.py +279 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml.md +427 -0
- package/cli-tool/components/skills/document-processing/pptx/scripts/html2pptx.js +979 -0
- package/cli-tool/components/skills/document-processing/pptx/scripts/inventory.py +1020 -0
- package/cli-tool/components/skills/document-processing/pptx/scripts/rearrange.py +231 -0
- package/cli-tool/components/skills/document-processing/pptx/scripts/replace.py +385 -0
- package/cli-tool/components/skills/document-processing/pptx/scripts/thumbnail.py +450 -0
- package/cli-tool/components/skills/document-processing/xlsx/LICENSE.txt +30 -0
- package/cli-tool/components/skills/document-processing/xlsx/SKILL.md +289 -0
- package/cli-tool/components/skills/document-processing/xlsx/recalc.py +178 -0
- package/cli-tool/components/skills/enterprise-communication/brand-guidelines/LICENSE.txt +202 -0
- package/cli-tool/components/skills/enterprise-communication/brand-guidelines/SKILL.md +73 -0
- package/cli-tool/components/skills/enterprise-communication/email-composer/SKILL.md +317 -0
- package/cli-tool/components/skills/enterprise-communication/excel-analysis/SKILL.md +247 -0
- package/cli-tool/components/skills/enterprise-communication/internal-comms/LICENSE.txt +202 -0
- package/cli-tool/components/skills/enterprise-communication/internal-comms/SKILL.md +32 -0
- package/cli-tool/components/skills/enterprise-communication/internal-comms/examples/3p-updates.md +47 -0
- package/cli-tool/components/skills/enterprise-communication/internal-comms/examples/company-newsletter.md +65 -0
- package/cli-tool/components/skills/enterprise-communication/internal-comms/examples/faq-answers.md +30 -0
- package/cli-tool/components/skills/enterprise-communication/internal-comms/examples/general-comms.md +16 -0
- package/cli-tool/package-lock.json +39 -16
- package/cli-tool/package.json +7 -2
- package/cli-tool/security-report.json +62361 -0
- package/cli-tool/src/analytics-web/chats_mobile.html +17 -16
- package/cli-tool/src/console-bridge.js +3 -3
- package/cli-tool/src/index.js +157 -10
- package/cli-tool/src/plugin-dashboard-web/app.js +806 -0
- package/cli-tool/src/plugin-dashboard-web/index.html +292 -0
- package/cli-tool/src/plugin-dashboard-web/styles.css +1781 -0
- package/cli-tool/src/plugin-dashboard.js +689 -0
- package/cli-tool/src/security-audit.js +164 -0
- package/cli-tool/src/validation/ARCHITECTURE.md +309 -0
- package/cli-tool/src/validation/BaseValidator.js +152 -0
- package/cli-tool/src/validation/README.md +543 -0
- package/cli-tool/src/validation/ValidationOrchestrator.js +305 -0
- package/cli-tool/src/validation/validators/IntegrityValidator.js +338 -0
- package/cli-tool/src/validation/validators/ProvenanceValidator.js +399 -0
- package/cli-tool/src/validation/validators/ReferenceValidator.js +373 -0
- package/cli-tool/src/validation/validators/SemanticValidator.js +449 -0
- package/cli-tool/src/validation/validators/StructuralValidator.js +376 -0
- package/docs/CLAUDE.md +363 -0
- package/docs/api/README.md +297 -0
- package/docs/api/package.json +7 -0
- package/docs/api/track-download-supabase.js +150 -0
- package/docs/blog/README.md +199 -0
- package/docs/blog/blog-articles.json +133 -0
- package/docs/blog/css/blog-controls.css +254 -0
- package/docs/blog/e2b-claude-code-sandbox/index.html +8 -0
- package/docs/blog/index.html +81 -124
- package/docs/blog/js/blog-loader.js +602 -0
- package/docs/blog/nextjs-vercel-claude-code-integration/index.html +8 -0
- package/docs/blog/supabase-claude-code-integration/index.html +8 -0
- package/docs/component.html +226 -48
- package/docs/components.json +61610 -604
- package/docs/css/blog.css +292 -0
- package/docs/css/component-page.css +840 -3
- package/docs/css/plugin-page.css +648 -0
- package/docs/css/styles.css +504 -1
- package/docs/css/trending.css +110 -6
- package/docs/download-stats.html +8 -0
- package/docs/index.html +48 -22
- package/docs/jobs.html +8 -0
- package/docs/js/cart-manager.js +21 -8
- package/docs/js/component-page.js +1013 -12
- package/docs/js/data-loader.js +11 -8
- package/docs/js/index-events.js +305 -53
- package/docs/js/plugin-page.js +390 -0
- package/docs/js/script.js +50 -3
- package/docs/js/search-functionality.js +19 -16
- package/docs/js/trending.js +55 -20
- package/docs/plugin.html +262 -0
- package/docs/sandbox-interface.html +8 -0
- package/docs/static/favicon/about.txt +6 -0
- package/docs/static/favicon/android-chrome-192x192.png +0 -0
- package/docs/static/favicon/android-chrome-512x512.png +0 -0
- package/docs/static/favicon/apple-touch-icon.png +0 -0
- package/docs/static/favicon/favicon-16x16.png +0 -0
- package/docs/static/favicon/favicon-32x32.png +0 -0
- package/docs/static/favicon/favicon.ico +0 -0
- package/docs/static/favicon/site.webmanifest +1 -0
- package/docs/trending-data.json +616 -579
- package/docs/trending.html +24 -3
- package/docs/vercel.json +12 -0
- package/docs/workflows.html +8 -0
- package/generate_components_json.py +386 -11
- package/package.json +1 -1
- package/sync-api.sh +50 -0
- package/vercel.json +10 -75
- package/ROADMAP.md +0 -278
- package/test_serpapi.py +0 -36
- /package/cli-tool/components/commands/svelte/{svelte:a11y.md → svelte-a11y.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:component.md → svelte-component.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:debug.md → svelte-debug.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:migrate.md → svelte-migrate.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:optimize.md → svelte-optimize.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:scaffold.md → svelte-scaffold.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:storybook-migrate.md → svelte-storybook-migrate.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:storybook-mock.md → svelte-storybook-mock.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:storybook-setup.md → svelte-storybook-setup.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:storybook-story.md → svelte-storybook-story.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:storybook-troubleshoot.md → svelte-storybook-troubleshoot.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:storybook.md → svelte-storybook.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:test-coverage.md → svelte-test-coverage.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:test-fix.md → svelte-test-fix.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:test-setup.md → svelte-test-setup.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:test.md → svelte-test.md} +0 -0
package/docs/js/data-loader.js
CHANGED
|
@@ -249,14 +249,14 @@ class DataLoader {
|
|
|
249
249
|
// Get all components as a flat array
|
|
250
250
|
getAllComponents() {
|
|
251
251
|
if (!this.componentsData) return [];
|
|
252
|
-
|
|
252
|
+
|
|
253
253
|
const allComponents = [];
|
|
254
|
-
['agents', 'commands', 'mcps'].forEach(type => {
|
|
254
|
+
['agents', 'commands', 'mcps', 'skills'].forEach(type => {
|
|
255
255
|
if (this.componentsData[type]) {
|
|
256
256
|
allComponents.push(...this.componentsData[type]);
|
|
257
257
|
}
|
|
258
258
|
});
|
|
259
|
-
|
|
259
|
+
|
|
260
260
|
return allComponents;
|
|
261
261
|
}
|
|
262
262
|
|
|
@@ -284,22 +284,23 @@ class DataLoader {
|
|
|
284
284
|
agents: [],
|
|
285
285
|
commands: [],
|
|
286
286
|
mcps: [],
|
|
287
|
+
skills: [],
|
|
287
288
|
templates: [] // Include templates in pagination structure
|
|
288
289
|
};
|
|
289
|
-
|
|
290
|
-
['agents', 'commands', 'mcps'].forEach(type => {
|
|
290
|
+
|
|
291
|
+
['agents', 'commands', 'mcps', 'skills'].forEach(type => {
|
|
291
292
|
if (fullData[type]) {
|
|
292
293
|
const startIndex = (page - 1) * itemsPerPage;
|
|
293
294
|
const endIndex = startIndex + itemsPerPage;
|
|
294
295
|
paginatedData[type] = fullData[type].slice(startIndex, endIndex);
|
|
295
296
|
}
|
|
296
297
|
});
|
|
297
|
-
|
|
298
|
+
|
|
298
299
|
// Templates don't need pagination - include all if available
|
|
299
300
|
if (fullData.templates) {
|
|
300
301
|
paginatedData.templates = fullData.templates;
|
|
301
302
|
}
|
|
302
|
-
|
|
303
|
+
|
|
303
304
|
return paginatedData;
|
|
304
305
|
}
|
|
305
306
|
|
|
@@ -369,10 +370,11 @@ class DataLoader {
|
|
|
369
370
|
mcps: this.fullComponentsData.mcps ? this.fullComponentsData.mcps.length : 0,
|
|
370
371
|
settings: this.fullComponentsData.settings ? this.fullComponentsData.settings.length : 0,
|
|
371
372
|
hooks: this.fullComponentsData.hooks ? this.fullComponentsData.hooks.length : 0,
|
|
373
|
+
skills: this.fullComponentsData.skills ? this.fullComponentsData.skills.length : 0,
|
|
372
374
|
templates: this.fullComponentsData.templates ? this.fullComponentsData.templates.length : 0
|
|
373
375
|
};
|
|
374
376
|
}
|
|
375
|
-
|
|
377
|
+
|
|
376
378
|
// Fallback to current loaded data
|
|
377
379
|
return {
|
|
378
380
|
agents: this.componentsData?.agents?.length || 0,
|
|
@@ -380,6 +382,7 @@ class DataLoader {
|
|
|
380
382
|
mcps: this.componentsData?.mcps?.length || 0,
|
|
381
383
|
settings: this.componentsData?.settings?.length || 0,
|
|
382
384
|
hooks: this.componentsData?.hooks?.length || 0,
|
|
385
|
+
skills: this.componentsData?.skills?.length || 0,
|
|
383
386
|
templates: this.componentsData?.templates?.length || 0
|
|
384
387
|
};
|
|
385
388
|
}
|
package/docs/js/index-events.js
CHANGED
|
@@ -22,7 +22,9 @@ class IndexPageManager {
|
|
|
22
22
|
mcps: new Set(),
|
|
23
23
|
settings: new Set(),
|
|
24
24
|
hooks: new Set(),
|
|
25
|
-
|
|
25
|
+
skills: new Set(),
|
|
26
|
+
templates: new Set(),
|
|
27
|
+
plugins: new Set()
|
|
26
28
|
};
|
|
27
29
|
|
|
28
30
|
// Pagination settings
|
|
@@ -64,17 +66,40 @@ class IndexPageManager {
|
|
|
64
66
|
try {
|
|
65
67
|
// Setup event listeners first (they don't depend on data)
|
|
66
68
|
this.setupEventListeners();
|
|
67
|
-
|
|
69
|
+
|
|
68
70
|
// Show loading state
|
|
69
71
|
this.showLoadingState(true);
|
|
70
|
-
|
|
72
|
+
|
|
71
73
|
// Load all components and templates at once
|
|
72
74
|
await this.loadComponentsData();
|
|
73
75
|
await this.loadTemplatesData();
|
|
74
|
-
|
|
76
|
+
|
|
77
|
+
// Check if URL has a specific filter and update accordingly
|
|
78
|
+
const filterFromURL = this.getFilterFromURL();
|
|
79
|
+
if (filterFromURL && filterFromURL !== this.currentFilter) {
|
|
80
|
+
this.currentFilter = filterFromURL;
|
|
81
|
+
|
|
82
|
+
// Update active filter chip
|
|
83
|
+
document.querySelectorAll('.component-type-filters .filter-chip').forEach(btn => {
|
|
84
|
+
btn.classList.remove('active');
|
|
85
|
+
});
|
|
86
|
+
const activeBtn = document.querySelector(`.component-type-filters [data-filter="${filterFromURL}"]`);
|
|
87
|
+
if (activeBtn) {
|
|
88
|
+
activeBtn.classList.add('active');
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// Update sort selector for initial filter
|
|
93
|
+
this.updateSortSelector();
|
|
94
|
+
|
|
75
95
|
// Display components
|
|
76
96
|
this.displayCurrentFilter();
|
|
77
|
-
|
|
97
|
+
|
|
98
|
+
// Show category filters for the current filter
|
|
99
|
+
if (typeof showCategoryFilters === 'function') {
|
|
100
|
+
showCategoryFilters(this.currentFilter);
|
|
101
|
+
}
|
|
102
|
+
|
|
78
103
|
} catch (error) {
|
|
79
104
|
console.error('Error initializing index page:', error);
|
|
80
105
|
this.showError('Failed to load data. Please refresh the page.');
|
|
@@ -83,6 +108,23 @@ class IndexPageManager {
|
|
|
83
108
|
}
|
|
84
109
|
}
|
|
85
110
|
|
|
111
|
+
// Get filter from URL path
|
|
112
|
+
getFilterFromURL() {
|
|
113
|
+
const path = window.location.pathname;
|
|
114
|
+
const segments = path.split('/').filter(segment => segment);
|
|
115
|
+
|
|
116
|
+
// Check if first segment is a valid filter
|
|
117
|
+
const validFilters = ['agents', 'commands', 'settings', 'hooks', 'mcps', 'skills', 'templates', 'plugins'];
|
|
118
|
+
const firstSegment = segments[0];
|
|
119
|
+
|
|
120
|
+
if (firstSegment && validFilters.includes(firstSegment)) {
|
|
121
|
+
return firstSegment;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// Default to agents
|
|
125
|
+
return 'agents';
|
|
126
|
+
}
|
|
127
|
+
|
|
86
128
|
async loadTemplatesData() {
|
|
87
129
|
try {
|
|
88
130
|
// Templates are now loaded from components.json, not GitHub
|
|
@@ -183,13 +225,51 @@ class IndexPageManager {
|
|
|
183
225
|
this.currentFilter = filter;
|
|
184
226
|
this.currentPage = 1; // Reset to first page when changing filter
|
|
185
227
|
this.currentCategoryFilter = 'all'; // Reset category filter to show all items
|
|
186
|
-
|
|
228
|
+
|
|
187
229
|
// Update active button
|
|
188
230
|
document.querySelectorAll('.filter-btn').forEach(btn => {
|
|
189
231
|
btn.classList.toggle('active', btn.dataset.filter === filter);
|
|
190
232
|
});
|
|
191
|
-
|
|
233
|
+
|
|
234
|
+
// Update sort selector options based on filter
|
|
235
|
+
this.updateSortSelector();
|
|
236
|
+
|
|
192
237
|
this.displayCurrentFilter();
|
|
238
|
+
|
|
239
|
+
// Show category filters for the new filter
|
|
240
|
+
if (typeof showCategoryFilters === 'function') {
|
|
241
|
+
showCategoryFilters(filter);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
// Update sort selector based on current filter
|
|
246
|
+
updateSortSelector() {
|
|
247
|
+
const sortSelector = document.getElementById('sortSelector');
|
|
248
|
+
if (!sortSelector) return;
|
|
249
|
+
|
|
250
|
+
const currentValue = sortSelector.value;
|
|
251
|
+
|
|
252
|
+
if (this.currentFilter === 'agents') {
|
|
253
|
+
// Add "Verified" option for agents if it doesn't exist
|
|
254
|
+
const verifiedOption = Array.from(sortSelector.options).find(opt => opt.value === 'verified');
|
|
255
|
+
if (!verifiedOption) {
|
|
256
|
+
const option = document.createElement('option');
|
|
257
|
+
option.value = 'verified';
|
|
258
|
+
option.textContent = 'Verified First';
|
|
259
|
+
sortSelector.insertBefore(option, sortSelector.options[0]);
|
|
260
|
+
}
|
|
261
|
+
} else {
|
|
262
|
+
// Remove "Verified" option for other filters
|
|
263
|
+
const verifiedOption = Array.from(sortSelector.options).find(opt => opt.value === 'verified');
|
|
264
|
+
if (verifiedOption) {
|
|
265
|
+
verifiedOption.remove();
|
|
266
|
+
// Reset to downloads if verified was selected
|
|
267
|
+
if (currentValue === 'verified') {
|
|
268
|
+
sortSelector.value = 'downloads';
|
|
269
|
+
this.currentSort = 'downloads';
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}
|
|
193
273
|
}
|
|
194
274
|
|
|
195
275
|
// Set category filter
|
|
@@ -285,7 +365,7 @@ class IndexPageManager {
|
|
|
285
365
|
// Sort components based on current sort option
|
|
286
366
|
sortComponents(components) {
|
|
287
367
|
const sortedComponents = [...components]; // Create a copy to avoid mutating original
|
|
288
|
-
|
|
368
|
+
|
|
289
369
|
if (this.currentSort === 'downloads') {
|
|
290
370
|
// Sort by downloads (descending) - components with no downloads go to the end
|
|
291
371
|
sortedComponents.sort((a, b) => {
|
|
@@ -300,8 +380,24 @@ class IndexPageManager {
|
|
|
300
380
|
const nameB = (b.name || '').toLowerCase();
|
|
301
381
|
return nameA.localeCompare(nameB);
|
|
302
382
|
});
|
|
383
|
+
} else if (this.currentSort === 'verified') {
|
|
384
|
+
// Sort by verified status first (100% score), then by downloads
|
|
385
|
+
sortedComponents.sort((a, b) => {
|
|
386
|
+
// Check if component has 100% validation score
|
|
387
|
+
const aVerified = a.security && a.security.validated && a.security.score === 100 && a.security.valid;
|
|
388
|
+
const bVerified = b.security && b.security.validated && b.security.score === 100 && b.security.valid;
|
|
389
|
+
|
|
390
|
+
// Verified components come first
|
|
391
|
+
if (aVerified && !bVerified) return -1;
|
|
392
|
+
if (!aVerified && bVerified) return 1;
|
|
393
|
+
|
|
394
|
+
// If both verified or both not verified, sort by downloads
|
|
395
|
+
const downloadsA = a.downloads || 0;
|
|
396
|
+
const downloadsB = b.downloads || 0;
|
|
397
|
+
return downloadsB - downloadsA;
|
|
398
|
+
});
|
|
303
399
|
}
|
|
304
|
-
|
|
400
|
+
|
|
305
401
|
return sortedComponents;
|
|
306
402
|
}
|
|
307
403
|
|
|
@@ -320,6 +416,7 @@ class IndexPageManager {
|
|
|
320
416
|
this.availableCategories.mcps.clear();
|
|
321
417
|
this.availableCategories.settings.clear();
|
|
322
418
|
this.availableCategories.hooks.clear();
|
|
419
|
+
this.availableCategories.skills.clear();
|
|
323
420
|
this.availableCategories.templates.clear();
|
|
324
421
|
|
|
325
422
|
// Collect categories from each component type
|
|
@@ -357,7 +454,14 @@ class IndexPageManager {
|
|
|
357
454
|
this.availableCategories.hooks.add(category);
|
|
358
455
|
});
|
|
359
456
|
}
|
|
360
|
-
|
|
457
|
+
|
|
458
|
+
if (this.componentsData.skills && Array.isArray(this.componentsData.skills)) {
|
|
459
|
+
this.componentsData.skills.forEach(component => {
|
|
460
|
+
const category = component.category || 'general';
|
|
461
|
+
this.availableCategories.skills.add(category);
|
|
462
|
+
});
|
|
463
|
+
}
|
|
464
|
+
|
|
361
465
|
// Collect categories from templates (use language as category for language templates)
|
|
362
466
|
if (this.componentsData.templates && Array.isArray(this.componentsData.templates)) {
|
|
363
467
|
this.componentsData.templates.forEach(template => {
|
|
@@ -388,11 +492,15 @@ class IndexPageManager {
|
|
|
388
492
|
case 'templates':
|
|
389
493
|
this.displayTemplates(grid);
|
|
390
494
|
break;
|
|
495
|
+
case 'plugins':
|
|
496
|
+
this.displayPlugins(grid);
|
|
497
|
+
break;
|
|
391
498
|
case 'agents':
|
|
392
499
|
case 'commands':
|
|
393
500
|
case 'mcps':
|
|
394
501
|
case 'settings':
|
|
395
502
|
case 'hooks':
|
|
503
|
+
case 'skills':
|
|
396
504
|
this.displayComponents(grid, this.currentFilter);
|
|
397
505
|
break;
|
|
398
506
|
default:
|
|
@@ -439,6 +547,107 @@ class IndexPageManager {
|
|
|
439
547
|
});
|
|
440
548
|
}
|
|
441
549
|
|
|
550
|
+
displayPlugins(grid) {
|
|
551
|
+
if (!this.componentsData || !this.componentsData.plugins) {
|
|
552
|
+
grid.innerHTML = '<div class="loading">Loading plugins...</div>';
|
|
553
|
+
return;
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
// Clear the grid
|
|
557
|
+
grid.innerHTML = '';
|
|
558
|
+
|
|
559
|
+
// Get plugins from loaded components data
|
|
560
|
+
const plugins = this.componentsData.plugins;
|
|
561
|
+
|
|
562
|
+
if (plugins.length === 0) {
|
|
563
|
+
grid.innerHTML = '<div class="no-data">No plugins available</div>';
|
|
564
|
+
return;
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
// Add marketplace setup notice
|
|
568
|
+
const marketplaceNotice = document.createElement('div');
|
|
569
|
+
marketplaceNotice.className = 'plugin-marketplace-notice';
|
|
570
|
+
marketplaceNotice.innerHTML = `
|
|
571
|
+
<div class="notice-icon">ℹ️</div>
|
|
572
|
+
<div class="notice-content">
|
|
573
|
+
<h4>First Time Setup Required</h4>
|
|
574
|
+
<p>Before installing any plugin, you need to add the marketplace to Claude Code:</p>
|
|
575
|
+
<div class="notice-command">
|
|
576
|
+
<code>/plugin marketplace add https://github.com/davila7/claude-code-templates</code>
|
|
577
|
+
<button class="notice-copy-btn" onclick="copyToClipboard('/plugin marketplace add https://github.com/davila7/claude-code-templates'); event.stopPropagation();" title="Copy command">
|
|
578
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor">
|
|
579
|
+
<path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/>
|
|
580
|
+
</svg>
|
|
581
|
+
</button>
|
|
582
|
+
</div>
|
|
583
|
+
<p class="notice-footer">After adding the marketplace, you can install any plugin below.</p>
|
|
584
|
+
</div>
|
|
585
|
+
`;
|
|
586
|
+
grid.appendChild(marketplaceNotice);
|
|
587
|
+
|
|
588
|
+
// Create plugin cards
|
|
589
|
+
plugins.forEach(plugin => {
|
|
590
|
+
const pluginCard = this.createPluginCard(plugin);
|
|
591
|
+
grid.appendChild(pluginCard);
|
|
592
|
+
});
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
createPluginCard(plugin) {
|
|
596
|
+
const card = document.createElement('div');
|
|
597
|
+
card.className = 'template-card plugin-card';
|
|
598
|
+
|
|
599
|
+
// Count components
|
|
600
|
+
const totalComponents = (plugin.commands || 0) + (plugin.agents || 0) + (plugin.mcpServers || 0);
|
|
601
|
+
|
|
602
|
+
card.innerHTML = `
|
|
603
|
+
<div class="card-inner">
|
|
604
|
+
<div class="card-front">
|
|
605
|
+
<div class="plugin-content-wrapper">
|
|
606
|
+
<div class="plugin-version">v${plugin.version}</div>
|
|
607
|
+
<div class="framework-logo" style="color: #a855f7">
|
|
608
|
+
<span class="component-icon">🧩</span>
|
|
609
|
+
</div>
|
|
610
|
+
<h3 class="template-title">${this.formatComponentName(plugin.name)}</h3>
|
|
611
|
+
<p class="template-description">${plugin.description}</p>
|
|
612
|
+
<div class="plugin-stats">
|
|
613
|
+
${plugin.commands > 0 ? `<span class="plugin-stat"><span class="stat-icon">⚡</span>${plugin.commands}</span>` : ''}
|
|
614
|
+
${plugin.agents > 0 ? `<span class="plugin-stat"><span class="stat-icon">🤖</span>${plugin.agents}</span>` : ''}
|
|
615
|
+
${plugin.mcpServers > 0 ? `<span class="plugin-stat"><span class="stat-icon">🔌</span>${plugin.mcpServers}</span>` : ''}
|
|
616
|
+
</div>
|
|
617
|
+
</div>
|
|
618
|
+
<button class="plugin-view-details-btn" onclick="window.location.href='/plugin/${plugin.name}'; event.stopPropagation();">
|
|
619
|
+
<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor">
|
|
620
|
+
<path d="M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z"/>
|
|
621
|
+
</svg>
|
|
622
|
+
View Details
|
|
623
|
+
</button>
|
|
624
|
+
</div>
|
|
625
|
+
<div class="card-back">
|
|
626
|
+
<div class="command-display">
|
|
627
|
+
<h3>Installation Command</h3>
|
|
628
|
+
<div class="command-code-container">
|
|
629
|
+
<div class="command-code">${plugin.installCommand}</div>
|
|
630
|
+
<button class="copy-overlay-btn" onclick="copyToClipboard('${plugin.installCommand.replace(/'/g, "\\'")}'); event.stopPropagation();" title="Copy command">
|
|
631
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
|
|
632
|
+
<path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/>
|
|
633
|
+
</svg>
|
|
634
|
+
Copy Command
|
|
635
|
+
</button>
|
|
636
|
+
</div>
|
|
637
|
+
<div class="plugin-components-list">
|
|
638
|
+
<h4>Included Components (${totalComponents})</h4>
|
|
639
|
+
${plugin.commands > 0 ? `<div class="component-type-item">⚡ ${plugin.commands} Command${plugin.commands > 1 ? 's' : ''}</div>` : ''}
|
|
640
|
+
${plugin.agents > 0 ? `<div class="component-type-item">🤖 ${plugin.agents} Agent${plugin.agents > 1 ? 's' : ''}</div>` : ''}
|
|
641
|
+
${plugin.mcpServers > 0 ? `<div class="component-type-item">🔌 ${plugin.mcpServers} MCP${plugin.mcpServers > 1 ? 's' : ''}</div>` : ''}
|
|
642
|
+
</div>
|
|
643
|
+
</div>
|
|
644
|
+
</div>
|
|
645
|
+
</div>
|
|
646
|
+
`;
|
|
647
|
+
|
|
648
|
+
return card;
|
|
649
|
+
}
|
|
650
|
+
|
|
442
651
|
displayComponents(grid, type) {
|
|
443
652
|
if (!this.componentsData) {
|
|
444
653
|
grid.innerHTML = '<div class="loading">Loading components...</div>';
|
|
@@ -508,7 +717,8 @@ class IndexPageManager {
|
|
|
508
717
|
command: { icon: '⚡', color: '#4ecdc4' },
|
|
509
718
|
mcp: { icon: '🔌', color: '#45b7d1' },
|
|
510
719
|
setting: { icon: '⚙️', color: '#9c88ff' },
|
|
511
|
-
hook: { icon: '🪝', color: '#ff8c42' }
|
|
720
|
+
hook: { icon: '🪝', color: '#ff8c42' },
|
|
721
|
+
skill: { icon: '🎨', color: '#f59e0b' }
|
|
512
722
|
};
|
|
513
723
|
|
|
514
724
|
const config = typeConfig[component.type];
|
|
@@ -525,14 +735,17 @@ class IndexPageManager {
|
|
|
525
735
|
const categoryLabel = `<div class="category-label">${this.formatComponentName(categoryName)}</div>`;
|
|
526
736
|
|
|
527
737
|
// Create download badge if downloads data exists
|
|
528
|
-
const downloadBadge = component.downloads && component.downloads > 0 ?
|
|
738
|
+
const downloadBadge = component.downloads && component.downloads > 0 ?
|
|
529
739
|
`<div class="download-badge" title="${component.downloads} downloads">
|
|
530
740
|
<svg width="12" height="12" viewBox="0 0 24 24" fill="currentColor">
|
|
531
741
|
<path d="M5 20h14v-2H5v2zM19 9h-4V3H9v6H5l7 7 7-7z"/>
|
|
532
742
|
</svg>
|
|
533
743
|
${this.formatNumber(component.downloads)}
|
|
534
744
|
</div>` : '';
|
|
535
|
-
|
|
745
|
+
|
|
746
|
+
// Create validation badge for agents with security data
|
|
747
|
+
const validationBadge = this.createValidationBadge(component.security);
|
|
748
|
+
|
|
536
749
|
return `
|
|
537
750
|
<div class="template-card" data-type="${component.type}">
|
|
538
751
|
<div class="card-inner">
|
|
@@ -541,6 +754,7 @@ class IndexPageManager {
|
|
|
541
754
|
${categoryLabel}
|
|
542
755
|
<div class="framework-logo" style="color: ${config.color}">
|
|
543
756
|
<span class="component-icon">${config.icon}</span>
|
|
757
|
+
${validationBadge}
|
|
544
758
|
</div>
|
|
545
759
|
<h3 class="template-title">${this.formatComponentName(component.name)}</h3>
|
|
546
760
|
${component.type === 'mcp' ?
|
|
@@ -636,7 +850,7 @@ class IndexPageManager {
|
|
|
636
850
|
|
|
637
851
|
getComponentDescription(component) {
|
|
638
852
|
let description = '';
|
|
639
|
-
|
|
853
|
+
|
|
640
854
|
if (component.description) {
|
|
641
855
|
description = component.description;
|
|
642
856
|
} else if (component.content) {
|
|
@@ -653,85 +867,117 @@ class IndexPageManager {
|
|
|
653
867
|
}
|
|
654
868
|
}
|
|
655
869
|
}
|
|
656
|
-
|
|
870
|
+
|
|
657
871
|
if (!description) {
|
|
658
872
|
description = `A ${component.type} component for Claude Code.`;
|
|
659
873
|
}
|
|
660
|
-
|
|
874
|
+
|
|
661
875
|
// Truncate description to max 120 characters for proper card display
|
|
662
876
|
if (description.length > 120) {
|
|
663
877
|
description = description.substring(0, 117) + '...';
|
|
664
878
|
}
|
|
665
|
-
|
|
879
|
+
|
|
666
880
|
return description;
|
|
667
881
|
}
|
|
668
882
|
|
|
883
|
+
/**
|
|
884
|
+
* Create validation badge HTML - Only for perfect 100% score
|
|
885
|
+
*/
|
|
886
|
+
createValidationBadge(validation) {
|
|
887
|
+
if (!validation || !validation.validated) return '';
|
|
888
|
+
|
|
889
|
+
const score = validation.score || 0;
|
|
890
|
+
const isValid = validation.valid;
|
|
891
|
+
|
|
892
|
+
// ONLY show badge for perfect score (100%)
|
|
893
|
+
if (score === 100 && isValid) {
|
|
894
|
+
return `<div class="verified-checkmark" title="100% Validated - Perfect Security Score">
|
|
895
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="#1DA1F2">
|
|
896
|
+
<path d="M22.5 12.5c0-1.58-.875-2.95-2.148-3.6.154-.435.238-.905.238-1.4 0-2.21-1.71-3.998-3.818-3.998-.47 0-.92.084-1.336.25C14.818 2.415 13.51 1.5 12 1.5s-2.816.917-3.437 2.25c-.415-.165-.866-.25-1.336-.25-2.11 0-3.818 1.79-3.818 4 0 .494.083.964.237 1.4-1.272.65-2.147 2.018-2.147 3.6 0 1.495.782 2.798 1.942 3.486-.02.17-.032.34-.032.514 0 2.21 1.708 4 3.818 4 .47 0 .92-.086 1.335-.25.62 1.334 1.926 2.25 3.437 2.25 1.512 0 2.818-.916 3.437-2.25.415.163.865.248 1.336.248 2.11 0 3.818-1.79 3.818-4 0-.174-.012-.344-.033-.513 1.158-.687 1.943-1.99 1.943-3.484zm-6.616-3.334l-4.334 6.5c-.145.217-.382.334-.625.334-.143 0-.288-.04-.416-.126l-.115-.094-2.415-2.415c-.293-.293-.293-.768 0-1.06s.768-.294 1.06 0l1.77 1.767 3.825-5.74c.23-.345.696-.436 1.04-.207.346.23.44.696.21 1.04z"/>
|
|
897
|
+
</svg>
|
|
898
|
+
</div>`;
|
|
899
|
+
}
|
|
900
|
+
|
|
901
|
+
// Don't show anything for scores below 100
|
|
902
|
+
return '';
|
|
903
|
+
}
|
|
904
|
+
|
|
669
905
|
// Update filter button counts
|
|
670
906
|
updateFilterCounts() {
|
|
671
907
|
// Get accurate total counts from data loader (includes full data counts)
|
|
672
908
|
const totalCounts = window.dataLoader.getTotalCounts();
|
|
673
909
|
if (!totalCounts) return;
|
|
674
|
-
|
|
910
|
+
|
|
675
911
|
// Update each filter button with accurate total count
|
|
676
912
|
const agentsBtn = document.querySelector('[data-filter="agents"]');
|
|
677
913
|
const commandsBtn = document.querySelector('[data-filter="commands"]');
|
|
678
914
|
const mcpsBtn = document.querySelector('[data-filter="mcps"]');
|
|
679
915
|
const settingsBtn = document.querySelector('[data-filter="settings"]');
|
|
680
916
|
const hooksBtn = document.querySelector('[data-filter="hooks"]');
|
|
917
|
+
const skillsBtn = document.querySelector('[data-filter="skills"]');
|
|
681
918
|
const templatesBtn = document.querySelector('[data-filter="templates"]');
|
|
682
|
-
|
|
919
|
+
|
|
683
920
|
if (agentsBtn) {
|
|
684
|
-
agentsBtn.innerHTML =
|
|
921
|
+
agentsBtn.innerHTML = `<span class="chip-icon">🤖</span>agents (${totalCounts.agents})`;
|
|
685
922
|
}
|
|
686
923
|
if (commandsBtn) {
|
|
687
|
-
commandsBtn.innerHTML =
|
|
924
|
+
commandsBtn.innerHTML = `<span class="chip-icon">⚡</span>commands (${totalCounts.commands})`;
|
|
688
925
|
}
|
|
689
926
|
if (mcpsBtn) {
|
|
690
|
-
mcpsBtn.innerHTML =
|
|
927
|
+
mcpsBtn.innerHTML = `<span class="chip-icon">🔌</span>mcps (${totalCounts.mcps})`;
|
|
691
928
|
}
|
|
692
929
|
if (settingsBtn) {
|
|
693
|
-
settingsBtn.innerHTML =
|
|
930
|
+
settingsBtn.innerHTML = `<span class="chip-icon">⚙️</span>settings (${totalCounts.settings})`;
|
|
694
931
|
}
|
|
695
932
|
if (hooksBtn) {
|
|
696
|
-
hooksBtn.innerHTML =
|
|
933
|
+
hooksBtn.innerHTML = `<span class="chip-icon">🪝</span>hooks (${totalCounts.hooks})`;
|
|
934
|
+
}
|
|
935
|
+
if (skillsBtn) {
|
|
936
|
+
skillsBtn.innerHTML = `<span class="new-label">NEW</span><span class="chip-icon">🎨</span>skills (${totalCounts.skills})`;
|
|
697
937
|
}
|
|
698
938
|
if (templatesBtn) {
|
|
699
|
-
templatesBtn.innerHTML =
|
|
939
|
+
templatesBtn.innerHTML = `<span class="chip-icon">📦</span>templates (${totalCounts.templates})`;
|
|
700
940
|
}
|
|
701
941
|
}
|
|
702
942
|
|
|
703
943
|
// Create Add Component card
|
|
704
944
|
createAddComponentCard(type) {
|
|
705
945
|
const typeConfig = {
|
|
706
|
-
agents: {
|
|
707
|
-
icon: '🤖',
|
|
708
|
-
name: 'Agent',
|
|
946
|
+
agents: {
|
|
947
|
+
icon: '🤖',
|
|
948
|
+
name: 'Agent',
|
|
709
949
|
description: 'Create a new AI specialist agent',
|
|
710
950
|
color: '#ff6b6b'
|
|
711
951
|
},
|
|
712
|
-
commands: {
|
|
713
|
-
icon: '⚡',
|
|
714
|
-
name: 'Command',
|
|
952
|
+
commands: {
|
|
953
|
+
icon: '⚡',
|
|
954
|
+
name: 'Command',
|
|
715
955
|
description: 'Add a custom slash command',
|
|
716
956
|
color: '#4ecdc4'
|
|
717
957
|
},
|
|
718
|
-
mcps: {
|
|
719
|
-
icon: '🔌',
|
|
720
|
-
name: 'MCP',
|
|
958
|
+
mcps: {
|
|
959
|
+
icon: '🔌',
|
|
960
|
+
name: 'MCP',
|
|
721
961
|
description: 'Build a Model Context Protocol integration',
|
|
722
962
|
color: '#45b7d1'
|
|
723
963
|
},
|
|
724
|
-
settings: {
|
|
725
|
-
icon: '⚙️',
|
|
726
|
-
name: 'Setting',
|
|
964
|
+
settings: {
|
|
965
|
+
icon: '⚙️',
|
|
966
|
+
name: 'Setting',
|
|
727
967
|
description: 'Configure Claude Code behavior',
|
|
728
968
|
color: '#9c88ff'
|
|
729
969
|
},
|
|
730
|
-
hooks: {
|
|
731
|
-
icon: '🪝',
|
|
732
|
-
name: 'Hook',
|
|
970
|
+
hooks: {
|
|
971
|
+
icon: '🪝',
|
|
972
|
+
name: 'Hook',
|
|
733
973
|
description: 'Automate tool execution workflows',
|
|
734
974
|
color: '#ff8c42'
|
|
975
|
+
},
|
|
976
|
+
skills: {
|
|
977
|
+
icon: '🎨',
|
|
978
|
+
name: 'Skill',
|
|
979
|
+
description: 'Add modular capabilities with progressive disclosure',
|
|
980
|
+
color: '#f59e0b'
|
|
735
981
|
}
|
|
736
982
|
};
|
|
737
983
|
|
|
@@ -1038,6 +1284,15 @@ function handleSortChange(sortValue) {
|
|
|
1038
1284
|
// Global function for handling filter click with navigation
|
|
1039
1285
|
function handleFilterClick(event, filter) {
|
|
1040
1286
|
event.preventDefault(); // Prevent default link navigation
|
|
1287
|
+
|
|
1288
|
+
// If plugins filter, scroll to plugins section
|
|
1289
|
+
if (filter === 'plugins') {
|
|
1290
|
+
const contentGrid = document.getElementById('contentGrid');
|
|
1291
|
+
if (contentGrid) {
|
|
1292
|
+
contentGrid.scrollIntoView({ behavior: 'smooth', block: 'start' });
|
|
1293
|
+
}
|
|
1294
|
+
}
|
|
1295
|
+
|
|
1041
1296
|
setUnifiedFilter(filter);
|
|
1042
1297
|
}
|
|
1043
1298
|
|
|
@@ -1117,11 +1372,20 @@ function showCategoryFilters(componentType) {
|
|
|
1117
1372
|
console.log('MCPs data:', mcps);
|
|
1118
1373
|
categories = getUniqueCategories(mcps);
|
|
1119
1374
|
break;
|
|
1375
|
+
case 'skills':
|
|
1376
|
+
const skills = dataLoader.getComponentsByType('skill');
|
|
1377
|
+
console.log('Skills data:', skills);
|
|
1378
|
+
categories = getUniqueCategories(skills);
|
|
1379
|
+
break;
|
|
1120
1380
|
case 'templates':
|
|
1121
1381
|
const templates = dataLoader.getComponentsByType('template');
|
|
1122
1382
|
console.log('Templates data:', templates);
|
|
1123
1383
|
categories = getUniqueCategories(templates);
|
|
1124
1384
|
break;
|
|
1385
|
+
case 'plugins':
|
|
1386
|
+
// Plugins don't have categories
|
|
1387
|
+
categories = [];
|
|
1388
|
+
break;
|
|
1125
1389
|
default:
|
|
1126
1390
|
categories = [];
|
|
1127
1391
|
}
|
|
@@ -1743,19 +2007,7 @@ function handleAddToCart(name, path, type, category, buttonElement) {
|
|
|
1743
2007
|
document.addEventListener('DOMContentLoaded', () => {
|
|
1744
2008
|
window.indexManager = new IndexPageManager();
|
|
1745
2009
|
window.indexManager.init();
|
|
1746
|
-
|
|
1747
|
-
// Initialize category filters for default selection (agents)
|
|
1748
|
-
// Wait for components to load, then show categories
|
|
1749
|
-
const initCategories = () => {
|
|
1750
|
-
if (window.dataLoader && window.dataLoader.componentsData) {
|
|
1751
|
-
showCategoryFilters('agents');
|
|
1752
|
-
} else {
|
|
1753
|
-
setTimeout(initCategories, 200);
|
|
1754
|
-
}
|
|
1755
|
-
};
|
|
1756
|
-
|
|
1757
|
-
setTimeout(initCategories, 100);
|
|
1758
|
-
|
|
2010
|
+
|
|
1759
2011
|
// Focus search input on page load and setup terminal cursor
|
|
1760
2012
|
setTimeout(() => {
|
|
1761
2013
|
const searchInput = document.getElementById('searchInput');
|