@skillsmith/mcp-server 0.3.1 → 0.3.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/dist/.tsbuildinfo +1 -0
- package/dist/src/__tests__/get-skill.test.d.ts +6 -0
- package/dist/src/__tests__/get-skill.test.d.ts.map +1 -0
- package/dist/src/__tests__/get-skill.test.js +88 -0
- package/dist/src/__tests__/get-skill.test.js.map +1 -0
- package/dist/src/__tests__/middleware/errorFormatter.test.d.ts +7 -0
- package/dist/src/__tests__/middleware/errorFormatter.test.d.ts.map +1 -0
- package/dist/src/__tests__/middleware/errorFormatter.test.js +304 -0
- package/dist/src/__tests__/middleware/errorFormatter.test.js.map +1 -0
- package/dist/src/__tests__/middleware/license.test.d.ts +7 -0
- package/dist/src/__tests__/middleware/license.test.d.ts.map +1 -0
- package/dist/src/__tests__/middleware/license.test.js +500 -0
- package/dist/src/__tests__/middleware/license.test.js.map +1 -0
- package/dist/src/__tests__/search.test.d.ts +6 -0
- package/dist/src/__tests__/search.test.d.ts.map +1 -0
- package/dist/src/__tests__/search.test.js +86 -0
- package/dist/src/__tests__/search.test.js.map +1 -0
- package/dist/src/__tests__/test-utils.d.ts +20 -0
- package/dist/src/__tests__/test-utils.d.ts.map +1 -0
- package/dist/src/__tests__/test-utils.js +91 -0
- package/dist/src/__tests__/test-utils.js.map +1 -0
- package/dist/src/context/index.d.ts +19 -0
- package/dist/src/context/index.d.ts.map +1 -0
- package/dist/src/context/index.js +25 -0
- package/dist/src/context/index.js.map +1 -0
- package/dist/src/context/project-detector.d.ts +145 -0
- package/dist/src/context/project-detector.d.ts.map +1 -0
- package/dist/src/context/project-detector.js +321 -0
- package/dist/src/context/project-detector.js.map +1 -0
- package/dist/src/context.d.ts +157 -0
- package/dist/src/context.d.ts.map +1 -0
- package/dist/src/context.js +231 -0
- package/dist/src/context.js.map +1 -0
- package/dist/src/core-shim.d.ts +7 -0
- package/dist/src/core-shim.d.ts.map +1 -0
- package/dist/src/core-shim.js +9 -0
- package/dist/src/core-shim.js.map +1 -0
- package/dist/src/health/healthCheck.d.ts +88 -0
- package/dist/src/health/healthCheck.d.ts.map +1 -0
- package/dist/src/health/healthCheck.js +117 -0
- package/dist/src/health/healthCheck.js.map +1 -0
- package/dist/src/health/index.d.ts +21 -0
- package/dist/src/health/index.d.ts.map +1 -0
- package/dist/src/health/index.js +21 -0
- package/dist/src/health/index.js.map +1 -0
- package/dist/src/health/readinessCheck.d.ts +139 -0
- package/dist/src/health/readinessCheck.d.ts.map +1 -0
- package/dist/src/health/readinessCheck.js +266 -0
- package/dist/src/health/readinessCheck.js.map +1 -0
- package/dist/src/index.d.ts +10 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +237 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/index.test.d.ts +2 -0
- package/dist/src/index.test.d.ts.map +1 -0
- package/dist/src/index.test.js +43 -0
- package/dist/src/index.test.js.map +1 -0
- package/dist/src/logger.d.ts +26 -0
- package/dist/src/logger.d.ts.map +1 -0
- package/dist/src/logger.js +179 -0
- package/dist/src/logger.js.map +1 -0
- package/dist/src/middleware/__tests__/csp.test.d.ts +2 -0
- package/dist/src/middleware/__tests__/csp.test.d.ts.map +1 -0
- package/dist/src/middleware/__tests__/csp.test.js +390 -0
- package/dist/src/middleware/__tests__/csp.test.js.map +1 -0
- package/dist/src/middleware/csp.d.ts +103 -0
- package/dist/src/middleware/csp.d.ts.map +1 -0
- package/dist/src/middleware/csp.js +273 -0
- package/dist/src/middleware/csp.js.map +1 -0
- package/dist/src/middleware/degradation.d.ts +105 -0
- package/dist/src/middleware/degradation.d.ts.map +1 -0
- package/dist/src/middleware/degradation.js +319 -0
- package/dist/src/middleware/degradation.js.map +1 -0
- package/dist/src/middleware/errorFormatter.d.ts +119 -0
- package/dist/src/middleware/errorFormatter.d.ts.map +1 -0
- package/dist/src/middleware/errorFormatter.js +294 -0
- package/dist/src/middleware/errorFormatter.js.map +1 -0
- package/dist/src/middleware/index.d.ts +11 -0
- package/dist/src/middleware/index.d.ts.map +1 -0
- package/dist/src/middleware/index.js +16 -0
- package/dist/src/middleware/index.js.map +1 -0
- package/dist/src/middleware/license.d.ts +169 -0
- package/dist/src/middleware/license.d.ts.map +1 -0
- package/dist/src/middleware/license.js +292 -0
- package/dist/src/middleware/license.js.map +1 -0
- package/dist/src/middleware/quota.d.ts +182 -0
- package/dist/src/middleware/quota.d.ts.map +1 -0
- package/dist/src/middleware/quota.js +309 -0
- package/dist/src/middleware/quota.js.map +1 -0
- package/dist/src/middleware/toolFeatureMapping.d.ts +36 -0
- package/dist/src/middleware/toolFeatureMapping.d.ts.map +1 -0
- package/dist/src/middleware/toolFeatureMapping.js +96 -0
- package/dist/src/middleware/toolFeatureMapping.js.map +1 -0
- package/dist/src/onboarding/first-run.d.ts +65 -0
- package/dist/src/onboarding/first-run.d.ts.map +1 -0
- package/dist/src/onboarding/first-run.js +79 -0
- package/dist/src/onboarding/first-run.js.map +1 -0
- package/dist/src/onboarding/index.d.ts +7 -0
- package/dist/src/onboarding/index.d.ts.map +1 -0
- package/dist/src/onboarding/index.js +7 -0
- package/dist/src/onboarding/index.js.map +1 -0
- package/dist/src/onboarding/install-assets.d.ts +27 -0
- package/dist/src/onboarding/install-assets.d.ts.map +1 -0
- package/dist/src/onboarding/install-assets.js +128 -0
- package/dist/src/onboarding/install-assets.js.map +1 -0
- package/dist/src/suggestions/index.d.ts +21 -0
- package/dist/src/suggestions/index.d.ts.map +1 -0
- package/dist/src/suggestions/index.js +20 -0
- package/dist/src/suggestions/index.js.map +1 -0
- package/dist/src/suggestions/suggestion-engine.d.ts +185 -0
- package/dist/src/suggestions/suggestion-engine.d.ts.map +1 -0
- package/dist/src/suggestions/suggestion-engine.js +352 -0
- package/dist/src/suggestions/suggestion-engine.js.map +1 -0
- package/dist/src/suggestions/types.d.ts +88 -0
- package/dist/src/suggestions/types.d.ts.map +1 -0
- package/dist/src/suggestions/types.js +21 -0
- package/dist/src/suggestions/types.js.map +1 -0
- package/dist/src/tools/analyze.d.ts +151 -0
- package/dist/src/tools/analyze.d.ts.map +1 -0
- package/dist/src/tools/analyze.js +205 -0
- package/dist/src/tools/analyze.js.map +1 -0
- package/dist/src/tools/compare.d.ts +149 -0
- package/dist/src/tools/compare.d.ts.map +1 -0
- package/dist/src/tools/compare.js +464 -0
- package/dist/src/tools/compare.js.map +1 -0
- package/dist/src/tools/get-skill.d.ts +107 -0
- package/dist/src/tools/get-skill.d.ts.map +1 -0
- package/dist/src/tools/get-skill.js +260 -0
- package/dist/src/tools/get-skill.js.map +1 -0
- package/dist/src/tools/index.d.ts +20 -0
- package/dist/src/tools/index.d.ts.map +1 -0
- package/dist/src/tools/index.js +20 -0
- package/dist/src/tools/index.js.map +1 -0
- package/dist/src/tools/install.d.ts +122 -0
- package/dist/src/tools/install.d.ts.map +1 -0
- package/dist/src/tools/install.js +469 -0
- package/dist/src/tools/install.js.map +1 -0
- package/dist/src/tools/recommend.d.ts +169 -0
- package/dist/src/tools/recommend.d.ts.map +1 -0
- package/dist/src/tools/recommend.js +357 -0
- package/dist/src/tools/recommend.js.map +1 -0
- package/dist/src/tools/search.d.ts +114 -0
- package/dist/src/tools/search.d.ts.map +1 -0
- package/dist/src/tools/search.js +251 -0
- package/dist/src/tools/search.js.map +1 -0
- package/dist/src/tools/suggest.d.ts +181 -0
- package/dist/src/tools/suggest.d.ts.map +1 -0
- package/dist/src/tools/suggest.js +310 -0
- package/dist/src/tools/suggest.js.map +1 -0
- package/dist/src/tools/uninstall.d.ts +123 -0
- package/dist/src/tools/uninstall.d.ts.map +1 -0
- package/dist/src/tools/uninstall.js +250 -0
- package/dist/src/tools/uninstall.js.map +1 -0
- package/dist/src/tools/validate.d.ts +122 -0
- package/dist/src/tools/validate.d.ts.map +1 -0
- package/dist/src/tools/validate.js +497 -0
- package/dist/src/tools/validate.js.map +1 -0
- package/dist/src/utils/installed-skills.d.ts +101 -0
- package/dist/src/utils/installed-skills.d.ts.map +1 -0
- package/dist/src/utils/installed-skills.js +220 -0
- package/dist/src/utils/installed-skills.js.map +1 -0
- package/dist/src/utils/validation.d.ts +95 -0
- package/dist/src/utils/validation.d.ts.map +1 -0
- package/dist/src/utils/validation.js +186 -0
- package/dist/src/utils/validation.js.map +1 -0
- package/dist/src/webhooks/index.d.ts +8 -0
- package/dist/src/webhooks/index.d.ts.map +1 -0
- package/dist/src/webhooks/index.js +9 -0
- package/dist/src/webhooks/index.js.map +1 -0
- package/dist/src/webhooks/webhook-endpoint.d.ts +149 -0
- package/dist/src/webhooks/webhook-endpoint.d.ts.map +1 -0
- package/dist/src/webhooks/webhook-endpoint.js +339 -0
- package/dist/src/webhooks/webhook-endpoint.js.map +1 -0
- package/dist/tests/compare.test.d.ts +6 -0
- package/dist/tests/compare.test.d.ts.map +1 -0
- package/dist/tests/compare.test.js +225 -0
- package/dist/tests/compare.test.js.map +1 -0
- package/dist/tests/context/project-detector.test.d.ts +6 -0
- package/dist/tests/context/project-detector.test.d.ts.map +1 -0
- package/dist/tests/context/project-detector.test.js +719 -0
- package/dist/tests/context/project-detector.test.js.map +1 -0
- package/dist/tests/e2e/compare.e2e.test.d.ts +10 -0
- package/dist/tests/e2e/compare.e2e.test.d.ts.map +1 -0
- package/dist/tests/e2e/compare.e2e.test.js +296 -0
- package/dist/tests/e2e/compare.e2e.test.js.map +1 -0
- package/dist/tests/e2e/install-flow.e2e.test.d.ts +10 -0
- package/dist/tests/e2e/install-flow.e2e.test.d.ts.map +1 -0
- package/dist/tests/e2e/install-flow.e2e.test.js +229 -0
- package/dist/tests/e2e/install-flow.e2e.test.js.map +1 -0
- package/dist/tests/e2e/recommend.e2e.test.d.ts +12 -0
- package/dist/tests/e2e/recommend.e2e.test.d.ts.map +1 -0
- package/dist/tests/e2e/recommend.e2e.test.js +357 -0
- package/dist/tests/e2e/recommend.e2e.test.js.map +1 -0
- package/dist/tests/e2e/skill-flow.e2e.test.d.ts +10 -0
- package/dist/tests/e2e/skill-flow.e2e.test.d.ts.map +1 -0
- package/dist/tests/e2e/skill-flow.e2e.test.js +311 -0
- package/dist/tests/e2e/skill-flow.e2e.test.js.map +1 -0
- package/dist/tests/e2e/suggest.e2e.test.d.ts +13 -0
- package/dist/tests/e2e/suggest.e2e.test.d.ts.map +1 -0
- package/dist/tests/e2e/suggest.e2e.test.js +367 -0
- package/dist/tests/e2e/suggest.e2e.test.js.map +1 -0
- package/dist/tests/e2e/utils/baseline-collector.d.ts +107 -0
- package/dist/tests/e2e/utils/baseline-collector.d.ts.map +1 -0
- package/dist/tests/e2e/utils/baseline-collector.js +211 -0
- package/dist/tests/e2e/utils/baseline-collector.js.map +1 -0
- package/dist/tests/e2e/utils/hardcoded-detector.d.ts +46 -0
- package/dist/tests/e2e/utils/hardcoded-detector.d.ts.map +1 -0
- package/dist/tests/e2e/utils/hardcoded-detector.js +255 -0
- package/dist/tests/e2e/utils/hardcoded-detector.js.map +1 -0
- package/dist/tests/e2e/utils/index.d.ts +7 -0
- package/dist/tests/e2e/utils/index.d.ts.map +1 -0
- package/dist/tests/e2e/utils/index.js +7 -0
- package/dist/tests/e2e/utils/index.js.map +1 -0
- package/dist/tests/e2e/utils/linear-reporter.d.ts +60 -0
- package/dist/tests/e2e/utils/linear-reporter.d.ts.map +1 -0
- package/dist/tests/e2e/utils/linear-reporter.js +232 -0
- package/dist/tests/e2e/utils/linear-reporter.js.map +1 -0
- package/dist/tests/health.test.d.ts +9 -0
- package/dist/tests/health.test.d.ts.map +1 -0
- package/dist/tests/health.test.js +308 -0
- package/dist/tests/health.test.js.map +1 -0
- package/dist/tests/integration/analyze.integration.test.d.ts +2 -0
- package/dist/tests/integration/analyze.integration.test.d.ts.map +1 -0
- package/dist/tests/integration/analyze.integration.test.js +244 -0
- package/dist/tests/integration/analyze.integration.test.js.map +1 -0
- package/dist/tests/integration/compare.integration.test.d.ts +2 -0
- package/dist/tests/integration/compare.integration.test.d.ts.map +1 -0
- package/dist/tests/integration/compare.integration.test.js +120 -0
- package/dist/tests/integration/compare.integration.test.js.map +1 -0
- package/dist/tests/integration/fixtures/test-skills.d.ts +62 -0
- package/dist/tests/integration/fixtures/test-skills.d.ts.map +1 -0
- package/dist/tests/integration/fixtures/test-skills.js +644 -0
- package/dist/tests/integration/fixtures/test-skills.js.map +1 -0
- package/dist/tests/integration/get-skill.integration.test.d.ts +6 -0
- package/dist/tests/integration/get-skill.integration.test.d.ts.map +1 -0
- package/dist/tests/integration/get-skill.integration.test.js +203 -0
- package/dist/tests/integration/get-skill.integration.test.js.map +1 -0
- package/dist/tests/integration/github-api.integration.test.d.ts +14 -0
- package/dist/tests/integration/github-api.integration.test.d.ts.map +1 -0
- package/dist/tests/integration/github-api.integration.test.js +190 -0
- package/dist/tests/integration/github-api.integration.test.js.map +1 -0
- package/dist/tests/integration/install.integration.test.d.ts +6 -0
- package/dist/tests/integration/install.integration.test.d.ts.map +1 -0
- package/dist/tests/integration/install.integration.test.js +407 -0
- package/dist/tests/integration/install.integration.test.js.map +1 -0
- package/dist/tests/integration/recommend.integration.test.d.ts +2 -0
- package/dist/tests/integration/recommend.integration.test.d.ts.map +1 -0
- package/dist/tests/integration/recommend.integration.test.js +217 -0
- package/dist/tests/integration/recommend.integration.test.js.map +1 -0
- package/dist/tests/integration/search.integration.test.d.ts +6 -0
- package/dist/tests/integration/search.integration.test.d.ts.map +1 -0
- package/dist/tests/integration/search.integration.test.js +229 -0
- package/dist/tests/integration/search.integration.test.js.map +1 -0
- package/dist/tests/integration/setup.d.ts +74 -0
- package/dist/tests/integration/setup.d.ts.map +1 -0
- package/dist/tests/integration/setup.js +131 -0
- package/dist/tests/integration/setup.js.map +1 -0
- package/dist/tests/integration/uninstall.integration.test.d.ts +6 -0
- package/dist/tests/integration/uninstall.integration.test.d.ts.map +1 -0
- package/dist/tests/integration/uninstall.integration.test.js +296 -0
- package/dist/tests/integration/uninstall.integration.test.js.map +1 -0
- package/dist/tests/integration/validate.integration.test.d.ts +2 -0
- package/dist/tests/integration/validate.integration.test.d.ts.map +1 -0
- package/dist/tests/integration/validate.integration.test.js +181 -0
- package/dist/tests/integration/validate.integration.test.js.map +1 -0
- package/dist/tests/onboarding/first-run.test.d.ts +7 -0
- package/dist/tests/onboarding/first-run.test.d.ts.map +1 -0
- package/dist/tests/onboarding/first-run.test.js +264 -0
- package/dist/tests/onboarding/first-run.test.js.map +1 -0
- package/dist/tests/performance/search-performance.test.d.ts +10 -0
- package/dist/tests/performance/search-performance.test.d.ts.map +1 -0
- package/dist/tests/performance/search-performance.test.js +222 -0
- package/dist/tests/performance/search-performance.test.js.map +1 -0
- package/dist/tests/recommend.test.d.ts +6 -0
- package/dist/tests/recommend.test.d.ts.map +1 -0
- package/dist/tests/recommend.test.js +210 -0
- package/dist/tests/recommend.test.js.map +1 -0
- package/dist/tests/suggestions/suggestion-engine.test.d.ts +6 -0
- package/dist/tests/suggestions/suggestion-engine.test.d.ts.map +1 -0
- package/dist/tests/suggestions/suggestion-engine.test.js +448 -0
- package/dist/tests/suggestions/suggestion-engine.test.js.map +1 -0
- package/dist/tests/test-utils.d.ts +74 -0
- package/dist/tests/test-utils.d.ts.map +1 -0
- package/dist/tests/test-utils.js +98 -0
- package/dist/tests/test-utils.js.map +1 -0
- package/dist/tests/tools.test.d.ts +5 -0
- package/dist/tests/tools.test.d.ts.map +1 -0
- package/dist/tests/tools.test.js +138 -0
- package/dist/tests/tools.test.js.map +1 -0
- package/dist/tests/unit/installed-skills.test.d.ts +6 -0
- package/dist/tests/unit/installed-skills.test.d.ts.map +1 -0
- package/dist/tests/unit/installed-skills.test.js +285 -0
- package/dist/tests/unit/installed-skills.test.js.map +1 -0
- package/dist/tests/unit/logger.test.d.ts +6 -0
- package/dist/tests/unit/logger.test.d.ts.map +1 -0
- package/dist/tests/unit/logger.test.js +281 -0
- package/dist/tests/unit/logger.test.js.map +1 -0
- package/dist/tests/validate.test.d.ts +5 -0
- package/dist/tests/validate.test.d.ts.map +1 -0
- package/dist/tests/validate.test.js +303 -0
- package/dist/tests/validate.test.js.map +1 -0
- package/dist/tests/webhooks/proxy-trust.security.test.d.ts +8 -0
- package/dist/tests/webhooks/proxy-trust.security.test.d.ts.map +1 -0
- package/dist/tests/webhooks/proxy-trust.security.test.js +145 -0
- package/dist/tests/webhooks/proxy-trust.security.test.js.map +1 -0
- package/dist/tests/webhooks/rate-limiter.security.test.d.ts +8 -0
- package/dist/tests/webhooks/rate-limiter.security.test.d.ts.map +1 -0
- package/dist/tests/webhooks/rate-limiter.security.test.js +122 -0
- package/dist/tests/webhooks/rate-limiter.security.test.js.map +1 -0
- package/dist/vitest.config.d.ts +6 -0
- package/dist/vitest.config.d.ts.map +1 -0
- package/dist/vitest.config.js +13 -0
- package/dist/vitest.config.js.map +1 -0
- package/package.json +1 -1
- package/src/assets/docs/USER_GUIDE.md +28 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-740: Health Check Module Exports
|
|
3
|
+
*
|
|
4
|
+
* Provides health and readiness check endpoints for the MCP server:
|
|
5
|
+
* - /health: Quick liveness check
|
|
6
|
+
* - /ready: Deep readiness check with dependency verification
|
|
7
|
+
*/
|
|
8
|
+
// Health check exports
|
|
9
|
+
export { HealthCheck, getHealthCheck, createHealthCheck, checkHealth, formatHealthResponse, } from './healthCheck.js';
|
|
10
|
+
// Readiness check exports
|
|
11
|
+
export { ReadinessCheck, getReadinessCheck, createReadinessCheck, checkReadiness, configureReadinessCheck, formatReadinessResponse, } from './readinessCheck.js';
|
|
12
|
+
/**
|
|
13
|
+
* Perform both health and readiness checks
|
|
14
|
+
*/
|
|
15
|
+
export async function checkAll() {
|
|
16
|
+
const { checkHealth } = await import('./healthCheck.js');
|
|
17
|
+
const { checkReadiness } = await import('./readinessCheck.js');
|
|
18
|
+
const [health, readiness] = await Promise.all([checkHealth(), checkReadiness()]);
|
|
19
|
+
return { health, readiness };
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/health/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,uBAAuB;AACvB,OAAO,EACL,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,oBAAoB,GAGrB,MAAM,kBAAkB,CAAA;AAEzB,0BAA0B;AAC1B,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,uBAAuB,EACvB,uBAAuB,GAIxB,MAAM,qBAAqB,CAAA;AAU5B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAA;IACxD,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAA;IAE9D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC,CAAA;IAEhF,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;AAC9B,CAAC"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-740: Readiness Check with Dependency Checks
|
|
3
|
+
*
|
|
4
|
+
* Provides a comprehensive readiness check that verifies:
|
|
5
|
+
* - Database connectivity
|
|
6
|
+
* - Cache status
|
|
7
|
+
* - External service availability
|
|
8
|
+
*
|
|
9
|
+
* Returns 503 if any critical dependency fails.
|
|
10
|
+
*/
|
|
11
|
+
import type { Database as DatabaseType } from 'better-sqlite3';
|
|
12
|
+
/**
|
|
13
|
+
* Dependency check result
|
|
14
|
+
*/
|
|
15
|
+
export interface DependencyCheck {
|
|
16
|
+
/** Dependency name */
|
|
17
|
+
name: string;
|
|
18
|
+
/** Check status */
|
|
19
|
+
status: 'ok' | 'degraded' | 'unhealthy';
|
|
20
|
+
/** Response time in ms */
|
|
21
|
+
responseTime?: number;
|
|
22
|
+
/** Error message if unhealthy */
|
|
23
|
+
error?: string;
|
|
24
|
+
/** Additional details */
|
|
25
|
+
details?: Record<string, unknown>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Readiness response
|
|
29
|
+
*/
|
|
30
|
+
export interface ReadinessResponse {
|
|
31
|
+
/** Overall readiness status */
|
|
32
|
+
ready: boolean;
|
|
33
|
+
/** HTTP status code to return */
|
|
34
|
+
statusCode: number;
|
|
35
|
+
/** Timestamp of the check */
|
|
36
|
+
timestamp: string;
|
|
37
|
+
/** Individual dependency check results */
|
|
38
|
+
checks: DependencyCheck[];
|
|
39
|
+
/** Total check duration in ms */
|
|
40
|
+
totalDuration: number;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Readiness check configuration
|
|
44
|
+
*/
|
|
45
|
+
export interface ReadinessCheckConfig {
|
|
46
|
+
/** Database instance for connectivity check */
|
|
47
|
+
database?: DatabaseType | null;
|
|
48
|
+
/** Cache check function */
|
|
49
|
+
cacheCheck?: () => Promise<boolean>;
|
|
50
|
+
/** Custom dependency checks */
|
|
51
|
+
customChecks?: Array<{
|
|
52
|
+
name: string;
|
|
53
|
+
check: () => Promise<{
|
|
54
|
+
ok: boolean;
|
|
55
|
+
details?: Record<string, unknown>;
|
|
56
|
+
}>;
|
|
57
|
+
critical?: boolean;
|
|
58
|
+
}>;
|
|
59
|
+
/** Timeout for each check in ms (default: 5000) */
|
|
60
|
+
checkTimeout?: number;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Readiness Check Handler
|
|
64
|
+
*
|
|
65
|
+
* Performs deep health checks including database connectivity,
|
|
66
|
+
* cache status, and other dependencies.
|
|
67
|
+
*/
|
|
68
|
+
export declare class ReadinessCheck {
|
|
69
|
+
private database;
|
|
70
|
+
private cacheCheck;
|
|
71
|
+
private customChecks;
|
|
72
|
+
private checkTimeout;
|
|
73
|
+
constructor(config?: ReadinessCheckConfig);
|
|
74
|
+
/**
|
|
75
|
+
* Set the database instance
|
|
76
|
+
*/
|
|
77
|
+
setDatabase(db: DatabaseType | null): void;
|
|
78
|
+
/**
|
|
79
|
+
* Set the cache check function
|
|
80
|
+
*/
|
|
81
|
+
setCacheCheck(check: (() => Promise<boolean>) | null): void;
|
|
82
|
+
/**
|
|
83
|
+
* Add a custom dependency check
|
|
84
|
+
*/
|
|
85
|
+
addCheck(name: string, check: () => Promise<{
|
|
86
|
+
ok: boolean;
|
|
87
|
+
details?: Record<string, unknown>;
|
|
88
|
+
}>, critical?: boolean): void;
|
|
89
|
+
/**
|
|
90
|
+
* Perform full readiness check
|
|
91
|
+
*
|
|
92
|
+
* Checks all dependencies and returns overall readiness status.
|
|
93
|
+
*/
|
|
94
|
+
check(): Promise<ReadinessResponse>;
|
|
95
|
+
/**
|
|
96
|
+
* Check database connectivity
|
|
97
|
+
*/
|
|
98
|
+
private checkDatabase;
|
|
99
|
+
/**
|
|
100
|
+
* Check cache status
|
|
101
|
+
*/
|
|
102
|
+
private checkCache;
|
|
103
|
+
/**
|
|
104
|
+
* Run a custom check
|
|
105
|
+
*/
|
|
106
|
+
private runCustomCheck;
|
|
107
|
+
/**
|
|
108
|
+
* Execute a function with timeout
|
|
109
|
+
*/
|
|
110
|
+
private withTimeout;
|
|
111
|
+
/**
|
|
112
|
+
* Quick readiness check (boolean result)
|
|
113
|
+
*/
|
|
114
|
+
isReady(): Promise<boolean>;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Get the default readiness check instance
|
|
118
|
+
*/
|
|
119
|
+
export declare function getReadinessCheck(): ReadinessCheck;
|
|
120
|
+
/**
|
|
121
|
+
* Create a new readiness check instance with custom configuration
|
|
122
|
+
*/
|
|
123
|
+
export declare function createReadinessCheck(config: ReadinessCheckConfig): ReadinessCheck;
|
|
124
|
+
/**
|
|
125
|
+
* Perform a quick readiness check using the default instance
|
|
126
|
+
*/
|
|
127
|
+
export declare function checkReadiness(): Promise<ReadinessResponse>;
|
|
128
|
+
/**
|
|
129
|
+
* Configure the default readiness check
|
|
130
|
+
*/
|
|
131
|
+
export declare function configureReadinessCheck(config: Partial<ReadinessCheckConfig>): void;
|
|
132
|
+
/**
|
|
133
|
+
* Format readiness response for HTTP
|
|
134
|
+
*/
|
|
135
|
+
export declare function formatReadinessResponse(response: ReadinessResponse): {
|
|
136
|
+
statusCode: number;
|
|
137
|
+
body: ReadinessResponse;
|
|
138
|
+
};
|
|
139
|
+
//# sourceMappingURL=readinessCheck.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readinessCheck.d.ts","sourceRoot":"","sources":["../../../src/health/readinessCheck.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-740: Readiness Check with Dependency Checks
|
|
3
|
+
*
|
|
4
|
+
* Provides a comprehensive readiness check that verifies:
|
|
5
|
+
* - Database connectivity
|
|
6
|
+
* - Cache status
|
|
7
|
+
* - External service availability
|
|
8
|
+
*
|
|
9
|
+
* Returns 503 if any critical dependency fails.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Readiness Check Handler
|
|
13
|
+
*
|
|
14
|
+
* Performs deep health checks including database connectivity,
|
|
15
|
+
* cache status, and other dependencies.
|
|
16
|
+
*/
|
|
17
|
+
export class ReadinessCheck {
|
|
18
|
+
database;
|
|
19
|
+
cacheCheck;
|
|
20
|
+
customChecks;
|
|
21
|
+
checkTimeout;
|
|
22
|
+
constructor(config = {}) {
|
|
23
|
+
this.database = config.database ?? null;
|
|
24
|
+
this.cacheCheck = config.cacheCheck ?? null;
|
|
25
|
+
this.customChecks = (config.customChecks ?? []).map((c) => ({
|
|
26
|
+
...c,
|
|
27
|
+
critical: c.critical ?? true,
|
|
28
|
+
}));
|
|
29
|
+
this.checkTimeout = config.checkTimeout ?? 5000;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Set the database instance
|
|
33
|
+
*/
|
|
34
|
+
setDatabase(db) {
|
|
35
|
+
this.database = db;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Set the cache check function
|
|
39
|
+
*/
|
|
40
|
+
setCacheCheck(check) {
|
|
41
|
+
this.cacheCheck = check;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Add a custom dependency check
|
|
45
|
+
*/
|
|
46
|
+
addCheck(name, check, critical = true) {
|
|
47
|
+
this.customChecks.push({ name, check, critical });
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Perform full readiness check
|
|
51
|
+
*
|
|
52
|
+
* Checks all dependencies and returns overall readiness status.
|
|
53
|
+
*/
|
|
54
|
+
async check() {
|
|
55
|
+
const startTime = performance.now();
|
|
56
|
+
const checks = [];
|
|
57
|
+
let allCriticalOk = true;
|
|
58
|
+
// Check database
|
|
59
|
+
const dbCheck = await this.checkDatabase();
|
|
60
|
+
checks.push(dbCheck);
|
|
61
|
+
if (dbCheck.status === 'unhealthy') {
|
|
62
|
+
allCriticalOk = false;
|
|
63
|
+
}
|
|
64
|
+
// Check cache
|
|
65
|
+
const cacheCheckResult = await this.checkCache();
|
|
66
|
+
checks.push(cacheCheckResult);
|
|
67
|
+
if (cacheCheckResult.status === 'unhealthy') {
|
|
68
|
+
allCriticalOk = false;
|
|
69
|
+
}
|
|
70
|
+
// Run custom checks
|
|
71
|
+
for (const customCheck of this.customChecks) {
|
|
72
|
+
const result = await this.runCustomCheck(customCheck);
|
|
73
|
+
checks.push(result);
|
|
74
|
+
if (result.status === 'unhealthy' && customCheck.critical) {
|
|
75
|
+
allCriticalOk = false;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
const totalDuration = performance.now() - startTime;
|
|
79
|
+
return {
|
|
80
|
+
ready: allCriticalOk,
|
|
81
|
+
statusCode: allCriticalOk ? 200 : 503,
|
|
82
|
+
timestamp: new Date().toISOString(),
|
|
83
|
+
checks,
|
|
84
|
+
totalDuration: Math.round(totalDuration * 100) / 100,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Check database connectivity
|
|
89
|
+
*/
|
|
90
|
+
async checkDatabase() {
|
|
91
|
+
const startTime = performance.now();
|
|
92
|
+
if (!this.database) {
|
|
93
|
+
return {
|
|
94
|
+
name: 'database',
|
|
95
|
+
status: 'degraded',
|
|
96
|
+
details: { reason: 'Database not configured' },
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
try {
|
|
100
|
+
// Perform a simple query to check connectivity
|
|
101
|
+
const result = await this.withTimeout(async () => {
|
|
102
|
+
// Use a simple query that should always work
|
|
103
|
+
const stmt = this.database.prepare('SELECT 1 as health_check');
|
|
104
|
+
return stmt.get();
|
|
105
|
+
}, this.checkTimeout);
|
|
106
|
+
const responseTime = performance.now() - startTime;
|
|
107
|
+
if (result) {
|
|
108
|
+
return {
|
|
109
|
+
name: 'database',
|
|
110
|
+
status: 'ok',
|
|
111
|
+
responseTime: Math.round(responseTime * 100) / 100,
|
|
112
|
+
details: { type: 'sqlite' },
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
return {
|
|
117
|
+
name: 'database',
|
|
118
|
+
status: 'unhealthy',
|
|
119
|
+
responseTime: Math.round(responseTime * 100) / 100,
|
|
120
|
+
error: 'Query returned no result',
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
const responseTime = performance.now() - startTime;
|
|
126
|
+
return {
|
|
127
|
+
name: 'database',
|
|
128
|
+
status: 'unhealthy',
|
|
129
|
+
responseTime: Math.round(responseTime * 100) / 100,
|
|
130
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Check cache status
|
|
136
|
+
*/
|
|
137
|
+
async checkCache() {
|
|
138
|
+
const startTime = performance.now();
|
|
139
|
+
if (!this.cacheCheck) {
|
|
140
|
+
return {
|
|
141
|
+
name: 'cache',
|
|
142
|
+
status: 'ok',
|
|
143
|
+
details: { reason: 'Cache check not configured, assuming healthy' },
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
try {
|
|
147
|
+
const result = await this.withTimeout(this.cacheCheck, this.checkTimeout);
|
|
148
|
+
const responseTime = performance.now() - startTime;
|
|
149
|
+
return {
|
|
150
|
+
name: 'cache',
|
|
151
|
+
status: result ? 'ok' : 'unhealthy',
|
|
152
|
+
responseTime: Math.round(responseTime * 100) / 100,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
const responseTime = performance.now() - startTime;
|
|
157
|
+
return {
|
|
158
|
+
name: 'cache',
|
|
159
|
+
status: 'unhealthy',
|
|
160
|
+
responseTime: Math.round(responseTime * 100) / 100,
|
|
161
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Run a custom check
|
|
167
|
+
*/
|
|
168
|
+
async runCustomCheck(customCheck) {
|
|
169
|
+
const startTime = performance.now();
|
|
170
|
+
try {
|
|
171
|
+
const result = await this.withTimeout(customCheck.check, this.checkTimeout);
|
|
172
|
+
const responseTime = performance.now() - startTime;
|
|
173
|
+
return {
|
|
174
|
+
name: customCheck.name,
|
|
175
|
+
status: result.ok ? 'ok' : 'unhealthy',
|
|
176
|
+
responseTime: Math.round(responseTime * 100) / 100,
|
|
177
|
+
details: result.details,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
catch (error) {
|
|
181
|
+
const responseTime = performance.now() - startTime;
|
|
182
|
+
return {
|
|
183
|
+
name: customCheck.name,
|
|
184
|
+
status: 'unhealthy',
|
|
185
|
+
responseTime: Math.round(responseTime * 100) / 100,
|
|
186
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Execute a function with timeout
|
|
192
|
+
*/
|
|
193
|
+
async withTimeout(fn, timeoutMs) {
|
|
194
|
+
return new Promise((resolve, reject) => {
|
|
195
|
+
const timer = setTimeout(() => {
|
|
196
|
+
reject(new Error(`Check timed out after ${timeoutMs}ms`));
|
|
197
|
+
}, timeoutMs);
|
|
198
|
+
fn()
|
|
199
|
+
.then((result) => {
|
|
200
|
+
clearTimeout(timer);
|
|
201
|
+
resolve(result);
|
|
202
|
+
})
|
|
203
|
+
.catch((error) => {
|
|
204
|
+
clearTimeout(timer);
|
|
205
|
+
reject(error);
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Quick readiness check (boolean result)
|
|
211
|
+
*/
|
|
212
|
+
async isReady() {
|
|
213
|
+
const result = await this.check();
|
|
214
|
+
return result.ready;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
// Default readiness check instance
|
|
218
|
+
let defaultReadinessCheck = null;
|
|
219
|
+
/**
|
|
220
|
+
* Get the default readiness check instance
|
|
221
|
+
*/
|
|
222
|
+
export function getReadinessCheck() {
|
|
223
|
+
if (!defaultReadinessCheck) {
|
|
224
|
+
defaultReadinessCheck = new ReadinessCheck();
|
|
225
|
+
}
|
|
226
|
+
return defaultReadinessCheck;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Create a new readiness check instance with custom configuration
|
|
230
|
+
*/
|
|
231
|
+
export function createReadinessCheck(config) {
|
|
232
|
+
return new ReadinessCheck(config);
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Perform a quick readiness check using the default instance
|
|
236
|
+
*/
|
|
237
|
+
export async function checkReadiness() {
|
|
238
|
+
return getReadinessCheck().check();
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Configure the default readiness check
|
|
242
|
+
*/
|
|
243
|
+
export function configureReadinessCheck(config) {
|
|
244
|
+
const check = getReadinessCheck();
|
|
245
|
+
if (config.database !== undefined) {
|
|
246
|
+
check.setDatabase(config.database);
|
|
247
|
+
}
|
|
248
|
+
if (config.cacheCheck !== undefined) {
|
|
249
|
+
check.setCacheCheck(config.cacheCheck);
|
|
250
|
+
}
|
|
251
|
+
if (config.customChecks) {
|
|
252
|
+
for (const custom of config.customChecks) {
|
|
253
|
+
check.addCheck(custom.name, custom.check, custom.critical);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Format readiness response for HTTP
|
|
259
|
+
*/
|
|
260
|
+
export function formatReadinessResponse(response) {
|
|
261
|
+
return {
|
|
262
|
+
statusCode: response.statusCode,
|
|
263
|
+
body: response,
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
//# sourceMappingURL=readinessCheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readinessCheck.js","sourceRoot":"","sources":["../../../src/health/readinessCheck.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Skillsmith MCP Server
|
|
4
|
+
* Provides skill discovery, installation, and management tools
|
|
5
|
+
*
|
|
6
|
+
* @see SMI-792: Database initialization with tool context
|
|
7
|
+
* @see SMI-XXXX: First-run integration and documentation delivery
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AACA;;;;;;GAMG"}
|