@planu/cli 4.13.0 → 5.0.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 +64 -1
- package/LICENSE +55 -12
- package/README.md +33 -25
- package/dist/cli/commands/inspect.d.ts +4 -0
- package/dist/cli/commands/inspect.js +144 -0
- package/dist/cli/commands/install.d.ts +19 -12
- package/dist/cli/commands/install.js +148 -102
- package/dist/cli/commands/job.d.ts +3 -0
- package/dist/cli/commands/job.js +120 -0
- package/dist/cli/commands/offline.d.ts +15 -0
- package/dist/cli/commands/offline.js +132 -0
- package/dist/cli/commands/serve.js +4 -0
- package/dist/cli/commands/spec.js +1 -1
- package/dist/cli/commands/storage.d.ts +3 -0
- package/dist/cli/commands/storage.js +102 -0
- package/dist/cli/commands/uninstall.d.ts +10 -0
- package/dist/cli/commands/uninstall.js +93 -7
- package/dist/cli/commands/validate.js +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/router.js +9 -3
- package/dist/config/crash-shield-framework-rules.json +93 -0
- package/dist/config/environment-schema.json +147 -0
- package/dist/config/hardcode-exceptions.json +4 -0
- package/dist/config/native-release-public-key.pem +3 -0
- package/dist/config/native-targets.json +87 -0
- package/dist/config/official-sdd-tools.d.ts +4 -0
- package/dist/config/official-sdd-tools.js +35 -0
- package/dist/config/product-public.d.ts +225 -0
- package/dist/config/product-public.js +147 -0
- package/dist/config/product-public.json +283 -0
- package/dist/config/registries/hosts/codex.json +20 -363
- package/dist/config/release-compatibility.json +13 -0
- package/dist/config/release-policy.json +108 -0
- package/dist/config/runtime-policy.json +55 -0
- package/dist/config/skill-templates/planu-resume-work.md +2 -2
- package/dist/config/skill-templates/planu-validate.md +7 -4
- package/dist/config/subagent-templates/planu-spec-implementer.md +7 -3
- package/dist/config/subagent-templates/planu-validator.md +10 -5
- package/dist/config/technology-registry.json +120 -0
- package/dist/config/version.js +7 -8
- package/dist/core/index.d.ts +1 -1
- package/dist/core/spec-validator.d.ts +4 -4
- package/dist/core/spec-validator.js +1 -1
- package/dist/engine/abortable-process-runner.d.ts +20 -2
- package/dist/engine/abortable-process-runner.js +267 -67
- package/dist/engine/advanced-testing/accessibility-checker.js +12 -14
- package/dist/engine/advanced-testing/mutation-advisor.js +3 -4
- package/dist/engine/advanced-testing/property-based.js +2 -3
- package/dist/engine/advanced-testing/test-data-advisor.js +2 -3
- package/dist/engine/agent-generator.js +2 -1
- package/dist/engine/agent-handoff-store.js +2 -1
- package/dist/engine/agent-prompt-generator.js +7 -5
- package/dist/engine/agent-telemetry.js +2 -1
- package/dist/engine/ai-integration/gemini/extensions-advisor.js +41 -9
- package/dist/engine/ambiguity-detector.js +12 -11
- package/dist/engine/ambiguity-scorer.js +4 -26
- package/dist/engine/analyzer/db-engine.js +2 -3
- package/dist/engine/analyzer/detectors.js +13 -14
- package/dist/engine/analyzer/env-setup.js +9 -10
- package/dist/engine/analyzer-env-scanner/env-example.js +7 -8
- package/dist/engine/api-spec-generator/graphql-parser.js +2 -2
- package/dist/engine/api-validation/graphql-schema-validator.js +2 -1
- package/dist/engine/api-validation/openapi-impl-validator.js +6 -7
- package/dist/engine/architecture-detector.js +10 -8
- package/dist/engine/auth/config.d.ts +1 -1
- package/dist/engine/auth/config.js +4 -3
- package/dist/engine/auth/scope-mapper.js +1 -7
- package/dist/engine/auto-updater/atomic-upgrade.d.ts +8 -0
- package/dist/engine/auto-updater/atomic-upgrade.js +381 -0
- package/dist/engine/auto-updater/config-detector.js +9 -3
- package/dist/engine/auto-updater/config-patcher.d.ts +0 -4
- package/dist/engine/auto-updater/config-patcher.js +10 -15
- package/dist/engine/auto-updater/index.d.ts +3 -1
- package/dist/engine/auto-updater/index.js +44 -30
- package/dist/engine/auto-updater/npm-registry.js +10 -2
- package/dist/engine/auto-updater/release-verifier.d.ts +3 -0
- package/dist/engine/auto-updater/release-verifier.js +112 -0
- package/dist/engine/auto-updater/upgrade-lock.d.ts +6 -0
- package/dist/engine/auto-updater/upgrade-lock.js +28 -0
- package/dist/engine/auto-updater/upgrade-trust-state.d.ts +7 -0
- package/dist/engine/auto-updater/upgrade-trust-state.js +59 -0
- package/dist/engine/autopilot/audit-logger.js +2 -5
- package/dist/engine/autopilot/state-updater.js +4 -4
- package/dist/engine/best-practices-library.js +2 -1
- package/dist/engine/browser-validator.js +2 -1
- package/dist/engine/build-tool-detector.js +3 -2
- package/dist/engine/cascade-hooks/hooks/review-enricher.hook.js +9 -6
- package/dist/engine/cascade-hooks/state-drift-detector.d.ts +3 -3
- package/dist/engine/cascade-hooks/state-drift-detector.js +1 -1
- package/dist/engine/ci-generator/context-builders.js +7 -5
- package/dist/engine/ci-generator/planu-config.js +1 -7
- package/dist/engine/ci-generator/stack-detector.js +0 -2
- package/dist/engine/ci-generator/yaml-builder.js +0 -2
- package/dist/engine/clarification-gate/gate.d.ts +3 -3
- package/dist/engine/claude-config-auditor/rules-auditor.js +4 -3
- package/dist/engine/code-scanner/layer-scanner.js +6 -22
- package/dist/engine/code-transforms/typescript/ast-utils.js +2 -3
- package/dist/engine/complexity-budget/trivial-detector.js +2 -1
- package/dist/engine/compliance-test-generator/index.js +7 -2
- package/dist/engine/compliance-test-generator/test-formatter.js +2 -2
- package/dist/engine/config-health/mcp-config-checker.js +2 -1
- package/dist/engine/config-health/ts-checker-scripts.js +4 -3
- package/dist/engine/config-health/ts-checker.js +3 -2
- package/dist/engine/convention-injector.js +5 -7
- package/dist/engine/convention-scanner/convention-parser.js +3 -2
- package/dist/engine/core-bridge-duplicate-blocks.d.ts +3 -0
- package/dist/engine/core-bridge-duplicate-blocks.js +57 -0
- package/dist/engine/core-bridge-gaps.d.ts +4 -0
- package/dist/engine/core-bridge-gaps.js +75 -0
- package/dist/engine/core-bridge.d.ts +10 -10
- package/dist/engine/core-bridge.js +196 -283
- package/dist/engine/cost-guardrails.d.ts +1 -1
- package/dist/engine/cost-guardrails.js +1 -1
- package/dist/engine/cost-tracking/ledger.js +2 -5
- package/dist/engine/coverage-gap-analyzer.js +10 -1
- package/dist/engine/crash-shield/detectors/framework-detector.d.ts +2 -0
- package/dist/engine/crash-shield/detectors/framework-detector.js +110 -192
- package/dist/engine/crash-shield/detectors/typescript-detector.js +2 -1
- package/dist/engine/criterion-identity.d.ts +1 -0
- package/dist/engine/criterion-identity.js +7 -0
- package/dist/engine/dashboard/data-loader.js +4 -8
- package/dist/engine/dashboard/templates-layout.js +0 -3
- package/dist/engine/dashboard/templates-project.js +1 -13
- package/dist/engine/data-projects-gc/gc-runner.d.ts +7 -0
- package/dist/engine/data-projects-gc/gc-runner.js +113 -3
- package/dist/engine/data-projects-gc/scanner.js +5 -1
- package/dist/engine/decision-store.js +11 -14
- package/dist/engine/deleter/core.js +5 -5
- package/dist/engine/dep-auditor/abandonment-data.js +2 -1
- package/dist/engine/dep-auditor/abandonment-registry.js +3 -1
- package/dist/engine/dep-auditor/cve-fetcher.js +3 -0
- package/dist/engine/dep-auditor/dep-duplicates-detector.js +36 -4
- package/dist/engine/dep-auditor/license-registry.js +2 -0
- package/dist/engine/dependency-evaluator.d.ts +14 -0
- package/dist/engine/dependency-evaluator.js +81 -0
- package/dist/engine/deploy/providers/fly.js +7 -7
- package/dist/engine/deploy/providers/netlify.js +7 -7
- package/dist/engine/deploy/providers/railway.js +10 -12
- package/dist/engine/deploy/providers/vercel.js +7 -9
- package/dist/engine/deprecation-scanner/pattern-loader.js +0 -2
- package/dist/engine/desktop-detector.js +2 -3
- package/dist/engine/detect-duplication.js +2 -1
- package/dist/engine/detectors/advanced-framework-detector/css-state-detector.js +2 -1
- package/dist/engine/detectors/advanced-framework-detector/legacy-detector.js +2 -3
- package/dist/engine/detectors/advanced-framework-detector/modern-detector.js +3 -4
- package/dist/engine/detectors/agent-framework-detector.js +3 -2
- package/dist/engine/detectors/ai-native-detector.js +4 -6
- package/dist/engine/detectors/cache-db-detector.js +4 -3
- package/dist/engine/detectors/cicd-detector.js +4 -3
- package/dist/engine/detectors/deployment-detector.js +11 -12
- package/dist/engine/detectors/frontend-perf-detector.js +14 -9
- package/dist/engine/detectors/library-detector-multilang-a.js +16 -3
- package/dist/engine/detectors/library-detector-node.js +14 -4
- package/dist/engine/detectors/library-detector-python.js +7 -1
- package/dist/engine/detectors/library-detector.js +0 -2
- package/dist/engine/detectors/llm-detector/provider-maps.js +3 -2
- package/dist/engine/detectors/mcp-candidate-detector.js +12 -16
- package/dist/engine/detectors/mfe-detector.js +6 -7
- package/dist/engine/detectors/monitoring-detector.js +4 -3
- package/dist/engine/detectors/otel-detector.js +3 -2
- package/dist/engine/detectors/otel-ecosystem-detectors.d.ts +2 -2
- package/dist/engine/detectors/otel-ecosystem-detectors.js +4 -3
- package/dist/engine/detectors/platform-specialty-detector.js +3 -5
- package/dist/engine/detectors/template-engine-detector.js +3 -4
- package/dist/engine/doc-generator/builders.js +2 -3
- package/dist/engine/doc-generator/mobile-distribution-guide.js +13 -17
- package/dist/engine/doc-generator/portal/dirty-flag-map.d.ts +2 -2
- package/dist/engine/doc-generator/portal/portal-regenerator.js +3 -47
- package/dist/engine/docs-site-generator/data-collector.d.ts +1 -1
- package/dist/engine/docs-site-generator/data-collector.js +7 -28
- package/dist/engine/docs-site-generator/tools-renderer.js +3 -10
- package/dist/engine/domain-detector.js +3 -6
- package/dist/engine/dynamic-knowledge/knowledge-cache.js +3 -4
- package/dist/engine/dynamic-knowledge/knowledge-merger.js +17 -2
- package/dist/engine/dynamic-knowledge/web-researcher.js +15 -14
- package/dist/engine/dynamic-migration-detector/manifest-readers-extended.js +0 -2
- package/dist/engine/e2e-test-generator.js +4 -3
- package/dist/engine/ecosystem-absorber/knowledge-cache.js +2 -1
- package/dist/engine/ecosystem-absorber/platform-crawler.js +2 -2
- package/dist/engine/escalator/retry-counter.js +2 -1
- package/dist/engine/evidence-gates/artifact-reader.d.ts +16 -1
- package/dist/engine/evidence-gates/artifact-reader.js +220 -23
- package/dist/engine/evidence-gates/lifecycle-gate.d.ts +2 -1
- package/dist/engine/evidence-gates/lifecycle-gate.js +58 -3
- package/dist/engine/evidence-gates/reconciliation-freshness.d.ts +11 -0
- package/dist/engine/evidence-gates/reconciliation-freshness.js +72 -0
- package/dist/engine/evidence-index/done-drift.d.ts +1 -1
- package/dist/engine/evidence-index/done-drift.js +40 -18
- package/dist/engine/execution/context.d.ts +19 -0
- package/dist/engine/execution/context.js +130 -0
- package/dist/engine/execution/deadline-io.d.ts +21 -0
- package/dist/engine/execution/deadline-io.js +45 -0
- package/dist/engine/execution/durable-job-heartbeat-runtime.d.ts +4 -0
- package/dist/engine/execution/durable-job-heartbeat-runtime.js +400 -0
- package/dist/engine/execution/job-executor.d.ts +16 -0
- package/dist/engine/execution/job-executor.js +140 -0
- package/dist/engine/execution/job-runtime.d.ts +108 -0
- package/dist/engine/execution/job-runtime.js +328 -0
- package/dist/engine/execution/native-relevance-scorer.d.ts +6 -0
- package/dist/engine/execution/native-relevance-scorer.js +64 -0
- package/dist/engine/execution/native-worker-dispatch.d.ts +3 -0
- package/dist/engine/execution/native-worker-dispatch.js +46 -0
- package/dist/engine/execution/native-worker-protocol.d.ts +6 -0
- package/dist/engine/execution/native-worker-protocol.js +33 -0
- package/dist/engine/execution/native-worker-runtime.d.ts +4 -0
- package/dist/engine/execution/native-worker-runtime.js +177 -0
- package/dist/engine/execution/native-worker-thread.d.ts +2 -0
- package/dist/engine/execution/native-worker-thread.js +66 -0
- package/dist/engine/execution/operation-journal.d.ts +66 -0
- package/dist/engine/execution/operation-journal.js +260 -0
- package/dist/engine/execution/outbox-worker.d.ts +31 -0
- package/dist/engine/execution/outbox-worker.js +192 -0
- package/dist/engine/execution/public-job-sanitizer.d.ts +4 -0
- package/dist/engine/execution/public-job-sanitizer.js +31 -0
- package/dist/engine/execution/validate-job-executor.d.ts +35 -0
- package/dist/engine/execution/validate-job-executor.js +805 -0
- package/dist/engine/execution/validate-job-payload.d.ts +5 -0
- package/dist/engine/execution/validate-job-payload.js +144 -0
- package/dist/engine/execution/validate-job-recovery.d.ts +4 -0
- package/dist/engine/execution/validate-job-recovery.js +47 -0
- package/dist/engine/execution/validate-worker-runtime.d.ts +10 -0
- package/dist/engine/execution/validate-worker-runtime.js +188 -0
- package/dist/engine/execution/validate-worker-thread.d.ts +2 -0
- package/dist/engine/execution/validate-worker-thread.js +64 -0
- package/dist/engine/execution-plan/desktop-distribution.js +3 -7
- package/dist/engine/execution-plan/mobile-distribution.js +4 -9
- package/dist/engine/execution-plan/phases.js +4 -5
- package/dist/engine/execution-plan/plan-utils.js +8 -5
- package/dist/engine/facilitate/context-loader.js +3 -9
- package/dist/engine/figma/code-connect-fetcher.js +9 -8
- package/dist/engine/filesystem-watcher/index.d.ts +3 -3
- package/dist/engine/filesystem-watcher/index.js +5 -5
- package/dist/engine/framework-detector.js +14 -15
- package/dist/engine/git/planu-autocommit.js +8 -7
- package/dist/engine/git/repository-probe.d.ts +3 -0
- package/dist/engine/git/repository-probe.js +13 -0
- package/dist/engine/global-rules-manager.js +2 -2
- package/dist/engine/handoff-artifacts/io.js +2 -3
- package/dist/engine/handoff-artifacts/schemas/red-tests-handoff.js +8 -1
- package/dist/engine/handoff-artifacts/schemas.d.ts +6 -1
- package/dist/engine/handoff-artifacts/schemas.js +38 -0
- package/dist/engine/handoff-packager.d.ts +19 -0
- package/dist/engine/handoff-packager.js +415 -13
- package/dist/engine/hook-generator/stack-hook-templates.js +4 -4
- package/dist/engine/hooks/config-loader.js +1 -1
- package/dist/engine/hooks/context-injector.js +4 -7
- package/dist/engine/hooks/effort-configurator.js +1 -1
- package/dist/engine/hooks/file-watcher.js +1 -14
- package/dist/engine/hooks-reconciler.js +6 -4
- package/dist/engine/impact-detector/test-break-predictor.js +3 -3
- package/dist/engine/impact-detector/tool-registration.js +1 -1
- package/dist/engine/implementation-contract/renderer.js +23 -8
- package/dist/engine/infrastructure/component-mapper.js +5 -7
- package/dist/engine/infrastructure/docker-compose-generator.js +8 -10
- package/dist/engine/infrastructure/index.js +6 -3
- package/dist/engine/infrastructure/kubernetes-generator.js +2 -2
- package/dist/engine/infrastructure/railway-generator.js +10 -8
- package/dist/engine/infrastructure/signal-detector.js +6 -8
- package/dist/engine/infrastructure/terraform-generator.js +6 -8
- package/dist/engine/legal-compliance/detector.js +3 -2
- package/dist/engine/lifecycle-reconciliation-io.d.ts +11 -0
- package/dist/engine/lifecycle-reconciliation-io.js +180 -0
- package/dist/engine/lifecycle-reconciliation.d.ts +16 -0
- package/dist/engine/lifecycle-reconciliation.js +406 -0
- package/dist/engine/local-first/storage-advisor.js +5 -6
- package/dist/engine/local-first/tool-classification.js +2 -0
- package/dist/engine/macos-keychain-native-port.d.ts +10 -0
- package/dist/engine/macos-keychain-native-port.js +38 -0
- package/dist/engine/marketplace-fetcher/cache.js +3 -1
- package/dist/engine/mcp-config/mcp-config-writer.d.ts +2 -2
- package/dist/engine/mcp-config/mcp-config-writer.js +10 -8
- package/dist/engine/migration/db-migrator.js +2 -5
- package/dist/engine/migration/equivalence-mapper.js +12 -13
- package/dist/engine/migration/service-catalogs.js +6 -7
- package/dist/engine/migration/service-migrator-catalogs.js +6 -7
- package/dist/engine/migrations/remove-commercial-state.d.ts +3 -0
- package/dist/engine/migrations/remove-commercial-state.js +343 -0
- package/dist/engine/mobile-detector-ios.js +2 -3
- package/dist/engine/mobile-detector.js +16 -4
- package/dist/engine/model-router/complexity-analyzer.js +4 -7
- package/dist/engine/multi-agent-review/security-analyzer.js +3 -1
- package/dist/engine/multi-app-detector/app-type.js +26 -21
- package/dist/engine/multi-app-detector/core.js +3 -2
- package/dist/engine/multi-teammate-review/disagreement-counter.js +2 -1
- package/dist/engine/multi-teammate-review/panel-orchestrator.js +0 -2
- package/dist/engine/mutation-config-generator.js +10 -7
- package/dist/engine/native-capability-policy.d.ts +4 -0
- package/dist/engine/native-capability-policy.js +24 -0
- package/dist/engine/native-platform.d.ts +3 -0
- package/dist/engine/native-platform.js +44 -0
- package/dist/engine/native-runtime-handshake.d.ts +20 -0
- package/dist/engine/native-runtime-handshake.js +230 -0
- package/dist/engine/network-policy.d.ts +27 -0
- package/dist/engine/network-policy.js +175 -0
- package/dist/engine/next-spec-resolver/dependency-filter.js +2 -22
- package/dist/engine/nfr-profile-detector.js +12 -16
- package/dist/engine/nli-keywords.js +8 -9
- package/dist/engine/oauth/config-guard.js +4 -5
- package/dist/engine/observability/local-execution-spans.d.ts +15 -0
- package/dist/engine/observability/local-execution-spans.js +63 -0
- package/dist/engine/orchestrator/runtime.js +0 -1
- package/dist/engine/package-registry.js +2 -6
- package/dist/engine/performance-analyzer.js +2 -5
- package/dist/engine/permissions-merger/stack-detectors.js +5 -5
- package/dist/engine/planu-core.darwin-arm64.node.manifest.json +39 -0
- package/dist/engine/planu-core.darwin-arm64.node.sbom.json +1310 -0
- package/dist/engine/planu-core.darwin-x64.node.manifest.json +39 -0
- package/dist/engine/planu-core.darwin-x64.node.sbom.json +1310 -0
- package/dist/engine/planu-core.linux-arm64-gnu.node.manifest.json +38 -0
- package/dist/engine/planu-core.linux-arm64-gnu.node.sbom.json +1310 -0
- package/dist/engine/planu-core.linux-arm64-musl.node.manifest.json +38 -0
- package/dist/engine/planu-core.linux-arm64-musl.node.sbom.json +1310 -0
- package/dist/engine/planu-core.linux-x64-gnu.node.manifest.json +38 -0
- package/dist/engine/planu-core.linux-x64-gnu.node.sbom.json +1310 -0
- package/dist/engine/planu-core.linux-x64-musl.node.manifest.json +38 -0
- package/dist/engine/planu-core.linux-x64-musl.node.sbom.json +1310 -0
- package/dist/engine/planu-core.win32-arm64-msvc.node.manifest.json +38 -0
- package/dist/engine/planu-core.win32-arm64-msvc.node.sbom.json +1310 -0
- package/dist/engine/planu-core.win32-x64-msvc.node.manifest.json +38 -0
- package/dist/engine/planu-core.win32-x64-msvc.node.sbom.json +1310 -0
- package/dist/engine/platform-detector/desktop.js +15 -2
- package/dist/engine/platform-detector/extensions.js +2 -1
- package/dist/engine/platform-detector/games.js +2 -1
- package/dist/engine/platform-detector.js +3 -2
- package/dist/engine/platform-engineering/idp-detector.js +2 -1
- package/dist/engine/plugin-installer/stack-matcher.js +9 -17
- package/dist/engine/plugins/lifecycle.js +6 -2
- package/dist/engine/prior-decisions/contradiction-detector.js +60 -30
- package/dist/engine/project-dna/stack-detector.js +15 -17
- package/dist/engine/project-graph/builder.js +11 -0
- package/dist/engine/project-graph/cache.js +1 -1
- package/dist/engine/project-graph/freshness-projection.d.ts +16 -0
- package/dist/engine/project-graph/freshness-projection.js +95 -0
- package/dist/engine/project-graph/index.d.ts +1 -0
- package/dist/engine/project-graph/index.js +1 -0
- package/dist/engine/project-graph/query.js +15 -25
- package/dist/engine/project-health-checker.js +3 -4
- package/dist/engine/project-scanner/stack-detector.js +17 -17
- package/dist/engine/property-test-generator.js +2 -3
- package/dist/engine/qa-gate.d.ts +1 -0
- package/dist/engine/qa-gate.js +6 -4
- package/dist/engine/quality-gates/gate-catalog.js +47 -46
- package/dist/engine/quality-gates/gate-injector.js +9 -4
- package/dist/engine/readiness-checker.d.ts +1 -16
- package/dist/engine/readiness-checker.js +27 -88
- package/dist/engine/registry/core.js +0 -2
- package/dist/engine/registry/loader.js +9 -12
- package/dist/engine/registry/matcher.js +129 -24
- package/dist/engine/resilience-detector/concurrency-detector.js +4 -4
- package/dist/engine/resilience-detector/middleware-detector.js +11 -13
- package/dist/engine/resilience-detector/validation-detector.js +17 -4
- package/dist/engine/reverse-engineer/config-analyzer.js +9 -8
- package/dist/engine/reverse-engineer/orchestrator.js +5 -9
- package/dist/engine/reverse-engineer/test-file-parser.js +6 -3
- package/dist/engine/rules-generator/index.js +6 -5
- package/dist/engine/runtime-policy.d.ts +9 -0
- package/dist/engine/runtime-policy.js +138 -0
- package/dist/engine/runtime-security/checkers/content-security.js +21 -6
- package/dist/engine/runtime-security/checkers/file-permissions.js +0 -2
- package/dist/engine/runtime-security/rate-limiter.js +0 -1
- package/dist/engine/safety/atomic-write-file.js +20 -9
- package/dist/engine/safety/atomic-writer.js +10 -3
- package/dist/engine/safety/contained-project-file.d.ts +3 -0
- package/dist/engine/safety/contained-project-file.js +23 -0
- package/dist/engine/safety/cross-process-lock.d.ts +3 -40
- package/dist/engine/safety/cross-process-lock.js +268 -272
- package/dist/engine/safety/file-mutex.d.ts +2 -9
- package/dist/engine/safety/file-mutex.js +155 -87
- package/dist/engine/safety/health-monitor.js +15 -6
- package/dist/engine/safety/lock-lease-store.d.ts +79 -0
- package/dist/engine/safety/lock-lease-store.js +372 -0
- package/dist/engine/safety/lock-scavenger.d.ts +2 -5
- package/dist/engine/safety/lock-scavenger.js +158 -76
- package/dist/engine/safety/lock-staleness.js +4 -1
- package/dist/engine/safety/obsolete-lock-guard.d.ts +8 -0
- package/dist/engine/safety/obsolete-lock-guard.js +31 -0
- package/dist/engine/safety/transaction.js +3 -3
- package/dist/engine/sandbox/index.js +2 -1
- package/dist/engine/sandbox/runner-detect.js +3 -2
- package/dist/engine/sandbox/runner-docker.js +4 -3
- package/dist/engine/scan-project/module-discoverer.js +3 -2
- package/dist/engine/schema-generator.js +16 -9
- package/dist/engine/scope-boundaries/contradiction-checker.js +63 -1
- package/dist/engine/scope-boundaries/scope-validator.js +45 -7
- package/dist/engine/security-analyzer/criteria-generator.js +2 -3
- package/dist/engine/self-healing/healer.js +4 -4
- package/dist/engine/session/checkpoint-writer.js +0 -9
- package/dist/engine/shared-agent-memory.js +66 -74
- package/dist/engine/skill-adapter/command-rewriter.js +3 -2
- package/dist/engine/skill-adapter/index.js +3 -3
- package/dist/engine/skill-adapter/placeholder-map.js +3 -2
- package/dist/engine/skill-bootstrap/stack-matcher.js +47 -48
- package/dist/engine/skill-generation/stack-content-generator.js +0 -2
- package/dist/engine/skill-generator/workflow-skill-generator.js +2 -1
- package/dist/engine/skill-registry/ttl-refresh.js +3 -1
- package/dist/engine/skills/skills-fetcher.js +3 -6
- package/dist/engine/skills-reconciler.js +19 -39
- package/dist/engine/spec-coverage/test-finder.js +7 -6
- package/dist/engine/spec-diff-engine.js +3 -3
- package/dist/engine/spec-format/acceptance-criteria.d.ts +6 -2
- package/dist/engine/spec-format/acceptance-criteria.js +77 -18
- package/dist/engine/spec-format/markdown-sections.d.ts +14 -0
- package/dist/engine/spec-format/markdown-sections.js +105 -0
- package/dist/engine/spec-format/read-technical-section.js +33 -5
- package/dist/engine/spec-format/technical-md-populator.js +3 -2
- package/dist/engine/spec-format/unified-spec-builder.d.ts +7 -0
- package/dist/engine/spec-format/unified-spec-builder.js +202 -0
- package/dist/engine/spec-generator/api-key-resolver.d.ts +1 -1
- package/dist/engine/spec-generator/api-key-resolver.js +3 -24
- package/dist/engine/spec-generators/issue-extractor.js +9 -3
- package/dist/engine/spec-migrator/canonical-deduplicator.d.ts +18 -0
- package/dist/engine/spec-migrator/canonical-deduplicator.js +479 -0
- package/dist/engine/spec-migrator/drift-detector.js +5 -13
- package/dist/engine/spec-migrator/filesystem-import.d.ts +4 -8
- package/dist/engine/spec-migrator/filesystem-import.js +134 -23
- package/dist/engine/spec-migrator/frontmatter-parser.js +32 -15
- package/dist/engine/spec-migrator/index.d.ts +1 -0
- package/dist/engine/spec-migrator/index.js +1 -0
- package/dist/engine/spec-migrator/planu-canonical-policy.js +10 -1
- package/dist/engine/spec-migrator/strict-planu-cleanup.js +24 -25
- package/dist/engine/spec-registry/adapter.d.ts +0 -5
- package/dist/engine/spec-registry/adapter.js +45 -46
- package/dist/engine/spec-registry/client.js +2 -0
- package/dist/engine/spec-source-sync.js +3 -2
- package/dist/engine/spec-state-machine/transition-spec.d.ts +6 -1
- package/dist/engine/spec-state-machine/transition-spec.js +10 -1
- package/dist/engine/spec-templates/custom-loader.js +2 -3
- package/dist/engine/spec-templates/templates-domain-specific.js +8 -5
- package/dist/engine/spec-templates/templates-perf-integration.js +2 -3
- package/dist/engine/stack-auditor/manifest-reader.js +0 -2
- package/dist/engine/staleness/stale-implementing.js +7 -7
- package/dist/engine/tdd-scaffold-generator.js +24 -11
- package/dist/engine/teammate-router/green-phase-verifier.js +2 -1
- package/dist/engine/teammate-router/red-phase-verifier.js +2 -1
- package/dist/engine/technical-enricher/index.js +16 -8
- package/dist/engine/technical-enricher/render-enriched.d.ts +1 -0
- package/dist/engine/technical-enricher/render-enriched.js +42 -14
- package/dist/engine/technology-registry.d.ts +11 -0
- package/dist/engine/technology-registry.js +142 -0
- package/dist/engine/telemetry/error-reporter.d.ts +1 -2
- package/dist/engine/telemetry/error-reporter.js +11 -18
- package/dist/engine/telemetry/health-checker.js +58 -31
- package/dist/engine/telemetry/index.d.ts +0 -1
- package/dist/engine/telemetry/index.js +0 -1
- package/dist/engine/telemetry/stance.js +3 -2
- package/dist/engine/telemetry/telemetry-client.d.ts +1 -5
- package/dist/engine/telemetry/telemetry-client.js +69 -35
- package/dist/engine/telemetry/telemetry-store.d.ts +3 -3
- package/dist/engine/telemetry/telemetry-store.js +30 -23
- package/dist/engine/test-framework-detector/detectors.js +8 -8
- package/dist/engine/test-framework-detector/strategy.js +8 -9
- package/dist/engine/test-generators/agent-test-templates.js +2 -3
- package/dist/engine/test-generators/contract-test-generator.d.ts +1 -1
- package/dist/engine/test-generators/contract-test-generator.js +9 -202
- package/dist/engine/test-generators/platform-test-templates-b.js +2 -3
- package/dist/engine/test-generators/platform-test-templates.js +2 -5
- package/dist/engine/test-mocks-generator.js +4 -3
- package/dist/engine/test-plan-generator.js +30 -12
- package/dist/engine/test-scaffold-generator/advanced-scaffold.js +4 -5
- package/dist/engine/test-scaffold-generator/unit-scaffold.js +5 -6
- package/dist/engine/text-signal-boundaries.d.ts +2 -0
- package/dist/engine/text-signal-boundaries.js +25 -2
- package/dist/engine/time/relative-date.d.ts +3 -0
- package/dist/engine/time/relative-date.js +16 -0
- package/dist/engine/timing/budget.d.ts +17 -17
- package/dist/engine/timing/budget.js +98 -64
- package/dist/engine/token-optimizer/analytics.d.ts +1 -1
- package/dist/engine/token-optimizer/analytics.js +5 -6
- package/dist/engine/tool-groups/group-manager.js +3 -3
- package/dist/engine/universal-rules/installer.js +1 -1
- package/dist/engine/universal-rules/rules/planu-modes.js +2 -0
- package/dist/engine/universal-rules/rules/planu-release-policy.js +1 -0
- package/dist/engine/update-notifier.js +8 -5
- package/dist/engine/usage-tracker/core.d.ts +2 -2
- package/dist/engine/usage-tracker/core.js +1 -2
- package/dist/engine/usage-tracker/index.d.ts +0 -3
- package/dist/engine/usage-tracker/index.js +0 -3
- package/dist/engine/usage-tracker/stats.d.ts +2 -2
- package/dist/engine/usage-tracker/stats.js +1 -28
- package/dist/engine/validation/approved-spec-portability.d.ts +12 -0
- package/dist/engine/validation/approved-spec-portability.js +107 -0
- package/dist/engine/validation/durable-validation.d.ts +36 -0
- package/dist/engine/validation/durable-validation.js +256 -0
- package/dist/engine/validation/validation-freshness.d.ts +46 -0
- package/dist/engine/validation/validation-freshness.js +567 -0
- package/dist/engine/validation/validation-receipt-codec.d.ts +13 -0
- package/dist/engine/validation/validation-receipt-codec.js +182 -0
- package/dist/engine/validation/validation-receipt.d.ts +62 -0
- package/dist/engine/validation/validation-receipt.js +342 -0
- package/dist/engine/validation/validation-source-digest.d.ts +2 -0
- package/dist/engine/validation/validation-source-digest.js +86 -0
- package/dist/engine/validation/validation-source-policy.d.ts +4 -0
- package/dist/engine/validation/validation-source-policy.js +16 -0
- package/dist/engine/validation/validation-submission.d.ts +37 -0
- package/dist/engine/validation/validation-submission.js +142 -0
- package/dist/engine/validation/validation-worktree.d.ts +21 -0
- package/dist/engine/validation/validation-worktree.js +260 -0
- package/dist/engine/validation-evidence-ledger.js +41 -0
- package/dist/engine/validation-impact-planner.d.ts +14 -2
- package/dist/engine/validation-impact-planner.js +23 -10
- package/dist/engine/validator/dor-dod.d.ts +1 -0
- package/dist/engine/validator/dor-dod.js +5 -3
- package/dist/engine/validator/extractors.d.ts +1 -5
- package/dist/engine/validator/extractors.js +24 -69
- package/dist/engine/validator/spec-compliance-runner.d.ts +13 -25
- package/dist/engine/validator/spec-compliance-runner.js +442 -215
- package/dist/engine/validator/validation-report-writer.js +1 -1
- package/dist/engine/validator.js +37 -23
- package/dist/engine/verify-integrations/index.js +1 -1
- package/dist/engine/version-resolver.js +5 -6
- package/dist/engine/web-fetcher/stack-advisor.js +156 -92
- package/dist/engine/web-fetcher/stack-detector.js +114 -54
- package/dist/engine/workspace-manager.js +3 -2
- package/dist/errors/classified-degradation.d.ts +3 -0
- package/dist/errors/classified-degradation.js +10 -0
- package/dist/errors/degradation-sink.d.ts +3 -0
- package/dist/errors/degradation-sink.js +5 -0
- package/dist/errors/error-taxonomy.d.ts +12 -0
- package/dist/errors/error-taxonomy.js +62 -0
- package/dist/hosts/claude-code/ux/mcp-prompts.js +10 -4
- package/dist/hosts/claude-code/ux/mcp-resources.js +4 -2
- package/dist/hosts/codex/config-scaffold.js +4 -3
- package/dist/hosts/gemini/config-scaffold.js +2 -1
- package/dist/hosts/gemini/multimodal-spec-flow.js +7 -4
- package/dist/index.js +23 -20
- package/dist/resources/patterns.js +3 -1
- package/dist/resources/specs.js +3 -1
- package/dist/resources/templates.js +3 -1
- package/dist/resources/usage-stats-resource.js +2 -18
- package/dist/security/adapters/environment.d.ts +12 -0
- package/dist/security/adapters/environment.js +25 -0
- package/dist/security/adapters/linux-secret-service.d.ts +8 -0
- package/dist/security/adapters/linux-secret-service.js +64 -0
- package/dist/security/adapters/macos-keychain.d.ts +18 -0
- package/dist/security/adapters/macos-keychain.js +90 -0
- package/dist/security/adapters/windows-credential-manager.d.ts +8 -0
- package/dist/security/adapters/windows-credential-manager.js +60 -0
- package/dist/security/redactor.d.ts +5 -0
- package/dist/security/redactor.js +58 -0
- package/dist/security/secret-field.d.ts +5 -0
- package/dist/security/secret-field.js +17 -0
- package/dist/security/secret-migration.d.ts +3 -0
- package/dist/security/secret-migration.js +123 -0
- package/dist/security/secret-provider.d.ts +23 -0
- package/dist/security/secret-provider.js +145 -0
- package/dist/security/secure-json.d.ts +3 -0
- package/dist/security/secure-json.js +29 -0
- package/dist/server/routes/specs.js +10 -0
- package/dist/storage/api-surfaces-store.js +2 -2
- package/dist/storage/approval-operation-lock.d.ts +1 -1
- package/dist/storage/approval-operation-lock.js +5 -3
- package/dist/storage/audit-trail-store.d.ts +1 -1
- package/dist/storage/audit-trail-store.js +48 -62
- package/dist/storage/autopilot-log-store.js +12 -5
- package/dist/storage/base-store.d.ts +9 -9
- package/dist/storage/base-store.js +58 -21
- package/dist/storage/checkpoint-store.js +5 -2
- package/dist/storage/comments-store.js +2 -2
- package/dist/storage/compliance-audit-store.js +5 -2
- package/dist/storage/compliance-gate-config-store.js +7 -4
- package/dist/storage/compliance-store.js +2 -2
- package/dist/storage/context-profile-store.js +2 -2
- package/dist/storage/crash-shield-store.js +8 -4
- package/dist/storage/feedback-remote.d.ts +2 -3
- package/dist/storage/feedback-remote.js +45 -31
- package/dist/storage/feedback-store.js +10 -6
- package/dist/storage/figma-store.js +8 -4
- package/dist/storage/file-mutex.js +9 -1
- package/dist/storage/gaps-log.js +7 -4
- package/dist/storage/global-projects-store.js +4 -2
- package/dist/storage/global-store.d.ts +1 -17
- package/dist/storage/global-store.js +1 -42
- package/dist/storage/ideas-store.js +2 -2
- package/dist/storage/index.d.ts +5 -2
- package/dist/storage/index.js +5 -2
- package/dist/storage/knowledge-store/knowledge.js +27 -33
- package/dist/storage/lessons-store.js +2 -2
- package/dist/storage/migrations/canonical-storage.d.ts +15 -0
- package/dist/storage/migrations/canonical-storage.js +712 -0
- package/dist/storage/oauth-store.js +36 -8
- package/dist/storage/path-resolver.js +16 -3
- package/dist/storage/pr-store.js +2 -2
- package/dist/storage/project-drift-store.js +20 -8
- package/dist/storage/project-identity.d.ts +32 -0
- package/dist/storage/project-identity.js +194 -0
- package/dist/storage/project-resolver.js +14 -7
- package/dist/storage/release-notes-store.js +2 -6
- package/dist/storage/runtime-db.d.ts +195 -0
- package/dist/storage/runtime-db.js +1110 -0
- package/dist/storage/schema-registry.d.ts +5 -0
- package/dist/storage/schema-registry.js +74 -0
- package/dist/storage/sentry-store.js +20 -9
- package/dist/storage/session-state-store.js +12 -5
- package/dist/storage/skill-registry-storage.d.ts +1 -1
- package/dist/storage/skill-registry-storage.js +13 -11
- package/dist/storage/slack-store.js +10 -5
- package/dist/storage/spec-store.d.ts +14 -2
- package/dist/storage/spec-store.js +134 -37
- package/dist/storage/status-store/atomic-status-write.d.ts +5 -0
- package/dist/storage/status-store/atomic-status-write.js +57 -0
- package/dist/storage/status-store/file-lock.js +61 -20
- package/dist/storage/status-store/self-healing.js +13 -8
- package/dist/storage/status-store/version-sync.d.ts +2 -1
- package/dist/storage/status-store/version-sync.js +36 -39
- package/dist/storage/steering-store.js +2 -2
- package/dist/storage/storage-bundle.d.ts +5 -0
- package/dist/storage/storage-bundle.js +117 -0
- package/dist/storage/storage-catalog-validation.d.ts +3 -0
- package/dist/storage/storage-catalog-validation.js +20 -0
- package/dist/storage/storage-catalog.d.ts +25 -0
- package/dist/storage/storage-catalog.js +390 -0
- package/dist/storage/storage-layout.d.ts +24 -0
- package/dist/storage/storage-layout.js +101 -0
- package/dist/storage/storybook-store.js +2 -2
- package/dist/storage/supabase-store.js +24 -6
- package/dist/storage/tdd-policy-store.js +8 -6
- package/dist/storage/tech-debt-store.js +3 -3
- package/dist/storage/technology-selection-store.d.ts +1 -1
- package/dist/storage/technology-selection-store.js +6 -3
- package/dist/storage/token-cache-store.js +3 -3
- package/dist/storage/token-ledger-store.js +13 -8
- package/dist/storage/transition-log.js +7 -4
- package/dist/storage/trash-store.js +15 -6
- package/dist/storage/usage-store.d.ts +1 -5
- package/dist/storage/usage-store.js +0 -35
- package/dist/storage/vector-store/migrator.js +7 -2
- package/dist/storage/vector-store/sqlite-adapter.js +4 -1
- package/dist/storage/webhook-server-store.js +2 -2
- package/dist/tools/api-spec-generator-handler.js +3 -2
- package/dist/tools/auto-update-handler.d.ts +4 -4
- package/dist/tools/auto-update-handler.js +4 -4
- package/dist/tools/browser-validate-handler.js +2 -1
- package/dist/tools/challenge-spec/platform-challenge-scenarios-b.js +8 -5
- package/dist/tools/challenge-spec/resilience-challenge-scenarios.d.ts +2 -1
- package/dist/tools/challenge-spec/resilience-challenge-scenarios.js +10 -7
- package/dist/tools/challenge-spec/scenario-collector.js +1 -1
- package/dist/tools/challenge-spec/scenarios-data.js +1 -1
- package/dist/tools/challenge-spec/scenarios-desktop.js +8 -3
- package/dist/tools/challenge-spec/scenarios-failure.js +7 -2
- package/dist/tools/challenge-spec/scenarios-utils.d.ts +1 -1
- package/dist/tools/challenge-spec/scenarios-utils.js +35 -11
- package/dist/tools/challenge-spec/security-challenge-scenarios.js +3 -3
- package/dist/tools/challenge-spec.js +5 -5
- package/dist/tools/check-readiness.js +1 -1
- package/dist/tools/clarify-requirements/multiple-choice.js +53 -41
- package/dist/tools/comments-handler.js +2 -3
- package/dist/tools/compliance-test-handler.js +2 -2
- package/dist/tools/configure-telemetry.js +41 -13
- package/dist/tools/create-spec/auto-pipeline.js +13 -1
- package/dist/tools/create-spec/autopilot-analyzer.d.ts +1 -1
- package/dist/tools/create-spec/autopilot-analyzer.js +2 -4
- package/dist/tools/create-spec/mcp-tool-contract.d.ts +10 -4
- package/dist/tools/create-spec/mcp-tool-contract.js +7 -36
- package/dist/tools/create-spec/post-creation.d.ts +2 -1
- package/dist/tools/create-spec/post-creation.js +56 -54
- package/dist/tools/create-spec/relevance-scorer.d.ts +1 -1
- package/dist/tools/create-spec/relevance-scorer.js +17 -1
- package/dist/tools/create-spec/spec-builder.js +2 -23
- package/dist/tools/create-spec/spec-created-outbox-consumer.d.ts +14 -0
- package/dist/tools/create-spec/spec-created-outbox-consumer.js +176 -0
- package/dist/tools/create-spec.d.ts +1 -0
- package/dist/tools/create-spec.js +802 -732
- package/dist/tools/define-ui-contract/agent-interaction-contract.js +2 -4
- package/dist/tools/define-ui-contract-desktop/desktop-contract.js +12 -4
- package/dist/tools/define-ui-contract-desktop/native-contract.js +7 -3
- package/dist/tools/define-ui-contract-extensions.js +2 -3
- package/dist/tools/define-ui-contract-mobile.js +5 -9
- package/dist/tools/define-ui-contract-web/component-tree.js +4 -3
- package/dist/tools/define-ui-contract.js +7 -4
- package/dist/tools/deploy/deploy-spec.js +2 -4
- package/dist/tools/deploy/deploy-status.js +2 -4
- package/dist/tools/design-schema/nosql-category-schemas.js +2 -3
- package/dist/tools/design-schema-sql/migrations.js +3 -2
- package/dist/tools/design-schema-sql/tables.js +4 -1
- package/dist/tools/design-schema.js +4 -3
- package/dist/tools/feedback-handler.js +2 -4
- package/dist/tools/gc-data-projects.js +5 -5
- package/dist/tools/generate-execution-plan.js +3 -4
- package/dist/tools/generate-sub-agent.js +2 -1
- package/dist/tools/generate-tests/generators/a11y-tests-generator.js +5 -4
- package/dist/tools/generate-tests/generators/advanced-testing-generator.js +5 -4
- package/dist/tools/generate-tests/generators/concurrency-test-generator/js-templates.js +9 -4
- package/dist/tools/generate-tests/generators/concurrency-test-generator.js +8 -4
- package/dist/tools/generate-tests/generators/database/detectors.js +9 -3
- package/dist/tools/generate-tests/generators/database/index.js +2 -4
- package/dist/tools/generate-tests/generators/event-test-generator.js +5 -4
- package/dist/tools/generate-tests/generators/game-tests-generator.js +2 -1
- package/dist/tools/generate-tests/generators/graphql-test-generator.js +11 -5
- package/dist/tools/generate-tests/generators/grpc-test-generator.js +2 -3
- package/dist/tools/generate-tests/generators/llm-security-test-generator.js +4 -3
- package/dist/tools/generate-tests/generators/local-first-test-generator.js +4 -3
- package/dist/tools/generate-tests/generators/mcp-tests-generator.js +11 -9
- package/dist/tools/generate-tests/generators/microservices/index.js +2 -3
- package/dist/tools/generate-tests/generators/otel-test-generator.js +6 -3
- package/dist/tools/generate-tests/generators/security/detectors.js +2 -5
- package/dist/tools/generate-tests/generators/security/index.js +2 -4
- package/dist/tools/generate-tests/generators/supply-chain-test-generator.js +2 -3
- package/dist/tools/generate-tests/generators/visual-regression-generator.js +14 -17
- package/dist/tools/generate-tests/generators/websocket-test-generator.js +2 -3
- package/dist/tools/generate-tests/test-helpers.js +11 -12
- package/dist/tools/generate-tests-content.js +4 -3
- package/dist/tools/generate-tests.js +7 -4
- package/dist/tools/git/branch-ops.d.ts +1 -1
- package/dist/tools/git/branch-ops.js +3 -2
- package/dist/tools/git/git-helpers.d.ts +0 -2
- package/dist/tools/git/git-helpers.js +7 -7
- package/dist/tools/github-pr-handler.js +10 -3
- package/dist/tools/heal-spec-docs.js +6 -53
- package/dist/tools/hook-generator-handler.js +6 -6
- package/dist/tools/init-constitution/platform-principles.js +4 -2
- package/dist/tools/init-project/agents-md-writer.js +14 -5
- package/dist/tools/init-project/claude-md-generator.js +19 -12
- package/dist/tools/init-project/handler.js +165 -75
- package/dist/tools/init-project/host-assets-writer.d.ts +1 -1
- package/dist/tools/init-project/host-assets-writer.js +30 -3
- package/dist/tools/init-project/lifecycle-helpers.js +3 -5
- package/dist/tools/init-project/lint-scaffolder.d.ts +3 -3
- package/dist/tools/init-project/lint-scaffolder.js +6 -2
- package/dist/tools/init-project/migration-runner.d.ts +8 -1
- package/dist/tools/init-project/migration-runner.js +68 -2
- package/dist/tools/init-project/per-client-files-writer.js +14 -4
- package/dist/tools/init-project/portable-index-reconciler.d.ts +4 -0
- package/dist/tools/init-project/portable-index-reconciler.js +14 -0
- package/dist/tools/init-project/result-builder.js +1 -3
- package/dist/tools/init-project/rules-generator.js +10 -2
- package/dist/tools/init-project/scaffold-writer.d.ts +1 -1
- package/dist/tools/init-project/scaffold-writer.js +17 -15
- package/dist/tools/jobs/handlers.d.ts +15 -0
- package/dist/tools/jobs/handlers.js +158 -0
- package/dist/tools/list-specs.js +39 -59
- package/dist/tools/manage-plugins-handler.js +17 -9
- package/dist/tools/merge-risk-handler.js +2 -2
- package/dist/tools/migrate-tech/advanced-handlers.js +3 -2
- package/dist/tools/migrate-tech/build-tool-handlers.js +3 -2
- package/dist/tools/migrate-tech/core-handlers.js +5 -2
- package/dist/tools/migrate-tech/data-handlers.js +6 -3
- package/dist/tools/migrate-tech-advanced/rollback-handlers.js +3 -2
- package/dist/tools/migrate-tech-advanced/service-handlers.js +5 -2
- package/dist/tools/oauth-handler.js +7 -1
- package/dist/tools/package-handoff.js +2 -0
- package/dist/tools/reconcile-spec.js +0 -27
- package/dist/tools/register-agent-squad-tools.js +2 -2
- package/dist/tools/register-platform-tools/design-stack-tools.js +11 -11
- package/dist/tools/register-platform-tools/lifecycle-infra-tools.js +7 -7
- package/dist/tools/register-sdd-tools.d.ts +1 -1
- package/dist/tools/register-sdd-tools.js +2 -24
- package/dist/tools/register-spec-tools/analysis-tools.js +8 -8
- package/dist/tools/register-spec-tools/core-spec-tools.js +48 -8
- package/dist/tools/registry/auth.js +13 -5
- package/dist/tools/registry/publish.js +7 -4
- package/dist/tools/resolve-project-path.d.ts +2 -2
- package/dist/tools/resolve-project-path.js +7 -7
- package/dist/tools/reverse-engineer/analyzer.js +14 -14
- package/dist/tools/rollback-release.js +3 -2
- package/dist/tools/safe-handler.d.ts +5 -13
- package/dist/tools/safe-handler.js +302 -194
- package/dist/tools/schema-generator-handler.js +2 -1
- package/dist/tools/schemas/index.d.ts +1 -1
- package/dist/tools/schemas/index.js +1 -1
- package/dist/tools/schemas/output-schemas.d.ts +88 -105
- package/dist/tools/schemas/output-schemas.js +12 -122
- package/dist/tools/schemas/plugins-schemas.js +0 -2
- package/dist/tools/schemas/registry.js +0 -2
- package/dist/tools/schemas/skill-registry-schemas.js +0 -2
- package/dist/tools/schemas/spec.d.ts +4 -0
- package/dist/tools/schemas/spec.js +3 -0
- package/dist/tools/schemas/validate-output-schema.d.ts +267 -0
- package/dist/tools/schemas/validate-output-schema.js +219 -0
- package/dist/tools/sentry-handler.js +6 -1
- package/dist/tools/skill-bootstrap-handler.js +7 -4
- package/dist/tools/spec-prompt-handler.js +3 -3
- package/dist/tools/status-handler.js +4 -0
- package/dist/tools/storage-bundle-handler.d.ts +9 -0
- package/dist/tools/storage-bundle-handler.js +29 -0
- package/dist/tools/storage-paths-handler.d.ts +9 -0
- package/dist/tools/storage-paths-handler.js +17 -0
- package/dist/tools/suggest-mcp-server.js +11 -5
- package/dist/tools/suggest-mcps.js +29 -9
- package/dist/tools/suggest-tooling/advanced-testing-catalog.js +4 -5
- package/dist/tools/suggest-tooling/build-tool-catalog.js +2 -1
- package/dist/tools/suggest-tooling/css-framework-catalog.js +13 -7
- package/dist/tools/suggest-tooling/framework-catalog.js +3 -5
- package/dist/tools/suggest-tooling/frontend-perf-catalog.js +2 -6
- package/dist/tools/suggest-tooling/handler.js +10 -4
- package/dist/tools/suggest-tooling/hypermedia-catalog.js +11 -3
- package/dist/tools/suggest-tooling/linting-catalog.js +4 -7
- package/dist/tools/suggest-tooling/llm-security-catalog.js +2 -1
- package/dist/tools/suggest-tooling/local-first-catalog.js +7 -5
- package/dist/tools/suggest-tooling/observability-catalog.js +3 -4
- package/dist/tools/suggest-tooling/otel-catalog.js +4 -1
- package/dist/tools/suggest-tooling/resilience-catalog.js +16 -5
- package/dist/tools/suggest-tooling/skills-catalog.js +10 -9
- package/dist/tools/suggest-tooling/supply-chain-catalog.js +2 -3
- package/dist/tools/supabase-handler.js +2 -1
- package/dist/tools/sync-spec-state-handler.d.ts +1 -1
- package/dist/tools/sync-spec-state-handler.js +1 -1
- package/dist/tools/token-intelligence-handler.js +2 -2
- package/dist/tools/token-recording.js +2 -2
- package/dist/tools/token-savings-handler.js +2 -2
- package/dist/tools/tool-entry.d.ts +4 -4
- package/dist/tools/tool-entry.js +3 -3
- package/dist/tools/tool-registry/core-tools.js +162 -15
- package/dist/tools/tool-registry/group-infra.js +37 -122
- package/dist/tools/tool-registry/group-quality-compliance.js +31 -38
- package/dist/tools/tool-registry/inventory.d.ts +2 -0
- package/dist/tools/tool-registry/inventory.js +2 -0
- package/dist/tools/tool-registry-helpers.d.ts +3 -3
- package/dist/tools/tool-registry-helpers.js +3 -3
- package/dist/tools/tool-usage-report/registered-tools.d.ts +1 -1
- package/dist/tools/tool-usage-report/registered-tools.js +3 -15
- package/dist/tools/update-status/approval-gates.d.ts +13 -0
- package/dist/tools/update-status/approval-gates.js +84 -0
- package/dist/tools/update-status/batch.js +4 -2
- package/dist/tools/update-status/dod-gates.d.ts +6 -24
- package/dist/tools/update-status/dod-gates.js +60 -135
- package/dist/tools/update-status/done-receipt-verifier.d.ts +15 -0
- package/dist/tools/update-status/done-receipt-verifier.js +158 -0
- package/dist/tools/update-status/evidence-gate.js +190 -3
- package/dist/tools/update-status/file-sync.d.ts +2 -1
- package/dist/tools/update-status/file-sync.js +80 -18
- package/dist/tools/update-status/gate-harness.d.ts +7 -0
- package/dist/tools/update-status/gate-harness.js +8 -0
- package/dist/tools/update-status/index.d.ts +2 -0
- package/dist/tools/update-status/index.js +307 -367
- package/dist/tools/update-status/qa-gate.d.ts +1 -1
- package/dist/tools/update-status/qa-gate.js +2 -2
- package/dist/tools/update-status/response-builder.js +3 -3
- package/dist/tools/update-status/side-effects.d.ts +2 -0
- package/dist/tools/update-status/side-effects.js +32 -39
- package/dist/tools/update-status/transition-guard.d.ts +4 -2
- package/dist/tools/update-status/transition-guard.js +89 -25
- package/dist/tools/update-status-actions.d.ts +4 -2
- package/dist/tools/update-status-actions.js +16 -14
- package/dist/tools/update-status-convention-gate.js +24 -23
- package/dist/tools/update-status-reconcile.js +2 -2
- package/dist/tools/usage-report.js +1 -16
- package/dist/tools/usage-stats.js +1 -18
- package/dist/tools/usage-tracking.d.ts +4 -0
- package/dist/tools/usage-tracking.js +20 -0
- package/dist/tools/validate-api-contract-handler.js +3 -3
- package/dist/tools/validate-lint.d.ts +1 -0
- package/dist/tools/validate-lint.js +21 -14
- package/dist/tools/validate.d.ts +4 -1
- package/dist/tools/validate.js +319 -31
- package/dist/transports/http-transport.js +87 -66
- package/dist/transports/mcp-types.d.ts +0 -2
- package/dist/transports/middleware/with-telemetry.js +3 -2
- package/dist/transports/session-context.js +1 -1
- package/dist/types/abortable-process.d.ts +2 -0
- package/dist/types/advanced-framework.js +0 -2
- package/dist/types/atomic-upgrade.d.ts +71 -0
- package/dist/types/atomic-upgrade.js +2 -0
- package/dist/types/cascade-hooks.d.ts +1 -1
- package/dist/types/ci.d.ts +0 -4
- package/dist/types/ci.js +0 -2
- package/dist/types/clarification-token.d.ts +1 -1
- package/dist/types/claude-code-runtime.d.ts +0 -27
- package/dist/types/commercial-migration.d.ts +17 -0
- package/dist/types/commercial-migration.js +2 -0
- package/dist/types/common/primitives.d.ts +0 -2
- package/dist/types/core-bridge.d.ts +81 -10
- package/dist/types/crash-shield-framework-rules.d.ts +24 -0
- package/dist/types/crash-shield-framework-rules.js +2 -0
- package/dist/types/dashboard.d.ts +3 -7
- package/dist/types/data-gc.d.ts +16 -0
- package/dist/types/deploy.js +0 -2
- package/dist/types/docs.d.ts +0 -1
- package/dist/types/durable-job.d.ts +78 -0
- package/dist/types/durable-job.js +2 -0
- package/dist/types/durable-validation.d.ts +158 -0
- package/dist/types/durable-validation.js +166 -0
- package/dist/types/errors/structured-error.d.ts +3 -3
- package/dist/types/estimation.d.ts +4 -0
- package/dist/types/evidence-gates.d.ts +17 -1
- package/dist/types/execution.d.ts +45 -0
- package/dist/types/gemini-integration.d.ts +0 -11
- package/dist/types/handoff-artifacts.d.ts +43 -0
- package/dist/types/hooks-advanced.d.ts +0 -13
- package/dist/types/impact-detection.d.ts +2 -2
- package/dist/types/index.d.ts +4 -6
- package/dist/types/index.js +3 -5
- package/dist/types/infrastructure.js +0 -2
- package/dist/types/kiro-integration.d.ts +0 -6
- package/dist/types/lifecycle.js +0 -2
- package/dist/types/migration/canonical-storage.d.ts +37 -0
- package/dist/types/migration/canonical-storage.js +2 -0
- package/dist/types/migration/index.d.ts +1 -1
- package/dist/types/native-worker.d.ts +48 -0
- package/dist/types/native-worker.js +2 -0
- package/dist/types/network-policy.d.ts +12 -0
- package/dist/types/network-policy.js +2 -0
- package/dist/types/oauth.js +0 -2
- package/dist/types/observability.d.ts +32 -0
- package/dist/types/outbox-worker.d.ts +35 -0
- package/dist/types/outbox-worker.js +11 -0
- package/dist/types/permissions-config.d.ts +0 -27
- package/dist/types/permissions-config.js +0 -2
- package/dist/types/plugin-install.d.ts +0 -11
- package/dist/types/plugin-install.js +0 -2
- package/dist/types/portal.d.ts +1 -0
- package/dist/types/product-public.d.ts +75 -0
- package/dist/types/product-public.js +2 -0
- package/dist/types/project/inputs.d.ts +2 -0
- package/dist/types/project/lint-scaffolder.d.ts +1 -1
- package/dist/types/project/mfe-detection.js +0 -2
- package/dist/types/project/platform-mobile.js +0 -2
- package/dist/types/project/platform-specialty.js +0 -2
- package/dist/types/project-knowledge-graph.d.ts +7 -0
- package/dist/types/runtime-database.d.ts +10 -0
- package/dist/types/runtime-database.js +2 -0
- package/dist/types/runtime-policy.d.ts +51 -0
- package/dist/types/runtime-policy.js +2 -0
- package/dist/types/safety.d.ts +4 -5
- package/dist/types/schema-registry.d.ts +12 -0
- package/dist/types/schema-registry.js +2 -0
- package/dist/types/security.d.ts +52 -0
- package/dist/types/session-safeguard.d.ts +0 -31
- package/dist/types/skill-registry.js +0 -2
- package/dist/types/spec/canonical-repair.d.ts +81 -0
- package/dist/types/spec/canonical-repair.js +2 -0
- package/dist/types/spec/core.d.ts +14 -0
- package/dist/types/spec/index.d.ts +1 -0
- package/dist/types/spec/index.js +1 -0
- package/dist/types/spec/inputs.d.ts +31 -0
- package/dist/types/spec-format.d.ts +24 -0
- package/dist/types/spec-lock-v2.d.ts +13 -7
- package/dist/types/spec-lock-v2.js +1 -1
- package/dist/types/spec-registry.js +0 -2
- package/dist/types/storage-bundle.d.ts +13 -0
- package/dist/types/storage-bundle.js +2 -0
- package/dist/types/storage-catalog.d.ts +18 -0
- package/dist/types/storage-catalog.js +2 -0
- package/dist/types/team-planner.js +0 -2
- package/dist/types/technology-registry.d.ts +35 -0
- package/dist/types/technology-registry.js +2 -0
- package/dist/types/technology-symbols.generated.d.ts +117 -0
- package/dist/types/technology-symbols.generated.js +2 -0
- package/dist/types/telemetry.d.ts +7 -4
- package/dist/types/transport.d.ts +2 -2
- package/dist/types/usage.d.ts +1 -36
- package/dist/types/usage.js +1 -1
- package/dist/types/validate-worker.d.ts +50 -0
- package/dist/types/validate-worker.js +2 -0
- package/dist/types/validation-evidence.d.ts +1 -1
- package/dist/types/validation-receipt.d.ts +104 -0
- package/dist/types/validation-receipt.js +2 -0
- package/dist/types/validation.d.ts +2 -2
- package/package.json +36 -21
- package/planu-native.json +1 -1
- package/planu-plugin.json +23 -40
- package/scripts/lib/pending-release-file.mjs +93 -0
- package/src/i18n/messages/en.json +0 -41
- package/src/i18n/messages/es.json +0 -41
- package/src/i18n/messages/pt.json +0 -41
- package/dist/cli/commands/activate.d.ts +0 -14
- package/dist/cli/commands/activate.js +0 -174
- package/dist/config/license-plans.json +0 -244
- package/dist/config/server-instructions.ts +0 -121
- package/dist/config/version-defaults.ts +0 -76
- package/dist/config/version.ts +0 -18
- package/dist/engine/ai-integration/gemini/settings-generator.d.ts +0 -4
- package/dist/engine/ai-integration/gemini/settings-generator.js +0 -195
- package/dist/engine/ai-integration/kiro/hooks-generator.d.ts +0 -6
- package/dist/engine/ai-integration/kiro/hooks-generator.js +0 -75
- package/dist/engine/hooks/full-spectrum-generator.d.ts +0 -32
- package/dist/engine/hooks/full-spectrum-generator.js +0 -117
- package/dist/engine/license-validator/config-loader.d.ts +0 -5
- package/dist/engine/license-validator/config-loader.js +0 -16
- package/dist/engine/license-validator/core.d.ts +0 -15
- package/dist/engine/license-validator/core.js +0 -151
- package/dist/engine/license-validator/fingerprint.d.ts +0 -3
- package/dist/engine/license-validator/fingerprint.js +0 -17
- package/dist/engine/license-validator/lemon-squeezy.d.ts +0 -5
- package/dist/engine/license-validator/lemon-squeezy.js +0 -55
- package/dist/engine/license-validator.d.ts +0 -5
- package/dist/engine/license-validator.js +0 -6
- package/dist/engine/product-intelligence/index.d.ts +0 -7
- package/dist/engine/product-intelligence/index.js +0 -211
- package/dist/engine/session/auto-save.d.ts +0 -18
- package/dist/engine/session/auto-save.js +0 -98
- package/dist/engine/session/context-snapshot.d.ts +0 -8
- package/dist/engine/session/context-snapshot.js +0 -49
- package/dist/engine/session/memory-sync.d.ts +0 -12
- package/dist/engine/session/memory-sync.js +0 -34
- package/dist/engine/session/session-diff.d.ts +0 -11
- package/dist/engine/session/session-diff.js +0 -42
- package/dist/engine/session/session-merge.d.ts +0 -12
- package/dist/engine/session/session-merge.js +0 -55
- package/dist/engine/session-safeguard/checkpoint-runner.d.ts +0 -4
- package/dist/engine/session-safeguard/checkpoint-runner.js +0 -70
- package/dist/engine/session-safeguard/learnings-buffer.d.ts +0 -16
- package/dist/engine/session-safeguard/learnings-buffer.js +0 -114
- package/dist/engine/session-safeguard/precompaction-drain.d.ts +0 -10
- package/dist/engine/session-safeguard/precompaction-drain.js +0 -82
- package/dist/engine/session-safeguard/unpushed-detector.d.ts +0 -7
- package/dist/engine/session-safeguard/unpushed-detector.js +0 -59
- package/dist/engine/spec-changelog/core.d.ts +0 -16
- package/dist/engine/spec-changelog/core.js +0 -176
- package/dist/engine/spec-changelog/diff.d.ts +0 -18
- package/dist/engine/spec-changelog/diff.js +0 -121
- package/dist/engine/spec-changelog/index.d.ts +0 -3
- package/dist/engine/spec-changelog/index.js +0 -4
- package/dist/engine/telemetry/geo-resolver.d.ts +0 -9
- package/dist/engine/telemetry/geo-resolver.js +0 -43
- package/dist/engine/trial-engine.d.ts +0 -5
- package/dist/engine/trial-engine.js +0 -14
- package/dist/engine/usage-tracker/rate-check.d.ts +0 -7
- package/dist/engine/usage-tracker/rate-check.js +0 -18
- package/dist/engine/usage-tracker/rate-limiter.d.ts +0 -14
- package/dist/engine/usage-tracker/rate-limiter.js +0 -73
- package/dist/engine/usage-tracker/trial.d.ts +0 -27
- package/dist/engine/usage-tracker/trial.js +0 -49
- package/dist/engine/webhook/event-handlers.d.ts +0 -25
- package/dist/engine/webhook/event-handlers.js +0 -89
- package/dist/engine/webhook/index.d.ts +0 -4
- package/dist/engine/webhook/index.js +0 -5
- package/dist/engine/webhook/server.d.ts +0 -12
- package/dist/engine/webhook/server.js +0 -249
- package/dist/engine/webhook/signature.d.ts +0 -16
- package/dist/engine/webhook/signature.js +0 -49
- package/dist/storage/data-dir-discovery.d.ts +0 -31
- package/dist/storage/data-dir-discovery.js +0 -140
- package/dist/storage/license-store.d.ts +0 -6
- package/dist/storage/license-store.js +0 -91
- package/dist/storage/migrations/cwd-to-absolute.d.ts +0 -25
- package/dist/storage/migrations/cwd-to-absolute.js +0 -281
- package/dist/storage/session-store.d.ts +0 -20
- package/dist/storage/session-store.js +0 -128
- package/dist/tools/activate-license.d.ts +0 -6
- package/dist/tools/activate-license.js +0 -132
- package/dist/tools/checkpoint-handler.d.ts +0 -3
- package/dist/tools/checkpoint-handler.js +0 -130
- package/dist/tools/create-spec/adapters/prior-decisions-hint.d.ts +0 -14
- package/dist/tools/create-spec/adapters/prior-decisions-hint.js +0 -30
- package/dist/tools/export-session.d.ts +0 -3
- package/dist/tools/export-session.js +0 -90
- package/dist/tools/init-project/ancestor-data-detector.d.ts +0 -22
- package/dist/tools/init-project/ancestor-data-detector.js +0 -81
- package/dist/tools/license-gate.d.ts +0 -18
- package/dist/tools/license-gate.js +0 -222
- package/dist/tools/license-status.d.ts +0 -3
- package/dist/tools/license-status.js +0 -93
- package/dist/tools/list-sessions.d.ts +0 -3
- package/dist/tools/list-sessions.js +0 -46
- package/dist/tools/planu-session-checkpoint.d.ts +0 -6
- package/dist/tools/planu-session-checkpoint.js +0 -42
- package/dist/tools/restore-session.d.ts +0 -3
- package/dist/tools/restore-session.js +0 -71
- package/dist/tools/spec-history.d.ts +0 -3
- package/dist/tools/spec-history.js +0 -59
- package/dist/tools/update-status/force-done-audit.d.ts +0 -2
- package/dist/tools/update-status/force-done-audit.js +0 -23
- package/dist/tools/webhook.d.ts +0 -6
- package/dist/tools/webhook.js +0 -150
- package/dist/types/changelog.d.ts +0 -49
- package/dist/types/changelog.js +0 -3
- package/dist/types/licensing.d.ts +0 -109
- package/dist/types/licensing.js +0 -4
- package/dist/types/migration/cwd-to-absolute.d.ts +0 -8
- package/dist/types/migration/cwd-to-absolute.js +0 -3
- package/dist/types/product-intelligence.d.ts +0 -60
- package/dist/types/product-intelligence.js +0 -3
- package/dist/types/session.d.ts +0 -84
- package/dist/types/session.js +0 -3
- package/dist/types/webhook.d.ts +0 -62
- package/dist/types/webhook.js +0 -4
|
@@ -19,6 +19,7 @@ import { handleGenerateDiagram } from '../diagram-handler.js';
|
|
|
19
19
|
import { handleCheckParallelSafety } from '../parallel-safety-handler.js';
|
|
20
20
|
import { handleAnalyzePerformanceImpact } from '../performance-analysis-handler.js';
|
|
21
21
|
import { handlePlanStatus } from '../status-handler.js';
|
|
22
|
+
import { handleSessionCheckpoint } from '../session-checkpoint.js';
|
|
22
23
|
import { handleValidateWorkflow } from '../validate-workflow.js';
|
|
23
24
|
import { handleTransformCode } from '../transform-code-handler.js';
|
|
24
25
|
import { handleConfigureTelemetry } from '../configure-telemetry.js';
|
|
@@ -42,8 +43,154 @@ import { handleDogfoodWatch } from '../dogfood-watch.js';
|
|
|
42
43
|
import { SecurityReportTimeRangeEnum, SecurityReportFormatEnum, } from '../schemas/runtime-security.js';
|
|
43
44
|
import { RenderSpecForProviderInputSchema, handleRenderSpecForProvider, } from '../render-spec-for-provider.js';
|
|
44
45
|
import { handleTriageRequest, TriageRequestInputSchema } from '../triage-request.js';
|
|
46
|
+
import { handleStoragePaths } from '../storage-paths-handler.js';
|
|
47
|
+
import { handleStorageExport, handleStorageImport } from '../storage-bundle-handler.js';
|
|
48
|
+
import { handleCancelJob, handleGetJob, handleRestartJob, handleWatchJob, } from '../jobs/handlers.js';
|
|
45
49
|
// ── Registry ─────────────────────────────────────────────────────────────────
|
|
46
50
|
const coreToolsRegistry = [
|
|
51
|
+
{
|
|
52
|
+
name: 'session_checkpoint',
|
|
53
|
+
description: 'Persist a compact, bounded session checkpoint to planu/session-context.md for the next session.',
|
|
54
|
+
schema: {
|
|
55
|
+
projectPath: z.string().trim().min(1).max(4096),
|
|
56
|
+
},
|
|
57
|
+
handler: handleSessionCheckpoint,
|
|
58
|
+
annotations: {
|
|
59
|
+
title: 'Session Checkpoint',
|
|
60
|
+
readOnlyHint: false,
|
|
61
|
+
destructiveHint: false,
|
|
62
|
+
},
|
|
63
|
+
wrap: 'safe',
|
|
64
|
+
group: 'core',
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
name: 'get_job',
|
|
68
|
+
description: 'Read the durable state and latest checkpoint or result for a local Planu job.',
|
|
69
|
+
schema: {
|
|
70
|
+
operationId: z.string().trim().min(1).max(128),
|
|
71
|
+
projectId: z.string().trim().min(1).max(128),
|
|
72
|
+
workspaceId: z.string().trim().min(1).max(128).optional(),
|
|
73
|
+
},
|
|
74
|
+
handler: handleGetJob,
|
|
75
|
+
annotations: {
|
|
76
|
+
title: 'Get Durable Job',
|
|
77
|
+
readOnlyHint: true,
|
|
78
|
+
destructiveHint: false,
|
|
79
|
+
openWorldHint: false,
|
|
80
|
+
},
|
|
81
|
+
wrap: 'safe',
|
|
82
|
+
group: 'infrastructure',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
name: 'watch_job',
|
|
86
|
+
description: 'Wait up to 30 seconds for a durable Planu job to change or reach a terminal state.',
|
|
87
|
+
schema: {
|
|
88
|
+
operationId: z.string().trim().min(1).max(128),
|
|
89
|
+
projectId: z.string().trim().min(1).max(128),
|
|
90
|
+
workspaceId: z.string().trim().min(1).max(128).optional(),
|
|
91
|
+
afterCursor: z
|
|
92
|
+
.string()
|
|
93
|
+
.regex(/^[a-f0-9]{64}$/)
|
|
94
|
+
.optional(),
|
|
95
|
+
timeoutMs: z.number().int().min(0).max(30_000).optional(),
|
|
96
|
+
},
|
|
97
|
+
handler: handleWatchJob,
|
|
98
|
+
annotations: {
|
|
99
|
+
title: 'Watch Durable Job',
|
|
100
|
+
readOnlyHint: true,
|
|
101
|
+
destructiveHint: false,
|
|
102
|
+
openWorldHint: false,
|
|
103
|
+
},
|
|
104
|
+
wrap: 'safe',
|
|
105
|
+
group: 'infrastructure',
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
name: 'cancel_job',
|
|
109
|
+
description: 'Durably cancel a Planu job and fence any worker that still holds its former lease.',
|
|
110
|
+
schema: {
|
|
111
|
+
operationId: z.string().trim().min(1).max(128),
|
|
112
|
+
projectId: z.string().trim().min(1).max(128),
|
|
113
|
+
workspaceId: z.string().trim().min(1).max(128).optional(),
|
|
114
|
+
},
|
|
115
|
+
handler: handleCancelJob,
|
|
116
|
+
annotations: {
|
|
117
|
+
title: 'Cancel Durable Job',
|
|
118
|
+
readOnlyHint: false,
|
|
119
|
+
destructiveHint: true,
|
|
120
|
+
idempotentHint: true,
|
|
121
|
+
openWorldHint: false,
|
|
122
|
+
},
|
|
123
|
+
wrap: 'safe',
|
|
124
|
+
group: 'infrastructure',
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
name: 'restart_job',
|
|
128
|
+
description: 'Restart a cancelled or failed durable job and schedule its typed executor.',
|
|
129
|
+
schema: {
|
|
130
|
+
operationId: z.string().trim().min(1).max(128),
|
|
131
|
+
projectId: z.string().trim().min(1).max(128),
|
|
132
|
+
workspaceId: z.string().trim().min(1).max(128).optional(),
|
|
133
|
+
},
|
|
134
|
+
handler: handleRestartJob,
|
|
135
|
+
annotations: {
|
|
136
|
+
title: 'Restart Durable Job',
|
|
137
|
+
readOnlyHint: false,
|
|
138
|
+
destructiveHint: false,
|
|
139
|
+
idempotentHint: true,
|
|
140
|
+
openWorldHint: false,
|
|
141
|
+
},
|
|
142
|
+
wrap: 'safe',
|
|
143
|
+
group: 'infrastructure',
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
name: 'storage_paths',
|
|
147
|
+
description: 'Resolve the canonical local-first Planu storage catalog, including ownership, lifecycle, sensitivity, retention and portability for every registered artifact family.',
|
|
148
|
+
schema: {
|
|
149
|
+
projectPath: z.string().min(1).max(4096).optional(),
|
|
150
|
+
logicalProjectId: z.string().min(1).max(128).optional(),
|
|
151
|
+
workspaceKeyHash: z.string().min(1).max(128).optional(),
|
|
152
|
+
},
|
|
153
|
+
handler: (args) => Promise.resolve(handleStoragePaths(args)),
|
|
154
|
+
annotations: {
|
|
155
|
+
title: 'Planu Storage Paths',
|
|
156
|
+
readOnlyHint: true,
|
|
157
|
+
destructiveHint: false,
|
|
158
|
+
openWorldHint: false,
|
|
159
|
+
},
|
|
160
|
+
wrap: 'safe',
|
|
161
|
+
group: 'infrastructure',
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
name: 'storage_export',
|
|
165
|
+
description: 'Export a versioned, checksummed Planu runtime bundle with secret values redacted.',
|
|
166
|
+
schema: {
|
|
167
|
+
projectId: z.string().min(1).max(128),
|
|
168
|
+
outputPath: z.string().min(1).max(4096),
|
|
169
|
+
},
|
|
170
|
+
handler: handleStorageExport,
|
|
171
|
+
annotations: {
|
|
172
|
+
title: 'Export Planu Storage',
|
|
173
|
+
readOnlyHint: false,
|
|
174
|
+
destructiveHint: false,
|
|
175
|
+
openWorldHint: false,
|
|
176
|
+
},
|
|
177
|
+
wrap: 'safe',
|
|
178
|
+
group: 'infrastructure',
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
name: 'storage_import',
|
|
182
|
+
description: 'Verify and transactionally import a checksummed Planu runtime bundle.',
|
|
183
|
+
schema: { inputPath: z.string().min(1).max(4096) },
|
|
184
|
+
handler: handleStorageImport,
|
|
185
|
+
annotations: {
|
|
186
|
+
title: 'Import Planu Storage',
|
|
187
|
+
readOnlyHint: false,
|
|
188
|
+
destructiveHint: false,
|
|
189
|
+
openWorldHint: false,
|
|
190
|
+
},
|
|
191
|
+
wrap: 'safe',
|
|
192
|
+
group: 'infrastructure',
|
|
193
|
+
},
|
|
47
194
|
// ── generate_batch_script (SPEC-253) ──────────────────────────────────────
|
|
48
195
|
{
|
|
49
196
|
name: 'generate_batch_script',
|
|
@@ -106,7 +253,7 @@ const coreToolsRegistry = [
|
|
|
106
253
|
},
|
|
107
254
|
handler: async (args) => handleGenerateDiagram(args),
|
|
108
255
|
annotations: { readOnlyHint: true },
|
|
109
|
-
wrap: '
|
|
256
|
+
wrap: 'governed',
|
|
110
257
|
group: 'analysis',
|
|
111
258
|
},
|
|
112
259
|
// ── check_parallel_safety (SPEC-373) ──────────────────────────────────────
|
|
@@ -123,7 +270,7 @@ const coreToolsRegistry = [
|
|
|
123
270
|
},
|
|
124
271
|
handler: (args) => Promise.resolve(handleCheckParallelSafety(args)),
|
|
125
272
|
annotations: { title: 'Check Parallel Safety', readOnlyHint: true },
|
|
126
|
-
wrap: '
|
|
273
|
+
wrap: 'governed',
|
|
127
274
|
group: 'analysis',
|
|
128
275
|
},
|
|
129
276
|
// ── analyze_performance_impact (SPEC-300) ─────────────────────────────────
|
|
@@ -145,7 +292,7 @@ const coreToolsRegistry = [
|
|
|
145
292
|
},
|
|
146
293
|
handler: async (args) => handleAnalyzePerformanceImpact(args),
|
|
147
294
|
annotations: { readOnlyHint: true },
|
|
148
|
-
wrap: '
|
|
295
|
+
wrap: 'governed',
|
|
149
296
|
group: 'analysis',
|
|
150
297
|
},
|
|
151
298
|
// ── planu_status (SPEC-223) ───────────────────────────────────────────────
|
|
@@ -198,7 +345,7 @@ const coreToolsRegistry = [
|
|
|
198
345
|
},
|
|
199
346
|
handler: async (args) => handleValidateWorkflow(args),
|
|
200
347
|
annotations: { readOnlyHint: true },
|
|
201
|
-
wrap: '
|
|
348
|
+
wrap: 'governed',
|
|
202
349
|
group: 'core',
|
|
203
350
|
},
|
|
204
351
|
// ── transform_code (SPEC-077) ─────────────────────────────────────────────
|
|
@@ -223,7 +370,7 @@ const coreToolsRegistry = [
|
|
|
223
370
|
},
|
|
224
371
|
handler: (args) => Promise.resolve(handleTransformCode(args)),
|
|
225
372
|
annotations: { title: 'Transform Code', readOnlyHint: true },
|
|
226
|
-
wrap: '
|
|
373
|
+
wrap: 'governed',
|
|
227
374
|
group: 'core',
|
|
228
375
|
},
|
|
229
376
|
// ── configure_telemetry (SPEC-200) ────────────────────────────────────────
|
|
@@ -272,7 +419,7 @@ const coreToolsRegistry = [
|
|
|
272
419
|
},
|
|
273
420
|
handler: async (args) => handleTelemetryHealth(args),
|
|
274
421
|
annotations: { title: 'Telemetry Health', readOnlyHint: true },
|
|
275
|
-
wrap: '
|
|
422
|
+
wrap: 'governed',
|
|
276
423
|
group: 'core',
|
|
277
424
|
},
|
|
278
425
|
// ── configure_observability (SPEC-165) ────────────────────────────────────
|
|
@@ -365,7 +512,7 @@ const coreToolsRegistry = [
|
|
|
365
512
|
},
|
|
366
513
|
handler: (args) => Promise.resolve(handleRecommendModel(args)),
|
|
367
514
|
annotations: { title: 'Recommend Model', readOnlyHint: true },
|
|
368
|
-
wrap: '
|
|
515
|
+
wrap: 'governed',
|
|
369
516
|
group: 'analysis',
|
|
370
517
|
},
|
|
371
518
|
// ── export_spec (SPEC-097) ────────────────────────────────────────────────
|
|
@@ -393,7 +540,7 @@ const coreToolsRegistry = [
|
|
|
393
540
|
},
|
|
394
541
|
handler: async (args) => handleExportSpec(args),
|
|
395
542
|
annotations: { readOnlyHint: false },
|
|
396
|
-
wrap: '
|
|
543
|
+
wrap: 'governed',
|
|
397
544
|
group: 'spec',
|
|
398
545
|
},
|
|
399
546
|
// ── decompose_spec (SPEC-157) ─────────────────────────────────────────────
|
|
@@ -425,7 +572,7 @@ const coreToolsRegistry = [
|
|
|
425
572
|
},
|
|
426
573
|
handler: async (args) => handleDecomposeSpec(args),
|
|
427
574
|
annotations: { readOnlyHint: true },
|
|
428
|
-
wrap: '
|
|
575
|
+
wrap: 'governed',
|
|
429
576
|
group: 'spec',
|
|
430
577
|
},
|
|
431
578
|
// ── facilitate (SPEC-037 + SPEC-264) ──────────────────────────────────────
|
|
@@ -557,7 +704,7 @@ const coreToolsRegistry = [
|
|
|
557
704
|
},
|
|
558
705
|
handler: async (args) => handleScanProject(args),
|
|
559
706
|
annotations: { readOnlyHint: false },
|
|
560
|
-
wrap: '
|
|
707
|
+
wrap: 'governed',
|
|
561
708
|
group: 'analysis',
|
|
562
709
|
},
|
|
563
710
|
// ── estimate_ai_cost (SPEC-069) ───────────────────────────────────────────
|
|
@@ -579,7 +726,7 @@ const coreToolsRegistry = [
|
|
|
579
726
|
},
|
|
580
727
|
handler: async (args) => handleEstimateAiCost(args),
|
|
581
728
|
annotations: { title: 'Estimate AI Cost', readOnlyHint: true },
|
|
582
|
-
wrap: '
|
|
729
|
+
wrap: 'governed',
|
|
583
730
|
group: 'analysis',
|
|
584
731
|
},
|
|
585
732
|
// ── heal_spec_docs (SPEC-493) ─────────────────────────────────────────────
|
|
@@ -607,7 +754,7 @@ const coreToolsRegistry = [
|
|
|
607
754
|
readOnlyHint: false,
|
|
608
755
|
destructiveHint: false,
|
|
609
756
|
},
|
|
610
|
-
wrap: '
|
|
757
|
+
wrap: 'governed',
|
|
611
758
|
group: 'spec',
|
|
612
759
|
},
|
|
613
760
|
// ── convert_to_bdd (SPEC-481) ─────────────────────────────────────────────
|
|
@@ -679,7 +826,7 @@ const coreToolsRegistry = [
|
|
|
679
826
|
},
|
|
680
827
|
handler: (args) => Promise.resolve(handleIdeConfig(args)),
|
|
681
828
|
annotations: { title: 'Generate IDE Config' },
|
|
682
|
-
wrap: '
|
|
829
|
+
wrap: 'governed',
|
|
683
830
|
group: 'core',
|
|
684
831
|
},
|
|
685
832
|
// ── living_reconcile_spec (SPEC-330) ──────────────────────────────────────
|
|
@@ -702,7 +849,7 @@ const coreToolsRegistry = [
|
|
|
702
849
|
readOnlyHint: false,
|
|
703
850
|
destructiveHint: false,
|
|
704
851
|
},
|
|
705
|
-
wrap: '
|
|
852
|
+
wrap: 'governed',
|
|
706
853
|
group: 'spec',
|
|
707
854
|
},
|
|
708
855
|
// ── security_report (SPEC-084) ────────────────────────────────────────────
|
|
@@ -716,7 +863,7 @@ const coreToolsRegistry = [
|
|
|
716
863
|
},
|
|
717
864
|
handler: (args) => Promise.resolve(handleSecurityReport(args)),
|
|
718
865
|
annotations: { readOnlyHint: true },
|
|
719
|
-
wrap: '
|
|
866
|
+
wrap: 'governed',
|
|
720
867
|
group: 'core',
|
|
721
868
|
},
|
|
722
869
|
// ── render_spec_for_provider (SPEC-670) ───────────────────────────────────
|
|
@@ -1,19 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
// — must enumerate framework names by design; no detection logic to migrate.
|
|
3
|
-
/* eslint-disable max-lines, max-lines-per-function -- thematic registry group consolidated by SPEC refactor-phase3 (commit aafeea60); each block is a declarative tool registration ~20 lines, split would re-create the ~120 register-*.ts files this phase intentionally collapsed */
|
|
4
|
-
// tools/tool-registry/group-infra.ts — Declarative registry: infrastructure & platform tools.
|
|
5
|
-
//
|
|
6
|
-
// Phase 2 (refactor/registry-phase2): consolidates register-*.ts files for:
|
|
7
|
-
// webhook, dashboard, usage, license, auto-update, deploy, cross-repo-search, browser-validate,
|
|
8
|
-
// workers, plugins, registry, skill-registry, tool-groups, rbac, workspace, memory-config,
|
|
9
|
-
// onboarding, docs-registry, well-known
|
|
1
|
+
import { technologyValue } from '../../engine/technology-registry.js';
|
|
10
2
|
import { z } from 'zod';
|
|
11
3
|
// ── safe handlers ────────────────────────────────────────────────────────────
|
|
12
|
-
import { safe,
|
|
13
|
-
|
|
14
|
-
import { handleActivateLicense, handleDeactivateLicense } from '../activate-license.js';
|
|
15
|
-
import { handleLicenseStatus } from '../license-status.js';
|
|
16
|
-
import { LicenseStatusOutputSchema, SpecIdSchema } from '../schemas/index.js';
|
|
4
|
+
import { safe, safeGoverned, safeTracked } from '../safe-handler.js';
|
|
5
|
+
import { SpecIdSchema } from '../schemas/index.js';
|
|
17
6
|
// ── OAuth tools (register-oauth-tools.ts / register-configure-oauth-tool.ts) ─
|
|
18
7
|
import { handleStartOAuthFlow, handleOAuthStatus, StartOAuthFlowInputSchema, OAuthStatusInputSchema, } from '../oauth-handler.js';
|
|
19
8
|
import { handleConfigureOAuth } from '../configure-oauth-handler.js';
|
|
@@ -21,8 +10,6 @@ import { handleConfigureOAuth } from '../configure-oauth-handler.js';
|
|
|
21
10
|
import { handleUsageStats } from '../usage-stats.js';
|
|
22
11
|
import { handleUsageReport } from '../usage-report.js';
|
|
23
12
|
import { handleToolUsageReport } from '../tool-usage-report.js';
|
|
24
|
-
// ── Webhook tools (register-webhook-tools.ts) ────────────────────────────────
|
|
25
|
-
import { handleStartWebhook, handleStopWebhook, handleWebhookStatus } from '../webhook.js';
|
|
26
13
|
// ── Outbound webhook tools (register-outbound-webhook-tools.ts) ──────────────
|
|
27
14
|
import { handleConfigureWebhook, handleOutboundWebhookStatus, handleRemoveWebhook, } from '../outbound-webhook-handler.js';
|
|
28
15
|
// ── Dashboard tools (register-dashboard-tools.ts) ────────────────────────────
|
|
@@ -89,59 +76,26 @@ const SUPPORTED_EVENTS = [
|
|
|
89
76
|
'validate.failed',
|
|
90
77
|
];
|
|
91
78
|
const deployProviderEnum = z
|
|
92
|
-
.enum([
|
|
79
|
+
.enum([
|
|
80
|
+
technologyValue('technology-vercel-9d3508'),
|
|
81
|
+
technologyValue('technology-netlify-58465a'),
|
|
82
|
+
'cloudflare-pages',
|
|
83
|
+
technologyValue('technology-fly-f4debd'),
|
|
84
|
+
technologyValue('technology-railway-e34d1c'),
|
|
85
|
+
])
|
|
93
86
|
.describe('Deploy provider: vercel | netlify | cloudflare-pages | fly | railway');
|
|
94
87
|
export function registerInfraGroupTools(server) {
|
|
95
|
-
// ── License tools ──────────────────────────────────────────────────────────
|
|
96
|
-
server.registerTool('activate_license', {
|
|
97
|
-
description: 'Activate a Planu license key to unlock Pro/Team/Enterprise features. ' +
|
|
98
|
-
'Get your key at https://planu.dev/pricing.',
|
|
99
|
-
inputSchema: {
|
|
100
|
-
licenseKey: z
|
|
101
|
-
.string()
|
|
102
|
-
.max(500)
|
|
103
|
-
.describe('License key from Lemon Squeezy (e.g. XXXXXXXX-XXXX-...)'),
|
|
104
|
-
instanceName: z
|
|
105
|
-
.string()
|
|
106
|
-
.max(500)
|
|
107
|
-
.optional()
|
|
108
|
-
.describe('Optional name for this machine (defaults to hostname)'),
|
|
109
|
-
},
|
|
110
|
-
annotations: { title: 'Activate License', readOnlyHint: false },
|
|
111
|
-
}, safe(async (args) => handleActivateLicense(args)));
|
|
112
|
-
server.registerTool('deactivate_license', {
|
|
113
|
-
description: 'Deactivate your Planu license on this machine. ' +
|
|
114
|
-
'Frees up the activation slot so you can use it elsewhere.',
|
|
115
|
-
inputSchema: {
|
|
116
|
-
confirm: z
|
|
117
|
-
.boolean()
|
|
118
|
-
.describe('Set to true to confirm deactivation. This reverts to the Free plan.'),
|
|
119
|
-
},
|
|
120
|
-
annotations: { title: 'Deactivate License', destructiveHint: true },
|
|
121
|
-
}, safe(async (args) => handleDeactivateLicense(args)));
|
|
122
|
-
server.registerTool('license_status', {
|
|
123
|
-
description: 'Show your current Planu plan, limits, usage, and upgrade options.',
|
|
124
|
-
inputSchema: {
|
|
125
|
-
projectId: z
|
|
126
|
-
.string()
|
|
127
|
-
.max(500)
|
|
128
|
-
.optional()
|
|
129
|
-
.describe('Optional project ID to include project-specific usage'),
|
|
130
|
-
},
|
|
131
|
-
outputSchema: LicenseStatusOutputSchema,
|
|
132
|
-
annotations: { title: 'License Status', readOnlyHint: true },
|
|
133
|
-
}, safe(async (args) => handleLicenseStatus(args)));
|
|
134
88
|
// ── OAuth tools ────────────────────────────────────────────────────────────
|
|
135
89
|
server.registerTool('start_oauth_flow', {
|
|
136
90
|
description: 'Start guided OAuth setup for supported integrations such as Figma, GitHub, Sentry, or Supabase.',
|
|
137
91
|
inputSchema: StartOAuthFlowInputSchema,
|
|
138
92
|
annotations: { title: 'Start OAuth Flow', readOnlyHint: false },
|
|
139
|
-
},
|
|
93
|
+
}, safeGoverned('start_oauth_flow', async (args) => handleStartOAuthFlow(args)));
|
|
140
94
|
server.registerTool('oauth_status', {
|
|
141
95
|
description: 'Show which OAuth-backed integrations are connected for this project.',
|
|
142
96
|
inputSchema: OAuthStatusInputSchema,
|
|
143
97
|
annotations: { title: 'OAuth Status', readOnlyHint: true },
|
|
144
|
-
},
|
|
98
|
+
}, safeGoverned('oauth_status', async (args) => handleOAuthStatus(args)));
|
|
145
99
|
server.registerTool('configure_oauth', {
|
|
146
100
|
description: 'Inspect Planu MCP OAuth/API-key auth status or test a bearer token without exposing secrets.',
|
|
147
101
|
inputSchema: {
|
|
@@ -152,7 +106,7 @@ export function registerInfraGroupTools(server) {
|
|
|
152
106
|
}, safe(async (args) => handleConfigureOAuth(args)));
|
|
153
107
|
// ── Usage tools ────────────────────────────────────────────────────────────
|
|
154
108
|
server.registerTool('usage_stats', {
|
|
155
|
-
description: 'View your Planu usage statistics — tool calls, top tools,
|
|
109
|
+
description: 'View your Planu usage statistics — tool calls, top tools, and execution health. ' +
|
|
156
110
|
'Helps you understand how much of your plan you are using. ' +
|
|
157
111
|
'For the last 30 days with no parameters prefer resource: planu://usage/stats.',
|
|
158
112
|
inputSchema: {
|
|
@@ -195,45 +149,6 @@ export function registerInfraGroupTools(server) {
|
|
|
195
149
|
},
|
|
196
150
|
annotations: { title: 'Tool Usage Report', readOnlyHint: true },
|
|
197
151
|
}, safe(async (args) => handleToolUsageReport(args)));
|
|
198
|
-
// ── Webhook tools (inbound) ────────────────────────────────────────────────
|
|
199
|
-
server.registerTool('start_webhook', {
|
|
200
|
-
description: 'Start a local HTTP server to receive Lemon Squeezy webhook events. ' +
|
|
201
|
-
'Configure the server URL in your Lemon Squeezy dashboard under Settings > Webhooks.',
|
|
202
|
-
inputSchema: {
|
|
203
|
-
port: z
|
|
204
|
-
.number()
|
|
205
|
-
.int()
|
|
206
|
-
.min(1)
|
|
207
|
-
.max(65535)
|
|
208
|
-
.optional()
|
|
209
|
-
.describe('Port to listen on (default: 2358)'),
|
|
210
|
-
secret: z
|
|
211
|
-
.string()
|
|
212
|
-
.optional()
|
|
213
|
-
.describe('Webhook secret from Lemon Squeezy dashboard for HMAC-SHA256 signature validation'),
|
|
214
|
-
},
|
|
215
|
-
annotations: { title: 'Start Webhook Server', readOnlyHint: false },
|
|
216
|
-
}, safe((args) => handleStartWebhook(args)));
|
|
217
|
-
server.registerTool('stop_webhook', {
|
|
218
|
-
description: 'Stop the running Lemon Squeezy webhook server.',
|
|
219
|
-
inputSchema: {
|
|
220
|
-
force: z
|
|
221
|
-
.boolean()
|
|
222
|
-
.optional()
|
|
223
|
-
.describe('Force stop even if events are being processed (default: false)'),
|
|
224
|
-
},
|
|
225
|
-
annotations: { title: 'Stop Webhook Server', destructiveHint: false },
|
|
226
|
-
}, safe((args) => handleStopWebhook(args)));
|
|
227
|
-
server.registerTool('webhook_status', {
|
|
228
|
-
description: 'Show whether the webhook server is running and display recently received events.',
|
|
229
|
-
inputSchema: {
|
|
230
|
-
includeEvents: z
|
|
231
|
-
.boolean()
|
|
232
|
-
.optional()
|
|
233
|
-
.describe('Include recent event log in the output (default: true)'),
|
|
234
|
-
},
|
|
235
|
-
annotations: { title: 'Webhook Status', readOnlyHint: true },
|
|
236
|
-
}, safe((args) => Promise.resolve(handleWebhookStatus(args))));
|
|
237
152
|
// ── Outbound webhook tools ─────────────────────────────────────────────────
|
|
238
153
|
server.registerTool('configure_webhook', {
|
|
239
154
|
description: 'Register an outbound webhook endpoint to receive Planu spec lifecycle events. ' +
|
|
@@ -329,8 +244,8 @@ export function registerInfraGroupTools(server) {
|
|
|
329
244
|
annotations: { readOnlyHint: true },
|
|
330
245
|
}, safe(async (_args) => handleCheckUpdateStatus()));
|
|
331
246
|
server.registerTool('enable_auto_update', {
|
|
332
|
-
description: '
|
|
333
|
-
'
|
|
247
|
+
description: 'Resolve the newest verified Planu release and pin the MCP config to its exact version. ' +
|
|
248
|
+
'Detects the config file automatically (~/.claude.json or ' +
|
|
334
249
|
'Claude Desktop config). Creates a backup before any modification. ' +
|
|
335
250
|
'Call with confirm=false (default) to preview the change; confirm=true to apply it.',
|
|
336
251
|
inputSchema: {
|
|
@@ -366,7 +281,7 @@ export function registerInfraGroupTools(server) {
|
|
|
366
281
|
.describe('Set to true to apply the pin immediately. Defaults to false (preview only).'),
|
|
367
282
|
},
|
|
368
283
|
annotations: { readOnlyHint: false, destructiveHint: false },
|
|
369
|
-
},
|
|
284
|
+
}, safeGoverned('pin_version', async (args) => handlePinVersion(args)));
|
|
370
285
|
// ── Deploy tools ────────────────────────────────────────────────────────────
|
|
371
286
|
server.registerTool('configure_deploy_target', {
|
|
372
287
|
description: 'Save credentials for a deploy provider (Vercel, Netlify, etc.). Stores the API token in data/{projectId}/deploy-config.json. Required before deploy_spec.',
|
|
@@ -472,7 +387,7 @@ export function registerInfraGroupTools(server) {
|
|
|
472
387
|
.describe('Maximum results to return across all projects (default 50)'),
|
|
473
388
|
},
|
|
474
389
|
annotations: { title: 'Search All Projects', readOnlyHint: true },
|
|
475
|
-
},
|
|
390
|
+
}, safeGoverned('search_all_projects', async (args) => handleSearchAllProjects(args)));
|
|
476
391
|
// ── Browser validate tools ─────────────────────────────────────────────────
|
|
477
392
|
server.registerTool('validate_browser', {
|
|
478
393
|
description: 'Extract UI-testable assertions from a spec and run them against a live URL using Playwright. ' +
|
|
@@ -518,7 +433,7 @@ export function registerInfraGroupTools(server) {
|
|
|
518
433
|
value: ConfigureWorkersInputSchema.shape.value,
|
|
519
434
|
},
|
|
520
435
|
annotations: { title: 'Configure Workers', readOnlyHint: false },
|
|
521
|
-
},
|
|
436
|
+
}, safeGoverned('configure_workers', (args) => handleConfigureWorkers(args)));
|
|
522
437
|
// ── Plugin tools ───────────────────────────────────────────────────────────
|
|
523
438
|
server.registerTool('manage_plugins', {
|
|
524
439
|
description: 'Manage Planu plugin lifecycle: search, list, activate, deactivate, uninstall, info. ' +
|
|
@@ -530,7 +445,7 @@ export function registerInfraGroupTools(server) {
|
|
|
530
445
|
readOnlyHint: false,
|
|
531
446
|
destructiveHint: false,
|
|
532
447
|
},
|
|
533
|
-
},
|
|
448
|
+
}, safeGoverned('manage_plugins', async (args) => handleManagePlugins(args)));
|
|
534
449
|
server.registerTool('scaffold_plugin', {
|
|
535
450
|
description: 'Generate a starter plugin project with manifest, entry point, tests, and examples. ' +
|
|
536
451
|
'The scaffold includes TypeScript config and example extensions for the selected types.',
|
|
@@ -539,7 +454,7 @@ export function registerInfraGroupTools(server) {
|
|
|
539
454
|
title: 'Scaffold Plugin',
|
|
540
455
|
readOnlyHint: false,
|
|
541
456
|
},
|
|
542
|
-
},
|
|
457
|
+
}, safeGoverned('scaffold_plugin', async (args) => handleScaffoldPlugin(args)));
|
|
543
458
|
// ── Token optimizer tools ──────────────────────────────────────────────────
|
|
544
459
|
server.registerTool('suggest_token_optimizer', {
|
|
545
460
|
description: 'Detect whether RTK (Response Token Killer) or Headroom are configured in the project. ' +
|
|
@@ -548,7 +463,7 @@ export function registerInfraGroupTools(server) {
|
|
|
548
463
|
inputSchema: {
|
|
549
464
|
projectPath: z.string().describe('Absolute path to the project root directory'),
|
|
550
465
|
},
|
|
551
|
-
},
|
|
466
|
+
}, safeGoverned('suggest_token_optimizer', async (args) => handleSuggestTokenOptimizer(args)));
|
|
552
467
|
server.registerTool('token_optimizer_status', {
|
|
553
468
|
description: 'Returns the installation status of RTK and Headroom token optimization tools. ' +
|
|
554
469
|
'Includes version info and number of configured PreToolUse hooks.',
|
|
@@ -556,7 +471,7 @@ export function registerInfraGroupTools(server) {
|
|
|
556
471
|
inputSchema: {
|
|
557
472
|
projectPath: z.string().describe('Absolute path to the project root directory'),
|
|
558
473
|
},
|
|
559
|
-
},
|
|
474
|
+
}, safeGoverned('token_optimizer_status', async (args) => handleTokenOptimizerStatus(args)));
|
|
560
475
|
// ── RBAC tools ─────────────────────────────────────────────────────────────
|
|
561
476
|
server.registerTool('configure_roles', {
|
|
562
477
|
description: 'Enable or disable Role-Based Access Control (RBAC) for a project. ' +
|
|
@@ -568,7 +483,7 @@ export function registerInfraGroupTools(server) {
|
|
|
568
483
|
enabled: ConfigureRolesInputSchema.shape.enabled,
|
|
569
484
|
},
|
|
570
485
|
annotations: { title: 'Configure Roles (RBAC)', readOnlyHint: false },
|
|
571
|
-
},
|
|
486
|
+
}, safeGoverned('configure_roles', (args) => handleConfigureRoles(args)));
|
|
572
487
|
server.registerTool('assign_role', {
|
|
573
488
|
description: 'Assign a role to a user for a project or a specific spec. ' +
|
|
574
489
|
'Roles: Admin (full access), Architect (create/approve/configure), ' +
|
|
@@ -583,7 +498,7 @@ export function registerInfraGroupTools(server) {
|
|
|
583
498
|
assignedBy: AssignRoleInputSchema.shape.assignedBy,
|
|
584
499
|
},
|
|
585
500
|
annotations: { title: 'Assign Role', readOnlyHint: false },
|
|
586
|
-
},
|
|
501
|
+
}, safeGoverned('assign_role', (args) => handleAssignRole(args)));
|
|
587
502
|
// ── Framework registry tools ───────────────────────────────────────────────
|
|
588
503
|
server.registerTool('check_spec_accuracy', {
|
|
589
504
|
description: 'Validate spec content (spec.md text or acceptance criteria) against the framework registry ' +
|
|
@@ -786,7 +701,7 @@ export function registerInfraGroupTools(server) {
|
|
|
786
701
|
.describe('Also audit ~/.claude/ global config (default: true)'),
|
|
787
702
|
},
|
|
788
703
|
annotations: { readOnlyHint: true },
|
|
789
|
-
},
|
|
704
|
+
}, safeGoverned('audit_claude_config', async (args) => handleAuditClaudeConfig(args)));
|
|
790
705
|
server.registerTool('generate_docs_site', {
|
|
791
706
|
description: 'Generate a static HTML documentation site from project specs, tools catalog, architecture diagrams, and metrics. ' +
|
|
792
707
|
'Produces a navigable portal with dashboard, spec pages, tools catalog, Mermaid diagrams, and search.',
|
|
@@ -799,7 +714,7 @@ export function registerInfraGroupTools(server) {
|
|
|
799
714
|
.describe('Site title (default: "Planu Documentation")'),
|
|
800
715
|
},
|
|
801
716
|
annotations: { readOnlyHint: false },
|
|
802
|
-
},
|
|
717
|
+
}, safeGoverned('generate_docs_site', async (args) => handleGenerateDocsSite(args)));
|
|
803
718
|
// ── Memory config tools ────────────────────────────────────────────────────
|
|
804
719
|
server.registerTool('configure_memory', {
|
|
805
720
|
description: 'Configure persistent AI memory for your project using OpenMemory (local) or Mem0 Cloud. ' +
|
|
@@ -820,7 +735,7 @@ export function registerInfraGroupTools(server) {
|
|
|
820
735
|
.optional()
|
|
821
736
|
.describe('Mem0 API key — required for setup-mem0-cloud action. Get from https://app.mem0.ai'),
|
|
822
737
|
},
|
|
823
|
-
},
|
|
738
|
+
}, safeGoverned('configure_memory', async (args) => handleConfigureMemory(args)));
|
|
824
739
|
server.registerTool('memory_status', {
|
|
825
740
|
description: 'Returns the current AI memory configuration status. ' +
|
|
826
741
|
'Shows which provider is configured (none, openmemory, mem0-cloud) and the config file path.',
|
|
@@ -828,7 +743,7 @@ export function registerInfraGroupTools(server) {
|
|
|
828
743
|
inputSchema: {
|
|
829
744
|
projectPath: z.string().describe('Absolute path to the project root directory'),
|
|
830
745
|
},
|
|
831
|
-
},
|
|
746
|
+
}, safeGoverned('memory_status', async (args) => handleMemoryStatus(args)));
|
|
832
747
|
// ── Code graph tools ──────────────────────────────────────────────────────
|
|
833
748
|
server.registerTool('configure_code_graph', {
|
|
834
749
|
description: 'Configure a local code graph MCP provider for the project. Supports Colby CodeGraph, CodeGraphContext, Pathfinder, and Axon. Writes the provider entry to .claude.json.',
|
|
@@ -845,14 +760,14 @@ export function registerInfraGroupTools(server) {
|
|
|
845
760
|
])
|
|
846
761
|
.describe('setup-colby-codegraph: configure @colbymchenry/codegraph | setup-codegraph-context: configure CodeGraphContext | setup-pathfinder: configure Pathfinder | setup-axon: configure Axon | status: show current provider status'),
|
|
847
762
|
},
|
|
848
|
-
},
|
|
763
|
+
}, safeGoverned('configure_code_graph', async (args) => handleConfigureCodeGraph(args)));
|
|
849
764
|
server.registerTool('code_graph_status', {
|
|
850
765
|
description: 'Returns the current code graph MCP provider status from .claude.json, including the active provider if one is configured.',
|
|
851
766
|
annotations: { title: 'Code Graph Status', readOnlyHint: true },
|
|
852
767
|
inputSchema: {
|
|
853
768
|
projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root'),
|
|
854
769
|
},
|
|
855
|
-
},
|
|
770
|
+
}, safeGoverned('code_graph_status', async (args) => handleCodeGraphStatus(args)));
|
|
856
771
|
// ── Onboarding tools ───────────────────────────────────────────────────────
|
|
857
772
|
server.registerTool('start_onboarding', {
|
|
858
773
|
description: 'Start interactive onboarding for a new project. Generates personalized recommendations based on your role, project type, and team size. Returns a markdown guide with next steps.',
|
|
@@ -867,7 +782,7 @@ export function registerInfraGroupTools(server) {
|
|
|
867
782
|
teamSize: z.enum(['1', '2-5', '6-20', '20+']).describe('Team size: 1, 2-5, 6-20, 20+'),
|
|
868
783
|
},
|
|
869
784
|
annotations: { readOnlyHint: false },
|
|
870
|
-
},
|
|
785
|
+
}, safeGoverned('start_onboarding', async (args) => handleStartOnboarding(args)));
|
|
871
786
|
server.registerTool('guided_tour', {
|
|
872
787
|
description: 'Get a step-by-step guided tour of a Planu feature area. Returns markdown with numbered steps, examples, and tool hints.',
|
|
873
788
|
inputSchema: {
|
|
@@ -883,14 +798,14 @@ export function registerInfraGroupTools(server) {
|
|
|
883
798
|
.describe('Tour area: spec-lifecycle, team-collaboration, integrations, ai-tools, security, reporting'),
|
|
884
799
|
},
|
|
885
800
|
annotations: { readOnlyHint: true },
|
|
886
|
-
},
|
|
801
|
+
}, safeGoverned('guided_tour', async (args) => handleGuidedTour(args)));
|
|
887
802
|
server.registerTool('onboarding_checklist', {
|
|
888
803
|
description: 'Check what onboarding steps are complete for a project. Verifies planu.json, CLAUDE.md, specs, rules, and skills. Returns a checklist with progress percentage.',
|
|
889
804
|
inputSchema: {
|
|
890
805
|
projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root'),
|
|
891
806
|
},
|
|
892
807
|
annotations: { readOnlyHint: true },
|
|
893
|
-
},
|
|
808
|
+
}, safeGoverned('onboarding_checklist', async (args) => handleOnboardingChecklist(args)));
|
|
894
809
|
server.registerTool('quick_start', {
|
|
895
810
|
description: 'Get a quick start guide for a common project archetype. Returns a markdown guide with copy-paste commands.',
|
|
896
811
|
inputSchema: {
|
|
@@ -905,14 +820,14 @@ export function registerInfraGroupTools(server) {
|
|
|
905
820
|
.describe('Optional project path to personalize the guide'),
|
|
906
821
|
},
|
|
907
822
|
annotations: { readOnlyHint: true },
|
|
908
|
-
},
|
|
823
|
+
}, safeGoverned('quick_start', async (args) => handleQuickStart(args)));
|
|
909
824
|
server.registerTool('onboarding_progress', {
|
|
910
825
|
description: 'View onboarding progress for a project. Shows setup checklist, profile, and next recommended steps.',
|
|
911
826
|
inputSchema: {
|
|
912
827
|
projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root'),
|
|
913
828
|
},
|
|
914
829
|
annotations: { readOnlyHint: true },
|
|
915
|
-
},
|
|
830
|
+
}, safeGoverned('onboarding_progress', async (args) => handleOnboardingProgress(args)));
|
|
916
831
|
// ── Docs registry tools ────────────────────────────────────────────────────
|
|
917
832
|
server.registerTool('validate_docs_registry', {
|
|
918
833
|
description: 'Check all entries in the built-in docs-registry.json for broken or slow links. ' +
|
|
@@ -925,7 +840,7 @@ export function registerInfraGroupTools(server) {
|
|
|
925
840
|
.describe('Absolute path to the project root (used for context only).'),
|
|
926
841
|
},
|
|
927
842
|
annotations: { readOnlyHint: true },
|
|
928
|
-
},
|
|
843
|
+
}, safeGoverned('validate_docs_registry', async (args) => {
|
|
929
844
|
return handleValidateDocsRegistry(args);
|
|
930
845
|
}));
|
|
931
846
|
server.registerTool('discover_docs_url', {
|
|
@@ -940,7 +855,7 @@ export function registerInfraGroupTools(server) {
|
|
|
940
855
|
.describe('Package or library name to look up (e.g. "axios", "requests", "tokio").'),
|
|
941
856
|
},
|
|
942
857
|
annotations: { readOnlyHint: true },
|
|
943
|
-
},
|
|
858
|
+
}, safeGoverned('discover_docs_url', async (args) => {
|
|
944
859
|
return handleDiscoverDocsUrl(args);
|
|
945
860
|
}));
|
|
946
861
|
// ── GC tools ───────────────────────────────────────────────────────────────
|