@harness-forge/cli 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/api-contract-review/SKILL.md +23 -0
- package/.agents/skills/architecture-decision-records/SKILL.md +23 -0
- package/.agents/skills/cloud-architect/SKILL.md +21 -0
- package/.agents/skills/cpp-engineering/SKILL.md +21 -0
- package/.agents/skills/db-migration-review/SKILL.md +23 -0
- package/.agents/skills/documentation-lookup/SKILL.md +8 -0
- package/.agents/skills/dotnet-engineering/SKILL.md +29 -0
- package/.agents/skills/go-engineering/SKILL.md +21 -0
- package/.agents/skills/java-engineering/SKILL.md +24 -0
- package/.agents/skills/javascript-engineering/SKILL.md +31 -0
- package/.agents/skills/kotlin-engineering/SKILL.md +21 -0
- package/.agents/skills/lua-engineering/SKILL.md +28 -0
- package/.agents/skills/parallel-worktree-supervisor/SKILL.md +23 -0
- package/.agents/skills/perl-engineering/SKILL.md +21 -0
- package/.agents/skills/php-engineering/SKILL.md +21 -0
- package/.agents/skills/powershell-engineering/SKILL.md +24 -0
- package/.agents/skills/python-engineering/SKILL.md +22 -0
- package/.agents/skills/release-readiness/SKILL.md +8 -0
- package/.agents/skills/repo-modernization/SKILL.md +23 -0
- package/.agents/skills/repo-onboarding/SKILL.md +23 -0
- package/.agents/skills/rust-engineering/SKILL.md +21 -0
- package/.agents/skills/security-scan/SKILL.md +8 -0
- package/.agents/skills/shell-engineering/SKILL.md +21 -0
- package/.agents/skills/speckit-analyze/SKILL.md +190 -0
- package/.agents/skills/speckit-checklist/SKILL.md +301 -0
- package/.agents/skills/speckit-clarify/SKILL.md +183 -0
- package/.agents/skills/speckit-constitution/SKILL.md +86 -0
- package/.agents/skills/speckit-implement/SKILL.md +204 -0
- package/.agents/skills/speckit-plan/SKILL.md +151 -0
- package/.agents/skills/speckit-specify/SKILL.md +304 -0
- package/.agents/skills/speckit-tasks/SKILL.md +197 -0
- package/.agents/skills/speckit-taskstoissues/SKILL.md +35 -0
- package/.agents/skills/swift-engineering/SKILL.md +21 -0
- package/.agents/skills/typescript-engineering/SKILL.md +28 -0
- package/.specify/README.md +3 -0
- package/.specify/extensions.yml +3 -0
- package/.specify/init-options.json +5 -0
- package/.specify/memory/constitution.md +5 -0
- package/.specify/scripts/powershell/check-prerequisites.ps1 +54 -0
- package/.specify/scripts/powershell/common.ps1 +263 -0
- package/.specify/scripts/powershell/create-new-feature.ps1 +23 -0
- package/.specify/scripts/powershell/setup-plan.ps1 +10 -0
- package/.specify/scripts/powershell/update-agent-context.ps1 +6 -0
- package/.specify/state/agent-context.md +1 -0
- package/.specify/state/flow-state.json +21 -0
- package/.specify/templates/agent-file-template.md +40 -0
- package/.specify/templates/checklist-template.md +5 -0
- package/.specify/templates/commands/plan.md +1 -0
- package/.specify/templates/commands/specify.md +1 -0
- package/.specify/templates/commands/tasks.md +1 -0
- package/.specify/templates/constitution-template.md +5 -0
- package/.specify/templates/plan-template.md +9 -0
- package/.specify/templates/spec-template.md +9 -0
- package/.specify/templates/tasks-template.md +5 -0
- package/AGENTS.md +75 -0
- package/CHANGELOG.md +15 -0
- package/CONTRIBUTING.md +38 -0
- package/LICENSE +674 -0
- package/README.md +386 -0
- package/RESEARCH-SOURCES.md +75 -0
- package/VALIDATION.md +32 -0
- package/agents/planner.md +49 -0
- package/commands/plan.md +41 -0
- package/commands/test.md +41 -0
- package/contexts/dev.md +25 -0
- package/dist/application/flow/load-flow-state.d.ts +17 -0
- package/dist/application/flow/load-flow-state.d.ts.map +1 -0
- package/dist/application/flow/load-flow-state.js +123 -0
- package/dist/application/flow/load-flow-state.js.map +1 -0
- package/dist/application/flow/save-flow-state.d.ts +3 -0
- package/dist/application/flow/save-flow-state.d.ts.map +1 -0
- package/dist/application/flow/save-flow-state.js +13 -0
- package/dist/application/flow/save-flow-state.js.map +1 -0
- package/dist/application/install/agent-manifest.d.ts +42 -0
- package/dist/application/install/agent-manifest.d.ts.map +1 -0
- package/dist/application/install/agent-manifest.js +144 -0
- package/dist/application/install/agent-manifest.js.map +1 -0
- package/dist/application/install/apply-install.d.ts +6 -0
- package/dist/application/install/apply-install.d.ts.map +1 -0
- package/dist/application/install/apply-install.js +83 -0
- package/dist/application/install/apply-install.js.map +1 -0
- package/dist/application/install/bootstrap-workspace.d.ts +33 -0
- package/dist/application/install/bootstrap-workspace.d.ts.map +1 -0
- package/dist/application/install/bootstrap-workspace.js +123 -0
- package/dist/application/install/bootstrap-workspace.js.map +1 -0
- package/dist/application/install/discover-workspace-targets.d.ts +9 -0
- package/dist/application/install/discover-workspace-targets.d.ts.map +1 -0
- package/dist/application/install/discover-workspace-targets.js +61 -0
- package/dist/application/install/discover-workspace-targets.js.map +1 -0
- package/dist/application/install/generate-guidance.d.ts +3 -0
- package/dist/application/install/generate-guidance.d.ts.map +1 -0
- package/dist/application/install/generate-guidance.js +25 -0
- package/dist/application/install/generate-guidance.js.map +1 -0
- package/dist/application/install/initialize-workspace.d.ts +16 -0
- package/dist/application/install/initialize-workspace.d.ts.map +1 -0
- package/dist/application/install/initialize-workspace.js +165 -0
- package/dist/application/install/initialize-workspace.js.map +1 -0
- package/dist/application/install/plan-install.d.ts +9 -0
- package/dist/application/install/plan-install.d.ts.map +1 -0
- package/dist/application/install/plan-install.js +123 -0
- package/dist/application/install/plan-install.js.map +1 -0
- package/dist/application/install/reconcile-state.d.ts +6 -0
- package/dist/application/install/reconcile-state.d.ts.map +1 -0
- package/dist/application/install/reconcile-state.js +39 -0
- package/dist/application/install/reconcile-state.js.map +1 -0
- package/dist/application/install/refresh-workspace-runtime.d.ts +9 -0
- package/dist/application/install/refresh-workspace-runtime.d.ts.map +1 -0
- package/dist/application/install/refresh-workspace-runtime.js +69 -0
- package/dist/application/install/refresh-workspace-runtime.js.map +1 -0
- package/dist/application/install/rewrite-installed-ai-layer.d.ts +3 -0
- package/dist/application/install/rewrite-installed-ai-layer.d.ts.map +1 -0
- package/dist/application/install/rewrite-installed-ai-layer.js +72 -0
- package/dist/application/install/rewrite-installed-ai-layer.js.map +1 -0
- package/dist/application/install/shared-runtime.d.ts +5 -0
- package/dist/application/install/shared-runtime.d.ts.map +1 -0
- package/dist/application/install/shared-runtime.js +388 -0
- package/dist/application/install/shared-runtime.js.map +1 -0
- package/dist/application/install/shell-integration.d.ts +40 -0
- package/dist/application/install/shell-integration.d.ts.map +1 -0
- package/dist/application/install/shell-integration.js +232 -0
- package/dist/application/install/shell-integration.js.map +1 -0
- package/dist/application/install/validate-environment.d.ts +2 -0
- package/dist/application/install/validate-environment.d.ts.map +1 -0
- package/dist/application/install/validate-environment.js +19 -0
- package/dist/application/install/validate-environment.js.map +1 -0
- package/dist/application/install/workspace-launcher.d.ts +7 -0
- package/dist/application/install/workspace-launcher.d.ts.map +1 -0
- package/dist/application/install/workspace-launcher.js +45 -0
- package/dist/application/install/workspace-launcher.js.map +1 -0
- package/dist/application/maintenance/audit-install.d.ts +17 -0
- package/dist/application/maintenance/audit-install.d.ts.map +1 -0
- package/dist/application/maintenance/audit-install.js +31 -0
- package/dist/application/maintenance/audit-install.js.map +1 -0
- package/dist/application/maintenance/diff-install.d.ts +7 -0
- package/dist/application/maintenance/diff-install.d.ts.map +1 -0
- package/dist/application/maintenance/diff-install.js +20 -0
- package/dist/application/maintenance/diff-install.js.map +1 -0
- package/dist/application/maintenance/doctor-workspace.d.ts +6 -0
- package/dist/application/maintenance/doctor-workspace.d.ts.map +1 -0
- package/dist/application/maintenance/doctor-workspace.js +12 -0
- package/dist/application/maintenance/doctor-workspace.js.map +1 -0
- package/dist/application/maintenance/prune-install.d.ts +5 -0
- package/dist/application/maintenance/prune-install.d.ts.map +1 -0
- package/dist/application/maintenance/prune-install.js +30 -0
- package/dist/application/maintenance/prune-install.js.map +1 -0
- package/dist/application/maintenance/sync-install.d.ts +6 -0
- package/dist/application/maintenance/sync-install.d.ts.map +1 -0
- package/dist/application/maintenance/sync-install.js +24 -0
- package/dist/application/maintenance/sync-install.js.map +1 -0
- package/dist/application/maintenance/upgrade-surface.d.ts +7 -0
- package/dist/application/maintenance/upgrade-surface.d.ts.map +1 -0
- package/dist/application/maintenance/upgrade-surface.js +18 -0
- package/dist/application/maintenance/upgrade-surface.js.map +1 -0
- package/dist/application/migration/scan-reference-install.d.ts +9 -0
- package/dist/application/migration/scan-reference-install.d.ts.map +1 -0
- package/dist/application/migration/scan-reference-install.js +17 -0
- package/dist/application/migration/scan-reference-install.js.map +1 -0
- package/dist/application/planning/resolve-bundles.d.ts +8 -0
- package/dist/application/planning/resolve-bundles.d.ts.map +1 -0
- package/dist/application/planning/resolve-bundles.js +40 -0
- package/dist/application/planning/resolve-bundles.js.map +1 -0
- package/dist/application/recommendations/recommend-bundles.d.ts +2 -0
- package/dist/application/recommendations/recommend-bundles.d.ts.map +1 -0
- package/dist/application/recommendations/recommend-bundles.js +89 -0
- package/dist/application/recommendations/recommend-bundles.js.map +1 -0
- package/dist/application/recommendations/recommend-from-intelligence.d.ts +3 -0
- package/dist/application/recommendations/recommend-from-intelligence.d.ts.map +1 -0
- package/dist/application/recommendations/recommend-from-intelligence.js +38 -0
- package/dist/application/recommendations/recommend-from-intelligence.js.map +1 -0
- package/dist/application/recommendations/recommend-templates.d.ts +2 -0
- package/dist/application/recommendations/recommend-templates.d.ts.map +1 -0
- package/dist/application/recommendations/recommend-templates.js +11 -0
- package/dist/application/recommendations/recommend-templates.js.map +1 -0
- package/dist/application/recursive/build-environment.d.ts +12 -0
- package/dist/application/recursive/build-environment.d.ts.map +1 -0
- package/dist/application/recursive/build-environment.js +91 -0
- package/dist/application/recursive/build-environment.js.map +1 -0
- package/dist/application/recursive/compact-session.d.ts +6 -0
- package/dist/application/recursive/compact-session.d.ts.map +1 -0
- package/dist/application/recursive/compact-session.js +10 -0
- package/dist/application/recursive/compact-session.js.map +1 -0
- package/dist/application/recursive/finalize-session.d.ts +6 -0
- package/dist/application/recursive/finalize-session.d.ts.map +1 -0
- package/dist/application/recursive/finalize-session.js +10 -0
- package/dist/application/recursive/finalize-session.js.map +1 -0
- package/dist/application/recursive/plan-task.d.ts +16 -0
- package/dist/application/recursive/plan-task.d.ts.map +1 -0
- package/dist/application/recursive/plan-task.js +115 -0
- package/dist/application/recursive/plan-task.js.map +1 -0
- package/dist/application/runtime/assess-architecture-significance.d.ts +13 -0
- package/dist/application/runtime/assess-architecture-significance.d.ts.map +1 -0
- package/dist/application/runtime/assess-architecture-significance.js +65 -0
- package/dist/application/runtime/assess-architecture-significance.js.map +1 -0
- package/dist/application/runtime/command-catalog.d.ts +17 -0
- package/dist/application/runtime/command-catalog.d.ts.map +1 -0
- package/dist/application/runtime/command-catalog.js +99 -0
- package/dist/application/runtime/command-catalog.js.map +1 -0
- package/dist/application/runtime/create-asr-record.d.ts +18 -0
- package/dist/application/runtime/create-asr-record.d.ts.map +1 -0
- package/dist/application/runtime/create-asr-record.js +105 -0
- package/dist/application/runtime/create-asr-record.js.map +1 -0
- package/dist/application/runtime/decision-runtime-store.d.ts +13 -0
- package/dist/application/runtime/decision-runtime-store.d.ts.map +1 -0
- package/dist/application/runtime/decision-runtime-store.js +60 -0
- package/dist/application/runtime/decision-runtime-store.js.map +1 -0
- package/dist/application/runtime/derive-impact-analysis.d.ts +5 -0
- package/dist/application/runtime/derive-impact-analysis.d.ts.map +1 -0
- package/dist/application/runtime/derive-impact-analysis.js +78 -0
- package/dist/application/runtime/derive-impact-analysis.js.map +1 -0
- package/dist/application/runtime/select-files-of-interest.d.ts +29 -0
- package/dist/application/runtime/select-files-of-interest.d.ts.map +1 -0
- package/dist/application/runtime/select-files-of-interest.js +162 -0
- package/dist/application/runtime/select-files-of-interest.js.map +1 -0
- package/dist/application/runtime/task-runtime-store.d.ts +37 -0
- package/dist/application/runtime/task-runtime-store.d.ts.map +1 -0
- package/dist/application/runtime/task-runtime-store.js +84 -0
- package/dist/application/runtime/task-runtime-store.js.map +1 -0
- package/dist/application/validation/validate-templates.d.ts +19 -0
- package/dist/application/validation/validate-templates.d.ts.map +1 -0
- package/dist/application/validation/validate-templates.js +142 -0
- package/dist/application/validation/validate-templates.js.map +1 -0
- package/dist/cli/commands/audit.d.ts +3 -0
- package/dist/cli/commands/audit.d.ts.map +1 -0
- package/dist/cli/commands/audit.js +37 -0
- package/dist/cli/commands/audit.js.map +1 -0
- package/dist/cli/commands/catalog.d.ts +3 -0
- package/dist/cli/commands/catalog.d.ts.map +1 -0
- package/dist/cli/commands/catalog.js +142 -0
- package/dist/cli/commands/catalog.js.map +1 -0
- package/dist/cli/commands/commands.d.ts +3 -0
- package/dist/cli/commands/commands.d.ts.map +1 -0
- package/dist/cli/commands/commands.js +32 -0
- package/dist/cli/commands/commands.js.map +1 -0
- package/dist/cli/commands/diff-install.d.ts +3 -0
- package/dist/cli/commands/diff-install.d.ts.map +1 -0
- package/dist/cli/commands/diff-install.js +31 -0
- package/dist/cli/commands/diff-install.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +3 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +33 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/export.d.ts +3 -0
- package/dist/cli/commands/export.d.ts.map +1 -0
- package/dist/cli/commands/export.js +37 -0
- package/dist/cli/commands/export.js.map +1 -0
- package/dist/cli/commands/flow.d.ts +3 -0
- package/dist/cli/commands/flow.d.ts.map +1 -0
- package/dist/cli/commands/flow.js +27 -0
- package/dist/cli/commands/flow.js.map +1 -0
- package/dist/cli/commands/init.d.ts +3 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +91 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/install.d.ts +3 -0
- package/dist/cli/commands/install.d.ts.map +1 -0
- package/dist/cli/commands/install.js +119 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/intelligence.d.ts +3 -0
- package/dist/cli/commands/intelligence.d.ts.map +1 -0
- package/dist/cli/commands/intelligence.js +63 -0
- package/dist/cli/commands/intelligence.js.map +1 -0
- package/dist/cli/commands/maintenance.d.ts +3 -0
- package/dist/cli/commands/maintenance.d.ts.map +1 -0
- package/dist/cli/commands/maintenance.js +81 -0
- package/dist/cli/commands/maintenance.js.map +1 -0
- package/dist/cli/commands/observability.d.ts +3 -0
- package/dist/cli/commands/observability.d.ts.map +1 -0
- package/dist/cli/commands/observability.js +33 -0
- package/dist/cli/commands/observability.js.map +1 -0
- package/dist/cli/commands/pack.d.ts +3 -0
- package/dist/cli/commands/pack.d.ts.map +1 -0
- package/dist/cli/commands/pack.js +25 -0
- package/dist/cli/commands/pack.js.map +1 -0
- package/dist/cli/commands/parallel.d.ts +3 -0
- package/dist/cli/commands/parallel.d.ts.map +1 -0
- package/dist/cli/commands/parallel.js +45 -0
- package/dist/cli/commands/parallel.js.map +1 -0
- package/dist/cli/commands/prune.d.ts +3 -0
- package/dist/cli/commands/prune.d.ts.map +1 -0
- package/dist/cli/commands/prune.js +25 -0
- package/dist/cli/commands/prune.js.map +1 -0
- package/dist/cli/commands/recommend.d.ts +3 -0
- package/dist/cli/commands/recommend.d.ts.map +1 -0
- package/dist/cli/commands/recommend.js +25 -0
- package/dist/cli/commands/recommend.js.map +1 -0
- package/dist/cli/commands/recursive.d.ts +3 -0
- package/dist/cli/commands/recursive.d.ts.map +1 -0
- package/dist/cli/commands/recursive.js +138 -0
- package/dist/cli/commands/recursive.js.map +1 -0
- package/dist/cli/commands/refresh.d.ts +3 -0
- package/dist/cli/commands/refresh.d.ts.map +1 -0
- package/dist/cli/commands/refresh.js +33 -0
- package/dist/cli/commands/refresh.js.map +1 -0
- package/dist/cli/commands/review.d.ts +3 -0
- package/dist/cli/commands/review.d.ts.map +1 -0
- package/dist/cli/commands/review.js +53 -0
- package/dist/cli/commands/review.js.map +1 -0
- package/dist/cli/commands/script-runner.d.ts +2 -0
- package/dist/cli/commands/script-runner.d.ts.map +1 -0
- package/dist/cli/commands/script-runner.js +21 -0
- package/dist/cli/commands/script-runner.js.map +1 -0
- package/dist/cli/commands/shell.d.ts +3 -0
- package/dist/cli/commands/shell.d.ts.map +1 -0
- package/dist/cli/commands/shell.js +91 -0
- package/dist/cli/commands/shell.js.map +1 -0
- package/dist/cli/commands/status.d.ts +3 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +31 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/sync.d.ts +3 -0
- package/dist/cli/commands/sync.d.ts.map +1 -0
- package/dist/cli/commands/sync.js +25 -0
- package/dist/cli/commands/sync.js.map +1 -0
- package/dist/cli/commands/target.d.ts +3 -0
- package/dist/cli/commands/target.d.ts.map +1 -0
- package/dist/cli/commands/target.js +78 -0
- package/dist/cli/commands/target.js.map +1 -0
- package/dist/cli/commands/task.d.ts +3 -0
- package/dist/cli/commands/task.d.ts.map +1 -0
- package/dist/cli/commands/task.js +57 -0
- package/dist/cli/commands/task.js.map +1 -0
- package/dist/cli/commands/template.d.ts +3 -0
- package/dist/cli/commands/template.d.ts.map +1 -0
- package/dist/cli/commands/template.js +81 -0
- package/dist/cli/commands/template.js.map +1 -0
- package/dist/cli/commands/upgrade-surface.d.ts +3 -0
- package/dist/cli/commands/upgrade-surface.d.ts.map +1 -0
- package/dist/cli/commands/upgrade-surface.js +24 -0
- package/dist/cli/commands/upgrade-surface.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +86 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/interactive/default-recommendations.d.ts +9 -0
- package/dist/cli/interactive/default-recommendations.d.ts.map +1 -0
- package/dist/cli/interactive/default-recommendations.js +19 -0
- package/dist/cli/interactive/default-recommendations.js.map +1 -0
- package/dist/cli/interactive/entry-router.d.ts +5 -0
- package/dist/cli/interactive/entry-router.d.ts.map +1 -0
- package/dist/cli/interactive/entry-router.js +30 -0
- package/dist/cli/interactive/entry-router.js.map +1 -0
- package/dist/cli/interactive/invocation-context.d.ts +16 -0
- package/dist/cli/interactive/invocation-context.d.ts.map +1 -0
- package/dist/cli/interactive/invocation-context.js +33 -0
- package/dist/cli/interactive/invocation-context.js.map +1 -0
- package/dist/cli/interactive/onboarding-flow.d.ts +3 -0
- package/dist/cli/interactive/onboarding-flow.d.ts.map +1 -0
- package/dist/cli/interactive/onboarding-flow.js +81 -0
- package/dist/cli/interactive/onboarding-flow.js.map +1 -0
- package/dist/cli/interactive/project-hub.d.ts +3 -0
- package/dist/cli/interactive/project-hub.d.ts.map +1 -0
- package/dist/cli/interactive/project-hub.js +159 -0
- package/dist/cli/interactive/project-hub.js.map +1 -0
- package/dist/cli/interactive/prompt-io.d.ts +23 -0
- package/dist/cli/interactive/prompt-io.d.ts.map +1 -0
- package/dist/cli/interactive/prompt-io.js +144 -0
- package/dist/cli/interactive/prompt-io.js.map +1 -0
- package/dist/cli/interactive/prompts/folder-selection.d.ts +3 -0
- package/dist/cli/interactive/prompts/folder-selection.d.ts.map +1 -0
- package/dist/cli/interactive/prompts/folder-selection.js +25 -0
- package/dist/cli/interactive/prompts/folder-selection.js.map +1 -0
- package/dist/cli/interactive/prompts/module-selection.d.ts +4 -0
- package/dist/cli/interactive/prompts/module-selection.d.ts.map +1 -0
- package/dist/cli/interactive/prompts/module-selection.js +21 -0
- package/dist/cli/interactive/prompts/module-selection.js.map +1 -0
- package/dist/cli/interactive/prompts/setup-profile.d.ts +4 -0
- package/dist/cli/interactive/prompts/setup-profile.d.ts.map +1 -0
- package/dist/cli/interactive/prompts/setup-profile.js +20 -0
- package/dist/cli/interactive/prompts/setup-profile.js.map +1 -0
- package/dist/cli/interactive/prompts/target-selection.d.ts +3 -0
- package/dist/cli/interactive/prompts/target-selection.d.ts.map +1 -0
- package/dist/cli/interactive/prompts/target-selection.js +28 -0
- package/dist/cli/interactive/prompts/target-selection.js.map +1 -0
- package/dist/cli/interactive/recovery-notices.d.ts +3 -0
- package/dist/cli/interactive/recovery-notices.d.ts.map +1 -0
- package/dist/cli/interactive/recovery-notices.js +13 -0
- package/dist/cli/interactive/recovery-notices.js.map +1 -0
- package/dist/cli/interactive/renderers/choice-list.d.ts +2 -0
- package/dist/cli/interactive/renderers/choice-list.d.ts.map +1 -0
- package/dist/cli/interactive/renderers/choice-list.js +9 -0
- package/dist/cli/interactive/renderers/choice-list.js.map +1 -0
- package/dist/cli/interactive/renderers/completion-screen.d.ts +4 -0
- package/dist/cli/interactive/renderers/completion-screen.d.ts.map +1 -0
- package/dist/cli/interactive/renderers/completion-screen.js +16 -0
- package/dist/cli/interactive/renderers/completion-screen.js.map +1 -0
- package/dist/cli/interactive/renderers/hub-screen.d.ts +3 -0
- package/dist/cli/interactive/renderers/hub-screen.d.ts.map +1 -0
- package/dist/cli/interactive/renderers/hub-screen.js +12 -0
- package/dist/cli/interactive/renderers/hub-screen.js.map +1 -0
- package/dist/cli/interactive/renderers/progress.d.ts +3 -0
- package/dist/cli/interactive/renderers/progress.d.ts.map +1 -0
- package/dist/cli/interactive/renderers/progress.js +5 -0
- package/dist/cli/interactive/renderers/progress.js.map +1 -0
- package/dist/cli/interactive/renderers/screen-layout.d.ts +9 -0
- package/dist/cli/interactive/renderers/screen-layout.d.ts.map +1 -0
- package/dist/cli/interactive/renderers/screen-layout.js +27 -0
- package/dist/cli/interactive/renderers/screen-layout.js.map +1 -0
- package/dist/cli/interactive/renderers/step-frame.d.ts +3 -0
- package/dist/cli/interactive/renderers/step-frame.d.ts.map +1 -0
- package/dist/cli/interactive/renderers/step-frame.js +7 -0
- package/dist/cli/interactive/renderers/step-frame.js.map +1 -0
- package/dist/cli/interactive/renderers/text-style.d.ts +10 -0
- package/dist/cli/interactive/renderers/text-style.d.ts.map +1 -0
- package/dist/cli/interactive/renderers/text-style.js +52 -0
- package/dist/cli/interactive/renderers/text-style.js.map +1 -0
- package/dist/cli/interactive/renderers/welcome-screen.d.ts +3 -0
- package/dist/cli/interactive/renderers/welcome-screen.d.ts.map +1 -0
- package/dist/cli/interactive/renderers/welcome-screen.js +22 -0
- package/dist/cli/interactive/renderers/welcome-screen.js.map +1 -0
- package/dist/cli/interactive/review-plan.d.ts +19 -0
- package/dist/cli/interactive/review-plan.d.ts.map +1 -0
- package/dist/cli/interactive/review-plan.js +151 -0
- package/dist/cli/interactive/review-plan.js.map +1 -0
- package/dist/cli/interactive/review-summary.d.ts +4 -0
- package/dist/cli/interactive/review-summary.d.ts.map +1 -0
- package/dist/cli/interactive/review-summary.js +20 -0
- package/dist/cli/interactive/review-summary.js.map +1 -0
- package/dist/cli/interactive/session-state.d.ts +35 -0
- package/dist/cli/interactive/session-state.d.ts.map +1 -0
- package/dist/cli/interactive/session-state.js +11 -0
- package/dist/cli/interactive/session-state.js.map +1 -0
- package/dist/cli/interactive/setup-intent.d.ts +32 -0
- package/dist/cli/interactive/setup-intent.d.ts.map +1 -0
- package/dist/cli/interactive/setup-intent.js +54 -0
- package/dist/cli/interactive/setup-intent.js.map +1 -0
- package/dist/cli/interactive/terminal-capabilities.d.ts +20 -0
- package/dist/cli/interactive/terminal-capabilities.d.ts.map +1 -0
- package/dist/cli/interactive/terminal-capabilities.js +69 -0
- package/dist/cli/interactive/terminal-capabilities.js.map +1 -0
- package/dist/domain/capabilities/capability-record.d.ts +25 -0
- package/dist/domain/capabilities/capability-record.d.ts.map +1 -0
- package/dist/domain/capabilities/capability-record.js +2 -0
- package/dist/domain/capabilities/capability-record.js.map +1 -0
- package/dist/domain/capabilities/capability-taxonomy.d.ts +11 -0
- package/dist/domain/capabilities/capability-taxonomy.d.ts.map +1 -0
- package/dist/domain/capabilities/capability-taxonomy.js +2 -0
- package/dist/domain/capabilities/capability-taxonomy.js.map +1 -0
- package/dist/domain/intelligence/instruction-plan.d.ts +26 -0
- package/dist/domain/intelligence/instruction-plan.d.ts.map +1 -0
- package/dist/domain/intelligence/instruction-plan.js +2 -0
- package/dist/domain/intelligence/instruction-plan.js.map +1 -0
- package/dist/domain/intelligence/repo-intelligence.d.ts +1007 -0
- package/dist/domain/intelligence/repo-intelligence.d.ts.map +1 -0
- package/dist/domain/intelligence/repo-intelligence.js +102 -0
- package/dist/domain/intelligence/repo-intelligence.js.map +1 -0
- package/dist/domain/intelligence/repo-map.d.ts +30 -0
- package/dist/domain/intelligence/repo-map.d.ts.map +1 -0
- package/dist/domain/intelligence/repo-map.js +2 -0
- package/dist/domain/intelligence/repo-map.js.map +1 -0
- package/dist/domain/manifests/index.d.ts +154 -0
- package/dist/domain/manifests/index.d.ts.map +1 -0
- package/dist/domain/manifests/index.js +37 -0
- package/dist/domain/manifests/index.js.map +1 -0
- package/dist/domain/observability/benchmark-expectation.d.ts +11 -0
- package/dist/domain/observability/benchmark-expectation.d.ts.map +1 -0
- package/dist/domain/observability/benchmark-expectation.js +2 -0
- package/dist/domain/observability/benchmark-expectation.js.map +1 -0
- package/dist/domain/observability/event.d.ts +17 -0
- package/dist/domain/observability/event.d.ts.map +1 -0
- package/dist/domain/observability/event.js +2 -0
- package/dist/domain/observability/event.js.map +1 -0
- package/dist/domain/observability/summary.d.ts +10 -0
- package/dist/domain/observability/summary.d.ts.map +1 -0
- package/dist/domain/observability/summary.js +2 -0
- package/dist/domain/observability/summary.js.map +1 -0
- package/dist/domain/operations/install-plan.d.ts +85 -0
- package/dist/domain/operations/install-plan.d.ts.map +1 -0
- package/dist/domain/operations/install-plan.js +2 -0
- package/dist/domain/operations/install-plan.js.map +1 -0
- package/dist/domain/parallel/merge-readiness.d.ts +10 -0
- package/dist/domain/parallel/merge-readiness.d.ts.map +1 -0
- package/dist/domain/parallel/merge-readiness.js +2 -0
- package/dist/domain/parallel/merge-readiness.js.map +1 -0
- package/dist/domain/parallel/parallel-plan.d.ts +24 -0
- package/dist/domain/parallel/parallel-plan.d.ts.map +1 -0
- package/dist/domain/parallel/parallel-plan.js +2 -0
- package/dist/domain/parallel/parallel-plan.js.map +1 -0
- package/dist/domain/parallel/shard-state.d.ts +11 -0
- package/dist/domain/parallel/shard-state.d.ts.map +1 -0
- package/dist/domain/parallel/shard-state.js +2 -0
- package/dist/domain/parallel/shard-state.js.map +1 -0
- package/dist/domain/recursive/adr-candidate.d.ts +45 -0
- package/dist/domain/recursive/adr-candidate.d.ts.map +1 -0
- package/dist/domain/recursive/adr-candidate.js +20 -0
- package/dist/domain/recursive/adr-candidate.js.map +1 -0
- package/dist/domain/recursive/asr.d.ts +41 -0
- package/dist/domain/recursive/asr.d.ts.map +1 -0
- package/dist/domain/recursive/asr.js +19 -0
- package/dist/domain/recursive/asr.js.map +1 -0
- package/dist/domain/recursive/budget.d.ts +47 -0
- package/dist/domain/recursive/budget.d.ts.map +1 -0
- package/dist/domain/recursive/budget.js +41 -0
- package/dist/domain/recursive/budget.js.map +1 -0
- package/dist/domain/recursive/session-summary.d.ts +56 -0
- package/dist/domain/recursive/session-summary.d.ts.map +1 -0
- package/dist/domain/recursive/session-summary.js +21 -0
- package/dist/domain/recursive/session-summary.js.map +1 -0
- package/dist/domain/recursive/session.d.ts +181 -0
- package/dist/domain/recursive/session.d.ts.map +1 -0
- package/dist/domain/recursive/session.js +41 -0
- package/dist/domain/recursive/session.js.map +1 -0
- package/dist/domain/recursive/template-registry.d.ts +83 -0
- package/dist/domain/recursive/template-registry.d.ts.map +1 -0
- package/dist/domain/recursive/template-registry.js +28 -0
- package/dist/domain/recursive/template-registry.js.map +1 -0
- package/dist/domain/recursive/trace-event.d.ts +61 -0
- package/dist/domain/recursive/trace-event.d.ts.map +1 -0
- package/dist/domain/recursive/trace-event.js +36 -0
- package/dist/domain/recursive/trace-event.js.map +1 -0
- package/dist/domain/runtime/architecture-significance.d.ts +35 -0
- package/dist/domain/runtime/architecture-significance.d.ts.map +1 -0
- package/dist/domain/runtime/architecture-significance.js +20 -0
- package/dist/domain/runtime/architecture-significance.js.map +1 -0
- package/dist/domain/runtime/decision-coverage-summary.d.ts +29 -0
- package/dist/domain/runtime/decision-coverage-summary.d.ts.map +1 -0
- package/dist/domain/runtime/decision-coverage-summary.js +14 -0
- package/dist/domain/runtime/decision-coverage-summary.js.map +1 -0
- package/dist/domain/runtime/decision-record.d.ts +482 -0
- package/dist/domain/runtime/decision-record.d.ts.map +1 -0
- package/dist/domain/runtime/decision-record.js +78 -0
- package/dist/domain/runtime/decision-record.js.map +1 -0
- package/dist/domain/runtime/file-interest.d.ts +148 -0
- package/dist/domain/runtime/file-interest.d.ts.map +1 -0
- package/dist/domain/runtime/file-interest.js +42 -0
- package/dist/domain/runtime/file-interest.js.map +1 -0
- package/dist/domain/runtime/impact-analysis.d.ts +122 -0
- package/dist/domain/runtime/impact-analysis.d.ts.map +1 -0
- package/dist/domain/runtime/impact-analysis.js +24 -0
- package/dist/domain/runtime/impact-analysis.js.map +1 -0
- package/dist/domain/runtime/task-pack.d.ts +278 -0
- package/dist/domain/runtime/task-pack.d.ts.map +1 -0
- package/dist/domain/runtime/task-pack.js +61 -0
- package/dist/domain/runtime/task-pack.js.map +1 -0
- package/dist/domain/runtime/template-registry.d.ts +100 -0
- package/dist/domain/runtime/template-registry.d.ts.map +1 -0
- package/dist/domain/runtime/template-registry.js +35 -0
- package/dist/domain/runtime/template-registry.js.map +1 -0
- package/dist/domain/runtime/working-memory.d.ts +44 -0
- package/dist/domain/runtime/working-memory.d.ts.map +1 -0
- package/dist/domain/runtime/working-memory.js +19 -0
- package/dist/domain/runtime/working-memory.js.map +1 -0
- package/dist/domain/state/install-state.d.ts +28 -0
- package/dist/domain/state/install-state.d.ts.map +1 -0
- package/dist/domain/state/install-state.js +15 -0
- package/dist/domain/state/install-state.js.map +1 -0
- package/dist/domain/targets/adapter.d.ts +18 -0
- package/dist/domain/targets/adapter.d.ts.map +1 -0
- package/dist/domain/targets/adapter.js +16 -0
- package/dist/domain/targets/adapter.js.map +1 -0
- package/dist/infrastructure/diagnostics/recommendation-reporter.d.ts +3 -0
- package/dist/infrastructure/diagnostics/recommendation-reporter.d.ts.map +1 -0
- package/dist/infrastructure/diagnostics/recommendation-reporter.js +44 -0
- package/dist/infrastructure/diagnostics/recommendation-reporter.js.map +1 -0
- package/dist/infrastructure/diagnostics/reporter.d.ts +6 -0
- package/dist/infrastructure/diagnostics/reporter.d.ts.map +1 -0
- package/dist/infrastructure/diagnostics/reporter.js +35 -0
- package/dist/infrastructure/diagnostics/reporter.js.map +1 -0
- package/dist/infrastructure/filesystem/apply-operation.d.ts +3 -0
- package/dist/infrastructure/filesystem/apply-operation.d.ts.map +1 -0
- package/dist/infrastructure/filesystem/apply-operation.js +75 -0
- package/dist/infrastructure/filesystem/apply-operation.js.map +1 -0
- package/dist/infrastructure/filesystem/normalize-target-path.d.ts +2 -0
- package/dist/infrastructure/filesystem/normalize-target-path.d.ts.map +1 -0
- package/dist/infrastructure/filesystem/normalize-target-path.js +11 -0
- package/dist/infrastructure/filesystem/normalize-target-path.js.map +1 -0
- package/dist/infrastructure/observability/local-metrics-store.d.ts +18 -0
- package/dist/infrastructure/observability/local-metrics-store.d.ts.map +1 -0
- package/dist/infrastructure/observability/local-metrics-store.js +35 -0
- package/dist/infrastructure/observability/local-metrics-store.js.map +1 -0
- package/dist/infrastructure/recursive/session-store.d.ts +45 -0
- package/dist/infrastructure/recursive/session-store.d.ts.map +1 -0
- package/dist/infrastructure/recursive/session-store.js +62 -0
- package/dist/infrastructure/recursive/session-store.js.map +1 -0
- package/dist/infrastructure/recursive/template-loader.d.ts +3 -0
- package/dist/infrastructure/recursive/template-loader.d.ts.map +1 -0
- package/dist/infrastructure/recursive/template-loader.js +19 -0
- package/dist/infrastructure/recursive/template-loader.js.map +1 -0
- package/dist/infrastructure/recursive/trace-logger.d.ts +3 -0
- package/dist/infrastructure/recursive/trace-logger.d.ts.map +1 -0
- package/dist/infrastructure/recursive/trace-logger.js +8 -0
- package/dist/infrastructure/recursive/trace-logger.js.map +1 -0
- package/dist/shared/constants.d.ts +97 -0
- package/dist/shared/constants.d.ts.map +1 -0
- package/dist/shared/constants.js +111 -0
- package/dist/shared/constants.js.map +1 -0
- package/dist/shared/errors.d.ts +8 -0
- package/dist/shared/errors.d.ts.map +1 -0
- package/dist/shared/errors.js +14 -0
- package/dist/shared/errors.js.map +1 -0
- package/dist/shared/fs.d.ts +8 -0
- package/dist/shared/fs.d.ts.map +1 -0
- package/dist/shared/fs.js +35 -0
- package/dist/shared/fs.js.map +1 -0
- package/dist/shared/index.d.ts +5 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +5 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/seeded-knowledge.d.ts +8 -0
- package/dist/shared/seeded-knowledge.d.ts.map +1 -0
- package/dist/shared/seeded-knowledge.js +49 -0
- package/dist/shared/seeded-knowledge.js.map +1 -0
- package/docs/agents.md +45 -0
- package/docs/authoring/engineering-assistant-port.md +108 -0
- package/docs/authoring/enhanced-skill-import.md +89 -0
- package/docs/authoring/skills.md +53 -0
- package/docs/benchmark-scenarios.md +29 -0
- package/docs/catalog/framework-packs.md +22 -0
- package/docs/catalog/frameworks/aspnet-core.md +18 -0
- package/docs/catalog/frameworks/django.md +18 -0
- package/docs/catalog/frameworks/express.md +18 -0
- package/docs/catalog/frameworks/fastapi.md +18 -0
- package/docs/catalog/frameworks/gin.md +18 -0
- package/docs/catalog/frameworks/ktor.md +18 -0
- package/docs/catalog/frameworks/laravel.md +14 -0
- package/docs/catalog/frameworks/nextjs.md +14 -0
- package/docs/catalog/frameworks/react.md +18 -0
- package/docs/catalog/frameworks/spring-boot.md +18 -0
- package/docs/catalog/frameworks/symfony.md +18 -0
- package/docs/catalog/frameworks/vite.md +18 -0
- package/docs/catalog/language-packs.md +39 -0
- package/docs/catalog/languages/cpp.md +25 -0
- package/docs/catalog/languages/dotnet.md +59 -0
- package/docs/catalog/languages/go.md +29 -0
- package/docs/catalog/languages/java.md +60 -0
- package/docs/catalog/languages/kotlin.md +29 -0
- package/docs/catalog/languages/lua.md +59 -0
- package/docs/catalog/languages/perl.md +25 -0
- package/docs/catalog/languages/php.md +30 -0
- package/docs/catalog/languages/powershell.md +59 -0
- package/docs/catalog/languages/python.md +30 -0
- package/docs/catalog/languages/rust.md +25 -0
- package/docs/catalog/languages/shell.md +25 -0
- package/docs/catalog/languages/swift.md +25 -0
- package/docs/catalog/languages/typescript.md +60 -0
- package/docs/commands.md +202 -0
- package/docs/content-architecture.md +3 -0
- package/docs/flow-orchestration/parallel-execution.md +7 -0
- package/docs/flow-orchestration.md +63 -0
- package/docs/generated-artifacts.md +129 -0
- package/docs/hooks/catalog.md +44 -0
- package/docs/install/targets.md +29 -0
- package/docs/installation.md +98 -0
- package/docs/languages.md +31 -0
- package/docs/maintenance-lifecycle.md +62 -0
- package/docs/manifests.md +16 -0
- package/docs/migration/reference-project.md +18 -0
- package/docs/observability/benchmark-authoring.md +6 -0
- package/docs/observability/eval-model.md +7 -0
- package/docs/observability/event-taxonomy.md +12 -0
- package/docs/observability.md +44 -0
- package/docs/pack-authoring.md +19 -0
- package/docs/parallel-worktrees.md +6 -0
- package/docs/profile-guide.md +63 -0
- package/docs/quality-gates.md +56 -0
- package/docs/quickstart.md +41 -0
- package/docs/release-process.md +30 -0
- package/docs/repo-cartography.md +12 -0
- package/docs/style-guides/agent-style-guide.md +21 -0
- package/docs/style-guides/command-style-guide.md +21 -0
- package/docs/style-guides/rule-style-guide.md +20 -0
- package/docs/target-support-matrix.md +73 -0
- package/docs/targets/capability-families.md +13 -0
- package/docs/targets/translation-vs-emulation.md +11 -0
- package/docs/targets.md +20 -0
- package/docs/templates/authoring.md +23 -0
- package/docs/troubleshooting.md +53 -0
- package/docs/versioning-and-migration.md +25 -0
- package/examples/README.md +12 -0
- package/examples/knowledge-bases/README.md +12 -0
- package/examples/production-readiness-demo/README.md +16 -0
- package/hooks/README.md +3 -0
- package/hooks/shared/PostChangeSummary.ps1 +1 -0
- package/hooks/shared/PreChangeQualityGate.ps1 +1 -0
- package/hooks/shared/post-change-summary.sh +3 -0
- package/hooks/shared/pre-change-quality-gate.sh +3 -0
- package/install.ps1 +28 -0
- package/install.sh +24 -0
- package/knowledge-bases/operations/observability-and-evals/README.md +7 -0
- package/knowledge-bases/seeded/README.md +33 -0
- package/knowledge-bases/seeded/dotnet/README.md +18 -0
- package/knowledge-bases/seeded/dotnet/docs/examples-guide.md +15 -0
- package/knowledge-bases/seeded/dotnet/docs/frameworks.md +11 -0
- package/knowledge-bases/seeded/dotnet/docs/overview.md +33 -0
- package/knowledge-bases/seeded/dotnet/docs/review-checklist.md +27 -0
- package/knowledge-bases/seeded/dotnet/examples/01-aspnet-core-crud-api.md +13 -0
- package/knowledge-bases/seeded/dotnet/examples/02-background-worker-with-queue-processing.md +13 -0
- package/knowledge-bases/seeded/dotnet/examples/03-shared-domain-library.md +13 -0
- package/knowledge-bases/seeded/dotnet/examples/04-cli-automation-tool.md +13 -0
- package/knowledge-bases/seeded/dotnet/knowledge-base.json +8 -0
- package/knowledge-bases/seeded/dotnet/legacy-seed/csharp/coding-style.md +72 -0
- package/knowledge-bases/seeded/dotnet/legacy-seed/csharp/hooks.md +25 -0
- package/knowledge-bases/seeded/dotnet/legacy-seed/csharp/patterns.md +50 -0
- package/knowledge-bases/seeded/dotnet/legacy-seed/csharp/security.md +58 -0
- package/knowledge-bases/seeded/dotnet/legacy-seed/csharp/testing.md +46 -0
- package/knowledge-bases/seeded/dotnet/rules/common/agents.md +50 -0
- package/knowledge-bases/seeded/dotnet/rules/common/coding-style.md +48 -0
- package/knowledge-bases/seeded/dotnet/rules/common/development-workflow.md +38 -0
- package/knowledge-bases/seeded/dotnet/rules/common/git-workflow.md +24 -0
- package/knowledge-bases/seeded/dotnet/rules/common/hooks.md +30 -0
- package/knowledge-bases/seeded/dotnet/rules/common/patterns.md +31 -0
- package/knowledge-bases/seeded/dotnet/rules/common/performance.md +55 -0
- package/knowledge-bases/seeded/dotnet/rules/common/security.md +29 -0
- package/knowledge-bases/seeded/dotnet/rules/common/testing.md +29 -0
- package/knowledge-bases/seeded/dotnet/rules/dotnet/coding-style.md +38 -0
- package/knowledge-bases/seeded/dotnet/rules/dotnet/hooks.md +24 -0
- package/knowledge-bases/seeded/dotnet/rules/dotnet/patterns.md +30 -0
- package/knowledge-bases/seeded/dotnet/rules/dotnet/security.md +28 -0
- package/knowledge-bases/seeded/dotnet/rules/dotnet/testing.md +31 -0
- package/knowledge-bases/seeded/java/README.md +18 -0
- package/knowledge-bases/seeded/java/docs/examples-guide.md +15 -0
- package/knowledge-bases/seeded/java/docs/frameworks.md +11 -0
- package/knowledge-bases/seeded/java/docs/overview.md +34 -0
- package/knowledge-bases/seeded/java/docs/review-checklist.md +27 -0
- package/knowledge-bases/seeded/java/examples/01-spring-boot-rest-api.md +13 -0
- package/knowledge-bases/seeded/java/examples/02-event-consumer-service.md +13 -0
- package/knowledge-bases/seeded/java/examples/03-gradle-multi-module-backend.md +13 -0
- package/knowledge-bases/seeded/java/examples/04-library-module-with-strong-domain-tests.md +13 -0
- package/knowledge-bases/seeded/java/knowledge-base.json +8 -0
- package/knowledge-bases/seeded/java/legacy-seed/java/coding-style.md +114 -0
- package/knowledge-bases/seeded/java/legacy-seed/java/hooks.md +18 -0
- package/knowledge-bases/seeded/java/legacy-seed/java/patterns.md +146 -0
- package/knowledge-bases/seeded/java/legacy-seed/java/security.md +100 -0
- package/knowledge-bases/seeded/java/legacy-seed/java/testing.md +131 -0
- package/knowledge-bases/seeded/java/rules/common/agents.md +50 -0
- package/knowledge-bases/seeded/java/rules/common/coding-style.md +48 -0
- package/knowledge-bases/seeded/java/rules/common/development-workflow.md +38 -0
- package/knowledge-bases/seeded/java/rules/common/git-workflow.md +24 -0
- package/knowledge-bases/seeded/java/rules/common/hooks.md +30 -0
- package/knowledge-bases/seeded/java/rules/common/patterns.md +31 -0
- package/knowledge-bases/seeded/java/rules/common/performance.md +55 -0
- package/knowledge-bases/seeded/java/rules/common/security.md +29 -0
- package/knowledge-bases/seeded/java/rules/common/testing.md +29 -0
- package/knowledge-bases/seeded/java/rules/java/coding-style.md +22 -0
- package/knowledge-bases/seeded/java/rules/java/hooks.md +23 -0
- package/knowledge-bases/seeded/java/rules/java/patterns.md +22 -0
- package/knowledge-bases/seeded/java/rules/java/security.md +21 -0
- package/knowledge-bases/seeded/java/rules/java/testing.md +23 -0
- package/knowledge-bases/seeded/lua/README.md +18 -0
- package/knowledge-bases/seeded/lua/docs/examples-guide.md +15 -0
- package/knowledge-bases/seeded/lua/docs/frameworks.md +11 -0
- package/knowledge-bases/seeded/lua/docs/overview.md +30 -0
- package/knowledge-bases/seeded/lua/docs/review-checklist.md +27 -0
- package/knowledge-bases/seeded/lua/examples/01-neovim-plugin.md +13 -0
- package/knowledge-bases/seeded/lua/examples/02-openresty-request-handler.md +13 -0
- package/knowledge-bases/seeded/lua/examples/03-l/303/266ve-gameplay-module.md +13 -0
- package/knowledge-bases/seeded/lua/examples/04-embedded-automation-script.md +13 -0
- package/knowledge-bases/seeded/lua/knowledge-base.json +8 -0
- package/knowledge-bases/seeded/lua/rules/common/agents.md +50 -0
- package/knowledge-bases/seeded/lua/rules/common/coding-style.md +48 -0
- package/knowledge-bases/seeded/lua/rules/common/development-workflow.md +38 -0
- package/knowledge-bases/seeded/lua/rules/common/git-workflow.md +24 -0
- package/knowledge-bases/seeded/lua/rules/common/hooks.md +30 -0
- package/knowledge-bases/seeded/lua/rules/common/patterns.md +31 -0
- package/knowledge-bases/seeded/lua/rules/common/performance.md +55 -0
- package/knowledge-bases/seeded/lua/rules/common/security.md +29 -0
- package/knowledge-bases/seeded/lua/rules/common/testing.md +29 -0
- package/knowledge-bases/seeded/lua/rules/lua/coding-style.md +27 -0
- package/knowledge-bases/seeded/lua/rules/lua/hooks.md +21 -0
- package/knowledge-bases/seeded/lua/rules/lua/patterns.md +23 -0
- package/knowledge-bases/seeded/lua/rules/lua/security.md +20 -0
- package/knowledge-bases/seeded/lua/rules/lua/testing.md +23 -0
- package/knowledge-bases/seeded/powershell/README.md +18 -0
- package/knowledge-bases/seeded/powershell/docs/examples-guide.md +15 -0
- package/knowledge-bases/seeded/powershell/docs/frameworks.md +11 -0
- package/knowledge-bases/seeded/powershell/docs/overview.md +30 -0
- package/knowledge-bases/seeded/powershell/docs/review-checklist.md +27 -0
- package/knowledge-bases/seeded/powershell/examples/01-script-module.md +13 -0
- package/knowledge-bases/seeded/powershell/examples/02-ci-admin-automation-script.md +13 -0
- package/knowledge-bases/seeded/powershell/examples/03-remote-fleet-maintenance-command.md +13 -0
- package/knowledge-bases/seeded/powershell/examples/04-developer-bootstrap-utility.md +13 -0
- package/knowledge-bases/seeded/powershell/knowledge-base.json +8 -0
- package/knowledge-bases/seeded/powershell/rules/common/agents.md +50 -0
- package/knowledge-bases/seeded/powershell/rules/common/coding-style.md +48 -0
- package/knowledge-bases/seeded/powershell/rules/common/development-workflow.md +38 -0
- package/knowledge-bases/seeded/powershell/rules/common/git-workflow.md +24 -0
- package/knowledge-bases/seeded/powershell/rules/common/hooks.md +30 -0
- package/knowledge-bases/seeded/powershell/rules/common/patterns.md +31 -0
- package/knowledge-bases/seeded/powershell/rules/common/performance.md +55 -0
- package/knowledge-bases/seeded/powershell/rules/common/security.md +29 -0
- package/knowledge-bases/seeded/powershell/rules/common/testing.md +29 -0
- package/knowledge-bases/seeded/powershell/rules/powershell/coding-style.md +25 -0
- package/knowledge-bases/seeded/powershell/rules/powershell/hooks.md +24 -0
- package/knowledge-bases/seeded/powershell/rules/powershell/patterns.md +23 -0
- package/knowledge-bases/seeded/powershell/rules/powershell/security.md +23 -0
- package/knowledge-bases/seeded/powershell/rules/powershell/testing.md +24 -0
- package/knowledge-bases/seeded/typescript/README.md +18 -0
- package/knowledge-bases/seeded/typescript/docs/examples-guide.md +15 -0
- package/knowledge-bases/seeded/typescript/docs/frameworks.md +11 -0
- package/knowledge-bases/seeded/typescript/docs/overview.md +34 -0
- package/knowledge-bases/seeded/typescript/docs/review-checklist.md +27 -0
- package/knowledge-bases/seeded/typescript/examples/01-node-api.md +13 -0
- package/knowledge-bases/seeded/typescript/examples/02-react-component-library.md +13 -0
- package/knowledge-bases/seeded/typescript/examples/03-nextjs-app.md +13 -0
- package/knowledge-bases/seeded/typescript/examples/04-monorepo-shared-types-and-validation.md +13 -0
- package/knowledge-bases/seeded/typescript/knowledge-base.json +8 -0
- package/knowledge-bases/seeded/typescript/legacy-seed/typescript/coding-style.md +199 -0
- package/knowledge-bases/seeded/typescript/legacy-seed/typescript/hooks.md +22 -0
- package/knowledge-bases/seeded/typescript/legacy-seed/typescript/patterns.md +52 -0
- package/knowledge-bases/seeded/typescript/legacy-seed/typescript/security.md +28 -0
- package/knowledge-bases/seeded/typescript/legacy-seed/typescript/testing.md +18 -0
- package/knowledge-bases/seeded/typescript/rules/common/agents.md +50 -0
- package/knowledge-bases/seeded/typescript/rules/common/coding-style.md +48 -0
- package/knowledge-bases/seeded/typescript/rules/common/development-workflow.md +38 -0
- package/knowledge-bases/seeded/typescript/rules/common/git-workflow.md +24 -0
- package/knowledge-bases/seeded/typescript/rules/common/hooks.md +30 -0
- package/knowledge-bases/seeded/typescript/rules/common/patterns.md +31 -0
- package/knowledge-bases/seeded/typescript/rules/common/performance.md +55 -0
- package/knowledge-bases/seeded/typescript/rules/common/security.md +29 -0
- package/knowledge-bases/seeded/typescript/rules/common/testing.md +29 -0
- package/knowledge-bases/seeded/typescript/rules/typescript/coding-style.md +30 -0
- package/knowledge-bases/seeded/typescript/rules/typescript/hooks.md +25 -0
- package/knowledge-bases/seeded/typescript/rules/typescript/patterns.md +23 -0
- package/knowledge-bases/seeded/typescript/rules/typescript/security.md +23 -0
- package/knowledge-bases/seeded/typescript/rules/typescript/testing.md +22 -0
- package/knowledge-bases/structured/README.md +3 -0
- package/knowledge-bases/structured/cpp/README.md +3 -0
- package/knowledge-bases/structured/cpp/docs/frameworks.md +3 -0
- package/knowledge-bases/structured/cpp/docs/overview.md +12 -0
- package/knowledge-bases/structured/cpp/docs/review-checklist.md +6 -0
- package/knowledge-bases/structured/cpp/examples/01-reference-scenario.md +3 -0
- package/knowledge-bases/structured/cpp/knowledge-base.json +13 -0
- package/knowledge-bases/structured/go/README.md +3 -0
- package/knowledge-bases/structured/go/docs/frameworks.md +3 -0
- package/knowledge-bases/structured/go/docs/overview.md +12 -0
- package/knowledge-bases/structured/go/docs/review-checklist.md +6 -0
- package/knowledge-bases/structured/go/examples/01-reference-scenario.md +3 -0
- package/knowledge-bases/structured/go/knowledge-base.json +13 -0
- package/knowledge-bases/structured/kotlin/README.md +3 -0
- package/knowledge-bases/structured/kotlin/docs/frameworks.md +3 -0
- package/knowledge-bases/structured/kotlin/docs/overview.md +12 -0
- package/knowledge-bases/structured/kotlin/docs/review-checklist.md +6 -0
- package/knowledge-bases/structured/kotlin/examples/01-reference-scenario.md +3 -0
- package/knowledge-bases/structured/kotlin/knowledge-base.json +13 -0
- package/knowledge-bases/structured/perl/README.md +3 -0
- package/knowledge-bases/structured/perl/docs/frameworks.md +3 -0
- package/knowledge-bases/structured/perl/docs/overview.md +12 -0
- package/knowledge-bases/structured/perl/docs/review-checklist.md +6 -0
- package/knowledge-bases/structured/perl/examples/01-reference-scenario.md +3 -0
- package/knowledge-bases/structured/perl/knowledge-base.json +13 -0
- package/knowledge-bases/structured/php/README.md +3 -0
- package/knowledge-bases/structured/php/docs/frameworks.md +3 -0
- package/knowledge-bases/structured/php/docs/overview.md +12 -0
- package/knowledge-bases/structured/php/docs/review-checklist.md +6 -0
- package/knowledge-bases/structured/php/examples/01-reference-scenario.md +3 -0
- package/knowledge-bases/structured/php/knowledge-base.json +13 -0
- package/knowledge-bases/structured/python/README.md +3 -0
- package/knowledge-bases/structured/python/docs/frameworks.md +3 -0
- package/knowledge-bases/structured/python/docs/overview.md +12 -0
- package/knowledge-bases/structured/python/docs/review-checklist.md +6 -0
- package/knowledge-bases/structured/python/examples/01-reference-scenario.md +3 -0
- package/knowledge-bases/structured/python/knowledge-base.json +13 -0
- package/knowledge-bases/structured/rust/README.md +3 -0
- package/knowledge-bases/structured/rust/docs/frameworks.md +3 -0
- package/knowledge-bases/structured/rust/docs/overview.md +12 -0
- package/knowledge-bases/structured/rust/docs/review-checklist.md +6 -0
- package/knowledge-bases/structured/rust/examples/01-reference-scenario.md +3 -0
- package/knowledge-bases/structured/rust/knowledge-base.json +13 -0
- package/knowledge-bases/structured/shell/README.md +3 -0
- package/knowledge-bases/structured/shell/docs/frameworks.md +3 -0
- package/knowledge-bases/structured/shell/docs/overview.md +12 -0
- package/knowledge-bases/structured/shell/docs/review-checklist.md +6 -0
- package/knowledge-bases/structured/shell/examples/01-reference-scenario.md +3 -0
- package/knowledge-bases/structured/shell/knowledge-base.json +13 -0
- package/knowledge-bases/structured/swift/README.md +3 -0
- package/knowledge-bases/structured/swift/docs/frameworks.md +3 -0
- package/knowledge-bases/structured/swift/docs/overview.md +12 -0
- package/knowledge-bases/structured/swift/docs/review-checklist.md +6 -0
- package/knowledge-bases/structured/swift/examples/01-reference-scenario.md +3 -0
- package/knowledge-bases/structured/swift/knowledge-base.json +13 -0
- package/manifests/bundles/core.json +384 -0
- package/manifests/bundles/frameworks.json +196 -0
- package/manifests/bundles/languages-seeded.json +136 -0
- package/manifests/bundles/languages-v1.json +317 -0
- package/manifests/catalog/capability-taxonomy.json +47 -0
- package/manifests/catalog/compatibility-matrix.json +4259 -0
- package/manifests/catalog/engineering-assistant-import-inventory.json +215 -0
- package/manifests/catalog/enhanced-skill-import-inventory.json +402 -0
- package/manifests/catalog/flow-artifacts.json +324 -0
- package/manifests/catalog/framework-assets.json +124 -0
- package/manifests/catalog/harness-capability-matrix.json +429 -0
- package/manifests/catalog/index.json +56 -0
- package/manifests/catalog/language-assets.json +616 -0
- package/manifests/catalog/package-surface.json +426 -0
- package/manifests/catalog/seeded-knowledge-files.json +1094 -0
- package/manifests/hooks/index.json +70 -0
- package/manifests/profiles/ai-runtime.json +24 -0
- package/manifests/profiles/core.json +24 -0
- package/manifests/profiles/developer.json +24 -0
- package/manifests/profiles/game-dev-native.json +24 -0
- package/manifests/profiles/legacy-modernization.json +24 -0
- package/manifests/profiles/rapid-prototyping.json +24 -0
- package/manifests/profiles/release-manager.json +24 -0
- package/manifests/profiles/research-first.json +24 -0
- package/manifests/profiles/reviewer.json +24 -0
- package/manifests/profiles/security.json +24 -0
- package/manifests/targets/core.json +125 -0
- package/mcp/README.md +3 -0
- package/mcp/servers/context7.codex.toml +3 -0
- package/mcp/servers/context7.md +3 -0
- package/mcp/servers/openai-developer-docs.codex.toml +3 -0
- package/mcp/servers/openai-developer-docs.md +3 -0
- package/mcp/servers/playwright.codex.toml +3 -0
- package/mcp/servers/playwright.md +3 -0
- package/mcp/servers/semgrep.md +3 -0
- package/package.json +126 -0
- package/profiles/README.md +3 -0
- package/profiles/claude-code.md +3 -0
- package/profiles/codex.md +3 -0
- package/profiles/core.md +3 -0
- package/profiles/developer.md +3 -0
- package/profiles/release-manager.md +3 -0
- package/rules/README.md +58 -0
- package/rules/common/README.md +37 -0
- package/rules/common/agents.md +50 -0
- package/rules/common/coding-style.md +48 -0
- package/rules/common/development-workflow.md +38 -0
- package/rules/common/git-workflow.md +24 -0
- package/rules/common/hooks.md +30 -0
- package/rules/common/patterns.md +31 -0
- package/rules/common/performance.md +55 -0
- package/rules/common/security.md +29 -0
- package/rules/common/testing.md +29 -0
- package/rules/cpp/README.md +19 -0
- package/rules/cpp/coding-style.md +3 -0
- package/rules/cpp/patterns.md +3 -0
- package/rules/cpp/security.md +3 -0
- package/rules/cpp/testing.md +3 -0
- package/rules/cpp/tooling.md +3 -0
- package/rules/dotnet/README.md +41 -0
- package/rules/dotnet/coding-style.md +38 -0
- package/rules/dotnet/hooks.md +24 -0
- package/rules/dotnet/patterns.md +30 -0
- package/rules/dotnet/security.md +28 -0
- package/rules/dotnet/testing.md +31 -0
- package/rules/golang/README.md +19 -0
- package/rules/golang/coding-style.md +3 -0
- package/rules/golang/patterns.md +3 -0
- package/rules/golang/security.md +3 -0
- package/rules/golang/testing.md +3 -0
- package/rules/golang/tooling.md +3 -0
- package/rules/java/README.md +41 -0
- package/rules/java/coding-style.md +22 -0
- package/rules/java/hooks.md +23 -0
- package/rules/java/patterns.md +22 -0
- package/rules/java/security.md +21 -0
- package/rules/java/testing.md +23 -0
- package/rules/kotlin/README.md +19 -0
- package/rules/kotlin/coding-style.md +3 -0
- package/rules/kotlin/patterns.md +3 -0
- package/rules/kotlin/security.md +3 -0
- package/rules/kotlin/testing.md +3 -0
- package/rules/kotlin/tooling.md +3 -0
- package/rules/lua/README.md +41 -0
- package/rules/lua/coding-style.md +27 -0
- package/rules/lua/hooks.md +21 -0
- package/rules/lua/patterns.md +23 -0
- package/rules/lua/security.md +20 -0
- package/rules/lua/testing.md +23 -0
- package/rules/perl/README.md +19 -0
- package/rules/perl/coding-style.md +3 -0
- package/rules/perl/patterns.md +3 -0
- package/rules/perl/security.md +3 -0
- package/rules/perl/testing.md +3 -0
- package/rules/perl/tooling.md +3 -0
- package/rules/php/README.md +19 -0
- package/rules/php/coding-style.md +3 -0
- package/rules/php/patterns.md +3 -0
- package/rules/php/security.md +3 -0
- package/rules/php/testing.md +3 -0
- package/rules/php/tooling.md +3 -0
- package/rules/powershell/README.md +41 -0
- package/rules/powershell/coding-style.md +25 -0
- package/rules/powershell/hooks.md +24 -0
- package/rules/powershell/patterns.md +23 -0
- package/rules/powershell/security.md +23 -0
- package/rules/powershell/testing.md +24 -0
- package/rules/python/README.md +19 -0
- package/rules/python/coding-style.md +3 -0
- package/rules/python/patterns.md +3 -0
- package/rules/python/security.md +3 -0
- package/rules/python/testing.md +3 -0
- package/rules/python/tooling.md +3 -0
- package/rules/rust/README.md +19 -0
- package/rules/rust/coding-style.md +3 -0
- package/rules/rust/patterns.md +3 -0
- package/rules/rust/security.md +3 -0
- package/rules/rust/testing.md +3 -0
- package/rules/rust/tooling.md +3 -0
- package/rules/shell/README.md +19 -0
- package/rules/shell/coding-style.md +3 -0
- package/rules/shell/patterns.md +3 -0
- package/rules/shell/security.md +3 -0
- package/rules/shell/testing.md +3 -0
- package/rules/shell/tooling.md +3 -0
- package/rules/swift/README.md +19 -0
- package/rules/swift/coding-style.md +3 -0
- package/rules/swift/patterns.md +3 -0
- package/rules/swift/security.md +3 -0
- package/rules/swift/testing.md +3 -0
- package/rules/swift/tooling.md +3 -0
- package/rules/typescript/README.md +41 -0
- package/rules/typescript/coding-style.md +30 -0
- package/rules/typescript/hooks.md +25 -0
- package/rules/typescript/patterns.md +23 -0
- package/rules/typescript/security.md +23 -0
- package/rules/typescript/testing.md +22 -0
- package/schemas/content/content-metadata.schema.json +100 -0
- package/schemas/hooks/hook.schema.json +57 -0
- package/schemas/manifests/catalog.schema.json +22 -0
- package/schemas/manifests/harness-capability-matrix.schema.json +127 -0
- package/schemas/manifests/package-surface.schema.json +63 -0
- package/schemas/manifests/seeded-knowledge-files.schema.json +69 -0
- package/schemas/runtime/architecture-significance.schema.json +45 -0
- package/schemas/runtime/benchmark-expectation.schema.json +33 -0
- package/schemas/runtime/decision-coverage-summary.schema.json +46 -0
- package/schemas/runtime/decision-record.schema.json +266 -0
- package/schemas/runtime/file-interest.schema.json +78 -0
- package/schemas/runtime/flow-state.schema.json +39 -0
- package/schemas/runtime/impact-analysis.schema.json +83 -0
- package/schemas/runtime/instruction-plan.schema.json +63 -0
- package/schemas/runtime/observability-event.schema.json +40 -0
- package/schemas/runtime/observability-summary.schema.json +32 -0
- package/schemas/runtime/recursive-adr-candidate.schema.json +57 -0
- package/schemas/runtime/recursive-budget.schema.json +40 -0
- package/schemas/runtime/recursive-session-summary.schema.json +49 -0
- package/schemas/runtime/recursive-session.schema.json +65 -0
- package/schemas/runtime/recursive-trace-event.schema.json +43 -0
- package/schemas/runtime/repo-map.schema.json +65 -0
- package/schemas/runtime/task-pack.schema.json +172 -0
- package/schemas/runtime/working-memory.schema.json +52 -0
- package/schemas/runtime/worktree-plan.schema.json +72 -0
- package/schemas/runtime/worktree-state.schema.json +41 -0
- package/schemas/templates/recursive-template-registry.schema.json +43 -0
- package/schemas/templates/runtime-template-registry.schema.json +55 -0
- package/schemas/templates/template-catalog.schema.json +38 -0
- package/scripts/ci/capability-matrix-shared.mjs +263 -0
- package/scripts/ci/generate-compatibility-matrix.mjs +189 -0
- package/scripts/ci/generate-target-support-docs.mjs +27 -0
- package/scripts/ci/release-smoke.mjs +121 -0
- package/scripts/ci/smoke-runner.mjs +90 -0
- package/scripts/ci/validate-capability-matrix.mjs +30 -0
- package/scripts/ci/validate-content-metadata.mjs +188 -0
- package/scripts/ci/validate-doc-command-alignment.mjs +146 -0
- package/scripts/ci/validate-framework-coverage.mjs +52 -0
- package/scripts/ci/validate-generated-sync.mjs +122 -0
- package/scripts/ci/validate-manifest-runtime-consistency.mjs +134 -0
- package/scripts/ci/validate-no-placeholders.mjs +86 -0
- package/scripts/ci/validate-pack-dependencies.mjs +78 -0
- package/scripts/ci/validate-packed-install-surface.mjs +77 -0
- package/scripts/ci/validate-seeded-knowledge-coverage.mjs +89 -0
- package/scripts/ci/validate-skill-depth.mjs +88 -0
- package/scripts/codex/apply-home-config.mjs +39 -0
- package/scripts/intelligence/cartograph-repo.mjs +15 -0
- package/scripts/intelligence/classify-boundaries.mjs +15 -0
- package/scripts/intelligence/detect-frameworks.mjs +16 -0
- package/scripts/intelligence/scan-repo.mjs +16 -0
- package/scripts/intelligence/score-recommendations.mjs +16 -0
- package/scripts/intelligence/shared/cartography.mjs +129 -0
- package/scripts/intelligence/shared.mjs +660 -0
- package/scripts/intelligence/synthesize-instructions.mjs +90 -0
- package/scripts/knowledge/import-pack.mjs +56 -0
- package/scripts/knowledge/normalize-pack.mjs +49 -0
- package/scripts/knowledge/report-coverage.mjs +82 -0
- package/scripts/knowledge/report-drift.mjs +67 -0
- package/scripts/runtime/check-merge-readiness.mjs +44 -0
- package/scripts/runtime/check-parallel-status.mjs +39 -0
- package/scripts/runtime/create-parallel-plan.mjs +61 -0
- package/scripts/runtime/flow-status.mjs +114 -0
- package/scripts/runtime/record-event.mjs +44 -0
- package/scripts/runtime/recursive-plan.mjs +25 -0
- package/scripts/runtime/render-observability-report.mjs +50 -0
- package/scripts/runtime/report-effectiveness.mjs +35 -0
- package/scripts/runtime/summarize-observability.mjs +57 -0
- package/scripts/templates/README.md +40 -0
- package/scripts/templates/config/required-sections.json +37 -0
- package/scripts/templates/powershell/Check-TemplateFrontmatter.ps1 +54 -0
- package/scripts/templates/powershell/Check-TemplateLinks.ps1 +22 -0
- package/scripts/templates/powershell/Get-MissingTemplateSections.ps1 +21 -0
- package/scripts/templates/powershell/New-TemplateIndex.ps1 +19 -0
- package/scripts/templates/powershell/Test-WorkflowContracts.ps1 +26 -0
- package/scripts/templates/shell/check-template-frontmatter.sh +39 -0
- package/scripts/templates/shell/check-template-links.sh +25 -0
- package/scripts/templates/shell/generate-template-index.sh +17 -0
- package/scripts/templates/shell/list-missing-template-sections.sh +36 -0
- package/scripts/templates/shell/verify-workflow-contracts.sh +21 -0
- package/skills/README.md +94 -0
- package/skills/api-contract-review/SKILL.md +56 -0
- package/skills/api-contract-review/references/event-and-async-contracts.md +16 -0
- package/skills/api-contract-review/references/examples.md +15 -0
- package/skills/api-contract-review/references/http-contract-checklist.md +24 -0
- package/skills/api-contract-review/references/protobuf-and-buf.md +12 -0
- package/skills/api-contract-review/references/review-template.md +19 -0
- package/skills/api-contract-review/references/schema-compatibility.md +20 -0
- package/skills/api-contract-review/references/style-and-linting.md +15 -0
- package/skills/architecture-decision-records/SKILL.md +53 -0
- package/skills/architecture-decision-records/references/adr-anti-patterns.md +10 -0
- package/skills/architecture-decision-records/references/adr-template.md +31 -0
- package/skills/architecture-decision-records/references/decision-rubric.md +22 -0
- package/skills/architecture-decision-records/references/examples.md +15 -0
- package/skills/architecture-decision-records/references/madr-style-guide.md +17 -0
- package/skills/cloud-architect/SKILL.md +61 -0
- package/skills/cloud-architect/references/agent-patterns.md +23 -0
- package/skills/cloud-architect/references/debugging-playbook.md +24 -0
- package/skills/cloud-architect/references/distributed-systems.md +13 -0
- package/skills/cloud-architect/references/examples.md +19 -0
- package/skills/cloud-architect/references/output-templates.md +35 -0
- package/skills/cloud-architect/references/platform-and-deployment.md +13 -0
- package/skills/cloud-architect/references/reliability-security-cost.md +17 -0
- package/skills/cloud-architect/references/repo-exploration.md +42 -0
- package/skills/cpp-engineering/SKILL.md +43 -0
- package/skills/db-migration-review/SKILL.md +56 -0
- package/skills/db-migration-review/references/engine-specific-hotspots.md +21 -0
- package/skills/db-migration-review/references/examples.md +16 -0
- package/skills/db-migration-review/references/expand-contract.md +19 -0
- package/skills/db-migration-review/references/review-template.md +25 -0
- package/skills/db-migration-review/references/risk-taxonomy.md +30 -0
- package/skills/db-migration-review/references/rollout-and-backfill.md +23 -0
- package/skills/db-migration-review/references/tooling-signals.md +21 -0
- package/skills/dependency-upgrade-safety/SKILL.md +36 -0
- package/skills/documentation-lookup/SKILL.md +45 -0
- package/skills/documentation-lookup/references/source-priority.md +6 -0
- package/skills/dotnet-engineering/SKILL.md +76 -0
- package/skills/dotnet-engineering/references/agent-patterns.md +30 -0
- package/skills/dotnet-engineering/references/architecture-and-di.md +28 -0
- package/skills/dotnet-engineering/references/aspnet-and-efcore.md +22 -0
- package/skills/dotnet-engineering/references/cloud-native-and-aspire.md +21 -0
- package/skills/dotnet-engineering/references/debugging-playbook.md +21 -0
- package/skills/dotnet-engineering/references/examples.md +22 -0
- package/skills/dotnet-engineering/references/output-templates.md +33 -0
- package/skills/dotnet-engineering/references/repo-exploration.md +38 -0
- package/skills/dotnet-engineering/references/testing-and-performance.md +25 -0
- package/skills/engineering-assistant/SKILL.md +59 -0
- package/skills/engineering-assistant/references/architecture.md +47 -0
- package/skills/engineering-assistant/references/change-discipline.md +37 -0
- package/skills/engineering-assistant/references/project-notes.md +36 -0
- package/skills/engineering-assistant/references/skill-composition.md +33 -0
- package/skills/engineering-assistant/references/solid-and-patterns.md +34 -0
- package/skills/go-engineering/SKILL.md +43 -0
- package/skills/incident-triage/SKILL.md +36 -0
- package/skills/java-engineering/SKILL.md +48 -0
- package/skills/java-engineering/references/agent-patterns.md +23 -0
- package/skills/java-engineering/references/build-and-structure.md +14 -0
- package/skills/java-engineering/references/debugging-playbook.md +24 -0
- package/skills/java-engineering/references/examples.md +15 -0
- package/skills/java-engineering/references/output-templates.md +35 -0
- package/skills/java-engineering/references/repo-exploration.md +42 -0
- package/skills/java-engineering/references/spring-patterns.md +12 -0
- package/skills/java-engineering/references/testing-concurrency-performance.md +11 -0
- package/skills/javascript-engineering/SKILL.md +66 -0
- package/skills/javascript-engineering/references/agent-patterns.md +22 -0
- package/skills/javascript-engineering/references/browser-and-bundler-patterns.md +14 -0
- package/skills/javascript-engineering/references/debugging-playbook.md +17 -0
- package/skills/javascript-engineering/references/ecosystem-guide.md +19 -0
- package/skills/javascript-engineering/references/examples.md +15 -0
- package/skills/javascript-engineering/references/node-service-patterns.md +15 -0
- package/skills/javascript-engineering/references/output-templates.md +17 -0
- package/skills/javascript-engineering/references/package-contracts.md +12 -0
- package/skills/javascript-engineering/references/repo-exploration.md +24 -0
- package/skills/javascript-engineering/references/testing-and-debugging.md +13 -0
- package/skills/kotlin-engineering/SKILL.md +43 -0
- package/skills/lua-engineering/SKILL.md +78 -0
- package/skills/lua-engineering/references/agent-patterns.md +22 -0
- package/skills/lua-engineering/references/debugging-and-testing.md +13 -0
- package/skills/lua-engineering/references/debugging-playbook.md +17 -0
- package/skills/lua-engineering/references/examples.md +15 -0
- package/skills/lua-engineering/references/game-and-addon-patterns.md +15 -0
- package/skills/lua-engineering/references/language-idioms.md +16 -0
- package/skills/lua-engineering/references/neovim-and-editor-patterns.md +17 -0
- package/skills/lua-engineering/references/openresty-patterns.md +15 -0
- package/skills/lua-engineering/references/output-templates.md +17 -0
- package/skills/lua-engineering/references/repo-exploration.md +25 -0
- package/skills/lua-engineering/references/runtime-profiles.md +12 -0
- package/skills/lua-engineering/references/tooling-and-quality.md +16 -0
- package/skills/observability-and-eval/SKILL.md +6 -0
- package/skills/observability-setup/SKILL.md +35 -0
- package/skills/parallel-worktree-supervisor/SKILL.md +55 -0
- package/skills/parallel-worktree-supervisor/references/examples.md +14 -0
- package/skills/parallel-worktree-supervisor/references/merge-readiness.md +15 -0
- package/skills/parallel-worktree-supervisor/references/output-template.md +16 -0
- package/skills/parallel-worktree-supervisor/references/stacked-diffs-and-review.md +17 -0
- package/skills/parallel-worktree-supervisor/references/task-sharding-rules.md +22 -0
- package/skills/parallel-worktree-supervisor/references/worktree-operations.md +16 -0
- package/skills/performance-profiling/SKILL.md +36 -0
- package/skills/perl-engineering/SKILL.md +43 -0
- package/skills/php-engineering/SKILL.md +43 -0
- package/skills/powershell-engineering/SKILL.md +48 -0
- package/skills/powershell-engineering/references/agent-patterns.md +23 -0
- package/skills/powershell-engineering/references/debugging-playbook.md +24 -0
- package/skills/powershell-engineering/references/examples.md +17 -0
- package/skills/powershell-engineering/references/output-templates.md +35 -0
- package/skills/powershell-engineering/references/remoting-and-ops.md +12 -0
- package/skills/powershell-engineering/references/repo-exploration.md +42 -0
- package/skills/powershell-engineering/references/scripting-and-modules.md +14 -0
- package/skills/powershell-engineering/references/testing-and-ci.md +11 -0
- package/skills/pr-triage-and-summary/SKILL.md +35 -0
- package/skills/python-engineering/SKILL.md +56 -0
- package/skills/python-engineering/references/agent-patterns.md +23 -0
- package/skills/python-engineering/references/async-and-concurrency.md +19 -0
- package/skills/python-engineering/references/debugging-playbook.md +24 -0
- package/skills/python-engineering/references/ecosystem-guide.md +32 -0
- package/skills/python-engineering/references/examples.md +19 -0
- package/skills/python-engineering/references/output-templates.md +35 -0
- package/skills/python-engineering/references/repo-exploration.md +42 -0
- package/skills/python-engineering/references/testing-and-quality.md +16 -0
- package/skills/release-readiness/SKILL.md +45 -0
- package/skills/release-readiness/references/release-report-template.md +7 -0
- package/skills/repo-cartographer/SKILL.md +10 -0
- package/skills/repo-modernization/SKILL.md +56 -0
- package/skills/repo-modernization/references/automation-candidates.md +19 -0
- package/skills/repo-modernization/references/dependency-and-build-modernization.md +16 -0
- package/skills/repo-modernization/references/examples.md +15 -0
- package/skills/repo-modernization/references/modernization-layers.md +21 -0
- package/skills/repo-modernization/references/roadmap-template.md +25 -0
- package/skills/repo-modernization/references/safety-rails.md +15 -0
- package/skills/repo-modernization/references/strangler-and-seams.md +18 -0
- package/skills/repo-onboarding/SKILL.md +56 -0
- package/skills/repo-onboarding/references/command-discovery.md +13 -0
- package/skills/repo-onboarding/references/discovery-checklist.md +24 -0
- package/skills/repo-onboarding/references/examples.md +13 -0
- package/skills/repo-onboarding/references/monorepo-signals.md +17 -0
- package/skills/repo-onboarding/references/output-template.md +26 -0
- package/skills/repo-onboarding/references/ownership-and-health-signals.md +21 -0
- package/skills/repo-onboarding/references/repo-archetypes.md +13 -0
- package/skills/rust-engineering/SKILL.md +43 -0
- package/skills/security-scan/SKILL.md +45 -0
- package/skills/security-scan/references/review-checklist.md +7 -0
- package/skills/shell-engineering/SKILL.md +43 -0
- package/skills/speckit-analyze/SKILL.md +190 -0
- package/skills/speckit-checklist/SKILL.md +301 -0
- package/skills/speckit-clarify/SKILL.md +183 -0
- package/skills/speckit-constitution/SKILL.md +86 -0
- package/skills/speckit-implement/SKILL.md +204 -0
- package/skills/speckit-plan/SKILL.md +151 -0
- package/skills/speckit-specify/SKILL.md +304 -0
- package/skills/speckit-tasks/SKILL.md +197 -0
- package/skills/speckit-taskstoissues/SKILL.md +35 -0
- package/skills/swift-engineering/SKILL.md +43 -0
- package/skills/test-strategy-and-coverage/SKILL.md +35 -0
- package/skills/typescript-engineering/SKILL.md +77 -0
- package/skills/typescript-engineering/references/agent-patterns.md +23 -0
- package/skills/typescript-engineering/references/debugging-playbook.md +21 -0
- package/skills/typescript-engineering/references/examples.md +22 -0
- package/skills/typescript-engineering/references/frontend-and-backend-patterns.md +19 -0
- package/skills/typescript-engineering/references/output-templates.md +25 -0
- package/skills/typescript-engineering/references/repo-exploration.md +25 -0
- package/skills/typescript-engineering/references/runtime-validation-and-boundaries.md +20 -0
- package/skills/typescript-engineering/references/tsconfig-and-build.md +25 -0
- package/skills/typescript-engineering/references/type-system-patterns.md +20 -0
- package/skills/typescript-engineering/references/workspace-and-monorepo.md +23 -0
- package/targets/claude-code/adapter.json +56 -0
- package/targets/claude-code/runtime/.claude/CLAUDE.md +3 -0
- package/targets/claude-code/runtime/.claude/agents/documentation-lookup.md +3 -0
- package/targets/claude-code/runtime/.claude/agents/release-readiness.md +3 -0
- package/targets/claude-code/runtime/.claude/agents/repo-onboarding.md +3 -0
- package/targets/claude-code/runtime/.claude/agents/security-scan.md +3 -0
- package/targets/claude-code/runtime/.claude/hooks/post-tool-use.sh +4 -0
- package/targets/claude-code/runtime/.claude/hooks/pre-tool-use.sh +4 -0
- package/targets/claude-code/runtime/.claude/settings.json +26 -0
- package/targets/codex/adapter.json +56 -0
- package/targets/codex/runtime/.codex/README.md +3 -0
- package/targets/codex/runtime/.codex/config.toml +15 -0
- package/targets/cursor/adapter.json +56 -0
- package/targets/opencode/adapter.json +56 -0
- package/templates/instructions/cursor-rule-template.mdc +7 -0
- package/templates/instructions/root-agents-template.md +88 -0
- package/templates/instructions/scoped-agents-template.md +90 -0
- package/templates/tasks/fix-bug.md +93 -0
- package/templates/tasks/implement-feature.md +95 -0
- package/templates/workflows/implement-cpp-change.md +175 -0
- package/templates/workflows/implement-dotnet-change.md +175 -0
- package/templates/workflows/implement-go-change.md +175 -0
- package/templates/workflows/implement-java-change.md +175 -0
- package/templates/workflows/implement-kotlin-change.md +175 -0
- package/templates/workflows/implement-lua-change.md +175 -0
- package/templates/workflows/implement-perl-change.md +175 -0
- package/templates/workflows/implement-php-change.md +175 -0
- package/templates/workflows/implement-powershell-change.md +175 -0
- package/templates/workflows/implement-python-change.md +175 -0
- package/templates/workflows/implement-rust-change.md +175 -0
- package/templates/workflows/implement-shell-change.md +175 -0
- package/templates/workflows/implement-swift-change.md +175 -0
- package/templates/workflows/implement-typescript-change.md +176 -0
- package/templates/workflows/parallel-implement-and-merge.md +191 -0
- package/templates/workflows/research-plan-implement-validate.md +187 -0
- package/templates/workflows/triage-reproduce-fix-verify.md +167 -0
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { exists, FLOW_STATE_FILE, readJsonFile, SPECIFY_STATE_DIR } from "../../shared/index.js";
|
|
4
|
+
async function listFeatureDirs(root) {
|
|
5
|
+
const specsRoot = path.join(root, "specs");
|
|
6
|
+
if (!(await exists(specsRoot))) {
|
|
7
|
+
return [];
|
|
8
|
+
}
|
|
9
|
+
const entries = await fs.readdir(specsRoot, { withFileTypes: true });
|
|
10
|
+
return entries.filter((entry) => entry.isDirectory()).map((entry) => path.join(specsRoot, entry.name));
|
|
11
|
+
}
|
|
12
|
+
async function latestFeatureDir(root) {
|
|
13
|
+
const featureDirs = await listFeatureDirs(root);
|
|
14
|
+
if (featureDirs.length === 0) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
const stats = await Promise.all(featureDirs.map(async (featureDir) => ({
|
|
18
|
+
featureDir,
|
|
19
|
+
stat: await fs.stat(featureDir)
|
|
20
|
+
})));
|
|
21
|
+
stats.sort((left, right) => right.stat.mtimeMs - left.stat.mtimeMs);
|
|
22
|
+
return stats[0]?.featureDir ?? null;
|
|
23
|
+
}
|
|
24
|
+
function inferStage(taskContent, hasPlan, hasSpec) {
|
|
25
|
+
if (!taskContent) {
|
|
26
|
+
return hasPlan ? "plan" : hasSpec ? "specify" : "clarify";
|
|
27
|
+
}
|
|
28
|
+
const incompleteCount = (taskContent.match(/^- \[ \]/gm) ?? []).length;
|
|
29
|
+
const completeCount = (taskContent.match(/^- \[[xX]\]/gm) ?? []).length;
|
|
30
|
+
if (incompleteCount === 0 && completeCount > 0) {
|
|
31
|
+
return "validate";
|
|
32
|
+
}
|
|
33
|
+
if (completeCount > 0) {
|
|
34
|
+
return "implement";
|
|
35
|
+
}
|
|
36
|
+
return "tasks";
|
|
37
|
+
}
|
|
38
|
+
function inferNextAction(featureId, stage, status) {
|
|
39
|
+
if (status === "complete") {
|
|
40
|
+
return `Review validation output for ${featureId} and prepare release or handoff.`;
|
|
41
|
+
}
|
|
42
|
+
switch (stage) {
|
|
43
|
+
case "clarify":
|
|
44
|
+
return "Run /speckit-clarify or create the initial feature spec.";
|
|
45
|
+
case "specify":
|
|
46
|
+
return `Run /speckit-plan for ${featureId}.`;
|
|
47
|
+
case "plan":
|
|
48
|
+
return `Run /speckit-tasks for ${featureId}.`;
|
|
49
|
+
case "tasks":
|
|
50
|
+
return `Start implementation from specs/${featureId}/tasks.md.`;
|
|
51
|
+
case "implement":
|
|
52
|
+
return `Continue implementation and keep specs/${featureId}/tasks.md updated.`;
|
|
53
|
+
case "validate":
|
|
54
|
+
return `Run release and quickstart validation for ${featureId}.`;
|
|
55
|
+
case "analyze":
|
|
56
|
+
return `Review analysis output and continue the planned flow for ${featureId}.`;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
async function buildArtifactLineage(root, featureDir) {
|
|
60
|
+
const candidatePaths = [
|
|
61
|
+
"spec.md",
|
|
62
|
+
"checklists/requirements.md",
|
|
63
|
+
"plan.md",
|
|
64
|
+
"research.md",
|
|
65
|
+
"data-model.md",
|
|
66
|
+
"quickstart.md",
|
|
67
|
+
"contracts/repo-intelligence-contract.md",
|
|
68
|
+
"contracts/flow-state-contract.md",
|
|
69
|
+
"contracts/hook-manifest-contract.md",
|
|
70
|
+
"contracts/compatibility-matrix-contract.md",
|
|
71
|
+
"tasks.md"
|
|
72
|
+
];
|
|
73
|
+
const lineage = [];
|
|
74
|
+
for (const relativePath of candidatePaths) {
|
|
75
|
+
const absolutePath = path.join(featureDir, relativePath);
|
|
76
|
+
if (await exists(absolutePath)) {
|
|
77
|
+
lineage.push(path.relative(root, absolutePath).replaceAll("\\", "/"));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return lineage;
|
|
81
|
+
}
|
|
82
|
+
export async function inferFlowState(root) {
|
|
83
|
+
const featureDir = await latestFeatureDir(root);
|
|
84
|
+
if (!featureDir) {
|
|
85
|
+
return {
|
|
86
|
+
featureId: "uninitialized",
|
|
87
|
+
currentStage: "clarify",
|
|
88
|
+
status: "active",
|
|
89
|
+
lastArtifact: ".specify/state/agent-context.md",
|
|
90
|
+
nextAction: "Create a feature spec before attempting flow recovery.",
|
|
91
|
+
updatedAt: new Date().toISOString(),
|
|
92
|
+
blockers: ["No feature directory exists under specs/."]
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
const featureId = path.basename(featureDir);
|
|
96
|
+
const specPath = path.join(featureDir, "spec.md");
|
|
97
|
+
const planPath = path.join(featureDir, "plan.md");
|
|
98
|
+
const tasksPath = path.join(featureDir, "tasks.md");
|
|
99
|
+
const hasSpec = await exists(specPath);
|
|
100
|
+
const hasPlan = await exists(planPath);
|
|
101
|
+
const taskContent = (await exists(tasksPath)) ? await fs.readFile(tasksPath, "utf8") : null;
|
|
102
|
+
const currentStage = inferStage(taskContent, hasPlan, hasSpec);
|
|
103
|
+
const status = currentStage === "validate" ? "complete" : "active";
|
|
104
|
+
const artifactLineage = await buildArtifactLineage(root, featureDir);
|
|
105
|
+
const lastArtifact = artifactLineage[artifactLineage.length - 1] ?? `specs/${featureId}/spec.md`;
|
|
106
|
+
return {
|
|
107
|
+
featureId,
|
|
108
|
+
currentStage,
|
|
109
|
+
status,
|
|
110
|
+
lastArtifact,
|
|
111
|
+
nextAction: inferNextAction(featureId, currentStage, status),
|
|
112
|
+
updatedAt: new Date().toISOString(),
|
|
113
|
+
artifactLineage
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
export async function loadFlowState(root) {
|
|
117
|
+
const flowStatePath = path.join(root, SPECIFY_STATE_DIR, FLOW_STATE_FILE);
|
|
118
|
+
if (await exists(flowStatePath)) {
|
|
119
|
+
return readJsonFile(flowStatePath);
|
|
120
|
+
}
|
|
121
|
+
return inferFlowState(root);
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=load-flow-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-flow-state.js","sourceRoot":"","sources":["../../../src/application/flow/load-flow-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"save-flow-state.d.ts","sourceRoot":"","sources":["../../../src/application/flow/save-flow-state.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CASzF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { ensureDir, FLOW_STATE_FILE, SPECIFY_STATE_DIR, writeJsonFile } from "../../shared/index.js";
|
|
3
|
+
export async function saveFlowState(root, state) {
|
|
4
|
+
const stateDir = path.join(root, SPECIFY_STATE_DIR);
|
|
5
|
+
await ensureDir(stateDir);
|
|
6
|
+
const destination = path.join(stateDir, FLOW_STATE_FILE);
|
|
7
|
+
await writeJsonFile(destination, {
|
|
8
|
+
...state,
|
|
9
|
+
updatedAt: state.updatedAt || new Date().toISOString()
|
|
10
|
+
});
|
|
11
|
+
return destination;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=save-flow-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"save-flow-state.js","sourceRoot":"","sources":["../../../src/application/flow/save-flow-state.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGrG,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,KAAsB;IACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IACpD,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACzD,MAAM,aAAa,CAAC,WAAW,EAAE;QAC/B,GAAG,KAAK;QACR,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACvD,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
interface AgentManifestSurface {
|
|
2
|
+
path: string;
|
|
3
|
+
category: "entrypoint" | "discovery" | "instruction-library" | "runtime-state" | "state" | "generated" | "launcher" | "target-runtime";
|
|
4
|
+
visibility: "visible-bridge" | "hidden-canonical" | "generated";
|
|
5
|
+
treatAsProductCode: false;
|
|
6
|
+
description: string;
|
|
7
|
+
}
|
|
8
|
+
export interface AgentManifest {
|
|
9
|
+
version: number;
|
|
10
|
+
generatedAt: string;
|
|
11
|
+
packageName: string;
|
|
12
|
+
packageVersion: string;
|
|
13
|
+
runtimeSchemaVersion: number | null;
|
|
14
|
+
aiLayerRoot: string;
|
|
15
|
+
visibilityMode: string;
|
|
16
|
+
entrypoints: {
|
|
17
|
+
canonicalInstructionFile: string;
|
|
18
|
+
machineReadableManifest: string;
|
|
19
|
+
sharedRuntimeIndex: string;
|
|
20
|
+
commandCatalog: string;
|
|
21
|
+
installState: string;
|
|
22
|
+
};
|
|
23
|
+
resolutionOrder: string[];
|
|
24
|
+
visibleBridgePaths: string[];
|
|
25
|
+
authoritativeSurfaces: string[];
|
|
26
|
+
installedTargets: Array<{
|
|
27
|
+
targetId: string;
|
|
28
|
+
displayName: string;
|
|
29
|
+
supportMode: string;
|
|
30
|
+
instructionSurfaces: string[];
|
|
31
|
+
runtimeSurfaces: string[];
|
|
32
|
+
}>;
|
|
33
|
+
localLaunchers: string[];
|
|
34
|
+
surfaces: AgentManifestSurface[];
|
|
35
|
+
guidance: string[];
|
|
36
|
+
}
|
|
37
|
+
export declare function writeAgentManifest(workspaceRoot: string, packageRoot?: string): Promise<{
|
|
38
|
+
path: string;
|
|
39
|
+
manifest: AgentManifest;
|
|
40
|
+
}>;
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=agent-manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-manifest.d.ts","sourceRoot":"","sources":["../../../src/application/install/agent-manifest.ts"],"names":[],"mappings":"AAkCA,UAAU,oBAAoB;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EACJ,YAAY,GACZ,WAAW,GACX,qBAAqB,GACrB,eAAe,GACf,OAAO,GACP,WAAW,GACX,UAAU,GACV,gBAAgB,CAAC;IACrB,UAAU,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,WAAW,CAAC;IAChE,kBAAkB,EAAE,KAAK,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE;QACX,wBAAwB,EAAE,MAAM,CAAC;QACjC,uBAAuB,EAAE,MAAM,CAAC;QAChC,kBAAkB,EAAE,MAAM,CAAC;QAC3B,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,gBAAgB,EAAE,KAAK,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,mBAAmB,EAAE,MAAM,EAAE,CAAC;QAC9B,eAAe,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC,CAAC;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AA6GD,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EACrB,WAAW,SAAe,GACzB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,aAAa,CAAA;CAAE,CAAC,CA2EpD"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { AGENT_MANIFEST_FILE, AI_LAYER_ROOT_DIR, AI_LAYER_VISIBLE_MODE, GENERATED_DIR, PACKAGE_ROOT, readJsonFile, RUNTIME_DIR, RUNTIME_INDEX_FILE, STATE_DIR, exists, writeJsonFile } from "../../shared/index.js";
|
|
3
|
+
async function tryReadJson(filePath) {
|
|
4
|
+
if (!(await exists(filePath))) {
|
|
5
|
+
return null;
|
|
6
|
+
}
|
|
7
|
+
return readJsonFile(filePath);
|
|
8
|
+
}
|
|
9
|
+
function toPortablePath(value) {
|
|
10
|
+
return value.replaceAll("\\", "/");
|
|
11
|
+
}
|
|
12
|
+
function createSurface(pathValue, category, visibility, description) {
|
|
13
|
+
return {
|
|
14
|
+
path: pathValue,
|
|
15
|
+
category,
|
|
16
|
+
visibility,
|
|
17
|
+
treatAsProductCode: false,
|
|
18
|
+
description
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function getLocalLauncherPaths() {
|
|
22
|
+
return [
|
|
23
|
+
`${GENERATED_DIR}/bin/hforge.cmd`,
|
|
24
|
+
`${GENERATED_DIR}/bin/hforge.ps1`,
|
|
25
|
+
`${GENERATED_DIR}/bin/hforge`
|
|
26
|
+
];
|
|
27
|
+
}
|
|
28
|
+
function buildSurfaceIndex(runtime, launchers) {
|
|
29
|
+
const surfaces = new Map();
|
|
30
|
+
const visibleBridges = runtime?.visibleBridgePaths ?? ["AGENTS.md", ".agents/skills", ".specify"];
|
|
31
|
+
const authoritative = runtime?.authoritativeSurfaces ?? [
|
|
32
|
+
".hforge/library/skills",
|
|
33
|
+
".hforge/library/rules",
|
|
34
|
+
".hforge/library/knowledge",
|
|
35
|
+
".hforge/templates",
|
|
36
|
+
".hforge/runtime",
|
|
37
|
+
".hforge/state",
|
|
38
|
+
".hforge/generated"
|
|
39
|
+
];
|
|
40
|
+
surfaces.set("AGENTS.md", createSurface("AGENTS.md", "entrypoint", "visible-bridge", "Canonical human-readable instruction entrypoint for compatible agents."));
|
|
41
|
+
surfaces.set(".agents/skills", createSurface(".agents/skills", "discovery", "visible-bridge", "Discovery wrappers that route agents into the hidden canonical skill library."));
|
|
42
|
+
surfaces.set(".specify", createSurface(".specify", "discovery", "visible-bridge", "Structured feature flow helpers for spec, plan, tasks, and implementation."));
|
|
43
|
+
for (const bridgePath of visibleBridges) {
|
|
44
|
+
if (bridgePath === "AGENTS.md" || bridgePath === ".agents/skills" || bridgePath === ".specify") {
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
const category = bridgePath.startsWith(".codex") || bridgePath.startsWith(".claude") ? "target-runtime" : "discovery";
|
|
48
|
+
surfaces.set(bridgePath, createSurface(bridgePath, category, "visible-bridge", "Visible bridge surface that helps a target runtime discover the hidden AI layer."));
|
|
49
|
+
}
|
|
50
|
+
for (const surfacePath of authoritative) {
|
|
51
|
+
const category = surfacePath === ".hforge/runtime"
|
|
52
|
+
? "runtime-state"
|
|
53
|
+
: surfacePath === ".hforge/state"
|
|
54
|
+
? "state"
|
|
55
|
+
: surfacePath === ".hforge/generated"
|
|
56
|
+
? "generated"
|
|
57
|
+
: "instruction-library";
|
|
58
|
+
const description = surfacePath === ".hforge/runtime"
|
|
59
|
+
? "Shared runtime, repo intelligence, task artifacts, and recursive session state."
|
|
60
|
+
: surfacePath === ".hforge/state"
|
|
61
|
+
? "Install-state and recovery guidance for the current workspace."
|
|
62
|
+
: surfacePath === ".hforge/generated"
|
|
63
|
+
? "Generated helper outputs such as command catalogs and local launchers."
|
|
64
|
+
: "Canonical hidden AI-layer content used by compatible agents.";
|
|
65
|
+
const visibility = surfacePath === ".hforge/generated" ? "generated" : "hidden-canonical";
|
|
66
|
+
surfaces.set(surfacePath, createSurface(surfacePath, category, visibility, description));
|
|
67
|
+
}
|
|
68
|
+
surfaces.set(AGENT_MANIFEST_FILE, createSurface(AGENT_MANIFEST_FILE, "generated", "generated", "Machine-readable custom-agent manifest describing bridges, canonical roots, and safe command discovery."));
|
|
69
|
+
for (const launcherPath of launchers) {
|
|
70
|
+
surfaces.set(launcherPath, createSurface(launcherPath, "launcher", "generated", "Workspace-local launcher that runs Harness Forge without requiring a global install."));
|
|
71
|
+
}
|
|
72
|
+
return [...surfaces.values()].sort((left, right) => left.path.localeCompare(right.path));
|
|
73
|
+
}
|
|
74
|
+
export async function writeAgentManifest(workspaceRoot, packageRoot = PACKAGE_ROOT) {
|
|
75
|
+
const [packageJson, runtimeIndex, installState] = await Promise.all([
|
|
76
|
+
readJsonFile(path.join(packageRoot, "package.json")),
|
|
77
|
+
tryReadJson(path.join(workspaceRoot, RUNTIME_DIR, RUNTIME_INDEX_FILE)),
|
|
78
|
+
tryReadJson(path.join(workspaceRoot, STATE_DIR, "install-state.json"))
|
|
79
|
+
]);
|
|
80
|
+
const launcherPaths = getLocalLauncherPaths();
|
|
81
|
+
const manifestPath = path.join(workspaceRoot, AGENT_MANIFEST_FILE);
|
|
82
|
+
const installedTargets = runtimeIndex?.targets?.map((target) => ({
|
|
83
|
+
targetId: target.targetId,
|
|
84
|
+
displayName: target.displayName,
|
|
85
|
+
supportMode: target.supportMode,
|
|
86
|
+
instructionSurfaces: target.instructionSurfaces,
|
|
87
|
+
runtimeSurfaces: target.runtimeSurfaces
|
|
88
|
+
})) ??
|
|
89
|
+
(installState?.installedTargets ?? []).map((targetId) => ({
|
|
90
|
+
targetId,
|
|
91
|
+
displayName: targetId,
|
|
92
|
+
supportMode: "unknown",
|
|
93
|
+
instructionSurfaces: [],
|
|
94
|
+
runtimeSurfaces: []
|
|
95
|
+
}));
|
|
96
|
+
const manifest = {
|
|
97
|
+
version: 1,
|
|
98
|
+
generatedAt: new Date().toISOString(),
|
|
99
|
+
packageName: packageJson.name,
|
|
100
|
+
packageVersion: runtimeIndex?.packageVersion ?? packageJson.version,
|
|
101
|
+
runtimeSchemaVersion: runtimeIndex?.runtimeSchemaVersion ?? installState?.runtimeSchemaVersion ?? null,
|
|
102
|
+
aiLayerRoot: AI_LAYER_ROOT_DIR,
|
|
103
|
+
visibilityMode: runtimeIndex?.visibilityMode ?? installState?.visibilityMode ?? AI_LAYER_VISIBLE_MODE,
|
|
104
|
+
entrypoints: {
|
|
105
|
+
canonicalInstructionFile: "AGENTS.md",
|
|
106
|
+
machineReadableManifest: AGENT_MANIFEST_FILE,
|
|
107
|
+
sharedRuntimeIndex: `${RUNTIME_DIR}/${RUNTIME_INDEX_FILE}`,
|
|
108
|
+
commandCatalog: `${GENERATED_DIR}/agent-command-catalog.json`,
|
|
109
|
+
installState: `${STATE_DIR}/install-state.json`
|
|
110
|
+
},
|
|
111
|
+
resolutionOrder: [
|
|
112
|
+
"AGENTS.md",
|
|
113
|
+
".hforge/agent-manifest.json",
|
|
114
|
+
".hforge/runtime/index.json",
|
|
115
|
+
".hforge/generated/agent-command-catalog.json",
|
|
116
|
+
".agents/skills/<skill>/SKILL.md",
|
|
117
|
+
".hforge/library/skills/<skill>/SKILL.md"
|
|
118
|
+
],
|
|
119
|
+
visibleBridgePaths: runtimeIndex?.visibleBridgePaths ??
|
|
120
|
+
(installState?.visibleBridgePaths?.map((entry) => toPortablePath(path.relative(workspaceRoot, entry))) ?? ["AGENTS.md", ".agents/skills", ".specify"]),
|
|
121
|
+
authoritativeSurfaces: runtimeIndex?.authoritativeSurfaces ??
|
|
122
|
+
(installState?.hiddenCanonicalRoots?.map((entry) => toPortablePath(path.relative(workspaceRoot, entry))) ?? [
|
|
123
|
+
".hforge/library/skills",
|
|
124
|
+
".hforge/library/rules",
|
|
125
|
+
".hforge/library/knowledge",
|
|
126
|
+
".hforge/templates",
|
|
127
|
+
".hforge/runtime",
|
|
128
|
+
".hforge/state",
|
|
129
|
+
".hforge/generated"
|
|
130
|
+
]),
|
|
131
|
+
installedTargets,
|
|
132
|
+
localLaunchers: launcherPaths,
|
|
133
|
+
surfaces: buildSurfaceIndex(runtimeIndex, launcherPaths),
|
|
134
|
+
guidance: [
|
|
135
|
+
"Treat AGENTS.md as the primary human-readable instruction entrypoint.",
|
|
136
|
+
"Use .agents/skills/ for discovery and .hforge/library/skills/ for canonical execution contracts.",
|
|
137
|
+
"Treat .hforge/library/, .hforge/templates/, .hforge/runtime/, .hforge/state/, and .hforge/generated/ as AI-layer surfaces rather than product code.",
|
|
138
|
+
"Use .hforge/generated/agent-command-catalog.json to discover safe CLI commands before inventing your own execution path."
|
|
139
|
+
]
|
|
140
|
+
};
|
|
141
|
+
await writeJsonFile(manifestPath, manifest);
|
|
142
|
+
return { path: manifestPath, manifest };
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=agent-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-manifest.js","sourceRoot":"","sources":["../../../src/application/install/agent-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply-install.d.ts","sourceRoot":"","sources":["../../../src/application/install/apply-install.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAU3E,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CA6EzH"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { applyOperation } from "../../infrastructure/filesystem/apply-operation.js";
|
|
3
|
+
import { loadInstallState, saveInstallState } from "../../domain/state/install-state.js";
|
|
4
|
+
import { PACKAGE_ROOT, RUNTIME_SCHEMA_VERSION, readJsonFile, writeTextFile } from "../../shared/index.js";
|
|
5
|
+
import { writeAgentCommandCatalog } from "../runtime/command-catalog.js";
|
|
6
|
+
import { writeAgentManifest } from "./agent-manifest.js";
|
|
7
|
+
import { generateGuidance } from "./generate-guidance.js";
|
|
8
|
+
import { rewriteInstalledAiLayerReferences } from "./rewrite-installed-ai-layer.js";
|
|
9
|
+
import { writeSharedRuntime } from "./shared-runtime.js";
|
|
10
|
+
export async function applyInstall(root, plan) {
|
|
11
|
+
const packageJson = await readJsonFile(path.join(PACKAGE_ROOT, "package.json"));
|
|
12
|
+
const visibilityPolicy = plan.visibilityPolicy ?? {
|
|
13
|
+
mode: "hidden-ai-layer",
|
|
14
|
+
aiLayerRoot: path.join(root, ".hforge"),
|
|
15
|
+
hiddenCanonicalRoots: [],
|
|
16
|
+
visibleBridgePaths: []
|
|
17
|
+
};
|
|
18
|
+
const messages = [];
|
|
19
|
+
for (const operation of plan.operations) {
|
|
20
|
+
messages.push(await applyOperation(operation));
|
|
21
|
+
}
|
|
22
|
+
const rewrittenFiles = await rewriteInstalledAiLayerReferences(root, plan);
|
|
23
|
+
const guidance = generateGuidance(plan);
|
|
24
|
+
const guidancePath = path.join(root, ".hforge", "state", "post-install-guidance.txt");
|
|
25
|
+
await writeTextFile(guidancePath, guidance);
|
|
26
|
+
const sharedRuntime = await writeSharedRuntime(root, plan);
|
|
27
|
+
const existingState = await loadInstallState(root);
|
|
28
|
+
const commandCatalog = await writeAgentCommandCatalog(root, PACKAGE_ROOT);
|
|
29
|
+
const agentManifestPath = path.join(root, ".hforge", "agent-manifest.json");
|
|
30
|
+
const generatedFiles = [
|
|
31
|
+
guidancePath,
|
|
32
|
+
commandCatalog.jsonPath,
|
|
33
|
+
commandCatalog.markdownPath,
|
|
34
|
+
...(sharedRuntime
|
|
35
|
+
? [sharedRuntime.indexPath, sharedRuntime.readmePath, ...sharedRuntime.baselineArtifacts.map((artifact) => artifact.path)]
|
|
36
|
+
: [])
|
|
37
|
+
];
|
|
38
|
+
await saveInstallState(root, {
|
|
39
|
+
version: existingState?.version ?? 2,
|
|
40
|
+
packageVersion: packageJson.version,
|
|
41
|
+
runtimeSchemaVersion: RUNTIME_SCHEMA_VERSION,
|
|
42
|
+
installedTargets: [...new Set([...(existingState?.installedTargets ?? []), plan.selection.targetId])],
|
|
43
|
+
installedBundles: [
|
|
44
|
+
...new Set([...(existingState?.installedBundles ?? []), ...plan.operations.map((operation) => operation.bundleId)])
|
|
45
|
+
],
|
|
46
|
+
appliedPlanHash: plan.hash,
|
|
47
|
+
fileWrites: [
|
|
48
|
+
...new Set([
|
|
49
|
+
...(existingState?.fileWrites ?? []),
|
|
50
|
+
...plan.operations.map((operation) => operation.destinationPath),
|
|
51
|
+
...rewrittenFiles,
|
|
52
|
+
...generatedFiles,
|
|
53
|
+
agentManifestPath
|
|
54
|
+
])
|
|
55
|
+
],
|
|
56
|
+
backupSnapshots: [...new Set([...(existingState?.backupSnapshots ?? []), ...plan.backupRequirements])],
|
|
57
|
+
timestamps: {
|
|
58
|
+
createdAt: existingState?.timestamps.createdAt ?? new Date().toISOString(),
|
|
59
|
+
updatedAt: new Date().toISOString()
|
|
60
|
+
},
|
|
61
|
+
lastValidationStatus: "unknown",
|
|
62
|
+
visibilityMode: visibilityPolicy.mode,
|
|
63
|
+
aiLayerRoot: visibilityPolicy.aiLayerRoot,
|
|
64
|
+
hiddenCanonicalRoots: visibilityPolicy.hiddenCanonicalRoots,
|
|
65
|
+
visibleBridgePaths: visibilityPolicy.visibleBridgePaths,
|
|
66
|
+
lastAction: "install",
|
|
67
|
+
recoveryHints: existingState?.recoveryHints ?? [
|
|
68
|
+
`Use "hforge doctor --root ${root}" to inspect missing or drifted managed surfaces.`,
|
|
69
|
+
`Use "hforge refresh --root ${root}" to rewrite shared runtime summaries after install changes.`
|
|
70
|
+
]
|
|
71
|
+
});
|
|
72
|
+
const agentManifest = await writeAgentManifest(root, PACKAGE_ROOT);
|
|
73
|
+
messages.push(`Agent command catalog written to ${commandCatalog.jsonPath}`);
|
|
74
|
+
messages.push(`Agent manifest written to ${agentManifest.path}`);
|
|
75
|
+
if (sharedRuntime) {
|
|
76
|
+
messages.push(`Shared runtime written to ${sharedRuntime.indexPath}`);
|
|
77
|
+
}
|
|
78
|
+
if (rewrittenFiles.length > 0) {
|
|
79
|
+
messages.push(`Rewrote ${rewrittenFiles.length} installed bridge and hidden-layer files for contained path references`);
|
|
80
|
+
}
|
|
81
|
+
return { messages, guidancePath };
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=apply-install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply-install.js","sourceRoot":"","sources":["../../../src/application/install/apply-install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type DiscoveredWorkspaceTarget } from "./discover-workspace-targets.js";
|
|
2
|
+
import type { InstallPlan } from "../../domain/operations/install-plan.js";
|
|
3
|
+
interface BootstrapWorkspaceOptions {
|
|
4
|
+
packageRoot: string;
|
|
5
|
+
workspaceRoot: string;
|
|
6
|
+
profileId?: string;
|
|
7
|
+
targetIds?: string[];
|
|
8
|
+
bundleIds?: string[];
|
|
9
|
+
languageIds?: string[];
|
|
10
|
+
frameworkIds?: string[];
|
|
11
|
+
capabilityIds?: string[];
|
|
12
|
+
mode: "apply" | "dry-run";
|
|
13
|
+
}
|
|
14
|
+
export interface BootstrapWorkspacePlan {
|
|
15
|
+
workspaceRoot: string;
|
|
16
|
+
discoveredTargets: DiscoveredWorkspaceTarget[];
|
|
17
|
+
targetIds: string[];
|
|
18
|
+
recommendedProfileId: string;
|
|
19
|
+
recommendedBundleIds: string[];
|
|
20
|
+
plans: InstallPlan[];
|
|
21
|
+
sharedRuntimeRoots: string[];
|
|
22
|
+
}
|
|
23
|
+
export interface BootstrapWorkspaceResult extends BootstrapWorkspacePlan {
|
|
24
|
+
applied: Array<{
|
|
25
|
+
targetId: string;
|
|
26
|
+
messages: string[];
|
|
27
|
+
guidancePath: string;
|
|
28
|
+
}>;
|
|
29
|
+
}
|
|
30
|
+
export declare function planBootstrapWorkspace(options: BootstrapWorkspaceOptions): Promise<BootstrapWorkspacePlan>;
|
|
31
|
+
export declare function bootstrapWorkspace(options: BootstrapWorkspaceOptions): Promise<BootstrapWorkspaceResult>;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=bootstrap-workspace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap-workspace.d.ts","sourceRoot":"","sources":["../../../src/application/install/bootstrap-workspace.ts"],"names":[],"mappings":"AAEA,OAAO,EAA4B,KAAK,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAM3G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAG3E,UAAU,yBAAyB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,yBAAyB,EAAE,CAAC;IAC/C,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,wBAAyB,SAAQ,sBAAsB;IACtE,OAAO,EAAE,KAAK,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;CACJ;AA4CD,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAkEhH;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CA+B9G"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { applyInstall } from "./apply-install.js";
|
|
2
|
+
import { createInstallPlan } from "./plan-install.js";
|
|
3
|
+
import { discoverWorkspaceTargets } from "./discover-workspace-targets.js";
|
|
4
|
+
import { recommendBundles } from "../recommendations/recommend-bundles.js";
|
|
5
|
+
import { recommendFromIntelligence } from "../recommendations/recommend-from-intelligence.js";
|
|
6
|
+
import { loadInstallState, saveInstallState } from "../../domain/state/install-state.js";
|
|
7
|
+
import { loadBundleManifests, loadProfileManifests } from "../../domain/manifests/index.js";
|
|
8
|
+
import { loadTargetAdapter } from "../../domain/targets/adapter.js";
|
|
9
|
+
import { validateEnvironment } from "./validate-environment.js";
|
|
10
|
+
function unique(values) {
|
|
11
|
+
return [...new Set(values)];
|
|
12
|
+
}
|
|
13
|
+
function splitBundleIds(bundleIds) {
|
|
14
|
+
const next = {
|
|
15
|
+
bundleIds: [],
|
|
16
|
+
languageIds: [],
|
|
17
|
+
frameworkIds: [],
|
|
18
|
+
capabilityIds: []
|
|
19
|
+
};
|
|
20
|
+
for (const bundleId of bundleIds) {
|
|
21
|
+
if (bundleId.startsWith("lang:")) {
|
|
22
|
+
next.languageIds.push(bundleId.slice("lang:".length));
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
if (bundleId.startsWith("framework:")) {
|
|
26
|
+
next.frameworkIds.push(bundleId.slice("framework:".length));
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
if (bundleId.startsWith("capability:")) {
|
|
30
|
+
next.capabilityIds.push(bundleId.slice("capability:".length));
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
next.bundleIds.push(bundleId);
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
bundleIds: unique(next.bundleIds),
|
|
37
|
+
languageIds: unique(next.languageIds),
|
|
38
|
+
frameworkIds: unique(next.frameworkIds),
|
|
39
|
+
capabilityIds: unique(next.capabilityIds)
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export async function planBootstrapWorkspace(options) {
|
|
43
|
+
const discoveredTargets = await discoverWorkspaceTargets(options.workspaceRoot);
|
|
44
|
+
const targetIds = unique(options.targetIds?.length ? options.targetIds : discoveredTargets.map((target) => target.targetId));
|
|
45
|
+
const [bundles, profiles, lightweightRecommendations, intelligence] = await Promise.all([
|
|
46
|
+
loadBundleManifests(options.packageRoot),
|
|
47
|
+
loadProfileManifests(options.packageRoot),
|
|
48
|
+
recommendBundles(options.workspaceRoot),
|
|
49
|
+
recommendFromIntelligence(options.workspaceRoot)
|
|
50
|
+
]);
|
|
51
|
+
const recommendedProfileId = options.profileId ?? intelligence.recommendations.profiles[0]?.id ?? "core";
|
|
52
|
+
const recommendedBundleIds = unique([
|
|
53
|
+
...lightweightRecommendations,
|
|
54
|
+
...intelligence.recommendations.bundles.map((recommendation) => recommendation.id)
|
|
55
|
+
]);
|
|
56
|
+
const splitRecommended = splitBundleIds(recommendedBundleIds);
|
|
57
|
+
const requested = {
|
|
58
|
+
bundleIds: unique([...(options.bundleIds ?? []), ...splitRecommended.bundleIds]),
|
|
59
|
+
languageIds: unique([...(options.languageIds ?? []), ...splitRecommended.languageIds]),
|
|
60
|
+
frameworkIds: unique([...(options.frameworkIds ?? []), ...splitRecommended.frameworkIds]),
|
|
61
|
+
capabilityIds: unique([...(options.capabilityIds ?? []), ...splitRecommended.capabilityIds])
|
|
62
|
+
};
|
|
63
|
+
const plans = [];
|
|
64
|
+
for (const targetId of targetIds) {
|
|
65
|
+
const [warnings, target] = await Promise.all([
|
|
66
|
+
validateEnvironment(options.packageRoot, targetId),
|
|
67
|
+
loadTargetAdapter(options.packageRoot, targetId)
|
|
68
|
+
]);
|
|
69
|
+
const plan = createInstallPlan(options.packageRoot, {
|
|
70
|
+
targetId,
|
|
71
|
+
profileId: recommendedProfileId,
|
|
72
|
+
bundleIds: requested.bundleIds,
|
|
73
|
+
languageIds: requested.languageIds,
|
|
74
|
+
frameworkIds: requested.frameworkIds,
|
|
75
|
+
capabilityIds: requested.capabilityIds,
|
|
76
|
+
rootPath: options.workspaceRoot,
|
|
77
|
+
mode: options.mode
|
|
78
|
+
}, bundles, profiles, target, { workspaceRoot: options.workspaceRoot });
|
|
79
|
+
plan.warnings.push(...warnings);
|
|
80
|
+
plans.push(plan);
|
|
81
|
+
}
|
|
82
|
+
return {
|
|
83
|
+
workspaceRoot: options.workspaceRoot,
|
|
84
|
+
discoveredTargets,
|
|
85
|
+
targetIds,
|
|
86
|
+
recommendedProfileId,
|
|
87
|
+
recommendedBundleIds,
|
|
88
|
+
plans,
|
|
89
|
+
sharedRuntimeRoots: unique(plans
|
|
90
|
+
.map((plan) => plan.sharedRuntime?.rootDir)
|
|
91
|
+
.filter((value) => Boolean(value)))
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
export async function bootstrapWorkspace(options) {
|
|
95
|
+
const plan = await planBootstrapWorkspace(options);
|
|
96
|
+
const applied = [];
|
|
97
|
+
if (options.mode === "apply") {
|
|
98
|
+
for (const targetPlan of plan.plans) {
|
|
99
|
+
const result = await applyInstall(options.workspaceRoot, targetPlan);
|
|
100
|
+
applied.push({
|
|
101
|
+
targetId: targetPlan.selection.targetId,
|
|
102
|
+
messages: result.messages,
|
|
103
|
+
guidancePath: result.guidancePath
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
const state = await loadInstallState(options.workspaceRoot);
|
|
107
|
+
if (state) {
|
|
108
|
+
await saveInstallState(options.workspaceRoot, {
|
|
109
|
+
...state,
|
|
110
|
+
lastAction: "bootstrap",
|
|
111
|
+
timestamps: {
|
|
112
|
+
...state.timestamps,
|
|
113
|
+
updatedAt: new Date().toISOString()
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return {
|
|
119
|
+
...plan,
|
|
120
|
+
applied
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=bootstrap-workspace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap-workspace.js","sourceRoot":"","sources":["../../../src/application/install/bootstrap-workspace.ts"],"names":[],"mappings":"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"}
|