@hasna/skills 0.0.2 → 0.0.3
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 +253 -715
- package/bin/mcp.js +221 -683
- package/package.json +1 -1
- package/src/cli/cli.test.ts +14 -14
- package/src/cli/index.tsx +1 -1
- package/src/lib/installer.test.ts +41 -41
- package/src/lib/registry.test.ts +10 -10
- package/src/lib/registry.ts +10 -472
- package/src/lib/skillinfo.test.ts +12 -12
- package/src/mcp/index.ts +1 -1
- package/skills/skill-architecture-docs/CLAUDE.md +0 -19
- package/skills/skill-architecture-docs/package.json +0 -32
- package/skills/skill-architecture-docs/src/index.ts +0 -543
- package/skills/skill-auto-format/CLAUDE.md +0 -19
- package/skills/skill-auto-format/package.json +0 -32
- package/skills/skill-auto-format/src/index.ts +0 -103
- package/skills/skill-auto-format/tsconfig.json +0 -14
- package/skills/skill-brainstorm/README.md +0 -17
- package/skills/skill-brainstorm/install.sh +0 -112
- package/skills/skill-brainstorm/src/auth.ts +0 -49
- package/skills/skill-brainstorm/src/installer.ts +0 -324
- package/skills/skill-brainstorm/src/skill-install.ts +0 -205
- package/skills/skill-browser-agent/CLAUDE.md +0 -19
- package/skills/skill-browser-agent/package.json +0 -32
- package/skills/skill-browser-agent/src/index.ts +0 -626
- package/skills/skill-browser-agent/tsconfig.json +0 -14
- package/skills/skill-browseruse/LICENSE +0 -21
- package/skills/skill-browseruse/README.md +0 -27
- package/skills/skill-browseruse/SKILL.md +0 -113
- package/skills/skill-browseruse/install.sh +0 -112
- package/skills/skill-browseruse/package.json +0 -31
- package/skills/skill-browseruse/src/auth.ts +0 -49
- package/skills/skill-browseruse/src/installer.ts +0 -324
- package/skills/skill-browseruse/src/skill-install.ts +0 -174
- package/skills/skill-calculate/LICENSE +0 -21
- package/skills/skill-calculate/README.md +0 -17
- package/skills/skill-calculate/install.sh +0 -112
- package/skills/skill-calculate/package.json +0 -31
- package/skills/skill-calculate/src/auth.ts +0 -49
- package/skills/skill-calculate/src/installer.ts +0 -324
- package/skills/skill-calculate/src/skill-install.ts +0 -205
- package/skills/skill-chromedevtools/LICENSE +0 -21
- package/skills/skill-chromedevtools/README.md +0 -27
- package/skills/skill-chromedevtools/SKILL.md +0 -110
- package/skills/skill-chromedevtools/install.sh +0 -112
- package/skills/skill-chromedevtools/package.json +0 -31
- package/skills/skill-chromedevtools/src/auth.ts +0 -49
- package/skills/skill-chromedevtools/src/installer.ts +0 -324
- package/skills/skill-chromedevtools/src/skill-install.ts +0 -174
- package/skills/skill-companyguide/LICENSE +0 -21
- package/skills/skill-companyguide/README.md +0 -17
- package/skills/skill-companyguide/install.sh +0 -112
- package/skills/skill-companyguide/package.json +0 -31
- package/skills/skill-companyguide/src/auth.ts +0 -49
- package/skills/skill-companyguide/src/installer.ts +0 -324
- package/skills/skill-companyguide/src/skill-install.ts +0 -205
- package/skills/skill-compose-gmail/tsconfig.json +0 -14
- package/skills/skill-context7/LICENSE +0 -21
- package/skills/skill-context7/README.md +0 -27
- package/skills/skill-context7/SKILL.md +0 -103
- package/skills/skill-context7/install.sh +0 -112
- package/skills/skill-context7/package.json +0 -31
- package/skills/skill-context7/src/auth.ts +0 -49
- package/skills/skill-context7/src/installer.ts +0 -324
- package/skills/skill-context7/src/skill-install.ts +0 -174
- package/skills/skill-crawl/LICENSE +0 -21
- package/skills/skill-crawl/README.md +0 -17
- package/skills/skill-crawl/install.sh +0 -112
- package/skills/skill-crawl/package.json +0 -31
- package/skills/skill-crawl/src/auth.ts +0 -49
- package/skills/skill-crawl/src/installer.ts +0 -324
- package/skills/skill-crawl/src/skill-install.ts +0 -205
- package/skills/skill-csv-transformer/CLAUDE.md +0 -19
- package/skills/skill-csv-transformer/package.json +0 -32
- package/skills/skill-csv-transformer/src/index.ts +0 -81
- package/skills/skill-csv-transformer/tsconfig.json +0 -14
- package/skills/skill-debug/LICENSE +0 -21
- package/skills/skill-debug/README.md +0 -17
- package/skills/skill-debug/install.sh +0 -112
- package/skills/skill-debug/package.json +0 -31
- package/skills/skill-debug/src/auth.ts +0 -49
- package/skills/skill-debug/src/installer.ts +0 -324
- package/skills/skill-debug/src/skill-install.ts +0 -205
- package/skills/skill-deep-research/CLAUDE.md +0 -19
- package/skills/skill-deep-research/package.json +0 -32
- package/skills/skill-deep-research/src/index.ts +0 -1149
- package/skills/skill-deep-research/tsconfig.json +0 -14
- package/skills/skill-dns-manager/CLAUDE.md +0 -19
- package/skills/skill-dns-manager/package.json +0 -32
- package/skills/skill-dns-manager/src/index.ts +0 -92
- package/skills/skill-dns-manager/tsconfig.json +0 -14
- package/skills/skill-download/LICENSE +0 -21
- package/skills/skill-download/README.md +0 -17
- package/skills/skill-download/install.sh +0 -112
- package/skills/skill-download/package.json +0 -31
- package/skills/skill-download/src/auth.ts +0 -49
- package/skills/skill-download/src/installer.ts +0 -324
- package/skills/skill-download/src/skill-install.ts +0 -205
- package/skills/skill-exa/LICENSE +0 -21
- package/skills/skill-exa/README.md +0 -26
- package/skills/skill-exa/SKILL.md +0 -92
- package/skills/skill-exa/install.sh +0 -112
- package/skills/skill-exa/package.json +0 -31
- package/skills/skill-exa/src/auth.ts +0 -49
- package/skills/skill-exa/src/installer.ts +0 -324
- package/skills/skill-exa/src/skill-install.ts +0 -174
- package/skills/skill-filesearch/LICENSE +0 -21
- package/skills/skill-filesearch/README.md +0 -17
- package/skills/skill-filesearch/install.sh +0 -112
- package/skills/skill-filesearch/package.json +0 -31
- package/skills/skill-filesearch/src/auth.ts +0 -49
- package/skills/skill-filesearch/src/installer.ts +0 -324
- package/skills/skill-filesearch/src/skill-install.ts +0 -205
- package/skills/skill-fill/LICENSE +0 -21
- package/skills/skill-fill/README.md +0 -17
- package/skills/skill-fill/install.sh +0 -112
- package/skills/skill-fill/package.json +0 -31
- package/skills/skill-fill/src/auth.ts +0 -49
- package/skills/skill-fill/src/installer.ts +0 -324
- package/skills/skill-fill/src/skill-install.ts +0 -205
- package/skills/skill-generate-audio/CLAUDE.md +0 -3
- package/skills/skill-generate-audio/SKILL.md +0 -53
- package/skills/skill-generate-audio/package.json +0 -30
- package/skills/skill-generate-audio/src/index.ts +0 -656
- package/skills/skill-generate-audio/tsconfig.json +0 -18
- package/skills/skill-generate-readme/CLAUDE.md +0 -19
- package/skills/skill-generate-readme/package.json +0 -32
- package/skills/skill-generate-readme/src/index.ts +0 -867
- package/skills/skill-generate-readme/tsconfig.json +0 -14
- package/skills/skill-generate-slides/CLAUDE.md +0 -19
- package/skills/skill-generate-slides/package.json +0 -32
- package/skills/skill-generate-slides/src/ai.ts +0 -140
- package/skills/skill-generate-slides/src/cli.ts +0 -161
- package/skills/skill-generate-slides/src/export.ts +0 -65
- package/skills/skill-generate-slides/src/index.ts +0 -1417
- package/skills/skill-generate-slides/src/layout.ts +0 -31
- package/skills/skill-generate-slides/src/parse.ts +0 -282
- package/skills/skill-generate-slides/src/render.ts +0 -711
- package/skills/skill-generate-slides/tsconfig.json +0 -14
- package/skills/skill-get-api-docs/CLAUDE.md +0 -19
- package/skills/skill-get-api-docs/package.json +0 -32
- package/skills/skill-get-api-docs/src/index.ts +0 -1176
- package/skills/skill-get-api-docs/tsconfig.json +0 -14
- package/skills/skill-googledrive/LICENSE +0 -21
- package/skills/skill-googledrive/README.md +0 -27
- package/skills/skill-googledrive/SKILL.md +0 -140
- package/skills/skill-googledrive/install.sh +0 -112
- package/skills/skill-googledrive/package.json +0 -31
- package/skills/skill-googledrive/src/auth.ts +0 -49
- package/skills/skill-googledrive/src/installer.ts +0 -324
- package/skills/skill-googledrive/src/skill-install.ts +0 -174
- package/skills/skill-grant-compliance-scanner/CLAUDE.md +0 -19
- package/skills/skill-grant-compliance-scanner/package.json +0 -32
- package/skills/skill-grant-compliance-scanner/src/index.ts +0 -94
- package/skills/skill-grant-compliance-scanner/tsconfig.json +0 -14
- package/skills/skill-hubsearch/LICENSE +0 -21
- package/skills/skill-hubsearch/README.md +0 -17
- package/skills/skill-hubsearch/install.sh +0 -112
- package/skills/skill-hubsearch/package.json +0 -31
- package/skills/skill-hubsearch/src/auth.ts +0 -49
- package/skills/skill-hubsearch/src/installer.ts +0 -324
- package/skills/skill-hubsearch/src/skill-install.ts +0 -205
- package/skills/skill-implementation-architecture/CLAUDE.md +0 -19
- package/skills/skill-implementation-architecture/package.json +0 -32
- package/skills/skill-implementation-architecture/src/index.ts +0 -460
- package/skills/skill-implementation-architecture/tsconfig.json +0 -14
- package/skills/skill-implementation-audit/CLAUDE.md +0 -19
- package/skills/skill-implementation-audit/package.json +0 -32
- package/skills/skill-implementation-audit/src/index.ts +0 -502
- package/skills/skill-implementation-audit/tsconfig.json +0 -14
- package/skills/skill-implementation-cost/CLAUDE.md +0 -19
- package/skills/skill-implementation-cost/package.json +0 -32
- package/skills/skill-implementation-cost/src/index.ts +0 -873
- package/skills/skill-implementation-cost/tsconfig.json +0 -14
- package/skills/skill-implementation-dispatch/CLAUDE.md +0 -19
- package/skills/skill-implementation-dispatch/package.json +0 -32
- package/skills/skill-implementation-dispatch/src/index.ts +0 -390
- package/skills/skill-implementation-dispatch/tsconfig.json +0 -14
- package/skills/skill-implementation-hook/CLAUDE.md +0 -19
- package/skills/skill-implementation-hook/package.json +0 -32
- package/skills/skill-implementation-hook/src/index.ts +0 -787
- package/skills/skill-implementation-hook/tsconfig.json +0 -14
- package/skills/skill-implementation-index/CLAUDE.md +0 -19
- package/skills/skill-implementation-index/package.json +0 -32
- package/skills/skill-implementation-index/src/index.ts +0 -767
- package/skills/skill-implementation-index/tsconfig.json +0 -14
- package/skills/skill-implementation-init/CLAUDE.md +0 -19
- package/skills/skill-implementation-init/package.json +0 -32
- package/skills/skill-implementation-init/src/index.ts +0 -378
- package/skills/skill-implementation-init/tsconfig.json +0 -14
- package/skills/skill-implementation-memento/CLAUDE.md +0 -19
- package/skills/skill-implementation-memento/package.json +0 -32
- package/skills/skill-implementation-memento/src/index.ts +0 -442
- package/skills/skill-implementation-memento/tsconfig.json +0 -14
- package/skills/skill-linear/LICENSE +0 -21
- package/skills/skill-linear/README.md +0 -28
- package/skills/skill-linear/SKILL.md +0 -94
- package/skills/skill-linear/install.sh +0 -112
- package/skills/skill-linear/package.json +0 -31
- package/skills/skill-linear/src/auth.ts +0 -49
- package/skills/skill-linear/src/installer.ts +0 -324
- package/skills/skill-linear/src/skill-install.ts +0 -174
- package/skills/skill-mail/LICENSE +0 -21
- package/skills/skill-mail/README.md +0 -17
- package/skills/skill-mail/install.sh +0 -112
- package/skills/skill-mail/package.json +0 -31
- package/skills/skill-mail/src/auth.ts +0 -49
- package/skills/skill-mail/src/installer.ts +0 -324
- package/skills/skill-mail/src/skill-install.ts +0 -205
- package/skills/skill-manage-gmail/CLAUDE.md +0 -19
- package/skills/skill-manage-gmail/package.json +0 -32
- package/skills/skill-manage-gmail/src/index.ts +0 -504
- package/skills/skill-manage-gmail/tsconfig.json +0 -14
- package/skills/skill-merch-mockup-factory/CLAUDE.md +0 -19
- package/skills/skill-merch-mockup-factory/package.json +0 -32
- package/skills/skill-merch-mockup-factory/src/index.ts +0 -296
- package/skills/skill-merch-mockup-factory/tsconfig.json +0 -14
- package/skills/skill-message/LICENSE +0 -21
- package/skills/skill-message/README.md +0 -17
- package/skills/skill-message/install.sh +0 -112
- package/skills/skill-message/package.json +0 -31
- package/skills/skill-message/src/auth.ts +0 -49
- package/skills/skill-message/src/installer.ts +0 -324
- package/skills/skill-message/src/skill-install.ts +0 -205
- package/skills/skill-newsletter-campaign-planner/CLAUDE.md +0 -19
- package/skills/skill-newsletter-campaign-planner/package.json +0 -32
- package/skills/skill-newsletter-campaign-planner/src/index.ts +0 -252
- package/skills/skill-newsletter-campaign-planner/tsconfig.json +0 -14
- package/skills/skill-notify/LICENSE +0 -21
- package/skills/skill-notify/README.md +0 -17
- package/skills/skill-notify/install.sh +0 -112
- package/skills/skill-notify/package.json +0 -31
- package/skills/skill-notify/src/auth.ts +0 -49
- package/skills/skill-notify/src/installer.ts +0 -324
- package/skills/skill-notify/src/skill-install.ts +0 -205
- package/skills/skill-notion/LICENSE +0 -21
- package/skills/skill-notion/README.md +0 -27
- package/skills/skill-notion/SKILL.md +0 -115
- package/skills/skill-notion/install.sh +0 -112
- package/skills/skill-notion/package.json +0 -31
- package/skills/skill-notion/src/auth.ts +0 -49
- package/skills/skill-notion/src/installer.ts +0 -324
- package/skills/skill-notion/src/skill-install.ts +0 -174
- package/skills/skill-parse-pdf/CLAUDE.md +0 -19
- package/skills/skill-parse-pdf/package.json +0 -32
- package/skills/skill-parse-pdf/src/index.ts +0 -581
- package/skills/skill-parse-pdf/tsconfig.json +0 -14
- package/skills/skill-playwright/LICENSE +0 -21
- package/skills/skill-playwright/README.md +0 -27
- package/skills/skill-playwright/SKILL.md +0 -116
- package/skills/skill-playwright/install.sh +0 -112
- package/skills/skill-playwright/package.json +0 -31
- package/skills/skill-playwright/src/auth.ts +0 -49
- package/skills/skill-playwright/src/installer.ts +0 -324
- package/skills/skill-playwright/src/skill-install.ts +0 -174
- package/skills/skill-projectbuild/LICENSE +0 -21
- package/skills/skill-projectbuild/README.md +0 -17
- package/skills/skill-projectbuild/install.sh +0 -112
- package/skills/skill-projectbuild/package.json +0 -31
- package/skills/skill-projectbuild/src/auth.ts +0 -49
- package/skills/skill-projectbuild/src/installer.ts +0 -324
- package/skills/skill-projectbuild/src/skill-install.ts +0 -205
- package/skills/skill-read-gmail/CLAUDE.md +0 -19
- package/skills/skill-read-gmail/package.json +0 -32
- package/skills/skill-read-gmail/src/index.ts +0 -343
- package/skills/skill-read-gmail/tsconfig.json +0 -14
- package/skills/skill-remember/LICENSE +0 -21
- package/skills/skill-remember/README.md +0 -17
- package/skills/skill-remember/install.sh +0 -112
- package/skills/skill-remember/package.json +0 -31
- package/skills/skill-remember/src/auth.ts +0 -49
- package/skills/skill-remember/src/installer.ts +0 -324
- package/skills/skill-remember/src/skill-install.ts +0 -205
- package/skills/skill-schedule/README.md +0 -17
- package/skills/skill-schedule/install.sh +0 -112
- package/skills/skill-schedule/src/auth.ts +0 -49
- package/skills/skill-schedule/src/installer.ts +0 -324
- package/skills/skill-schedule/src/skill-install.ts +0 -205
- package/skills/skill-search/LICENSE +0 -21
- package/skills/skill-search/README.md +0 -17
- package/skills/skill-search/install.sh +0 -112
- package/skills/skill-search/package.json +0 -31
- package/skills/skill-search/src/auth.ts +0 -49
- package/skills/skill-search/src/installer.ts +0 -324
- package/skills/skill-search/src/skill-install.ts +0 -205
- package/skills/skill-shadcn/LICENSE +0 -21
- package/skills/skill-shadcn/README.md +0 -27
- package/skills/skill-shadcn/SKILL.md +0 -113
- package/skills/skill-shadcn/install.sh +0 -112
- package/skills/skill-shadcn/package.json +0 -31
- package/skills/skill-shadcn/src/auth.ts +0 -49
- package/skills/skill-shadcn/src/installer.ts +0 -324
- package/skills/skill-shadcn/src/skill-install.ts +0 -174
- package/skills/skill-shadcn-theme/CLAUDE.md +0 -19
- package/skills/skill-shadcn-theme/package.json +0 -32
- package/skills/skill-shadcn-theme/src/index.ts +0 -16
- package/skills/skill-shadcn-theme/tsconfig.json +0 -14
- package/skills/skill-social-template-kit/CLAUDE.md +0 -19
- package/skills/skill-social-template-kit/package.json +0 -32
- package/skills/skill-social-template-kit/src/index.ts +0 -303
- package/skills/skill-social-template-kit/tsconfig.json +0 -14
- package/skills/skill-summarize/LICENSE +0 -21
- package/skills/skill-summarize/README.md +0 -17
- package/skills/skill-summarize/install.sh +0 -112
- package/skills/skill-summarize/package.json +0 -31
- package/skills/skill-summarize/src/auth.ts +0 -49
- package/skills/skill-summarize/src/installer.ts +0 -324
- package/skills/skill-summarize/src/skill-install.ts +0 -205
- package/skills/skill-sync/LICENSE +0 -21
- package/skills/skill-sync/README.md +0 -17
- package/skills/skill-sync/install.sh +0 -112
- package/skills/skill-sync/package.json +0 -31
- package/skills/skill-sync/src/auth.ts +0 -49
- package/skills/skill-sync/src/installer.ts +0 -324
- package/skills/skill-sync/src/skill-install.ts +0 -205
- package/skills/skill-time-blocking-orchestrator/CLAUDE.md +0 -19
- package/skills/skill-time-blocking-orchestrator/package.json +0 -32
- package/skills/skill-time-blocking-orchestrator/src/index.ts +0 -328
- package/skills/skill-time-blocking-orchestrator/tsconfig.json +0 -14
- package/skills/skill-transform/.env.example +0 -2
- package/skills/skill-transform/LICENSE +0 -21
- package/skills/skill-transform/README.md +0 -17
- package/skills/skill-transform/SKILL.md +0 -127
- package/skills/skill-transform/install.sh +0 -112
- package/skills/skill-transform/package.json +0 -37
- package/skills/skill-transform/src/auth.ts +0 -49
- package/skills/skill-transform/src/http-client.ts +0 -128
- package/skills/skill-transform/src/index-http.ts +0 -111
- package/skills/skill-transform/src/index-local.ts +0 -368
- package/skills/skill-transform/src/index.ts +0 -111
- package/skills/skill-transform/src/installer.ts +0 -324
- package/skills/skill-transform/src/skill-install.ts +0 -205
- package/skills/skill-transform/src/transformers/ai-transformer.ts +0 -202
- package/skills/skill-transform/src/transformers/format-detector.ts +0 -147
- package/skills/skill-transform/src/types.ts +0 -95
- package/skills/skill-transform/tsconfig.json +0 -18
- package/skills/skill-translate/LICENSE +0 -21
- package/skills/skill-translate/README.md +0 -17
- package/skills/skill-translate/install.sh +0 -112
- package/skills/skill-translate/package.json +0 -31
- package/skills/skill-translate/src/auth.ts +0 -49
- package/skills/skill-translate/src/installer.ts +0 -324
- package/skills/skill-translate/src/skill-install.ts +0 -205
- package/skills/skill-vendor-comparison-coach/CLAUDE.md +0 -19
- package/skills/skill-vendor-comparison-coach/package.json +0 -32
- package/skills/skill-vendor-comparison-coach/src/index.ts +0 -337
- package/skills/skill-vendor-comparison-coach/tsconfig.json +0 -14
- package/skills/skill-videodownload/.env.example +0 -5
- package/skills/skill-videodownload/CLAUDE.md +0 -64
- package/skills/skill-videodownload/LICENSE +0 -21
- package/skills/skill-videodownload/README.md +0 -166
- package/skills/skill-videodownload/package.json +0 -49
- package/skills/skill-videodownload/src/commands/config.ts +0 -89
- package/skills/skill-videodownload/src/commands/download.ts +0 -61
- package/skills/skill-videodownload/src/commands/info.ts +0 -83
- package/skills/skill-videodownload/src/commands/list.ts +0 -84
- package/skills/skill-videodownload/src/lib/downloader.ts +0 -270
- package/skills/skill-videodownload/src/lib/storage.ts +0 -167
- package/skills/skill-videodownload/src/types/index.ts +0 -64
- package/skills/skill-videodownload/src/utils/logger.ts +0 -49
- package/skills/skill-videodownload/src/utils/paths.ts +0 -94
- package/skills/skill-videodownload/tsconfig.json +0 -17
- package/skills/skill-voiceover/.env.example +0 -5
- package/skills/skill-voiceover/CLAUDE.md +0 -40
- package/skills/skill-voiceover/LICENSE +0 -21
- package/skills/skill-voiceover/README.md +0 -64
- package/skills/skill-voiceover/package.json +0 -43
- package/skills/skill-voiceover/src/commands/config.ts +0 -38
- package/skills/skill-voiceover/src/commands/generate.ts +0 -37
- package/skills/skill-voiceover/src/commands/voices.ts +0 -33
- package/skills/skill-voiceover/src/lib/generator.ts +0 -159
- package/skills/skill-voiceover/src/lib/storage.ts +0 -55
- package/skills/skill-voiceover/src/types/index.ts +0 -55
- package/skills/skill-voiceover/src/utils/logger.ts +0 -30
- package/skills/skill-voiceover/src/utils/paths.ts +0 -22
- package/skills/skill-voiceover/tsconfig.json +0 -17
- package/skills/skill-websearch/LICENSE +0 -21
- package/skills/skill-websearch/README.md +0 -17
- package/skills/skill-websearch/install.sh +0 -112
- package/skills/skill-websearch/package.json +0 -31
- package/skills/skill-websearch/src/auth.ts +0 -49
- package/skills/skill-websearch/src/installer.ts +0 -324
- package/skills/skill-websearch/src/skill-install.ts +0 -205
- /package/skills/{skill-compose-gmail → skill-gmail}/CLAUDE.md +0 -0
- /package/skills/{skill-compose-gmail → skill-gmail}/package.json +0 -0
- /package/skills/{skill-compose-gmail → skill-gmail}/src/index.ts +0 -0
- /package/skills/{skill-architecture-docs → skill-gmail}/tsconfig.json +0 -0
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025 Hasna
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
# skill-filesearch
|
|
2
|
-
|
|
3
|
-
Advanced search inside repositories
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
This skill provides capabilities for Advanced search inside repositories.
|
|
8
|
-
|
|
9
|
-
## Usage
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
# Coming soon
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Development
|
|
16
|
-
|
|
17
|
-
See `.implementation/` for development notes and todos.
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
|
|
3
|
-
# Install script for skills
|
|
4
|
-
# Installs the skill either globally for Claude Code or locally in a project
|
|
5
|
-
|
|
6
|
-
set -e
|
|
7
|
-
|
|
8
|
-
SKILL_NAME="$(basename "$(pwd)")"
|
|
9
|
-
SKILL_PATH="$(pwd)"
|
|
10
|
-
|
|
11
|
-
echo "📦 Installing $SKILL_NAME..."
|
|
12
|
-
echo ""
|
|
13
|
-
|
|
14
|
-
# Check if Claude Code is installed
|
|
15
|
-
if ! command -v claude &> /dev/null; then
|
|
16
|
-
echo "⚠️ Claude Code not found in PATH"
|
|
17
|
-
echo " Please install Claude Code first: https://claude.com/claude-code"
|
|
18
|
-
exit 1
|
|
19
|
-
fi
|
|
20
|
-
|
|
21
|
-
# Check if we're in a git repository
|
|
22
|
-
if git rev-parse --git-dir > /dev/null 2>&1; then
|
|
23
|
-
IN_REPO=true
|
|
24
|
-
REPO_ROOT="$(git rev-parse --show-toplevel)"
|
|
25
|
-
echo "📁 Detected git repository: $REPO_ROOT"
|
|
26
|
-
else
|
|
27
|
-
IN_REPO=false
|
|
28
|
-
echo "📁 Not in a git repository"
|
|
29
|
-
fi
|
|
30
|
-
|
|
31
|
-
# Ask installation type
|
|
32
|
-
echo ""
|
|
33
|
-
echo "Where would you like to install this skill?"
|
|
34
|
-
if [ "$IN_REPO" = true ]; then
|
|
35
|
-
echo " 1) Locally (this repository only)"
|
|
36
|
-
echo " 2) Globally (all Claude Code sessions)"
|
|
37
|
-
read -p "Choose [1/2]: " choice
|
|
38
|
-
else
|
|
39
|
-
echo " Installing globally (not in a git repository)"
|
|
40
|
-
choice=2
|
|
41
|
-
fi
|
|
42
|
-
|
|
43
|
-
# Install function
|
|
44
|
-
install_skill() {
|
|
45
|
-
local config_dir=$1
|
|
46
|
-
local config_file="$config_dir/claude_mcp_config.json"
|
|
47
|
-
|
|
48
|
-
# Create config directory if it doesn't exist
|
|
49
|
-
mkdir -p "$config_dir"
|
|
50
|
-
|
|
51
|
-
# Create or update config file
|
|
52
|
-
if [ ! -f "$config_file" ]; then
|
|
53
|
-
echo "{" > "$config_file"
|
|
54
|
-
echo ' "mcpServers": {}' >> "$config_file"
|
|
55
|
-
echo "}" >> "$config_file"
|
|
56
|
-
fi
|
|
57
|
-
|
|
58
|
-
# Add skill to config using bun
|
|
59
|
-
bun -e "
|
|
60
|
-
const fs = require('fs');
|
|
61
|
-
const config = JSON.parse(fs.readFileSync('$config_file', 'utf8'));
|
|
62
|
-
|
|
63
|
-
if (!config.mcpServers) config.mcpServers = {};
|
|
64
|
-
|
|
65
|
-
config.mcpServers['$SKILL_NAME'] = {
|
|
66
|
-
command: 'bun',
|
|
67
|
-
args: ['run', '$SKILL_PATH/src/index.ts'],
|
|
68
|
-
env: {
|
|
69
|
-
SKILL_API_KEY: process.env.SKILL_API_KEY || '',
|
|
70
|
-
ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY || '',
|
|
71
|
-
OPENAI_API_KEY: process.env.OPENAI_API_KEY || '',
|
|
72
|
-
ELEVENLABS_API_KEY: process.env.ELEVENLABS_API_KEY || '',
|
|
73
|
-
GEMINI_API_KEY: process.env.GEMINI_API_KEY || '',
|
|
74
|
-
XAI_API_KEY: process.env.XAI_API_KEY || '',
|
|
75
|
-
GOOGLE_API_KEY: process.env.GOOGLE_API_KEY || '',
|
|
76
|
-
GOOGLE_PROJECT_ID: process.env.GOOGLE_PROJECT_ID || '',
|
|
77
|
-
BROWSER_USE_API_KEY: process.env.BROWSER_USE_API_KEY || '',
|
|
78
|
-
RUNWAY_API_KEY: process.env.RUNWAY_API_KEY || ''
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
fs.writeFileSync('$config_file', JSON.stringify(config, null, 2));
|
|
83
|
-
"
|
|
84
|
-
|
|
85
|
-
echo "✅ Installed $SKILL_NAME to $config_file"
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
# Install based on choice
|
|
89
|
-
if [ "$choice" = "1" ]; then
|
|
90
|
-
# Local installation
|
|
91
|
-
install_skill "$REPO_ROOT/.claude"
|
|
92
|
-
echo ""
|
|
93
|
-
echo "🎉 $SKILL_NAME installed locally!"
|
|
94
|
-
echo " Config: $REPO_ROOT/.claude/claude_mcp_config.json"
|
|
95
|
-
elif [ "$choice" = "2" ]; then
|
|
96
|
-
# Global installation
|
|
97
|
-
install_skill "$HOME/.config/claude-code"
|
|
98
|
-
echo ""
|
|
99
|
-
echo "🎉 $SKILL_NAME installed globally!"
|
|
100
|
-
echo " Config: $HOME/.config/claude-code/claude_mcp_config.json"
|
|
101
|
-
else
|
|
102
|
-
echo "❌ Invalid choice"
|
|
103
|
-
exit 1
|
|
104
|
-
fi
|
|
105
|
-
|
|
106
|
-
echo ""
|
|
107
|
-
echo "📝 Next steps:"
|
|
108
|
-
echo " 1. Restart Claude Code"
|
|
109
|
-
echo " 2. The skill will be available as: $SKILL_NAME"
|
|
110
|
-
echo ""
|
|
111
|
-
echo " Usage: Claude Code will automatically detect and use this skill"
|
|
112
|
-
echo " based on your prompts and task context."
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "skill-filesearch",
|
|
3
|
-
"version": "1.0.0",
|
|
4
|
-
"description": "Advanced search inside repositories",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "src/index.ts",
|
|
7
|
-
"bin": {
|
|
8
|
-
"skill-filesearch": "src/index.ts"
|
|
9
|
-
},
|
|
10
|
-
"scripts": {
|
|
11
|
-
"start": "bun run src/index.ts",
|
|
12
|
-
"dev": "bun run --watch src/index.ts"
|
|
13
|
-
},
|
|
14
|
-
"keywords": [
|
|
15
|
-
"claude",
|
|
16
|
-
"ai",
|
|
17
|
-
"skill"
|
|
18
|
-
],
|
|
19
|
-
"author": "",
|
|
20
|
-
"license": "MIT",
|
|
21
|
-
"devDependencies": {
|
|
22
|
-
"@types/bun": "latest"
|
|
23
|
-
},
|
|
24
|
-
"peerDependencies": {
|
|
25
|
-
"typescript": "^5.0.0"
|
|
26
|
-
},
|
|
27
|
-
"repository": {
|
|
28
|
-
"type": "git",
|
|
29
|
-
"url": "git+https://github.com/hasnaxyz/skill-filesearch.git"
|
|
30
|
-
}
|
|
31
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Skill Authentication Check
|
|
3
|
-
* Add this to the top of any skill's main function
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
export function checkSkillAuth(): void {
|
|
7
|
-
const SKILL_API_KEY = process.env.SKILL_API_KEY;
|
|
8
|
-
|
|
9
|
-
// Check if SKILL_API_KEY is set
|
|
10
|
-
if (!SKILL_API_KEY) {
|
|
11
|
-
console.error('❌ Error: SKILL_API_KEY environment variable not set');
|
|
12
|
-
console.error('');
|
|
13
|
-
console.error('To use this skill, you must set your SKILL_API_KEY:');
|
|
14
|
-
console.error('');
|
|
15
|
-
console.error(' export SKILL_API_KEY=your-api-key-here');
|
|
16
|
-
console.error('');
|
|
17
|
-
console.error('Contact your administrator to get your API key.');
|
|
18
|
-
process.exit(1);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
// Validate key format
|
|
22
|
-
if (!SKILL_API_KEY.startsWith('sk-skill-')) {
|
|
23
|
-
console.error('❌ Error: Invalid SKILL_API_KEY format');
|
|
24
|
-
console.error('Expected format: sk-skill-xxxxxxxxxxxx');
|
|
25
|
-
process.exit(1);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
// Key is valid - skill can proceed
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Check if running remotely (via SSH or network)
|
|
33
|
-
*/
|
|
34
|
-
export function isRemoteExecution(): boolean {
|
|
35
|
-
return !!(
|
|
36
|
-
process.env.SSH_CONNECTION ||
|
|
37
|
-
process.env.SSH_CLIENT ||
|
|
38
|
-
process.env.SSH_TTY
|
|
39
|
-
);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Require auth only if remote execution
|
|
44
|
-
*/
|
|
45
|
-
export function requireAuthIfRemote(): void {
|
|
46
|
-
if (isRemoteExecution()) {
|
|
47
|
-
checkSkillAuth();
|
|
48
|
-
}
|
|
49
|
-
}
|
|
@@ -1,324 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bun
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Skill Installer Module
|
|
5
|
-
*
|
|
6
|
-
* Universal installer for skills to integrate with AI code assistants
|
|
7
|
-
* Usage: skill-[name] install [claude|codex|windsurf|cursor]
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import { writeFileSync, mkdirSync, existsSync, readFileSync } from 'fs';
|
|
11
|
-
import { resolve, join } from 'path';
|
|
12
|
-
import { homedir } from 'os';
|
|
13
|
-
|
|
14
|
-
export interface SkillConfig {
|
|
15
|
-
name: string;
|
|
16
|
-
description: string;
|
|
17
|
-
version: string;
|
|
18
|
-
commands: Array<{
|
|
19
|
-
name: string;
|
|
20
|
-
description: string;
|
|
21
|
-
usage: string;
|
|
22
|
-
examples: string[];
|
|
23
|
-
}>;
|
|
24
|
-
requiredEnvVars?: string[];
|
|
25
|
-
optionalEnvVars?: string[];
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export type AssistantType = 'claude' | 'codex' | 'windsurf' | 'cursor';
|
|
29
|
-
|
|
30
|
-
const ASSISTANT_PATHS: Record<AssistantType, string> = {
|
|
31
|
-
claude: '.claude/skills',
|
|
32
|
-
codex: '.codex/skills',
|
|
33
|
-
windsurf: '.windsurf/skills',
|
|
34
|
-
cursor: '.cursor/skills',
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
export class SkillInstaller {
|
|
38
|
-
private config: SkillConfig;
|
|
39
|
-
private skillPath: string;
|
|
40
|
-
|
|
41
|
-
constructor(config: SkillConfig, currentFilePath: string) {
|
|
42
|
-
this.config = config;
|
|
43
|
-
// Get the root directory of the skill (where package.json is)
|
|
44
|
-
this.skillPath = resolve(currentFilePath, '..');
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Install the skill to specified AI assistant
|
|
49
|
-
*/
|
|
50
|
-
async install(assistant: AssistantType): Promise<void> {
|
|
51
|
-
console.log(`📦 Installing ${this.config.name} for ${assistant}...`);
|
|
52
|
-
console.log('');
|
|
53
|
-
|
|
54
|
-
const assistantPath = ASSISTANT_PATHS[assistant];
|
|
55
|
-
if (!assistantPath) {
|
|
56
|
-
throw new Error(`Unknown assistant: ${assistant}`);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// Create skill directory
|
|
60
|
-
const skillDir = join(homedir(), assistantPath, this.config.name);
|
|
61
|
-
mkdirSync(skillDir, { recursive: true });
|
|
62
|
-
console.log(`✓ Created: ${skillDir}`);
|
|
63
|
-
|
|
64
|
-
// Generate and write SKILL.md
|
|
65
|
-
const skillMd = this.generateSkillMd();
|
|
66
|
-
writeFileSync(join(skillDir, 'SKILL.md'), skillMd);
|
|
67
|
-
console.log(`✓ Created: SKILL.md`);
|
|
68
|
-
|
|
69
|
-
// Generate and write README.md
|
|
70
|
-
const readme = this.generateReadme();
|
|
71
|
-
writeFileSync(join(skillDir, 'README.md'), readme);
|
|
72
|
-
console.log(`✓ Created: README.md`);
|
|
73
|
-
|
|
74
|
-
// Create log file
|
|
75
|
-
const logFile = join(skillDir, `${this.config.name}.log`);
|
|
76
|
-
if (!existsSync(logFile)) {
|
|
77
|
-
writeFileSync(logFile, `# ${this.config.name} execution log\n# Created: ${new Date().toISOString()}\n\n`);
|
|
78
|
-
console.log(`✓ Created: ${this.config.name}.log`);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
// Update MCP config
|
|
82
|
-
this.updateMcpConfig(assistant, skillDir);
|
|
83
|
-
|
|
84
|
-
console.log('');
|
|
85
|
-
console.log(`✅ ${this.config.name} installed successfully!`);
|
|
86
|
-
console.log('');
|
|
87
|
-
console.log('Location:', skillDir);
|
|
88
|
-
console.log('');
|
|
89
|
-
console.log('Usage:');
|
|
90
|
-
this.config.commands.slice(0, 3).forEach(cmd => {
|
|
91
|
-
console.log(` ${this.config.name} ${cmd.usage}`);
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Generate SKILL.md documentation
|
|
97
|
-
*/
|
|
98
|
-
private generateSkillMd(): string {
|
|
99
|
-
const envVarsSection = this.config.requiredEnvVars?.length || this.config.optionalEnvVars?.length ? `
|
|
100
|
-
|
|
101
|
-
## Environment Variables
|
|
102
|
-
|
|
103
|
-
${this.config.requiredEnvVars?.length ? `### Required
|
|
104
|
-
${this.config.requiredEnvVars.map(v => `- \`${v}\``).join('\n')}
|
|
105
|
-
` : ''}
|
|
106
|
-
${this.config.optionalEnvVars?.length ? `### Optional
|
|
107
|
-
${this.config.optionalEnvVars.map(v => `- \`${v}\``).join('\n')}
|
|
108
|
-
` : ''}` : '';
|
|
109
|
-
|
|
110
|
-
return `# ${this.config.name}
|
|
111
|
-
|
|
112
|
-
${this.config.description}
|
|
113
|
-
|
|
114
|
-
## Version
|
|
115
|
-
${this.config.version}
|
|
116
|
-
|
|
117
|
-
## Commands
|
|
118
|
-
|
|
119
|
-
${this.config.commands.map(cmd => `### ${cmd.name}
|
|
120
|
-
|
|
121
|
-
${cmd.description}
|
|
122
|
-
|
|
123
|
-
**Usage:**
|
|
124
|
-
\`\`\`bash
|
|
125
|
-
${this.config.name} ${cmd.usage}
|
|
126
|
-
\`\`\`
|
|
127
|
-
|
|
128
|
-
**Examples:**
|
|
129
|
-
${cmd.examples.map(ex => `\`\`\`bash
|
|
130
|
-
${ex}
|
|
131
|
-
\`\`\``).join('\n')}
|
|
132
|
-
`).join('\n')}
|
|
133
|
-
${envVarsSection}
|
|
134
|
-
|
|
135
|
-
## Installation
|
|
136
|
-
|
|
137
|
-
This skill is installed at:
|
|
138
|
-
\`~/.claude/skills/${this.config.name}/\`
|
|
139
|
-
|
|
140
|
-
## Logs
|
|
141
|
-
|
|
142
|
-
Execution logs are written to:
|
|
143
|
-
\`~/.claude/skills/${this.config.name}/${this.config.name}.log\`
|
|
144
|
-
|
|
145
|
-
## Support
|
|
146
|
-
|
|
147
|
-
For issues, visit: https://github.com/hasnaxyz/${this.config.name}/issues
|
|
148
|
-
`;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
/**
|
|
152
|
-
* Generate README.md
|
|
153
|
-
*/
|
|
154
|
-
private generateReadme(): string {
|
|
155
|
-
return `# ${this.config.name}
|
|
156
|
-
|
|
157
|
-
${this.config.description}
|
|
158
|
-
|
|
159
|
-
## Quick Start
|
|
160
|
-
|
|
161
|
-
\`\`\`bash
|
|
162
|
-
${this.config.commands[0] ? `${this.config.name} ${this.config.commands[0].usage}` : `${this.config.name} --help`}
|
|
163
|
-
\`\`\`
|
|
164
|
-
|
|
165
|
-
## Documentation
|
|
166
|
-
|
|
167
|
-
See [SKILL.md](./SKILL.md) for complete documentation.
|
|
168
|
-
|
|
169
|
-
## Version
|
|
170
|
-
|
|
171
|
-
${this.config.version}
|
|
172
|
-
`;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
/**
|
|
176
|
-
* Update MCP config to register the skill
|
|
177
|
-
*/
|
|
178
|
-
private updateMcpConfig(assistant: AssistantType, skillDir: string): void {
|
|
179
|
-
const configPaths: Record<AssistantType, string> = {
|
|
180
|
-
claude: join(homedir(), '.config/claude-code/claude_mcp_config.json'),
|
|
181
|
-
codex: join(homedir(), '.config/codex/mcp_config.json'),
|
|
182
|
-
windsurf: join(homedir(), '.config/windsurf/mcp_config.json'),
|
|
183
|
-
cursor: join(homedir(), '.config/cursor/mcp_config.json'),
|
|
184
|
-
};
|
|
185
|
-
|
|
186
|
-
const configPath = configPaths[assistant];
|
|
187
|
-
|
|
188
|
-
// Read existing config or create new
|
|
189
|
-
let config: any = { mcpServers: {} };
|
|
190
|
-
if (existsSync(configPath)) {
|
|
191
|
-
const content = readFileSync(configPath, 'utf8');
|
|
192
|
-
config = JSON.parse(content);
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
if (!config.mcpServers) {
|
|
196
|
-
config.mcpServers = {};
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
// Add or update this skill
|
|
200
|
-
config.mcpServers[this.config.name] = {
|
|
201
|
-
command: 'bun',
|
|
202
|
-
args: ['run', join(this.skillPath, 'src/index.ts')],
|
|
203
|
-
env: this.getEnvConfig(),
|
|
204
|
-
};
|
|
205
|
-
|
|
206
|
-
// Write config
|
|
207
|
-
mkdirSync(resolve(configPath, '..'), { recursive: true });
|
|
208
|
-
writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
209
|
-
console.log(`✓ Updated: ${assistant} MCP config`);
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
/**
|
|
213
|
-
* Get environment variables config
|
|
214
|
-
*/
|
|
215
|
-
private getEnvConfig(): Record<string, string> {
|
|
216
|
-
const env: Record<string, string> = {
|
|
217
|
-
SKILL_API_KEY: process.env.SKILL_API_KEY || '',
|
|
218
|
-
};
|
|
219
|
-
|
|
220
|
-
// Add required env vars
|
|
221
|
-
this.config.requiredEnvVars?.forEach(key => {
|
|
222
|
-
env[key] = process.env[key] || '';
|
|
223
|
-
});
|
|
224
|
-
|
|
225
|
-
// Add optional env vars
|
|
226
|
-
this.config.optionalEnvVars?.forEach(key => {
|
|
227
|
-
env[key] = process.env[key] || '';
|
|
228
|
-
});
|
|
229
|
-
|
|
230
|
-
return env;
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
/**
|
|
234
|
-
* Uninstall the skill from specified AI assistant
|
|
235
|
-
*/
|
|
236
|
-
async uninstall(assistant: AssistantType): Promise<void> {
|
|
237
|
-
console.log(`🗑️ Uninstalling ${this.config.name} from ${assistant}...`);
|
|
238
|
-
console.log('');
|
|
239
|
-
|
|
240
|
-
const assistantPath = ASSISTANT_PATHS[assistant];
|
|
241
|
-
const skillDir = join(homedir(), assistantPath, this.config.name);
|
|
242
|
-
|
|
243
|
-
if (existsSync(skillDir)) {
|
|
244
|
-
// Remove from MCP config first
|
|
245
|
-
this.removeFromMcpConfig(assistant);
|
|
246
|
-
|
|
247
|
-
// Note: We don't delete the directory to preserve logs and user data
|
|
248
|
-
console.log(`✓ Removed from ${assistant} MCP config`);
|
|
249
|
-
console.log('');
|
|
250
|
-
console.log(`⚠️ Directory preserved: ${skillDir}`);
|
|
251
|
-
console.log(' (contains logs and configuration)');
|
|
252
|
-
console.log(' Delete manually if needed.');
|
|
253
|
-
} else {
|
|
254
|
-
console.log(`⚠️ ${this.config.name} is not installed for ${assistant}`);
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
/**
|
|
259
|
-
* Remove skill from MCP config
|
|
260
|
-
*/
|
|
261
|
-
private removeFromMcpConfig(assistant: AssistantType): void {
|
|
262
|
-
const configPaths: Record<AssistantType, string> = {
|
|
263
|
-
claude: join(homedir(), '.config/claude-code/claude_mcp_config.json'),
|
|
264
|
-
codex: join(homedir(), '.config/codex/mcp_config.json'),
|
|
265
|
-
windsurf: join(homedir(), '.config/windsurf/mcp_config.json'),
|
|
266
|
-
cursor: join(homedir(), '.config/cursor/mcp_config.json'),
|
|
267
|
-
};
|
|
268
|
-
|
|
269
|
-
const configPath = configPaths[assistant];
|
|
270
|
-
|
|
271
|
-
if (existsSync(configPath)) {
|
|
272
|
-
const content = readFileSync(configPath, 'utf8');
|
|
273
|
-
const config = JSON.parse(content);
|
|
274
|
-
|
|
275
|
-
if (config.mcpServers && config.mcpServers[this.config.name]) {
|
|
276
|
-
delete config.mcpServers[this.config.name];
|
|
277
|
-
writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
/**
|
|
284
|
-
* Helper to run installer from skill CLI
|
|
285
|
-
*/
|
|
286
|
-
export async function runInstaller(
|
|
287
|
-
config: SkillConfig,
|
|
288
|
-
currentFilePath: string,
|
|
289
|
-
args: string[]
|
|
290
|
-
): Promise<void> {
|
|
291
|
-
const installer = new SkillInstaller(config, currentFilePath);
|
|
292
|
-
|
|
293
|
-
const command = args[0];
|
|
294
|
-
const assistant = args[1] as AssistantType;
|
|
295
|
-
|
|
296
|
-
if (command === 'install') {
|
|
297
|
-
if (!assistant || !['claude', 'codex', 'windsurf', 'cursor'].includes(assistant)) {
|
|
298
|
-
console.error('❌ Error: Please specify an assistant');
|
|
299
|
-
console.error('');
|
|
300
|
-
console.error('Usage:');
|
|
301
|
-
console.error(` ${config.name} install [claude|codex|windsurf|cursor]`);
|
|
302
|
-
console.error('');
|
|
303
|
-
console.error('Examples:');
|
|
304
|
-
console.error(` ${config.name} install claude`);
|
|
305
|
-
console.error(` ${config.name} install codex`);
|
|
306
|
-
process.exit(1);
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
await installer.install(assistant);
|
|
310
|
-
} else if (command === 'uninstall') {
|
|
311
|
-
if (!assistant || !['claude', 'codex', 'windsurf', 'cursor'].includes(assistant)) {
|
|
312
|
-
console.error('❌ Error: Please specify an assistant');
|
|
313
|
-
console.error('');
|
|
314
|
-
console.error('Usage:');
|
|
315
|
-
console.error(` ${config.name} uninstall [claude|codex|windsurf|cursor]`);
|
|
316
|
-
process.exit(1);
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
await installer.uninstall(assistant);
|
|
320
|
-
} else {
|
|
321
|
-
console.error(`❌ Unknown installer command: ${command}`);
|
|
322
|
-
process.exit(1);
|
|
323
|
-
}
|
|
324
|
-
}
|