@amrhas82/agentic-kit 1.0.0 → 1.2.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/CHANGELOG.md +352 -0
- package/README.md +242 -339
- package/TROUBLESHOOTING.md +1 -1
- package/docs/.gitkeep +1 -0
- package/docs/CONTRIBUTING.md +739 -0
- package/docs/DUAL_PUBLISH_SUMMARY.md +177 -0
- package/docs/ERROR_HANDLING_IMPLEMENTATION.md +327 -0
- package/docs/GITHUB_PACKAGES.md +181 -0
- package/docs/GITHUB_SETUP.md +158 -0
- package/docs/INSTALLATION_DEMO.md +691 -0
- package/docs/INSTALLER_GUIDE.md +1586 -0
- package/docs/INTEGRATION_ISSUES_9.1.md +341 -0
- package/docs/KNOWLEDGE_BASE.md +727 -0
- package/docs/MIGRATION.md +384 -0
- package/docs/PACKAGE_BASELINE.md +557 -0
- package/docs/PACKAGE_VALIDATION_REPORT.md +427 -0
- package/docs/PASS_INTEGRATION.md +307 -0
- package/docs/PASS_QUICK_START.md +150 -0
- package/docs/PRIVACY.md +203 -0
- package/docs/PUBLISHING.md +494 -0
- package/docs/SECURITY.md +317 -0
- package/docs/SILENT_MODE_GUIDE.md +526 -0
- package/docs/SKILLS_CONVERSION.md +154 -0
- package/docs/TESTING.md +582 -0
- package/docs/TEST_COVERAGE.md +347 -0
- package/docs/UPDATED_VARIANT_CONFIGURATION.md +274 -0
- package/docs/VARIANT_CONFIGURATION.md +440 -0
- package/installer/cli.js +2229 -0
- package/installer/installation-engine.js +1502 -0
- package/installer/package-manager.js +597 -0
- package/installer/path-manager.js +427 -0
- package/installer/report-template.js +298 -0
- package/installer/state-manager.js +426 -0
- package/installer/telemetry.js +241 -0
- package/installer/verification-system.js +274 -0
- package/package.json +33 -7
- package/packages/ampcode/AGENTS.md +109 -0
- package/packages/ampcode/README.md +17 -0
- package/packages/ampcode/agents/orchestrator.md +103 -0
- package/packages/ampcode/hooks/register-agents.js +128 -0
- package/packages/ampcode/hooks/session-start.js +168 -0
- package/packages/ampcode/resources/agent-teams.yaml +50 -0
- package/packages/ampcode/resources/data.md +1372 -0
- package/packages/ampcode/resources/templates.yaml +5810 -0
- package/packages/ampcode/resources/workflows.yaml +1513 -0
- package/packages/ampcode/settings.json +13 -0
- package/packages/ampcode/skills/README.md +76 -0
- package/packages/ampcode/subagents-and-skills.md +79 -0
- package/packages/ampcode/variants.json +67 -0
- package/packages/claude/.claude-plugin/marketplace.json +67 -0
- package/packages/claude/.claude-plugin/plugin-lite.json +43 -0
- package/packages/claude/.claude-plugin/plugin-pro.json +188 -0
- package/packages/claude/.claude-plugin/plugin-standard.json +152 -0
- package/packages/claude/.claude-plugin/plugin.json +52 -0
- package/packages/claude/AGENTS.md +243 -0
- package/packages/claude/README.md +23 -0
- package/packages/claude/agents/1-create-prd.md +56 -0
- package/packages/claude/agents/2-generate-tasks.md +73 -0
- package/packages/claude/agents/3-process-task-list.md +101 -0
- package/packages/claude/agents/business-analyst.md +76 -0
- package/packages/claude/agents/full-stack-dev.md +80 -0
- package/packages/claude/agents/holistic-architect.md +91 -0
- package/packages/claude/agents/master.md +55 -0
- package/packages/claude/agents/product-manager.md +82 -0
- package/packages/claude/agents/product-owner.md +97 -0
- package/packages/claude/agents/qa-test-architect.md +72 -0
- package/packages/claude/agents/scrum-master.md +64 -0
- package/packages/claude/agents/ux-expert.md +74 -0
- package/packages/claude/hooks/session-start.js +159 -0
- package/packages/claude/resources/agent-teams.yaml +50 -0
- package/packages/claude/resources/checklists.md +1724 -0
- package/packages/claude/resources/task-briefs.md +4428 -0
- package/packages/claude/resources/templates.yaml +5810 -0
- package/packages/claude/resources/workflows.yaml +1513 -0
- package/packages/claude/skills/README.md +76 -0
- package/packages/claude/skills/algorithmic-art/LICENSE.txt +202 -0
- package/packages/claude/skills/algorithmic-art/SKILL.md +405 -0
- package/packages/claude/skills/algorithmic-art/templates/generator_template.js +223 -0
- package/packages/claude/skills/algorithmic-art/templates/viewer.html +599 -0
- package/packages/claude/skills/artifacts-builder/LICENSE.txt +202 -0
- package/packages/claude/skills/artifacts-builder/SKILL.md +74 -0
- package/packages/claude/skills/artifacts-builder/scripts/bundle-artifact.sh +54 -0
- package/packages/claude/skills/artifacts-builder/scripts/init-artifact.sh +322 -0
- package/packages/claude/skills/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- package/packages/claude/skills/brainstorming/SKILL.md +54 -0
- package/packages/claude/skills/brand-guidelines/LICENSE.txt +202 -0
- package/packages/claude/skills/brand-guidelines/SKILL.md +73 -0
- package/packages/claude/skills/canvas-design/LICENSE.txt +202 -0
- package/packages/claude/skills/canvas-design/SKILL.md +130 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/packages/claude/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/packages/claude/skills/code-review/SKILL.md +105 -0
- package/packages/claude/skills/code-review/code-reviewer.md +146 -0
- package/packages/claude/skills/condition-based-waiting/SKILL.md +120 -0
- package/packages/claude/skills/condition-based-waiting/example.ts +158 -0
- package/packages/claude/skills/docx/LICENSE.txt +30 -0
- package/packages/claude/skills/docx/SKILL.md +197 -0
- package/packages/claude/skills/docx/docx-js.md +350 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/packages/claude/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/packages/claude/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/packages/claude/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/packages/claude/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/packages/claude/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/packages/claude/skills/docx/ooxml/schemas/mce/mc.xsd +75 -0
- package/packages/claude/skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/packages/claude/skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/packages/claude/skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/packages/claude/skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/packages/claude/skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/packages/claude/skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/packages/claude/skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/packages/claude/skills/docx/ooxml/scripts/pack.py +159 -0
- package/packages/claude/skills/docx/ooxml/scripts/unpack.py +29 -0
- package/packages/claude/skills/docx/ooxml/scripts/validate.py +69 -0
- package/packages/claude/skills/docx/ooxml/scripts/validation/__init__.py +15 -0
- package/packages/claude/skills/docx/ooxml/scripts/validation/base.py +951 -0
- package/packages/claude/skills/docx/ooxml/scripts/validation/docx.py +274 -0
- package/packages/claude/skills/docx/ooxml/scripts/validation/pptx.py +315 -0
- package/packages/claude/skills/docx/ooxml/scripts/validation/redlining.py +279 -0
- package/packages/claude/skills/docx/ooxml.md +610 -0
- package/packages/claude/skills/docx/scripts/__init__.py +1 -0
- package/packages/claude/skills/docx/scripts/document.py +1276 -0
- package/packages/claude/skills/docx/scripts/templates/comments.xml +3 -0
- package/packages/claude/skills/docx/scripts/templates/commentsExtended.xml +3 -0
- package/packages/claude/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/packages/claude/skills/docx/scripts/templates/commentsIds.xml +3 -0
- package/packages/claude/skills/docx/scripts/templates/people.xml +3 -0
- package/packages/claude/skills/docx/scripts/utilities.py +374 -0
- package/packages/claude/skills/internal-comms/LICENSE.txt +202 -0
- package/packages/claude/skills/internal-comms/SKILL.md +32 -0
- package/packages/claude/skills/internal-comms/examples/3p-updates.md +47 -0
- package/packages/claude/skills/internal-comms/examples/company-newsletter.md +65 -0
- package/packages/claude/skills/internal-comms/examples/faq-answers.md +30 -0
- package/packages/claude/skills/internal-comms/examples/general-comms.md +16 -0
- package/packages/claude/skills/mcp-builder/LICENSE.txt +202 -0
- package/packages/claude/skills/mcp-builder/SKILL.md +328 -0
- package/packages/claude/skills/mcp-builder/reference/evaluation.md +602 -0
- package/packages/claude/skills/mcp-builder/reference/mcp_best_practices.md +915 -0
- package/packages/claude/skills/mcp-builder/reference/node_mcp_server.md +916 -0
- package/packages/claude/skills/mcp-builder/reference/python_mcp_server.md +752 -0
- package/packages/claude/skills/mcp-builder/scripts/connections.py +151 -0
- package/packages/claude/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/packages/claude/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/packages/claude/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/packages/claude/skills/pdf/LICENSE.txt +30 -0
- package/packages/claude/skills/pdf/SKILL.md +294 -0
- package/packages/claude/skills/pdf/forms.md +205 -0
- package/packages/claude/skills/pdf/reference.md +612 -0
- package/packages/claude/skills/pdf/scripts/check_bounding_boxes.py +70 -0
- package/packages/claude/skills/pdf/scripts/check_bounding_boxes_test.py +226 -0
- package/packages/claude/skills/pdf/scripts/check_fillable_fields.py +12 -0
- package/packages/claude/skills/pdf/scripts/convert_pdf_to_images.py +35 -0
- package/packages/claude/skills/pdf/scripts/create_validation_image.py +41 -0
- package/packages/claude/skills/pdf/scripts/extract_form_field_info.py +152 -0
- package/packages/claude/skills/pdf/scripts/fill_fillable_fields.py +114 -0
- package/packages/claude/skills/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
- package/packages/claude/skills/pptx/LICENSE.txt +30 -0
- package/packages/claude/skills/pptx/SKILL.md +484 -0
- package/packages/claude/skills/pptx/html2pptx.md +625 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/packages/claude/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/packages/claude/skills/pptx/ooxml/schemas/mce/mc.xsd +75 -0
- package/packages/claude/skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/packages/claude/skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/packages/claude/skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/packages/claude/skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/packages/claude/skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/packages/claude/skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/packages/claude/skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/packages/claude/skills/pptx/ooxml/scripts/pack.py +159 -0
- package/packages/claude/skills/pptx/ooxml/scripts/unpack.py +29 -0
- package/packages/claude/skills/pptx/ooxml/scripts/validate.py +69 -0
- package/packages/claude/skills/pptx/ooxml/scripts/validation/__init__.py +15 -0
- package/packages/claude/skills/pptx/ooxml/scripts/validation/base.py +951 -0
- package/packages/claude/skills/pptx/ooxml/scripts/validation/docx.py +274 -0
- package/packages/claude/skills/pptx/ooxml/scripts/validation/pptx.py +315 -0
- package/packages/claude/skills/pptx/ooxml/scripts/validation/redlining.py +279 -0
- package/packages/claude/skills/pptx/ooxml.md +427 -0
- package/packages/claude/skills/pptx/scripts/html2pptx.js +979 -0
- package/packages/claude/skills/pptx/scripts/inventory.py +1020 -0
- package/packages/claude/skills/pptx/scripts/rearrange.py +231 -0
- package/packages/claude/skills/pptx/scripts/replace.py +385 -0
- package/packages/claude/skills/pptx/scripts/thumbnail.py +450 -0
- package/packages/claude/skills/root-cause-tracing/SKILL.md +174 -0
- package/packages/claude/skills/root-cause-tracing/find-polluter.sh +63 -0
- package/packages/claude/skills/skill-creator/LICENSE.txt +202 -0
- package/packages/claude/skills/skill-creator/SKILL.md +209 -0
- package/packages/claude/skills/skill-creator/scripts/init_skill.py +303 -0
- package/packages/claude/skills/skill-creator/scripts/package_skill.py +110 -0
- package/packages/claude/skills/skill-creator/scripts/quick_validate.py +65 -0
- package/packages/claude/skills/slack-gif-creator/LICENSE.txt +202 -0
- package/packages/claude/skills/slack-gif-creator/SKILL.md +646 -0
- package/packages/claude/skills/slack-gif-creator/core/color_palettes.py +302 -0
- package/packages/claude/skills/slack-gif-creator/core/easing.py +230 -0
- package/packages/claude/skills/slack-gif-creator/core/frame_composer.py +469 -0
- package/packages/claude/skills/slack-gif-creator/core/gif_builder.py +246 -0
- package/packages/claude/skills/slack-gif-creator/core/typography.py +357 -0
- package/packages/claude/skills/slack-gif-creator/core/validators.py +264 -0
- package/packages/claude/skills/slack-gif-creator/core/visual_effects.py +494 -0
- package/packages/claude/skills/slack-gif-creator/requirements.txt +4 -0
- package/packages/claude/skills/slack-gif-creator/templates/bounce.py +106 -0
- package/packages/claude/skills/slack-gif-creator/templates/explode.py +331 -0
- package/packages/claude/skills/slack-gif-creator/templates/fade.py +329 -0
- package/packages/claude/skills/slack-gif-creator/templates/flip.py +291 -0
- package/packages/claude/skills/slack-gif-creator/templates/kaleidoscope.py +211 -0
- package/packages/claude/skills/slack-gif-creator/templates/morph.py +329 -0
- package/packages/claude/skills/slack-gif-creator/templates/move.py +293 -0
- package/packages/claude/skills/slack-gif-creator/templates/pulse.py +268 -0
- package/packages/claude/skills/slack-gif-creator/templates/shake.py +127 -0
- package/packages/claude/skills/slack-gif-creator/templates/slide.py +291 -0
- package/packages/claude/skills/slack-gif-creator/templates/spin.py +269 -0
- package/packages/claude/skills/slack-gif-creator/templates/wiggle.py +300 -0
- package/packages/claude/skills/slack-gif-creator/templates/zoom.py +312 -0
- package/packages/claude/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/packages/claude/skills/systematic-debugging/SKILL.md +295 -0
- package/packages/claude/skills/systematic-debugging/test-academic.md +14 -0
- package/packages/claude/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/packages/claude/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/packages/claude/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/packages/claude/skills/test-driven-development/SKILL.md +364 -0
- package/packages/claude/skills/testing-anti-patterns/SKILL.md +302 -0
- package/packages/claude/skills/theme-factory/LICENSE.txt +202 -0
- package/packages/claude/skills/theme-factory/SKILL.md +59 -0
- package/packages/claude/skills/theme-factory/theme-showcase.pdf +0 -0
- package/packages/claude/skills/theme-factory/themes/arctic-frost.md +19 -0
- package/packages/claude/skills/theme-factory/themes/botanical-garden.md +19 -0
- package/packages/claude/skills/theme-factory/themes/desert-rose.md +19 -0
- package/packages/claude/skills/theme-factory/themes/forest-canopy.md +19 -0
- package/packages/claude/skills/theme-factory/themes/golden-hour.md +19 -0
- package/packages/claude/skills/theme-factory/themes/midnight-galaxy.md +19 -0
- package/packages/claude/skills/theme-factory/themes/modern-minimalist.md +19 -0
- package/packages/claude/skills/theme-factory/themes/ocean-depths.md +19 -0
- package/packages/claude/skills/theme-factory/themes/sunset-boulevard.md +19 -0
- package/packages/claude/skills/theme-factory/themes/tech-innovation.md +19 -0
- package/packages/claude/skills/verification-before-completion/SKILL.md +139 -0
- package/packages/claude/skills/webapp-testing/LICENSE.txt +202 -0
- package/packages/claude/skills/webapp-testing/SKILL.md +96 -0
- package/packages/claude/skills/webapp-testing/examples/console_logging.py +35 -0
- package/packages/claude/skills/webapp-testing/examples/element_discovery.py +40 -0
- package/packages/claude/skills/webapp-testing/examples/static_html_automation.py +33 -0
- package/packages/claude/skills/webapp-testing/scripts/with_server.py +106 -0
- package/packages/claude/skills/xlsx/LICENSE.txt +30 -0
- package/packages/claude/skills/xlsx/SKILL.md +289 -0
- package/packages/claude/skills/xlsx/recalc.py +178 -0
- package/packages/claude/subagents-and-skills.md +79 -0
- package/packages/claude/variants.json +67 -0
- package/packages/droid/README.md +17 -0
- package/packages/droid/agents/1-create-prd.md +56 -0
- package/packages/droid/agents/2-generate-tasks.md +73 -0
- package/packages/droid/agents/3-process-task-list.md +101 -0
- package/packages/droid/agents/business-analyst.md +76 -0
- package/packages/droid/agents/full-stack-dev.md +80 -0
- package/packages/droid/agents/holistic-architect.md +91 -0
- package/packages/droid/agents/master.md +55 -0
- package/packages/droid/agents/orchestrator.md +103 -0
- package/packages/droid/agents/product-manager.md +82 -0
- package/packages/droid/agents/product-owner.md +97 -0
- package/packages/droid/agents/qa-test-architect.md +72 -0
- package/packages/droid/agents/scrum-master.md +64 -0
- package/packages/droid/agents/ux-expert.md +74 -0
- package/packages/droid/hooks/register-agents.js +128 -0
- package/packages/droid/hooks/session-start.js +168 -0
- package/packages/droid/resources/agent-teams.yaml +50 -0
- package/packages/droid/resources/checklists.md +1724 -0
- package/packages/droid/resources/data.md +1372 -0
- package/packages/droid/resources/task-briefs.md +4428 -0
- package/packages/droid/resources/templates.yaml +5810 -0
- package/packages/droid/resources/workflows.yaml +1513 -0
- package/packages/droid/skills/README.md +76 -0
- package/packages/droid/skills/algorithmic-art/LICENSE.txt +202 -0
- package/packages/droid/skills/algorithmic-art/SKILL.md +405 -0
- package/packages/droid/skills/algorithmic-art/templates/generator_template.js +223 -0
- package/packages/droid/skills/algorithmic-art/templates/viewer.html +599 -0
- package/packages/droid/skills/artifacts-builder/LICENSE.txt +202 -0
- package/packages/droid/skills/artifacts-builder/SKILL.md +74 -0
- package/packages/droid/skills/artifacts-builder/scripts/bundle-artifact.sh +54 -0
- package/packages/droid/skills/artifacts-builder/scripts/init-artifact.sh +322 -0
- package/packages/droid/skills/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- package/packages/droid/skills/brainstorming/SKILL.md +54 -0
- package/packages/droid/skills/brand-guidelines/LICENSE.txt +202 -0
- package/packages/droid/skills/brand-guidelines/SKILL.md +73 -0
- package/packages/droid/skills/canvas-design/LICENSE.txt +202 -0
- package/packages/droid/skills/canvas-design/SKILL.md +130 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/packages/droid/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/packages/droid/skills/code-review/SKILL.md +105 -0
- package/packages/droid/skills/code-review/code-reviewer.md +146 -0
- package/packages/droid/skills/condition-based-waiting/SKILL.md +120 -0
- package/packages/droid/skills/condition-based-waiting/example.ts +158 -0
- package/packages/droid/skills/docx/LICENSE.txt +30 -0
- package/packages/droid/skills/docx/SKILL.md +197 -0
- package/packages/droid/skills/docx/docx-js.md +350 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/packages/droid/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/packages/droid/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/packages/droid/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/packages/droid/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/packages/droid/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/packages/droid/skills/docx/ooxml/schemas/mce/mc.xsd +75 -0
- package/packages/droid/skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/packages/droid/skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/packages/droid/skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/packages/droid/skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/packages/droid/skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/packages/droid/skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/packages/droid/skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/packages/droid/skills/docx/ooxml/scripts/pack.py +159 -0
- package/packages/droid/skills/docx/ooxml/scripts/unpack.py +29 -0
- package/packages/droid/skills/docx/ooxml/scripts/validate.py +69 -0
- package/packages/droid/skills/docx/ooxml/scripts/validation/__init__.py +15 -0
- package/packages/droid/skills/docx/ooxml/scripts/validation/base.py +951 -0
- package/packages/droid/skills/docx/ooxml/scripts/validation/docx.py +274 -0
- package/packages/droid/skills/docx/ooxml/scripts/validation/pptx.py +315 -0
- package/packages/droid/skills/docx/ooxml/scripts/validation/redlining.py +279 -0
- package/packages/droid/skills/docx/ooxml.md +610 -0
- package/packages/droid/skills/docx/scripts/__init__.py +1 -0
- package/packages/droid/skills/docx/scripts/document.py +1276 -0
- package/packages/droid/skills/docx/scripts/templates/comments.xml +3 -0
- package/packages/droid/skills/docx/scripts/templates/commentsExtended.xml +3 -0
- package/packages/droid/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/packages/droid/skills/docx/scripts/templates/commentsIds.xml +3 -0
- package/packages/droid/skills/docx/scripts/templates/people.xml +3 -0
- package/packages/droid/skills/docx/scripts/utilities.py +374 -0
- package/packages/droid/skills/internal-comms/LICENSE.txt +202 -0
- package/packages/droid/skills/internal-comms/SKILL.md +32 -0
- package/packages/droid/skills/internal-comms/examples/3p-updates.md +47 -0
- package/packages/droid/skills/internal-comms/examples/company-newsletter.md +65 -0
- package/packages/droid/skills/internal-comms/examples/faq-answers.md +30 -0
- package/packages/droid/skills/internal-comms/examples/general-comms.md +16 -0
- package/packages/droid/skills/mcp-builder/LICENSE.txt +202 -0
- package/packages/droid/skills/mcp-builder/SKILL.md +328 -0
- package/packages/droid/skills/mcp-builder/reference/evaluation.md +602 -0
- package/packages/droid/skills/mcp-builder/reference/mcp_best_practices.md +915 -0
- package/packages/droid/skills/mcp-builder/reference/node_mcp_server.md +916 -0
- package/packages/droid/skills/mcp-builder/reference/python_mcp_server.md +752 -0
- package/packages/droid/skills/mcp-builder/scripts/connections.py +151 -0
- package/packages/droid/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/packages/droid/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/packages/droid/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/packages/droid/skills/pdf/LICENSE.txt +30 -0
- package/packages/droid/skills/pdf/SKILL.md +294 -0
- package/packages/droid/skills/pdf/forms.md +205 -0
- package/packages/droid/skills/pdf/reference.md +612 -0
- package/packages/droid/skills/pdf/scripts/check_bounding_boxes.py +70 -0
- package/packages/droid/skills/pdf/scripts/check_bounding_boxes_test.py +226 -0
- package/packages/droid/skills/pdf/scripts/check_fillable_fields.py +12 -0
- package/packages/droid/skills/pdf/scripts/convert_pdf_to_images.py +35 -0
- package/packages/droid/skills/pdf/scripts/create_validation_image.py +41 -0
- package/packages/droid/skills/pdf/scripts/extract_form_field_info.py +152 -0
- package/packages/droid/skills/pdf/scripts/fill_fillable_fields.py +114 -0
- package/packages/droid/skills/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
- package/packages/droid/skills/pptx/LICENSE.txt +30 -0
- package/packages/droid/skills/pptx/SKILL.md +484 -0
- package/packages/droid/skills/pptx/html2pptx.md +625 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/packages/droid/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/packages/droid/skills/pptx/ooxml/schemas/mce/mc.xsd +75 -0
- package/packages/droid/skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/packages/droid/skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/packages/droid/skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/packages/droid/skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/packages/droid/skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/packages/droid/skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/packages/droid/skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/packages/droid/skills/pptx/ooxml/scripts/pack.py +159 -0
- package/packages/droid/skills/pptx/ooxml/scripts/unpack.py +29 -0
- package/packages/droid/skills/pptx/ooxml/scripts/validate.py +69 -0
- package/packages/droid/skills/pptx/ooxml/scripts/validation/__init__.py +15 -0
- package/packages/droid/skills/pptx/ooxml/scripts/validation/base.py +951 -0
- package/packages/droid/skills/pptx/ooxml/scripts/validation/docx.py +274 -0
- package/packages/droid/skills/pptx/ooxml/scripts/validation/pptx.py +315 -0
- package/packages/droid/skills/pptx/ooxml/scripts/validation/redlining.py +279 -0
- package/packages/droid/skills/pptx/ooxml.md +427 -0
- package/packages/droid/skills/pptx/scripts/html2pptx.js +979 -0
- package/packages/droid/skills/pptx/scripts/inventory.py +1020 -0
- package/packages/droid/skills/pptx/scripts/rearrange.py +231 -0
- package/packages/droid/skills/pptx/scripts/replace.py +385 -0
- package/packages/droid/skills/pptx/scripts/thumbnail.py +450 -0
- package/packages/droid/skills/root-cause-tracing/SKILL.md +174 -0
- package/packages/droid/skills/root-cause-tracing/find-polluter.sh +63 -0
- package/packages/droid/skills/skill-creator/LICENSE.txt +202 -0
- package/packages/droid/skills/skill-creator/SKILL.md +209 -0
- package/packages/droid/skills/skill-creator/scripts/init_skill.py +303 -0
- package/packages/droid/skills/skill-creator/scripts/package_skill.py +110 -0
- package/packages/droid/skills/skill-creator/scripts/quick_validate.py +65 -0
- package/packages/droid/skills/slack-gif-creator/LICENSE.txt +202 -0
- package/packages/droid/skills/slack-gif-creator/SKILL.md +646 -0
- package/packages/droid/skills/slack-gif-creator/core/color_palettes.py +302 -0
- package/packages/droid/skills/slack-gif-creator/core/easing.py +230 -0
- package/packages/droid/skills/slack-gif-creator/core/frame_composer.py +469 -0
- package/packages/droid/skills/slack-gif-creator/core/gif_builder.py +246 -0
- package/packages/droid/skills/slack-gif-creator/core/typography.py +357 -0
- package/packages/droid/skills/slack-gif-creator/core/validators.py +264 -0
- package/packages/droid/skills/slack-gif-creator/core/visual_effects.py +494 -0
- package/packages/droid/skills/slack-gif-creator/requirements.txt +4 -0
- package/packages/droid/skills/slack-gif-creator/templates/bounce.py +106 -0
- package/packages/droid/skills/slack-gif-creator/templates/explode.py +331 -0
- package/packages/droid/skills/slack-gif-creator/templates/fade.py +329 -0
- package/packages/droid/skills/slack-gif-creator/templates/flip.py +291 -0
- package/packages/droid/skills/slack-gif-creator/templates/kaleidoscope.py +211 -0
- package/packages/droid/skills/slack-gif-creator/templates/morph.py +329 -0
- package/packages/droid/skills/slack-gif-creator/templates/move.py +293 -0
- package/packages/droid/skills/slack-gif-creator/templates/pulse.py +268 -0
- package/packages/droid/skills/slack-gif-creator/templates/shake.py +127 -0
- package/packages/droid/skills/slack-gif-creator/templates/slide.py +291 -0
- package/packages/droid/skills/slack-gif-creator/templates/spin.py +269 -0
- package/packages/droid/skills/slack-gif-creator/templates/wiggle.py +300 -0
- package/packages/droid/skills/slack-gif-creator/templates/zoom.py +312 -0
- package/packages/droid/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/packages/droid/skills/systematic-debugging/SKILL.md +295 -0
- package/packages/droid/skills/systematic-debugging/test-academic.md +14 -0
- package/packages/droid/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/packages/droid/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/packages/droid/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/packages/droid/skills/test-driven-development/SKILL.md +364 -0
- package/packages/droid/skills/testing-anti-patterns/SKILL.md +302 -0
- package/packages/droid/skills/theme-factory/LICENSE.txt +202 -0
- package/packages/droid/skills/theme-factory/SKILL.md +59 -0
- package/packages/droid/skills/theme-factory/theme-showcase.pdf +0 -0
- package/packages/droid/skills/theme-factory/themes/arctic-frost.md +19 -0
- package/packages/droid/skills/theme-factory/themes/botanical-garden.md +19 -0
- package/packages/droid/skills/theme-factory/themes/desert-rose.md +19 -0
- package/packages/droid/skills/theme-factory/themes/forest-canopy.md +19 -0
- package/packages/droid/skills/theme-factory/themes/golden-hour.md +19 -0
- package/packages/droid/skills/theme-factory/themes/midnight-galaxy.md +19 -0
- package/packages/droid/skills/theme-factory/themes/modern-minimalist.md +19 -0
- package/packages/droid/skills/theme-factory/themes/ocean-depths.md +19 -0
- package/packages/droid/skills/theme-factory/themes/sunset-boulevard.md +19 -0
- package/packages/droid/skills/theme-factory/themes/tech-innovation.md +19 -0
- package/packages/droid/skills/verification-before-completion/SKILL.md +139 -0
- package/packages/droid/skills/webapp-testing/LICENSE.txt +202 -0
- package/packages/droid/skills/webapp-testing/SKILL.md +96 -0
- package/packages/droid/skills/webapp-testing/examples/console_logging.py +35 -0
- package/packages/droid/skills/webapp-testing/examples/element_discovery.py +40 -0
- package/packages/droid/skills/webapp-testing/examples/static_html_automation.py +33 -0
- package/packages/droid/skills/webapp-testing/scripts/with_server.py +106 -0
- package/packages/droid/skills/xlsx/LICENSE.txt +30 -0
- package/packages/droid/skills/xlsx/SKILL.md +289 -0
- package/packages/droid/skills/xlsx/recalc.py +178 -0
- package/packages/droid/subagents-and-skills.md +79 -0
- package/packages/droid/variants.json +67 -0
- package/packages/opencode/AGENTS.md +379 -0
- package/packages/opencode/README.md +17 -0
- package/packages/opencode/agents/1-create-prd.md +56 -0
- package/packages/opencode/agents/2-generate-tasks.md +73 -0
- package/packages/opencode/agents/3-process-task-list.md +101 -0
- package/packages/opencode/agents/business-analyst.md +76 -0
- package/packages/opencode/agents/full-stack-dev.md +73 -0
- package/packages/opencode/agents/holistic-architect.md +91 -0
- package/packages/opencode/agents/master.md +55 -0
- package/packages/opencode/agents/orchestrator.md +103 -0
- package/packages/opencode/agents/product-manager.md +82 -0
- package/packages/opencode/agents/product-owner.md +97 -0
- package/packages/opencode/agents/qa-test-architect.md +72 -0
- package/packages/opencode/agents/scrum-master.md +64 -0
- package/packages/opencode/agents/ux-expert.md +74 -0
- package/packages/opencode/hooks/register-agents.js +128 -0
- package/packages/opencode/hooks/session-start.js +168 -0
- package/packages/opencode/opencode.jsonc +225 -0
- package/packages/opencode/resources/agent-teams.yaml +50 -0
- package/packages/opencode/resources/checklists.md +1724 -0
- package/packages/opencode/resources/data.md +1372 -0
- package/packages/opencode/resources/task-briefs.md +4428 -0
- package/packages/opencode/resources/templates.yaml +5810 -0
- package/packages/opencode/resources/workflows.yaml +1513 -0
- package/packages/opencode/skills/README.md +76 -0
- package/packages/opencode/skills/algorithmic-art/LICENSE.txt +202 -0
- package/packages/opencode/skills/algorithmic-art/SKILL.md +405 -0
- package/packages/opencode/skills/algorithmic-art/templates/generator_template.js +223 -0
- package/packages/opencode/skills/algorithmic-art/templates/viewer.html +599 -0
- package/packages/opencode/skills/artifacts-builder/LICENSE.txt +202 -0
- package/packages/opencode/skills/artifacts-builder/SKILL.md +74 -0
- package/packages/opencode/skills/artifacts-builder/scripts/bundle-artifact.sh +54 -0
- package/packages/opencode/skills/artifacts-builder/scripts/init-artifact.sh +322 -0
- package/packages/opencode/skills/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- package/packages/opencode/skills/brainstorming/SKILL.md +54 -0
- package/packages/opencode/skills/brand-guidelines/LICENSE.txt +202 -0
- package/packages/opencode/skills/brand-guidelines/SKILL.md +73 -0
- package/packages/opencode/skills/canvas-design/LICENSE.txt +202 -0
- package/packages/opencode/skills/canvas-design/SKILL.md +130 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/packages/opencode/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/packages/opencode/skills/code-review/SKILL.md +105 -0
- package/packages/opencode/skills/code-review/code-reviewer.md +146 -0
- package/packages/opencode/skills/condition-based-waiting/SKILL.md +120 -0
- package/packages/opencode/skills/condition-based-waiting/example.ts +158 -0
- package/packages/opencode/skills/docx/LICENSE.txt +30 -0
- package/packages/opencode/skills/docx/SKILL.md +197 -0
- package/packages/opencode/skills/docx/docx-js.md +350 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/packages/opencode/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/packages/opencode/skills/docx/ooxml/schemas/mce/mc.xsd +75 -0
- package/packages/opencode/skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/packages/opencode/skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/packages/opencode/skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/packages/opencode/skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/packages/opencode/skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/packages/opencode/skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/packages/opencode/skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/packages/opencode/skills/docx/ooxml/scripts/pack.py +159 -0
- package/packages/opencode/skills/docx/ooxml/scripts/unpack.py +29 -0
- package/packages/opencode/skills/docx/ooxml/scripts/validate.py +69 -0
- package/packages/opencode/skills/docx/ooxml/scripts/validation/__init__.py +15 -0
- package/packages/opencode/skills/docx/ooxml/scripts/validation/base.py +951 -0
- package/packages/opencode/skills/docx/ooxml/scripts/validation/docx.py +274 -0
- package/packages/opencode/skills/docx/ooxml/scripts/validation/pptx.py +315 -0
- package/packages/opencode/skills/docx/ooxml/scripts/validation/redlining.py +279 -0
- package/packages/opencode/skills/docx/ooxml.md +610 -0
- package/packages/opencode/skills/docx/scripts/__init__.py +1 -0
- package/packages/opencode/skills/docx/scripts/document.py +1276 -0
- package/packages/opencode/skills/docx/scripts/templates/comments.xml +3 -0
- package/packages/opencode/skills/docx/scripts/templates/commentsExtended.xml +3 -0
- package/packages/opencode/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/packages/opencode/skills/docx/scripts/templates/commentsIds.xml +3 -0
- package/packages/opencode/skills/docx/scripts/templates/people.xml +3 -0
- package/packages/opencode/skills/docx/scripts/utilities.py +374 -0
- package/packages/opencode/skills/internal-comms/LICENSE.txt +202 -0
- package/packages/opencode/skills/internal-comms/SKILL.md +32 -0
- package/packages/opencode/skills/internal-comms/examples/3p-updates.md +47 -0
- package/packages/opencode/skills/internal-comms/examples/company-newsletter.md +65 -0
- package/packages/opencode/skills/internal-comms/examples/faq-answers.md +30 -0
- package/packages/opencode/skills/internal-comms/examples/general-comms.md +16 -0
- package/packages/opencode/skills/mcp-builder/LICENSE.txt +202 -0
- package/packages/opencode/skills/mcp-builder/SKILL.md +328 -0
- package/packages/opencode/skills/mcp-builder/reference/evaluation.md +602 -0
- package/packages/opencode/skills/mcp-builder/reference/mcp_best_practices.md +915 -0
- package/packages/opencode/skills/mcp-builder/reference/node_mcp_server.md +916 -0
- package/packages/opencode/skills/mcp-builder/reference/python_mcp_server.md +752 -0
- package/packages/opencode/skills/mcp-builder/scripts/connections.py +151 -0
- package/packages/opencode/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/packages/opencode/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/packages/opencode/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/packages/opencode/skills/pdf/LICENSE.txt +30 -0
- package/packages/opencode/skills/pdf/SKILL.md +294 -0
- package/packages/opencode/skills/pdf/forms.md +205 -0
- package/packages/opencode/skills/pdf/reference.md +612 -0
- package/packages/opencode/skills/pdf/scripts/check_bounding_boxes.py +70 -0
- package/packages/opencode/skills/pdf/scripts/check_bounding_boxes_test.py +226 -0
- package/packages/opencode/skills/pdf/scripts/check_fillable_fields.py +12 -0
- package/packages/opencode/skills/pdf/scripts/convert_pdf_to_images.py +35 -0
- package/packages/opencode/skills/pdf/scripts/create_validation_image.py +41 -0
- package/packages/opencode/skills/pdf/scripts/extract_form_field_info.py +152 -0
- package/packages/opencode/skills/pdf/scripts/fill_fillable_fields.py +114 -0
- package/packages/opencode/skills/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
- package/packages/opencode/skills/pptx/LICENSE.txt +30 -0
- package/packages/opencode/skills/pptx/SKILL.md +484 -0
- package/packages/opencode/skills/pptx/html2pptx.md +625 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/mce/mc.xsd +75 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/packages/opencode/skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/packages/opencode/skills/pptx/ooxml/scripts/pack.py +159 -0
- package/packages/opencode/skills/pptx/ooxml/scripts/unpack.py +29 -0
- package/packages/opencode/skills/pptx/ooxml/scripts/validate.py +69 -0
- package/packages/opencode/skills/pptx/ooxml/scripts/validation/__init__.py +15 -0
- package/packages/opencode/skills/pptx/ooxml/scripts/validation/base.py +951 -0
- package/packages/opencode/skills/pptx/ooxml/scripts/validation/docx.py +274 -0
- package/packages/opencode/skills/pptx/ooxml/scripts/validation/pptx.py +315 -0
- package/packages/opencode/skills/pptx/ooxml/scripts/validation/redlining.py +279 -0
- package/packages/opencode/skills/pptx/ooxml.md +427 -0
- package/packages/opencode/skills/pptx/scripts/html2pptx.js +979 -0
- package/packages/opencode/skills/pptx/scripts/inventory.py +1020 -0
- package/packages/opencode/skills/pptx/scripts/rearrange.py +231 -0
- package/packages/opencode/skills/pptx/scripts/replace.py +385 -0
- package/packages/opencode/skills/pptx/scripts/thumbnail.py +450 -0
- package/packages/opencode/skills/root-cause-tracing/SKILL.md +174 -0
- package/packages/opencode/skills/root-cause-tracing/find-polluter.sh +63 -0
- package/packages/opencode/skills/skill-creator/LICENSE.txt +202 -0
- package/packages/opencode/skills/skill-creator/SKILL.md +209 -0
- package/packages/opencode/skills/skill-creator/scripts/init_skill.py +303 -0
- package/packages/opencode/skills/skill-creator/scripts/package_skill.py +110 -0
- package/packages/opencode/skills/skill-creator/scripts/quick_validate.py +65 -0
- package/packages/opencode/skills/slack-gif-creator/LICENSE.txt +202 -0
- package/packages/opencode/skills/slack-gif-creator/SKILL.md +646 -0
- package/packages/opencode/skills/slack-gif-creator/core/color_palettes.py +302 -0
- package/packages/opencode/skills/slack-gif-creator/core/easing.py +230 -0
- package/packages/opencode/skills/slack-gif-creator/core/frame_composer.py +469 -0
- package/packages/opencode/skills/slack-gif-creator/core/gif_builder.py +246 -0
- package/packages/opencode/skills/slack-gif-creator/core/typography.py +357 -0
- package/packages/opencode/skills/slack-gif-creator/core/validators.py +264 -0
- package/packages/opencode/skills/slack-gif-creator/core/visual_effects.py +494 -0
- package/packages/opencode/skills/slack-gif-creator/requirements.txt +4 -0
- package/packages/opencode/skills/slack-gif-creator/templates/bounce.py +106 -0
- package/packages/opencode/skills/slack-gif-creator/templates/explode.py +331 -0
- package/packages/opencode/skills/slack-gif-creator/templates/fade.py +329 -0
- package/packages/opencode/skills/slack-gif-creator/templates/flip.py +291 -0
- package/packages/opencode/skills/slack-gif-creator/templates/kaleidoscope.py +211 -0
- package/packages/opencode/skills/slack-gif-creator/templates/morph.py +329 -0
- package/packages/opencode/skills/slack-gif-creator/templates/move.py +293 -0
- package/packages/opencode/skills/slack-gif-creator/templates/pulse.py +268 -0
- package/packages/opencode/skills/slack-gif-creator/templates/shake.py +127 -0
- package/packages/opencode/skills/slack-gif-creator/templates/slide.py +291 -0
- package/packages/opencode/skills/slack-gif-creator/templates/spin.py +269 -0
- package/packages/opencode/skills/slack-gif-creator/templates/wiggle.py +300 -0
- package/packages/opencode/skills/slack-gif-creator/templates/zoom.py +312 -0
- package/packages/opencode/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/packages/opencode/skills/systematic-debugging/SKILL.md +295 -0
- package/packages/opencode/skills/systematic-debugging/test-academic.md +14 -0
- package/packages/opencode/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/packages/opencode/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/packages/opencode/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/packages/opencode/skills/test-driven-development/SKILL.md +364 -0
- package/packages/opencode/skills/testing-anti-patterns/SKILL.md +302 -0
- package/packages/opencode/skills/theme-factory/LICENSE.txt +202 -0
- package/packages/opencode/skills/theme-factory/SKILL.md +59 -0
- package/packages/opencode/skills/theme-factory/theme-showcase.pdf +0 -0
- package/packages/opencode/skills/theme-factory/themes/arctic-frost.md +19 -0
- package/packages/opencode/skills/theme-factory/themes/botanical-garden.md +19 -0
- package/packages/opencode/skills/theme-factory/themes/desert-rose.md +19 -0
- package/packages/opencode/skills/theme-factory/themes/forest-canopy.md +19 -0
- package/packages/opencode/skills/theme-factory/themes/golden-hour.md +19 -0
- package/packages/opencode/skills/theme-factory/themes/midnight-galaxy.md +19 -0
- package/packages/opencode/skills/theme-factory/themes/modern-minimalist.md +19 -0
- package/packages/opencode/skills/theme-factory/themes/ocean-depths.md +19 -0
- package/packages/opencode/skills/theme-factory/themes/sunset-boulevard.md +19 -0
- package/packages/opencode/skills/theme-factory/themes/tech-innovation.md +19 -0
- package/packages/opencode/skills/verification-before-completion/SKILL.md +139 -0
- package/packages/opencode/skills/webapp-testing/LICENSE.txt +202 -0
- package/packages/opencode/skills/webapp-testing/SKILL.md +96 -0
- package/packages/opencode/skills/webapp-testing/examples/console_logging.py +35 -0
- package/packages/opencode/skills/webapp-testing/examples/element_discovery.py +40 -0
- package/packages/opencode/skills/webapp-testing/examples/static_html_automation.py +33 -0
- package/packages/opencode/skills/webapp-testing/scripts/with_server.py +106 -0
- package/packages/opencode/skills/xlsx/LICENSE.txt +30 -0
- package/packages/opencode/skills/xlsx/SKILL.md +289 -0
- package/packages/opencode/skills/xlsx/recalc.py +178 -0
- package/packages/opencode/skills-backup/README.md +76 -0
- package/packages/opencode/skills-backup/algorithmic-art.md +159 -0
- package/packages/opencode/skills-backup/artifacts-builder.md +285 -0
- package/packages/opencode/skills-backup/brainstorming.md +49 -0
- package/packages/opencode/skills-backup/brand-guidelines.md +123 -0
- package/packages/opencode/skills-backup/canvas-design.md +155 -0
- package/packages/opencode/skills-backup/code-review.md +92 -0
- package/packages/opencode/skills-backup/condition-based-waiting.md +133 -0
- package/packages/opencode/skills-backup/docx.md +255 -0
- package/packages/opencode/skills-backup/internal-comms.md +142 -0
- package/packages/opencode/skills-backup/mcp-builder.md +282 -0
- package/packages/opencode/skills-backup/pdf.md +194 -0
- package/packages/opencode/skills-backup/pptx.md +272 -0
- package/packages/opencode/skills-backup/root-cause-tracing.md +211 -0
- package/packages/opencode/skills-backup/skill-creator.md +196 -0
- package/packages/opencode/skills-backup/slack-gif-creator.md +340 -0
- package/packages/opencode/skills-backup/systematic-debugging.md +215 -0
- package/packages/opencode/skills-backup/test-driven-development.md +231 -0
- package/packages/opencode/skills-backup/testing-anti-patterns.md +248 -0
- package/packages/opencode/skills-backup/theme-factory.md +146 -0
- package/packages/opencode/skills-backup/verification-before-completion.md +151 -0
- package/packages/opencode/skills-backup/webapp-testing.md +275 -0
- package/packages/opencode/skills-backup/xlsx.md +254 -0
- package/packages/opencode/subagents-and-skills.md +79 -0
- package/packages/opencode/variants.json +67 -0
- package/scripts/validate-all-packages.js +255 -0
- package/tests/VARIANT_TESTING_REPORT.md +362 -0
- package/tests/fixtures/README.md +311 -0
- package/tests/fixtures/helpers/test-helpers.js +319 -0
- package/tests/fixtures/manifests/manifest-lite.json +32 -0
- package/tests/fixtures/manifests/manifest-pro.json +65 -0
- package/tests/fixtures/manifests/manifest-standard.json +51 -0
- package/tests/fixtures/packages/mock-package/agents/test-agent.md +11 -0
- package/tests/fixtures/packages/mock-package/hooks/test-hook.js +16 -0
- package/tests/fixtures/packages/mock-package/resources/test-resource.txt +4 -0
- package/tests/fixtures/packages/mock-package/skills/test-skill/skill.md +10 -0
- package/tests/fixtures/packages/mock-package/variants.json +28 -0
- package/tests/fixtures/variants/variants-corrupted.json +11 -0
- package/tests/fixtures/variants/variants-lite.json +42 -0
- package/tests/fixtures/variants/variants-minimal.json +12 -0
- package/tests/fixtures/variants/variants-pro.json +75 -0
- package/tests/fixtures/variants/variants-standard.json +61 -0
- package/tests/installer/cli.test.js +751 -0
- package/tests/installer/cross-platform-testing.test.js +530 -0
- package/tests/installer/demo-cli-args.js +241 -0
- package/tests/installer/demo-error-handling.js +127 -0
- package/tests/installer/demo-silent-mode.js +329 -0
- package/tests/installer/demo-summary-display.js +140 -0
- package/tests/installer/demo-tool-selection.js +129 -0
- package/tests/installer/error-scenario-testing.test.js +513 -0
- package/tests/installer/installation-engine.test.js +1540 -0
- package/tests/installer/integration.test.js +1039 -0
- package/tests/installer/multi-tool-testing.test.js +482 -0
- package/tests/installer/package-manager.test.js +1025 -0
- package/tests/installer/path-handling-testing.test.js +585 -0
- package/tests/installer/state-manager.test.js +499 -0
- package/tests/installer/test-cli-args.js +329 -0
- package/tests/installer/test-error-handling.js +387 -0
- package/tests/installer/test-install-method.js +305 -0
- package/tests/installer/test-path-confirmation.js +318 -0
- package/tests/installer/test-silent-mode.js +505 -0
- package/tests/installer/test-summary-display.js +255 -0
- package/tests/installer/test-tool-selection-ui.js +152 -0
- package/tests/installer/upgrade-variant.test.js +757 -0
- package/tests/installer/variant-testing.test.js +452 -0
- package/tests/run-all-tests.js +359 -0
- package/tests/test-progress-real-installation.js +126 -0
- package/tests/test-variants-parsing.js +475 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-lite-test/agents/master.md +55 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-lite-test/agents/orchestrator.md +103 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-lite-test/agents/scrum-master.md +64 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-lite-test/hooks/register-agents.js +123 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-lite-test/hooks/session-start.js +159 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-lite-test/manifest.json +63 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-lite-test/resources/agent-teams.yaml +50 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-lite-test/resources/checklists.md +1724 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-lite-test/resources/data.md +1372 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-lite-test/resources/task-briefs.md +4428 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-lite-test/resources/templates.yaml +5810 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-lite-test/resources/workflows.yaml +1513 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/agents/1-create-prd.md +56 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/agents/2-generate-tasks.md +73 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/agents/3-process-task-list.md +101 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/agents/business-analyst.md +76 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/agents/full-stack-dev.md +80 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/agents/holistic-architect.md +91 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/agents/master.md +55 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/agents/orchestrator.md +103 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/agents/product-manager.md +82 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/agents/product-owner.md +97 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/agents/qa-test-architect.md +72 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/agents/scrum-master.md +64 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/agents/ux-expert.md +74 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/hooks/register-agents.js +123 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/hooks/session-start.js +159 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/manifest.json +82 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/resources/agent-teams.yaml +50 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/resources/checklists.md +1724 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/resources/data.md +1372 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/resources/task-briefs.md +4428 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/resources/templates.yaml +5810 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/resources/workflows.yaml +1513 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/brand-guidelines/LICENSE.txt +202 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/brand-guidelines/SKILL.md +73 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/LICENSE.txt +202 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/SKILL.md +130 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/LICENSE.txt +30 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/SKILL.md +197 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/docx-js.md +350 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/mce/mc.xsd +75 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/scripts/pack.py +159 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/scripts/unpack.py +29 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/scripts/validate.py +69 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/scripts/validation/__init__.py +15 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/scripts/validation/base.py +951 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/scripts/validation/docx.py +274 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/scripts/validation/pptx.py +315 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml/scripts/validation/redlining.py +279 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/ooxml.md +610 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/scripts/__init__.py +1 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/scripts/document.py +1276 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/scripts/templates/comments.xml +3 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/scripts/templates/commentsExtended.xml +3 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/scripts/templates/commentsIds.xml +3 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/scripts/templates/people.xml +3 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/docx/scripts/utilities.py +374 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/internal-comms/LICENSE.txt +202 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/internal-comms/SKILL.md +32 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/internal-comms/examples/3p-updates.md +47 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/internal-comms/examples/company-newsletter.md +65 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/internal-comms/examples/faq-answers.md +30 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/internal-comms/examples/general-comms.md +16 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pdf/LICENSE.txt +30 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pdf/SKILL.md +294 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pdf/forms.md +205 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pdf/reference.md +612 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pdf/scripts/check_bounding_boxes.py +70 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pdf/scripts/check_bounding_boxes_test.py +226 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pdf/scripts/check_fillable_fields.py +12 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pdf/scripts/convert_pdf_to_images.py +35 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pdf/scripts/create_validation_image.py +41 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pdf/scripts/extract_form_field_info.py +152 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pdf/scripts/fill_fillable_fields.py +114 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/LICENSE.txt +30 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/SKILL.md +484 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/html2pptx.md +625 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/mce/mc.xsd +75 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/scripts/pack.py +159 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/scripts/unpack.py +29 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/scripts/validate.py +69 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/scripts/validation/__init__.py +15 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/scripts/validation/base.py +951 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/scripts/validation/docx.py +274 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/scripts/validation/pptx.py +315 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml/scripts/validation/redlining.py +279 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/ooxml.md +427 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/scripts/html2pptx.js +979 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/scripts/inventory.py +1020 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/scripts/rearrange.py +231 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/scripts/replace.py +385 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/pptx/scripts/thumbnail.py +450 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/theme-factory/LICENSE.txt +202 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/theme-factory/SKILL.md +59 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/theme-factory/theme-showcase.pdf +0 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/theme-factory/themes/arctic-frost.md +19 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/theme-factory/themes/botanical-garden.md +19 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/theme-factory/themes/desert-rose.md +19 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/theme-factory/themes/forest-canopy.md +19 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/theme-factory/themes/golden-hour.md +19 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/theme-factory/themes/midnight-galaxy.md +19 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/theme-factory/themes/modern-minimalist.md +19 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/theme-factory/themes/ocean-depths.md +19 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/theme-factory/themes/sunset-boulevard.md +19 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/theme-factory/themes/tech-innovation.md +19 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/xlsx/LICENSE.txt +30 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/xlsx/SKILL.md +289 -0
- package/tests/tmp/test-cli-install-1762170060156/claude-standard-test/skills/xlsx/recalc.py +178 -0
- package/tests/tmp/test-cli-install-1762170060156/multi-claude/agents/master.md +55 -0
- package/tests/tmp/test-cli-install-1762170060156/multi-claude/agents/orchestrator.md +103 -0
- package/tests/tmp/test-cli-install-1762170060156/multi-claude/agents/scrum-master.md +64 -0
- package/tests/tmp/test-cli-install-1762170060156/multi-claude/hooks/register-agents.js +123 -0
- package/tests/tmp/test-cli-install-1762170060156/multi-claude/hooks/session-start.js +159 -0
- package/tests/tmp/test-cli-install-1762170060156/multi-claude/manifest.json +63 -0
- package/tests/tmp/test-cli-install-1762170060156/multi-claude/resources/agent-teams.yaml +50 -0
- package/tests/tmp/test-cli-install-1762170060156/multi-claude/resources/checklists.md +1724 -0
- package/tests/tmp/test-cli-install-1762170060156/multi-claude/resources/data.md +1372 -0
- package/tests/tmp/test-cli-install-1762170060156/multi-claude/resources/task-briefs.md +4428 -0
- package/tests/tmp/test-cli-install-1762170060156/multi-claude/resources/templates.yaml +5810 -0
- package/tests/tmp/test-cli-install-1762170060156/multi-claude/resources/workflows.yaml +1513 -0
- package/tests/tmp/test-cli-install-1762170060156/rollback-test-claude/agents/master.md +55 -0
- package/tests/tmp/test-cli-install-1762170060156/rollback-test-claude/agents/orchestrator.md +103 -0
- package/tests/tmp/test-cli-install-1762170060156/rollback-test-claude/agents/scrum-master.md +64 -0
- package/tests/tmp/test-cli-install-1762170060156/rollback-test-claude/hooks/register-agents.js +123 -0
- package/tests/tmp/test-cli-install-1762170060156/rollback-test-claude/hooks/session-start.js +159 -0
- package/tests/tmp/test-cli-install-1762170060156/rollback-test-claude/manifest.json +63 -0
- package/tests/tmp/test-cli-install-1762170060156/rollback-test-claude/resources/agent-teams.yaml +50 -0
- package/tests/tmp/test-cli-install-1762170060156/rollback-test-claude/resources/checklists.md +1724 -0
- package/tests/tmp/test-cli-install-1762170060156/rollback-test-claude/resources/data.md +1372 -0
- package/tests/tmp/test-cli-install-1762170060156/rollback-test-claude/resources/task-briefs.md +4428 -0
- package/tests/tmp/test-cli-install-1762170060156/rollback-test-claude/resources/templates.yaml +5810 -0
- package/tests/tmp/test-cli-install-1762170060156/rollback-test-claude/resources/workflows.yaml +1513 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-lite-test/agents/master.md +55 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-lite-test/agents/orchestrator.md +103 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-lite-test/agents/scrum-master.md +64 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-lite-test/hooks/register-agents.js +123 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-lite-test/hooks/session-start.js +159 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-lite-test/manifest.json +63 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-lite-test/resources/agent-teams.yaml +50 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-lite-test/resources/checklists.md +1724 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-lite-test/resources/data.md +1372 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-lite-test/resources/task-briefs.md +4428 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-lite-test/resources/templates.yaml +5810 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-lite-test/resources/workflows.yaml +1513 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/agents/1-create-prd.md +56 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/agents/2-generate-tasks.md +73 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/agents/3-process-task-list.md +101 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/agents/business-analyst.md +76 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/agents/full-stack-dev.md +80 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/agents/holistic-architect.md +91 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/agents/master.md +55 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/agents/orchestrator.md +103 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/agents/product-manager.md +82 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/agents/product-owner.md +97 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/agents/qa-test-architect.md +72 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/agents/scrum-master.md +64 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/agents/ux-expert.md +74 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/hooks/register-agents.js +123 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/hooks/session-start.js +159 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/manifest.json +82 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/resources/agent-teams.yaml +50 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/resources/checklists.md +1724 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/resources/data.md +1372 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/resources/task-briefs.md +4428 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/resources/templates.yaml +5810 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/resources/workflows.yaml +1513 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/brand-guidelines/LICENSE.txt +202 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/brand-guidelines/SKILL.md +73 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/LICENSE.txt +202 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/SKILL.md +130 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/LICENSE.txt +30 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/SKILL.md +197 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/docx-js.md +350 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/mce/mc.xsd +75 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/scripts/pack.py +159 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/scripts/unpack.py +29 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/scripts/validate.py +69 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/scripts/validation/__init__.py +15 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/scripts/validation/base.py +951 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/scripts/validation/docx.py +274 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/scripts/validation/pptx.py +315 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml/scripts/validation/redlining.py +279 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/ooxml.md +610 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/scripts/__init__.py +1 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/scripts/document.py +1276 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/scripts/templates/comments.xml +3 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/scripts/templates/commentsExtended.xml +3 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/scripts/templates/commentsIds.xml +3 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/scripts/templates/people.xml +3 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/docx/scripts/utilities.py +374 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/internal-comms/LICENSE.txt +202 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/internal-comms/SKILL.md +32 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/internal-comms/examples/3p-updates.md +47 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/internal-comms/examples/company-newsletter.md +65 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/internal-comms/examples/faq-answers.md +30 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/internal-comms/examples/general-comms.md +16 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pdf/LICENSE.txt +30 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pdf/SKILL.md +294 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pdf/forms.md +205 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pdf/reference.md +612 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pdf/scripts/check_bounding_boxes.py +70 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pdf/scripts/check_bounding_boxes_test.py +226 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pdf/scripts/check_fillable_fields.py +12 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pdf/scripts/convert_pdf_to_images.py +35 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pdf/scripts/create_validation_image.py +41 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pdf/scripts/extract_form_field_info.py +152 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pdf/scripts/fill_fillable_fields.py +114 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/LICENSE.txt +30 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/SKILL.md +484 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/html2pptx.md +625 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/mce/mc.xsd +75 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/scripts/pack.py +159 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/scripts/unpack.py +29 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/scripts/validate.py +69 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/scripts/validation/__init__.py +15 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/scripts/validation/base.py +951 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/scripts/validation/docx.py +274 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/scripts/validation/pptx.py +315 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml/scripts/validation/redlining.py +279 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/ooxml.md +427 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/scripts/html2pptx.js +979 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/scripts/inventory.py +1020 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/scripts/rearrange.py +231 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/scripts/replace.py +385 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/pptx/scripts/thumbnail.py +450 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/theme-factory/LICENSE.txt +202 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/theme-factory/SKILL.md +59 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/theme-factory/theme-showcase.pdf +0 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/theme-factory/themes/arctic-frost.md +19 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/theme-factory/themes/botanical-garden.md +19 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/theme-factory/themes/desert-rose.md +19 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/theme-factory/themes/forest-canopy.md +19 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/theme-factory/themes/golden-hour.md +19 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/theme-factory/themes/midnight-galaxy.md +19 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/theme-factory/themes/modern-minimalist.md +19 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/theme-factory/themes/ocean-depths.md +19 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/theme-factory/themes/sunset-boulevard.md +19 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/theme-factory/themes/tech-innovation.md +19 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/xlsx/LICENSE.txt +30 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/xlsx/SKILL.md +289 -0
- package/tests/tmp/test-cli-install-1762170095553/claude-standard-test/skills/xlsx/recalc.py +178 -0
- package/tests/tmp/test-cli-install-1762170095553/multi-claude/agents/master.md +55 -0
- package/tests/tmp/test-cli-install-1762170095553/multi-claude/agents/orchestrator.md +103 -0
- package/tests/tmp/test-cli-install-1762170095553/multi-claude/agents/scrum-master.md +64 -0
- package/tests/tmp/test-cli-install-1762170095553/multi-claude/hooks/register-agents.js +123 -0
- package/tests/tmp/test-cli-install-1762170095553/multi-claude/hooks/session-start.js +159 -0
- package/tests/tmp/test-cli-install-1762170095553/multi-claude/manifest.json +63 -0
- package/tests/tmp/test-cli-install-1762170095553/multi-claude/resources/agent-teams.yaml +50 -0
- package/tests/tmp/test-cli-install-1762170095553/multi-claude/resources/checklists.md +1724 -0
- package/tests/tmp/test-cli-install-1762170095553/multi-claude/resources/data.md +1372 -0
- package/tests/tmp/test-cli-install-1762170095553/multi-claude/resources/task-briefs.md +4428 -0
- package/tests/tmp/test-cli-install-1762170095553/multi-claude/resources/templates.yaml +5810 -0
- package/tests/tmp/test-cli-install-1762170095553/multi-claude/resources/workflows.yaml +1513 -0
- package/tests/tmp/test-cli-install-1762170095553/rollback-test-claude/agents/master.md +55 -0
- package/tests/tmp/test-cli-install-1762170095553/rollback-test-claude/agents/orchestrator.md +103 -0
- package/tests/tmp/test-cli-install-1762170095553/rollback-test-claude/agents/scrum-master.md +64 -0
- package/tests/tmp/test-cli-install-1762170095553/rollback-test-claude/hooks/register-agents.js +123 -0
- package/tests/tmp/test-cli-install-1762170095553/rollback-test-claude/hooks/session-start.js +159 -0
- package/tests/tmp/test-cli-install-1762170095553/rollback-test-claude/manifest.json +63 -0
- package/tests/tmp/test-cli-install-1762170095553/rollback-test-claude/resources/agent-teams.yaml +50 -0
- package/tests/tmp/test-cli-install-1762170095553/rollback-test-claude/resources/checklists.md +1724 -0
- package/tests/tmp/test-cli-install-1762170095553/rollback-test-claude/resources/data.md +1372 -0
- package/tests/tmp/test-cli-install-1762170095553/rollback-test-claude/resources/task-briefs.md +4428 -0
- package/tests/tmp/test-cli-install-1762170095553/rollback-test-claude/resources/templates.yaml +5810 -0
- package/tests/tmp/test-cli-install-1762170095553/rollback-test-claude/resources/workflows.yaml +1513 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-lite/agents/master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-lite/agents/orchestrator.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-lite/agents/scrum-master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-lite/hooks/session-start.js +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-lite/manifest.json +45 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-lite/resources/workflows.yaml +2 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-agents-test/agents/master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-agents-test/agents/orchestrator.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-agents-test/agents/scrum-master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-agents-test/hooks/session-start.js +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-agents-test/manifest.json +45 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-agents-test/resources/workflows.yaml +2 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-compat-test/agents/master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-compat-test/agents/orchestrator.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-compat-test/agents/scrum-master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-compat-test/hooks/session-start.js +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-compat-test/manifest.json +45 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-compat-test/resources/workflows.yaml +2 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-counts-test/agents/analyst.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-counts-test/agents/designer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-counts-test/agents/developer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-counts-test/agents/documenter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-counts-test/agents/executor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-counts-test/agents/master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-counts-test/agents/monitor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-counts-test/agents/orchestrator.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-counts-test/agents/planner.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-counts-test/agents/reporter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-counts-test/agents/reviewer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-counts-test/agents/scrum-master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-counts-test/agents/tester.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-counts-test/hooks/session-start.js +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-counts-test/manifest.json +58 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-counts-test/resources/workflows.yaml +2 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-counts-test/skills/docx/docx.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-counts-test/skills/pdf/pdf.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-lite/agents/master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-lite/agents/orchestrator.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-lite/agents/scrum-master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-lite/hooks/session-start.js +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-lite/manifest.json +45 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-lite/resources/workflows.yaml +2 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-metadata-test/agents/analyst.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-metadata-test/agents/designer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-metadata-test/agents/developer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-metadata-test/agents/documenter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-metadata-test/agents/executor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-metadata-test/agents/master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-metadata-test/agents/monitor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-metadata-test/agents/orchestrator.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-metadata-test/agents/planner.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-metadata-test/agents/reporter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-metadata-test/agents/reviewer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-metadata-test/agents/scrum-master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-metadata-test/agents/tester.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-metadata-test/hooks/session-start.js +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-metadata-test/manifest.json +58 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-metadata-test/resources/workflows.yaml +2 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-metadata-test/skills/docx/docx.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-metadata-test/skills/pdf/pdf.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-pro/agents/analyst.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-pro/agents/designer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-pro/agents/developer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-pro/agents/documenter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-pro/agents/executor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-pro/agents/master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-pro/agents/monitor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-pro/agents/orchestrator.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-pro/agents/planner.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-pro/agents/reporter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-pro/agents/reviewer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-pro/agents/scrum-master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-pro/agents/tester.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-pro/hooks/session-start.js +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-pro/manifest.json +58 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-pro/resources/workflows.yaml +2 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-pro/skills/docx/docx.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-pro/skills/pdf/pdf.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-resources-hooks-test/agents/analyst.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-resources-hooks-test/agents/designer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-resources-hooks-test/agents/developer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-resources-hooks-test/agents/documenter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-resources-hooks-test/agents/executor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-resources-hooks-test/agents/master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-resources-hooks-test/agents/monitor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-resources-hooks-test/agents/orchestrator.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-resources-hooks-test/agents/planner.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-resources-hooks-test/agents/reporter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-resources-hooks-test/agents/reviewer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-resources-hooks-test/agents/scrum-master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-resources-hooks-test/agents/tester.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-resources-hooks-test/hooks/session-start.js +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-resources-hooks-test/manifest.json +58 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-resources-hooks-test/resources/workflows.yaml +2 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-resources-hooks-test/skills/docx/docx.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-resources-hooks-test/skills/pdf/pdf.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-skills-test/agents/analyst.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-skills-test/agents/designer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-skills-test/agents/developer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-skills-test/agents/documenter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-skills-test/agents/executor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-skills-test/agents/master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-skills-test/agents/monitor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-skills-test/agents/orchestrator.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-skills-test/agents/planner.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-skills-test/agents/reporter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-skills-test/agents/reviewer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-skills-test/agents/scrum-master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-skills-test/agents/tester.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-skills-test/hooks/session-start.js +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-skills-test/manifest.json +58 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-skills-test/resources/workflows.yaml +2 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-skills-test/skills/docx/docx.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-skills-test/skills/pdf/pdf.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-test/agents/master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-test/agents/orchestrator.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-test/agents/scrum-master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-test/hooks/session-start.js +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-test/manifest.json +45 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-manifest-test/resources/workflows.yaml +2 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-no-callback-test/agents/master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-no-callback-test/agents/orchestrator.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-no-callback-test/agents/scrum-master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-no-callback-test/hooks/session-start.js +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-no-callback-test/manifest.json +45 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-no-callback-test/resources/workflows.yaml +2 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-pro/agents/analyst.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-pro/agents/designer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-pro/agents/developer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-pro/agents/documenter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-pro/agents/executor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-pro/agents/master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-pro/agents/monitor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-pro/agents/orchestrator.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-pro/agents/planner.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-pro/agents/reporter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-pro/agents/reviewer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-pro/agents/scrum-master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-pro/agents/tester.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-pro/hooks/session-start.js +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-pro/manifest.json +58 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-pro/resources/workflows.yaml +2 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-pro/skills/docx/docx.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-pro/skills/pdf/pdf.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-bytes-test/agents/analyst.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-bytes-test/agents/designer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-bytes-test/agents/developer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-bytes-test/agents/documenter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-bytes-test/agents/executor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-bytes-test/agents/master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-bytes-test/agents/monitor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-bytes-test/agents/orchestrator.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-bytes-test/agents/planner.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-bytes-test/agents/reporter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-bytes-test/agents/reviewer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-bytes-test/agents/scrum-master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-bytes-test/agents/tester.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-bytes-test/hooks/session-start.js +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-bytes-test/manifest.json +58 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-bytes-test/resources/workflows.yaml +2 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-bytes-test/skills/docx/docx.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-bytes-test/skills/pdf/pdf.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-info-test/agents/master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-info-test/agents/orchestrator.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-info-test/agents/scrum-master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-info-test/hooks/session-start.js +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-info-test/manifest.json +45 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-info-test/resources/workflows.yaml +2 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-percentage-test/agents/master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-percentage-test/agents/orchestrator.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-percentage-test/agents/scrum-master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-percentage-test/hooks/session-start.js +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-percentage-test/manifest.json +45 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-percentage-test/resources/workflows.yaml +2 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-pro-test/agents/analyst.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-pro-test/agents/designer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-pro-test/agents/developer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-pro-test/agents/documenter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-pro-test/agents/executor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-pro-test/agents/master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-pro-test/agents/monitor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-pro-test/agents/orchestrator.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-pro-test/agents/planner.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-pro-test/agents/reporter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-pro-test/agents/reviewer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-pro-test/agents/scrum-master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-pro-test/agents/tester.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-pro-test/hooks/session-start.js +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-pro-test/manifest.json +58 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-pro-test/resources/workflows.yaml +2 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-pro-test/skills/docx/docx.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-pro-test/skills/pdf/pdf.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-sequential-test/agents/master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-sequential-test/agents/orchestrator.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-sequential-test/agents/scrum-master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-sequential-test/hooks/session-start.js +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-sequential-test/manifest.json +45 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-sequential-test/resources/workflows.yaml +2 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-skills-test/agents/analyst.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-skills-test/agents/designer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-skills-test/agents/developer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-skills-test/agents/documenter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-skills-test/agents/executor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-skills-test/agents/master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-skills-test/agents/monitor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-skills-test/agents/orchestrator.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-skills-test/agents/planner.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-skills-test/agents/reporter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-skills-test/agents/reviewer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-skills-test/agents/scrum-master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-skills-test/agents/tester.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-skills-test/hooks/session-start.js +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-skills-test/manifest.json +58 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-skills-test/resources/workflows.yaml +2 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-skills-test/skills/docx/docx.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-skills-test/skills/pdf/pdf.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-test/agents/analyst.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-test/agents/designer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-test/agents/developer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-test/agents/documenter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-test/agents/executor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-test/agents/master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-test/agents/monitor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-test/agents/orchestrator.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-test/agents/planner.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-test/agents/reporter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-test/agents/reviewer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-test/agents/scrum-master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-test/agents/tester.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-test/hooks/session-start.js +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-test/manifest.json +58 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-test/resources/workflows.yaml +2 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-test/skills/docx/docx.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-progress-test/skills/pdf/pdf.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-rollback-granular-test/my-custom-file.txt +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-rollback-preserve-test/agents/analyst.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-rollback-preserve-test/agents/designer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-rollback-preserve-test/agents/developer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-rollback-preserve-test/agents/documenter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-rollback-preserve-test/agents/executor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-rollback-preserve-test/agents/master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-rollback-preserve-test/agents/monitor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-rollback-preserve-test/agents/my-custom-agent.md +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-rollback-preserve-test/agents/orchestrator.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-rollback-preserve-test/agents/planner.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-rollback-preserve-test/agents/reporter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-rollback-preserve-test/agents/reviewer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-rollback-preserve-test/agents/scrum-master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-rollback-preserve-test/agents/tester.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-rollback-preserve-test/hooks/session-start.js +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-rollback-preserve-test/resources/workflows.yaml +2 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-rollback-preserve-test/skills/custom-skill/skill.md +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-rollback-preserve-test/skills/docx/docx.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-rollback-preserve-test/skills/pdf/pdf.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-rollback-tracking-test/agents/master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-rollback-tracking-test/agents/orchestrator.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-rollback-tracking-test/agents/scrum-master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-rollback-tracking-test/hooks/session-start.js +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-rollback-tracking-test/manifest.json +45 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-rollback-tracking-test/resources/workflows.yaml +2 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-skills-test/agents/analyst.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-skills-test/agents/designer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-skills-test/agents/developer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-skills-test/agents/documenter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-skills-test/agents/executor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-skills-test/agents/master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-skills-test/agents/monitor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-skills-test/agents/orchestrator.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-skills-test/agents/planner.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-skills-test/agents/reporter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-skills-test/agents/reviewer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-skills-test/agents/scrum-master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-skills-test/agents/tester.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-skills-test/hooks/session-start.js +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-skills-test/manifest.json +58 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-skills-test/resources/workflows.yaml +2 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-skills-test/skills/docx/docx.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-skills-test/skills/pdf/pdf.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-standard/agents/analyst.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-standard/agents/designer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-standard/agents/developer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-standard/agents/documenter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-standard/agents/executor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-standard/agents/master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-standard/agents/monitor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-standard/agents/orchestrator.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-standard/agents/planner.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-standard/agents/reporter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-standard/agents/reviewer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-standard/agents/scrum-master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-standard/agents/tester.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-standard/hooks/session-start.js +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-standard/manifest.json +58 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-standard/resources/workflows.yaml +2 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-standard/skills/docx/docx.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/install-standard/skills/pdf/pdf.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/packages/testool/agents/analyst.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/packages/testool/agents/designer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/packages/testool/agents/developer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/packages/testool/agents/documenter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/packages/testool/agents/executor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/packages/testool/agents/master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/packages/testool/agents/monitor.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/packages/testool/agents/orchestrator.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/packages/testool/agents/planner.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/packages/testool/agents/reporter.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/packages/testool/agents/reviewer.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/packages/testool/agents/scrum-master.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/packages/testool/agents/tester.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/packages/testool/hooks/session-start.js +1 -0
- package/tests/tmp/test-installation-engine-1762169302975/packages/testool/resources/workflows.yaml +2 -0
- package/tests/tmp/test-installation-engine-1762169302975/packages/testool/skills/docx/docx.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/packages/testool/skills/pdf/pdf.md +3 -0
- package/tests/tmp/test-installation-engine-1762169302975/packages/testool/variants.json +47 -0
- package/tests/tmp/test-installation-engine-1762169302975/tools/testool/manifest-template.json +6 -0
- package/tests/tmp/tests/tmp/test-installation-engine-1762152629295/packages/testool/agents/analyst.md +3 -0
- package/tests/tmp/tests/tmp/test-installation-engine-1762152629295/packages/testool/agents/designer.md +3 -0
- package/tests/tmp/tests/tmp/test-installation-engine-1762152629295/packages/testool/agents/developer.md +3 -0
- package/tests/tmp/tests/tmp/test-installation-engine-1762152629295/packages/testool/agents/documenter.md +3 -0
- package/tests/tmp/tests/tmp/test-installation-engine-1762152629295/packages/testool/agents/executor.md +3 -0
- package/tests/tmp/tests/tmp/test-installation-engine-1762152629295/packages/testool/agents/master.md +3 -0
- package/tests/tmp/tests/tmp/test-installation-engine-1762152629295/packages/testool/agents/monitor.md +3 -0
- package/tests/tmp/tests/tmp/test-installation-engine-1762152629295/packages/testool/agents/orchestrator.md +3 -0
- package/tests/tmp/tests/tmp/test-installation-engine-1762152629295/packages/testool/agents/planner.md +3 -0
- package/tests/tmp/tests/tmp/test-installation-engine-1762152629295/packages/testool/agents/reporter.md +3 -0
- package/tests/tmp/tests/tmp/test-installation-engine-1762152629295/packages/testool/agents/reviewer.md +3 -0
- package/tests/tmp/tests/tmp/test-installation-engine-1762152629295/packages/testool/agents/scrum-master.md +3 -0
- package/tests/tmp/tests/tmp/test-installation-engine-1762152629295/packages/testool/agents/tester.md +3 -0
- package/tests/tmp/tests/tmp/test-installation-engine-1762152629295/packages/testool/hooks/session-start.js +1 -0
- package/tests/tmp/tests/tmp/test-installation-engine-1762152629295/packages/testool/resources/workflows.yaml +2 -0
- package/tests/tmp/tests/tmp/test-installation-engine-1762152629295/packages/testool/skills/docx/docx.md +3 -0
- package/tests/tmp/tests/tmp/test-installation-engine-1762152629295/packages/testool/skills/pdf/pdf.md +3 -0
- package/tests/validation-test.js +271 -0
- package/validate-package.js +312 -0
- package/.claude-plugin/plugin-lite.json +0 -38
- package/.claude-plugin/plugin-pro.json +0 -183
- package/.claude-plugin/plugin-standard.json +0 -147
- package/.claude-plugin/plugin.json +0 -47
- package/resources/agent-teams.yaml +0 -50
- package/resources/templates.yaml +0 -5634
- package/resources/workflows.yaml +0 -1253
- /package/{agents → packages/ampcode/agents}/1-create-prd.md +0 -0
- /package/{agents → packages/ampcode/agents}/2-generate-tasks.md +0 -0
- /package/{agents → packages/ampcode/agents}/3-process-task-list.md +0 -0
- /package/{agents → packages/ampcode/agents}/business-analyst.md +0 -0
- /package/{agents → packages/ampcode/agents}/full-stack-dev.md +0 -0
- /package/{agents → packages/ampcode/agents}/holistic-architect.md +0 -0
- /package/{agents → packages/ampcode/agents}/master.md +0 -0
- /package/{agents → packages/ampcode/agents}/product-manager.md +0 -0
- /package/{agents → packages/ampcode/agents}/product-owner.md +0 -0
- /package/{agents → packages/ampcode/agents}/qa-test-architect.md +0 -0
- /package/{agents → packages/ampcode/agents}/scrum-master.md +0 -0
- /package/{agents → packages/ampcode/agents}/ux-expert.md +0 -0
- /package/{resources → packages/ampcode/resources}/checklists.md +0 -0
- /package/{resources → packages/ampcode/resources}/task-briefs.md +0 -0
- /package/{skills → packages/ampcode/skills}/algorithmic-art/LICENSE.txt +0 -0
- /package/{skills → packages/ampcode/skills}/algorithmic-art/SKILL.md +0 -0
- /package/{skills → packages/ampcode/skills}/algorithmic-art/templates/generator_template.js +0 -0
- /package/{skills → packages/ampcode/skills}/algorithmic-art/templates/viewer.html +0 -0
- /package/{skills → packages/ampcode/skills}/artifacts-builder/LICENSE.txt +0 -0
- /package/{skills → packages/ampcode/skills}/artifacts-builder/SKILL.md +0 -0
- /package/{skills → packages/ampcode/skills}/artifacts-builder/scripts/bundle-artifact.sh +0 -0
- /package/{skills → packages/ampcode/skills}/artifacts-builder/scripts/init-artifact.sh +0 -0
- /package/{skills → packages/ampcode/skills}/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- /package/{skills → packages/ampcode/skills}/brainstorming/SKILL.md +0 -0
- /package/{skills → packages/ampcode/skills}/brand-guidelines/LICENSE.txt +0 -0
- /package/{skills → packages/ampcode/skills}/brand-guidelines/SKILL.md +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/LICENSE.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/SKILL.md +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/BigShoulders-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/Boldonse-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/DMMono-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/EricaOne-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/GeistMono-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/Gloock-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/Italiana-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/Jura-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/Lora-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/NationalPark-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/Outfit-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/PixelifySans-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/PoiretOne-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/RedHatMono-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/Silkscreen-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/SmoochSans-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/Tektur-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/WorkSans-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/YoungSerif-OFL.txt +0 -0
- /package/{skills → packages/ampcode/skills}/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- /package/{skills → packages/ampcode/skills}/code-review/SKILL.md +0 -0
- /package/{skills → packages/ampcode/skills}/code-review/code-reviewer.md +0 -0
- /package/{skills → packages/ampcode/skills}/condition-based-waiting/SKILL.md +0 -0
- /package/{skills → packages/ampcode/skills}/condition-based-waiting/example.ts +0 -0
- /package/{skills → packages/ampcode/skills}/docx/LICENSE.txt +0 -0
- /package/{skills → packages/ampcode/skills}/docx/SKILL.md +0 -0
- /package/{skills → packages/ampcode/skills}/docx/docx-js.md +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/mce/mc.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/microsoft/wml-2010.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/microsoft/wml-2012.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/microsoft/wml-2018.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/scripts/pack.py +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/scripts/unpack.py +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/scripts/validate.py +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/scripts/validation/__init__.py +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/scripts/validation/base.py +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/scripts/validation/docx.py +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/scripts/validation/pptx.py +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml/scripts/validation/redlining.py +0 -0
- /package/{skills → packages/ampcode/skills}/docx/ooxml.md +0 -0
- /package/{skills → packages/ampcode/skills}/docx/scripts/__init__.py +0 -0
- /package/{skills → packages/ampcode/skills}/docx/scripts/document.py +0 -0
- /package/{skills → packages/ampcode/skills}/docx/scripts/templates/comments.xml +0 -0
- /package/{skills → packages/ampcode/skills}/docx/scripts/templates/commentsExtended.xml +0 -0
- /package/{skills → packages/ampcode/skills}/docx/scripts/templates/commentsExtensible.xml +0 -0
- /package/{skills → packages/ampcode/skills}/docx/scripts/templates/commentsIds.xml +0 -0
- /package/{skills → packages/ampcode/skills}/docx/scripts/templates/people.xml +0 -0
- /package/{skills → packages/ampcode/skills}/docx/scripts/utilities.py +0 -0
- /package/{skills → packages/ampcode/skills}/internal-comms/LICENSE.txt +0 -0
- /package/{skills → packages/ampcode/skills}/internal-comms/SKILL.md +0 -0
- /package/{skills → packages/ampcode/skills}/internal-comms/examples/3p-updates.md +0 -0
- /package/{skills → packages/ampcode/skills}/internal-comms/examples/company-newsletter.md +0 -0
- /package/{skills → packages/ampcode/skills}/internal-comms/examples/faq-answers.md +0 -0
- /package/{skills → packages/ampcode/skills}/internal-comms/examples/general-comms.md +0 -0
- /package/{skills → packages/ampcode/skills}/mcp-builder/LICENSE.txt +0 -0
- /package/{skills → packages/ampcode/skills}/mcp-builder/SKILL.md +0 -0
- /package/{skills → packages/ampcode/skills}/mcp-builder/reference/evaluation.md +0 -0
- /package/{skills → packages/ampcode/skills}/mcp-builder/reference/mcp_best_practices.md +0 -0
- /package/{skills → packages/ampcode/skills}/mcp-builder/reference/node_mcp_server.md +0 -0
- /package/{skills → packages/ampcode/skills}/mcp-builder/reference/python_mcp_server.md +0 -0
- /package/{skills → packages/ampcode/skills}/mcp-builder/scripts/connections.py +0 -0
- /package/{skills → packages/ampcode/skills}/mcp-builder/scripts/evaluation.py +0 -0
- /package/{skills → packages/ampcode/skills}/mcp-builder/scripts/example_evaluation.xml +0 -0
- /package/{skills → packages/ampcode/skills}/mcp-builder/scripts/requirements.txt +0 -0
- /package/{skills → packages/ampcode/skills}/pdf/LICENSE.txt +0 -0
- /package/{skills → packages/ampcode/skills}/pdf/SKILL.md +0 -0
- /package/{skills → packages/ampcode/skills}/pdf/forms.md +0 -0
- /package/{skills → packages/ampcode/skills}/pdf/reference.md +0 -0
- /package/{skills → packages/ampcode/skills}/pdf/scripts/check_bounding_boxes.py +0 -0
- /package/{skills → packages/ampcode/skills}/pdf/scripts/check_bounding_boxes_test.py +0 -0
- /package/{skills → packages/ampcode/skills}/pdf/scripts/check_fillable_fields.py +0 -0
- /package/{skills → packages/ampcode/skills}/pdf/scripts/convert_pdf_to_images.py +0 -0
- /package/{skills → packages/ampcode/skills}/pdf/scripts/create_validation_image.py +0 -0
- /package/{skills → packages/ampcode/skills}/pdf/scripts/extract_form_field_info.py +0 -0
- /package/{skills → packages/ampcode/skills}/pdf/scripts/fill_fillable_fields.py +0 -0
- /package/{skills → packages/ampcode/skills}/pdf/scripts/fill_pdf_form_with_annotations.py +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/LICENSE.txt +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/SKILL.md +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/html2pptx.md +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/mce/mc.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/microsoft/wml-2010.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/microsoft/wml-2012.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/microsoft/wml-2018.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/scripts/pack.py +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/scripts/unpack.py +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/scripts/validate.py +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/scripts/validation/__init__.py +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/scripts/validation/base.py +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/scripts/validation/docx.py +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/scripts/validation/pptx.py +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml/scripts/validation/redlining.py +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/ooxml.md +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/scripts/html2pptx.js +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/scripts/inventory.py +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/scripts/rearrange.py +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/scripts/replace.py +0 -0
- /package/{skills → packages/ampcode/skills}/pptx/scripts/thumbnail.py +0 -0
- /package/{skills → packages/ampcode/skills}/root-cause-tracing/SKILL.md +0 -0
- /package/{skills → packages/ampcode/skills}/root-cause-tracing/find-polluter.sh +0 -0
- /package/{skills → packages/ampcode/skills}/skill-creator/LICENSE.txt +0 -0
- /package/{skills → packages/ampcode/skills}/skill-creator/SKILL.md +0 -0
- /package/{skills → packages/ampcode/skills}/skill-creator/scripts/init_skill.py +0 -0
- /package/{skills → packages/ampcode/skills}/skill-creator/scripts/package_skill.py +0 -0
- /package/{skills → packages/ampcode/skills}/skill-creator/scripts/quick_validate.py +0 -0
- /package/{skills → packages/ampcode/skills}/slack-gif-creator/LICENSE.txt +0 -0
- /package/{skills → packages/ampcode/skills}/slack-gif-creator/SKILL.md +0 -0
- /package/{skills → packages/ampcode/skills}/slack-gif-creator/core/color_palettes.py +0 -0
- /package/{skills → packages/ampcode/skills}/slack-gif-creator/core/easing.py +0 -0
- /package/{skills → packages/ampcode/skills}/slack-gif-creator/core/frame_composer.py +0 -0
- /package/{skills → packages/ampcode/skills}/slack-gif-creator/core/gif_builder.py +0 -0
- /package/{skills → packages/ampcode/skills}/slack-gif-creator/core/typography.py +0 -0
- /package/{skills → packages/ampcode/skills}/slack-gif-creator/core/validators.py +0 -0
- /package/{skills → packages/ampcode/skills}/slack-gif-creator/core/visual_effects.py +0 -0
- /package/{skills → packages/ampcode/skills}/slack-gif-creator/requirements.txt +0 -0
- /package/{skills → packages/ampcode/skills}/slack-gif-creator/templates/bounce.py +0 -0
- /package/{skills → packages/ampcode/skills}/slack-gif-creator/templates/explode.py +0 -0
- /package/{skills → packages/ampcode/skills}/slack-gif-creator/templates/fade.py +0 -0
- /package/{skills → packages/ampcode/skills}/slack-gif-creator/templates/flip.py +0 -0
- /package/{skills → packages/ampcode/skills}/slack-gif-creator/templates/kaleidoscope.py +0 -0
- /package/{skills → packages/ampcode/skills}/slack-gif-creator/templates/morph.py +0 -0
- /package/{skills → packages/ampcode/skills}/slack-gif-creator/templates/move.py +0 -0
- /package/{skills → packages/ampcode/skills}/slack-gif-creator/templates/pulse.py +0 -0
- /package/{skills → packages/ampcode/skills}/slack-gif-creator/templates/shake.py +0 -0
- /package/{skills → packages/ampcode/skills}/slack-gif-creator/templates/slide.py +0 -0
- /package/{skills → packages/ampcode/skills}/slack-gif-creator/templates/spin.py +0 -0
- /package/{skills → packages/ampcode/skills}/slack-gif-creator/templates/wiggle.py +0 -0
- /package/{skills → packages/ampcode/skills}/slack-gif-creator/templates/zoom.py +0 -0
- /package/{skills → packages/ampcode/skills}/systematic-debugging/CREATION-LOG.md +0 -0
- /package/{skills → packages/ampcode/skills}/systematic-debugging/SKILL.md +0 -0
- /package/{skills → packages/ampcode/skills}/systematic-debugging/test-academic.md +0 -0
- /package/{skills → packages/ampcode/skills}/systematic-debugging/test-pressure-1.md +0 -0
- /package/{skills → packages/ampcode/skills}/systematic-debugging/test-pressure-2.md +0 -0
- /package/{skills → packages/ampcode/skills}/systematic-debugging/test-pressure-3.md +0 -0
- /package/{skills → packages/ampcode/skills}/test-driven-development/SKILL.md +0 -0
- /package/{skills → packages/ampcode/skills}/testing-anti-patterns/SKILL.md +0 -0
- /package/{skills → packages/ampcode/skills}/theme-factory/LICENSE.txt +0 -0
- /package/{skills → packages/ampcode/skills}/theme-factory/SKILL.md +0 -0
- /package/{skills → packages/ampcode/skills}/theme-factory/theme-showcase.pdf +0 -0
- /package/{skills → packages/ampcode/skills}/theme-factory/themes/arctic-frost.md +0 -0
- /package/{skills → packages/ampcode/skills}/theme-factory/themes/botanical-garden.md +0 -0
- /package/{skills → packages/ampcode/skills}/theme-factory/themes/desert-rose.md +0 -0
- /package/{skills → packages/ampcode/skills}/theme-factory/themes/forest-canopy.md +0 -0
- /package/{skills → packages/ampcode/skills}/theme-factory/themes/golden-hour.md +0 -0
- /package/{skills → packages/ampcode/skills}/theme-factory/themes/midnight-galaxy.md +0 -0
- /package/{skills → packages/ampcode/skills}/theme-factory/themes/modern-minimalist.md +0 -0
- /package/{skills → packages/ampcode/skills}/theme-factory/themes/ocean-depths.md +0 -0
- /package/{skills → packages/ampcode/skills}/theme-factory/themes/sunset-boulevard.md +0 -0
- /package/{skills → packages/ampcode/skills}/theme-factory/themes/tech-innovation.md +0 -0
- /package/{skills → packages/ampcode/skills}/verification-before-completion/SKILL.md +0 -0
- /package/{skills → packages/ampcode/skills}/webapp-testing/LICENSE.txt +0 -0
- /package/{skills → packages/ampcode/skills}/webapp-testing/SKILL.md +0 -0
- /package/{skills → packages/ampcode/skills}/webapp-testing/examples/console_logging.py +0 -0
- /package/{skills → packages/ampcode/skills}/webapp-testing/examples/element_discovery.py +0 -0
- /package/{skills → packages/ampcode/skills}/webapp-testing/examples/static_html_automation.py +0 -0
- /package/{skills → packages/ampcode/skills}/webapp-testing/scripts/with_server.py +0 -0
- /package/{skills → packages/ampcode/skills}/xlsx/LICENSE.txt +0 -0
- /package/{skills → packages/ampcode/skills}/xlsx/SKILL.md +0 -0
- /package/{skills → packages/ampcode/skills}/xlsx/recalc.py +0 -0
- /package/{agents → packages/claude/agents}/orchestrator.md +0 -0
- /package/{hooks → packages/claude/hooks}/register-agents.js +0 -0
- /package/{resources → packages/claude/resources}/data.md +0 -0
package/installer/cli.js
ADDED
|
@@ -0,0 +1,2229 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Interactive CLI Installer for Agentic Kit
|
|
5
|
+
*
|
|
6
|
+
* Provides 4-step installation process:
|
|
7
|
+
* 1. Package variant selection (Lite/Standard/Pro)
|
|
8
|
+
* 2. Tool selection (Claude/Opencode/Ampcode/Droid)
|
|
9
|
+
* 3. Path configuration with confirmation
|
|
10
|
+
* 4. Installation summary and execution
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
const fs = require('fs');
|
|
14
|
+
const path = require('path');
|
|
15
|
+
const readline = require('readline');
|
|
16
|
+
|
|
17
|
+
// ANSI color codes
|
|
18
|
+
const colors = {
|
|
19
|
+
reset: '\x1b[0m',
|
|
20
|
+
bright: '\x1b[1m',
|
|
21
|
+
green: '\x1b[32m',
|
|
22
|
+
blue: '\x1b[34m',
|
|
23
|
+
yellow: '\x1b[33m',
|
|
24
|
+
cyan: '\x1b[36m',
|
|
25
|
+
magenta: '\x1b[35m',
|
|
26
|
+
red: '\x1b[31m'
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
class InteractiveInstaller {
|
|
30
|
+
constructor() {
|
|
31
|
+
this.rl = readline.createInterface({
|
|
32
|
+
input: process.stdin,
|
|
33
|
+
output: process.stdout
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
this.selections = {
|
|
37
|
+
variant: null,
|
|
38
|
+
tools: [],
|
|
39
|
+
paths: {}
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
// Command-line arguments
|
|
43
|
+
this.cliArgs = this.parseCommandLineArgs();
|
|
44
|
+
|
|
45
|
+
// Initialize PackageManager for accessing package information
|
|
46
|
+
const PackageManager = require('./package-manager');
|
|
47
|
+
this.packageManager = new PackageManager();
|
|
48
|
+
|
|
49
|
+
this.tools = [
|
|
50
|
+
{
|
|
51
|
+
id: 'claude',
|
|
52
|
+
name: 'Claude Code',
|
|
53
|
+
path: '~/.claude',
|
|
54
|
+
description: 'AI-powered development assistant',
|
|
55
|
+
useCase: 'General software development with conversational AI',
|
|
56
|
+
targetUsers: 'All developers'
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
id: 'opencode',
|
|
60
|
+
name: 'Opencode',
|
|
61
|
+
path: '~/.config/opencode',
|
|
62
|
+
description: 'CLI-optimized AI codegen tool',
|
|
63
|
+
useCase: 'Terminal-based development and automation',
|
|
64
|
+
targetUsers: 'CLI power users, DevOps teams'
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
id: 'ampcode',
|
|
68
|
+
name: 'Ampcode',
|
|
69
|
+
path: '~/.config/amp',
|
|
70
|
+
description: 'Amplified AI development accelerator',
|
|
71
|
+
useCase: 'Velocity-focused workflows and rapid prototyping',
|
|
72
|
+
targetUsers: 'Teams seeking development acceleration'
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
id: 'droid',
|
|
76
|
+
name: 'Droid',
|
|
77
|
+
path: '~/.factory',
|
|
78
|
+
description: 'Android-focused AI development companion',
|
|
79
|
+
useCase: 'Mobile app development with Android Studio',
|
|
80
|
+
targetUsers: 'Android developers, mobile teams'
|
|
81
|
+
}
|
|
82
|
+
];
|
|
83
|
+
|
|
84
|
+
this.variants = [
|
|
85
|
+
{ id: 'lite', name: 'Lite', agents: 3, skills: 0, description: 'Minimal setup, CI/CD' },
|
|
86
|
+
{ id: 'standard', name: 'Standard', agents: 13, skills: 8, description: 'Most users, general dev' },
|
|
87
|
+
{ id: 'pro', name: 'Pro', agents: 13, skills: 14, description: 'Advanced users, full features' }
|
|
88
|
+
];
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Parse command-line arguments
|
|
93
|
+
* Supports various flags for non-interactive operation
|
|
94
|
+
*
|
|
95
|
+
* @returns {Object} - Parsed arguments object
|
|
96
|
+
*/
|
|
97
|
+
parseCommandLineArgs() {
|
|
98
|
+
const args = process.argv.slice(2);
|
|
99
|
+
const parsed = {
|
|
100
|
+
help: false,
|
|
101
|
+
uninstall: null,
|
|
102
|
+
upgrade: null,
|
|
103
|
+
upgradeVariant: null,
|
|
104
|
+
variant: null,
|
|
105
|
+
tools: [],
|
|
106
|
+
paths: {},
|
|
107
|
+
silent: false,
|
|
108
|
+
nonInteractive: false,
|
|
109
|
+
config: null,
|
|
110
|
+
noTelemetry: false
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
for (let i = 0; i < args.length; i++) {
|
|
114
|
+
const arg = args[i];
|
|
115
|
+
|
|
116
|
+
if (arg === '--help' || arg === '-h') {
|
|
117
|
+
parsed.help = true;
|
|
118
|
+
} else if (arg === '--uninstall') {
|
|
119
|
+
parsed.uninstall = args[++i];
|
|
120
|
+
} else if (arg === '--upgrade') {
|
|
121
|
+
parsed.upgrade = args[++i];
|
|
122
|
+
parsed.upgradeVariant = args[++i];
|
|
123
|
+
} else if (arg === '--variant') {
|
|
124
|
+
parsed.variant = args[++i];
|
|
125
|
+
} else if (arg === '--tools') {
|
|
126
|
+
parsed.tools = args[++i].split(',').map(t => t.trim());
|
|
127
|
+
} else if (arg === '--path') {
|
|
128
|
+
const pathArg = args[++i];
|
|
129
|
+
const [tool, pathValue] = pathArg.split('=');
|
|
130
|
+
parsed.paths[tool] = pathValue;
|
|
131
|
+
} else if (arg === '--silent' || arg === '--non-interactive' || arg === '--yes' || arg === '-y') {
|
|
132
|
+
parsed.silent = true;
|
|
133
|
+
parsed.nonInteractive = true;
|
|
134
|
+
} else if (arg === '--config') {
|
|
135
|
+
parsed.config = args[++i];
|
|
136
|
+
} else if (arg === '--no-telemetry') {
|
|
137
|
+
parsed.noTelemetry = true;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
return parsed;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Display help information
|
|
146
|
+
* Shows usage, options, and examples
|
|
147
|
+
*/
|
|
148
|
+
showHelp() {
|
|
149
|
+
console.log(`
|
|
150
|
+
${colors.bright}${colors.cyan}Agentic Kit Installer${colors.reset}
|
|
151
|
+
|
|
152
|
+
${colors.bright}USAGE:${colors.reset}
|
|
153
|
+
node installer/cli.js [OPTIONS]
|
|
154
|
+
|
|
155
|
+
${colors.bright}OPTIONS:${colors.reset}
|
|
156
|
+
${colors.green}--help, -h${colors.reset}
|
|
157
|
+
Display this help message
|
|
158
|
+
|
|
159
|
+
${colors.green}--uninstall <tool>${colors.reset}
|
|
160
|
+
Uninstall a specific tool
|
|
161
|
+
Example: node installer/cli.js --uninstall claude
|
|
162
|
+
|
|
163
|
+
${colors.green}--upgrade <tool> <variant>${colors.reset}
|
|
164
|
+
Upgrade or downgrade a tool to a different variant
|
|
165
|
+
Example: node installer/cli.js --upgrade claude pro
|
|
166
|
+
Example: node installer/cli.js --upgrade claude lite
|
|
167
|
+
|
|
168
|
+
${colors.green}--variant <lite|standard|pro>${colors.reset}
|
|
169
|
+
Select package variant (non-interactive mode)
|
|
170
|
+
Example: node installer/cli.js --variant standard --tools claude
|
|
171
|
+
|
|
172
|
+
${colors.green}--tools <tool1,tool2,...>${colors.reset}
|
|
173
|
+
Select tools to install (comma-separated, non-interactive mode)
|
|
174
|
+
Example: node installer/cli.js --variant standard --tools claude,opencode
|
|
175
|
+
|
|
176
|
+
${colors.green}--path <tool>=<path>${colors.reset}
|
|
177
|
+
Specify custom installation path for a tool
|
|
178
|
+
Example: node installer/cli.js --variant standard --tools claude --path claude=/custom/path
|
|
179
|
+
|
|
180
|
+
${colors.green}--silent, --non-interactive, --yes, -y${colors.reset}
|
|
181
|
+
Run in silent mode (no prompts, auto-confirm all)
|
|
182
|
+
Example: node installer/cli.js --variant standard --tools claude --silent
|
|
183
|
+
|
|
184
|
+
${colors.green}--config <file>${colors.reset}
|
|
185
|
+
Load configuration from JSON file
|
|
186
|
+
Example: node installer/cli.js --config install-config.json
|
|
187
|
+
|
|
188
|
+
${colors.green}--no-telemetry${colors.reset}
|
|
189
|
+
Disable anonymous usage statistics collection
|
|
190
|
+
Example: node installer/cli.js --no-telemetry
|
|
191
|
+
See docs/PRIVACY.md for details
|
|
192
|
+
|
|
193
|
+
${colors.bright}TOOLS:${colors.reset}
|
|
194
|
+
${colors.cyan}claude${colors.reset} - Claude Code (AI-powered development assistant)
|
|
195
|
+
${colors.cyan}opencode${colors.reset} - Opencode (CLI-optimized AI codegen tool)
|
|
196
|
+
${colors.cyan}ampcode${colors.reset} - Ampcode (Amplified AI development accelerator)
|
|
197
|
+
${colors.cyan}droid${colors.reset} - Droid (Android-focused AI development companion)
|
|
198
|
+
|
|
199
|
+
${colors.bright}VARIANTS:${colors.reset}
|
|
200
|
+
${colors.cyan}lite${colors.reset} - Minimal setup (3 agents, 0 skills) - For CI/CD
|
|
201
|
+
${colors.cyan}standard${colors.reset} - Standard setup (13 agents, 8 skills) - For most users
|
|
202
|
+
${colors.cyan}pro${colors.reset} - Full setup (13 agents, 22 skills) - For advanced users
|
|
203
|
+
|
|
204
|
+
${colors.bright}EXAMPLES:${colors.reset}
|
|
205
|
+
# Interactive installation (default)
|
|
206
|
+
node installer/cli.js
|
|
207
|
+
|
|
208
|
+
# Install Claude with Standard variant (non-interactive)
|
|
209
|
+
node installer/cli.js --variant standard --tools claude
|
|
210
|
+
|
|
211
|
+
# Install multiple tools with custom paths
|
|
212
|
+
node installer/cli.js --variant pro --tools claude,opencode --path claude=~/.claude-custom
|
|
213
|
+
|
|
214
|
+
# Uninstall a tool
|
|
215
|
+
node installer/cli.js --uninstall claude
|
|
216
|
+
|
|
217
|
+
# Silent installation for CI/CD
|
|
218
|
+
node installer/cli.js --variant lite --tools claude --silent
|
|
219
|
+
|
|
220
|
+
${colors.bright}For more information, visit:${colors.reset}
|
|
221
|
+
https://github.com/amrhas82/agentic-kit
|
|
222
|
+
`);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
async run() {
|
|
226
|
+
try {
|
|
227
|
+
// Handle --help flag
|
|
228
|
+
if (this.cliArgs.help) {
|
|
229
|
+
this.showHelp();
|
|
230
|
+
process.exit(0);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
// Handle --uninstall flag
|
|
234
|
+
if (this.cliArgs.uninstall) {
|
|
235
|
+
await this.runUninstall(this.cliArgs.uninstall);
|
|
236
|
+
process.exit(0);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// Handle --upgrade flag
|
|
240
|
+
if (this.cliArgs.upgrade) {
|
|
241
|
+
await this.runUpgrade(this.cliArgs.upgrade, this.cliArgs.upgradeVariant);
|
|
242
|
+
process.exit(0);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
// Handle --config flag
|
|
246
|
+
if (this.cliArgs.config) {
|
|
247
|
+
await this.loadConfig(this.cliArgs.config);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
// Handle non-interactive mode
|
|
251
|
+
if (this.cliArgs.variant && this.cliArgs.tools.length > 0) {
|
|
252
|
+
await this.runNonInteractive();
|
|
253
|
+
process.exit(0);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
// Interactive mode
|
|
257
|
+
this.showWelcome();
|
|
258
|
+
|
|
259
|
+
// Prompt for telemetry consent (first-time only)
|
|
260
|
+
await this.promptTelemetryConsent();
|
|
261
|
+
|
|
262
|
+
// Check for interrupted installation
|
|
263
|
+
const InstallationEngine = require('./installation-engine');
|
|
264
|
+
const PathManager = require('./path-manager');
|
|
265
|
+
const pathManager = new PathManager();
|
|
266
|
+
const installationEngine = new InstallationEngine(pathManager, this.packageManager);
|
|
267
|
+
|
|
268
|
+
const hasInterrupted = await installationEngine.hasInterruptedInstallation();
|
|
269
|
+
|
|
270
|
+
if (hasInterrupted) {
|
|
271
|
+
const shouldResume = await this.promptResume(installationEngine);
|
|
272
|
+
|
|
273
|
+
if (shouldResume) {
|
|
274
|
+
await this.resumeInstallation(installationEngine);
|
|
275
|
+
return; // Exit after resume
|
|
276
|
+
} else {
|
|
277
|
+
// Clear state and start fresh
|
|
278
|
+
await installationEngine.getStateManager().clearState();
|
|
279
|
+
console.log(`${colors.yellow}Starting fresh installation...${colors.reset}\n`);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
// Normal installation flow
|
|
284
|
+
await this.selectVariant();
|
|
285
|
+
await this.selectTools();
|
|
286
|
+
await this.configurePaths();
|
|
287
|
+
await this.showSummary();
|
|
288
|
+
await this.install();
|
|
289
|
+
} catch (error) {
|
|
290
|
+
await this.handleFatalError(error);
|
|
291
|
+
} finally {
|
|
292
|
+
this.rl.close();
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
/**
|
|
297
|
+
* Run uninstall command for a specific tool
|
|
298
|
+
* Detects installation, prompts for confirmation, and executes uninstall
|
|
299
|
+
*
|
|
300
|
+
* @param {string} toolId - Tool to uninstall (claude, opencode, ampcode, droid)
|
|
301
|
+
*/
|
|
302
|
+
async runUninstall(toolId) {
|
|
303
|
+
console.log(`\n${colors.bright}${colors.cyan}Agentic Kit Uninstaller${colors.reset}\n`);
|
|
304
|
+
|
|
305
|
+
// Validate tool ID
|
|
306
|
+
const tool = this.tools.find(t => t.id === toolId);
|
|
307
|
+
if (!tool) {
|
|
308
|
+
console.log(`${colors.red}Error: Unknown tool '${toolId}'${colors.reset}`);
|
|
309
|
+
console.log(`${colors.yellow}Available tools: ${this.tools.map(t => t.id).join(', ')}${colors.reset}\n`);
|
|
310
|
+
process.exit(1);
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
// Detect installation at default path
|
|
314
|
+
const os = require('os');
|
|
315
|
+
const defaultPath = tool.path.startsWith('~')
|
|
316
|
+
? path.join(os.homedir(), tool.path.slice(1))
|
|
317
|
+
: path.resolve(tool.path);
|
|
318
|
+
|
|
319
|
+
// Check if manifest exists at default path
|
|
320
|
+
const manifestPath = path.join(defaultPath, 'manifest.json');
|
|
321
|
+
let targetPath = defaultPath;
|
|
322
|
+
|
|
323
|
+
if (!fs.existsSync(manifestPath)) {
|
|
324
|
+
console.log(`${colors.yellow}No installation found at default path: ${defaultPath}${colors.reset}\n`);
|
|
325
|
+
|
|
326
|
+
// If not in silent mode, ask for custom path
|
|
327
|
+
if (!this.cliArgs.silent) {
|
|
328
|
+
const customPath = await this.askQuestion(
|
|
329
|
+
`${colors.cyan}Enter installation path (or press Enter to cancel):${colors.reset} `,
|
|
330
|
+
''
|
|
331
|
+
);
|
|
332
|
+
|
|
333
|
+
if (!customPath) {
|
|
334
|
+
console.log(`${colors.yellow}Uninstall cancelled${colors.reset}\n`);
|
|
335
|
+
return;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
targetPath = customPath.startsWith('~')
|
|
339
|
+
? path.join(os.homedir(), customPath.slice(1))
|
|
340
|
+
: path.resolve(customPath);
|
|
341
|
+
|
|
342
|
+
const customManifestPath = path.join(targetPath, 'manifest.json');
|
|
343
|
+
if (!fs.existsSync(customManifestPath)) {
|
|
344
|
+
console.log(`${colors.red}Error: No installation found at ${targetPath}${colors.reset}\n`);
|
|
345
|
+
process.exit(1);
|
|
346
|
+
}
|
|
347
|
+
} else {
|
|
348
|
+
console.log(`${colors.red}Error: No installation found at default path${colors.reset}\n`);
|
|
349
|
+
process.exit(1);
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
console.log(`${colors.bright}Tool:${colors.reset} ${tool.name}`);
|
|
354
|
+
console.log(`${colors.bright}Path:${colors.reset} ${targetPath}\n`);
|
|
355
|
+
|
|
356
|
+
// Initialize InstallationEngine
|
|
357
|
+
const PathManager = require('./path-manager');
|
|
358
|
+
const InstallationEngine = require('./installation-engine');
|
|
359
|
+
const pathManager = new PathManager();
|
|
360
|
+
const installationEngine = new InstallationEngine(pathManager, this.packageManager);
|
|
361
|
+
|
|
362
|
+
try {
|
|
363
|
+
// Read manifest to get file count
|
|
364
|
+
const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8'));
|
|
365
|
+
const fileCount = manifest.installedFiles
|
|
366
|
+
? Object.values(manifest.installedFiles).reduce((sum, arr) => sum + arr.length, 0)
|
|
367
|
+
: 0;
|
|
368
|
+
|
|
369
|
+
// Confirmation prompt (unless in silent mode)
|
|
370
|
+
if (!this.cliArgs.silent) {
|
|
371
|
+
console.log(`${colors.yellow}This will remove ${fileCount} file(s) and create a backup.${colors.reset}\n`);
|
|
372
|
+
|
|
373
|
+
const confirm = await this.askQuestion(
|
|
374
|
+
`${colors.bright}Proceed with uninstallation? (y/N):${colors.reset} `,
|
|
375
|
+
'n'
|
|
376
|
+
);
|
|
377
|
+
|
|
378
|
+
if (confirm.toLowerCase() !== 'y') {
|
|
379
|
+
console.log(`${colors.yellow}Uninstall cancelled${colors.reset}\n`);
|
|
380
|
+
return;
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
console.log(`\n${colors.bright}Uninstalling ${tool.name}...${colors.reset}\n`);
|
|
385
|
+
|
|
386
|
+
// Uninstall with progress callback
|
|
387
|
+
const result = await installationEngine.uninstall(
|
|
388
|
+
toolId,
|
|
389
|
+
targetPath,
|
|
390
|
+
null, // confirmCallback (already confirmed above)
|
|
391
|
+
(progress) => {
|
|
392
|
+
// Display progress
|
|
393
|
+
const percentage = Math.round((progress.filesRemoved / progress.totalFiles) * 100);
|
|
394
|
+
process.stdout.write(`\r${colors.cyan}Progress:${colors.reset} ${percentage}% (${progress.filesRemoved}/${progress.totalFiles} files removed)`);
|
|
395
|
+
}
|
|
396
|
+
);
|
|
397
|
+
|
|
398
|
+
// Clear progress line
|
|
399
|
+
process.stdout.write('\r' + ' '.repeat(80) + '\r');
|
|
400
|
+
|
|
401
|
+
// Display results
|
|
402
|
+
console.log(`${colors.green}✓ ${tool.name} uninstalled successfully${colors.reset}`);
|
|
403
|
+
console.log(`${colors.cyan}Files removed:${colors.reset} ${result.filesRemoved}`);
|
|
404
|
+
console.log(`${colors.cyan}Directories removed:${colors.reset} ${result.directoriesRemoved}`);
|
|
405
|
+
console.log(`${colors.cyan}Backup created:${colors.reset} ${result.backupPath}\n`);
|
|
406
|
+
|
|
407
|
+
if (result.warnings.length > 0) {
|
|
408
|
+
console.log(`${colors.yellow}Warnings:${colors.reset}`);
|
|
409
|
+
result.warnings.forEach(warning => {
|
|
410
|
+
console.log(` ${colors.yellow}⚠${colors.reset} ${warning.message}`);
|
|
411
|
+
});
|
|
412
|
+
console.log('');
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
if (result.errors.length > 0) {
|
|
416
|
+
console.log(`${colors.red}Errors:${colors.reset}`);
|
|
417
|
+
result.errors.forEach(error => {
|
|
418
|
+
console.log(` ${colors.red}✗${colors.reset} ${error.message}`);
|
|
419
|
+
});
|
|
420
|
+
console.log('');
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
} catch (error) {
|
|
424
|
+
console.error(`\n${colors.red}✗ Uninstall failed: ${error.message}${colors.reset}\n`);
|
|
425
|
+
process.exit(1);
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
/**
|
|
430
|
+
* Run upgrade/downgrade command for a specific tool
|
|
431
|
+
* Changes the variant of an installed tool
|
|
432
|
+
*
|
|
433
|
+
* @param {string} toolId - Tool to upgrade (claude, opencode, ampcode, droid)
|
|
434
|
+
* @param {string} newVariant - Target variant (lite, standard, pro)
|
|
435
|
+
*/
|
|
436
|
+
async runUpgrade(toolId, newVariant) {
|
|
437
|
+
console.log(`\n${colors.bright}${colors.cyan}Agentic Kit Variant Upgrade${colors.reset}\n`);
|
|
438
|
+
|
|
439
|
+
// Validate tool ID
|
|
440
|
+
const tool = this.tools.find(t => t.id === toolId);
|
|
441
|
+
if (!tool) {
|
|
442
|
+
console.log(`${colors.red}Error: Unknown tool '${toolId}'${colors.reset}`);
|
|
443
|
+
console.log(`${colors.yellow}Available tools: ${this.tools.map(t => t.id).join(', ')}${colors.reset}\n`);
|
|
444
|
+
process.exit(1);
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
// Validate variant
|
|
448
|
+
const validVariants = ['lite', 'standard', 'pro'];
|
|
449
|
+
if (!validVariants.includes(newVariant)) {
|
|
450
|
+
console.log(`${colors.red}Error: Invalid variant '${newVariant}'${colors.reset}`);
|
|
451
|
+
console.log(`${colors.yellow}Valid variants: ${validVariants.join(', ')}${colors.reset}\n`);
|
|
452
|
+
process.exit(1);
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
// Detect installation at default path
|
|
456
|
+
const os = require('os');
|
|
457
|
+
const defaultPath = tool.path.startsWith('~')
|
|
458
|
+
? path.join(os.homedir(), tool.path.slice(1))
|
|
459
|
+
: path.resolve(tool.path);
|
|
460
|
+
|
|
461
|
+
// Check if manifest exists at default path
|
|
462
|
+
const manifestPath = path.join(defaultPath, 'manifest.json');
|
|
463
|
+
let targetPath = defaultPath;
|
|
464
|
+
|
|
465
|
+
if (!fs.existsSync(manifestPath)) {
|
|
466
|
+
console.log(`${colors.yellow}No installation found at default path: ${defaultPath}${colors.reset}\n`);
|
|
467
|
+
|
|
468
|
+
// If not in silent mode, ask for custom path
|
|
469
|
+
if (!this.cliArgs.silent) {
|
|
470
|
+
const customPath = await this.askQuestion(
|
|
471
|
+
`${colors.cyan}Enter installation path (or press Enter to cancel):${colors.reset} `,
|
|
472
|
+
''
|
|
473
|
+
);
|
|
474
|
+
|
|
475
|
+
if (!customPath) {
|
|
476
|
+
console.log(`${colors.yellow}Upgrade cancelled${colors.reset}\n`);
|
|
477
|
+
return;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
targetPath = customPath.startsWith('~')
|
|
481
|
+
? path.join(os.homedir(), customPath.slice(1))
|
|
482
|
+
: path.resolve(customPath);
|
|
483
|
+
|
|
484
|
+
const customManifestPath = path.join(targetPath, 'manifest.json');
|
|
485
|
+
if (!fs.existsSync(customManifestPath)) {
|
|
486
|
+
console.log(`${colors.red}Error: No installation found at ${targetPath}${colors.reset}\n`);
|
|
487
|
+
process.exit(1);
|
|
488
|
+
}
|
|
489
|
+
} else {
|
|
490
|
+
console.log(`${colors.red}Error: No installation found at default path${colors.reset}\n`);
|
|
491
|
+
process.exit(1);
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
// Read current variant
|
|
496
|
+
const manifest = JSON.parse(fs.readFileSync(path.join(targetPath, 'manifest.json'), 'utf8'));
|
|
497
|
+
const currentVariant = manifest.variant;
|
|
498
|
+
|
|
499
|
+
console.log(`${colors.bright}Tool:${colors.reset} ${tool.name}`);
|
|
500
|
+
console.log(`${colors.bright}Current variant:${colors.reset} ${currentVariant}`);
|
|
501
|
+
console.log(`${colors.bright}Target variant:${colors.reset} ${newVariant}`);
|
|
502
|
+
console.log(`${colors.bright}Path:${colors.reset} ${targetPath}\n`);
|
|
503
|
+
|
|
504
|
+
// Check if same variant
|
|
505
|
+
if (currentVariant === newVariant) {
|
|
506
|
+
console.log(`${colors.yellow}Already using variant: ${newVariant}${colors.reset}\n`);
|
|
507
|
+
return;
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
// Initialize InstallationEngine
|
|
511
|
+
const PathManager = require('./path-manager');
|
|
512
|
+
const InstallationEngine = require('./installation-engine');
|
|
513
|
+
const pathManager = new PathManager();
|
|
514
|
+
const installationEngine = new InstallationEngine(pathManager, this.packageManager);
|
|
515
|
+
|
|
516
|
+
try {
|
|
517
|
+
// Confirmation callback (unless in silent mode)
|
|
518
|
+
const confirmCallback = this.cliArgs.silent ? null : (data) => {
|
|
519
|
+
return new Promise(async (resolve) => {
|
|
520
|
+
const action = data.filesAdded > data.filesRemoved ? 'Upgrade' : 'Downgrade';
|
|
521
|
+
console.log(`${colors.yellow}${action} Summary:${colors.reset}`);
|
|
522
|
+
console.log(` ${colors.green}+${data.filesAdded} file(s) to add${colors.reset}`);
|
|
523
|
+
console.log(` ${colors.red}-${data.filesRemoved} file(s) to remove${colors.reset}\n`);
|
|
524
|
+
|
|
525
|
+
const confirm = await this.askQuestion(
|
|
526
|
+
`${colors.bright}Proceed with ${action.toLowerCase()}? (y/N):${colors.reset} `,
|
|
527
|
+
'n'
|
|
528
|
+
);
|
|
529
|
+
|
|
530
|
+
resolve(confirm.toLowerCase() === 'y');
|
|
531
|
+
});
|
|
532
|
+
};
|
|
533
|
+
|
|
534
|
+
// Progress callback
|
|
535
|
+
let lastStage = '';
|
|
536
|
+
const progressCallback = (progress) => {
|
|
537
|
+
if (progress.stage !== lastStage) {
|
|
538
|
+
if (lastStage) {
|
|
539
|
+
process.stdout.write('\n');
|
|
540
|
+
}
|
|
541
|
+
lastStage = progress.stage;
|
|
542
|
+
|
|
543
|
+
const stageMessages = {
|
|
544
|
+
reading_manifest: 'Reading current installation...',
|
|
545
|
+
comparing_variants: 'Comparing variants...',
|
|
546
|
+
creating_backup: 'Creating backup...',
|
|
547
|
+
removing_files: `Removing ${progress.count || 0} file(s)...`,
|
|
548
|
+
adding_files: `Adding ${progress.count || 0} file(s)...`,
|
|
549
|
+
updating_manifest: 'Updating manifest...',
|
|
550
|
+
verifying: 'Verifying installation...',
|
|
551
|
+
complete: 'Complete!'
|
|
552
|
+
};
|
|
553
|
+
|
|
554
|
+
const message = stageMessages[progress.stage] || progress.stage;
|
|
555
|
+
process.stdout.write(`${colors.cyan}${message}${colors.reset}`);
|
|
556
|
+
}
|
|
557
|
+
};
|
|
558
|
+
|
|
559
|
+
console.log(`${colors.bright}Upgrading ${tool.name}...${colors.reset}\n`);
|
|
560
|
+
|
|
561
|
+
// Execute upgrade
|
|
562
|
+
const result = await installationEngine.upgradeVariant(
|
|
563
|
+
toolId,
|
|
564
|
+
newVariant,
|
|
565
|
+
targetPath,
|
|
566
|
+
confirmCallback,
|
|
567
|
+
progressCallback
|
|
568
|
+
);
|
|
569
|
+
|
|
570
|
+
// Clear progress line
|
|
571
|
+
process.stdout.write('\n\n');
|
|
572
|
+
|
|
573
|
+
// Display results
|
|
574
|
+
if (!result.success) {
|
|
575
|
+
console.log(`${colors.red}✗ Upgrade failed: ${result.error}${colors.reset}\n`);
|
|
576
|
+
process.exit(1);
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
const action = result.filesAdded > result.filesRemoved ? 'Upgrade' : 'Downgrade';
|
|
580
|
+
console.log(`${colors.green}✓ ${tool.name} ${action.toLowerCase()}d successfully${colors.reset}`);
|
|
581
|
+
console.log(`${colors.cyan}From variant:${colors.reset} ${result.fromVariant}`);
|
|
582
|
+
console.log(`${colors.cyan}To variant:${colors.reset} ${result.toVariant}`);
|
|
583
|
+
console.log(`${colors.cyan}Files added:${colors.reset} ${result.filesAdded}`);
|
|
584
|
+
console.log(`${colors.cyan}Files removed:${colors.reset} ${result.filesRemoved}`);
|
|
585
|
+
console.log(`${colors.cyan}Backup created:${colors.reset} ${result.backupPath}\n`);
|
|
586
|
+
|
|
587
|
+
if (result.verification && !result.verification.valid) {
|
|
588
|
+
console.log(`${colors.yellow}Warnings:${colors.reset}`);
|
|
589
|
+
result.verification.issues.forEach(issue => {
|
|
590
|
+
console.log(` ${colors.yellow}⚠${colors.reset} ${issue.message}`);
|
|
591
|
+
});
|
|
592
|
+
console.log('');
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
} catch (error) {
|
|
596
|
+
console.error(`\n${colors.red}✗ Upgrade failed: ${error.message}${colors.reset}\n`);
|
|
597
|
+
process.exit(1);
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
/**
|
|
602
|
+
* Load configuration from JSON file
|
|
603
|
+
* Used with --config flag
|
|
604
|
+
*
|
|
605
|
+
* @param {string} configPath - Path to configuration file
|
|
606
|
+
*/
|
|
607
|
+
async loadConfig(configPath) {
|
|
608
|
+
try {
|
|
609
|
+
const configContent = await fs.promises.readFile(configPath, 'utf8');
|
|
610
|
+
const config = JSON.parse(configContent);
|
|
611
|
+
|
|
612
|
+
// Validate and apply configuration
|
|
613
|
+
if (config.variant) {
|
|
614
|
+
this.cliArgs.variant = config.variant;
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
if (config.tools && Array.isArray(config.tools)) {
|
|
618
|
+
this.cliArgs.tools = config.tools;
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
if (config.paths && typeof config.paths === 'object') {
|
|
622
|
+
this.cliArgs.paths = { ...this.cliArgs.paths, ...config.paths };
|
|
623
|
+
}
|
|
624
|
+
|
|
625
|
+
if (config.silent !== undefined) {
|
|
626
|
+
this.cliArgs.silent = config.silent;
|
|
627
|
+
this.cliArgs.nonInteractive = config.silent;
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
console.log(`${colors.green}✓ Configuration loaded from ${configPath}${colors.reset}\n`);
|
|
631
|
+
|
|
632
|
+
} catch (error) {
|
|
633
|
+
console.error(`${colors.red}Error loading configuration: ${error.message}${colors.reset}\n`);
|
|
634
|
+
process.exit(1);
|
|
635
|
+
}
|
|
636
|
+
}
|
|
637
|
+
|
|
638
|
+
/**
|
|
639
|
+
* Run non-interactive installation
|
|
640
|
+
* Uses command-line arguments instead of prompts
|
|
641
|
+
*/
|
|
642
|
+
async runNonInteractive() {
|
|
643
|
+
console.log(`\n${colors.bright}${colors.cyan}Agentic Kit Installer (Non-Interactive Mode)${colors.reset}\n`);
|
|
644
|
+
|
|
645
|
+
// Validate variant
|
|
646
|
+
const variant = this.cliArgs.variant;
|
|
647
|
+
if (!['lite', 'standard', 'pro'].includes(variant)) {
|
|
648
|
+
console.log(`${colors.red}Error: Invalid variant '${variant}'${colors.reset}`);
|
|
649
|
+
console.log(`${colors.yellow}Valid variants: lite, standard, pro${colors.reset}\n`);
|
|
650
|
+
process.exit(1);
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
// Validate tools
|
|
654
|
+
const validTools = this.tools.map(t => t.id);
|
|
655
|
+
const invalidTools = this.cliArgs.tools.filter(t => !validTools.includes(t));
|
|
656
|
+
if (invalidTools.length > 0) {
|
|
657
|
+
console.log(`${colors.red}Error: Invalid tool(s): ${invalidTools.join(', ')}${colors.reset}`);
|
|
658
|
+
console.log(`${colors.yellow}Valid tools: ${validTools.join(', ')}${colors.reset}\n`);
|
|
659
|
+
process.exit(1);
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
if (this.cliArgs.tools.length === 0) {
|
|
663
|
+
console.log(`${colors.red}Error: At least one tool must be specified${colors.reset}\n`);
|
|
664
|
+
process.exit(1);
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
// Set selections
|
|
668
|
+
this.selections.variant = variant;
|
|
669
|
+
this.selections.tools = this.cliArgs.tools;
|
|
670
|
+
|
|
671
|
+
// Set paths (use custom paths or defaults)
|
|
672
|
+
const os = require('os');
|
|
673
|
+
for (const toolId of this.selections.tools) {
|
|
674
|
+
const tool = this.tools.find(t => t.id === toolId);
|
|
675
|
+
|
|
676
|
+
if (this.cliArgs.paths[toolId]) {
|
|
677
|
+
this.selections.paths[toolId] = this.cliArgs.paths[toolId];
|
|
678
|
+
} else {
|
|
679
|
+
this.selections.paths[toolId] = tool.path;
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
// Display summary
|
|
684
|
+
const variantInfo = this.variants.find(v => v.id === variant);
|
|
685
|
+
console.log(`${colors.bright}Installation Summary:${colors.reset}`);
|
|
686
|
+
console.log(`${colors.cyan}Variant:${colors.reset} ${variantInfo.name} (${variantInfo.agents} agents, ${variantInfo.skills} skills)`);
|
|
687
|
+
console.log(`${colors.cyan}Tools:${colors.reset} ${this.selections.tools.join(', ')}`);
|
|
688
|
+
console.log('');
|
|
689
|
+
|
|
690
|
+
for (const toolId of this.selections.tools) {
|
|
691
|
+
const tool = this.tools.find(t => t.id === toolId);
|
|
692
|
+
const isCustom = this.selections.paths[toolId] !== tool.path;
|
|
693
|
+
console.log(`${colors.bright}${tool.name}${colors.reset}`);
|
|
694
|
+
console.log(` Path: ${this.selections.paths[toolId]}${isCustom ? ' (custom)' : ''}`);
|
|
695
|
+
}
|
|
696
|
+
console.log('');
|
|
697
|
+
|
|
698
|
+
// Run installation
|
|
699
|
+
try {
|
|
700
|
+
await this.install();
|
|
701
|
+
} catch (error) {
|
|
702
|
+
console.error(`${colors.red}✗ Installation failed: ${error.message}${colors.reset}\n`);
|
|
703
|
+
process.exit(1);
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
/**
|
|
708
|
+
* Handle fatal errors with detailed error messages and actionable advice
|
|
709
|
+
* Categorizes errors and provides specific guidance for each type
|
|
710
|
+
*
|
|
711
|
+
* @param {Error} error - The error that occurred
|
|
712
|
+
*/
|
|
713
|
+
async handleFatalError(error) {
|
|
714
|
+
console.log(''); // Add spacing
|
|
715
|
+
|
|
716
|
+
// Categorize the error and provide appropriate guidance
|
|
717
|
+
const errorInfo = this.categorizeError(error);
|
|
718
|
+
|
|
719
|
+
console.log(`${colors.red}${colors.bright}✗ Installation Failed${colors.reset}`);
|
|
720
|
+
console.log(`${colors.red}${'─'.repeat(60)}${colors.reset}\n`);
|
|
721
|
+
|
|
722
|
+
console.log(`${colors.bright}Error Type:${colors.reset} ${errorInfo.type}`);
|
|
723
|
+
console.log(`${colors.bright}Message:${colors.reset} ${error.message}\n`);
|
|
724
|
+
|
|
725
|
+
if (errorInfo.advice.length > 0) {
|
|
726
|
+
console.log(`${colors.yellow}${colors.bright}Suggested Actions:${colors.reset}`);
|
|
727
|
+
errorInfo.advice.forEach((advice, index) => {
|
|
728
|
+
console.log(` ${index + 1}. ${advice}`);
|
|
729
|
+
});
|
|
730
|
+
console.log('');
|
|
731
|
+
}
|
|
732
|
+
|
|
733
|
+
// Display additional technical details if available
|
|
734
|
+
if (errorInfo.technicalDetails) {
|
|
735
|
+
console.log(`${colors.cyan}Technical Details:${colors.reset}`);
|
|
736
|
+
console.log(` ${errorInfo.technicalDetails}\n`);
|
|
737
|
+
}
|
|
738
|
+
|
|
739
|
+
// Exit with error code
|
|
740
|
+
process.exit(1);
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
/**
|
|
744
|
+
* Categorize errors and provide actionable advice
|
|
745
|
+
*
|
|
746
|
+
* @param {Error} error - The error to categorize
|
|
747
|
+
* @returns {object} Object with type, advice array, and technical details
|
|
748
|
+
*/
|
|
749
|
+
categorizeError(error) {
|
|
750
|
+
const message = error.message.toLowerCase();
|
|
751
|
+
const code = error.code;
|
|
752
|
+
|
|
753
|
+
// Permission errors
|
|
754
|
+
if (code === 'EACCES' || code === 'EPERM' || message.includes('permission denied')) {
|
|
755
|
+
return {
|
|
756
|
+
type: 'Permission Error',
|
|
757
|
+
advice: [
|
|
758
|
+
'Try running the installer with elevated permissions: sudo node installer/cli.js',
|
|
759
|
+
'Or choose a different installation directory where you have write access',
|
|
760
|
+
'Check directory permissions: ls -la on the parent directory'
|
|
761
|
+
],
|
|
762
|
+
technicalDetails: `Error code: ${code || 'EACCES'}`
|
|
763
|
+
};
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
// Disk space errors
|
|
767
|
+
if (code === 'ENOSPC' || message.includes('no space') || message.includes('disk space')) {
|
|
768
|
+
return {
|
|
769
|
+
type: 'Disk Space Error',
|
|
770
|
+
advice: [
|
|
771
|
+
'Free up disk space by removing unnecessary files',
|
|
772
|
+
'Check available space: df -h',
|
|
773
|
+
'Consider installing to a different location with more space',
|
|
774
|
+
'The installer requires at least 50MB of free space'
|
|
775
|
+
],
|
|
776
|
+
technicalDetails: 'Installation requires approximately 10MB per tool'
|
|
777
|
+
};
|
|
778
|
+
}
|
|
779
|
+
|
|
780
|
+
// Network errors (if applicable)
|
|
781
|
+
if (code === 'ENOTFOUND' || code === 'ETIMEDOUT' || message.includes('network') || message.includes('connection')) {
|
|
782
|
+
return {
|
|
783
|
+
type: 'Network Error',
|
|
784
|
+
advice: [
|
|
785
|
+
'Check your internet connection',
|
|
786
|
+
'Verify proxy settings if behind a corporate firewall',
|
|
787
|
+
'Try again in a few moments',
|
|
788
|
+
'Use offline installation mode if available'
|
|
789
|
+
],
|
|
790
|
+
technicalDetails: `Network error code: ${code || 'UNKNOWN'}`
|
|
791
|
+
};
|
|
792
|
+
}
|
|
793
|
+
|
|
794
|
+
// File not found / missing package errors
|
|
795
|
+
if (code === 'ENOENT' || message.includes('no such file') || message.includes('not found') || message.includes('invalid package')) {
|
|
796
|
+
return {
|
|
797
|
+
type: 'Missing Package Error',
|
|
798
|
+
advice: [
|
|
799
|
+
'Ensure agentic-kit is properly installed: npm install -g @amrhas82/agentic-kit',
|
|
800
|
+
'Verify the packages directory exists and contains required files',
|
|
801
|
+
'Try reinstalling agentic-kit: npm uninstall -g @amrhas82/agentic-kit && npm install -g @amrhas82/agentic-kit',
|
|
802
|
+
'Check that you are running the installer from the correct directory'
|
|
803
|
+
],
|
|
804
|
+
technicalDetails: `Missing file or package validation failed`
|
|
805
|
+
};
|
|
806
|
+
}
|
|
807
|
+
|
|
808
|
+
// Path validation errors (check before invalid input errors)
|
|
809
|
+
if (message.includes('path') && (message.includes('invalid') || message.includes('absolute') || message.includes('must be absolute'))) {
|
|
810
|
+
return {
|
|
811
|
+
type: 'Path Validation Error',
|
|
812
|
+
advice: [
|
|
813
|
+
'Ensure the path is absolute (starts with / or ~)',
|
|
814
|
+
'Verify the parent directory exists',
|
|
815
|
+
'Check that you have write permissions for the specified path',
|
|
816
|
+
'Use default paths if custom paths are causing issues'
|
|
817
|
+
],
|
|
818
|
+
technicalDetails: 'Paths must be absolute and writable'
|
|
819
|
+
};
|
|
820
|
+
}
|
|
821
|
+
|
|
822
|
+
// Invalid input errors
|
|
823
|
+
if (message.includes('invalid') || message.includes('must be') || message.includes('required')) {
|
|
824
|
+
return {
|
|
825
|
+
type: 'Invalid Input Error',
|
|
826
|
+
advice: [
|
|
827
|
+
'Review your selections and ensure all required options are provided',
|
|
828
|
+
'At least one tool must be selected',
|
|
829
|
+
'Paths must be absolute (start with / or ~)',
|
|
830
|
+
'Restart the installer and try again'
|
|
831
|
+
],
|
|
832
|
+
technicalDetails: error.message
|
|
833
|
+
};
|
|
834
|
+
}
|
|
835
|
+
|
|
836
|
+
// Installation failures (general)
|
|
837
|
+
if (message.includes('install') || message.includes('copy') || message.includes('failed')) {
|
|
838
|
+
return {
|
|
839
|
+
type: 'Installation Error',
|
|
840
|
+
advice: [
|
|
841
|
+
'Check available disk space: df -h',
|
|
842
|
+
'Verify write permissions on the target directory',
|
|
843
|
+
'Ensure no other process is using the installation directory',
|
|
844
|
+
'Try installing to a different location',
|
|
845
|
+
'Review the installation log at ~/.agentic-kit-install.log for details'
|
|
846
|
+
],
|
|
847
|
+
technicalDetails: 'Installation process encountered an error during file operations'
|
|
848
|
+
};
|
|
849
|
+
}
|
|
850
|
+
|
|
851
|
+
// Generic error
|
|
852
|
+
return {
|
|
853
|
+
type: 'Unknown Error',
|
|
854
|
+
advice: [
|
|
855
|
+
'Try running the installer again',
|
|
856
|
+
'Check system logs for more details',
|
|
857
|
+
'Report this issue at: https://github.com/amrhas82/agentic-kit/issues',
|
|
858
|
+
'Include the error message and your system information (OS, Node version)'
|
|
859
|
+
],
|
|
860
|
+
technicalDetails: error.stack ? error.stack.split('\n')[1] : 'No additional details'
|
|
861
|
+
};
|
|
862
|
+
}
|
|
863
|
+
|
|
864
|
+
/**
|
|
865
|
+
* Offer recovery options when an installation fails
|
|
866
|
+
* Allows user to continue with remaining tools or cancel
|
|
867
|
+
*
|
|
868
|
+
* @param {string} failedTool - Name of the tool that failed
|
|
869
|
+
* @param {number} currentIndex - Current tool index (1-based)
|
|
870
|
+
* @param {number} totalTools - Total number of tools
|
|
871
|
+
* @returns {Promise<boolean>} True to continue, false to cancel
|
|
872
|
+
*/
|
|
873
|
+
async offerRecoveryOptions(failedTool, currentIndex, totalTools) {
|
|
874
|
+
const remainingTools = totalTools - currentIndex;
|
|
875
|
+
|
|
876
|
+
console.log(`${colors.yellow}┌─────────────────────────────────────────────────────────────┐${colors.reset}`);
|
|
877
|
+
console.log(`${colors.yellow}│ Installation Failure - Recovery Options │${colors.reset}`);
|
|
878
|
+
console.log(`${colors.yellow}└─────────────────────────────────────────────────────────────┘${colors.reset}\n`);
|
|
879
|
+
|
|
880
|
+
console.log(`${colors.bright}Status:${colors.reset} ${failedTool} installation failed`);
|
|
881
|
+
console.log(`${colors.bright}Remaining:${colors.reset} ${remainingTools} tool${remainingTools > 1 ? 's' : ''} to install\n`);
|
|
882
|
+
|
|
883
|
+
// In silent mode, auto-continue with remaining tools
|
|
884
|
+
if (this.cliArgs.silent) {
|
|
885
|
+
console.log(`${colors.yellow}Silent mode: auto-continuing with remaining tools${colors.reset}\n`);
|
|
886
|
+
console.log(`${colors.yellow}Note:${colors.reset} The failed installation has been rolled back automatically.`);
|
|
887
|
+
console.log(`${colors.yellow}No partial files remain for ${failedTool}.${colors.reset}\n`);
|
|
888
|
+
return true;
|
|
889
|
+
}
|
|
890
|
+
|
|
891
|
+
console.log(`${colors.cyan}Options:${colors.reset}`);
|
|
892
|
+
console.log(` ${colors.green}C${colors.reset} - Continue with remaining tools (recommended)`);
|
|
893
|
+
console.log(` ${colors.red}Q${colors.reset} - Quit installation (successful installations will be kept)\n`);
|
|
894
|
+
|
|
895
|
+
console.log(`${colors.yellow}Note:${colors.reset} The failed installation has been rolled back automatically.`);
|
|
896
|
+
console.log(`${colors.yellow}No partial files remain for ${failedTool}.${colors.reset}\n`);
|
|
897
|
+
|
|
898
|
+
const answer = await this.askQuestion(
|
|
899
|
+
`${colors.bright}Choose an option (C/Q):${colors.reset} `,
|
|
900
|
+
'C'
|
|
901
|
+
);
|
|
902
|
+
|
|
903
|
+
const choice = answer.toUpperCase();
|
|
904
|
+
|
|
905
|
+
if (choice === 'C' || choice === '') {
|
|
906
|
+
console.log(`${colors.green}Continuing with remaining tools...${colors.reset}\n`);
|
|
907
|
+
return true;
|
|
908
|
+
} else if (choice === 'Q') {
|
|
909
|
+
return false;
|
|
910
|
+
} else {
|
|
911
|
+
// Invalid choice, ask again
|
|
912
|
+
console.log(`${colors.red}Invalid choice. Please enter C or Q.${colors.reset}\n`);
|
|
913
|
+
return this.offerRecoveryOptions(failedTool, currentIndex, totalTools);
|
|
914
|
+
}
|
|
915
|
+
}
|
|
916
|
+
|
|
917
|
+
/**
|
|
918
|
+
* Prompt user to resume interrupted installation
|
|
919
|
+
* Shows summary of previous installation progress
|
|
920
|
+
*
|
|
921
|
+
* @param {InstallationEngine} installationEngine - Installation engine instance
|
|
922
|
+
* @returns {Promise<boolean>} - True if user wants to resume, false otherwise
|
|
923
|
+
*/
|
|
924
|
+
async promptResume(installationEngine) {
|
|
925
|
+
const summary = await installationEngine.getResumeSummary();
|
|
926
|
+
|
|
927
|
+
if (!summary) {
|
|
928
|
+
return false;
|
|
929
|
+
}
|
|
930
|
+
|
|
931
|
+
console.clear();
|
|
932
|
+
console.log(`\n${colors.yellow}${colors.bright}Previous Installation Detected${colors.reset}`);
|
|
933
|
+
console.log(`${colors.yellow}${'─'.repeat(60)}${colors.reset}\n`);
|
|
934
|
+
|
|
935
|
+
// Format timestamp
|
|
936
|
+
const startedAt = new Date(summary.startedAt);
|
|
937
|
+
const lastUpdated = new Date(summary.lastUpdated);
|
|
938
|
+
const timeDiff = Math.floor((lastUpdated - startedAt) / 1000 / 60);
|
|
939
|
+
|
|
940
|
+
console.log(`${colors.cyan}Session ID:${colors.reset} ${summary.sessionId}`);
|
|
941
|
+
console.log(`${colors.cyan}Started:${colors.reset} ${startedAt.toLocaleString()}`);
|
|
942
|
+
console.log(`${colors.cyan}Last Updated:${colors.reset} ${lastUpdated.toLocaleString()} (${timeDiff} min ago)`);
|
|
943
|
+
console.log(`${colors.cyan}Variant:${colors.reset} ${summary.variant}`);
|
|
944
|
+
console.log('');
|
|
945
|
+
|
|
946
|
+
// Show progress
|
|
947
|
+
console.log(`${colors.bright}Progress:${colors.reset}`);
|
|
948
|
+
console.log(` Tools: ${summary.completedTools}/${summary.totalTools} completed`);
|
|
949
|
+
|
|
950
|
+
if (summary.completedToolsList.length > 0) {
|
|
951
|
+
console.log(`\n${colors.green}Completed:${colors.reset}`);
|
|
952
|
+
summary.completedToolsList.forEach(toolId => {
|
|
953
|
+
console.log(` ${colors.green}✓${colors.reset} ${toolId}`);
|
|
954
|
+
});
|
|
955
|
+
}
|
|
956
|
+
|
|
957
|
+
if (summary.failedToolsList.length > 0) {
|
|
958
|
+
console.log(`\n${colors.red}Failed:${colors.reset}`);
|
|
959
|
+
summary.failedToolsList.forEach(toolId => {
|
|
960
|
+
console.log(` ${colors.red}✗${colors.reset} ${toolId}`);
|
|
961
|
+
});
|
|
962
|
+
}
|
|
963
|
+
|
|
964
|
+
if (summary.currentTool) {
|
|
965
|
+
console.log(`\n${colors.yellow}Current Tool:${colors.reset} ${summary.currentTool}`);
|
|
966
|
+
const progress = summary.currentToolProgress;
|
|
967
|
+
if (progress.totalFiles > 0) {
|
|
968
|
+
console.log(` Progress: ${progress.filesCompleted}/${progress.totalFiles} files (${progress.percentComplete}%)`);
|
|
969
|
+
}
|
|
970
|
+
}
|
|
971
|
+
|
|
972
|
+
console.log('');
|
|
973
|
+
console.log(`${colors.bright}Would you like to resume this installation?${colors.reset}`);
|
|
974
|
+
console.log(` ${colors.green}Y${colors.reset} - Resume from where it left off`);
|
|
975
|
+
console.log(` ${colors.yellow}N${colors.reset} - Start fresh (previous state will be cleared)\n`);
|
|
976
|
+
|
|
977
|
+
const answer = await this.askQuestion(
|
|
978
|
+
`${colors.bright}Resume installation? (Y/n):${colors.reset} `,
|
|
979
|
+
'Y'
|
|
980
|
+
);
|
|
981
|
+
|
|
982
|
+
return answer.toLowerCase() !== 'n';
|
|
983
|
+
}
|
|
984
|
+
|
|
985
|
+
/**
|
|
986
|
+
* Resume interrupted installation
|
|
987
|
+
* Uses saved state to continue from where it left off
|
|
988
|
+
*
|
|
989
|
+
* @param {InstallationEngine} installationEngine - Installation engine instance with loaded state
|
|
990
|
+
*/
|
|
991
|
+
async resumeInstallation(installationEngine) {
|
|
992
|
+
const state = installationEngine.getStateManager().getState();
|
|
993
|
+
|
|
994
|
+
if (!state) {
|
|
995
|
+
console.log(`${colors.red}Error: Could not load installation state${colors.reset}`);
|
|
996
|
+
return;
|
|
997
|
+
}
|
|
998
|
+
|
|
999
|
+
console.log(`\n${colors.bright}${colors.green}Resuming installation...${colors.reset}\n`);
|
|
1000
|
+
|
|
1001
|
+
// Restore selections from state
|
|
1002
|
+
this.selections.variant = state.variant;
|
|
1003
|
+
this.selections.tools = state.tools;
|
|
1004
|
+
this.selections.paths = state.paths;
|
|
1005
|
+
|
|
1006
|
+
// Use installMultipleTools with resume flag
|
|
1007
|
+
try {
|
|
1008
|
+
const results = await installationEngine.installMultipleTools(
|
|
1009
|
+
state.variant,
|
|
1010
|
+
state.tools,
|
|
1011
|
+
state.paths,
|
|
1012
|
+
(progress) => {
|
|
1013
|
+
// Progress callback (same as normal installation)
|
|
1014
|
+
this.drawProgressBar(
|
|
1015
|
+
progress.filesCompleted,
|
|
1016
|
+
progress.totalFiles,
|
|
1017
|
+
progress.percentage,
|
|
1018
|
+
progress.currentFile,
|
|
1019
|
+
this.formatBytes(progress.bytesTransferred),
|
|
1020
|
+
this.formatBytes(progress.totalBytes),
|
|
1021
|
+
this.formatBytes(progress.bytesTransferred / ((Date.now() - Date.now()) / 1000 || 1)) + '/s',
|
|
1022
|
+
'0:00',
|
|
1023
|
+
'0:00'
|
|
1024
|
+
);
|
|
1025
|
+
},
|
|
1026
|
+
true // resume = true
|
|
1027
|
+
);
|
|
1028
|
+
|
|
1029
|
+
// Display results
|
|
1030
|
+
console.log(`\n${colors.bright}Installation Complete${colors.reset}\n`);
|
|
1031
|
+
|
|
1032
|
+
if (results.successful.length > 0) {
|
|
1033
|
+
console.log(`${colors.green}Successfully installed:${colors.reset}`);
|
|
1034
|
+
results.successful.forEach(toolId => {
|
|
1035
|
+
console.log(` ${colors.green}✓${colors.reset} ${toolId}`);
|
|
1036
|
+
});
|
|
1037
|
+
}
|
|
1038
|
+
|
|
1039
|
+
if (results.skipped.length > 0) {
|
|
1040
|
+
console.log(`\n${colors.yellow}Skipped (already completed):${colors.reset}`);
|
|
1041
|
+
results.skipped.forEach(toolId => {
|
|
1042
|
+
console.log(` ${colors.yellow}○${colors.reset} ${toolId}`);
|
|
1043
|
+
});
|
|
1044
|
+
}
|
|
1045
|
+
|
|
1046
|
+
if (results.failed.length > 0) {
|
|
1047
|
+
console.log(`\n${colors.red}Failed:${colors.reset}`);
|
|
1048
|
+
results.failed.forEach(failure => {
|
|
1049
|
+
console.log(` ${colors.red}✗${colors.reset} ${failure.toolId}: ${failure.error}`);
|
|
1050
|
+
});
|
|
1051
|
+
}
|
|
1052
|
+
|
|
1053
|
+
} catch (error) {
|
|
1054
|
+
console.error(`${colors.red}Resume failed: ${error.message}${colors.reset}`);
|
|
1055
|
+
throw error;
|
|
1056
|
+
}
|
|
1057
|
+
}
|
|
1058
|
+
|
|
1059
|
+
showWelcome() {
|
|
1060
|
+
console.clear();
|
|
1061
|
+
console.log(`
|
|
1062
|
+
${colors.bright}${colors.cyan}┌─────────────────────────────────────────────────────────────┐${colors.reset}
|
|
1063
|
+
${colors.bright}${colors.cyan}│ Agentic Kit Installer v1.1.0 │${colors.reset}
|
|
1064
|
+
${colors.bright}${colors.cyan}│ Multi-Tool AI Development Kit Installer │${colors.reset}
|
|
1065
|
+
${colors.bright}${colors.cyan}└─────────────────────────────────────────────────────────────┘${colors.reset}
|
|
1066
|
+
|
|
1067
|
+
${colors.bright}This installer will set up AI development tools for:${colors.reset}
|
|
1068
|
+
• Claude Code • Opencode • Ampcode • Droid
|
|
1069
|
+
|
|
1070
|
+
${colors.yellow}Press Enter to begin or Ctrl+C to exit${colors.reset}
|
|
1071
|
+
`);
|
|
1072
|
+
|
|
1073
|
+
return new Promise(resolve => {
|
|
1074
|
+
this.rl.question('', resolve);
|
|
1075
|
+
});
|
|
1076
|
+
}
|
|
1077
|
+
|
|
1078
|
+
async selectVariant() {
|
|
1079
|
+
console.log(`\n${colors.bright}Step 1/4 — Choose Package Variant${colors.reset}\n`);
|
|
1080
|
+
|
|
1081
|
+
console.log('┌─────────────┬─────────┬─────────┬─────────────────────────────┐');
|
|
1082
|
+
console.log('│ Variant │ Agents │ Skills │ Description │');
|
|
1083
|
+
console.log('├─────────────┼─────────┼─────────┼─────────────────────────────┤');
|
|
1084
|
+
|
|
1085
|
+
this.variants.forEach((variant, index) => {
|
|
1086
|
+
const selected = index === 1 ? '●' : '○';
|
|
1087
|
+
const color = index === 1 ? colors.blue : colors.reset;
|
|
1088
|
+
console.log(`│ ${selected} ${color}${variant.name.padEnd(10)}${colors.reset} │ ${variant.agents.toString().padEnd(7)} │ ${variant.skills.toString().padEnd(7)} │ ${variant.description.padEnd(27)} │`);
|
|
1089
|
+
});
|
|
1090
|
+
|
|
1091
|
+
console.log('└─────────────┴─────────┴─────────┴─────────────────────────────┘');
|
|
1092
|
+
console.log('\nUse arrow keys to navigate, Enter to select');
|
|
1093
|
+
|
|
1094
|
+
// Default to Standard
|
|
1095
|
+
this.selections.variant = 'standard';
|
|
1096
|
+
|
|
1097
|
+
return new Promise(resolve => {
|
|
1098
|
+
this.rl.question('\nPress Enter to continue (default: Standard)', (answer) => {
|
|
1099
|
+
if (answer && ['lite', 'standard', 'pro'].includes(answer.toLowerCase())) {
|
|
1100
|
+
this.selections.variant = answer.toLowerCase();
|
|
1101
|
+
}
|
|
1102
|
+
resolve();
|
|
1103
|
+
});
|
|
1104
|
+
});
|
|
1105
|
+
}
|
|
1106
|
+
|
|
1107
|
+
async selectTools() {
|
|
1108
|
+
console.log(`\n${colors.bright}Step 2/4 — Choose Tools (Minimum 1 required)${colors.reset}\n`);
|
|
1109
|
+
|
|
1110
|
+
console.log(`${colors.cyan}Available Tools:${colors.reset}\n`);
|
|
1111
|
+
|
|
1112
|
+
// Display each tool with detailed information
|
|
1113
|
+
this.tools.forEach((tool, index) => {
|
|
1114
|
+
const num = index + 1;
|
|
1115
|
+
console.log(`${colors.bright}${num}. ${tool.name}${colors.reset}`);
|
|
1116
|
+
console.log(` ${colors.cyan}Description:${colors.reset} ${tool.description}`);
|
|
1117
|
+
console.log(` ${colors.cyan}Best for:${colors.reset} ${tool.useCase}`);
|
|
1118
|
+
console.log(` ${colors.cyan}Target Users:${colors.reset} ${tool.targetUsers}`);
|
|
1119
|
+
console.log(` ${colors.cyan}Default Path:${colors.reset} ${tool.path}`);
|
|
1120
|
+
console.log('');
|
|
1121
|
+
});
|
|
1122
|
+
|
|
1123
|
+
console.log(`${colors.yellow}Select tools by entering IDs separated by spaces${colors.reset}`);
|
|
1124
|
+
console.log(`${colors.yellow}Examples:${colors.reset}`);
|
|
1125
|
+
console.log(` "claude" - Install Claude Code only`);
|
|
1126
|
+
console.log(` "claude opencode" - Install Claude Code and Opencode`);
|
|
1127
|
+
console.log(` "claude opencode ampcode droid" - Install all tools`);
|
|
1128
|
+
|
|
1129
|
+
return new Promise(resolve => {
|
|
1130
|
+
this.rl.question(`\n${colors.bright}Select tools:${colors.reset} `, (answer) => {
|
|
1131
|
+
if (answer.trim()) {
|
|
1132
|
+
const selected = answer.toLowerCase().split(/\s+/);
|
|
1133
|
+
this.selections.tools = selected.filter(id =>
|
|
1134
|
+
this.tools.some(tool => tool.id === id)
|
|
1135
|
+
);
|
|
1136
|
+
|
|
1137
|
+
// Show invalid tool IDs if any
|
|
1138
|
+
const invalid = selected.filter(id =>
|
|
1139
|
+
!this.tools.some(tool => tool.id === id)
|
|
1140
|
+
);
|
|
1141
|
+
if (invalid.length > 0) {
|
|
1142
|
+
console.log(`${colors.yellow}Warning: Unrecognized tool IDs ignored: ${invalid.join(', ')}${colors.reset}`);
|
|
1143
|
+
}
|
|
1144
|
+
}
|
|
1145
|
+
|
|
1146
|
+
if (this.selections.tools.length === 0) {
|
|
1147
|
+
console.log(`${colors.red}Error: At least one tool must be selected${colors.reset}`);
|
|
1148
|
+
console.log(`${colors.yellow}Valid tool IDs: ${this.tools.map(t => t.id).join(', ')}${colors.reset}\n`);
|
|
1149
|
+
throw new Error('At least one tool must be selected');
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1152
|
+
// Show selection summary
|
|
1153
|
+
console.log(`\n${colors.green}Selected ${this.selections.tools.length}/${this.tools.length} tools:${colors.reset}`);
|
|
1154
|
+
this.selections.tools.forEach(id => {
|
|
1155
|
+
const tool = this.tools.find(t => t.id === id);
|
|
1156
|
+
console.log(` ${colors.green}✓${colors.reset} ${tool.name}`);
|
|
1157
|
+
});
|
|
1158
|
+
|
|
1159
|
+
resolve();
|
|
1160
|
+
});
|
|
1161
|
+
});
|
|
1162
|
+
}
|
|
1163
|
+
|
|
1164
|
+
async configurePaths() {
|
|
1165
|
+
console.log(`\n${colors.bright}Step 3/4 — Path Configuration${colors.reset}\n`);
|
|
1166
|
+
|
|
1167
|
+
console.log('Default installation paths for selected tools:\n');
|
|
1168
|
+
|
|
1169
|
+
for (const toolId of this.selections.tools) {
|
|
1170
|
+
const tool = this.tools.find(t => t.id === toolId);
|
|
1171
|
+
console.log(`${colors.bright}${tool.name}${colors.reset}`);
|
|
1172
|
+
console.log(`${colors.cyan}Default path:${colors.reset} ${tool.path}`);
|
|
1173
|
+
|
|
1174
|
+
const customPath = await this.askQuestion(
|
|
1175
|
+
`Enter path (or press Enter for default): `,
|
|
1176
|
+
tool.path
|
|
1177
|
+
);
|
|
1178
|
+
|
|
1179
|
+
// Detect custom path
|
|
1180
|
+
if (customPath !== tool.path) {
|
|
1181
|
+
// Show custom path confirmation dialog
|
|
1182
|
+
const confirmed = await this.showCustomPathConfirmation(tool, customPath);
|
|
1183
|
+
|
|
1184
|
+
if (confirmed) {
|
|
1185
|
+
this.selections.paths[toolId] = customPath;
|
|
1186
|
+
console.log(`${colors.green}✓ Using custom path: ${customPath}${colors.reset}\n`);
|
|
1187
|
+
} else {
|
|
1188
|
+
this.selections.paths[toolId] = tool.path;
|
|
1189
|
+
console.log(`${colors.blue}Using default path: ${tool.path}${colors.reset}\n`);
|
|
1190
|
+
}
|
|
1191
|
+
} else {
|
|
1192
|
+
this.selections.paths[toolId] = tool.path;
|
|
1193
|
+
console.log(`${colors.green}✓ Using default path${colors.reset}\n`);
|
|
1194
|
+
}
|
|
1195
|
+
}
|
|
1196
|
+
}
|
|
1197
|
+
|
|
1198
|
+
async showCustomPathConfirmation(tool, customPath) {
|
|
1199
|
+
console.log(`\n${colors.yellow}┌─────────────────────────────────────────────────────────────┐${colors.reset}`);
|
|
1200
|
+
console.log(`${colors.yellow}│ Custom Path Confirmation │${colors.reset}`);
|
|
1201
|
+
console.log(`${colors.yellow}└─────────────────────────────────────────────────────────────┘${colors.reset}\n`);
|
|
1202
|
+
|
|
1203
|
+
console.log(`${colors.bright}Tool:${colors.reset} ${tool.name}`);
|
|
1204
|
+
console.log(`${colors.bright}Proposed custom path:${colors.reset} ${customPath}`);
|
|
1205
|
+
console.log(`${colors.bright}Default path:${colors.reset} ${tool.path}\n`);
|
|
1206
|
+
|
|
1207
|
+
// Validate the custom path
|
|
1208
|
+
const validation = this.validatePath(customPath);
|
|
1209
|
+
|
|
1210
|
+
// Display validation results
|
|
1211
|
+
console.log(`${colors.cyan}Validation Results:${colors.reset}`);
|
|
1212
|
+
|
|
1213
|
+
if (validation.valid) {
|
|
1214
|
+
console.log(`${colors.green}✓ Path is valid${colors.reset}`);
|
|
1215
|
+
if (validation.parentExists) {
|
|
1216
|
+
console.log(`${colors.green}✓ Parent directory exists${colors.reset}`);
|
|
1217
|
+
}
|
|
1218
|
+
if (validation.hasPermission) {
|
|
1219
|
+
console.log(`${colors.green}✓ Write permission available${colors.reset}`);
|
|
1220
|
+
}
|
|
1221
|
+
if (validation.hasDiskSpace) {
|
|
1222
|
+
console.log(`${colors.green}✓ Sufficient disk space${colors.reset}`);
|
|
1223
|
+
}
|
|
1224
|
+
} else {
|
|
1225
|
+
// Show validation warnings/errors
|
|
1226
|
+
validation.issues.forEach(issue => {
|
|
1227
|
+
const icon = issue.severity === 'error' ? '✗' : '⚠';
|
|
1228
|
+
const color = issue.severity === 'error' ? colors.red : colors.yellow;
|
|
1229
|
+
console.log(`${color}${icon} ${issue.message}${colors.reset}`);
|
|
1230
|
+
});
|
|
1231
|
+
}
|
|
1232
|
+
|
|
1233
|
+
console.log('');
|
|
1234
|
+
|
|
1235
|
+
// Require explicit confirmation
|
|
1236
|
+
if (!validation.valid && validation.issues.some(i => i.severity === 'error')) {
|
|
1237
|
+
console.log(`${colors.red}Cannot use this path due to validation errors${colors.reset}`);
|
|
1238
|
+
console.log(`${colors.yellow}Press Enter to use default path instead${colors.reset}`);
|
|
1239
|
+
await this.askQuestion('');
|
|
1240
|
+
return false;
|
|
1241
|
+
}
|
|
1242
|
+
|
|
1243
|
+
// Ask for confirmation
|
|
1244
|
+
const answer = await this.askQuestion(
|
|
1245
|
+
`${colors.bright}Confirm custom path? (y/N):${colors.reset} `,
|
|
1246
|
+
'n'
|
|
1247
|
+
);
|
|
1248
|
+
|
|
1249
|
+
return answer.toLowerCase() === 'y';
|
|
1250
|
+
}
|
|
1251
|
+
|
|
1252
|
+
validatePath(customPath) {
|
|
1253
|
+
const result = {
|
|
1254
|
+
valid: true,
|
|
1255
|
+
issues: [],
|
|
1256
|
+
parentExists: false,
|
|
1257
|
+
hasPermission: false,
|
|
1258
|
+
hasDiskSpace: false
|
|
1259
|
+
};
|
|
1260
|
+
|
|
1261
|
+
// Expand tilde to home directory
|
|
1262
|
+
const expandedPath = customPath.startsWith('~')
|
|
1263
|
+
? path.join(require('os').homedir(), customPath.slice(1))
|
|
1264
|
+
: path.resolve(customPath);
|
|
1265
|
+
|
|
1266
|
+
try {
|
|
1267
|
+
// Check if path is absolute or can be resolved
|
|
1268
|
+
if (!path.isAbsolute(expandedPath)) {
|
|
1269
|
+
result.issues.push({
|
|
1270
|
+
severity: 'error',
|
|
1271
|
+
message: 'Path must be absolute'
|
|
1272
|
+
});
|
|
1273
|
+
result.valid = false;
|
|
1274
|
+
}
|
|
1275
|
+
|
|
1276
|
+
// Check parent directory exists
|
|
1277
|
+
const parentDir = path.dirname(expandedPath);
|
|
1278
|
+
if (fs.existsSync(parentDir)) {
|
|
1279
|
+
result.parentExists = true;
|
|
1280
|
+
|
|
1281
|
+
// Check write permission on parent directory
|
|
1282
|
+
try {
|
|
1283
|
+
fs.accessSync(parentDir, fs.constants.W_OK);
|
|
1284
|
+
result.hasPermission = true;
|
|
1285
|
+
} catch (err) {
|
|
1286
|
+
result.issues.push({
|
|
1287
|
+
severity: 'error',
|
|
1288
|
+
message: 'No write permission for parent directory'
|
|
1289
|
+
});
|
|
1290
|
+
result.valid = false;
|
|
1291
|
+
}
|
|
1292
|
+
|
|
1293
|
+
// Check disk space (require at least 50MB free)
|
|
1294
|
+
try {
|
|
1295
|
+
const stats = fs.statfsSync ? fs.statfsSync(parentDir) : null;
|
|
1296
|
+
if (stats) {
|
|
1297
|
+
const availableSpace = stats.bavail * stats.bsize;
|
|
1298
|
+
const requiredSpace = 50 * 1024 * 1024; // 50MB
|
|
1299
|
+
|
|
1300
|
+
if (availableSpace >= requiredSpace) {
|
|
1301
|
+
result.hasDiskSpace = true;
|
|
1302
|
+
} else {
|
|
1303
|
+
result.issues.push({
|
|
1304
|
+
severity: 'warning',
|
|
1305
|
+
message: `Low disk space (${Math.round(availableSpace / 1024 / 1024)}MB available, 50MB recommended)`
|
|
1306
|
+
});
|
|
1307
|
+
}
|
|
1308
|
+
} else {
|
|
1309
|
+
// Cannot check disk space on this platform
|
|
1310
|
+
result.hasDiskSpace = true; // Assume OK
|
|
1311
|
+
}
|
|
1312
|
+
} catch (err) {
|
|
1313
|
+
// Disk space check failed, but don't block installation
|
|
1314
|
+
result.hasDiskSpace = true; // Assume OK
|
|
1315
|
+
}
|
|
1316
|
+
} else {
|
|
1317
|
+
result.issues.push({
|
|
1318
|
+
severity: 'warning',
|
|
1319
|
+
message: 'Parent directory does not exist (will be created)'
|
|
1320
|
+
});
|
|
1321
|
+
// Still allow installation if parent can be created
|
|
1322
|
+
result.parentExists = false;
|
|
1323
|
+
result.hasPermission = true; // Assume OK if we can check grandparent
|
|
1324
|
+
result.hasDiskSpace = true; // Assume OK
|
|
1325
|
+
}
|
|
1326
|
+
|
|
1327
|
+
// Check if path already exists
|
|
1328
|
+
if (fs.existsSync(expandedPath)) {
|
|
1329
|
+
result.issues.push({
|
|
1330
|
+
severity: 'warning',
|
|
1331
|
+
message: 'Path already exists (files may be overwritten)'
|
|
1332
|
+
});
|
|
1333
|
+
}
|
|
1334
|
+
|
|
1335
|
+
} catch (err) {
|
|
1336
|
+
result.issues.push({
|
|
1337
|
+
severity: 'error',
|
|
1338
|
+
message: `Path validation error: ${err.message}`
|
|
1339
|
+
});
|
|
1340
|
+
result.valid = false;
|
|
1341
|
+
}
|
|
1342
|
+
|
|
1343
|
+
return result;
|
|
1344
|
+
}
|
|
1345
|
+
|
|
1346
|
+
async showSummary() {
|
|
1347
|
+
console.log(`\n${colors.bright}Step 4/4 — Installation Summary${colors.reset}\n`);
|
|
1348
|
+
|
|
1349
|
+
const variant = this.variants.find(v => v.id === this.selections.variant);
|
|
1350
|
+
console.log(`Package: ${variant.name} (${variant.agents} agents, ${variant.skills} skills)`);
|
|
1351
|
+
console.log(`Tools: ${this.selections.tools.map(id =>
|
|
1352
|
+
this.tools.find(t => t.id === id).name
|
|
1353
|
+
).join(', ')}\n`);
|
|
1354
|
+
|
|
1355
|
+
console.log('Installation Details:');
|
|
1356
|
+
console.log('┌─────────────┬──────────────────┬──────────┬─────────────┐');
|
|
1357
|
+
console.log('│ Tool │ Path │ Files │ Size │');
|
|
1358
|
+
console.log('├─────────────┼──────────────────┼──────────┼─────────────┤');
|
|
1359
|
+
|
|
1360
|
+
// Collect actual file counts and sizes for each tool
|
|
1361
|
+
let totalFiles = 0;
|
|
1362
|
+
let totalBytes = 0;
|
|
1363
|
+
const toolData = [];
|
|
1364
|
+
|
|
1365
|
+
for (const toolId of this.selections.tools) {
|
|
1366
|
+
const tool = this.tools.find(t => t.id === toolId);
|
|
1367
|
+
const installPath = this.selections.paths[toolId];
|
|
1368
|
+
const isCustom = installPath !== tool.path;
|
|
1369
|
+
|
|
1370
|
+
try {
|
|
1371
|
+
// Get actual package contents and size from PackageManager
|
|
1372
|
+
const contents = await this.packageManager.getPackageContents(toolId, this.selections.variant);
|
|
1373
|
+
const sizeInfo = await this.packageManager.getPackageSize(toolId, this.selections.variant);
|
|
1374
|
+
|
|
1375
|
+
toolData.push({
|
|
1376
|
+
tool,
|
|
1377
|
+
path: installPath,
|
|
1378
|
+
isCustom,
|
|
1379
|
+
fileCount: contents.totalFiles,
|
|
1380
|
+
size: sizeInfo.formattedSize
|
|
1381
|
+
});
|
|
1382
|
+
|
|
1383
|
+
totalFiles += contents.totalFiles;
|
|
1384
|
+
totalBytes += sizeInfo.size;
|
|
1385
|
+
} catch (error) {
|
|
1386
|
+
// If package data not available, show placeholder
|
|
1387
|
+
toolData.push({
|
|
1388
|
+
tool,
|
|
1389
|
+
path: installPath,
|
|
1390
|
+
isCustom,
|
|
1391
|
+
fileCount: 'N/A',
|
|
1392
|
+
size: 'N/A'
|
|
1393
|
+
});
|
|
1394
|
+
}
|
|
1395
|
+
}
|
|
1396
|
+
|
|
1397
|
+
// Display tool rows with actual data
|
|
1398
|
+
for (const data of toolData) {
|
|
1399
|
+
const pathDisplay = data.isCustom ? `${data.path} *` : data.path;
|
|
1400
|
+
|
|
1401
|
+
// Format file count and size for display
|
|
1402
|
+
const fileCountStr = typeof data.fileCount === 'number' ? `${data.fileCount}` : data.fileCount;
|
|
1403
|
+
const sizeStr = data.size;
|
|
1404
|
+
|
|
1405
|
+
console.log(`│ ${data.tool.name.padEnd(11)} │ ${pathDisplay.padEnd(16)} │ ${fileCountStr.padEnd(8)} │ ${sizeStr.padEnd(11)} │`);
|
|
1406
|
+
}
|
|
1407
|
+
|
|
1408
|
+
console.log('└─────────────┴──────────────────┴──────────┴─────────────┘');
|
|
1409
|
+
|
|
1410
|
+
// Show custom path footnote if applicable
|
|
1411
|
+
if (toolData.some(d => d.isCustom)) {
|
|
1412
|
+
console.log('\n* Custom path specified');
|
|
1413
|
+
}
|
|
1414
|
+
|
|
1415
|
+
// Show totals if we have data
|
|
1416
|
+
if (totalFiles > 0) {
|
|
1417
|
+
// Format total size
|
|
1418
|
+
const totalSizeFormatted = this.formatBytes(totalBytes);
|
|
1419
|
+
console.log(`\n${colors.cyan}Total:${colors.reset} ${totalFiles} files, ${totalSizeFormatted}`);
|
|
1420
|
+
}
|
|
1421
|
+
|
|
1422
|
+
console.log('\nPress Enter to install or Esc to cancel');
|
|
1423
|
+
|
|
1424
|
+
return new Promise(resolve => {
|
|
1425
|
+
this.rl.question('', resolve);
|
|
1426
|
+
});
|
|
1427
|
+
}
|
|
1428
|
+
|
|
1429
|
+
/**
|
|
1430
|
+
* Format bytes to human-readable size (helper method for summary display)
|
|
1431
|
+
* @param {number} bytes - Size in bytes
|
|
1432
|
+
* @returns {string} Formatted size string (e.g., "8.39 MB")
|
|
1433
|
+
*/
|
|
1434
|
+
formatBytes(bytes) {
|
|
1435
|
+
if (bytes === 0) return '0 Bytes';
|
|
1436
|
+
|
|
1437
|
+
const k = 1024;
|
|
1438
|
+
const sizes = ['Bytes', 'KB', 'MB', 'GB'];
|
|
1439
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
1440
|
+
|
|
1441
|
+
return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
|
|
1442
|
+
}
|
|
1443
|
+
|
|
1444
|
+
/**
|
|
1445
|
+
* Get PackageManager instance (for testing and internal use)
|
|
1446
|
+
* @returns {PackageManager} Package manager instance
|
|
1447
|
+
*/
|
|
1448
|
+
getPackageManager() {
|
|
1449
|
+
return this.packageManager;
|
|
1450
|
+
}
|
|
1451
|
+
|
|
1452
|
+
/**
|
|
1453
|
+
* Perform pre-installation checks to catch potential issues early
|
|
1454
|
+
* Validates packages, paths, permissions, and disk space
|
|
1455
|
+
*
|
|
1456
|
+
* @returns {Promise<object>} Object with success flag, errors array, and warnings array
|
|
1457
|
+
*/
|
|
1458
|
+
async performPreInstallationChecks() {
|
|
1459
|
+
const errors = [];
|
|
1460
|
+
const warnings = [];
|
|
1461
|
+
const os = require('os');
|
|
1462
|
+
|
|
1463
|
+
// Check Node.js version (require 14+)
|
|
1464
|
+
const nodeVersion = process.version;
|
|
1465
|
+
const majorVersion = parseInt(nodeVersion.slice(1).split('.')[0]);
|
|
1466
|
+
if (majorVersion < 14) {
|
|
1467
|
+
errors.push(`Node.js version ${nodeVersion} is too old. Please upgrade to Node.js 14 or higher.`);
|
|
1468
|
+
}
|
|
1469
|
+
|
|
1470
|
+
// Validate each selected tool's package
|
|
1471
|
+
for (const toolId of this.selections.tools) {
|
|
1472
|
+
try {
|
|
1473
|
+
const validation = await this.packageManager.validatePackage(toolId, this.selections.variant);
|
|
1474
|
+
if (!validation.valid) {
|
|
1475
|
+
errors.push(`Package validation failed for ${toolId}: ${validation.error}`);
|
|
1476
|
+
}
|
|
1477
|
+
} catch (error) {
|
|
1478
|
+
errors.push(`Cannot validate package for ${toolId}: ${error.message}`);
|
|
1479
|
+
}
|
|
1480
|
+
}
|
|
1481
|
+
|
|
1482
|
+
// Validate all installation paths
|
|
1483
|
+
for (const toolId of this.selections.tools) {
|
|
1484
|
+
const targetPath = this.selections.paths[toolId];
|
|
1485
|
+
const expandedPath = targetPath.startsWith('~')
|
|
1486
|
+
? path.join(os.homedir(), targetPath.slice(1))
|
|
1487
|
+
: path.resolve(targetPath);
|
|
1488
|
+
|
|
1489
|
+
// Check parent directory write permissions
|
|
1490
|
+
const parentDir = path.dirname(expandedPath);
|
|
1491
|
+
try {
|
|
1492
|
+
if (fs.existsSync(parentDir)) {
|
|
1493
|
+
fs.accessSync(parentDir, fs.constants.W_OK);
|
|
1494
|
+
} else {
|
|
1495
|
+
// Check if we can create parent directory
|
|
1496
|
+
const grandParentDir = path.dirname(parentDir);
|
|
1497
|
+
if (fs.existsSync(grandParentDir)) {
|
|
1498
|
+
fs.accessSync(grandParentDir, fs.constants.W_OK);
|
|
1499
|
+
} else {
|
|
1500
|
+
errors.push(`Cannot create installation path for ${toolId}: parent directories do not exist`);
|
|
1501
|
+
}
|
|
1502
|
+
}
|
|
1503
|
+
} catch (error) {
|
|
1504
|
+
errors.push(`No write permission for ${toolId} installation path: ${targetPath}`);
|
|
1505
|
+
}
|
|
1506
|
+
|
|
1507
|
+
// Check if path already exists and has content
|
|
1508
|
+
if (fs.existsSync(expandedPath)) {
|
|
1509
|
+
try {
|
|
1510
|
+
const files = fs.readdirSync(expandedPath);
|
|
1511
|
+
if (files.length > 0) {
|
|
1512
|
+
warnings.push(`${toolId} installation path already exists and contains ${files.length} file(s). Existing installation will be backed up.`);
|
|
1513
|
+
}
|
|
1514
|
+
} catch (error) {
|
|
1515
|
+
warnings.push(`Cannot read existing installation directory for ${toolId}`);
|
|
1516
|
+
}
|
|
1517
|
+
}
|
|
1518
|
+
}
|
|
1519
|
+
|
|
1520
|
+
// Check available disk space
|
|
1521
|
+
try {
|
|
1522
|
+
// Calculate total required space for all selected tools
|
|
1523
|
+
let totalRequiredSpace = 0;
|
|
1524
|
+
for (const toolId of this.selections.tools) {
|
|
1525
|
+
try {
|
|
1526
|
+
const sizeInfo = await this.packageManager.getPackageSize(toolId, this.selections.variant);
|
|
1527
|
+
totalRequiredSpace += sizeInfo.size;
|
|
1528
|
+
} catch (error) {
|
|
1529
|
+
// Skip if we can't determine size
|
|
1530
|
+
}
|
|
1531
|
+
}
|
|
1532
|
+
|
|
1533
|
+
// Check disk space on home directory
|
|
1534
|
+
const homeDir = os.homedir();
|
|
1535
|
+
if (fs.statfsSync) {
|
|
1536
|
+
const stats = fs.statfsSync(homeDir);
|
|
1537
|
+
const availableSpace = stats.bavail * stats.bsize;
|
|
1538
|
+
const requiredSpace = totalRequiredSpace * 1.5; // 50% buffer for safety
|
|
1539
|
+
|
|
1540
|
+
if (availableSpace < requiredSpace) {
|
|
1541
|
+
const availableMB = Math.round(availableSpace / 1024 / 1024);
|
|
1542
|
+
const requiredMB = Math.round(requiredSpace / 1024 / 1024);
|
|
1543
|
+
errors.push(`Insufficient disk space: ${availableMB}MB available, ${requiredMB}MB required`);
|
|
1544
|
+
} else if (availableSpace < totalRequiredSpace * 2) {
|
|
1545
|
+
const availableMB = Math.round(availableSpace / 1024 / 1024);
|
|
1546
|
+
warnings.push(`Low disk space: ${availableMB}MB available. Consider freeing up space.`);
|
|
1547
|
+
}
|
|
1548
|
+
}
|
|
1549
|
+
} catch (error) {
|
|
1550
|
+
// Disk space check not available on this platform
|
|
1551
|
+
warnings.push('Could not check disk space (platform limitation)');
|
|
1552
|
+
}
|
|
1553
|
+
|
|
1554
|
+
// Check for conflicting installations
|
|
1555
|
+
for (const toolId of this.selections.tools) {
|
|
1556
|
+
const targetPath = this.selections.paths[toolId];
|
|
1557
|
+
const expandedPath = targetPath.startsWith('~')
|
|
1558
|
+
? path.join(os.homedir(), targetPath.slice(1))
|
|
1559
|
+
: path.resolve(targetPath);
|
|
1560
|
+
|
|
1561
|
+
const manifestPath = path.join(expandedPath, 'manifest.json');
|
|
1562
|
+
if (fs.existsSync(manifestPath)) {
|
|
1563
|
+
try {
|
|
1564
|
+
const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8'));
|
|
1565
|
+
if (manifest.tool !== toolId) {
|
|
1566
|
+
warnings.push(`Path ${targetPath} contains a different tool (${manifest.tool}). This may cause conflicts.`);
|
|
1567
|
+
}
|
|
1568
|
+
} catch (error) {
|
|
1569
|
+
warnings.push(`Cannot read existing manifest at ${targetPath}`);
|
|
1570
|
+
}
|
|
1571
|
+
}
|
|
1572
|
+
}
|
|
1573
|
+
|
|
1574
|
+
return {
|
|
1575
|
+
success: errors.length === 0,
|
|
1576
|
+
errors,
|
|
1577
|
+
warnings
|
|
1578
|
+
};
|
|
1579
|
+
}
|
|
1580
|
+
|
|
1581
|
+
async install() {
|
|
1582
|
+
console.log(`\n${colors.bright}Installing ${this.selections.variant} package...${colors.reset}\n`);
|
|
1583
|
+
|
|
1584
|
+
// Perform pre-installation checks
|
|
1585
|
+
console.log(`${colors.cyan}Performing pre-installation checks...${colors.reset}`);
|
|
1586
|
+
const preCheckResult = await this.performPreInstallationChecks();
|
|
1587
|
+
|
|
1588
|
+
if (!preCheckResult.success) {
|
|
1589
|
+
console.log(`\n${colors.red}Pre-installation checks failed:${colors.reset}`);
|
|
1590
|
+
preCheckResult.errors.forEach(error => {
|
|
1591
|
+
console.log(` ${colors.red}✗${colors.reset} ${error}`);
|
|
1592
|
+
});
|
|
1593
|
+
|
|
1594
|
+
if (preCheckResult.warnings.length > 0) {
|
|
1595
|
+
console.log(`\n${colors.yellow}Warnings:${colors.reset}`);
|
|
1596
|
+
preCheckResult.warnings.forEach(warning => {
|
|
1597
|
+
console.log(` ${colors.yellow}⚠${colors.reset} ${warning}`);
|
|
1598
|
+
});
|
|
1599
|
+
}
|
|
1600
|
+
|
|
1601
|
+
throw new Error('Pre-installation checks failed. Please resolve the issues above and try again.');
|
|
1602
|
+
}
|
|
1603
|
+
|
|
1604
|
+
if (preCheckResult.warnings.length > 0) {
|
|
1605
|
+
console.log(`${colors.yellow}Warnings detected:${colors.reset}`);
|
|
1606
|
+
preCheckResult.warnings.forEach(warning => {
|
|
1607
|
+
console.log(` ${colors.yellow}⚠${colors.reset} ${warning}`);
|
|
1608
|
+
});
|
|
1609
|
+
|
|
1610
|
+
// In silent mode, auto-proceed with warnings
|
|
1611
|
+
if (!this.cliArgs.silent) {
|
|
1612
|
+
const proceed = await this.askQuestion(
|
|
1613
|
+
`\n${colors.bright}Continue despite warnings? (Y/n):${colors.reset} `,
|
|
1614
|
+
'Y'
|
|
1615
|
+
);
|
|
1616
|
+
|
|
1617
|
+
if (proceed.toLowerCase() === 'n') {
|
|
1618
|
+
throw new Error('Installation cancelled by user due to warnings');
|
|
1619
|
+
}
|
|
1620
|
+
} else {
|
|
1621
|
+
console.log(`${colors.yellow}Silent mode: auto-proceeding despite warnings${colors.reset}`);
|
|
1622
|
+
}
|
|
1623
|
+
}
|
|
1624
|
+
|
|
1625
|
+
console.log(`${colors.green}✓ Pre-installation checks passed${colors.reset}\n`);
|
|
1626
|
+
|
|
1627
|
+
// Initialize InstallationEngine
|
|
1628
|
+
const PathManager = require('./path-manager');
|
|
1629
|
+
const InstallationEngine = require('./installation-engine');
|
|
1630
|
+
|
|
1631
|
+
const pathManager = new PathManager();
|
|
1632
|
+
const installationEngine = new InstallationEngine(pathManager, this.packageManager);
|
|
1633
|
+
|
|
1634
|
+
// Initialize state management for resume capability
|
|
1635
|
+
installationEngine.getStateManager().initializeState(
|
|
1636
|
+
this.selections.variant,
|
|
1637
|
+
this.selections.tools,
|
|
1638
|
+
this.selections.paths
|
|
1639
|
+
);
|
|
1640
|
+
await installationEngine.getStateManager().saveState({ stage: 'initializing' });
|
|
1641
|
+
|
|
1642
|
+
// Track overall progress
|
|
1643
|
+
let overallFilesCompleted = 0;
|
|
1644
|
+
let overallTotalFiles = 0;
|
|
1645
|
+
let successfulInstalls = [];
|
|
1646
|
+
let failedInstalls = [];
|
|
1647
|
+
let verificationResults = [];
|
|
1648
|
+
|
|
1649
|
+
// Calculate total files across all tools (only for valid tools)
|
|
1650
|
+
const toolFileCount = {};
|
|
1651
|
+
for (const toolId of this.selections.tools) {
|
|
1652
|
+
try {
|
|
1653
|
+
const contents = await this.packageManager.getPackageContents(toolId, this.selections.variant);
|
|
1654
|
+
toolFileCount[toolId] = contents.totalFiles;
|
|
1655
|
+
overallTotalFiles += contents.totalFiles;
|
|
1656
|
+
} catch (error) {
|
|
1657
|
+
// Skip tools that don't have valid packages
|
|
1658
|
+
toolFileCount[toolId] = 0;
|
|
1659
|
+
}
|
|
1660
|
+
}
|
|
1661
|
+
|
|
1662
|
+
const startTime = Date.now();
|
|
1663
|
+
|
|
1664
|
+
// Install each selected tool
|
|
1665
|
+
for (let i = 0; i < this.selections.tools.length; i++) {
|
|
1666
|
+
const toolId = this.selections.tools[i];
|
|
1667
|
+
const tool = this.tools.find(t => t.id === toolId);
|
|
1668
|
+
const targetPath = this.selections.paths[toolId];
|
|
1669
|
+
|
|
1670
|
+
console.log(`\n${colors.bright}[${i + 1}/${this.selections.tools.length}] Installing ${tool.name}...${colors.reset}`);
|
|
1671
|
+
console.log(`${colors.cyan}Target:${colors.reset} ${targetPath}\n`);
|
|
1672
|
+
|
|
1673
|
+
// Track files completed for this tool
|
|
1674
|
+
let toolFilesCompleted = 0;
|
|
1675
|
+
let toolStartTime = Date.now();
|
|
1676
|
+
|
|
1677
|
+
try {
|
|
1678
|
+
// Install with progress callback
|
|
1679
|
+
await installationEngine.installPackage(
|
|
1680
|
+
toolId,
|
|
1681
|
+
this.selections.variant,
|
|
1682
|
+
targetPath,
|
|
1683
|
+
(progress) => {
|
|
1684
|
+
// Update tool files completed (only count new files)
|
|
1685
|
+
if (progress.filesCompleted > toolFilesCompleted) {
|
|
1686
|
+
const newFiles = progress.filesCompleted - toolFilesCompleted;
|
|
1687
|
+
overallFilesCompleted += newFiles;
|
|
1688
|
+
toolFilesCompleted = progress.filesCompleted;
|
|
1689
|
+
}
|
|
1690
|
+
|
|
1691
|
+
// Calculate elapsed time and speed
|
|
1692
|
+
const elapsedMs = Date.now() - toolStartTime;
|
|
1693
|
+
const elapsedSec = Math.floor(elapsedMs / 1000);
|
|
1694
|
+
const elapsedMin = Math.floor(elapsedSec / 60);
|
|
1695
|
+
const elapsedSecRemainder = elapsedSec % 60;
|
|
1696
|
+
const elapsedFormatted = `${elapsedMin}:${elapsedSecRemainder.toString().padStart(2, '0')}`;
|
|
1697
|
+
|
|
1698
|
+
// Calculate transfer speed (bytes per second)
|
|
1699
|
+
const speed = elapsedMs > 0 ? progress.bytesTransferred / (elapsedMs / 1000) : 0;
|
|
1700
|
+
const speedFormatted = this.formatBytes(speed);
|
|
1701
|
+
|
|
1702
|
+
// Calculate ETA
|
|
1703
|
+
const remainingBytes = progress.totalBytes - progress.bytesTransferred;
|
|
1704
|
+
const etaSec = speed > 0 ? Math.floor(remainingBytes / speed) : 0;
|
|
1705
|
+
const etaMin = Math.floor(etaSec / 60);
|
|
1706
|
+
const etaSecRemainder = etaSec % 60;
|
|
1707
|
+
const etaFormatted = `${etaMin}:${etaSecRemainder.toString().padStart(2, '0')}`;
|
|
1708
|
+
|
|
1709
|
+
// Draw progress bar for current tool
|
|
1710
|
+
this.drawProgressBar(
|
|
1711
|
+
progress.filesCompleted,
|
|
1712
|
+
progress.totalFiles,
|
|
1713
|
+
progress.percentage,
|
|
1714
|
+
progress.currentFile,
|
|
1715
|
+
this.formatBytes(progress.bytesTransferred),
|
|
1716
|
+
this.formatBytes(progress.totalBytes),
|
|
1717
|
+
speedFormatted,
|
|
1718
|
+
elapsedFormatted,
|
|
1719
|
+
etaFormatted
|
|
1720
|
+
);
|
|
1721
|
+
|
|
1722
|
+
// Draw overall progress
|
|
1723
|
+
// Cap overall percentage at 100% to handle file count mismatches
|
|
1724
|
+
const overallPercentage = overallTotalFiles > 0
|
|
1725
|
+
? Math.min(100, Math.round((overallFilesCompleted / overallTotalFiles) * 100))
|
|
1726
|
+
: 0;
|
|
1727
|
+
|
|
1728
|
+
this.drawOverallProgress(
|
|
1729
|
+
overallFilesCompleted,
|
|
1730
|
+
overallTotalFiles,
|
|
1731
|
+
overallPercentage,
|
|
1732
|
+
i + 1,
|
|
1733
|
+
this.selections.tools.length
|
|
1734
|
+
);
|
|
1735
|
+
}
|
|
1736
|
+
);
|
|
1737
|
+
|
|
1738
|
+
// Clear progress lines after completion
|
|
1739
|
+
process.stdout.write('\x1b[2K\r'); // Clear current line
|
|
1740
|
+
process.stdout.write('\x1b[1A\x1b[2K\r'); // Clear previous line
|
|
1741
|
+
|
|
1742
|
+
console.log(`${colors.green}✓ ${tool.name} installed successfully${colors.reset}`);
|
|
1743
|
+
console.log(` ${colors.cyan}Location:${colors.reset} ${targetPath}`);
|
|
1744
|
+
console.log(` ${colors.cyan}Files:${colors.reset} ${toolFilesCompleted} files`);
|
|
1745
|
+
|
|
1746
|
+
// Verify installation
|
|
1747
|
+
console.log(` ${colors.cyan}Verifying installation...${colors.reset}`);
|
|
1748
|
+
const verification = await installationEngine.verifyInstallation(toolId, targetPath);
|
|
1749
|
+
|
|
1750
|
+
if (verification.valid) {
|
|
1751
|
+
console.log(` ${colors.green}✓ Verification passed${colors.reset}`);
|
|
1752
|
+
} else {
|
|
1753
|
+
console.log(` ${colors.yellow}⚠ Verification completed with issues${colors.reset}`);
|
|
1754
|
+
}
|
|
1755
|
+
|
|
1756
|
+
successfulInstalls.push({
|
|
1757
|
+
toolId,
|
|
1758
|
+
name: tool.name,
|
|
1759
|
+
path: targetPath,
|
|
1760
|
+
fileCount: toolFilesCompleted
|
|
1761
|
+
});
|
|
1762
|
+
|
|
1763
|
+
verificationResults.push(verification);
|
|
1764
|
+
|
|
1765
|
+
// Mark tool as completed in state
|
|
1766
|
+
await installationEngine.getStateManager().completeCurrentTool();
|
|
1767
|
+
|
|
1768
|
+
} catch (error) {
|
|
1769
|
+
// Clear progress lines on error
|
|
1770
|
+
process.stdout.write('\x1b[2K\r');
|
|
1771
|
+
process.stdout.write('\x1b[1A\x1b[2K\r');
|
|
1772
|
+
|
|
1773
|
+
// Categorize the error for better user guidance
|
|
1774
|
+
const errorInfo = this.categorizeError(error);
|
|
1775
|
+
|
|
1776
|
+
console.error(`${colors.red}✗ Failed to install ${tool.name}${colors.reset}`);
|
|
1777
|
+
console.error(` ${colors.red}Error Type:${colors.reset} ${errorInfo.type}`);
|
|
1778
|
+
console.error(` ${colors.red}Message:${colors.reset} ${error.message}\n`);
|
|
1779
|
+
|
|
1780
|
+
// Display actionable advice
|
|
1781
|
+
if (errorInfo.advice.length > 0) {
|
|
1782
|
+
console.error(` ${colors.yellow}Suggested Actions:${colors.reset}`);
|
|
1783
|
+
errorInfo.advice.slice(0, 3).forEach((advice, index) => {
|
|
1784
|
+
console.error(` ${index + 1}. ${advice}`);
|
|
1785
|
+
});
|
|
1786
|
+
console.error('');
|
|
1787
|
+
}
|
|
1788
|
+
|
|
1789
|
+
failedInstalls.push({
|
|
1790
|
+
toolId,
|
|
1791
|
+
name: tool.name,
|
|
1792
|
+
path: targetPath,
|
|
1793
|
+
error: error.message,
|
|
1794
|
+
errorType: errorInfo.type
|
|
1795
|
+
});
|
|
1796
|
+
|
|
1797
|
+
// Mark tool as failed in state
|
|
1798
|
+
await installationEngine.getStateManager().failCurrentTool(error);
|
|
1799
|
+
|
|
1800
|
+
// Offer recovery options if there are more tools to install
|
|
1801
|
+
if (i < this.selections.tools.length - 1) {
|
|
1802
|
+
const shouldContinue = await this.offerRecoveryOptions(tool.name, i + 1, this.selections.tools.length);
|
|
1803
|
+
|
|
1804
|
+
if (!shouldContinue) {
|
|
1805
|
+
console.log(`\n${colors.yellow}Installation cancelled by user${colors.reset}`);
|
|
1806
|
+
break; // Stop installing remaining tools
|
|
1807
|
+
}
|
|
1808
|
+
}
|
|
1809
|
+
}
|
|
1810
|
+
}
|
|
1811
|
+
|
|
1812
|
+
// Calculate total elapsed time
|
|
1813
|
+
const totalElapsedMs = Date.now() - startTime;
|
|
1814
|
+
const totalElapsedSec = Math.floor(totalElapsedMs / 1000);
|
|
1815
|
+
const totalElapsedMin = Math.floor(totalElapsedSec / 60);
|
|
1816
|
+
const totalElapsedSecRemainder = totalElapsedSec % 60;
|
|
1817
|
+
const totalElapsedFormatted = `${totalElapsedMin}:${totalElapsedSecRemainder.toString().padStart(2, '0')}`;
|
|
1818
|
+
|
|
1819
|
+
// Display final summary
|
|
1820
|
+
console.log(`\n${colors.bright}Installation Complete${colors.reset}`);
|
|
1821
|
+
console.log(`${colors.cyan}Total time:${colors.reset} ${totalElapsedFormatted}`);
|
|
1822
|
+
console.log(`${colors.cyan}Total files:${colors.reset} ${overallFilesCompleted} files\n`);
|
|
1823
|
+
|
|
1824
|
+
if (successfulInstalls.length > 0) {
|
|
1825
|
+
console.log(`${colors.green}Successfully installed:${colors.reset}`);
|
|
1826
|
+
for (const install of successfulInstalls) {
|
|
1827
|
+
console.log(` ${colors.green}✓${colors.reset} ${install.name} (${install.fileCount} files)`);
|
|
1828
|
+
}
|
|
1829
|
+
}
|
|
1830
|
+
|
|
1831
|
+
if (failedInstalls.length > 0) {
|
|
1832
|
+
console.log(`\n${colors.red}Failed installations:${colors.reset}`);
|
|
1833
|
+
for (const install of failedInstalls) {
|
|
1834
|
+
console.log(` ${colors.red}✗${colors.reset} ${install.name} (${install.errorType}): ${install.error}`);
|
|
1835
|
+
}
|
|
1836
|
+
console.log(`\n${colors.yellow}Note: Failed installations have been automatically rolled back${colors.reset}`);
|
|
1837
|
+
console.log(`${colors.yellow}No partial installations remain on your system${colors.reset}`);
|
|
1838
|
+
|
|
1839
|
+
// Offer retry options for failed installations
|
|
1840
|
+
if (failedInstalls.length > 0 && successfulInstalls.length > 0) {
|
|
1841
|
+
console.log(`\n${colors.cyan}You can retry failed installations by running the installer again${colors.reset}`);
|
|
1842
|
+
}
|
|
1843
|
+
}
|
|
1844
|
+
|
|
1845
|
+
// Display detailed verification reports for successful installations
|
|
1846
|
+
if (successfulInstalls.length > 0 && verificationResults.length > 0) {
|
|
1847
|
+
console.log(`\n${colors.bright}${'='.repeat(60)}${colors.reset}`);
|
|
1848
|
+
for (let i = 0; i < successfulInstalls.length; i++) {
|
|
1849
|
+
const install = successfulInstalls[i];
|
|
1850
|
+
const verification = verificationResults[i];
|
|
1851
|
+
this.displayVerificationReport(verification, install.name);
|
|
1852
|
+
}
|
|
1853
|
+
console.log(`${colors.bright}${'='.repeat(60)}${colors.reset}\n`);
|
|
1854
|
+
}
|
|
1855
|
+
|
|
1856
|
+
// Generate and save installation report
|
|
1857
|
+
if (successfulInstalls.length > 0 || failedInstalls.length > 0) {
|
|
1858
|
+
await this.generateInstallationReport(
|
|
1859
|
+
successfulInstalls,
|
|
1860
|
+
failedInstalls,
|
|
1861
|
+
verificationResults,
|
|
1862
|
+
totalElapsedMs
|
|
1863
|
+
);
|
|
1864
|
+
}
|
|
1865
|
+
|
|
1866
|
+
// Clear installation state if all tools completed successfully
|
|
1867
|
+
if (failedInstalls.length === 0) {
|
|
1868
|
+
await installationEngine.getStateManager().clearState();
|
|
1869
|
+
console.log(`${colors.green}✓ Installation state cleared${colors.reset}`);
|
|
1870
|
+
} else {
|
|
1871
|
+
console.log(`\n${colors.yellow}Installation state preserved for resume capability${colors.reset}`);
|
|
1872
|
+
console.log(`${colors.yellow}Run the installer again to retry failed tools${colors.reset}`);
|
|
1873
|
+
}
|
|
1874
|
+
|
|
1875
|
+
// Collect telemetry data (if user has consented)
|
|
1876
|
+
await this.collectInstallationTelemetry(
|
|
1877
|
+
failedInstalls.length === 0,
|
|
1878
|
+
this.selections.tools.length,
|
|
1879
|
+
failedInstalls.length,
|
|
1880
|
+
0, // warnings are tracked in verification
|
|
1881
|
+
totalElapsedMs
|
|
1882
|
+
);
|
|
1883
|
+
}
|
|
1884
|
+
|
|
1885
|
+
/**
|
|
1886
|
+
* Draw progress bar for current tool installation
|
|
1887
|
+
* Updates in place without scrolling using ANSI escape codes
|
|
1888
|
+
*/
|
|
1889
|
+
drawProgressBar(filesCompleted, totalFiles, percentage, currentFile, bytesTransferred, totalBytes, speed, elapsed, eta) {
|
|
1890
|
+
// Move cursor to beginning of line and clear it
|
|
1891
|
+
process.stdout.write('\x1b[2K\r');
|
|
1892
|
+
|
|
1893
|
+
// Calculate progress bar width (40 characters)
|
|
1894
|
+
const barWidth = 40;
|
|
1895
|
+
const filledWidth = Math.round((percentage / 100) * barWidth);
|
|
1896
|
+
const emptyWidth = barWidth - filledWidth;
|
|
1897
|
+
|
|
1898
|
+
// Build progress bar
|
|
1899
|
+
const bar = '█'.repeat(filledWidth) + '░'.repeat(emptyWidth);
|
|
1900
|
+
|
|
1901
|
+
// Truncate current file name if too long
|
|
1902
|
+
const maxFileNameLength = 50;
|
|
1903
|
+
let displayFileName = currentFile;
|
|
1904
|
+
if (displayFileName.length > maxFileNameLength) {
|
|
1905
|
+
displayFileName = '...' + displayFileName.slice(-(maxFileNameLength - 3));
|
|
1906
|
+
}
|
|
1907
|
+
|
|
1908
|
+
// Display progress bar
|
|
1909
|
+
process.stdout.write(
|
|
1910
|
+
`[${colors.cyan}${bar}${colors.reset}] ${percentage}% (${filesCompleted}/${totalFiles} files)\n`
|
|
1911
|
+
);
|
|
1912
|
+
|
|
1913
|
+
// Display current file and stats
|
|
1914
|
+
process.stdout.write(
|
|
1915
|
+
`${colors.yellow}Copying:${colors.reset} ${displayFileName} | ` +
|
|
1916
|
+
`${bytesTransferred}/${totalBytes} | ` +
|
|
1917
|
+
`${speed}/s | ` +
|
|
1918
|
+
`Elapsed: ${elapsed} | ` +
|
|
1919
|
+
`ETA: ${eta}`
|
|
1920
|
+
);
|
|
1921
|
+
|
|
1922
|
+
// Move cursor up one line to overwrite on next update
|
|
1923
|
+
process.stdout.write('\x1b[1A');
|
|
1924
|
+
}
|
|
1925
|
+
|
|
1926
|
+
/**
|
|
1927
|
+
* Draw overall progress across all tools
|
|
1928
|
+
*/
|
|
1929
|
+
drawOverallProgress(filesCompleted, totalFiles, percentage, currentTool, totalTools) {
|
|
1930
|
+
// This is called after the tool progress, so cursor is already up one line
|
|
1931
|
+
// Move down to write overall progress below the tool progress
|
|
1932
|
+
process.stdout.write('\x1b[2B'); // Move down 2 lines
|
|
1933
|
+
process.stdout.write('\x1b[2K\r'); // Clear line
|
|
1934
|
+
|
|
1935
|
+
// Display overall progress
|
|
1936
|
+
process.stdout.write(
|
|
1937
|
+
`${colors.bright}Overall:${colors.reset} Tool ${currentTool}/${totalTools} | ` +
|
|
1938
|
+
`${filesCompleted}/${totalFiles} files (${percentage}%)`
|
|
1939
|
+
);
|
|
1940
|
+
|
|
1941
|
+
// Move cursor back up
|
|
1942
|
+
process.stdout.write('\x1b[1A'); // Move up 1 line to be ready for next tool progress update
|
|
1943
|
+
}
|
|
1944
|
+
|
|
1945
|
+
askQuestion(prompt, defaultValue = '') {
|
|
1946
|
+
return new Promise(resolve => {
|
|
1947
|
+
this.rl.question(prompt, (answer) => {
|
|
1948
|
+
resolve(answer.trim() || defaultValue);
|
|
1949
|
+
});
|
|
1950
|
+
});
|
|
1951
|
+
}
|
|
1952
|
+
|
|
1953
|
+
/**
|
|
1954
|
+
* Display verification report for a single tool
|
|
1955
|
+
* Shows verification status, component counts, and any issues/warnings
|
|
1956
|
+
*
|
|
1957
|
+
* @param {object} verification - Verification result from InstallationEngine
|
|
1958
|
+
* @param {string} toolName - Display name of the tool
|
|
1959
|
+
*/
|
|
1960
|
+
displayVerificationReport(verification, toolName) {
|
|
1961
|
+
console.log(`\n${colors.bright}Verification Report: ${toolName}${colors.reset}`);
|
|
1962
|
+
console.log('─'.repeat(60));
|
|
1963
|
+
|
|
1964
|
+
if (verification.valid) {
|
|
1965
|
+
console.log(`${colors.green}✓ Installation verified successfully${colors.reset}`);
|
|
1966
|
+
} else {
|
|
1967
|
+
console.log(`${colors.red}✗ Verification failed${colors.reset}`);
|
|
1968
|
+
}
|
|
1969
|
+
|
|
1970
|
+
// Display manifest location
|
|
1971
|
+
const manifestPath = path.join(verification.targetPath, 'manifest.json');
|
|
1972
|
+
console.log(`\n${colors.cyan}Manifest:${colors.reset} ${manifestPath}`);
|
|
1973
|
+
|
|
1974
|
+
// Display variant and version info
|
|
1975
|
+
if (verification.variant) {
|
|
1976
|
+
console.log(`${colors.cyan}Variant:${colors.reset} ${verification.variant}`);
|
|
1977
|
+
}
|
|
1978
|
+
if (verification.version) {
|
|
1979
|
+
console.log(`${colors.cyan}Version:${colors.reset} ${verification.version}`);
|
|
1980
|
+
}
|
|
1981
|
+
|
|
1982
|
+
// Display component counts
|
|
1983
|
+
console.log(`\n${colors.cyan}Components:${colors.reset}`);
|
|
1984
|
+
const components = verification.components;
|
|
1985
|
+
const agentCount = components.agents.found;
|
|
1986
|
+
const skillCount = components.skills.found;
|
|
1987
|
+
const resourceCount = components.resources.found;
|
|
1988
|
+
const hookCount = components.hooks.found;
|
|
1989
|
+
|
|
1990
|
+
const componentSummary = [];
|
|
1991
|
+
if (agentCount > 0) componentSummary.push(`${agentCount} agent${agentCount !== 1 ? 's' : ''}`);
|
|
1992
|
+
if (skillCount > 0) componentSummary.push(`${skillCount} skill${skillCount !== 1 ? 's' : ''}`);
|
|
1993
|
+
if (resourceCount > 0) componentSummary.push(`${resourceCount} resource${resourceCount !== 1 ? 's' : ''}`);
|
|
1994
|
+
if (hookCount > 0) componentSummary.push(`${hookCount} hook${hookCount !== 1 ? 's' : ''}`);
|
|
1995
|
+
|
|
1996
|
+
console.log(` ${componentSummary.join(', ')}`);
|
|
1997
|
+
|
|
1998
|
+
// Display issues if any
|
|
1999
|
+
if (verification.issues.length > 0) {
|
|
2000
|
+
console.log(`\n${colors.red}Issues:${colors.reset}`);
|
|
2001
|
+
for (const issue of verification.issues) {
|
|
2002
|
+
console.log(` ${colors.red}✗${colors.reset} ${issue.message}`);
|
|
2003
|
+
}
|
|
2004
|
+
}
|
|
2005
|
+
|
|
2006
|
+
// Display warnings if any
|
|
2007
|
+
if (verification.warnings.length > 0) {
|
|
2008
|
+
console.log(`\n${colors.yellow}Warnings:${colors.reset}`);
|
|
2009
|
+
for (const warning of verification.warnings) {
|
|
2010
|
+
console.log(` ${colors.yellow}⚠${colors.reset} ${warning.message}`);
|
|
2011
|
+
}
|
|
2012
|
+
}
|
|
2013
|
+
|
|
2014
|
+
// Display next steps for successful installations
|
|
2015
|
+
if (verification.valid) {
|
|
2016
|
+
console.log(`\n${colors.bright}Next Steps:${colors.reset}`);
|
|
2017
|
+
console.log(` To use ${toolName}, navigate to: ${verification.targetPath}`);
|
|
2018
|
+
|
|
2019
|
+
// Provide tool-specific usage hints
|
|
2020
|
+
const toolId = verification.toolId;
|
|
2021
|
+
if (toolId === 'claude') {
|
|
2022
|
+
console.log(` ${colors.cyan}Quick start:${colors.reset} Run 'claude' to start using Claude Code`);
|
|
2023
|
+
} else if (toolId === 'opencode') {
|
|
2024
|
+
console.log(` ${colors.cyan}Quick start:${colors.reset} Run 'opencode' to start using Opencode`);
|
|
2025
|
+
} else if (toolId === 'ampcode') {
|
|
2026
|
+
console.log(` ${colors.cyan}Quick start:${colors.reset} Run 'ampcode' to start using Ampcode`);
|
|
2027
|
+
} else if (toolId === 'droid') {
|
|
2028
|
+
console.log(` ${colors.cyan}Quick start:${colors.reset} Run 'droid' to start using Droid`);
|
|
2029
|
+
}
|
|
2030
|
+
}
|
|
2031
|
+
}
|
|
2032
|
+
|
|
2033
|
+
/**
|
|
2034
|
+
* Generate and save installation report to ~/.agentic-kit-install.log
|
|
2035
|
+
* Creates a detailed log of the installation session
|
|
2036
|
+
*
|
|
2037
|
+
* @param {array} successfulInstalls - Array of successful installation objects
|
|
2038
|
+
* @param {array} failedInstalls - Array of failed installation objects
|
|
2039
|
+
* @param {array} verificationResults - Array of verification result objects
|
|
2040
|
+
* @param {number} totalElapsedMs - Total elapsed time in milliseconds
|
|
2041
|
+
*/
|
|
2042
|
+
async generateInstallationReport(successfulInstalls, failedInstalls, verificationResults, totalElapsedMs) {
|
|
2043
|
+
const ReportTemplate = require('./report-template');
|
|
2044
|
+
const reportTemplate = new ReportTemplate();
|
|
2045
|
+
|
|
2046
|
+
// Prepare installation data for the report template
|
|
2047
|
+
const startTime = Date.now() - totalElapsedMs;
|
|
2048
|
+
const endTime = Date.now();
|
|
2049
|
+
|
|
2050
|
+
// Build tools array with complete information
|
|
2051
|
+
const tools = [];
|
|
2052
|
+
const allErrors = [];
|
|
2053
|
+
const allWarnings = [];
|
|
2054
|
+
|
|
2055
|
+
// Process successful installations
|
|
2056
|
+
for (let i = 0; i < successfulInstalls.length; i++) {
|
|
2057
|
+
const install = successfulInstalls[i];
|
|
2058
|
+
const verification = verificationResults[i];
|
|
2059
|
+
|
|
2060
|
+
// Get package size information
|
|
2061
|
+
let sizeBytes = 0;
|
|
2062
|
+
try {
|
|
2063
|
+
const sizeInfo = await this.packageManager.getPackageSize(install.toolId, this.selections.variant);
|
|
2064
|
+
sizeBytes = sizeInfo.bytes || 0;
|
|
2065
|
+
} catch (error) {
|
|
2066
|
+
// If we can't get size, estimate based on file count (rough estimate: 15KB per file)
|
|
2067
|
+
sizeBytes = install.fileCount * 15 * 1024;
|
|
2068
|
+
}
|
|
2069
|
+
|
|
2070
|
+
// Get manifest path
|
|
2071
|
+
const manifestPath = path.join(install.path, 'manifest.json');
|
|
2072
|
+
|
|
2073
|
+
tools.push({
|
|
2074
|
+
toolId: install.toolId,
|
|
2075
|
+
path: install.path,
|
|
2076
|
+
filesInstalled: install.fileCount,
|
|
2077
|
+
sizeBytes: sizeBytes,
|
|
2078
|
+
components: verification && verification.components ? {
|
|
2079
|
+
agents: verification.components.agents.found,
|
|
2080
|
+
skills: verification.components.skills.found,
|
|
2081
|
+
resources: verification.components.resources.found,
|
|
2082
|
+
hooks: verification.components.hooks.found
|
|
2083
|
+
} : {},
|
|
2084
|
+
verified: verification ? verification.valid : false,
|
|
2085
|
+
verificationStatus: verification && verification.valid ? 'All components verified successfully' : 'Verification completed with issues',
|
|
2086
|
+
manifestPath: manifestPath
|
|
2087
|
+
});
|
|
2088
|
+
|
|
2089
|
+
// Collect warnings from verification
|
|
2090
|
+
if (verification && verification.warnings && verification.warnings.length > 0) {
|
|
2091
|
+
verification.warnings.forEach(warning => {
|
|
2092
|
+
allWarnings.push(`[${install.toolId}] ${warning.message}`);
|
|
2093
|
+
});
|
|
2094
|
+
}
|
|
2095
|
+
|
|
2096
|
+
// Collect issues from verification as errors
|
|
2097
|
+
if (verification && verification.issues && verification.issues.length > 0) {
|
|
2098
|
+
verification.issues.forEach(issue => {
|
|
2099
|
+
allErrors.push(`[${install.toolId}] ${issue.message}`);
|
|
2100
|
+
});
|
|
2101
|
+
}
|
|
2102
|
+
}
|
|
2103
|
+
|
|
2104
|
+
// Process failed installations
|
|
2105
|
+
for (const install of failedInstalls) {
|
|
2106
|
+
allErrors.push(`[${install.toolId}] Installation failed: ${install.error}`);
|
|
2107
|
+
}
|
|
2108
|
+
|
|
2109
|
+
// Build installation data object
|
|
2110
|
+
const installationData = {
|
|
2111
|
+
variant: this.selections.variant,
|
|
2112
|
+
tools: tools,
|
|
2113
|
+
startTime: startTime,
|
|
2114
|
+
endTime: endTime,
|
|
2115
|
+
success: failedInstalls.length === 0,
|
|
2116
|
+
errors: allErrors,
|
|
2117
|
+
warnings: allWarnings
|
|
2118
|
+
};
|
|
2119
|
+
|
|
2120
|
+
// Generate and save report using ReportTemplate
|
|
2121
|
+
try {
|
|
2122
|
+
const reportPath = await reportTemplate.createAndSaveReport(installationData);
|
|
2123
|
+
console.log(`\n${colors.cyan}Installation report saved to:${colors.reset} ${reportPath}`);
|
|
2124
|
+
} catch (error) {
|
|
2125
|
+
console.warn(`${colors.yellow}Warning: Could not save installation report: ${error.message}${colors.reset}`);
|
|
2126
|
+
}
|
|
2127
|
+
}
|
|
2128
|
+
|
|
2129
|
+
/**
|
|
2130
|
+
* Prompt user for telemetry consent
|
|
2131
|
+
* Only prompts if consent hasn't been set before and --no-telemetry flag not present
|
|
2132
|
+
*
|
|
2133
|
+
* @returns {Promise<void>}
|
|
2134
|
+
*/
|
|
2135
|
+
async promptTelemetryConsent() {
|
|
2136
|
+
// Skip if --no-telemetry flag is present
|
|
2137
|
+
if (this.cliArgs.noTelemetry) {
|
|
2138
|
+
return;
|
|
2139
|
+
}
|
|
2140
|
+
|
|
2141
|
+
// Skip if in silent mode
|
|
2142
|
+
if (this.cliArgs.silent) {
|
|
2143
|
+
return;
|
|
2144
|
+
}
|
|
2145
|
+
|
|
2146
|
+
const Telemetry = require('./telemetry');
|
|
2147
|
+
const telemetry = new Telemetry();
|
|
2148
|
+
|
|
2149
|
+
// Check if user has already made a decision
|
|
2150
|
+
const hasConsent = await telemetry.hasConsent();
|
|
2151
|
+
const hasOptedOut = await telemetry.hasOptedOut();
|
|
2152
|
+
|
|
2153
|
+
// Only prompt if user hasn't decided yet
|
|
2154
|
+
if (!hasConsent && !hasOptedOut) {
|
|
2155
|
+
console.log(`\n${colors.cyan}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${colors.reset}`);
|
|
2156
|
+
console.log(`${colors.bright}Help Improve Agentic Kit${colors.reset}\n`);
|
|
2157
|
+
console.log('Would you like to share anonymous usage statistics to help improve agentic-kit?');
|
|
2158
|
+
console.log('\nData collected:');
|
|
2159
|
+
console.log(' • Package variant selected (lite/standard/pro)');
|
|
2160
|
+
console.log(' • Number of tools installed');
|
|
2161
|
+
console.log(' • Installation time and success status');
|
|
2162
|
+
console.log(' • Operating system type');
|
|
2163
|
+
console.log(' • Node.js version');
|
|
2164
|
+
console.log('\nData NOT collected:');
|
|
2165
|
+
console.log(' • File paths or directory locations');
|
|
2166
|
+
console.log(' • Personal information');
|
|
2167
|
+
console.log(' • Specific tool names');
|
|
2168
|
+
console.log(' • Any identifying information');
|
|
2169
|
+
console.log('\nYou can change this setting later or opt-out anytime.');
|
|
2170
|
+
console.log(`For details, see: ${colors.cyan}docs/PRIVACY.md${colors.reset}`);
|
|
2171
|
+
console.log(`${colors.cyan}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${colors.reset}\n`);
|
|
2172
|
+
|
|
2173
|
+
const answer = await this.askQuestion(
|
|
2174
|
+
`${colors.bright}Share anonymous usage data? (y/N):${colors.reset} `,
|
|
2175
|
+
'N'
|
|
2176
|
+
);
|
|
2177
|
+
|
|
2178
|
+
const consent = answer.toLowerCase() === 'y';
|
|
2179
|
+
await telemetry.setConsent(consent);
|
|
2180
|
+
|
|
2181
|
+
if (consent) {
|
|
2182
|
+
console.log(`${colors.green}✓ Thank you! Anonymous usage statistics enabled${colors.reset}\n`);
|
|
2183
|
+
} else {
|
|
2184
|
+
console.log(`${colors.yellow}Usage statistics disabled${colors.reset}\n`);
|
|
2185
|
+
}
|
|
2186
|
+
}
|
|
2187
|
+
}
|
|
2188
|
+
|
|
2189
|
+
/**
|
|
2190
|
+
* Collect and send telemetry data for installation
|
|
2191
|
+
*
|
|
2192
|
+
* @param {boolean} success - Installation success status
|
|
2193
|
+
* @param {number} toolCount - Number of tools installed
|
|
2194
|
+
* @param {number} errorCount - Number of errors encountered
|
|
2195
|
+
* @param {number} warningCount - Number of warnings encountered
|
|
2196
|
+
* @param {number} installationTime - Installation time in milliseconds
|
|
2197
|
+
* @returns {Promise<void>}
|
|
2198
|
+
*/
|
|
2199
|
+
async collectInstallationTelemetry(success, toolCount, errorCount, warningCount, installationTime) {
|
|
2200
|
+
// Skip if --no-telemetry flag is present
|
|
2201
|
+
if (this.cliArgs.noTelemetry) {
|
|
2202
|
+
return;
|
|
2203
|
+
}
|
|
2204
|
+
|
|
2205
|
+
const Telemetry = require('./telemetry');
|
|
2206
|
+
const telemetry = new Telemetry();
|
|
2207
|
+
|
|
2208
|
+
try {
|
|
2209
|
+
await telemetry.collectInstallationStats({
|
|
2210
|
+
variant: this.selections.variant,
|
|
2211
|
+
toolCount: toolCount,
|
|
2212
|
+
installationTime: installationTime,
|
|
2213
|
+
success: success,
|
|
2214
|
+
errorCount: errorCount,
|
|
2215
|
+
warningCount: warningCount
|
|
2216
|
+
});
|
|
2217
|
+
} catch (error) {
|
|
2218
|
+
// Silently fail - don't interrupt user experience for telemetry issues
|
|
2219
|
+
}
|
|
2220
|
+
}
|
|
2221
|
+
}
|
|
2222
|
+
|
|
2223
|
+
// Run installer if called directly
|
|
2224
|
+
if (require.main === module) {
|
|
2225
|
+
const installer = new InteractiveInstaller();
|
|
2226
|
+
installer.run().catch(console.error);
|
|
2227
|
+
}
|
|
2228
|
+
|
|
2229
|
+
module.exports = InteractiveInstaller;
|