@shrkcrft/inspector 0.1.0-alpha.2
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/LICENSE +21 -0
- package/README.md +15 -0
- package/dist/acceptance-replay.d.ts +63 -0
- package/dist/acceptance-replay.d.ts.map +1 -0
- package/dist/acceptance-replay.js +240 -0
- package/dist/action-hint-diagnostics.d.ts +32 -0
- package/dist/action-hint-diagnostics.d.ts.map +1 -0
- package/dist/action-hint-diagnostics.js +133 -0
- package/dist/adoption-check.d.ts +28 -0
- package/dist/adoption-check.d.ts.map +1 -0
- package/dist/adoption-check.js +181 -0
- package/dist/adoption-checkpoint.d.ts +97 -0
- package/dist/adoption-checkpoint.d.ts.map +1 -0
- package/dist/adoption-checkpoint.js +209 -0
- package/dist/adoption-merge-preview.d.ts +28 -0
- package/dist/adoption-merge-preview.d.ts.map +1 -0
- package/dist/adoption-merge-preview.js +254 -0
- package/dist/adoption-report-renderer.d.ts +33 -0
- package/dist/adoption-report-renderer.d.ts.map +1 -0
- package/dist/adoption-report-renderer.js +257 -0
- package/dist/adoption-state.d.ts +100 -0
- package/dist/adoption-state.d.ts.map +1 -0
- package/dist/adoption-state.js +296 -0
- package/dist/adoption-three-way.d.ts +46 -0
- package/dist/adoption-three-way.d.ts.map +1 -0
- package/dist/adoption-three-way.js +181 -0
- package/dist/agent-brief.d.ts +77 -0
- package/dist/agent-brief.d.ts.map +1 -0
- package/dist/agent-brief.js +490 -0
- package/dist/agent-contract-gate.d.ts +108 -0
- package/dist/agent-contract-gate.d.ts.map +1 -0
- package/dist/agent-contract-gate.js +412 -0
- package/dist/agent-contract-templates.d.ts +63 -0
- package/dist/agent-contract-templates.d.ts.map +1 -0
- package/dist/agent-contract-templates.js +346 -0
- package/dist/agent-contract.d.ts +65 -0
- package/dist/agent-contract.d.ts.map +1 -0
- package/dist/agent-contract.js +555 -0
- package/dist/agent-handoff.d.ts +123 -0
- package/dist/agent-handoff.d.ts.map +1 -0
- package/dist/agent-handoff.js +470 -0
- package/dist/agent-instructions.d.ts +2 -0
- package/dist/agent-instructions.d.ts.map +1 -0
- package/dist/agent-instructions.js +21 -0
- package/dist/agent-orchestration.d.ts +61 -0
- package/dist/agent-orchestration.d.ts.map +1 -0
- package/dist/agent-orchestration.js +285 -0
- package/dist/agent-task-prep.d.ts +31 -0
- package/dist/agent-task-prep.d.ts.map +1 -0
- package/dist/agent-task-prep.js +73 -0
- package/dist/ai-readiness.d.ts +30 -0
- package/dist/ai-readiness.d.ts.map +1 -0
- package/dist/ai-readiness.js +279 -0
- package/dist/api-report.d.ts +51 -0
- package/dist/api-report.d.ts.map +1 -0
- package/dist/api-report.js +254 -0
- package/dist/apply-dispatch-trace.d.ts +93 -0
- package/dist/apply-dispatch-trace.d.ts.map +1 -0
- package/dist/apply-dispatch-trace.js +283 -0
- package/dist/apply-gate-result.d.ts +52 -0
- package/dist/apply-gate-result.d.ts.map +1 -0
- package/dist/apply-gate-result.js +44 -0
- package/dist/architecture-map.d.ts +118 -0
- package/dist/architecture-map.d.ts.map +1 -0
- package/dist/architecture-map.js +543 -0
- package/dist/area-explore.d.ts +75 -0
- package/dist/area-explore.d.ts.map +1 -0
- package/dist/area-explore.js +438 -0
- package/dist/area-map.d.ts +43 -0
- package/dist/area-map.d.ts.map +1 -0
- package/dist/area-map.js +197 -0
- package/dist/asset-provenance.d.ts +123 -0
- package/dist/asset-provenance.d.ts.map +1 -0
- package/dist/asset-provenance.js +209 -0
- package/dist/barrel-operations.d.ts +45 -0
- package/dist/barrel-operations.d.ts.map +1 -0
- package/dist/barrel-operations.js +159 -0
- package/dist/boundaries-changed-only.d.ts +62 -0
- package/dist/boundaries-changed-only.d.ts.map +1 -0
- package/dist/boundaries-changed-only.js +97 -0
- package/dist/boundary-suggestions.d.ts +20 -0
- package/dist/boundary-suggestions.d.ts.map +1 -0
- package/dist/boundary-suggestions.js +51 -0
- package/dist/bundle-diff.d.ts +98 -0
- package/dist/bundle-diff.d.ts.map +1 -0
- package/dist/bundle-diff.js +531 -0
- package/dist/bundle-replay.d.ts +68 -0
- package/dist/bundle-replay.d.ts.map +1 -0
- package/dist/bundle-replay.js +273 -0
- package/dist/bundle-validate-html.d.ts +11 -0
- package/dist/bundle-validate-html.d.ts.map +1 -0
- package/dist/bundle-validate-html.js +60 -0
- package/dist/change-intent.d.ts +36 -0
- package/dist/change-intent.d.ts.map +1 -0
- package/dist/change-intent.js +259 -0
- package/dist/changed-preflight.d.ts +59 -0
- package/dist/changed-preflight.d.ts.map +1 -0
- package/dist/changed-preflight.js +358 -0
- package/dist/changed-scope.d.ts +112 -0
- package/dist/changed-scope.d.ts.map +1 -0
- package/dist/changed-scope.js +172 -0
- package/dist/changes-summary.d.ts +87 -0
- package/dist/changes-summary.d.ts.map +1 -0
- package/dist/changes-summary.js +323 -0
- package/dist/check-result-v1.d.ts +90 -0
- package/dist/check-result-v1.d.ts.map +1 -0
- package/dist/check-result-v1.js +335 -0
- package/dist/ci-integrity-report.d.ts +38 -0
- package/dist/ci-integrity-report.d.ts.map +1 -0
- package/dist/ci-integrity-report.js +324 -0
- package/dist/ci-permissions-fix.d.ts +38 -0
- package/dist/ci-permissions-fix.d.ts.map +1 -0
- package/dist/ci-permissions-fix.js +201 -0
- package/dist/ci-permissions.d.ts +51 -0
- package/dist/ci-permissions.d.ts.map +1 -0
- package/dist/ci-permissions.js +431 -0
- package/dist/ci-predict.d.ts +42 -0
- package/dist/ci-predict.d.ts.map +1 -0
- package/dist/ci-predict.js +300 -0
- package/dist/ci-scaffold.d.ts +47 -0
- package/dist/ci-scaffold.d.ts.map +1 -0
- package/dist/ci-scaffold.js +638 -0
- package/dist/codemod-assist.d.ts +97 -0
- package/dist/codemod-assist.d.ts.map +1 -0
- package/dist/codemod-assist.js +261 -0
- package/dist/command-recommender.d.ts +25 -0
- package/dist/command-recommender.d.ts.map +1 -0
- package/dist/command-recommender.js +145 -0
- package/dist/command-suggester.d.ts +61 -0
- package/dist/command-suggester.d.ts.map +1 -0
- package/dist/command-suggester.js +159 -0
- package/dist/command-taxonomy.d.ts +38 -0
- package/dist/command-taxonomy.d.ts.map +1 -0
- package/dist/command-taxonomy.js +164 -0
- package/dist/compliance-evidence.d.ts +58 -0
- package/dist/compliance-evidence.d.ts.map +1 -0
- package/dist/compliance-evidence.js +260 -0
- package/dist/compliance-profiles.d.ts +42 -0
- package/dist/compliance-profiles.d.ts.map +1 -0
- package/dist/compliance-profiles.js +171 -0
- package/dist/construct-adoption-diff.d.ts +55 -0
- package/dist/construct-adoption-diff.d.ts.map +1 -0
- package/dist/construct-adoption-diff.js +331 -0
- package/dist/construct-adoption.d.ts +71 -0
- package/dist/construct-adoption.d.ts.map +1 -0
- package/dist/construct-adoption.js +331 -0
- package/dist/construct-inference.d.ts +44 -0
- package/dist/construct-inference.d.ts.map +1 -0
- package/dist/construct-inference.js +391 -0
- package/dist/construct-registry.d.ts +32 -0
- package/dist/construct-registry.d.ts.map +1 -0
- package/dist/construct-registry.js +198 -0
- package/dist/contract-file-rule.d.ts +37 -0
- package/dist/contract-file-rule.d.ts.map +1 -0
- package/dist/contract-file-rule.js +99 -0
- package/dist/contract-template-registry.d.ts +28 -0
- package/dist/contract-template-registry.d.ts.map +1 -0
- package/dist/contract-template-registry.js +161 -0
- package/dist/contradictions.d.ts +52 -0
- package/dist/contradictions.d.ts.map +1 -0
- package/dist/contradictions.js +391 -0
- package/dist/convention-registry.d.ts +44 -0
- package/dist/convention-registry.d.ts.map +1 -0
- package/dist/convention-registry.js +195 -0
- package/dist/coverage-report.d.ts +25 -0
- package/dist/coverage-report.d.ts.map +1 -0
- package/dist/coverage-report.js +190 -0
- package/dist/custom-checks.d.ts +146 -0
- package/dist/custom-checks.d.ts.map +1 -0
- package/dist/custom-checks.js +260 -0
- package/dist/dashboard/dashboard-data.d.ts +59 -0
- package/dist/dashboard/dashboard-data.d.ts.map +1 -0
- package/dist/dashboard/dashboard-data.js +653 -0
- package/dist/dashboard-export.d.ts +67 -0
- package/dist/dashboard-export.d.ts.map +1 -0
- package/dist/dashboard-export.js +203 -0
- package/dist/decision-records.d.ts +47 -0
- package/dist/decision-records.d.ts.map +1 -0
- package/dist/decision-records.js +255 -0
- package/dist/demo-package.d.ts +49 -0
- package/dist/demo-package.d.ts.map +1 -0
- package/dist/demo-package.js +305 -0
- package/dist/demo-script.d.ts +25 -0
- package/dist/demo-script.d.ts.map +1 -0
- package/dist/demo-script.js +198 -0
- package/dist/demo-workflow.d.ts +28 -0
- package/dist/demo-workflow.d.ts.map +1 -0
- package/dist/demo-workflow.js +178 -0
- package/dist/dev-cycle.d.ts +41 -0
- package/dist/dev-cycle.d.ts.map +1 -0
- package/dist/dev-cycle.js +94 -0
- package/dist/dev-session-html.d.ts +13 -0
- package/dist/dev-session-html.d.ts.map +1 -0
- package/dist/dev-session-html.js +223 -0
- package/dist/dev-session-report.d.ts +11 -0
- package/dist/dev-session-report.d.ts.map +1 -0
- package/dist/dev-session-report.js +206 -0
- package/dist/dev-session.d.ts +257 -0
- package/dist/dev-session.d.ts.map +1 -0
- package/dist/dev-session.js +568 -0
- package/dist/diagnostics-suggest.d.ts +17 -0
- package/dist/diagnostics-suggest.d.ts.map +1 -0
- package/dist/diagnostics-suggest.js +69 -0
- package/dist/docs-check.d.ts +40 -0
- package/dist/docs-check.d.ts.map +1 -0
- package/dist/docs-check.js +221 -0
- package/dist/doctor-acknowledgements.d.ts +69 -0
- package/dist/doctor-acknowledgements.d.ts.map +1 -0
- package/dist/doctor-acknowledgements.js +150 -0
- package/dist/doctor-result.d.ts +51 -0
- package/dist/doctor-result.d.ts.map +1 -0
- package/dist/doctor-result.js +7 -0
- package/dist/doctor-suppressions.d.ts +91 -0
- package/dist/doctor-suppressions.d.ts.map +1 -0
- package/dist/doctor-suppressions.js +238 -0
- package/dist/drift-baseline.d.ts +29 -0
- package/dist/drift-baseline.d.ts.map +1 -0
- package/dist/drift-baseline.js +80 -0
- package/dist/drift.d.ts +38 -0
- package/dist/drift.d.ts.map +1 -0
- package/dist/drift.js +107 -0
- package/dist/entrypoint-matrix.d.ts +61 -0
- package/dist/entrypoint-matrix.d.ts.map +1 -0
- package/dist/entrypoint-matrix.js +221 -0
- package/dist/examples-check.d.ts +36 -0
- package/dist/examples-check.d.ts.map +1 -0
- package/dist/examples-check.js +168 -0
- package/dist/execution-graph.d.ts +98 -0
- package/dist/execution-graph.d.ts.map +1 -0
- package/dist/execution-graph.js +484 -0
- package/dist/export-bundle.d.ts +10 -0
- package/dist/export-bundle.d.ts.map +1 -0
- package/dist/export-bundle.js +90 -0
- package/dist/failure-diagnostics.d.ts +63 -0
- package/dist/failure-diagnostics.d.ts.map +1 -0
- package/dist/failure-diagnostics.js +243 -0
- package/dist/feature-bundle.d.ts +111 -0
- package/dist/feature-bundle.d.ts.map +1 -0
- package/dist/feature-bundle.js +211 -0
- package/dist/feedback-actions-v2.d.ts +65 -0
- package/dist/feedback-actions-v2.d.ts.map +1 -0
- package/dist/feedback-actions-v2.js +183 -0
- package/dist/feedback-ingestion.d.ts +96 -0
- package/dist/feedback-ingestion.d.ts.map +1 -0
- package/dist/feedback-ingestion.js +400 -0
- package/dist/fix-preview.d.ts +82 -0
- package/dist/fix-preview.d.ts.map +1 -0
- package/dist/fix-preview.js +365 -0
- package/dist/fuzzy-impact.d.ts +50 -0
- package/dist/fuzzy-impact.d.ts.map +1 -0
- package/dist/fuzzy-impact.js +446 -0
- package/dist/generated-code.d.ts +97 -0
- package/dist/generated-code.d.ts.map +1 -0
- package/dist/generated-code.js +395 -0
- package/dist/git-helpers.d.ts +26 -0
- package/dist/git-helpers.d.ts.map +1 -0
- package/dist/git-helpers.js +110 -0
- package/dist/golden-output.d.ts +33 -0
- package/dist/golden-output.d.ts.map +1 -0
- package/dist/golden-output.js +92 -0
- package/dist/grounding/build-grounding.d.ts +53 -0
- package/dist/grounding/build-grounding.d.ts.map +1 -0
- package/dist/grounding/build-grounding.js +51 -0
- package/dist/grounding/nx-projects.d.ts +29 -0
- package/dist/grounding/nx-projects.d.ts.map +1 -0
- package/dist/grounding/nx-projects.js +109 -0
- package/dist/grounding/validate-extracted-plan.d.ts +20 -0
- package/dist/grounding/validate-extracted-plan.d.ts.map +1 -0
- package/dist/grounding/validate-extracted-plan.js +127 -0
- package/dist/healing-plan.d.ts +33 -0
- package/dist/healing-plan.d.ts.map +1 -0
- package/dist/healing-plan.js +346 -0
- package/dist/helper-registry.d.ts +90 -0
- package/dist/helper-registry.d.ts.map +1 -0
- package/dist/helper-registry.js +529 -0
- package/dist/impact-analysis.d.ts +150 -0
- package/dist/impact-analysis.d.ts.map +1 -0
- package/dist/impact-analysis.js +697 -0
- package/dist/impact-graph-render.d.ts +51 -0
- package/dist/impact-graph-render.d.ts.map +1 -0
- package/dist/impact-graph-render.js +139 -0
- package/dist/impact-graph.d.ts +17 -0
- package/dist/impact-graph.d.ts.map +1 -0
- package/dist/impact-graph.js +119 -0
- package/dist/impact-render.d.ts +22 -0
- package/dist/impact-render.d.ts.map +1 -0
- package/dist/impact-render.js +413 -0
- package/dist/import-graph-analysis.d.ts +28 -0
- package/dist/import-graph-analysis.d.ts.map +1 -0
- package/dist/import-graph-analysis.js +193 -0
- package/dist/import-hygiene.d.ts +93 -0
- package/dist/import-hygiene.d.ts.map +1 -0
- package/dist/import-hygiene.js +366 -0
- package/dist/index.d.ts +223 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +233 -0
- package/dist/ingest-adoption.d.ts +50 -0
- package/dist/ingest-adoption.d.ts.map +1 -0
- package/dist/ingest-adoption.js +183 -0
- package/dist/ingest-apply.d.ts +80 -0
- package/dist/ingest-apply.d.ts.map +1 -0
- package/dist/ingest-apply.js +227 -0
- package/dist/ingest-body-extractor.d.ts +28 -0
- package/dist/ingest-body-extractor.d.ts.map +1 -0
- package/dist/ingest-body-extractor.js +129 -0
- package/dist/ingest-drafts.d.ts +16 -0
- package/dist/ingest-drafts.d.ts.map +1 -0
- package/dist/ingest-drafts.js +482 -0
- package/dist/inspector-cache.d.ts +41 -0
- package/dist/inspector-cache.d.ts.map +1 -0
- package/dist/inspector-cache.js +104 -0
- package/dist/install-smoke.d.ts +44 -0
- package/dist/install-smoke.d.ts.map +1 -0
- package/dist/install-smoke.js +31 -0
- package/dist/knowledge-authoring.d.ts +151 -0
- package/dist/knowledge-authoring.d.ts.map +1 -0
- package/dist/knowledge-authoring.js +586 -0
- package/dist/knowledge-graph.d.ts +76 -0
- package/dist/knowledge-graph.d.ts.map +1 -0
- package/dist/knowledge-graph.js +336 -0
- package/dist/knowledge-lint.d.ts +97 -0
- package/dist/knowledge-lint.d.ts.map +1 -0
- package/dist/knowledge-lint.js +302 -0
- package/dist/knowledge-rename.d.ts +38 -0
- package/dist/knowledge-rename.d.ts.map +1 -0
- package/dist/knowledge-rename.js +88 -0
- package/dist/knowledge-stale.d.ts +124 -0
- package/dist/knowledge-stale.d.ts.map +1 -0
- package/dist/knowledge-stale.js +892 -0
- package/dist/languages/command-inference.d.ts +27 -0
- package/dist/languages/command-inference.d.ts.map +1 -0
- package/dist/languages/command-inference.js +214 -0
- package/dist/languages/dependency-scan.d.ts +33 -0
- package/dist/languages/dependency-scan.d.ts.map +1 -0
- package/dist/languages/dependency-scan.js +343 -0
- package/dist/languages/index.d.ts +14 -0
- package/dist/languages/index.d.ts.map +1 -0
- package/dist/languages/index.js +13 -0
- package/dist/languages/language-boundaries.d.ts +30 -0
- package/dist/languages/language-boundaries.d.ts.map +1 -0
- package/dist/languages/language-boundaries.js +176 -0
- package/dist/languages/language-cache.d.ts +54 -0
- package/dist/languages/language-cache.d.ts.map +1 -0
- package/dist/languages/language-cache.js +236 -0
- package/dist/languages/language-detection.d.ts +30 -0
- package/dist/languages/language-detection.d.ts.map +1 -0
- package/dist/languages/language-detection.js +584 -0
- package/dist/languages/language-id.d.ts +15 -0
- package/dist/languages/language-id.d.ts.map +1 -0
- package/dist/languages/language-id.js +15 -0
- package/dist/languages/language-runner.d.ts +90 -0
- package/dist/languages/language-runner.d.ts.map +1 -0
- package/dist/languages/language-runner.js +346 -0
- package/dist/languages/polyglot-boundary.d.ts +80 -0
- package/dist/languages/polyglot-boundary.d.ts.map +1 -0
- package/dist/languages/polyglot-boundary.js +373 -0
- package/dist/languages/polyglot-ci.d.ts +25 -0
- package/dist/languages/polyglot-ci.d.ts.map +1 -0
- package/dist/languages/polyglot-ci.js +278 -0
- package/dist/languages/test-impact.d.ts +19 -0
- package/dist/languages/test-impact.d.ts.map +1 -0
- package/dist/languages/test-impact.js +157 -0
- package/dist/loader-diagnostics.d.ts +40 -0
- package/dist/loader-diagnostics.d.ts.map +1 -0
- package/dist/loader-diagnostics.js +49 -0
- package/dist/memory-diff.d.ts +60 -0
- package/dist/memory-diff.d.ts.map +1 -0
- package/dist/memory-diff.js +302 -0
- package/dist/migration-profile-registry.d.ts +26 -0
- package/dist/migration-profile-registry.d.ts.map +1 -0
- package/dist/migration-profile-registry.js +135 -0
- package/dist/migration-readiness.d.ts +101 -0
- package/dist/migration-readiness.d.ts.map +1 -0
- package/dist/migration-readiness.js +253 -0
- package/dist/monorepo-onboarding.d.ts +51 -0
- package/dist/monorepo-onboarding.d.ts.map +1 -0
- package/dist/monorepo-onboarding.js +235 -0
- package/dist/onboarding-adoption-diff.d.ts +53 -0
- package/dist/onboarding-adoption-diff.d.ts.map +1 -0
- package/dist/onboarding-adoption-diff.js +285 -0
- package/dist/onboarding-adoption.d.ts +136 -0
- package/dist/onboarding-adoption.d.ts.map +1 -0
- package/dist/onboarding-adoption.js +702 -0
- package/dist/onboarding-agent-import.d.ts +40 -0
- package/dist/onboarding-agent-import.d.ts.map +1 -0
- package/dist/onboarding-agent-import.js +114 -0
- package/dist/onboarding-diff.d.ts +39 -0
- package/dist/onboarding-diff.d.ts.map +1 -0
- package/dist/onboarding-diff.js +240 -0
- package/dist/onboarding-drafts.d.ts +28 -0
- package/dist/onboarding-drafts.d.ts.map +1 -0
- package/dist/onboarding-drafts.js +234 -0
- package/dist/onboarding-report.d.ts +8 -0
- package/dist/onboarding-report.d.ts.map +1 -0
- package/dist/onboarding-report.js +239 -0
- package/dist/onboarding.d.ts +134 -0
- package/dist/onboarding.d.ts.map +1 -0
- package/dist/onboarding.js +729 -0
- package/dist/ownership.d.ts +38 -0
- package/dist/ownership.d.ts.map +1 -0
- package/dist/ownership.js +102 -0
- package/dist/pack-author-ux.d.ts +58 -0
- package/dist/pack-author-ux.d.ts.map +1 -0
- package/dist/pack-author-ux.js +219 -0
- package/dist/pack-author.d.ts +94 -0
- package/dist/pack-author.d.ts.map +1 -0
- package/dist/pack-author.js +208 -0
- package/dist/pack-compatibility.d.ts +21 -0
- package/dist/pack-compatibility.d.ts.map +1 -0
- package/dist/pack-compatibility.js +114 -0
- package/dist/pack-contributions-inventory.d.ts +121 -0
- package/dist/pack-contributions-inventory.d.ts.map +1 -0
- package/dist/pack-contributions-inventory.js +732 -0
- package/dist/pack-docs.d.ts +11 -0
- package/dist/pack-docs.d.ts.map +1 -0
- package/dist/pack-docs.js +101 -0
- package/dist/pack-doctor.d.ts +50 -0
- package/dist/pack-doctor.d.ts.map +1 -0
- package/dist/pack-doctor.js +302 -0
- package/dist/pack-helper-registry.d.ts +29 -0
- package/dist/pack-helper-registry.d.ts.map +1 -0
- package/dist/pack-helper-registry.js +144 -0
- package/dist/pack-pending.d.ts +68 -0
- package/dist/pack-pending.d.ts.map +1 -0
- package/dist/pack-pending.js +189 -0
- package/dist/pack-quality-score.d.ts +44 -0
- package/dist/pack-quality-score.d.ts.map +1 -0
- package/dist/pack-quality-score.js +155 -0
- package/dist/pack-release-check.d.ts +24 -0
- package/dist/pack-release-check.d.ts.map +1 -0
- package/dist/pack-release-check.js +258 -0
- package/dist/pack-signature-status.d.ts +72 -0
- package/dist/pack-signature-status.d.ts.map +1 -0
- package/dist/pack-signature-status.js +222 -0
- package/dist/pack-symbol-compat.d.ts +60 -0
- package/dist/pack-symbol-compat.d.ts.map +1 -0
- package/dist/pack-symbol-compat.js +371 -0
- package/dist/pack-test-runner.d.ts +59 -0
- package/dist/pack-test-runner.d.ts.map +1 -0
- package/dist/pack-test-runner.js +211 -0
- package/dist/pipeline-command-dictionary.d.ts +2 -0
- package/dist/pipeline-command-dictionary.d.ts.map +1 -0
- package/dist/pipeline-command-dictionary.js +20 -0
- package/dist/pipeline-lint.d.ts +30 -0
- package/dist/pipeline-lint.d.ts.map +1 -0
- package/dist/pipeline-lint.js +134 -0
- package/dist/plan-dependency-graph.d.ts +25 -0
- package/dist/plan-dependency-graph.d.ts.map +1 -0
- package/dist/plan-dependency-graph.js +195 -0
- package/dist/plan-review.d.ts +64 -0
- package/dist/plan-review.d.ts.map +1 -0
- package/dist/plan-review.js +242 -0
- package/dist/plan-simulation.d.ts +108 -0
- package/dist/plan-simulation.d.ts.map +1 -0
- package/dist/plan-simulation.js +767 -0
- package/dist/playbook-registry.d.ts +25 -0
- package/dist/playbook-registry.d.ts.map +1 -0
- package/dist/playbook-registry.js +148 -0
- package/dist/playbook-script.d.ts +60 -0
- package/dist/playbook-script.d.ts.map +1 -0
- package/dist/playbook-script.js +161 -0
- package/dist/plugin-lifecycle-profile-registry.d.ts +52 -0
- package/dist/plugin-lifecycle-profile-registry.d.ts.map +1 -0
- package/dist/plugin-lifecycle-profile-registry.js +202 -0
- package/dist/plugin-lifecycle.d.ts +132 -0
- package/dist/plugin-lifecycle.d.ts.map +1 -0
- package/dist/plugin-lifecycle.js +477 -0
- package/dist/policy-engine.d.ts +101 -0
- package/dist/policy-engine.d.ts.map +1 -0
- package/dist/policy-engine.js +321 -0
- package/dist/policy-override-audit.d.ts +18 -0
- package/dist/policy-override-audit.d.ts.map +1 -0
- package/dist/policy-override-audit.js +54 -0
- package/dist/policy-overrides.d.ts +35 -0
- package/dist/policy-overrides.d.ts.map +1 -0
- package/dist/policy-overrides.js +84 -0
- package/dist/policy-test.d.ts +83 -0
- package/dist/policy-test.d.ts.map +1 -0
- package/dist/policy-test.js +342 -0
- package/dist/pr-summary.d.ts +34 -0
- package/dist/pr-summary.d.ts.map +1 -0
- package/dist/pr-summary.js +220 -0
- package/dist/product-coherence.d.ts +21 -0
- package/dist/product-coherence.d.ts.map +1 -0
- package/dist/product-coherence.js +158 -0
- package/dist/profile-registry.d.ts +42 -0
- package/dist/profile-registry.d.ts.map +1 -0
- package/dist/profile-registry.js +104 -0
- package/dist/project-coupling-audit.d.ts +64 -0
- package/dist/project-coupling-audit.d.ts.map +1 -0
- package/dist/project-coupling-audit.js +282 -0
- package/dist/project-overview.d.ts +14 -0
- package/dist/project-overview.d.ts.map +1 -0
- package/dist/project-overview.js +27 -0
- package/dist/propose-knowledge.d.ts +64 -0
- package/dist/propose-knowledge.d.ts.map +1 -0
- package/dist/propose-knowledge.js +367 -0
- package/dist/quality-baseline.d.ts +123 -0
- package/dist/quality-baseline.d.ts.map +1 -0
- package/dist/quality-baseline.js +433 -0
- package/dist/quality-html.d.ts +7 -0
- package/dist/quality-html.d.ts.map +1 -0
- package/dist/quality-html.js +64 -0
- package/dist/quality-report.d.ts +49 -0
- package/dist/quality-report.d.ts.map +1 -0
- package/dist/quality-report.js +296 -0
- package/dist/query-resolver.d.ts +38 -0
- package/dist/query-resolver.d.ts.map +1 -0
- package/dist/query-resolver.js +163 -0
- package/dist/ranker-explainability.d.ts +91 -0
- package/dist/ranker-explainability.d.ts.map +1 -0
- package/dist/ranker-explainability.js +550 -0
- package/dist/reference-lookup.d.ts +8 -0
- package/dist/reference-lookup.d.ts.map +1 -0
- package/dist/reference-lookup.js +18 -0
- package/dist/registration-hint-registry.d.ts +55 -0
- package/dist/registration-hint-registry.d.ts.map +1 -0
- package/dist/registration-hint-registry.js +327 -0
- package/dist/registry-lifecycle.d.ts +47 -0
- package/dist/registry-lifecycle.d.ts.map +1 -0
- package/dist/registry-lifecycle.js +214 -0
- package/dist/release-readiness.d.ts +64 -0
- package/dist/release-readiness.d.ts.map +1 -0
- package/dist/release-readiness.js +456 -0
- package/dist/release-smoke.d.ts +138 -0
- package/dist/release-smoke.d.ts.map +1 -0
- package/dist/release-smoke.js +459 -0
- package/dist/release-train.d.ts +33 -0
- package/dist/release-train.d.ts.map +1 -0
- package/dist/release-train.js +104 -0
- package/dist/repo-memory.d.ts +95 -0
- package/dist/repo-memory.d.ts.map +1 -0
- package/dist/repo-memory.js +614 -0
- package/dist/report-site.d.ts +92 -0
- package/dist/report-site.d.ts.map +1 -0
- package/dist/report-site.js +658 -0
- package/dist/reposet.d.ts +56 -0
- package/dist/reposet.d.ts.map +1 -0
- package/dist/reposet.js +160 -0
- package/dist/repository-intelligence.d.ts +145 -0
- package/dist/repository-intelligence.d.ts.map +1 -0
- package/dist/repository-intelligence.js +729 -0
- package/dist/repository-knowledge-model.d.ts +218 -0
- package/dist/repository-knowledge-model.d.ts.map +1 -0
- package/dist/repository-knowledge-model.js +939 -0
- package/dist/repository-map.d.ts +72 -0
- package/dist/repository-map.d.ts.map +1 -0
- package/dist/repository-map.js +332 -0
- package/dist/repository-stats.d.ts +66 -0
- package/dist/repository-stats.d.ts.map +1 -0
- package/dist/repository-stats.js +329 -0
- package/dist/review-comment-renderer.d.ts +59 -0
- package/dist/review-comment-renderer.d.ts.map +1 -0
- package/dist/review-comment-renderer.js +181 -0
- package/dist/review-comment-v2.d.ts +9 -0
- package/dist/review-comment-v2.d.ts.map +1 -0
- package/dist/review-comment-v2.js +178 -0
- package/dist/review-html.d.ts +13 -0
- package/dist/review-html.d.ts.map +1 -0
- package/dist/review-html.js +79 -0
- package/dist/review-packet-v2.d.ts +29 -0
- package/dist/review-packet-v2.d.ts.map +1 -0
- package/dist/review-packet-v2.js +71 -0
- package/dist/review-packet-v3.d.ts +22 -0
- package/dist/review-packet-v3.d.ts.map +1 -0
- package/dist/review-packet-v3.js +181 -0
- package/dist/review-packet.d.ts +49 -0
- package/dist/review-packet.d.ts.map +1 -0
- package/dist/review-packet.js +129 -0
- package/dist/risk-signals.d.ts +28 -0
- package/dist/risk-signals.d.ts.map +1 -0
- package/dist/risk-signals.js +68 -0
- package/dist/role-views.d.ts +50 -0
- package/dist/role-views.d.ts.map +1 -0
- package/dist/role-views.js +334 -0
- package/dist/rounds.d.ts +52 -0
- package/dist/rounds.d.ts.map +1 -0
- package/dist/rounds.js +172 -0
- package/dist/rule-drift.d.ts +42 -0
- package/dist/rule-drift.d.ts.map +1 -0
- package/dist/rule-drift.js +148 -0
- package/dist/rule-quality.d.ts +73 -0
- package/dist/rule-quality.d.ts.map +1 -0
- package/dist/rule-quality.js +356 -0
- package/dist/rule-scaffold.d.ts +71 -0
- package/dist/rule-scaffold.d.ts.map +1 -0
- package/dist/rule-scaffold.js +258 -0
- package/dist/safety-audit-deep.d.ts +38 -0
- package/dist/safety-audit-deep.d.ts.map +1 -0
- package/dist/safety-audit-deep.js +162 -0
- package/dist/safety-audit.d.ts +91 -0
- package/dist/safety-audit.d.ts.map +1 -0
- package/dist/safety-audit.js +138 -0
- package/dist/safety-html.d.ts +7 -0
- package/dist/safety-html.d.ts.map +1 -0
- package/dist/safety-html.js +70 -0
- package/dist/scaffold-coverage.d.ts +46 -0
- package/dist/scaffold-coverage.d.ts.map +1 -0
- package/dist/scaffold-coverage.js +273 -0
- package/dist/scaffold-patterns.d.ts +38 -0
- package/dist/scaffold-patterns.d.ts.map +1 -0
- package/dist/scaffold-patterns.js +282 -0
- package/dist/schema-inventory.d.ts +55 -0
- package/dist/schema-inventory.d.ts.map +1 -0
- package/dist/schema-inventory.js +301 -0
- package/dist/search-index.d.ts +75 -0
- package/dist/search-index.d.ts.map +1 -0
- package/dist/search-index.js +531 -0
- package/dist/search-tuning-explain.d.ts +68 -0
- package/dist/search-tuning-explain.d.ts.map +1 -0
- package/dist/search-tuning-explain.js +207 -0
- package/dist/search-tuning-registry.d.ts +54 -0
- package/dist/search-tuning-registry.d.ts.map +1 -0
- package/dist/search-tuning-registry.js +303 -0
- package/dist/self-audit.d.ts +59 -0
- package/dist/self-audit.d.ts.map +1 -0
- package/dist/self-audit.js +192 -0
- package/dist/self-config-doctor-v2.d.ts +57 -0
- package/dist/self-config-doctor-v2.d.ts.map +1 -0
- package/dist/self-config-doctor-v2.js +653 -0
- package/dist/self-config-doctor.d.ts +47 -0
- package/dist/self-config-doctor.d.ts.map +1 -0
- package/dist/self-config-doctor.js +432 -0
- package/dist/sharkcraft-inspector.d.ts +73 -0
- package/dist/sharkcraft-inspector.d.ts.map +1 -0
- package/dist/sharkcraft-inspector.js +745 -0
- package/dist/spec/spec-cross-validate.d.ts +17 -0
- package/dist/spec/spec-cross-validate.d.ts.map +1 -0
- package/dist/spec/spec-cross-validate.js +53 -0
- package/dist/spec/spec-discovery.d.ts +27 -0
- package/dist/spec/spec-discovery.d.ts.map +1 -0
- package/dist/spec/spec-discovery.js +78 -0
- package/dist/spec/spec-review.d.ts +36 -0
- package/dist/spec/spec-review.d.ts.map +1 -0
- package/dist/spec/spec-review.js +37 -0
- package/dist/stability-map.d.ts +62 -0
- package/dist/stability-map.d.ts.map +1 -0
- package/dist/stability-map.js +404 -0
- package/dist/start-here.d.ts +49 -0
- package/dist/start-here.d.ts.map +1 -0
- package/dist/start-here.js +259 -0
- package/dist/surface-profile-detect.d.ts +42 -0
- package/dist/surface-profile-detect.d.ts.map +1 -0
- package/dist/surface-profile-detect.js +76 -0
- package/dist/symbol-index.d.ts +108 -0
- package/dist/symbol-index.d.ts.map +1 -0
- package/dist/symbol-index.js +483 -0
- package/dist/task-decompose.d.ts +38 -0
- package/dist/task-decompose.d.ts.map +1 -0
- package/dist/task-decompose.js +154 -0
- package/dist/task-packet.d.ts +104 -0
- package/dist/task-packet.d.ts.map +1 -0
- package/dist/task-packet.js +156 -0
- package/dist/task-ranker.d.ts +51 -0
- package/dist/task-ranker.d.ts.map +1 -0
- package/dist/task-ranker.js +410 -0
- package/dist/task-risk.d.ts +84 -0
- package/dist/task-risk.d.ts.map +1 -0
- package/dist/task-risk.js +731 -0
- package/dist/task-routing-hint-registry.d.ts +36 -0
- package/dist/task-routing-hint-registry.d.ts.map +1 -0
- package/dist/task-routing-hint-registry.js +186 -0
- package/dist/template-authoring.d.ts +113 -0
- package/dist/template-authoring.d.ts.map +1 -0
- package/dist/template-authoring.js +521 -0
- package/dist/template-body-inference-v2.d.ts +19 -0
- package/dist/template-body-inference-v2.d.ts.map +1 -0
- package/dist/template-body-inference-v2.js +468 -0
- package/dist/template-body-inference.d.ts +59 -0
- package/dist/template-body-inference.d.ts.map +1 -0
- package/dist/template-body-inference.js +277 -0
- package/dist/template-drift.d.ts +39 -0
- package/dist/template-drift.d.ts.map +1 -0
- package/dist/template-drift.js +353 -0
- package/dist/template-lint.d.ts +31 -0
- package/dist/template-lint.d.ts.map +1 -0
- package/dist/template-lint.js +113 -0
- package/dist/test-definitions.d.ts +41 -0
- package/dist/test-definitions.d.ts.map +1 -0
- package/dist/test-definitions.js +6 -0
- package/dist/test-impact.d.ts +30 -0
- package/dist/test-impact.d.ts.map +1 -0
- package/dist/test-impact.js +173 -0
- package/dist/test-runner.d.ts +87 -0
- package/dist/test-runner.d.ts.map +1 -0
- package/dist/test-runner.js +560 -0
- package/dist/uncertainty-report.d.ts +46 -0
- package/dist/uncertainty-report.d.ts.map +1 -0
- package/dist/uncertainty-report.js +108 -0
- package/dist/uncertainty.d.ts +38 -0
- package/dist/uncertainty.d.ts.map +1 -0
- package/dist/uncertainty.js +115 -0
- package/dist/universal-search.d.ts +64 -0
- package/dist/universal-search.d.ts.map +1 -0
- package/dist/universal-search.js +347 -0
- package/dist/upgrade-advisor.d.ts +22 -0
- package/dist/upgrade-advisor.d.ts.map +1 -0
- package/dist/upgrade-advisor.js +109 -0
- package/dist/why-file.d.ts +75 -0
- package/dist/why-file.d.ts.map +1 -0
- package/dist/why-file.js +202 -0
- package/dist/workflow-simulation.d.ts +46 -0
- package/dist/workflow-simulation.d.ts.map +1 -0
- package/dist/workflow-simulation.js +154 -0
- package/package.json +66 -0
|
@@ -0,0 +1,529 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helper plan generators (profile-driven for project-specific paths).
|
|
3
|
+
*
|
|
4
|
+
* Helpers are one-shot plan-v2 producers for small, well-bounded edits.
|
|
5
|
+
* They are dry-run by default and idempotent where the plan engine supports it.
|
|
6
|
+
*
|
|
7
|
+
* No helper writes source directly. The output is a structured `IHelperPlan`
|
|
8
|
+
* containing planned ops (using the existing plan-v2 operation set) and a
|
|
9
|
+
* list of advisory conflicts when an expected anchor cannot be resolved.
|
|
10
|
+
*
|
|
11
|
+
* Helpers must accept an IPluginLifecycleProfile instead of hardcoded paths,
|
|
12
|
+
* so the engine knows where the key-table / plugin roots live.
|
|
13
|
+
* Project-specific helpers contributed by packs travel in pack-contributed
|
|
14
|
+
* playbooks/scaffolds; the engine just provides the generic shapes.
|
|
15
|
+
*/
|
|
16
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
17
|
+
import { join } from 'node:path';
|
|
18
|
+
import { CaseStyle, } from '@shrkcrft/plugin-api';
|
|
19
|
+
export var HelperId;
|
|
20
|
+
(function (HelperId) {
|
|
21
|
+
HelperId["AddPluginKey"] = "core.add-plugin-key";
|
|
22
|
+
HelperId["RemovePluginKey"] = "core.remove-plugin-key";
|
|
23
|
+
HelperId["RenamePluginKey"] = "core.rename-plugin-key";
|
|
24
|
+
HelperId["AddBarrelExport"] = "core.add-barrel-export";
|
|
25
|
+
HelperId["RemoveBarrelExport"] = "core.remove-barrel-export";
|
|
26
|
+
HelperId["AddEventEntry"] = "core.add-event-entry";
|
|
27
|
+
HelperId["RemoveEventEntry"] = "core.remove-event-entry";
|
|
28
|
+
HelperId["AddDefaultRegistration"] = "core.add-default-registration";
|
|
29
|
+
HelperId["RemoveDefaultRegistration"] = "core.remove-default-registration";
|
|
30
|
+
HelperId["AddComposerEntry"] = "core.add-composer-entry";
|
|
31
|
+
HelperId["RemoveComposerEntry"] = "core.remove-composer-entry";
|
|
32
|
+
HelperId["RenamePluginFolder"] = "core.rename-plugin-folder";
|
|
33
|
+
HelperId["RemoveUserPluginEntry"] = "core.remove-user-plugin-entry";
|
|
34
|
+
})(HelperId || (HelperId = {}));
|
|
35
|
+
export const HELPERS = Object.freeze([
|
|
36
|
+
{
|
|
37
|
+
id: HelperId.AddPluginKey,
|
|
38
|
+
description: 'Insert a plugin key-table entry just before the closing `} as const;` brace (profile-driven).',
|
|
39
|
+
destructive: false,
|
|
40
|
+
requiresHumanReview: false,
|
|
41
|
+
requiresProfile: true,
|
|
42
|
+
variables: [
|
|
43
|
+
{ name: 'key', required: true, description: 'kebab-case plugin key (e.g. user-card).' },
|
|
44
|
+
],
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: HelperId.RemovePluginKey,
|
|
48
|
+
description: 'Remove a plugin key-table entry (profile-driven). Destructive.',
|
|
49
|
+
destructive: true,
|
|
50
|
+
requiresHumanReview: true,
|
|
51
|
+
requiresProfile: true,
|
|
52
|
+
variables: [{ name: 'key', required: true, description: 'kebab-case plugin key.' }],
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
id: HelperId.RenamePluginKey,
|
|
56
|
+
description: 'Rename a plugin key-table entry (profile-driven). Destructive.',
|
|
57
|
+
destructive: true,
|
|
58
|
+
requiresHumanReview: true,
|
|
59
|
+
requiresProfile: true,
|
|
60
|
+
variables: [
|
|
61
|
+
{ name: 'old', required: true, description: 'old kebab-case key.' },
|
|
62
|
+
{ name: 'new', required: true, description: 'new kebab-case key.' },
|
|
63
|
+
],
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
id: HelperId.AddBarrelExport,
|
|
67
|
+
description: 'Append an `export * from <module>` to a barrel.',
|
|
68
|
+
destructive: false,
|
|
69
|
+
requiresHumanReview: false,
|
|
70
|
+
variables: [
|
|
71
|
+
{ name: 'barrel', required: true, description: 'project-relative path to the barrel file.' },
|
|
72
|
+
{ name: 'from', required: true, description: 'relative module path to re-export.' },
|
|
73
|
+
],
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
id: HelperId.RemoveBarrelExport,
|
|
77
|
+
description: 'Remove a barrel `export * from` line. Destructive.',
|
|
78
|
+
destructive: true,
|
|
79
|
+
requiresHumanReview: true,
|
|
80
|
+
variables: [
|
|
81
|
+
{ name: 'barrel', required: true, description: 'project-relative path to the barrel file.' },
|
|
82
|
+
{ name: 'from', required: true, description: 'relative module path to remove.' },
|
|
83
|
+
],
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
id: HelperId.AddEventEntry,
|
|
87
|
+
description: 'Append a typed event entry to a plugin events file (requires `eventsPath` var when no profile root is suitable).',
|
|
88
|
+
destructive: false,
|
|
89
|
+
requiresHumanReview: false,
|
|
90
|
+
variables: [
|
|
91
|
+
{ name: 'plugin', required: true, description: 'host plugin kebab-case.' },
|
|
92
|
+
{ name: 'event', required: true, description: 'PascalCase event name.' },
|
|
93
|
+
{
|
|
94
|
+
name: 'eventsPath',
|
|
95
|
+
required: false,
|
|
96
|
+
description: 'Override target path. Otherwise derived from the first profile pluginRoot + plugin + /events.ts.',
|
|
97
|
+
},
|
|
98
|
+
],
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
id: HelperId.RemoveEventEntry,
|
|
102
|
+
description: 'Remove a typed event block from a plugin events file. Destructive.',
|
|
103
|
+
destructive: true,
|
|
104
|
+
requiresHumanReview: true,
|
|
105
|
+
variables: [
|
|
106
|
+
{ name: 'plugin', required: true, description: 'host plugin kebab-case.' },
|
|
107
|
+
{ name: 'event', required: true, description: 'PascalCase event name.' },
|
|
108
|
+
{
|
|
109
|
+
name: 'eventsPath',
|
|
110
|
+
required: false,
|
|
111
|
+
description: 'Override target path. Otherwise derived from the first profile pluginRoot + plugin + /events.ts.',
|
|
112
|
+
},
|
|
113
|
+
],
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
id: HelperId.AddDefaultRegistration,
|
|
117
|
+
description: 'Register default config/state providers (manual checklist; locations vary).',
|
|
118
|
+
destructive: false,
|
|
119
|
+
requiresHumanReview: true,
|
|
120
|
+
variables: [
|
|
121
|
+
{ name: 'name', required: true, description: 'plugin kebab-case.' },
|
|
122
|
+
{ name: 'pascal', required: true, description: 'plugin PascalCase.' },
|
|
123
|
+
],
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
id: HelperId.RemoveDefaultRegistration,
|
|
127
|
+
description: 'Remove default config/state provider registration (manual checklist). Destructive.',
|
|
128
|
+
destructive: true,
|
|
129
|
+
requiresHumanReview: true,
|
|
130
|
+
variables: [{ name: 'pascal', required: true, description: 'plugin PascalCase.' }],
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
id: HelperId.AddComposerEntry,
|
|
134
|
+
description: 'Append a composer entry (manual checklist — composer locations vary).',
|
|
135
|
+
destructive: false,
|
|
136
|
+
requiresHumanReview: true,
|
|
137
|
+
variables: [{ name: 'plugin', required: true, description: 'plugin kebab-case.' }],
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
id: HelperId.RemoveComposerEntry,
|
|
141
|
+
description: 'Remove a composer entry (manual checklist).',
|
|
142
|
+
destructive: true,
|
|
143
|
+
requiresHumanReview: true,
|
|
144
|
+
variables: [{ name: 'plugin', required: true, description: 'plugin kebab-case.' }],
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
id: HelperId.RenamePluginFolder,
|
|
148
|
+
description: 'Manual checklist: rename a plugin folder across the profile roots.',
|
|
149
|
+
destructive: true,
|
|
150
|
+
requiresHumanReview: true,
|
|
151
|
+
requiresProfile: true,
|
|
152
|
+
variables: [
|
|
153
|
+
{ name: 'old', required: true, description: 'old plugin kebab-case.' },
|
|
154
|
+
{ name: 'new', required: true, description: 'new plugin kebab-case.' },
|
|
155
|
+
],
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
id: HelperId.RemoveUserPluginEntry,
|
|
159
|
+
description: 'Remove a plugin entry from user-facing key-by-scope tables (heuristic).',
|
|
160
|
+
destructive: true,
|
|
161
|
+
requiresHumanReview: true,
|
|
162
|
+
variables: [{ name: 'key', required: true, description: 'plugin kebab-case.' }],
|
|
163
|
+
},
|
|
164
|
+
]);
|
|
165
|
+
/**
|
|
166
|
+
* Convert a helper plan into a saved plan (synthetic templateId) so
|
|
167
|
+
* it flows through `shrk apply`. Helper ops are persisted as v2 operation
|
|
168
|
+
* intents; the apply path evaluates them against the live file system.
|
|
169
|
+
* Unsigned by default; call `signPlan` separately when desired.
|
|
170
|
+
*/
|
|
171
|
+
export const HELPER_SYNTHETIC_TEMPLATE = '__helper__';
|
|
172
|
+
export function helperPlanToSavedPlan(plan, projectRoot) {
|
|
173
|
+
// Map each helper op to a saved expectedChange. The sizeBytes is the
|
|
174
|
+
// best-effort post-apply size (zero for inserts whose snippet is empty)
|
|
175
|
+
// — the live evaluator recomputes the actual size at apply time.
|
|
176
|
+
const expectedChanges = plan.ops.map((op) => {
|
|
177
|
+
const kind = typeof op.operation['kind'] === 'string' ? op.operation['kind'] : 'append';
|
|
178
|
+
let sizeBytes = 0;
|
|
179
|
+
if (typeof op.operation['snippet'] === 'string') {
|
|
180
|
+
sizeBytes = Buffer.byteLength(op.operation['snippet'], 'utf8');
|
|
181
|
+
}
|
|
182
|
+
else if (typeof op.operation['replaceWith'] === 'string') {
|
|
183
|
+
sizeBytes = Buffer.byteLength(op.operation['replaceWith'], 'utf8');
|
|
184
|
+
}
|
|
185
|
+
else if (typeof op.operation['content'] === 'string') {
|
|
186
|
+
sizeBytes = Buffer.byteLength(op.operation['content'], 'utf8');
|
|
187
|
+
}
|
|
188
|
+
return {
|
|
189
|
+
type: kind,
|
|
190
|
+
relativePath: op.targetPath,
|
|
191
|
+
sizeBytes,
|
|
192
|
+
operation: op.operation,
|
|
193
|
+
};
|
|
194
|
+
});
|
|
195
|
+
const out = {
|
|
196
|
+
schema: 'sharkcraft.plan/v2',
|
|
197
|
+
templateId: HELPER_SYNTHETIC_TEMPLATE,
|
|
198
|
+
variables: {
|
|
199
|
+
helperId: plan.helperId,
|
|
200
|
+
...plan.variables,
|
|
201
|
+
},
|
|
202
|
+
projectRoot,
|
|
203
|
+
createdAt: new Date().toISOString(),
|
|
204
|
+
expectedChanges,
|
|
205
|
+
};
|
|
206
|
+
if (plan.manualSteps.length > 0) {
|
|
207
|
+
out.note = `Manual steps required: ${plan.manualSteps.join('; ')}`;
|
|
208
|
+
}
|
|
209
|
+
return out;
|
|
210
|
+
}
|
|
211
|
+
function readFileSafe(p) {
|
|
212
|
+
if (!existsSync(p))
|
|
213
|
+
return null;
|
|
214
|
+
try {
|
|
215
|
+
return readFileSync(p, 'utf8');
|
|
216
|
+
}
|
|
217
|
+
catch {
|
|
218
|
+
return null;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
function splitWords(input) {
|
|
222
|
+
if (!input)
|
|
223
|
+
return [];
|
|
224
|
+
if (input.includes('-') || input.includes('_'))
|
|
225
|
+
return input.split(/[-_]/).filter(Boolean);
|
|
226
|
+
return input.split(/(?=[A-Z])/).map((w) => w.toLowerCase()).filter(Boolean);
|
|
227
|
+
}
|
|
228
|
+
function toCase(input, style) {
|
|
229
|
+
const words = splitWords(input);
|
|
230
|
+
if (words.length === 0)
|
|
231
|
+
return input;
|
|
232
|
+
switch (style) {
|
|
233
|
+
case CaseStyle.Kebab:
|
|
234
|
+
return words.map((w) => w.toLowerCase()).join('-');
|
|
235
|
+
case CaseStyle.UpperSnake:
|
|
236
|
+
return words.map((w) => w.toUpperCase()).join('_');
|
|
237
|
+
case CaseStyle.Pascal:
|
|
238
|
+
return words.map((w) => w.charAt(0).toUpperCase() + w.slice(1).toLowerCase()).join('');
|
|
239
|
+
case CaseStyle.Camel:
|
|
240
|
+
return words
|
|
241
|
+
.map((w, i) => (i === 0 ? w.toLowerCase() : w.charAt(0).toUpperCase() + w.slice(1).toLowerCase()))
|
|
242
|
+
.join('');
|
|
243
|
+
default:
|
|
244
|
+
return input;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
function escapeRegex(s) {
|
|
248
|
+
return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
249
|
+
}
|
|
250
|
+
function requireProfile(helperId, profile) {
|
|
251
|
+
if (!profile) {
|
|
252
|
+
throw new Error(`Helper ${helperId} requires a lifecycle profile. Pass the profile loaded from sharkcraft/plugin-lifecycle-profiles or a pack.`);
|
|
253
|
+
}
|
|
254
|
+
return profile;
|
|
255
|
+
}
|
|
256
|
+
export function buildHelperPlan(input) {
|
|
257
|
+
const def = HELPERS.find((h) => h.id === input.helperId);
|
|
258
|
+
if (!def) {
|
|
259
|
+
throw new Error(`Unknown helper id: ${input.helperId}`);
|
|
260
|
+
}
|
|
261
|
+
for (const v of def.variables) {
|
|
262
|
+
if (v.required && !input.vars[v.name]) {
|
|
263
|
+
throw new Error(`Helper ${def.id} requires variable "${v.name}".`);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
const ops = [];
|
|
267
|
+
const manual = [];
|
|
268
|
+
const conflicts = [];
|
|
269
|
+
switch (input.helperId) {
|
|
270
|
+
case HelperId.AddPluginKey: {
|
|
271
|
+
const profile = requireProfile(input.helperId, input.profile);
|
|
272
|
+
if (!profile.keyTable) {
|
|
273
|
+
conflicts.push(`Profile "${profile.id}" has no keyTable; cannot add a plugin key entry.`);
|
|
274
|
+
break;
|
|
275
|
+
}
|
|
276
|
+
const keyTablePath = profile.keyTable.path;
|
|
277
|
+
const keyName = input.vars.key;
|
|
278
|
+
const key = toCase(keyName, profile.keyTable.keyCase);
|
|
279
|
+
const value = toCase(keyName, profile.keyTable.valueCase);
|
|
280
|
+
ops.push({
|
|
281
|
+
targetPath: keyTablePath,
|
|
282
|
+
operation: {
|
|
283
|
+
kind: 'insert-before',
|
|
284
|
+
anchor: '} as const;',
|
|
285
|
+
snippet: ` ${key}: '${value}',\n`,
|
|
286
|
+
ifMissing: `${key}:`,
|
|
287
|
+
description: `Register key-table entry ${key} = '${value}'.`,
|
|
288
|
+
},
|
|
289
|
+
});
|
|
290
|
+
break;
|
|
291
|
+
}
|
|
292
|
+
case HelperId.RemovePluginKey: {
|
|
293
|
+
const profile = requireProfile(input.helperId, input.profile);
|
|
294
|
+
if (!profile.keyTable) {
|
|
295
|
+
conflicts.push(`Profile "${profile.id}" has no keyTable; nothing to remove.`);
|
|
296
|
+
break;
|
|
297
|
+
}
|
|
298
|
+
const keyTablePath = profile.keyTable.path;
|
|
299
|
+
const keyName = input.vars.key;
|
|
300
|
+
const key = toCase(keyName, profile.keyTable.keyCase);
|
|
301
|
+
const value = toCase(keyName, profile.keyTable.valueCase);
|
|
302
|
+
const file = join(input.projectRoot, keyTablePath);
|
|
303
|
+
const content = readFileSafe(file);
|
|
304
|
+
const re = new RegExp(`\\s*${escapeRegex(key)}:\\s*['"]${escapeRegex(value)}['"],?\\n`);
|
|
305
|
+
const m = content?.match(re);
|
|
306
|
+
if (m) {
|
|
307
|
+
ops.push({
|
|
308
|
+
targetPath: keyTablePath,
|
|
309
|
+
operation: {
|
|
310
|
+
kind: 'replace',
|
|
311
|
+
find: m[0],
|
|
312
|
+
replaceWith: '',
|
|
313
|
+
description: `Remove key-table entry ${key}.`,
|
|
314
|
+
},
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
else {
|
|
318
|
+
conflicts.push(`Key-table entry ${key} not found in ${keyTablePath}.`);
|
|
319
|
+
}
|
|
320
|
+
break;
|
|
321
|
+
}
|
|
322
|
+
case HelperId.RenamePluginKey: {
|
|
323
|
+
const profile = requireProfile(input.helperId, input.profile);
|
|
324
|
+
if (!profile.keyTable) {
|
|
325
|
+
conflicts.push(`Profile "${profile.id}" has no keyTable; nothing to rename.`);
|
|
326
|
+
break;
|
|
327
|
+
}
|
|
328
|
+
const keyTablePath = profile.keyTable.path;
|
|
329
|
+
const oldName = input.vars.old;
|
|
330
|
+
const newName = input.vars.new;
|
|
331
|
+
const oldKey = toCase(oldName, profile.keyTable.keyCase);
|
|
332
|
+
const newKey = toCase(newName, profile.keyTable.keyCase);
|
|
333
|
+
const oldValue = toCase(oldName, profile.keyTable.valueCase);
|
|
334
|
+
const newValue = toCase(newName, profile.keyTable.valueCase);
|
|
335
|
+
const file = join(input.projectRoot, keyTablePath);
|
|
336
|
+
const content = readFileSafe(file);
|
|
337
|
+
const re = new RegExp(`(\\s*)${escapeRegex(oldKey)}:\\s*['"]${escapeRegex(oldValue)}['"](,?\\n)`);
|
|
338
|
+
const m = content?.match(re);
|
|
339
|
+
if (m) {
|
|
340
|
+
ops.push({
|
|
341
|
+
targetPath: keyTablePath,
|
|
342
|
+
operation: {
|
|
343
|
+
kind: 'replace',
|
|
344
|
+
find: m[0],
|
|
345
|
+
replaceWith: `${m[1]}${newKey}: '${newValue}'${m[2]}`,
|
|
346
|
+
description: `Rename key-table entry ${oldKey} → ${newKey}.`,
|
|
347
|
+
},
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
else {
|
|
351
|
+
conflicts.push(`Key-table entry ${oldKey} not found.`);
|
|
352
|
+
}
|
|
353
|
+
break;
|
|
354
|
+
}
|
|
355
|
+
case HelperId.AddBarrelExport: {
|
|
356
|
+
const barrel = input.vars.barrel;
|
|
357
|
+
const from = input.vars.from;
|
|
358
|
+
ops.push({
|
|
359
|
+
targetPath: barrel,
|
|
360
|
+
operation: {
|
|
361
|
+
kind: 'export',
|
|
362
|
+
from,
|
|
363
|
+
description: `Append export * from '${from}' to ${barrel}.`,
|
|
364
|
+
},
|
|
365
|
+
});
|
|
366
|
+
break;
|
|
367
|
+
}
|
|
368
|
+
case HelperId.RemoveBarrelExport: {
|
|
369
|
+
const barrel = input.vars.barrel;
|
|
370
|
+
const from = input.vars.from;
|
|
371
|
+
const content = readFileSafe(join(input.projectRoot, barrel));
|
|
372
|
+
const lines = (content ?? '').split('\n');
|
|
373
|
+
const match = lines.find((l) => l.includes(`'${from}'`) || l.includes(`"${from}"`));
|
|
374
|
+
if (match) {
|
|
375
|
+
ops.push({
|
|
376
|
+
targetPath: barrel,
|
|
377
|
+
operation: {
|
|
378
|
+
kind: 'replace',
|
|
379
|
+
find: match + '\n',
|
|
380
|
+
replaceWith: '',
|
|
381
|
+
description: `Remove export * from '${from}' from ${barrel}.`,
|
|
382
|
+
},
|
|
383
|
+
});
|
|
384
|
+
}
|
|
385
|
+
else {
|
|
386
|
+
conflicts.push(`No export referencing '${from}' in ${barrel}.`);
|
|
387
|
+
}
|
|
388
|
+
break;
|
|
389
|
+
}
|
|
390
|
+
case HelperId.AddEventEntry: {
|
|
391
|
+
const plugin = input.vars.plugin;
|
|
392
|
+
const eventPascal = input.vars.event;
|
|
393
|
+
const upper = toCase(eventPascal, CaseStyle.UpperSnake);
|
|
394
|
+
let eventsPath = input.vars.eventsPath;
|
|
395
|
+
if (!eventsPath) {
|
|
396
|
+
const profile = requireProfile(input.helperId, input.profile);
|
|
397
|
+
const root = profile.pluginRoots[0];
|
|
398
|
+
if (!root) {
|
|
399
|
+
conflicts.push(`Profile "${profile.id}" has no pluginRoots; cannot derive eventsPath.`);
|
|
400
|
+
break;
|
|
401
|
+
}
|
|
402
|
+
eventsPath = `${root.path}/${plugin}/events.ts`;
|
|
403
|
+
}
|
|
404
|
+
const beginMarker = `// ─── ${eventPascal} event (helper) ───`;
|
|
405
|
+
const snippet = `\n${beginMarker}\n` +
|
|
406
|
+
`export interface ${eventPascal}Payload {}\n` +
|
|
407
|
+
`// ${eventPascal} event entry; wire EventType.${upper} manually.\n` +
|
|
408
|
+
`// ─── end ${eventPascal} event ───\n`;
|
|
409
|
+
ops.push({
|
|
410
|
+
targetPath: eventsPath,
|
|
411
|
+
operation: {
|
|
412
|
+
kind: 'append',
|
|
413
|
+
snippet,
|
|
414
|
+
ifMissing: beginMarker,
|
|
415
|
+
description: `Append ${eventPascal} event block to ${eventsPath}.`,
|
|
416
|
+
},
|
|
417
|
+
});
|
|
418
|
+
manual.push(`Add the EventType.${upper} = '${plugin}.${toCase(eventPascal, CaseStyle.Camel)}' enum entry inside the host's EventType enum.`);
|
|
419
|
+
break;
|
|
420
|
+
}
|
|
421
|
+
case HelperId.RemoveEventEntry: {
|
|
422
|
+
const plugin = input.vars.plugin;
|
|
423
|
+
const eventPascal = input.vars.event;
|
|
424
|
+
let eventsPath = input.vars.eventsPath;
|
|
425
|
+
if (!eventsPath) {
|
|
426
|
+
const profile = requireProfile(input.helperId, input.profile);
|
|
427
|
+
const root = profile.pluginRoots[0];
|
|
428
|
+
if (!root) {
|
|
429
|
+
conflicts.push(`Profile "${profile.id}" has no pluginRoots; cannot derive eventsPath.`);
|
|
430
|
+
break;
|
|
431
|
+
}
|
|
432
|
+
eventsPath = `${root.path}/${plugin}/events.ts`;
|
|
433
|
+
}
|
|
434
|
+
const file = join(input.projectRoot, eventsPath);
|
|
435
|
+
const content = readFileSafe(file);
|
|
436
|
+
const beginMarker = `// ─── ${eventPascal} event`;
|
|
437
|
+
const endMarker = `// ─── end ${eventPascal} event ───`;
|
|
438
|
+
if (content && content.includes(beginMarker) && content.includes(endMarker)) {
|
|
439
|
+
const start = content.indexOf(beginMarker);
|
|
440
|
+
const end = content.indexOf(endMarker) + endMarker.length + 1;
|
|
441
|
+
const block = content.slice(start, end);
|
|
442
|
+
ops.push({
|
|
443
|
+
targetPath: eventsPath,
|
|
444
|
+
operation: {
|
|
445
|
+
kind: 'replace',
|
|
446
|
+
find: block,
|
|
447
|
+
replaceWith: '',
|
|
448
|
+
description: `Remove ${eventPascal} event block from ${eventsPath}.`,
|
|
449
|
+
},
|
|
450
|
+
});
|
|
451
|
+
}
|
|
452
|
+
else {
|
|
453
|
+
conflicts.push(`Event block ${eventPascal} not found in ${eventsPath}.`);
|
|
454
|
+
}
|
|
455
|
+
break;
|
|
456
|
+
}
|
|
457
|
+
case HelperId.AddDefaultRegistration: {
|
|
458
|
+
const pascal = input.vars.pascal;
|
|
459
|
+
manual.push(`Register ${pascal} default providers in the runtime composition layer (composer location varies — review manually).`);
|
|
460
|
+
break;
|
|
461
|
+
}
|
|
462
|
+
case HelperId.RemoveDefaultRegistration: {
|
|
463
|
+
const pascal = input.vars.pascal;
|
|
464
|
+
manual.push(`Remove ${pascal} default providers from the runtime composition layer (composer location varies — review manually).`);
|
|
465
|
+
break;
|
|
466
|
+
}
|
|
467
|
+
case HelperId.AddComposerEntry: {
|
|
468
|
+
const plugin = input.vars.plugin;
|
|
469
|
+
manual.push(`Append ${plugin} entry to the appropriate composer. Composer locations vary — review manually.`);
|
|
470
|
+
break;
|
|
471
|
+
}
|
|
472
|
+
case HelperId.RemoveComposerEntry: {
|
|
473
|
+
const plugin = input.vars.plugin;
|
|
474
|
+
manual.push(`Remove ${plugin} entry from the appropriate composer. Composer locations vary — review manually.`);
|
|
475
|
+
break;
|
|
476
|
+
}
|
|
477
|
+
case HelperId.RenamePluginFolder: {
|
|
478
|
+
const oldName = input.vars.old;
|
|
479
|
+
const newName = input.vars.new;
|
|
480
|
+
const profile = requireProfile(input.helperId, input.profile);
|
|
481
|
+
for (const root of profile.pluginRoots) {
|
|
482
|
+
manual.push(`git mv ${root.path}/${oldName} ${root.path}/${newName}`);
|
|
483
|
+
}
|
|
484
|
+
break;
|
|
485
|
+
}
|
|
486
|
+
case HelperId.RemoveUserPluginEntry: {
|
|
487
|
+
const key = input.vars.key;
|
|
488
|
+
manual.push(`Search for "${key}" in user-facing key-by-scope tables and remove the corresponding entry. Heuristic — review manually.`);
|
|
489
|
+
break;
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
return {
|
|
493
|
+
schema: 'sharkcraft.helper-plan/v1',
|
|
494
|
+
helperId: input.helperId,
|
|
495
|
+
variables: { ...input.vars },
|
|
496
|
+
ops,
|
|
497
|
+
manualSteps: manual,
|
|
498
|
+
conflicts,
|
|
499
|
+
destructive: def.destructive,
|
|
500
|
+
humanReviewRequired: def.requiresHumanReview,
|
|
501
|
+
};
|
|
502
|
+
}
|
|
503
|
+
export function renderHelperPlanText(plan) {
|
|
504
|
+
const lines = [];
|
|
505
|
+
lines.push(`=== Helper plan: ${plan.helperId} ===`);
|
|
506
|
+
lines.push(` destructive ${plan.destructive ? 'YES' : 'no'}`);
|
|
507
|
+
lines.push(` review ${plan.humanReviewRequired ? 'human review required' : 'auto'}`);
|
|
508
|
+
lines.push('');
|
|
509
|
+
lines.push(`Operations (${plan.ops.length}):`);
|
|
510
|
+
for (const op of plan.ops) {
|
|
511
|
+
const o = op.operation;
|
|
512
|
+
lines.push(` • ${op.targetPath} [${o.kind ?? '?'}]`);
|
|
513
|
+
if (o.description)
|
|
514
|
+
lines.push(` ${o.description}`);
|
|
515
|
+
}
|
|
516
|
+
if (plan.manualSteps.length > 0) {
|
|
517
|
+
lines.push('');
|
|
518
|
+
lines.push(`Manual steps:`);
|
|
519
|
+
for (const m of plan.manualSteps)
|
|
520
|
+
lines.push(` • ${m}`);
|
|
521
|
+
}
|
|
522
|
+
if (plan.conflicts.length > 0) {
|
|
523
|
+
lines.push('');
|
|
524
|
+
lines.push(`Conflicts:`);
|
|
525
|
+
for (const c of plan.conflicts)
|
|
526
|
+
lines.push(` • ${c}`);
|
|
527
|
+
}
|
|
528
|
+
return lines.join('\n') + '\n';
|
|
529
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import type { ISharkcraftInspection } from './sharkcraft-inspector.js';
|
|
2
|
+
import type { IAreaMap } from './area-map.js';
|
|
3
|
+
import { AreaKind } from './area-map.js';
|
|
4
|
+
import { type IOwnershipImpact } from './ownership.js';
|
|
5
|
+
export declare const IMPACT_ANALYSIS_SCHEMA = "sharkcraft.impact-analysis/v2";
|
|
6
|
+
export declare enum ImpactRisk {
|
|
7
|
+
Low = "low",
|
|
8
|
+
Medium = "medium",
|
|
9
|
+
High = "high",
|
|
10
|
+
Critical = "critical"
|
|
11
|
+
}
|
|
12
|
+
export declare enum ImpactInputKind {
|
|
13
|
+
File = "file",
|
|
14
|
+
Files = "files",
|
|
15
|
+
Specifier = "specifier",
|
|
16
|
+
Since = "since",
|
|
17
|
+
Staged = "staged",
|
|
18
|
+
Plan = "plan",
|
|
19
|
+
Bundle = "bundle",
|
|
20
|
+
Task = "task",
|
|
21
|
+
Mixed = "mixed",
|
|
22
|
+
Empty = "empty"
|
|
23
|
+
}
|
|
24
|
+
export interface IImpactAnalysisInput {
|
|
25
|
+
task?: string;
|
|
26
|
+
files?: readonly string[];
|
|
27
|
+
planTargets?: readonly string[];
|
|
28
|
+
specifier?: string;
|
|
29
|
+
/** Hint: how the caller produced the file list. */
|
|
30
|
+
inputKind?: ImpactInputKind;
|
|
31
|
+
areaMap?: IAreaMap;
|
|
32
|
+
/** Cap on transitive depth. Default: 5. */
|
|
33
|
+
maxDepth?: number;
|
|
34
|
+
/** Max items in each list (truncation guard). Default: 200. */
|
|
35
|
+
limit?: number;
|
|
36
|
+
}
|
|
37
|
+
export interface IImpactDependentPath {
|
|
38
|
+
/** Direct importer file. */
|
|
39
|
+
from: string;
|
|
40
|
+
/** Ultimate target file in the input set (or the file reached through specifier). */
|
|
41
|
+
to: string;
|
|
42
|
+
/** Files visited on the way from `from` → `to`. */
|
|
43
|
+
via: readonly string[];
|
|
44
|
+
}
|
|
45
|
+
export interface IImpactAreaSummary {
|
|
46
|
+
id: string;
|
|
47
|
+
kind: AreaKind;
|
|
48
|
+
fileCount: number;
|
|
49
|
+
}
|
|
50
|
+
export interface IImpactWorkspaceSummary {
|
|
51
|
+
name: string;
|
|
52
|
+
directory: string;
|
|
53
|
+
fileCount: number;
|
|
54
|
+
}
|
|
55
|
+
export interface IImpactPolicyConcern {
|
|
56
|
+
policyId: string;
|
|
57
|
+
reason: string;
|
|
58
|
+
severity: 'info' | 'warning' | 'error';
|
|
59
|
+
}
|
|
60
|
+
export interface IImpactBoundaryConcern {
|
|
61
|
+
ruleId: string;
|
|
62
|
+
reason: string;
|
|
63
|
+
severity: 'info' | 'warning' | 'error';
|
|
64
|
+
}
|
|
65
|
+
export interface IImpactReason {
|
|
66
|
+
code: string;
|
|
67
|
+
message: string;
|
|
68
|
+
detail?: string;
|
|
69
|
+
}
|
|
70
|
+
export interface IImpactTruncation {
|
|
71
|
+
list: string;
|
|
72
|
+
total: number;
|
|
73
|
+
shown: number;
|
|
74
|
+
}
|
|
75
|
+
export interface IImpactAnalysis {
|
|
76
|
+
schema: typeof IMPACT_ANALYSIS_SCHEMA;
|
|
77
|
+
task: string;
|
|
78
|
+
inputKind: ImpactInputKind;
|
|
79
|
+
/** Files / paths that the caller is asking about (normalized, relative to projectRoot). */
|
|
80
|
+
normalizedTargets: readonly string[];
|
|
81
|
+
/** Specifier the caller passed in, when --specifier was used. */
|
|
82
|
+
specifier?: string;
|
|
83
|
+
/** Files mentioned in the original input (kept for the legacy field name). */
|
|
84
|
+
affectedFiles: readonly string[];
|
|
85
|
+
/** Direct dependents — files that import one of the targets directly. */
|
|
86
|
+
directDependents: readonly string[];
|
|
87
|
+
/** Transitive dependents — files reachable via repeated importer edges. */
|
|
88
|
+
transitiveDependents: readonly string[];
|
|
89
|
+
/** Example dependency paths (truncated by `limit`). */
|
|
90
|
+
dependencyPathExamples: readonly IImpactDependentPath[];
|
|
91
|
+
/** Areas the target/dependents touch. */
|
|
92
|
+
affectedAreas: readonly IImpactAreaSummary[];
|
|
93
|
+
/** Workspace packages the target/dependents touch. */
|
|
94
|
+
affectedPackages: readonly IImpactWorkspaceSummary[];
|
|
95
|
+
/** Path conventions the target/dependents touch. */
|
|
96
|
+
affectedPathConventions: readonly string[];
|
|
97
|
+
/** Boundary rules potentially impacted. */
|
|
98
|
+
potentialBoundaryRisks: readonly IImpactBoundaryConcern[];
|
|
99
|
+
/** Policy checks potentially affected. */
|
|
100
|
+
affectedPolicies: readonly IImpactPolicyConcern[];
|
|
101
|
+
/** Ownership entries touched (best-effort summary). */
|
|
102
|
+
affectedOwnership: IOwnershipImpact | null;
|
|
103
|
+
/** Templates likely affected by changes. */
|
|
104
|
+
affectedTemplates: readonly {
|
|
105
|
+
id: string;
|
|
106
|
+
name: string;
|
|
107
|
+
}[];
|
|
108
|
+
/** Pipelines likely affected. */
|
|
109
|
+
affectedPipelines: readonly {
|
|
110
|
+
id: string;
|
|
111
|
+
title: string;
|
|
112
|
+
}[];
|
|
113
|
+
/** Presets likely affected. */
|
|
114
|
+
affectedPresets: readonly {
|
|
115
|
+
id: string;
|
|
116
|
+
name: string;
|
|
117
|
+
}[];
|
|
118
|
+
/** Constructs likely affected. */
|
|
119
|
+
affectedConstructs: readonly {
|
|
120
|
+
id: string;
|
|
121
|
+
type: string;
|
|
122
|
+
title: string;
|
|
123
|
+
}[];
|
|
124
|
+
/** Heuristic likely-test files (existing + suggested). */
|
|
125
|
+
likelyTests: readonly string[];
|
|
126
|
+
/** Suggested commands. */
|
|
127
|
+
suggestedTestCommands: readonly string[];
|
|
128
|
+
suggestedFullTestCommands: readonly string[];
|
|
129
|
+
suggestedValidationCommands: readonly string[];
|
|
130
|
+
suggestedReviewCommands: readonly string[];
|
|
131
|
+
/** Related rules / templates for the task. */
|
|
132
|
+
relatedRules: readonly {
|
|
133
|
+
id: string;
|
|
134
|
+
title: string;
|
|
135
|
+
}[];
|
|
136
|
+
relatedTemplates: readonly {
|
|
137
|
+
id: string;
|
|
138
|
+
name: string;
|
|
139
|
+
}[];
|
|
140
|
+
/** Risk classification + reasons. */
|
|
141
|
+
risk: ImpactRisk;
|
|
142
|
+
riskReasons: readonly IImpactReason[];
|
|
143
|
+
explanation: string;
|
|
144
|
+
/** Truncation notes for over-limit lists. */
|
|
145
|
+
truncations: readonly IImpactTruncation[];
|
|
146
|
+
/** Diagnostics (warnings emitted while computing the report). */
|
|
147
|
+
diagnostics: readonly string[];
|
|
148
|
+
}
|
|
149
|
+
export declare function analyzeImpact(inspection: ISharkcraftInspection, input: IImpactAnalysisInput): Promise<IImpactAnalysis>;
|
|
150
|
+
//# sourceMappingURL=impact-analysis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"impact-analysis.d.ts","sourceRoot":"","sources":["../src/impact-analysis.ts"],"names":[],"mappings":"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"}
|