blockmine 1.24.0 → 1.25.0
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/CHANGELOG.md +32 -0
- package/README.en.md +427 -0
- package/README.md +40 -0
- package/backend/cli.js +1 -1
- package/backend/src/ai/plugin-assistant-system-prompt.md +664 -5
- package/backend/src/api/routes/bots.js +13 -0
- package/backend/src/api/routes/servers.js +14 -2
- package/backend/src/core/BotProcess.js +98 -2
- package/backend/src/core/PluginLoader.js +83 -3
- package/backend/src/core/PluginManager.js +75 -5
- package/backend/src/core/services/BotLifecycleService.js +186 -2
- package/backend/src/server.js +11 -1
- package/frontend/dist/assets/browser-ponyfill-DN7pwmHT.js +2 -0
- package/frontend/dist/assets/index-LSy71uwm.js +11261 -0
- package/frontend/dist/assets/index-SfhKxI4-.css +32 -0
- package/frontend/dist/flags/en.svg +32 -0
- package/frontend/dist/flags/ru.svg +5 -0
- package/frontend/dist/index.html +2 -2
- package/frontend/dist/locales/en/admin.json +100 -0
- package/frontend/dist/locales/en/api-keys.json +58 -0
- package/frontend/dist/locales/en/bots.json +110 -0
- package/frontend/dist/locales/en/common.json +47 -0
- package/frontend/dist/locales/en/configuration.json +22 -0
- package/frontend/dist/locales/en/console.json +10 -0
- package/frontend/dist/locales/en/dashboard.json +85 -0
- package/frontend/dist/locales/en/dialogs.json +70 -0
- package/frontend/dist/locales/en/event-graphs.json +50 -0
- package/frontend/dist/locales/en/graph-store.json +70 -0
- package/frontend/dist/locales/en/login.json +34 -0
- package/frontend/dist/locales/en/management.json +114 -0
- package/frontend/dist/locales/en/minecraft-viewer.json +27 -0
- package/frontend/dist/locales/en/nodes.json +1077 -0
- package/frontend/dist/locales/en/permissions.json +50 -0
- package/frontend/dist/locales/en/plugin-detail.json +49 -0
- package/frontend/dist/locales/en/plugins.json +110 -0
- package/frontend/dist/locales/en/proxies.json +81 -0
- package/frontend/dist/locales/en/servers.json +39 -0
- package/frontend/dist/locales/en/setup.json +17 -0
- package/frontend/dist/locales/en/sidebar.json +27 -0
- package/frontend/dist/locales/en/tasks.json +62 -0
- package/frontend/dist/locales/en/visual-editor.json +219 -0
- package/frontend/dist/locales/en/websocket.json +86 -0
- package/frontend/dist/locales/ru/admin.json +100 -0
- package/frontend/dist/locales/ru/api-keys.json +58 -0
- package/frontend/dist/locales/ru/bots.json +110 -0
- package/frontend/dist/locales/ru/common.json +49 -0
- package/frontend/dist/locales/ru/configuration.json +22 -0
- package/frontend/dist/locales/ru/console.json +10 -0
- package/frontend/dist/locales/ru/dashboard.json +85 -0
- package/frontend/dist/locales/ru/dialogs.json +70 -0
- package/frontend/dist/locales/ru/event-graphs.json +50 -0
- package/frontend/dist/locales/ru/graph-store.json +70 -0
- package/frontend/dist/locales/ru/login.json +34 -0
- package/frontend/dist/locales/ru/management.json +114 -0
- package/frontend/dist/locales/ru/minecraft-viewer.json +27 -0
- package/frontend/dist/locales/ru/nodes.json +1077 -0
- package/frontend/dist/locales/ru/permissions.json +50 -0
- package/frontend/dist/locales/ru/plugin-detail.json +49 -0
- package/frontend/dist/locales/ru/plugins.json +110 -0
- package/frontend/dist/locales/ru/proxies.json +81 -0
- package/frontend/dist/locales/ru/servers.json +39 -0
- package/frontend/dist/locales/ru/setup.json +17 -0
- package/frontend/dist/locales/ru/sidebar.json +27 -0
- package/frontend/dist/locales/ru/tasks.json +62 -0
- package/frontend/dist/locales/ru/visual-editor.json +221 -0
- package/frontend/dist/locales/ru/websocket.json +86 -0
- package/frontend/dist/monacoeditorwork/css.worker.bundle.js +7 -7
- package/frontend/dist/monacoeditorwork/html.worker.bundle.js +7 -7
- package/frontend/dist/monacoeditorwork/json.worker.bundle.js +7 -7
- package/frontend/dist/monacoeditorwork/ts.worker.bundle.js +3 -3
- package/frontend/package.json +4 -0
- package/package.json +1 -1
- package/screen/3dviewer.png +0 -0
- package/screen/console.png +0 -0
- package/screen/dashboard.png +0 -0
- package/screen/graph_collabe.png +0 -0
- package/screen/graph_live_debug.png +0 -0
- package/screen/language_selector.png +0 -0
- package/screen/management_command.png +0 -0
- package/screen/node_debug_trace.png +0 -0
- package/screen/plugin_/320/276/320/261/320/267/320/276/321/200.png +0 -0
- package/screen/websocket.png +0 -0
- package/screen//320/275/320/260/321/201/321/202/321/200/320/276/320/271/320/272/320/270_/320/276/321/202/320/264/320/265/320/273/321/214/320/275/321/213/321/205_/320/272/320/276/320/274/320/260/320/275/320/264_/320/272/320/260/320/266/320/264/321/203_/320/272/320/276/320/274/320/260/320/275/320/273/320/264/321/203_/320/274/320/276/320/266/320/275/320/276_/320/275/320/260/321/201/321/202/321/200/320/260/320/270/320/262/320/260/321/202/321/214.png +0 -0
- package/screen//320/277/320/273/320/260/320/275/320/270/321/200/320/276/320/262/321/211/320/270/320/272_/320/274/320/276/320/266/320/275/320/276_/320/267/320/260/320/264/320/260/320/262/320/260/321/202/321/214_/320/264/320/265/320/271/321/201/321/202/320/262/320/270/321/217_/320/277/320/276_/320/262/321/200/320/265/320/274/320/265/320/275/320/270.png +0 -0
- package/.claude/agents/README.md +0 -469
- package/.claude/agents/auth-route-debugger.md +0 -118
- package/.claude/agents/auth-route-tester.md +0 -93
- package/.claude/agents/auto-error-resolver.md +0 -97
- package/.claude/agents/build-optimizer.md +0 -236
- package/.claude/agents/code-architect.md +0 -34
- package/.claude/agents/code-architecture-reviewer.md +0 -83
- package/.claude/agents/code-explorer.md +0 -51
- package/.claude/agents/code-refactor-master.md +0 -94
- package/.claude/agents/code-reviewer.md +0 -46
- package/.claude/agents/cost-optimizer.md +0 -134
- package/.claude/agents/deployment-orchestrator.md +0 -113
- package/.claude/agents/documentation-architect.md +0 -82
- package/.claude/agents/frontend-error-fixer.md +0 -77
- package/.claude/agents/iac-code-generator.md +0 -71
- package/.claude/agents/incident-responder.md +0 -346
- package/.claude/agents/infrastructure-architect.md +0 -31
- package/.claude/agents/kubernetes-specialist.md +0 -56
- package/.claude/agents/migration-planner.md +0 -181
- package/.claude/agents/network-architect.md +0 -196
- package/.claude/agents/plan-reviewer.md +0 -52
- package/.claude/agents/refactor-planner.md +0 -63
- package/.claude/agents/security-scanner.md +0 -102
- package/.claude/agents/web-research-specialist.md +0 -78
- package/.claude/commands/cost-analysis.md +0 -315
- package/.claude/commands/dev-docs-update.md +0 -55
- package/.claude/commands/dev-docs.md +0 -51
- package/.claude/commands/feature-dev.md +0 -125
- package/.claude/commands/incident-debug.md +0 -247
- package/.claude/commands/infra-plan.md +0 -81
- package/.claude/commands/migration-plan.md +0 -478
- package/.claude/commands/route-research-for-testing.md +0 -37
- package/.claude/commands/security-review.md +0 -66
- package/.claude/hooks/CONFIG.md +0 -448
- package/.claude/hooks/README.md +0 -163
- package/.claude/hooks/SKILL_ACTIVATION_COMPLETE.md +0 -226
- package/.claude/hooks/WINDOWS_HOOKS_README.md +0 -151
- package/.claude/hooks/add-skill-activation-banners.ts +0 -132
- package/.claude/hooks/comprehensive-skill-test.ts +0 -1315
- package/.claude/hooks/error-handling-reminder.sh +0 -12
- package/.claude/hooks/error-handling-reminder.ts +0 -222
- package/.claude/hooks/k8s-manifest-validator.sh +0 -56
- package/.claude/hooks/package-lock.json +0 -556
- package/.claude/hooks/package.json +0 -16
- package/.claude/hooks/post-tool-use-tracker.ps1 +0 -174
- package/.claude/hooks/post-tool-use-tracker.sh +0 -183
- package/.claude/hooks/security-policy-check.sh +0 -247
- package/.claude/hooks/skill-activation-prompt.ps1 +0 -10
- package/.claude/hooks/skill-activation-prompt.sh +0 -10
- package/.claude/hooks/skill-activation-prompt.ts +0 -141
- package/.claude/hooks/stop-build-check-enhanced.sh +0 -130
- package/.claude/hooks/terraform-validator.sh +0 -53
- package/.claude/hooks/test-input.json +0 -7
- package/.claude/hooks/test-skill-activation.ts +0 -427
- package/.claude/hooks/trigger-build-resolver.sh +0 -79
- package/.claude/hooks/tsc-check.sh +0 -173
- package/.claude/hooks/tsconfig.json +0 -19
- package/.claude/settings.json +0 -59
- package/.claude/settings.local.json +0 -67
- package/.claude/skills/README.md +0 -507
- package/.claude/skills/api-engineering/SKILL.md +0 -63
- package/.claude/skills/api-engineering/resources/api-versioning.md +0 -88
- package/.claude/skills/api-engineering/resources/graphql-patterns.md +0 -106
- package/.claude/skills/api-engineering/resources/rate-limiting.md +0 -118
- package/.claude/skills/api-engineering/resources/rest-api-design.md +0 -105
- package/.claude/skills/backend-dev-guidelines/SKILL.md +0 -306
- package/.claude/skills/backend-dev-guidelines/resources/architecture-overview.md +0 -451
- package/.claude/skills/backend-dev-guidelines/resources/async-and-errors.md +0 -307
- package/.claude/skills/backend-dev-guidelines/resources/complete-examples.md +0 -638
- package/.claude/skills/backend-dev-guidelines/resources/configuration.md +0 -275
- package/.claude/skills/backend-dev-guidelines/resources/database-patterns.md +0 -224
- package/.claude/skills/backend-dev-guidelines/resources/middleware-guide.md +0 -213
- package/.claude/skills/backend-dev-guidelines/resources/routing-and-controllers.md +0 -756
- package/.claude/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +0 -336
- package/.claude/skills/backend-dev-guidelines/resources/services-and-repositories.md +0 -789
- package/.claude/skills/backend-dev-guidelines/resources/testing-guide.md +0 -235
- package/.claude/skills/backend-dev-guidelines/resources/validation-patterns.md +0 -754
- package/.claude/skills/budget-and-cost-management/SKILL.md +0 -850
- package/.claude/skills/build-engineering/SKILL.md +0 -431
- package/.claude/skills/build-engineering/resources/artifact-repositories.md +0 -72
- package/.claude/skills/build-engineering/resources/build-caching.md +0 -96
- package/.claude/skills/build-engineering/resources/build-pipelines.md +0 -105
- package/.claude/skills/build-engineering/resources/build-security.md +0 -95
- package/.claude/skills/build-engineering/resources/build-systems.md +0 -389
- package/.claude/skills/build-engineering/resources/compilation-optimization.md +0 -201
- package/.claude/skills/build-engineering/resources/dependency-management.md +0 -73
- package/.claude/skills/build-engineering/resources/monorepo-builds.md +0 -110
- package/.claude/skills/build-engineering/resources/performance-optimization.md +0 -113
- package/.claude/skills/build-engineering/resources/reproducible-builds.md +0 -82
- package/.claude/skills/cloud-engineering/SKILL.md +0 -675
- package/.claude/skills/cloud-engineering/resources/aws-patterns.md +0 -742
- package/.claude/skills/cloud-engineering/resources/azure-patterns.md +0 -714
- package/.claude/skills/cloud-engineering/resources/cleared-cloud-environments.md +0 -987
- package/.claude/skills/cloud-engineering/resources/cloud-cost-optimization.md +0 -757
- package/.claude/skills/cloud-engineering/resources/cloud-networking.md +0 -1058
- package/.claude/skills/cloud-engineering/resources/cloud-security-tools.md +0 -1530
- package/.claude/skills/cloud-engineering/resources/cloud-security.md +0 -990
- package/.claude/skills/cloud-engineering/resources/gcp-patterns.md +0 -758
- package/.claude/skills/cloud-engineering/resources/migration-strategies.md +0 -820
- package/.claude/skills/cloud-engineering/resources/multi-cloud-strategies.md +0 -670
- package/.claude/skills/cloud-engineering/resources/oci-patterns.md +0 -1198
- package/.claude/skills/cloud-engineering/resources/serverless-patterns.md +0 -795
- package/.claude/skills/cloud-engineering/resources/well-architected-frameworks.md +0 -966
- package/.claude/skills/cybersecurity/SKILL.md +0 -409
- package/.claude/skills/cybersecurity/resources/security-architecture.md +0 -266
- package/.claude/skills/database-engineering/SKILL.md +0 -61
- package/.claude/skills/database-engineering/resources/backup-and-recovery.md +0 -72
- package/.claude/skills/database-engineering/resources/database-replication.md +0 -63
- package/.claude/skills/database-engineering/resources/postgresql-fundamentals.md +0 -70
- package/.claude/skills/database-engineering/resources/query-optimization.md +0 -68
- package/.claude/skills/devsecops/SKILL.md +0 -374
- package/.claude/skills/devsecops/resources/ci-cd-security.md +0 -204
- package/.claude/skills/devsecops/resources/compliance-automation.md +0 -530
- package/.claude/skills/devsecops/resources/compliance-frameworks.md +0 -2322
- package/.claude/skills/devsecops/resources/container-security.md +0 -915
- package/.claude/skills/devsecops/resources/cspm-integration.md +0 -1440
- package/.claude/skills/devsecops/resources/policy-enforcement.md +0 -619
- package/.claude/skills/devsecops/resources/secrets-management.md +0 -755
- package/.claude/skills/devsecops/resources/security-monitoring.md +0 -146
- package/.claude/skills/devsecops/resources/security-scanning.md +0 -887
- package/.claude/skills/devsecops/resources/security-testing.md +0 -203
- package/.claude/skills/devsecops/resources/supply-chain-security.md +0 -518
- package/.claude/skills/devsecops/resources/vulnerability-management.md +0 -481
- package/.claude/skills/devsecops/resources/zero-trust-architecture.md +0 -177
- package/.claude/skills/documentation-as-code/SKILL.md +0 -323
- package/.claude/skills/documentation-as-code/resources/api-documentation.md +0 -90
- package/.claude/skills/documentation-as-code/resources/changelog-management.md +0 -79
- package/.claude/skills/documentation-as-code/resources/diagram-generation.md +0 -44
- package/.claude/skills/documentation-as-code/resources/docs-as-code-workflow.md +0 -99
- package/.claude/skills/documentation-as-code/resources/documentation-automation.md +0 -68
- package/.claude/skills/documentation-as-code/resources/documentation-sites.md +0 -79
- package/.claude/skills/documentation-as-code/resources/markdown-best-practices.md +0 -162
- package/.claude/skills/documentation-as-code/resources/openapi-specification.md +0 -77
- package/.claude/skills/documentation-as-code/resources/readme-engineering.md +0 -60
- package/.claude/skills/documentation-as-code/resources/technical-writing-guide.md +0 -202
- package/.claude/skills/engineering-management/SKILL.md +0 -356
- package/.claude/skills/engineering-management/resources/career-ladders.md +0 -609
- package/.claude/skills/engineering-management/resources/hiring-and-assessment.md +0 -555
- package/.claude/skills/engineering-management/resources/one-on-one-guides.md +0 -609
- package/.claude/skills/engineering-management/resources/resource-planning.md +0 -557
- package/.claude/skills/engineering-management/resources/team-organization-patterns.md +0 -491
- package/.claude/skills/engineering-management/resources/technical-interviews.md +0 -474
- package/.claude/skills/engineering-operations-management/SKILL.md +0 -817
- package/.claude/skills/error-tracking/SKILL.md +0 -379
- package/.claude/skills/frontend-design/SKILL.md +0 -42
- package/.claude/skills/frontend-dev-guidelines/SKILL.md +0 -403
- package/.claude/skills/frontend-dev-guidelines/resources/common-patterns.md +0 -331
- package/.claude/skills/frontend-dev-guidelines/resources/complete-examples.md +0 -872
- package/.claude/skills/frontend-dev-guidelines/resources/component-patterns.md +0 -502
- package/.claude/skills/frontend-dev-guidelines/resources/data-fetching.md +0 -767
- package/.claude/skills/frontend-dev-guidelines/resources/file-organization.md +0 -502
- package/.claude/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +0 -501
- package/.claude/skills/frontend-dev-guidelines/resources/performance.md +0 -406
- package/.claude/skills/frontend-dev-guidelines/resources/routing-guide.md +0 -364
- package/.claude/skills/frontend-dev-guidelines/resources/styling-guide.md +0 -428
- package/.claude/skills/frontend-dev-guidelines/resources/typescript-standards.md +0 -418
- package/.claude/skills/general-it-engineering/SKILL.md +0 -393
- package/.claude/skills/general-it-engineering/resources/asset-management.md +0 -712
- package/.claude/skills/general-it-engineering/resources/automation-orchestration.md +0 -817
- package/.claude/skills/general-it-engineering/resources/business-continuity.md +0 -786
- package/.claude/skills/general-it-engineering/resources/change-management.md +0 -715
- package/.claude/skills/general-it-engineering/resources/enterprise-monitoring.md +0 -729
- package/.claude/skills/general-it-engineering/resources/help-desk-operations.md +0 -738
- package/.claude/skills/general-it-engineering/resources/incident-service-management.md +0 -834
- package/.claude/skills/general-it-engineering/resources/it-governance.md +0 -753
- package/.claude/skills/general-it-engineering/resources/itil-framework.md +0 -503
- package/.claude/skills/general-it-engineering/resources/service-management.md +0 -669
- package/.claude/skills/infrastructure-architecture/SKILL.md +0 -328
- package/.claude/skills/infrastructure-architecture/resources/architecture-decision-records.md +0 -505
- package/.claude/skills/infrastructure-architecture/resources/architecture-patterns.md +0 -528
- package/.claude/skills/infrastructure-architecture/resources/capacity-planning.md +0 -453
- package/.claude/skills/infrastructure-architecture/resources/cleared-environment-architecture.md +0 -773
- package/.claude/skills/infrastructure-architecture/resources/cost-architecture.md +0 -499
- package/.claude/skills/infrastructure-architecture/resources/data-architecture.md +0 -501
- package/.claude/skills/infrastructure-architecture/resources/disaster-recovery.md +0 -535
- package/.claude/skills/infrastructure-architecture/resources/migration-architecture.md +0 -512
- package/.claude/skills/infrastructure-architecture/resources/multi-region-design.md +0 -608
- package/.claude/skills/infrastructure-architecture/resources/reference-architectures.md +0 -562
- package/.claude/skills/infrastructure-architecture/resources/security-architecture.md +0 -538
- package/.claude/skills/infrastructure-architecture/resources/system-design-principles.md +0 -489
- package/.claude/skills/infrastructure-architecture/resources/workload-classification.md +0 -1000
- package/.claude/skills/infrastructure-strategy/SKILL.md +0 -924
- package/.claude/skills/network-engineering/SKILL.md +0 -385
- package/.claude/skills/network-engineering/resources/dns-management.md +0 -738
- package/.claude/skills/network-engineering/resources/load-balancing.md +0 -820
- package/.claude/skills/network-engineering/resources/network-architecture.md +0 -546
- package/.claude/skills/network-engineering/resources/network-security.md +0 -921
- package/.claude/skills/network-engineering/resources/network-troubleshooting.md +0 -749
- package/.claude/skills/network-engineering/resources/routing-switching.md +0 -373
- package/.claude/skills/network-engineering/resources/sdn-networking.md +0 -695
- package/.claude/skills/network-engineering/resources/service-mesh-networking.md +0 -777
- package/.claude/skills/network-engineering/resources/tcp-ip-protocols.md +0 -444
- package/.claude/skills/network-engineering/resources/vpn-connectivity.md +0 -672
- package/.claude/skills/node-development/SKILL.md +0 -317
- package/.claude/skills/observability-engineering/SKILL.md +0 -101
- package/.claude/skills/observability-engineering/resources/apm-tools.md +0 -97
- package/.claude/skills/observability-engineering/resources/correlation-strategies.md +0 -87
- package/.claude/skills/observability-engineering/resources/distributed-tracing.md +0 -98
- package/.claude/skills/observability-engineering/resources/logs-aggregation.md +0 -118
- package/.claude/skills/observability-engineering/resources/observability-cost-optimization.md +0 -141
- package/.claude/skills/observability-engineering/resources/opentelemetry.md +0 -110
- package/.claude/skills/platform-engineering/SKILL.md +0 -555
- package/.claude/skills/platform-engineering/resources/architecture-overview.md +0 -600
- package/.claude/skills/platform-engineering/resources/container-orchestration.md +0 -916
- package/.claude/skills/platform-engineering/resources/cost-optimization.md +0 -634
- package/.claude/skills/platform-engineering/resources/developer-platforms.md +0 -670
- package/.claude/skills/platform-engineering/resources/gitops-automation.md +0 -650
- package/.claude/skills/platform-engineering/resources/infrastructure-as-code.md +0 -778
- package/.claude/skills/platform-engineering/resources/infrastructure-standards.md +0 -708
- package/.claude/skills/platform-engineering/resources/multi-tenancy.md +0 -602
- package/.claude/skills/platform-engineering/resources/platform-security.md +0 -711
- package/.claude/skills/platform-engineering/resources/resource-management.md +0 -592
- package/.claude/skills/platform-engineering/resources/service-mesh.md +0 -628
- package/.claude/skills/release-engineering/SKILL.md +0 -393
- package/.claude/skills/release-engineering/resources/artifact-management.md +0 -108
- package/.claude/skills/release-engineering/resources/build-optimization.md +0 -84
- package/.claude/skills/release-engineering/resources/ci-cd-pipelines.md +0 -411
- package/.claude/skills/release-engineering/resources/deployment-strategies.md +0 -197
- package/.claude/skills/release-engineering/resources/pipeline-security.md +0 -62
- package/.claude/skills/release-engineering/resources/progressive-delivery.md +0 -83
- package/.claude/skills/release-engineering/resources/release-automation.md +0 -68
- package/.claude/skills/release-engineering/resources/release-orchestration.md +0 -77
- package/.claude/skills/release-engineering/resources/rollback-strategies.md +0 -66
- package/.claude/skills/release-engineering/resources/versioning-strategies.md +0 -59
- package/.claude/skills/route-tester/SKILL.md +0 -392
- package/.claude/skills/skill-developer/ADVANCED.md +0 -197
- package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +0 -306
- package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +0 -152
- package/.claude/skills/skill-developer/SKILL.md +0 -430
- package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +0 -315
- package/.claude/skills/skill-developer/TRIGGER_TYPES.md +0 -305
- package/.claude/skills/skill-developer/TROUBLESHOOTING.md +0 -514
- package/.claude/skills/skill-rules.json +0 -2989
- package/.claude/skills/sre/SKILL.md +0 -464
- package/.claude/skills/sre/resources/alerting-best-practices.md +0 -282
- package/.claude/skills/sre/resources/capacity-planning.md +0 -226
- package/.claude/skills/sre/resources/chaos-engineering.md +0 -193
- package/.claude/skills/sre/resources/disaster-recovery.md +0 -232
- package/.claude/skills/sre/resources/incident-management.md +0 -436
- package/.claude/skills/sre/resources/observability-stack.md +0 -240
- package/.claude/skills/sre/resources/on-call-runbooks.md +0 -167
- package/.claude/skills/sre/resources/performance-optimization.md +0 -108
- package/.claude/skills/sre/resources/reliability-patterns.md +0 -183
- package/.claude/skills/sre/resources/slo-sli-sla.md +0 -464
- package/.claude/skills/sre/resources/toil-reduction.md +0 -145
- package/.claude/skills/systems-engineering/SKILL.md +0 -648
- package/.claude/skills/systems-engineering/resources/automation-patterns.md +0 -771
- package/.claude/skills/systems-engineering/resources/configuration-management.md +0 -998
- package/.claude/skills/systems-engineering/resources/linux-administration.md +0 -672
- package/.claude/skills/systems-engineering/resources/networking-fundamentals.md +0 -982
- package/.claude/skills/systems-engineering/resources/performance-tuning.md +0 -871
- package/.claude/skills/systems-engineering/resources/powershell-scripting.md +0 -482
- package/.claude/skills/systems-engineering/resources/security-hardening.md +0 -739
- package/.claude/skills/systems-engineering/resources/shell-scripting.md +0 -915
- package/.claude/skills/systems-engineering/resources/storage-management.md +0 -628
- package/.claude/skills/systems-engineering/resources/system-monitoring.md +0 -787
- package/.claude/skills/systems-engineering/resources/troubleshooting-guide.md +0 -753
- package/.claude/skills/systems-engineering/resources/windows-administration.md +0 -738
- package/.claude/skills/technical-leadership/SKILL.md +0 -728
- package/backend/docs/SECRETS_DOCUMENTATION.md +0 -327
- package/frontend/dist/assets/index-BC-NbKXi.css +0 -32
- package/frontend/dist/assets/index-DqJXZMHY.js +0 -11266
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
# API Engineering
|
|
2
|
-
|
|
3
|
-
Guide to API design patterns, GraphQL, gRPC, API gateways, rate limiting, and versioning strategies.
|
|
4
|
-
|
|
5
|
-
**Note:** This is a foundational version. Community contributions welcome to expand coverage!
|
|
6
|
-
|
|
7
|
-
## Purpose
|
|
8
|
-
|
|
9
|
-
Enable teams to design, build, and maintain robust, scalable APIs.
|
|
10
|
-
|
|
11
|
-
## When to Use This Skill
|
|
12
|
-
|
|
13
|
-
Automatically activates when working on:
|
|
14
|
-
- REST API design and best practices
|
|
15
|
-
- GraphQL schema design
|
|
16
|
-
- gRPC service definition
|
|
17
|
-
- API gateway configuration (Kong, Ambassador)
|
|
18
|
-
- API versioning strategies
|
|
19
|
-
- Rate limiting and throttling
|
|
20
|
-
- API security (OAuth2, JWT)
|
|
21
|
-
|
|
22
|
-
## Quick Start Checklist
|
|
23
|
-
|
|
24
|
-
- [ ] Define clear API contract (OpenAPI/GraphQL schema)
|
|
25
|
-
- [ ] Implement authentication/authorization
|
|
26
|
-
- [ ] Add rate limiting
|
|
27
|
-
- [ ] Version your API
|
|
28
|
-
- [ ] Document endpoints
|
|
29
|
-
- [ ] Implement error handling
|
|
30
|
-
- [ ] Add request validation
|
|
31
|
-
|
|
32
|
-
## Resource Files
|
|
33
|
-
|
|
34
|
-
- **[rest-api-design.md](resources/rest-api-design.md)** - RESTful principles, resource modeling, HTTP methods
|
|
35
|
-
- **[graphql-patterns.md](resources/graphql-patterns.md)** - Schema design, resolvers, N+1 problem, DataLoader
|
|
36
|
-
- **[api-versioning.md](resources/api-versioning.md)** - URI versioning, header versioning, strategies
|
|
37
|
-
- **[rate-limiting.md](resources/rate-limiting.md)** - Token bucket, sliding window, distributed rate limiting
|
|
38
|
-
|
|
39
|
-
## Best Practices
|
|
40
|
-
|
|
41
|
-
✅ Follow RESTful principles
|
|
42
|
-
✅ Use proper HTTP status codes
|
|
43
|
-
✅ Version your API from day one
|
|
44
|
-
✅ Implement rate limiting
|
|
45
|
-
✅ Validate input thoroughly
|
|
46
|
-
✅ Document with OpenAPI/GraphQL introspection
|
|
47
|
-
✅ Use API gateways for centralized concerns
|
|
48
|
-
|
|
49
|
-
## Integration Points
|
|
50
|
-
|
|
51
|
-
- **backend-dev-guidelines**: API implementation
|
|
52
|
-
- **documentation-as-code**: API documentation
|
|
53
|
-
- **devsecops**: API security
|
|
54
|
-
- **cloud-engineering**: API Gateway services
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
58
|
-
🎯 SKILL ACTIVATED: api-engineering
|
|
59
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
**Total Resources:** 4 foundational guides (community can expand!)
|
|
63
|
-
**Status:** Basic coverage - contributions welcome
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
# API Versioning
|
|
2
|
-
|
|
3
|
-
Guide to API versioning strategies and best practices.
|
|
4
|
-
|
|
5
|
-
## Versioning Strategies
|
|
6
|
-
|
|
7
|
-
### URI Versioning
|
|
8
|
-
```
|
|
9
|
-
GET /v1/users/123
|
|
10
|
-
GET /v2/users/123
|
|
11
|
-
|
|
12
|
-
Pros: Simple, clear
|
|
13
|
-
Cons: Pollutes URI space
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
### Header Versioning
|
|
17
|
-
```
|
|
18
|
-
GET /users/123
|
|
19
|
-
Accept: application/vnd.myapi.v1+json
|
|
20
|
-
|
|
21
|
-
Pros: Clean URIs
|
|
22
|
-
Cons: Less visible, harder to test
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
### Query Parameter
|
|
26
|
-
```
|
|
27
|
-
GET /users/123?version=1
|
|
28
|
-
GET /users/123?version=2
|
|
29
|
-
|
|
30
|
-
Pros: Simple
|
|
31
|
-
Cons: Easy to forget, not RESTful
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Semantic Versioning
|
|
35
|
-
|
|
36
|
-
```
|
|
37
|
-
MAJOR.MINOR.PATCH
|
|
38
|
-
|
|
39
|
-
v1.0.0 → v1.1.0: New feature (backward-compatible)
|
|
40
|
-
v1.1.0 → v2.0.0: Breaking change
|
|
41
|
-
v2.0.0 → v2.0.1: Bug fix
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## Breaking vs Non-Breaking Changes
|
|
45
|
-
|
|
46
|
-
```
|
|
47
|
-
Breaking Changes (require new version):
|
|
48
|
-
- Removing endpoint
|
|
49
|
-
- Removing field
|
|
50
|
-
- Changing field type
|
|
51
|
-
- Changing response structure
|
|
52
|
-
- Renaming field
|
|
53
|
-
|
|
54
|
-
Non-Breaking (can be same version):
|
|
55
|
-
- Adding new endpoint
|
|
56
|
-
- Adding new optional field
|
|
57
|
-
- Adding new query parameter
|
|
58
|
-
- Deprecating (but not removing) field
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
## Deprecation Strategy
|
|
62
|
-
|
|
63
|
-
```typescript
|
|
64
|
-
// Mark deprecated fields
|
|
65
|
-
type User {
|
|
66
|
-
id: ID!
|
|
67
|
-
fullName: String!
|
|
68
|
-
name: String! @deprecated(reason: "Use fullName instead")
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
// Add deprecation headers
|
|
72
|
-
res.setHeader('Deprecation', 'Sun, 01 Jan 2025 00:00:00 GMT');
|
|
73
|
-
res.setHeader('Link', '</v2/users>; rel="successor-version"');
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
## Best Practices
|
|
77
|
-
|
|
78
|
-
✅ Version from day one (v1)
|
|
79
|
-
✅ Support 2-3 versions simultaneously
|
|
80
|
-
✅ Give 6-12 months deprecation notice
|
|
81
|
-
✅ Document breaking changes clearly
|
|
82
|
-
✅ Use semantic versioning
|
|
83
|
-
✅ Provide migration guides
|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
|
-
**Related Resources:**
|
|
88
|
-
- rest-api-design.md - API design principles
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
# GraphQL Patterns
|
|
2
|
-
|
|
3
|
-
Guide to GraphQL schema design, resolvers, and common patterns.
|
|
4
|
-
|
|
5
|
-
## Schema Design
|
|
6
|
-
|
|
7
|
-
```graphql
|
|
8
|
-
type User {
|
|
9
|
-
id: ID!
|
|
10
|
-
email: String!
|
|
11
|
-
name: String!
|
|
12
|
-
posts: [Post!]!
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
type Post {
|
|
16
|
-
id: ID!
|
|
17
|
-
title: String!
|
|
18
|
-
content: String!
|
|
19
|
-
author: User!
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
type Query {
|
|
23
|
-
user(id: ID!): User
|
|
24
|
-
users(limit: Int, offset: Int): [User!]!
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
type Mutation {
|
|
28
|
-
createUser(email: String!, name: String!): User!
|
|
29
|
-
updateUser(id: ID!, name: String): User!
|
|
30
|
-
}
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Resolvers
|
|
34
|
-
|
|
35
|
-
```typescript
|
|
36
|
-
const resolvers = {
|
|
37
|
-
Query: {
|
|
38
|
-
user: async (parent, { id }, context) => {
|
|
39
|
-
return await context.prisma.user.findUnique({ where: { id } });
|
|
40
|
-
},
|
|
41
|
-
users: async (parent, { limit, offset }, context) => {
|
|
42
|
-
return await context.prisma.user.findMany({
|
|
43
|
-
take: limit,
|
|
44
|
-
skip: offset,
|
|
45
|
-
});
|
|
46
|
-
},
|
|
47
|
-
},
|
|
48
|
-
|
|
49
|
-
Mutation: {
|
|
50
|
-
createUser: async (parent, { email, name }, context) => {
|
|
51
|
-
return await context.prisma.user.create({
|
|
52
|
-
data: { email, name },
|
|
53
|
-
});
|
|
54
|
-
},
|
|
55
|
-
},
|
|
56
|
-
|
|
57
|
-
User: {
|
|
58
|
-
posts: async (parent, args, context) => {
|
|
59
|
-
return await context.prisma.post.findMany({
|
|
60
|
-
where: { authorId: parent.id },
|
|
61
|
-
});
|
|
62
|
-
},
|
|
63
|
-
},
|
|
64
|
-
};
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
## N+1 Problem & DataLoader
|
|
68
|
-
|
|
69
|
-
```typescript
|
|
70
|
-
// ❌ N+1 Problem
|
|
71
|
-
// Fetching 100 users causes 100 additional queries for posts
|
|
72
|
-
const users = await prisma.user.findMany(); // 1 query
|
|
73
|
-
for (const user of users) {
|
|
74
|
-
const posts = await prisma.post.findMany({ where: { authorId: user.id } }); // N queries
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
// ✅ Solution: DataLoader
|
|
78
|
-
import DataLoader from 'dataloader';
|
|
79
|
-
|
|
80
|
-
const postLoader = new DataLoader(async (userIds) => {
|
|
81
|
-
const posts = await prisma.post.findMany({
|
|
82
|
-
where: { authorId: { in: userIds } },
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
// Group posts by user ID
|
|
86
|
-
const postsByUser = {};
|
|
87
|
-
posts.forEach(post => {
|
|
88
|
-
if (!postsByUser[post.authorId]) postsByUser[post.authorId] = [];
|
|
89
|
-
postsByUser[post.authorId].push(post);
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
return userIds.map(id => postsByUser[id] || []);
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
// In resolver
|
|
96
|
-
User: {
|
|
97
|
-
posts: (parent, args, context) => {
|
|
98
|
-
return context.postLoader.load(parent.id); // Batched!
|
|
99
|
-
},
|
|
100
|
-
}
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
---
|
|
104
|
-
|
|
105
|
-
**Related Resources:**
|
|
106
|
-
- rest-api-design.md - REST comparison
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
# Rate Limiting
|
|
2
|
-
|
|
3
|
-
Guide to implementing rate limiting and throttling for APIs.
|
|
4
|
-
|
|
5
|
-
## Algorithms
|
|
6
|
-
|
|
7
|
-
### Token Bucket
|
|
8
|
-
```typescript
|
|
9
|
-
class TokenBucket {
|
|
10
|
-
constructor(
|
|
11
|
-
private capacity: number, // Max tokens
|
|
12
|
-
private refillRate: number // Tokens per second
|
|
13
|
-
) {}
|
|
14
|
-
|
|
15
|
-
async consume(tokens: number = 1): Promise<boolean> {
|
|
16
|
-
const key = `rate-limit:${userId}`;
|
|
17
|
-
const current = await redis.get(key) || this.capacity;
|
|
18
|
-
|
|
19
|
-
if (current >= tokens) {
|
|
20
|
-
await redis.decrby(key, tokens);
|
|
21
|
-
return true; // Allowed
|
|
22
|
-
}
|
|
23
|
-
return false; // Rate limited
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
// Usage: 100 requests per minute
|
|
28
|
-
const limiter = new TokenBucket(100, 100/60);
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
### Sliding Window
|
|
32
|
-
```typescript
|
|
33
|
-
async function checkRateLimit(userId: string, limit: number, windowMs: number) {
|
|
34
|
-
const key = `rate-limit:${userId}`;
|
|
35
|
-
const now = Date.now();
|
|
36
|
-
const windowStart = now - windowMs;
|
|
37
|
-
|
|
38
|
-
// Remove old entries
|
|
39
|
-
await redis.zremrangebyscore(key, 0, windowStart);
|
|
40
|
-
|
|
41
|
-
// Count requests in window
|
|
42
|
-
const count = await redis.zcard(key);
|
|
43
|
-
|
|
44
|
-
if (count < limit) {
|
|
45
|
-
await redis.zadd(key, now, `${now}-${Math.random()}`);
|
|
46
|
-
await redis.expire(key, Math.ceil(windowMs / 1000));
|
|
47
|
-
return true; // Allowed
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return false; // Rate limited
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// Usage: 1000 requests per hour
|
|
54
|
-
await checkRateLimit(userId, 1000, 3600000);
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## Express Middleware
|
|
58
|
-
|
|
59
|
-
```typescript
|
|
60
|
-
import rateLimit from 'express-rate-limit';
|
|
61
|
-
import RedisStore from 'rate-limit-redis';
|
|
62
|
-
import Redis from 'ioredis';
|
|
63
|
-
|
|
64
|
-
const redis = new Redis(process.env.REDIS_URL);
|
|
65
|
-
|
|
66
|
-
const limiter = rateLimit({
|
|
67
|
-
store: new RedisStore({ client: redis }),
|
|
68
|
-
windowMs: 15 * 60 * 1000, // 15 minutes
|
|
69
|
-
max: 100, // 100 requests per window
|
|
70
|
-
message: 'Too many requests, please try again later',
|
|
71
|
-
standardHeaders: true,
|
|
72
|
-
legacyHeaders: false,
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
app.use('/api/', limiter);
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
## Response Headers
|
|
79
|
-
|
|
80
|
-
```
|
|
81
|
-
X-RateLimit-Limit: 100
|
|
82
|
-
X-RateLimit-Remaining: 85
|
|
83
|
-
X-RateLimit-Reset: 1642348800
|
|
84
|
-
|
|
85
|
-
HTTP 429 Too Many Requests
|
|
86
|
-
Retry-After: 60
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
## Per-User vs Per-IP
|
|
90
|
-
|
|
91
|
-
```typescript
|
|
92
|
-
// Per-user (authenticated)
|
|
93
|
-
const userLimiter = rateLimit({
|
|
94
|
-
keyGenerator: (req) => req.user?.id || req.ip,
|
|
95
|
-
max: 1000, // Higher limit for authenticated users
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
// Per-IP (unauthenticated)
|
|
99
|
-
const ipLimiter = rateLimit({
|
|
100
|
-
keyGenerator: (req) => req.ip,
|
|
101
|
-
max: 100, // Lower limit for anonymous users
|
|
102
|
-
});
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
## Best Practices
|
|
106
|
-
|
|
107
|
-
✅ Use distributed rate limiting (Redis)
|
|
108
|
-
✅ Return clear error messages
|
|
109
|
-
✅ Include rate limit headers
|
|
110
|
-
✅ Different limits for authenticated vs anonymous
|
|
111
|
-
✅ Higher limits for premium users
|
|
112
|
-
✅ Monitor rate limit hits
|
|
113
|
-
|
|
114
|
-
---
|
|
115
|
-
|
|
116
|
-
**Related Resources:**
|
|
117
|
-
- rest-api-design.md - API design
|
|
118
|
-
- api-versioning.md - API versions
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
# REST API Design
|
|
2
|
-
|
|
3
|
-
Guide to designing RESTful APIs following best practices.
|
|
4
|
-
|
|
5
|
-
## RESTful Principles
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
Resources (nouns, not verbs):
|
|
9
|
-
✅ GET /users/123
|
|
10
|
-
✅ POST /orders
|
|
11
|
-
❌ GET /getUser/123
|
|
12
|
-
❌ POST /createOrder
|
|
13
|
-
|
|
14
|
-
HTTP Methods:
|
|
15
|
-
GET - Retrieve resource
|
|
16
|
-
POST - Create resource
|
|
17
|
-
PUT - Update entire resource
|
|
18
|
-
PATCH - Partial update
|
|
19
|
-
DELETE - Remove resource
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## Resource Modeling
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
Collection: /users
|
|
26
|
-
Resource: /users/123
|
|
27
|
-
Sub-resource: /users/123/orders
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
## HTTP Status Codes
|
|
31
|
-
|
|
32
|
-
```
|
|
33
|
-
200 OK - Successful GET, PUT, PATCH
|
|
34
|
-
201 Created - Successful POST
|
|
35
|
-
204 No Content - Successful DELETE
|
|
36
|
-
400 Bad Request - Invalid input
|
|
37
|
-
401 Unauthorized - Missing/invalid auth
|
|
38
|
-
403 Forbidden - Authenticated but not authorized
|
|
39
|
-
404 Not Found - Resource doesn't exist
|
|
40
|
-
409 Conflict - Resource conflict (e.g., duplicate email)
|
|
41
|
-
422 Unprocessable Entity - Validation errors
|
|
42
|
-
429 Too Many Requests - Rate limit exceeded
|
|
43
|
-
500 Internal Server Error - Server error
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## Request/Response Examples
|
|
47
|
-
|
|
48
|
-
```typescript
|
|
49
|
-
// POST /users (Create)
|
|
50
|
-
Request:
|
|
51
|
-
{
|
|
52
|
-
"email": "user@example.com",
|
|
53
|
-
"name": "John Doe"
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
Response (201 Created):
|
|
57
|
-
{
|
|
58
|
-
"id": "usr_123",
|
|
59
|
-
"email": "user@example.com",
|
|
60
|
-
"name": "John Doe",
|
|
61
|
-
"created_at": "2024-01-15T10:30:00Z"
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
// GET /users?page=1&limit=20 (List with pagination)
|
|
65
|
-
Response (200 OK):
|
|
66
|
-
{
|
|
67
|
-
"data": [...],
|
|
68
|
-
"pagination": {
|
|
69
|
-
"page": 1,
|
|
70
|
-
"limit": 20,
|
|
71
|
-
"total": 150,
|
|
72
|
-
"pages": 8
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
// PATCH /users/123 (Partial update)
|
|
77
|
-
Request:
|
|
78
|
-
{
|
|
79
|
-
"name": "Jane Doe"
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
Response (200 OK):
|
|
83
|
-
{
|
|
84
|
-
"id": "usr_123",
|
|
85
|
-
"email": "user@example.com",
|
|
86
|
-
"name": "Jane Doe",
|
|
87
|
-
"updated_at": "2024-01-15T11:00:00Z"
|
|
88
|
-
}
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
## Best Practices
|
|
92
|
-
|
|
93
|
-
✅ Use nouns for resources
|
|
94
|
-
✅ Plural resource names (/users, not /user)
|
|
95
|
-
✅ Use proper HTTP methods
|
|
96
|
-
✅ Return appropriate status codes
|
|
97
|
-
✅ Implement pagination
|
|
98
|
-
✅ Use filtering (?status=active)
|
|
99
|
-
✅ Consistent error format
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
**Related Resources:**
|
|
104
|
-
- api-versioning.md - API versioning
|
|
105
|
-
- rate-limiting.md - Rate limiting
|