spectra-cli 4.1.1 → 4.2.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.
Files changed (422) hide show
  1. package/README.md +1 -1
  2. package/dist/adapters/go-adapter.d.ts.map +1 -1
  3. package/dist/adapters/go-adapter.js +2 -0
  4. package/dist/adapters/go-adapter.js.map +1 -1
  5. package/dist/adapters/index.d.ts +1 -1
  6. package/dist/adapters/index.d.ts.map +1 -1
  7. package/dist/adapters/java-adapter.d.ts.map +1 -1
  8. package/dist/adapters/java-adapter.js +2 -0
  9. package/dist/adapters/java-adapter.js.map +1 -1
  10. package/dist/adapters/language-adapter.d.ts +47 -9
  11. package/dist/adapters/language-adapter.d.ts.map +1 -1
  12. package/dist/adapters/python-adapter.d.ts +34 -6
  13. package/dist/adapters/python-adapter.d.ts.map +1 -1
  14. package/dist/adapters/python-adapter.js +157 -59
  15. package/dist/adapters/python-adapter.js.map +1 -1
  16. package/dist/adapters/ts-js-adapter.d.ts +13 -5
  17. package/dist/adapters/ts-js-adapter.d.ts.map +1 -1
  18. package/dist/adapters/ts-js-adapter.js +55 -14
  19. package/dist/adapters/ts-js-adapter.js.map +1 -1
  20. package/dist/batch/batch-orchestrator.d.ts +30 -4
  21. package/dist/batch/batch-orchestrator.d.ts.map +1 -1
  22. package/dist/batch/batch-orchestrator.js +284 -7
  23. package/dist/batch/batch-orchestrator.js.map +1 -1
  24. package/dist/batch/delta-regenerator.d.ts +2 -2
  25. package/dist/batch/delta-regenerator.d.ts.map +1 -1
  26. package/dist/batch/delta-regenerator.js.map +1 -1
  27. package/dist/batch/module-grouper.d.ts +2 -2
  28. package/dist/batch/module-grouper.d.ts.map +1 -1
  29. package/dist/batch/module-grouper.js +1 -1
  30. package/dist/batch/module-grouper.js.map +1 -1
  31. package/dist/cli/commands/graph.js +1 -1
  32. package/dist/cli/commands/graph.js.map +1 -1
  33. package/dist/cli/commands/index.d.ts +8 -0
  34. package/dist/cli/commands/index.d.ts.map +1 -0
  35. package/dist/cli/commands/index.js +274 -0
  36. package/dist/cli/commands/index.js.map +1 -0
  37. package/dist/cli/commands/query.d.ts.map +1 -1
  38. package/dist/cli/commands/query.js +3 -1
  39. package/dist/cli/commands/query.js.map +1 -1
  40. package/dist/cli/index.js +9 -9
  41. package/dist/cli/index.js.map +1 -1
  42. package/dist/cli/utils/parse-args.d.ts +13 -1
  43. package/dist/cli/utils/parse-args.d.ts.map +1 -1
  44. package/dist/cli/utils/parse-args.js +79 -2
  45. package/dist/cli/utils/parse-args.js.map +1 -1
  46. package/dist/core/ast-analyzer.d.ts.map +1 -1
  47. package/dist/core/ast-analyzer.js +79 -5
  48. package/dist/core/ast-analyzer.js.map +1 -1
  49. package/dist/core/import-resolver.d.ts +90 -0
  50. package/dist/core/import-resolver.d.ts.map +1 -0
  51. package/dist/core/import-resolver.js +273 -0
  52. package/dist/core/import-resolver.js.map +1 -0
  53. package/dist/core/query-mappers/base-mapper.d.ts +13 -0
  54. package/dist/core/query-mappers/base-mapper.d.ts.map +1 -1
  55. package/dist/core/query-mappers/go-mapper.d.ts +68 -0
  56. package/dist/core/query-mappers/go-mapper.d.ts.map +1 -1
  57. package/dist/core/query-mappers/go-mapper.js +421 -0
  58. package/dist/core/query-mappers/go-mapper.js.map +1 -1
  59. package/dist/core/query-mappers/java-mapper.d.ts +196 -0
  60. package/dist/core/query-mappers/java-mapper.d.ts.map +1 -1
  61. package/dist/core/query-mappers/java-mapper.js +600 -0
  62. package/dist/core/query-mappers/java-mapper.js.map +1 -1
  63. package/dist/core/query-mappers/python-mapper.d.ts +55 -0
  64. package/dist/core/query-mappers/python-mapper.d.ts.map +1 -1
  65. package/dist/core/query-mappers/python-mapper.js +273 -0
  66. package/dist/core/query-mappers/python-mapper.js.map +1 -1
  67. package/dist/core/query-mappers/typescript-mapper.d.ts +102 -0
  68. package/dist/core/query-mappers/typescript-mapper.d.ts.map +1 -1
  69. package/dist/core/query-mappers/typescript-mapper.js +470 -0
  70. package/dist/core/query-mappers/typescript-mapper.js.map +1 -1
  71. package/dist/core/single-spec-orchestrator.d.ts.map +1 -1
  72. package/dist/core/single-spec-orchestrator.js +146 -9
  73. package/dist/core/single-spec-orchestrator.js.map +1 -1
  74. package/dist/core/tree-sitter-analyzer.d.ts +6 -0
  75. package/dist/core/tree-sitter-analyzer.d.ts.map +1 -1
  76. package/dist/core/tree-sitter-analyzer.js +33 -1
  77. package/dist/core/tree-sitter-analyzer.js.map +1 -1
  78. package/dist/core/tree-sitter-fallback.d.ts +7 -4
  79. package/dist/core/tree-sitter-fallback.d.ts.map +1 -1
  80. package/dist/core/tree-sitter-fallback.js +157 -12
  81. package/dist/core/tree-sitter-fallback.js.map +1 -1
  82. package/dist/extraction/extraction-types.d.ts +25 -25
  83. package/dist/generator/index-generator.d.ts +3 -3
  84. package/dist/generator/index-generator.d.ts.map +1 -1
  85. package/dist/generator/index-generator.js +1 -1
  86. package/dist/generator/index-generator.js.map +1 -1
  87. package/dist/graph/directory-graph.d.ts +14 -4
  88. package/dist/graph/directory-graph.d.ts.map +1 -1
  89. package/dist/graph/directory-graph.js +71 -128
  90. package/dist/graph/directory-graph.js.map +1 -1
  91. package/dist/graph/mermaid-renderer.d.ts +8 -5
  92. package/dist/graph/mermaid-renderer.d.ts.map +1 -1
  93. package/dist/graph/mermaid-renderer.js +3 -3
  94. package/dist/graph/mermaid-renderer.js.map +1 -1
  95. package/dist/graph/topological-sort.d.ts +13 -6
  96. package/dist/graph/topological-sort.d.ts.map +1 -1
  97. package/dist/graph/topological-sort.js +2 -2
  98. package/dist/graph/topological-sort.js.map +1 -1
  99. package/dist/knowledge-graph/call-resolver.d.ts +64 -0
  100. package/dist/knowledge-graph/call-resolver.d.ts.map +1 -0
  101. package/dist/knowledge-graph/call-resolver.js +323 -0
  102. package/dist/knowledge-graph/call-resolver.js.map +1 -0
  103. package/dist/knowledge-graph/import-resolver.d.ts +114 -0
  104. package/dist/knowledge-graph/import-resolver.d.ts.map +1 -0
  105. package/dist/knowledge-graph/import-resolver.js +537 -0
  106. package/dist/knowledge-graph/import-resolver.js.map +1 -0
  107. package/dist/knowledge-graph/incremental.d.ts +110 -0
  108. package/dist/knowledge-graph/incremental.d.ts.map +1 -0
  109. package/dist/knowledge-graph/incremental.js +410 -0
  110. package/dist/knowledge-graph/incremental.js.map +1 -0
  111. package/dist/knowledge-graph/index.d.ts +74 -0
  112. package/dist/knowledge-graph/index.d.ts.map +1 -0
  113. package/dist/knowledge-graph/index.js +156 -0
  114. package/dist/knowledge-graph/index.js.map +1 -0
  115. package/dist/knowledge-graph/module-derivation.d.ts +238 -0
  116. package/dist/knowledge-graph/module-derivation.d.ts.map +1 -0
  117. package/dist/knowledge-graph/module-derivation.js +418 -0
  118. package/dist/knowledge-graph/module-derivation.js.map +1 -0
  119. package/dist/knowledge-graph/persistence.d.ts +270 -0
  120. package/dist/knowledge-graph/persistence.d.ts.map +1 -0
  121. package/dist/knowledge-graph/persistence.js +226 -0
  122. package/dist/knowledge-graph/persistence.js.map +1 -0
  123. package/dist/knowledge-graph/query-helpers.d.ts +164 -0
  124. package/dist/knowledge-graph/query-helpers.d.ts.map +1 -0
  125. package/dist/knowledge-graph/query-helpers.js +394 -0
  126. package/dist/knowledge-graph/query-helpers.js.map +1 -0
  127. package/dist/knowledge-graph/unified-graph.d.ts +310 -0
  128. package/dist/knowledge-graph/unified-graph.d.ts.map +1 -0
  129. package/dist/knowledge-graph/unified-graph.js +182 -0
  130. package/dist/knowledge-graph/unified-graph.js.map +1 -0
  131. package/dist/mcp/agent-context-tools.d.ts +104 -0
  132. package/dist/mcp/agent-context-tools.d.ts.map +1 -0
  133. package/dist/mcp/agent-context-tools.js +854 -0
  134. package/dist/mcp/agent-context-tools.js.map +1 -0
  135. package/dist/mcp/graph-tools.d.ts +20 -0
  136. package/dist/mcp/graph-tools.d.ts.map +1 -1
  137. package/dist/mcp/graph-tools.js +71 -11
  138. package/dist/mcp/graph-tools.js.map +1 -1
  139. package/dist/mcp/lib/response-helpers.d.ts +67 -0
  140. package/dist/mcp/lib/response-helpers.d.ts.map +1 -0
  141. package/dist/mcp/lib/response-helpers.js +103 -0
  142. package/dist/mcp/lib/response-helpers.js.map +1 -0
  143. package/dist/mcp/server.d.ts +3 -1
  144. package/dist/mcp/server.d.ts.map +1 -1
  145. package/dist/mcp/server.js +9 -10
  146. package/dist/mcp/server.js.map +1 -1
  147. package/dist/models/call-site.d.ts +68 -0
  148. package/dist/models/call-site.d.ts.map +1 -0
  149. package/dist/models/call-site.js +60 -0
  150. package/dist/models/call-site.js.map +1 -0
  151. package/dist/models/code-skeleton.d.ts +78 -6
  152. package/dist/models/code-skeleton.d.ts.map +1 -1
  153. package/dist/models/code-skeleton.js +29 -0
  154. package/dist/models/code-skeleton.js.map +1 -1
  155. package/dist/models/drift-item.d.ts +4 -4
  156. package/dist/models/module-spec.d.ts +155 -94
  157. package/dist/models/module-spec.d.ts.map +1 -1
  158. package/dist/panoramic/adr-decision-pipeline.d.ts +53 -0
  159. package/dist/panoramic/adr-decision-pipeline.d.ts.map +1 -0
  160. package/dist/panoramic/adr-decision-pipeline.js +685 -0
  161. package/dist/panoramic/adr-decision-pipeline.js.map +1 -0
  162. package/dist/panoramic/api-surface-generator.d.ts +56 -0
  163. package/dist/panoramic/api-surface-generator.d.ts.map +1 -0
  164. package/dist/panoramic/api-surface-generator.js +1671 -0
  165. package/dist/panoramic/api-surface-generator.js.map +1 -0
  166. package/dist/panoramic/architecture-ir-builder.d.ts +19 -0
  167. package/dist/panoramic/architecture-ir-builder.d.ts.map +1 -0
  168. package/dist/panoramic/architecture-ir-builder.js +561 -0
  169. package/dist/panoramic/architecture-ir-builder.js.map +1 -0
  170. package/dist/panoramic/architecture-ir-exporters.d.ts +7 -0
  171. package/dist/panoramic/architecture-ir-exporters.d.ts.map +1 -0
  172. package/dist/panoramic/architecture-ir-exporters.js +183 -0
  173. package/dist/panoramic/architecture-ir-exporters.js.map +1 -0
  174. package/dist/panoramic/architecture-ir-generator.d.ts +36 -0
  175. package/dist/panoramic/architecture-ir-generator.d.ts.map +1 -0
  176. package/dist/panoramic/architecture-ir-generator.js +51 -0
  177. package/dist/panoramic/architecture-ir-generator.js.map +1 -0
  178. package/dist/panoramic/architecture-ir-mermaid-adapter.d.ts +6 -0
  179. package/dist/panoramic/architecture-ir-mermaid-adapter.d.ts.map +1 -0
  180. package/dist/panoramic/architecture-ir-mermaid-adapter.js +98 -0
  181. package/dist/panoramic/architecture-ir-mermaid-adapter.js.map +1 -0
  182. package/dist/panoramic/architecture-ir-model.d.ts +87 -0
  183. package/dist/panoramic/architecture-ir-model.d.ts.map +1 -0
  184. package/dist/panoramic/architecture-ir-model.js +20 -0
  185. package/dist/panoramic/architecture-ir-model.js.map +1 -0
  186. package/dist/panoramic/architecture-narrative.d.ts +68 -0
  187. package/dist/panoramic/architecture-narrative.d.ts.map +1 -0
  188. package/dist/panoramic/architecture-narrative.js +401 -0
  189. package/dist/panoramic/architecture-narrative.js.map +1 -0
  190. package/dist/panoramic/architecture-overview-generator.d.ts +31 -0
  191. package/dist/panoramic/architecture-overview-generator.d.ts.map +1 -0
  192. package/dist/panoramic/architecture-overview-generator.js +454 -0
  193. package/dist/panoramic/architecture-overview-generator.js.map +1 -0
  194. package/dist/panoramic/architecture-overview-model.d.ts +77 -0
  195. package/dist/panoramic/architecture-overview-model.d.ts.map +1 -0
  196. package/dist/panoramic/architecture-overview-model.js +31 -0
  197. package/dist/panoramic/architecture-overview-model.js.map +1 -0
  198. package/dist/panoramic/batch-project-docs.d.ts.map +1 -1
  199. package/dist/panoramic/batch-project-docs.js +4 -2
  200. package/dist/panoramic/batch-project-docs.js.map +1 -1
  201. package/dist/panoramic/builders/component-view-builder.d.ts +25 -1
  202. package/dist/panoramic/builders/component-view-builder.d.ts.map +1 -1
  203. package/dist/panoramic/builders/component-view-builder.js +83 -3
  204. package/dist/panoramic/builders/component-view-builder.js.map +1 -1
  205. package/dist/panoramic/builders/doc-graph-builder.d.ts +2 -2
  206. package/dist/panoramic/builders/doc-graph-builder.d.ts.map +1 -1
  207. package/dist/panoramic/builders/doc-graph-builder.js.map +1 -1
  208. package/dist/panoramic/component-view-builder.d.ts +17 -0
  209. package/dist/panoramic/component-view-builder.d.ts.map +1 -0
  210. package/dist/panoramic/component-view-builder.js +652 -0
  211. package/dist/panoramic/component-view-builder.js.map +1 -0
  212. package/dist/panoramic/component-view-model.d.ts +127 -0
  213. package/dist/panoramic/component-view-model.d.ts.map +1 -0
  214. package/dist/panoramic/component-view-model.js +65 -0
  215. package/dist/panoramic/component-view-model.js.map +1 -0
  216. package/dist/panoramic/config-reference-generator.d.ts +78 -0
  217. package/dist/panoramic/config-reference-generator.d.ts.map +1 -0
  218. package/dist/panoramic/config-reference-generator.js +199 -0
  219. package/dist/panoramic/config-reference-generator.js.map +1 -0
  220. package/dist/panoramic/coverage-auditor.d.ts +95 -0
  221. package/dist/panoramic/coverage-auditor.d.ts.map +1 -0
  222. package/dist/panoramic/coverage-auditor.js +290 -0
  223. package/dist/panoramic/coverage-auditor.js.map +1 -0
  224. package/dist/panoramic/cross-package-analyzer.d.ts +112 -0
  225. package/dist/panoramic/cross-package-analyzer.d.ts.map +1 -0
  226. package/dist/panoramic/cross-package-analyzer.js +258 -0
  227. package/dist/panoramic/cross-package-analyzer.js.map +1 -0
  228. package/dist/panoramic/data-model-generator.d.ts +528 -0
  229. package/dist/panoramic/data-model-generator.d.ts.map +1 -0
  230. package/dist/panoramic/data-model-generator.js +647 -0
  231. package/dist/panoramic/data-model-generator.js.map +1 -0
  232. package/dist/panoramic/doc-graph-builder.d.ts +80 -0
  233. package/dist/panoramic/doc-graph-builder.d.ts.map +1 -0
  234. package/dist/panoramic/doc-graph-builder.js +352 -0
  235. package/dist/panoramic/doc-graph-builder.js.map +1 -0
  236. package/dist/panoramic/docs-bundle-manifest-reader.d.ts +26 -0
  237. package/dist/panoramic/docs-bundle-manifest-reader.d.ts.map +1 -0
  238. package/dist/panoramic/docs-bundle-manifest-reader.js +106 -0
  239. package/dist/panoramic/docs-bundle-manifest-reader.js.map +1 -0
  240. package/dist/panoramic/docs-bundle-orchestrator.d.ts +14 -0
  241. package/dist/panoramic/docs-bundle-orchestrator.d.ts.map +1 -0
  242. package/dist/panoramic/docs-bundle-orchestrator.js +538 -0
  243. package/dist/panoramic/docs-bundle-orchestrator.js.map +1 -0
  244. package/dist/panoramic/docs-bundle-profiles.d.ts +4 -0
  245. package/dist/panoramic/docs-bundle-profiles.d.ts.map +1 -0
  246. package/dist/panoramic/docs-bundle-profiles.js +82 -0
  247. package/dist/panoramic/docs-bundle-profiles.js.map +1 -0
  248. package/dist/panoramic/docs-bundle-types.d.ts +94 -0
  249. package/dist/panoramic/docs-bundle-types.d.ts.map +1 -0
  250. package/dist/panoramic/docs-bundle-types.js +10 -0
  251. package/dist/panoramic/docs-bundle-types.js.map +1 -0
  252. package/dist/panoramic/docs-quality-evaluator.d.ts +31 -0
  253. package/dist/panoramic/docs-quality-evaluator.d.ts.map +1 -0
  254. package/dist/panoramic/docs-quality-evaluator.js +941 -0
  255. package/dist/panoramic/docs-quality-evaluator.js.map +1 -0
  256. package/dist/panoramic/docs-quality-model.d.ts +125 -0
  257. package/dist/panoramic/docs-quality-model.d.ts.map +1 -0
  258. package/dist/panoramic/docs-quality-model.js +166 -0
  259. package/dist/panoramic/docs-quality-model.js.map +1 -0
  260. package/dist/panoramic/dynamic-scenarios-builder.d.ts +18 -0
  261. package/dist/panoramic/dynamic-scenarios-builder.d.ts.map +1 -0
  262. package/dist/panoramic/dynamic-scenarios-builder.js +316 -0
  263. package/dist/panoramic/dynamic-scenarios-builder.js.map +1 -0
  264. package/dist/panoramic/event-surface-generator.d.ts +52 -0
  265. package/dist/panoramic/event-surface-generator.d.ts.map +1 -0
  266. package/dist/panoramic/event-surface-generator.js +507 -0
  267. package/dist/panoramic/event-surface-generator.js.map +1 -0
  268. package/dist/panoramic/generator-registry.d.ts +1 -1
  269. package/dist/panoramic/generator-registry.d.ts.map +1 -1
  270. package/dist/panoramic/generator-registry.js +5 -2
  271. package/dist/panoramic/generator-registry.js.map +1 -1
  272. package/dist/panoramic/generators/cross-package-analyzer.d.ts +5 -5
  273. package/dist/panoramic/generators/cross-package-analyzer.d.ts.map +1 -1
  274. package/dist/panoramic/generators/cross-package-analyzer.js +1 -1
  275. package/dist/panoramic/generators/cross-package-analyzer.js.map +1 -1
  276. package/dist/panoramic/generators/data-model-generator.d.ts +27 -27
  277. package/dist/panoramic/graph/confidence-mapper.d.ts +18 -0
  278. package/dist/panoramic/graph/confidence-mapper.d.ts.map +1 -1
  279. package/dist/panoramic/graph/confidence-mapper.js +26 -0
  280. package/dist/panoramic/graph/confidence-mapper.js.map +1 -1
  281. package/dist/panoramic/graph/graph-builder.d.ts.map +1 -1
  282. package/dist/panoramic/graph/graph-builder.js +78 -0
  283. package/dist/panoramic/graph/graph-builder.js.map +1 -1
  284. package/dist/panoramic/graph/graph-paths.d.ts +8 -0
  285. package/dist/panoramic/graph/graph-paths.d.ts.map +1 -1
  286. package/dist/panoramic/graph/graph-paths.js +10 -0
  287. package/dist/panoramic/graph/graph-paths.js.map +1 -1
  288. package/dist/panoramic/graph/graph-query.d.ts +33 -2
  289. package/dist/panoramic/graph/graph-query.d.ts.map +1 -1
  290. package/dist/panoramic/graph/graph-query.js +69 -19
  291. package/dist/panoramic/graph/graph-query.js.map +1 -1
  292. package/dist/panoramic/graph/graph-types.d.ts +32 -3
  293. package/dist/panoramic/graph/graph-types.d.ts.map +1 -1
  294. package/dist/panoramic/hyperedges/schema.d.ts +6 -6
  295. package/dist/panoramic/interface-surface-generator.d.ts +50 -0
  296. package/dist/panoramic/interface-surface-generator.d.ts.map +1 -0
  297. package/dist/panoramic/interface-surface-generator.js +388 -0
  298. package/dist/panoramic/interface-surface-generator.js.map +1 -0
  299. package/dist/panoramic/interfaces.d.ts +2 -2
  300. package/dist/panoramic/mock-readme-generator.d.ts +90 -0
  301. package/dist/panoramic/mock-readme-generator.d.ts.map +1 -0
  302. package/dist/panoramic/mock-readme-generator.js +111 -0
  303. package/dist/panoramic/mock-readme-generator.js.map +1 -0
  304. package/dist/panoramic/models/component-view-model.d.ts +1 -1
  305. package/dist/panoramic/models/component-view-model.d.ts.map +1 -1
  306. package/dist/panoramic/models/component-view-model.js.map +1 -1
  307. package/dist/panoramic/narrative-provenance-adapter.d.ts +8 -0
  308. package/dist/panoramic/narrative-provenance-adapter.d.ts.map +1 -0
  309. package/dist/panoramic/narrative-provenance-adapter.js +99 -0
  310. package/dist/panoramic/narrative-provenance-adapter.js.map +1 -0
  311. package/dist/panoramic/parser-registry.d.ts +1 -1
  312. package/dist/panoramic/parser-registry.js +1 -1
  313. package/dist/panoramic/parsers/types.d.ts +6 -6
  314. package/dist/panoramic/pattern-hints-generator.d.ts +28 -0
  315. package/dist/panoramic/pattern-hints-generator.d.ts.map +1 -0
  316. package/dist/panoramic/pattern-hints-generator.js +218 -0
  317. package/dist/panoramic/pattern-hints-generator.js.map +1 -0
  318. package/dist/panoramic/pattern-hints-model.d.ts +89 -0
  319. package/dist/panoramic/pattern-hints-model.d.ts.map +1 -0
  320. package/dist/panoramic/pattern-hints-model.js +61 -0
  321. package/dist/panoramic/pattern-hints-model.js.map +1 -0
  322. package/dist/panoramic/pattern-knowledge-base.d.ts +31 -0
  323. package/dist/panoramic/pattern-knowledge-base.d.ts.map +1 -0
  324. package/dist/panoramic/pattern-knowledge-base.js +407 -0
  325. package/dist/panoramic/pattern-knowledge-base.js.map +1 -0
  326. package/dist/panoramic/pipelines/coverage-auditor.d.ts.map +1 -1
  327. package/dist/panoramic/pipelines/coverage-auditor.js +4 -2
  328. package/dist/panoramic/pipelines/coverage-auditor.js.map +1 -1
  329. package/dist/panoramic/pipelines/docs-bundle-orchestrator.js +13 -6
  330. package/dist/panoramic/pipelines/docs-bundle-orchestrator.js.map +1 -1
  331. package/dist/panoramic/pipelines/product-ux-docs.d.ts +5 -0
  332. package/dist/panoramic/pipelines/product-ux-docs.d.ts.map +1 -1
  333. package/dist/panoramic/pipelines/product-ux-docs.js +34 -6
  334. package/dist/panoramic/pipelines/product-ux-docs.js.map +1 -1
  335. package/dist/panoramic/product-ux-docs.d.ts +104 -0
  336. package/dist/panoramic/product-ux-docs.d.ts.map +1 -0
  337. package/dist/panoramic/product-ux-docs.js +817 -0
  338. package/dist/panoramic/product-ux-docs.js.map +1 -0
  339. package/dist/panoramic/qa/__tests__/citation.test.d.ts +2 -0
  340. package/dist/panoramic/qa/__tests__/citation.test.d.ts.map +1 -0
  341. package/dist/panoramic/qa/__tests__/citation.test.js +193 -0
  342. package/dist/panoramic/qa/__tests__/citation.test.js.map +1 -0
  343. package/dist/panoramic/qa/__tests__/debt-context.test.d.ts +2 -0
  344. package/dist/panoramic/qa/__tests__/debt-context.test.d.ts.map +1 -0
  345. package/dist/panoramic/qa/__tests__/debt-context.test.js +154 -0
  346. package/dist/panoramic/qa/__tests__/debt-context.test.js.map +1 -0
  347. package/dist/panoramic/qa/__tests__/graph-retriever.test.d.ts +2 -0
  348. package/dist/panoramic/qa/__tests__/graph-retriever.test.d.ts.map +1 -0
  349. package/dist/panoramic/qa/__tests__/graph-retriever.test.js +148 -0
  350. package/dist/panoramic/qa/__tests__/graph-retriever.test.js.map +1 -0
  351. package/dist/panoramic/qa/__tests__/index.test.d.ts +2 -0
  352. package/dist/panoramic/qa/__tests__/index.test.d.ts.map +1 -0
  353. package/dist/panoramic/qa/__tests__/index.test.js +246 -0
  354. package/dist/panoramic/qa/__tests__/index.test.js.map +1 -0
  355. package/dist/panoramic/qa/__tests__/llm-caller.test.d.ts +2 -0
  356. package/dist/panoramic/qa/__tests__/llm-caller.test.d.ts.map +1 -0
  357. package/dist/panoramic/qa/__tests__/llm-caller.test.js +168 -0
  358. package/dist/panoramic/qa/__tests__/llm-caller.test.js.map +1 -0
  359. package/dist/panoramic/qa/__tests__/prompt-builder.test.d.ts +2 -0
  360. package/dist/panoramic/qa/__tests__/prompt-builder.test.d.ts.map +1 -0
  361. package/dist/panoramic/qa/__tests__/prompt-builder.test.js +150 -0
  362. package/dist/panoramic/qa/__tests__/prompt-builder.test.js.map +1 -0
  363. package/dist/panoramic/qa/__tests__/qa-integration.test.d.ts +2 -0
  364. package/dist/panoramic/qa/__tests__/qa-integration.test.d.ts.map +1 -0
  365. package/dist/panoramic/qa/__tests__/qa-integration.test.js +296 -0
  366. package/dist/panoramic/qa/__tests__/qa-integration.test.js.map +1 -0
  367. package/dist/panoramic/qa/__tests__/rag-reranker.test.d.ts +2 -0
  368. package/dist/panoramic/qa/__tests__/rag-reranker.test.d.ts.map +1 -0
  369. package/dist/panoramic/qa/__tests__/rag-reranker.test.js +136 -0
  370. package/dist/panoramic/qa/__tests__/rag-reranker.test.js.map +1 -0
  371. package/dist/panoramic/qa/index.d.ts.map +1 -1
  372. package/dist/panoramic/qa/index.js +10 -3
  373. package/dist/panoramic/qa/index.js.map +1 -1
  374. package/dist/panoramic/runtime-topology-generator.d.ts +77 -0
  375. package/dist/panoramic/runtime-topology-generator.d.ts.map +1 -0
  376. package/dist/panoramic/runtime-topology-generator.js +676 -0
  377. package/dist/panoramic/runtime-topology-generator.js.map +1 -0
  378. package/dist/panoramic/runtime-topology-model.d.ts +145 -0
  379. package/dist/panoramic/runtime-topology-model.d.ts.map +1 -0
  380. package/dist/panoramic/runtime-topology-model.js +300 -0
  381. package/dist/panoramic/runtime-topology-model.js.map +1 -0
  382. package/dist/panoramic/troubleshooting-generator.d.ts +51 -0
  383. package/dist/panoramic/troubleshooting-generator.d.ts.map +1 -0
  384. package/dist/panoramic/troubleshooting-generator.js +451 -0
  385. package/dist/panoramic/troubleshooting-generator.js.map +1 -0
  386. package/dist/panoramic/utils/text-segmenter.d.ts +15 -0
  387. package/dist/panoramic/utils/text-segmenter.d.ts.map +1 -1
  388. package/dist/panoramic/utils/text-segmenter.js +38 -0
  389. package/dist/panoramic/utils/text-segmenter.js.map +1 -1
  390. package/dist/panoramic/workspace-index-generator.d.ts +148 -0
  391. package/dist/panoramic/workspace-index-generator.d.ts.map +1 -0
  392. package/dist/panoramic/workspace-index-generator.js +497 -0
  393. package/dist/panoramic/workspace-index-generator.js.map +1 -0
  394. package/dist/runtime-bootstrap.d.ts +9 -0
  395. package/dist/runtime-bootstrap.d.ts.map +1 -0
  396. package/dist/runtime-bootstrap.js +33 -0
  397. package/dist/runtime-bootstrap.js.map +1 -0
  398. package/dist/utils/file-scanner.js +1 -1
  399. package/dist/utils/file-scanner.js.map +1 -1
  400. package/package.json +12 -2
  401. package/plugins/spec-driver/.claude-plugin/plugin.json +1 -1
  402. package/plugins/spec-driver/README.md +18 -1
  403. package/plugins/spec-driver/agents/implement.md +20 -1
  404. package/plugins/spec-driver/agents/plan.md +20 -1
  405. package/plugins/spec-driver/agents/quality-review.md +20 -1
  406. package/plugins/spec-driver/agents/spec-review.md +20 -1
  407. package/plugins/spec-driver/agents/verify.md +20 -1
  408. package/plugins/spec-driver/docs/customization.md +134 -0
  409. package/plugins/spec-driver/docs/spectra-mcp-integration.md +165 -0
  410. package/plugins/spec-driver/lib/preference-rules.mjs +96 -0
  411. package/plugins/spec-driver/scripts/postinstall.sh +1 -1
  412. package/plugins/spec-driver/scripts/sync-preference-rules.mjs +148 -0
  413. package/plugins/spec-driver/skills/spec-driver-feature/SKILL.md +10 -0
  414. package/plugins/spec-driver/skills/spec-driver-fix/SKILL.md +10 -0
  415. package/plugins/spec-driver/skills/spec-driver-implement/SKILL.md +10 -0
  416. package/plugins/spec-driver/skills/spec-driver-refactor/SKILL.md +10 -0
  417. package/plugins/spec-driver/skills/spec-driver-story/SKILL.md +10 -0
  418. package/plugins/spec-driver/templates/preference-rules.md +39 -0
  419. package/plugins/spectra/.claude-plugin/plugin.json +1 -1
  420. package/plugins/spectra/README.md +48 -1
  421. package/plugins/spectra/hooks/post-commit.sh +40 -0
  422. package/templates/product-overview.hbs +1 -1
