@shrkcrft/inspector 0.1.0-alpha.1
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 +57 -0
- package/dist/area-map.d.ts.map +1 -0
- package/dist/area-map.js +214 -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 +382 -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 +38 -0
- package/dist/git-helpers.d.ts.map +1 -0
- package/dist/git-helpers.js +173 -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 +422 -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 +224 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +234 -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-merge.d.ts +71 -0
- package/dist/onboarding-drafts-merge.d.ts.map +1 -0
- package/dist/onboarding-drafts-merge.js +174 -0
- package/dist/onboarding-drafts.d.ts +42 -0
- package/dist/onboarding-drafts.d.ts.map +1 -0
- package/dist/onboarding-drafts.js +268 -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 +73 -0
- package/dist/pack-symbol-compat.d.ts.map +1 -0
- package/dist/pack-symbol-compat.js +519 -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 +81 -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 +65 -0
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
import { mkdirSync, readFileSync, writeFileSync, statSync } from 'node:fs';
|
|
2
|
+
import { tmpdir } from 'node:os';
|
|
3
|
+
import * as nodePath from 'node:path';
|
|
4
|
+
import { getDemoScript, listDemoScenarios, renderDemoScriptShell, } from "./demo-script.js";
|
|
5
|
+
export const DEMO_PACKAGE_SCHEMA = 'sharkcraft.demo-package/v1';
|
|
6
|
+
function resolveScenarios(scope) {
|
|
7
|
+
if (scope === 'all')
|
|
8
|
+
return [...listDemoScenarios()];
|
|
9
|
+
return [scope];
|
|
10
|
+
}
|
|
11
|
+
function readme(scenarios) {
|
|
12
|
+
const lines = [];
|
|
13
|
+
lines.push('# SharkCraft demo package');
|
|
14
|
+
lines.push('');
|
|
15
|
+
lines.push('Generated by `shrk demo package`. Drop this folder onto another machine,');
|
|
16
|
+
lines.push('read `expected-commands.md`, then run `demo.sh` after reviewing it.');
|
|
17
|
+
lines.push('');
|
|
18
|
+
lines.push('## Scenarios');
|
|
19
|
+
lines.push('');
|
|
20
|
+
for (const s of scenarios) {
|
|
21
|
+
lines.push(`### ${s.scenario}`);
|
|
22
|
+
lines.push('');
|
|
23
|
+
lines.push(s.description);
|
|
24
|
+
lines.push('');
|
|
25
|
+
lines.push(`See \`scenario-${s.scenario}.sh\` for the runnable transcript.`);
|
|
26
|
+
lines.push('');
|
|
27
|
+
}
|
|
28
|
+
lines.push('## Files in this package');
|
|
29
|
+
lines.push('');
|
|
30
|
+
lines.push('- `README.md` — this file');
|
|
31
|
+
lines.push('- `demo.sh` — one-shot script for the included scenarios');
|
|
32
|
+
lines.push('- `expected-commands.md` — what each script will run');
|
|
33
|
+
lines.push('- `sample-output-notes.md` — what to expect from the output');
|
|
34
|
+
for (const s of scenarios) {
|
|
35
|
+
lines.push(`- \`scenario-${s.scenario}.sh\``);
|
|
36
|
+
}
|
|
37
|
+
lines.push('');
|
|
38
|
+
lines.push('## Safety');
|
|
39
|
+
lines.push('');
|
|
40
|
+
lines.push('- No script executes itself. SharkCraft only generates these files.');
|
|
41
|
+
lines.push('- The CLI is the only write path; the MCP server stays read-only.');
|
|
42
|
+
lines.push('- Replace `bun` with your runtime if you are not using Bun.');
|
|
43
|
+
return lines.join('\n') + '\n';
|
|
44
|
+
}
|
|
45
|
+
function combinedDemoScript(scenarios) {
|
|
46
|
+
const lines = [];
|
|
47
|
+
lines.push('#!/usr/bin/env bash');
|
|
48
|
+
lines.push('# SharkCraft demo bundle — generated by `shrk demo package`.');
|
|
49
|
+
lines.push('# Each scenario is delegated to its scenario-<name>.sh file so you can');
|
|
50
|
+
lines.push('# run them individually or as a group. Nothing destructive runs here.');
|
|
51
|
+
lines.push('set -euo pipefail');
|
|
52
|
+
lines.push('');
|
|
53
|
+
lines.push('cd "$(dirname "$0")"');
|
|
54
|
+
lines.push('');
|
|
55
|
+
for (const s of scenarios) {
|
|
56
|
+
lines.push(`echo "=== scenario: ${s.scenario} ==="`);
|
|
57
|
+
lines.push(`./scenario-${s.scenario}.sh`);
|
|
58
|
+
lines.push('');
|
|
59
|
+
}
|
|
60
|
+
lines.push('echo "All scenarios finished."');
|
|
61
|
+
return lines.join('\n') + '\n';
|
|
62
|
+
}
|
|
63
|
+
function expectedCommands(scenarios) {
|
|
64
|
+
const lines = [];
|
|
65
|
+
lines.push('# Expected commands');
|
|
66
|
+
lines.push('');
|
|
67
|
+
lines.push('This document lists every command the demo scripts run. Inspect it before');
|
|
68
|
+
lines.push('executing `demo.sh` so the recipient knows exactly what to expect.');
|
|
69
|
+
lines.push('');
|
|
70
|
+
for (const s of scenarios) {
|
|
71
|
+
lines.push(`## ${s.scenario} — ${s.title}`);
|
|
72
|
+
lines.push('');
|
|
73
|
+
lines.push(`> ${s.description}`);
|
|
74
|
+
lines.push('');
|
|
75
|
+
let i = 1;
|
|
76
|
+
for (const step of s.steps) {
|
|
77
|
+
lines.push(`${i}. **${step.title}**`);
|
|
78
|
+
for (const c of step.commands)
|
|
79
|
+
lines.push(` - \`${c}\``);
|
|
80
|
+
if (step.notes)
|
|
81
|
+
lines.push(` - _note: ${step.notes}_`);
|
|
82
|
+
if (step.destructive)
|
|
83
|
+
lines.push(' - ⚠ destructive — review before running.');
|
|
84
|
+
i += 1;
|
|
85
|
+
}
|
|
86
|
+
lines.push('');
|
|
87
|
+
}
|
|
88
|
+
return lines.join('\n') + '\n';
|
|
89
|
+
}
|
|
90
|
+
function sampleOutputNotes(scenarios) {
|
|
91
|
+
const lines = [];
|
|
92
|
+
lines.push('# Sample output notes');
|
|
93
|
+
lines.push('');
|
|
94
|
+
lines.push('Quick read of what to expect from each scenario.');
|
|
95
|
+
lines.push('');
|
|
96
|
+
for (const s of scenarios) {
|
|
97
|
+
lines.push(`## ${s.scenario}`);
|
|
98
|
+
lines.push('');
|
|
99
|
+
lines.push(`Step count: ${s.steps.length}`);
|
|
100
|
+
lines.push('');
|
|
101
|
+
lines.push('Expected artifacts:');
|
|
102
|
+
for (const step of s.steps) {
|
|
103
|
+
for (const c of step.commands) {
|
|
104
|
+
const match = /--output\s+([^\s]+)|>\s*([^\s]+)|--output-dir\s+([^\s]+)/.exec(c);
|
|
105
|
+
if (match) {
|
|
106
|
+
const target = match[1] ?? match[2] ?? match[3];
|
|
107
|
+
if (target)
|
|
108
|
+
lines.push(`- \`${target}\``);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
lines.push('');
|
|
113
|
+
}
|
|
114
|
+
lines.push('Nothing here is published or posted to a third party by default — all');
|
|
115
|
+
lines.push('artifacts stay under `.sharkcraft/` or the path you pass.');
|
|
116
|
+
return lines.join('\n') + '\n';
|
|
117
|
+
}
|
|
118
|
+
function destructiveCheck(scenarios) {
|
|
119
|
+
const issues = [];
|
|
120
|
+
for (const s of scenarios) {
|
|
121
|
+
for (const step of s.steps) {
|
|
122
|
+
if (step.destructive) {
|
|
123
|
+
issues.push(`scenario ${s.scenario} step "${step.title}" is marked destructive`);
|
|
124
|
+
}
|
|
125
|
+
for (const c of step.commands) {
|
|
126
|
+
if (/\brm\s+-rf\b/.test(c)) {
|
|
127
|
+
issues.push(`scenario ${s.scenario} command contains rm -rf: ${c}`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return issues;
|
|
133
|
+
}
|
|
134
|
+
export const DEMO_PACKAGE_VALIDATE_SCHEMA = 'sharkcraft.demo-package-validate/v1';
|
|
135
|
+
function makeTempDemoDir() {
|
|
136
|
+
return nodePath.join(tmpdir(), `sharkcraft-demo-validate-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`);
|
|
137
|
+
}
|
|
138
|
+
const DESTRUCTIVE_LINE_RE = [/\brm\s+-rf\b/, /\bdd\s+if=/, /\bmkfs\b/];
|
|
139
|
+
function parseExpectedCommands(body) {
|
|
140
|
+
const cmds = [];
|
|
141
|
+
for (const raw of body.split(/\r?\n/)) {
|
|
142
|
+
const m = /-\s+`([^`]+)`/.exec(raw);
|
|
143
|
+
if (m && m[1]?.includes('shrk'))
|
|
144
|
+
cmds.push(m[1].trim());
|
|
145
|
+
}
|
|
146
|
+
return cmds;
|
|
147
|
+
}
|
|
148
|
+
export function validateDemoPackage(input) {
|
|
149
|
+
const ownsDir = !input.outputDir;
|
|
150
|
+
const outputDir = input.outputDir ?? makeTempDemoDir();
|
|
151
|
+
if (ownsDir) {
|
|
152
|
+
buildDemoPackage({ outputDir, scope: input.scope });
|
|
153
|
+
}
|
|
154
|
+
const findings = [];
|
|
155
|
+
const expectedFile = nodePath.join(outputDir, 'expected-commands.md');
|
|
156
|
+
const demoSh = nodePath.join(outputDir, 'demo.sh');
|
|
157
|
+
let body = '';
|
|
158
|
+
try {
|
|
159
|
+
body = readFileSync(expectedFile, 'utf8');
|
|
160
|
+
}
|
|
161
|
+
catch {
|
|
162
|
+
findings.push({
|
|
163
|
+
code: 'expected-commands-missing',
|
|
164
|
+
severity: 'error',
|
|
165
|
+
message: `Missing expected-commands.md in ${outputDir}`,
|
|
166
|
+
file: expectedFile,
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
const commands = body ? parseExpectedCommands(body) : [];
|
|
170
|
+
if (input.knownCommands && input.knownCommands.length > 0) {
|
|
171
|
+
for (const cmd of commands) {
|
|
172
|
+
let known = false;
|
|
173
|
+
for (const k of input.knownCommands) {
|
|
174
|
+
if (k === cmd || k.startsWith(cmd) || cmd.startsWith(k)) {
|
|
175
|
+
known = true;
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
if (!known) {
|
|
180
|
+
findings.push({
|
|
181
|
+
code: 'unknown-shrk-command',
|
|
182
|
+
severity: 'warning',
|
|
183
|
+
message: `expected-commands.md references "${cmd}" which is not in the command catalog.`,
|
|
184
|
+
file: expectedFile,
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
// Scan each scenario shell + demo.sh for destructive commands.
|
|
190
|
+
const scenarios = resolveScenarios(input.scope);
|
|
191
|
+
for (const s of scenarios) {
|
|
192
|
+
const file = nodePath.join(outputDir, `scenario-${s}.sh`);
|
|
193
|
+
let stat;
|
|
194
|
+
try {
|
|
195
|
+
stat = statSync(file);
|
|
196
|
+
}
|
|
197
|
+
catch {
|
|
198
|
+
continue;
|
|
199
|
+
}
|
|
200
|
+
if ((stat.mode & 0o111) === 0) {
|
|
201
|
+
findings.push({
|
|
202
|
+
code: 'script-not-executable',
|
|
203
|
+
severity: 'warning',
|
|
204
|
+
message: `scenario-${s}.sh is not executable.`,
|
|
205
|
+
file,
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
let scriptBody = '';
|
|
209
|
+
try {
|
|
210
|
+
scriptBody = readFileSync(file, 'utf8');
|
|
211
|
+
}
|
|
212
|
+
catch {
|
|
213
|
+
continue;
|
|
214
|
+
}
|
|
215
|
+
const lines = scriptBody.split(/\r?\n/);
|
|
216
|
+
for (let i = 0; i < lines.length; i += 1) {
|
|
217
|
+
for (const re of DESTRUCTIVE_LINE_RE) {
|
|
218
|
+
if (re.test(lines[i])) {
|
|
219
|
+
findings.push({
|
|
220
|
+
code: 'destructive-command',
|
|
221
|
+
severity: 'error',
|
|
222
|
+
message: `scenario-${s}.sh contains a destructive command on line ${i + 1}.`,
|
|
223
|
+
file,
|
|
224
|
+
line: i + 1,
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
try {
|
|
231
|
+
const stat = statSync(demoSh);
|
|
232
|
+
if ((stat.mode & 0o111) === 0) {
|
|
233
|
+
findings.push({
|
|
234
|
+
code: 'script-not-executable',
|
|
235
|
+
severity: 'warning',
|
|
236
|
+
message: 'demo.sh is not executable.',
|
|
237
|
+
file: demoSh,
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
findings.push({
|
|
243
|
+
code: 'demo-sh-missing',
|
|
244
|
+
severity: 'error',
|
|
245
|
+
message: 'demo.sh missing from generated package.',
|
|
246
|
+
file: demoSh,
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
const ok = findings.filter((f) => f.severity === 'error').length === 0;
|
|
250
|
+
return {
|
|
251
|
+
schema: DEMO_PACKAGE_VALIDATE_SCHEMA,
|
|
252
|
+
generatedAt: new Date().toISOString(),
|
|
253
|
+
outputDir,
|
|
254
|
+
scenariosChecked: scenarios,
|
|
255
|
+
commandsFound: commands,
|
|
256
|
+
findings,
|
|
257
|
+
ok,
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
export function renderDemoPackageValidateText(report) {
|
|
261
|
+
const lines = [];
|
|
262
|
+
lines.push('# Demo package validation');
|
|
263
|
+
lines.push(`OK: ${report.ok ? 'yes' : 'no'} · scenarios: ${report.scenariosChecked.join(', ')}`);
|
|
264
|
+
lines.push(`Commands referenced: ${report.commandsFound.length}`);
|
|
265
|
+
if (report.findings.length === 0) {
|
|
266
|
+
lines.push('No findings.');
|
|
267
|
+
}
|
|
268
|
+
else {
|
|
269
|
+
lines.push('Findings:');
|
|
270
|
+
for (const f of report.findings) {
|
|
271
|
+
const loc = f.file ? ` (${f.file}${f.line ? `:${f.line}` : ''})` : '';
|
|
272
|
+
lines.push(` [${f.severity}] ${f.code}: ${f.message}${loc}`);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
return lines.join('\n') + '\n';
|
|
276
|
+
}
|
|
277
|
+
export function buildDemoPackage(input) {
|
|
278
|
+
const scenarios = resolveScenarios(input.scope);
|
|
279
|
+
const scripts = scenarios.map((s) => getDemoScript(s));
|
|
280
|
+
// Safety check: refuse to emit anything if a destructive marker is found.
|
|
281
|
+
const dangerous = destructiveCheck(scripts);
|
|
282
|
+
if (dangerous.length > 0) {
|
|
283
|
+
throw new Error(`Demo package refused — destructive content detected:\n${dangerous.join('\n')}`);
|
|
284
|
+
}
|
|
285
|
+
mkdirSync(input.outputDir, { recursive: true });
|
|
286
|
+
const files = [];
|
|
287
|
+
const write = (name, body, description, mode) => {
|
|
288
|
+
const full = nodePath.join(input.outputDir, name);
|
|
289
|
+
writeFileSync(full, body, mode ? { mode } : 'utf8');
|
|
290
|
+
files.push({ path: full, bytes: Buffer.byteLength(body, 'utf8'), description });
|
|
291
|
+
};
|
|
292
|
+
write('README.md', readme(scripts), 'Demo package overview');
|
|
293
|
+
write('expected-commands.md', expectedCommands(scripts), 'List of every command each scenario will run');
|
|
294
|
+
write('sample-output-notes.md', sampleOutputNotes(scripts), 'What to expect from each scenario');
|
|
295
|
+
for (const s of scripts) {
|
|
296
|
+
write(`scenario-${s.scenario}.sh`, renderDemoScriptShell(s), s.title, 0o755);
|
|
297
|
+
}
|
|
298
|
+
write('demo.sh', combinedDemoScript(scripts), 'One-shot driver for the included scenarios', 0o755);
|
|
299
|
+
return {
|
|
300
|
+
schema: DEMO_PACKAGE_SCHEMA,
|
|
301
|
+
outputDir: nodePath.resolve(input.outputDir),
|
|
302
|
+
scenarios: scripts.map((s) => s.scenario),
|
|
303
|
+
files,
|
|
304
|
+
};
|
|
305
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare const DEMO_SCRIPT_SCHEMA = "sharkcraft.demo-script/v1";
|
|
2
|
+
export declare enum DemoScenario {
|
|
3
|
+
UnconfiguredRepo = "unconfigured-repo",
|
|
4
|
+
PlatformPlugin = "platform-plugin",
|
|
5
|
+
PrReview = "pr-review",
|
|
6
|
+
Governance = "governance"
|
|
7
|
+
}
|
|
8
|
+
export interface IDemoScriptStep {
|
|
9
|
+
title: string;
|
|
10
|
+
commands: readonly string[];
|
|
11
|
+
notes?: string;
|
|
12
|
+
/** True when the step has potential side-effects beyond .sharkcraft. */
|
|
13
|
+
destructive?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface IDemoScript {
|
|
16
|
+
schema: typeof DEMO_SCRIPT_SCHEMA;
|
|
17
|
+
scenario: DemoScenario;
|
|
18
|
+
title: string;
|
|
19
|
+
description: string;
|
|
20
|
+
steps: readonly IDemoScriptStep[];
|
|
21
|
+
}
|
|
22
|
+
export declare function listDemoScenarios(): readonly DemoScenario[];
|
|
23
|
+
export declare function getDemoScript(scenario: DemoScenario): IDemoScript;
|
|
24
|
+
export declare function renderDemoScriptShell(script: IDemoScript): string;
|
|
25
|
+
//# sourceMappingURL=demo-script.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demo-script.d.ts","sourceRoot":"","sources":["../src/demo-script.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,8BAA8B,CAAC;AAE9D,oBAAY,YAAY;IACtB,gBAAgB,sBAAsB;IACtC,cAAc,oBAAoB;IAClC,QAAQ,cAAc;IACtB,UAAU,eAAe;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,kBAAkB,CAAC;IAClC,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,SAAS,eAAe,EAAE,CAAC;CACnC;AAsKD,wBAAgB,iBAAiB,IAAI,SAAS,YAAY,EAAE,CAE3D;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,YAAY,GAAG,WAAW,CAEjE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAsBjE"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
export const DEMO_SCRIPT_SCHEMA = 'sharkcraft.demo-script/v1';
|
|
2
|
+
export var DemoScenario;
|
|
3
|
+
(function (DemoScenario) {
|
|
4
|
+
DemoScenario["UnconfiguredRepo"] = "unconfigured-repo";
|
|
5
|
+
DemoScenario["PlatformPlugin"] = "platform-plugin";
|
|
6
|
+
DemoScenario["PrReview"] = "pr-review";
|
|
7
|
+
DemoScenario["Governance"] = "governance";
|
|
8
|
+
})(DemoScenario || (DemoScenario = {}));
|
|
9
|
+
const SCRIPTS = {
|
|
10
|
+
[DemoScenario.UnconfiguredRepo]: {
|
|
11
|
+
schema: DEMO_SCRIPT_SCHEMA,
|
|
12
|
+
scenario: DemoScenario.UnconfiguredRepo,
|
|
13
|
+
title: 'Onboard an unconfigured repo end-to-end',
|
|
14
|
+
description: 'Walks SharkCraft from "no sharkcraft/ folder" through inferred drafts, adoption, brief, dev session, and the report site.',
|
|
15
|
+
steps: [
|
|
16
|
+
{
|
|
17
|
+
title: 'Inspect the repo',
|
|
18
|
+
commands: ['shrk doctor', 'shrk inspect --json'],
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
title: 'Run onboarding (dry-run by default)',
|
|
22
|
+
commands: ['shrk onboard', 'shrk onboard adopt'],
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
title: 'Materialise advisory drafts',
|
|
26
|
+
commands: ['shrk onboard --write-drafts'],
|
|
27
|
+
notes: 'Writes only under sharkcraft/onboarding/ — never overwrites live config.',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
title: 'Infer constructs from the codebase',
|
|
31
|
+
commands: ['shrk constructs infer', 'shrk constructs infer --write-drafts'],
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
title: 'Build a construct adoption plan',
|
|
35
|
+
commands: ['shrk constructs adopt', 'shrk constructs adopt --write-patch'],
|
|
36
|
+
notes: 'Writes only under sharkcraft/construct-drafts/adoption/.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
title: 'Render an agent brief',
|
|
40
|
+
commands: [
|
|
41
|
+
'shrk brief "explore the codebase" --mode full --output .sharkcraft/briefs/onboard.md',
|
|
42
|
+
],
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
title: 'Start a dev session',
|
|
46
|
+
commands: ['shrk dev start "explore the codebase" --brief'],
|
|
47
|
+
notes: 'Session metadata only — no source writes.',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
title: 'Generate a static report site',
|
|
51
|
+
commands: ['shrk report site --output .sharkcraft/reports/site --manifest'],
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
},
|
|
55
|
+
[DemoScenario.PlatformPlugin]: {
|
|
56
|
+
schema: DEMO_SCRIPT_SCHEMA,
|
|
57
|
+
scenario: DemoScenario.PlatformPlugin,
|
|
58
|
+
title: 'Add a plugin to a platform-adopter project',
|
|
59
|
+
description: 'Uses a pack-contributed plugin construct + playbook + lifecycle profile. SharkCraft does not embed any platform-specific assumptions; everything comes from the pack.',
|
|
60
|
+
steps: [
|
|
61
|
+
{
|
|
62
|
+
title: 'Confirm packs loaded',
|
|
63
|
+
commands: ['shrk packs doctor --require-signatures'],
|
|
64
|
+
notes: 'Set SHARKCRAFT_PACK_SECRET so signature verification can run.',
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
title: 'Inspect the plugin construct contributed by the pack',
|
|
68
|
+
commands: ['shrk constructs list --filter plugin', 'shrk constructs get <pack>.plugin'],
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
title: 'Walk the add-plugin playbook',
|
|
72
|
+
commands: [
|
|
73
|
+
'shrk playbooks recommend "add a profile plugin"',
|
|
74
|
+
'shrk playbooks list --filter plugin',
|
|
75
|
+
],
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
title: 'Use the lifecycle profile (rename / remove preview)',
|
|
79
|
+
commands: [
|
|
80
|
+
'shrk plugin lifecycle profiles',
|
|
81
|
+
'shrk plugin lifecycle list --profile <id>',
|
|
82
|
+
'shrk plugin rename old new --profile <id> --dry-run',
|
|
83
|
+
],
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
title: 'Render a chunked agent brief',
|
|
87
|
+
commands: [
|
|
88
|
+
'shrk brief "create a user profile plugin" --mode implementation --chunk --output-dir .sharkcraft/briefs/profile-plugin',
|
|
89
|
+
],
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
title: 'Start a dev session and let an agent take it from here',
|
|
93
|
+
commands: ['shrk dev start "create a user profile plugin" --brief'],
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
},
|
|
97
|
+
[DemoScenario.PrReview]: {
|
|
98
|
+
schema: DEMO_SCRIPT_SCHEMA,
|
|
99
|
+
scenario: DemoScenario.PrReview,
|
|
100
|
+
title: 'PR review with impact, policy, and review packet',
|
|
101
|
+
description: 'Run the review surface on a feature branch: impact, review packet, and a self-contained HTML.',
|
|
102
|
+
steps: [
|
|
103
|
+
{
|
|
104
|
+
title: 'Compute impact since main',
|
|
105
|
+
commands: [
|
|
106
|
+
'shrk impact --since origin/main --format html --output .sharkcraft/reports/impact.html',
|
|
107
|
+
'shrk impact --since origin/main --format json > .sharkcraft/reports/impact.json',
|
|
108
|
+
],
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
title: 'Build the review packet (v3)',
|
|
112
|
+
commands: [
|
|
113
|
+
'shrk review packet --v3 --since origin/main --json > /tmp/review.json',
|
|
114
|
+
'shrk review render-comment /tmp/review.json --output .sharkcraft/reports/review.md',
|
|
115
|
+
],
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
title: 'Run policy on the diff',
|
|
119
|
+
commands: [
|
|
120
|
+
'shrk policy run --json > .sharkcraft/reports/policy.json',
|
|
121
|
+
'shrk policy snapshot --all --gate || true',
|
|
122
|
+
],
|
|
123
|
+
notes: '|| true keeps the demo running even if snapshots drift.',
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
title: 'Generate a portable static site',
|
|
127
|
+
commands: [
|
|
128
|
+
'shrk report site --review /tmp/review.json --impact .sharkcraft/reports/impact.json --output .sharkcraft/reports/site',
|
|
129
|
+
],
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
},
|
|
133
|
+
[DemoScenario.Governance]: {
|
|
134
|
+
schema: DEMO_SCRIPT_SCHEMA,
|
|
135
|
+
scenario: DemoScenario.Governance,
|
|
136
|
+
title: 'Governance loop',
|
|
137
|
+
description: 'Quality gate, policy snapshots, cross-bundle replay, baseline history, command safety matrix.',
|
|
138
|
+
steps: [
|
|
139
|
+
{
|
|
140
|
+
title: 'Run the quality gate',
|
|
141
|
+
commands: ['shrk quality --strict --ci'],
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
title: 'Run the policy engine + snapshots',
|
|
145
|
+
commands: [
|
|
146
|
+
'shrk policy run --json > .sharkcraft/reports/policy.json',
|
|
147
|
+
'shrk policy snapshot --all --gate',
|
|
148
|
+
],
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
title: 'Replay every bundle',
|
|
152
|
+
commands: ['shrk bundle replay --all --report --html'],
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
title: 'Compare quality baselines',
|
|
156
|
+
commands: [
|
|
157
|
+
'shrk quality baseline history',
|
|
158
|
+
'shrk quality baseline diff latest previous --json',
|
|
159
|
+
],
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
title: 'Print the command safety matrix',
|
|
163
|
+
commands: ['shrk commands matrix --format markdown > .sharkcraft/reports/command-matrix.md'],
|
|
164
|
+
},
|
|
165
|
+
],
|
|
166
|
+
},
|
|
167
|
+
};
|
|
168
|
+
export function listDemoScenarios() {
|
|
169
|
+
return Object.values(DemoScenario);
|
|
170
|
+
}
|
|
171
|
+
export function getDemoScript(scenario) {
|
|
172
|
+
return SCRIPTS[scenario];
|
|
173
|
+
}
|
|
174
|
+
export function renderDemoScriptShell(script) {
|
|
175
|
+
const lines = [];
|
|
176
|
+
lines.push('#!/usr/bin/env bash');
|
|
177
|
+
lines.push(`# SharkCraft demo — ${script.title}`);
|
|
178
|
+
lines.push(`# Scenario: ${script.scenario}`);
|
|
179
|
+
lines.push('# This script is never executed by SharkCraft. Review and run manually.');
|
|
180
|
+
lines.push('# Re-run with --output to save it as a runnable script.');
|
|
181
|
+
lines.push('set -euo pipefail');
|
|
182
|
+
lines.push('');
|
|
183
|
+
let i = 1;
|
|
184
|
+
for (const step of script.steps) {
|
|
185
|
+
lines.push(`# Step ${i}: ${step.title}`);
|
|
186
|
+
if (step.notes)
|
|
187
|
+
lines.push(`# ${step.notes}`);
|
|
188
|
+
if (step.destructive)
|
|
189
|
+
lines.push('# ⚠ destructive — review before running.');
|
|
190
|
+
for (const c of step.commands) {
|
|
191
|
+
lines.push(`${c}`);
|
|
192
|
+
}
|
|
193
|
+
lines.push('');
|
|
194
|
+
i += 1;
|
|
195
|
+
}
|
|
196
|
+
lines.push('echo "Demo complete."');
|
|
197
|
+
return lines.join('\n') + '\n';
|
|
198
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Demo-workflow generator. Renders ready-to-run CI workflow files that exercise
|
|
3
|
+
* SharkCraft's PR-review surface (impact + review packet + report site). The
|
|
4
|
+
* generator never executes anything and never makes external network calls.
|
|
5
|
+
* Workflows it emits never publish or post to PRs unless the human explicitly
|
|
6
|
+
* uncomments the optional steps.
|
|
7
|
+
*/
|
|
8
|
+
export declare const DEMO_WORKFLOW_SCHEMA = "sharkcraft.demo-workflow/v1";
|
|
9
|
+
export type DemoWorkflowKind = 'pr-review';
|
|
10
|
+
export type DemoWorkflowProvider = 'github-actions' | 'gitlab' | 'bitbucket';
|
|
11
|
+
export interface IDemoWorkflowOptions {
|
|
12
|
+
bunVersion?: string;
|
|
13
|
+
/** Reserved — currently only `pr-review` is supported. */
|
|
14
|
+
kind?: DemoWorkflowKind;
|
|
15
|
+
}
|
|
16
|
+
export interface IDemoWorkflow {
|
|
17
|
+
schema: typeof DEMO_WORKFLOW_SCHEMA;
|
|
18
|
+
kind: DemoWorkflowKind;
|
|
19
|
+
provider: DemoWorkflowProvider;
|
|
20
|
+
/** Suggested workflow file path. */
|
|
21
|
+
defaultOutputPath: string;
|
|
22
|
+
body: string;
|
|
23
|
+
/** Short summary of what the workflow does. */
|
|
24
|
+
notes: readonly string[];
|
|
25
|
+
}
|
|
26
|
+
export declare function defaultDemoWorkflowOutputPath(provider: DemoWorkflowProvider, kind?: DemoWorkflowKind): string;
|
|
27
|
+
export declare function renderDemoWorkflow(provider: DemoWorkflowProvider, options?: IDemoWorkflowOptions): IDemoWorkflow;
|
|
28
|
+
//# sourceMappingURL=demo-workflow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demo-workflow.d.ts","sourceRoot":"","sources":["../src/demo-workflow.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,oBAAoB,gCAAgC,CAAC;AAElE,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC;AAE3C,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE7E,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,oBAAoB,CAAC;IACpC,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,oCAAoC;IACpC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B;AAkJD,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,oBAAoB,EAC9B,IAAI,GAAE,gBAA8B,GACnC,MAAM,CAMR;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,GAAE,oBAAyB,GACjC,aAAa,CAgBf"}
|