@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,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: contract-review-report
|
|
3
|
+
description: Generate premium contract review reports with clause summaries, risk register, negotiation points, redline-style suggestions, counterparty email draft, and manifest metadata.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Contract Review Report
|
|
7
|
+
|
|
8
|
+
Generate a structured contract review package from an agreement, terms sheet, statement of work, vendor contract, or customer contract.
|
|
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 contract-review-report --source ./msa.txt --party "Acme" --counterparty "VendorCo"
|
|
19
|
+
skills run contract-review-report --contract "Termination requires 90 days notice..." --focus "privacy,liability,payment"
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Options
|
|
23
|
+
|
|
24
|
+
| Option | Description | Default |
|
|
25
|
+
|--------|-------------|---------|
|
|
26
|
+
| `--contract <text>` | Contract text. Positional text also works. | required unless `--source` is used |
|
|
27
|
+
| `--source <path>` | Read contract text from a file. | none |
|
|
28
|
+
| `--party <text>` | Your company or client name. | Our company |
|
|
29
|
+
| `--counterparty <text>` | Other party name. | Counterparty |
|
|
30
|
+
| `--jurisdiction <text>` | Governing context for notes. | Not specified |
|
|
31
|
+
| `--focus <list>` | Comma-separated focus areas. | liability,payment,termination,privacy |
|
|
32
|
+
| `--output <dir>` | Output directory for direct local execution. Hosted runs use the run export directory. | run export dir |
|
|
33
|
+
|
|
34
|
+
## Outputs
|
|
35
|
+
|
|
36
|
+
- `contract-review-report.md`
|
|
37
|
+
- `risk-register.csv`
|
|
38
|
+
- `clause-summary.json`
|
|
39
|
+
- `redline-suggestions.md`
|
|
40
|
+
- `negotiation-email.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>`.
|
package/skills/convert/SKILL.md
CHANGED
|
@@ -64,9 +64,8 @@ bun run src/index.ts formats
|
|
|
64
64
|
- `@anthropic-ai/sdk` - Claude AI
|
|
65
65
|
- `openai` - GPT-4o AI
|
|
66
66
|
|
|
67
|
-
### API
|
|
68
|
-
- `
|
|
69
|
-
- `OPENAI_API_KEY` - For GPT-4o-powered conversions
|
|
67
|
+
### API Key
|
|
68
|
+
- `SKILL_API_KEY` - Hosted runtime access. Provider credentials for AI features are managed remotely.
|
|
70
69
|
|
|
71
70
|
## Conversion Categories
|
|
72
71
|
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: customer-feedback-report
|
|
3
|
+
description: Generate premium customer feedback reports from reviews, support tickets, surveys, call notes, or raw feedback with clusters, sentiment, root causes, roadmap recommendations, evidence, and manifest metadata.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Customer Feedback Report
|
|
7
|
+
|
|
8
|
+
Generate a structured customer feedback insight package from reviews, support tickets, survey responses, interview notes, sales call notes, or mixed raw feedback.
|
|
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 customer-feedback-report --feedback "Users love onboarding but struggle with invoices and integrations" --product "Skills.md"
|
|
19
|
+
skills run customer-feedback-report ./feedback.txt --product "Acme CRM" --channel tickets --format product
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Options
|
|
23
|
+
|
|
24
|
+
| Option | Description | Default |
|
|
25
|
+
|--------|-------------|---------|
|
|
26
|
+
| `--feedback <text>` | Raw feedback text. Positional text also works. | required unless `--source` is used |
|
|
27
|
+
| `--source <path>` | Read feedback text from a file. | none |
|
|
28
|
+
| `--product <text>` | Product, service, or workflow name. | Product |
|
|
29
|
+
| `--segment <text>` | Customer segment or audience. | All customers |
|
|
30
|
+
| `--channel <type>` | `reviews`, `tickets`, `calls`, `surveys`, or `mixed`. | mixed |
|
|
31
|
+
| `--format <type>` | `product`, `support`, or `executive`. | product |
|
|
32
|
+
| `--output <dir>` | Output directory for direct local execution. Hosted runs use the run export directory. | run export dir |
|
|
33
|
+
|
|
34
|
+
## Outputs
|
|
35
|
+
|
|
36
|
+
- `customer-feedback-report.md`
|
|
37
|
+
- `customer-feedback-report.pdf`
|
|
38
|
+
- `feedback-clusters.csv`
|
|
39
|
+
- `roadmap-suggestions.md`
|
|
40
|
+
- `sentiment-summary.json`
|
|
41
|
+
- `evidence.json`
|
|
42
|
+
- `manifest.json`
|
|
43
|
+
|
|
44
|
+
After submitting a hosted run, poll with `skills runs status <run-id>` and download outputs with `skills exports download <run-id>`.
|
|
@@ -21,24 +21,15 @@ cd ~/Workspace/dev/hasnaxyz/skill/skilldev/deepresearch
|
|
|
21
21
|
bun install
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
-
###
|
|
24
|
+
### Agent Integration
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
ln -s ~/Workspace/dev/hasnaxyz/skill/skilldev/deepresearch ~/.claude/skills/deepresearch
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
Then invoke with `/deepresearch "your topic"` in Claude Code.
|
|
26
|
+
Do not symlink, copy, or install this skill into agent-native skill folders.
|
|
27
|
+
Register the shared Skills MCP server instead:
|
|
32
28
|
|
|
33
|
-
### OpenAI Codex Skill
|
|
34
|
-
|
|
35
|
-
Link to Codex skills directory:
|
|
36
29
|
```bash
|
|
37
|
-
|
|
30
|
+
skills mcp --register all
|
|
38
31
|
```
|
|
39
32
|
|
|
40
|
-
Then invoke with `/deepresearch "your topic"` in Codex.
|
|
41
|
-
|
|
42
33
|
## Configuration
|
|
43
34
|
|
|
44
35
|
Set API keys in `~/.secrets`:
|
|
@@ -47,7 +47,7 @@ export async function executeSkill(request: SkillRequest): Promise<SkillResponse
|
|
|
47
47
|
method: "POST",
|
|
48
48
|
headers: {
|
|
49
49
|
"Content-Type": "application/json",
|
|
50
|
-
"User-Agent":
|
|
50
|
+
"User-Agent": `skill-${skill}-cli/1.0`,
|
|
51
51
|
"X-API-Key": apiKey
|
|
52
52
|
},
|
|
53
53
|
body: JSON.stringify(params)
|
|
@@ -11,7 +11,10 @@
|
|
|
11
11
|
"build": "bun build src/index.ts --outdir dist --target node",
|
|
12
12
|
"typecheck": "tsc --noEmit"
|
|
13
13
|
},
|
|
14
|
-
"dependencies": {
|
|
14
|
+
"dependencies": {
|
|
15
|
+
"diff": "^8.0.2",
|
|
16
|
+
"chalk": "^5.4.1"
|
|
17
|
+
},
|
|
15
18
|
"devDependencies": {
|
|
16
19
|
"@types/bun": "latest",
|
|
17
20
|
"typescript": "^5.7.0"
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { createOpenAIClient } from "./dependencies";
|
|
2
|
+
import type { DocOptions } from "./types";
|
|
3
|
+
|
|
4
|
+
export async function generateWithAI(options: DocOptions, topic: string, isPrompt = false): Promise<string> {
|
|
5
|
+
const apiKey = process.env.OPENAI_API_KEY;
|
|
6
|
+
if (!apiKey) {
|
|
7
|
+
throw new Error("OPENAI_API_KEY environment variable is required for AI generation");
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const openai = await createOpenAIClient(apiKey);
|
|
11
|
+
|
|
12
|
+
const lengthGuide = {
|
|
13
|
+
short: "Keep it concise, around 500 words total.",
|
|
14
|
+
medium: "Write a moderate length document, around 1000-1500 words.",
|
|
15
|
+
long: "Write a comprehensive document, around 2000-3000 words.",
|
|
16
|
+
comprehensive: "Write a very detailed document, around 4000+ words with thorough coverage.",
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
const styleGuide = {
|
|
20
|
+
professional: "Use professional business language.",
|
|
21
|
+
casual: "Use a casual, conversational tone.",
|
|
22
|
+
formal: "Use formal, academic language.",
|
|
23
|
+
academic: "Use scholarly, well-researched language with citations where appropriate.",
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
const systemPrompt = isPrompt
|
|
27
|
+
? `You are a professional document writer. Write in markdown format with proper headings, paragraphs, lists, and formatting. ${styleGuide[options.style]} ${lengthGuide[options.length]}`
|
|
28
|
+
: `You are a professional document writer creating a ${options.template} document. Write in markdown format with:
|
|
29
|
+
- A clear title (# Title)
|
|
30
|
+
- ${options.sections} main sections (## Section headings)
|
|
31
|
+
- Proper paragraphs, bullet points, and formatting as needed
|
|
32
|
+
- ${styleGuide[options.style]}
|
|
33
|
+
- ${lengthGuide[options.length]}
|
|
34
|
+
|
|
35
|
+
Output ONLY the markdown content, no explanations.`;
|
|
36
|
+
const userPrompt = isPrompt ? topic : `Write a document about: ${topic}`;
|
|
37
|
+
|
|
38
|
+
console.log("Generating content with AI...");
|
|
39
|
+
|
|
40
|
+
const response = await openai.chat.completions.create({
|
|
41
|
+
model: "gpt-4o",
|
|
42
|
+
messages: [
|
|
43
|
+
{ role: "system", content: systemPrompt },
|
|
44
|
+
{ role: "user", content: userPrompt },
|
|
45
|
+
],
|
|
46
|
+
temperature: 0.7,
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
return response.choices[0]?.message?.content || "";
|
|
50
|
+
}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import type { CliResult, DocOptions } from "./types";
|
|
2
|
+
|
|
3
|
+
const HELP = `
|
|
4
|
+
Generate DOCX - Create Word documents from markdown or AI
|
|
5
|
+
|
|
6
|
+
Usage:
|
|
7
|
+
skills run generate-docx -- <markdown-file> [options]
|
|
8
|
+
skills run generate-docx -- --topic "Topic" [options]
|
|
9
|
+
skills run generate-docx -- --prompt "Prompt" [options]
|
|
10
|
+
|
|
11
|
+
Input Options:
|
|
12
|
+
<file> Input markdown file
|
|
13
|
+
--topic <text> Topic for AI to write about
|
|
14
|
+
--prompt <text> Direct prompt for AI generation
|
|
15
|
+
--text <text> Plain text content
|
|
16
|
+
|
|
17
|
+
AI Options:
|
|
18
|
+
--sections <n> Number of sections (default: 5)
|
|
19
|
+
--style <type> Style: professional, casual, formal, academic
|
|
20
|
+
--tone <type> Tone: neutral, friendly, authoritative
|
|
21
|
+
--length <type> Length: short, medium, long, comprehensive
|
|
22
|
+
|
|
23
|
+
Output Options:
|
|
24
|
+
-o, --output <path> Output file path
|
|
25
|
+
--dir <path> Output directory (default: .skills/exports)
|
|
26
|
+
|
|
27
|
+
Template Options:
|
|
28
|
+
--template <name> Template: default, report, letter, memo, resume, article
|
|
29
|
+
--title <text> Document title
|
|
30
|
+
--author <text> Author name
|
|
31
|
+
--company <text> Company name
|
|
32
|
+
--date <text> Document date
|
|
33
|
+
|
|
34
|
+
Styling Options:
|
|
35
|
+
--font <name> Font family (default: Calibri)
|
|
36
|
+
--font-size <pt> Base font size (default: 11)
|
|
37
|
+
--heading-font Heading font (default: Calibri Light)
|
|
38
|
+
--line-spacing <n> Line spacing (default: 1.15)
|
|
39
|
+
--margins <inches> Page margins (default: 1)
|
|
40
|
+
--page-size <size> Page size: letter, a4, legal
|
|
41
|
+
|
|
42
|
+
Content Options:
|
|
43
|
+
--toc Include table of contents
|
|
44
|
+
--page-numbers Include page numbers (default: true)
|
|
45
|
+
--header <text> Header text
|
|
46
|
+
--footer <text> Footer text
|
|
47
|
+
|
|
48
|
+
Examples:
|
|
49
|
+
skills run generate-docx -- document.md -o output.docx
|
|
50
|
+
skills run generate-docx -- --topic "Business Plan" --template report -o plan.docx
|
|
51
|
+
skills run generate-docx -- --prompt "Write a cover letter" --template letter
|
|
52
|
+
`;
|
|
53
|
+
|
|
54
|
+
type ParsedArgs = Record<string, string | number | boolean | undefined> & { _: string[] };
|
|
55
|
+
|
|
56
|
+
const BOOLEAN_FLAGS = new Set(["toc", "page-numbers", "help"]);
|
|
57
|
+
const ALIASES: Record<string, string> = {
|
|
58
|
+
h: "help",
|
|
59
|
+
o: "output",
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const DEFAULT_ARGS: Omit<ParsedArgs, "_"> = {
|
|
63
|
+
dir: ".skills/exports",
|
|
64
|
+
template: "default",
|
|
65
|
+
font: "Calibri",
|
|
66
|
+
"font-size": 11,
|
|
67
|
+
"heading-font": "Calibri Light",
|
|
68
|
+
"line-spacing": 1.15,
|
|
69
|
+
margins: 1,
|
|
70
|
+
"page-size": "letter",
|
|
71
|
+
"page-numbers": true,
|
|
72
|
+
sections: 5,
|
|
73
|
+
style: "professional",
|
|
74
|
+
tone: "neutral",
|
|
75
|
+
length: "medium",
|
|
76
|
+
toc: false,
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
function normalizeFlag(flag: string): string {
|
|
80
|
+
return ALIASES[flag] ?? flag;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function parseBoolean(value: string | undefined): boolean {
|
|
84
|
+
if (value === undefined) return true;
|
|
85
|
+
if (/^(false|0|no)$/i.test(value)) return false;
|
|
86
|
+
if (/^(true|1|yes)$/i.test(value)) return true;
|
|
87
|
+
return Boolean(value);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
function parseArgs(argv: string[]): ParsedArgs {
|
|
91
|
+
const args: ParsedArgs = { ...DEFAULT_ARGS, _: [] };
|
|
92
|
+
|
|
93
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
94
|
+
const token = argv[index];
|
|
95
|
+
|
|
96
|
+
if (token === "--") {
|
|
97
|
+
args._.push(...argv.slice(index + 1));
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
if (token.startsWith("--no-")) {
|
|
102
|
+
args[normalizeFlag(token.slice(5))] = false;
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
if (token.startsWith("--")) {
|
|
107
|
+
const [rawFlag, inlineValue] = token.slice(2).split(/=(.*)/s, 2);
|
|
108
|
+
const flag = normalizeFlag(rawFlag);
|
|
109
|
+
|
|
110
|
+
if (BOOLEAN_FLAGS.has(flag)) {
|
|
111
|
+
args[flag] = parseBoolean(inlineValue);
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if (inlineValue !== undefined) {
|
|
116
|
+
args[flag] = inlineValue;
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
const next = argv[index + 1];
|
|
121
|
+
if (next !== undefined && !next.startsWith("-")) {
|
|
122
|
+
args[flag] = next;
|
|
123
|
+
index += 1;
|
|
124
|
+
} else {
|
|
125
|
+
args[flag] = "";
|
|
126
|
+
}
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
if (token.startsWith("-") && token !== "-") {
|
|
131
|
+
const shortFlags = token.slice(1);
|
|
132
|
+
const firstFlag = normalizeFlag(shortFlags[0]);
|
|
133
|
+
|
|
134
|
+
if (shortFlags.length === 1 && !BOOLEAN_FLAGS.has(firstFlag)) {
|
|
135
|
+
const next = argv[index + 1];
|
|
136
|
+
args[firstFlag] = next ?? "";
|
|
137
|
+
if (next !== undefined) index += 1;
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
for (const shortFlag of shortFlags) {
|
|
142
|
+
args[normalizeFlag(shortFlag)] = true;
|
|
143
|
+
}
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
args._.push(token);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
return args;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
function stringArg(args: ParsedArgs, name: string, fallback = ""): string {
|
|
154
|
+
const value = args[name];
|
|
155
|
+
if (value === undefined || value === false) return fallback;
|
|
156
|
+
return String(value);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
function numberArg(args: ParsedArgs, name: string, fallback: number): number {
|
|
160
|
+
const value = Number(args[name]);
|
|
161
|
+
return Number.isFinite(value) ? value : fallback;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
export function parseCli(argv = process.argv.slice(2)): CliResult {
|
|
165
|
+
const args = parseArgs(argv);
|
|
166
|
+
|
|
167
|
+
if (args.help) {
|
|
168
|
+
console.log(HELP);
|
|
169
|
+
process.exit(0);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
const options: DocOptions = {
|
|
173
|
+
output: stringArg(args, "output"),
|
|
174
|
+
dir: stringArg(args, "dir", ".skills/exports"),
|
|
175
|
+
template: stringArg(args, "template", "default") as DocOptions["template"],
|
|
176
|
+
title: stringArg(args, "title"),
|
|
177
|
+
author: stringArg(args, "author"),
|
|
178
|
+
company: stringArg(args, "company"),
|
|
179
|
+
date: stringArg(args, "date", new Date().toLocaleDateString()),
|
|
180
|
+
font: stringArg(args, "font", "Calibri"),
|
|
181
|
+
fontSize: numberArg(args, "font-size", 11),
|
|
182
|
+
headingFont: stringArg(args, "heading-font", "Calibri Light"),
|
|
183
|
+
lineSpacing: numberArg(args, "line-spacing", 1.15),
|
|
184
|
+
margins: numberArg(args, "margins", 1),
|
|
185
|
+
pageSize: stringArg(args, "page-size", "letter") as DocOptions["pageSize"],
|
|
186
|
+
toc: Boolean(args.toc),
|
|
187
|
+
pageNumbers: Boolean(args["page-numbers"]),
|
|
188
|
+
header: stringArg(args, "header"),
|
|
189
|
+
footer: stringArg(args, "footer"),
|
|
190
|
+
topic: stringArg(args, "topic") || null,
|
|
191
|
+
prompt: stringArg(args, "prompt") || null,
|
|
192
|
+
text: stringArg(args, "text") || null,
|
|
193
|
+
sections: numberArg(args, "sections", 5),
|
|
194
|
+
style: stringArg(args, "style", "professional") as DocOptions["style"],
|
|
195
|
+
tone: stringArg(args, "tone", "neutral") as DocOptions["tone"],
|
|
196
|
+
length: stringArg(args, "length", "medium") as DocOptions["length"],
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
return {
|
|
200
|
+
options,
|
|
201
|
+
inputFile: args._[0] as string | undefined,
|
|
202
|
+
};
|
|
203
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { DocumentDeps } from "./types";
|
|
2
|
+
|
|
3
|
+
let loadedDeps: DocumentDeps | null = null;
|
|
4
|
+
|
|
5
|
+
export async function loadDocumentDeps(): Promise<DocumentDeps> {
|
|
6
|
+
if (loadedDeps) return loadedDeps;
|
|
7
|
+
|
|
8
|
+
try {
|
|
9
|
+
const docx = await import("docx");
|
|
10
|
+
const { marked } = await import("marked");
|
|
11
|
+
loadedDeps = {
|
|
12
|
+
Document: docx.Document,
|
|
13
|
+
Packer: docx.Packer,
|
|
14
|
+
Paragraph: docx.Paragraph,
|
|
15
|
+
TextRun: docx.TextRun,
|
|
16
|
+
HeadingLevel: docx.HeadingLevel,
|
|
17
|
+
Table: docx.Table,
|
|
18
|
+
TableRow: docx.TableRow,
|
|
19
|
+
TableCell: docx.TableCell,
|
|
20
|
+
WidthType: docx.WidthType,
|
|
21
|
+
AlignmentType: docx.AlignmentType,
|
|
22
|
+
BorderStyle: docx.BorderStyle,
|
|
23
|
+
PageNumber: docx.PageNumber,
|
|
24
|
+
NumberFormat: docx.NumberFormat,
|
|
25
|
+
Header: docx.Header,
|
|
26
|
+
Footer: docx.Footer,
|
|
27
|
+
TableOfContents: docx.TableOfContents,
|
|
28
|
+
PageBreak: docx.PageBreak,
|
|
29
|
+
marked,
|
|
30
|
+
};
|
|
31
|
+
return loadedDeps;
|
|
32
|
+
} catch {
|
|
33
|
+
throw new Error("Missing document generation dependencies. Run bun install in this skill directory.");
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export async function createOpenAIClient(apiKey: string) {
|
|
38
|
+
try {
|
|
39
|
+
const { default: OpenAI } = await import("openai");
|
|
40
|
+
return new OpenAI({ apiKey });
|
|
41
|
+
} catch {
|
|
42
|
+
throw new Error("Missing dependency 'openai'. Run bun install in this skill directory.");
|
|
43
|
+
}
|
|
44
|
+
}
|