3131from osa_tool .translation .dir_translator import DirectoryTranslator
3232from osa_tool .translation .readme_translator import ReadmeTranslator
3333from osa_tool .utils .arguments_parser import build_parser_from_yaml
34- from osa_tool .utils .logger import setup_logging , logger
34+ from osa_tool .utils .logger import logger , setup_logging
3535from osa_tool .utils .prompts_builder import PromptLoader
36- from osa_tool .utils .utils import delete_repository , parse_folder_name , rich_section , osa_project_root
36+ from osa_tool .utils .utils import (
37+ delete_repository ,
38+ osa_project_root ,
39+ parse_folder_name ,
40+ rich_section ,
41+ )
3742from osa_tool .validation .doc_validator import DocValidator
3843from osa_tool .validation .paper_validator import PaperValidator
3944from osa_tool .validation .report_generator import (
@@ -78,13 +83,14 @@ def main():
7883 logger .info (f"Output path changed to { output_path } " )
7984
8085 # Load configurations and update
81- config = load_configuration (
86+ config_loader = load_configuration (
8287 repo_url = args .repository ,
8388 api = args .api ,
8489 base_url = args .base_url ,
8590 model_name = args .model ,
8691 temperature = args .temperature ,
8792 max_tokens = args .max_tokens ,
93+ context_window = args .context_window ,
8894 top_p = args .top_p ,
8995 )
9096
@@ -107,8 +113,8 @@ def main():
107113 git_agent .clone_repository ()
108114
109115 # Initialize ModeScheduler
110- sourcerank = SourceRank (config )
111- scheduler = ModeScheduler (config , sourcerank , prompts , args , workflow_manager , git_agent .metadata )
116+ sourcerank = SourceRank (config_loader )
117+ scheduler = ModeScheduler (config_loader , sourcerank , prompts , args , workflow_manager , git_agent .metadata )
112118 plan = scheduler .plan
113119
114120 if create_fork :
@@ -118,25 +124,25 @@ def main():
118124 # NOTE: Must run first - switches GitHub branches
119125 if plan .get ("report" ):
120126 rich_section ("Report generation" )
121- analytics = ReportGenerator (config , sourcerank , prompts , git_agent .metadata )
127+ analytics = ReportGenerator (config_loader , sourcerank , prompts , git_agent .metadata )
122128 analytics .build_pdf ()
123129 if create_fork :
124130 git_agent .upload_report (analytics .filename , analytics .output_path )
125131
126132 # NOTE: Must run first - switches GitHub branches
127133 if plan .get ("validate_doc" ):
128134 rich_section ("Document validation" )
129- content = DocValidator (config , prompts ).validate (plan .get ("attachment" ))
130- va_re_gen = ValidationReportGenerator (config , git_agent .metadata , sourcerank )
135+ content = DocValidator (config_loader , prompts ).validate (plan .get ("attachment" ))
136+ va_re_gen = ValidationReportGenerator (config_loader , git_agent .metadata , sourcerank )
131137 va_re_gen .build_pdf ("Document" , content )
132138 if create_fork :
133139 git_agent .upload_report (va_re_gen .filename , va_re_gen .output_path )
134140
135141 # NOTE: Must run first - switches GitHub branches
136142 if plan .get ("validate_paper" ):
137143 rich_section ("Paper validation" )
138- content = PaperValidator (config , prompts ).validate (plan .get ("attachment" ))
139- va_re_gen = ValidationReportGenerator (config , git_agent .metadata , sourcerank )
144+ content = PaperValidator (config_loader , prompts ).validate (plan .get ("attachment" ))
145+ va_re_gen = ValidationReportGenerator (config_loader , git_agent .metadata , sourcerank )
140146 va_re_gen .build_pdf ("Paper" , content )
141147 if create_fork :
142148 git_agent .upload_report (va_re_gen .filename , va_re_gen .output_path )
@@ -149,13 +155,13 @@ def main():
149155 # Auto translating names of directories
150156 if plan .get ("translate_dirs" ):
151157 rich_section ("Directory and file translation" )
152- translation = DirectoryTranslator (config )
158+ translation = DirectoryTranslator (config_loader )
153159 translation .rename_directories_and_files ()
154160
155161 # Docstring generation
156162 if plan .get ("docstring" ):
157163 rich_section ("Docstrings generation" )
158- generate_docstrings (config , loop )
164+ generate_docstrings (config_loader , loop )
159165
160166 # License compiling
161167 if license_type := plan .get ("ensure_license" ):
@@ -165,7 +171,7 @@ def main():
165171 # Generate community documentation
166172 if plan .get ("community_docs" ):
167173 rich_section ("Community docs generation" )
168- generate_documentation (config , git_agent .metadata )
174+ generate_documentation (config_loader , git_agent .metadata )
169175
170176 # Requirements generation
171177 if plan .get ("requirements" ):
@@ -176,21 +182,21 @@ def main():
176182 if plan .get ("readme" ):
177183 rich_section ("README generation" )
178184 readme_agent = ReadmeAgent (
179- config , prompts , plan .get ("attachment" ), plan .get ("refine_readme" ), git_agent .metadata
185+ config_loader , prompts , plan .get ("attachment" ), plan .get ("refine_readme" ), git_agent .metadata
180186 )
181187 readme_agent .generate_readme ()
182188
183189 # Readme translation
184190 translate_readme = plan .get ("translate_readme" )
185191 if translate_readme :
186192 rich_section ("README translation" )
187- ReadmeTranslator (config , prompts , git_agent .metadata , translate_readme ).translate_readme ()
193+ ReadmeTranslator (config_loader , prompts , git_agent .metadata , translate_readme ).translate_readme ()
188194
189195 # About section generation
190196 about_gen = None
191197 if plan .get ("about" ):
192198 rich_section ("About Section generation" )
193- about_gen = AboutGenerator (config , prompts , git_agent )
199+ about_gen = AboutGenerator (config_loader , prompts , git_agent )
194200 about_gen .generate_about_content ()
195201 if create_fork :
196202 git_agent .update_about_section (about_gen .get_about_content ())
@@ -200,8 +206,8 @@ def main():
200206 # Generate platform-specified CI/CD files
201207 if plan .get ("generate_workflows" ):
202208 rich_section ("Workflows generation" )
203- workflow_manager .update_workflow_config (config , plan )
204- workflow_manager .generate_workflow (config )
209+ workflow_manager .update_workflow_config (config_loader , plan )
210+ workflow_manager .generate_workflow (config_loader )
205211
206212 # Organize repository by adding 'tests' and 'examples' directories if they aren't exist
207213 if plan .get ("organize" ):
@@ -349,6 +355,7 @@ def load_configuration(
349355 model_name : str ,
350356 temperature : Optional [str ] = None ,
351357 max_tokens : Optional [str ] = None ,
358+ context_window : Optional [str ] = None ,
352359 top_p : Optional [str ] = None ,
353360) -> ConfigLoader :
354361 """
@@ -360,7 +367,8 @@ def load_configuration(
360367 base_url: URL of the provider compatible with API OpenAI
361368 model_name: Specific LLM model to use.
362369 temperature: Sampling temperature for the model.
363- max_tokens: Maximum number of tokens to generate.
370+ max_tokens: Maximum number of output tokens to generate.
371+ context_window: Total number of model context (Input + Output).
364372 top_p: Nucleus sampling value.
365373
366374 Returns:
@@ -380,6 +388,7 @@ def load_configuration(
380388 "model" : model_name ,
381389 "temperature" : temperature ,
382390 "max_tokens" : max_tokens ,
391+ "context_window" : context_window ,
383392 "top_p" : top_p ,
384393 }
385394 )
0 commit comments