context-probe 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (600) hide show
  1. package/LICENSE +183 -0
  2. package/README.ja.md +323 -0
  3. package/README.md +323 -0
  4. package/dist/src/analyzers/architecture-contract-declarations-dart.d.ts +2 -0
  5. package/dist/src/analyzers/architecture-contract-declarations-dart.js +129 -0
  6. package/dist/src/analyzers/architecture-contract-declarations-ecma-core.d.ts +2 -0
  7. package/dist/src/analyzers/architecture-contract-declarations-ecma-core.js +89 -0
  8. package/dist/src/analyzers/architecture-contract-declarations-ecma-shared.d.ts +10 -0
  9. package/dist/src/analyzers/architecture-contract-declarations-ecma-shared.js +56 -0
  10. package/dist/src/analyzers/architecture-contract-declarations-ecma.d.ts +1 -0
  11. package/dist/src/analyzers/architecture-contract-declarations-ecma.js +1 -0
  12. package/dist/src/analyzers/architecture-contract-declarations-shared.d.ts +8 -0
  13. package/dist/src/analyzers/architecture-contract-declarations-shared.js +21 -0
  14. package/dist/src/analyzers/architecture-contract-declarations.d.ts +2 -0
  15. package/dist/src/analyzers/architecture-contract-declarations.js +2 -0
  16. package/dist/src/analyzers/architecture-contract-score-baseline-analysis.d.ts +8 -0
  17. package/dist/src/analyzers/architecture-contract-score-baseline-analysis.js +70 -0
  18. package/dist/src/analyzers/architecture-contract-score-baseline-core.d.ts +8 -0
  19. package/dist/src/analyzers/architecture-contract-score-baseline-core.js +4 -0
  20. package/dist/src/analyzers/architecture-contract-score-baseline-entry.d.ts +19 -0
  21. package/dist/src/analyzers/architecture-contract-score-baseline-entry.js +89 -0
  22. package/dist/src/analyzers/architecture-contract-score-baseline-scope.d.ts +8 -0
  23. package/dist/src/analyzers/architecture-contract-score-baseline-scope.js +18 -0
  24. package/dist/src/analyzers/architecture-contract-score-baseline.d.ts +1 -0
  25. package/dist/src/analyzers/architecture-contract-score-baseline.js +1 -0
  26. package/dist/src/analyzers/architecture-contract-score-current.d.ts +3 -0
  27. package/dist/src/analyzers/architecture-contract-score-current.js +39 -0
  28. package/dist/src/analyzers/architecture-contract-score-shared.d.ts +18 -0
  29. package/dist/src/analyzers/architecture-contract-score-shared.js +9 -0
  30. package/dist/src/analyzers/architecture-contract-scoring.d.ts +15 -0
  31. package/dist/src/analyzers/architecture-contract-scoring.js +70 -0
  32. package/dist/src/analyzers/architecture-contract-stats-core.d.ts +9 -0
  33. package/dist/src/analyzers/architecture-contract-stats-core.js +20 -0
  34. package/dist/src/analyzers/architecture-contract-stats-file.d.ts +23 -0
  35. package/dist/src/analyzers/architecture-contract-stats-file.js +77 -0
  36. package/dist/src/analyzers/architecture-contract-stats.d.ts +2 -0
  37. package/dist/src/analyzers/architecture-contract-stats.js +1 -0
  38. package/dist/src/analyzers/architecture-contract-types.d.ts +24 -0
  39. package/dist/src/analyzers/architecture-contract-types.js +1 -0
  40. package/dist/src/analyzers/architecture-contracts.d.ts +2 -0
  41. package/dist/src/analyzers/architecture-contracts.js +1 -0
  42. package/dist/src/analyzers/architecture-cti-ingest.d.ts +19 -0
  43. package/dist/src/analyzers/architecture-cti-ingest.js +64 -0
  44. package/dist/src/analyzers/architecture-delivery-normalization-core.d.ts +6 -0
  45. package/dist/src/analyzers/architecture-delivery-normalization-core.js +83 -0
  46. package/dist/src/analyzers/architecture-delivery-normalization-shared.d.ts +16 -0
  47. package/dist/src/analyzers/architecture-delivery-normalization-shared.js +1 -0
  48. package/dist/src/analyzers/architecture-delivery-normalization-spec.d.ts +13 -0
  49. package/dist/src/analyzers/architecture-delivery-normalization-spec.js +52 -0
  50. package/dist/src/analyzers/architecture-delivery-normalization.d.ts +6 -0
  51. package/dist/src/analyzers/architecture-delivery-normalization.js +4 -0
  52. package/dist/src/analyzers/architecture-evolution-efficiency.d.ts +8 -0
  53. package/dist/src/analyzers/architecture-evolution-efficiency.js +76 -0
  54. package/dist/src/analyzers/architecture-evolution-locality.d.ts +7 -0
  55. package/dist/src/analyzers/architecture-evolution-locality.js +129 -0
  56. package/dist/src/analyzers/architecture-evolution-shared.d.ts +33 -0
  57. package/dist/src/analyzers/architecture-evolution-shared.js +29 -0
  58. package/dist/src/analyzers/architecture-evolution.d.ts +3 -0
  59. package/dist/src/analyzers/architecture-evolution.js +2 -0
  60. package/dist/src/analyzers/architecture-observation-ingest-delivery.d.ts +9 -0
  61. package/dist/src/analyzers/architecture-observation-ingest-delivery.js +62 -0
  62. package/dist/src/analyzers/architecture-observation-ingest-shared.d.ts +13 -0
  63. package/dist/src/analyzers/architecture-observation-ingest-shared.js +12 -0
  64. package/dist/src/analyzers/architecture-observation-ingest-telemetry.d.ts +10 -0
  65. package/dist/src/analyzers/architecture-observation-ingest-telemetry.js +71 -0
  66. package/dist/src/analyzers/architecture-observation-ingest.d.ts +5 -0
  67. package/dist/src/analyzers/architecture-observation-ingest.js +2 -0
  68. package/dist/src/analyzers/architecture-observation-normalization-shared.d.ts +10 -0
  69. package/dist/src/analyzers/architecture-observation-normalization-shared.js +19 -0
  70. package/dist/src/analyzers/architecture-operations-common-ops.d.ts +16 -0
  71. package/dist/src/analyzers/architecture-operations-common-ops.js +76 -0
  72. package/dist/src/analyzers/architecture-operations.d.ts +27 -0
  73. package/dist/src/analyzers/architecture-operations.js +56 -0
  74. package/dist/src/analyzers/architecture-pattern-runtime-fallback.d.ts +8 -0
  75. package/dist/src/analyzers/architecture-pattern-runtime-fallback.js +79 -0
  76. package/dist/src/analyzers/architecture-pattern-runtime-family.d.ts +7 -0
  77. package/dist/src/analyzers/architecture-pattern-runtime-family.js +56 -0
  78. package/dist/src/analyzers/architecture-pattern-runtime-normalization-blocks.d.ts +12 -0
  79. package/dist/src/analyzers/architecture-pattern-runtime-normalization-blocks.js +41 -0
  80. package/dist/src/analyzers/architecture-pattern-runtime-normalization-math.d.ts +10 -0
  81. package/dist/src/analyzers/architecture-pattern-runtime-normalization-math.js +19 -0
  82. package/dist/src/analyzers/architecture-pattern-runtime-normalization.d.ts +21 -0
  83. package/dist/src/analyzers/architecture-pattern-runtime-normalization.js +103 -0
  84. package/dist/src/analyzers/architecture-pattern-runtime-resolution-shared.d.ts +16 -0
  85. package/dist/src/analyzers/architecture-pattern-runtime-resolution-shared.js +65 -0
  86. package/dist/src/analyzers/architecture-pattern-runtime-resolution.d.ts +15 -0
  87. package/dist/src/analyzers/architecture-pattern-runtime-resolution.js +99 -0
  88. package/dist/src/analyzers/architecture-pattern-runtime-shared.d.ts +2 -0
  89. package/dist/src/analyzers/architecture-pattern-runtime-shared.js +1 -0
  90. package/dist/src/analyzers/architecture-pattern-runtime-types.d.ts +29 -0
  91. package/dist/src/analyzers/architecture-pattern-runtime-types.js +1 -0
  92. package/dist/src/analyzers/architecture-pattern-runtime.d.ts +7 -0
  93. package/dist/src/analyzers/architecture-pattern-runtime.js +20 -0
  94. package/dist/src/analyzers/architecture-purity-signals.d.ts +6 -0
  95. package/dist/src/analyzers/architecture-purity-signals.js +21 -0
  96. package/dist/src/analyzers/architecture-purity.d.ts +2 -0
  97. package/dist/src/analyzers/architecture-purity.js +1 -0
  98. package/dist/src/analyzers/architecture-scenarios.d.ts +22 -0
  99. package/dist/src/analyzers/architecture-scenarios.js +95 -0
  100. package/dist/src/analyzers/architecture-source-loader-command.d.ts +8 -0
  101. package/dist/src/analyzers/architecture-source-loader-command.js +73 -0
  102. package/dist/src/analyzers/architecture-source-loader-core.d.ts +22 -0
  103. package/dist/src/analyzers/architecture-source-loader-core.js +41 -0
  104. package/dist/src/analyzers/architecture-source-loader-file.d.ts +8 -0
  105. package/dist/src/analyzers/architecture-source-loader-file.js +28 -0
  106. package/dist/src/analyzers/architecture-source-loader-shared.d.ts +24 -0
  107. package/dist/src/analyzers/architecture-source-loader-shared.js +4 -0
  108. package/dist/src/analyzers/architecture-source-loader.d.ts +2 -0
  109. package/dist/src/analyzers/architecture-source-loader.js +1 -0
  110. package/dist/src/analyzers/architecture-telemetry-normalization-band.d.ts +10 -0
  111. package/dist/src/analyzers/architecture-telemetry-normalization-band.js +78 -0
  112. package/dist/src/analyzers/architecture-telemetry-normalization-core.d.ts +6 -0
  113. package/dist/src/analyzers/architecture-telemetry-normalization-core.js +30 -0
  114. package/dist/src/analyzers/architecture-telemetry-normalization-shared.d.ts +16 -0
  115. package/dist/src/analyzers/architecture-telemetry-normalization-shared.js +1 -0
  116. package/dist/src/analyzers/architecture-telemetry-normalization-spec.d.ts +10 -0
  117. package/dist/src/analyzers/architecture-telemetry-normalization-spec.js +20 -0
  118. package/dist/src/analyzers/architecture-telemetry-normalization.d.ts +6 -0
  119. package/dist/src/analyzers/architecture-telemetry-normalization.js +4 -0
  120. package/dist/src/analyzers/architecture-topology-core.d.ts +7 -0
  121. package/dist/src/analyzers/architecture-topology-core.js +4 -0
  122. package/dist/src/analyzers/architecture-topology-shared.d.ts +2 -0
  123. package/dist/src/analyzers/architecture-topology-shared.js +9 -0
  124. package/dist/src/analyzers/architecture-topology-signals.d.ts +21 -0
  125. package/dist/src/analyzers/architecture-topology-signals.js +98 -0
  126. package/dist/src/analyzers/architecture-topology.d.ts +2 -0
  127. package/dist/src/analyzers/architecture-topology.js +1 -0
  128. package/dist/src/analyzers/architecture.d.ts +16 -0
  129. package/dist/src/analyzers/architecture.js +44 -0
  130. package/dist/src/analyzers/code-contracts.d.ts +4 -0
  131. package/dist/src/analyzers/code-contracts.js +74 -0
  132. package/dist/src/analyzers/code-dart.d.ts +3 -0
  133. package/dist/src/analyzers/code-dart.js +57 -0
  134. package/dist/src/analyzers/code-ecma.d.ts +2 -0
  135. package/dist/src/analyzers/code-ecma.js +53 -0
  136. package/dist/src/analyzers/code-shared.d.ts +19 -0
  137. package/dist/src/analyzers/code-shared.js +64 -0
  138. package/dist/src/analyzers/code.d.ts +3 -0
  139. package/dist/src/analyzers/code.js +34 -0
  140. package/dist/src/analyzers/contract-files.d.ts +13 -0
  141. package/dist/src/analyzers/contract-files.js +80 -0
  142. package/dist/src/analyzers/cti-complexity-components.d.ts +12 -0
  143. package/dist/src/analyzers/cti-complexity-components.js +83 -0
  144. package/dist/src/analyzers/cti-complexity-recorder.d.ts +31 -0
  145. package/dist/src/analyzers/cti-complexity-recorder.js +58 -0
  146. package/dist/src/analyzers/cti-complexity.d.ts +7 -0
  147. package/dist/src/analyzers/cti-complexity.js +15 -0
  148. package/dist/src/analyzers/cti-helpers.d.ts +7 -0
  149. package/dist/src/analyzers/cti-helpers.js +40 -0
  150. package/dist/src/analyzers/cti.d.ts +2 -0
  151. package/dist/src/analyzers/cti.js +1 -0
  152. package/dist/src/cli.d.ts +2 -0
  153. package/dist/src/cli.js +95 -0
  154. package/dist/src/command-architecture-inputs-loaders-config.d.ts +24 -0
  155. package/dist/src/command-architecture-inputs-loaders-config.js +17 -0
  156. package/dist/src/command-architecture-inputs-loaders-data.d.ts +22 -0
  157. package/dist/src/command-architecture-inputs-loaders-data.js +105 -0
  158. package/dist/src/command-architecture-inputs-loaders.d.ts +42 -0
  159. package/dist/src/command-architecture-inputs-loaders.js +12 -0
  160. package/dist/src/command-architecture-inputs-provenance.d.ts +2 -0
  161. package/dist/src/command-architecture-inputs-provenance.js +29 -0
  162. package/dist/src/command-architecture-inputs-resolved.d.ts +44 -0
  163. package/dist/src/command-architecture-inputs-resolved.js +72 -0
  164. package/dist/src/command-architecture-inputs-sources.d.ts +2 -0
  165. package/dist/src/command-architecture-inputs-sources.js +1 -0
  166. package/dist/src/command-architecture-inputs.d.ts +4 -0
  167. package/dist/src/command-architecture-inputs.js +63 -0
  168. package/dist/src/command-architecture.d.ts +2 -0
  169. package/dist/src/command-architecture.js +35 -0
  170. package/dist/src/command-domain.d.ts +2 -0
  171. package/dist/src/command-domain.js +124 -0
  172. package/dist/src/command-extraction-helpers.d.ts +13 -0
  173. package/dist/src/command-extraction-helpers.js +33 -0
  174. package/dist/src/command-helpers.d.ts +4 -0
  175. package/dist/src/command-helpers.js +3 -0
  176. package/dist/src/command-history.d.ts +2 -0
  177. package/dist/src/command-history.js +61 -0
  178. package/dist/src/command-input-loaders-architecture-compat-delivery-complexity.d.ts +3 -0
  179. package/dist/src/command-input-loaders-architecture-compat-delivery-complexity.js +132 -0
  180. package/dist/src/command-input-loaders-architecture-compat-pattern-runtime.d.ts +2 -0
  181. package/dist/src/command-input-loaders-architecture-compat-pattern-runtime.js +54 -0
  182. package/dist/src/command-input-loaders-architecture-compat-scenario.d.ts +3 -0
  183. package/dist/src/command-input-loaders-architecture-compat-scenario.js +94 -0
  184. package/dist/src/command-input-loaders-architecture-compat-shared.d.ts +17 -0
  185. package/dist/src/command-input-loaders-architecture-compat-shared.js +109 -0
  186. package/dist/src/command-input-loaders-architecture-compat-telemetry.d.ts +3 -0
  187. package/dist/src/command-input-loaders-architecture-compat-telemetry.js +137 -0
  188. package/dist/src/command-input-loaders-architecture-compat-topology-boundary.d.ts +3 -0
  189. package/dist/src/command-input-loaders-architecture-compat-topology-boundary.js +178 -0
  190. package/dist/src/command-input-loaders-architecture-compat.d.ts +4 -0
  191. package/dist/src/command-input-loaders-architecture-compat.js +4 -0
  192. package/dist/src/command-input-loaders-architecture-config.d.ts +34 -0
  193. package/dist/src/command-input-loaders-architecture-config.js +25 -0
  194. package/dist/src/command-input-loaders-architecture-data.d.ts +17 -0
  195. package/dist/src/command-input-loaders-architecture-data.js +47 -0
  196. package/dist/src/command-input-loaders-architecture.d.ts +2 -0
  197. package/dist/src/command-input-loaders-architecture.js +2 -0
  198. package/dist/src/command-input-loaders-core.d.ts +20 -0
  199. package/dist/src/command-input-loaders-core.js +58 -0
  200. package/dist/src/command-input-loaders.d.ts +2 -0
  201. package/dist/src/command-input-loaders.js +2 -0
  202. package/dist/src/command-path-helpers.d.ts +6 -0
  203. package/dist/src/command-path-helpers.js +15 -0
  204. package/dist/src/command-score-driven.d.ts +19 -0
  205. package/dist/src/command-score-driven.js +96 -0
  206. package/dist/src/command-score.d.ts +3 -0
  207. package/dist/src/command-score.js +78 -0
  208. package/dist/src/command-shadow-rollout-batch.d.ts +5 -0
  209. package/dist/src/command-shadow-rollout-batch.js +85 -0
  210. package/dist/src/command-shadow-rollout-gate.d.ts +5 -0
  211. package/dist/src/command-shadow-rollout-gate.js +33 -0
  212. package/dist/src/command-shadow-rollout-observe.d.ts +5 -0
  213. package/dist/src/command-shadow-rollout-observe.js +43 -0
  214. package/dist/src/command-shadow-rollout-shared.d.ts +4 -0
  215. package/dist/src/command-shadow-rollout-shared.js +23 -0
  216. package/dist/src/command-shadow-rollout.d.ts +2 -0
  217. package/dist/src/command-shadow-rollout.js +16 -0
  218. package/dist/src/command-types.d.ts +4 -0
  219. package/dist/src/command-types.js +1 -0
  220. package/dist/src/commands.d.ts +6 -0
  221. package/dist/src/commands.js +66 -0
  222. package/dist/src/core/aggregate-fitness-core.d.ts +24 -0
  223. package/dist/src/core/aggregate-fitness-core.js +40 -0
  224. package/dist/src/core/aggregate-fitness-evidence.d.ts +2 -0
  225. package/dist/src/core/aggregate-fitness-evidence.js +24 -0
  226. package/dist/src/core/aggregate-fitness-mapping.d.ts +17 -0
  227. package/dist/src/core/aggregate-fitness-mapping.js +57 -0
  228. package/dist/src/core/aggregate-fitness-scoring.d.ts +24 -0
  229. package/dist/src/core/aggregate-fitness-scoring.js +71 -0
  230. package/dist/src/core/aggregate-fitness-shared.d.ts +21 -0
  231. package/dist/src/core/aggregate-fitness-shared.js +127 -0
  232. package/dist/src/core/aggregate-fitness.d.ts +2 -0
  233. package/dist/src/core/aggregate-fitness.js +1 -0
  234. package/dist/src/core/architecture-purity-core.d.ts +3 -0
  235. package/dist/src/core/architecture-purity-core.js +94 -0
  236. package/dist/src/core/architecture-purity-types.d.ts +18 -0
  237. package/dist/src/core/architecture-purity-types.js +1 -0
  238. package/dist/src/core/architecture-scenario-quality.d.ts +5 -0
  239. package/dist/src/core/architecture-scenario-quality.js +52 -0
  240. package/dist/src/core/architecture-scoring-evidence-architecture.d.ts +10 -0
  241. package/dist/src/core/architecture-scoring-evidence-architecture.js +50 -0
  242. package/dist/src/core/architecture-scoring-evidence-findings.d.ts +2 -0
  243. package/dist/src/core/architecture-scoring-evidence-findings.js +2 -0
  244. package/dist/src/core/architecture-scoring-evidence-inputs-ingest.d.ts +5 -0
  245. package/dist/src/core/architecture-scoring-evidence-inputs-ingest.js +68 -0
  246. package/dist/src/core/architecture-scoring-evidence-inputs-shared.d.ts +20 -0
  247. package/dist/src/core/architecture-scoring-evidence-inputs-shared.js +24 -0
  248. package/dist/src/core/architecture-scoring-evidence-inputs-source.d.ts +7 -0
  249. package/dist/src/core/architecture-scoring-evidence-inputs-source.js +16 -0
  250. package/dist/src/core/architecture-scoring-evidence-inputs.d.ts +2 -0
  251. package/dist/src/core/architecture-scoring-evidence-inputs.js +2 -0
  252. package/dist/src/core/architecture-scoring-evidence-observability.d.ts +12 -0
  253. package/dist/src/core/architecture-scoring-evidence-observability.js +75 -0
  254. package/dist/src/core/architecture-scoring-evidence.d.ts +30 -0
  255. package/dist/src/core/architecture-scoring-evidence.js +76 -0
  256. package/dist/src/core/architecture-scoring-evolution-inputs.d.ts +10 -0
  257. package/dist/src/core/architecture-scoring-evolution-inputs.js +56 -0
  258. package/dist/src/core/architecture-scoring-inputs-complexity.d.ts +7 -0
  259. package/dist/src/core/architecture-scoring-inputs-complexity.js +24 -0
  260. package/dist/src/core/architecture-scoring-inputs-observability.d.ts +11 -0
  261. package/dist/src/core/architecture-scoring-inputs-observability.js +84 -0
  262. package/dist/src/core/architecture-scoring-inputs-static.d.ts +13 -0
  263. package/dist/src/core/architecture-scoring-inputs-static.js +48 -0
  264. package/dist/src/core/architecture-scoring-inputs.d.ts +9 -0
  265. package/dist/src/core/architecture-scoring-inputs.js +16 -0
  266. package/dist/src/core/architecture-scoring-metric-shared.d.ts +11 -0
  267. package/dist/src/core/architecture-scoring-metric-shared.js +3 -0
  268. package/dist/src/core/architecture-scoring-metrics-composite.d.ts +3 -0
  269. package/dist/src/core/architecture-scoring-metrics-composite.js +56 -0
  270. package/dist/src/core/architecture-scoring-metrics-core.d.ts +3 -0
  271. package/dist/src/core/architecture-scoring-metrics-core.js +81 -0
  272. package/dist/src/core/architecture-scoring-metrics-evolution.d.ts +3 -0
  273. package/dist/src/core/architecture-scoring-metrics-evolution.js +74 -0
  274. package/dist/src/core/architecture-scoring-metrics-runtime.d.ts +3 -0
  275. package/dist/src/core/architecture-scoring-metrics-runtime.js +68 -0
  276. package/dist/src/core/architecture-scoring-metrics.d.ts +4 -0
  277. package/dist/src/core/architecture-scoring-metrics.js +14 -0
  278. package/dist/src/core/architecture-scoring-types.d.ts +94 -0
  279. package/dist/src/core/architecture-scoring-types.js +1 -0
  280. package/dist/src/core/architecture-scoring.d.ts +9 -0
  281. package/dist/src/core/architecture-scoring.js +82 -0
  282. package/dist/src/core/artifacts.d.ts +3 -0
  283. package/dist/src/core/artifacts.js +58 -0
  284. package/dist/src/core/boundary-fitness-attraction.d.ts +4 -0
  285. package/dist/src/core/boundary-fitness-attraction.js +11 -0
  286. package/dist/src/core/boundary-fitness-contexts.d.ts +7 -0
  287. package/dist/src/core/boundary-fitness-contexts.js +80 -0
  288. package/dist/src/core/boundary-fitness-core.d.ts +28 -0
  289. package/dist/src/core/boundary-fitness-core.js +132 -0
  290. package/dist/src/core/boundary-fitness-evidence.d.ts +17 -0
  291. package/dist/src/core/boundary-fitness-evidence.js +27 -0
  292. package/dist/src/core/boundary-fitness-separation.d.ts +13 -0
  293. package/dist/src/core/boundary-fitness-separation.js +14 -0
  294. package/dist/src/core/boundary-fitness-shared.d.ts +3 -0
  295. package/dist/src/core/boundary-fitness-shared.js +17 -0
  296. package/dist/src/core/boundary-fitness-signals.d.ts +21 -0
  297. package/dist/src/core/boundary-fitness-signals.js +104 -0
  298. package/dist/src/core/boundary-fitness.d.ts +3 -0
  299. package/dist/src/core/boundary-fitness.js +2 -0
  300. package/dist/src/core/command-analytics.d.ts +32 -0
  301. package/dist/src/core/command-analytics.js +80 -0
  302. package/dist/src/core/contracts/analysis.d.ts +105 -0
  303. package/dist/src/core/contracts/analysis.js +1 -0
  304. package/dist/src/core/contracts/architecture-complexity.d.ts +20 -0
  305. package/dist/src/core/contracts/architecture-complexity.js +1 -0
  306. package/dist/src/core/contracts/architecture-constraints.d.ts +62 -0
  307. package/dist/src/core/contracts/architecture-constraints.js +1 -0
  308. package/dist/src/core/contracts/architecture-contract-baseline.d.ts +33 -0
  309. package/dist/src/core/contracts/architecture-contract-baseline.js +1 -0
  310. package/dist/src/core/contracts/architecture-delivery.d.ts +42 -0
  311. package/dist/src/core/contracts/architecture-delivery.js +1 -0
  312. package/dist/src/core/contracts/architecture-normalization.d.ts +6 -0
  313. package/dist/src/core/contracts/architecture-normalization.js +1 -0
  314. package/dist/src/core/contracts/architecture-pattern-runtime.d.ts +69 -0
  315. package/dist/src/core/contracts/architecture-pattern-runtime.js +1 -0
  316. package/dist/src/core/contracts/architecture-scenarios.d.ts +62 -0
  317. package/dist/src/core/contracts/architecture-scenarios.js +1 -0
  318. package/dist/src/core/contracts/architecture-telemetry.d.ts +47 -0
  319. package/dist/src/core/contracts/architecture-telemetry.js +1 -0
  320. package/dist/src/core/contracts/architecture-topology.d.ts +35 -0
  321. package/dist/src/core/contracts/architecture-topology.js +1 -0
  322. package/dist/src/core/contracts/architecture.d.ts +9 -0
  323. package/dist/src/core/contracts/architecture.js +9 -0
  324. package/dist/src/core/contracts/common.d.ts +87 -0
  325. package/dist/src/core/contracts/common.js +1 -0
  326. package/dist/src/core/contracts/domain-design-score.d.ts +14 -0
  327. package/dist/src/core/contracts/domain-design-score.js +1 -0
  328. package/dist/src/core/contracts/domain-design-shadow-rollout-batch.d.ts +58 -0
  329. package/dist/src/core/contracts/domain-design-shadow-rollout-batch.js +1 -0
  330. package/dist/src/core/contracts/domain-design-shadow-rollout-gate.d.ts +46 -0
  331. package/dist/src/core/contracts/domain-design-shadow-rollout-gate.js +1 -0
  332. package/dist/src/core/contracts/domain-design-shadow-rollout-observation.d.ts +17 -0
  333. package/dist/src/core/contracts/domain-design-shadow-rollout-observation.js +1 -0
  334. package/dist/src/core/contracts/domain-design-shadow-rollout-registry.d.ts +15 -0
  335. package/dist/src/core/contracts/domain-design-shadow-rollout-registry.js +1 -0
  336. package/dist/src/core/contracts/domain-design.d.ts +5 -0
  337. package/dist/src/core/contracts/domain-design.js +5 -0
  338. package/dist/src/core/contracts/domain-model.d.ts +35 -0
  339. package/dist/src/core/contracts/domain-model.js +1 -0
  340. package/dist/src/core/contracts/governance-extraction.d.ts +65 -0
  341. package/dist/src/core/contracts/governance-extraction.js +1 -0
  342. package/dist/src/core/contracts/governance-policy.d.ts +23 -0
  343. package/dist/src/core/contracts/governance-policy.js +1 -0
  344. package/dist/src/core/contracts/governance-review.d.ts +31 -0
  345. package/dist/src/core/contracts/governance-review.js +1 -0
  346. package/dist/src/core/contracts/governance-runtime.d.ts +12 -0
  347. package/dist/src/core/contracts/governance-runtime.js +1 -0
  348. package/dist/src/core/contracts/governance-scoring.d.ts +41 -0
  349. package/dist/src/core/contracts/governance-scoring.js +1 -0
  350. package/dist/src/core/contracts/governance.d.ts +5 -0
  351. package/dist/src/core/contracts/governance.js +5 -0
  352. package/dist/src/core/contracts.d.ts +6 -0
  353. package/dist/src/core/contracts.js +6 -0
  354. package/dist/src/core/document-extractor-glossary.d.ts +3 -0
  355. package/dist/src/core/document-extractor-glossary.js +90 -0
  356. package/dist/src/core/document-extractor-identity.d.ts +18 -0
  357. package/dist/src/core/document-extractor-identity.js +37 -0
  358. package/dist/src/core/document-extractor-shared.d.ts +3 -0
  359. package/dist/src/core/document-extractor-shared.js +2 -0
  360. package/dist/src/core/document-extractor-statements-classification-cli.d.ts +3 -0
  361. package/dist/src/core/document-extractor-statements-classification-cli.js +50 -0
  362. package/dist/src/core/document-extractor-statements-classification-core.d.ts +17 -0
  363. package/dist/src/core/document-extractor-statements-classification-core.js +91 -0
  364. package/dist/src/core/document-extractor-statements-classification-heuristic.d.ts +3 -0
  365. package/dist/src/core/document-extractor-statements-classification-heuristic.js +32 -0
  366. package/dist/src/core/document-extractor-statements-classification.d.ts +2 -0
  367. package/dist/src/core/document-extractor-statements-classification.js +2 -0
  368. package/dist/src/core/document-extractor-statements-segments.d.ts +3 -0
  369. package/dist/src/core/document-extractor-statements-segments.js +38 -0
  370. package/dist/src/core/document-extractor-statements.d.ts +1 -0
  371. package/dist/src/core/document-extractor-statements.js +1 -0
  372. package/dist/src/core/document-extractor-text-normalization.d.ts +5 -0
  373. package/dist/src/core/document-extractor-text-normalization.js +29 -0
  374. package/dist/src/core/document-extractor-text-review.d.ts +3 -0
  375. package/dist/src/core/document-extractor-text-review.js +15 -0
  376. package/dist/src/core/document-extractor-text-signals.d.ts +11 -0
  377. package/dist/src/core/document-extractor-text-signals.js +115 -0
  378. package/dist/src/core/document-extractor-text.d.ts +3 -0
  379. package/dist/src/core/document-extractor-text.js +3 -0
  380. package/dist/src/core/document-extractor-types.d.ts +30 -0
  381. package/dist/src/core/document-extractor-types.js +1 -0
  382. package/dist/src/core/document-extractors-review.d.ts +4 -0
  383. package/dist/src/core/document-extractors-review.js +10 -0
  384. package/dist/src/core/document-extractors-runner.d.ts +15 -0
  385. package/dist/src/core/document-extractors-runner.js +31 -0
  386. package/dist/src/core/document-extractors.d.ts +24 -0
  387. package/dist/src/core/document-extractors.js +130 -0
  388. package/dist/src/core/domain-design-matching.d.ts +2 -0
  389. package/dist/src/core/domain-design-matching.js +85 -0
  390. package/dist/src/core/domain-design-scoring-context.d.ts +25 -0
  391. package/dist/src/core/domain-design-scoring-context.js +66 -0
  392. package/dist/src/core/domain-design-scoring-core-docs.d.ts +5 -0
  393. package/dist/src/core/domain-design-scoring-core-docs.js +8 -0
  394. package/dist/src/core/domain-design-scoring-core.d.ts +24 -0
  395. package/dist/src/core/domain-design-scoring-core.js +137 -0
  396. package/dist/src/core/domain-design-scoring-docs-afs.d.ts +2 -0
  397. package/dist/src/core/domain-design-scoring-docs-afs.js +40 -0
  398. package/dist/src/core/domain-design-scoring-docs-bfs.d.ts +2 -0
  399. package/dist/src/core/domain-design-scoring-docs-bfs.js +46 -0
  400. package/dist/src/core/domain-design-scoring-docs-core.d.ts +12 -0
  401. package/dist/src/core/domain-design-scoring-docs-core.js +47 -0
  402. package/dist/src/core/domain-design-scoring-docs-drf.d.ts +2 -0
  403. package/dist/src/core/domain-design-scoring-docs-drf.js +55 -0
  404. package/dist/src/core/domain-design-scoring-docs-shared.d.ts +25 -0
  405. package/dist/src/core/domain-design-scoring-docs-shared.js +1 -0
  406. package/dist/src/core/domain-design-scoring-docs-uli.d.ts +2 -0
  407. package/dist/src/core/domain-design-scoring-docs-uli.js +39 -0
  408. package/dist/src/core/domain-design-scoring-docs.d.ts +1 -0
  409. package/dist/src/core/domain-design-scoring-docs.js +1 -0
  410. package/dist/src/core/domain-design-scoring-locality.d.ts +27 -0
  411. package/dist/src/core/domain-design-scoring-locality.js +87 -0
  412. package/dist/src/core/domain-design-scoring-mccs.d.ts +18 -0
  413. package/dist/src/core/domain-design-scoring-mccs.js +29 -0
  414. package/dist/src/core/domain-design-scoring-pilot.d.ts +13 -0
  415. package/dist/src/core/domain-design-scoring-pilot.js +57 -0
  416. package/dist/src/core/domain-design-scoring-response-shared.d.ts +20 -0
  417. package/dist/src/core/domain-design-scoring-response-shared.js +30 -0
  418. package/dist/src/core/domain-design-scoring-response.d.ts +18 -0
  419. package/dist/src/core/domain-design-scoring-response.js +27 -0
  420. package/dist/src/core/domain-design-scoring-support-drf.d.ts +17 -0
  421. package/dist/src/core/domain-design-scoring-support-drf.js +118 -0
  422. package/dist/src/core/domain-design-scoring-support-persistence.d.ts +6 -0
  423. package/dist/src/core/domain-design-scoring-support-persistence.js +8 -0
  424. package/dist/src/core/domain-design-scoring-support-uli.d.ts +12 -0
  425. package/dist/src/core/domain-design-scoring-support-uli.js +31 -0
  426. package/dist/src/core/domain-design-scoring-support.d.ts +3 -0
  427. package/dist/src/core/domain-design-scoring-support.js +3 -0
  428. package/dist/src/core/domain-design-scoring.d.ts +1 -0
  429. package/dist/src/core/domain-design-scoring.js +1 -0
  430. package/dist/src/core/formula-parser-tokenize.d.ts +14 -0
  431. package/dist/src/core/formula-parser-tokenize.js +58 -0
  432. package/dist/src/core/formula-parser.d.ts +1 -0
  433. package/dist/src/core/formula-parser.js +91 -0
  434. package/dist/src/core/formula.d.ts +1 -0
  435. package/dist/src/core/formula.js +1 -0
  436. package/dist/src/core/history-locality.d.ts +5 -0
  437. package/dist/src/core/history-locality.js +48 -0
  438. package/dist/src/core/history-normalization.d.ts +13 -0
  439. package/dist/src/core/history-normalization.js +105 -0
  440. package/dist/src/core/history-persistence-analysis.d.ts +6 -0
  441. package/dist/src/core/history-persistence-analysis.js +26 -0
  442. package/dist/src/core/history-persistence-clusters.d.ts +6 -0
  443. package/dist/src/core/history-persistence-clusters.js +9 -0
  444. package/dist/src/core/history-persistence-comparison.d.ts +6 -0
  445. package/dist/src/core/history-persistence-comparison.js +66 -0
  446. package/dist/src/core/history-persistence-components.d.ts +8 -0
  447. package/dist/src/core/history-persistence-components.js +99 -0
  448. package/dist/src/core/history-persistence-stability.d.ts +8 -0
  449. package/dist/src/core/history-persistence-stability.js +79 -0
  450. package/dist/src/core/history-persistence.d.ts +2 -0
  451. package/dist/src/core/history-persistence.js +2 -0
  452. package/dist/src/core/history-shared.d.ts +27 -0
  453. package/dist/src/core/history-shared.js +145 -0
  454. package/dist/src/core/history.d.ts +3 -0
  455. package/dist/src/core/history.js +3 -0
  456. package/dist/src/core/io.d.ts +9 -0
  457. package/dist/src/core/io.js +86 -0
  458. package/dist/src/core/measurement-metadata.d.ts +13 -0
  459. package/dist/src/core/measurement-metadata.js +142 -0
  460. package/dist/src/core/model.d.ts +3 -0
  461. package/dist/src/core/model.js +33 -0
  462. package/dist/src/core/policy-defaults-architecture.d.ts +2 -0
  463. package/dist/src/core/policy-defaults-architecture.js +75 -0
  464. package/dist/src/core/policy-defaults-domain.d.ts +2 -0
  465. package/dist/src/core/policy-defaults-domain.js +51 -0
  466. package/dist/src/core/policy-defaults-profiles.d.ts +2 -0
  467. package/dist/src/core/policy-defaults-profiles.js +24 -0
  468. package/dist/src/core/policy-defaults.d.ts +2 -0
  469. package/dist/src/core/policy-defaults.js +4 -0
  470. package/dist/src/core/policy-formulas.d.ts +5 -0
  471. package/dist/src/core/policy-formulas.js +5 -0
  472. package/dist/src/core/policy.d.ts +4 -0
  473. package/dist/src/core/policy.js +20 -0
  474. package/dist/src/core/progress.d.ts +8 -0
  475. package/dist/src/core/progress.js +40 -0
  476. package/dist/src/core/providers-normalization.d.ts +7 -0
  477. package/dist/src/core/providers-normalization.js +27 -0
  478. package/dist/src/core/providers-prompt.d.ts +4 -0
  479. package/dist/src/core/providers-prompt.js +63 -0
  480. package/dist/src/core/providers-runner.d.ts +3 -0
  481. package/dist/src/core/providers-runner.js +32 -0
  482. package/dist/src/core/providers-types.d.ts +10 -0
  483. package/dist/src/core/providers-types.js +1 -0
  484. package/dist/src/core/providers.d.ts +4 -0
  485. package/dist/src/core/providers.js +30 -0
  486. package/dist/src/core/report-actionability.d.ts +4 -0
  487. package/dist/src/core/report-actionability.js +57 -0
  488. package/dist/src/core/report-architecture.d.ts +2 -0
  489. package/dist/src/core/report-architecture.js +80 -0
  490. package/dist/src/core/report-domain.d.ts +2 -0
  491. package/dist/src/core/report-domain.js +50 -0
  492. package/dist/src/core/report-gate.d.ts +3 -0
  493. package/dist/src/core/report-gate.js +54 -0
  494. package/dist/src/core/report-shared-format.d.ts +2 -0
  495. package/dist/src/core/report-shared-format.js +6 -0
  496. package/dist/src/core/report-shared-guidance.d.ts +2 -0
  497. package/dist/src/core/report-shared-guidance.js +98 -0
  498. package/dist/src/core/report-shared-predicates.d.ts +17 -0
  499. package/dist/src/core/report-shared-predicates.js +9 -0
  500. package/dist/src/core/report-shared.d.ts +4 -0
  501. package/dist/src/core/report-shared.js +3 -0
  502. package/dist/src/core/report.d.ts +3 -0
  503. package/dist/src/core/report.js +10 -0
  504. package/dist/src/core/response.d.ts +8 -0
  505. package/dist/src/core/response.js +67 -0
  506. package/dist/src/core/review-items.d.ts +2 -0
  507. package/dist/src/core/review-items.js +116 -0
  508. package/dist/src/core/review-resolutions.d.ts +3 -0
  509. package/dist/src/core/review-resolutions.js +43 -0
  510. package/dist/src/core/review.d.ts +2 -0
  511. package/dist/src/core/review.js +2 -0
  512. package/dist/src/core/scaffold-aggregation.d.ts +13 -0
  513. package/dist/src/core/scaffold-aggregation.js +18 -0
  514. package/dist/src/core/scaffold-architecture-balances.d.ts +3 -0
  515. package/dist/src/core/scaffold-architecture-balances.js +25 -0
  516. package/dist/src/core/scaffold-architecture-drafts-builders.d.ts +19 -0
  517. package/dist/src/core/scaffold-architecture-drafts-builders.js +114 -0
  518. package/dist/src/core/scaffold-architecture-drafts-profiles.d.ts +11 -0
  519. package/dist/src/core/scaffold-architecture-drafts-profiles.js +183 -0
  520. package/dist/src/core/scaffold-architecture-drafts.d.ts +12 -0
  521. package/dist/src/core/scaffold-architecture-drafts.js +4 -0
  522. package/dist/src/core/scaffold-architecture-layer-candidates.d.ts +3 -0
  523. package/dist/src/core/scaffold-architecture-layer-candidates.js +32 -0
  524. package/dist/src/core/scaffold-architecture-layers.d.ts +3 -0
  525. package/dist/src/core/scaffold-architecture-layers.js +15 -0
  526. package/dist/src/core/scaffold-architecture-orchestration.d.ts +5 -0
  527. package/dist/src/core/scaffold-architecture-orchestration.js +36 -0
  528. package/dist/src/core/scaffold-architecture-ordering.d.ts +4 -0
  529. package/dist/src/core/scaffold-architecture-ordering.js +55 -0
  530. package/dist/src/core/scaffold-architecture.d.ts +1 -0
  531. package/dist/src/core/scaffold-architecture.js +1 -0
  532. package/dist/src/core/scaffold-domain-aggregates-candidates.d.ts +4 -0
  533. package/dist/src/core/scaffold-domain-aggregates-candidates.js +8 -0
  534. package/dist/src/core/scaffold-domain-aggregates-core.d.ts +1 -0
  535. package/dist/src/core/scaffold-domain-aggregates-core.js +1 -0
  536. package/dist/src/core/scaffold-domain-aggregates-dedupe.d.ts +2 -0
  537. package/dist/src/core/scaffold-domain-aggregates-dedupe.js +18 -0
  538. package/dist/src/core/scaffold-domain-aggregates-explicit.d.ts +4 -0
  539. package/dist/src/core/scaffold-domain-aggregates-explicit.js +43 -0
  540. package/dist/src/core/scaffold-domain-aggregates-inferred.d.ts +4 -0
  541. package/dist/src/core/scaffold-domain-aggregates-inferred.js +117 -0
  542. package/dist/src/core/scaffold-domain-aggregates-shared.d.ts +23 -0
  543. package/dist/src/core/scaffold-domain-aggregates-shared.js +91 -0
  544. package/dist/src/core/scaffold-domain-aggregates.d.ts +1 -0
  545. package/dist/src/core/scaffold-domain-aggregates.js +1 -0
  546. package/dist/src/core/scaffold-domain-context-candidates.d.ts +5 -0
  547. package/dist/src/core/scaffold-domain-context-candidates.js +65 -0
  548. package/dist/src/core/scaffold-domain-context-naming.d.ts +8 -0
  549. package/dist/src/core/scaffold-domain-context-naming.js +117 -0
  550. package/dist/src/core/scaffold-domain-contexts.d.ts +11 -0
  551. package/dist/src/core/scaffold-domain-contexts.js +75 -0
  552. package/dist/src/core/scaffold-domain-docs.d.ts +17 -0
  553. package/dist/src/core/scaffold-domain-docs.js +18 -0
  554. package/dist/src/core/scaffold-domain.d.ts +7 -0
  555. package/dist/src/core/scaffold-domain.js +62 -0
  556. package/dist/src/core/scaffold-naming.d.ts +4 -0
  557. package/dist/src/core/scaffold-naming.js +32 -0
  558. package/dist/src/core/scaffold-options.d.ts +2 -0
  559. package/dist/src/core/scaffold-options.js +10 -0
  560. package/dist/src/core/scaffold-shared.d.ts +5 -0
  561. package/dist/src/core/scaffold-shared.js +4 -0
  562. package/dist/src/core/scaffold-source-group-classification.d.ts +3 -0
  563. package/dist/src/core/scaffold-source-group-classification.js +91 -0
  564. package/dist/src/core/scaffold-source-group-constants.d.ts +3 -0
  565. package/dist/src/core/scaffold-source-group-constants.js +52 -0
  566. package/dist/src/core/scaffold-source-group-merge.d.ts +5 -0
  567. package/dist/src/core/scaffold-source-group-merge.js +56 -0
  568. package/dist/src/core/scaffold-source-group-naming.d.ts +4 -0
  569. package/dist/src/core/scaffold-source-group-naming.js +66 -0
  570. package/dist/src/core/scaffold-source-groups.d.ts +5 -0
  571. package/dist/src/core/scaffold-source-groups.js +123 -0
  572. package/dist/src/core/scaffold-types.d.ts +30 -0
  573. package/dist/src/core/scaffold-types.js +1 -0
  574. package/dist/src/core/scaffold.d.ts +2 -0
  575. package/dist/src/core/scaffold.js +2 -0
  576. package/dist/src/core/scoring-shared.d.ts +12 -0
  577. package/dist/src/core/scoring-shared.js +39 -0
  578. package/dist/src/core/scoring.d.ts +2 -0
  579. package/dist/src/core/scoring.js +2 -0
  580. package/dist/src/core/shadow-rollout-gate-reasons.d.ts +8 -0
  581. package/dist/src/core/shadow-rollout-gate-reasons.js +22 -0
  582. package/dist/src/core/shadow-rollout-gate-summary.d.ts +2 -0
  583. package/dist/src/core/shadow-rollout-gate-summary.js +36 -0
  584. package/dist/src/core/shadow-rollout-gate.d.ts +2 -0
  585. package/dist/src/core/shadow-rollout-gate.js +50 -0
  586. package/dist/src/core/shadow-rollout-registry.d.ts +5 -0
  587. package/dist/src/core/shadow-rollout-registry.js +31 -0
  588. package/dist/src/core/shadow-rollout-summary.d.ts +4 -0
  589. package/dist/src/core/shadow-rollout-summary.js +39 -0
  590. package/dist/src/core/shadow-rollout.d.ts +3 -0
  591. package/dist/src/core/shadow-rollout.js +3 -0
  592. package/dist/src/core/shared-utils.d.ts +4 -0
  593. package/dist/src/core/shared-utils.js +15 -0
  594. package/dist/src/core/trace.d.ts +14 -0
  595. package/dist/src/core/trace.js +118 -0
  596. package/dist/src/index.d.ts +7 -0
  597. package/dist/src/index.js +7 -0
  598. package/dist/src/packs/index.d.ts +2 -0
  599. package/dist/src/packs/index.js +36 -0
  600. package/package.json +68 -0
