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.
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/PKG-INFO +3 -1
- ara_cli-0.1.13.2/ara_cli/__init__.py +65 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/__main__.py +62 -27
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_command_action.py +65 -33
- ara_cli-0.1.13.2/ara_cli/ara_config.py +337 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/common.py +2 -2
- ara_cli-0.1.13.2/ara_cli/ara_subcommands/config.py +221 -0
- ara_cli-0.1.13.2/ara_cli/ara_subcommands/convert.py +43 -0
- ara_cli-0.1.13.2/ara_cli/ara_subcommands/fetch.py +41 -0
- ara_cli-0.1.13.2/ara_cli/ara_subcommands/fetch_agents.py +22 -0
- ara_cli-0.1.13.2/ara_cli/ara_subcommands/fetch_scripts.py +19 -0
- ara_cli-0.1.13.2/ara_cli/ara_subcommands/fetch_templates.py +19 -0
- ara_cli-0.1.13.2/ara_cli/ara_subcommands/list.py +109 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_autofix.py +115 -62
- ara_cli-0.1.13.2/ara_cli/artefact_converter.py +256 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/chat.py +139 -153
- ara_cli-0.1.13.2/ara_cli/chat_agent/agent_process_manager.py +155 -0
- ara_cli-0.1.13.2/ara_cli/chat_script_runner/script_finder.py +41 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/chat_script_runner/script_lister.py +11 -2
- ara_cli-0.1.13.2/ara_cli/chat_web_search/web_search.py +263 -0
- ara_cli-0.1.13.2/ara_cli/commands/agent_run_command.py +98 -0
- ara_cli-0.1.13.2/ara_cli/commands/fetch_agents_command.py +106 -0
- ara_cli-0.1.13.2/ara_cli/commands/fetch_templates_command.py +39 -0
- ara_cli-0.1.13.2/ara_cli/commands/fetch_templates_commands.py +39 -0
- ara_cli-0.1.13.2/ara_cli/commands/list_agents_command.py +39 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/completers.py +71 -35
- ara_cli-0.1.13.2/ara_cli/constants.py +2 -0
- ara_cli-0.1.13.2/ara_cli/llm_utils.py +58 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/prompt_chat.py +20 -4
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/prompt_extractor.py +47 -32
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/template_loader.py +2 -1
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/template_manager.py +52 -21
- ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/add_scenarios_for_new_behaviour.feature_creation_agent.commands.md +1 -0
- ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/align_feature_with_implementation_changes.interview_agent.commands.md +1 -0
- ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/analyze_codebase_and_plan_tasks.interview_agent.commands.md +1 -0
- ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/choose_best_parent_artefact.interview_agent.commands.md +1 -0
- ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/create_tasks_from_artefact_content.interview_agent.commands.md +1 -0
- ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/create_tests_for_uncovered_modules.test_generation_agent.commands.md +1 -0
- ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/derive_features_from_video_description.feature_creation_agent.commands.md +1 -0
- ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/describe_agent_capabilities.agent.commands.md +1 -0
- ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/execute_scoped_todos_in_task.interview_agent.commands.md +1 -0
- ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/explain_single_file_purpose.interview_agent.commands.md +1 -0
- ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/extract_file_information_bullets.interview_agent.commands.md +1 -0
- ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/fix_failing_behave_step_definitions.interview_agent.commands.md +1 -0
- ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/fix_failing_pytest_tests.interview_agent.commands.md +1 -0
- ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/general_instruction_policy.commands.md +47 -0
- ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/generate_and_fix_pytest_tests.test_generation_agent.commands.md +1 -0
- ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/suggest_next_story_child_tasks.interview_agent.commands.md +1 -0
- ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/summarize_or_transcribe_media.interview_agent.commands.md +1 -0
- ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/update_feature_to_match_implementation.feature_creation_agent.commands.md +1 -0
- ara_cli-0.1.13.2/ara_cli/templates/prompt-modules/commands/update_user_story_with_requirements.interview_agent.commands.md +1 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/version.py +1 -1
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli.egg-info/PKG-INFO +3 -1
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli.egg-info/SOURCES.txt +43 -4
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli.egg-info/requires.txt +2 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/docker/base/requirements.txt +2 -1
- ara_cli-0.1.13.2/tests/__init__.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_ara_config.py +177 -90
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_artefact_autofix.py +170 -97
- ara_cli-0.1.13.2/tests/test_artefact_autofix_integration.py +495 -0
- ara_cli-0.1.13.2/tests/test_artefact_converter.py +357 -0
- ara_cli-0.1.13.2/tests/test_artefact_extraction.py +564 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_chat.py +2 -16
- ara_cli-0.1.13.2/tests/test_chat_givens_images.py +603 -0
- ara_cli-0.1.13.2/tests/test_chat_script_runner.py +429 -0
- ara_cli-0.1.13.2/tests/test_llm_utils.py +164 -0
- ara_cli-0.1.13.2/tests/test_prompt_chat.py +343 -0
- ara_cli-0.1.13.2/tests/test_prompt_extractor.py +683 -0
- ara_cli-0.1.13.2/tests/test_web_search.py +467 -0
- ara_cli-0.1.11.1/ara_cli/__init__.py +0 -19
- ara_cli-0.1.11.1/ara_cli/ara_config.py +0 -281
- ara_cli-0.1.11.1/ara_cli/ara_subcommands/fetch_scripts.py +0 -8
- ara_cli-0.1.11.1/ara_cli/ara_subcommands/fetch_templates.py +0 -14
- ara_cli-0.1.11.1/ara_cli/ara_subcommands/list.py +0 -65
- ara_cli-0.1.11.1/ara_cli/chat_agent/agent_communicator.py +0 -62
- ara_cli-0.1.11.1/ara_cli/chat_agent/agent_process_manager.py +0 -211
- ara_cli-0.1.11.1/ara_cli/chat_agent/agent_status_manager.py +0 -73
- ara_cli-0.1.11.1/ara_cli/chat_agent/agent_workspace_manager.py +0 -76
- ara_cli-0.1.11.1/ara_cli/chat_script_runner/script_finder.py +0 -24
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/MANIFEST.in +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/README.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/__init__.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/autofix.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/chat.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/classifier_directory.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/create.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/delete.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/extract.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/list_tags.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/load.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/prompt.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/read.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/read_status.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/read_user.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/reconnect.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/rename.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/scan.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/set_status.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/set_user.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/ara_subcommands/template.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_creator.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_deleter.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_fuzzy_search.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_link_updater.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_lister.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/__init__.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/artefact_data_retrieval.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/artefact_load.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/artefact_mapping.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/artefact_model.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/artefact_templates.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/businessgoal_artefact_model.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/capability_artefact_model.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/epic_artefact_model.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/example_artefact_model.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/feature_artefact_model.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/issue_artefact_model.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/keyfeature_artefact_model.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/serialize_helper.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/task_artefact_model.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/userstory_artefact_model.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_models/vision_artefact_model.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_reader.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_renamer.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/artefact_scan.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/chat_agent/__init__.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/chat_script_runner/__init__.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/chat_script_runner/script_completer.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/chat_script_runner/script_runner.py +0 -0
- {ara_cli-0.1.11.1/ara_cli/commands → ara_cli-0.1.13.2/ara_cli/chat_web_search}/__init__.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/classifier.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/codefusionretriever.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/codehierachieretriever.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/commandline_completer.py +0 -0
- {ara_cli-0.1.11.1/ara_cli/file_loaders → ara_cli-0.1.13.2/ara_cli/commands}/__init__.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/commands/command.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/commands/extract_command.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/commands/fetch_scripts_command.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/commands/load_command.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/commands/load_image_command.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/commands/read_command.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/directory_navigator.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/error_handler.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/file_classifier.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/file_lister.py +0 -0
- {ara_cli-0.1.11.1/tests → ara_cli-0.1.13.2/ara_cli/file_loaders}/__init__.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/file_loaders/binary_file_loader.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/file_loaders/document_file_loader.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/file_loaders/document_reader.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/file_loaders/document_readers.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/file_loaders/file_loader.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/file_loaders/file_loaders.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/file_loaders/image_processor.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/file_loaders/markdown_reader.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/file_loaders/text_file_loader.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/filename_validator.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/global_file_lister.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/list_filter.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/output_suppressor.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/prompt_handler.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/prompt_rag.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/run_file_lister.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/tag_extractor.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/agile.artefacts +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/global-scripts/hello_global.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/blueprints/empty.blueprint.md +0 -0
- {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
- {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
- {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
- {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
- {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
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/commands/empty.commands.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/commands/extract_general.commands.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/commands/extract_markdown.commands.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/commands/extract_python.commands.md +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/intentions/classify_task.intention.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/intentions/empty.intention.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/intentions/error_fixing.intention.md +0 -0
- {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
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/intentions/feature_formulation.intention.md +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/intentions/task_implementation.intention.md +0 -0
- {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
- {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
- {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
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/rules/architecture_analyst.rules.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/rules/code_analyst.rules.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/rules/empty.rules.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/rules/error_analyst.rules.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/rules/gherkin_expert.rules.md +0 -0
- {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
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/rules/product_owner.rules.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/rules/python_behave.rules.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/prompt-modules/rules/python_developer.rules.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/specification_breakdown_files/template.concept.exploration.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/specification_breakdown_files/template.concept.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/specification_breakdown_files/template.customer.exploration.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/specification_breakdown_files/template.customer.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/specification_breakdown_files/template.persona.exploration.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/specification_breakdown_files/template.persona.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/specification_breakdown_files/template.step.exploration.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/specification_breakdown_files/template.step.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/specification_breakdown_files/template.technology.exploration.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/specification_breakdown_files/template.technology.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/template.businessgoal.prompt_log.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/template.capability.prompt_log.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/template.epic.prompt_log.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/template.example.prompt_log.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/template.feature.prompt_log.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/template.issue.prompt_log.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/template.keyfeature.prompt_log.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/template.steps.prompt_log.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/template.task.prompt_log.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/template.userstory.prompt_log.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/templates/template.vision.prompt_log.md +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli/update_config_prompt.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli.egg-info/dependency_links.txt +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli.egg-info/entry_points.txt +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/ara_cli.egg-info/top_level.txt +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/setup.cfg +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/setup.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_ara_command_action.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_artefact_fuzzy_search.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_artefact_link_updater.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_artefact_lister.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_artefact_reader.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_artefact_renamer.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_artefact_scan.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_classifier.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_directory_navigator.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_file_classifier.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_file_creator.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_file_lister.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_global_file_lister.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_list_filter.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_prompt_handler.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_tag_extractor.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_template_loader.py +0 -0
- {ara_cli-0.1.11.1 → ara_cli-0.1.13.2}/tests/test_template_manager.py +0 -0
- {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.
|
|
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
|
|
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
|
|
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(
|
|
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(
|
|
58
|
-
|
|
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 (
|
|
78
|
+
if response.lower() in ("y", "yes", ""):
|
|
68
79
|
current_dir = os.getcwd()
|
|
69
|
-
ara_path = os.path.join(current_dir,
|
|
80
|
+
ara_path = os.path.join(current_dir, "ara")
|
|
70
81
|
|
|
71
82
|
# Create ara directory structure
|
|
72
83
|
subdirectories = [
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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,
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
215
|
-
|
|
216
|
-
|
|
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),
|
|
27
|
-
|
|
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(
|
|
31
|
-
|
|
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(
|
|
37
|
-
|
|
38
|
-
|
|
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(
|
|
43
|
-
|
|
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,
|
|
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),
|
|
82
|
-
|
|
83
|
-
check_validity(
|
|
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),
|
|
175
|
-
|
|
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(
|
|
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,
|
|
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(
|
|
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(
|
|
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(
|
|
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),
|
|
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,
|
|
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,
|
|
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(
|
|
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"]
|
|
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(
|
|
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"]
|
|
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(
|
|
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,
|
|
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"]
|
|
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(
|
|
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"]
|
|
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()
|