@rsaglobaltech/specgate 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1016 -0
- package/README.md +148 -0
- package/bin/specgate.js +2 -0
- package/bin/specgate.ts +383 -0
- package/dist/bin/specgate.js +342 -0
- package/dist/bin/specgate.js.map +1 -0
- package/dist/packages/core/src/application/AddRequirementUseCase.js +24 -0
- package/dist/packages/core/src/application/AddRequirementUseCase.js.map +1 -0
- package/dist/packages/core/src/application/ArchiveChangeUseCase.js +185 -0
- package/dist/packages/core/src/application/ArchiveChangeUseCase.js.map +1 -0
- package/dist/packages/core/src/application/CheckAgainstLockUseCase.js +134 -0
- package/dist/packages/core/src/application/CheckAgainstLockUseCase.js.map +1 -0
- package/dist/packages/core/src/application/GenerateAgentPromptUseCase.js +25 -0
- package/dist/packages/core/src/application/GenerateAgentPromptUseCase.js.map +1 -0
- package/dist/packages/core/src/application/GeneratePlanUseCase.js +135 -0
- package/dist/packages/core/src/application/GeneratePlanUseCase.js.map +1 -0
- package/dist/packages/core/src/application/LinkRequirementUseCase.js +25 -0
- package/dist/packages/core/src/application/LinkRequirementUseCase.js.map +1 -0
- package/dist/packages/core/src/application/RemovePackUseCase.js +28 -0
- package/dist/packages/core/src/application/RemovePackUseCase.js.map +1 -0
- package/dist/packages/core/src/application/UpdateRequirementStatusUseCase.js +37 -0
- package/dist/packages/core/src/application/UpdateRequirementStatusUseCase.js.map +1 -0
- package/dist/packages/core/src/application/ValidateChangeUseCase.js +86 -0
- package/dist/packages/core/src/application/ValidateChangeUseCase.js.map +1 -0
- package/dist/packages/core/src/application/ValidateProjectUseCase.js +101 -0
- package/dist/packages/core/src/application/ValidateProjectUseCase.js.map +1 -0
- package/dist/packages/core/src/application/ports/IDomainPackRepository.js +3 -0
- package/dist/packages/core/src/application/ports/IDomainPackRepository.js.map +1 -0
- package/dist/packages/core/src/application/ports/IHarnessConfigRepository.js +3 -0
- package/dist/packages/core/src/application/ports/IHarnessConfigRepository.js.map +1 -0
- package/dist/packages/core/src/application/ports/ILockfileRepository.js +3 -0
- package/dist/packages/core/src/application/ports/ILockfileRepository.js.map +1 -0
- package/dist/packages/core/src/application/ports/IManifestRepository.js +3 -0
- package/dist/packages/core/src/application/ports/IManifestRepository.js.map +1 -0
- package/dist/packages/core/src/application/ports/IProjectRepository.js +3 -0
- package/dist/packages/core/src/application/ports/IProjectRepository.js.map +1 -0
- package/dist/packages/core/src/application/ports/IRequirementGraphRepository.js +3 -0
- package/dist/packages/core/src/application/ports/IRequirementGraphRepository.js.map +1 -0
- package/dist/packages/core/src/application/ports/ITraceabilityRepository.js +3 -0
- package/dist/packages/core/src/application/ports/ITraceabilityRepository.js.map +1 -0
- package/dist/packages/core/src/domain/AgentPrompt.js +79 -0
- package/dist/packages/core/src/domain/AgentPrompt.js.map +1 -0
- package/dist/packages/core/src/domain/ArchivePlan.js +26 -0
- package/dist/packages/core/src/domain/ArchivePlan.js.map +1 -0
- package/dist/packages/core/src/domain/AuthoringScope.js +48 -0
- package/dist/packages/core/src/domain/AuthoringScope.js.map +1 -0
- package/dist/packages/core/src/domain/ChangeTemplates.js +133 -0
- package/dist/packages/core/src/domain/ChangeTemplates.js.map +1 -0
- package/dist/packages/core/src/domain/CucumberMessages.js +256 -0
- package/dist/packages/core/src/domain/CucumberMessages.js.map +1 -0
- package/dist/packages/core/src/domain/DeclaredArtifacts.js +117 -0
- package/dist/packages/core/src/domain/DeclaredArtifacts.js.map +1 -0
- package/dist/packages/core/src/domain/DeltaSpec.js +219 -0
- package/dist/packages/core/src/domain/DeltaSpec.js.map +1 -0
- package/dist/packages/core/src/domain/Diagnostic.js +75 -0
- package/dist/packages/core/src/domain/Diagnostic.js.map +1 -0
- package/dist/packages/core/src/domain/DomainPack.js +62 -0
- package/dist/packages/core/src/domain/DomainPack.js.map +1 -0
- package/dist/packages/core/src/domain/EmptyAttempt.js +60 -0
- package/dist/packages/core/src/domain/EmptyAttempt.js.map +1 -0
- package/dist/packages/core/src/domain/FileChangeSet.js +37 -0
- package/dist/packages/core/src/domain/FileChangeSet.js.map +1 -0
- package/dist/packages/core/src/domain/Gherkin.js +272 -0
- package/dist/packages/core/src/domain/Gherkin.js.map +1 -0
- package/dist/packages/core/src/domain/GherkinDialects.js +97 -0
- package/dist/packages/core/src/domain/GherkinDialects.js.map +1 -0
- package/dist/packages/core/src/domain/GherkinQuality.js +160 -0
- package/dist/packages/core/src/domain/GherkinQuality.js.map +1 -0
- package/dist/packages/core/src/domain/GherkinTags.js +119 -0
- package/dist/packages/core/src/domain/GherkinTags.js.map +1 -0
- package/dist/packages/core/src/domain/GitSafety.js +77 -0
- package/dist/packages/core/src/domain/GitSafety.js.map +1 -0
- package/dist/packages/core/src/domain/HarnessConfig.js +58 -0
- package/dist/packages/core/src/domain/HarnessConfig.js.map +1 -0
- package/dist/packages/core/src/domain/HarnessReport.js +162 -0
- package/dist/packages/core/src/domain/HarnessReport.js.map +1 -0
- package/dist/packages/core/src/domain/HarnessRun.js +154 -0
- package/dist/packages/core/src/domain/HarnessRun.js.map +1 -0
- package/dist/packages/core/src/domain/InboundChange.js +127 -0
- package/dist/packages/core/src/domain/InboundChange.js.map +1 -0
- package/dist/packages/core/src/domain/Language.js +112 -0
- package/dist/packages/core/src/domain/Language.js.map +1 -0
- package/dist/packages/core/src/domain/Lockfile.js +64 -0
- package/dist/packages/core/src/domain/Lockfile.js.map +1 -0
- package/dist/packages/core/src/domain/PackContribution.js +106 -0
- package/dist/packages/core/src/domain/PackContribution.js.map +1 -0
- package/dist/packages/core/src/domain/PackDelta.js +298 -0
- package/dist/packages/core/src/domain/PackDelta.js.map +1 -0
- package/dist/packages/core/src/domain/PackSpec.js +481 -0
- package/dist/packages/core/src/domain/PackSpec.js.map +1 -0
- package/dist/packages/core/src/domain/ProfileMatch.js +87 -0
- package/dist/packages/core/src/domain/ProfileMatch.js.map +1 -0
- package/dist/packages/core/src/domain/Reconciliation.js +72 -0
- package/dist/packages/core/src/domain/Reconciliation.js.map +1 -0
- package/dist/packages/core/src/domain/RequirementGraph.js +197 -0
- package/dist/packages/core/src/domain/RequirementGraph.js.map +1 -0
- package/dist/packages/core/src/domain/RequirementPlan.js +85 -0
- package/dist/packages/core/src/domain/RequirementPlan.js.map +1 -0
- package/dist/packages/core/src/domain/RequirementReadiness.js +115 -0
- package/dist/packages/core/src/domain/RequirementReadiness.js.map +1 -0
- package/dist/packages/core/src/domain/RequirementSyntax.js +91 -0
- package/dist/packages/core/src/domain/RequirementSyntax.js.map +1 -0
- package/dist/packages/core/src/domain/ResumeState.js +115 -0
- package/dist/packages/core/src/domain/ResumeState.js.map +1 -0
- package/dist/packages/core/src/domain/RunBudget.js +103 -0
- package/dist/packages/core/src/domain/RunBudget.js.map +1 -0
- package/dist/packages/core/src/domain/SpecDiff.js +48 -0
- package/dist/packages/core/src/domain/SpecDiff.js.map +1 -0
- package/dist/packages/core/src/domain/SpecParser.js +406 -0
- package/dist/packages/core/src/domain/SpecParser.js.map +1 -0
- package/dist/packages/core/src/domain/SpecopsManifest.js +90 -0
- package/dist/packages/core/src/domain/SpecopsManifest.js.map +1 -0
- package/dist/packages/core/src/domain/TraceabilityFormat.js +317 -0
- package/dist/packages/core/src/domain/TraceabilityFormat.js.map +1 -0
- package/dist/packages/core/src/domain/TraceabilityMatrix.js +200 -0
- package/dist/packages/core/src/domain/TraceabilityMatrix.js.map +1 -0
- package/dist/packages/core/src/domain/TraceabilityMerge.js +180 -0
- package/dist/packages/core/src/domain/TraceabilityMerge.js.map +1 -0
- package/dist/packages/core/src/domain/ValidationReport.js +53 -0
- package/dist/packages/core/src/domain/ValidationReport.js.map +1 -0
- package/dist/packages/core/src/domain/ValueAnnotations.js +138 -0
- package/dist/packages/core/src/domain/ValueAnnotations.js.map +1 -0
- package/dist/packages/core/src/domain/WriteScope.js +155 -0
- package/dist/packages/core/src/domain/WriteScope.js.map +1 -0
- package/dist/packages/core/src/domain/YamlLite.js +226 -0
- package/dist/packages/core/src/domain/YamlLite.js.map +1 -0
- package/dist/packages/core/src/index.js +120 -0
- package/dist/packages/core/src/index.js.map +1 -0
- package/dist/packages/core/src/infrastructure/ChangeWorkspace.js +276 -0
- package/dist/packages/core/src/infrastructure/ChangeWorkspace.js.map +1 -0
- package/dist/packages/core/src/infrastructure/ConsoleReporter.js +19 -0
- package/dist/packages/core/src/infrastructure/ConsoleReporter.js.map +1 -0
- package/dist/packages/core/src/infrastructure/DirectorySnapshot.js +106 -0
- package/dist/packages/core/src/infrastructure/DirectorySnapshot.js.map +1 -0
- package/dist/packages/core/src/infrastructure/DiskDomainPackRepository.js +57 -0
- package/dist/packages/core/src/infrastructure/DiskDomainPackRepository.js.map +1 -0
- package/dist/packages/core/src/infrastructure/DiskHarnessConfigRepository.js +58 -0
- package/dist/packages/core/src/infrastructure/DiskHarnessConfigRepository.js.map +1 -0
- package/dist/packages/core/src/infrastructure/DiskLanguageRepository.js +69 -0
- package/dist/packages/core/src/infrastructure/DiskLanguageRepository.js.map +1 -0
- package/dist/packages/core/src/infrastructure/DiskLockfileRepository.js +64 -0
- package/dist/packages/core/src/infrastructure/DiskLockfileRepository.js.map +1 -0
- package/dist/packages/core/src/infrastructure/DiskManifestRepository.js +88 -0
- package/dist/packages/core/src/infrastructure/DiskManifestRepository.js.map +1 -0
- package/dist/packages/core/src/infrastructure/DiskPackDeltaRepository.js +138 -0
- package/dist/packages/core/src/infrastructure/DiskPackDeltaRepository.js.map +1 -0
- package/dist/packages/core/src/infrastructure/DiskPackRepository.js +130 -0
- package/dist/packages/core/src/infrastructure/DiskPackRepository.js.map +1 -0
- package/dist/packages/core/src/infrastructure/DiskProjectRepository.js +127 -0
- package/dist/packages/core/src/infrastructure/DiskProjectRepository.js.map +1 -0
- package/dist/packages/core/src/infrastructure/DiskRequirementGraphRepository.js +124 -0
- package/dist/packages/core/src/infrastructure/DiskRequirementGraphRepository.js.map +1 -0
- package/dist/packages/core/src/infrastructure/DiskTraceabilityRepository.js +53 -0
- package/dist/packages/core/src/infrastructure/DiskTraceabilityRepository.js.map +1 -0
- package/dist/packages/core/src/infrastructure/GitContributionStager.js +99 -0
- package/dist/packages/core/src/infrastructure/GitContributionStager.js.map +1 -0
- package/dist/packages/core/src/infrastructure/GitMergeDriver.js +103 -0
- package/dist/packages/core/src/infrastructure/GitMergeDriver.js.map +1 -0
- package/dist/packages/core/src/infrastructure/HarnessConfigFile.js +348 -0
- package/dist/packages/core/src/infrastructure/HarnessConfigFile.js.map +1 -0
- package/dist/packages/core/src/infrastructure/PackChangeDeposit.js +106 -0
- package/dist/packages/core/src/infrastructure/PackChangeDeposit.js.map +1 -0
- package/dist/packages/core/src/infrastructure/RemotePackResolver.js +181 -0
- package/dist/packages/core/src/infrastructure/RemotePackResolver.js.map +1 -0
- package/dist/packages/core/src/infrastructure/SpecopsConfigFile.js +94 -0
- package/dist/packages/core/src/infrastructure/SpecopsConfigFile.js.map +1 -0
- package/dist/packages/core/test/unit/authoring-scope.test.js +102 -0
- package/dist/packages/core/test/unit/authoring-scope.test.js.map +1 -0
- package/dist/packages/core/test/unit/change-templates.test.js +96 -0
- package/dist/packages/core/test/unit/change-templates.test.js.map +1 -0
- package/dist/packages/core/test/unit/cucumber-messages.test.js +232 -0
- package/dist/packages/core/test/unit/cucumber-messages.test.js.map +1 -0
- package/dist/packages/core/test/unit/declared-artifacts.test.js +124 -0
- package/dist/packages/core/test/unit/declared-artifacts.test.js.map +1 -0
- package/dist/packages/core/test/unit/empty-attempt.test.js +79 -0
- package/dist/packages/core/test/unit/empty-attempt.test.js.map +1 -0
- package/dist/packages/core/test/unit/gherkin-dialects.test.js +115 -0
- package/dist/packages/core/test/unit/gherkin-dialects.test.js.map +1 -0
- package/dist/packages/core/test/unit/gherkin-keyword-case.test.js +110 -0
- package/dist/packages/core/test/unit/gherkin-keyword-case.test.js.map +1 -0
- package/dist/packages/core/test/unit/gherkin-quality.test.js +151 -0
- package/dist/packages/core/test/unit/gherkin-quality.test.js.map +1 -0
- package/dist/packages/core/test/unit/gherkin-tags.test.js +127 -0
- package/dist/packages/core/test/unit/gherkin-tags.test.js.map +1 -0
- package/dist/packages/core/test/unit/git-safety.test.js +104 -0
- package/dist/packages/core/test/unit/git-safety.test.js.map +1 -0
- package/dist/packages/core/test/unit/harness-report.test.js +192 -0
- package/dist/packages/core/test/unit/harness-report.test.js.map +1 -0
- package/dist/packages/core/test/unit/harness-roles.test.js +86 -0
- package/dist/packages/core/test/unit/harness-roles.test.js.map +1 -0
- package/dist/packages/core/test/unit/inbound-change.test.js +145 -0
- package/dist/packages/core/test/unit/inbound-change.test.js.map +1 -0
- package/dist/packages/core/test/unit/matrix-dependencies.test.js +100 -0
- package/dist/packages/core/test/unit/matrix-dependencies.test.js.map +1 -0
- package/dist/packages/core/test/unit/profile-match.test.js +115 -0
- package/dist/packages/core/test/unit/profile-match.test.js.map +1 -0
- package/dist/packages/core/test/unit/reconciliation.test.js +112 -0
- package/dist/packages/core/test/unit/reconciliation.test.js.map +1 -0
- package/dist/packages/core/test/unit/requirement-readiness.test.js +161 -0
- package/dist/packages/core/test/unit/requirement-readiness.test.js.map +1 -0
- package/dist/packages/core/test/unit/resume-state.test.js +124 -0
- package/dist/packages/core/test/unit/resume-state.test.js.map +1 -0
- package/dist/packages/core/test/unit/run-budget.test.js +113 -0
- package/dist/packages/core/test/unit/run-budget.test.js.map +1 -0
- package/dist/packages/core/test/unit/traceability-merge.test.js +159 -0
- package/dist/packages/core/test/unit/traceability-merge.test.js.map +1 -0
- package/dist/packages/core/test/unit/validate-project.test.js +156 -0
- package/dist/packages/core/test/unit/validate-project.test.js.map +1 -0
- package/dist/packages/core/test/unit/value-annotations.test.js +149 -0
- package/dist/packages/core/test/unit/value-annotations.test.js.map +1 -0
- package/dist/packages/core/test/unit/write-scope.test.js +165 -0
- package/dist/packages/core/test/unit/write-scope.test.js.map +1 -0
- package/dist/packages/core/test/unit/yaml-lite.test.js +78 -0
- package/dist/packages/core/test/unit/yaml-lite.test.js.map +1 -0
- package/dist/scripts/adopt_project.js +11 -0
- package/dist/scripts/adopt_project.js.map +1 -0
- package/dist/scripts/agents/commands.js +100 -0
- package/dist/scripts/agents/commands.js.map +1 -0
- package/dist/scripts/agents/init.js +482 -0
- package/dist/scripts/agents/init.js.map +1 -0
- package/dist/scripts/alm/cli.js +154 -0
- package/dist/scripts/alm/cli.js.map +1 -0
- package/dist/scripts/alm/clients.js +30 -0
- package/dist/scripts/alm/clients.js.map +1 -0
- package/dist/scripts/alm/core.js +258 -0
- package/dist/scripts/alm/core.js.map +1 -0
- package/dist/scripts/alm/port.js +116 -0
- package/dist/scripts/alm/port.js.map +1 -0
- package/dist/scripts/alm/providers/azure.js +79 -0
- package/dist/scripts/alm/providers/azure.js.map +1 -0
- package/dist/scripts/alm/providers/github.js +124 -0
- package/dist/scripts/alm/providers/github.js.map +1 -0
- package/dist/scripts/alm/providers/http-client.js +47 -0
- package/dist/scripts/alm/providers/http-client.js.map +1 -0
- package/dist/scripts/alm/providers/index.js +107 -0
- package/dist/scripts/alm/providers/index.js.map +1 -0
- package/dist/scripts/alm/providers/jira.js +129 -0
- package/dist/scripts/alm/providers/jira.js.map +1 -0
- package/dist/scripts/bundle_pack.js +10 -0
- package/dist/scripts/bundle_pack.js.map +1 -0
- package/dist/scripts/change/archive.js +68 -0
- package/dist/scripts/change/archive.js.map +1 -0
- package/dist/scripts/change/artifacts.js +143 -0
- package/dist/scripts/change/artifacts.js.map +1 -0
- package/dist/scripts/change/cli.js +39 -0
- package/dist/scripts/change/cli.js.map +1 -0
- package/dist/scripts/change/delta.js +20 -0
- package/dist/scripts/change/delta.js.map +1 -0
- package/dist/scripts/change/instructions.js +339 -0
- package/dist/scripts/change/instructions.js.map +1 -0
- package/dist/scripts/ci_init.js +12 -0
- package/dist/scripts/ci_init.js.map +1 -0
- package/dist/scripts/cli/commands/alm/PullCommand.js +238 -0
- package/dist/scripts/cli/commands/alm/PullCommand.js.map +1 -0
- package/dist/scripts/cli/commands/change/ChangeCommand.js +867 -0
- package/dist/scripts/cli/commands/change/ChangeCommand.js.map +1 -0
- package/dist/scripts/cli/commands/config/CiInitCommand.js +144 -0
- package/dist/scripts/cli/commands/config/CiInitCommand.js.map +1 -0
- package/dist/scripts/cli/commands/config/CompletionCommand.js +160 -0
- package/dist/scripts/cli/commands/config/CompletionCommand.js.map +1 -0
- package/dist/scripts/cli/commands/config/ConfigInitCommand.js +108 -0
- package/dist/scripts/cli/commands/config/ConfigInitCommand.js.map +1 -0
- package/dist/scripts/cli/commands/config/ConfigSetCommand.js +166 -0
- package/dist/scripts/cli/commands/config/ConfigSetCommand.js.map +1 -0
- package/dist/scripts/cli/commands/config/GenAgentContractCommand.js +212 -0
- package/dist/scripts/cli/commands/config/GenAgentContractCommand.js.map +1 -0
- package/dist/scripts/cli/commands/harness/RunCommand.js +1922 -0
- package/dist/scripts/cli/commands/harness/RunCommand.js.map +1 -0
- package/dist/scripts/cli/commands/mcp/McpInstallCommand.js +114 -0
- package/dist/scripts/cli/commands/mcp/McpInstallCommand.js.map +1 -0
- package/dist/scripts/cli/commands/mcp/index.js +29 -0
- package/dist/scripts/cli/commands/mcp/index.js.map +1 -0
- package/dist/scripts/cli/commands/pack/BundlePackCommand.js +59 -0
- package/dist/scripts/cli/commands/pack/BundlePackCommand.js.map +1 -0
- package/dist/scripts/cli/commands/pack/ExpandDomainPackCommand.js +559 -0
- package/dist/scripts/cli/commands/pack/ExpandDomainPackCommand.js.map +1 -0
- package/dist/scripts/cli/commands/pack/InferPackCommand.js +304 -0
- package/dist/scripts/cli/commands/pack/InferPackCommand.js.map +1 -0
- package/dist/scripts/cli/commands/pack/InitPackCommand.js +368 -0
- package/dist/scripts/cli/commands/pack/InitPackCommand.js.map +1 -0
- package/dist/scripts/cli/commands/pack/LintPackCommand.js +631 -0
- package/dist/scripts/cli/commands/pack/LintPackCommand.js.map +1 -0
- package/dist/scripts/cli/commands/pack/pack-args.js +83 -0
- package/dist/scripts/cli/commands/pack/pack-args.js.map +1 -0
- package/dist/scripts/cli/commands/project/AdoptCommand.js +414 -0
- package/dist/scripts/cli/commands/project/AdoptCommand.js.map +1 -0
- package/dist/scripts/cli/commands/project/InitFromPackCommand.js +188 -0
- package/dist/scripts/cli/commands/project/InitFromPackCommand.js.map +1 -0
- package/dist/scripts/cli/commands/project/InitProjectCommand.js +791 -0
- package/dist/scripts/cli/commands/project/InitProjectCommand.js.map +1 -0
- package/dist/scripts/cli/commands/project/OnboardCommand.js +655 -0
- package/dist/scripts/cli/commands/project/OnboardCommand.js.map +1 -0
- package/dist/scripts/cli/commands/project/UpdateCommand.js +206 -0
- package/dist/scripts/cli/commands/project/UpdateCommand.js.map +1 -0
- package/dist/scripts/cli/commands/project/WizardCommand.js +166 -0
- package/dist/scripts/cli/commands/project/WizardCommand.js.map +1 -0
- package/dist/scripts/cli/commands/quality/DoctorCommand.js +553 -0
- package/dist/scripts/cli/commands/quality/DoctorCommand.js.map +1 -0
- package/dist/scripts/cli/commands/quality/FixCommand.js +201 -0
- package/dist/scripts/cli/commands/quality/FixCommand.js.map +1 -0
- package/dist/scripts/cli/commands/quality/LicenseCheckCommand.js +187 -0
- package/dist/scripts/cli/commands/quality/LicenseCheckCommand.js.map +1 -0
- package/dist/scripts/cli/commands/quality/ReportCommand.js +557 -0
- package/dist/scripts/cli/commands/quality/ReportCommand.js.map +1 -0
- package/dist/scripts/cli/commands/quality/ValidateSpecsCommand.js +764 -0
- package/dist/scripts/cli/commands/quality/ValidateSpecsCommand.js.map +1 -0
- package/dist/scripts/cli/commands/spec/DoneCommand.js +116 -0
- package/dist/scripts/cli/commands/spec/DoneCommand.js.map +1 -0
- package/dist/scripts/cli/commands/spec/PlanCommand.js +397 -0
- package/dist/scripts/cli/commands/spec/PlanCommand.js.map +1 -0
- package/dist/scripts/cli/commands/spec/ReqCommand.js +303 -0
- package/dist/scripts/cli/commands/spec/ReqCommand.js.map +1 -0
- package/dist/scripts/cli/commands/spec/StatusCommand.js +206 -0
- package/dist/scripts/cli/commands/spec/StatusCommand.js.map +1 -0
- package/dist/scripts/cli/commands/spec/StudioCommand.js +241 -0
- package/dist/scripts/cli/commands/spec/StudioCommand.js.map +1 -0
- package/dist/scripts/cli/commands/specops/ContributeCommand.js +313 -0
- package/dist/scripts/cli/commands/specops/ContributeCommand.js.map +1 -0
- package/dist/scripts/cli/commands/specops/DiffCommand.js +394 -0
- package/dist/scripts/cli/commands/specops/DiffCommand.js.map +1 -0
- package/dist/scripts/cli/commands/specops/SyncCommand.js +380 -0
- package/dist/scripts/cli/commands/specops/SyncCommand.js.map +1 -0
- package/dist/scripts/completion.js +24 -0
- package/dist/scripts/completion.js.map +1 -0
- package/dist/scripts/config_init.js +12 -0
- package/dist/scripts/config_init.js.map +1 -0
- package/dist/scripts/config_set.js +20 -0
- package/dist/scripts/config_set.js.map +1 -0
- package/dist/scripts/docs/blocks.js +137 -0
- package/dist/scripts/docs/blocks.js.map +1 -0
- package/dist/scripts/docs/build-site.js +425 -0
- package/dist/scripts/docs/build-site.js.map +1 -0
- package/dist/scripts/docs/nav.js +198 -0
- package/dist/scripts/docs/nav.js.map +1 -0
- package/dist/scripts/docs/record-terminal.js +477 -0
- package/dist/scripts/docs/record-terminal.js.map +1 -0
- package/dist/scripts/docs/terminal-storyboard.js +121 -0
- package/dist/scripts/docs/terminal-storyboard.js.map +1 -0
- package/dist/scripts/doctor.js +14 -0
- package/dist/scripts/doctor.js.map +1 -0
- package/dist/scripts/done.js +17 -0
- package/dist/scripts/done.js.map +1 -0
- package/dist/scripts/expand_domain_pack.js +18 -0
- package/dist/scripts/expand_domain_pack.js.map +1 -0
- package/dist/scripts/fix.js +12 -0
- package/dist/scripts/fix.js.map +1 -0
- package/dist/scripts/gen_agent_contract.js +14 -0
- package/dist/scripts/gen_agent_contract.js.map +1 -0
- package/dist/scripts/gen_mcp_tools.js +264 -0
- package/dist/scripts/gen_mcp_tools.js.map +1 -0
- package/dist/scripts/harness/init.js +358 -0
- package/dist/scripts/harness/init.js.map +1 -0
- package/dist/scripts/harness/prompt.js +18 -0
- package/dist/scripts/harness/prompt.js.map +1 -0
- package/dist/scripts/harness/report.js +323 -0
- package/dist/scripts/harness/report.js.map +1 -0
- package/dist/scripts/harness/run.js +33 -0
- package/dist/scripts/harness/run.js.map +1 -0
- package/dist/scripts/infer_pack.js +17 -0
- package/dist/scripts/infer_pack.js.map +1 -0
- package/dist/scripts/init_from_pack.js +16 -0
- package/dist/scripts/init_from_pack.js.map +1 -0
- package/dist/scripts/init_pack.js +16 -0
- package/dist/scripts/init_pack.js.map +1 -0
- package/dist/scripts/init_project.js +17 -0
- package/dist/scripts/init_project.js.map +1 -0
- package/dist/scripts/lib/agent.js +99 -0
- package/dist/scripts/lib/agent.js.map +1 -0
- package/dist/scripts/lib/capability-specs.js +80 -0
- package/dist/scripts/lib/capability-specs.js.map +1 -0
- package/dist/scripts/lib/command.js +17 -0
- package/dist/scripts/lib/command.js.map +1 -0
- package/dist/scripts/lib/diagnostics.js +62 -0
- package/dist/scripts/lib/diagnostics.js.map +1 -0
- package/dist/scripts/lib/monorepo-fanout.js +118 -0
- package/dist/scripts/lib/monorepo-fanout.js.map +1 -0
- package/dist/scripts/lib/placeholders.js +190 -0
- package/dist/scripts/lib/placeholders.js.map +1 -0
- package/dist/scripts/lib/project-root.js +124 -0
- package/dist/scripts/lib/project-root.js.map +1 -0
- package/dist/scripts/lib/requirement-graph.js +31 -0
- package/dist/scripts/lib/requirement-graph.js.map +1 -0
- package/dist/scripts/lib/surface.js +609 -0
- package/dist/scripts/lib/surface.js.map +1 -0
- package/dist/scripts/license_check.js +15 -0
- package/dist/scripts/license_check.js.map +1 -0
- package/dist/scripts/lint_pack.js +18 -0
- package/dist/scripts/lint_pack.js.map +1 -0
- package/dist/scripts/merge-traceability.js +106 -0
- package/dist/scripts/merge-traceability.js.map +1 -0
- package/dist/scripts/onboard.js +22 -0
- package/dist/scripts/onboard.js.map +1 -0
- package/dist/scripts/plan.js +17 -0
- package/dist/scripts/plan.js.map +1 -0
- package/dist/scripts/plugin/gate-hook.js +171 -0
- package/dist/scripts/plugin/gate-hook.js.map +1 -0
- package/dist/scripts/report.js +17 -0
- package/dist/scripts/report.js.map +1 -0
- package/dist/scripts/req.js +22 -0
- package/dist/scripts/req.js.map +1 -0
- package/dist/scripts/schema/cli.js +215 -0
- package/dist/scripts/schema/cli.js.map +1 -0
- package/dist/scripts/schema/registry.js +264 -0
- package/dist/scripts/schema/registry.js.map +1 -0
- package/dist/scripts/specops/add.js +180 -0
- package/dist/scripts/specops/add.js.map +1 -0
- package/dist/scripts/specops/against_lock.js +100 -0
- package/dist/scripts/specops/against_lock.js.map +1 -0
- package/dist/scripts/specops/as_change.js +49 -0
- package/dist/scripts/specops/as_change.js.map +1 -0
- package/dist/scripts/specops/contribute.js +24 -0
- package/dist/scripts/specops/contribute.js.map +1 -0
- package/dist/scripts/specops/diff.js +32 -0
- package/dist/scripts/specops/diff.js.map +1 -0
- package/dist/scripts/specops/lock.js +39 -0
- package/dist/scripts/specops/lock.js.map +1 -0
- package/dist/scripts/specops/manifest.js +90 -0
- package/dist/scripts/specops/manifest.js.map +1 -0
- package/dist/scripts/specops/remove.js +102 -0
- package/dist/scripts/specops/remove.js.map +1 -0
- package/dist/scripts/specops/sync.js +27 -0
- package/dist/scripts/specops/sync.js.map +1 -0
- package/dist/scripts/specops/verify.js +149 -0
- package/dist/scripts/specops/verify.js.map +1 -0
- package/dist/scripts/status.js +17 -0
- package/dist/scripts/status.js.map +1 -0
- package/dist/scripts/studio.js +14 -0
- package/dist/scripts/studio.js.map +1 -0
- package/dist/scripts/update.js +17 -0
- package/dist/scripts/update.js.map +1 -0
- package/dist/scripts/validate_specs.js +10 -0
- package/dist/scripts/validate_specs.js.map +1 -0
- package/examples/project.config.example +19 -0
- package/examples/project.yaml.example +17 -0
- package/package.json +105 -0
- package/templates/adopt/AI_RULES.md.tpl +27 -0
- package/templates/adopt/adr-readme.md.tpl +5 -0
- package/templates/adopt/baseline.feature.tpl +9 -0
- package/templates/adopt/spec.md.tpl +25 -0
- package/templates/adopt/traceability.md.tpl +11 -0
- package/templates/backend/AI_RULES.md.tpl +35 -0
- package/templates/backend/features/core/health.feature.tpl +7 -0
- package/templates/base/.devcontainer/devcontainer.json.tpl +18 -0
- package/templates/base/.dockerignore.tpl +11 -0
- package/templates/base/.env.dev.app.tpl +13 -0
- package/templates/base/.env.dev.infra.tpl +6 -0
- package/templates/base/.env.dev.tpl +16 -0
- package/templates/base/.env.example.tpl +17 -0
- package/templates/base/.env.feature.app.tpl +11 -0
- package/templates/base/.env.feature.infra.tpl +4 -0
- package/templates/base/.env.feature.tpl +16 -0
- package/templates/base/.env.prod.app.tpl +13 -0
- package/templates/base/.env.prod.infra.tpl +6 -0
- package/templates/base/.env.prod.tpl +16 -0
- package/templates/base/.github/workflows/specs.yml.tpl +26 -0
- package/templates/base/.gitignore.tpl +9 -0
- package/templates/base/.pre-commit-config.yaml.tpl +10 -0
- package/templates/base/AGENTS.md.tpl +32 -0
- package/templates/base/README.md.tpl +32 -0
- package/templates/base/docker-compose.yml.tpl +13 -0
- package/templates/base/docs/specs/adr/README.md.tpl +10 -0
- package/templates/base/docs/specs/aggregates.md.tpl +5 -0
- package/templates/base/docs/specs/commands.md.tpl +13 -0
- package/templates/base/docs/specs/domain-model.md.tpl +30 -0
- package/templates/base/docs/specs/events.md.tpl +5 -0
- package/templates/base/docs/specs/review-checklist.md.tpl +18 -0
- package/templates/base/docs/specs/runtime-environments.md.tpl +26 -0
- package/templates/base/docs/specs/status-model.md.tpl +16 -0
- package/templates/base/docs/specs/traceability.md.tpl +7 -0
- package/templates/base/docs/specs/use-cases.md.tpl +5 -0
- package/templates/base/spec.md.tpl +63 -0
- package/templates/ci/azure.yml.tpl +40 -0
- package/templates/ci/github.yml.tpl +40 -0
- package/templates/ci/gitlab.yml.tpl +21 -0
- package/templates/ci/jenkins.tpl +35 -0
- package/templates/contracts/AI_RULES.md.tpl +55 -0
- package/templates/contracts/asyncapi-stub.yaml.tpl +24 -0
- package/templates/contracts/contract-traceability.md.tpl +10 -0
- package/templates/contracts/openapi-stub.yaml.tpl +29 -0
- package/templates/contracts/pacts-gitkeep.tpl +0 -0
- package/templates/contracts/test-strategy.md.tpl +94 -0
- package/templates/frontend/AI_RULES.md.tpl +34 -0
- package/templates/frontend/features/core/health.feature.tpl +6 -0
- package/templates/harness/harness.config.yaml.tpl +74 -0
- package/templates/harness/prompt-prefix.md.tpl +60 -0
- package/templates/mobile/AI_RULES.md.tpl +56 -0
- package/templates/mobile/features/core/health.feature.tpl +7 -0
- package/templates/modules/auth/backend/registration_and_login.feature.tpl +10 -0
- package/templates/modules/auth/frontend/login.feature.tpl +5 -0
- package/templates/modules/billing/backend/billing_settlement.feature.tpl +5 -0
- package/templates/modules/billing/frontend/billing_summary.feature.tpl +5 -0
- package/templates/modules/dashboard/backend/dashboard_kpi.feature.tpl +5 -0
- package/templates/modules/dashboard/frontend/dashboard.feature.tpl +5 -0
- package/vendor/mermaid.min.js +3636 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* The six steps of the spec-driven loop, defined once.
|
|
4
|
+
*
|
|
5
|
+
* Every agent tool gets the same six; only the file format differs. Writing
|
|
6
|
+
* them per tool would guarantee that Cursor and Claude drift apart the first
|
|
7
|
+
* time one is edited — which is the same failure this repository has been
|
|
8
|
+
* fixing everywhere else.
|
|
9
|
+
*
|
|
10
|
+
* Each step delegates its context to `specgate change instructions`, so the rules
|
|
11
|
+
* an agent follows come from the engine rather than from a copy frozen into a
|
|
12
|
+
* markdown file at generation time.
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.PROJECT_RULES = exports.STEPS = void 0;
|
|
16
|
+
exports.STEPS = [
|
|
17
|
+
{
|
|
18
|
+
name: "explore",
|
|
19
|
+
summary: "Understand the project before proposing anything.",
|
|
20
|
+
when: "Starting work on an unfamiliar spec-driven repository.",
|
|
21
|
+
run: ["specgate status --json", "specgate plan --json"],
|
|
22
|
+
guidance: [
|
|
23
|
+
"Read `spec.md` and `AI_RULES.md` first — `AI_RULES.md` is binding, not advisory.",
|
|
24
|
+
"`specgate status` gives totals, orphan features and locked pack versions in one document.",
|
|
25
|
+
"Do not propose a change until you can name which capability it belongs to.",
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: "propose",
|
|
30
|
+
summary: "Open a change and write its proposal and delta.",
|
|
31
|
+
when: "A requirement needs adding, rewording or retiring.",
|
|
32
|
+
run: [
|
|
33
|
+
"specgate change new <change-id>",
|
|
34
|
+
"specgate change instructions proposal --json",
|
|
35
|
+
"specgate change instructions specs --json",
|
|
36
|
+
],
|
|
37
|
+
guidance: [
|
|
38
|
+
"`change instructions` returns the template, the rules the validator enforces, and the project's declared stack. Follow it rather than guessing the format.",
|
|
39
|
+
"A delta states only what changes. It is not a copy of the spec.",
|
|
40
|
+
"Every requirement body needs SHALL / MUST / SHOULD / MAY, and every scenario needs plain `- GIVEN` / `- WHEN` / `- THEN` bullets.",
|
|
41
|
+
],
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: "verify",
|
|
45
|
+
summary: "Check the change before anyone reviews it.",
|
|
46
|
+
when: "After writing or editing any artefact of a change.",
|
|
47
|
+
run: ["specgate change validate --json", "specgate validate . --json"],
|
|
48
|
+
guidance: [
|
|
49
|
+
"Every diagnostic carries a `fix`. Apply it rather than guessing.",
|
|
50
|
+
"Branch on `code`, never on `message` — the message is prose and may be reworded.",
|
|
51
|
+
"`specgate validate` validates active changes too, so this is also the PR gate.",
|
|
52
|
+
],
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
name: "apply",
|
|
56
|
+
summary: "Implement the change: tests first, then code.",
|
|
57
|
+
when: "The change is validated and its proposal is agreed.",
|
|
58
|
+
run: ["specgate change instructions apply --json", "specgate plan --json"],
|
|
59
|
+
guidance: [
|
|
60
|
+
"One requirement at a time. `specgate plan` is the queue.",
|
|
61
|
+
"Write the test first. Set the row's status to `In Dev` only once it exists, or `validate --strict-tdd` fails with `[TDD-1]`.",
|
|
62
|
+
"Never edit `docs/specs/traceability.md` by hand — `specgate req link` and `specgate done` write it.",
|
|
63
|
+
],
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: "archive",
|
|
67
|
+
summary: "Merge the change into the spec tree.",
|
|
68
|
+
when: "The work is done and every task is checked.",
|
|
69
|
+
run: [
|
|
70
|
+
"specgate change instructions archive --json",
|
|
71
|
+
"specgate change archive <change-id> --dry-run",
|
|
72
|
+
"specgate change archive <change-id> --json",
|
|
73
|
+
],
|
|
74
|
+
guidance: [
|
|
75
|
+
"Preview with `--dry-run` first: it lists the specs and matrix rows that will move.",
|
|
76
|
+
"Archiving inserts the traceability rows and materialises the feature files. It is not a file move.",
|
|
77
|
+
"After archiving, `specgate plan` lists the requirement as pending work.",
|
|
78
|
+
],
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
name: "onboard",
|
|
82
|
+
summary: "Install spec-driven development on a repository that lacks it.",
|
|
83
|
+
when: "The repository has code but no `spec.md`.",
|
|
84
|
+
run: ["specgate adopt", "specgate doctor --json", "specgate validate . --json"],
|
|
85
|
+
guidance: [
|
|
86
|
+
"`specgate adopt` never overwrites a file and never touches source code.",
|
|
87
|
+
"Retro-fill real requirements one at a time; a baseline REQ-001 anchors the matrix until then.",
|
|
88
|
+
"`specgate doctor` reports a concrete fix per finding — work through them before adding the CI gate.",
|
|
89
|
+
],
|
|
90
|
+
},
|
|
91
|
+
];
|
|
92
|
+
/** The rules every tool's instruction file repeats, in its own format. */
|
|
93
|
+
exports.PROJECT_RULES = [
|
|
94
|
+
"`spec.md`, `AI_RULES.md` and `features/**/*.feature` are the source of truth. Do not edit them to make a test pass.",
|
|
95
|
+
"`docs/specs/traceability.md` is written by `specgate req`, `specgate done` and `specgate change archive` — never by hand.",
|
|
96
|
+
"Every command takes `--json`. Use it: one document on stdout, diagnostics in `status`, each with a `fix`.",
|
|
97
|
+
"Exit codes are a contract: 0 success, 1 failure or gate finding, 2 usage error.",
|
|
98
|
+
"When you do not know the format of an artefact, run `specgate change instructions <artifact> --json` instead of guessing.",
|
|
99
|
+
];
|
|
100
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../scripts/agents/commands.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEU,QAAA,KAAK,GAAG;IACnB;QACE,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,mDAAmD;QAC5D,IAAI,EAAE,wDAAwD;QAC9D,GAAG,EAAE,CAAC,wBAAwB,EAAE,sBAAsB,CAAC;QACvD,QAAQ,EAAE;YACR,kFAAkF;YAClF,2FAA2F;YAC3F,4EAA4E;SAC7E;KACF;IACD;QACE,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,iDAAiD;QAC1D,IAAI,EAAE,oDAAoD;QAC1D,GAAG,EAAE;YACH,iCAAiC;YACjC,8CAA8C;YAC9C,2CAA2C;SAC5C;QACD,QAAQ,EAAE;YACR,4JAA4J;YAC5J,iEAAiE;YACjE,mIAAmI;SACpI;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,4CAA4C;QACrD,IAAI,EAAE,oDAAoD;QAC1D,GAAG,EAAE,CAAC,iCAAiC,EAAE,4BAA4B,CAAC;QACtE,QAAQ,EAAE;YACR,kEAAkE;YAClE,kFAAkF;YAClF,gFAAgF;SACjF;KACF;IACD;QACE,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,+CAA+C;QACxD,IAAI,EAAE,qDAAqD;QAC3D,GAAG,EAAE,CAAC,2CAA2C,EAAE,sBAAsB,CAAC;QAC1E,QAAQ,EAAE;YACR,0DAA0D;YAC1D,8HAA8H;YAC9H,qGAAqG;SACtG;KACF;IACD;QACE,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,sCAAsC;QAC/C,IAAI,EAAE,6CAA6C;QACnD,GAAG,EAAE;YACH,6CAA6C;YAC7C,+CAA+C;YAC/C,4CAA4C;SAC7C;QACD,QAAQ,EAAE;YACR,oFAAoF;YACpF,oGAAoG;YACpG,yEAAyE;SAC1E;KACF;IACD;QACE,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,gEAAgE;QACzE,IAAI,EAAE,2CAA2C;QACjD,GAAG,EAAE,CAAC,gBAAgB,EAAE,wBAAwB,EAAE,4BAA4B,CAAC;QAC/E,QAAQ,EAAE;YACR,yEAAyE;YACzE,+FAA+F;YAC/F,qGAAqG;SACtG;KACF;CACF,CAAC;AAEF,0EAA0E;AAC7D,QAAA,aAAa,GAAG;IAC3B,qHAAqH;IACrH,2HAA2H;IAC3H,2GAA2G;IAC3G,iFAAiF;IACjF,2HAA2H;CAC5H,CAAC"}
|
|
@@ -0,0 +1,482 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* `specgate agents init --tool <names>` — wire the spec-driven loop into the agent
|
|
5
|
+
* tools a team already uses.
|
|
6
|
+
*
|
|
7
|
+
* One definition of the six steps (`./commands`), rendered into each tool's
|
|
8
|
+
* own convention. The generated files are thin on purpose: they tell the agent
|
|
9
|
+
* to run `specgate change instructions`, they do not restate the rules. A markdown
|
|
10
|
+
* file that copies the delta grammar is out of date the moment the grammar
|
|
11
|
+
* moves; a file that calls the engine never is.
|
|
12
|
+
*/
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
30
|
+
var ownKeys = function(o) {
|
|
31
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
32
|
+
var ar = [];
|
|
33
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
34
|
+
return ar;
|
|
35
|
+
};
|
|
36
|
+
return ownKeys(o);
|
|
37
|
+
};
|
|
38
|
+
return function (mod) {
|
|
39
|
+
if (mod && mod.__esModule) return mod;
|
|
40
|
+
var result = {};
|
|
41
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
42
|
+
__setModuleDefault(result, mod);
|
|
43
|
+
return result;
|
|
44
|
+
};
|
|
45
|
+
})();
|
|
46
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
|
+
exports.DEFAULT_TOOLS = exports.ALL_TOOLS = exports.TOOLS = void 0;
|
|
48
|
+
exports.slashCommandBody = slashCommandBody;
|
|
49
|
+
exports.instructionsBody = instructionsBody;
|
|
50
|
+
exports.mcpServerConfig = mcpServerConfig;
|
|
51
|
+
exports.parseArgs = parseArgs;
|
|
52
|
+
exports.main = main;
|
|
53
|
+
const fs = __importStar(require("node:fs"));
|
|
54
|
+
const path = __importStar(require("node:path"));
|
|
55
|
+
const project_root_1 = require("../lib/project-root");
|
|
56
|
+
const diagnostics_1 = require("../lib/diagnostics");
|
|
57
|
+
const agent_1 = require("../lib/agent");
|
|
58
|
+
const commands_1 = require("./commands");
|
|
59
|
+
const COLOR = process.stdout.isTTY && process.env.NO_COLOR === undefined && process.env.TERM !== "dumb";
|
|
60
|
+
const c = {
|
|
61
|
+
reset: COLOR ? "\x1b[0m" : "",
|
|
62
|
+
bold: COLOR ? "\x1b[1m" : "",
|
|
63
|
+
dim: COLOR ? "\x1b[2m" : "",
|
|
64
|
+
green: COLOR ? "\x1b[32m" : "",
|
|
65
|
+
cyan: COLOR ? "\x1b[36m" : "",
|
|
66
|
+
};
|
|
67
|
+
// ── Renderers, one per tool convention ────────────────────────────────────────
|
|
68
|
+
function slashCommandBody(step) {
|
|
69
|
+
return [
|
|
70
|
+
"---",
|
|
71
|
+
`description: ${step.summary}`,
|
|
72
|
+
"---",
|
|
73
|
+
"",
|
|
74
|
+
`# /csda:${step.name}`,
|
|
75
|
+
"",
|
|
76
|
+
step.summary,
|
|
77
|
+
"",
|
|
78
|
+
`**Use when:** ${step.when}`,
|
|
79
|
+
"",
|
|
80
|
+
"## Run",
|
|
81
|
+
"",
|
|
82
|
+
"```bash",
|
|
83
|
+
...step.run,
|
|
84
|
+
"```",
|
|
85
|
+
"",
|
|
86
|
+
"## Guidance",
|
|
87
|
+
"",
|
|
88
|
+
...step.guidance.map((g) => `- ${g}`),
|
|
89
|
+
"",
|
|
90
|
+
"> The authoritative rules come from `specgate change instructions <artifact> --json`.",
|
|
91
|
+
"> If this file and the engine disagree, the engine is right — say so and continue.",
|
|
92
|
+
"",
|
|
93
|
+
].join("\n");
|
|
94
|
+
}
|
|
95
|
+
function instructionsBody(title) {
|
|
96
|
+
return [
|
|
97
|
+
`# ${title}`,
|
|
98
|
+
"",
|
|
99
|
+
"This project uses Spec-Driven Development through the `specgate` CLI.",
|
|
100
|
+
"Requirements, scenarios and traceability are executable artefacts, not documentation.",
|
|
101
|
+
"",
|
|
102
|
+
"## Non-negotiables",
|
|
103
|
+
"",
|
|
104
|
+
...commands_1.PROJECT_RULES.map((r) => `- ${r}`),
|
|
105
|
+
"",
|
|
106
|
+
"## The loop",
|
|
107
|
+
"",
|
|
108
|
+
...commands_1.STEPS.flatMap((s) => [
|
|
109
|
+
`### ${s.name} — ${s.summary}`,
|
|
110
|
+
"",
|
|
111
|
+
`Use when: ${s.when}`,
|
|
112
|
+
"",
|
|
113
|
+
"```bash",
|
|
114
|
+
...s.run,
|
|
115
|
+
"```",
|
|
116
|
+
"",
|
|
117
|
+
]),
|
|
118
|
+
"## Where the rules live",
|
|
119
|
+
"",
|
|
120
|
+
"Do not memorise the artefact formats. `specgate change instructions <proposal|specs|design|tasks|apply|archive> --json`",
|
|
121
|
+
"returns the template, the rules the validator enforces, the project's declared",
|
|
122
|
+
"stack and what writing the artefact unblocks. It is the single source; this",
|
|
123
|
+
"file is a pointer to it.",
|
|
124
|
+
"",
|
|
125
|
+
].join("\n");
|
|
126
|
+
}
|
|
127
|
+
function cursorRuleBody() {
|
|
128
|
+
return [
|
|
129
|
+
"---",
|
|
130
|
+
"description: Spec-driven development rules for this repository",
|
|
131
|
+
"alwaysApply: true",
|
|
132
|
+
"---",
|
|
133
|
+
"",
|
|
134
|
+
...commands_1.PROJECT_RULES.map((r) => `- ${r}`),
|
|
135
|
+
"",
|
|
136
|
+
"Run `specgate change instructions <artifact> --json` for the format of any artefact.",
|
|
137
|
+
"",
|
|
138
|
+
].join("\n");
|
|
139
|
+
}
|
|
140
|
+
/** The CLI's version, stamped into the plugin manifest. */
|
|
141
|
+
function cliVersion() {
|
|
142
|
+
try {
|
|
143
|
+
// The path is computed at run time — it differs between `scripts/` and the
|
|
144
|
+
// compiled `dist/scripts/` — and an `import` specifier must be static.
|
|
145
|
+
return require(path.resolve(__dirname, "..", "..", "..", "package.json")).version || "0.0.0";
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
return "0.0.0";
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* The Claude Code plugin: the six steps as slash commands, the MCP server, and
|
|
153
|
+
* the gate as a `Stop` hook.
|
|
154
|
+
*
|
|
155
|
+
* The hook is the part no other target can offer. Every other tool here gets
|
|
156
|
+
* *instructions* — text an agent may or may not follow. A plugin gets a hook,
|
|
157
|
+
* which runs whether the agent likes it or not, so `validate --strict-tdd`
|
|
158
|
+
* stops being something that reviews the work after the agent has gone and
|
|
159
|
+
* becomes something the agent cannot walk past.
|
|
160
|
+
*
|
|
161
|
+
* Generated from the same `STEPS` as every other target, so the commands
|
|
162
|
+
* cannot drift from the ones Cursor or Copilot are told about. Verified
|
|
163
|
+
* against the plugin reference: `.claude-plugin/plugin.json` is the manifest
|
|
164
|
+
* and every component directory sits at the plugin root, never inside it.
|
|
165
|
+
*/
|
|
166
|
+
function claudePluginFiles(version) {
|
|
167
|
+
const manifest = {
|
|
168
|
+
name: "csda",
|
|
169
|
+
displayName: "Spec-Driven Development",
|
|
170
|
+
description: "Specs as executable contracts: the daily loop as commands, the spec tree over MCP, " +
|
|
171
|
+
"and the gate as a hook that runs before the session can end.",
|
|
172
|
+
version,
|
|
173
|
+
license: "MIT",
|
|
174
|
+
keywords: ["spec-driven-development", "sdd", "gherkin", "traceability"],
|
|
175
|
+
homepage: "https://rsaglobaltech.github.io/specgate/",
|
|
176
|
+
};
|
|
177
|
+
const hooks = {
|
|
178
|
+
hooks: {
|
|
179
|
+
Stop: [
|
|
180
|
+
{
|
|
181
|
+
hooks: [
|
|
182
|
+
{
|
|
183
|
+
type: "command",
|
|
184
|
+
command: `node "\${CLAUDE_PLUGIN_ROOT}/scripts/gate-hook.js"`,
|
|
185
|
+
},
|
|
186
|
+
],
|
|
187
|
+
},
|
|
188
|
+
],
|
|
189
|
+
},
|
|
190
|
+
};
|
|
191
|
+
const mcp = mcpServerConfig();
|
|
192
|
+
return [
|
|
193
|
+
{ path: path.join(".claude-plugin", "plugin.json"), contents: json(manifest) },
|
|
194
|
+
{ path: path.join("hooks", "hooks.json"), contents: json(hooks) },
|
|
195
|
+
{ path: ".mcp.json", contents: json(mcp) },
|
|
196
|
+
...commands_1.STEPS.map((s) => ({
|
|
197
|
+
path: path.join("commands", "csda", `${s.name}.md`),
|
|
198
|
+
contents: slashCommandBody(s),
|
|
199
|
+
})),
|
|
200
|
+
{ path: path.join("scripts", "gate-hook.js"), contents: gateHookSource() },
|
|
201
|
+
{ path: "README.md", contents: pluginReadme() },
|
|
202
|
+
];
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* The hook, bundled into the plugin.
|
|
206
|
+
*
|
|
207
|
+
* A plugin is installed on its own — there is no guarantee the CLI that
|
|
208
|
+
* generated it is anywhere near the machine that runs it — so the script has
|
|
209
|
+
* to travel with it. It is copied from the compiled source rather than written
|
|
210
|
+
* out again here, because a second copy of this logic is a second thing to keep
|
|
211
|
+
* correct.
|
|
212
|
+
*/
|
|
213
|
+
function gateHookSource() {
|
|
214
|
+
const compiled = path.resolve(__dirname, "..", "plugin", "gate-hook.js");
|
|
215
|
+
if (!fs.existsSync(compiled)) {
|
|
216
|
+
throw new Error(`The gate hook is not built: ${compiled} is missing.\n` +
|
|
217
|
+
"Fix: run `npm run build` before generating the plugin.");
|
|
218
|
+
}
|
|
219
|
+
return fs.readFileSync(compiled, "utf8");
|
|
220
|
+
}
|
|
221
|
+
const json = (value) => `${JSON.stringify(value, null, 2)}\n`;
|
|
222
|
+
function pluginReadme() {
|
|
223
|
+
return [
|
|
224
|
+
"# csda — Claude Code plugin",
|
|
225
|
+
"",
|
|
226
|
+
"Generated by `specgate agents init --tool claude-plugin`. Do not edit by hand:",
|
|
227
|
+
"the commands come from the same definition every other agent tool is",
|
|
228
|
+
"wired from, so editing here makes them drift.",
|
|
229
|
+
"",
|
|
230
|
+
"## What it adds",
|
|
231
|
+
"",
|
|
232
|
+
"- **Six slash commands** — `/csda:explore`, `/csda:propose`, `/csda:verify`,",
|
|
233
|
+
" `/csda:apply`, `/csda:archive`, `/csda:onboard`.",
|
|
234
|
+
"- **The spec tree over MCP** — read specs, list requirements and run",
|
|
235
|
+
" `validate` as tools rather than by scraping terminal output.",
|
|
236
|
+
"- **The gate as a `Stop` hook** — `specgate validate --strict-tdd` runs when the",
|
|
237
|
+
" session is about to end, and refuses the stop while it is red.",
|
|
238
|
+
"",
|
|
239
|
+
"## The hook, and why it does not trap you",
|
|
240
|
+
"",
|
|
241
|
+
"It blocks **once per prompt**. The second time the same prompt reaches the",
|
|
242
|
+
"hook it reports the findings and lets the session end: by then the agent has",
|
|
243
|
+
"been told, and a human needs to see the answer more than the loop needs",
|
|
244
|
+
"another turn. A project with no `spec.md`, or a machine with no `specgate` on",
|
|
245
|
+
"PATH, is left alone entirely.",
|
|
246
|
+
"",
|
|
247
|
+
].join("\n");
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* How a host is told to start the Specgate MCP server.
|
|
251
|
+
*
|
|
252
|
+
* The same object for every host, because the format is the same one: Claude
|
|
253
|
+
* Code reads it from `.mcp.json`, Antigravity from `.agents/mcp_config.json`.
|
|
254
|
+
* Written once so the two cannot drift into describing different servers.
|
|
255
|
+
*/
|
|
256
|
+
function mcpServerConfig() {
|
|
257
|
+
return {
|
|
258
|
+
mcpServers: {
|
|
259
|
+
"spec-driven": { command: "npx", args: ["-y", "@specgate/mcp-server"] },
|
|
260
|
+
},
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* What each tool expects, and where.
|
|
265
|
+
*
|
|
266
|
+
* Adding a tool is one row: the loop below does not know any tool's name.
|
|
267
|
+
*/
|
|
268
|
+
exports.TOOLS = {
|
|
269
|
+
claude: {
|
|
270
|
+
label: "Claude Code",
|
|
271
|
+
files: () => [
|
|
272
|
+
...commands_1.STEPS.map((s) => ({
|
|
273
|
+
path: path.join(".claude", "commands", "csda", `${s.name}.md`),
|
|
274
|
+
contents: slashCommandBody(s),
|
|
275
|
+
})),
|
|
276
|
+
{ path: "AGENTS.md", contents: instructionsBody("Agent instructions") },
|
|
277
|
+
],
|
|
278
|
+
},
|
|
279
|
+
"claude-plugin": {
|
|
280
|
+
label: "Claude Code plugin",
|
|
281
|
+
// Opt-in: a plugin is an installable artefact, not something to scatter
|
|
282
|
+
// into every project that ran `agents init`.
|
|
283
|
+
optIn: true,
|
|
284
|
+
files: () => claudePluginFiles(cliVersion()),
|
|
285
|
+
},
|
|
286
|
+
cursor: {
|
|
287
|
+
label: "Cursor",
|
|
288
|
+
files: () => [{ path: path.join(".cursor", "rules", "csda.mdc"), contents: cursorRuleBody() }],
|
|
289
|
+
},
|
|
290
|
+
copilot: {
|
|
291
|
+
label: "GitHub Copilot",
|
|
292
|
+
files: () => [
|
|
293
|
+
{
|
|
294
|
+
path: path.join(".github", "copilot-instructions.md"),
|
|
295
|
+
contents: instructionsBody("Copilot instructions"),
|
|
296
|
+
},
|
|
297
|
+
],
|
|
298
|
+
},
|
|
299
|
+
windsurf: {
|
|
300
|
+
label: "Windsurf",
|
|
301
|
+
files: () => [{ path: path.join(".windsurf", "rules", "csda.md"), contents: cursorRuleBody() }],
|
|
302
|
+
},
|
|
303
|
+
aider: {
|
|
304
|
+
label: "Aider",
|
|
305
|
+
files: () => [{ path: "CONVENTIONS.md", contents: instructionsBody("Conventions") }],
|
|
306
|
+
},
|
|
307
|
+
gemini: {
|
|
308
|
+
label: "Gemini CLI",
|
|
309
|
+
files: () => [{ path: "GEMINI.md", contents: instructionsBody("Agent instructions") }],
|
|
310
|
+
},
|
|
311
|
+
cline: {
|
|
312
|
+
label: "Cline",
|
|
313
|
+
files: () => [{ path: path.join(".clinerules", "csda.md"), contents: cursorRuleBody() }],
|
|
314
|
+
},
|
|
315
|
+
codex: {
|
|
316
|
+
label: "Codex",
|
|
317
|
+
files: () => [{ path: "AGENTS.md", contents: instructionsBody("Agent instructions") }],
|
|
318
|
+
},
|
|
319
|
+
antigravity: {
|
|
320
|
+
label: "Antigravity",
|
|
321
|
+
// Two files, because Antigravity reads both halves of what Specgate offers:
|
|
322
|
+
// workspace rules, and a live MCP connection to the project's own specs.
|
|
323
|
+
//
|
|
324
|
+
// Paths are the ones its documentation states — `.agents/rules/` (it still
|
|
325
|
+
// accepts the older `.agent/rules`, singular, which is why the plural is
|
|
326
|
+
// written deliberately here) and `.agents/mcp_config.json`, which the IDE
|
|
327
|
+
// and the CLI both discover. Its docs also cap a rule file at 12,000
|
|
328
|
+
// characters; `cursorRuleBody()` is an order of magnitude under, and a test
|
|
329
|
+
// keeps it that way.
|
|
330
|
+
//
|
|
331
|
+
// Its own `GEMINI.md` convention is already covered by the `gemini` row,
|
|
332
|
+
// and third-party guides say it reads `AGENTS.md` too — but its
|
|
333
|
+
// documentation does not, so nothing here depends on that.
|
|
334
|
+
files: () => [
|
|
335
|
+
{ path: path.join(".agents", "rules", "csda.md"), contents: cursorRuleBody() },
|
|
336
|
+
{ path: path.join(".agents", "mcp_config.json"), contents: json(mcpServerConfig()) },
|
|
337
|
+
],
|
|
338
|
+
},
|
|
339
|
+
};
|
|
340
|
+
exports.ALL_TOOLS = Object.keys(exports.TOOLS);
|
|
341
|
+
/** What `--tool` defaults to: everything that belongs inside a project. */
|
|
342
|
+
exports.DEFAULT_TOOLS = exports.ALL_TOOLS.filter((t) => !exports.TOOLS[t].optIn);
|
|
343
|
+
function usage() {
|
|
344
|
+
process.stdout.write(`\n ${c.bold}${c.cyan}🤖 agents init${c.reset} ${c.dim}— wire the loop into your agent tools${c.reset}\n\n` +
|
|
345
|
+
` ${c.bold}USAGE${c.reset}\n` +
|
|
346
|
+
` specgate agents init [--tool <names>] [--project-dir <path>] [--dry-run] [--force] [--json]\n\n` +
|
|
347
|
+
` ${c.bold}TOOLS${c.reset}\n` +
|
|
348
|
+
` ${exports.ALL_TOOLS.join(", ")}${c.dim} (default: all but claude-plugin)${c.reset}\n\n` +
|
|
349
|
+
` ${c.bold}NOTES${c.reset}\n` +
|
|
350
|
+
` ${c.dim}Existing files are never overwritten without --force.${c.reset}\n` +
|
|
351
|
+
` ${c.dim}--dry-run lists what would be written and touches nothing.${c.reset}\n\n`);
|
|
352
|
+
}
|
|
353
|
+
function parseArgs(argv) {
|
|
354
|
+
const opts = {
|
|
355
|
+
tools: exports.DEFAULT_TOOLS,
|
|
356
|
+
projectDir: ".",
|
|
357
|
+
dryRun: false,
|
|
358
|
+
force: false,
|
|
359
|
+
json: false,
|
|
360
|
+
};
|
|
361
|
+
for (let i = 0; i < argv.length; i++) {
|
|
362
|
+
const a = argv[i];
|
|
363
|
+
if (a === "--tool" && argv[i + 1]) {
|
|
364
|
+
opts.tools = argv[++i]
|
|
365
|
+
.split(",")
|
|
366
|
+
.map((t) => t.trim().toLowerCase())
|
|
367
|
+
.filter(Boolean);
|
|
368
|
+
}
|
|
369
|
+
else if (a === "--project-dir" && argv[i + 1])
|
|
370
|
+
opts.projectDir = argv[++i];
|
|
371
|
+
else if (a === "--dry-run")
|
|
372
|
+
opts.dryRun = true;
|
|
373
|
+
else if (a === "--force")
|
|
374
|
+
opts.force = true;
|
|
375
|
+
else if (a === "--json")
|
|
376
|
+
opts.json = true;
|
|
377
|
+
else if (a === "--help" || a === "-h")
|
|
378
|
+
opts.help = true;
|
|
379
|
+
else if (a.startsWith("-"))
|
|
380
|
+
opts.unknown = a;
|
|
381
|
+
}
|
|
382
|
+
return opts;
|
|
383
|
+
}
|
|
384
|
+
function main(argv) {
|
|
385
|
+
const opts = parseArgs(argv);
|
|
386
|
+
const io = (0, agent_1.agentIo)(opts.json || (0, agent_1.wantsJson)(argv));
|
|
387
|
+
const NULL_SHAPE = { agents: null };
|
|
388
|
+
if (opts.help) {
|
|
389
|
+
usage();
|
|
390
|
+
process.exit(agent_1.EXIT.OK);
|
|
391
|
+
}
|
|
392
|
+
if (opts.unknown) {
|
|
393
|
+
io.usage(NULL_SHAPE, [
|
|
394
|
+
(0, diagnostics_1.error)("unknown_flag", `Unknown flag: ${opts.unknown}`, {
|
|
395
|
+
target: opts.unknown,
|
|
396
|
+
fix: "Run `specgate agents init --help` for the accepted flags.",
|
|
397
|
+
}),
|
|
398
|
+
]);
|
|
399
|
+
}
|
|
400
|
+
const unsupported = opts.tools.filter((t) => !exports.TOOLS[t]);
|
|
401
|
+
if (unsupported.length > 0) {
|
|
402
|
+
io.usage(NULL_SHAPE, [
|
|
403
|
+
(0, diagnostics_1.error)("tool_unknown", `Unknown tool(s): ${unsupported.join(", ")}`, {
|
|
404
|
+
target: unsupported.join(","),
|
|
405
|
+
fix: `Supported: ${exports.ALL_TOOLS.join(", ")}.`,
|
|
406
|
+
}),
|
|
407
|
+
]);
|
|
408
|
+
}
|
|
409
|
+
let projectDir;
|
|
410
|
+
try {
|
|
411
|
+
projectDir = (0, project_root_1.resolveProjectDir)(opts.projectDir);
|
|
412
|
+
}
|
|
413
|
+
catch (err) {
|
|
414
|
+
io.usage(NULL_SHAPE, [
|
|
415
|
+
(0, diagnostics_1.error)("project_not_found", (0, diagnostics_1.errorMessage)(err), {
|
|
416
|
+
fix: "Run from inside a spec-driven project, or pass --project-dir.",
|
|
417
|
+
}),
|
|
418
|
+
]);
|
|
419
|
+
}
|
|
420
|
+
const written = [];
|
|
421
|
+
const skipped = [];
|
|
422
|
+
const diagnostics = [];
|
|
423
|
+
// Several tools share a destination — Claude and Codex both read AGENTS.md —
|
|
424
|
+
// so a file is written once and attributed to the tools that asked for it.
|
|
425
|
+
const planned = new Map();
|
|
426
|
+
for (const tool of opts.tools) {
|
|
427
|
+
for (const file of exports.TOOLS[tool].files()) {
|
|
428
|
+
const entry = planned.get(file.path);
|
|
429
|
+
if (entry)
|
|
430
|
+
entry.tools.push(tool);
|
|
431
|
+
else
|
|
432
|
+
planned.set(file.path, { ...file, tools: [tool] });
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
{
|
|
436
|
+
for (const file of planned.values()) {
|
|
437
|
+
const tool = file.tools.join("+");
|
|
438
|
+
const target = path.join(projectDir, file.path);
|
|
439
|
+
const exists = fs.existsSync(target);
|
|
440
|
+
if (exists && !opts.force) {
|
|
441
|
+
skipped.push({ tool, path: file.path, reason: "exists" });
|
|
442
|
+
diagnostics.push((0, diagnostics_1.warning)("agent_file_exists", `${file.path} already exists — left untouched.`, {
|
|
443
|
+
file: file.path,
|
|
444
|
+
fix: "Pass --force to overwrite it, or merge the generated content by hand.",
|
|
445
|
+
}));
|
|
446
|
+
continue;
|
|
447
|
+
}
|
|
448
|
+
if (!opts.dryRun) {
|
|
449
|
+
fs.mkdirSync(path.dirname(target), { recursive: true });
|
|
450
|
+
fs.writeFileSync(target, file.contents, "utf8");
|
|
451
|
+
}
|
|
452
|
+
written.push({ tool, path: file.path });
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
io.emit({
|
|
456
|
+
agents: {
|
|
457
|
+
projectDir,
|
|
458
|
+
tools: opts.tools,
|
|
459
|
+
dryRun: opts.dryRun,
|
|
460
|
+
written,
|
|
461
|
+
skipped,
|
|
462
|
+
},
|
|
463
|
+
status: diagnostics,
|
|
464
|
+
}, () => {
|
|
465
|
+
const verb = opts.dryRun ? "would write" : "wrote";
|
|
466
|
+
process.stdout.write(`\n ${c.bold}agents init${c.reset} ${c.dim}(${opts.tools.join(", ")})${c.reset}\n\n`);
|
|
467
|
+
for (const w of written) {
|
|
468
|
+
process.stdout.write(` ${c.green}+${c.reset} ${w.path} ${c.dim}${verb}${c.reset}\n`);
|
|
469
|
+
}
|
|
470
|
+
for (const s of skipped) {
|
|
471
|
+
process.stdout.write(` ${c.dim}· ${s.path} — exists, skipped${c.reset}\n`);
|
|
472
|
+
}
|
|
473
|
+
if (skipped.length > 0) {
|
|
474
|
+
process.stdout.write(`\n ${c.dim}Pass --force to overwrite the skipped files.${c.reset}\n`);
|
|
475
|
+
}
|
|
476
|
+
process.stdout.write(`\n ${c.dim}Next: open your agent and run ${c.reset}/csda:explore${c.dim} (or read AGENTS.md).${c.reset}\n\n`);
|
|
477
|
+
});
|
|
478
|
+
process.exit(agent_1.EXIT.OK);
|
|
479
|
+
}
|
|
480
|
+
if (require.main === module)
|
|
481
|
+
main(process.argv.slice(2));
|
|
482
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../scripts/agents/init.ts"],"names":[],"mappings":"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"}
|