@hasna/skills 0.1.62 → 0.1.64
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/README.md +38 -12
- package/bin/index.js +15743 -21709
- package/bin/mcp.js +3866 -11522
- package/bin/migrate.js +281 -35
- package/bin/server.js +5805 -2682
- package/bin/worker.js +5280 -2388
- package/dist/cli/commands/publish.d.ts +2 -0
- package/dist/cli/commands/registry-reconcile.d.ts +2 -0
- package/dist/cli/components/App.d.ts +2 -1
- package/dist/cli/components/CategorySelect.d.ts +2 -1
- package/dist/cli/components/Header.d.ts +2 -1
- package/dist/cli/components/InstallProgress.d.ts +2 -1
- package/dist/cli/components/SearchView.d.ts +2 -1
- package/dist/cli/components/SkillSelect.d.ts +2 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.js +5386 -13739
- package/dist/lib/agent-sync.d.ts +61 -6
- package/dist/lib/auth-store.d.ts +37 -0
- package/dist/lib/config.d.ts +51 -0
- package/dist/lib/home-adoption.d.ts +91 -0
- package/dist/lib/home-census.d.ts +26 -0
- package/dist/lib/home-migration.d.ts +60 -0
- package/dist/lib/native-storage.d.ts +1 -1
- package/dist/lib/portable-skills-files.d.ts +21 -1
- package/dist/lib/portable-skills-types.d.ts +46 -0
- package/dist/lib/portable-skills.d.ts +35 -6
- package/dist/lib/pull.d.ts +97 -0
- package/dist/lib/registry-reconcile.d.ts +114 -0
- package/dist/lib/registry.d.ts +7 -4
- package/dist/lib/remote-client.d.ts +124 -1
- package/dist/lib/remote-registry.d.ts +26 -0
- package/dist/lib/revision.d.ts +29 -0
- package/dist/lib/run-state.d.ts +5 -0
- package/dist/lib/skill-bundles.d.ts +54 -0
- package/dist/lib/skill-contract.d.ts +35 -0
- package/dist/lib/skill-hash.d.ts +77 -0
- package/dist/sdk/cancel.d.ts +30 -0
- package/dist/sdk/dispatcher.d.ts +40 -0
- package/dist/sdk/event-sink.d.ts +2 -0
- package/dist/sdk/events.d.ts +79 -0
- package/dist/sdk/execution/admission.d.ts +44 -0
- package/dist/sdk/execution/dispatchers/e2b.d.ts +17 -0
- package/dist/sdk/execution/dispatchers/ecs.d.ts +151 -0
- package/dist/sdk/execution/image-profile.d.ts +73 -0
- package/dist/sdk/execution/index.d.ts +15 -0
- package/dist/sdk/execution/receipts.d.ts +44 -0
- package/dist/sdk/execution/state-machine.d.ts +38 -0
- package/dist/sdk/execution/storage.d.ts +158 -0
- package/dist/sdk/execution/types.d.ts +130 -0
- package/dist/sdk/executor.d.ts +17 -0
- package/dist/sdk/governance-store.d.ts +156 -0
- package/dist/sdk/governance.d.ts +92 -0
- package/dist/sdk/index.d.ts +26 -0
- package/dist/sdk/index.js +49728 -0
- package/dist/sdk/offline.d.ts +16 -0
- package/dist/sdk/outputs.d.ts +71 -0
- package/dist/sdk/registry.d.ts +28 -0
- package/dist/sdk/runs.d.ts +229 -0
- package/dist/sdk/server.d.ts +35 -0
- package/dist/sdk/spend.d.ts +36 -0
- package/dist/sdk/storage.d.ts +25 -0
- package/dist/server/app.d.ts +42 -0
- package/dist/server/artifact-storage.d.ts +102 -0
- package/dist/server/auth.d.ts +5 -0
- package/dist/server/config.d.ts +50 -0
- package/dist/server/database-url.d.ts +42 -0
- package/dist/server/handlers.d.ts +3 -0
- package/dist/server/index.d.ts +2 -0
- package/dist/server/migrate.d.ts +13 -0
- package/dist/server/migrations-dir.d.ts +18 -0
- package/dist/server/redaction.d.ts +1 -0
- package/dist/server/registry.d.ts +5 -0
- package/dist/server/rows.d.ts +24 -0
- package/dist/server/skills-api.d.ts +170 -0
- package/dist/server/sqlite-store.d.ts +131 -0
- package/dist/server/store-fixtures.d.ts +25 -0
- package/dist/server/store.d.ts +170 -0
- package/dist/server/types.d.ts +337 -0
- package/dist/server/worker.d.ts +4 -0
- package/dist/storage.js +39 -2
- package/docs/skill-standard.md +211 -39
- package/migrations/postgres/0003_run_outputs_governance.sql +83 -0
- package/migrations/postgres/0004_hosted_pins.sql +28 -0
- package/migrations/postgres/0005_revision_tombstone_registry.sql +37 -0
- package/migrations/postgres/0005_tag_projection.sql +36 -0
- package/migrations/sqlite/0003_run_outputs_governance.sql +58 -0
- package/migrations/sqlite/0004_hosted_pins.sql +21 -0
- package/migrations/sqlite/0005_revision_tombstone_registry.sql +18 -0
- package/migrations/sqlite/0005_tag_projection.sql +25 -0
- package/package.json +12 -8
- package/schemas/skill.schema.json +181 -0
- package/agent-skills/README.md +0 -41
- package/agent-skills/fleet-package-rollout/SKILL.md +0 -169
- package/agent-skills/inbox/SKILL.md +0 -25
- package/agent-skills/inbox/scripts/inbox +0 -109
- package/agent-skills/inbox/tests/test_registered_sender_id.sh +0 -92
- package/agent-skills/inbox-monitor/SKILL.md +0 -41
- package/agent-skills/inbox-monitor/scripts/inbox_monitor.sh +0 -91
- package/agent-skills/inbox-monitor/scripts/test_inbox_monitor.sh +0 -71
- package/agent-skills/merge-pr/SKILL.md +0 -85
- package/agent-skills/merge-pr/references/merge-safety.md +0 -82
- package/agent-skills/merge-pr/scripts/merge_pr_guard.py +0 -694
- package/agent-skills/merge-pr/scripts/test_merge_pr_guard.py +0 -647
- package/agent-skills/merge-pr/tests/fixtures/multi-commit-synthesized.json +0 -28
- package/agent-skills/merge-pr/tests/fixtures/trailer-free-provider.json +0 -28
- package/agent-skills/skill-goal-execute/SKILL.md +0 -115
- package/agent-skills/skill-login/SKILL.md +0 -109
- package/agent-skills/skill-project-create/SKILL.md +0 -91
- package/agent-skills/skill-publish/SKILL.md +0 -254
- package/agent-skills/skill-publish/scripts/capture_registry.js +0 -47
- package/agent-skills/skill-publish/scripts/publish_with_git_head.sh +0 -143
- package/agent-skills/skill-publish/scripts/test_publish_with_git_head.sh +0 -231
- package/skills/_common/auth.ts +0 -45
- package/skills/_common/http-client.ts +0 -143
- package/skills/_common/index.ts +0 -26
- package/skills/_common/install.sh +0 -7
- package/skills/_common/installer.ts +0 -72
- package/skills/_common/skill-install.ts +0 -37
- package/skills/_common/vision.ts +0 -374
- package/skills/ad-creative-pack/SKILL.md +0 -55
- package/skills/ad-creative-pack/package.json +0 -10
- package/skills/analyze-data/CLAUDE.md +0 -16
- package/skills/analyze-data/SKILL.md +0 -112
- package/skills/analyze-data/package.json +0 -23
- package/skills/analyze-data/src/analysis.ts +0 -401
- package/skills/analyze-data/src/cli.ts +0 -66
- package/skills/analyze-data/src/formatters.ts +0 -235
- package/skills/analyze-data/src/index.ts +0 -74
- package/skills/analyze-data/src/logger.ts +0 -36
- package/skills/analyze-data/src/parsers.ts +0 -57
- package/skills/analyze-data/src/stats.ts +0 -151
- package/skills/analyze-data/src/types.ts +0 -85
- package/skills/analyze-data/tsconfig.json +0 -19
- package/skills/api-docs-portal/SKILL.md +0 -84
- package/skills/api-docs-portal/package.json +0 -35
- package/skills/api-docs-portal/src/index.ts +0 -919
- package/skills/api-docs-portal/tsconfig.json +0 -17
- package/skills/api-test-suite/CLAUDE.md +0 -19
- package/skills/api-test-suite/package.json +0 -27
- package/skills/api-test-suite/src/index.ts +0 -381
- package/skills/api-test-suite/tsconfig.json +0 -10
- package/skills/audio-extract/CLAUDE.md +0 -9
- package/skills/audio-extract/SKILL.md +0 -73
- package/skills/audio-extract/package.json +0 -23
- package/skills/audio-extract/src/index.ts +0 -323
- package/skills/audio-extract/tsconfig.json +0 -11
- package/skills/bio-sequence-tool/CLAUDE.md +0 -19
- package/skills/bio-sequence-tool/package.json +0 -27
- package/skills/bio-sequence-tool/src/index.ts +0 -85
- package/skills/bio-sequence-tool/tsconfig.json +0 -10
- package/skills/blog-article/CLAUDE.md +0 -12
- package/skills/blog-article/SKILL.md +0 -55
- package/skills/blog-article/package.json +0 -10
- package/skills/blog-article/tsconfig.json +0 -10
- package/skills/brand-assets/SKILL.md +0 -118
- package/skills/brand-assets/package.json +0 -35
- package/skills/brand-assets/src/cli.ts +0 -155
- package/skills/brand-assets/src/constants.ts +0 -8
- package/skills/brand-assets/src/extract.ts +0 -236
- package/skills/brand-assets/src/index.ts +0 -668
- package/skills/brand-assets/src/types.ts +0 -59
- package/skills/brand-assets/tsconfig.json +0 -17
- package/skills/brand-kit/SKILL.md +0 -54
- package/skills/brand-kit/package.json +0 -10
- package/skills/businessactivity/CLAUDE.md +0 -176
- package/skills/businessactivity/LICENSE +0 -192
- package/skills/businessactivity/README.md +0 -287
- package/skills/businessactivity/package.json +0 -25
- package/skills/businessactivity/scripts/publish.ts +0 -210
- package/skills/businessactivity/src/commands/activity.ts +0 -211
- package/skills/businessactivity/src/commands/function.ts +0 -227
- package/skills/businessactivity/src/commands/owner.ts +0 -193
- package/skills/businessactivity/src/commands/profile.ts +0 -121
- package/skills/businessactivity/src/commands/responsibility.ts +0 -264
- package/skills/businessactivity/src/commands/team.ts +0 -244
- package/skills/businessactivity/src/commands/workflow.ts +0 -359
- package/skills/businessactivity/src/index.ts +0 -3
- package/skills/businessactivity/src/lib/config.ts +0 -167
- package/skills/businessactivity/src/lib/output.ts +0 -76
- package/skills/businessactivity/src/lib/paths.ts +0 -79
- package/skills/businessactivity/src/lib/storage.ts +0 -95
- package/skills/businessactivity/src/types/index.ts +0 -86
- package/skills/businessactivity/tsconfig.json +0 -29
- package/skills/codefix/LICENSE +0 -192
- package/skills/codefix/README.md +0 -232
- package/skills/codefix/SKILL.md +0 -94
- package/skills/codefix/package.json +0 -21
- package/skills/codefix/src/fixers/batch.ts +0 -213
- package/skills/codefix/src/fixers/detector.ts +0 -160
- package/skills/codefix/src/fixers/index.ts +0 -7
- package/skills/codefix/src/fixers/runner.ts +0 -522
- package/skills/codefix/src/index-local.ts +0 -431
- package/skills/codefix/src/index.ts +0 -4
- package/skills/codefix/src/types.ts +0 -211
- package/skills/codefix/tsconfig.json +0 -15
- package/skills/commitpush/SKILL.md +0 -57
- package/skills/commitpush/package.json +0 -33
- package/skills/commitpush/src/index.ts +0 -34
- package/skills/commitpush/tsconfig.json +0 -17
- package/skills/commitpushpr/SKILL.md +0 -55
- package/skills/commitpushpr/package.json +0 -33
- package/skills/commitpushpr/src/index.ts +0 -34
- package/skills/commitpushpr/tsconfig.json +0 -17
- package/skills/compress-video/CLAUDE.md +0 -9
- package/skills/compress-video/SKILL.md +0 -79
- package/skills/compress-video/package.json +0 -23
- package/skills/compress-video/src/index.ts +0 -473
- package/skills/compress-video/tsconfig.json +0 -11
- package/skills/contract-review-report/SKILL.md +0 -52
- package/skills/contract-review-report/package.json +0 -10
- package/skills/customer-feedback-report/SKILL.md +0 -52
- package/skills/customer-feedback-report/package.json +0 -10
- package/skills/dashboard-builder/CLAUDE.md +0 -19
- package/skills/dashboard-builder/package.json +0 -29
- package/skills/dashboard-builder/src/index.ts +0 -150
- package/skills/dashboard-builder/tsconfig.json +0 -10
- package/skills/data-anonymizer/CLAUDE.md +0 -19
- package/skills/data-anonymizer/package.json +0 -27
- package/skills/data-anonymizer/src/index.ts +0 -183
- package/skills/data-anonymizer/tsconfig.json +0 -10
- package/skills/database-explorer/CLAUDE.md +0 -19
- package/skills/database-explorer/package.json +0 -29
- package/skills/database-explorer/src/index.ts +0 -95
- package/skills/database-explorer/tsconfig.json +0 -10
- package/skills/diff-viewer/CLAUDE.md +0 -19
- package/skills/diff-viewer/package.json +0 -30
- package/skills/diff-viewer/src/index.ts +0 -164
- package/skills/diff-viewer/tsconfig.json +0 -10
- package/skills/doc-read/SKILL.md +0 -45
- package/skills/doc-read/package.json +0 -29
- package/skills/doc-read/src/index.ts +0 -324
- package/skills/doc-read/tsconfig.json +0 -8
- package/skills/domainpurchase/LICENSE +0 -192
- package/skills/domainpurchase/SKILL.md +0 -29
- package/skills/domainpurchase/package.json +0 -30
- package/skills/domainpurchase/src/index.ts +0 -3
- package/skills/domainpurchase/tsconfig.json +0 -21
- package/skills/email-sequence/SKILL.md +0 -53
- package/skills/email-sequence/package.json +0 -10
- package/skills/experiment-power-calculator/CLAUDE.md +0 -19
- package/skills/experiment-power-calculator/package.json +0 -29
- package/skills/experiment-power-calculator/src/index.ts +0 -86
- package/skills/experiment-power-calculator/tsconfig.json +0 -10
- package/skills/extract-frames/CLAUDE.md +0 -19
- package/skills/extract-frames/package.json +0 -27
- package/skills/extract-frames/src/index.ts +0 -616
- package/skills/extract-frames/tsconfig.json +0 -10
- package/skills/file-organizer/CLAUDE.md +0 -19
- package/skills/file-organizer/package.json +0 -27
- package/skills/file-organizer/src/index.ts +0 -91
- package/skills/file-organizer/tsconfig.json +0 -10
- package/skills/folder-tree/CLAUDE.md +0 -19
- package/skills/folder-tree/package.json +0 -29
- package/skills/folder-tree/src/index.ts +0 -568
- package/skills/folder-tree/tsconfig.json +0 -10
- package/skills/form-filler/CLAUDE.md +0 -19
- package/skills/form-filler/package.json +0 -29
- package/skills/form-filler/src/index.ts +0 -81
- package/skills/form-filler/tsconfig.json +0 -10
- package/skills/generate-api-client/CLAUDE.md +0 -19
- package/skills/generate-api-client/package.json +0 -29
- package/skills/generate-api-client/src/generator.ts +0 -47
- package/skills/generate-api-client/src/index.ts +0 -92
- package/skills/generate-api-client/src/logger.ts +0 -34
- package/skills/generate-api-client/src/python-generator.ts +0 -245
- package/skills/generate-api-client/src/spec-loader.ts +0 -48
- package/skills/generate-api-client/src/type-mappers.ts +0 -79
- package/skills/generate-api-client/src/types.ts +0 -76
- package/skills/generate-api-client/src/typescript-generator.ts +0 -247
- package/skills/generate-api-client/tsconfig.json +0 -10
- package/skills/generate-chart/CLAUDE.md +0 -19
- package/skills/generate-chart/package.json +0 -27
- package/skills/generate-chart/src/index.ts +0 -510
- package/skills/generate-chart/tsconfig.json +0 -10
- package/skills/generate-dockerfile/CLAUDE.md +0 -19
- package/skills/generate-dockerfile/package.json +0 -27
- package/skills/generate-dockerfile/src/cli.ts +0 -78
- package/skills/generate-dockerfile/src/dockerfile-templates.ts +0 -392
- package/skills/generate-dockerfile/src/index.ts +0 -81
- package/skills/generate-dockerfile/src/logger.ts +0 -30
- package/skills/generate-dockerfile/src/project-detection.ts +0 -68
- package/skills/generate-dockerfile/src/support-files.ts +0 -171
- package/skills/generate-dockerfile/src/types.ts +0 -29
- package/skills/generate-dockerfile/tsconfig.json +0 -10
- package/skills/generate-env/CLAUDE.md +0 -19
- package/skills/generate-env/package.json +0 -29
- package/skills/generate-env/src/cli.ts +0 -85
- package/skills/generate-env/src/detection.ts +0 -161
- package/skills/generate-env/src/env-data.ts +0 -66
- package/skills/generate-env/src/generators.ts +0 -240
- package/skills/generate-env/src/index.ts +0 -120
- package/skills/generate-env/src/runtime.ts +0 -30
- package/skills/generate-env/src/types.ts +0 -32
- package/skills/generate-env/tsconfig.json +0 -10
- package/skills/generate-favicon/CLAUDE.md +0 -19
- package/skills/generate-favicon/package.json +0 -29
- package/skills/generate-favicon/src/index.ts +0 -421
- package/skills/generate-favicon/tsconfig.json +0 -10
- package/skills/generate-qrcode/CLAUDE.md +0 -19
- package/skills/generate-qrcode/package.json +0 -30
- package/skills/generate-qrcode/src/index.ts +0 -584
- package/skills/generate-qrcode/tsconfig.json +0 -10
- package/skills/generate-resume/CLAUDE.md +0 -19
- package/skills/generate-resume/package.json +0 -27
- package/skills/generate-resume/src/cli.ts +0 -157
- package/skills/generate-resume/src/index.ts +0 -178
- package/skills/generate-resume/src/parsers.ts +0 -95
- package/skills/generate-resume/src/renderers.ts +0 -538
- package/skills/generate-resume/src/security.ts +0 -39
- package/skills/generate-resume/src/types.ts +0 -86
- package/skills/generate-resume/tsconfig.json +0 -10
- package/skills/generate-sitemap/CLAUDE.md +0 -19
- package/skills/generate-sitemap/package.json +0 -27
- package/skills/generate-sitemap/src/index.ts +0 -626
- package/skills/generate-sitemap/tsconfig.json +0 -10
- package/skills/gif-maker/CLAUDE.md +0 -19
- package/skills/gif-maker/package.json +0 -30
- package/skills/gif-maker/src/index.ts +0 -600
- package/skills/gif-maker/tsconfig.json +0 -10
- package/skills/hook/LICENSE +0 -192
- package/skills/hook/README.md +0 -74
- package/skills/hook/SKILL.md +0 -85
- package/skills/hook/bunfig.toml +0 -5
- package/skills/hook/package.json +0 -28
- package/skills/hook/src/commands/create.ts +0 -112
- package/skills/hook/src/commands/events.ts +0 -37
- package/skills/hook/src/commands/validate.ts +0 -117
- package/skills/hook/src/index.ts +0 -118
- package/skills/hook/src/templates/root.ts +0 -196
- package/skills/hook/src/templates/source.ts +0 -647
- package/skills/hook/tsconfig.json +0 -18
- package/skills/http-server/CLAUDE.md +0 -19
- package/skills/http-server/package.json +0 -29
- package/skills/http-server/src/index.ts +0 -51
- package/skills/http-server/tsconfig.json +0 -10
- package/skills/implementation/LICENSE +0 -192
- package/skills/implementation/README.md +0 -53
- package/skills/implementation/SKILL.md +0 -57
- package/skills/implementation/bunfig.toml +0 -5
- package/skills/implementation/package.json +0 -28
- package/skills/implementation/src/commands/create.ts +0 -187
- package/skills/implementation/src/index.ts +0 -62
- package/skills/implementation/tsconfig.json +0 -18
- package/skills/implementation-plan/CLAUDE.md +0 -19
- package/skills/implementation-plan/package.json +0 -29
- package/skills/implementation-plan/src/index.ts +0 -520
- package/skills/implementation-plan/tsconfig.json +0 -10
- package/skills/implementation-todo/CLAUDE.md +0 -19
- package/skills/implementation-todo/package.json +0 -29
- package/skills/implementation-todo/src/index.ts +0 -429
- package/skills/implementation-todo/tsconfig.json +0 -10
- package/skills/invoice/.env.example +0 -3
- package/skills/invoice/CLAUDE.md +0 -31
- package/skills/invoice/LICENSE +0 -192
- package/skills/invoice/README.md +0 -70
- package/skills/invoice/package.json +0 -26
- package/skills/invoice/src/commands/companies.ts +0 -202
- package/skills/invoice/src/commands/config.ts +0 -132
- package/skills/invoice/src/commands/generate.ts +0 -177
- package/skills/invoice/src/commands/invoices.ts +0 -218
- package/skills/invoice/src/index.ts +0 -3
- package/skills/invoice/src/lib/api.ts +0 -124
- package/skills/invoice/src/lib/storage.ts +0 -171
- package/skills/invoice/src/types/index.ts +0 -86
- package/skills/invoice/src/utils/logger.ts +0 -33
- package/skills/invoice/src/utils/paths.ts +0 -25
- package/skills/invoice/tsconfig.json +0 -23
- package/skills/invoice-reconciliation/SKILL.md +0 -98
- package/skills/invoice-reconciliation/package.json +0 -36
- package/skills/invoice-reconciliation/src/index.ts +0 -743
- package/skills/invoice-reconciliation/tsconfig.json +0 -17
- package/skills/landing-page-pack/SKILL.md +0 -55
- package/skills/landing-page-pack/package.json +0 -10
- package/skills/latex-table-generator/CLAUDE.md +0 -19
- package/skills/latex-table-generator/package.json +0 -29
- package/skills/latex-table-generator/src/index.ts +0 -113
- package/skills/latex-table-generator/tsconfig.json +0 -10
- package/skills/logo-design/SKILL.md +0 -94
- package/skills/logo-design/package.json +0 -35
- package/skills/logo-design/src/cli.ts +0 -132
- package/skills/logo-design/src/constants.ts +0 -5
- package/skills/logo-design/src/docs.ts +0 -102
- package/skills/logo-design/src/geometry.ts +0 -324
- package/skills/logo-design/src/index.ts +0 -212
- package/skills/logo-design/src/palette.ts +0 -258
- package/skills/logo-design/src/types.ts +0 -50
- package/skills/logo-design/tsconfig.json +0 -17
- package/skills/lorem-generator/CLAUDE.md +0 -19
- package/skills/lorem-generator/package.json +0 -29
- package/skills/lorem-generator/src/index.ts +0 -59
- package/skills/lorem-generator/tsconfig.json +0 -10
- package/skills/managemcp/CLAUDE.md +0 -14
- package/skills/managemcp/README.md +0 -24
- package/skills/managemcp/package.json +0 -16
- package/skills/managemcp/src/index.ts +0 -3
- package/skills/managemcp/tsconfig.json +0 -27
- package/skills/markdown-validator/CLAUDE.md +0 -19
- package/skills/markdown-validator/package.json +0 -29
- package/skills/markdown-validator/src/index.ts +0 -92
- package/skills/markdown-validator/tsconfig.json +0 -10
- package/skills/market-research-report/SKILL.md +0 -51
- package/skills/market-research-report/package.json +0 -10
- package/skills/meeting-pack/SKILL.md +0 -52
- package/skills/meeting-pack/package.json +0 -10
- package/skills/merge-pdfs/CLAUDE.md +0 -19
- package/skills/merge-pdfs/package.json +0 -31
- package/skills/merge-pdfs/src/index.ts +0 -427
- package/skills/merge-pdfs/tsconfig.json +0 -10
- package/skills/migration-plan-pack/SKILL.md +0 -56
- package/skills/migration-plan-pack/package.json +0 -10
- package/skills/monitor/SKILL.md +0 -69
- package/skills/monitor/package.json +0 -33
- package/skills/monitor/src/index.ts +0 -34
- package/skills/monitor/tsconfig.json +0 -17
- package/skills/one-page-website/SKILL.md +0 -128
- package/skills/one-page-website/package.json +0 -34
- package/skills/one-page-website/src/design.ts +0 -336
- package/skills/one-page-website/src/docs.ts +0 -159
- package/skills/one-page-website/src/index.ts +0 -357
- package/skills/one-page-website/src/page.ts +0 -340
- package/skills/one-page-website/src/styles.ts +0 -508
- package/skills/one-page-website/src/types.ts +0 -78
- package/skills/one-page-website/tsconfig.json +0 -17
- package/skills/pdf-generate/CLAUDE.md +0 -19
- package/skills/pdf-generate/SKILL.md +0 -86
- package/skills/pdf-generate/package.json +0 -21
- package/skills/pdf-generate/src/cli.ts +0 -162
- package/skills/pdf-generate/src/html.ts +0 -84
- package/skills/pdf-generate/src/index.ts +0 -62
- package/skills/pdf-generate/src/markdown.ts +0 -27
- package/skills/pdf-generate/src/pdf-writer.ts +0 -78
- package/skills/pdf-generate/src/runtime.ts +0 -34
- package/skills/pdf-generate/src/security.ts +0 -37
- package/skills/pdf-generate/src/templates.ts +0 -311
- package/skills/pdf-generate/src/types.ts +0 -28
- package/skills/pdf-generate/tsconfig.json +0 -16
- package/skills/pdf-to-dataset/SKILL.md +0 -88
- package/skills/pdf-to-dataset/package.json +0 -37
- package/skills/pdf-to-dataset/src/index.ts +0 -790
- package/skills/pdf-to-dataset/tsconfig.json +0 -17
- package/skills/pdf-to-markdown/SKILL.md +0 -81
- package/skills/pdf-to-markdown/package.json +0 -35
- package/skills/pdf-to-markdown/src/index.ts +0 -694
- package/skills/pdf-to-markdown/tsconfig.json +0 -17
- package/skills/performance-audit-report/SKILL.md +0 -49
- package/skills/performance-audit-report/package.json +0 -10
- package/skills/pitch-deck/SKILL.md +0 -51
- package/skills/pitch-deck/package.json +0 -10
- package/skills/product-mockup/SKILL.md +0 -107
- package/skills/product-mockup/package.json +0 -32
- package/skills/product-mockup/src/cli.ts +0 -150
- package/skills/product-mockup/src/design.ts +0 -151
- package/skills/product-mockup/src/docs.ts +0 -134
- package/skills/product-mockup/src/index.ts +0 -182
- package/skills/product-mockup/src/render.ts +0 -407
- package/skills/product-mockup/src/types.ts +0 -66
- package/skills/product-mockup/tsconfig.json +0 -17
- package/skills/proposal-pack/SKILL.md +0 -53
- package/skills/proposal-pack/package.json +0 -10
- package/skills/read-csv/SKILL.md +0 -62
- package/skills/read-csv/package.json +0 -37
- package/skills/read-csv/src/index.ts +0 -356
- package/skills/read-csv/tsconfig.json +0 -17
- package/skills/read-excel/SKILL.md +0 -64
- package/skills/read-excel/package.json +0 -36
- package/skills/read-excel/src/index.ts +0 -266
- package/skills/read-excel/tsconfig.json +0 -17
- package/skills/regex-tester/CLAUDE.md +0 -19
- package/skills/regex-tester/package.json +0 -27
- package/skills/regex-tester/src/index.ts +0 -183
- package/skills/regex-tester/tsconfig.json +0 -10
- package/skills/repo-onboarding-report/SKILL.md +0 -52
- package/skills/repo-onboarding-report/package.json +0 -10
- package/skills/scancommitpr/SKILL.md +0 -178
- package/skills/scancommitpr/package.json +0 -34
- package/skills/scancommitpr/src/index.ts +0 -44
- package/skills/scancommitpr/tsconfig.json +0 -13
- package/skills/scancommitpush/SKILL.md +0 -174
- package/skills/scancommitpush/package.json +0 -32
- package/skills/scancommitpush/src/index.ts +0 -44
- package/skills/scancommitpush/tsconfig.json +0 -13
- package/skills/scientific-figure-check/CLAUDE.md +0 -19
- package/skills/scientific-figure-check/package.json +0 -29
- package/skills/scientific-figure-check/src/index.ts +0 -83
- package/skills/scientific-figure-check/tsconfig.json +0 -10
- package/skills/security-audit/CLAUDE.md +0 -19
- package/skills/security-audit/package.json +0 -27
- package/skills/security-audit/src/index.ts +0 -145
- package/skills/security-audit/tsconfig.json +0 -10
- package/skills/security-audit-report/SKILL.md +0 -52
- package/skills/security-audit-report/package.json +0 -10
- package/skills/seo-content-pack/SKILL.md +0 -54
- package/skills/seo-content-pack/package.json +0 -10
- package/skills/siteanalyze/SKILL.md +0 -25
- package/skills/siteanalyze/package.json +0 -27
- package/skills/siteanalyze/src/index.ts +0 -592
- package/skills/slide-deck-generator/SKILL.md +0 -93
- package/skills/slide-deck-generator/package.json +0 -38
- package/skills/slide-deck-generator/src/cli.ts +0 -133
- package/skills/slide-deck-generator/src/index.ts +0 -148
- package/skills/slide-deck-generator/src/model.ts +0 -307
- package/skills/slide-deck-generator/src/pptx.ts +0 -143
- package/skills/slide-deck-generator/src/render.ts +0 -248
- package/skills/slide-deck-generator/src/types.ts +0 -114
- package/skills/slide-deck-generator/src/utils.ts +0 -53
- package/skills/slide-deck-generator/tsconfig.json +0 -17
- package/skills/social-content-calendar/SKILL.md +0 -54
- package/skills/social-content-calendar/package.json +0 -10
- package/skills/split-pdf/CLAUDE.md +0 -19
- package/skills/split-pdf/package.json +0 -30
- package/skills/split-pdf/src/index.ts +0 -301
- package/skills/split-pdf/tsconfig.json +0 -10
- package/skills/statistical-test-selector/CLAUDE.md +0 -19
- package/skills/statistical-test-selector/package.json +0 -27
- package/skills/statistical-test-selector/src/index.ts +0 -75
- package/skills/statistical-test-selector/tsconfig.json +0 -10
- package/skills/test-suite-generator/SKILL.md +0 -51
- package/skills/test-suite-generator/package.json +0 -10
- package/skills/tmux-session/SKILL.md +0 -109
- package/skills/tmux-session/package.json +0 -33
- package/skills/tmux-session/src/index.ts +0 -34
- package/skills/tmux-session/tsconfig.json +0 -17
- package/skills/todos-plan/SKILL.md +0 -363
- package/skills/todos-plan/agents/openai.yaml +0 -4
- package/skills/todos-plan/package.json +0 -9
- package/skills/todos-plan/src/index.ts +0 -68
- package/skills/tsconfig.base.json +0 -12
- package/skills/validate-config/CLAUDE.md +0 -19
- package/skills/validate-config/package.json +0 -29
- package/skills/validate-config/src/index.ts +0 -56
- package/skills/validate-config/tsconfig.json +0 -10
- package/skills/video-downloader/CLAUDE.md +0 -19
- package/skills/video-downloader/package.json +0 -29
- package/skills/video-downloader/src/index.ts +0 -561
- package/skills/video-downloader/tsconfig.json +0 -10
- package/skills/video-highlight-pack/SKILL.md +0 -54
- package/skills/video-highlight-pack/package.json +0 -10
- package/skills/watermark/CLAUDE.md +0 -19
- package/skills/watermark/package.json +0 -32
- package/skills/watermark/src/index.ts +0 -587
- package/skills/watermark/tsconfig.json +0 -10
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
import type { GenerateOptions, ProjectType } from "./types";
|
|
2
|
-
|
|
3
|
-
export function generateDockerignore(type: ProjectType): string {
|
|
4
|
-
const common = `# Version control
|
|
5
|
-
.git
|
|
6
|
-
.gitignore
|
|
7
|
-
.svn
|
|
8
|
-
.hg
|
|
9
|
-
|
|
10
|
-
# IDE files
|
|
11
|
-
.vscode
|
|
12
|
-
.idea
|
|
13
|
-
*.swp
|
|
14
|
-
*.swo
|
|
15
|
-
*~
|
|
16
|
-
|
|
17
|
-
# OS files
|
|
18
|
-
.DS_Store
|
|
19
|
-
Thumbs.db
|
|
20
|
-
|
|
21
|
-
# Environment files
|
|
22
|
-
.env
|
|
23
|
-
.env.*
|
|
24
|
-
!.env.example
|
|
25
|
-
|
|
26
|
-
# Logs
|
|
27
|
-
*.log
|
|
28
|
-
logs
|
|
29
|
-
npm-debug.log*
|
|
30
|
-
yarn-debug.log*
|
|
31
|
-
yarn-error.log*
|
|
32
|
-
|
|
33
|
-
# Temporary files
|
|
34
|
-
tmp
|
|
35
|
-
temp
|
|
36
|
-
*.tmp
|
|
37
|
-
|
|
38
|
-
# Documentation
|
|
39
|
-
README.md
|
|
40
|
-
CHANGELOG.md
|
|
41
|
-
LICENSE
|
|
42
|
-
docs
|
|
43
|
-
*.md
|
|
44
|
-
|
|
45
|
-
# CI/CD
|
|
46
|
-
.github
|
|
47
|
-
.gitlab-ci.yml
|
|
48
|
-
.travis.yml
|
|
49
|
-
Jenkinsfile
|
|
50
|
-
|
|
51
|
-
# Testing
|
|
52
|
-
coverage
|
|
53
|
-
.nyc_output
|
|
54
|
-
test
|
|
55
|
-
tests
|
|
56
|
-
*.test.js
|
|
57
|
-
*.spec.js
|
|
58
|
-
`;
|
|
59
|
-
|
|
60
|
-
const typeSpecific: Record<ProjectType, string> = {
|
|
61
|
-
nodejs: `# Node.js
|
|
62
|
-
node_modules
|
|
63
|
-
dist
|
|
64
|
-
build
|
|
65
|
-
.npm
|
|
66
|
-
.cache
|
|
67
|
-
`,
|
|
68
|
-
python: `# Python
|
|
69
|
-
__pycache__
|
|
70
|
-
*.py[cod]
|
|
71
|
-
*$py.class
|
|
72
|
-
venv
|
|
73
|
-
env
|
|
74
|
-
.Python
|
|
75
|
-
*.egg-info
|
|
76
|
-
dist
|
|
77
|
-
build
|
|
78
|
-
.pytest_cache
|
|
79
|
-
.coverage
|
|
80
|
-
`,
|
|
81
|
-
go: `# Go
|
|
82
|
-
vendor
|
|
83
|
-
*.exe
|
|
84
|
-
*.exe~
|
|
85
|
-
*.dll
|
|
86
|
-
*.so
|
|
87
|
-
*.dylib
|
|
88
|
-
`,
|
|
89
|
-
rust: `# Rust
|
|
90
|
-
target
|
|
91
|
-
Cargo.lock
|
|
92
|
-
*.rs.bk
|
|
93
|
-
`,
|
|
94
|
-
java: `# Java
|
|
95
|
-
target
|
|
96
|
-
*.class
|
|
97
|
-
*.jar
|
|
98
|
-
*.war
|
|
99
|
-
.mvn
|
|
100
|
-
.gradle
|
|
101
|
-
build
|
|
102
|
-
`,
|
|
103
|
-
ruby: `# Ruby
|
|
104
|
-
.bundle
|
|
105
|
-
vendor/bundle
|
|
106
|
-
*.gem
|
|
107
|
-
.rspec
|
|
108
|
-
`,
|
|
109
|
-
php: `# PHP
|
|
110
|
-
vendor
|
|
111
|
-
composer.phar
|
|
112
|
-
*.cache
|
|
113
|
-
storage/logs
|
|
114
|
-
`,
|
|
115
|
-
static: `# Static
|
|
116
|
-
node_modules
|
|
117
|
-
src
|
|
118
|
-
*.scss
|
|
119
|
-
*.sass
|
|
120
|
-
*.less
|
|
121
|
-
`,
|
|
122
|
-
};
|
|
123
|
-
|
|
124
|
-
return common + (typeSpecific[type] || "");
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
export function generateDockerCompose(_type: ProjectType, options: GenerateOptions): string {
|
|
128
|
-
const serviceName = "app";
|
|
129
|
-
|
|
130
|
-
return `version: '3.8'
|
|
131
|
-
|
|
132
|
-
services:
|
|
133
|
-
${serviceName}:
|
|
134
|
-
build:
|
|
135
|
-
context: .
|
|
136
|
-
dockerfile: Dockerfile
|
|
137
|
-
ports:
|
|
138
|
-
- "${options.port}:${options.port}"
|
|
139
|
-
environment:
|
|
140
|
-
- NODE_ENV=production
|
|
141
|
-
- PORT=${options.port}
|
|
142
|
-
volumes:
|
|
143
|
-
- ./${options.workdir}:${options.workdir}
|
|
144
|
-
restart: unless-stopped
|
|
145
|
-
${options.healthcheck ? `healthcheck:
|
|
146
|
-
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:${options.port}/health"]
|
|
147
|
-
interval: 30s
|
|
148
|
-
timeout: 3s
|
|
149
|
-
retries: 3
|
|
150
|
-
start_period: 5s
|
|
151
|
-
` : ""}
|
|
152
|
-
# Uncomment to add database service
|
|
153
|
-
# db:
|
|
154
|
-
# image: postgres:16-alpine
|
|
155
|
-
# environment:
|
|
156
|
-
# POSTGRES_DB: myapp
|
|
157
|
-
# POSTGRES_USER: user
|
|
158
|
-
# POSTGRES_PASSWORD: password
|
|
159
|
-
# volumes:
|
|
160
|
-
# - db_data:/var/lib/postgresql/data
|
|
161
|
-
# restart: unless-stopped
|
|
162
|
-
|
|
163
|
-
# Uncomment to add Redis cache
|
|
164
|
-
# redis:
|
|
165
|
-
# image: redis:7-alpine
|
|
166
|
-
# restart: unless-stopped
|
|
167
|
-
|
|
168
|
-
# volumes:
|
|
169
|
-
# db_data:
|
|
170
|
-
`;
|
|
171
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
export const PROJECT_PATTERNS = {
|
|
2
|
-
nodejs: ["package.json", "yarn.lock", "pnpm-lock.yaml", "bun.lockb"],
|
|
3
|
-
python: ["requirements.txt", "setup.py", "pyproject.toml", "Pipfile"],
|
|
4
|
-
go: ["go.mod", "go.sum"],
|
|
5
|
-
rust: ["Cargo.toml", "Cargo.lock"],
|
|
6
|
-
java: ["pom.xml", "build.gradle", "build.gradle.kts"],
|
|
7
|
-
ruby: ["Gemfile", "Gemfile.lock"],
|
|
8
|
-
php: ["composer.json", "composer.lock"],
|
|
9
|
-
static: ["index.html", "index.htm"],
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
export type ProjectType = keyof typeof PROJECT_PATTERNS;
|
|
13
|
-
export type BaseImageVariant = "alpine" | "slim" | "standard";
|
|
14
|
-
|
|
15
|
-
export interface GenerateOptions {
|
|
16
|
-
type?: ProjectType;
|
|
17
|
-
base: BaseImageVariant;
|
|
18
|
-
dir: string;
|
|
19
|
-
output: string;
|
|
20
|
-
compose: boolean;
|
|
21
|
-
dockerignore: boolean;
|
|
22
|
-
multistage: boolean;
|
|
23
|
-
healthcheck: boolean;
|
|
24
|
-
minimal: boolean;
|
|
25
|
-
all: boolean;
|
|
26
|
-
port: number;
|
|
27
|
-
user: string;
|
|
28
|
-
workdir: string;
|
|
29
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "generate-env",
|
|
3
|
-
"version": "0.1.0",
|
|
4
|
-
"description": "Generate Env skill",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"bin": {
|
|
7
|
-
"generate-env": "./src/index.ts"
|
|
8
|
-
},
|
|
9
|
-
"scripts": {
|
|
10
|
-
"dev": "bun run src/index.ts",
|
|
11
|
-
"build": "bun build src/index.ts --outdir dist --target node",
|
|
12
|
-
"typecheck": "tsc --noEmit"
|
|
13
|
-
},
|
|
14
|
-
"dependencies": {
|
|
15
|
-
"glob": "^11.1.0"
|
|
16
|
-
},
|
|
17
|
-
"devDependencies": {
|
|
18
|
-
"@types/bun": "latest",
|
|
19
|
-
"typescript": "^5.7.0"
|
|
20
|
-
},
|
|
21
|
-
"publishConfig": {
|
|
22
|
-
"access": "restricted",
|
|
23
|
-
"registry": "https://registry.npmjs.org/"
|
|
24
|
-
},
|
|
25
|
-
"files": [
|
|
26
|
-
"src",
|
|
27
|
-
"tsconfig.json"
|
|
28
|
-
]
|
|
29
|
-
}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { parseArgs } from "util";
|
|
2
|
-
import { resolve } from "path";
|
|
3
|
-
import { DEFAULT_CATEGORIES } from "./env-data";
|
|
4
|
-
import type { GenerateOptions } from "./types";
|
|
5
|
-
|
|
6
|
-
export function parseGenerateOptions(): GenerateOptions {
|
|
7
|
-
const { values } = parseArgs({
|
|
8
|
-
args: process.argv.slice(2),
|
|
9
|
-
options: {
|
|
10
|
-
dir: { type: "string", default: process.cwd() },
|
|
11
|
-
include: { type: "string", default: "**/*.{ts,js,tsx,jsx}" },
|
|
12
|
-
exclude: { type: "string", default: "node_modules/**,dist/**,.next/**,build/**" },
|
|
13
|
-
output: { type: "string", default: process.cwd() },
|
|
14
|
-
envs: { type: "string", default: "example,local,development,production" },
|
|
15
|
-
prefix: { type: "string", default: ".env" },
|
|
16
|
-
"generate-secrets": { type: "boolean", default: false },
|
|
17
|
-
"secret-length": { type: "string", default: "32" },
|
|
18
|
-
"with-types": { type: "boolean", default: false },
|
|
19
|
-
"with-validation": { type: "boolean", default: false },
|
|
20
|
-
"template-only": { type: "boolean", default: false },
|
|
21
|
-
categories: { type: "string", default: DEFAULT_CATEGORIES.join(",") },
|
|
22
|
-
"auto-categorize": { type: "boolean", default: true },
|
|
23
|
-
format: { type: "string", default: "inline" },
|
|
24
|
-
"include-examples": { type: "boolean", default: true },
|
|
25
|
-
"security-warnings": { type: "boolean", default: true },
|
|
26
|
-
help: { type: "boolean", short: "h" },
|
|
27
|
-
},
|
|
28
|
-
allowPositionals: true,
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
if (values.help) {
|
|
32
|
-
console.log(`
|
|
33
|
-
Generate Env - Generate comprehensive .env templates
|
|
34
|
-
|
|
35
|
-
Usage:
|
|
36
|
-
skills run generate-env -- [options]
|
|
37
|
-
|
|
38
|
-
Options:
|
|
39
|
-
--dir <path> Project directory
|
|
40
|
-
--include <pattern> Glob pattern to include
|
|
41
|
-
--exclude <pattern> Glob pattern to exclude
|
|
42
|
-
--output <path> Output directory
|
|
43
|
-
--envs <list> Environments to generate (comma-separated)
|
|
44
|
-
--prefix <string> File prefix (default: .env)
|
|
45
|
-
--generate-secrets Generate random secrets
|
|
46
|
-
--secret-length <n> Length of generated secrets
|
|
47
|
-
--with-types Generate TypeScript types
|
|
48
|
-
--with-validation Generate Zod validation
|
|
49
|
-
--template-only Use template variables only
|
|
50
|
-
--categories <list> Custom categories
|
|
51
|
-
--auto-categorize Auto-categorize variables
|
|
52
|
-
--format <type> Output format: inline, block, minimal
|
|
53
|
-
--include-examples Include examples in comments
|
|
54
|
-
--security-warnings Include security warnings
|
|
55
|
-
--help, -h Show this help
|
|
56
|
-
`);
|
|
57
|
-
process.exit(0);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
return {
|
|
61
|
-
dir: resolve(values.dir as string),
|
|
62
|
-
include: splitGlobList(values.include as string),
|
|
63
|
-
exclude: splitGlobList(values.exclude as string),
|
|
64
|
-
output: resolve(values.output as string),
|
|
65
|
-
envs: (values.envs as string).split(","),
|
|
66
|
-
prefix: values.prefix as string,
|
|
67
|
-
generateSecrets: values["generate-secrets"] as boolean,
|
|
68
|
-
secretLength: parseInt(values["secret-length"] as string, 10),
|
|
69
|
-
withTypes: values["with-types"] as boolean,
|
|
70
|
-
withValidation: values["with-validation"] as boolean,
|
|
71
|
-
templateOnly: values["template-only"] as boolean,
|
|
72
|
-
categories: (values.categories as string).split(","),
|
|
73
|
-
autoCategorize: values["auto-categorize"] as boolean,
|
|
74
|
-
format: values.format as "inline" | "block" | "minimal",
|
|
75
|
-
includeExamples: values["include-examples"] as boolean,
|
|
76
|
-
securityWarnings: values["security-warnings"] as boolean,
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
function splitGlobList(value: string): string[] {
|
|
81
|
-
if (value.includes("{") && value.includes("}")) {
|
|
82
|
-
return [value];
|
|
83
|
-
}
|
|
84
|
-
return value.split(",").map((item) => item.trim()).filter(Boolean);
|
|
85
|
-
}
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
import { readFileSync } from "fs";
|
|
2
|
-
import { glob } from "glob";
|
|
3
|
-
import { CATEGORY_PATTERNS, COMMON_VARIABLES, SENSITIVE_PATTERNS } from "./env-data";
|
|
4
|
-
import { log } from "./runtime";
|
|
5
|
-
import type { EnvVariable, GenerateOptions } from "./types";
|
|
6
|
-
|
|
7
|
-
// Variable Detection
|
|
8
|
-
// ============================================================================
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Detect environment variables from codebase
|
|
12
|
-
*/
|
|
13
|
-
export async function detectEnvVariables(options: GenerateOptions): Promise<EnvVariable[]> {
|
|
14
|
-
const { dir, include, exclude } = options;
|
|
15
|
-
|
|
16
|
-
log('Analyzing codebase for environment variables...');
|
|
17
|
-
log(`Scanning: ${include.join(', ')}`);
|
|
18
|
-
|
|
19
|
-
const files = await glob(include, {
|
|
20
|
-
cwd: dir,
|
|
21
|
-
ignore: exclude,
|
|
22
|
-
absolute: true,
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
log(`Found ${files.length} files to analyze`);
|
|
26
|
-
|
|
27
|
-
const envVars = new Map<string, EnvVariable>();
|
|
28
|
-
|
|
29
|
-
// Add common variables
|
|
30
|
-
COMMON_VARIABLES.forEach(v => envVars.set(v.name, v));
|
|
31
|
-
|
|
32
|
-
for (const file of files) {
|
|
33
|
-
try {
|
|
34
|
-
const content = readFileSync(file, 'utf-8');
|
|
35
|
-
const detected = extractEnvVarsFromCode(content);
|
|
36
|
-
|
|
37
|
-
detected.forEach(varName => {
|
|
38
|
-
if (!envVars.has(varName)) {
|
|
39
|
-
envVars.set(varName, {
|
|
40
|
-
name: varName,
|
|
41
|
-
category: options.autoCategorize ? categorizeVariable(varName) : 'misc',
|
|
42
|
-
description: generateDescription(varName),
|
|
43
|
-
required: true,
|
|
44
|
-
sensitive: isSensitive(varName),
|
|
45
|
-
example: generateExample(varName),
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
} catch (error) {
|
|
50
|
-
log(`Could not read file: ${file}`, "warn");
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
log(`Found ${envVars.size} environment variables`, "success");
|
|
55
|
-
|
|
56
|
-
return Array.from(envVars.values()).sort((a, b) => {
|
|
57
|
-
// Sort by category, then by name
|
|
58
|
-
if (a.category !== b.category) {
|
|
59
|
-
return a.category.localeCompare(b.category);
|
|
60
|
-
}
|
|
61
|
-
return a.name.localeCompare(b.name);
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Extract environment variable names from code
|
|
67
|
-
*/
|
|
68
|
-
export function extractEnvVarsFromCode(content: string): string[] {
|
|
69
|
-
const vars = new Set<string>();
|
|
70
|
-
|
|
71
|
-
// Pattern 1: process.env.VAR_NAME
|
|
72
|
-
const pattern1 = /process\.env\.([A-Z_][A-Z0-9_]*)/g;
|
|
73
|
-
let match;
|
|
74
|
-
while ((match = pattern1.exec(content)) !== null) {
|
|
75
|
-
vars.add(match[1]);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// Pattern 2: process.env['VAR_NAME'] or process.env["VAR_NAME"]
|
|
79
|
-
const pattern2 = /process\.env\[['"]([A-Z_][A-Z0-9_]*)['"]\]/g;
|
|
80
|
-
while ((match = pattern2.exec(content)) !== null) {
|
|
81
|
-
vars.add(match[1]);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
// Pattern 3: Destructuring { VAR1, VAR2 } = process.env
|
|
85
|
-
const pattern3 = /\{\s*([A-Z_][A-Z0-9_,\s]*)\s*\}\s*=\s*process\.env/g;
|
|
86
|
-
while ((match = pattern3.exec(content)) !== null) {
|
|
87
|
-
const varNames = match[1].split(',').map(v => v.trim());
|
|
88
|
-
varNames.forEach(v => {
|
|
89
|
-
if (v && /^[A-Z_][A-Z0-9_]*$/.test(v)) {
|
|
90
|
-
vars.add(v);
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
// Pattern 4: import.meta.env.VAR_NAME (Vite)
|
|
96
|
-
const pattern4 = /import\.meta\.env\.([A-Z_][A-Z0-9_]*)/g;
|
|
97
|
-
while ((match = pattern4.exec(content)) !== null) {
|
|
98
|
-
vars.add(match[1]);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
return Array.from(vars);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Categorize a variable based on its name
|
|
106
|
-
*/
|
|
107
|
-
export function categorizeVariable(varName: string): string {
|
|
108
|
-
for (const [category, patterns] of Object.entries(CATEGORY_PATTERNS)) {
|
|
109
|
-
if (patterns.some(pattern => pattern.test(varName))) {
|
|
110
|
-
return category;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
return 'misc';
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Check if variable is sensitive
|
|
118
|
-
*/
|
|
119
|
-
export function isSensitive(varName: string): boolean {
|
|
120
|
-
return SENSITIVE_PATTERNS.some(pattern => pattern.test(varName));
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* Generate description for variable
|
|
125
|
-
*/
|
|
126
|
-
export function generateDescription(varName: string): string {
|
|
127
|
-
// Convert SCREAMING_SNAKE_CASE to readable text
|
|
128
|
-
const words = varName.toLowerCase().split('_');
|
|
129
|
-
const readable = words
|
|
130
|
-
.map(w => w.charAt(0).toUpperCase() + w.slice(1))
|
|
131
|
-
.join(' ');
|
|
132
|
-
|
|
133
|
-
// Add context based on patterns
|
|
134
|
-
if (/url$/i.test(varName)) return `${readable} connection URL`;
|
|
135
|
-
if (/key$/i.test(varName)) return `${readable} for authentication`;
|
|
136
|
-
if (/secret/i.test(varName)) return `${readable} for encryption`;
|
|
137
|
-
if (/token/i.test(varName)) return `${readable} for authorization`;
|
|
138
|
-
if (/host/i.test(varName)) return `${readable} hostname`;
|
|
139
|
-
if (/port/i.test(varName)) return `${readable} port number`;
|
|
140
|
-
|
|
141
|
-
return readable;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
* Generate example value for variable
|
|
146
|
-
*/
|
|
147
|
-
export function generateExample(varName: string): string {
|
|
148
|
-
if (/database.*url/i.test(varName)) return 'postgresql://user:password@localhost:5432/dbname';
|
|
149
|
-
if (/mongodb/i.test(varName)) return 'mongodb://localhost:27017/dbname';
|
|
150
|
-
if (/redis/i.test(varName)) return 'redis://localhost:6379';
|
|
151
|
-
if (/^port$/i.test(varName)) return '3000';
|
|
152
|
-
if (/^host$/i.test(varName)) return 'localhost';
|
|
153
|
-
if (/url$/i.test(varName)) return 'https://example.com';
|
|
154
|
-
if (/email/i.test(varName)) return 'admin@example.com';
|
|
155
|
-
if (/openai.*key/i.test(varName)) return 'sk-...';
|
|
156
|
-
if (/stripe.*publishable/i.test(varName)) return 'pk_test_...';
|
|
157
|
-
if (/stripe.*secret/i.test(varName)) return 'sk_test_...';
|
|
158
|
-
if (/next_public/i.test(varName)) return 'public-value';
|
|
159
|
-
|
|
160
|
-
return 'your-value-here';
|
|
161
|
-
}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import type { EnvVariable } from "./types";
|
|
2
|
-
|
|
3
|
-
export const DEFAULT_CATEGORIES = [
|
|
4
|
-
"database",
|
|
5
|
-
"auth",
|
|
6
|
-
"api",
|
|
7
|
-
"services",
|
|
8
|
-
"email",
|
|
9
|
-
"storage",
|
|
10
|
-
"monitoring",
|
|
11
|
-
"security",
|
|
12
|
-
"misc",
|
|
13
|
-
];
|
|
14
|
-
|
|
15
|
-
export const SENSITIVE_PATTERNS = [
|
|
16
|
-
/secret/i,
|
|
17
|
-
/password/i,
|
|
18
|
-
/private.*key/i,
|
|
19
|
-
/api.*key/i,
|
|
20
|
-
/token/i,
|
|
21
|
-
/credential/i,
|
|
22
|
-
/auth/i,
|
|
23
|
-
];
|
|
24
|
-
|
|
25
|
-
export const CATEGORY_PATTERNS: Record<string, RegExp[]> = {
|
|
26
|
-
database: [/database/i, /_db_/i, /postgres/i, /mongodb/i, /mysql/i, /redis/i, /_url$/i],
|
|
27
|
-
auth: [/auth/i, /jwt/i, /session/i, /token/i, /oauth/i, /saml/i],
|
|
28
|
-
api: [/api.*key/i, /^api_/i, /_api$/i],
|
|
29
|
-
services: [/stripe/i, /sendgrid/i, /twilio/i, /aws/i, /openai/i, /anthropic/i],
|
|
30
|
-
email: [/mail/i, /smtp/i, /sendgrid/i, /resend/i, /postmark/i],
|
|
31
|
-
storage: [/bucket/i, /storage/i, /s3/i, /cdn/i, /cloudinary/i],
|
|
32
|
-
monitoring: [/sentry/i, /analytics/i, /log/i, /datadog/i, /newrelic/i],
|
|
33
|
-
security: [/cors/i, /csp/i, /encryption/i, /cipher/i],
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
export const COMMON_VARIABLES: EnvVariable[] = [
|
|
37
|
-
{
|
|
38
|
-
name: "NODE_ENV",
|
|
39
|
-
category: "general",
|
|
40
|
-
description: "Node.js environment mode",
|
|
41
|
-
example: "development",
|
|
42
|
-
defaultValue: "development",
|
|
43
|
-
required: true,
|
|
44
|
-
sensitive: false,
|
|
45
|
-
validation: "z.enum(['development', 'production', 'test'])",
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
name: "PORT",
|
|
49
|
-
category: "general",
|
|
50
|
-
description: "Server port number",
|
|
51
|
-
example: "3000",
|
|
52
|
-
defaultValue: "3000",
|
|
53
|
-
required: false,
|
|
54
|
-
sensitive: false,
|
|
55
|
-
validation: "z.string().regex(/^\\d+$/).transform(Number)",
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
name: "HOST",
|
|
59
|
-
category: "general",
|
|
60
|
-
description: "Server host address",
|
|
61
|
-
example: "localhost",
|
|
62
|
-
defaultValue: "localhost",
|
|
63
|
-
required: false,
|
|
64
|
-
sensitive: false,
|
|
65
|
-
},
|
|
66
|
-
];
|