@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,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Asset provenance tracking.
|
|
3
|
+
*
|
|
4
|
+
* Append-only JSONL ledger that records every authoring action: who/what
|
|
5
|
+
* authored which knowledge entry / pack asset, when, why, and where the
|
|
6
|
+
* preview/patch lives. Pure local metadata — no telemetry, no network.
|
|
7
|
+
*
|
|
8
|
+
* File: <projectRoot>/.sharkcraft/asset-provenance.jsonl
|
|
9
|
+
*
|
|
10
|
+
* Each line: a single `IAssetProvenanceEntry` JSON object, schema
|
|
11
|
+
* `sharkcraft.asset-provenance/v1`.
|
|
12
|
+
*/
|
|
13
|
+
export declare const ASSET_PROVENANCE_SCHEMA = "sharkcraft.asset-provenance/v1";
|
|
14
|
+
/**
|
|
15
|
+
* Schema marker emitted iff an entry carries `relatedSpec`. v1
|
|
16
|
+
* entries (no relatedSpec) remain readable forever; v2 entries add
|
|
17
|
+
* the spec back-pointer without breaking back-compat.
|
|
18
|
+
*/
|
|
19
|
+
export declare const ASSET_PROVENANCE_SCHEMA_V2 = "sharkcraft.asset-provenance/v2";
|
|
20
|
+
export type AssetProvenanceSchema = typeof ASSET_PROVENANCE_SCHEMA | typeof ASSET_PROVENANCE_SCHEMA_V2;
|
|
21
|
+
export declare enum AssetProvenanceSource {
|
|
22
|
+
Manual = "manual",
|
|
23
|
+
Agent = "agent",
|
|
24
|
+
Cli = "cli",
|
|
25
|
+
Session = "session",
|
|
26
|
+
Unknown = "unknown"
|
|
27
|
+
}
|
|
28
|
+
export declare enum AssetProvenanceOperation {
|
|
29
|
+
Add = "add",
|
|
30
|
+
Update = "update",
|
|
31
|
+
Remove = "remove",
|
|
32
|
+
Preview = "preview",
|
|
33
|
+
Apply = "apply",
|
|
34
|
+
Acknowledge = "acknowledge"
|
|
35
|
+
}
|
|
36
|
+
export declare enum AssetKind {
|
|
37
|
+
Knowledge = "knowledge",
|
|
38
|
+
SearchTuning = "search-tuning",
|
|
39
|
+
FeedbackRule = "feedback-rule",
|
|
40
|
+
AgentTest = "agent-test",
|
|
41
|
+
Convention = "convention",
|
|
42
|
+
TaskRoutingHint = "task-routing-hint",
|
|
43
|
+
RegistrationHint = "registration-hint",
|
|
44
|
+
ScaffoldPattern = "scaffold-pattern",
|
|
45
|
+
Template = "template",
|
|
46
|
+
Rule = "rule",
|
|
47
|
+
Path = "path",
|
|
48
|
+
Pipeline = "pipeline",
|
|
49
|
+
Preset = "preset",
|
|
50
|
+
Boundary = "boundary"
|
|
51
|
+
}
|
|
52
|
+
export interface IAssetProvenanceEntry {
|
|
53
|
+
schema: AssetProvenanceSchema;
|
|
54
|
+
generatedAt: string;
|
|
55
|
+
operation: AssetProvenanceOperation;
|
|
56
|
+
assetKind: AssetKind | string;
|
|
57
|
+
assetId: string;
|
|
58
|
+
targetFile?: string;
|
|
59
|
+
source: AssetProvenanceSource;
|
|
60
|
+
sessionId?: string;
|
|
61
|
+
bundleId?: string;
|
|
62
|
+
reason?: string;
|
|
63
|
+
relatedTask?: string;
|
|
64
|
+
/**
|
|
65
|
+
* Back-pointer to a `.sharkcraft/specs/<id>/` spec. Present iff
|
|
66
|
+
* the entry was recorded as part of a spec implement/apply. When
|
|
67
|
+
* present, the entry's schema is bumped to v2; absent entries stay v1.
|
|
68
|
+
*/
|
|
69
|
+
relatedSpec?: string;
|
|
70
|
+
author?: string;
|
|
71
|
+
previewPath?: string;
|
|
72
|
+
patchPath?: string;
|
|
73
|
+
/** Free-form, structured payload — kept small. */
|
|
74
|
+
extra?: Record<string, unknown>;
|
|
75
|
+
}
|
|
76
|
+
export interface IRecordProvenanceInput {
|
|
77
|
+
/** Project root (where `.sharkcraft/` lives). */
|
|
78
|
+
projectRoot: string;
|
|
79
|
+
/** Entry fields — everything except schema + generatedAt (auto-filled). */
|
|
80
|
+
entry: Omit<IAssetProvenanceEntry, 'schema' | 'generatedAt'>;
|
|
81
|
+
/** Override the generatedAt — defaults to now. */
|
|
82
|
+
generatedAt?: string;
|
|
83
|
+
}
|
|
84
|
+
export interface IProvenanceListOptions {
|
|
85
|
+
/** Filter by asset kind. */
|
|
86
|
+
assetKind?: AssetKind | string;
|
|
87
|
+
/** Filter by asset id. */
|
|
88
|
+
assetId?: string;
|
|
89
|
+
/** Filter by operation. */
|
|
90
|
+
operation?: AssetProvenanceOperation;
|
|
91
|
+
/** Max entries to return (most recent first). */
|
|
92
|
+
limit?: number;
|
|
93
|
+
}
|
|
94
|
+
export declare function provenancePath(projectRoot: string): string;
|
|
95
|
+
export declare function ensureProvenanceDir(projectRoot: string): void;
|
|
96
|
+
export declare function provenanceExists(projectRoot: string): boolean;
|
|
97
|
+
export declare function readProvenance(projectRoot: string): IAssetProvenanceEntry[];
|
|
98
|
+
export declare function recordProvenance(input: IRecordProvenanceInput): IAssetProvenanceEntry;
|
|
99
|
+
export declare function listProvenance(projectRoot: string, options?: IProvenanceListOptions): IAssetProvenanceEntry[];
|
|
100
|
+
export interface IProvenanceShowResult {
|
|
101
|
+
assetKind: string;
|
|
102
|
+
assetId: string;
|
|
103
|
+
entries: ReadonlyArray<IAssetProvenanceEntry>;
|
|
104
|
+
/** Most recent entry, for quick access. */
|
|
105
|
+
latest?: IAssetProvenanceEntry;
|
|
106
|
+
}
|
|
107
|
+
export declare function showProvenance(projectRoot: string, assetId: string, assetKind?: AssetKind | string): IProvenanceShowResult;
|
|
108
|
+
export interface IProvenanceReport {
|
|
109
|
+
schema: 'sharkcraft.asset-provenance-report/v1';
|
|
110
|
+
generatedAt: string;
|
|
111
|
+
total: number;
|
|
112
|
+
byKind: Readonly<Record<string, number>>;
|
|
113
|
+
byOperation: Readonly<Record<string, number>>;
|
|
114
|
+
bySource: Readonly<Record<string, number>>;
|
|
115
|
+
recent: ReadonlyArray<IAssetProvenanceEntry>;
|
|
116
|
+
/** Whether the ledger file exists at all. */
|
|
117
|
+
ledgerExists: boolean;
|
|
118
|
+
ledgerPath: string;
|
|
119
|
+
ledgerSizeBytes: number;
|
|
120
|
+
}
|
|
121
|
+
export declare function buildProvenanceReport(projectRoot: string, recentLimit?: number): IProvenanceReport;
|
|
122
|
+
export declare function renderProvenanceMarkdown(report: IProvenanceReport): string;
|
|
123
|
+
//# sourceMappingURL=asset-provenance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-provenance.d.ts","sourceRoot":"","sources":["../src/asset-provenance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Asset provenance tracking.
|
|
3
|
+
*
|
|
4
|
+
* Append-only JSONL ledger that records every authoring action: who/what
|
|
5
|
+
* authored which knowledge entry / pack asset, when, why, and where the
|
|
6
|
+
* preview/patch lives. Pure local metadata — no telemetry, no network.
|
|
7
|
+
*
|
|
8
|
+
* File: <projectRoot>/.sharkcraft/asset-provenance.jsonl
|
|
9
|
+
*
|
|
10
|
+
* Each line: a single `IAssetProvenanceEntry` JSON object, schema
|
|
11
|
+
* `sharkcraft.asset-provenance/v1`.
|
|
12
|
+
*/
|
|
13
|
+
import { existsSync, mkdirSync, readFileSync, statSync, writeFileSync, appendFileSync } from 'node:fs';
|
|
14
|
+
import * as nodePath from 'node:path';
|
|
15
|
+
export const ASSET_PROVENANCE_SCHEMA = 'sharkcraft.asset-provenance/v1';
|
|
16
|
+
/**
|
|
17
|
+
* Schema marker emitted iff an entry carries `relatedSpec`. v1
|
|
18
|
+
* entries (no relatedSpec) remain readable forever; v2 entries add
|
|
19
|
+
* the spec back-pointer without breaking back-compat.
|
|
20
|
+
*/
|
|
21
|
+
export const ASSET_PROVENANCE_SCHEMA_V2 = 'sharkcraft.asset-provenance/v2';
|
|
22
|
+
export var AssetProvenanceSource;
|
|
23
|
+
(function (AssetProvenanceSource) {
|
|
24
|
+
AssetProvenanceSource["Manual"] = "manual";
|
|
25
|
+
AssetProvenanceSource["Agent"] = "agent";
|
|
26
|
+
AssetProvenanceSource["Cli"] = "cli";
|
|
27
|
+
AssetProvenanceSource["Session"] = "session";
|
|
28
|
+
AssetProvenanceSource["Unknown"] = "unknown";
|
|
29
|
+
})(AssetProvenanceSource || (AssetProvenanceSource = {}));
|
|
30
|
+
export var AssetProvenanceOperation;
|
|
31
|
+
(function (AssetProvenanceOperation) {
|
|
32
|
+
AssetProvenanceOperation["Add"] = "add";
|
|
33
|
+
AssetProvenanceOperation["Update"] = "update";
|
|
34
|
+
AssetProvenanceOperation["Remove"] = "remove";
|
|
35
|
+
AssetProvenanceOperation["Preview"] = "preview";
|
|
36
|
+
AssetProvenanceOperation["Apply"] = "apply";
|
|
37
|
+
AssetProvenanceOperation["Acknowledge"] = "acknowledge";
|
|
38
|
+
})(AssetProvenanceOperation || (AssetProvenanceOperation = {}));
|
|
39
|
+
export var AssetKind;
|
|
40
|
+
(function (AssetKind) {
|
|
41
|
+
AssetKind["Knowledge"] = "knowledge";
|
|
42
|
+
AssetKind["SearchTuning"] = "search-tuning";
|
|
43
|
+
AssetKind["FeedbackRule"] = "feedback-rule";
|
|
44
|
+
AssetKind["AgentTest"] = "agent-test";
|
|
45
|
+
AssetKind["Convention"] = "convention";
|
|
46
|
+
AssetKind["TaskRoutingHint"] = "task-routing-hint";
|
|
47
|
+
AssetKind["RegistrationHint"] = "registration-hint";
|
|
48
|
+
AssetKind["ScaffoldPattern"] = "scaffold-pattern";
|
|
49
|
+
AssetKind["Template"] = "template";
|
|
50
|
+
AssetKind["Rule"] = "rule";
|
|
51
|
+
AssetKind["Path"] = "path";
|
|
52
|
+
AssetKind["Pipeline"] = "pipeline";
|
|
53
|
+
AssetKind["Preset"] = "preset";
|
|
54
|
+
AssetKind["Boundary"] = "boundary";
|
|
55
|
+
})(AssetKind || (AssetKind = {}));
|
|
56
|
+
export function provenancePath(projectRoot) {
|
|
57
|
+
return nodePath.join(projectRoot, '.sharkcraft', 'asset-provenance.jsonl');
|
|
58
|
+
}
|
|
59
|
+
export function ensureProvenanceDir(projectRoot) {
|
|
60
|
+
const dir = nodePath.join(projectRoot, '.sharkcraft');
|
|
61
|
+
if (!existsSync(dir))
|
|
62
|
+
mkdirSync(dir, { recursive: true });
|
|
63
|
+
}
|
|
64
|
+
export function provenanceExists(projectRoot) {
|
|
65
|
+
return existsSync(provenancePath(projectRoot));
|
|
66
|
+
}
|
|
67
|
+
export function readProvenance(projectRoot) {
|
|
68
|
+
const path = provenancePath(projectRoot);
|
|
69
|
+
if (!existsSync(path))
|
|
70
|
+
return [];
|
|
71
|
+
const raw = readFileSync(path, 'utf8');
|
|
72
|
+
const lines = raw.split('\n').filter((l) => l.trim().length > 0);
|
|
73
|
+
const out = [];
|
|
74
|
+
for (const line of lines) {
|
|
75
|
+
try {
|
|
76
|
+
const parsed = JSON.parse(line);
|
|
77
|
+
if (parsed &&
|
|
78
|
+
typeof parsed === 'object' &&
|
|
79
|
+
(parsed.schema === ASSET_PROVENANCE_SCHEMA ||
|
|
80
|
+
parsed.schema === ASSET_PROVENANCE_SCHEMA_V2)) {
|
|
81
|
+
out.push(parsed);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
// Tolerate corrupt lines — the ledger is append-only and lossy
|
|
86
|
+
// entries should not poison the read.
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return out;
|
|
90
|
+
}
|
|
91
|
+
export function recordProvenance(input) {
|
|
92
|
+
const root = input.projectRoot;
|
|
93
|
+
ensureProvenanceDir(root);
|
|
94
|
+
const path = provenancePath(root);
|
|
95
|
+
// Safety: refuse to write anywhere except inside the project root's
|
|
96
|
+
// `.sharkcraft/` directory.
|
|
97
|
+
const expected = nodePath.resolve(root, '.sharkcraft', 'asset-provenance.jsonl');
|
|
98
|
+
const actual = nodePath.resolve(path);
|
|
99
|
+
if (actual !== expected) {
|
|
100
|
+
throw new Error(`refusing to write provenance outside .sharkcraft/: ${actual}`);
|
|
101
|
+
}
|
|
102
|
+
// Bump schema iff the entry carries a relatedSpec back-pointer.
|
|
103
|
+
// Otherwise stay v1 for back-compat. The optional field is the ONLY
|
|
104
|
+
// axis that triggers the bump.
|
|
105
|
+
const usesV2 = input.entry.relatedSpec !== undefined;
|
|
106
|
+
const entry = {
|
|
107
|
+
schema: usesV2 ? ASSET_PROVENANCE_SCHEMA_V2 : ASSET_PROVENANCE_SCHEMA,
|
|
108
|
+
generatedAt: input.generatedAt ?? new Date().toISOString(),
|
|
109
|
+
...input.entry,
|
|
110
|
+
};
|
|
111
|
+
if (existsSync(path)) {
|
|
112
|
+
appendFileSync(path, JSON.stringify(entry) + '\n', 'utf8');
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
writeFileSync(path, JSON.stringify(entry) + '\n', 'utf8');
|
|
116
|
+
}
|
|
117
|
+
return entry;
|
|
118
|
+
}
|
|
119
|
+
export function listProvenance(projectRoot, options = {}) {
|
|
120
|
+
const all = readProvenance(projectRoot);
|
|
121
|
+
let filtered = all;
|
|
122
|
+
if (options.assetKind)
|
|
123
|
+
filtered = filtered.filter((e) => e.assetKind === options.assetKind);
|
|
124
|
+
if (options.assetId)
|
|
125
|
+
filtered = filtered.filter((e) => e.assetId === options.assetId);
|
|
126
|
+
if (options.operation)
|
|
127
|
+
filtered = filtered.filter((e) => e.operation === options.operation);
|
|
128
|
+
// Most-recent first.
|
|
129
|
+
filtered = filtered.slice().sort((a, b) => (a.generatedAt < b.generatedAt ? 1 : -1));
|
|
130
|
+
if (options.limit && options.limit > 0)
|
|
131
|
+
filtered = filtered.slice(0, options.limit);
|
|
132
|
+
return filtered;
|
|
133
|
+
}
|
|
134
|
+
export function showProvenance(projectRoot, assetId, assetKind) {
|
|
135
|
+
const entries = listProvenance(projectRoot, { assetId, assetKind });
|
|
136
|
+
return {
|
|
137
|
+
assetKind: assetKind ? String(assetKind) : entries[0]?.assetKind ?? 'unknown',
|
|
138
|
+
assetId,
|
|
139
|
+
entries,
|
|
140
|
+
...(entries[0] ? { latest: entries[0] } : {}),
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
export function buildProvenanceReport(projectRoot, recentLimit = 10) {
|
|
144
|
+
const path = provenancePath(projectRoot);
|
|
145
|
+
const ledgerExists = existsSync(path);
|
|
146
|
+
const all = ledgerExists ? readProvenance(projectRoot) : [];
|
|
147
|
+
const byKind = {};
|
|
148
|
+
const byOperation = {};
|
|
149
|
+
const bySource = {};
|
|
150
|
+
for (const e of all) {
|
|
151
|
+
byKind[e.assetKind] = (byKind[e.assetKind] ?? 0) + 1;
|
|
152
|
+
byOperation[e.operation] = (byOperation[e.operation] ?? 0) + 1;
|
|
153
|
+
bySource[e.source] = (bySource[e.source] ?? 0) + 1;
|
|
154
|
+
}
|
|
155
|
+
const recent = all
|
|
156
|
+
.slice()
|
|
157
|
+
.sort((a, b) => (a.generatedAt < b.generatedAt ? 1 : -1))
|
|
158
|
+
.slice(0, recentLimit);
|
|
159
|
+
let size = 0;
|
|
160
|
+
if (ledgerExists) {
|
|
161
|
+
try {
|
|
162
|
+
size = statSync(path).size;
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
size = 0;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return {
|
|
169
|
+
schema: 'sharkcraft.asset-provenance-report/v1',
|
|
170
|
+
generatedAt: new Date().toISOString(),
|
|
171
|
+
total: all.length,
|
|
172
|
+
byKind,
|
|
173
|
+
byOperation,
|
|
174
|
+
bySource,
|
|
175
|
+
recent,
|
|
176
|
+
ledgerExists,
|
|
177
|
+
ledgerPath: path,
|
|
178
|
+
ledgerSizeBytes: size,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
export function renderProvenanceMarkdown(report) {
|
|
182
|
+
const lines = [];
|
|
183
|
+
lines.push('# Asset provenance report');
|
|
184
|
+
lines.push('');
|
|
185
|
+
lines.push(`Generated: ${report.generatedAt}`);
|
|
186
|
+
lines.push(`Ledger: \`${report.ledgerPath}\` (${report.ledgerExists ? `${report.ledgerSizeBytes} bytes` : 'missing'})`);
|
|
187
|
+
lines.push(`Total entries: ${report.total}`);
|
|
188
|
+
lines.push('');
|
|
189
|
+
if (!report.ledgerExists) {
|
|
190
|
+
lines.push('> No provenance ledger yet. Run any `shrk knowledge author` / `shrk pack author` preview to start one.');
|
|
191
|
+
lines.push('');
|
|
192
|
+
return lines.join('\n');
|
|
193
|
+
}
|
|
194
|
+
lines.push('## Counts');
|
|
195
|
+
lines.push('');
|
|
196
|
+
for (const [k, n] of Object.entries(report.byKind))
|
|
197
|
+
lines.push(`- kind \`${k}\`: ${n}`);
|
|
198
|
+
for (const [k, n] of Object.entries(report.byOperation))
|
|
199
|
+
lines.push(`- op \`${k}\`: ${n}`);
|
|
200
|
+
for (const [k, n] of Object.entries(report.bySource))
|
|
201
|
+
lines.push(`- source \`${k}\`: ${n}`);
|
|
202
|
+
lines.push('');
|
|
203
|
+
lines.push('## Recent');
|
|
204
|
+
lines.push('');
|
|
205
|
+
for (const e of report.recent) {
|
|
206
|
+
lines.push(`- ${e.generatedAt} \`${e.operation}\` \`${e.assetKind}:${e.assetId}\` ← ${e.source}${e.reason ? ` — ${e.reason}` : ''}`);
|
|
207
|
+
}
|
|
208
|
+
return lines.join('\n');
|
|
209
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export interface IBuildBarrelExportInput {
|
|
2
|
+
/** Project-relative barrel file path (e.g. `libs/x/src/index.ts`). */
|
|
3
|
+
targetPath: string;
|
|
4
|
+
/** Source path `from './lib/y'`. */
|
|
5
|
+
from: string;
|
|
6
|
+
/** Optional explicit symbol export (`export { Foo } from '...'`). */
|
|
7
|
+
symbol?: string;
|
|
8
|
+
/** Insert sorted by `from` (default 'append'). */
|
|
9
|
+
sort?: 'alphabetic' | 'append';
|
|
10
|
+
/** Optional group comment / marker (e.g. `// feature exports`). */
|
|
11
|
+
group?: string;
|
|
12
|
+
/** Idempotency marker substring — when present in the file, the op is a no-op. */
|
|
13
|
+
idempotencyMarker?: string;
|
|
14
|
+
/** Project root for filesystem inspection (default cwd). */
|
|
15
|
+
projectRoot?: string;
|
|
16
|
+
}
|
|
17
|
+
export type BarrelExportOutcome = 'inserted-alphabetic' | 'appended' | 'duplicate-skipped' | 'idempotent-marker-present' | 'conflict-ambiguous-style';
|
|
18
|
+
export interface IBarrelExportOperation {
|
|
19
|
+
schema: 'sharkcraft.barrel-export/v1';
|
|
20
|
+
targetPath: string;
|
|
21
|
+
outcome: BarrelExportOutcome;
|
|
22
|
+
operationDetail: string;
|
|
23
|
+
operation: {
|
|
24
|
+
kind: 'export';
|
|
25
|
+
from: string;
|
|
26
|
+
symbols?: readonly string[];
|
|
27
|
+
ifMissing?: string;
|
|
28
|
+
description?: string;
|
|
29
|
+
} | {
|
|
30
|
+
kind: 'insert-before';
|
|
31
|
+
anchor: string;
|
|
32
|
+
snippet: string;
|
|
33
|
+
ifMissing?: string;
|
|
34
|
+
description?: string;
|
|
35
|
+
} | {
|
|
36
|
+
kind: 'append';
|
|
37
|
+
snippet: string;
|
|
38
|
+
ifMissing?: string;
|
|
39
|
+
description?: string;
|
|
40
|
+
};
|
|
41
|
+
/** When `conflict-ambiguous-style`, surfaces what was inconsistent. */
|
|
42
|
+
conflict?: string;
|
|
43
|
+
}
|
|
44
|
+
export declare function buildBarrelExportOperation(input: IBuildBarrelExportInput): IBarrelExportOperation;
|
|
45
|
+
//# sourceMappingURL=barrel-operations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"barrel-operations.d.ts","sourceRoot":"","sources":["../src/barrel-operations.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,uBAAuB;IACtC,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,IAAI,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAC;IAC/B,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,mBAAmB,GAC3B,qBAAqB,GACrB,UAAU,GACV,mBAAmB,GACnB,2BAA2B,GAC3B,0BAA0B,CAAC;AAE/B,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,6BAA6B,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EACL;QACE,IAAI,EAAE,QAAQ,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GACD;QACE,IAAI,EAAE,eAAe,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GACD;QACE,IAAI,EAAE,QAAQ,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACN,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA+CD,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,uBAAuB,GAC7B,sBAAsB,CA0FxB"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Anchor-aware barrel insert polish.
|
|
3
|
+
*
|
|
4
|
+
* Pure helper that turns a desired barrel mutation into a plan v2 `export`
|
|
5
|
+
* (or `append`) operation with:
|
|
6
|
+
* - de-duplication: existing exports for the same `from` clause win.
|
|
7
|
+
* - alphabetic insertion: when requested, insert the new line in sorted
|
|
8
|
+
* order rather than appending.
|
|
9
|
+
* - explicit idempotency marker: opt-in marker text the caller can use
|
|
10
|
+
* to gate later runs.
|
|
11
|
+
* - ambiguity detection: if the barrel mixes `export *` and
|
|
12
|
+
* `export { ... }` styles for the same `from`, surface a conflict
|
|
13
|
+
* instead of guessing.
|
|
14
|
+
*
|
|
15
|
+
* The output shape is suitable for `ITemplateChange.operation`. Callers
|
|
16
|
+
* compose it into the bigger plan exactly like the existing
|
|
17
|
+
* `add-barrel-export` helper does.
|
|
18
|
+
*/
|
|
19
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
20
|
+
import * as nodePath from 'node:path';
|
|
21
|
+
const SCHEMA = 'sharkcraft.barrel-export/v1';
|
|
22
|
+
function readBarrel(targetPath, projectRoot) {
|
|
23
|
+
const full = nodePath.isAbsolute(targetPath)
|
|
24
|
+
? targetPath
|
|
25
|
+
: nodePath.join(projectRoot, targetPath);
|
|
26
|
+
if (!existsSync(full))
|
|
27
|
+
return null;
|
|
28
|
+
try {
|
|
29
|
+
return readFileSync(full, 'utf8');
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function buildExportLine(from, symbol) {
|
|
36
|
+
if (symbol)
|
|
37
|
+
return `export { ${symbol} } from '${from}';`;
|
|
38
|
+
return `export * from '${from}';`;
|
|
39
|
+
}
|
|
40
|
+
function findFirstSortedAnchor(text, from) {
|
|
41
|
+
const lines = text.split('\n');
|
|
42
|
+
for (const line of lines) {
|
|
43
|
+
const m = /^export\s+\*?\s*(\{[^}]*\}\s*)?from\s+['"]([^'"]+)['"]/.exec(line.trim());
|
|
44
|
+
if (!m)
|
|
45
|
+
continue;
|
|
46
|
+
const existingFrom = m[2] ?? '';
|
|
47
|
+
if (existingFrom > from)
|
|
48
|
+
return line;
|
|
49
|
+
}
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
function detectAmbiguousStyle(text, from) {
|
|
53
|
+
let starCount = 0;
|
|
54
|
+
let namedCount = 0;
|
|
55
|
+
for (const line of text.split('\n')) {
|
|
56
|
+
const m = /^export\s+(?:\*|\{[^}]*\})\s+from\s+['"]([^'"]+)['"]/.exec(line.trim());
|
|
57
|
+
if (!m || m[1] !== from)
|
|
58
|
+
continue;
|
|
59
|
+
if (line.includes('export *'))
|
|
60
|
+
starCount += 1;
|
|
61
|
+
else
|
|
62
|
+
namedCount += 1;
|
|
63
|
+
}
|
|
64
|
+
if (starCount > 0 && namedCount > 0) {
|
|
65
|
+
return `Barrel exports for "${from}" mix \`export *\` and \`export { ... }\` styles.`;
|
|
66
|
+
}
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
export function buildBarrelExportOperation(input) {
|
|
70
|
+
const projectRoot = input.projectRoot ?? process.cwd();
|
|
71
|
+
const text = readBarrel(input.targetPath, projectRoot);
|
|
72
|
+
const exportLine = buildExportLine(input.from, input.symbol);
|
|
73
|
+
const description = `Barrel export for ${input.from}${input.symbol ? ` (${input.symbol})` : ''}`;
|
|
74
|
+
// 1) Idempotency marker — short-circuit if the marker is present.
|
|
75
|
+
if (text && input.idempotencyMarker && text.includes(input.idempotencyMarker)) {
|
|
76
|
+
return {
|
|
77
|
+
schema: SCHEMA,
|
|
78
|
+
targetPath: input.targetPath,
|
|
79
|
+
outcome: 'idempotent-marker-present',
|
|
80
|
+
operationDetail: `Barrel already contains marker "${input.idempotencyMarker}"; no op.`,
|
|
81
|
+
operation: {
|
|
82
|
+
kind: 'append',
|
|
83
|
+
snippet: '',
|
|
84
|
+
ifMissing: input.idempotencyMarker,
|
|
85
|
+
description,
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
// 2) Ambiguous-style conflict — surface, do not auto-pick.
|
|
90
|
+
if (text) {
|
|
91
|
+
const conflict = detectAmbiguousStyle(text, input.from);
|
|
92
|
+
if (conflict) {
|
|
93
|
+
return {
|
|
94
|
+
schema: SCHEMA,
|
|
95
|
+
targetPath: input.targetPath,
|
|
96
|
+
outcome: 'conflict-ambiguous-style',
|
|
97
|
+
operationDetail: conflict,
|
|
98
|
+
operation: {
|
|
99
|
+
kind: 'append',
|
|
100
|
+
snippet: exportLine + '\n',
|
|
101
|
+
description,
|
|
102
|
+
},
|
|
103
|
+
conflict,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
// 3) Existing export → duplicate-skipped.
|
|
107
|
+
if (text.includes(exportLine)) {
|
|
108
|
+
return {
|
|
109
|
+
schema: SCHEMA,
|
|
110
|
+
targetPath: input.targetPath,
|
|
111
|
+
outcome: 'duplicate-skipped',
|
|
112
|
+
operationDetail: `Barrel already exports ${input.from}; skipping.`,
|
|
113
|
+
operation: {
|
|
114
|
+
kind: 'export',
|
|
115
|
+
from: input.from,
|
|
116
|
+
ifMissing: exportLine,
|
|
117
|
+
description,
|
|
118
|
+
...(input.symbol ? { symbols: [input.symbol] } : {}),
|
|
119
|
+
},
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// 4) Alphabetic insert.
|
|
124
|
+
if (input.sort === 'alphabetic' && text) {
|
|
125
|
+
const anchor = findFirstSortedAnchor(text, input.from);
|
|
126
|
+
if (anchor) {
|
|
127
|
+
const snippet = (input.group ? `// ${input.group}\n` : '') + exportLine + '\n';
|
|
128
|
+
return {
|
|
129
|
+
schema: SCHEMA,
|
|
130
|
+
targetPath: input.targetPath,
|
|
131
|
+
outcome: 'inserted-alphabetic',
|
|
132
|
+
operationDetail: `Inserted before "${anchor}".`,
|
|
133
|
+
operation: {
|
|
134
|
+
kind: 'insert-before',
|
|
135
|
+
anchor,
|
|
136
|
+
snippet,
|
|
137
|
+
ifMissing: exportLine,
|
|
138
|
+
description,
|
|
139
|
+
},
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// 5) Append fallback (default).
|
|
144
|
+
const snippet = (input.group ? `// ${input.group}\n` : '') + exportLine + '\n';
|
|
145
|
+
return {
|
|
146
|
+
schema: SCHEMA,
|
|
147
|
+
targetPath: input.targetPath,
|
|
148
|
+
outcome: 'appended',
|
|
149
|
+
operationDetail: 'Appended to end of barrel.',
|
|
150
|
+
operation: {
|
|
151
|
+
kind: 'export',
|
|
152
|
+
from: input.from,
|
|
153
|
+
ifMissing: exportLine,
|
|
154
|
+
description,
|
|
155
|
+
...(input.symbol ? { symbols: [input.symbol] } : {}),
|
|
156
|
+
},
|
|
157
|
+
};
|
|
158
|
+
void snippet;
|
|
159
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Changed-only boundary filter.
|
|
3
|
+
*
|
|
4
|
+
* The boundary engine itself is unchanged. This module takes the raw
|
|
5
|
+
* violations list from `evaluateBoundaries` (or the polyglot equivalent) +
|
|
6
|
+
* a set of changed files, and returns:
|
|
7
|
+
* - includedViolations: violations whose origin file *or* the file that
|
|
8
|
+
* introduces the import edge is in the changed set.
|
|
9
|
+
* - ignoredLegacyCount: violations filtered out because no changed file
|
|
10
|
+
* touches them.
|
|
11
|
+
* - ignoredLegacyByRule: ignored counts grouped by ruleId.
|
|
12
|
+
* - changedFiles: the resolved changed-file set (project-relative).
|
|
13
|
+
*
|
|
14
|
+
* The engine never changes the violation contents — only filters.
|
|
15
|
+
*/
|
|
16
|
+
export declare enum ChangedScopeMode {
|
|
17
|
+
ChangedOnly = "changed-only",
|
|
18
|
+
Since = "since",
|
|
19
|
+
Staged = "staged",
|
|
20
|
+
Files = "files"
|
|
21
|
+
}
|
|
22
|
+
export interface IChangedScopeOptions {
|
|
23
|
+
/** Project root used to anchor relative paths. */
|
|
24
|
+
projectRoot: string;
|
|
25
|
+
/** When provided, `git diff <ref>` selects the changed file set. */
|
|
26
|
+
since?: string;
|
|
27
|
+
/** When true, only staged (index) files. */
|
|
28
|
+
staged?: boolean;
|
|
29
|
+
/** Explicit file list (project-relative, '/'-normalised). */
|
|
30
|
+
files?: ReadonlyArray<string>;
|
|
31
|
+
/** When true, include the unstaged working tree changes too. */
|
|
32
|
+
includeWorktree?: boolean;
|
|
33
|
+
}
|
|
34
|
+
export interface IBoundaryLikeViolation {
|
|
35
|
+
ruleId: string;
|
|
36
|
+
/** Either `file` (TS engine) or `fromFile` (polyglot engine). */
|
|
37
|
+
file?: string;
|
|
38
|
+
fromFile?: string;
|
|
39
|
+
}
|
|
40
|
+
export interface IChangedScopeFilterResult<TViolation extends IBoundaryLikeViolation> {
|
|
41
|
+
mode: ChangedScopeMode;
|
|
42
|
+
changedFiles: ReadonlyArray<string>;
|
|
43
|
+
includedViolations: ReadonlyArray<TViolation>;
|
|
44
|
+
ignoredLegacyCount: number;
|
|
45
|
+
ignoredLegacyByRule: Readonly<Record<string, number>>;
|
|
46
|
+
}
|
|
47
|
+
export declare function resolveChangedFiles(opts: IChangedScopeOptions): {
|
|
48
|
+
mode: ChangedScopeMode;
|
|
49
|
+
files: string[];
|
|
50
|
+
};
|
|
51
|
+
export declare function filterViolationsToChangedScope<TViolation extends IBoundaryLikeViolation>(violations: ReadonlyArray<TViolation>, opts: IChangedScopeOptions): IChangedScopeFilterResult<TViolation>;
|
|
52
|
+
export interface IChangedBoundaryReport {
|
|
53
|
+
schema: 'sharkcraft.changed-boundary-report/v1';
|
|
54
|
+
mode: ChangedScopeMode;
|
|
55
|
+
changedFiles: ReadonlyArray<string>;
|
|
56
|
+
totalViolations: number;
|
|
57
|
+
includedViolations: ReadonlyArray<IBoundaryLikeViolation>;
|
|
58
|
+
ignoredLegacyCount: number;
|
|
59
|
+
ignoredLegacyByRule: Readonly<Record<string, number>>;
|
|
60
|
+
}
|
|
61
|
+
export declare function buildChangedBoundaryReport<TViolation extends IBoundaryLikeViolation>(violations: ReadonlyArray<TViolation>, opts: IChangedScopeOptions): IChangedBoundaryReport;
|
|
62
|
+
//# sourceMappingURL=boundaries-changed-only.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boundaries-changed-only.d.ts","sourceRoot":"","sources":["../src/boundaries-changed-only.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,oBAAY,gBAAgB;IAC1B,WAAW,iBAAiB;IAC5B,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9B,gEAAgE;IAChE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB,CAAC,UAAU,SAAS,sBAAsB;IAClF,IAAI,EAAE,gBAAgB,CAAC;IACvB,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACpC,kBAAkB,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC9C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACvD;AAWD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG;IAC/D,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAkBA;AAED,wBAAgB,8BAA8B,CAAC,UAAU,SAAS,sBAAsB,EACtF,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,EACrC,IAAI,EAAE,oBAAoB,GACzB,yBAAyB,CAAC,UAAU,CAAC,CAiCvC;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,uCAAuC,CAAC;IAChD,IAAI,EAAE,gBAAgB,CAAC;IACvB,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAC1D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACvD;AAED,wBAAgB,0BAA0B,CAAC,UAAU,SAAS,sBAAsB,EAClF,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,EACrC,IAAI,EAAE,oBAAoB,GACzB,sBAAsB,CAWxB"}
|