@shrkcrft/cli 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/asset-preview/apply-action-hint-stub.d.ts +28 -0
- package/dist/asset-preview/apply-action-hint-stub.d.ts.map +1 -0
- package/dist/asset-preview/apply-action-hint-stub.js +170 -0
- package/dist/asset-preview/apply-asset-preview.d.ts +31 -0
- package/dist/asset-preview/apply-asset-preview.d.ts.map +1 -0
- package/dist/asset-preview/apply-asset-preview.js +210 -0
- package/dist/asset-preview/apply-knowledge-stale-fix.d.ts +37 -0
- package/dist/asset-preview/apply-knowledge-stale-fix.d.ts.map +1 -0
- package/dist/asset-preview/apply-knowledge-stale-fix.js +344 -0
- package/dist/asset-preview/apply-missing-barrel.d.ts +15 -0
- package/dist/asset-preview/apply-missing-barrel.d.ts.map +1 -0
- package/dist/asset-preview/apply-missing-barrel.js +65 -0
- package/dist/asset-preview/apply-template-drift-fix.d.ts +21 -0
- package/dist/asset-preview/apply-template-drift-fix.d.ts.map +1 -0
- package/dist/asset-preview/apply-template-drift-fix.js +125 -0
- package/dist/asset-preview/apply-template-update.d.ts +43 -0
- package/dist/asset-preview/apply-template-update.d.ts.map +1 -0
- package/dist/asset-preview/apply-template-update.js +257 -0
- package/dist/asset-preview/entry-mutator.d.ts +106 -0
- package/dist/asset-preview/entry-mutator.d.ts.map +1 -0
- package/dist/asset-preview/entry-mutator.js +428 -0
- package/dist/authoring/authoring-kit.d.ts +36 -0
- package/dist/authoring/authoring-kit.d.ts.map +1 -0
- package/dist/authoring/authoring-kit.js +106 -0
- package/dist/command-registry.d.ts +158 -0
- package/dist/command-registry.d.ts.map +1 -0
- package/dist/command-registry.js +348 -0
- package/dist/commands/apply.command.d.ts +3 -0
- package/dist/commands/apply.command.d.ts.map +1 -0
- package/dist/commands/apply.command.js +879 -0
- package/dist/commands/architecture.command.d.ts +5 -0
- package/dist/commands/architecture.command.d.ts.map +1 -0
- package/dist/commands/architecture.command.js +141 -0
- package/dist/commands/ask.command.d.ts +3 -0
- package/dist/commands/ask.command.d.ts.map +1 -0
- package/dist/commands/ask.command.js +58 -0
- package/dist/commands/audit.command.d.ts +3 -0
- package/dist/commands/audit.command.d.ts.map +1 -0
- package/dist/commands/audit.command.js +141 -0
- package/dist/commands/biome.command.d.ts +7 -0
- package/dist/commands/biome.command.d.ts.map +1 -0
- package/dist/commands/biome.command.js +350 -0
- package/dist/commands/boundaries.command.d.ts +9 -0
- package/dist/commands/boundaries.command.d.ts.map +1 -0
- package/dist/commands/boundaries.command.js +314 -0
- package/dist/commands/brief.command.d.ts +3 -0
- package/dist/commands/brief.command.d.ts.map +1 -0
- package/dist/commands/brief.command.js +206 -0
- package/dist/commands/bundle.command.d.ts +3 -0
- package/dist/commands/bundle.command.d.ts.map +1 -0
- package/dist/commands/bundle.command.js +1183 -0
- package/dist/commands/changes.command.d.ts +3 -0
- package/dist/commands/changes.command.d.ts.map +1 -0
- package/dist/commands/changes.command.js +155 -0
- package/dist/commands/check.command.d.ts +3 -0
- package/dist/commands/check.command.d.ts.map +1 -0
- package/dist/commands/check.command.js +553 -0
- package/dist/commands/checks.command.d.ts +29 -0
- package/dist/commands/checks.command.d.ts.map +1 -0
- package/dist/commands/checks.command.js +521 -0
- package/dist/commands/ci.command.d.ts +3 -0
- package/dist/commands/ci.command.d.ts.map +1 -0
- package/dist/commands/ci.command.js +680 -0
- package/dist/commands/codemod.command.d.ts +3 -0
- package/dist/commands/codemod.command.d.ts.map +1 -0
- package/dist/commands/codemod.command.js +130 -0
- package/dist/commands/command-catalog.d.ts +265 -0
- package/dist/commands/command-catalog.d.ts.map +1 -0
- package/dist/commands/command-catalog.js +3242 -0
- package/dist/commands/commands.command.d.ts +92 -0
- package/dist/commands/commands.command.d.ts.map +1 -0
- package/dist/commands/commands.command.js +1208 -0
- package/dist/commands/constructs.command.d.ts +15 -0
- package/dist/commands/constructs.command.d.ts.map +1 -0
- package/dist/commands/constructs.command.js +669 -0
- package/dist/commands/context.command.d.ts +3 -0
- package/dist/commands/context.command.d.ts.map +1 -0
- package/dist/commands/context.command.js +120 -0
- package/dist/commands/contract-gate.command.d.ts +5 -0
- package/dist/commands/contract-gate.command.d.ts.map +1 -0
- package/dist/commands/contract-gate.command.js +208 -0
- package/dist/commands/contract-templates.command.d.ts +8 -0
- package/dist/commands/contract-templates.command.d.ts.map +1 -0
- package/dist/commands/contract-templates.command.js +151 -0
- package/dist/commands/contract.command.d.ts +3 -0
- package/dist/commands/contract.command.d.ts.map +1 -0
- package/dist/commands/contract.command.js +105 -0
- package/dist/commands/conventions.command.d.ts +8 -0
- package/dist/commands/conventions.command.d.ts.map +1 -0
- package/dist/commands/conventions.command.js +169 -0
- package/dist/commands/coverage.command.d.ts +3 -0
- package/dist/commands/coverage.command.d.ts.map +1 -0
- package/dist/commands/coverage.command.js +56 -0
- package/dist/commands/daily.commands.d.ts +5 -0
- package/dist/commands/daily.commands.d.ts.map +1 -0
- package/dist/commands/daily.commands.js +224 -0
- package/dist/commands/dashboard-export.command.d.ts +4 -0
- package/dist/commands/dashboard-export.command.d.ts.map +1 -0
- package/dist/commands/dashboard-export.command.js +86 -0
- package/dist/commands/dashboard.command.d.ts +3 -0
- package/dist/commands/dashboard.command.d.ts.map +1 -0
- package/dist/commands/dashboard.command.js +106 -0
- package/dist/commands/dev.command.d.ts +3 -0
- package/dist/commands/dev.command.d.ts.map +1 -0
- package/dist/commands/dev.command.js +1392 -0
- package/dist/commands/diagnostics.command.d.ts +5 -0
- package/dist/commands/diagnostics.command.d.ts.map +1 -0
- package/dist/commands/diagnostics.command.js +97 -0
- package/dist/commands/docs.command.d.ts +4 -0
- package/dist/commands/docs.command.d.ts.map +1 -0
- package/dist/commands/docs.command.js +34 -0
- package/dist/commands/doctor.command.d.ts +7 -0
- package/dist/commands/doctor.command.d.ts.map +1 -0
- package/dist/commands/doctor.command.js +681 -0
- package/dist/commands/drift.command.d.ts +3 -0
- package/dist/commands/drift.command.d.ts.map +1 -0
- package/dist/commands/drift.command.js +124 -0
- package/dist/commands/eslint.command.d.ts +7 -0
- package/dist/commands/eslint.command.d.ts.map +1 -0
- package/dist/commands/eslint.command.js +423 -0
- package/dist/commands/explore.command.d.ts +3 -0
- package/dist/commands/explore.command.d.ts.map +1 -0
- package/dist/commands/explore.command.js +65 -0
- package/dist/commands/export-bundle.command.d.ts +6 -0
- package/dist/commands/export-bundle.command.d.ts.map +1 -0
- package/dist/commands/export-bundle.command.js +96 -0
- package/dist/commands/export.command.d.ts +3 -0
- package/dist/commands/export.command.d.ts.map +1 -0
- package/dist/commands/export.command.js +83 -0
- package/dist/commands/feedback-dispatch.command.d.ts +12 -0
- package/dist/commands/feedback-dispatch.command.d.ts.map +1 -0
- package/dist/commands/feedback-dispatch.command.js +63 -0
- package/dist/commands/feedback.command.d.ts +11 -0
- package/dist/commands/feedback.command.d.ts.map +1 -0
- package/dist/commands/feedback.command.js +336 -0
- package/dist/commands/fix.command.d.ts +3 -0
- package/dist/commands/fix.command.d.ts.map +1 -0
- package/dist/commands/fix.command.js +776 -0
- package/dist/commands/gen.command.d.ts +3 -0
- package/dist/commands/gen.command.d.ts.map +1 -0
- package/dist/commands/gen.command.js +136 -0
- package/dist/commands/git.command.d.ts +6 -0
- package/dist/commands/git.command.d.ts.map +1 -0
- package/dist/commands/git.command.js +81 -0
- package/dist/commands/graph.command.d.ts +3 -0
- package/dist/commands/graph.command.d.ts.map +1 -0
- package/dist/commands/graph.command.js +287 -0
- package/dist/commands/grounding.command.d.ts +7 -0
- package/dist/commands/grounding.command.d.ts.map +1 -0
- package/dist/commands/grounding.command.js +54 -0
- package/dist/commands/help.command.d.ts +20 -0
- package/dist/commands/help.command.d.ts.map +1 -0
- package/dist/commands/help.command.js +127 -0
- package/dist/commands/helper.command.d.ts +6 -0
- package/dist/commands/helper.command.d.ts.map +1 -0
- package/dist/commands/helper.command.js +170 -0
- package/dist/commands/ide.command.d.ts +6 -0
- package/dist/commands/ide.command.d.ts.map +1 -0
- package/dist/commands/ide.command.js +340 -0
- package/dist/commands/impact.command.d.ts +3 -0
- package/dist/commands/impact.command.d.ts.map +1 -0
- package/dist/commands/impact.command.js +819 -0
- package/dist/commands/import.command.d.ts +3 -0
- package/dist/commands/import.command.d.ts.map +1 -0
- package/dist/commands/import.command.js +115 -0
- package/dist/commands/infer.command.d.ts +3 -0
- package/dist/commands/infer.command.d.ts.map +1 -0
- package/dist/commands/infer.command.js +227 -0
- package/dist/commands/ingest.command.d.ts +6 -0
- package/dist/commands/ingest.command.d.ts.map +1 -0
- package/dist/commands/ingest.command.js +532 -0
- package/dist/commands/init.command.d.ts +3 -0
- package/dist/commands/init.command.d.ts.map +1 -0
- package/dist/commands/init.command.js +301 -0
- package/dist/commands/inspect.command.d.ts +3 -0
- package/dist/commands/inspect.command.d.ts.map +1 -0
- package/dist/commands/inspect.command.js +122 -0
- package/dist/commands/knowledge-author.command.d.ts +22 -0
- package/dist/commands/knowledge-author.command.d.ts.map +1 -0
- package/dist/commands/knowledge-author.command.js +366 -0
- package/dist/commands/knowledge-propose.command.d.ts +3 -0
- package/dist/commands/knowledge-propose.command.d.ts.map +1 -0
- package/dist/commands/knowledge-propose.command.js +125 -0
- package/dist/commands/knowledge.command.d.ts +18 -0
- package/dist/commands/knowledge.command.d.ts.map +1 -0
- package/dist/commands/knowledge.command.js +538 -0
- package/dist/commands/languages.command.d.ts +3 -0
- package/dist/commands/languages.command.d.ts.map +1 -0
- package/dist/commands/languages.command.js +300 -0
- package/dist/commands/lint.command.d.ts +15 -0
- package/dist/commands/lint.command.d.ts.map +1 -0
- package/dist/commands/lint.command.js +194 -0
- package/dist/commands/mcp.command.d.ts +3 -0
- package/dist/commands/mcp.command.d.ts.map +1 -0
- package/dist/commands/mcp.command.js +74 -0
- package/dist/commands/memory.command.d.ts +11 -0
- package/dist/commands/memory.command.d.ts.map +1 -0
- package/dist/commands/memory.command.js +264 -0
- package/dist/commands/onboard.command.d.ts +3 -0
- package/dist/commands/onboard.command.d.ts.map +1 -0
- package/dist/commands/onboard.command.js +650 -0
- package/dist/commands/orchestrate.command.d.ts +3 -0
- package/dist/commands/orchestrate.command.d.ts.map +1 -0
- package/dist/commands/orchestrate.command.js +49 -0
- package/dist/commands/owners.command.d.ts +5 -0
- package/dist/commands/owners.command.d.ts.map +1 -0
- package/dist/commands/owners.command.js +113 -0
- package/dist/commands/ownership.command.d.ts +5 -0
- package/dist/commands/ownership.command.d.ts.map +1 -0
- package/dist/commands/ownership.command.js +117 -0
- package/dist/commands/pack-author.command.d.ts +30 -0
- package/dist/commands/pack-author.command.d.ts.map +1 -0
- package/dist/commands/pack-author.command.js +242 -0
- package/dist/commands/packs-new.d.ts +27 -0
- package/dist/commands/packs-new.d.ts.map +1 -0
- package/dist/commands/packs-new.js +805 -0
- package/dist/commands/packs.command.d.ts +15 -0
- package/dist/commands/packs.command.d.ts.map +1 -0
- package/dist/commands/packs.command.js +958 -0
- package/dist/commands/paths.command.d.ts +6 -0
- package/dist/commands/paths.command.d.ts.map +1 -0
- package/dist/commands/paths.command.js +97 -0
- package/dist/commands/pipelines.command.d.ts +9 -0
- package/dist/commands/pipelines.command.d.ts.map +1 -0
- package/dist/commands/pipelines.command.js +308 -0
- package/dist/commands/plan-check.command.d.ts +27 -0
- package/dist/commands/plan-check.command.d.ts.map +1 -0
- package/dist/commands/plan-check.command.js +150 -0
- package/dist/commands/plan-simulate.command.d.ts +3 -0
- package/dist/commands/plan-simulate.command.d.ts.map +1 -0
- package/dist/commands/plan-simulate.command.js +60 -0
- package/dist/commands/plan.command.d.ts +8 -0
- package/dist/commands/plan.command.d.ts.map +1 -0
- package/dist/commands/plan.command.js +139 -0
- package/dist/commands/playbooks.command.d.ts +10 -0
- package/dist/commands/playbooks.command.d.ts.map +1 -0
- package/dist/commands/playbooks.command.js +296 -0
- package/dist/commands/plugin.command.d.ts +11 -0
- package/dist/commands/plugin.command.d.ts.map +1 -0
- package/dist/commands/plugin.command.js +394 -0
- package/dist/commands/policy.command.d.ts +8 -0
- package/dist/commands/policy.command.d.ts.map +1 -0
- package/dist/commands/policy.command.js +451 -0
- package/dist/commands/pr.command.d.ts +3 -0
- package/dist/commands/pr.command.d.ts.map +1 -0
- package/dist/commands/pr.command.js +132 -0
- package/dist/commands/preflight.command.d.ts +3 -0
- package/dist/commands/preflight.command.d.ts.map +1 -0
- package/dist/commands/preflight.command.js +102 -0
- package/dist/commands/presets.command.d.ts +17 -0
- package/dist/commands/presets.command.d.ts.map +1 -0
- package/dist/commands/presets.command.js +647 -0
- package/dist/commands/profiles.command.d.ts +7 -0
- package/dist/commands/profiles.command.d.ts.map +1 -0
- package/dist/commands/profiles.command.js +151 -0
- package/dist/commands/provenance.command.d.ts +26 -0
- package/dist/commands/provenance.command.d.ts.map +1 -0
- package/dist/commands/provenance.command.js +237 -0
- package/dist/commands/quality.command.d.ts +5 -0
- package/dist/commands/quality.command.d.ts.map +1 -0
- package/dist/commands/quality.command.js +69 -0
- package/dist/commands/recommend.command.d.ts +4 -0
- package/dist/commands/recommend.command.d.ts.map +1 -0
- package/dist/commands/recommend.command.js +270 -0
- package/dist/commands/registrations.command.d.ts +3 -0
- package/dist/commands/registrations.command.d.ts.map +1 -0
- package/dist/commands/registrations.command.js +300 -0
- package/dist/commands/registry.command.d.ts +4 -0
- package/dist/commands/registry.command.d.ts.map +1 -0
- package/dist/commands/registry.command.js +37 -0
- package/dist/commands/release.command.d.ts +4 -0
- package/dist/commands/release.command.d.ts.map +1 -0
- package/dist/commands/release.command.js +639 -0
- package/dist/commands/repo.command.d.ts +3 -0
- package/dist/commands/repo.command.d.ts.map +1 -0
- package/dist/commands/repo.command.js +24 -0
- package/dist/commands/report.command.d.ts +3 -0
- package/dist/commands/report.command.d.ts.map +1 -0
- package/dist/commands/report.command.js +511 -0
- package/dist/commands/reposet.command.d.ts +6 -0
- package/dist/commands/reposet.command.d.ts.map +1 -0
- package/dist/commands/reposet.command.js +120 -0
- package/dist/commands/review.command.d.ts +3 -0
- package/dist/commands/review.command.d.ts.map +1 -0
- package/dist/commands/review.command.js +354 -0
- package/dist/commands/risk.command.d.ts +3 -0
- package/dist/commands/risk.command.d.ts.map +1 -0
- package/dist/commands/risk.command.js +56 -0
- package/dist/commands/rounds.command.d.ts +8 -0
- package/dist/commands/rounds.command.d.ts.map +1 -0
- package/dist/commands/rounds.command.js +180 -0
- package/dist/commands/rules.command.d.ts +49 -0
- package/dist/commands/rules.command.d.ts.map +1 -0
- package/dist/commands/rules.command.js +435 -0
- package/dist/commands/runtime.command.d.ts +3 -0
- package/dist/commands/runtime.command.d.ts.map +1 -0
- package/dist/commands/runtime.command.js +56 -0
- package/dist/commands/safety.command.d.ts +3 -0
- package/dist/commands/safety.command.d.ts.map +1 -0
- package/dist/commands/safety.command.js +117 -0
- package/dist/commands/scaffolds.command.d.ts +5 -0
- package/dist/commands/scaffolds.command.d.ts.map +1 -0
- package/dist/commands/scaffolds.command.js +122 -0
- package/dist/commands/schemas.command.d.ts +21 -0
- package/dist/commands/schemas.command.d.ts.map +1 -0
- package/dist/commands/schemas.command.js +296 -0
- package/dist/commands/search.command.d.ts +12 -0
- package/dist/commands/search.command.d.ts.map +1 -0
- package/dist/commands/search.command.js +275 -0
- package/dist/commands/self-config.command.d.ts +7 -0
- package/dist/commands/self-config.command.d.ts.map +1 -0
- package/dist/commands/self-config.command.js +156 -0
- package/dist/commands/self.command.d.ts +3 -0
- package/dist/commands/self.command.d.ts.map +1 -0
- package/dist/commands/self.command.js +117 -0
- package/dist/commands/simulate.command.d.ts +3 -0
- package/dist/commands/simulate.command.d.ts.map +1 -0
- package/dist/commands/simulate.command.js +54 -0
- package/dist/commands/spec.command.d.ts +29 -0
- package/dist/commands/spec.command.d.ts.map +1 -0
- package/dist/commands/spec.command.js +985 -0
- package/dist/commands/start-here.command.d.ts +3 -0
- package/dist/commands/start-here.command.d.ts.map +1 -0
- package/dist/commands/start-here.command.js +35 -0
- package/dist/commands/stats.command.d.ts +3 -0
- package/dist/commands/stats.command.d.ts.map +1 -0
- package/dist/commands/stats.command.js +88 -0
- package/dist/commands/surface.command.d.ts +15 -0
- package/dist/commands/surface.command.d.ts.map +1 -0
- package/dist/commands/surface.command.js +328 -0
- package/dist/commands/task-context.command.d.ts +7 -0
- package/dist/commands/task-context.command.d.ts.map +1 -0
- package/dist/commands/task-context.command.js +646 -0
- package/dist/commands/task.command.d.ts +3 -0
- package/dist/commands/task.command.d.ts.map +1 -0
- package/dist/commands/task.command.js +301 -0
- package/dist/commands/template-quality.command.d.ts +5 -0
- package/dist/commands/template-quality.command.d.ts.map +1 -0
- package/dist/commands/template-quality.command.js +128 -0
- package/dist/commands/templates.command.d.ts +26 -0
- package/dist/commands/templates.command.d.ts.map +1 -0
- package/dist/commands/templates.command.js +964 -0
- package/dist/commands/test.command.d.ts +3 -0
- package/dist/commands/test.command.d.ts.map +1 -0
- package/dist/commands/test.command.js +262 -0
- package/dist/commands/tests.command.d.ts +5 -0
- package/dist/commands/tests.command.d.ts.map +1 -0
- package/dist/commands/tests.command.js +97 -0
- package/dist/commands/trace.command.d.ts +3 -0
- package/dist/commands/trace.command.d.ts.map +1 -0
- package/dist/commands/trace.command.js +121 -0
- package/dist/commands/upgrade.command.d.ts +4 -0
- package/dist/commands/upgrade.command.d.ts.map +1 -0
- package/dist/commands/upgrade.command.js +43 -0
- package/dist/commands/version.command.d.ts +3 -0
- package/dist/commands/version.command.d.ts.map +1 -0
- package/dist/commands/version.command.js +10 -0
- package/dist/commands/why.command.d.ts +24 -0
- package/dist/commands/why.command.d.ts.map +1 -0
- package/dist/commands/why.command.js +119 -0
- package/dist/dashboard/dashboard-api-server.d.ts +21 -0
- package/dist/dashboard/dashboard-api-server.d.ts.map +1 -0
- package/dist/dashboard/dashboard-api-server.js +410 -0
- package/dist/dashboard/live-session-server.d.ts +18 -0
- package/dist/dashboard/live-session-server.d.ts.map +1 -0
- package/dist/dashboard/live-session-server.js +133 -0
- package/dist/diff/collect-changed-paths.d.ts +27 -0
- package/dist/diff/collect-changed-paths.d.ts.map +1 -0
- package/dist/diff/collect-changed-paths.js +68 -0
- package/dist/doctor/doctor-tags.d.ts +63 -0
- package/dist/doctor/doctor-tags.d.ts.map +1 -0
- package/dist/doctor/doctor-tags.js +146 -0
- package/dist/export/export-formats.d.ts +22 -0
- package/dist/export/export-formats.d.ts.map +1 -0
- package/dist/export/export-formats.js +135 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/init/detected-block.d.ts +57 -0
- package/dist/init/detected-block.d.ts.map +1 -0
- package/dist/init/detected-block.js +197 -0
- package/dist/init/gitignore.d.ts +30 -0
- package/dist/init/gitignore.d.ts.map +1 -0
- package/dist/init/gitignore.js +110 -0
- package/dist/init/init-templates.d.ts +6 -0
- package/dist/init/init-templates.d.ts.map +1 -0
- package/dist/init/init-templates.js +413 -0
- package/dist/main.d.ts +18 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +699 -0
- package/dist/output/failure-hints.d.ts +55 -0
- package/dist/output/failure-hints.d.ts.map +1 -0
- package/dist/output/failure-hints.js +159 -0
- package/dist/output/format-output.d.ts +9 -0
- package/dist/output/format-output.d.ts.map +1 -0
- package/dist/output/format-output.js +26 -0
- package/dist/output/print-error.d.ts +3 -0
- package/dist/output/print-error.d.ts.map +1 -0
- package/dist/output/print-error.js +14 -0
- package/dist/output/watch-loop.d.ts +37 -0
- package/dist/output/watch-loop.d.ts.map +1 -0
- package/dist/output/watch-loop.js +115 -0
- package/dist/schemas/json-schemas.d.ts +1630 -0
- package/dist/schemas/json-schemas.d.ts.map +1 -0
- package/dist/schemas/json-schemas.js +811 -0
- package/dist/surface/about.d.ts +10 -0
- package/dist/surface/about.d.ts.map +1 -0
- package/dist/surface/about.js +53 -0
- package/dist/surface/load-surface-context.d.ts +34 -0
- package/dist/surface/load-surface-context.d.ts.map +1 -0
- package/dist/surface/load-surface-context.js +100 -0
- package/dist/surface/no-args-landing.d.ts +7 -0
- package/dist/surface/no-args-landing.d.ts.map +1 -0
- package/dist/surface/no-args-landing.js +36 -0
- package/dist/surface/not-enabled-error.d.ts +24 -0
- package/dist/surface/not-enabled-error.d.ts.map +1 -0
- package/dist/surface/not-enabled-error.js +36 -0
- package/dist/surface/profiles.d.ts +37 -0
- package/dist/surface/profiles.d.ts.map +1 -0
- package/dist/surface/profiles.js +151 -0
- package/dist/surface/shape-defaults.d.ts +21 -0
- package/dist/surface/shape-defaults.d.ts.map +1 -0
- package/dist/surface/shape-defaults.js +50 -0
- package/dist/surface/spine-extractor.d.ts +38 -0
- package/dist/surface/spine-extractor.d.ts.map +1 -0
- package/dist/surface/spine-extractor.js +100 -0
- package/dist/surface/surface-config-writer.d.ts +59 -0
- package/dist/surface/surface-config-writer.d.ts.map +1 -0
- package/dist/surface/surface-config-writer.js +135 -0
- package/dist/surface/surface-summary.d.ts +66 -0
- package/dist/surface/surface-summary.d.ts.map +1 -0
- package/dist/surface/surface-summary.js +162 -0
- package/dist/surface/tier.d.ts +100 -0
- package/dist/surface/tier.d.ts.map +1 -0
- package/dist/surface/tier.js +172 -0
- package/dist/task-next/apply-batch-runner.d.ts +42 -0
- package/dist/task-next/apply-batch-runner.d.ts.map +1 -0
- package/dist/task-next/apply-batch-runner.js +192 -0
- package/dist/task-next/task-next-ranker.d.ts +75 -0
- package/dist/task-next/task-next-ranker.d.ts.map +1 -0
- package/dist/task-next/task-next-ranker.js +179 -0
- package/dist/usage/usage-log.d.ts +54 -0
- package/dist/usage/usage-log.d.ts.map +1 -0
- package/dist/usage/usage-log.js +105 -0
- package/dist/validation/run-validation-loop.d.ts +38 -0
- package/dist/validation/run-validation-loop.d.ts.map +1 -0
- package/dist/validation/run-validation-loop.js +100 -0
- package/package.json +73 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Long-form `--about` rendering. Pulls from
|
|
3
|
+
* `docs/overview.md` + `docs/philosophy.md` content, baked at build
|
|
4
|
+
* time so it works offline.
|
|
5
|
+
*
|
|
6
|
+
* Keep this short — one screen. The authoritative docs live under
|
|
7
|
+
* `docs/`; this is the in-binary summary.
|
|
8
|
+
*/
|
|
9
|
+
export declare function renderAbout(): string;
|
|
10
|
+
//# sourceMappingURL=about.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"about.d.ts","sourceRoot":"","sources":["../../src/surface/about.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAgB,WAAW,IAAI,MAAM,CA2CpC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { SHARKCRAFT_VERSION } from '@shrkcrft/shared';
|
|
2
|
+
/**
|
|
3
|
+
* Long-form `--about` rendering. Pulls from
|
|
4
|
+
* `docs/overview.md` + `docs/philosophy.md` content, baked at build
|
|
5
|
+
* time so it works offline.
|
|
6
|
+
*
|
|
7
|
+
* Keep this short — one screen. The authoritative docs live under
|
|
8
|
+
* `docs/`; this is the in-binary summary.
|
|
9
|
+
*/
|
|
10
|
+
export function renderAbout() {
|
|
11
|
+
return `SharkCraft v${SHARKCRAFT_VERSION}
|
|
12
|
+
|
|
13
|
+
What it is
|
|
14
|
+
A deterministic, local-first toolkit that gives AI coding agents
|
|
15
|
+
durable project context. Ships as a CLI (\`shrk\`) — the only write
|
|
16
|
+
path — plus a read-only MCP server, plus a library of structured
|
|
17
|
+
assets (knowledge, rules, paths, templates, pipelines, presets,
|
|
18
|
+
boundaries).
|
|
19
|
+
|
|
20
|
+
What it is NOT
|
|
21
|
+
There is no AI inside the engine. Every output is a pure function
|
|
22
|
+
of the workspace + the asset registries. The agent uses the engine;
|
|
23
|
+
the engine never calls a model.
|
|
24
|
+
|
|
25
|
+
The safety contract
|
|
26
|
+
- All write paths are preview-first. \`--apply\` is opt-in, scoped,
|
|
27
|
+
and idempotent.
|
|
28
|
+
- MCP is read-only. Every MCP tool returns data + a next-command
|
|
29
|
+
hint; the human runs the CLI for any write.
|
|
30
|
+
- Apply requires \`--verify-signature\` for signed plans, refuses
|
|
31
|
+
on divergence unless \`--allow-divergent\`.
|
|
32
|
+
|
|
33
|
+
Calibration to project size
|
|
34
|
+
Surface tiers (\`shrk surface list\`):
|
|
35
|
+
- core always on
|
|
36
|
+
- extended visible in --help, callable
|
|
37
|
+
- experimental hidden until enabled (\`shrk surface enable\`)
|
|
38
|
+
Project shape (\`shrk doctor\`) drives the default surface for a
|
|
39
|
+
fresh repo.
|
|
40
|
+
|
|
41
|
+
Where to read more
|
|
42
|
+
docs/overview.md what SharkCraft is and isn't
|
|
43
|
+
docs/philosophy.md the non-negotiable design rules
|
|
44
|
+
docs/surface-tiers.md the tier model
|
|
45
|
+
docs/safety-model.md plan / review / apply contract
|
|
46
|
+
|
|
47
|
+
Quick start
|
|
48
|
+
shrk doctor health check
|
|
49
|
+
shrk task "<what>" full task packet (rules + templates + commands)
|
|
50
|
+
shrk recommend "<what>" what command should I reach for?
|
|
51
|
+
shrk surface list what is available in this repo
|
|
52
|
+
`;
|
|
53
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type ISharkcraftInspection } from '@shrkcrft/inspector';
|
|
2
|
+
import { type ISurfaceProfile } from './profiles.js';
|
|
3
|
+
import type { ITierResolverContext } from './tier.js';
|
|
4
|
+
export interface LoadSurfaceContextOptions {
|
|
5
|
+
cwd: string;
|
|
6
|
+
/** Optional pre-loaded inspection to avoid the double-load cost. */
|
|
7
|
+
inspection?: ISharkcraftInspection;
|
|
8
|
+
}
|
|
9
|
+
export interface ILoadedSurfaceContext {
|
|
10
|
+
context: ITierResolverContext;
|
|
11
|
+
inspection: ISharkcraftInspection;
|
|
12
|
+
/**
|
|
13
|
+
* Profiles in effect for this resolution: built-in
|
|
14
|
+
* profiles known to the resolver + any pack-contributed profiles.
|
|
15
|
+
* Sorted: builtin first, then pack contributions.
|
|
16
|
+
*/
|
|
17
|
+
availableProfiles: readonly ISurfaceProfile[];
|
|
18
|
+
/** The resolved profile (after config.surface.profile lookup), if any. */
|
|
19
|
+
activeProfile?: ISurfaceProfile;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Build the {@link ITierResolverContext} from a workspace.
|
|
23
|
+
*
|
|
24
|
+
* Steps:
|
|
25
|
+
* 1. Load (or reuse) the inspector for `cwd`.
|
|
26
|
+
* 2. Extract spine commands from the pipeline registry.
|
|
27
|
+
* 3. Collect pack-contributed commands (currently empty in the
|
|
28
|
+
* engine repo — `ICommandPlugin` exists in the plugin-api but no
|
|
29
|
+
* pack contributes commands today; future packs will populate
|
|
30
|
+
* the inspection's pack discovery).
|
|
31
|
+
* 4. Read the user's `surface{}` config block.
|
|
32
|
+
*/
|
|
33
|
+
export declare function loadSurfaceContext(options: LoadSurfaceContextOptions): Promise<ILoadedSurfaceContext>;
|
|
34
|
+
//# sourceMappingURL=load-surface-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-surface-context.d.ts","sourceRoot":"","sources":["../../src/surface/load-surface-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAGpF,OAAO,EAAgC,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEtD,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,oEAAoE;IACpE,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,UAAU,EAAE,qBAAqB,CAAC;IAClC;;;;OAIG;IACH,iBAAiB,EAAE,SAAS,eAAe,EAAE,CAAC;IAC9C,0EAA0E;IAC1E,aAAa,CAAC,EAAE,eAAe,CAAC;CACjC;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,qBAAqB,CAAC,CAmChC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { inspectSharkcraft } from '@shrkcrft/inspector';
|
|
2
|
+
import { extractSpineCommands } from "./spine-extractor.js";
|
|
3
|
+
import { BUILTIN_PROFILES, getProfile } from "./profiles.js";
|
|
4
|
+
/**
|
|
5
|
+
* Build the {@link ITierResolverContext} from a workspace.
|
|
6
|
+
*
|
|
7
|
+
* Steps:
|
|
8
|
+
* 1. Load (or reuse) the inspector for `cwd`.
|
|
9
|
+
* 2. Extract spine commands from the pipeline registry.
|
|
10
|
+
* 3. Collect pack-contributed commands (currently empty in the
|
|
11
|
+
* engine repo — `ICommandPlugin` exists in the plugin-api but no
|
|
12
|
+
* pack contributes commands today; future packs will populate
|
|
13
|
+
* the inspection's pack discovery).
|
|
14
|
+
* 4. Read the user's `surface{}` config block.
|
|
15
|
+
*/
|
|
16
|
+
export async function loadSurfaceContext(options) {
|
|
17
|
+
const inspection = options.inspection ?? (await inspectSharkcraft({ cwd: options.cwd }));
|
|
18
|
+
const spineCommands = extractSpineCommands(inspection.pipelines);
|
|
19
|
+
const packContributions = collectPackContributions(inspection);
|
|
20
|
+
const packProfiles = collectPackProfiles(inspection);
|
|
21
|
+
const rawConfig = inspection.config?.surface ?? undefined;
|
|
22
|
+
// Resolve profile (built-in or pack-contributed).
|
|
23
|
+
const profileId = rawConfig?.profile;
|
|
24
|
+
const activeProfile = profileId
|
|
25
|
+
? getProfile(profileId, packProfiles)
|
|
26
|
+
: undefined;
|
|
27
|
+
// Compose profile.hidden + config.hidden / profile.enabled + config.enabled.
|
|
28
|
+
// Config wins on conflicts (explicit user choice over profile default).
|
|
29
|
+
const mergedHidden = mergeUnique(activeProfile?.hidden, rawConfig?.hidden);
|
|
30
|
+
const mergedEnabled = mergeUnique(activeProfile?.enabled, rawConfig?.enabled);
|
|
31
|
+
const surfaceConfig = rawConfig || activeProfile
|
|
32
|
+
? {
|
|
33
|
+
...(profileId ? { profile: profileId } : {}),
|
|
34
|
+
...(mergedHidden.length > 0 ? { hidden: mergedHidden } : {}),
|
|
35
|
+
...(mergedEnabled.length > 0 ? { enabled: mergedEnabled } : {}),
|
|
36
|
+
}
|
|
37
|
+
: undefined;
|
|
38
|
+
return {
|
|
39
|
+
inspection,
|
|
40
|
+
context: { spineCommands, packContributions, surfaceConfig },
|
|
41
|
+
availableProfiles: [...BUILTIN_PROFILES, ...packProfiles],
|
|
42
|
+
...(activeProfile ? { activeProfile } : {}),
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
function mergeUnique(a, b) {
|
|
46
|
+
const set = new Set([...(a ?? []), ...(b ?? [])]);
|
|
47
|
+
return [...set].sort();
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Collect pack-contributed surface profiles. Pack
|
|
51
|
+
* manifests can declare `contributions.surfaceProfiles[]`. Today this
|
|
52
|
+
* is a new manifest slot — older packs return zero.
|
|
53
|
+
*/
|
|
54
|
+
function collectPackProfiles(inspection) {
|
|
55
|
+
const out = [];
|
|
56
|
+
const packs = inspection.packs?.discoveredPacks ?? [];
|
|
57
|
+
for (const pack of packs) {
|
|
58
|
+
const contributions = (pack.manifest?.contributions ?? {});
|
|
59
|
+
const raw = contributions.surfaceProfiles ?? [];
|
|
60
|
+
for (const r of raw) {
|
|
61
|
+
if (typeof r?.id !== 'string' || r.id.length === 0)
|
|
62
|
+
continue;
|
|
63
|
+
out.push({
|
|
64
|
+
id: r.id,
|
|
65
|
+
description: typeof r.description === 'string' ? r.description : `Pack profile (${pack.packageName})`,
|
|
66
|
+
source: 'pack',
|
|
67
|
+
pack: pack.packageName,
|
|
68
|
+
...(Array.isArray(r.hidden) ? { hidden: r.hidden.filter((s) => typeof s === 'string') } : {}),
|
|
69
|
+
...(Array.isArray(r.enabled) ? { enabled: r.enabled.filter((s) => typeof s === 'string') } : {}),
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return out;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Collect pack-contributed CLI command names. Today the pack
|
|
77
|
+
* manifest schema has no `commandFiles[]` contribution slot, so this
|
|
78
|
+
* always returns an empty map in the current engine repo. The
|
|
79
|
+
* future-proofing is intentional: when packs gain command-contribution
|
|
80
|
+
* support, the tier resolver immediately starts marking them
|
|
81
|
+
* `experimental` by default.
|
|
82
|
+
*
|
|
83
|
+
* The lookup walks `IDiscoveredPack.manifest.contributions.commands[]`
|
|
84
|
+
* defensively — the field doesn't exist in the v1 manifest schema, but
|
|
85
|
+
* a future schema bump can add it without changing this code.
|
|
86
|
+
*/
|
|
87
|
+
function collectPackContributions(inspection) {
|
|
88
|
+
const map = new Map();
|
|
89
|
+
const packs = inspection.packs?.discoveredPacks ?? [];
|
|
90
|
+
for (const pack of packs) {
|
|
91
|
+
const contributions = (pack.manifest?.contributions ?? {});
|
|
92
|
+
const commands = contributions.commands ?? [];
|
|
93
|
+
for (const cmd of commands) {
|
|
94
|
+
if (typeof cmd?.name === 'string' && cmd.name.length > 0) {
|
|
95
|
+
map.set(cmd.name, pack.packageName);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return map;
|
|
100
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The curated landing rendered when a user runs bare `shrk`
|
|
3
|
+
* (no args). Falls back to four hardcoded suggestions when the
|
|
4
|
+
* inspector / recommender fails (fresh repo without a config).
|
|
5
|
+
*/
|
|
6
|
+
export declare function renderNoArgsLanding(cwd: string): Promise<string>;
|
|
7
|
+
//# sourceMappingURL=no-args-landing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-args-landing.d.ts","sourceRoot":"","sources":["../../src/surface/no-args-landing.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA6BtE"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { SHARKCRAFT_VERSION } from '@shrkcrft/shared';
|
|
2
|
+
import { loadSurfaceContext } from "./load-surface-context.js";
|
|
3
|
+
import { buildSurfaceSummary } from "./surface-summary.js";
|
|
4
|
+
/**
|
|
5
|
+
* The curated landing rendered when a user runs bare `shrk`
|
|
6
|
+
* (no args). Falls back to four hardcoded suggestions when the
|
|
7
|
+
* inspector / recommender fails (fresh repo without a config).
|
|
8
|
+
*/
|
|
9
|
+
export async function renderNoArgsLanding(cwd) {
|
|
10
|
+
const lines = [];
|
|
11
|
+
lines.push(`shrk v${SHARKCRAFT_VERSION} — deterministic context for AI coding agents.`);
|
|
12
|
+
lines.push('');
|
|
13
|
+
let totals = '';
|
|
14
|
+
try {
|
|
15
|
+
const { context } = await loadSurfaceContext({ cwd });
|
|
16
|
+
const summary = buildSurfaceSummary(context);
|
|
17
|
+
totals = `Surface: ${summary.totals.core} core + ${summary.totals.extended} extended (${summary.tiers.extended.filter((c) => c.hidden).length} hidden, ${summary.tiers.experimental.filter((c) => c.enabled).length} experimental enabled).`;
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
totals = 'Surface: (run `shrk doctor` to load the workspace).';
|
|
21
|
+
}
|
|
22
|
+
lines.push(totals);
|
|
23
|
+
lines.push('');
|
|
24
|
+
lines.push('Most useful next:');
|
|
25
|
+
lines.push(' shrk doctor health check');
|
|
26
|
+
lines.push(' shrk task "<what>" full packet for a task');
|
|
27
|
+
lines.push(' shrk recommend "<what>" what should I do?');
|
|
28
|
+
lines.push(' shrk surface list what is available in this repo');
|
|
29
|
+
lines.push('');
|
|
30
|
+
lines.push('See:');
|
|
31
|
+
lines.push(' shrk --help every visible command');
|
|
32
|
+
lines.push(' shrk surface explain <cmd> why a command is/is not visible');
|
|
33
|
+
lines.push(' shrk --about what shrk is and is not');
|
|
34
|
+
lines.push('');
|
|
35
|
+
return lines.join('\n');
|
|
36
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured error returned when a user / agent invokes an
|
|
3
|
+
* experimental command that is not enabled in the current repo's
|
|
4
|
+
* `sharkcraft.config.ts surface.enabled[]`.
|
|
5
|
+
*
|
|
6
|
+
* Exit code distinguishes "command exists but is gated" from
|
|
7
|
+
* "command unknown" (which exits 2 via the did-you-mean path in
|
|
8
|
+
* main.ts).
|
|
9
|
+
*/
|
|
10
|
+
export declare const SURFACE_NOT_ENABLED_EXIT_CODE = 78;
|
|
11
|
+
export declare const SURFACE_NOT_ENABLED_SCHEMA = "sharkcraft.surface.not-enabled.v1";
|
|
12
|
+
export interface ISurfaceNotEnabledError {
|
|
13
|
+
schema: typeof SURFACE_NOT_ENABLED_SCHEMA;
|
|
14
|
+
command: string;
|
|
15
|
+
tier: 'experimental';
|
|
16
|
+
reason: string;
|
|
17
|
+
enableCommand: string;
|
|
18
|
+
explainCommand: string;
|
|
19
|
+
}
|
|
20
|
+
export declare function makeSurfaceNotEnabledError(command: string, options?: {
|
|
21
|
+
reason?: string;
|
|
22
|
+
}): ISurfaceNotEnabledError;
|
|
23
|
+
export declare function renderSurfaceNotEnabledText(err: ISurfaceNotEnabledError): string;
|
|
24
|
+
//# sourceMappingURL=not-enabled-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"not-enabled-error.d.ts","sourceRoot":"","sources":["../../src/surface/not-enabled-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAEhD,eAAO,MAAM,0BAA0B,sCAAsC,CAAC;AAE9E,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,OAAO,0BAA0B,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,uBAAuB,CAWzB;AAED,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,uBAAuB,GAC3B,MAAM,CAaR"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured error returned when a user / agent invokes an
|
|
3
|
+
* experimental command that is not enabled in the current repo's
|
|
4
|
+
* `sharkcraft.config.ts surface.enabled[]`.
|
|
5
|
+
*
|
|
6
|
+
* Exit code distinguishes "command exists but is gated" from
|
|
7
|
+
* "command unknown" (which exits 2 via the did-you-mean path in
|
|
8
|
+
* main.ts).
|
|
9
|
+
*/
|
|
10
|
+
export const SURFACE_NOT_ENABLED_EXIT_CODE = 78;
|
|
11
|
+
export const SURFACE_NOT_ENABLED_SCHEMA = 'sharkcraft.surface.not-enabled.v1';
|
|
12
|
+
export function makeSurfaceNotEnabledError(command, options = {}) {
|
|
13
|
+
return {
|
|
14
|
+
schema: SURFACE_NOT_ENABLED_SCHEMA,
|
|
15
|
+
command,
|
|
16
|
+
tier: 'experimental',
|
|
17
|
+
reason: options.reason ??
|
|
18
|
+
`Command \`${command}\` is an experimental tier — not enabled in this repo.`,
|
|
19
|
+
enableCommand: `shrk surface enable ${command}`,
|
|
20
|
+
explainCommand: `shrk surface explain ${command}`,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export function renderSurfaceNotEnabledText(err) {
|
|
24
|
+
const lines = [];
|
|
25
|
+
lines.push(`Command \`${err.command}\` exists but is not enabled in this repo.`);
|
|
26
|
+
lines.push('');
|
|
27
|
+
lines.push(`It is tier=${err.tier}. ${err.reason}`);
|
|
28
|
+
lines.push('');
|
|
29
|
+
lines.push('Enable it:');
|
|
30
|
+
lines.push(` $ ${err.enableCommand}`);
|
|
31
|
+
lines.push('');
|
|
32
|
+
lines.push('Or see why it is gated:');
|
|
33
|
+
lines.push(` $ ${err.explainCommand}`);
|
|
34
|
+
lines.push('');
|
|
35
|
+
return lines.join('\n');
|
|
36
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Surface profiles.
|
|
3
|
+
*
|
|
4
|
+
* A profile is a named set of `surface.hidden` + `surface.enabled`
|
|
5
|
+
* adjustments. Built-in profiles ship from the engine; packs can
|
|
6
|
+
* contribute additional profiles via the pack manifest (see
|
|
7
|
+
* load-surface-context.ts). The user selects one via
|
|
8
|
+
* `sharkcraft.config.ts surface.profile`.
|
|
9
|
+
*
|
|
10
|
+
* Profiles are PURE DATA — no logic, no AI. Adding a profile is just
|
|
11
|
+
* adding an entry here (or in a pack manifest).
|
|
12
|
+
*/
|
|
13
|
+
export interface ISurfaceProfile {
|
|
14
|
+
/** Stable id used by `surface.profile` config + CLI selection. */
|
|
15
|
+
id: string;
|
|
16
|
+
/** One-line description shown in `surface profiles list`. */
|
|
17
|
+
description: string;
|
|
18
|
+
/** Extended commands this profile hides from `--help`. */
|
|
19
|
+
hidden?: readonly string[];
|
|
20
|
+
/**
|
|
21
|
+
* Experimental commands this profile enables. Use sparingly —
|
|
22
|
+
* profiles should compose with packs' default `experimental`
|
|
23
|
+
* classification, not paper over it.
|
|
24
|
+
*/
|
|
25
|
+
enabled?: readonly string[];
|
|
26
|
+
/** Where the profile comes from (annotation for `surface explain`). */
|
|
27
|
+
source: 'builtin' | 'pack' | 'local';
|
|
28
|
+
/** When source='pack', the pack name. */
|
|
29
|
+
pack?: string;
|
|
30
|
+
}
|
|
31
|
+
/** Catalog of built-in profiles. */
|
|
32
|
+
export declare const BUILTIN_PROFILES: readonly ISurfaceProfile[];
|
|
33
|
+
/** Build a map of all profiles (builtin + pack-contributed). */
|
|
34
|
+
export declare function indexProfiles(packProfiles?: readonly ISurfaceProfile[]): Map<string, ISurfaceProfile>;
|
|
35
|
+
/** Look up a profile by id; returns undefined if unknown. */
|
|
36
|
+
export declare function getProfile(id: string, packProfiles?: readonly ISurfaceProfile[]): ISurfaceProfile | undefined;
|
|
37
|
+
//# sourceMappingURL=profiles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/surface/profiles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,eAAe;IAC9B,kEAAkE;IAClE,EAAE,EAAE,MAAM,CAAC;IACX,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,uEAAuE;IACvE,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IACrC,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAgID,oCAAoC;AACpC,eAAO,MAAM,gBAAgB,EAAE,SAAS,eAAe,EAOrD,CAAC;AAEH,gEAAgE;AAChE,wBAAgB,aAAa,CAC3B,YAAY,GAAE,SAAS,eAAe,EAAO,GAC5C,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAQ9B;AAED,6DAA6D;AAC7D,wBAAgB,UAAU,CACxB,EAAE,EAAE,MAAM,EACV,YAAY,GAAE,SAAS,eAAe,EAAO,GAC5C,eAAe,GAAG,SAAS,CAE7B"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Surface profiles.
|
|
3
|
+
*
|
|
4
|
+
* A profile is a named set of `surface.hidden` + `surface.enabled`
|
|
5
|
+
* adjustments. Built-in profiles ship from the engine; packs can
|
|
6
|
+
* contribute additional profiles via the pack manifest (see
|
|
7
|
+
* load-surface-context.ts). The user selects one via
|
|
8
|
+
* `sharkcraft.config.ts surface.profile`.
|
|
9
|
+
*
|
|
10
|
+
* Profiles are PURE DATA — no logic, no AI. Adding a profile is just
|
|
11
|
+
* adding an entry here (or in a pack manifest).
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* `developer` profile. Default for monorepo / app-with-libs shapes.
|
|
15
|
+
* Hides nothing — pack authors / power users see the full extended
|
|
16
|
+
* surface.
|
|
17
|
+
*/
|
|
18
|
+
const DEVELOPER_PROFILE = {
|
|
19
|
+
id: 'developer',
|
|
20
|
+
description: 'Full visible surface for power users / pack authors / engine contributors. Hides nothing.',
|
|
21
|
+
source: 'builtin',
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* `small-app` profile. Default for single-app shape (Angular, Next,
|
|
25
|
+
* etc.). Hides monorepo-only verbs from --help; the commands remain
|
|
26
|
+
* CALLABLE (use `surface unhide` to restore).
|
|
27
|
+
*/
|
|
28
|
+
const SMALL_APP_PROFILE = {
|
|
29
|
+
id: 'small-app',
|
|
30
|
+
description: 'Single-app / small-team default. Hides monorepo + pack-authoring + bundle verbs from --help.',
|
|
31
|
+
source: 'builtin',
|
|
32
|
+
hidden: [
|
|
33
|
+
// Bundle / replay machinery — not used in single-app workflows.
|
|
34
|
+
'bundle',
|
|
35
|
+
'bundle apply-assist',
|
|
36
|
+
'bundle apply-assist --resume',
|
|
37
|
+
'bundle create',
|
|
38
|
+
'bundle diff',
|
|
39
|
+
'bundle graph',
|
|
40
|
+
'bundle list',
|
|
41
|
+
'bundle plan',
|
|
42
|
+
'bundle replay',
|
|
43
|
+
'bundle show',
|
|
44
|
+
'bundle validate',
|
|
45
|
+
// Reposet / multi-repo orchestration — irrelevant for a single app.
|
|
46
|
+
'reposet',
|
|
47
|
+
'reposet init',
|
|
48
|
+
'reposet doctor',
|
|
49
|
+
'reposet list',
|
|
50
|
+
'reposet map',
|
|
51
|
+
// Pack authoring — single apps rarely author packs.
|
|
52
|
+
'pack',
|
|
53
|
+
'pack author preview',
|
|
54
|
+
'pack author pending',
|
|
55
|
+
'pack author status',
|
|
56
|
+
'pack author validate',
|
|
57
|
+
'packs new',
|
|
58
|
+
'packs sign',
|
|
59
|
+
'packs verify',
|
|
60
|
+
'packs release-check',
|
|
61
|
+
'packs compat',
|
|
62
|
+
'packs dev-status',
|
|
63
|
+
'packs watch',
|
|
64
|
+
],
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* `monorepo` profile. Default for monorepo / app-with-libs shapes.
|
|
68
|
+
* Same as developer; explicit so a user can opt in.
|
|
69
|
+
*/
|
|
70
|
+
const MONOREPO_PROFILE = {
|
|
71
|
+
id: 'monorepo',
|
|
72
|
+
description: 'Monorepo default. Full visible surface, including bundle / reposet / pack-authoring.',
|
|
73
|
+
source: 'builtin',
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* `pack-author` profile. Hides app-only verbs; keeps pack authoring
|
|
77
|
+
* + signing + release-check prominent.
|
|
78
|
+
*/
|
|
79
|
+
const PACK_AUTHOR_PROFILE = {
|
|
80
|
+
id: 'pack-author',
|
|
81
|
+
description: 'Pack author default. Hides app / runtime verbs; surfaces pack-* prominently.',
|
|
82
|
+
source: 'builtin',
|
|
83
|
+
hidden: [
|
|
84
|
+
'dev',
|
|
85
|
+
'dev start',
|
|
86
|
+
'dev status',
|
|
87
|
+
'dev report',
|
|
88
|
+
'review',
|
|
89
|
+
'review render-comment',
|
|
90
|
+
],
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* `ci` profile. Hides interactive / app verbs; keeps gates +
|
|
94
|
+
* read-only checks visible.
|
|
95
|
+
*/
|
|
96
|
+
const CI_PROFILE = {
|
|
97
|
+
id: 'ci',
|
|
98
|
+
description: 'CI default. Hides interactive / write-source verbs; keeps gates + read-only checks visible.',
|
|
99
|
+
source: 'builtin',
|
|
100
|
+
hidden: [
|
|
101
|
+
'dev',
|
|
102
|
+
'dev start',
|
|
103
|
+
'dev status',
|
|
104
|
+
'dev report',
|
|
105
|
+
'session',
|
|
106
|
+
'ask',
|
|
107
|
+
'orchestrate',
|
|
108
|
+
],
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* `agent` profile. Optimized for MCP / agent use. Hides interactive
|
|
112
|
+
* verbs; keeps JSON / read-only verbs visible.
|
|
113
|
+
*/
|
|
114
|
+
const AGENT_PROFILE = {
|
|
115
|
+
id: 'agent',
|
|
116
|
+
description: 'Agent / MCP-friendly default. Hides interactive verbs; favors JSON-pipe surfaces.',
|
|
117
|
+
source: 'builtin',
|
|
118
|
+
hidden: [
|
|
119
|
+
'dev',
|
|
120
|
+
'dev start',
|
|
121
|
+
'dev status',
|
|
122
|
+
'dev report',
|
|
123
|
+
'orchestrate',
|
|
124
|
+
'ask',
|
|
125
|
+
],
|
|
126
|
+
};
|
|
127
|
+
/** Catalog of built-in profiles. */
|
|
128
|
+
export const BUILTIN_PROFILES = Object.freeze([
|
|
129
|
+
DEVELOPER_PROFILE,
|
|
130
|
+
SMALL_APP_PROFILE,
|
|
131
|
+
MONOREPO_PROFILE,
|
|
132
|
+
PACK_AUTHOR_PROFILE,
|
|
133
|
+
CI_PROFILE,
|
|
134
|
+
AGENT_PROFILE,
|
|
135
|
+
]);
|
|
136
|
+
/** Build a map of all profiles (builtin + pack-contributed). */
|
|
137
|
+
export function indexProfiles(packProfiles = []) {
|
|
138
|
+
const map = new Map();
|
|
139
|
+
for (const p of BUILTIN_PROFILES)
|
|
140
|
+
map.set(p.id, p);
|
|
141
|
+
// Pack profiles can override builtin profiles by id (intentional —
|
|
142
|
+
// a pack that ships e.g. a 'monorepo-developer' profile gets first
|
|
143
|
+
// dibs over any namespace collision).
|
|
144
|
+
for (const p of packProfiles)
|
|
145
|
+
map.set(p.id, p);
|
|
146
|
+
return map;
|
|
147
|
+
}
|
|
148
|
+
/** Look up a profile by id; returns undefined if unknown. */
|
|
149
|
+
export function getProfile(id, packProfiles = []) {
|
|
150
|
+
return indexProfiles(packProfiles).get(id);
|
|
151
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ProjectShape } from '@shrkcrft/workspace';
|
|
2
|
+
/**
|
|
3
|
+
* Default `surface.hidden[]` seeding by project shape.
|
|
4
|
+
*
|
|
5
|
+
* Conservative cut: each list is small and explicitly justified. The
|
|
6
|
+
* shape detector seeds these only when the user runs `shrk init
|
|
7
|
+
* --write` (preview-first). Existing repos are not touched.
|
|
8
|
+
*
|
|
9
|
+
* Rationale:
|
|
10
|
+
* - `single-app` repos don't need monorepo-only commands by
|
|
11
|
+
* default. They stay callable; just hidden from --help.
|
|
12
|
+
* - `library` repos hide app/runtime-only commands.
|
|
13
|
+
* - `monorepo` and `app-with-libs` keep the full default surface.
|
|
14
|
+
*/
|
|
15
|
+
export declare const SHAPE_HIDDEN_DEFAULTS: Readonly<Record<ProjectShape, readonly string[]>>;
|
|
16
|
+
export declare function defaultHiddenForShape(shape: ProjectShape): readonly string[];
|
|
17
|
+
export declare function renderShapeLine(detection: {
|
|
18
|
+
shape: ProjectShape;
|
|
19
|
+
evidence: readonly string[];
|
|
20
|
+
}): string;
|
|
21
|
+
//# sourceMappingURL=shape-defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shape-defaults.d.ts","sourceRoot":"","sources":["../../src/surface/shape-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC,CA4BlF,CAAC;AAEH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAE5E;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE;IACzC,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B,GAAG,MAAM,CAGT"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { ProjectShape } from '@shrkcrft/workspace';
|
|
2
|
+
/**
|
|
3
|
+
* Default `surface.hidden[]` seeding by project shape.
|
|
4
|
+
*
|
|
5
|
+
* Conservative cut: each list is small and explicitly justified. The
|
|
6
|
+
* shape detector seeds these only when the user runs `shrk init
|
|
7
|
+
* --write` (preview-first). Existing repos are not touched.
|
|
8
|
+
*
|
|
9
|
+
* Rationale:
|
|
10
|
+
* - `single-app` repos don't need monorepo-only commands by
|
|
11
|
+
* default. They stay callable; just hidden from --help.
|
|
12
|
+
* - `library` repos hide app/runtime-only commands.
|
|
13
|
+
* - `monorepo` and `app-with-libs` keep the full default surface.
|
|
14
|
+
*/
|
|
15
|
+
export const SHAPE_HIDDEN_DEFAULTS = Object.freeze({
|
|
16
|
+
[ProjectShape.SingleApp]: Object.freeze([
|
|
17
|
+
'bundle',
|
|
18
|
+
'bundle apply-assist',
|
|
19
|
+
'bundle create',
|
|
20
|
+
'bundle diff',
|
|
21
|
+
'bundle list',
|
|
22
|
+
'bundle plan',
|
|
23
|
+
'bundle replay',
|
|
24
|
+
'bundle show',
|
|
25
|
+
'bundle validate',
|
|
26
|
+
'reposet',
|
|
27
|
+
'pack',
|
|
28
|
+
'packs new',
|
|
29
|
+
'packs sign',
|
|
30
|
+
'packs verify',
|
|
31
|
+
'packs release-check',
|
|
32
|
+
'packs compat',
|
|
33
|
+
]),
|
|
34
|
+
[ProjectShape.Library]: Object.freeze([
|
|
35
|
+
'dev',
|
|
36
|
+
'dev start',
|
|
37
|
+
'dev status',
|
|
38
|
+
'dev report',
|
|
39
|
+
]),
|
|
40
|
+
[ProjectShape.AppWithLibs]: Object.freeze([]),
|
|
41
|
+
[ProjectShape.Monorepo]: Object.freeze([]),
|
|
42
|
+
[ProjectShape.Unknown]: Object.freeze([]),
|
|
43
|
+
});
|
|
44
|
+
export function defaultHiddenForShape(shape) {
|
|
45
|
+
return SHAPE_HIDDEN_DEFAULTS[shape] ?? [];
|
|
46
|
+
}
|
|
47
|
+
export function renderShapeLine(detection) {
|
|
48
|
+
const ev = detection.evidence.length > 0 ? ` (${detection.evidence[0]})` : '';
|
|
49
|
+
return `Project shape: ${detection.shape}${ev}`;
|
|
50
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { IPipelineDefinition } from '@shrkcrft/pipelines';
|
|
2
|
+
/**
|
|
3
|
+
* IDs of pipelines treated as the "spine" — pipelines whose
|
|
4
|
+
* referenced commands are tier=Core regardless of any other catalog
|
|
5
|
+
* derivation rule.
|
|
6
|
+
*
|
|
7
|
+
* Today only `engine.feature-dev` exists in the engine repo.
|
|
8
|
+
* `engine.safe-generation` is a planned second spine pipeline; if a
|
|
9
|
+
* project ships it, it's automatically picked up here.
|
|
10
|
+
*/
|
|
11
|
+
export declare const SPINE_PIPELINE_IDS: readonly string[];
|
|
12
|
+
/**
|
|
13
|
+
* Extract the catalog command names referenced from spine
|
|
14
|
+
* pipelines AND in the core verb allowlist. The function does NOT
|
|
15
|
+
* execute any pipeline — it walks `steps[].cliCommands[]` and parses
|
|
16
|
+
* out the verb path.
|
|
17
|
+
*
|
|
18
|
+
* Parsing rule: each `cliCommands` entry is a shell-style string like
|
|
19
|
+
* `bun run shrk plan review /tmp/plan.json`. The parser strips a
|
|
20
|
+
* leading `bun run shrk` or `shrk` and returns the first 1-2 tokens
|
|
21
|
+
* as a command path. Multi-token paths are joined with a space so
|
|
22
|
+
* they match {@link ICommandCatalogEntry.command} entries that already
|
|
23
|
+
* use this form (`pack author status`, `plan review`).
|
|
24
|
+
*/
|
|
25
|
+
export declare function extractSpineCommands(pipelines: readonly IPipelineDefinition[]): ReadonlySet<string>;
|
|
26
|
+
/**
|
|
27
|
+
* Parse a single CLI command string into its catalog `command`
|
|
28
|
+
* path. Returns `undefined` if the string doesn't reference shrk.
|
|
29
|
+
*
|
|
30
|
+
* Examples:
|
|
31
|
+
* `bun run shrk doctor` → `doctor`
|
|
32
|
+
* `bun run shrk plan review /tmp/plan.json` → `plan review`
|
|
33
|
+
* `bun run shrk pack author status` → `pack author status`
|
|
34
|
+
* `bun run shrk context --task "<task>"` → `context`
|
|
35
|
+
* `bun x tsc` → undefined
|
|
36
|
+
*/
|
|
37
|
+
export declare function parseCommandVerb(raw: string): string | undefined;
|
|
38
|
+
//# sourceMappingURL=spine-extractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spine-extractor.d.ts","sourceRoot":"","sources":["../../src/surface/spine-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAG9C,CAAC;AAeH;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,SAAS,mBAAmB,EAAE,GACxC,WAAW,CAAC,MAAM,CAAC,CAerB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA+BhE"}
|