@@ -0,0 +1,32 @@
1
+ import { execFile as execFileCallback } from "node:child_process";
2
+ import { readFile } from "node:fs/promises";
3
+ import { promisify } from "node:util";
4
+ import { defaultProviderCommand } from "./providers-prompt.js";
5
+ const execFile = promisify(execFileCallback);
6
+ export async function runCodexCli(options, schemaPath, outputPath, prompt) {
7
+ const command = options.providerCommand ?? defaultProviderCommand(options.provider);
8
+ await execFile(command, ["exec", "--skip-git-repo-check", "-C", options.cwd, "--output-schema", schemaPath, "-o", outputPath, prompt], {
9
+ cwd: options.cwd,
10
+ maxBuffer: 10 * 1024 * 1024,
11
+ });
12
+ return readFile(outputPath, "utf8");
13
+ }
14
+ export async function runClaudeCli(options, schema, prompt) {
15
+ const command = options.providerCommand ?? defaultProviderCommand(options.provider);
16
+ const { stdout } = await execFile(command, [
17
+ "-p",
18
+ "--output-format",
19
+ "json",
20
+ "--json-schema",
21
+ JSON.stringify(schema),
22
+ "--permission-mode",
23
+ "default",
24
+ "--tools",
25
+ "",
26
+ prompt,
27
+ ], {
28
+ cwd: options.cwd,
29
+ maxBuffer: 10 * 1024 * 1024,
30
+ });
31
+ return stdout;
32
+ }
@@ -0,0 +1,10 @@
1
+ import type { ExtractionKind, ExtractionProviderName, Fragment } from "./contracts.js";
2
+ export interface CliExtractionOptions {
3
+ cwd: string;
4
+ provider: ExtractionProviderName;
5
+ providerCommand?: string;
6
+ kind: ExtractionKind;
7
+ promptProfile: string;
8
+ fragments: Fragment[];
9
+ }
10
+ export type RawProviderItem = Record<string, unknown>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import type { ExtractionProviderResult } from "./contracts.js";
2
+ export type { CliExtractionOptions } from "./providers-types.js";
3
+ import type { CliExtractionOptions, RawProviderItem } from "./providers-types.js";
4
+ export declare function runCliExtraction(options: CliExtractionOptions): Promise<ExtractionProviderResult<RawProviderItem>>;
@@ -0,0 +1,30 @@
1
+ import { mkdtemp, rm, writeFile } from "node:fs/promises";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { normalizeProviderPayload } from "./providers-normalization.js";
5
+ import { buildPrompt, buildSchema } from "./providers-prompt.js";
6
+ import { runClaudeCli, runCodexCli } from "./providers-runner.js";
7
+ export async function runCliExtraction(options) {
8
+ const tempDir = await mkdtemp(path.join(os.tmpdir(), "context-probe-provider-"));
9
+ const schemaPath = path.join(tempDir, `${options.kind}-schema.json`);
10
+ const outputPath = path.join(tempDir, `${options.kind}-output.json`);
11
+ const schema = buildSchema(options.kind);
12
+ const prompt = buildPrompt(options.kind, options.promptProfile, options.fragments);
13
+ await writeFile(schemaPath, JSON.stringify(schema, null, 2), "utf8");
14
+ try {
15
+ const rawOutput = options.provider === "codex"
16
+ ? await runCodexCli(options, schemaPath, outputPath, prompt)
17
+ : await runClaudeCli(options, schema, prompt);
18
+ const parsed = normalizeProviderPayload(JSON.parse(rawOutput));
19
+ return {
20
+ items: parsed.items,
21
+ confidence: parsed.confidence,
22
+ unknowns: parsed.unknowns,
23
+ diagnostics: parsed.diagnostics,
24
+ provider: options.provider,
25
+ };
26
+ }
27
+ finally {
28
+ await rm(tempDir, { recursive: true, force: true });
29
+ }
30
+ }
@@ -0,0 +1,4 @@
1
+ import type { ReportResponse } from "./report-shared-predicates.js";
2
+ export declare function renderMeasurementQualitySection(response: ReportResponse): string[];
3
+ export declare function renderSuggestedNextEvidenceSection(response: ReportResponse): string[];
4
+ export declare function renderActionQueueSection(response: ReportResponse): string[];
@@ -0,0 +1,57 @@
1
+ import { buildSuggestedNextEvidence, isApproximationNote, isMissingInputNote } from "./measurement-metadata.js";
2
+ function uniq(values) {
3
+ return Array.from(new Set(values));
4
+ }
5
+ export function renderMeasurementQualitySection(response) {
6
+ const measurementQuality = response.meta?.measurementQuality;
7
+ if (!measurementQuality) {
8
+ return [];
9
+ }
10
+ const lines = ["", "## Measurement Quality"];
11
+ lines.push(`- Decision Risk: ${measurementQuality.decisionRisk}`);
12
+ lines.push(`- Unknown Count: ${measurementQuality.unknownsCount}`);
13
+ lines.push(`- Proxy Metrics: ${measurementQuality.proxyMetrics.length > 0 ? measurementQuality.proxyMetrics.join(", ") : "none"}`);
14
+ lines.push(`- Proxy Rate: ${measurementQuality.proxyRate.toFixed(3)}`);
15
+ if (measurementQuality.approximationNotes.length > 0) {
16
+ lines.push(...measurementQuality.approximationNotes.map((entry) => `- Approximation: ${entry}`));
17
+ }
18
+ return lines;
19
+ }
20
+ export function renderSuggestedNextEvidenceSection(response) {
21
+ const suggestions = buildSuggestedNextEvidence(response);
22
+ if (suggestions.length === 0) {
23
+ return [];
24
+ }
25
+ return ["", "## Suggested Next Evidence", ...suggestions.map((entry) => `- ${entry}`)];
26
+ }
27
+ function buildActionQueue(response) {
28
+ const actions = [];
29
+ if (response.result.scenarioQuality?.missingTopPriorityObservationIds.length) {
30
+ actions.push(`Add observations for top-priority scenarios: ${response.result.scenarioQuality.missingTopPriorityObservationIds.join(", ")}`);
31
+ }
32
+ if (response.result.localityWatchlist && response.result.localityWatchlist.length > 0) {
33
+ const hotspot = response.result.localityWatchlist[0];
34
+ if (hotspot) {
35
+ actions.push(`Review recurring co-change hotspot: ${hotspot.boundaries.join(" <-> ")} (${hotspot.count} commits)`);
36
+ }
37
+ }
38
+ if (response.meta?.measurementQuality?.proxyMetrics.length) {
39
+ actions.push(`Reduce proxy dependence in ${response.meta.measurementQuality.proxyMetrics.join(", ")} by adding stronger evidence inputs`);
40
+ }
41
+ const missingInputUnknown = response.unknowns.find(isMissingInputNote);
42
+ if (missingInputUnknown) {
43
+ actions.push(`Resolve missing or thin evidence: ${missingInputUnknown}`);
44
+ }
45
+ const approximationUnknown = response.unknowns.find(isApproximationNote);
46
+ if (approximationUnknown) {
47
+ actions.push(`Replace approximation with observed evidence: ${approximationUnknown}`);
48
+ }
49
+ return uniq(actions).slice(0, 5);
50
+ }
51
+ export function renderActionQueueSection(response) {
52
+ const actions = buildActionQueue(response);
53
+ if (actions.length === 0) {
54
+ return [];
55
+ }
56
+ return ["", "## Action Queue", ...actions.map((entry) => `- ${entry}`)];
57
+ }
@@ -0,0 +1,2 @@
1
+ import { type ReportResponse } from "./report-shared.js";
2
+ export declare function renderArchitectureMarkdownReport(response: ReportResponse, profileName?: string): string;
@@ -0,0 +1,80 @@
1
+ import { renderActionQueueSection, renderMeasurementQualitySection, renderSuggestedNextEvidenceSection, } from "./report-actionability.js";
2
+ import { dedupe, formatMetric, proxyOrPartialUnknowns, renderMetricGuidanceSection, } from "./report-shared.js";
3
+ function architectureMetricMap(metrics) {
4
+ return new Map(metrics.map((metric) => [metric.metricId, metric]));
5
+ }
6
+ function detectPolicyProfile(response, explicitProfileName) {
7
+ if (explicitProfileName) {
8
+ return explicitProfileName;
9
+ }
10
+ const profileEntry = response.provenance.find((entry) => entry.note?.startsWith("profile="));
11
+ return profileEntry?.note?.slice("profile=".length);
12
+ }
13
+ export function renderArchitectureMarkdownReport(response, profileName) {
14
+ const lines = ["# Measurement Report", ""];
15
+ const metrics = architectureMetricMap(response.result.metrics);
16
+ const summaryMetric = metrics.get("APSI");
17
+ const supportingMetricIds = ["QSF", "DDS", "BPS", "IPS", "OAS", "EES", "CTI"];
18
+ const bridgeMetricIds = ["TIS", "AELS"];
19
+ const supportingMetrics = supportingMetricIds
20
+ .map((metricId) => metrics.get(metricId))
21
+ .filter((metric) => Boolean(metric));
22
+ const bridgeMetrics = bridgeMetricIds
23
+ .map((metricId) => metrics.get(metricId))
24
+ .filter((metric) => Boolean(metric));
25
+ const proxySignals = dedupe(response.result.metrics.flatMap((metric) => proxyOrPartialUnknowns(metric).map((entry) => `${metric.metricId}: ${entry}`)));
26
+ const activeProfile = detectPolicyProfile(response, profileName);
27
+ lines.push(`- Domain: ${response.result.domainId}`);
28
+ lines.push(`- Status: ${response.status}`);
29
+ lines.push(`- Confidence: ${response.confidence.toFixed(3)}`);
30
+ if (activeProfile) {
31
+ lines.push(`- Policy Profile: ${activeProfile}`);
32
+ }
33
+ lines.push("");
34
+ lines.push(...renderMeasurementQualitySection(response));
35
+ lines.push("## Architecture Summary");
36
+ if (summaryMetric) {
37
+ lines.push(formatMetric(summaryMetric));
38
+ lines.push("- APSI is a summary-only metric. Always read the supporting metrics below.");
39
+ }
40
+ else {
41
+ lines.push("- APSI is not available for this run.");
42
+ }
43
+ lines.push("", "## Supporting Metrics");
44
+ lines.push(...supportingMetrics.map(formatMetric));
45
+ if (bridgeMetrics.length > 0) {
46
+ lines.push("", "## Bridge Metrics");
47
+ lines.push(...bridgeMetrics.map(formatMetric));
48
+ }
49
+ lines.push(...renderMetricGuidanceSection([...(summaryMetric ? [summaryMetric] : []), ...supportingMetrics, ...bridgeMetrics]));
50
+ if (response.result.scenarioQuality) {
51
+ lines.push("", "## Scenario Quality");
52
+ lines.push(`- Observed Scenarios: ${response.result.scenarioQuality.observedScenarios}/${response.result.scenarioQuality.totalScenarios}`);
53
+ if (response.result.scenarioQuality.missingTopPriorityObservationIds.length > 0) {
54
+ lines.push(`- Missing Top-Priority Observations: ${response.result.scenarioQuality.missingTopPriorityObservationIds.join(", ")}`);
55
+ }
56
+ if (response.result.scenarioQuality.duplicateScenarioIds.length > 0) {
57
+ lines.push(`- Duplicate Scenario Intent: ${response.result.scenarioQuality.duplicateScenarioIds.join(", ")}`);
58
+ }
59
+ lines.push(...response.result.scenarioQuality.findings.map((item) => `- ${item}`));
60
+ }
61
+ if (response.result.localityWatchlist && response.result.localityWatchlist.length > 0) {
62
+ lines.push("", "## Locality Watchlist");
63
+ lines.push(...response.result.localityWatchlist.map((item) => `- ${item.boundaries.join(" <-> ")}: ${item.count} commits${item.sampleCommitHashes.length > 0 ? ` (${item.sampleCommitHashes.join(", ")})` : ""}`));
64
+ }
65
+ if (proxySignals.length > 0) {
66
+ lines.push("", "## Proxy / Partial Signals", ...proxySignals.map((item) => `- ${item}`));
67
+ }
68
+ lines.push(...renderSuggestedNextEvidenceSection(response));
69
+ lines.push(...renderActionQueueSection(response));
70
+ if (response.unknowns.length > 0) {
71
+ lines.push("", "## Unknowns", ...response.unknowns.map((item) => `- ${item}`));
72
+ }
73
+ if (response.diagnostics.length > 0) {
74
+ lines.push("", "## Diagnostics", ...response.diagnostics.map((item) => `- ${item}`));
75
+ }
76
+ if (response.result.violations && response.result.violations.length > 0) {
77
+ lines.push("", "## Direction Violations", `- Count: ${response.result.violations.length}`);
78
+ }
79
+ return `${lines.join("\n")}\n`;
80
+ }
@@ -0,0 +1,2 @@
1
+ import { type ReportResponse } from "./report-shared.js";
2
+ export declare function renderDomainMarkdownReport(response: ReportResponse): string;
@@ -0,0 +1,50 @@
1
+ import { renderActionQueueSection, renderMeasurementQualitySection, renderSuggestedNextEvidenceSection, } from "./report-actionability.js";
2
+ import { formatMetric, renderMetricGuidanceSection } from "./report-shared.js";
3
+ function renderPilotRolloutSection(pilot) {
4
+ if (!pilot) {
5
+ return [];
6
+ }
7
+ const overallReasons = pilot.overallGate.reasons.length > 0 ? pilot.overallGate.reasons.join(", ") : "none";
8
+ const categoryReasons = pilot.categoryGate.reasons.length > 0 ? pilot.categoryGate.reasons.join(", ") : "none";
9
+ return [
10
+ "",
11
+ "## Pilot Rollout",
12
+ `- Category: ${pilot.category}`,
13
+ `- Applied: ${pilot.applied ? "yes" : "no"}`,
14
+ `- Locality Source: ${pilot.localitySource}`,
15
+ `- Baseline ELS: ${pilot.baselineElsValue.toFixed(3)}`,
16
+ `- Persistence Candidate: ${pilot.persistenceCandidateValue.toFixed(3)}`,
17
+ `- Effective ELS: ${pilot.effectiveElsValue.toFixed(3)}`,
18
+ `- Overall Gate: ${pilot.overallGate.rolloutDisposition} (${pilot.overallGate.replacementVerdict})`,
19
+ `- Overall Reasons: ${overallReasons}`,
20
+ `- Category Gate: ${pilot.categoryGate.rolloutDisposition} (${pilot.categoryGate.replacementVerdict})`,
21
+ `- Category Reasons: ${categoryReasons}`,
22
+ ];
23
+ }
24
+ export function renderDomainMarkdownReport(response) {
25
+ const lines = ["# Measurement Report", ""];
26
+ lines.push(`- Domain: ${response.result.domainId}`);
27
+ lines.push(`- Status: ${response.status}`);
28
+ lines.push(`- Confidence: ${response.confidence.toFixed(3)}`);
29
+ lines.push("");
30
+ lines.push(...renderMeasurementQualitySection(response));
31
+ lines.push("## Metrics");
32
+ lines.push(...response.result.metrics.map(formatMetric));
33
+ lines.push(...renderPilotRolloutSection(response.result.pilot));
34
+ lines.push(...renderMetricGuidanceSection(response.result.metrics));
35
+ lines.push(...renderSuggestedNextEvidenceSection(response));
36
+ lines.push(...renderActionQueueSection(response));
37
+ if (response.unknowns.length > 0) {
38
+ lines.push("", "## Unknowns", ...response.unknowns.map((item) => `- ${item}`));
39
+ }
40
+ if (response.diagnostics.length > 0) {
41
+ lines.push("", "## Diagnostics", ...response.diagnostics.map((item) => `- ${item}`));
42
+ }
43
+ if (response.result.leakFindings && response.result.leakFindings.length > 0) {
44
+ lines.push("", "## Boundary Leaks", `- Count: ${response.result.leakFindings.length}`);
45
+ }
46
+ if (response.result.violations && response.result.violations.length > 0) {
47
+ lines.push("", "## Direction Violations", `- Count: ${response.result.violations.length}`);
48
+ }
49
+ return `${lines.join("\n")}\n`;
50
+ }
@@ -0,0 +1,3 @@
1
+ import type { MetricGateDecision, PolicyConfig } from "./contracts.js";
2
+ import { type GateResponse } from "./report-shared.js";
3
+ export declare function evaluateGate(response: GateResponse, policyConfig: PolicyConfig, profileName: string): MetricGateDecision;
@@ -0,0 +1,54 @@
1
+ import { getDomainPolicy } from "./policy.js";
2
+ import { dedupe, proxyOrPartialUnknowns } from "./report-shared.js";
3
+ export function evaluateGate(response, policyConfig, profileName) {
4
+ const policy = getDomainPolicy(policyConfig, profileName, response.result.domainId);
5
+ const failures = [];
6
+ const warnings = [];
7
+ const architectureSummaryMetricIds = new Set(["APSI"]);
8
+ const isArchitecture = response.result.domainId === "architecture_design";
9
+ for (const metric of response.result.metrics) {
10
+ const thresholds = policy.metrics[metric.metricId]?.thresholds;
11
+ if (!thresholds) {
12
+ continue;
13
+ }
14
+ if (isArchitecture && architectureSummaryMetricIds.has(metric.metricId)) {
15
+ if (thresholds.fail !== undefined && metric.value < thresholds.fail) {
16
+ warnings.push(`${metric.metricId}=${metric.value.toFixed(3)} < summary_fail(${thresholds.fail})`);
17
+ continue;
18
+ }
19
+ if (thresholds.warn !== undefined && metric.value < thresholds.warn) {
20
+ warnings.push(`${metric.metricId}=${metric.value.toFixed(3)} < summary_warn(${thresholds.warn})`);
21
+ }
22
+ continue;
23
+ }
24
+ if (thresholds.fail !== undefined && metric.value < thresholds.fail) {
25
+ failures.push(`${metric.metricId}=${metric.value.toFixed(3)} < fail(${thresholds.fail})`);
26
+ continue;
27
+ }
28
+ if (thresholds.warn !== undefined && metric.value < thresholds.warn) {
29
+ warnings.push(`${metric.metricId}=${metric.value.toFixed(3)} < warn(${thresholds.warn})`);
30
+ }
31
+ }
32
+ if (isArchitecture) {
33
+ const partialMetrics = response.result.metrics
34
+ .filter((metric) => proxyOrPartialUnknowns(metric).length > 0)
35
+ .map((metric) => metric.metricId);
36
+ if (partialMetrics.length > 0) {
37
+ warnings.push(`architecture metrics include proxy/partial decision material: ${dedupe(partialMetrics).join(", ")}`);
38
+ }
39
+ }
40
+ const measurementQuality = response.meta?.measurementQuality;
41
+ if (measurementQuality) {
42
+ if (measurementQuality.unknownsCount > 0) {
43
+ warnings.push(`measurement quality includes ${measurementQuality.unknownsCount} unknown signal(s)`);
44
+ }
45
+ if (measurementQuality.proxyMetrics.length > 0) {
46
+ warnings.push(`measurement quality depends on proxy material in ${measurementQuality.proxyMetrics.join(", ")}`);
47
+ }
48
+ }
49
+ return {
50
+ status: failures.length > 0 ? "error" : warnings.length > 0 ? "warning" : "ok",
51
+ failures,
52
+ warnings,
53
+ };
54
+ }
@@ -0,0 +1,2 @@
1
+ import type { MetricScore } from "./contracts.js";
2
+ export declare function formatMetric(metric: MetricScore): string;
@@ -0,0 +1,6 @@
1
+ export function formatMetric(metric) {
2
+ const components = Object.entries(metric.components)
3
+ .map(([key, value]) => `${key}=${value.toFixed(3)}`)
4
+ .join(", ");
5
+ return `- ${metric.metricId}: ${metric.value.toFixed(3)} [confidence=${metric.confidence.toFixed(3)}] (${components})`;
6
+ }
@@ -0,0 +1,2 @@
1
+ import type { MetricScore } from "./contracts.js";
2
+ export declare function renderMetricGuidanceSection(metrics: MetricScore[]): string[];
@@ -0,0 +1,98 @@
1
+ const METRIC_GUIDANCE = {
2
+ DRF: {
3
+ ideal: "Major use cases, business rules, and invariants should be traceable to model elements.",
4
+ watch: "Low values often indicate weak modeling, ambiguous documents, or review disagreement.",
5
+ action: "List the core use cases and rules, then map them explicitly to model elements.",
6
+ },
7
+ ULI: {
8
+ ideal: "Canonical terms should stay stable inside each context and remain traceable across docs and code.",
9
+ watch: "Low values often indicate alias sprawl, term collision, or weak traceability.",
10
+ action: "Organize the glossary per context and align Published Language and DTO naming.",
11
+ },
12
+ BFS: {
13
+ ideal: "Boundaries should reflect both reasons to keep elements together and reasons to separate them.",
14
+ watch: "Low values often mean the split follows feature lists rather than ownership, security, or invariants.",
15
+ action: "Review attraction and separation signals and document the boundary rationale.",
16
+ },
17
+ AFS: {
18
+ ideal: "Strong invariants should close within a single aggregate and avoid multi-aggregate atomic writes.",
19
+ watch: "Low values often mean synchronous consistency responsibilities are spread across boundaries.",
20
+ action: "List strong invariants and revisit which aggregate owns each synchronous responsibility.",
21
+ },
22
+ MCCS: {
23
+ ideal: "Cross-context communication should go through public contracts without leaking internal types.",
24
+ watch: "Low values often indicate boundary leaks or direct use of internal models instead of contract DTOs.",
25
+ action: "Detect cross-context imports in CI and move integrations behind ACLs or contract DTOs.",
26
+ },
27
+ ELS: {
28
+ ideal: "Feature-level changes should stay inside a small number of contexts and co-change should remain local.",
29
+ watch: "Low values often indicate hidden dependencies or a mismatch between design boundaries and evolution units.",
30
+ action: "Inspect the highest co-change context pairs and consider contract separation or reintegration.",
31
+ },
32
+ QSF: {
33
+ ideal: "Important scenarios should have explicit priority, target, and worst-acceptable values backed by observations.",
34
+ watch: "Low values often mean the discussion is pattern-first instead of scenario-first.",
35
+ action: "Narrow to the top scenarios and normalize benchmark or incident data into scenario observations.",
36
+ },
37
+ DDS: {
38
+ ideal: "Dependency direction should align with the constraints model and forbidden edges should be observable.",
39
+ watch: "Low values often indicate layer bypasses or reversed dependency direction.",
40
+ action: "Strengthen static rules around the layers with the most direction violations.",
41
+ },
42
+ BPS: {
43
+ ideal: "Internal boundaries should stay free from framework contamination and shared internal components.",
44
+ watch: "Low values often indicate adapter leaks or growing internal sharing across boundaries.",
45
+ action: "Separate framework-heavy code and reduce shared internal components.",
46
+ },
47
+ IPS: {
48
+ ideal: "Public contracts should stay stable and keep breaking-change risk low.",
49
+ watch: "Low values often indicate risky exports, internal imports, or schema-language issues.",
50
+ action: "Make contract files explicit and move public APIs toward interfaces, types, and DTOs.",
51
+ },
52
+ TIS: {
53
+ ideal: "Failure isolation and runtime containment should be explainable in both topology and runtime evidence.",
54
+ watch: "Low values often indicate shared resources or sync dependencies that cross boundaries.",
55
+ action: "Add explicit isolation boundaries to the topology model and reduce shared dependencies.",
56
+ },
57
+ OAS: {
58
+ ideal: "Latency, error, saturation, and pattern-runtime signals should be observable by traffic band.",
59
+ watch: "Low values often mean runtime behavior does not deliver the promise of the selected pattern.",
60
+ action: "Normalize telemetry by traffic band and add the minimum pattern-runtime observation set.",
61
+ },
62
+ AELS: {
63
+ ideal: "Co-change should stay localized at the architecture-boundary level and propagation cost should remain low.",
64
+ watch: "Low values often mean the boundary map does not match the real evolution unit.",
65
+ action: "Define the boundary map explicitly and review the highest cross-boundary co-change pairs.",
66
+ },
67
+ EES: {
68
+ ideal: "Delivery and locality should both improve so that speed and change locality coexist.",
69
+ watch: "Low values often indicate either missing delivery evidence or wide coordinated changes hidden behind speed.",
70
+ action: "Read lead time and co-change together to decide whether delivery or locality is the real bottleneck.",
71
+ },
72
+ CTI: {
73
+ ideal: "Deployable, pipeline, schema, and on-call tax should stay proportional to the gain being claimed.",
74
+ watch: "High values often mean the design is overpaying distributed-systems or async complexity tax.",
75
+ action: "Start by measuring deployables per team and on-call surface, then reduce the most expensive tax sources.",
76
+ },
77
+ APSI: {
78
+ ideal: "Use APSI only as a summary after reading the supporting metrics.",
79
+ watch: "Using it alone makes it easy to misread proxy values, neutral fallbacks, and partial evidence.",
80
+ action: "Check QSF, PCS proxy, OAS, EES, and CTI before using APSI in a decision.",
81
+ },
82
+ };
83
+ function formatMetricGuidance(metric) {
84
+ const guidance = METRIC_GUIDANCE[metric.metricId];
85
+ if (!guidance) {
86
+ return null;
87
+ }
88
+ return `- ${metric.metricId}: ideal=${guidance.ideal} watch=${guidance.watch} next=${guidance.action}`;
89
+ }
90
+ export function renderMetricGuidanceSection(metrics) {
91
+ const guidanceLines = metrics
92
+ .map((metric) => formatMetricGuidance(metric))
93
+ .filter((line) => Boolean(line));
94
+ if (guidanceLines.length === 0) {
95
+ return [];
96
+ }
97
+ return ["", "## Metric Guidance", ...guidanceLines];
98
+ }
@@ -0,0 +1,17 @@
1
+ import type { ArchitectureScenarioQualitySummary, CommandResponse, DomainDesignPilotAnalysis, LocalityWatchlistItem, MetricScore } from "./contracts.js";
2
+ export type ReportResponse = CommandResponse<{
3
+ domainId: string;
4
+ metrics: MetricScore[];
5
+ leakFindings?: unknown[];
6
+ violations?: unknown[];
7
+ pilot?: DomainDesignPilotAnalysis;
8
+ scenarioQuality?: ArchitectureScenarioQualitySummary;
9
+ localityWatchlist?: LocalityWatchlistItem[];
10
+ }>;
11
+ export type GateResponse = CommandResponse<{
12
+ domainId: string;
13
+ metrics: MetricScore[];
14
+ }>;
15
+ export declare function isArchitectureDomain(response: ReportResponse | GateResponse): boolean;
16
+ export declare function dedupe(values: string[]): string[];
17
+ export declare function proxyOrPartialUnknowns(metric: MetricScore): string[];
@@ -0,0 +1,9 @@
1
+ export function isArchitectureDomain(response) {
2
+ return response.result.domainId === "architecture_design";
3
+ }
4
+ export function dedupe(values) {
5
+ return Array.from(new Set(values));
6
+ }
7
+ export function proxyOrPartialUnknowns(metric) {
8
+ return metric.unknowns.filter((entry) => /(proxy|partial|bridge|neutral|unobserved|approx)/iu.test(entry));
9
+ }
@@ -0,0 +1,4 @@
1
+ export { formatMetric } from "./report-shared-format.js";
2
+ export { renderMetricGuidanceSection } from "./report-shared-guidance.js";
3
+ export type { GateResponse, ReportResponse } from "./report-shared-predicates.js";
4
+ export { dedupe, isArchitectureDomain, proxyOrPartialUnknowns } from "./report-shared-predicates.js";
@@ -0,0 +1,3 @@
1
+ export { formatMetric } from "./report-shared-format.js";
2
+ export { renderMetricGuidanceSection } from "./report-shared-guidance.js";
3
+ export { dedupe, isArchitectureDomain, proxyOrPartialUnknowns } from "./report-shared-predicates.js";
@@ -0,0 +1,3 @@
1
+ export { evaluateGate } from "./report-gate.js";
2
+ import { type ReportResponse } from "./report-shared.js";
3
+ export declare function renderMarkdownReport(response: ReportResponse, profileName?: string): string;
@@ -0,0 +1,10 @@
1
+ import { renderArchitectureMarkdownReport } from "./report-architecture.js";
2
+ import { renderDomainMarkdownReport } from "./report-domain.js";
3
+ export { evaluateGate } from "./report-gate.js";
4
+ import { isArchitectureDomain } from "./report-shared.js";
5
+ export function renderMarkdownReport(response, profileName) {
6
+ if (isArchitectureDomain(response)) {
7
+ return renderArchitectureMarkdownReport(response, profileName);
8
+ }
9
+ return renderDomainMarkdownReport(response);
10
+ }
@@ -0,0 +1,8 @@
1
+ import { type CommandResponse, type CommandStatus, type Evidence, type ProvenanceRef } from "./contracts.js";
2
+ export declare function clampConfidence(value: number): number;
3
+ export declare function createEvidenceId(seed: string): string;
4
+ export declare function createResponse<T>(result: T, options?: Partial<Omit<CommandResponse<T>, "result" | "version">>): CommandResponse<T>;
5
+ export declare function mergeStatus(...statuses: CommandStatus[]): CommandStatus;
6
+ export declare function confidenceFromSignals(signals: number[]): number;
7
+ export declare function toEvidence(statement: string, source: Record<string, unknown>, linkedEntities?: string[], confidence?: number): Evidence;
8
+ export declare function toProvenance(path: string, note?: string, line?: number): ProvenanceRef;
@@ -0,0 +1,67 @@
1
+ import { createHash } from "node:crypto";
2
+ import { OUTPUT_VERSION, } from "./contracts.js";
3
+ import { maybeBuildMeasurementQualitySummary } from "./measurement-metadata.js";
4
+ export function clampConfidence(value) {
5
+ return Math.max(0, Math.min(1, Number.isFinite(value) ? value : 0));
6
+ }
7
+ export function createEvidenceId(seed) {
8
+ return `EV-${createHash("sha256").update(seed).digest("hex").slice(0, 8)}`;
9
+ }
10
+ export function createResponse(result, options) {
11
+ const confidence = clampConfidence(options?.confidence ?? 1);
12
+ const unknowns = options?.unknowns ?? [];
13
+ const inferredMeasurementQuality = maybeBuildMeasurementQualitySummary(result, unknowns, confidence);
14
+ const meta = options?.meta || inferredMeasurementQuality
15
+ ? {
16
+ ...(options?.meta ?? {}),
17
+ ...(!options?.meta?.measurementQuality && inferredMeasurementQuality
18
+ ? { measurementQuality: inferredMeasurementQuality }
19
+ : {}),
20
+ }
21
+ : undefined;
22
+ return {
23
+ status: options?.status ?? "ok",
24
+ result,
25
+ evidence: options?.evidence ?? [],
26
+ confidence,
27
+ unknowns,
28
+ diagnostics: options?.diagnostics ?? [],
29
+ progress: options?.progress ?? [],
30
+ provenance: options?.provenance ?? [],
31
+ ...(meta ? { meta } : {}),
32
+ version: OUTPUT_VERSION,
33
+ };
34
+ }
35
+ export function mergeStatus(...statuses) {
36
+ if (statuses.includes("error")) {
37
+ return "error";
38
+ }
39
+ if (statuses.includes("warning")) {
40
+ return "warning";
41
+ }
42
+ return "ok";
43
+ }
44
+ export function confidenceFromSignals(signals) {
45
+ if (signals.length === 0) {
46
+ return 0;
47
+ }
48
+ const total = signals.reduce((sum, current) => sum + clampConfidence(current), 0);
49
+ return clampConfidence(total / signals.length);
50
+ }
51
+ export function toEvidence(statement, source, linkedEntities, confidence = 1) {
52
+ return {
53
+ evidenceId: createEvidenceId(`${statement}:${JSON.stringify(source)}`),
54
+ type: "derived",
55
+ statement,
56
+ confidence: clampConfidence(confidence),
57
+ ...(linkedEntities ? { linkedEntities } : {}),
58
+ source,
59
+ };
60
+ }
61
+ export function toProvenance(path, note, line) {
62
+ return {
63
+ path,
64
+ ...(note ? { note } : {}),
65
+ ...(line !== undefined ? { line } : {}),
66
+ };
67
+ }
@@ -0,0 +1,2 @@
1
+ import type { CommandResponse, ReviewItem } from "./contracts.js";
2
+ export declare function listReviewItems(response: CommandResponse<unknown>): ReviewItem[];