ara-cli 0.1.11.1__tar.gz → 0.1.13.2__tar.gz

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 (257) hide show
  1. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/PKG-INFO +3 -1
  2. ara_cli-0.1.13.2/ara_cli/__init__.py +65 -0
  3. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/__main__.py +62 -27
  4. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_command_action.py +65 -33
  5. ara_cli-0.1.13.2/ara_cli/ara_config.py +337 -0
  6. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/common.py +2 -2
  7. ara_cli-0.1.13.2/ara_cli/ara_subcommands/config.py +221 -0
  8. ara_cli-0.1.13.2/ara_cli/ara_subcommands/convert.py +43 -0
  9. ara_cli-0.1.13.2/ara_cli/ara_subcommands/fetch.py +41 -0
  10. ara_cli-0.1.13.2/ara_cli/ara_subcommands/fetch_agents.py +22 -0
  11. ara_cli-0.1.13.2/ara_cli/ara_subcommands/fetch_scripts.py +19 -0
  12. ara_cli-0.1.13.2/ara_cli/ara_subcommands/fetch_templates.py +19 -0
  13. ara_cli-0.1.13.2/ara_cli/ara_subcommands/list.py +109 -0
  14. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_autofix.py +115 -62
  15. ara_cli-0.1.13.2/ara_cli/artefact_converter.py +256 -0
  16. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/chat.py +139 -153
  17. ara_cli-0.1.13.2/ara_cli/chat_agent/agent_process_manager.py +155 -0
  18. ara_cli-0.1.13.2/ara_cli/chat_script_runner/script_finder.py +41 -0
  19. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/chat_script_runner/script_lister.py +11 -2
  20. ara_cli-0.1.13.2/ara_cli/chat_web_search/web_search.py +263 -0
  21. ara_cli-0.1.13.2/ara_cli/commands/agent_run_command.py +98 -0
  22. ara_cli-0.1.13.2/ara_cli/commands/fetch_agents_command.py +106 -0
  23. ara_cli-0.1.13.2/ara_cli/commands/fetch_templates_command.py +39 -0
  24. ara_cli-0.1.13.2/ara_cli/commands/fetch_templates_commands.py +39 -0
  25. ara_cli-0.1.13.2/ara_cli/commands/list_agents_command.py +39 -0
  26. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/completers.py +71 -35
  27. ara_cli-0.1.13.2/ara_cli/constants.py +2 -0
  28. ara_cli-0.1.13.2/ara_cli/llm_utils.py +58 -0
  29. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/prompt_chat.py +20 -4
  30. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/prompt_extractor.py +47 -32
  31. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/template_loader.py +2 -1
  32. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/template_manager.py +52 -21
  33. ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/add_scenarios_for_new_behaviour.feature_creation_agent.commands.md +1 -0
  34. ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/align_feature_with_implementation_changes.interview_agent.commands.md +1 -0
  35. ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/analyze_codebase_and_plan_tasks.interview_agent.commands.md +1 -0
  36. ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/choose_best_parent_artefact.interview_agent.commands.md +1 -0
  37. ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/create_tasks_from_artefact_content.interview_agent.commands.md +1 -0
  38. ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/create_tests_for_uncovered_modules.test_generation_agent.commands.md +1 -0
  39. ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/derive_features_from_video_description.feature_creation_agent.commands.md +1 -0
  40. ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/describe_agent_capabilities.agent.commands.md +1 -0
  41. ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/execute_scoped_todos_in_task.interview_agent.commands.md +1 -0
  42. ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/explain_single_file_purpose.interview_agent.commands.md +1 -0
  43. ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/extract_file_information_bullets.interview_agent.commands.md +1 -0
  44. ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/fix_failing_behave_step_definitions.interview_agent.commands.md +1 -0
  45. ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/fix_failing_pytest_tests.interview_agent.commands.md +1 -0
  46. ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/general_instruction_policy.commands.md +47 -0
  47. ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/generate_and_fix_pytest_tests.test_generation_agent.commands.md +1 -0
  48. ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/suggest_next_story_child_tasks.interview_agent.commands.md +1 -0
  49. ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/summarize_or_transcribe_media.interview_agent.commands.md +1 -0
  50. ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/update_feature_to_match_implementation.feature_creation_agent.commands.md +1 -0
  51. ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/update_user_story_with_requirements.interview_agent.commands.md +1 -0
  52. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/version.py +1 -1
  53. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli.egg-info/PKG-INFO +3 -1
  54. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli.egg-info/SOURCES.txt +43 -4
  55. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli.egg-info/requires.txt +2 -0
  56. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/docker/base/requirements.txt +2 -1
  57. ara_cli-0.1.13.2/tests/__init__.py +0 -0
  58. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_ara_config.py +177 -90
  59. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_artefact_autofix.py +170 -97
  60. ara_cli-0.1.13.2/tests/test_artefact_autofix_integration.py +495 -0
  61. ara_cli-0.1.13.2/tests/test_artefact_converter.py +357 -0
  62. ara_cli-0.1.13.2/tests/test_artefact_extraction.py +564 -0
  63. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_chat.py +2 -16
  64. ara_cli-0.1.13.2/tests/test_chat_givens_images.py +603 -0
  65. ara_cli-0.1.13.2/tests/test_chat_script_runner.py +429 -0
  66. ara_cli-0.1.13.2/tests/test_llm_utils.py +164 -0
  67. ara_cli-0.1.13.2/tests/test_prompt_chat.py +343 -0
  68. ara_cli-0.1.13.2/tests/test_prompt_extractor.py +683 -0
  69. ara_cli-0.1.13.2/tests/test_web_search.py +467 -0
  70. ara_cli-0.1.11.1/ara_cli/__init__.py +0 -19
  71. ara_cli-0.1.11.1/ara_cli/ara_config.py +0 -281
  72. ara_cli-0.1.11.1/ara_cli/ara_subcommands/fetch_scripts.py +0 -8
  73. ara_cli-0.1.11.1/ara_cli/ara_subcommands/fetch_templates.py +0 -14
  74. ara_cli-0.1.11.1/ara_cli/ara_subcommands/list.py +0 -65
  75. ara_cli-0.1.11.1/ara_cli/chat_agent/agent_communicator.py +0 -62
  76. ara_cli-0.1.11.1/ara_cli/chat_agent/agent_process_manager.py +0 -211
  77. ara_cli-0.1.11.1/ara_cli/chat_agent/agent_status_manager.py +0 -73
  78. ara_cli-0.1.11.1/ara_cli/chat_agent/agent_workspace_manager.py +0 -76
  79. ara_cli-0.1.11.1/ara_cli/chat_script_runner/script_finder.py +0 -24
  80. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/MANIFEST.in +0 -0
  81. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/README.md +0 -0
  82. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/__init__.py +0 -0
  83. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/autofix.py +0 -0
  84. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/chat.py +0 -0
  85. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/classifier_directory.py +0 -0
  86. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/create.py +0 -0
  87. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/delete.py +0 -0
  88. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/extract.py +0 -0
  89. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/list_tags.py +0 -0
  90. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/load.py +0 -0
  91. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/prompt.py +0 -0
  92. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/read.py +0 -0
  93. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/read_status.py +0 -0
  94. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/read_user.py +0 -0
  95. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/reconnect.py +0 -0
  96. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/rename.py +0 -0
  97. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/scan.py +0 -0
  98. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/set_status.py +0 -0
  99. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/set_user.py +0 -0
  100. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/template.py +0 -0
  101. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_creator.py +0 -0
  102. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_deleter.py +0 -0
  103. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_fuzzy_search.py +0 -0
  104. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_link_updater.py +0 -0
  105. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_lister.py +0 -0
  106. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/__init__.py +0 -0
  107. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/artefact_data_retrieval.py +0 -0
  108. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/artefact_load.py +0 -0
  109. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/artefact_mapping.py +0 -0
  110. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/artefact_model.py +0 -0
  111. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/artefact_templates.py +0 -0
  112. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/businessgoal_artefact_model.py +0 -0
  113. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/capability_artefact_model.py +0 -0
  114. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/epic_artefact_model.py +0 -0
  115. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/example_artefact_model.py +0 -0
  116. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/feature_artefact_model.py +0 -0
  117. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/issue_artefact_model.py +0 -0
  118. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/keyfeature_artefact_model.py +0 -0
  119. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/serialize_helper.py +0 -0
  120. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/task_artefact_model.py +0 -0
  121. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/userstory_artefact_model.py +0 -0
  122. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/vision_artefact_model.py +0 -0
  123. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_reader.py +0 -0
  124. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_renamer.py +0 -0
  125. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_scan.py +0 -0
  126. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/chat_agent/__init__.py +0 -0
  127. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/chat_script_runner/__init__.py +0 -0
  128. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/chat_script_runner/script_completer.py +0 -0
  129. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/chat_script_runner/script_runner.py +0 -0
  130. {ara_cli-0.1.11.1/ara_cli/commands → ara_cli-0.1.13.2/ara_cli/chat_web_search}/__init__.py +0 -0
  131. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/classifier.py +0 -0
  132. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/codefusionretriever.py +0 -0
  133. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/codehierachieretriever.py +0 -0
  134. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/commandline_completer.py +0 -0
  135. {ara_cli-0.1.11.1/ara_cli/file_loaders → ara_cli-0.1.13.2/ara_cli/commands}/__init__.py +0 -0
  136. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/commands/command.py +0 -0
  137. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/commands/extract_command.py +0 -0
  138. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/commands/fetch_scripts_command.py +0 -0
  139. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/commands/load_command.py +0 -0
  140. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/commands/load_image_command.py +0 -0
  141. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/commands/read_command.py +0 -0
  142. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/directory_navigator.py +0 -0
  143. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/error_handler.py +0 -0
  144. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/file_classifier.py +0 -0
  145. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/file_lister.py +0 -0
  146. {ara_cli-0.1.11.1/tests → ara_cli-0.1.13.2/ara_cli/file_loaders}/__init__.py +0 -0
  147. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/file_loaders/binary_file_loader.py +0 -0
  148. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/file_loaders/document_file_loader.py +0 -0
  149. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/file_loaders/document_reader.py +0 -0
  150. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/file_loaders/document_readers.py +0 -0
  151. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/file_loaders/file_loader.py +0 -0
  152. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/file_loaders/file_loaders.py +0 -0
  153. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/file_loaders/image_processor.py +0 -0
  154. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/file_loaders/markdown_reader.py +0 -0
  155. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/file_loaders/text_file_loader.py +0 -0
  156. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/filename_validator.py +0 -0
  157. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/global_file_lister.py +0 -0
  158. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/list_filter.py +0 -0
  159. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/output_suppressor.py +0 -0
  160. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/prompt_handler.py +0 -0
  161. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/prompt_rag.py +0 -0
  162. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/run_file_lister.py +0 -0
  163. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/tag_extractor.py +0 -0
  164. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/agile.artefacts +0 -0
  165. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/global-scripts/hello_global.py +0 -0
  166. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/blueprints/empty.blueprint.md +0 -0
  167. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/blueprints/task_todo_list_C4_architecture_analysis.blueprint.md +0 -0
  168. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/commands/architecture_C4_analysis.commands.md +0 -0
  169. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/commands/architecture_radon_cc_score.commands.md +0 -0
  170. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/commands/architecture_radon_halstead_v.commands.md +0 -0
  171. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/commands/architecture_radon_maintainability_score.commands.md +0 -0
  172. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/commands/empty.commands.md +0 -0
  173. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/commands/extract_general.commands.md +0 -0
  174. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/commands/extract_markdown.commands.md +0 -0
  175. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/commands/extract_python.commands.md +0 -0
  176. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/commands/feature_add_or_modifiy_specified_behavior.commands.md +0 -0
  177. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/commands/feature_generate_initial_specified_bevahior.commands.md +0 -0
  178. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/commands/prompt_template_tech_stack_transformer.commands.md +0 -0
  179. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/commands/python_bug_fixing_code.commands.md +0 -0
  180. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/commands/python_generate_code.commands.md +0 -0
  181. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/commands/python_refactoring_code.commands.md +0 -0
  182. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/commands/python_step_definitions_generation_and_fixing.commands.md +0 -0
  183. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/commands/python_unittest_generation_and_fixing.commands.md +0 -0
  184. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/intentions/classify_task.intention.md +0 -0
  185. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/intentions/empty.intention.md +0 -0
  186. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/intentions/error_fixing.intention.md +0 -0
  187. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/intentions/feature_fix_steps_for_scenario.intention.md +0 -0
  188. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/intentions/feature_formulation.intention.md +0 -0
  189. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/intentions/feature_reverse_formulation_from_code.intention.md +0 -0
  190. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/intentions/feature_scenario_implementation.intention.md +0 -0
  191. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/intentions/feature_scenario_implementation_update.intention.md +0 -0
  192. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/intentions/feature_scenario_outline_extension.intention.md +0 -0
  193. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/intentions/feature_update_formulation.intention.md +0 -0
  194. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/intentions/fibonacci_example_implementation.intention.md +0 -0
  195. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/intentions/js_implementation_from_task_description.intention.md +0 -0
  196. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/intentions/js_steps_implementation.intention.md +0 -0
  197. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/intentions/python_cli_implementation_with_test.intention.md +0 -0
  198. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/intentions/python_code_understanding.intention.md +0 -0
  199. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/intentions/task_implementation.intention.md +0 -0
  200. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/intentions/task_prompt_control_by_status.intention.md +0 -0
  201. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/intentions/task_stepwise_implementation_by_number.intention.md +0 -0
  202. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/intentions/task_stepwise_implementation_by_status.intention.md +0 -0
  203. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/rules/architecture_analyst.rules.md +0 -0
  204. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/rules/code_analyst.rules.md +0 -0
  205. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/rules/empty.rules.md +0 -0
  206. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/rules/error_analyst.rules.md +0 -0
  207. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/rules/gherkin_expert.rules.md +0 -0
  208. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/rules/js_expert_developer.rules.md +0 -0
  209. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/rules/product_owner.rules.md +0 -0
  210. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/rules/python_behave.rules.md +0 -0
  211. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/rules/python_developer.rules.md +0 -0
  212. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/specification_breakdown_files/template.concept.exploration.md +0 -0
  213. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/specification_breakdown_files/template.concept.md +0 -0
  214. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/specification_breakdown_files/template.customer.exploration.md +0 -0
  215. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/specification_breakdown_files/template.customer.md +0 -0
  216. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/specification_breakdown_files/template.persona.exploration.md +0 -0
  217. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/specification_breakdown_files/template.persona.md +0 -0
  218. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/specification_breakdown_files/template.step.exploration.md +0 -0
  219. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/specification_breakdown_files/template.step.md +0 -0
  220. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/specification_breakdown_files/template.technology.exploration.md +0 -0
  221. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/specification_breakdown_files/template.technology.md +0 -0
  222. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/template.businessgoal.prompt_log.md +0 -0
  223. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/template.capability.prompt_log.md +0 -0
  224. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/template.epic.prompt_log.md +0 -0
  225. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/template.example.prompt_log.md +0 -0
  226. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/template.feature.prompt_log.md +0 -0
  227. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/template.issue.prompt_log.md +0 -0
  228. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/template.keyfeature.prompt_log.md +0 -0
  229. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/template.steps.prompt_log.md +0 -0
  230. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/template.task.prompt_log.md +0 -0
  231. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/template.userstory.prompt_log.md +0 -0
  232. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/template.vision.prompt_log.md +0 -0
  233. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/update_config_prompt.py +0 -0
  234. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli.egg-info/dependency_links.txt +0 -0
  235. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli.egg-info/entry_points.txt +0 -0
  236. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli.egg-info/top_level.txt +0 -0
  237. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/setup.cfg +0 -0
  238. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/setup.py +0 -0
  239. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_ara_command_action.py +0 -0
  240. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_artefact_fuzzy_search.py +0 -0
  241. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_artefact_link_updater.py +0 -0
  242. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_artefact_lister.py +0 -0
  243. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_artefact_reader.py +0 -0
  244. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_artefact_renamer.py +0 -0
  245. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_artefact_scan.py +0 -0
  246. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_classifier.py +0 -0
  247. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_directory_navigator.py +0 -0
  248. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_file_classifier.py +0 -0
  249. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_file_creator.py +0 -0
  250. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_file_lister.py +0 -0
  251. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_global_file_lister.py +0 -0
  252. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_list_filter.py +0 -0
  253. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_prompt_handler.py +0 -0
  254. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_tag_extractor.py +0 -0
  255. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_template_loader.py +0 -0
  256. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_template_manager.py +0 -0
  257. {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_update_config_prompt.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ara_cli
3
- Version: 0.1.11.1
3
+ Version: 0.1.13.2
4
4
  Summary: Powerful, open source command-line tool for managing, structuring and automating software development artifacts in line with Business-Driven Development (BDD) and AI-assisted processes
5
5
  Description-Content-Type: text/markdown
6
6
  Requires-Dist: langfuse
@@ -21,6 +21,8 @@ Requires-Dist: python-docx
21
21
  Requires-Dist: pymupdf4llm
22
22
  Requires-Dist: typer
23
23
  Requires-Dist: psutil
24
+ Requires-Dist: requests
25
+ Requires-Dist: rich
24
26
  Dynamic: description
25
27
  Dynamic: description-content-type
26
28
  Dynamic: requires-dist
@@ -0,0 +1,65 @@
1
+ import warnings
2
+ from .error_handler import ErrorHandler
3
+
4
+ whitelisted_commands = [
5
+ "RERUN",
6
+ "SEND",
7
+ "EXTRACT",
8
+ "LOAD_IMAGE",
9
+ "CHOOSE_MODEL",
10
+ "CHOOSE_EXTRACTION_MODEL",
11
+ "CURRENT_MODEL",
12
+ "CURRENT_EXTRACTION_MODEL",
13
+ "LIST_MODELS",
14
+ ]
15
+
16
+ error_handler = ErrorHandler()
17
+
18
+
19
+ # ANSI escape codes for coloring
20
+ YELLOW = "\033[93m"
21
+ RESET = "\033[0m"
22
+
23
+
24
+ def format_warning(message, category, *args, **kwargs):
25
+ return f"{YELLOW}[WARNING] {category.__name__}: {message}{RESET}\n"
26
+
27
+
28
+ warnings.formatwarning = format_warning
29
+
30
+ ### CHAT VALUES ###
31
+
32
+ CATEGORY_CHAT_CONTROL = "Chat control commands"
33
+ CATEGORY_LLM_CONTROL = "Language model controls"
34
+ CATEGORY_SCRIPT_CONTROL = "Script control commands"
35
+ CATEGORY_AGENT_CONTROL = "Agent control commands"
36
+
37
+ ROLE_PROMPT = "ara prompt"
38
+ ROLE_RESPONSE = "ara response"
39
+
40
+ INTRO = """/***************************************/
41
+ araarar
42
+ aa ara
43
+ aa aa aara
44
+ a araarar
45
+ a ar ar
46
+ aa ara
47
+ a a
48
+ a aa
49
+ a a
50
+ ar aa aa
51
+ (c) ara chat by talsen team
52
+ aa aa
53
+ aa a
54
+ a aa
55
+ aa
56
+ /***************************************/
57
+ Start chatting (type 'HELP'/'h' for available commands, 'QUIT'/'q' to exit chat mode):"""
58
+
59
+ BINARY_TYPE_MAPPING = {
60
+ ".png": "image/png",
61
+ ".jpg": "image/jpeg",
62
+ ".jpeg": "image/jpeg",
63
+ }
64
+
65
+ DOCUMENT_TYPE_EXTENSIONS = [".docx", ".doc", ".odt", ".pdf"]
@@ -12,19 +12,27 @@ from ara_cli.ara_subcommands.list_tags import register as register_list_tags_cli
12
12
  from ara_cli.ara_subcommands.prompt import register as register_prompt_cli
13
13
  from ara_cli.ara_subcommands.chat import register as register_chat_cli
14
14
  from ara_cli.ara_subcommands.template import register as register_template_cli
15
- from ara_cli.ara_subcommands.fetch_templates import register as register_fetch_templates_cli
15
+ from ara_cli.ara_subcommands.fetch_templates import (
16
+ register as register_fetch_templates_cli,
17
+ )
16
18
  from ara_cli.ara_subcommands.fetch_scripts import register as register_fetch_scripts_cli
19
+ from ara_cli.ara_subcommands.fetch_agents import register as register_fetch_agents_cli
20
+ from ara_cli.ara_subcommands.fetch import register as register_fetch_cli
17
21
  from ara_cli.ara_subcommands.read import register as register_read_cli
18
22
  from ara_cli.ara_subcommands.reconnect import register as register_reconnect_cli
19
23
  from ara_cli.ara_subcommands.read_status import register as register_read_status_cli
20
24
  from ara_cli.ara_subcommands.read_user import register as register_read_user_cli
21
25
  from ara_cli.ara_subcommands.set_status import register as register_set_status_cli
22
26
  from ara_cli.ara_subcommands.set_user import register as register_set_user_cli
23
- from ara_cli.ara_subcommands.classifier_directory import register as register_classifier_directory_cli
27
+ from ara_cli.ara_subcommands.classifier_directory import (
28
+ register as register_classifier_directory_cli,
29
+ )
24
30
  from ara_cli.ara_subcommands.scan import register as register_scan_cli
25
31
  from ara_cli.ara_subcommands.autofix import register as register_autofix_cli
26
32
  from ara_cli.ara_subcommands.extract import register as register_extract_cli
27
33
  from ara_cli.ara_subcommands.load import register as register_load_cli
34
+ from ara_cli.ara_subcommands.config import register as register_config_cli
35
+ from ara_cli.ara_subcommands.convert import register as register_convert_cli
28
36
 
29
37
  from ara_cli.directory_navigator import DirectoryNavigator
30
38
 
@@ -37,7 +45,7 @@ def version_callback(value: bool):
37
45
 
38
46
  def is_debug_mode_enabled():
39
47
  """Check if debug mode is enabled via environment variable."""
40
- return getenv('ARA_DEBUG', '').lower() in ('1', 'true', 'yes')
48
+ return getenv("ARA_DEBUG", "").lower() in ("1", "true", "yes")
41
49
 
42
50
 
43
51
  def configure_debug_mode(debug: bool, env_debug_mode: bool):
@@ -54,8 +62,11 @@ def check_ara_directory_exists():
54
62
  def prompt_create_ara_directory():
55
63
  """Prompt user to create ara directory and create it if confirmed."""
56
64
  # Print the prompt message
57
- print("No 'ara' directory found. Create one in the current directory? (Y/n)",
58
- end=" ", flush=True)
65
+ print(
66
+ "No 'ara' directory found. Create one in the current directory? (Y/n)",
67
+ end=" ",
68
+ flush=True,
69
+ )
59
70
 
60
71
  # Read user input
61
72
  try:
@@ -64,21 +75,21 @@ def prompt_create_ara_directory():
64
75
  typer.echo("\nOperation cancelled.")
65
76
  raise typer.Exit(1)
66
77
 
67
- if response.lower() in ('y', 'yes', ''):
78
+ if response.lower() in ("y", "yes", ""):
68
79
  current_dir = os.getcwd()
69
- ara_path = os.path.join(current_dir, 'ara')
80
+ ara_path = os.path.join(current_dir, "ara")
70
81
 
71
82
  # Create ara directory structure
72
83
  subdirectories = [
73
- 'businessgoals',
74
- 'capabilities',
75
- 'epics',
76
- 'examples',
77
- 'features',
78
- 'keyfeatures',
79
- 'tasks',
80
- 'userstories',
81
- 'vision'
84
+ "businessgoals",
85
+ "capabilities",
86
+ "epics",
87
+ "examples",
88
+ "features",
89
+ "keyfeatures",
90
+ "tasks",
91
+ "userstories",
92
+ "vision",
82
93
  ]
83
94
 
84
95
  try:
@@ -90,12 +101,13 @@ def prompt_create_ara_directory():
90
101
  os.makedirs(os.path.join(ara_path, subdir), exist_ok=True)
91
102
 
92
103
  # Create .araconfig directory
93
- araconfig_path = os.path.join(ara_path, '.araconfig')
104
+ araconfig_path = os.path.join(ara_path, ".araconfig")
94
105
  os.makedirs(araconfig_path, exist_ok=True)
95
106
 
96
107
  # Create default ara_config.json using ConfigManager
97
108
  from ara_cli.ara_config import ConfigManager, ARAconfig
98
- config_file_path = os.path.join(araconfig_path, 'ara_config.json')
109
+
110
+ config_file_path = os.path.join(araconfig_path, "ara_config.json")
99
111
 
100
112
  # Reset ConfigManager to ensure clean state
101
113
  ConfigManager.reset()
@@ -103,6 +115,7 @@ def prompt_create_ara_directory():
103
115
  # Create default config and save it
104
116
  default_config = ARAconfig()
105
117
  from ara_cli.ara_config import save_data
118
+
106
119
  save_data(config_file_path, default_config)
107
120
 
108
121
  typer.echo(f"Created ara directory structure at {ara_path}")
@@ -179,25 +192,32 @@ ara chat examples:
179
192
  > load selected templates in config_prompt_templates.md for the task {task_name}: ara prompt load task {task_name}
180
193
  > create and send configured prompt of the task {task_name} to the configured LLM: ara prompt send task {task_name}
181
194
  > extract the selected LLM response in task.exploration.md and save to disk: ara prompt extract task {task_name}
195
+
196
+ ara config examples:
197
+ > show current configuration status: ara config show
198
+ > show only LLM configurations: ara config show --llm
199
+ > reset LLM configurations to defaults: ara config reset --llm-config -y
200
+ > preview reset without making changes: ara config reset --all --dry-run
182
201
  """,
183
202
  no_args_is_help=True,
184
203
  add_completion=True,
185
- rich_markup_mode="rich"
204
+ rich_markup_mode="rich",
186
205
  )
187
206
 
188
207
  @app.callback(invoke_without_command=True)
189
208
  def main(
190
209
  ctx: typer.Context,
191
210
  version: Optional[bool] = typer.Option(
192
- None, "--version", "-v",
211
+ None,
212
+ "--version",
213
+ "-v",
193
214
  callback=version_callback,
194
215
  is_eager=True,
195
- help="Show version and exit"
216
+ help="Show version and exit",
196
217
  ),
197
218
  debug: bool = typer.Option(
198
- False, "--debug",
199
- help="Enable debug mode for detailed error output"
200
- )
219
+ False, "--debug", help="Enable debug mode for detailed error output"
220
+ ),
201
221
  ):
202
222
  """The ara cli terminal tool is a management tool for classified ara artefacts."""
203
223
  debug_mode = is_debug_mode_enabled()
@@ -211,9 +231,20 @@ ara chat examples:
211
231
  # Check for ara directory before executing any command
212
232
  # Skip check for commands that don't require ara directory
213
233
  commands_requiring_ara = {
214
- 'create', 'delete', 'rename', 'list', 'list-tags', 'prompt',
215
- 'read', 'reconnect', 'read-status', 'read-user', 'set-status',
216
- 'set-user', 'scan', 'autofix'
234
+ "create",
235
+ "delete",
236
+ "rename",
237
+ "list",
238
+ "list-tags",
239
+ "prompt",
240
+ "read",
241
+ "reconnect",
242
+ "read-status",
243
+ "read-user",
244
+ "set-status",
245
+ "set-user",
246
+ "scan",
247
+ "autofix",
217
248
  }
218
249
 
219
250
  if ctx.invoked_subcommand in commands_requiring_ara:
@@ -230,6 +261,8 @@ ara chat examples:
230
261
  register_template_cli(app)
231
262
  register_fetch_templates_cli(app)
232
263
  register_fetch_scripts_cli(app)
264
+ register_fetch_agents_cli(app)
265
+ register_fetch_cli(app)
233
266
  register_read_cli(app)
234
267
  register_reconnect_cli(app)
235
268
  register_read_status_cli(app)
@@ -241,6 +274,8 @@ ara chat examples:
241
274
  register_autofix_cli(app)
242
275
  register_extract_cli(app)
243
276
  register_load_cli(app)
277
+ register_config_cli(app)
278
+ register_convert_cli(app)
244
279
 
245
280
  return app
246
281
 
@@ -23,24 +23,33 @@ def create_action(args):
23
23
  from ara_cli.artefact_reader import ArtefactReader
24
24
  from ara_cli.artefact_fuzzy_search import find_closest_rule
25
25
 
26
- check_validity(Classifier.is_valid_classifier(args.classifier), "Invalid classifier provided. Please provide a valid classifier.")
27
- check_validity(is_valid_filename(args.parameter), "Invalid filename provided. Please provide a valid filename.")
26
+ check_validity(Classifier.is_valid_classifier(args.classifier),
27
+ "Invalid classifier provided. Please provide a valid classifier.")
28
+ check_validity(is_valid_filename(args.parameter),
29
+ "Invalid filename provided. Please provide a valid filename.")
28
30
 
29
31
  def handle_parent_arguments(args):
30
- parent_classifier = args.parent_classifier if hasattr(args, "parent_classifier") else None
31
- parent_name = args.parent_name if hasattr(args, "parent_name") else None
32
+ parent_classifier = args.parent_classifier if hasattr(
33
+ args, "parent_classifier") else None
34
+ parent_name = args.parent_name if hasattr(
35
+ args, "parent_name") else None
32
36
  rule = args.rule if hasattr(args, 'rule') else None
33
37
  invalid_classifier_message = "Invalid parent classifier provided. Please provide a valid classifier"
34
38
  invalid_name_message = "Invalid filename provided for parent. Please provide a valid filename."
35
39
  if parent_classifier and parent_name and rule:
36
- check_validity(Classifier.is_valid_classifier(parent_classifier), invalid_classifier_message)
37
- check_validity(is_valid_filename(parent_name), invalid_name_message)
38
- parent_artefact = ArtefactReader.read_artefact(artefact_name=parent_name, classifier=parent_classifier)
40
+ check_validity(Classifier.is_valid_classifier(
41
+ parent_classifier), invalid_classifier_message)
42
+ check_validity(is_valid_filename(
43
+ parent_name), invalid_name_message)
44
+ parent_artefact = ArtefactReader.read_artefact(
45
+ artefact_name=parent_name, classifier=parent_classifier)
39
46
  rule = find_closest_rule(parent_artefact, rule)
40
47
  return parent_classifier, parent_name, rule
41
48
  if parent_classifier and parent_name:
42
- check_validity(Classifier.is_valid_classifier(parent_classifier), invalid_classifier_message)
43
- check_validity(is_valid_filename(parent_name), invalid_name_message)
49
+ check_validity(Classifier.is_valid_classifier(
50
+ parent_classifier), invalid_classifier_message)
51
+ check_validity(is_valid_filename(
52
+ parent_name), invalid_name_message)
44
53
  return parent_classifier, parent_name, rule
45
54
  return None, None, None
46
55
 
@@ -61,7 +70,8 @@ def create_action(args):
61
70
  return
62
71
 
63
72
  artefact_creator = ArtefactCreator()
64
- artefact_creator.run(args.parameter, args.classifier, parent_classifier, parent_name, rule)
73
+ artefact_creator.run(args.parameter, args.classifier,
74
+ parent_classifier, parent_name, rule)
65
75
 
66
76
 
67
77
  @handle_errors(context="delete action", error_handler=error_handler)
@@ -78,9 +88,12 @@ def rename_action(args):
78
88
  from ara_cli.classifier import Classifier
79
89
  from ara_cli.filename_validator import is_valid_filename
80
90
 
81
- check_validity(is_valid_filename(args.parameter), "Invalid filename provided. Please provide a valid filename.")
82
- check_validity(Classifier.is_valid_classifier(args.classifier), "Invalid classifier provided. Please provide a valid classifier.")
83
- check_validity(is_valid_filename(args.aspect), "Invalid new filename provided. Please provide a valid filename.")
91
+ check_validity(is_valid_filename(args.parameter),
92
+ "Invalid filename provided. Please provide a valid filename.")
93
+ check_validity(Classifier.is_valid_classifier(args.classifier),
94
+ "Invalid classifier provided. Please provide a valid classifier.")
95
+ check_validity(is_valid_filename(
96
+ args.aspect), "Invalid new filename provided. Please provide a valid filename.")
84
97
 
85
98
  artefact_renamer = ArtefactRenamer()
86
99
  artefact_renamer.rename(args.parameter, args.aspect, args.classifier)
@@ -171,8 +184,10 @@ def prompt_action(args):
171
184
  from ara_cli.classifier import Classifier
172
185
  from ara_cli.filename_validator import is_valid_filename
173
186
 
174
- check_validity(Classifier.is_valid_classifier(args.classifier), "Invalid classifier provided. Please provide a valid classifier.")
175
- check_validity(is_valid_filename(args.parameter), "Invalid filename provided. Please provide a valid filename.")
187
+ check_validity(Classifier.is_valid_classifier(args.classifier),
188
+ "Invalid classifier provided. Please provide a valid classifier.")
189
+ check_validity(is_valid_filename(args.parameter),
190
+ "Invalid filename provided. Please provide a valid filename.")
176
191
 
177
192
  classifier = args.classifier
178
193
  param = args.parameter
@@ -207,7 +222,8 @@ def prompt_action(args):
207
222
  from ara_cli.update_config_prompt import update_artefact_config_prompt_files
208
223
  extract_and_save_prompt_results(classifier, param, write=write)
209
224
  print(f"automatic update after extract")
210
- update_artefact_config_prompt_files(classifier, param, automatic_update=True)
225
+ update_artefact_config_prompt_files(
226
+ classifier, param, automatic_update=True)
211
227
 
212
228
  def handle_chat():
213
229
  from ara_cli.prompt_chat import initialize_prompt_chat_mode
@@ -216,11 +232,13 @@ def prompt_action(args):
216
232
  output_mode = args.output_mode
217
233
  append_strings = args.append
218
234
  restricted = args.restricted
219
- initialize_prompt_chat_mode(classifier, param, chat_name, reset=reset, output_mode=output_mode, append_strings=append_strings, restricted=restricted)
235
+ initialize_prompt_chat_mode(classifier, param, chat_name, reset=reset,
236
+ output_mode=output_mode, append_strings=append_strings, restricted=restricted)
220
237
 
221
238
  def handle_update():
222
239
  from ara_cli.update_config_prompt import update_artefact_config_prompt_files
223
- update_artefact_config_prompt_files(classifier, param, automatic_update=True)
240
+ update_artefact_config_prompt_files(
241
+ classifier, param, automatic_update=True)
224
242
 
225
243
  command_dispatcher = {
226
244
  'init': handle_init,
@@ -255,7 +273,8 @@ def chat_action(args):
255
273
  chat_file_path = join(cwd, chat_name)
256
274
 
257
275
  with suppress_stdout(output_mode):
258
- chat = Chat(chat_file_path, reset=reset) if not restricted else Chat(chat_file_path, reset=reset, enable_commands=whitelisted_commands)
276
+ chat = Chat(chat_file_path, reset=reset) if not restricted else Chat(
277
+ chat_file_path, reset=reset, enable_commands=whitelisted_commands)
259
278
 
260
279
  if append_strings:
261
280
  chat.append_strings(append_strings)
@@ -305,7 +324,8 @@ def load_action(args):
305
324
  default_pattern = default_patterns.get(template_type)
306
325
 
307
326
  if not template_name and not default_pattern:
308
- raise AraError(f"A template name is required for template type '{template_type}'.")
327
+ raise AraError(
328
+ f"A template name is required for template type '{template_type}'.")
309
329
 
310
330
  loader = TemplateLoader() # No chat instance for CLI context
311
331
  success = loader.load_template(
@@ -324,7 +344,8 @@ def template_action(args):
324
344
  from ara_cli.classifier import Classifier
325
345
  from ara_cli.template_manager import TemplatePathManager
326
346
 
327
- check_validity(Classifier.is_valid_classifier(args.classifier), "Invalid classifier provided. Please provide a valid classifier.")
347
+ check_validity(Classifier.is_valid_classifier(args.classifier),
348
+ "Invalid classifier provided. Please provide a valid classifier.")
328
349
 
329
350
  template_manager = TemplatePathManager()
330
351
  content = template_manager.get_template_content(args.classifier)
@@ -345,9 +366,11 @@ def fetch_templates_action(args):
345
366
 
346
367
  subdirs = ["commands", "rules", "intentions", "blueprints"]
347
368
 
348
- os.makedirs(join(prompt_templates_dir, "global-prompt-modules"), exist_ok=True)
369
+ os.makedirs(join(prompt_templates_dir,
370
+ "global-prompt-modules"), exist_ok=True)
349
371
  for subdir in subdirs:
350
- target_dir = join(prompt_templates_dir, "global-prompt-modules", subdir)
372
+ target_dir = join(prompt_templates_dir,
373
+ "global-prompt-modules", subdir)
351
374
  source_dir = join(global_prompt_templates_path, subdir)
352
375
  os.makedirs(target_dir, exist_ok=True)
353
376
  for item in os.listdir(source_dir):
@@ -356,7 +379,8 @@ def fetch_templates_action(args):
356
379
  shutil.copy2(source, target)
357
380
 
358
381
  custom_prompt_templates_subdir = config.custom_prompt_templates_subdir
359
- local_prompt_modules_dir = join(prompt_templates_dir, custom_prompt_templates_subdir)
382
+ local_prompt_modules_dir = join(
383
+ prompt_templates_dir, custom_prompt_templates_subdir)
360
384
  os.makedirs(local_prompt_modules_dir, exist_ok=True)
361
385
  for subdir in subdirs:
362
386
  os.makedirs(join(local_prompt_modules_dir, subdir), exist_ok=True)
@@ -459,9 +483,11 @@ def read_status_action(args):
459
483
  artefact_info = file_classifier.classify_files()
460
484
  artefact_info_dicts = artefact_info.get(classifier, [])
461
485
 
462
- all_artefact_names = [artefact_info["title"] for artefact_info in artefact_info_dicts]
486
+ all_artefact_names = [artefact_info["title"]
487
+ for artefact_info in artefact_info_dicts]
463
488
  if artefact_name not in all_artefact_names:
464
- suggest_close_name_matches(artefact_name, all_artefact_names, report_as_error=True)
489
+ suggest_close_name_matches(
490
+ artefact_name, all_artefact_names, report_as_error=True)
465
491
  return
466
492
 
467
493
  artefact_info = next(filter(
@@ -492,9 +518,11 @@ def read_user_action(args):
492
518
  artefact_info = file_classifier.classify_files()
493
519
  artefact_info_dicts = artefact_info.get(classifier, [])
494
520
 
495
- all_artefact_names = [artefact_info["title"] for artefact_info in artefact_info_dicts]
521
+ all_artefact_names = [artefact_info["title"]
522
+ for artefact_info in artefact_info_dicts]
496
523
  if artefact_name not in all_artefact_names:
497
- suggest_close_name_matches(artefact_name, all_artefact_names, report_as_error=True)
524
+ suggest_close_name_matches(
525
+ artefact_name, all_artefact_names, report_as_error=True)
498
526
  return
499
527
 
500
528
  artefact_info = next(filter(
@@ -529,12 +557,14 @@ def set_status_action(args):
529
557
  if new_status.startswith('@'):
530
558
  new_status = new_status.lstrip('@')
531
559
 
532
- check_validity(new_status in status_tags, "Invalid status provided. Please provide a valid status.")
560
+ check_validity(new_status in status_tags,
561
+ "Invalid status provided. Please provide a valid status.")
533
562
 
534
563
  file_classifier = FileClassifier(os)
535
564
  classified_artefacts_info = file_classifier.classify_files()
536
565
  classified_artefact_dict = classified_artefacts_info.get(classifier, [])
537
- all_artefact_names = [artefact_info["title"] for artefact_info in classified_artefact_dict]
566
+ all_artefact_names = [artefact_info["title"]
567
+ for artefact_info in classified_artefact_dict]
538
568
 
539
569
  if artefact_name not in all_artefact_names:
540
570
  suggest_close_name_matches(artefact_name, all_artefact_names)
@@ -554,7 +584,8 @@ def set_status_action(args):
554
584
  with open(f"{artefact_info['file_path']}", 'w', encoding='utf-8') as file:
555
585
  file.write(serialized_content)
556
586
 
557
- print(f"Status of task '{artefact_name}' has been updated to '{new_status}'.")
587
+ print(
588
+ f"Status of task '{artefact_name}' has been updated to '{new_status}'.")
558
589
 
559
590
 
560
591
  @handle_errors(context="set-user action", error_handler=error_handler)
@@ -572,7 +603,8 @@ def set_user_action(args):
572
603
  file_classifier = FileClassifier(os)
573
604
  classified_artefacts_info = file_classifier.classify_files()
574
605
  classified_artefact_dict = classified_artefacts_info.get(classifier, [])
575
- all_artefact_names = [artefact_info["title"] for artefact_info in classified_artefact_dict]
606
+ all_artefact_names = [artefact_info["title"]
607
+ for artefact_info in classified_artefact_dict]
576
608
 
577
609
  if artefact_name not in all_artefact_names:
578
610
  suggest_close_name_matches(artefact_name, all_artefact_names)
@@ -673,4 +705,4 @@ def extract_action(args):
673
705
  write=write,
674
706
  output=lambda msg: print(msg, file=sys.stdout)
675
707
  )
676
- command.execute()
708
+ command.execute()