@hasna/skills 0.1.26 → 0.1.29
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/LICENSE +1 -10
- package/README.md +141 -39
- package/bin/index.js +30122 -27575
- package/bin/mcp.js +22112 -18593
- package/dist/cli/cli.test-utils.d.ts +15 -0
- package/dist/cli/commands/auth.d.ts +2 -0
- package/dist/cli/commands/install.d.ts +1 -1
- package/dist/cli/commands/runtime-mcp.d.ts +4 -0
- package/dist/index.d.ts +9 -4
- package/dist/index.js +11607 -597
- package/dist/lib/auth-store.d.ts +13 -0
- package/dist/lib/installer.d.ts +58 -55
- package/dist/lib/mcp-contracts.d.ts +86 -0
- package/dist/lib/project-state.d.ts +43 -0
- package/dist/lib/registry-data/business-marketing.d.ts +2 -0
- package/dist/lib/registry-data/communication.d.ts +2 -0
- package/dist/lib/registry-data/content-generation.d.ts +2 -0
- package/dist/lib/registry-data/data-analysis.d.ts +2 -0
- package/dist/lib/registry-data/design-branding.d.ts +2 -0
- package/dist/lib/registry-data/development-tools.d.ts +2 -0
- package/dist/lib/registry-data/education-learning.d.ts +2 -0
- package/dist/lib/registry-data/event-management.d.ts +2 -0
- package/dist/lib/registry-data/finance-compliance.d.ts +2 -0
- package/dist/lib/registry-data/health-wellness.d.ts +2 -0
- package/dist/lib/registry-data/index.d.ts +2 -0
- package/dist/lib/registry-data/media-processing.d.ts +2 -0
- package/dist/lib/registry-data/productivity-organization.d.ts +2 -0
- package/dist/lib/registry-data/project-management.d.ts +2 -0
- package/dist/lib/registry-data/research-writing.d.ts +2 -0
- package/dist/lib/registry-data/science-academic.d.ts +2 -0
- package/dist/lib/registry-data/travel-lifestyle.d.ts +2 -0
- package/dist/lib/registry-data/web-browser.d.ts +2 -0
- package/dist/lib/registry-types.d.ts +27 -0
- package/dist/lib/registry.d.ts +6 -18
- package/dist/lib/remote-registry.d.ts +3 -0
- package/dist/lib/run-state.d.ts +60 -0
- package/dist/lib/skill-aliases.d.ts +17 -0
- package/dist/lib/skillinfo.d.ts +5 -1
- package/dist/mcp/discovery-tools.d.ts +2 -0
- package/dist/mcp/helpers.d.ts +26 -0
- package/dist/mcp/http.d.ts +10 -0
- package/dist/mcp/index.d.ts +3 -2
- package/dist/mcp/operation-tools.d.ts +2 -0
- package/dist/mcp/resource-meta-tools.d.ts +2 -0
- package/dist/mcp/schedule-tools.d.ts +2 -0
- package/dist/mcp/server.d.ts +4 -0
- package/dist/types/api.d.ts +7 -4
- package/package.json +23 -10
- package/skills/_common/http-client.ts +1 -1
- package/skills/_common/index.ts +2 -3
- package/skills/_common/install.sh +5 -110
- package/skills/_common/installer.ts +31 -282
- package/skills/_common/skill-install.ts +14 -181
- package/skills/ad-creative-pack/SKILL.md +45 -0
- package/skills/ad-creative-pack/package.json +14 -0
- package/skills/advanced-math/package.json +3 -1
- package/skills/advanced-math/src/calculators.ts +118 -0
- package/skills/advanced-math/src/cli.ts +130 -0
- package/skills/advanced-math/src/conversion.ts +90 -0
- package/skills/advanced-math/src/finance.ts +75 -0
- package/skills/advanced-math/src/formatting.ts +95 -0
- package/skills/advanced-math/src/index.ts +24 -702
- package/skills/advanced-math/src/runtime.ts +49 -0
- package/skills/advanced-math/src/symbolic.ts +110 -0
- package/skills/advanced-math/src/types.ts +36 -0
- package/skills/analyze-data/SKILL.md +2 -2
- package/skills/analyze-data/src/analysis.ts +401 -0
- package/skills/analyze-data/src/cli.ts +66 -0
- package/skills/analyze-data/src/formatters.ts +235 -0
- package/skills/analyze-data/src/index.ts +6 -1027
- package/skills/analyze-data/src/logger.ts +36 -0
- package/skills/analyze-data/src/parsers.ts +57 -0
- package/skills/analyze-data/src/stats.ts +151 -0
- package/skills/analyze-data/src/types.ts +85 -0
- package/skills/api-docs-portal/SKILL.md +46 -0
- package/skills/api-docs-portal/package.json +9 -0
- package/skills/api-test-suite/src/index.ts +13 -0
- package/skills/apidocs/package.json +1 -1
- package/skills/apidocs/src/index.ts +3 -0
- package/skills/audio/package.json +2 -3
- package/skills/audio-cleanup-lab/SKILL.md +2 -2
- package/skills/audio-extract/CLAUDE.md +1 -1
- package/skills/audio-transcript-pack/SKILL.md +43 -0
- package/skills/audio-transcript-pack/package.json +10 -0
- package/skills/blog-article/CLAUDE.md +12 -0
- package/skills/blog-article/SKILL.md +45 -0
- package/skills/{create-blog-article → blog-article}/package.json +3 -3
- package/skills/brand-kit/SKILL.md +45 -0
- package/skills/brand-kit/package.json +14 -0
- package/skills/brand-photo-shoot/SKILL.md +28 -0
- package/skills/brand-photo-shoot/package.json +10 -0
- package/skills/brand-style-guide/SKILL.md +2 -2
- package/skills/brand-style-guide/src/index.ts +0 -0
- package/skills/budget-variance-analyzer/SKILL.md +2 -2
- package/skills/businessactivity/package.json +1 -1
- package/skills/businessactivity/src/index.ts +3 -0
- package/skills/calendar-events/src/ai-parser.ts +103 -0
- package/skills/calendar-events/src/api.ts +157 -0
- package/skills/calendar-events/src/auth.ts +22 -0
- package/skills/calendar-events/src/config.ts +6 -0
- package/skills/calendar-events/src/format.ts +96 -0
- package/skills/calendar-events/src/help.ts +54 -0
- package/skills/calendar-events/src/index.ts +21 -524
- package/skills/calendar-events/src/logger.ts +34 -0
- package/skills/calendar-events/src/types.ts +67 -0
- package/skills/compress-video/SKILL.md +2 -2
- package/skills/consolelog/package.json +1 -1
- package/skills/consolelog/src/index.ts +3 -0
- package/skills/contract-review-report/SKILL.md +43 -0
- package/skills/contract-review-report/package.json +10 -0
- package/skills/convert/SKILL.md +2 -3
- package/skills/customer-feedback-report/SKILL.md +44 -0
- package/skills/customer-feedback-report/package.json +10 -0
- package/skills/dashboard-builder/package.json +3 -1
- package/skills/database-explorer/package.json +3 -1
- package/skills/deepresearch/README.md +4 -13
- package/skills/deploy/src/http-client.ts +1 -1
- package/skills/diff-viewer/package.json +4 -1
- package/skills/doc-generate/package.json +0 -1
- package/skills/doc-generate/src/ai.ts +50 -0
- package/skills/doc-generate/src/cli.ts +203 -0
- package/skills/doc-generate/src/dependencies.ts +44 -0
- package/skills/doc-generate/src/document-builder.ts +299 -0
- package/skills/doc-generate/src/index.ts +40 -764
- package/skills/doc-generate/src/markdown-parser.ts +125 -0
- package/skills/doc-generate/src/types.ts +68 -0
- package/skills/domainpurchase/SKILL.md +1 -1
- package/skills/domainpurchase/package.json +1 -1
- package/skills/domainpurchase/src/index.ts +3 -0
- package/skills/domainsearch/SKILL.md +1 -1
- package/skills/domainsearch/package.json +1 -1
- package/skills/domainsearch/src/index.ts +3 -0
- package/skills/email-sequence/SKILL.md +44 -0
- package/skills/email-sequence/package.json +14 -0
- package/skills/excel/CLAUDE.md +2 -2
- package/skills/experiment-power-calculator/package.json +3 -1
- package/skills/extract-invoice/src/cli.ts +97 -0
- package/skills/extract-invoice/src/extractor.ts +170 -0
- package/skills/extract-invoice/src/file-utils.ts +46 -0
- package/skills/extract-invoice/src/formatters.ts +144 -0
- package/skills/extract-invoice/src/index.ts +44 -629
- package/skills/extract-invoice/src/runtime.ts +46 -0
- package/skills/extract-invoice/src/types.ts +88 -0
- package/skills/folder-tree/package.json +3 -1
- package/skills/form-filler/package.json +3 -1
- package/skills/generate-api-client/package.json +3 -1
- package/skills/generate-api-client/src/generator.ts +47 -0
- package/skills/generate-api-client/src/index.ts +3 -777
- package/skills/generate-api-client/src/logger.ts +34 -0
- package/skills/generate-api-client/src/python-generator.ts +245 -0
- package/skills/generate-api-client/src/spec-loader.ts +48 -0
- package/skills/generate-api-client/src/type-mappers.ts +79 -0
- package/skills/generate-api-client/src/types.ts +76 -0
- package/skills/generate-api-client/src/typescript-generator.ts +247 -0
- package/skills/generate-book-cover/package.json +3 -1
- package/skills/generate-dockerfile/src/cli.ts +78 -0
- package/skills/generate-dockerfile/src/dockerfile-templates.ts +392 -0
- package/skills/generate-dockerfile/src/index.ts +12 -790
- package/skills/generate-dockerfile/src/logger.ts +30 -0
- package/skills/generate-dockerfile/src/project-detection.ts +68 -0
- package/skills/generate-dockerfile/src/support-files.ts +171 -0
- package/skills/generate-dockerfile/src/types.ts +29 -0
- package/skills/generate-documentation/src/ai.ts +131 -0
- package/skills/generate-documentation/src/cli.ts +71 -0
- package/skills/generate-documentation/src/code-parser.ts +300 -0
- package/skills/generate-documentation/src/file-processing.ts +182 -0
- package/skills/generate-documentation/src/index.ts +13 -753
- package/skills/generate-documentation/src/runtime.ts +35 -0
- package/skills/generate-documentation/src/types.ts +30 -0
- package/skills/generate-env/package.json +3 -1
- package/skills/generate-env/src/cli.ts +85 -0
- package/skills/generate-env/src/detection.ts +161 -0
- package/skills/generate-env/src/env-data.ts +66 -0
- package/skills/generate-env/src/generators.ts +240 -0
- package/skills/generate-env/src/index.ts +76 -676
- package/skills/generate-env/src/runtime.ts +30 -0
- package/skills/generate-env/src/types.ts +32 -0
- package/skills/generate-favicon/package.json +3 -1
- package/skills/generate-mock-data/package.json +3 -1
- package/skills/generate-mock-data/src/ai.ts +102 -0
- package/skills/generate-mock-data/src/formatters.ts +84 -0
- package/skills/generate-mock-data/src/generator.ts +377 -0
- package/skills/generate-mock-data/src/index.ts +15 -716
- package/skills/generate-mock-data/src/logger.ts +37 -0
- package/skills/generate-mock-data/src/presets.ts +110 -0
- package/skills/generate-mock-data/src/types.ts +21 -0
- package/skills/generate-pr-description/src/ai.ts +144 -0
- package/skills/generate-pr-description/src/cli.ts +80 -0
- package/skills/generate-pr-description/src/clipboard.ts +30 -0
- package/skills/generate-pr-description/src/formatters.ts +231 -0
- package/skills/generate-pr-description/src/git.ts +153 -0
- package/skills/generate-pr-description/src/index.ts +21 -714
- package/skills/generate-pr-description/src/types.ts +49 -0
- package/skills/generate-presentation/src/ai-clients.ts +61 -0
- package/skills/generate-presentation/src/cli.ts +126 -0
- package/skills/generate-presentation/src/index.ts +3 -751
- package/skills/generate-presentation/src/logger.ts +67 -0
- package/skills/generate-presentation/src/presentation-generator.ts +425 -0
- package/skills/generate-presentation/src/runtime.ts +6 -0
- package/skills/generate-presentation/src/security.ts +12 -0
- package/skills/generate-presentation/src/types.ts +28 -0
- package/skills/generate-qrcode/package.json +4 -1
- package/skills/generate-regex/package.json +3 -1
- package/skills/generate-resume/src/cli.ts +157 -0
- package/skills/generate-resume/src/index.ts +13 -917
- package/skills/generate-resume/src/parsers.ts +95 -0
- package/skills/generate-resume/src/renderers.ts +538 -0
- package/skills/generate-resume/src/security.ts +39 -0
- package/skills/generate-resume/src/types.ts +86 -0
- package/skills/generate-social-posts/src/ai.ts +88 -0
- package/skills/generate-social-posts/src/cli.ts +118 -0
- package/skills/generate-social-posts/src/exporters.ts +126 -0
- package/skills/generate-social-posts/src/generator.ts +130 -0
- package/skills/generate-social-posts/src/index.ts +19 -709
- package/skills/generate-social-posts/src/platforms.ts +39 -0
- package/skills/generate-social-posts/src/runtime.ts +34 -0
- package/skills/generate-social-posts/src/source.ts +116 -0
- package/skills/generate-social-posts/src/types.ts +58 -0
- package/skills/gif-maker/package.json +4 -1
- package/skills/github-manager/package.json +3 -1
- package/skills/gmail/CLAUDE.md +1 -1
- package/skills/highlight-reel-generator/src/index.ts +19 -0
- package/skills/hook/src/commands/create.ts +20 -845
- package/skills/hook/src/templates/root.ts +196 -0
- package/skills/hook/src/templates/source.ts +647 -0
- package/skills/http-server/package.json +3 -1
- package/skills/icon-pack/README.md +28 -0
- package/skills/icon-pack/SKILL.md +23 -0
- package/skills/icon-pack/package.json +29 -0
- package/skills/{audio → icon-pack}/tsconfig.json +10 -12
- package/skills/image/package.json +1 -2
- package/skills/implementation-agent/package.json +3 -1
- package/skills/implementation-agent/src/ai-generation.ts +225 -0
- package/skills/implementation-agent/src/index.ts +3 -960
- package/skills/implementation-agent/src/minimist.d.ts +15 -0
- package/skills/implementation-agent/src/templates.ts +686 -0
- package/skills/implementation-agent/src/types.ts +53 -0
- package/skills/implementation-plan/package.json +3 -1
- package/skills/implementation-todo/package.json +3 -1
- package/skills/invoice/package.json +1 -1
- package/skills/invoice/src/index.ts +3 -0
- package/skills/invoice-reconciliation/SKILL.md +42 -0
- package/skills/invoice-reconciliation/package.json +10 -0
- package/skills/landing-page-pack/SKILL.md +47 -0
- package/skills/landing-page-pack/package.json +14 -0
- package/skills/latex-table-generator/package.json +3 -1
- package/skills/logo-design/SKILL.md +25 -44
- package/skills/logo-design/package.json +3 -15
- package/skills/lorem-generator/package.json +3 -1
- package/skills/lorem-generator/src/index.ts +13 -0
- package/skills/managehook/package.json +1 -1
- package/skills/managehook/src/index.ts +3 -0
- package/skills/managemcp/package.json +1 -1
- package/skills/managemcp/src/index.ts +3 -0
- package/skills/manageskill/package.json +1 -1
- package/skills/manageskill/src/index.ts +3 -0
- package/skills/markdown-validator/package.json +3 -1
- package/skills/markdown-validator/src/index.ts +1 -4
- package/skills/market-research-report/SKILL.md +41 -0
- package/skills/market-research-report/package.json +10 -0
- package/skills/mcp-builder/package.json +4 -1
- package/skills/mcp-builder/src/ai-descriptions.ts +37 -0
- package/skills/mcp-builder/src/generators.ts +513 -0
- package/skills/mcp-builder/src/index.ts +7 -908
- package/skills/mcp-builder/src/minimist.d.ts +15 -0
- package/skills/mcp-builder/src/naming.ts +12 -0
- package/skills/mcp-builder/src/options.ts +170 -0
- package/skills/mcp-builder/src/templates.ts +149 -0
- package/skills/mcp-builder/src/types.ts +42 -0
- package/skills/meeting-pack/SKILL.md +43 -0
- package/skills/meeting-pack/package.json +10 -0
- package/skills/merge-pdfs/package.json +5 -1
- package/skills/migration-plan-pack/SKILL.md +45 -0
- package/skills/migration-plan-pack/package.json +10 -0
- package/skills/music/package.json +2 -3
- package/skills/music-album/SKILL.md +37 -0
- package/skills/music-album/package.json +10 -0
- package/skills/notion-manager/package.json +3 -1
- package/skills/npmpublish/CLAUDE.md +5 -8
- package/skills/npmpublish/README.md +5 -26
- package/skills/npmpublish/src/index.ts +9 -147
- package/skills/one-page-website/SKILL.md +46 -0
- package/skills/one-page-website/package.json +10 -0
- package/skills/one-page-website/tsconfig.json +8 -0
- package/skills/pdf-generate/src/cli.ts +162 -0
- package/skills/pdf-generate/src/html.ts +84 -0
- package/skills/pdf-generate/src/index.ts +11 -800
- package/skills/pdf-generate/src/markdown.ts +27 -0
- package/skills/pdf-generate/src/pdf-writer.ts +78 -0
- package/skills/pdf-generate/src/runtime.ts +34 -0
- package/skills/pdf-generate/src/security.ts +37 -0
- package/skills/pdf-generate/src/templates.ts +311 -0
- package/skills/pdf-generate/src/types.ts +28 -0
- package/skills/pdf-read/SKILL.md +10 -10
- package/skills/pdf-to-dataset/SKILL.md +45 -0
- package/skills/pdf-to-dataset/package.json +10 -0
- package/skills/pdf-to-markdown/SKILL.md +49 -0
- package/skills/pdf-to-markdown/package.json +10 -0
- package/skills/pdf-to-markdown/tsconfig.json +10 -0
- package/skills/performance-audit-report/SKILL.md +42 -0
- package/skills/performance-audit-report/package.json +10 -0
- package/skills/persona-based-adwriter/src/index.ts +19 -0
- package/skills/photo-album/SKILL.md +29 -0
- package/skills/photo-album/package.json +9 -0
- package/skills/photo-album/tsconfig.json +4 -0
- package/skills/pitch-deck/SKILL.md +43 -0
- package/skills/pitch-deck/package.json +9 -0
- package/skills/playlist-maker/SKILL.md +33 -0
- package/skills/playlist-maker/package.json +9 -0
- package/skills/playlist-maker/tsconfig.json +4 -0
- package/skills/product-mockup/SKILL.md +45 -0
- package/skills/product-mockup/package.json +3 -20
- package/skills/product-mockup/tsconfig.json +3 -5
- package/skills/project-retro-companion/src/index.ts +19 -0
- package/skills/proposal-pack/SKILL.md +45 -0
- package/skills/proposal-pack/package.json +10 -0
- package/skills/read-pdf/SKILL.md +5 -4
- package/skills/repo-onboarding-report/SKILL.md +42 -0
- package/skills/repo-onboarding-report/package.json +10 -0
- package/skills/sales-call-recapper/src/index.ts +20 -0
- package/skills/salescopy/package.json +1 -1
- package/skills/salescopy/src/index.ts +3 -0
- package/skills/scaffold-project/src/ai-detect.ts +136 -0
- package/skills/scaffold-project/src/file-generators.ts +292 -0
- package/skills/scaffold-project/src/index.ts +8 -991
- package/skills/scaffold-project/src/project-config.ts +338 -0
- package/skills/scaffold-project/src/templates.ts +173 -0
- package/skills/scaffold-project/src/types.ts +58 -0
- package/skills/scientific-figure-check/package.json +3 -1
- package/skills/sdk-generator/SKILL.md +45 -0
- package/skills/sdk-generator/package.json +10 -0
- package/skills/sdk-generator/tsconfig.json +8 -0
- package/skills/security-audit/src/index.ts +25 -6
- package/skills/security-audit-report/SKILL.md +40 -0
- package/skills/security-audit-report/package.json +10 -0
- package/skills/seo-content-pack/SKILL.md +44 -0
- package/skills/seo-content-pack/package.json +9 -0
- package/skills/short-video-pack/SKILL.md +30 -0
- package/skills/short-video-pack/package.json +10 -0
- package/skills/slack-assistant/package.json +3 -1
- package/skills/slide-deck-generator/SKILL.md +44 -0
- package/skills/slide-deck-generator/package.json +10 -0
- package/skills/sms/package.json +1 -1
- package/skills/sms/src/index.ts +15 -0
- package/skills/social-content-calendar/SKILL.md +45 -0
- package/skills/social-content-calendar/package.json +14 -0
- package/skills/split-pdf/package.json +4 -1
- package/skills/subtitle/package.json +2 -1
- package/skills/subtitle/src/index.ts +3 -0
- package/skills/terraform-generator/package.json +3 -1
- package/skills/test-suite-generator/SKILL.md +41 -0
- package/skills/test-suite-generator/package.json +10 -0
- package/skills/timesheet/package.json +1 -1
- package/skills/timesheet/src/index.ts +3 -0
- package/skills/transcript/SKILL.md +1 -8
- package/skills/validate-config/package.json +3 -1
- package/skills/video/package.json +6 -4
- package/skills/video-downloader/package.json +3 -1
- package/skills/video-highlight-pack/SKILL.md +44 -0
- package/skills/video-highlight-pack/package.json +10 -0
- package/skills/voiceover-jingle-pack/SKILL.md +28 -0
- package/skills/voiceover-jingle-pack/package.json +10 -0
- package/skills/watermark/package.json +6 -1
- package/skills/webcrawling/package.json +2 -1
- package/skills/write/SKILL.md +6 -6
- package/dist/server/serve.d.ts +0 -11
- package/skills/apidocs/.claude/settings.json +0 -5
- package/skills/audio/.env.example +0 -14
- package/skills/audio/QUICKSTART.md +0 -158
- package/skills/audio/README.md +0 -256
- package/skills/audio/src/index-local.ts +0 -206
- package/skills/audio/src/index.ts +0 -95
- package/skills/audio/src/providers/elevenlabs.ts +0 -115
- package/skills/audio/src/providers/google.ts +0 -116
- package/skills/audio/src/providers/minimax.ts +0 -83
- package/skills/audio/src/providers/openai.ts +0 -115
- package/skills/audio/src/types.ts +0 -79
- package/skills/audiobook-chapter-proofer/CLAUDE.md +0 -19
- package/skills/audiobook-chapter-proofer/package.json +0 -27
- package/skills/audiobook-chapter-proofer/src/index.ts +0 -285
- package/skills/browse/src/client.ts +0 -373
- package/skills/browse/src/index-local.ts +0 -430
- package/skills/browse/src/index.ts +0 -110
- package/skills/browse/src/sse-server.ts +0 -919
- package/skills/browse/src/types.ts +0 -104
- package/skills/consolelog/src/server/index.ts +0 -508
- package/skills/create-blog-article/CLAUDE.md +0 -19
- package/skills/create-blog-article/src/index.ts +0 -745
- package/skills/create-blog-article/tsconfig.json +0 -10
- package/skills/deepresearch/src/agents/query-generator.ts +0 -91
- package/skills/deepresearch/src/agents/synthesizer.ts +0 -111
- package/skills/deepresearch/src/index.ts +0 -224
- package/skills/deepresearch/src/research.ts +0 -166
- package/skills/deepresearch/src/services/anthropic.ts +0 -69
- package/skills/deepresearch/src/services/exa.ts +0 -108
- package/skills/deepresearch/src/services/firecrawl.ts +0 -88
- package/skills/deepresearch/src/services/openai.ts +0 -81
- package/skills/deepresearch/src/types.ts +0 -76
- package/skills/deepresearch/src/utils/file.ts +0 -111
- package/skills/deepresearch/src/utils/logger.ts +0 -84
- package/skills/domainpurchase/src/server/index.ts +0 -332
- package/skills/domainsearch/src/server/index.ts +0 -229
- package/skills/e2bswarm/README.md +0 -135
- package/skills/e2bswarm/SKILL.md +0 -118
- package/skills/e2bswarm/examples/tasks-example.json +0 -38
- package/skills/e2bswarm/package.json +0 -59
- package/skills/e2bswarm/src/commands/collect.ts +0 -135
- package/skills/e2bswarm/src/commands/install.ts +0 -164
- package/skills/e2bswarm/src/commands/kill.ts +0 -62
- package/skills/e2bswarm/src/commands/spawn.ts +0 -134
- package/skills/e2bswarm/src/commands/status.ts +0 -90
- package/skills/e2bswarm/src/commands/sync.ts +0 -208
- package/skills/e2bswarm/src/index.ts +0 -121
- package/skills/e2bswarm/src/lib/config.ts +0 -75
- package/skills/e2bswarm/src/lib/e2b.ts +0 -490
- package/skills/e2bswarm/src/lib/github.ts +0 -253
- package/skills/e2bswarm/src/lib/logger.ts +0 -41
- package/skills/e2bswarm/src/lib/paths.ts +0 -75
- package/skills/e2bswarm/src/lib/tasks.ts +0 -320
- package/skills/e2bswarm/src/types/index.ts +0 -107
- package/skills/e2bswarm/templates/codebox/e2b.Dockerfile +0 -38
- package/skills/e2bswarm/templates/codebox/e2b.toml +0 -3
- package/skills/e2bswarm/templates/setup.sh +0 -21
- package/skills/e2bswarm/tsconfig.json +0 -19
- package/skills/generate-book-cover/src/index.ts +0 -694
- package/skills/image/src/index-local.ts +0 -206
- package/skills/image/src/index.ts +0 -96
- package/skills/image/src/providers/google.ts +0 -79
- package/skills/image/src/providers/minimax.ts +0 -94
- package/skills/image/src/providers/openai.ts +0 -80
- package/skills/image/src/providers/xai.ts +0 -73
- package/skills/image/src/types.ts +0 -37
- package/skills/logo-design/CLAUDE.md +0 -30
- package/skills/logo-design/src/index.ts +0 -322
- package/skills/managehook/src/server/index.ts +0 -108
- package/skills/managemcp/src/server/index.ts +0 -108
- package/skills/manageskill/src/server/index.ts +0 -108
- package/skills/music/CLAUDE.md +0 -9
- package/skills/music/src/index.ts +0 -94
- package/skills/music/tsconfig.json +0 -10
- package/skills/pdf-read/src/index.ts +0 -320
- package/skills/product-mockup/CLAUDE.md +0 -19
- package/skills/product-mockup/src/index.ts +0 -290
- package/skills/read-pdf/src/index.ts +0 -388
- package/skills/remove-background/src/index.ts +0 -405
- package/skills/scaffold-project/my-app/.env.example +0 -2
- package/skills/scaffold-project/my-app/README.md +0 -72
- package/skills/scaffold-project/my-app/package.json +0 -29
- package/skills/scaffold-project/my-app/src/index.ts +0 -23
- package/skills/scaffold-project/my-app/tsconfig.json +0 -33
- package/skills/sound-effects/SKILL.md +0 -34
- package/skills/sound-effects/package.json +0 -21
- package/skills/sound-effects/src/index.ts +0 -172
- package/skills/sound-effects/tsconfig.json +0 -8
- package/skills/transcript/src/chunker.ts +0 -215
- package/skills/transcript/src/formatter.ts +0 -134
- package/skills/transcript/src/index-local.ts +0 -226
- package/skills/transcript/src/index.ts +0 -110
- package/skills/transcript/src/providers/elevenlabs.ts +0 -133
- package/skills/transcript/src/providers/gemini.ts +0 -192
- package/skills/transcript/src/providers/index.ts +0 -54
- package/skills/transcript/src/providers/openai.ts +0 -203
- package/skills/transcript/src/types.ts +0 -106
- package/skills/video/.env.example +0 -14
- package/skills/video/EXAMPLES.md +0 -266
- package/skills/video/LICENSE +0 -192
- package/skills/video/README.md +0 -174
- package/skills/video/src/cli.ts +0 -155
- package/skills/video/src/index-local.ts +0 -148
- package/skills/video/src/index.ts +0 -96
- package/skills/video/src/providers/google-veo.ts +0 -126
- package/skills/video/src/providers/index.ts +0 -22
- package/skills/video/src/providers/minimax.ts +0 -100
- package/skills/video/src/providers/openai-sora.ts +0 -164
- package/skills/video/src/providers/runway.ts +0 -159
- package/skills/video/src/types.ts +0 -35
- package/skills/video/tsconfig.json +0 -22
- package/skills/voiceover-casting-assistant/CLAUDE.md +0 -19
- package/skills/voiceover-casting-assistant/package.json +0 -27
- package/skills/voiceover-casting-assistant/src/index.ts +0 -255
- package/skills/voiceover-casting-assistant/tsconfig.json +0 -10
- package/skills/webcrawling/src/commands/config.ts +0 -34
- package/skills/webcrawling/src/commands/crawl.ts +0 -33
- package/skills/webcrawling/src/commands/scrape.ts +0 -32
- package/skills/webcrawling/src/commands/sessions.ts +0 -42
- package/skills/webcrawling/src/lib/crawler.ts +0 -174
- package/skills/webcrawling/src/lib/storage.ts +0 -130
- package/skills/webcrawling/src/types/index.ts +0 -45
- package/skills/webcrawling/src/utils/logger.ts +0 -30
- package/skills/webcrawling/src/utils/paths.ts +0 -28
- /package/skills/{audiobook-chapter-proofer → blog-article}/tsconfig.json +0 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { appendFileSync, existsSync, mkdirSync } from 'fs';
|
|
2
|
+
import { randomUUID } from 'crypto';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
|
|
5
|
+
export const SKILL_NAME = "analyze-data";
|
|
6
|
+
export const SESSION_ID = randomUUID().slice(0, 8);
|
|
7
|
+
export const SKILLS_OUTPUT_DIR = process.env.SKILLS_OUTPUT_DIR || join(process.cwd(), ".skills");
|
|
8
|
+
export const LOGS_DIR = join(SKILLS_OUTPUT_DIR, "logs", SKILL_NAME);
|
|
9
|
+
export const LOG_FILE = join(LOGS_DIR, `${new Date().toISOString().replace(/[:.]/g, "_").slice(0, 19)}_${SESSION_ID}.log`);
|
|
10
|
+
|
|
11
|
+
export function ensureDir(dir: string) {
|
|
12
|
+
if (!existsSync(dir)) {
|
|
13
|
+
mkdirSync(dir, { recursive: true });
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function log(message: string, level: "info" | "error" | "success" = "info") {
|
|
18
|
+
ensureDir(LOGS_DIR);
|
|
19
|
+
const timestamp = new Date().toISOString();
|
|
20
|
+
const logMessage = `[${timestamp}] [${level.toUpperCase()}] ${message}\n`;
|
|
21
|
+
appendFileSync(LOG_FILE, logMessage);
|
|
22
|
+
|
|
23
|
+
const prefixes = {
|
|
24
|
+
info: "ℹ️ ",
|
|
25
|
+
error: "❌ ",
|
|
26
|
+
success: "✅ "
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
if (level === "error") {
|
|
30
|
+
console.error(`${prefixes[level]} ${message}`);
|
|
31
|
+
} else {
|
|
32
|
+
console.log(`${prefixes[level]} ${message}`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// ============================================================================
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export function parseCSV(content: string): any[] {
|
|
2
|
+
const lines = content.split('\n').filter(line => line.trim());
|
|
3
|
+
if (lines.length === 0) return [];
|
|
4
|
+
|
|
5
|
+
const headers = lines[0].split(',').map(h => h.trim().replace(/^"|"$/g, ''));
|
|
6
|
+
const data: any[] = [];
|
|
7
|
+
|
|
8
|
+
for (let i = 1; i < lines.length; i++) {
|
|
9
|
+
const values = parseCSVLine(lines[i]);
|
|
10
|
+
if (values.length === headers.length) {
|
|
11
|
+
const row: any = {};
|
|
12
|
+
headers.forEach((header, idx) => {
|
|
13
|
+
row[header] = values[idx];
|
|
14
|
+
});
|
|
15
|
+
data.push(row);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function parseCSVLine(line: string): string[] {
|
|
23
|
+
const values: string[] = [];
|
|
24
|
+
let current = '';
|
|
25
|
+
let inQuotes = false;
|
|
26
|
+
|
|
27
|
+
for (let i = 0; i < line.length; i++) {
|
|
28
|
+
const char = line[i];
|
|
29
|
+
|
|
30
|
+
if (char === '"') {
|
|
31
|
+
inQuotes = !inQuotes;
|
|
32
|
+
} else if (char === ',' && !inQuotes) {
|
|
33
|
+
values.push(current.trim());
|
|
34
|
+
current = '';
|
|
35
|
+
} else {
|
|
36
|
+
current += char;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
values.push(current.trim());
|
|
41
|
+
return values.map(v => v.replace(/^"|"$/g, ''));
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export function parseJSON(content: string): any[] {
|
|
45
|
+
const parsed = JSON.parse(content);
|
|
46
|
+
|
|
47
|
+
if (Array.isArray(parsed)) {
|
|
48
|
+
return parsed;
|
|
49
|
+
} else if (parsed.data && Array.isArray(parsed.data)) {
|
|
50
|
+
return parsed.data;
|
|
51
|
+
} else if (typeof parsed === 'object') {
|
|
52
|
+
// Convert object to array of key-value pairs
|
|
53
|
+
return Object.entries(parsed).map(([key, value]) => ({ key, value }));
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
throw new Error('Unsupported JSON structure');
|
|
57
|
+
}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import type { ColumnStats } from './types';
|
|
2
|
+
|
|
3
|
+
export function detectDataType(values: any[]): ColumnStats['dataType'] {
|
|
4
|
+
const nonNullValues = values.filter(v => v !== null && v !== undefined && v !== '');
|
|
5
|
+
if (nonNullValues.length === 0) return 'string';
|
|
6
|
+
|
|
7
|
+
let numericCount = 0;
|
|
8
|
+
let dateCount = 0;
|
|
9
|
+
let booleanCount = 0;
|
|
10
|
+
|
|
11
|
+
for (const value of nonNullValues.slice(0, 100)) {
|
|
12
|
+
if (typeof value === 'number' || !isNaN(Number(value))) {
|
|
13
|
+
numericCount++;
|
|
14
|
+
}
|
|
15
|
+
if (value === true || value === false || value === 'true' || value === 'false') {
|
|
16
|
+
booleanCount++;
|
|
17
|
+
}
|
|
18
|
+
if (!isNaN(Date.parse(String(value)))) {
|
|
19
|
+
dateCount++;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const total = Math.min(nonNullValues.length, 100);
|
|
24
|
+
|
|
25
|
+
if (numericCount / total > 0.8) return 'numeric';
|
|
26
|
+
if (booleanCount / total > 0.8) return 'boolean';
|
|
27
|
+
if (dateCount / total > 0.8) return 'date';
|
|
28
|
+
if (numericCount > 0 && numericCount < total * 0.8) return 'mixed';
|
|
29
|
+
|
|
30
|
+
return 'string';
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export function calculateStats(values: number[]): Partial<ColumnStats> {
|
|
34
|
+
if (values.length === 0) return {};
|
|
35
|
+
|
|
36
|
+
const sorted = [...values].sort((a, b) => a - b);
|
|
37
|
+
const n = sorted.length;
|
|
38
|
+
|
|
39
|
+
// Basic stats
|
|
40
|
+
const sum = sorted.reduce((acc, val) => acc + val, 0);
|
|
41
|
+
const mean = sum / n;
|
|
42
|
+
|
|
43
|
+
const median = n % 2 === 0
|
|
44
|
+
? (sorted[n / 2 - 1] + sorted[n / 2]) / 2
|
|
45
|
+
: sorted[Math.floor(n / 2)];
|
|
46
|
+
|
|
47
|
+
// Mode
|
|
48
|
+
const frequency: Record<number, number> = {};
|
|
49
|
+
sorted.forEach(val => {
|
|
50
|
+
frequency[val] = (frequency[val] || 0) + 1;
|
|
51
|
+
});
|
|
52
|
+
const maxFreq = Math.max(...Object.values(frequency));
|
|
53
|
+
const modes = Object.keys(frequency)
|
|
54
|
+
.filter(key => frequency[Number(key)] === maxFreq)
|
|
55
|
+
.map(Number);
|
|
56
|
+
const mode = modes.length === sorted.length ? undefined : (modes.length === 1 ? modes[0] : modes);
|
|
57
|
+
|
|
58
|
+
// Variance and standard deviation
|
|
59
|
+
const squaredDiffs = sorted.map(val => Math.pow(val - mean, 2));
|
|
60
|
+
const variance = squaredDiffs.reduce((acc, val) => acc + val, 0) / n;
|
|
61
|
+
const stdDev = Math.sqrt(variance);
|
|
62
|
+
|
|
63
|
+
// Quartiles
|
|
64
|
+
const q1 = sorted[Math.floor(n * 0.25)];
|
|
65
|
+
const q2 = median;
|
|
66
|
+
const q3 = sorted[Math.floor(n * 0.75)];
|
|
67
|
+
|
|
68
|
+
// Skewness and kurtosis
|
|
69
|
+
const cubedDiffs = sorted.map(val => Math.pow((val - mean) / stdDev, 3));
|
|
70
|
+
const skewness = cubedDiffs.reduce((acc, val) => acc + val, 0) / n;
|
|
71
|
+
|
|
72
|
+
const fourthDiffs = sorted.map(val => Math.pow((val - mean) / stdDev, 4));
|
|
73
|
+
const kurtosis = fourthDiffs.reduce((acc, val) => acc + val, 0) / n - 3;
|
|
74
|
+
|
|
75
|
+
return {
|
|
76
|
+
mean: roundTo(mean, 4),
|
|
77
|
+
median: roundTo(median, 4),
|
|
78
|
+
mode,
|
|
79
|
+
stdDev: roundTo(stdDev, 4),
|
|
80
|
+
variance: roundTo(variance, 4),
|
|
81
|
+
min: sorted[0],
|
|
82
|
+
max: sorted[n - 1],
|
|
83
|
+
range: sorted[n - 1] - sorted[0],
|
|
84
|
+
q1: roundTo(q1, 4),
|
|
85
|
+
q2: roundTo(q2, 4),
|
|
86
|
+
q3: roundTo(q3, 4),
|
|
87
|
+
skewness: roundTo(skewness, 4),
|
|
88
|
+
kurtosis: roundTo(kurtosis, 4),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export function calculatePercentiles(values: number[], percentiles: number[]): Record<number, number> {
|
|
93
|
+
const sorted = [...values].sort((a, b) => a - b);
|
|
94
|
+
const result: Record<number, number> = {};
|
|
95
|
+
|
|
96
|
+
percentiles.forEach(p => {
|
|
97
|
+
const index = (p / 100) * (sorted.length - 1);
|
|
98
|
+
const lower = Math.floor(index);
|
|
99
|
+
const upper = Math.ceil(index);
|
|
100
|
+
const fraction = index - lower;
|
|
101
|
+
|
|
102
|
+
result[p] = sorted[lower] + fraction * (sorted[upper] - sorted[lower]);
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
return result;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export function detectOutliers(values: number[], q1: number, q3: number): number[] {
|
|
109
|
+
const iqr = q3 - q1;
|
|
110
|
+
const lowerBound = q1 - 1.5 * iqr;
|
|
111
|
+
const upperBound = q3 + 1.5 * iqr;
|
|
112
|
+
|
|
113
|
+
return values.filter(val => val < lowerBound || val > upperBound);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export function calculateCorrelation(x: number[], y: number[]): number {
|
|
117
|
+
const n = Math.min(x.length, y.length);
|
|
118
|
+
if (n === 0) return 0;
|
|
119
|
+
|
|
120
|
+
const meanX = x.reduce((acc, val) => acc + val, 0) / n;
|
|
121
|
+
const meanY = y.reduce((acc, val) => acc + val, 0) / n;
|
|
122
|
+
|
|
123
|
+
let numerator = 0;
|
|
124
|
+
let sumXSquared = 0;
|
|
125
|
+
let sumYSquared = 0;
|
|
126
|
+
|
|
127
|
+
for (let i = 0; i < n; i++) {
|
|
128
|
+
const dx = x[i] - meanX;
|
|
129
|
+
const dy = y[i] - meanY;
|
|
130
|
+
numerator += dx * dy;
|
|
131
|
+
sumXSquared += dx * dx;
|
|
132
|
+
sumYSquared += dy * dy;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
const denominator = Math.sqrt(sumXSquared * sumYSquared);
|
|
136
|
+
return denominator === 0 ? 0 : numerator / denominator;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
export function roundTo(value: number, decimals: number): number {
|
|
140
|
+
const factor = Math.pow(10, decimals);
|
|
141
|
+
return Math.round(value * factor) / factor;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
export function formatBytes(bytes: number): string {
|
|
145
|
+
if (bytes < 1024) return bytes + ' B';
|
|
146
|
+
if (bytes < 1024 * 1024) return (bytes / 1024).toFixed(2) + ' KB';
|
|
147
|
+
if (bytes < 1024 * 1024 * 1024) return (bytes / (1024 * 1024)).toFixed(2) + ' MB';
|
|
148
|
+
return (bytes / (1024 * 1024 * 1024)).toFixed(2) + ' GB';
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// ============================================================================
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
export interface AnalysisOptions {
|
|
2
|
+
format: 'markdown' | 'json' | 'html';
|
|
3
|
+
output?: string;
|
|
4
|
+
correlations: boolean;
|
|
5
|
+
outliers: boolean;
|
|
6
|
+
trends: boolean;
|
|
7
|
+
sample?: number;
|
|
8
|
+
percentiles: number[];
|
|
9
|
+
verbose: boolean;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface ColumnStats {
|
|
13
|
+
name: string;
|
|
14
|
+
dataType: 'numeric' | 'string' | 'date' | 'boolean' | 'mixed';
|
|
15
|
+
count: number;
|
|
16
|
+
nullCount: number;
|
|
17
|
+
nullPercentage: number;
|
|
18
|
+
uniqueCount: number;
|
|
19
|
+
uniquePercentage: number;
|
|
20
|
+
sampleValues: any[];
|
|
21
|
+
|
|
22
|
+
// Numeric stats
|
|
23
|
+
mean?: number;
|
|
24
|
+
median?: number;
|
|
25
|
+
mode?: number | number[];
|
|
26
|
+
stdDev?: number;
|
|
27
|
+
variance?: number;
|
|
28
|
+
min?: number;
|
|
29
|
+
max?: number;
|
|
30
|
+
range?: number;
|
|
31
|
+
q1?: number;
|
|
32
|
+
q2?: number;
|
|
33
|
+
q3?: number;
|
|
34
|
+
percentiles?: Record<number, number>;
|
|
35
|
+
skewness?: number;
|
|
36
|
+
kurtosis?: number;
|
|
37
|
+
outliers?: number[];
|
|
38
|
+
|
|
39
|
+
// String stats
|
|
40
|
+
avgLength?: number;
|
|
41
|
+
minLength?: number;
|
|
42
|
+
maxLength?: number;
|
|
43
|
+
|
|
44
|
+
// Distribution
|
|
45
|
+
distribution?: Record<string, number>;
|
|
46
|
+
topValues?: Array<{ value: any; count: number; percentage: number }>;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export interface AnalysisReport {
|
|
50
|
+
overview: {
|
|
51
|
+
fileName: string;
|
|
52
|
+
fileSize: string;
|
|
53
|
+
fileType: string;
|
|
54
|
+
rowCount: number;
|
|
55
|
+
columnCount: number;
|
|
56
|
+
memoryUsage: string;
|
|
57
|
+
processingTime: number;
|
|
58
|
+
timestamp: string;
|
|
59
|
+
};
|
|
60
|
+
columns: ColumnStats[];
|
|
61
|
+
correlations?: number[][];
|
|
62
|
+
correlationPairs?: Array<{ col1: string; col2: string; correlation: number }>;
|
|
63
|
+
quality: {
|
|
64
|
+
totalCells: number;
|
|
65
|
+
missingCells: number;
|
|
66
|
+
missingPercentage: number;
|
|
67
|
+
duplicateRows: number;
|
|
68
|
+
duplicatePercentage: number;
|
|
69
|
+
dataQualityScore: number;
|
|
70
|
+
issues: string[];
|
|
71
|
+
};
|
|
72
|
+
trends?: {
|
|
73
|
+
detected: boolean;
|
|
74
|
+
patterns: string[];
|
|
75
|
+
insights: string[];
|
|
76
|
+
};
|
|
77
|
+
visualizationRecommendations: Array<{
|
|
78
|
+
column: string;
|
|
79
|
+
chartType: string;
|
|
80
|
+
reason: string;
|
|
81
|
+
}>;
|
|
82
|
+
insights: string[];
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// ============================================================================
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: api-docs-portal
|
|
3
|
+
description: Generate premium API documentation portals from OpenAPI specs, route lists, or examples.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# API Docs Portal
|
|
7
|
+
|
|
8
|
+
Generate a polished API documentation portal from OpenAPI specs, route files, or endpoint examples.
|
|
9
|
+
|
|
10
|
+
## Requirements
|
|
11
|
+
|
|
12
|
+
- Authenticate with `skills auth login`.
|
|
13
|
+
- This premium skill runs through the hosted Skills runtime; local installs expose only metadata and instructions.
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
skills run api-docs-portal --spec "GET /v1/projects, POST /v1/projects" --title "Acme API"
|
|
19
|
+
skills run api-docs-portal --spec-file ./openapi.json --base-url "https://api.example.com" --auth bearer
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Options
|
|
23
|
+
|
|
24
|
+
| Option | Description | Default |
|
|
25
|
+
|--------|-------------|---------|
|
|
26
|
+
| `--spec <text>` | OpenAPI JSON, route list, or endpoint examples. Positional text also works. | required |
|
|
27
|
+
| `--spec-file <path>` | Read the API spec or route list from a file. | none |
|
|
28
|
+
| `--title <text>` | Portal and API title. | API Documentation |
|
|
29
|
+
| `--base-url <url>` | Base URL used in examples. | https://api.example.com |
|
|
30
|
+
| `--auth <mode>` | Auth mode: `bearer`, `api-key`, `oauth`, `session`, or `none`. | bearer |
|
|
31
|
+
| `--theme <name>` | Portal theme: `light` or `slate`. | light |
|
|
32
|
+
| `--output <dir>` | Output directory for direct local execution. Hosted runs use the run export directory. | run export dir |
|
|
33
|
+
|
|
34
|
+
## Outputs
|
|
35
|
+
|
|
36
|
+
- `site/index.html`
|
|
37
|
+
- `site/styles.css`
|
|
38
|
+
- `site/endpoints.json`
|
|
39
|
+
- `openapi.json`
|
|
40
|
+
- `endpoint-reference.md`
|
|
41
|
+
- `auth-guide.md`
|
|
42
|
+
- `examples.md`
|
|
43
|
+
- `README.md`
|
|
44
|
+
- `manifest.json`
|
|
45
|
+
|
|
46
|
+
After submitting a hosted run, poll with `skills runs status <run-id>` and download outputs with `skills exports download <run-id>`.
|
|
@@ -292,6 +292,19 @@ function generateTestFile(parsed: ParsedInput, tests: TestCase[], options: Optio
|
|
|
292
292
|
*/
|
|
293
293
|
async function main() {
|
|
294
294
|
try {
|
|
295
|
+
if (process.argv.includes("--help") || process.argv.includes("-h")) {
|
|
296
|
+
console.log(`api-test-suite
|
|
297
|
+
|
|
298
|
+
Usage:
|
|
299
|
+
skills run api-test-suite -- "POST /api/users with name, email" [options]
|
|
300
|
+
|
|
301
|
+
Options:
|
|
302
|
+
--format <framework> Test framework output, default vitest
|
|
303
|
+
--include-auth=false Disable auth test generation
|
|
304
|
+
--include-rate-limit Include rate limit tests`);
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
|
|
295
308
|
const input = process.env.SKILLS_INPUT || "";
|
|
296
309
|
const outputDir = process.env.SKILLS_OUTPUT_DIR || process.cwd();
|
|
297
310
|
const exportsDir = process.env.SKILLS_EXPORTS_DIR || join(outputDir, "exports");
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
"name": "audio",
|
|
3
3
|
"version": "1.0.0",
|
|
4
4
|
"description": "Generate speech and audio using provider-cost AI backends",
|
|
5
|
-
"type": "module",
|
|
6
5
|
"main": "src/index.ts",
|
|
6
|
+
"type": "module",
|
|
7
7
|
"bin": {
|
|
8
8
|
"audio": "src/index.ts"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
11
|
"start": "bun run src/index.ts",
|
|
12
|
-
"
|
|
12
|
+
"generate": "bun run src/index.ts generate"
|
|
13
13
|
},
|
|
14
14
|
"keywords": [
|
|
15
15
|
"audio-generation",
|
|
@@ -20,7 +20,6 @@
|
|
|
20
20
|
"minimax",
|
|
21
21
|
"gemini"
|
|
22
22
|
],
|
|
23
|
-
"author": "",
|
|
24
23
|
"devDependencies": {
|
|
25
24
|
"@types/bun": "latest"
|
|
26
25
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: audio-cleanup-lab
|
|
3
3
|
version: 0.1.0
|
|
4
4
|
description: Generate professional audio cleanup recipes and mastering guidelines for noisy recordings
|
|
5
5
|
author: skills.md
|
|
@@ -78,4 +78,4 @@ skills run audio-cleanup-lab -- "ADR matching location sound" \
|
|
|
78
78
|
## Requirements
|
|
79
79
|
|
|
80
80
|
- `OPENAI_API_KEY` environment variable.
|
|
81
|
-
- Bun runtime.
|
|
81
|
+
- Bun runtime.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: audio-transcript-pack
|
|
3
|
+
description: Generate premium transcript packages with timestamps, summaries, show notes, clip suggestions, repurposing copy, captions, and manifest metadata.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Audio Transcript Pack
|
|
7
|
+
|
|
8
|
+
Generate a production-ready transcript package from audio, video, or existing transcript text.
|
|
9
|
+
|
|
10
|
+
## Requirements
|
|
11
|
+
|
|
12
|
+
- Authenticate with `skills auth login`.
|
|
13
|
+
- This premium skill runs through the hosted Skills runtime; local installs expose only metadata and instructions.
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
skills run audio-transcript-pack --source ./episode.mp3 --title "Usage-based billing teardown" --speakers "Host,Guest"
|
|
19
|
+
skills run audio-transcript-pack --source ./transcript.txt --format podcast --duration-minutes 42
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Options
|
|
23
|
+
|
|
24
|
+
| Option | Description | Default |
|
|
25
|
+
|--------|-------------|---------|
|
|
26
|
+
| `--source <path-or-text>` | Audio/video file, transcript text file, or transcript text. | required |
|
|
27
|
+
| `--title <text>` | Episode, meeting, or recording title. | Audio Transcript Pack |
|
|
28
|
+
| `--speakers <list>` | Comma-separated speaker names. | Speaker 1,Speaker 2 |
|
|
29
|
+
| `--format <type>` | `podcast`, `meeting`, `lecture`, `interview`, or `general`. | general |
|
|
30
|
+
| `--duration-minutes <n>` | Approximate runtime for timestamp spacing. | 30 |
|
|
31
|
+
| `--output <dir>` | Output directory for direct local execution. Hosted runs use the run export directory. | run export dir |
|
|
32
|
+
|
|
33
|
+
## Outputs
|
|
34
|
+
|
|
35
|
+
- `transcript.md`
|
|
36
|
+
- `captions.srt`
|
|
37
|
+
- `summary.md`
|
|
38
|
+
- `show-notes.md`
|
|
39
|
+
- `clips.csv`
|
|
40
|
+
- `content-repurpose-pack.md`
|
|
41
|
+
- `manifest.json`
|
|
42
|
+
|
|
43
|
+
After submitting a hosted run, poll with `skills runs status <run-id>` and download outputs with `skills exports download <run-id>`.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# blog-article
|
|
2
|
+
|
|
3
|
+
Generate one or more SEO-ready blog article packages through the hosted Skills runtime.
|
|
4
|
+
|
|
5
|
+
Use via:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
skills quote create-blog-article --count 8 --topic "SaaS onboarding"
|
|
9
|
+
skills run create-blog-article --count 8 --topic "SaaS onboarding" --audience "founders" --length long --seo
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Hosted runs write Markdown, HTML, JSON, and manifest artifacts to the run export directory.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: blog-article
|
|
3
|
+
description: Generate one or more SEO-ready blog article packages as hosted premium artifacts.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Blog Article
|
|
7
|
+
|
|
8
|
+
Generate blog articles as downloadable Markdown, HTML, JSON, and manifest artifacts.
|
|
9
|
+
|
|
10
|
+
## Requirements
|
|
11
|
+
|
|
12
|
+
- Authenticate with `skills auth login`.
|
|
13
|
+
- This premium skill runs through the hosted Skills runtime; local installs expose only skill metadata and instructions.
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
skills quote create-blog-article --count 8 --topic "SaaS onboarding"
|
|
19
|
+
skills run create-blog-article --count 8 --topic "SaaS onboarding" --audience "founders" --length long --seo
|
|
20
|
+
skills run create-blog-article -- --topic "Product-led growth" --articles 12
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Options
|
|
24
|
+
|
|
25
|
+
| Option | Description | Default |
|
|
26
|
+
|--------|-------------|---------|
|
|
27
|
+
| `--topic <text>` | Topic or theme. Positional text also works. | required |
|
|
28
|
+
| `--audience <text>` | Intended reader or buyer persona. | |
|
|
29
|
+
| `--count <number>` | Number of articles to generate, 1-12. | 1 |
|
|
30
|
+
| `--articles <number>` | Alias for `--count`. | |
|
|
31
|
+
| `--tone <tone>` | `professional`, `casual`, `technical`, or `friendly`. | professional |
|
|
32
|
+
| `--length <length>` | `short`, `medium`, or `long`. | medium |
|
|
33
|
+
| `--seo` | Include SEO metadata and keyword-oriented structure. | false |
|
|
34
|
+
| `--outline <text>` | Optional outline, angles, or required sections. | |
|
|
35
|
+
| `--output <dir>` | Output directory for direct local execution. Hosted runs use the run export directory. | run export dir |
|
|
36
|
+
|
|
37
|
+
## Outputs
|
|
38
|
+
|
|
39
|
+
- `manifest.json` using the `skills.blogArticle.outputs.v1` contract
|
|
40
|
+
- For a single article: `article.md`, `article.html`, `article.json`
|
|
41
|
+
- For batch runs: `article-XX-<slug>/article.md`, `article.html`, `article.json`
|
|
42
|
+
|
|
43
|
+
`manifest.json` includes the run id, prompt, sanitized input options, requested tone/length/SEO settings, receipt cost, and an `articles` array. Each article entry includes `title`, `slug`, `summary`, `keywords`, optional `featuredImage`, word count, reading time, and relative file paths.
|
|
44
|
+
|
|
45
|
+
After submitting a hosted run, poll with `skills runs status <run-id>` and download outputs with `skills exports download <run-id>`.
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "
|
|
2
|
+
"name": "blog-article",
|
|
3
3
|
"version": "0.1.0",
|
|
4
|
-
"description": "
|
|
4
|
+
"description": "Hosted premium blog article artifact generator",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
|
-
"
|
|
7
|
+
"blog-article": "./src/index.ts"
|
|
8
8
|
},
|
|
9
9
|
"scripts": {
|
|
10
10
|
"dev": "bun run src/index.ts",
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: brand-kit
|
|
3
|
+
description: Generate premium brand kits with logo usage, palette, typography, brand voice, sample applications, Markdown guide, and PDF guide.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Brand Kit
|
|
7
|
+
|
|
8
|
+
Generate a production-ready brand guide package for a startup, product, internal tool, or campaign.
|
|
9
|
+
|
|
10
|
+
## Requirements
|
|
11
|
+
|
|
12
|
+
- Authenticate with `skills auth login`.
|
|
13
|
+
- This premium skill runs through the hosted Skills runtime; local installs expose only skill metadata and instructions.
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
skills run brand-kit "Usage-based billing for AI SaaS" --audience "founders" --personality "precise, calm, pragmatic"
|
|
19
|
+
skills run brand-kit --brand "Acme Ledger" --category "developer tools" --tone premium
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Options
|
|
23
|
+
|
|
24
|
+
| Option | Description | Default |
|
|
25
|
+
|--------|-------------|---------|
|
|
26
|
+
| `--brand <text>` | Brand, product, or company name. Positional text also works. | required |
|
|
27
|
+
| `--category <text>` | Market category or product type. | software product |
|
|
28
|
+
| `--audience <text>` | Primary audience. | software teams |
|
|
29
|
+
| `--personality <text>` | Brand personality words. | clear, capable, direct |
|
|
30
|
+
| `--tone <tone>` | `direct`, `premium`, `friendly`, or `technical`. | direct |
|
|
31
|
+
| `--output <dir>` | Output directory for direct local execution. Hosted runs use the run export directory. | run export dir |
|
|
32
|
+
|
|
33
|
+
## Outputs
|
|
34
|
+
|
|
35
|
+
- `brand-guide.md`
|
|
36
|
+
- `brand-guide.pdf`
|
|
37
|
+
- `palette.json`
|
|
38
|
+
- `typography.md`
|
|
39
|
+
- `voice-guide.md`
|
|
40
|
+
- `logo-usage.md`
|
|
41
|
+
- `sample-applications.md`
|
|
42
|
+
- `brand-assets.svg`
|
|
43
|
+
- `manifest.json`
|
|
44
|
+
|
|
45
|
+
After submitting a hosted run, poll with `skills runs status <run-id>` and download outputs with `skills exports download <run-id>`.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "brand-kit",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Hosted premium brand kit artifact generator",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"brand-kit": "./src/index.ts"
|
|
8
|
+
},
|
|
9
|
+
"dependencies": {},
|
|
10
|
+
"devDependencies": {
|
|
11
|
+
"@types/bun": "latest",
|
|
12
|
+
"typescript": "^5.7.0"
|
|
13
|
+
}
|
|
14
|
+
}
|