@@ -0,0 +1,401 @@
1
+ /**
2
+ * Architecture narrative document builder
3
+ *
4
+ * 面向人类阅读的技术架构说明,不替代现有结构化 panoramic 文档,
5
+ * 而是聚合 module spec、baseline skeleton 与 architecture overview 的事实,
6
+ * 生成“先说结论 / 关键模块 / 关键类 / 关键方法”的叙事文档。
7
+ */
8
+ import * as path from 'node:path';
9
+ import { loadStoredModuleSpecs, summarizeStoredMarkdown, } from './stored-module-specs.js';
10
+ import { loadTemplate } from './utils/template-loader.js';
11
+ export function buildArchitectureNarrative(options) {
12
+ const modules = loadStoredNarrativeModules(options.outputDir, options.projectRoot);
13
+ const projectName = resolveProjectName(options.architectureOverview?.model.projectName, options.projectRoot);
14
+ const moduleInsights = modules
15
+ .map((module) => toNarrativeModuleInsight(module))
16
+ .sort((left, right) => compareModuleInsights(left, right));
17
+ const keyModules = moduleInsights.slice(0, 6);
18
+ const keySymbols = collectKeySymbols(moduleInsights).slice(0, 10);
19
+ const keyMethods = collectKeyMethods(moduleInsights).slice(0, 12);
20
+ const repositoryMap = buildRepositoryMap(moduleInsights, options.projectContext);
21
+ const supportingDocs = buildSupportingDocs(options.generatedDocs);
22
+ const executiveSummary = buildExecutiveSummary(projectName, moduleInsights, keyModules, options.projectContext, options.architectureOverview, supportingDocs);
23
+ const observations = buildObservations(moduleInsights, options.architectureOverview, supportingDocs);
24
+ return {
25
+ title: `技术架构说明: ${projectName}`,
26
+ generatedAt: new Date().toISOString().split('T')[0],
27
+ projectName,
28
+ executiveSummary,
29
+ repositoryMap,
30
+ keyModules,
31
+ keySymbols,
32
+ keyMethods,
33
+ observations,
34
+ supportingDocs,
35
+ };
36
+ }
37
+ export function renderArchitectureNarrative(output) {
38
+ const template = loadTemplate('architecture-narrative.hbs', import.meta.url);
39
+ return template(output);
40
+ }
41
+ export function loadStoredNarrativeModules(outputDir, projectRoot) {
42
+ return loadStoredModuleSpecs(outputDir, projectRoot);
43
+ }
44
+ function toNarrativeModuleInsight(module) {
45
+ const role = classifyModuleRole(module.sourceTarget);
46
+ const keySymbols = collectModuleSymbols(module).slice(0, symbolLimitForRole(role));
47
+ const keyMethods = collectModuleMethods(module).slice(0, methodLimitForRole(role));
48
+ const inferred = module.confidence === 'low' || !module.baselineSkeleton;
49
+ return {
50
+ sourceTarget: module.sourceTarget,
51
+ displayName: path.posix.basename(module.sourceTarget),
52
+ role,
53
+ relatedFiles: module.relatedFiles,
54
+ confidence: module.confidence,
55
+ intentSummary: module.intentSummary,
56
+ businessSummary: module.businessSummary,
57
+ dependencySummary: module.dependencySummary,
58
+ keySymbols,
59
+ keyMethods,
60
+ inferred,
61
+ };
62
+ }
63
+ function collectModuleSymbols(module) {
64
+ const exports = module.baselineSkeleton?.exports ?? [];
65
+ return exports
66
+ .filter((symbol) => isNarrativeSymbolKind(symbol.kind))
67
+ .map((symbol) => ({
68
+ moduleName: module.sourceTarget,
69
+ name: symbol.name,
70
+ kind: symbol.kind,
71
+ signature: symbol.signature,
72
+ note: summarizeSymbolNote(symbol, module.intentSummary),
73
+ inferred: module.confidence === 'low',
74
+ }))
75
+ .sort((left, right) => compareSymbolInsights(left, right));
76
+ }
77
+ function collectModuleMethods(module) {
78
+ const exports = module.baselineSkeleton?.exports ?? [];
79
+ const methods = [];
80
+ const role = classifyModuleRole(module.sourceTarget);
81
+ for (const symbol of exports) {
82
+ if (symbol.kind === 'function' && !isLowSignalNarrativeMethod(symbol.name, undefined, role)) {
83
+ methods.push({
84
+ moduleName: module.sourceTarget,
85
+ ownerName: undefined,
86
+ name: symbol.name,
87
+ kind: 'function',
88
+ signature: symbol.signature,
89
+ note: summarizeSymbolNote(symbol, module.businessSummary),
90
+ inferred: module.confidence === 'low',
91
+ });
92
+ }
93
+ for (const member of symbol.members ?? []) {
94
+ if (!isNarrativeMethodKind(member.kind)) {
95
+ continue;
96
+ }
97
+ if (isLowSignalNarrativeMethod(member.name, symbol.name, role)) {
98
+ continue;
99
+ }
100
+ methods.push({
101
+ moduleName: module.sourceTarget,
102
+ ownerName: symbol.name,
103
+ name: member.name,
104
+ kind: member.kind,
105
+ signature: member.signature,
106
+ note: summarizeMemberNote(member, symbol.name, module.businessSummary),
107
+ inferred: module.confidence === 'low',
108
+ });
109
+ }
110
+ }
111
+ return methods.sort((left, right) => compareMethodInsights(left, right));
112
+ }
113
+ function collectKeySymbols(modules) {
114
+ return collectPrioritizedNarrativeItems(modules, (module) => module.keySymbols, (item) => `${item.moduleName}:${item.kind}:${item.name}`, compareSymbolInsights, 10);
115
+ }
116
+ function collectKeyMethods(modules) {
117
+ return collectPrioritizedNarrativeItems(modules, (module) => module.keyMethods, (item) => `${item.moduleName}:${item.ownerName ?? 'module'}:${item.kind}:${item.name}`, compareMethodInsights, 12);
118
+ }
119
+ function buildRepositoryMap(modules, projectContext) {
120
+ const buckets = new Map();
121
+ const languages = projectContext.detectedLanguages.length > 0
122
+ ? projectContext.detectedLanguages.join(' / ')
123
+ : 'unknown';
124
+ for (const module of modules) {
125
+ const firstSegment = module.sourceTarget.includes('/')
126
+ ? module.sourceTarget.split('/')[0]
127
+ : module.sourceTarget;
128
+ const category = categorizePath(firstSegment);
129
+ if (!buckets.has(firstSegment)) {
130
+ buckets.set(firstSegment, {
131
+ path: firstSegment,
132
+ category,
133
+ moduleCount: 0,
134
+ fileCount: 0,
135
+ summary: '',
136
+ });
137
+ }
138
+ const entry = buckets.get(firstSegment);
139
+ entry.moduleCount += 1;
140
+ entry.fileCount += module.relatedFiles.length;
141
+ }
142
+ for (const entry of buckets.values()) {
143
+ entry.summary = `${entry.category},覆盖 ${entry.moduleCount} 个模块 / ${entry.fileCount} 个文件,主要语言 ${languages}`;
144
+ }
145
+ return [...buckets.values()].sort((left, right) => left.path.localeCompare(right.path));
146
+ }
147
+ function buildSupportingDocs(generatedDocs) {
148
+ return generatedDocs
149
+ .map((doc) => {
150
+ const markdownPath = doc.writtenFiles.find((filePath) => filePath.endsWith('.md'));
151
+ if (!markdownPath) {
152
+ return null;
153
+ }
154
+ return {
155
+ generatorId: doc.generatorId,
156
+ title: humanizeGeneratorId(doc.generatorId),
157
+ path: path.basename(markdownPath),
158
+ };
159
+ })
160
+ .filter((item) => item !== null)
161
+ .sort((left, right) => left.title.localeCompare(right.title));
162
+ }
163
+ function buildExecutiveSummary(projectName, modules, keyModules, projectContext, architectureOverview, supportingDocs) {
164
+ const lines = [];
165
+ const languages = projectContext.detectedLanguages.length > 0
166
+ ? projectContext.detectedLanguages.join(' / ')
167
+ : 'unknown';
168
+ lines.push(`${projectName} 当前以 ${modules.length} 个模块组织,主要语言为 ${languages},包管理器为 ${projectContext.packageManager}。`);
169
+ if (architectureOverview) {
170
+ lines.push(`结构化架构视图已覆盖 ${architectureOverview.model.stats.availableSections}/${architectureOverview.model.stats.totalSections} 个版块,可进一步下钻 system context / deployment / layered 视图。`);
171
+ }
172
+ else {
173
+ lines.push('当前项目缺少完整部署/monorepo 事实,系统级说明主要基于模块 spec 与源码骨架归纳。');
174
+ }
175
+ if (keyModules.length > 0) {
176
+ lines.push(`关键职责主要集中在 ${keyModules.slice(0, 3).map((item) => `\`${item.sourceTarget}\``).join('、')} 等模块。`);
177
+ }
178
+ if (supportingDocs.length > 0) {
179
+ lines.push(`本次 batch 还产出了 ${supportingDocs.length} 份项目级结构化文档,可与本叙事文档配合阅读。`);
180
+ }
181
+ return lines;
182
+ }
183
+ function buildObservations(modules, architectureOverview, supportingDocs) {
184
+ const observations = new Set();
185
+ const lowConfidenceCount = modules.filter((module) => module.confidence === 'low').length;
186
+ if (!architectureOverview) {
187
+ observations.add('未生成 architecture-overview;当前叙事以模块职责、导出符号与依赖摘要为主。');
188
+ }
189
+ else if (architectureOverview.warnings.length > 0) {
190
+ for (const warning of architectureOverview.warnings.slice(0, 4)) {
191
+ observations.add(warning);
192
+ }
193
+ }
194
+ if (lowConfidenceCount > 0) {
195
+ observations.add(`有 ${lowConfidenceCount} 个模块标记为 low confidence,叙事中的部分结论带有 [推断] 性质。`);
196
+ }
197
+ if (supportingDocs.length === 0) {
198
+ observations.add('当前批次未写出额外项目级结构化文档;如需更细粒度视图,需检查 generator 适用性。');
199
+ }
200
+ return [...observations];
201
+ }
202
+ function resolveProjectName(explicitName, projectRoot) {
203
+ return explicitName?.trim() || path.basename(projectRoot);
204
+ }
205
+ function compareModuleInsights(left, right) {
206
+ const scoreDiff = scoreModuleInsight(right) - scoreModuleInsight(left);
207
+ return scoreDiff !== 0 ? scoreDiff : left.sourceTarget.localeCompare(right.sourceTarget);
208
+ }
209
+ function scoreModuleInsight(module) {
210
+ let score = module.relatedFiles.length * 2 + module.keySymbols.length * 3 + module.keyMethods.length * 2;
211
+ if (module.role === 'core')
212
+ score += 10;
213
+ if (module.sourceTarget.includes('core'))
214
+ score += 4;
215
+ if (module.sourceTarget.includes('internal'))
216
+ score += 2;
217
+ if (module.role === 'support')
218
+ score -= 2;
219
+ if (module.role === 'validation')
220
+ score -= 8;
221
+ if (module.confidence === 'low')
222
+ score -= 2;
223
+ return score;
224
+ }
225
+ function compareSymbolInsights(left, right) {
226
+ const scoreDiff = scoreSymbolInsight(right) - scoreSymbolInsight(left);
227
+ if (scoreDiff !== 0) {
228
+ return scoreDiff;
229
+ }
230
+ return `${left.moduleName}:${left.name}`.localeCompare(`${right.moduleName}:${right.name}`);
231
+ }
232
+ function scoreSymbolInsight(item) {
233
+ let score = 0;
234
+ if (/(Client|Service|Manager|Parser|Session|Transport|Query|Config|Model|SDK|Server)/.test(item.name))
235
+ score += 5;
236
+ if (/(class|data_class|struct|protocol|interface)/.test(item.kind))
237
+ score += 4;
238
+ score += Math.min(item.signature.length / 40, 4);
239
+ if (classifyModuleRole(item.moduleName) === 'core')
240
+ score += 3;
241
+ if (classifyModuleRole(item.moduleName) === 'validation')
242
+ score -= 4;
243
+ if (item.inferred)
244
+ score -= 1;
245
+ return score;
246
+ }
247
+ function compareMethodInsights(left, right) {
248
+ const scoreDiff = scoreMethodInsight(right) - scoreMethodInsight(left);
249
+ if (scoreDiff !== 0) {
250
+ return scoreDiff;
251
+ }
252
+ return `${left.moduleName}:${left.ownerName ?? 'module'}:${left.name}`.localeCompare(`${right.moduleName}:${right.ownerName ?? 'module'}:${right.name}`);
253
+ }
254
+ function scoreMethodInsight(item) {
255
+ let score = 0;
256
+ if (/(create|connect|query|start|run|handle|parse|generate|initialize|send|receive|load|build|call|stream|execute|process|write|read|resolve)/i.test(item.name)) {
257
+ score += 6;
258
+ }
259
+ if (item.ownerName)
260
+ score += 2;
261
+ if (classifyModuleRole(item.moduleName) === 'core')
262
+ score += 4;
263
+ if (classifyModuleRole(item.moduleName) === 'support')
264
+ score -= 1;
265
+ if (classifyModuleRole(item.moduleName) === 'validation')
266
+ score -= 6;
267
+ score += Math.min(item.signature.length / 50, 4);
268
+ if (item.inferred)
269
+ score -= 1;
270
+ return score;
271
+ }
272
+ function collectPrioritizedNarrativeItems(modules, pick, keyOf, compare, limit) {
273
+ const orderedRoles = ['core', 'support', 'validation'];
274
+ const results = [];
275
+ const seen = new Set();
276
+ for (const role of orderedRoles) {
277
+ const ranked = modules
278
+ .filter((module) => module.role === role)
279
+ .flatMap((module) => pick(module))
280
+ .sort(compare);
281
+ for (const item of ranked) {
282
+ const key = keyOf(item);
283
+ if (seen.has(key)) {
284
+ continue;
285
+ }
286
+ seen.add(key);
287
+ results.push(item);
288
+ if (results.length >= limit) {
289
+ return results;
290
+ }
291
+ }
292
+ }
293
+ return results;
294
+ }
295
+ function summarizeSymbolNote(symbol, fallback) {
296
+ if (symbol.jsDoc?.trim()) {
297
+ return summarizeStoredMarkdown(symbol.jsDoc, fallback);
298
+ }
299
+ return fallback;
300
+ }
301
+ function summarizeMemberNote(member, ownerName, fallback) {
302
+ if (member.jsDoc?.trim()) {
303
+ return summarizeStoredMarkdown(member.jsDoc, fallback);
304
+ }
305
+ return `${ownerName} 的核心成员;${fallback}`;
306
+ }
307
+ function isNarrativeSymbolKind(kind) {
308
+ return kind === 'class'
309
+ || kind === 'interface'
310
+ || kind === 'type'
311
+ || kind === 'data_class'
312
+ || kind === 'struct'
313
+ || kind === 'protocol';
314
+ }
315
+ function isNarrativeMethodKind(kind) {
316
+ return kind === 'method'
317
+ || kind === 'constructor'
318
+ || kind === 'classmethod'
319
+ || kind === 'staticmethod'
320
+ || kind === 'associated_function'
321
+ || kind === 'getter'
322
+ || kind === 'setter';
323
+ }
324
+ function humanizeGeneratorId(generatorId) {
325
+ return generatorId
326
+ .split('-')
327
+ .map((part) => {
328
+ if (part === 'api')
329
+ return 'API';
330
+ return part.charAt(0).toUpperCase() + part.slice(1);
331
+ })
332
+ .join(' ');
333
+ }
334
+ function categorizePath(segment) {
335
+ if (segment === 'src')
336
+ return '核心实现目录';
337
+ if (segment === 'tests' || segment === 'e2e-tests')
338
+ return '测试与验收目录';
339
+ if (segment === 'examples')
340
+ return '示例与对外使用目录';
341
+ if (segment === 'scripts')
342
+ return '脚本与运维辅助目录';
343
+ return '项目子域目录';
344
+ }
345
+ function classifyModuleRole(sourceTarget) {
346
+ if (sourceTarget === 'tests'
347
+ || sourceTarget.startsWith('tests/')
348
+ || sourceTarget === 'e2e-tests'
349
+ || sourceTarget.startsWith('e2e-tests/')) {
350
+ return 'validation';
351
+ }
352
+ if (sourceTarget === 'examples'
353
+ || sourceTarget.startsWith('examples/')
354
+ || sourceTarget === 'scripts'
355
+ || sourceTarget.startsWith('scripts/')) {
356
+ return 'support';
357
+ }
358
+ return 'core';
359
+ }
360
+ function symbolLimitForRole(role) {
361
+ switch (role) {
362
+ case 'core':
363
+ return 6;
364
+ case 'support':
365
+ return 3;
366
+ case 'validation':
367
+ return 2;
368
+ }
369
+ }
370
+ function methodLimitForRole(role) {
371
+ switch (role) {
372
+ case 'core':
373
+ return 10;
374
+ case 'support':
375
+ return 4;
376
+ case 'validation':
377
+ return 2;
378
+ }
379
+ }
380
+ function isLowSignalNarrativeMethod(name, ownerName, role) {
381
+ if (role !== 'validation') {
382
+ return false;
383
+ }
384
+ return name.startsWith('test_')
385
+ || name.startsWith('test')
386
+ || ownerName?.startsWith('Test') === true;
387
+ }
388
+ function dedupeNarrativeItems(items, getKey) {
389
+ const seen = new Set();
390
+ const results = [];
391
+ for (const item of items) {
392
+ const key = getKey(item);
393
+ if (seen.has(key)) {
394
+ continue;
395
+ }
396
+ seen.add(key);
397
+ results.push(item);
398
+ }
399
+ return results;
400
+ }
401
+ //# sourceMappingURL=architecture-narrative.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"architecture-narrative.js","sourceRoot":"","sources":["../../src/panoramic/architecture-narrative.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { DocumentGenerator, GenerateOptions, ProjectContext } from './interfaces.js';
2
+ import { type CrossPackageOutput } from './cross-package-analyzer.js';
3
+ import { type RuntimeTopologyOutput } from './runtime-topology-generator.js';
4
+ import { type ArchitectureOverviewModel, type ArchitectureViewSection } from './architecture-overview-model.js';
5
+ import { type WorkspaceOutput } from './workspace-index-generator.js';
6
+ export interface ArchitectureOverviewInput {
7
+ projectName: string;
8
+ runtime?: RuntimeTopologyOutput;
9
+ workspace?: WorkspaceOutput;
10
+ crossPackage?: CrossPackageOutput;
11
+ warnings: string[];
12
+ }
13
+ export interface ArchitectureOverviewOutput {
14
+ title: string;
15
+ generatedAt: string;
16
+ model: ArchitectureOverviewModel;
17
+ warnings: string[];
18
+ systemContext?: ArchitectureViewSection;
19
+ deploymentView?: ArchitectureViewSection;
20
+ layeredView?: ArchitectureViewSection;
21
+ }
22
+ export declare class ArchitectureOverviewGenerator implements DocumentGenerator<ArchitectureOverviewInput, ArchitectureOverviewOutput> {
23
+ readonly id: "architecture-overview";
24
+ readonly name: "\u67B6\u6784\u6982\u89C8\u751F\u6210\u5668";
25
+ readonly description = "\u7EC4\u5408\u8FD0\u884C\u65F6\u62D3\u6251\u3001workspace \u548C\u8DE8\u5305\u4F9D\u8D56\u8F93\u51FA\uFF0C\u751F\u6210\u7CFB\u7EDF\u4E0A\u4E0B\u6587\u4E0E\u90E8\u7F72\u89C6\u56FE";
26
+ isApplicable(context: ProjectContext): boolean;
27
+ extract(context: ProjectContext): Promise<ArchitectureOverviewInput>;
28
+ generate(input: ArchitectureOverviewInput, _options?: GenerateOptions): Promise<ArchitectureOverviewOutput>;
29
+ render(output: ArchitectureOverviewOutput): string;
30
+ }
31
+ //# sourceMappingURL=architecture-overview-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"architecture-overview-generator.d.ts","sourceRoot":"","sources":["../../src/panoramic/architecture-overview-generator.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAwB,KAAK,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5F,OAAO,EAA4B,KAAK,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACvG,OAAO,EAKL,KAAK,yBAAyB,EAI9B,KAAK,uBAAuB,EAE7B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAA2B,KAAK,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAM/F,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,yBAAyB,CAAC;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACxC,cAAc,CAAC,EAAE,uBAAuB,CAAC;IACzC,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC;AAED,qBAAa,6BACX,YAAW,iBAAiB,CAAC,yBAAyB,EAAE,0BAA0B,CAAC;IAEnF,QAAQ,CAAC,EAAE,EAAG,uBAAuB,CAAU;IAC/C,QAAQ,CAAC,IAAI,EAAG,4CAAS,CAAU;IACnC,QAAQ,CAAC,WAAW,wLAA4C;IAEhE,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO;IAMxC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAmDpE,QAAQ,CACZ,KAAK,EAAE,yBAAyB,EAChC,QAAQ,CAAC,EAAE,eAAe,GACzB,OAAO,CAAC,0BAA0B,CAAC;IA4CtC,MAAM,CAAC,MAAM,EAAE,0BAA0B,GAAG,MAAM;CAInD"}