@planu/cli 0.24.0 → 0.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/dist/config/ai-model-pricing.json +81 -0
- package/dist/config/framework-registry/csharp-aspnet.json +67 -0
- package/dist/config/framework-registry/dart-flutter.json +61 -0
- package/dist/config/framework-registry/go-gin.json +62 -0
- package/dist/config/framework-registry/index.json +164 -0
- package/dist/config/framework-registry/java-springboot.json +67 -0
- package/dist/config/framework-registry/php-laravel.json +67 -0
- package/dist/config/framework-registry/python-django.json +72 -0
- package/dist/config/framework-registry/python-fastapi.json +72 -0
- package/dist/config/framework-registry/ruby-rails.json +67 -0
- package/dist/config/framework-registry/rust-actix.json +61 -0
- package/dist/config/framework-registry/swift-swiftui.json +67 -0
- package/dist/config/framework-registry/typescript-angular.json +67 -0
- package/dist/config/framework-registry/typescript-astro.json +61 -0
- package/dist/config/framework-registry/typescript-express.json +67 -0
- package/dist/config/framework-registry/typescript-nestjs.json +62 -0
- package/dist/config/framework-registry/typescript-nextjs.json +82 -0
- package/dist/config/framework-registry/typescript-nuxt.json +67 -0
- package/dist/config/framework-registry/typescript-react.json +77 -0
- package/dist/config/framework-registry/typescript-remix.json +61 -0
- package/dist/config/framework-registry/typescript-sveltekit.json +67 -0
- package/dist/config/framework-registry/typescript-vue.json +72 -0
- package/dist/config/license-plans.json +23 -3
- package/dist/engine/agile-config-builder.d.ts.map +1 -1
- package/dist/engine/agile-config-builder.js +3 -0
- package/dist/engine/agile-config-builder.js.map +1 -1
- package/dist/engine/ai-cost-estimator/core.d.ts +8 -0
- package/dist/engine/ai-cost-estimator/core.d.ts.map +1 -0
- package/dist/engine/ai-cost-estimator/core.js +257 -0
- package/dist/engine/ai-cost-estimator/core.js.map +1 -0
- package/dist/engine/ai-cost-estimator/index.d.ts +4 -0
- package/dist/engine/ai-cost-estimator/index.d.ts.map +1 -0
- package/dist/engine/ai-cost-estimator/index.js +5 -0
- package/dist/engine/ai-cost-estimator/index.js.map +1 -0
- package/dist/engine/ai-cost-estimator/model-pricing.d.ts +31 -0
- package/dist/engine/ai-cost-estimator/model-pricing.d.ts.map +1 -0
- package/dist/engine/ai-cost-estimator/model-pricing.js +96 -0
- package/dist/engine/ai-cost-estimator/model-pricing.js.map +1 -0
- package/dist/engine/ai-cost-estimator/token-estimator.d.ts +37 -0
- package/dist/engine/ai-cost-estimator/token-estimator.d.ts.map +1 -0
- package/dist/engine/ai-cost-estimator/token-estimator.js +194 -0
- package/dist/engine/ai-cost-estimator/token-estimator.js.map +1 -0
- package/dist/engine/ci-generator/context-builders.d.ts +4 -0
- package/dist/engine/ci-generator/context-builders.d.ts.map +1 -0
- package/dist/engine/ci-generator/context-builders.js +129 -0
- package/dist/engine/ci-generator/context-builders.js.map +1 -0
- package/dist/engine/ci-generator/index.d.ts +7 -0
- package/dist/engine/ci-generator/index.d.ts.map +1 -0
- package/dist/engine/ci-generator/index.js +44 -0
- package/dist/engine/ci-generator/index.js.map +1 -0
- package/dist/engine/ci-generator/stack-detector.d.ts +21 -0
- package/dist/engine/ci-generator/stack-detector.d.ts.map +1 -0
- package/dist/engine/ci-generator/stack-detector.js +203 -0
- package/dist/engine/ci-generator/stack-detector.js.map +1 -0
- package/dist/engine/ci-generator/yaml-builder.d.ts +8 -0
- package/dist/engine/ci-generator/yaml-builder.d.ts.map +1 -0
- package/dist/engine/ci-generator/yaml-builder.js +285 -0
- package/dist/engine/ci-generator/yaml-builder.js.map +1 -0
- package/dist/engine/dashboard/data-loader.d.ts +21 -0
- package/dist/engine/dashboard/data-loader.d.ts.map +1 -0
- package/dist/engine/dashboard/data-loader.js +196 -0
- package/dist/engine/dashboard/data-loader.js.map +1 -0
- package/dist/engine/dashboard/index.d.ts +5 -0
- package/dist/engine/dashboard/index.d.ts.map +1 -0
- package/dist/engine/dashboard/index.js +6 -0
- package/dist/engine/dashboard/index.js.map +1 -0
- package/dist/engine/dashboard/routes.d.ts +4 -0
- package/dist/engine/dashboard/routes.d.ts.map +1 -0
- package/dist/engine/dashboard/routes.js +120 -0
- package/dist/engine/dashboard/routes.js.map +1 -0
- package/dist/engine/dashboard/server.d.ts +14 -0
- package/dist/engine/dashboard/server.d.ts.map +1 -0
- package/dist/engine/dashboard/server.js +88 -0
- package/dist/engine/dashboard/server.js.map +1 -0
- package/dist/engine/dashboard/templates-layout.d.ts +11 -0
- package/dist/engine/dashboard/templates-layout.d.ts.map +1 -0
- package/dist/engine/dashboard/templates-layout.js +305 -0
- package/dist/engine/dashboard/templates-layout.js.map +1 -0
- package/dist/engine/dashboard/templates-project.d.ts +10 -0
- package/dist/engine/dashboard/templates-project.d.ts.map +1 -0
- package/dist/engine/dashboard/templates-project.js +163 -0
- package/dist/engine/dashboard/templates-project.js.map +1 -0
- package/dist/engine/dashboard/templates.d.ts +3 -0
- package/dist/engine/dashboard/templates.d.ts.map +1 -0
- package/dist/engine/dashboard/templates.js +4 -0
- package/dist/engine/dashboard/templates.js.map +1 -0
- package/dist/engine/focus-tracker.d.ts.map +1 -1
- package/dist/engine/focus-tracker.js +1 -0
- package/dist/engine/focus-tracker.js.map +1 -1
- package/dist/engine/hooks/core.d.ts +26 -0
- package/dist/engine/hooks/core.d.ts.map +1 -0
- package/dist/engine/hooks/core.js +164 -0
- package/dist/engine/hooks/core.js.map +1 -0
- package/dist/engine/hooks/git-hook-generator.d.ts +14 -0
- package/dist/engine/hooks/git-hook-generator.d.ts.map +1 -0
- package/dist/engine/hooks/git-hook-generator.js +119 -0
- package/dist/engine/hooks/git-hook-generator.js.map +1 -0
- package/dist/engine/hooks/index.d.ts +5 -0
- package/dist/engine/hooks/index.d.ts.map +1 -0
- package/dist/engine/hooks/index.js +6 -0
- package/dist/engine/hooks/index.js.map +1 -0
- package/dist/engine/hooks/templates.d.ts +14 -0
- package/dist/engine/hooks/templates.d.ts.map +1 -0
- package/dist/engine/hooks/templates.js +138 -0
- package/dist/engine/hooks/templates.js.map +1 -0
- package/dist/engine/hooks/triggers.d.ts +27 -0
- package/dist/engine/hooks/triggers.d.ts.map +1 -0
- package/dist/engine/hooks/triggers.js +104 -0
- package/dist/engine/hooks/triggers.js.map +1 -0
- package/dist/engine/registry/core.d.ts +32 -0
- package/dist/engine/registry/core.d.ts.map +1 -0
- package/dist/engine/registry/core.js +85 -0
- package/dist/engine/registry/core.js.map +1 -0
- package/dist/engine/registry/index.d.ts +6 -0
- package/dist/engine/registry/index.d.ts.map +1 -0
- package/dist/engine/registry/index.js +8 -0
- package/dist/engine/registry/index.js.map +1 -0
- package/dist/engine/registry/loader.d.ts +18 -0
- package/dist/engine/registry/loader.d.ts.map +1 -0
- package/dist/engine/registry/loader.js +81 -0
- package/dist/engine/registry/loader.js.map +1 -0
- package/dist/engine/registry/matcher.d.ts +19 -0
- package/dist/engine/registry/matcher.d.ts.map +1 -0
- package/dist/engine/registry/matcher.js +150 -0
- package/dist/engine/registry/matcher.js.map +1 -0
- package/dist/engine/registry/reporter.d.ts +10 -0
- package/dist/engine/registry/reporter.d.ts.map +1 -0
- package/dist/engine/registry/reporter.js +132 -0
- package/dist/engine/registry/reporter.js.map +1 -0
- package/dist/engine/registry/validator.d.ts +17 -0
- package/dist/engine/registry/validator.d.ts.map +1 -0
- package/dist/engine/registry/validator.js +103 -0
- package/dist/engine/registry/validator.js.map +1 -0
- package/dist/engine/spec-changelog/core.d.ts +16 -0
- package/dist/engine/spec-changelog/core.d.ts.map +1 -0
- package/dist/engine/spec-changelog/core.js +175 -0
- package/dist/engine/spec-changelog/core.js.map +1 -0
- package/dist/engine/spec-changelog/diff.d.ts +18 -0
- package/dist/engine/spec-changelog/diff.d.ts.map +1 -0
- package/dist/engine/spec-changelog/diff.js +116 -0
- package/dist/engine/spec-changelog/diff.js.map +1 -0
- package/dist/engine/spec-changelog/index.d.ts +3 -0
- package/dist/engine/spec-changelog/index.d.ts.map +1 -0
- package/dist/engine/spec-changelog/index.js +4 -0
- package/dist/engine/spec-changelog/index.js.map +1 -0
- package/dist/engine/spec-coverage/core.d.ts +14 -0
- package/dist/engine/spec-coverage/core.d.ts.map +1 -0
- package/dist/engine/spec-coverage/core.js +132 -0
- package/dist/engine/spec-coverage/core.js.map +1 -0
- package/dist/engine/spec-coverage/criteria-mapper.d.ts +18 -0
- package/dist/engine/spec-coverage/criteria-mapper.d.ts.map +1 -0
- package/dist/engine/spec-coverage/criteria-mapper.js +306 -0
- package/dist/engine/spec-coverage/criteria-mapper.js.map +1 -0
- package/dist/engine/spec-coverage/index.d.ts +4 -0
- package/dist/engine/spec-coverage/index.d.ts.map +1 -0
- package/dist/engine/spec-coverage/index.js +5 -0
- package/dist/engine/spec-coverage/index.js.map +1 -0
- package/dist/engine/spec-coverage/test-finder.d.ts +17 -0
- package/dist/engine/spec-coverage/test-finder.d.ts.map +1 -0
- package/dist/engine/spec-coverage/test-finder.js +250 -0
- package/dist/engine/spec-coverage/test-finder.js.map +1 -0
- package/dist/engine/spec-templates/catalog-extra.d.ts +4 -0
- package/dist/engine/spec-templates/catalog-extra.d.ts.map +1 -0
- package/dist/engine/spec-templates/catalog-extra.js +367 -0
- package/dist/engine/spec-templates/catalog-extra.js.map +1 -0
- package/dist/engine/spec-templates/catalog.d.ts +4 -0
- package/dist/engine/spec-templates/catalog.d.ts.map +1 -0
- package/dist/engine/spec-templates/catalog.js +386 -0
- package/dist/engine/spec-templates/catalog.js.map +1 -0
- package/dist/engine/spec-templates/index.d.ts +4 -0
- package/dist/engine/spec-templates/index.d.ts.map +1 -0
- package/dist/engine/spec-templates/index.js +5 -0
- package/dist/engine/spec-templates/index.js.map +1 -0
- package/dist/engine/spec-templates/query.d.ts +14 -0
- package/dist/engine/spec-templates/query.d.ts.map +1 -0
- package/dist/engine/spec-templates/query.js +56 -0
- package/dist/engine/spec-templates/query.js.map +1 -0
- package/dist/engine/spec-templates/renderer.d.ts +19 -0
- package/dist/engine/spec-templates/renderer.d.ts.map +1 -0
- package/dist/engine/spec-templates/renderer.js +45 -0
- package/dist/engine/spec-templates/renderer.js.map +1 -0
- package/dist/engine/usage-tracker/trial.d.ts +4 -4
- package/dist/engine/usage-tracker/trial.d.ts.map +1 -1
- package/dist/engine/usage-tracker/trial.js +4 -4
- package/dist/engine/usage-tracker/trial.js.map +1 -1
- package/dist/engine/webhook/event-handlers.d.ts +25 -0
- package/dist/engine/webhook/event-handlers.d.ts.map +1 -0
- package/dist/engine/webhook/event-handlers.js +89 -0
- package/dist/engine/webhook/event-handlers.js.map +1 -0
- package/dist/engine/webhook/index.d.ts +4 -0
- package/dist/engine/webhook/index.d.ts.map +1 -0
- package/dist/engine/webhook/index.js +5 -0
- package/dist/engine/webhook/index.js.map +1 -0
- package/dist/engine/webhook/server.d.ts +18 -0
- package/dist/engine/webhook/server.d.ts.map +1 -0
- package/dist/engine/webhook/server.js +187 -0
- package/dist/engine/webhook/server.js.map +1 -0
- package/dist/engine/webhook/signature.d.ts +16 -0
- package/dist/engine/webhook/signature.d.ts.map +1 -0
- package/dist/engine/webhook/signature.js +49 -0
- package/dist/engine/webhook/signature.js.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -1
- package/dist/storage/hooks-store.d.ts +34 -0
- package/dist/storage/hooks-store.d.ts.map +1 -0
- package/dist/storage/hooks-store.js +128 -0
- package/dist/storage/hooks-store.js.map +1 -0
- package/dist/storage/index.d.ts +1 -0
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +1 -0
- package/dist/storage/index.js.map +1 -1
- package/dist/tools/check-spec-accuracy.d.ts +7 -0
- package/dist/tools/check-spec-accuracy.d.ts.map +1 -0
- package/dist/tools/check-spec-accuracy.js +28 -0
- package/dist/tools/check-spec-accuracy.js.map +1 -0
- package/dist/tools/ci-generator.d.ts +7 -0
- package/dist/tools/ci-generator.d.ts.map +1 -0
- package/dist/tools/ci-generator.js +49 -0
- package/dist/tools/ci-generator.js.map +1 -0
- package/dist/tools/create-spec.d.ts.map +1 -1
- package/dist/tools/create-spec.js +4 -0
- package/dist/tools/create-spec.js.map +1 -1
- package/dist/tools/dashboard.d.ts +6 -0
- package/dist/tools/dashboard.d.ts.map +1 -0
- package/dist/tools/dashboard.js +48 -0
- package/dist/tools/dashboard.js.map +1 -0
- package/dist/tools/detect-drift.d.ts.map +1 -1
- package/dist/tools/detect-drift.js +6 -0
- package/dist/tools/detect-drift.js.map +1 -1
- package/dist/tools/estimate-ai-cost.d.ts +8 -0
- package/dist/tools/estimate-ai-cost.d.ts.map +1 -0
- package/dist/tools/estimate-ai-cost.js +29 -0
- package/dist/tools/estimate-ai-cost.js.map +1 -0
- package/dist/tools/list-specs.d.ts.map +1 -1
- package/dist/tools/list-specs.js +15 -0
- package/dist/tools/list-specs.js.map +1 -1
- package/dist/tools/manage-hooks.d.ts +5 -0
- package/dist/tools/manage-hooks.d.ts.map +1 -0
- package/dist/tools/manage-hooks.js +247 -0
- package/dist/tools/manage-hooks.js.map +1 -0
- package/dist/tools/reconcile-spec.d.ts.map +1 -1
- package/dist/tools/reconcile-spec.js +24 -0
- package/dist/tools/reconcile-spec.js.map +1 -1
- package/dist/tools/register-ai-cost-tools.d.ts +3 -0
- package/dist/tools/register-ai-cost-tools.d.ts.map +1 -0
- package/dist/tools/register-ai-cost-tools.js +25 -0
- package/dist/tools/register-ai-cost-tools.js.map +1 -0
- package/dist/tools/register-changelog-tools.d.ts +3 -0
- package/dist/tools/register-changelog-tools.d.ts.map +1 -0
- package/dist/tools/register-changelog-tools.js +23 -0
- package/dist/tools/register-changelog-tools.js.map +1 -0
- package/dist/tools/register-ci-tools.d.ts +3 -0
- package/dist/tools/register-ci-tools.d.ts.map +1 -0
- package/dist/tools/register-ci-tools.js +50 -0
- package/dist/tools/register-ci-tools.js.map +1 -0
- package/dist/tools/register-coverage-tools.d.ts +7 -0
- package/dist/tools/register-coverage-tools.d.ts.map +1 -0
- package/dist/tools/register-coverage-tools.js +27 -0
- package/dist/tools/register-coverage-tools.js.map +1 -0
- package/dist/tools/register-dashboard-tools.d.ts +3 -0
- package/dist/tools/register-dashboard-tools.d.ts.map +1 -0
- package/dist/tools/register-dashboard-tools.js +29 -0
- package/dist/tools/register-dashboard-tools.js.map +1 -0
- package/dist/tools/register-hooks-tools.d.ts +3 -0
- package/dist/tools/register-hooks-tools.d.ts.map +1 -0
- package/dist/tools/register-hooks-tools.js +107 -0
- package/dist/tools/register-hooks-tools.js.map +1 -0
- package/dist/tools/register-registry-tools.d.ts +3 -0
- package/dist/tools/register-registry-tools.d.ts.map +1 -0
- package/dist/tools/register-registry-tools.js +43 -0
- package/dist/tools/register-registry-tools.js.map +1 -0
- package/dist/tools/register-template-tools.d.ts +8 -0
- package/dist/tools/register-template-tools.d.ts.map +1 -0
- package/dist/tools/register-template-tools.js +71 -0
- package/dist/tools/register-template-tools.js.map +1 -0
- package/dist/tools/register-webhook-tools.d.ts +3 -0
- package/dist/tools/register-webhook-tools.d.ts.map +1 -0
- package/dist/tools/register-webhook-tools.js +49 -0
- package/dist/tools/register-webhook-tools.js.map +1 -0
- package/dist/tools/schemas/index.d.ts +1 -0
- package/dist/tools/schemas/index.d.ts.map +1 -1
- package/dist/tools/schemas/index.js +1 -0
- package/dist/tools/schemas/index.js.map +1 -1
- package/dist/tools/schemas/registry.d.ts +41 -0
- package/dist/tools/schemas/registry.d.ts.map +1 -0
- package/dist/tools/schemas/registry.js +62 -0
- package/dist/tools/schemas/registry.js.map +1 -0
- package/dist/tools/spec-coverage.d.ts +3 -0
- package/dist/tools/spec-coverage.d.ts.map +1 -0
- package/dist/tools/spec-coverage.js +176 -0
- package/dist/tools/spec-coverage.js.map +1 -0
- package/dist/tools/spec-history.d.ts +3 -0
- package/dist/tools/spec-history.d.ts.map +1 -0
- package/dist/tools/spec-history.js +67 -0
- package/dist/tools/spec-history.js.map +1 -0
- package/dist/tools/spec-templates.d.ts +10 -0
- package/dist/tools/spec-templates.d.ts.map +1 -0
- package/dist/tools/spec-templates.js +155 -0
- package/dist/tools/spec-templates.js.map +1 -0
- package/dist/tools/update-registry.d.ts +8 -0
- package/dist/tools/update-registry.d.ts.map +1 -0
- package/dist/tools/update-registry.js +53 -0
- package/dist/tools/update-registry.js.map +1 -0
- package/dist/tools/update-status.d.ts.map +1 -1
- package/dist/tools/update-status.js +24 -0
- package/dist/tools/update-status.js.map +1 -1
- package/dist/tools/webhook.d.ts +6 -0
- package/dist/tools/webhook.d.ts.map +1 -0
- package/dist/tools/webhook.js +150 -0
- package/dist/tools/webhook.js.map +1 -0
- package/dist/types/ai-cost.d.ts +98 -0
- package/dist/types/ai-cost.d.ts.map +1 -0
- package/dist/types/ai-cost.js +4 -0
- package/dist/types/ai-cost.js.map +1 -0
- package/dist/types/analysis.d.ts +64 -0
- package/dist/types/analysis.d.ts.map +1 -1
- package/dist/types/changelog.d.ts +49 -0
- package/dist/types/changelog.d.ts.map +1 -0
- package/dist/types/changelog.js +3 -0
- package/dist/types/changelog.js.map +1 -0
- package/dist/types/ci.d.ts +105 -0
- package/dist/types/ci.d.ts.map +1 -0
- package/dist/types/ci.js +3 -0
- package/dist/types/ci.js.map +1 -0
- package/dist/types/coverage.d.ts +95 -0
- package/dist/types/coverage.d.ts.map +1 -0
- package/dist/types/coverage.js +4 -0
- package/dist/types/coverage.js.map +1 -0
- package/dist/types/hooks.d.ts +139 -0
- package/dist/types/hooks.d.ts.map +1 -0
- package/dist/types/hooks.js +3 -0
- package/dist/types/hooks.js.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/registry.d.ts +90 -0
- package/dist/types/registry.d.ts.map +1 -0
- package/dist/types/registry.js +5 -0
- package/dist/types/registry.js.map +1 -0
- package/dist/types/spec-templates.d.ts +87 -0
- package/dist/types/spec-templates.d.ts.map +1 -0
- package/dist/types/spec-templates.js +3 -0
- package/dist/types/spec-templates.js.map +1 -0
- package/dist/types/ui.d.ts +76 -0
- package/dist/types/ui.d.ts.map +1 -1
- package/dist/types/webhook.d.ts +62 -0
- package/dist/types/webhook.d.ts.map +1 -0
- package/dist/types/webhook.js +4 -0
- package/dist/types/webhook.js.map +1 -0
- package/package.json +1 -1
- package/src/config/ai-model-pricing.json +81 -0
- package/src/config/framework-registry/csharp-aspnet.json +67 -0
- package/src/config/framework-registry/dart-flutter.json +61 -0
- package/src/config/framework-registry/go-gin.json +62 -0
- package/src/config/framework-registry/index.json +164 -0
- package/src/config/framework-registry/java-springboot.json +67 -0
- package/src/config/framework-registry/php-laravel.json +67 -0
- package/src/config/framework-registry/python-django.json +72 -0
- package/src/config/framework-registry/python-fastapi.json +72 -0
- package/src/config/framework-registry/ruby-rails.json +67 -0
- package/src/config/framework-registry/rust-actix.json +61 -0
- package/src/config/framework-registry/swift-swiftui.json +67 -0
- package/src/config/framework-registry/typescript-angular.json +67 -0
- package/src/config/framework-registry/typescript-astro.json +61 -0
- package/src/config/framework-registry/typescript-express.json +67 -0
- package/src/config/framework-registry/typescript-nestjs.json +62 -0
- package/src/config/framework-registry/typescript-nextjs.json +82 -0
- package/src/config/framework-registry/typescript-nuxt.json +67 -0
- package/src/config/framework-registry/typescript-react.json +77 -0
- package/src/config/framework-registry/typescript-remix.json +61 -0
- package/src/config/framework-registry/typescript-sveltekit.json +67 -0
- package/src/config/framework-registry/typescript-vue.json +72 -0
- package/src/config/license-plans.json +23 -3
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
// tools/register-hooks-tools.ts — Registers manage_hooks on the MCP server (SPEC-071)
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { safeLicensed } from './safe-handler.js';
|
|
4
|
+
import { handleManageHooks } from './manage-hooks.js';
|
|
5
|
+
export function registerHooksTools(server) {
|
|
6
|
+
server.registerTool('manage_hooks', {
|
|
7
|
+
description: 'Create, list, delete, enable/disable, and install templates for agent hooks. ' +
|
|
8
|
+
'Hooks automate actions when Planu events fire (spec created, status change, drift detected, commit). ' +
|
|
9
|
+
'Use dry_run to preview which hooks would fire without side effects.',
|
|
10
|
+
inputSchema: {
|
|
11
|
+
projectId: z.string().describe('Project ID to manage hooks for'),
|
|
12
|
+
operation: z
|
|
13
|
+
.enum([
|
|
14
|
+
'create',
|
|
15
|
+
'list',
|
|
16
|
+
'delete',
|
|
17
|
+
'enable',
|
|
18
|
+
'disable',
|
|
19
|
+
'install_template',
|
|
20
|
+
'dry_run',
|
|
21
|
+
'list_logs',
|
|
22
|
+
])
|
|
23
|
+
.describe('Operation: create | list | delete | enable | disable | install_template | dry_run | list_logs'),
|
|
24
|
+
hook: z
|
|
25
|
+
.object({
|
|
26
|
+
name: z.string().describe('Human-readable hook name').optional(),
|
|
27
|
+
description: z.string().describe('What this hook does').optional(),
|
|
28
|
+
trigger: z
|
|
29
|
+
.enum(['on_spec_created', 'on_spec_status_change', 'on_drift_detected', 'on_commit'])
|
|
30
|
+
.describe('Trigger: on_spec_created | on_spec_status_change | on_drift_detected | on_commit')
|
|
31
|
+
.optional(),
|
|
32
|
+
filter: z
|
|
33
|
+
.object({
|
|
34
|
+
fromStatus: z
|
|
35
|
+
.string()
|
|
36
|
+
.optional()
|
|
37
|
+
.describe('Only fire when status changes FROM this'),
|
|
38
|
+
toStatus: z.string().optional().describe('Only fire when status changes TO this'),
|
|
39
|
+
specIdPattern: z
|
|
40
|
+
.string()
|
|
41
|
+
.optional()
|
|
42
|
+
.describe('Only fire for specs matching this glob pattern (e.g. SPEC-*)'),
|
|
43
|
+
})
|
|
44
|
+
.optional()
|
|
45
|
+
.describe('Optional filter conditions for conditional firing'),
|
|
46
|
+
actions: z
|
|
47
|
+
.array(z.object({
|
|
48
|
+
type: z
|
|
49
|
+
.enum(['run_tool', 'log_message', 'set_variable', 'notify'])
|
|
50
|
+
.describe('Action type: run_tool | log_message | set_variable | notify'),
|
|
51
|
+
tool: z.string().optional().describe('Tool name (for run_tool)'),
|
|
52
|
+
args: z
|
|
53
|
+
.record(z.string(), z.unknown())
|
|
54
|
+
.optional()
|
|
55
|
+
.describe('Tool args (for run_tool)'),
|
|
56
|
+
message: z
|
|
57
|
+
.string()
|
|
58
|
+
.optional()
|
|
59
|
+
.describe('Message template (for log_message/notify)'),
|
|
60
|
+
key: z.string().optional().describe('Variable key (for set_variable)'),
|
|
61
|
+
value: z.string().optional().describe('Variable value (for set_variable)'),
|
|
62
|
+
}))
|
|
63
|
+
.optional()
|
|
64
|
+
.describe('Ordered list of actions to execute when hook fires'),
|
|
65
|
+
enabled: z.boolean().optional().describe('Whether hook is active (default: true)'),
|
|
66
|
+
})
|
|
67
|
+
.optional()
|
|
68
|
+
.describe('Hook definition — required for create operation'),
|
|
69
|
+
hookId: z
|
|
70
|
+
.string()
|
|
71
|
+
.optional()
|
|
72
|
+
.describe('Hook ID — required for delete, enable, disable, dry_run'),
|
|
73
|
+
templateName: z
|
|
74
|
+
.string()
|
|
75
|
+
.optional()
|
|
76
|
+
.describe('Template name — required for install_template. Options: sdd-full | ci-ready | quality-gate'),
|
|
77
|
+
dryRunPayload: z
|
|
78
|
+
.object({
|
|
79
|
+
trigger: z
|
|
80
|
+
.enum(['on_spec_created', 'on_spec_status_change', 'on_drift_detected', 'on_commit'])
|
|
81
|
+
.describe('Trigger type to simulate'),
|
|
82
|
+
projectId: z.string().describe('Project ID for the simulated event'),
|
|
83
|
+
timestamp: z.string().optional().describe('Event timestamp (defaults to now)'),
|
|
84
|
+
specId: z.string().optional().describe('Spec ID (for spec-related triggers)'),
|
|
85
|
+
specTitle: z.string().optional().describe('Spec title'),
|
|
86
|
+
specType: z.string().optional().describe('Spec type (for on_spec_created)'),
|
|
87
|
+
fromStatus: z
|
|
88
|
+
.string()
|
|
89
|
+
.optional()
|
|
90
|
+
.describe('Previous status (for on_spec_status_change)'),
|
|
91
|
+
toStatus: z.string().optional().describe('New status (for on_spec_status_change)'),
|
|
92
|
+
driftScore: z.number().optional().describe('Drift score 0-100 (for on_drift_detected)'),
|
|
93
|
+
driftSummary: z.string().optional().describe('Drift summary (for on_drift_detected)'),
|
|
94
|
+
commitHash: z.string().optional().describe('Commit hash (for on_commit)'),
|
|
95
|
+
commitMessage: z.string().optional().describe('Commit message (for on_commit)'),
|
|
96
|
+
branch: z.string().optional().describe('Branch name (for on_commit)'),
|
|
97
|
+
})
|
|
98
|
+
.optional()
|
|
99
|
+
.describe('Simulated event payload for dry_run operation'),
|
|
100
|
+
},
|
|
101
|
+
annotations: {
|
|
102
|
+
title: 'Manage Agent Hooks',
|
|
103
|
+
readOnlyHint: false,
|
|
104
|
+
},
|
|
105
|
+
}, safeLicensed('manage_hooks', async (args) => handleManageHooks(args)));
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=register-hooks-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-hooks-tools.js","sourceRoot":"","sources":["../../src/tools/register-hooks-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-registry-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-registry-tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6C7D"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// tools/register-registry-tools.ts — Registers SPEC-072 framework registry tools
|
|
2
|
+
// check_spec_accuracy: validates spec content against the framework registry
|
|
3
|
+
// update_registry: allows adding custom framework entries
|
|
4
|
+
import { safeTracked } from './safe-handler.js';
|
|
5
|
+
import { CheckSpecAccuracySchema, UpdateRegistrySchema } from './schemas/registry.js';
|
|
6
|
+
import { handleCheckSpecAccuracy } from './check-spec-accuracy.js';
|
|
7
|
+
import { handleUpdateRegistry } from './update-registry.js';
|
|
8
|
+
export function registerRegistryTools(server) {
|
|
9
|
+
// check_spec_accuracy
|
|
10
|
+
server.registerTool('check_spec_accuracy', {
|
|
11
|
+
description: 'Validate spec content (HU.md text or acceptance criteria) against the framework registry ' +
|
|
12
|
+
'to detect hallucinated APIs, deprecated patterns, and common mistakes. ' +
|
|
13
|
+
'Returns a confidence score (0-100) and actionable suggestions.',
|
|
14
|
+
inputSchema: {
|
|
15
|
+
specContent: CheckSpecAccuracySchema.shape.specContent,
|
|
16
|
+
frameworks: CheckSpecAccuracySchema.shape.frameworks,
|
|
17
|
+
},
|
|
18
|
+
annotations: {
|
|
19
|
+
title: 'Check Spec Accuracy',
|
|
20
|
+
readOnlyHint: true,
|
|
21
|
+
},
|
|
22
|
+
}, safeTracked('check_spec_accuracy', async (args) => handleCheckSpecAccuracy(args)));
|
|
23
|
+
// update_registry
|
|
24
|
+
server.registerTool('update_registry', {
|
|
25
|
+
description: 'Add a custom framework entry to the local registry. ' +
|
|
26
|
+
'Custom entries override base entries and are stored in data/global/registry-custom.json. ' +
|
|
27
|
+
'Use this to register internal frameworks or override outdated base entries.',
|
|
28
|
+
inputSchema: {
|
|
29
|
+
framework: UpdateRegistrySchema.shape.framework,
|
|
30
|
+
displayName: UpdateRegistrySchema.shape.displayName,
|
|
31
|
+
ecosystem: UpdateRegistrySchema.shape.ecosystem,
|
|
32
|
+
frameworkVersion: UpdateRegistrySchema.shape.frameworkVersion,
|
|
33
|
+
correctPatterns: UpdateRegistrySchema.shape.correctPatterns,
|
|
34
|
+
deprecatedPatterns: UpdateRegistrySchema.shape.deprecatedPatterns,
|
|
35
|
+
commonMistakes: UpdateRegistrySchema.shape.commonMistakes,
|
|
36
|
+
},
|
|
37
|
+
annotations: {
|
|
38
|
+
title: 'Update Framework Registry',
|
|
39
|
+
destructiveHint: false,
|
|
40
|
+
},
|
|
41
|
+
}, safeTracked('update_registry', async (args) => handleUpdateRegistry(args)));
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=register-registry-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-registry-tools.js","sourceRoot":"","sources":["../../src/tools/register-registry-tools.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,6EAA6E;AAC7E,0DAA0D;AAG1D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,sBAAsB;IACtB,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EACT,2FAA2F;YAC3F,yEAAyE;YACzE,gEAAgE;QAClE,WAAW,EAAE;YACX,WAAW,EAAE,uBAAuB,CAAC,KAAK,CAAC,WAAW;YACtD,UAAU,EAAE,uBAAuB,CAAC,KAAK,CAAC,UAAU;SACrD;QACD,WAAW,EAAE;YACX,KAAK,EAAE,qBAAqB;YAC5B,YAAY,EAAE,IAAI;SACnB;KACF,EACD,WAAW,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAClF,CAAC;IAEF,kBAAkB;IAClB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EACT,sDAAsD;YACtD,2FAA2F;YAC3F,6EAA6E;QAC/E,WAAW,EAAE;YACX,SAAS,EAAE,oBAAoB,CAAC,KAAK,CAAC,SAAS;YAC/C,WAAW,EAAE,oBAAoB,CAAC,KAAK,CAAC,WAAW;YACnD,SAAS,EAAE,oBAAoB,CAAC,KAAK,CAAC,SAAS;YAC/C,gBAAgB,EAAE,oBAAoB,CAAC,KAAK,CAAC,gBAAgB;YAC7D,eAAe,EAAE,oBAAoB,CAAC,KAAK,CAAC,eAAe;YAC3D,kBAAkB,EAAE,oBAAoB,CAAC,KAAK,CAAC,kBAAkB;YACjE,cAAc,EAAE,oBAAoB,CAAC,KAAK,CAAC,cAAc;SAC1D;QACD,WAAW,EAAE;YACX,KAAK,EAAE,2BAA2B;YAClC,eAAe,EAAE,KAAK;SACvB;KACF,EACD,WAAW,CAAC,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAC3E,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
/**
|
|
3
|
+
* Registers spec template tools on the MCP server.
|
|
4
|
+
* - list_templates: free, tracked
|
|
5
|
+
* - apply_template: Pro (license-gated)
|
|
6
|
+
*/
|
|
7
|
+
export declare function registerTemplateTools(server: McpServer): void;
|
|
8
|
+
//# sourceMappingURL=register-template-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-template-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-template-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAkBzE;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyE7D"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// tools/register-template-tools.ts — Registers spec template tools on the MCP server.
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { safeTracked, safeLicensed } from './safe-handler.js';
|
|
4
|
+
import { handleListTemplates, handleApplyTemplate } from './spec-templates.js';
|
|
5
|
+
const TEMPLATE_CATEGORIES = [
|
|
6
|
+
'auth',
|
|
7
|
+
'crud',
|
|
8
|
+
'api',
|
|
9
|
+
'ui',
|
|
10
|
+
'infra',
|
|
11
|
+
'testing',
|
|
12
|
+
'integration',
|
|
13
|
+
'data',
|
|
14
|
+
'security',
|
|
15
|
+
'performance',
|
|
16
|
+
];
|
|
17
|
+
/**
|
|
18
|
+
* Registers spec template tools on the MCP server.
|
|
19
|
+
* - list_templates: free, tracked
|
|
20
|
+
* - apply_template: Pro (license-gated)
|
|
21
|
+
*/
|
|
22
|
+
export function registerTemplateTools(server) {
|
|
23
|
+
// list_templates — browse and discover templates
|
|
24
|
+
server.registerTool('list_templates', {
|
|
25
|
+
description: 'Browse the built-in spec template catalog. Returns available templates with descriptions, ' +
|
|
26
|
+
'categories, tags, and required variables. Use apply_template to create a spec from a template.',
|
|
27
|
+
inputSchema: {
|
|
28
|
+
category: z
|
|
29
|
+
.enum(TEMPLATE_CATEGORIES)
|
|
30
|
+
.optional()
|
|
31
|
+
.describe('Filter templates by category. Type: auth | crud | api | ui | infra | testing | integration | data | security | performance'),
|
|
32
|
+
search: z
|
|
33
|
+
.string()
|
|
34
|
+
.optional()
|
|
35
|
+
.describe('Full-text search across template names, descriptions, and tags (case-insensitive)'),
|
|
36
|
+
},
|
|
37
|
+
annotations: { title: 'List Spec Templates', readOnlyHint: true },
|
|
38
|
+
}, safeTracked('list_templates', (args) => Promise.resolve(handleListTemplates(args))));
|
|
39
|
+
// apply_template — create spec files from a template
|
|
40
|
+
server.registerTool('apply_template', {
|
|
41
|
+
description: 'Create HU.md, FICHA-TECNICA.md, and PROGRESS.md from a built-in spec template. ' +
|
|
42
|
+
'Templates are language-agnostic and cover common feature patterns (auth, CRUD, API, etc.). ' +
|
|
43
|
+
'Use list_templates first to discover available templates and their required variables.',
|
|
44
|
+
inputSchema: {
|
|
45
|
+
templateId: z
|
|
46
|
+
.string()
|
|
47
|
+
.describe('ID of the template to apply (e.g. "auth-jwt", "crud-entity"). Use list_templates to get valid IDs.'),
|
|
48
|
+
projectPath: z
|
|
49
|
+
.string()
|
|
50
|
+
.describe('Absolute path to the project root where specs will be created'),
|
|
51
|
+
variables: z
|
|
52
|
+
.array(z.object({
|
|
53
|
+
key: z
|
|
54
|
+
.string()
|
|
55
|
+
.describe('Variable key as defined in the template (e.g. "EntityName")'),
|
|
56
|
+
value: z.string().describe('Value to substitute for this variable (e.g. "Product")'),
|
|
57
|
+
}))
|
|
58
|
+
.describe('Template variable substitutions. Use list_templates to see required variables for each template.'),
|
|
59
|
+
feature: z
|
|
60
|
+
.string()
|
|
61
|
+
.optional()
|
|
62
|
+
.describe('Feature group name (e.g. "Authentication", "Products"). Specs are organized under planu/specs/{feature}/. Defaults to _general.'),
|
|
63
|
+
outputDir: z
|
|
64
|
+
.string()
|
|
65
|
+
.optional()
|
|
66
|
+
.describe('Custom absolute path for the output directory. Overrides the default planu/specs/{feature}/{template-id}/ layout.'),
|
|
67
|
+
},
|
|
68
|
+
annotations: { title: 'Apply Spec Template', destructiveHint: false },
|
|
69
|
+
}, safeLicensed('apply_template', async (args) => handleApplyTemplate(args)));
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=register-template-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-template-tools.js","sourceRoot":"","sources":["../../src/tools/register-template-tools.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAGtF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,MAAM,mBAAmB,GAAG;IAC1B,MAAM;IACN,MAAM;IACN,KAAK;IACL,IAAI;IACJ,OAAO;IACP,SAAS;IACT,aAAa;IACb,MAAM;IACN,UAAU;IACV,aAAa;CACL,CAAC;AAEX;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,iDAAiD;IACjD,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,4FAA4F;YAC5F,gGAAgG;QAClG,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC;iBACR,IAAI,CAAC,mBAAmB,CAAC;iBACzB,QAAQ,EAAE;iBACV,QAAQ,CACP,4HAA4H,CAC7H;YACH,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,mFAAmF,CACpF;SACJ;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,IAAI,EAAE;KAClE,EACD,WAAW,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CACpF,CAAC;IAEF,qDAAqD;IACrD,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,iFAAiF;YACjF,6FAA6F;YAC7F,wFAAwF;QAC1F,WAAW,EAAE;YACX,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,CACP,oGAAoG,CACrG;YACH,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,CAAC,+DAA+D,CAAC;YAC5E,SAAS,EAAE,CAAC;iBACT,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;gBACP,GAAG,EAAE,CAAC;qBACH,MAAM,EAAE;qBACR,QAAQ,CAAC,6DAA6D,CAAC;gBAC1E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;aACrF,CAAC,CACH;iBACA,QAAQ,CACP,kGAAkG,CACnG;YACH,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,iIAAiI,CAClI;YACH,SAAS,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,mHAAmH,CACpH;SACJ;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,KAAK,EAAE;KACtE,EACD,YAAY,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAC1E,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-webhook-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-webhook-tools.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA4D5D"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// tools/register-webhook-tools.ts — Registers webhook management tools on the MCP server.
|
|
2
|
+
// These tools are always accessible (no license gate) — they manage the webhook receiver.
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { safe } from './safe-handler.js';
|
|
5
|
+
import { handleStartWebhook, handleStopWebhook, handleWebhookStatus } from './webhook.js';
|
|
6
|
+
export function registerWebhookTools(server) {
|
|
7
|
+
// start_webhook
|
|
8
|
+
server.registerTool('start_webhook', {
|
|
9
|
+
description: 'Start a local HTTP server to receive Lemon Squeezy webhook events. ' +
|
|
10
|
+
'Configure the server URL in your Lemon Squeezy dashboard under Settings > Webhooks.',
|
|
11
|
+
inputSchema: {
|
|
12
|
+
port: z
|
|
13
|
+
.number()
|
|
14
|
+
.int()
|
|
15
|
+
.min(1)
|
|
16
|
+
.max(65535)
|
|
17
|
+
.optional()
|
|
18
|
+
.describe('Port to listen on (default: 2358)'),
|
|
19
|
+
secret: z
|
|
20
|
+
.string()
|
|
21
|
+
.optional()
|
|
22
|
+
.describe('Webhook secret from Lemon Squeezy dashboard for HMAC-SHA256 signature validation'),
|
|
23
|
+
},
|
|
24
|
+
annotations: { title: 'Start Webhook Server', readOnlyHint: false },
|
|
25
|
+
}, safe((args) => handleStartWebhook(args)));
|
|
26
|
+
// stop_webhook
|
|
27
|
+
server.registerTool('stop_webhook', {
|
|
28
|
+
description: 'Stop the running Lemon Squeezy webhook server.',
|
|
29
|
+
inputSchema: {
|
|
30
|
+
force: z
|
|
31
|
+
.boolean()
|
|
32
|
+
.optional()
|
|
33
|
+
.describe('Force stop even if events are being processed (default: false)'),
|
|
34
|
+
},
|
|
35
|
+
annotations: { title: 'Stop Webhook Server', destructiveHint: false },
|
|
36
|
+
}, safe((args) => handleStopWebhook(args)));
|
|
37
|
+
// webhook_status
|
|
38
|
+
server.registerTool('webhook_status', {
|
|
39
|
+
description: 'Show whether the webhook server is running and display recently received events.',
|
|
40
|
+
inputSchema: {
|
|
41
|
+
includeEvents: z
|
|
42
|
+
.boolean()
|
|
43
|
+
.optional()
|
|
44
|
+
.describe('Include recent event log in the output (default: true)'),
|
|
45
|
+
},
|
|
46
|
+
annotations: { title: 'Webhook Status', readOnlyHint: true },
|
|
47
|
+
}, safe((args) => Promise.resolve(handleWebhookStatus(args))));
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=register-webhook-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-webhook-tools.js","sourceRoot":"","sources":["../../src/tools/register-webhook-tools.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,0FAA0F;AAG1F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAE1F,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,gBAAgB;IAChB,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,WAAW,EACT,qEAAqE;YACrE,qFAAqF;QACvF,WAAW,EAAE;YACX,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,KAAK,CAAC;iBACV,QAAQ,EAAE;iBACV,QAAQ,CAAC,mCAAmC,CAAC;YAChD,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,kFAAkF,CACnF;SACJ;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,KAAK,EAAE;KACpE,EACD,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CACzC,CAAC;IAEF,eAAe;IACf,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EAAE,gDAAgD;QAC7D,WAAW,EAAE;YACX,KAAK,EAAE,CAAC;iBACL,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,gEAAgE,CAAC;SAC9E;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,KAAK,EAAE;KACtE,EACD,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CACxC,CAAC;IAEF,iBAAiB;IACjB,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,kFAAkF;QACpF,WAAW,EAAE;YACX,aAAa,EAAE,CAAC;iBACb,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,wDAAwD,CAAC;SACtE;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,IAAI,EAAE;KAC7D,EACD,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAC3D,CAAC;AACJ,CAAC"}
|
|
@@ -3,4 +3,5 @@ export { AuditCategoryEnum, ChecklistFocusEnum, ChallengeSpecFocusEnum } from '.
|
|
|
3
3
|
export { AgentPlatformEnum, SubAgentFrameworkEnum } from './agents.js';
|
|
4
4
|
export { DocumentationTypeEnum, GitActionEnum, DevLifecycleCategoryEnum, PMPlatformEnum, PMActionEnum, } from './lifecycle.js';
|
|
5
5
|
export { OrchestrateActionEnum, ManageContextActionEnum, ContextBudgetActionEnum, } from './infra.js';
|
|
6
|
+
export { CheckSpecAccuracySchema, UpdateRegistrySchema } from './registry.js';
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/schemas/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,EACd,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAE9F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/schemas/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,EACd,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAE9F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -4,4 +4,5 @@ export { AuditCategoryEnum, ChecklistFocusEnum, ChallengeSpecFocusEnum } from '.
|
|
|
4
4
|
export { AgentPlatformEnum, SubAgentFrameworkEnum } from './agents.js';
|
|
5
5
|
export { DocumentationTypeEnum, GitActionEnum, DevLifecycleCategoryEnum, PMPlatformEnum, PMActionEnum, } from './lifecycle.js';
|
|
6
6
|
export { OrchestrateActionEnum, ManageContextActionEnum, ContextBudgetActionEnum, } from './infra.js';
|
|
7
|
+
export { CheckSpecAccuracySchema, UpdateRegistrySchema } from './registry.js';
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/schemas/index.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAEhE,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,EACd,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAE9F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/schemas/index.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAEhE,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,EACd,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAE9F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/** Input schema for the check_spec_accuracy tool. */
|
|
3
|
+
export declare const CheckSpecAccuracySchema: z.ZodObject<{
|
|
4
|
+
specContent: z.ZodString;
|
|
5
|
+
frameworks: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
6
|
+
}, z.core.$strip>;
|
|
7
|
+
/** Input schema for the update_registry tool. */
|
|
8
|
+
export declare const UpdateRegistrySchema: z.ZodObject<{
|
|
9
|
+
framework: z.ZodString;
|
|
10
|
+
displayName: z.ZodString;
|
|
11
|
+
ecosystem: z.ZodString;
|
|
12
|
+
frameworkVersion: z.ZodString;
|
|
13
|
+
correctPatterns: z.ZodArray<z.ZodObject<{
|
|
14
|
+
pattern: z.ZodString;
|
|
15
|
+
example: z.ZodOptional<z.ZodString>;
|
|
16
|
+
since: z.ZodOptional<z.ZodString>;
|
|
17
|
+
replacedBy: z.ZodOptional<z.ZodString>;
|
|
18
|
+
severity: z.ZodOptional<z.ZodEnum<{
|
|
19
|
+
warning: "warning";
|
|
20
|
+
error: "error";
|
|
21
|
+
}>>;
|
|
22
|
+
}, z.core.$strip>>;
|
|
23
|
+
deprecatedPatterns: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
24
|
+
pattern: z.ZodString;
|
|
25
|
+
replacedBy: z.ZodString;
|
|
26
|
+
severity: z.ZodEnum<{
|
|
27
|
+
warning: "warning";
|
|
28
|
+
error: "error";
|
|
29
|
+
}>;
|
|
30
|
+
}, z.core.$strip>>>;
|
|
31
|
+
commonMistakes: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
32
|
+
pattern: z.ZodString;
|
|
33
|
+
example: z.ZodOptional<z.ZodString>;
|
|
34
|
+
replacedBy: z.ZodOptional<z.ZodString>;
|
|
35
|
+
severity: z.ZodEnum<{
|
|
36
|
+
warning: "warning";
|
|
37
|
+
error: "error";
|
|
38
|
+
}>;
|
|
39
|
+
}, z.core.$strip>>>;
|
|
40
|
+
}, z.core.$strip>;
|
|
41
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/tools/schemas/registry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,qDAAqD;AACrD,eAAO,MAAM,uBAAuB;;;iBAalC,CAAC;AAEH,iDAAiD;AACjD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2C/B,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// schemas/registry.ts — Zod schemas for SPEC-072 registry tools
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
/** Schema for a framework pattern object (correct, deprecated, or mistake). */
|
|
4
|
+
const FrameworkPatternSchema = z.object({
|
|
5
|
+
pattern: z.string().describe('Descripcion del patron'),
|
|
6
|
+
example: z.string().optional().describe('Ejemplo de codigo ilustrativo'),
|
|
7
|
+
since: z.string().optional().describe('Version desde la que aplica (solo correctPatterns)'),
|
|
8
|
+
replacedBy: z.string().optional().describe('Reemplazo para patrones obsoletos o errores'),
|
|
9
|
+
severity: z.enum(['error', 'warning']).optional().describe('Severidad: error | warning'),
|
|
10
|
+
});
|
|
11
|
+
/** Input schema for the check_spec_accuracy tool. */
|
|
12
|
+
export const CheckSpecAccuracySchema = z.object({
|
|
13
|
+
specContent: z
|
|
14
|
+
.string()
|
|
15
|
+
.min(1)
|
|
16
|
+
.describe('Contenido de la spec o fragmento a validar (texto de HU.md o criterios de aceptacion)'),
|
|
17
|
+
frameworks: z
|
|
18
|
+
.array(z.string())
|
|
19
|
+
.optional()
|
|
20
|
+
.describe('Frameworks especificos a verificar (e.g. ["nextjs", "react"]). Si se omite, se detectan automaticamente del texto'),
|
|
21
|
+
});
|
|
22
|
+
/** Input schema for the update_registry tool. */
|
|
23
|
+
export const UpdateRegistrySchema = z.object({
|
|
24
|
+
framework: z
|
|
25
|
+
.string()
|
|
26
|
+
.min(1)
|
|
27
|
+
.describe('ID unico del framework en snake_case minusculas (e.g. "my-internal-framework")'),
|
|
28
|
+
displayName: z
|
|
29
|
+
.string()
|
|
30
|
+
.min(1)
|
|
31
|
+
.describe('Nombre legible del framework (e.g. "My Internal Framework")'),
|
|
32
|
+
ecosystem: z
|
|
33
|
+
.string()
|
|
34
|
+
.describe('Ecosistema del framework: typescript | python | go | rust | java | swift | php | ruby | csharp | dart | other'),
|
|
35
|
+
frameworkVersion: z
|
|
36
|
+
.string()
|
|
37
|
+
.min(1)
|
|
38
|
+
.describe('Version de referencia del framework (e.g. "2.x", "1.0.0")'),
|
|
39
|
+
correctPatterns: z
|
|
40
|
+
.array(FrameworkPatternSchema)
|
|
41
|
+
.min(1)
|
|
42
|
+
.describe('Patrones correctos y recomendados. Minimo 1 requerido'),
|
|
43
|
+
deprecatedPatterns: z
|
|
44
|
+
.array(z.object({
|
|
45
|
+
pattern: z.string().describe('Patron obsoleto'),
|
|
46
|
+
replacedBy: z.string().describe('Reemplazo recomendado'),
|
|
47
|
+
severity: z.enum(['error', 'warning']).describe('Severidad: error | warning'),
|
|
48
|
+
}))
|
|
49
|
+
.optional()
|
|
50
|
+
.describe('Patrones obsoletos con su reemplazo recomendado'),
|
|
51
|
+
commonMistakes: z
|
|
52
|
+
.array(z.object({
|
|
53
|
+
pattern: z.string().describe('Descripcion del error comun'),
|
|
54
|
+
example: z.string().optional().describe('Ejemplo del error'),
|
|
55
|
+
replacedBy: z.string().optional().describe('La forma correcta'),
|
|
56
|
+
severity: z.enum(['error', 'warning']).describe('Severidad: error | warning'),
|
|
57
|
+
}))
|
|
58
|
+
.optional()
|
|
59
|
+
.describe('Errores comunes o alucinaciones frecuentes de LLMs para este framework'),
|
|
60
|
+
});
|
|
61
|
+
// Note: CheckSpecAccuracyInput and UpdateRegistryInput types live in src/types/registry.ts
|
|
62
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/tools/schemas/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-coverage.d.ts","sourceRoot":"","sources":["../../src/tools/spec-coverage.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EAGX,MAAM,mBAAmB,CAAC;AAQ3B,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAiBrF"}
|