openlore 2.0.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/LICENSE +21 -0
- package/README.md +268 -0
- package/dist/api/analyze.d.ts +17 -0
- package/dist/api/analyze.d.ts.map +1 -0
- package/dist/api/analyze.js +143 -0
- package/dist/api/analyze.js.map +1 -0
- package/dist/api/audit.d.ts +10 -0
- package/dist/api/audit.d.ts.map +1 -0
- package/dist/api/audit.js +117 -0
- package/dist/api/audit.js.map +1 -0
- package/dist/api/decisions.d.ts +55 -0
- package/dist/api/decisions.d.ts.map +1 -0
- package/dist/api/decisions.js +157 -0
- package/dist/api/decisions.js.map +1 -0
- package/dist/api/drift.d.ts +21 -0
- package/dist/api/drift.d.ts.map +1 -0
- package/dist/api/drift.js +152 -0
- package/dist/api/drift.js.map +1 -0
- package/dist/api/generate.d.ts +18 -0
- package/dist/api/generate.d.ts.map +1 -0
- package/dist/api/generate.js +259 -0
- package/dist/api/generate.js.map +1 -0
- package/dist/api/index.d.ts +41 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +34 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/init.d.ts +18 -0
- package/dist/api/init.d.ts.map +1 -0
- package/dist/api/init.js +83 -0
- package/dist/api/init.js.map +1 -0
- package/dist/api/run.d.ts +19 -0
- package/dist/api/run.d.ts.map +1 -0
- package/dist/api/run.js +312 -0
- package/dist/api/run.js.map +1 -0
- package/dist/api/specs.d.ts +49 -0
- package/dist/api/specs.d.ts.map +1 -0
- package/dist/api/specs.js +137 -0
- package/dist/api/specs.js.map +1 -0
- package/dist/api/types.d.ts +201 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +9 -0
- package/dist/api/types.js.map +1 -0
- package/dist/api/verify.d.ts +20 -0
- package/dist/api/verify.d.ts.map +1 -0
- package/dist/api/verify.js +117 -0
- package/dist/api/verify.js.map +1 -0
- package/dist/cli/commands/analyze.d.ts +30 -0
- package/dist/cli/commands/analyze.d.ts.map +1 -0
- package/dist/cli/commands/analyze.js +683 -0
- package/dist/cli/commands/analyze.js.map +1 -0
- package/dist/cli/commands/audit.d.ts +9 -0
- package/dist/cli/commands/audit.d.ts.map +1 -0
- package/dist/cli/commands/audit.js +98 -0
- package/dist/cli/commands/audit.js.map +1 -0
- package/dist/cli/commands/decisions.d.ts +16 -0
- package/dist/cli/commands/decisions.d.ts.map +1 -0
- package/dist/cli/commands/decisions.js +864 -0
- package/dist/cli/commands/decisions.js.map +1 -0
- package/dist/cli/commands/digest.d.ts +9 -0
- package/dist/cli/commands/digest.d.ts.map +1 -0
- package/dist/cli/commands/digest.js +61 -0
- package/dist/cli/commands/digest.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +9 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +398 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/drift.d.ts +9 -0
- package/dist/cli/commands/drift.d.ts.map +1 -0
- package/dist/cli/commands/drift.js +550 -0
- package/dist/cli/commands/drift.js.map +1 -0
- package/dist/cli/commands/generate.d.ts +9 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/generate.js +565 -0
- package/dist/cli/commands/generate.js.map +1 -0
- package/dist/cli/commands/init.d.ts +9 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +173 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/mcp.d.ts +2235 -0
- package/dist/cli/commands/mcp.d.ts.map +1 -0
- package/dist/cli/commands/mcp.js +1384 -0
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/commands/refresh-stories.d.ts +10 -0
- package/dist/cli/commands/refresh-stories.d.ts.map +1 -0
- package/dist/cli/commands/refresh-stories.js +314 -0
- package/dist/cli/commands/refresh-stories.js.map +1 -0
- package/dist/cli/commands/run.d.ts +9 -0
- package/dist/cli/commands/run.d.ts.map +1 -0
- package/dist/cli/commands/run.js +459 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/commands/setup.d.ts +19 -0
- package/dist/cli/commands/setup.d.ts.map +1 -0
- package/dist/cli/commands/setup.js +355 -0
- package/dist/cli/commands/setup.js.map +1 -0
- package/dist/cli/commands/test.d.ts +22 -0
- package/dist/cli/commands/test.d.ts.map +1 -0
- package/dist/cli/commands/test.js +180 -0
- package/dist/cli/commands/test.js.map +1 -0
- package/dist/cli/commands/verify.d.ts +9 -0
- package/dist/cli/commands/verify.d.ts.map +1 -0
- package/dist/cli/commands/verify.js +383 -0
- package/dist/cli/commands/verify.js.map +1 -0
- package/dist/cli/commands/view.d.ts +13 -0
- package/dist/cli/commands/view.d.ts.map +1 -0
- package/dist/cli/commands/view.js +547 -0
- package/dist/cli/commands/view.js.map +1 -0
- package/dist/cli/index.d.ts +9 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +118 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/tui-approval.d.ts +11 -0
- package/dist/cli/tui-approval.d.ts.map +1 -0
- package/dist/cli/tui-approval.js +129 -0
- package/dist/cli/tui-approval.js.map +1 -0
- package/dist/constants.d.ts +314 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +382 -0
- package/dist/constants.js.map +1 -0
- package/dist/core/analyzer/ai-config-generator.d.ts +54 -0
- package/dist/core/analyzer/ai-config-generator.d.ts.map +1 -0
- package/dist/core/analyzer/ai-config-generator.js +98 -0
- package/dist/core/analyzer/ai-config-generator.js.map +1 -0
- package/dist/core/analyzer/architecture-writer.d.ts +67 -0
- package/dist/core/analyzer/architecture-writer.d.ts.map +1 -0
- package/dist/core/analyzer/architecture-writer.js +209 -0
- package/dist/core/analyzer/architecture-writer.js.map +1 -0
- package/dist/core/analyzer/artifact-generator.d.ts +261 -0
- package/dist/core/analyzer/artifact-generator.d.ts.map +1 -0
- package/dist/core/analyzer/artifact-generator.js +909 -0
- package/dist/core/analyzer/artifact-generator.js.map +1 -0
- package/dist/core/analyzer/ast-chunker.d.ts +24 -0
- package/dist/core/analyzer/ast-chunker.d.ts.map +1 -0
- package/dist/core/analyzer/ast-chunker.js +198 -0
- package/dist/core/analyzer/ast-chunker.js.map +1 -0
- package/dist/core/analyzer/call-graph.d.ts +162 -0
- package/dist/core/analyzer/call-graph.d.ts.map +1 -0
- package/dist/core/analyzer/call-graph.js +2040 -0
- package/dist/core/analyzer/call-graph.js.map +1 -0
- package/dist/core/analyzer/code-shaper.d.ts +33 -0
- package/dist/core/analyzer/code-shaper.d.ts.map +1 -0
- package/dist/core/analyzer/code-shaper.js +154 -0
- package/dist/core/analyzer/code-shaper.js.map +1 -0
- package/dist/core/analyzer/codebase-digest.d.ts +40 -0
- package/dist/core/analyzer/codebase-digest.d.ts.map +1 -0
- package/dist/core/analyzer/codebase-digest.js +195 -0
- package/dist/core/analyzer/codebase-digest.js.map +1 -0
- package/dist/core/analyzer/cpp-header-resolver.d.ts +30 -0
- package/dist/core/analyzer/cpp-header-resolver.d.ts.map +1 -0
- package/dist/core/analyzer/cpp-header-resolver.js +71 -0
- package/dist/core/analyzer/cpp-header-resolver.js.map +1 -0
- package/dist/core/analyzer/dependency-graph.d.ts +230 -0
- package/dist/core/analyzer/dependency-graph.d.ts.map +1 -0
- package/dist/core/analyzer/dependency-graph.js +752 -0
- package/dist/core/analyzer/dependency-graph.js.map +1 -0
- package/dist/core/analyzer/duplicate-detector.d.ts +52 -0
- package/dist/core/analyzer/duplicate-detector.d.ts.map +1 -0
- package/dist/core/analyzer/duplicate-detector.js +289 -0
- package/dist/core/analyzer/duplicate-detector.js.map +1 -0
- package/dist/core/analyzer/embedding-service.d.ts +56 -0
- package/dist/core/analyzer/embedding-service.d.ts.map +1 -0
- package/dist/core/analyzer/embedding-service.js +118 -0
- package/dist/core/analyzer/embedding-service.js.map +1 -0
- package/dist/core/analyzer/env-extractor.d.ts +33 -0
- package/dist/core/analyzer/env-extractor.d.ts.map +1 -0
- package/dist/core/analyzer/env-extractor.js +196 -0
- package/dist/core/analyzer/env-extractor.js.map +1 -0
- package/dist/core/analyzer/external-packages.d.ts +20 -0
- package/dist/core/analyzer/external-packages.d.ts.map +1 -0
- package/dist/core/analyzer/external-packages.js +175 -0
- package/dist/core/analyzer/external-packages.js.map +1 -0
- package/dist/core/analyzer/file-walker.d.ts +78 -0
- package/dist/core/analyzer/file-walker.d.ts.map +1 -0
- package/dist/core/analyzer/file-walker.js +532 -0
- package/dist/core/analyzer/file-walker.js.map +1 -0
- package/dist/core/analyzer/function-registry-trie.d.ts +21 -0
- package/dist/core/analyzer/function-registry-trie.d.ts.map +1 -0
- package/dist/core/analyzer/function-registry-trie.js +39 -0
- package/dist/core/analyzer/function-registry-trie.js.map +1 -0
- package/dist/core/analyzer/http-route-parser.d.ts +152 -0
- package/dist/core/analyzer/http-route-parser.d.ts.map +1 -0
- package/dist/core/analyzer/http-route-parser.js +971 -0
- package/dist/core/analyzer/http-route-parser.js.map +1 -0
- package/dist/core/analyzer/import-parser.d.ts +100 -0
- package/dist/core/analyzer/import-parser.d.ts.map +1 -0
- package/dist/core/analyzer/import-parser.js +952 -0
- package/dist/core/analyzer/import-parser.js.map +1 -0
- package/dist/core/analyzer/import-resolver-bridge.d.ts +25 -0
- package/dist/core/analyzer/import-resolver-bridge.d.ts.map +1 -0
- package/dist/core/analyzer/import-resolver-bridge.js +99 -0
- package/dist/core/analyzer/import-resolver-bridge.js.map +1 -0
- package/dist/core/analyzer/index.d.ts +10 -0
- package/dist/core/analyzer/index.d.ts.map +1 -0
- package/dist/core/analyzer/index.js +10 -0
- package/dist/core/analyzer/index.js.map +1 -0
- package/dist/core/analyzer/middleware-extractor.d.ts +29 -0
- package/dist/core/analyzer/middleware-extractor.d.ts.map +1 -0
- package/dist/core/analyzer/middleware-extractor.js +195 -0
- package/dist/core/analyzer/middleware-extractor.js.map +1 -0
- package/dist/core/analyzer/refactor-analyzer.d.ts +83 -0
- package/dist/core/analyzer/refactor-analyzer.d.ts.map +1 -0
- package/dist/core/analyzer/refactor-analyzer.js +351 -0
- package/dist/core/analyzer/refactor-analyzer.js.map +1 -0
- package/dist/core/analyzer/repository-mapper.d.ts +150 -0
- package/dist/core/analyzer/repository-mapper.d.ts.map +1 -0
- package/dist/core/analyzer/repository-mapper.js +740 -0
- package/dist/core/analyzer/repository-mapper.js.map +1 -0
- package/dist/core/analyzer/schema-extractor.d.ts +41 -0
- package/dist/core/analyzer/schema-extractor.d.ts.map +1 -0
- package/dist/core/analyzer/schema-extractor.js +229 -0
- package/dist/core/analyzer/schema-extractor.js.map +1 -0
- package/dist/core/analyzer/signature-extractor.d.ts +31 -0
- package/dist/core/analyzer/signature-extractor.d.ts.map +1 -0
- package/dist/core/analyzer/signature-extractor.js +675 -0
- package/dist/core/analyzer/signature-extractor.js.map +1 -0
- package/dist/core/analyzer/significance-scorer.d.ts +79 -0
- package/dist/core/analyzer/significance-scorer.d.ts.map +1 -0
- package/dist/core/analyzer/significance-scorer.js +407 -0
- package/dist/core/analyzer/significance-scorer.js.map +1 -0
- package/dist/core/analyzer/spec-snapshot-generator.d.ts +17 -0
- package/dist/core/analyzer/spec-snapshot-generator.d.ts.map +1 -0
- package/dist/core/analyzer/spec-snapshot-generator.js +201 -0
- package/dist/core/analyzer/spec-snapshot-generator.js.map +1 -0
- package/dist/core/analyzer/spec-vector-index.d.ts +68 -0
- package/dist/core/analyzer/spec-vector-index.d.ts.map +1 -0
- package/dist/core/analyzer/spec-vector-index.js +340 -0
- package/dist/core/analyzer/spec-vector-index.js.map +1 -0
- package/dist/core/analyzer/subgraph-extractor.d.ts +51 -0
- package/dist/core/analyzer/subgraph-extractor.d.ts.map +1 -0
- package/dist/core/analyzer/subgraph-extractor.js +147 -0
- package/dist/core/analyzer/subgraph-extractor.js.map +1 -0
- package/dist/core/analyzer/type-inference-engine.d.ts +23 -0
- package/dist/core/analyzer/type-inference-engine.d.ts.map +1 -0
- package/dist/core/analyzer/type-inference-engine.js +130 -0
- package/dist/core/analyzer/type-inference-engine.js.map +1 -0
- package/dist/core/analyzer/ui-component-extractor.d.ts +43 -0
- package/dist/core/analyzer/ui-component-extractor.d.ts.map +1 -0
- package/dist/core/analyzer/ui-component-extractor.js +245 -0
- package/dist/core/analyzer/ui-component-extractor.js.map +1 -0
- package/dist/core/analyzer/unified-search.d.ts +116 -0
- package/dist/core/analyzer/unified-search.d.ts.map +1 -0
- package/dist/core/analyzer/unified-search.js +231 -0
- package/dist/core/analyzer/unified-search.js.map +1 -0
- package/dist/core/analyzer/vector-index.d.ts +92 -0
- package/dist/core/analyzer/vector-index.d.ts.map +1 -0
- package/dist/core/analyzer/vector-index.js +451 -0
- package/dist/core/analyzer/vector-index.js.map +1 -0
- package/dist/core/decisions/consolidator.d.ts +14 -0
- package/dist/core/decisions/consolidator.d.ts.map +1 -0
- package/dist/core/decisions/consolidator.js +169 -0
- package/dist/core/decisions/consolidator.js.map +1 -0
- package/dist/core/decisions/extractor.d.ts +26 -0
- package/dist/core/decisions/extractor.d.ts.map +1 -0
- package/dist/core/decisions/extractor.js +156 -0
- package/dist/core/decisions/extractor.js.map +1 -0
- package/dist/core/decisions/index.d.ts +19 -0
- package/dist/core/decisions/index.d.ts.map +1 -0
- package/dist/core/decisions/index.js +16 -0
- package/dist/core/decisions/index.js.map +1 -0
- package/dist/core/decisions/store.d.ts +36 -0
- package/dist/core/decisions/store.d.ts.map +1 -0
- package/dist/core/decisions/store.js +109 -0
- package/dist/core/decisions/store.js.map +1 -0
- package/dist/core/decisions/syncer.d.ts +27 -0
- package/dist/core/decisions/syncer.d.ts.map +1 -0
- package/dist/core/decisions/syncer.js +214 -0
- package/dist/core/decisions/syncer.js.map +1 -0
- package/dist/core/decisions/verifier.d.ts +20 -0
- package/dist/core/decisions/verifier.d.ts.map +1 -0
- package/dist/core/decisions/verifier.js +115 -0
- package/dist/core/decisions/verifier.js.map +1 -0
- package/dist/core/digest/digest-generator.d.ts +29 -0
- package/dist/core/digest/digest-generator.d.ts.map +1 -0
- package/dist/core/digest/digest-generator.js +181 -0
- package/dist/core/digest/digest-generator.js.map +1 -0
- package/dist/core/drift/drift-detector.d.ts +102 -0
- package/dist/core/drift/drift-detector.d.ts.map +1 -0
- package/dist/core/drift/drift-detector.js +598 -0
- package/dist/core/drift/drift-detector.js.map +1 -0
- package/dist/core/drift/git-diff.d.ts +60 -0
- package/dist/core/drift/git-diff.d.ts.map +1 -0
- package/dist/core/drift/git-diff.js +383 -0
- package/dist/core/drift/git-diff.js.map +1 -0
- package/dist/core/drift/index.d.ts +12 -0
- package/dist/core/drift/index.d.ts.map +1 -0
- package/dist/core/drift/index.js +9 -0
- package/dist/core/drift/index.js.map +1 -0
- package/dist/core/drift/spec-mapper.d.ts +73 -0
- package/dist/core/drift/spec-mapper.d.ts.map +1 -0
- package/dist/core/drift/spec-mapper.js +353 -0
- package/dist/core/drift/spec-mapper.js.map +1 -0
- package/dist/core/drift/test-suggester.d.ts +18 -0
- package/dist/core/drift/test-suggester.d.ts.map +1 -0
- package/dist/core/drift/test-suggester.js +107 -0
- package/dist/core/drift/test-suggester.js.map +1 -0
- package/dist/core/generator/adr-generator.d.ts +32 -0
- package/dist/core/generator/adr-generator.d.ts.map +1 -0
- package/dist/core/generator/adr-generator.js +192 -0
- package/dist/core/generator/adr-generator.js.map +1 -0
- package/dist/core/generator/index.d.ts +9 -0
- package/dist/core/generator/index.d.ts.map +1 -0
- package/dist/core/generator/index.js +12 -0
- package/dist/core/generator/index.js.map +1 -0
- package/dist/core/generator/mapping-generator.d.ts +54 -0
- package/dist/core/generator/mapping-generator.d.ts.map +1 -0
- package/dist/core/generator/mapping-generator.js +240 -0
- package/dist/core/generator/mapping-generator.js.map +1 -0
- package/dist/core/generator/openspec-compat.d.ts +160 -0
- package/dist/core/generator/openspec-compat.d.ts.map +1 -0
- package/dist/core/generator/openspec-compat.js +524 -0
- package/dist/core/generator/openspec-compat.js.map +1 -0
- package/dist/core/generator/openspec-format-generator.d.ts +131 -0
- package/dist/core/generator/openspec-format-generator.d.ts.map +1 -0
- package/dist/core/generator/openspec-format-generator.js +963 -0
- package/dist/core/generator/openspec-format-generator.js.map +1 -0
- package/dist/core/generator/openspec-writer.d.ts +130 -0
- package/dist/core/generator/openspec-writer.d.ts.map +1 -0
- package/dist/core/generator/openspec-writer.js +404 -0
- package/dist/core/generator/openspec-writer.js.map +1 -0
- package/dist/core/generator/prompts.d.ts +35 -0
- package/dist/core/generator/prompts.d.ts.map +1 -0
- package/dist/core/generator/prompts.js +212 -0
- package/dist/core/generator/prompts.js.map +1 -0
- package/dist/core/generator/rag-manifest-generator.d.ts +37 -0
- package/dist/core/generator/rag-manifest-generator.d.ts.map +1 -0
- package/dist/core/generator/rag-manifest-generator.js +134 -0
- package/dist/core/generator/rag-manifest-generator.js.map +1 -0
- package/dist/core/generator/schemas.d.ts +365 -0
- package/dist/core/generator/schemas.d.ts.map +1 -0
- package/dist/core/generator/schemas.js +190 -0
- package/dist/core/generator/schemas.js.map +1 -0
- package/dist/core/generator/spec-pipeline.d.ts +123 -0
- package/dist/core/generator/spec-pipeline.d.ts.map +1 -0
- package/dist/core/generator/spec-pipeline.js +699 -0
- package/dist/core/generator/spec-pipeline.js.map +1 -0
- package/dist/core/generator/stages/stage1-survey.d.ts +19 -0
- package/dist/core/generator/stages/stage1-survey.d.ts.map +1 -0
- package/dist/core/generator/stages/stage1-survey.js +171 -0
- package/dist/core/generator/stages/stage1-survey.js.map +1 -0
- package/dist/core/generator/stages/stage2-entities.d.ts +11 -0
- package/dist/core/generator/stages/stage2-entities.d.ts.map +1 -0
- package/dist/core/generator/stages/stage2-entities.js +74 -0
- package/dist/core/generator/stages/stage2-entities.js.map +1 -0
- package/dist/core/generator/stages/stage3-services.d.ts +11 -0
- package/dist/core/generator/stages/stage3-services.d.ts.map +1 -0
- package/dist/core/generator/stages/stage3-services.js +85 -0
- package/dist/core/generator/stages/stage3-services.js.map +1 -0
- package/dist/core/generator/stages/stage4-api.d.ts +11 -0
- package/dist/core/generator/stages/stage4-api.d.ts.map +1 -0
- package/dist/core/generator/stages/stage4-api.js +72 -0
- package/dist/core/generator/stages/stage4-api.js.map +1 -0
- package/dist/core/generator/stages/stage5-architecture.d.ts +11 -0
- package/dist/core/generator/stages/stage5-architecture.d.ts.map +1 -0
- package/dist/core/generator/stages/stage5-architecture.js +75 -0
- package/dist/core/generator/stages/stage5-architecture.js.map +1 -0
- package/dist/core/generator/stages/stage6-adr.d.ts +8 -0
- package/dist/core/generator/stages/stage6-adr.d.ts.map +1 -0
- package/dist/core/generator/stages/stage6-adr.js +47 -0
- package/dist/core/generator/stages/stage6-adr.js.map +1 -0
- package/dist/core/services/chat-agent.d.ts +50 -0
- package/dist/core/services/chat-agent.d.ts.map +1 -0
- package/dist/core/services/chat-agent.js +369 -0
- package/dist/core/services/chat-agent.js.map +1 -0
- package/dist/core/services/chat-tools.d.ts +32 -0
- package/dist/core/services/chat-tools.d.ts.map +1 -0
- package/dist/core/services/chat-tools.js +494 -0
- package/dist/core/services/chat-tools.js.map +1 -0
- package/dist/core/services/config-manager.d.ts +61 -0
- package/dist/core/services/config-manager.d.ts.map +1 -0
- package/dist/core/services/config-manager.js +149 -0
- package/dist/core/services/config-manager.js.map +1 -0
- package/dist/core/services/edge-store.d.ts +57 -0
- package/dist/core/services/edge-store.d.ts.map +1 -0
- package/dist/core/services/edge-store.js +419 -0
- package/dist/core/services/edge-store.js.map +1 -0
- package/dist/core/services/gitignore-manager.d.ts +29 -0
- package/dist/core/services/gitignore-manager.d.ts.map +1 -0
- package/dist/core/services/gitignore-manager.js +95 -0
- package/dist/core/services/gitignore-manager.js.map +1 -0
- package/dist/core/services/index.d.ts +8 -0
- package/dist/core/services/index.d.ts.map +1 -0
- package/dist/core/services/index.js +8 -0
- package/dist/core/services/index.js.map +1 -0
- package/dist/core/services/llm-service.d.ts +379 -0
- package/dist/core/services/llm-service.d.ts.map +1 -0
- package/dist/core/services/llm-service.js +1553 -0
- package/dist/core/services/llm-service.js.map +1 -0
- package/dist/core/services/mcp-handlers/analysis.d.ts +127 -0
- package/dist/core/services/mcp-handlers/analysis.d.ts.map +1 -0
- package/dist/core/services/mcp-handlers/analysis.js +1185 -0
- package/dist/core/services/mcp-handlers/analysis.js.map +1 -0
- package/dist/core/services/mcp-handlers/change.d.ts +14 -0
- package/dist/core/services/mcp-handlers/change.d.ts.map +1 -0
- package/dist/core/services/mcp-handlers/change.js +416 -0
- package/dist/core/services/mcp-handlers/change.js.map +1 -0
- package/dist/core/services/mcp-handlers/decisions.d.ts +16 -0
- package/dist/core/services/mcp-handlers/decisions.d.ts.map +1 -0
- package/dist/core/services/mcp-handlers/decisions.js +239 -0
- package/dist/core/services/mcp-handlers/decisions.js.map +1 -0
- package/dist/core/services/mcp-handlers/graph.d.ts +94 -0
- package/dist/core/services/mcp-handlers/graph.d.ts.map +1 -0
- package/dist/core/services/mcp-handlers/graph.js +693 -0
- package/dist/core/services/mcp-handlers/graph.js.map +1 -0
- package/dist/core/services/mcp-handlers/orient.d.ts +17 -0
- package/dist/core/services/mcp-handlers/orient.d.ts.map +1 -0
- package/dist/core/services/mcp-handlers/orient.js +357 -0
- package/dist/core/services/mcp-handlers/orient.js.map +1 -0
- package/dist/core/services/mcp-handlers/semantic.d.ts +66 -0
- package/dist/core/services/mcp-handlers/semantic.d.ts.map +1 -0
- package/dist/core/services/mcp-handlers/semantic.js +432 -0
- package/dist/core/services/mcp-handlers/semantic.js.map +1 -0
- package/dist/core/services/mcp-handlers/utils.d.ts +85 -0
- package/dist/core/services/mcp-handlers/utils.d.ts.map +1 -0
- package/dist/core/services/mcp-handlers/utils.js +262 -0
- package/dist/core/services/mcp-handlers/utils.js.map +1 -0
- package/dist/core/services/mcp-watcher.d.ts +41 -0
- package/dist/core/services/mcp-watcher.d.ts.map +1 -0
- package/dist/core/services/mcp-watcher.js +254 -0
- package/dist/core/services/mcp-watcher.js.map +1 -0
- package/dist/core/services/project-detector.d.ts +32 -0
- package/dist/core/services/project-detector.d.ts.map +1 -0
- package/dist/core/services/project-detector.js +100 -0
- package/dist/core/services/project-detector.js.map +1 -0
- package/dist/core/test-generator/coverage-analyzer.d.ts +27 -0
- package/dist/core/test-generator/coverage-analyzer.d.ts.map +1 -0
- package/dist/core/test-generator/coverage-analyzer.js +285 -0
- package/dist/core/test-generator/coverage-analyzer.js.map +1 -0
- package/dist/core/test-generator/framework-detector.d.ts +17 -0
- package/dist/core/test-generator/framework-detector.d.ts.map +1 -0
- package/dist/core/test-generator/framework-detector.js +65 -0
- package/dist/core/test-generator/framework-detector.js.map +1 -0
- package/dist/core/test-generator/index.d.ts +14 -0
- package/dist/core/test-generator/index.d.ts.map +1 -0
- package/dist/core/test-generator/index.js +11 -0
- package/dist/core/test-generator/index.js.map +1 -0
- package/dist/core/test-generator/renderers/catch2.d.ts +8 -0
- package/dist/core/test-generator/renderers/catch2.d.ts.map +1 -0
- package/dist/core/test-generator/renderers/catch2.js +47 -0
- package/dist/core/test-generator/renderers/catch2.js.map +1 -0
- package/dist/core/test-generator/renderers/gtest.d.ts +8 -0
- package/dist/core/test-generator/renderers/gtest.d.ts.map +1 -0
- package/dist/core/test-generator/renderers/gtest.js +45 -0
- package/dist/core/test-generator/renderers/gtest.js.map +1 -0
- package/dist/core/test-generator/renderers/index.d.ts +20 -0
- package/dist/core/test-generator/renderers/index.d.ts.map +1 -0
- package/dist/core/test-generator/renderers/index.js +35 -0
- package/dist/core/test-generator/renderers/index.js.map +1 -0
- package/dist/core/test-generator/renderers/playwright.d.ts +8 -0
- package/dist/core/test-generator/renderers/playwright.d.ts.map +1 -0
- package/dist/core/test-generator/renderers/playwright.js +44 -0
- package/dist/core/test-generator/renderers/playwright.js.map +1 -0
- package/dist/core/test-generator/renderers/pytest.d.ts +8 -0
- package/dist/core/test-generator/renderers/pytest.d.ts.map +1 -0
- package/dist/core/test-generator/renderers/pytest.js +44 -0
- package/dist/core/test-generator/renderers/pytest.js.map +1 -0
- package/dist/core/test-generator/renderers/shared.d.ts +21 -0
- package/dist/core/test-generator/renderers/shared.d.ts.map +1 -0
- package/dist/core/test-generator/renderers/shared.js +56 -0
- package/dist/core/test-generator/renderers/shared.js.map +1 -0
- package/dist/core/test-generator/renderers/vitest.d.ts +8 -0
- package/dist/core/test-generator/renderers/vitest.d.ts.map +1 -0
- package/dist/core/test-generator/renderers/vitest.js +52 -0
- package/dist/core/test-generator/renderers/vitest.js.map +1 -0
- package/dist/core/test-generator/scenario-parser.d.ts +33 -0
- package/dist/core/test-generator/scenario-parser.d.ts.map +1 -0
- package/dist/core/test-generator/scenario-parser.js +244 -0
- package/dist/core/test-generator/scenario-parser.js.map +1 -0
- package/dist/core/test-generator/test-generator.d.ts +30 -0
- package/dist/core/test-generator/test-generator.d.ts.map +1 -0
- package/dist/core/test-generator/test-generator.js +174 -0
- package/dist/core/test-generator/test-generator.js.map +1 -0
- package/dist/core/test-generator/test-writer.d.ts +25 -0
- package/dist/core/test-generator/test-writer.d.ts.map +1 -0
- package/dist/core/test-generator/test-writer.js +128 -0
- package/dist/core/test-generator/test-writer.js.map +1 -0
- package/dist/core/test-generator/then-matchers.d.ts +35 -0
- package/dist/core/test-generator/then-matchers.d.ts.map +1 -0
- package/dist/core/test-generator/then-matchers.js +211 -0
- package/dist/core/test-generator/then-matchers.js.map +1 -0
- package/dist/core/verifier/index.d.ts +5 -0
- package/dist/core/verifier/index.d.ts.map +1 -0
- package/dist/core/verifier/index.js +5 -0
- package/dist/core/verifier/index.js.map +1 -0
- package/dist/core/verifier/verification-engine.d.ts +293 -0
- package/dist/core/verifier/verification-engine.d.ts.map +1 -0
- package/dist/core/verifier/verification-engine.js +919 -0
- package/dist/core/verifier/verification-engine.js.map +1 -0
- package/dist/types/index.d.ts +368 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/pipeline.d.ts +167 -0
- package/dist/types/pipeline.d.ts.map +1 -0
- package/dist/types/pipeline.js +5 -0
- package/dist/types/pipeline.js.map +1 -0
- package/dist/types/test-generator.d.ts +103 -0
- package/dist/types/test-generator.d.ts.map +1 -0
- package/dist/types/test-generator.js +17 -0
- package/dist/types/test-generator.js.map +1 -0
- package/dist/utils/command-helpers.d.ts +68 -0
- package/dist/utils/command-helpers.d.ts.map +1 -0
- package/dist/utils/command-helpers.js +150 -0
- package/dist/utils/command-helpers.js.map +1 -0
- package/dist/utils/errors.d.ts +51 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +129 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/logger.d.ts +149 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +342 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/misc.d.ts +10 -0
- package/dist/utils/misc.d.ts.map +1 -0
- package/dist/utils/misc.js +21 -0
- package/dist/utils/misc.js.map +1 -0
- package/dist/utils/progress.d.ts +142 -0
- package/dist/utils/progress.d.ts.map +1 -0
- package/dist/utils/progress.js +283 -0
- package/dist/utils/progress.js.map +1 -0
- package/dist/utils/prompts.d.ts +53 -0
- package/dist/utils/prompts.d.ts.map +1 -0
- package/dist/utils/prompts.js +199 -0
- package/dist/utils/prompts.js.map +1 -0
- package/dist/utils/shutdown.d.ts +89 -0
- package/dist/utils/shutdown.d.ts.map +1 -0
- package/dist/utils/shutdown.js +238 -0
- package/dist/utils/shutdown.js.map +1 -0
- package/examples/bmad/README.md +113 -0
- package/examples/bmad/agents/architect.md +226 -0
- package/examples/bmad/agents/dev-brownfield.md +69 -0
- package/examples/bmad/setup/architect.customize.yaml +14 -0
- package/examples/bmad/tasks/implement-story.md +254 -0
- package/examples/bmad/tasks/onboarding.md +169 -0
- package/examples/bmad/tasks/refactor.md +178 -0
- package/examples/bmad/tasks/sprint-planning.md +168 -0
- package/examples/bmad/templates/story.md +108 -0
- package/examples/cline-workflows/openlore-analyze-codebase.md +101 -0
- package/examples/cline-workflows/openlore-check-spec-drift.md +102 -0
- package/examples/cline-workflows/openlore-execute-refactor.md +212 -0
- package/examples/cline-workflows/openlore-implement-feature.md +266 -0
- package/examples/cline-workflows/openlore-plan-refactor.md +279 -0
- package/examples/cline-workflows/openlore-refactor-codebase.md +16 -0
- package/examples/cline-workflows/openlore-write-tests.md +177 -0
- package/examples/drift-demo/openspec/config.yaml +14 -0
- package/examples/drift-demo/openspec/specs/architecture/spec.md +30 -0
- package/examples/drift-demo/openspec/specs/auth/spec.md +71 -0
- package/examples/drift-demo/openspec/specs/database/spec.md +33 -0
- package/examples/drift-demo/openspec/specs/overview/spec.md +20 -0
- package/examples/drift-demo/openspec/specs/projects/spec.md +55 -0
- package/examples/drift-demo/openspec/specs/tasks/spec.md +78 -0
- package/examples/drift-demo/package.json +21 -0
- package/examples/drift-demo/src/auth/auth-middleware.ts +30 -0
- package/examples/drift-demo/src/auth/auth-routes.ts +29 -0
- package/examples/drift-demo/src/auth/auth-service.ts +45 -0
- package/examples/drift-demo/src/database/connection.ts +27 -0
- package/examples/drift-demo/src/index.ts +16 -0
- package/examples/drift-demo/src/projects/project-model.ts +15 -0
- package/examples/drift-demo/src/projects/project-service.ts +34 -0
- package/examples/drift-demo/src/tasks/task-model.ts +37 -0
- package/examples/drift-demo/src/tasks/task-routes.ts +53 -0
- package/examples/drift-demo/src/tasks/task-service.ts +60 -0
- package/examples/drift-demo/src/utils/validation.ts +11 -0
- package/examples/drift-demo/tests/auth.test.ts +4 -0
- package/examples/drift-demo/tests/tasks.test.ts +4 -0
- package/examples/drift-demo/tsconfig.json +10 -0
- package/examples/drift-test/run-drift-test.sh +1087 -0
- package/examples/gsd/README.md +119 -0
- package/examples/gsd/commands/gsd/openlore-drift.md +111 -0
- package/examples/gsd/commands/gsd/openlore-orient.md +191 -0
- package/examples/mistral-vibe/README.md +101 -0
- package/examples/mistral-vibe/antipatterns-template.md +18 -0
- package/examples/mistral-vibe/skills/openlore-analyze-codebase/SKILL.md +124 -0
- package/examples/mistral-vibe/skills/openlore-brainstorm/SKILL.md +379 -0
- package/examples/mistral-vibe/skills/openlore-debug/SKILL.md +330 -0
- package/examples/mistral-vibe/skills/openlore-execute-refactor/SKILL.md +291 -0
- package/examples/mistral-vibe/skills/openlore-generate/SKILL.md +245 -0
- package/examples/mistral-vibe/skills/openlore-implement-story/SKILL.md +326 -0
- package/examples/mistral-vibe/skills/openlore-plan-refactor/SKILL.md +365 -0
- package/examples/mistral-vibe/skills/openlore-review-changes/SKILL.md +128 -0
- package/examples/mistral-vibe/skills/openlore-write-tests/SKILL.md +261 -0
- package/examples/opencode/agent-guard.ts +170 -0
- package/examples/opencode/plugins/anti-laziness.ts +202 -0
- package/examples/opencode/plugins/lib/openlore-context-injector-helpers.ts +116 -0
- package/examples/opencode/plugins/lib/openlore-decision-extractor-helpers.ts +65 -0
- package/examples/opencode/plugins/openlore-context-injector.test.ts +211 -0
- package/examples/opencode/plugins/openlore-context-injector.ts +165 -0
- package/examples/opencode/plugins/openlore-decision-extractor.test.ts +131 -0
- package/examples/opencode/plugins/openlore-decision-extractor.ts +322 -0
- package/examples/opencode/plugins/openlore-enforcer.ts +227 -0
- package/examples/opencode/prompts/sisyphus-sdd.md +150 -0
- package/examples/opencode-skills/openlore-analyze-codebase/SKILL.md +101 -0
- package/examples/opencode-skills/openlore-brainstorm/SKILL.md +354 -0
- package/examples/opencode-skills/openlore-debug/SKILL.md +291 -0
- package/examples/opencode-skills/openlore-execute-refactor/SKILL.md +241 -0
- package/examples/opencode-skills/openlore-generate/SKILL.md +236 -0
- package/examples/opencode-skills/openlore-implement-story/SKILL.md +251 -0
- package/examples/opencode-skills/openlore-plan-refactor/SKILL.md +298 -0
- package/examples/opencode-skills/openlore-review-changes/SKILL.md +134 -0
- package/examples/opencode-skills/openlore-write-tests/SKILL.md +230 -0
- package/examples/openspec-analysis/README.md +59 -0
- package/examples/openspec-analysis/SUMMARY.md +72 -0
- package/examples/openspec-analysis/config.json +16 -0
- package/examples/openspec-analysis/dependencies.mermaid +35 -0
- package/examples/openspec-analysis/dependency-graph.json +12116 -0
- package/examples/openspec-analysis/llm-context.json +119 -0
- package/examples/openspec-analysis/repo-structure.json +871 -0
- package/examples/openspec-cli/README.md +67 -0
- package/examples/openspec-cli/openspec/config.yaml +26 -0
- package/examples/openspec-cli/openspec/specs/architecture/spec.md +178 -0
- package/examples/openspec-cli/openspec/specs/artifact-graph/spec.md +143 -0
- package/examples/openspec-cli/openspec/specs/cli/spec.md +138 -0
- package/examples/openspec-cli/openspec/specs/overview/spec.md +60 -0
- package/examples/openspec-cli/openspec/specs/parsing/spec.md +123 -0
- package/examples/openspec-cli/openspec/specs/validation/spec.md +108 -0
- package/examples/spec-kit/README.md +104 -0
- package/examples/spec-kit/commands/drift.md +87 -0
- package/examples/spec-kit/commands/orient.md +138 -0
- package/examples/spec-kit/extension.yml +54 -0
- package/package.json +125 -0
- package/src/viewer/InteractiveGraphViewer.jsx +1600 -0
- package/src/viewer/app/index.html +17 -0
- package/src/viewer/app/main.jsx +13 -0
- package/src/viewer/components/ArchitectureView.jsx +177 -0
- package/src/viewer/components/ChatPanel.jsx +450 -0
- package/src/viewer/components/ClassGraph.jsx +782 -0
- package/src/viewer/components/ClusterGraph.jsx +469 -0
- package/src/viewer/components/FilterBar.jsx +179 -0
- package/src/viewer/components/FlatGraph.jsx +282 -0
- package/src/viewer/components/MicroComponents.jsx +85 -0
- package/src/viewer/hooks/usePanZoom.js +79 -0
- package/src/viewer/utils/constants.js +64 -0
- package/src/viewer/utils/graph-helpers.js +303 -0
- package/src/viewer/utils/graph-helpers.test.ts +39 -0
- package/src/viewer/utils/themes.js +206 -0
- package/stubs/tree-sitter-cli-stub/package.json +6 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt templates for each generation stage.
|
|
3
|
+
* These are used by the stage functions to construct LLM requests.
|
|
4
|
+
*/
|
|
5
|
+
export declare const PROMPTS: {
|
|
6
|
+
stage1_survey: string;
|
|
7
|
+
stage2_entities: (projectCategory: string, frameworks: string[]) => string;
|
|
8
|
+
stage3_services: (projectCategory: string, entities: string[], suggestedDomains: string[]) => string;
|
|
9
|
+
stage4_api: string;
|
|
10
|
+
stage5_architecture: (survey: {
|
|
11
|
+
domainSummary: string;
|
|
12
|
+
architecturePattern: string;
|
|
13
|
+
suggestedDomains: string[];
|
|
14
|
+
}) => string;
|
|
15
|
+
stage6_adr: (architecture: {
|
|
16
|
+
layerMap: {
|
|
17
|
+
name: string;
|
|
18
|
+
purpose: string;
|
|
19
|
+
}[];
|
|
20
|
+
systemPurpose: string;
|
|
21
|
+
architectureStyle: string;
|
|
22
|
+
dataFlow: string;
|
|
23
|
+
securityModel: string;
|
|
24
|
+
integrations: string[];
|
|
25
|
+
keyDecisions: string[];
|
|
26
|
+
}) => string;
|
|
27
|
+
stage3_subspec_system: string;
|
|
28
|
+
stage3_subspec: (orchestratorName: string, orchestratorPurpose: string, callees: Array<{
|
|
29
|
+
name: string;
|
|
30
|
+
signature?: string;
|
|
31
|
+
docstring?: string;
|
|
32
|
+
subcallees: string[];
|
|
33
|
+
}>) => string;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/core/generator/prompts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,eAAO,MAAM,OAAO;;uCAkCiB,MAAM,cAAc,MAAM,EAAE;uCA6B5B,MAAM,YAAY,MAAM,EAAE,oBAAoB,MAAM,EAAE;;kCAgE3D;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,EAAE,CAAA;KAAE;+BAmCrF;QAAE,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAA;KAAE;;uCAyCnM,MAAM,uBACH,MAAM,WAClB,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAcjG,CAAC"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt templates for each generation stage.
|
|
3
|
+
* These are used by the stage functions to construct LLM requests.
|
|
4
|
+
*/
|
|
5
|
+
export const PROMPTS = {
|
|
6
|
+
stage1_survey: `You are a senior software architect performing a codebase audit.
|
|
7
|
+
Your task is to categorize this project based on the analysis data provided.
|
|
8
|
+
|
|
9
|
+
Respond with a JSON object containing:
|
|
10
|
+
- projectCategory: One of ["web-frontend", "web-backend", "api-service", "cli-tool", "library", "mobile-app", "desktop-app", "data-pipeline", "ml-service", "monorepo", "other"]
|
|
11
|
+
- primaryLanguage: The main language
|
|
12
|
+
- frameworks: Array of detected frameworks
|
|
13
|
+
- architecturePattern: One of ["layered", "hexagonal", "microservices", "monolith", "serverless", "event-driven", "mvc", "other"]
|
|
14
|
+
- domainSummary: One sentence describing what this system does
|
|
15
|
+
- suggestedDomains: Array of domain names for OpenSpec specs (e.g., ["user", "order", "auth", "api"])
|
|
16
|
+
- confidence: 0-1 score of how confident you are
|
|
17
|
+
- schemaFiles: Array of file paths (from the provided file list) that define data models, types, entities, or interfaces — these will be used for entity extraction. Include files regardless of their name, based on their content role.
|
|
18
|
+
- serviceFiles: Array of file paths containing business logic, services, processors, analyzers, pipelines, or domain operations — used for service analysis. Do not filter by name conventions; look at what the file does.
|
|
19
|
+
- apiFiles: Array of file paths that expose public interfaces: HTTP routes, CLI command handlers, GraphQL resolvers, message consumers, or external-facing APIs.
|
|
20
|
+
|
|
21
|
+
For schemaFiles/serviceFiles/apiFiles: use the exact file paths from the provided analysis. Return [] if none apply.
|
|
22
|
+
|
|
23
|
+
Example output:
|
|
24
|
+
{
|
|
25
|
+
"projectCategory": "api-service",
|
|
26
|
+
"primaryLanguage": "TypeScript",
|
|
27
|
+
"frameworks": ["Express", "Prisma"],
|
|
28
|
+
"architecturePattern": "layered",
|
|
29
|
+
"domainSummary": "REST API managing e-commerce orders and inventory.",
|
|
30
|
+
"suggestedDomains": ["order", "product", "auth"],
|
|
31
|
+
"confidence": 0.85,
|
|
32
|
+
"schemaFiles": ["src/models/order.ts", "src/types/product.ts"],
|
|
33
|
+
"serviceFiles": ["src/services/order-service.ts", "src/core/inventory.ts"],
|
|
34
|
+
"apiFiles": ["src/routes/orders.ts", "src/cli/commands/create.ts"]
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
Respond ONLY with valid JSON.`,
|
|
38
|
+
stage2_entities: (projectCategory, frameworks) => `You are analyzing the core data models of a ${projectCategory} built with ${frameworks.join(', ')}.
|
|
39
|
+
|
|
40
|
+
For each entity you identify, extract in OpenSpec format:
|
|
41
|
+
- name: The entity name (e.g., "User", "Order")
|
|
42
|
+
- description: What this entity represents in the business domain
|
|
43
|
+
- properties: Array of {name, type, description, required}
|
|
44
|
+
- relationships: Array of {targetEntity, type, description}
|
|
45
|
+
- validations: Array of validation rules as strings (these become Requirements)
|
|
46
|
+
- scenarios: Array of {name, given, when, then, and?} - observable behaviors in Given/When/Then format
|
|
47
|
+
|
|
48
|
+
Focus on BUSINESS entities, not framework internals.
|
|
49
|
+
Be precise - only include what you can verify from the code.
|
|
50
|
+
|
|
51
|
+
Example output:
|
|
52
|
+
[{
|
|
53
|
+
"name": "Order",
|
|
54
|
+
"description": "Represents a customer purchase transaction.",
|
|
55
|
+
"properties": [
|
|
56
|
+
{"name": "id", "type": "string", "description": "Unique identifier", "required": true},
|
|
57
|
+
{"name": "status", "type": "OrderStatus", "description": "Current lifecycle state", "required": true}
|
|
58
|
+
],
|
|
59
|
+
"relationships": [{"targetEntity": "User", "type": "belongs-to", "description": "Order belongs to a customer"}],
|
|
60
|
+
"validations": ["Total must be positive", "Status transitions: pending → confirmed → shipped"],
|
|
61
|
+
"scenarios": [{"name": "Place order", "given": "User with items in cart", "when": "submitOrder() is called", "then": "Order created with status 'pending' and inventory reserved"}],
|
|
62
|
+
"location": ""
|
|
63
|
+
}]
|
|
64
|
+
|
|
65
|
+
Respond with a JSON array of entities. Respond ONLY with valid JSON.`,
|
|
66
|
+
stage3_services: (projectCategory, entities, suggestedDomains) => `You are analyzing the logic and processing layer of a ${projectCategory}.
|
|
67
|
+
|
|
68
|
+
Known entities: ${entities.join(', ')}
|
|
69
|
+
Available domains: ${suggestedDomains.join(', ')}
|
|
70
|
+
|
|
71
|
+
For each service/module, identify:
|
|
72
|
+
- name: Service name
|
|
73
|
+
- purpose: What capability or responsibility it encapsulates
|
|
74
|
+
- operations: Array of {name, description, inputs, outputs, scenarios, functionName} - key operations/methods that become Requirements with Scenarios. Cover all meaningful operations that represent distinct business behaviors.
|
|
75
|
+
- operations[].functionName: The exact function or method name as written in the source code that implements this operation (e.g. "runStage2", "buildSpecMap"). Leave empty string if uncertain.
|
|
76
|
+
- dependencies: Array of other services/repositories it uses
|
|
77
|
+
- sideEffects: Array of external interactions (file I/O, network calls, database, queues, etc.)
|
|
78
|
+
- domain: Which domain OWNS this service (where it lives in the codebase, not who uses it) — use ONLY one of the available domains listed above
|
|
79
|
+
|
|
80
|
+
Focus on WHAT the service does, not HOW it's implemented.
|
|
81
|
+
Express operations as requirements (SHALL/MUST/SHOULD) with testable scenarios.
|
|
82
|
+
|
|
83
|
+
Example output:
|
|
84
|
+
[{
|
|
85
|
+
"name": "OrderService",
|
|
86
|
+
"purpose": "Manages order lifecycle: placement, validation, and fulfillment.",
|
|
87
|
+
"operations": [
|
|
88
|
+
{
|
|
89
|
+
"name": "placeOrder",
|
|
90
|
+
"description": "Validates cart contents and creates a new order record.",
|
|
91
|
+
"inputs": ["userId: string", "items: CartItem[]"],
|
|
92
|
+
"outputs": ["orderId: string"],
|
|
93
|
+
"functionName": "placeOrder",
|
|
94
|
+
"scenarios": [{"name": "Valid order", "given": "In-stock items in cart", "when": "placeOrder is called", "then": "Order persisted and inventory reserved"}]
|
|
95
|
+
}
|
|
96
|
+
],
|
|
97
|
+
"dependencies": ["InventoryService", "OrderRepository"],
|
|
98
|
+
"sideEffects": ["Writes to orders table", "Sends confirmation email via queue"],
|
|
99
|
+
"domain": "order"
|
|
100
|
+
}]
|
|
101
|
+
|
|
102
|
+
Respond with a JSON array of services. Respond ONLY with valid JSON.`,
|
|
103
|
+
stage4_api: `Extract the public API surface of this application.
|
|
104
|
+
|
|
105
|
+
For each endpoint/interface, structure as:
|
|
106
|
+
- method: HTTP method or interface type
|
|
107
|
+
- path: Route path or interface signature
|
|
108
|
+
- purpose: What it does (becomes requirement description)
|
|
109
|
+
- authentication: Required auth (if detectable)
|
|
110
|
+
- requestSchema: Expected input as JSON object
|
|
111
|
+
- responseSchema: Expected output as JSON object
|
|
112
|
+
- scenarios: Array of {name, given, when, then, and?} - example request/response flows
|
|
113
|
+
- relatedEntity: Which domain entity it operates on
|
|
114
|
+
|
|
115
|
+
Example output:
|
|
116
|
+
[{
|
|
117
|
+
"method": "POST",
|
|
118
|
+
"path": "/api/orders",
|
|
119
|
+
"purpose": "Create a new order from the current cart.",
|
|
120
|
+
"authentication": "Bearer JWT",
|
|
121
|
+
"requestSchema": {"userId": "string", "items": "CartItem[]"},
|
|
122
|
+
"responseSchema": {"orderId": "string", "status": "pending"},
|
|
123
|
+
"scenarios": [{"name": "Create order", "given": "Authenticated user with valid cart", "when": "POST /api/orders is called", "then": "201 Created with orderId in response body"}],
|
|
124
|
+
"relatedEntity": "Order"
|
|
125
|
+
}]
|
|
126
|
+
|
|
127
|
+
Respond with a JSON array of endpoints. Respond ONLY with valid JSON.`,
|
|
128
|
+
stage5_architecture: (survey) => `Based on the analysis data, synthesize a complete architecture overview for OpenSpec.
|
|
129
|
+
|
|
130
|
+
Project context: ${survey.domainSummary}
|
|
131
|
+
Architecture pattern: ${survey.architecturePattern}
|
|
132
|
+
Domains: ${survey.suggestedDomains.join(', ')}
|
|
133
|
+
|
|
134
|
+
Include:
|
|
135
|
+
- systemPurpose: 2-3 sentences on what this system does and why
|
|
136
|
+
- architectureStyle: The overall architecture pattern with justification
|
|
137
|
+
- layerMap: Array of {name, purpose, components} - how code is organized
|
|
138
|
+
- dataFlow: How data moves through the system (entry to persistence) as a string
|
|
139
|
+
- integrations: Array of external systems this interacts with
|
|
140
|
+
- securityModel: Authentication/authorization approach as a string
|
|
141
|
+
- keyDecisions: Array of observable architectural decisions as strings
|
|
142
|
+
|
|
143
|
+
Express each key architectural aspect clearly.
|
|
144
|
+
Base all conclusions on the code evidence provided.
|
|
145
|
+
Where uncertain, say so explicitly.
|
|
146
|
+
|
|
147
|
+
Example output:
|
|
148
|
+
{
|
|
149
|
+
"systemPurpose": "A REST API for e-commerce order management. It allows customers to browse products, place orders, and track fulfillment.",
|
|
150
|
+
"architectureStyle": "Layered architecture: HTTP routes → service layer → repository pattern over PostgreSQL.",
|
|
151
|
+
"layerMap": [
|
|
152
|
+
{"name": "API", "purpose": "HTTP routing and input validation", "components": ["routes/orders.ts", "routes/products.ts"]},
|
|
153
|
+
{"name": "Service", "purpose": "Business logic and orchestration", "components": ["services/order-service.ts"]}
|
|
154
|
+
],
|
|
155
|
+
"dataFlow": "HTTP request → route handler → service → repository → PostgreSQL; async email notifications via Redis queue",
|
|
156
|
+
"integrations": ["PostgreSQL", "Redis", "SendGrid"],
|
|
157
|
+
"securityModel": "JWT Bearer tokens issued at login; route middleware enforces authentication on all /api/* routes",
|
|
158
|
+
"keyDecisions": ["Use Prisma ORM for type-safe database access", "Redis queue for async email notifications to avoid request latency"]
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
Respond with a JSON object. Respond ONLY with valid JSON.`,
|
|
162
|
+
stage6_adr: (architecture) => `You are a senior software architect creating Architecture Decision Records (ADRs).
|
|
163
|
+
|
|
164
|
+
For each key decision listed below, produce a complete ADR with:
|
|
165
|
+
- id: Sequential like "ADR-001", "ADR-002", etc.
|
|
166
|
+
- title: The decision as a clear statement (e.g., "Use TypeORM for database access")
|
|
167
|
+
- status: "accepted" (these are observed decisions already implemented in the code)
|
|
168
|
+
- context: 2-3 sentences on why this decision was needed
|
|
169
|
+
- decision: 1-2 sentences clearly stating what was decided
|
|
170
|
+
- consequences: Array of 2-4 consequences (include both positive and negative)
|
|
171
|
+
- alternatives: Array of 1-3 alternatives that could have been chosen instead
|
|
172
|
+
- relatedLayers: Array of architecture layer names affected (from: ${architecture.layerMap.map(l => l.name).join(', ')})
|
|
173
|
+
- relatedDomains: Array of domain names affected
|
|
174
|
+
|
|
175
|
+
Architecture context:
|
|
176
|
+
- System purpose: ${architecture.systemPurpose}
|
|
177
|
+
- Architecture style: ${architecture.architectureStyle}
|
|
178
|
+
- Layers: ${architecture.layerMap.map(l => `${l.name} (${l.purpose})`).join(', ')}
|
|
179
|
+
- Data flow: ${architecture.dataFlow}
|
|
180
|
+
- Security model: ${architecture.securityModel}
|
|
181
|
+
- External integrations: ${architecture.integrations.join(', ') || 'None'}
|
|
182
|
+
|
|
183
|
+
Key decisions to expand into full ADRs:
|
|
184
|
+
${architecture.keyDecisions.map((d, i) => `${i + 1}. ${d}`).join('\n')}
|
|
185
|
+
|
|
186
|
+
Base all conclusions on the code evidence provided. Where uncertain, say so explicitly.
|
|
187
|
+
Respond with a JSON array of ADR objects. Respond ONLY with valid JSON.`,
|
|
188
|
+
stage3_subspec_system: `You are generating sub-specifications for the logical blocks of an orchestrator function.
|
|
189
|
+
|
|
190
|
+
For each sub-block provided, generate a focused specification:
|
|
191
|
+
- name: short camelCase identifier (e.g. "entityExtraction", "schemaValidation")
|
|
192
|
+
- callee: exact function/method name as written in source code
|
|
193
|
+
- purpose: one sentence describing what this block does
|
|
194
|
+
- operations: array of {name, description, inputs, outputs, scenarios, functionName}
|
|
195
|
+
- Express operations as requirements using SHALL/MUST/SHOULD keywords
|
|
196
|
+
- Include at least one testable scenario per operation
|
|
197
|
+
|
|
198
|
+
Focus on WHAT each block does, not HOW it is implemented.
|
|
199
|
+
Respond ONLY with a valid JSON array of sub-specification objects.`,
|
|
200
|
+
stage3_subspec: (orchestratorName, orchestratorPurpose, callees) => `Orchestrator function: ${orchestratorName}
|
|
201
|
+
Purpose: ${orchestratorPurpose}
|
|
202
|
+
|
|
203
|
+
Sub-blocks to specify:
|
|
204
|
+
${callees.map((c, i) => `${i + 1}. ${c.name}` +
|
|
205
|
+
(c.signature ? `\n Signature: ${c.signature}` : '') +
|
|
206
|
+
(c.docstring ? `\n Doc: ${c.docstring}` : '') +
|
|
207
|
+
(c.subcallees.length > 0 ? `\n Calls: ${c.subcallees.join(', ')}` : '')).join('\n')}
|
|
208
|
+
|
|
209
|
+
Generate one sub-specification per sub-block listed above.
|
|
210
|
+
Respond ONLY with a valid JSON array of {name, callee, purpose, operations} objects.`,
|
|
211
|
+
};
|
|
212
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/core/generator/prompts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,aAAa,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BA+Ba;IAE5B,eAAe,EAAE,CAAC,eAAuB,EAAE,UAAoB,EAAE,EAAE,CAAC,+CAA+C,eAAe,eAAe,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;qEA2BnG;IAEnE,eAAe,EAAE,CAAC,eAAuB,EAAE,QAAkB,EAAE,gBAA0B,EAAE,EAAE,CAAC,yDAAyD,eAAe;;kBAEtJ,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;qBAChB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qEAiCqB;IAEnE,UAAU,EAAE;;;;;;;;;;;;;;;;;;;;;;;;sEAwBwD;IAEpE,mBAAmB,EAAE,CAAC,MAA0F,EAAE,EAAE,CAAC;;mBAEpG,MAAM,CAAC,aAAa;wBACf,MAAM,CAAC,mBAAmB;WACvC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0DA6Ba;IAExD,UAAU,EAAE,CAAC,YAA0M,EAAE,EAAE,CAAC;;;;;;;;;;qEAUzJ,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;oBAIlG,YAAY,CAAC,aAAa;wBACtB,YAAY,CAAC,iBAAiB;YAC1C,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;eAClE,YAAY,CAAC,QAAQ;oBAChB,YAAY,CAAC,aAAa;2BACnB,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM;;;EAGvE,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;wEAGE;IAEtE,qBAAqB,EAAE;;;;;;;;;;;mEAW0C;IAEjE,cAAc,EAAE,CACd,gBAAwB,EACxB,mBAA2B,EAC3B,OAA8F,EAC9F,EAAE,CAAC,0BAA0B,gBAAgB;WACtC,mBAAmB;;;EAG5B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACrB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE;QACrB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAC1E,CAAC,IAAI,CAAC,IAAI,CAAC;;;qFAGyE;CACpF,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RAG Manifest Generator
|
|
3
|
+
*
|
|
4
|
+
* Produces openspec/rag-manifest.json — a lightweight index that maps each
|
|
5
|
+
* spec domain to its source files and cross-domain dependency edges. Used by
|
|
6
|
+
* the orient MCP handler to inline condensed spec content without a separate
|
|
7
|
+
* get_spec call.
|
|
8
|
+
*/
|
|
9
|
+
import type { DependencyGraphResult } from '../analyzer/dependency-graph.js';
|
|
10
|
+
import type { GeneratedSpec } from './openspec-format-generator.js';
|
|
11
|
+
export interface RagManifest {
|
|
12
|
+
generatedAt: string;
|
|
13
|
+
specVersion: string;
|
|
14
|
+
domains: RagDomainEntry[];
|
|
15
|
+
}
|
|
16
|
+
export interface RagDomainEntry {
|
|
17
|
+
/** Domain name, e.g. "analyzer" */
|
|
18
|
+
domain: string;
|
|
19
|
+
/** Relative path to the spec file, e.g. "openspec/specs/analyzer/spec.md" */
|
|
20
|
+
specPath: string;
|
|
21
|
+
/** Relative source file paths belonging to this domain's cluster */
|
|
22
|
+
sourceFiles: string[];
|
|
23
|
+
/** Number of Requirement blocks in the spec (populated post-generation) */
|
|
24
|
+
requirementCount: number;
|
|
25
|
+
/** Domains this domain calls into (outbound cross-cluster edges) */
|
|
26
|
+
dependsOn: string[];
|
|
27
|
+
/** Domains that call into this domain (inbound cross-cluster edges) */
|
|
28
|
+
calledBy: string[];
|
|
29
|
+
}
|
|
30
|
+
export declare class RagManifestGenerator {
|
|
31
|
+
/**
|
|
32
|
+
* Build a RagManifest from the list of generated specs and the dependency
|
|
33
|
+
* graph (optional — if absent, sourceFiles / dependsOn / calledBy are empty).
|
|
34
|
+
*/
|
|
35
|
+
generate(specs: GeneratedSpec[], depGraph?: DependencyGraphResult): RagManifest;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=rag-manifest-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rag-manifest-generator.d.ts","sourceRoot":"","sources":["../../../src/core/generator/rag-manifest-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAMpE,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,2EAA2E;IAC3E,gBAAgB,EAAE,MAAM,CAAC;IACzB,oEAAoE;IACpE,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,uEAAuE;IACvE,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAMD,qBAAa,oBAAoB;IAC/B;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,WAAW;CAoHhF"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RAG Manifest Generator
|
|
3
|
+
*
|
|
4
|
+
* Produces openspec/rag-manifest.json — a lightweight index that maps each
|
|
5
|
+
* spec domain to its source files and cross-domain dependency edges. Used by
|
|
6
|
+
* the orient MCP handler to inline condensed spec content without a separate
|
|
7
|
+
* get_spec call.
|
|
8
|
+
*/
|
|
9
|
+
// ============================================================================
|
|
10
|
+
// GENERATOR
|
|
11
|
+
// ============================================================================
|
|
12
|
+
export class RagManifestGenerator {
|
|
13
|
+
/**
|
|
14
|
+
* Build a RagManifest from the list of generated specs and the dependency
|
|
15
|
+
* graph (optional — if absent, sourceFiles / dependsOn / calledBy are empty).
|
|
16
|
+
*/
|
|
17
|
+
generate(specs, depGraph) {
|
|
18
|
+
const domainSpecs = specs.filter(s => s.type === 'domain');
|
|
19
|
+
// Build domain → cluster mapping from depGraph
|
|
20
|
+
const clusterByDomain = new Map();
|
|
21
|
+
if (depGraph) {
|
|
22
|
+
for (const cluster of depGraph.clusters) {
|
|
23
|
+
const domainKey = cluster.suggestedDomain.toLowerCase();
|
|
24
|
+
// Keep the first (or structural) cluster per domain
|
|
25
|
+
if (!clusterByDomain.has(domainKey) || cluster.isStructural) {
|
|
26
|
+
clusterByDomain.set(domainKey, {
|
|
27
|
+
files: cluster.files,
|
|
28
|
+
id: cluster.id,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// Build file → cluster-id index for edge resolution
|
|
34
|
+
const clusterIdByFile = new Map();
|
|
35
|
+
const clusterDomainById = new Map();
|
|
36
|
+
if (depGraph) {
|
|
37
|
+
for (const [domain, cl] of clusterByDomain) {
|
|
38
|
+
clusterDomainById.set(cl.id, domain);
|
|
39
|
+
for (const f of cl.files)
|
|
40
|
+
clusterIdByFile.set(f, cl.id);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// Build a flat list of all cluster files for filename-based fallback
|
|
44
|
+
const allClusterFiles = [];
|
|
45
|
+
if (depGraph) {
|
|
46
|
+
for (const [domain, cl] of clusterByDomain) {
|
|
47
|
+
for (const f of cl.files)
|
|
48
|
+
allClusterFiles.push({ file: f, domain });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// For each domain spec, compute dependsOn / calledBy from dep graph edges
|
|
52
|
+
const entries = domainSpecs.map(spec => {
|
|
53
|
+
const domainKey = spec.domain.toLowerCase();
|
|
54
|
+
let cluster = clusterByDomain.get(domainKey);
|
|
55
|
+
// Fallback: if no exact cluster match, collect files whose basename
|
|
56
|
+
// contains the domain name (e.g. "openspec-*.ts" for domain "openspec")
|
|
57
|
+
let sourceFiles;
|
|
58
|
+
if (cluster) {
|
|
59
|
+
sourceFiles = cluster.files;
|
|
60
|
+
}
|
|
61
|
+
else if (depGraph) {
|
|
62
|
+
sourceFiles = allClusterFiles
|
|
63
|
+
.filter(({ file }) => {
|
|
64
|
+
const basename = file.split('/').pop() ?? '';
|
|
65
|
+
return basename.toLowerCase().includes(domainKey);
|
|
66
|
+
})
|
|
67
|
+
.map(({ file }) => file);
|
|
68
|
+
// Synthesise a virtual cluster entry so edge resolution works below
|
|
69
|
+
if (sourceFiles.length > 0) {
|
|
70
|
+
const virtualId = `virtual:${domainKey}`;
|
|
71
|
+
cluster = { files: sourceFiles, id: virtualId };
|
|
72
|
+
clusterByDomain.set(domainKey, cluster);
|
|
73
|
+
clusterDomainById.set(virtualId, domainKey);
|
|
74
|
+
for (const f of sourceFiles)
|
|
75
|
+
clusterIdByFile.set(f, virtualId);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
sourceFiles = [];
|
|
80
|
+
}
|
|
81
|
+
const clusterFileSet = new Set(cluster?.files ?? sourceFiles);
|
|
82
|
+
const dependsOnDomains = new Set();
|
|
83
|
+
const calledByDomains = new Set();
|
|
84
|
+
if (depGraph && cluster) {
|
|
85
|
+
for (const edge of depGraph.edges) {
|
|
86
|
+
const srcInCluster = clusterFileSet.has(edge.source);
|
|
87
|
+
const tgtInCluster = clusterFileSet.has(edge.target);
|
|
88
|
+
if (srcInCluster && !tgtInCluster) {
|
|
89
|
+
// This domain calls into the target's cluster
|
|
90
|
+
const tgtClusterId = clusterIdByFile.get(edge.target);
|
|
91
|
+
const tgtDomain = tgtClusterId
|
|
92
|
+
? clusterDomainById.get(tgtClusterId)
|
|
93
|
+
: undefined;
|
|
94
|
+
if (tgtDomain && tgtDomain !== domainKey) {
|
|
95
|
+
dependsOnDomains.add(tgtDomain);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
else if (!srcInCluster && tgtInCluster) {
|
|
99
|
+
// Another domain calls into this cluster
|
|
100
|
+
const srcClusterId = clusterIdByFile.get(edge.source);
|
|
101
|
+
const srcDomain = srcClusterId
|
|
102
|
+
? clusterDomainById.get(srcClusterId)
|
|
103
|
+
: undefined;
|
|
104
|
+
if (srcDomain && srcDomain !== domainKey) {
|
|
105
|
+
calledByDomains.add(srcDomain);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return {
|
|
111
|
+
domain: spec.domain,
|
|
112
|
+
specPath: spec.path,
|
|
113
|
+
sourceFiles,
|
|
114
|
+
requirementCount: countRequirements(spec.content),
|
|
115
|
+
dependsOn: [...dependsOnDomains].sort(),
|
|
116
|
+
calledBy: [...calledByDomains].sort(),
|
|
117
|
+
};
|
|
118
|
+
});
|
|
119
|
+
return {
|
|
120
|
+
generatedAt: new Date().toISOString(),
|
|
121
|
+
specVersion: '1.0.0',
|
|
122
|
+
domains: entries.sort((a, b) => a.domain.localeCompare(b.domain)),
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
// ============================================================================
|
|
127
|
+
// HELPERS
|
|
128
|
+
// ============================================================================
|
|
129
|
+
/** Count `### Requirement:` headers in a spec's markdown content */
|
|
130
|
+
function countRequirements(content) {
|
|
131
|
+
const matches = content.match(/^### Requirement:/gm);
|
|
132
|
+
return matches?.length ?? 0;
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=rag-manifest-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rag-manifest-generator.js","sourceRoot":"","sources":["../../../src/core/generator/rag-manifest-generator.ts"],"names":[],"mappings":"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"}
|