@hasna/skills 0.1.21 → 0.1.23
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/bin/index.js +341 -287
- package/bin/mcp.js +297 -245
- package/dist/index.d.ts +1 -1
- package/dist/index.js +79 -24
- package/dist/lib/basic-skills.test.d.ts +1 -0
- package/dist/lib/registry.d.ts +5 -0
- package/dist/lib/search.d.ts +2 -2
- package/package.json +1 -1
- package/skills/skill-academic-journal-matcher/package.json +1 -7
- package/skills/skill-action-item-router/package.json +1 -7
- package/skills/skill-ad-creative-generator/package.json +1 -7
- package/skills/skill-advanced-math/package.json +1 -7
- package/skills/skill-anomaly-investigator/package.json +1 -7
- package/skills/skill-api-test-suite/package.json +1 -7
- package/skills/skill-apidocs/package.json +0 -6
- package/skills/skill-audio/SKILL.md +3 -1
- package/skills/skill-audio/package.json +0 -5
- package/skills/skill-audio/src/index-local.ts +4 -1
- package/skills/skill-audio/src/providers/minimax.ts +83 -0
- package/skills/skill-audio/src/types.ts +1 -1
- package/skills/skill-audio-cleanup-lab/package.json +1 -5
- package/skills/{skill-extract-audio → skill-audio-extract}/SKILL.md +3 -3
- package/skills/{skill-extract-audio → skill-audio-extract}/package.json +3 -7
- package/skills/skill-audiobook-chapter-proofer/package.json +1 -7
- package/skills/skill-banner-ad-suite/package.json +1 -7
- package/skills/skill-benchmark-finder/package.json +1 -7
- package/skills/skill-bio-sequence-tool/package.json +1 -7
- package/skills/skill-blog-topic-cluster/package.json +1 -7
- package/skills/skill-brand-voice-audit/package.json +1 -7
- package/skills/skill-browse/package.json +0 -5
- package/skills/skill-businessactivity/package.json +1 -3
- package/skills/skill-calendar-events/package.json +1 -7
- package/skills/skill-campaign-metric-brief/package.json +1 -7
- package/skills/skill-campaign-moodboard/package.json +1 -7
- package/skills/skill-caption-style-stylist/package.json +1 -7
- package/skills/skill-chemistry-calculator/package.json +1 -7
- package/skills/skill-churn-risk-notifier/package.json +1 -7
- package/skills/skill-citation-formatter/package.json +1 -7
- package/skills/skill-classroom-newsletter-kit/package.json +1 -7
- package/skills/skill-codefix/package.json +0 -4
- package/skills/skill-color-palette-harmonizer/package.json +1 -7
- package/skills/skill-colorextract/package.json +17 -5
- package/skills/skill-commitpush/package.json +0 -1
- package/skills/skill-commitpushpr/package.json +0 -1
- package/skills/skill-competitor-ad-analyzer/package.json +1 -7
- package/skills/skill-compliance-copy-check/package.json +1 -7
- package/skills/skill-compliance-report-pack/package.json +1 -7
- package/skills/skill-compress-video/package.json +1 -5
- package/skills/skill-consolelog/package.json +1 -7
- package/skills/skill-contract-plainlanguage/package.json +1 -7
- package/skills/skill-convert/SKILL.md +7 -0
- package/skills/skill-convert/package.json +0 -4
- package/skills/skill-copytone-translator/package.json +1 -7
- package/skills/skill-create-blog-article/package.json +1 -7
- package/skills/skill-create-ebook/package.json +1 -7
- package/skills/skill-crm-note-enhancer/package.json +1 -7
- package/skills/skill-customer-journey-mapper/package.json +1 -7
- package/skills/skill-dashboard-builder/package.json +1 -7
- package/skills/skill-dashboard-narrator/package.json +1 -7
- package/skills/skill-data-anonymizer/package.json +1 -7
- package/skills/skill-database-explorer/package.json +1 -7
- package/skills/skill-dataset-health-check/package.json +1 -7
- package/skills/skill-decision-journal/package.json +1 -7
- package/skills/skill-deepresearch/package.json +0 -5
- package/skills/skill-delegation-brief-writer/package.json +1 -7
- package/skills/skill-deploy/package.json +0 -4
- package/skills/skill-destination-briefing/package.json +1 -7
- package/skills/skill-diff-viewer/package.json +1 -7
- package/skills/{skill-generate-docx → skill-doc-generate}/SKILL.md +2 -2
- package/skills/{skill-generate-pdf → skill-doc-generate}/package.json +9 -4
- package/skills/{skill-generate-docx → skill-doc-generate}/src/index.ts +91 -28
- package/skills/skill-doc-read/SKILL.md +45 -0
- package/skills/skill-doc-read/package.json +29 -0
- package/skills/skill-doc-read/src/index.ts +324 -0
- package/skills/skill-doc-read/tsconfig.json +8 -0
- package/skills/skill-domainpurchase/package.json +1 -7
- package/skills/skill-domainsearch/package.json +1 -7
- package/skills/skill-e2bswarm/package.json +0 -6
- package/skills/skill-educational-resource-finder/package.json +1 -7
- package/skills/skill-email-campaign/package.json +1 -7
- package/skills/skill-emoji/package.json +0 -1
- package/skills/skill-exam-readiness-check/package.json +1 -7
- package/skills/skill-excel/SKILL.md +38 -0
- package/skills/skill-excel/package.json +30 -0
- package/skills/{skill-generate-excel → skill-excel}/src/index.ts +41 -14
- package/skills/skill-experiment-power-calculator/package.json +1 -7
- package/skills/skill-extract/package.json +0 -5
- package/skills/skill-extract-frames/package.json +1 -7
- package/skills/skill-extract-invoice/package.json +1 -7
- package/skills/skill-family-activity-curator/package.json +1 -7
- package/skills/skill-faq-packager/package.json +1 -7
- package/skills/skill-feedback-survey-designer/package.json +1 -7
- package/skills/skill-field-trip-planner/package.json +1 -7
- package/skills/skill-file-organizer/package.json +1 -7
- package/skills/skill-folder-tree/package.json +1 -7
- package/skills/skill-forecast-scenario-lab/package.json +1 -7
- package/skills/skill-form-filler/package.json +1 -7
- package/skills/skill-generate-api-client/package.json +1 -7
- package/skills/skill-generate-book-cover/package.json +1 -7
- package/skills/skill-generate-chart/package.json +1 -7
- package/skills/skill-generate-diagram/package.json +1 -7
- package/skills/skill-generate-dockerfile/package.json +1 -7
- package/skills/skill-generate-documentation/package.json +1 -7
- package/skills/skill-generate-env/package.json +1 -7
- package/skills/skill-generate-favicon/package.json +1 -7
- package/skills/skill-generate-mock-data/package.json +1 -7
- package/skills/skill-generate-pr-description/package.json +1 -7
- package/skills/skill-generate-presentation/package.json +1 -7
- package/skills/skill-generate-qrcode/package.json +1 -7
- package/skills/skill-generate-regex/package.json +1 -7
- package/skills/skill-generate-resume/package.json +1 -7
- package/skills/skill-generate-sitemap/package.json +1 -7
- package/skills/skill-generate-social-posts/package.json +1 -7
- package/skills/skill-generate-sql/package.json +1 -7
- package/skills/skill-gif-maker/package.json +1 -7
- package/skills/skill-github-manager/package.json +1 -7
- package/skills/skill-gmail/package.json +1 -7
- package/skills/skill-goal-quarterly-roadmap/package.json +1 -7
- package/skills/skill-grant-application-drafter/package.json +1 -7
- package/skills/skill-grocery-basket-optimizer/package.json +1 -7
- package/skills/skill-guest-communication-suite/package.json +1 -7
- package/skills/skill-habit-reflection-digest/package.json +1 -7
- package/skills/skill-highlight-reel-generator/package.json +1 -7
- package/skills/skill-homework-feedback-coach/package.json +1 -7
- package/skills/skill-hook/package.json +0 -6
- package/skills/skill-household-maintenance-mgr/package.json +1 -7
- package/skills/skill-http-server/package.json +1 -7
- package/skills/skill-image/SKILL.md +2 -0
- package/skills/skill-image/package.json +0 -5
- package/skills/skill-image/src/index-local.ts +5 -3
- package/skills/skill-image/src/providers/minimax.ts +94 -0
- package/skills/skill-image/src/types.ts +1 -1
- package/skills/skill-implementation/package.json +0 -6
- package/skills/skill-implementation-agent/package.json +1 -7
- package/skills/skill-implementation-plan/package.json +1 -7
- package/skills/skill-implementation-todo/package.json +1 -7
- package/skills/skill-inbox-priority-planner/package.json +1 -7
- package/skills/skill-invoice-dispute-helper/package.json +1 -7
- package/skills/skill-itinerary-architect/package.json +1 -7
- package/skills/skill-kpi-digest-generator/package.json +1 -7
- package/skills/skill-lab-notebook-formatter/package.json +1 -7
- package/skills/skill-landing-page-copy/package.json +1 -7
- package/skills/skill-latex-table-generator/package.json +1 -7
- package/skills/skill-learning-style-profiler/package.json +1 -7
- package/skills/skill-lesson-plan-customizer/package.json +1 -7
- package/skills/skill-livestream-runofshow/package.json +1 -7
- package/skills/skill-longform-structurer/package.json +1 -7
- package/skills/skill-lorem-generator/package.json +1 -7
- package/skills/skill-managehook/package.json +1 -3
- package/skills/skill-managemcp/package.json +1 -3
- package/skills/skill-manageskill/package.json +1 -3
- package/skills/skill-markdown-validator/package.json +1 -7
- package/skills/skill-mcp-builder/package.json +1 -7
- package/skills/skill-meal-plan-designer/package.json +1 -7
- package/skills/skill-meeting-insight-summarizer/package.json +1 -7
- package/skills/skill-merge-pdfs/package.json +1 -7
- package/skills/skill-microcopy-generator/package.json +1 -7
- package/skills/skill-mindfulness-prompt-cache/package.json +1 -7
- package/skills/skill-monitor/package.json +0 -1
- package/skills/skill-music/CLAUDE.md +9 -0
- package/skills/skill-music/SKILL.md +35 -0
- package/skills/{skill-generate-excel → skill-music}/package.json +4 -10
- package/skills/skill-music/src/index.ts +192 -0
- package/skills/skill-notion-manager/package.json +1 -7
- package/skills/skill-npmpublish/package.json +0 -5
- package/skills/skill-onboarding-sequence-builder/package.json +1 -7
- package/skills/skill-onsite-ops-checklist/package.json +1 -7
- package/skills/skill-outreach-cadence-designer/package.json +1 -7
- package/skills/skill-packaging-concept-studio/package.json +1 -7
- package/skills/skill-packing-plan-pro/package.json +1 -7
- package/skills/skill-parent-teacher-brief/package.json +1 -7
- package/skills/skill-partner-kit-assembler/package.json +1 -7
- package/skills/skill-payroll-change-prepper/package.json +1 -7
- package/skills/{skill-generate-pdf → skill-pdf-generate}/SKILL.md +2 -2
- package/skills/{skill-generate-docx → skill-pdf-generate}/package.json +6 -4
- package/skills/{skill-generate-pdf → skill-pdf-generate}/src/index.ts +109 -8
- package/skills/skill-pdf-read/SKILL.md +56 -0
- package/skills/skill-pdf-read/package.json +29 -0
- package/skills/skill-pdf-read/src/index.ts +320 -0
- package/skills/skill-pdf-read/tsconfig.json +8 -0
- package/skills/skill-persona-based-adwriter/package.json +1 -7
- package/skills/skill-persona-generator/package.json +1 -7
- package/skills/skill-personal-daily-ops/package.json +1 -7
- package/skills/skill-pet-care-scheduler/package.json +1 -7
- package/skills/skill-podcast-show-notes/package.json +1 -7
- package/skills/skill-presentation-theme-maker/package.json +1 -7
- package/skills/skill-press-release-drafter/package.json +1 -7
- package/skills/skill-print-collateral-designer/package.json +1 -7
- package/skills/skill-procurement-scorecard/package.json +1 -7
- package/skills/skill-product-demo-script/package.json +1 -7
- package/skills/skill-product-mockup/package.json +1 -7
- package/skills/skill-project-retro-companion/package.json +1 -7
- package/skills/skill-proposal-redline-advisor/package.json +1 -7
- package/skills/skill-read-csv/SKILL.md +1 -1
- package/skills/skill-read-csv/package.json +0 -1
- package/skills/skill-read-csv/src/index.ts +30 -5
- package/skills/skill-read-excel/SKILL.md +1 -1
- package/skills/skill-read-excel/package.json +0 -1
- package/skills/skill-read-excel/src/index.ts +21 -8
- package/skills/skill-read-image/SKILL.md +1 -1
- package/skills/skill-read-image/package.json +0 -1
- package/skills/skill-read-pdf/SKILL.md +1 -1
- package/skills/skill-read-pdf/package.json +0 -1
- package/skills/skill-read-pdf/src/index.ts +15 -3
- package/skills/skill-regex-tester/package.json +1 -7
- package/skills/skill-remove-background/package.json +1 -7
- package/skills/skill-risk-disclosure-kit/package.json +1 -7
- package/skills/skill-roi-comparison-tool/package.json +1 -7
- package/skills/skill-sales-call-recapper/package.json +1 -7
- package/skills/skill-scaffold-project/package.json +1 -7
- package/skills/skill-scancommitpr/package.json +0 -2
- package/skills/skill-scancommitpush/package.json +0 -2
- package/skills/skill-scholarship-tracker/package.json +1 -7
- package/skills/skill-scientific-figure-check/package.json +1 -7
- package/skills/skill-seating-chart-maker/package.json +1 -7
- package/skills/skill-security-audit/package.json +1 -7
- package/skills/skill-seo-brief-builder/package.json +1 -7
- package/skills/skill-siteanalyze/package.json +19 -5
- package/skills/skill-slack-assistant/package.json +1 -7
- package/skills/skill-sleep-routine-analyzer/package.json +1 -7
- package/skills/skill-sms/package.json +0 -1
- package/skills/skill-social-media-kit/package.json +1 -7
- package/skills/skill-sound-effects/SKILL.md +34 -0
- package/skills/{skill-jingle-composer → skill-sound-effects}/package.json +4 -10
- package/skills/skill-sound-effects/src/index.ts +172 -0
- package/skills/skill-sound-effects/tsconfig.json +8 -0
- package/skills/skill-split-pdf/package.json +1 -7
- package/skills/skill-sponsorship-proposal-lab/package.json +1 -7
- package/skills/skill-spreadsheet-cleanroom/package.json +1 -7
- package/skills/skill-statistical-test-selector/package.json +1 -7
- package/skills/skill-stress-relief-playbook/package.json +1 -7
- package/skills/skill-study-guide-builder/package.json +1 -7
- package/skills/skill-subscription-spend-watcher/package.json +1 -7
- package/skills/skill-subtitle/package.json +0 -6
- package/skills/skill-survey-insight-extractor/package.json +1 -7
- package/skills/skill-terraform-generator/package.json +1 -7
- package/skills/skill-testimonial-graphics/package.json +1 -7
- package/skills/skill-timesheet/package.json +0 -6
- package/skills/skill-tmux-session/package.json +0 -1
- package/skills/skill-transcript/SKILL.md +3 -1
- package/skills/skill-transcript/package.json +0 -5
- package/skills/skill-travel-budget-balancer/package.json +1 -7
- package/skills/skill-validate-config/package.json +1 -7
- package/skills/skill-video/SKILL.md +3 -1
- package/skills/skill-video/package.json +0 -5
- package/skills/skill-video/src/providers/index.ts +4 -1
- package/skills/skill-video/src/providers/minimax.ts +100 -0
- package/skills/skill-video/src/types.ts +1 -1
- package/skills/skill-video-cut-suggester/package.json +1 -7
- package/skills/skill-video-downloader/package.json +1 -7
- package/skills/skill-video-thumbnail/package.json +1 -7
- package/skills/skill-voiceover-casting-assistant/package.json +1 -7
- package/skills/skill-watermark/package.json +1 -7
- package/skills/skill-webcrawling/package.json +11 -8
- package/skills/skill-webinar-script-coach/package.json +1 -7
- package/skills/skill-wellness-progress-reporter/package.json +1 -7
- package/skills/skill-workout-cycle-planner/package.json +1 -7
- package/skills/skill-write/package.json +0 -5
- package/skills/skill-jingle-composer/CLAUDE.md +0 -19
- package/skills/skill-jingle-composer/src/index.ts +0 -250
- /package/skills/{skill-extract-audio → skill-audio-extract}/CLAUDE.md +0 -0
- /package/skills/{skill-extract-audio → skill-audio-extract}/src/index.ts +0 -0
- /package/skills/{skill-extract-audio → skill-audio-extract}/tsconfig.json +0 -0
- /package/skills/{skill-generate-docx → skill-doc-generate}/CLAUDE.md +0 -0
- /package/skills/{skill-generate-docx → skill-doc-generate}/tsconfig.json +0 -0
- /package/skills/{skill-generate-excel → skill-excel}/CLAUDE.md +0 -0
- /package/skills/{skill-generate-excel → skill-excel}/tsconfig.json +0 -0
- /package/skills/{skill-jingle-composer → skill-music}/tsconfig.json +0 -0
- /package/skills/{skill-generate-pdf → skill-pdf-generate}/CLAUDE.md +0 -0
- /package/skills/{skill-generate-pdf → skill-pdf-generate}/tsconfig.json +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* Or use the interactive CLI:
|
|
8
8
|
* skills
|
|
9
9
|
*/
|
|
10
|
-
export { SKILLS, CATEGORIES, getSkill, getSkillsByCategory, searchSkills, getSkillsByTag, getAllTags, findSimilarSkills, loadRegistry, clearRegistryCache, type SkillMeta, type Category, } from "./lib/registry.js";
|
|
10
|
+
export { SKILLS, BASIC_SKILL_NAMES, CATEGORIES, getSkill, getSkillsByCategory, searchSkills, getSkillsByTag, getAllTags, findSimilarSkills, isBasicSkillName, loadRegistry, loadBasicRegistry, loadRegistryProfile, clearRegistryCache, type SkillMeta, type Category, type SkillRegistryProfile, } from "./lib/registry.js";
|
|
11
11
|
export { installSkill, installSkills, installSkillForAgent, removeSkillForAgent, getInstalledSkills, removeSkill, skillExists, getSkillPath, getAgentSkillsDir, getAgentSkillPath, AGENT_TARGETS, type InstallResult, type InstallOptions, type AgentTarget, type AgentScope, type AgentInstallOptions, getInstallMeta, disableSkill, enableSkill, getDisabledSkills, } from "./lib/installer.js";
|
|
12
12
|
export { getSkillDocs, getSkillBestDoc, getSkillRequirements, runSkill, generateEnvExample, generateSkillMd, type SkillDocs, type SkillRequirements, } from "./lib/skillinfo.js";
|
|
13
13
|
export { loadConfig, saveConfig, getConfigPath, type SkillsConfig, type ConfigScope, } from "./lib/config.js";
|
package/dist/index.js
CHANGED
|
@@ -44,12 +44,12 @@ function fuzzyMatchScore(word, target) {
|
|
|
44
44
|
}
|
|
45
45
|
return 0;
|
|
46
46
|
}
|
|
47
|
-
function searchSkills(query) {
|
|
47
|
+
function searchSkills(query, registry = loadRegistry()) {
|
|
48
48
|
const words = query.toLowerCase().split(/\s+/).filter(Boolean);
|
|
49
49
|
if (words.length === 0)
|
|
50
50
|
return [];
|
|
51
51
|
const scored = [];
|
|
52
|
-
for (const skill of
|
|
52
|
+
for (const skill of registry) {
|
|
53
53
|
const nameLower = skill.name.toLowerCase();
|
|
54
54
|
const displayNameLower = skill.displayName.toLowerCase();
|
|
55
55
|
const descriptionLower = skill.description.toLowerCase();
|
|
@@ -84,9 +84,9 @@ function searchSkills(query) {
|
|
|
84
84
|
scored.sort((a, b) => b.score - a.score);
|
|
85
85
|
return scored.map((s) => s.skill);
|
|
86
86
|
}
|
|
87
|
-
function findSimilarSkills(query, maxResults = 3) {
|
|
87
|
+
function findSimilarSkills(query, maxResults = 3, registry = loadRegistry()) {
|
|
88
88
|
const q = query.toLowerCase();
|
|
89
|
-
const scored =
|
|
89
|
+
const scored = registry.map((s) => ({ name: s.name, dist: editDistance(q, s.name.toLowerCase()) })).filter((s) => s.dist <= Math.max(3, Math.floor(q.length / 2))).sort((a, b) => a.dist - b.dist);
|
|
90
90
|
return scored.slice(0, maxResults).map((s) => s.name);
|
|
91
91
|
}
|
|
92
92
|
|
|
@@ -110,6 +110,28 @@ var CATEGORIES = [
|
|
|
110
110
|
"Travel & Lifestyle",
|
|
111
111
|
"Event Management"
|
|
112
112
|
];
|
|
113
|
+
var BASIC_SKILL_NAMES = [
|
|
114
|
+
"image",
|
|
115
|
+
"video",
|
|
116
|
+
"audio",
|
|
117
|
+
"music",
|
|
118
|
+
"sound-effects",
|
|
119
|
+
"transcript",
|
|
120
|
+
"audio-extract",
|
|
121
|
+
"read-image",
|
|
122
|
+
"read-pdf",
|
|
123
|
+
"pdf-read",
|
|
124
|
+
"doc-read",
|
|
125
|
+
"pdf-generate",
|
|
126
|
+
"doc-generate",
|
|
127
|
+
"read-csv",
|
|
128
|
+
"read-excel",
|
|
129
|
+
"excel",
|
|
130
|
+
"convert"
|
|
131
|
+
];
|
|
132
|
+
function isBasicSkillName(name) {
|
|
133
|
+
return BASIC_SKILL_NAMES.includes(name.replace(/^skill-/, ""));
|
|
134
|
+
}
|
|
113
135
|
var SKILLS = [
|
|
114
136
|
{
|
|
115
137
|
name: "api-test-suite",
|
|
@@ -697,9 +719,9 @@ var SKILLS = [
|
|
|
697
719
|
{
|
|
698
720
|
name: "audio",
|
|
699
721
|
displayName: "Audio",
|
|
700
|
-
description: "Generate audio, voiceovers, and speech using AI-powered TTS APIs (ElevenLabs, OpenAI)",
|
|
722
|
+
description: "Generate audio, voiceovers, and speech using AI-powered TTS APIs (Minimax, ElevenLabs, OpenAI)",
|
|
701
723
|
category: "Content Generation",
|
|
702
|
-
tags: ["audio", "tts", "speech", "ai"]
|
|
724
|
+
tags: ["audio", "tts", "speech", "ai", "minimax"]
|
|
703
725
|
},
|
|
704
726
|
{
|
|
705
727
|
name: "audiobook-chapter-proofer",
|
|
@@ -723,22 +745,22 @@ var SKILLS = [
|
|
|
723
745
|
tags: ["diagrams", "flowcharts", "visualization", "architecture"]
|
|
724
746
|
},
|
|
725
747
|
{
|
|
726
|
-
name: "generate
|
|
727
|
-
displayName: "Generate
|
|
728
|
-
description: "Generate DOCX documents with
|
|
748
|
+
name: "doc-generate",
|
|
749
|
+
displayName: "Doc Generate",
|
|
750
|
+
description: "Generate DOCX documents with rich formatting, templates, and AI content",
|
|
729
751
|
category: "Content Generation",
|
|
730
752
|
tags: ["docx", "document", "word", "generation"]
|
|
731
753
|
},
|
|
732
754
|
{
|
|
733
|
-
name: "
|
|
734
|
-
displayName: "
|
|
735
|
-
description: "Generate Excel spreadsheets with
|
|
755
|
+
name: "excel",
|
|
756
|
+
displayName: "Excel",
|
|
757
|
+
description: "Generate Excel spreadsheets with data, formulas, and professional styling",
|
|
736
758
|
category: "Content Generation",
|
|
737
759
|
tags: ["excel", "spreadsheet", "generation", "data"]
|
|
738
760
|
},
|
|
739
761
|
{
|
|
740
|
-
name: "generate
|
|
741
|
-
displayName: "Generate
|
|
762
|
+
name: "pdf-generate",
|
|
763
|
+
displayName: "PDF Generate",
|
|
742
764
|
description: "Generate PDF documents with rich formatting and layouts",
|
|
743
765
|
category: "Content Generation",
|
|
744
766
|
tags: ["pdf", "document", "generation", "formatting"]
|
|
@@ -767,23 +789,23 @@ var SKILLS = [
|
|
|
767
789
|
{
|
|
768
790
|
name: "image",
|
|
769
791
|
displayName: "Image",
|
|
770
|
-
description: "Generate images using
|
|
792
|
+
description: "Generate images using AI providers: Minimax, DALL-E 3, Imagen 3, and Aurora",
|
|
771
793
|
category: "Content Generation",
|
|
772
|
-
tags: ["image", "generation", "ai", "dalle"]
|
|
794
|
+
tags: ["image", "generation", "ai", "minimax", "dalle"]
|
|
773
795
|
},
|
|
774
796
|
{
|
|
775
|
-
name: "
|
|
776
|
-
displayName: "
|
|
777
|
-
description: "
|
|
797
|
+
name: "music",
|
|
798
|
+
displayName: "Music",
|
|
799
|
+
description: "Generate music tracks using AI models (Minimax Music-01)",
|
|
778
800
|
category: "Content Generation",
|
|
779
|
-
tags: ["
|
|
801
|
+
tags: ["music", "generation", "ai", "minimax"]
|
|
780
802
|
},
|
|
781
803
|
{
|
|
782
804
|
name: "video",
|
|
783
805
|
displayName: "Video",
|
|
784
|
-
description: "Generate videos using AI models
|
|
806
|
+
description: "Generate videos using AI models: Minimax, Google Veo, OpenAI Sora, and Runway",
|
|
785
807
|
category: "Content Generation",
|
|
786
|
-
tags: ["video", "generation", "ai", "sora"]
|
|
808
|
+
tags: ["video", "generation", "ai", "minimax", "sora"]
|
|
787
809
|
},
|
|
788
810
|
{
|
|
789
811
|
name: "voiceover-casting-assistant",
|
|
@@ -1002,6 +1024,20 @@ var SKILLS = [
|
|
|
1002
1024
|
category: "Data & Analysis",
|
|
1003
1025
|
tags: ["pdf", "documents", "extraction", "analysis"]
|
|
1004
1026
|
},
|
|
1027
|
+
{
|
|
1028
|
+
name: "pdf-read",
|
|
1029
|
+
displayName: "PDF Read",
|
|
1030
|
+
description: "Read multiple PDFs with page-range selection, chunked reading, and parallel processing",
|
|
1031
|
+
category: "Data & Analysis",
|
|
1032
|
+
tags: ["pdf", "reader", "extraction", "parallel"]
|
|
1033
|
+
},
|
|
1034
|
+
{
|
|
1035
|
+
name: "doc-read",
|
|
1036
|
+
displayName: "Doc Read",
|
|
1037
|
+
description: "Read and extract text from DOCX files with section parsing and metadata extraction",
|
|
1038
|
+
category: "Data & Analysis",
|
|
1039
|
+
tags: ["docx", "reader", "extraction", "word"]
|
|
1040
|
+
},
|
|
1005
1041
|
{
|
|
1006
1042
|
name: "spreadsheet-cleanroom",
|
|
1007
1043
|
displayName: "Spreadsheet Cleanroom",
|
|
@@ -1031,8 +1067,8 @@ var SKILLS = [
|
|
|
1031
1067
|
tags: ["video", "compression", "ffmpeg", "optimization"]
|
|
1032
1068
|
},
|
|
1033
1069
|
{
|
|
1034
|
-
name: "extract
|
|
1035
|
-
displayName: "Extract
|
|
1070
|
+
name: "audio-extract",
|
|
1071
|
+
displayName: "Audio Extract",
|
|
1036
1072
|
description: "Extract audio tracks from video files with multiple format support",
|
|
1037
1073
|
category: "Media Processing",
|
|
1038
1074
|
tags: ["audio", "extraction", "video", "conversion"]
|
|
@@ -1107,6 +1143,13 @@ var SKILLS = [
|
|
|
1107
1143
|
category: "Media Processing",
|
|
1108
1144
|
tags: ["watermark", "protection", "copyright", "images"]
|
|
1109
1145
|
},
|
|
1146
|
+
{
|
|
1147
|
+
name: "sound-effects",
|
|
1148
|
+
displayName: "Sound Effects",
|
|
1149
|
+
description: "Generate realistic sound effects from text descriptions using AI (Minimax)",
|
|
1150
|
+
category: "Media Processing",
|
|
1151
|
+
tags: ["audio", "sound-effects", "sfx", "ai", "minimax"]
|
|
1152
|
+
},
|
|
1110
1153
|
{
|
|
1111
1154
|
name: "brand-style-guide",
|
|
1112
1155
|
displayName: "Brand Style Guide",
|
|
@@ -1680,6 +1723,14 @@ function loadRegistry(cwd) {
|
|
|
1680
1723
|
_registryCacheTime = now;
|
|
1681
1724
|
return _registryCache;
|
|
1682
1725
|
}
|
|
1726
|
+
function loadBasicRegistry(cwd) {
|
|
1727
|
+
const registry = loadRegistry(cwd);
|
|
1728
|
+
const byName = new Map(registry.map((skill) => [skill.name, skill]));
|
|
1729
|
+
return BASIC_SKILL_NAMES.map((name) => byName.get(name)).filter((skill) => skill !== undefined);
|
|
1730
|
+
}
|
|
1731
|
+
function loadRegistryProfile(profile = "basic", cwd) {
|
|
1732
|
+
return profile === "all" ? loadRegistry(cwd) : loadBasicRegistry(cwd);
|
|
1733
|
+
}
|
|
1683
1734
|
function clearRegistryCache() {
|
|
1684
1735
|
_registryCache = null;
|
|
1685
1736
|
_registryCacheTime = 0;
|
|
@@ -2565,9 +2616,12 @@ export {
|
|
|
2565
2616
|
removeSkill,
|
|
2566
2617
|
removeSchedule,
|
|
2567
2618
|
recordScheduleRun,
|
|
2619
|
+
loadRegistryProfile,
|
|
2568
2620
|
loadRegistry,
|
|
2569
2621
|
loadConfig,
|
|
2622
|
+
loadBasicRegistry,
|
|
2570
2623
|
listSchedules,
|
|
2624
|
+
isBasicSkillName,
|
|
2571
2625
|
installSkills,
|
|
2572
2626
|
installSkillForAgent,
|
|
2573
2627
|
installSkill,
|
|
@@ -2596,5 +2650,6 @@ export {
|
|
|
2596
2650
|
addSchedule,
|
|
2597
2651
|
SKILLS,
|
|
2598
2652
|
CATEGORIES,
|
|
2653
|
+
BASIC_SKILL_NAMES,
|
|
2599
2654
|
AGENT_TARGETS
|
|
2600
2655
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/lib/registry.d.ts
CHANGED
|
@@ -12,6 +12,9 @@ export interface SkillMeta {
|
|
|
12
12
|
}
|
|
13
13
|
export declare const CATEGORIES: readonly ["Development Tools", "Business & Marketing", "Productivity & Organization", "Project Management", "Content Generation", "Finance & Compliance", "Data & Analysis", "Media Processing", "Design & Branding", "Web & Browser", "Research & Writing", "Science & Academic", "Education & Learning", "Communication", "Health & Wellness", "Travel & Lifestyle", "Event Management"];
|
|
14
14
|
export type Category = (typeof CATEGORIES)[number];
|
|
15
|
+
export declare const BASIC_SKILL_NAMES: readonly ["image", "video", "audio", "music", "sound-effects", "transcript", "audio-extract", "read-image", "read-pdf", "pdf-read", "doc-read", "pdf-generate", "doc-generate", "read-csv", "read-excel", "excel", "convert"];
|
|
16
|
+
export type SkillRegistryProfile = "basic" | "all";
|
|
17
|
+
export declare function isBasicSkillName(name: string): boolean;
|
|
15
18
|
export declare const SKILLS: SkillMeta[];
|
|
16
19
|
/**
|
|
17
20
|
* Load the full registry: official skills merged with custom skills from:
|
|
@@ -23,6 +26,8 @@ export declare const SKILLS: SkillMeta[];
|
|
|
23
26
|
* Results are cached for 5 seconds.
|
|
24
27
|
*/
|
|
25
28
|
export declare function loadRegistry(cwd?: string): SkillMeta[];
|
|
29
|
+
export declare function loadBasicRegistry(cwd?: string): SkillMeta[];
|
|
30
|
+
export declare function loadRegistryProfile(profile?: SkillRegistryProfile, cwd?: string): SkillMeta[];
|
|
26
31
|
/** Invalidate the registry cache (e.g. after installing a custom skill). */
|
|
27
32
|
export declare function clearRegistryCache(): void;
|
|
28
33
|
export declare function getSkillsByCategory(category: Category): SkillMeta[];
|
package/dist/lib/search.d.ts
CHANGED
|
@@ -10,8 +10,8 @@ export declare function editDistance(a: string, b: string): number;
|
|
|
10
10
|
/**
|
|
11
11
|
* Search skills by name, description, and tags using fuzzy matching.
|
|
12
12
|
*/
|
|
13
|
-
export declare function searchSkills(query: string): SkillMeta[];
|
|
13
|
+
export declare function searchSkills(query: string, registry?: SkillMeta[]): SkillMeta[];
|
|
14
14
|
/**
|
|
15
15
|
* Find skills with names similar to the given query (for "did you mean?" suggestions).
|
|
16
16
|
*/
|
|
17
|
-
export declare function findSimilarSkills(query: string, maxResults?: number): string[];
|
|
17
|
+
export declare function findSimilarSkills(query: string, maxResults?: number, registry?: SkillMeta[]): string[];
|
package/package.json
CHANGED
|
@@ -11,12 +11,6 @@
|
|
|
11
11
|
"build": "bun build bin/cli.ts --outdir dist --target node",
|
|
12
12
|
"typecheck": "tsc --noEmit"
|
|
13
13
|
},
|
|
14
|
-
"repository": {
|
|
15
|
-
"type": "git",
|
|
16
|
-
"url": "https://github.com/hasnaxyz/skill-apidocs.git"
|
|
17
|
-
},
|
|
18
|
-
"author": "Hasna",
|
|
19
|
-
"license": "Apache-2.0",
|
|
20
14
|
"keywords": [
|
|
21
15
|
"api",
|
|
22
16
|
"documentation",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: audio
|
|
3
3
|
description: Generate high-quality audio using ElevenLabs, OpenAI TTS, and Google Text-to-Speech APIs. Support for text-to-speech, voice cloning, multiple languages, and various voice options.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -7,6 +7,8 @@ description: Generate high-quality audio using ElevenLabs, OpenAI TTS, and Googl
|
|
|
7
7
|
|
|
8
8
|
This skill provides a unified interface for generating audio from text using multiple AI-powered text-to-speech providers.
|
|
9
9
|
|
|
10
|
+
This CLI is API-backed. Set `SKILL_API_KEY` when routing through the hosted skills/connectors runtime; provider-specific keys are managed by that runtime.
|
|
11
|
+
|
|
10
12
|
## Supported Providers
|
|
11
13
|
|
|
12
14
|
### ElevenLabs
|
|
@@ -21,15 +21,10 @@
|
|
|
21
21
|
"ai"
|
|
22
22
|
],
|
|
23
23
|
"author": "",
|
|
24
|
-
"license": "Apache-2.0",
|
|
25
24
|
"devDependencies": {
|
|
26
25
|
"@types/bun": "latest"
|
|
27
26
|
},
|
|
28
27
|
"peerDependencies": {
|
|
29
28
|
"typescript": "^5.0.0"
|
|
30
|
-
},
|
|
31
|
-
"repository": {
|
|
32
|
-
"type": "git",
|
|
33
|
-
"url": "git+https://github.com/hasnaxyz/skill-audio.git"
|
|
34
29
|
}
|
|
35
30
|
}
|
|
@@ -20,6 +20,7 @@ if (await handleInstallCommand(SKILL_META, process.argv.slice(2))) {
|
|
|
20
20
|
process.exit(0);
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
import { MinimaxProvider } from './providers/minimax';
|
|
23
24
|
import { ElevenLabsProvider } from './providers/elevenlabs';
|
|
24
25
|
import { OpenAIProvider } from './providers/openai';
|
|
25
26
|
import { GoogleProvider } from './providers/google';
|
|
@@ -56,6 +57,8 @@ function parseArgs(): {
|
|
|
56
57
|
// Get provider instance
|
|
57
58
|
function getProvider(providerName: Provider): AudioProvider {
|
|
58
59
|
switch (providerName) {
|
|
60
|
+
case 'minimax':
|
|
61
|
+
return new MinimaxProvider();
|
|
59
62
|
case 'elevenlabs':
|
|
60
63
|
return new ElevenLabsProvider();
|
|
61
64
|
case 'openai':
|
|
@@ -64,7 +67,7 @@ function getProvider(providerName: Provider): AudioProvider {
|
|
|
64
67
|
return new GoogleProvider();
|
|
65
68
|
default:
|
|
66
69
|
throw new Error(
|
|
67
|
-
`Unknown provider: ${providerName}. Use: elevenlabs, openai, or google`
|
|
70
|
+
`Unknown provider: ${providerName}. Use: minimax, elevenlabs, openai, or google`
|
|
68
71
|
);
|
|
69
72
|
}
|
|
70
73
|
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { AudioProvider, GenerateOptions, Voice } from '../types';
|
|
2
|
+
import { writeFile } from 'fs/promises';
|
|
3
|
+
|
|
4
|
+
export class MinimaxProvider implements AudioProvider {
|
|
5
|
+
name = 'Minimax Speech-02-HD';
|
|
6
|
+
private apiKey: string;
|
|
7
|
+
private baseUrl = 'https://api.minimax.chat/v1';
|
|
8
|
+
|
|
9
|
+
constructor() {
|
|
10
|
+
this.apiKey = process.env.MINIMAX_API_KEY || '';
|
|
11
|
+
if (!this.apiKey) {
|
|
12
|
+
throw new Error('MINIMAX_API_KEY environment variable is required');
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
async generate(options: GenerateOptions): Promise<void> {
|
|
17
|
+
console.log(`Generating audio with ${this.name}...`);
|
|
18
|
+
|
|
19
|
+
const body: Record<string, unknown> = {
|
|
20
|
+
model: options.model || 'speech-02-hd',
|
|
21
|
+
text: options.text,
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
if (options.voice || options.speed) {
|
|
25
|
+
const voiceSetting: Record<string, unknown> = {};
|
|
26
|
+
if (options.voice) voiceSetting.voice_id = options.voice;
|
|
27
|
+
if (options.speed) voiceSetting.speed = options.speed;
|
|
28
|
+
body.voice_setting = voiceSetting;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const format = options.output.endsWith('.wav') ? 'wav' :
|
|
32
|
+
options.output.endsWith('.flac') ? 'flac' : 'mp3';
|
|
33
|
+
body.audio_setting = { format };
|
|
34
|
+
|
|
35
|
+
if (options.language) {
|
|
36
|
+
body.language_boost = options.language;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const response = await fetch(`${this.baseUrl}/t2a_v2`, {
|
|
40
|
+
method: 'POST',
|
|
41
|
+
headers: {
|
|
42
|
+
'Content-Type': 'application/json',
|
|
43
|
+
'Authorization': `Bearer ${this.apiKey}`,
|
|
44
|
+
},
|
|
45
|
+
body: JSON.stringify(body),
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
if (!response.ok) {
|
|
49
|
+
const err = await response.text();
|
|
50
|
+
throw new Error(`Minimax API error: ${response.status} - ${err}`);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const data = await response.json() as {
|
|
54
|
+
data?: { audio?: string };
|
|
55
|
+
base_resp?: { status_code: number; status_msg: string };
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
if (data.base_resp && data.base_resp.status_code !== 0) {
|
|
59
|
+
throw new Error(`Minimax TTS error: ${data.base_resp.status_msg}`);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (!data.data?.audio) {
|
|
63
|
+
throw new Error('No audio data in response');
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const audioBuffer = Buffer.from(data.data.audio, 'hex');
|
|
67
|
+
await writeFile(options.output, audioBuffer);
|
|
68
|
+
console.log(`Audio saved to: ${options.output}`);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
async listVoices(): Promise<Voice[]> {
|
|
72
|
+
return [
|
|
73
|
+
{ id: 'male-qn-qingse', name: 'Qingse (Male)', description: 'Young male, clear voice' },
|
|
74
|
+
{ id: 'female-shaonv', name: 'Shaonv (Female)', description: 'Young female voice' },
|
|
75
|
+
{ id: 'female-yujie', name: 'Yujie (Female)', description: 'Mature female voice' },
|
|
76
|
+
{ id: 'male-qn-jingying', name: 'Jingying (Male)', description: 'Male elite voice' },
|
|
77
|
+
{ id: 'presenter_male', name: 'Presenter Male', description: 'Professional male presenter' },
|
|
78
|
+
{ id: 'presenter_female', name: 'Presenter Female', description: 'Professional female presenter' },
|
|
79
|
+
{ id: 'audiobook_male_1', name: 'Audiobook Male', description: 'Audiobook narrator male' },
|
|
80
|
+
{ id: 'audiobook_female_1', name: 'Audiobook Female', description: 'Audiobook narrator female' },
|
|
81
|
+
];
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: audio-extract
|
|
3
3
|
version: 0.1.0
|
|
4
4
|
description: Extract audio tracks from video files using FFmpeg with format conversion options
|
|
5
5
|
author: skills.md
|
|
6
|
-
category:
|
|
6
|
+
category: Media Processing
|
|
7
7
|
tags:
|
|
8
8
|
- audio
|
|
9
9
|
- video
|
|
@@ -70,4 +70,4 @@ skills run extract-audio -- lecture_recording.mkv --format mp3 --quality low
|
|
|
70
70
|
## Requirements
|
|
71
71
|
|
|
72
72
|
- FFmpeg installed and in PATH.
|
|
73
|
-
- Bun runtime.
|
|
73
|
+
- Bun runtime.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "@hasnaxyz/skill-extract
|
|
2
|
+
"name": "@hasnaxyz/skill-audio-extract",
|
|
3
3
|
"version": "0.1.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
|
-
"skill-extract
|
|
6
|
+
"skill-audio-extract": "./src/index.ts"
|
|
7
7
|
},
|
|
8
8
|
"scripts": {
|
|
9
9
|
"dev": "bun run src/index.ts",
|
|
@@ -19,9 +19,5 @@
|
|
|
19
19
|
"src",
|
|
20
20
|
"dist",
|
|
21
21
|
"SKILL.md"
|
|
22
|
-
]
|
|
23
|
-
"repository": {
|
|
24
|
-
"type": "git",
|
|
25
|
-
"url": "https://github.com/hasnaxyz/skill-extract-audio.git"
|
|
26
|
-
}
|
|
22
|
+
]
|
|
27
23
|
}
|