ace-git-copilot 0.7.0__tar.gz → 0.7.4__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.
- ace_git_copilot-0.7.4/.github/ISSUE_TEMPLATE/bug_report.yml +64 -0
- ace_git_copilot-0.7.4/.github/ISSUE_TEMPLATE/config.yml +8 -0
- ace_git_copilot-0.7.4/.github/ISSUE_TEMPLATE/feature_request.yml +37 -0
- ace_git_copilot-0.7.4/.github/PULL_REQUEST_TEMPLATE.md +19 -0
- ace_git_copilot-0.7.4/.github/dependabot.yml +10 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/.gitignore +6 -0
- ace_git_copilot-0.7.4/PKG-INFO +227 -0
- ace_git_copilot-0.7.4/README.md +194 -0
- ace_git_copilot-0.7.4/ace/__init__.py +1 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ai/commit_generator.py +29 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ai/conflict_resolver.py +1 -1
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ai/prompts/commit.py +23 -6
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/cli.py +32 -17
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/core/context.py +14 -8
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/core/diagnostics.py +24 -11
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/core/git_ops.py +2 -2
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/core/hooks.py +15 -5
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ui/display.py +10 -2
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/utils/json_utils.py +2 -2
- ace_git_copilot-0.7.4/install.ps1 +102 -0
- ace_git_copilot-0.7.4/install.sh +97 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/pyproject.toml +1 -1
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_git_ops_execute.py +1 -1
- ace_git_copilot-0.7.0/.agents/AGENTS.md +0 -17
- ace_git_copilot-0.7.0/.agents/BRIEFING.md +0 -35
- ace_git_copilot-0.7.0/.agents/ORIGINAL_REQUEST.md +0 -44
- ace_git_copilot-0.7.0/.agents/e2e_testing_track/BRIEFING.md +0 -69
- ace_git_copilot-0.7.0/.agents/e2e_testing_track/ORIGINAL_REQUEST.md +0 -12
- ace_git_copilot-0.7.0/.agents/e2e_testing_track/SCOPE.md +0 -21
- ace_git_copilot-0.7.0/.agents/e2e_testing_track/progress.md +0 -11
- ace_git_copilot-0.7.0/.agents/explorer_init/BRIEFING.md +0 -54
- ace_git_copilot-0.7.0/.agents/explorer_init/ORIGINAL_REQUEST.md +0 -7
- ace_git_copilot-0.7.0/.agents/explorer_init/emojis_list.txt +0 -52
- ace_git_copilot-0.7.0/.agents/explorer_init/find_unused_modules.py +0 -51
- ace_git_copilot-0.7.0/.agents/explorer_init/handoff.md +0 -62
- ace_git_copilot-0.7.0/.agents/explorer_init/measure_lazy_startup.py +0 -17
- ace_git_copilot-0.7.0/.agents/explorer_init/measure_startup.py +0 -5
- ace_git_copilot-0.7.0/.agents/explorer_init/profile_imports.py +0 -55
- ace_git_copilot-0.7.0/.agents/explorer_init/progress.md +0 -12
- ace_git_copilot-0.7.0/.agents/explorer_init/run_importtime.py +0 -41
- ace_git_copilot-0.7.0/.agents/explorer_init/search_banner.py +0 -4
- ace_git_copilot-0.7.0/.agents/explorer_init/search_emojis.py +0 -28
- ace_git_copilot-0.7.0/.agents/explorer_init/search_git_usages.py +0 -4
- ace_git_copilot-0.7.0/.agents/explorer_init/search_usages.py +0 -9
- ace_git_copilot-0.7.0/.agents/explorer_init/test_import_profiler.py +0 -38
- ace_git_copilot-0.7.0/.agents/explorer_init/test_mocked_sys.py +0 -31
- ace_git_copilot-0.7.0/.agents/handoff.md +0 -19
- ace_git_copilot-0.7.0/.agents/implementation_track/BRIEFING.md +0 -65
- ace_git_copilot-0.7.0/.agents/implementation_track/ORIGINAL_REQUEST.md +0 -13
- ace_git_copilot-0.7.0/.agents/implementation_track/explorer_initial_report.md +0 -156
- ace_git_copilot-0.7.0/.agents/implementation_track/progress.md +0 -28
- ace_git_copilot-0.7.0/.agents/orchestrator/.gitkeep +0 -1
- ace_git_copilot-0.7.0/.agents/orchestrator/BRIEFING.md +0 -73
- ace_git_copilot-0.7.0/.agents/orchestrator/ORIGINAL_REQUEST.md +0 -12
- ace_git_copilot-0.7.0/.agents/orchestrator/PROJECT.md +0 -35
- ace_git_copilot-0.7.0/.agents/orchestrator/progress.md +0 -16
- ace_git_copilot-0.7.0/.agents/teamwork_preview_explorer_e2e_explore/BRIEFING.md +0 -36
- ace_git_copilot-0.7.0/.agents/teamwork_preview_explorer_e2e_explore/ORIGINAL_REQUEST.md +0 -10
- ace_git_copilot-0.7.0/.agents/teamwork_preview_explorer_e2e_explore/handoff.md +0 -121
- ace_git_copilot-0.7.0/.agents/teamwork_preview_explorer_e2e_explore/progress.md +0 -10
- ace_git_copilot-0.7.0/.agents/worker_e2e_testing/BRIEFING.md +0 -33
- ace_git_copilot-0.7.0/.agents/worker_e2e_testing/ORIGINAL_REQUEST.md +0 -46
- ace_git_copilot-0.7.0/.agents/worker_e2e_testing/progress.md +0 -15
- ace_git_copilot-0.7.0/.agents/worker_m1_startup/BRIEFING.md +0 -34
- ace_git_copilot-0.7.0/.agents/worker_m1_startup/ORIGINAL_REQUEST.md +0 -18
- ace_git_copilot-0.7.0/.agents/worker_m1_startup/progress.md +0 -11
- ace_git_copilot-0.7.0/PKG-INFO +0 -217
- ace_git_copilot-0.7.0/README.md +0 -184
- ace_git_copilot-0.7.0/ace/__init__.py +0 -1
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/.env.example +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/.github/workflows/tests.yml +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/CODE_OF_CONDUCT.md +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/CONTRIBUTING.md +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/LICENSE +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/PROJECT.md +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/SECURITY.md +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/SUPPORT.md +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/TEST_INFRA.md +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/TEST_READY.md +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/__main__.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ai/changelog_generator.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ai/code_reviewer.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ai/gitignore_generator.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ai/history_analyzer.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ai/intent_parser.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ai/llm_factory.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ai/pr_drafter.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ai/prompts/blame.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ai/prompts/changelog.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ai/prompts/conflict.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ai/prompts/doctor.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ai/prompts/explain.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ai/prompts/ignore.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ai/prompts/intent.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ai/prompts/pr.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ai/prompts/rebase.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ai/prompts/review.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ai/prompts/search.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ai/prompts/standup.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ai/prompts/undo.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ai/push_resolver.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ai/rebase_helper.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/core/config.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/core/safety.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ui/banner.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ui/dashboard.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ui/prompts.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/ui/themes.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/utils/conflict_parser.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/utils/diff_parser.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/utils/i18n.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/utils/string_utils.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/ace/utils/update_checker.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/media/cli_in_action.svg +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/media/dashboard.svg +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/media/stats.svg +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/conftest.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/e2e/conftest.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/e2e/test_tier1_features.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/e2e/test_tier2_boundaries.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/e2e/test_tier3_combinations.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/e2e/test_tier4_workloads.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_alias.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_blame.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_changelog_generator.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_code_reviewer.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_commit_generator_cleaning.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_config_atomic_write.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_conflict_resolver.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_conflict_resolver_backup.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_context_gitdir_detection.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_diagnostics.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_diff_trimmer.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_fallback.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_git_ops.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_help.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_history_analyzer.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_hooks.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_i18n.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_ignore.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_intent_parser.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_interceptor.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_llm_factory.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_llm_factory_ollama.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_merge_state.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_pr_drafter.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_push_resolver.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_rebase_helper.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_safety.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_search.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_standup.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_string_utils.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_undo.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_update_checker.py +0 -0
- {ace_git_copilot-0.7.0 → ace_git_copilot-0.7.4}/tests/test_workspace.py +0 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
name: 🐛 Bug Report
|
|
2
|
+
description: Report an issue or unexpected behavior in Ace
|
|
3
|
+
title: "[Bug]: "
|
|
4
|
+
labels: ["bug", "triage"]
|
|
5
|
+
body:
|
|
6
|
+
- type: markdown
|
|
7
|
+
attributes:
|
|
8
|
+
value: |
|
|
9
|
+
Thanks for taking the time to report an issue! Please provide as much detail as possible to help us reproduce and fix it.
|
|
10
|
+
- type: input
|
|
11
|
+
id: version
|
|
12
|
+
attributes:
|
|
13
|
+
label: Ace Version
|
|
14
|
+
description: Run `ace --version` to find your installed version.
|
|
15
|
+
placeholder: "e.g. 0.7.4"
|
|
16
|
+
validations:
|
|
17
|
+
required: true
|
|
18
|
+
- type: dropdown
|
|
19
|
+
id: provider
|
|
20
|
+
attributes:
|
|
21
|
+
label: AI Model / Backend Provider
|
|
22
|
+
description: Which AI provider were you using when the issue occurred?
|
|
23
|
+
options:
|
|
24
|
+
- Ollama (Local)
|
|
25
|
+
- NVIDIA NIM (Cloud)
|
|
26
|
+
- OpenAI
|
|
27
|
+
- Anthropic
|
|
28
|
+
- Google Gemini
|
|
29
|
+
- Custom OpenAI-Compatible
|
|
30
|
+
- None / Standard Git Pass-Through
|
|
31
|
+
validations:
|
|
32
|
+
required: true
|
|
33
|
+
- type: input
|
|
34
|
+
id: os
|
|
35
|
+
attributes:
|
|
36
|
+
label: Operating System & Shell
|
|
37
|
+
description: What OS and terminal shell are you running?
|
|
38
|
+
placeholder: "e.g. Windows 11 (PowerShell 7) / macOS Sonoma (zsh) / Ubuntu 24.04 (bash)"
|
|
39
|
+
validations:
|
|
40
|
+
required: true
|
|
41
|
+
- type: textarea
|
|
42
|
+
id: description
|
|
43
|
+
attributes:
|
|
44
|
+
label: Describe the Bug
|
|
45
|
+
description: A clear and concise description of what happened vs what you expected.
|
|
46
|
+
validations:
|
|
47
|
+
required: true
|
|
48
|
+
- type: textarea
|
|
49
|
+
id: reproduction
|
|
50
|
+
attributes:
|
|
51
|
+
label: Steps to Reproduce
|
|
52
|
+
description: Exact commands executed leading up to the issue.
|
|
53
|
+
placeholder: |
|
|
54
|
+
1. Run 'ace stage ...'
|
|
55
|
+
2. Run 'ace commit ...'
|
|
56
|
+
3. See error
|
|
57
|
+
validations:
|
|
58
|
+
required: true
|
|
59
|
+
- type: textarea
|
|
60
|
+
id: logs
|
|
61
|
+
attributes:
|
|
62
|
+
label: Terminal Logs / Error Output
|
|
63
|
+
description: Please paste the command output or traceback.
|
|
64
|
+
render: shell
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
blank_issues_enabled: false
|
|
2
|
+
contact_links:
|
|
3
|
+
- name: 💬 Ask a Question or Discuss Ideas
|
|
4
|
+
url: https://github.com/jachinsamuel/Ace/discussions
|
|
5
|
+
about: Ask questions, share workflows, and discuss with other Ace users.
|
|
6
|
+
- name: 📖 Documentation & Setup Guide
|
|
7
|
+
url: https://github.com/jachinsamuel/Ace#readme
|
|
8
|
+
about: Read the official documentation and configuration options.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
name: 💡 Feature Request
|
|
2
|
+
description: Suggest a new capability, AI prompt improvement, or CLI command for Ace
|
|
3
|
+
title: "[Feature]: "
|
|
4
|
+
labels: ["enhancement"]
|
|
5
|
+
body:
|
|
6
|
+
- type: markdown
|
|
7
|
+
attributes:
|
|
8
|
+
value: |
|
|
9
|
+
Thank you for suggesting a new idea to make Ace better!
|
|
10
|
+
- type: textarea
|
|
11
|
+
id: problem
|
|
12
|
+
attributes:
|
|
13
|
+
label: Is your feature request related to a problem?
|
|
14
|
+
description: A clear and concise description of the friction or limitation you encounter.
|
|
15
|
+
placeholder: "e.g. I'm always frustrated when I want to..."
|
|
16
|
+
validations:
|
|
17
|
+
required: true
|
|
18
|
+
- type: textarea
|
|
19
|
+
id: solution
|
|
20
|
+
attributes:
|
|
21
|
+
label: Describe the proposed solution
|
|
22
|
+
description: How should this feature work? (e.g. `ace release ...` or a new flag)
|
|
23
|
+
validations:
|
|
24
|
+
required: true
|
|
25
|
+
- type: textarea
|
|
26
|
+
id: alternatives
|
|
27
|
+
attributes:
|
|
28
|
+
label: Describe alternatives you've considered
|
|
29
|
+
description: Any other tools, workarounds, or approaches you've tried.
|
|
30
|
+
- type: dropdown
|
|
31
|
+
id: contribution
|
|
32
|
+
attributes:
|
|
33
|
+
label: Would you be interested in contributing a Pull Request?
|
|
34
|
+
options:
|
|
35
|
+
- "Yes, I would like to submit a PR for this!"
|
|
36
|
+
- "Maybe with some guidance"
|
|
37
|
+
- "No, just proposing the idea"
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
## Description
|
|
2
|
+
Briefly explain the motivation, context, and what changes are being introduced in this pull request.
|
|
3
|
+
|
|
4
|
+
## Type of Change
|
|
5
|
+
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
|
|
6
|
+
- [ ] ✨ New feature (non-breaking change which adds functionality)
|
|
7
|
+
- [ ] ⚡ Performance improvement / startup optimization
|
|
8
|
+
- [ ] 📝 Documentation update
|
|
9
|
+
- [ ] 🎨 UI / Theme / Rich formatting improvement
|
|
10
|
+
- [ ] 🧪 Test suite addition or enhancement
|
|
11
|
+
|
|
12
|
+
## Testing Checklist
|
|
13
|
+
- [ ] I have run `pytest` and all unit tests pass locally.
|
|
14
|
+
- [ ] I have run `ruff check ace tests` with zero errors.
|
|
15
|
+
- [ ] I have tested this change against both cloud (NVIDIA/OpenAI) and local (Ollama) backends if applicable.
|
|
16
|
+
- [ ] I have updated the documentation / README if this PR introduces a new command or flag.
|
|
17
|
+
|
|
18
|
+
## Related Issues
|
|
19
|
+
Fixes #(issue)
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: ace-git-copilot
|
|
3
|
+
Version: 0.7.4
|
|
4
|
+
Summary: AI-powered Git copilot — talk to Git in plain English
|
|
5
|
+
Project-URL: Homepage, https://github.com/jachinsamuel/Ace
|
|
6
|
+
Project-URL: Documentation, https://github.com/jachinsamuel/Ace#readme
|
|
7
|
+
Project-URL: Bug-Tracker, https://github.com/jachinsamuel/Ace/issues
|
|
8
|
+
Author-email: Jachin Samuel <jachinsamuel007@gmail.com>
|
|
9
|
+
License: MIT
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
12
|
+
Classifier: Operating System :: OS Independent
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Requires-Python: >=3.11
|
|
17
|
+
Requires-Dist: click>=8.0
|
|
18
|
+
Requires-Dist: gitpython>=3.1
|
|
19
|
+
Requires-Dist: langchain-anthropic>=0.1.0
|
|
20
|
+
Requires-Dist: langchain-nvidia-ai-endpoints>=0.3
|
|
21
|
+
Requires-Dist: langchain-ollama>=0.3
|
|
22
|
+
Requires-Dist: langchain-openai>=0.1.0
|
|
23
|
+
Requires-Dist: langchain>=0.3
|
|
24
|
+
Requires-Dist: python-dotenv>=1.0
|
|
25
|
+
Requires-Dist: rich>=13.0
|
|
26
|
+
Requires-Dist: toml>=0.10.2
|
|
27
|
+
Requires-Dist: typer[all]>=0.12
|
|
28
|
+
Provides-Extra: dev
|
|
29
|
+
Requires-Dist: pytest; extra == 'dev'
|
|
30
|
+
Requires-Dist: pytest-cov; extra == 'dev'
|
|
31
|
+
Requires-Dist: ruff>=0.15; extra == 'dev'
|
|
32
|
+
Description-Content-Type: text/markdown
|
|
33
|
+
|
|
34
|
+
# Ace — AI-Powered Git Copilot
|
|
35
|
+
Author: Jachin Samuel <jachinsamuel007@gmail.com>
|
|
36
|
+
```text
|
|
37
|
+
█████╗ ██████╗ ███████╗
|
|
38
|
+
██╔══██╗ ██╔════╝ ██╔════╝
|
|
39
|
+
███████║ ██║ █████╗
|
|
40
|
+
██╔══██║ ██║ ██╔══╝
|
|
41
|
+
██║ ██║ ╚██████╗ ███████╗
|
|
42
|
+
╚═╝ ╚═╝ ╚═════╝ ╚══════╝
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
[](https://github.com/jachinsamuel/Ace/releases)
|
|
46
|
+
[](https://pypi.org/project/ace-git-copilot/)
|
|
47
|
+
[](https://pypi.org/project/ace-git-copilot/)
|
|
48
|
+
[](https://pypi.org/project/ace-git-copilot/)
|
|
49
|
+
[](https://opensource.org/licenses/MIT)
|
|
50
|
+
[](https://github.com/jachinsamuel/Ace/stargazers)
|
|
51
|
+
[](https://github.com/jachinsamuel/Ace/issues)
|
|
52
|
+
|
|
53
|
+
Ace is an intelligent command-line copilot that brings AI assistance directly to your Git workflow. Talk to Git in plain English — Ace translates your intents into Git commands, explains what it is doing, and runs them safely. It also features universal Git command pass-through and an interactive terminal dashboard (TUI) to manage your repositories effortlessly.
|
|
54
|
+
|
|
55
|
+

|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Features
|
|
60
|
+
|
|
61
|
+
* **Universal Git Pass-Through**: Run ANY standard Git command or custom Git extension directly through Ace (e.g. `ace status`, `ace log --oneline -n 10`, `ace checkout -b feature`, `ace push origin main`, `ace stash pop`).
|
|
62
|
+
* **Natural Language Git Commands**: Translate plain English requests like *"undo my last commit but keep changes"* or *"switch to a new branch called design-updates"* into clean, standard Git operations without needing quotes.
|
|
63
|
+
* **AI-Powered Conventional Commits**: Analyzes staged diffs and generates standardized Conventional Commit messages (`feat:`, `fix:`, `refactor:`, `docs:`, etc.) automatically across both cloud and local offline LLMs.
|
|
64
|
+
* **Custom Shortcuts & Aliases**: Create customized multi-command workflows with `ace alias` (e.g. `ace ship` runs `git add . && ace commit -y && git push`).
|
|
65
|
+
* **Automated Code Review**: Rates code quality on a 10-point scale and identifies bugs, security vulnerabilities, or performance bottlenecks in staged or unstaged diffs.
|
|
66
|
+
* **Interactive Merge Conflict Resolver**: Walks you step-by-step through conflicted files and provides AI-suggested 3-way merged blocks.
|
|
67
|
+
* **Multi-Language / i18n Output**: Localized AI explanations and commit suggestions in 15+ languages (English, Chinese, Spanish, French, German, Japanese, Korean, Hindi, and more).
|
|
68
|
+
* **Interactive TUI Dashboard (`ace dash`)**: Real-time terminal repository browser displaying branch status, commit logs, workspace navigation, and interactive menus.
|
|
69
|
+
* **Repository Health Doctor (`ace doctor`)**: Detects active lock files, detached HEAD states, and oversized untracked files with step-by-step AI recovery guidance.
|
|
70
|
+
* **AI Git Blame (`ace blame`)**: Inspects commit history and diff patches to explain *why* a specific line of code was written or modified.
|
|
71
|
+
* **Rich Repo Statistics (`ace stats`)**: Visualizes commit frequency charts, top contributors, and repository language/extension breakdowns.
|
|
72
|
+
* **Automated Release Changelogs (`ace changelog`)**: Compiles categorized release changelogs in Markdown since the previous tag.
|
|
73
|
+
* **Multi-Repo Daily Standups (`ace standup`)**: Generates structured summaries of your recent contributions across one or more repositories.
|
|
74
|
+
* **Smart Git Hooks (`ace hook`)**: One-command installation for pre-commit review checks and prepare-commit-msg AI drafting.
|
|
75
|
+
* **AI Branch Auto-Squashing (`ace squash`)**: Automatically analyzes commit histories and guides clean interactive rebases.
|
|
76
|
+
* **Built-in Safety System**: Classifies actions into safe, moderate, and destructive tiers with automatic stashing and interactive confirmation guards.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Installation
|
|
81
|
+
|
|
82
|
+
### Option A: Quick 1-Line Installer (Recommended)
|
|
83
|
+
|
|
84
|
+
**Linux & macOS:**
|
|
85
|
+
```bash
|
|
86
|
+
curl -fsSL https://raw.githubusercontent.com/jachinsamuel/Ace/master/install.sh | bash
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**Windows (PowerShell):**
|
|
90
|
+
```powershell
|
|
91
|
+
irm https://raw.githubusercontent.com/jachinsamuel/Ace/master/install.ps1 | iex
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
### Option B: Install via standard pip
|
|
97
|
+
```bash
|
|
98
|
+
pip install ace-git-copilot
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
*Note: You can also execute Ace directly through Python module execution:*
|
|
102
|
+
```bash
|
|
103
|
+
python -m ace dash
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Option C: Install via pipx / uv (Isolated)
|
|
107
|
+
```bash
|
|
108
|
+
# via pipx
|
|
109
|
+
pipx install ace-git-copilot
|
|
110
|
+
|
|
111
|
+
# or via uv
|
|
112
|
+
uv tool install ace-git-copilot
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Configuration and AI Providers
|
|
118
|
+
|
|
119
|
+
Launch the interactive configuration wizard:
|
|
120
|
+
```bash
|
|
121
|
+
ace setup
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Ace stores your configuration at `~/.ace/config.toml`. It supports 6 AI model backends:
|
|
125
|
+
|
|
126
|
+
| Provider | Type | Default Model | Key / URL Setup |
|
|
127
|
+
|:---|:---|:---|:---|
|
|
128
|
+
| **NVIDIA NIM** | Cloud (Fast) | `meta/llama-3.1-8b-instruct` | `NVIDIA_API_KEY` (Free at [build.nvidia.com](https://build.nvidia.com/)) |
|
|
129
|
+
| **Ollama** | Local (Private/Offline) | `qwen2.5-coder:7b` | `http://localhost:11434` (Auto-pulled) |
|
|
130
|
+
| **Google Gemini** | Cloud | `gemini-1.5-flash` | `GOOGLE_API_KEY` / `GEMINI_API_KEY` |
|
|
131
|
+
| **OpenAI** | Cloud | `gpt-4o-mini` | `OPENAI_API_KEY` |
|
|
132
|
+
| **Anthropic** | Cloud | `claude-3-5-sonnet-latest` | `ANTHROPIC_API_KEY` |
|
|
133
|
+
| **Custom OpenAI-Compatible** | Cloud / Self-hosted | `custom-model` | `CUSTOM_API_KEY` + `CUSTOM_API_BASE` |
|
|
134
|
+
|
|
135
|
+
You can also switch providers directly in the CLI:
|
|
136
|
+
```bash
|
|
137
|
+
ace config
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Usage Guide
|
|
143
|
+
|
|
144
|
+
### 1. Plain-English Natural Language
|
|
145
|
+
Speak to Git in plain English directly without quotes:
|
|
146
|
+
```bash
|
|
147
|
+
ace stage everything and commit with a message about authentication
|
|
148
|
+
ace undo my last commit but keep the files
|
|
149
|
+
ace switch to a new branch called design-updates
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### 2. Custom Shortcuts (`ace alias`)
|
|
153
|
+
Run pre-configured shortcuts or define your own multi-step workflows:
|
|
154
|
+
```bash
|
|
155
|
+
# Run default shortcut (stages, commits with AI, and pushes)
|
|
156
|
+
ace ship
|
|
157
|
+
|
|
158
|
+
# Create custom shortcut
|
|
159
|
+
ace alias add deploy "git add . && ace commit -y && git push origin staging"
|
|
160
|
+
|
|
161
|
+
# List all shortcuts
|
|
162
|
+
ace alias list
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### 3. Command-Line Reference
|
|
166
|
+
|
|
167
|
+
| Command | Alias / Shorthand | Description |
|
|
168
|
+
|:---|:---|:---|
|
|
169
|
+
| `ace setup` | — | Interactive setup wizard for model providers and language. |
|
|
170
|
+
| `ace stage [files]` | `ace add` | Stage specific files or all untracked changes. |
|
|
171
|
+
| `ace commit` | — | AI Conventional Commit generator (`-y` to skip confirmation). |
|
|
172
|
+
| `ace review` | — | Run AI code review & quality scoring (`--strict` for pre-commit). |
|
|
173
|
+
| `ace resolve` | — | Interactive 3-way merge conflict resolver. |
|
|
174
|
+
| `ace explain <query>` | — | Explain Git concepts, error messages, or commands. |
|
|
175
|
+
| `ace doctor` | — | Run repository diagnostics (locks, detached HEAD, large files). |
|
|
176
|
+
| `ace hook <action>` | — | Install or uninstall pre-commit and prepare-commit-msg hooks. |
|
|
177
|
+
| `ace stats` | — | Visualize repository activity, contributors, and extensions. |
|
|
178
|
+
| `ace changelog` | — | Generate categorized release notes since last tag. |
|
|
179
|
+
| `ace standup` | — | Generate structured daily standup report from recent commits. |
|
|
180
|
+
| `ace blame <file> <line>`| — | Explain the purpose and context behind a specific line of code. |
|
|
181
|
+
| `ace pr` | — | Draft a Markdown pull request title and description. |
|
|
182
|
+
| `ace search <query>` | — | Semantically search commit history with interactive checkout. |
|
|
183
|
+
| `ace squash` | — | Analyze branch history and perform AI-guided rebasing. |
|
|
184
|
+
| `ace ignore <pattern>` | — | Generate and append rules to `.gitignore`. |
|
|
185
|
+
| `ace alias <action>` | — | Manage custom command workflows (`list`, `add`, `remove`). |
|
|
186
|
+
| `ace undo` | — | Safely roll back the previous Git action with automated safety checks. |
|
|
187
|
+
| `ace workspace` | `ace ws` | Multi-repository cockpit to monitor workspace directories. |
|
|
188
|
+
| `ace dash` | — | Launch the interactive Terminal User Interface (TUI). |
|
|
189
|
+
| `ace config` | — | View active configuration settings and active provider. |
|
|
190
|
+
| `ace help` | — | Display command reference and usage guide. |
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Interactive Terminal Dashboard (TUI)
|
|
195
|
+
|
|
196
|
+
Launch the repository management cockpit:
|
|
197
|
+
```bash
|
|
198
|
+
ace dash
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+

|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Repository Statistics (`ace stats`)
|
|
206
|
+
|
|
207
|
+
View visual commit timelines, contributor breakdowns, and file extension distributions:
|
|
208
|
+
|
|
209
|
+

|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## Star History
|
|
214
|
+
|
|
215
|
+
[](https://star-history.com/#jachinsamuel/Ace&Date)
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## Contributing
|
|
220
|
+
|
|
221
|
+
Contributions, bug reports, and feature requests are always welcome! Check out our [Contributing Guide](CONTRIBUTING.md) and [Issue Templates](.github/ISSUE_TEMPLATE) to get started.
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## License
|
|
226
|
+
|
|
227
|
+
Distributed under the MIT License. See [LICENSE](LICENSE) for more details.
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
# Ace — AI-Powered Git Copilot
|
|
2
|
+
Author: Jachin Samuel <jachinsamuel007@gmail.com>
|
|
3
|
+
```text
|
|
4
|
+
█████╗ ██████╗ ███████╗
|
|
5
|
+
██╔══██╗ ██╔════╝ ██╔════╝
|
|
6
|
+
███████║ ██║ █████╗
|
|
7
|
+
██╔══██║ ██║ ██╔══╝
|
|
8
|
+
██║ ██║ ╚██████╗ ███████╗
|
|
9
|
+
╚═╝ ╚═╝ ╚═════╝ ╚══════╝
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
[](https://github.com/jachinsamuel/Ace/releases)
|
|
13
|
+
[](https://pypi.org/project/ace-git-copilot/)
|
|
14
|
+
[](https://pypi.org/project/ace-git-copilot/)
|
|
15
|
+
[](https://pypi.org/project/ace-git-copilot/)
|
|
16
|
+
[](https://opensource.org/licenses/MIT)
|
|
17
|
+
[](https://github.com/jachinsamuel/Ace/stargazers)
|
|
18
|
+
[](https://github.com/jachinsamuel/Ace/issues)
|
|
19
|
+
|
|
20
|
+
Ace is an intelligent command-line copilot that brings AI assistance directly to your Git workflow. Talk to Git in plain English — Ace translates your intents into Git commands, explains what it is doing, and runs them safely. It also features universal Git command pass-through and an interactive terminal dashboard (TUI) to manage your repositories effortlessly.
|
|
21
|
+
|
|
22
|
+

|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Features
|
|
27
|
+
|
|
28
|
+
* **Universal Git Pass-Through**: Run ANY standard Git command or custom Git extension directly through Ace (e.g. `ace status`, `ace log --oneline -n 10`, `ace checkout -b feature`, `ace push origin main`, `ace stash pop`).
|
|
29
|
+
* **Natural Language Git Commands**: Translate plain English requests like *"undo my last commit but keep changes"* or *"switch to a new branch called design-updates"* into clean, standard Git operations without needing quotes.
|
|
30
|
+
* **AI-Powered Conventional Commits**: Analyzes staged diffs and generates standardized Conventional Commit messages (`feat:`, `fix:`, `refactor:`, `docs:`, etc.) automatically across both cloud and local offline LLMs.
|
|
31
|
+
* **Custom Shortcuts & Aliases**: Create customized multi-command workflows with `ace alias` (e.g. `ace ship` runs `git add . && ace commit -y && git push`).
|
|
32
|
+
* **Automated Code Review**: Rates code quality on a 10-point scale and identifies bugs, security vulnerabilities, or performance bottlenecks in staged or unstaged diffs.
|
|
33
|
+
* **Interactive Merge Conflict Resolver**: Walks you step-by-step through conflicted files and provides AI-suggested 3-way merged blocks.
|
|
34
|
+
* **Multi-Language / i18n Output**: Localized AI explanations and commit suggestions in 15+ languages (English, Chinese, Spanish, French, German, Japanese, Korean, Hindi, and more).
|
|
35
|
+
* **Interactive TUI Dashboard (`ace dash`)**: Real-time terminal repository browser displaying branch status, commit logs, workspace navigation, and interactive menus.
|
|
36
|
+
* **Repository Health Doctor (`ace doctor`)**: Detects active lock files, detached HEAD states, and oversized untracked files with step-by-step AI recovery guidance.
|
|
37
|
+
* **AI Git Blame (`ace blame`)**: Inspects commit history and diff patches to explain *why* a specific line of code was written or modified.
|
|
38
|
+
* **Rich Repo Statistics (`ace stats`)**: Visualizes commit frequency charts, top contributors, and repository language/extension breakdowns.
|
|
39
|
+
* **Automated Release Changelogs (`ace changelog`)**: Compiles categorized release changelogs in Markdown since the previous tag.
|
|
40
|
+
* **Multi-Repo Daily Standups (`ace standup`)**: Generates structured summaries of your recent contributions across one or more repositories.
|
|
41
|
+
* **Smart Git Hooks (`ace hook`)**: One-command installation for pre-commit review checks and prepare-commit-msg AI drafting.
|
|
42
|
+
* **AI Branch Auto-Squashing (`ace squash`)**: Automatically analyzes commit histories and guides clean interactive rebases.
|
|
43
|
+
* **Built-in Safety System**: Classifies actions into safe, moderate, and destructive tiers with automatic stashing and interactive confirmation guards.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Installation
|
|
48
|
+
|
|
49
|
+
### Option A: Quick 1-Line Installer (Recommended)
|
|
50
|
+
|
|
51
|
+
**Linux & macOS:**
|
|
52
|
+
```bash
|
|
53
|
+
curl -fsSL https://raw.githubusercontent.com/jachinsamuel/Ace/master/install.sh | bash
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Windows (PowerShell):**
|
|
57
|
+
```powershell
|
|
58
|
+
irm https://raw.githubusercontent.com/jachinsamuel/Ace/master/install.ps1 | iex
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
### Option B: Install via standard pip
|
|
64
|
+
```bash
|
|
65
|
+
pip install ace-git-copilot
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
*Note: You can also execute Ace directly through Python module execution:*
|
|
69
|
+
```bash
|
|
70
|
+
python -m ace dash
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Option C: Install via pipx / uv (Isolated)
|
|
74
|
+
```bash
|
|
75
|
+
# via pipx
|
|
76
|
+
pipx install ace-git-copilot
|
|
77
|
+
|
|
78
|
+
# or via uv
|
|
79
|
+
uv tool install ace-git-copilot
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Configuration and AI Providers
|
|
85
|
+
|
|
86
|
+
Launch the interactive configuration wizard:
|
|
87
|
+
```bash
|
|
88
|
+
ace setup
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Ace stores your configuration at `~/.ace/config.toml`. It supports 6 AI model backends:
|
|
92
|
+
|
|
93
|
+
| Provider | Type | Default Model | Key / URL Setup |
|
|
94
|
+
|:---|:---|:---|:---|
|
|
95
|
+
| **NVIDIA NIM** | Cloud (Fast) | `meta/llama-3.1-8b-instruct` | `NVIDIA_API_KEY` (Free at [build.nvidia.com](https://build.nvidia.com/)) |
|
|
96
|
+
| **Ollama** | Local (Private/Offline) | `qwen2.5-coder:7b` | `http://localhost:11434` (Auto-pulled) |
|
|
97
|
+
| **Google Gemini** | Cloud | `gemini-1.5-flash` | `GOOGLE_API_KEY` / `GEMINI_API_KEY` |
|
|
98
|
+
| **OpenAI** | Cloud | `gpt-4o-mini` | `OPENAI_API_KEY` |
|
|
99
|
+
| **Anthropic** | Cloud | `claude-3-5-sonnet-latest` | `ANTHROPIC_API_KEY` |
|
|
100
|
+
| **Custom OpenAI-Compatible** | Cloud / Self-hosted | `custom-model` | `CUSTOM_API_KEY` + `CUSTOM_API_BASE` |
|
|
101
|
+
|
|
102
|
+
You can also switch providers directly in the CLI:
|
|
103
|
+
```bash
|
|
104
|
+
ace config
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Usage Guide
|
|
110
|
+
|
|
111
|
+
### 1. Plain-English Natural Language
|
|
112
|
+
Speak to Git in plain English directly without quotes:
|
|
113
|
+
```bash
|
|
114
|
+
ace stage everything and commit with a message about authentication
|
|
115
|
+
ace undo my last commit but keep the files
|
|
116
|
+
ace switch to a new branch called design-updates
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### 2. Custom Shortcuts (`ace alias`)
|
|
120
|
+
Run pre-configured shortcuts or define your own multi-step workflows:
|
|
121
|
+
```bash
|
|
122
|
+
# Run default shortcut (stages, commits with AI, and pushes)
|
|
123
|
+
ace ship
|
|
124
|
+
|
|
125
|
+
# Create custom shortcut
|
|
126
|
+
ace alias add deploy "git add . && ace commit -y && git push origin staging"
|
|
127
|
+
|
|
128
|
+
# List all shortcuts
|
|
129
|
+
ace alias list
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### 3. Command-Line Reference
|
|
133
|
+
|
|
134
|
+
| Command | Alias / Shorthand | Description |
|
|
135
|
+
|:---|:---|:---|
|
|
136
|
+
| `ace setup` | — | Interactive setup wizard for model providers and language. |
|
|
137
|
+
| `ace stage [files]` | `ace add` | Stage specific files or all untracked changes. |
|
|
138
|
+
| `ace commit` | — | AI Conventional Commit generator (`-y` to skip confirmation). |
|
|
139
|
+
| `ace review` | — | Run AI code review & quality scoring (`--strict` for pre-commit). |
|
|
140
|
+
| `ace resolve` | — | Interactive 3-way merge conflict resolver. |
|
|
141
|
+
| `ace explain <query>` | — | Explain Git concepts, error messages, or commands. |
|
|
142
|
+
| `ace doctor` | — | Run repository diagnostics (locks, detached HEAD, large files). |
|
|
143
|
+
| `ace hook <action>` | — | Install or uninstall pre-commit and prepare-commit-msg hooks. |
|
|
144
|
+
| `ace stats` | — | Visualize repository activity, contributors, and extensions. |
|
|
145
|
+
| `ace changelog` | — | Generate categorized release notes since last tag. |
|
|
146
|
+
| `ace standup` | — | Generate structured daily standup report from recent commits. |
|
|
147
|
+
| `ace blame <file> <line>`| — | Explain the purpose and context behind a specific line of code. |
|
|
148
|
+
| `ace pr` | — | Draft a Markdown pull request title and description. |
|
|
149
|
+
| `ace search <query>` | — | Semantically search commit history with interactive checkout. |
|
|
150
|
+
| `ace squash` | — | Analyze branch history and perform AI-guided rebasing. |
|
|
151
|
+
| `ace ignore <pattern>` | — | Generate and append rules to `.gitignore`. |
|
|
152
|
+
| `ace alias <action>` | — | Manage custom command workflows (`list`, `add`, `remove`). |
|
|
153
|
+
| `ace undo` | — | Safely roll back the previous Git action with automated safety checks. |
|
|
154
|
+
| `ace workspace` | `ace ws` | Multi-repository cockpit to monitor workspace directories. |
|
|
155
|
+
| `ace dash` | — | Launch the interactive Terminal User Interface (TUI). |
|
|
156
|
+
| `ace config` | — | View active configuration settings and active provider. |
|
|
157
|
+
| `ace help` | — | Display command reference and usage guide. |
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## Interactive Terminal Dashboard (TUI)
|
|
162
|
+
|
|
163
|
+
Launch the repository management cockpit:
|
|
164
|
+
```bash
|
|
165
|
+
ace dash
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+

|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Repository Statistics (`ace stats`)
|
|
173
|
+
|
|
174
|
+
View visual commit timelines, contributor breakdowns, and file extension distributions:
|
|
175
|
+
|
|
176
|
+

|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Star History
|
|
181
|
+
|
|
182
|
+
[](https://star-history.com/#jachinsamuel/Ace&Date)
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## Contributing
|
|
187
|
+
|
|
188
|
+
Contributions, bug reports, and feature requests are always welcome! Check out our [Contributing Guide](CONTRIBUTING.md) and [Issue Templates](.github/ISSUE_TEMPLATE) to get started.
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## License
|
|
193
|
+
|
|
194
|
+
Distributed under the MIT License. See [LICENSE](LICENSE) for more details.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.7.4"
|
|
@@ -101,4 +101,33 @@ class CommitGenerator:
|
|
|
101
101
|
break
|
|
102
102
|
message = "\n".join(lines).strip()
|
|
103
103
|
|
|
104
|
+
# Ensure Conventional Commit format on subject line (especially for local Ollama models)
|
|
105
|
+
if format_type == "conventional" and message:
|
|
106
|
+
msg_lines = message.splitlines()
|
|
107
|
+
first_line = msg_lines[0].strip()
|
|
108
|
+
|
|
109
|
+
# Conventional commit regex pattern: <type>(<scope>): <subject> or <type>: <subject>
|
|
110
|
+
conv_pattern = r"^(feat|fix|docs|style|refactor|perf|test|build|ci|chore)(\([a-zA-Z0-9_\-/\.]+\))?!?: .+"
|
|
111
|
+
if not re.match(conv_pattern, first_line):
|
|
112
|
+
lower_first = first_line.lower()
|
|
113
|
+
staged_files = status.get("staged", [])
|
|
114
|
+
|
|
115
|
+
if any(f.endswith((".md", ".rst", ".txt")) for f in staged_files):
|
|
116
|
+
inferred_type = "docs"
|
|
117
|
+
elif any("test" in f.lower() for f in staged_files):
|
|
118
|
+
inferred_type = "test"
|
|
119
|
+
elif any(f.startswith((".github", "Dockerfile", "pyproject.toml")) for f in staged_files):
|
|
120
|
+
inferred_type = "build"
|
|
121
|
+
elif any(k in lower_first for k in ("fix", "bug", "error", "repair", "resolve", "correct")):
|
|
122
|
+
inferred_type = "fix"
|
|
123
|
+
elif any(k in lower_first for k in ("refactor", "clean", "simplify", "restructure", "optimize")):
|
|
124
|
+
inferred_type = "refactor"
|
|
125
|
+
else:
|
|
126
|
+
inferred_type = "feat"
|
|
127
|
+
|
|
128
|
+
# Un-capitalize first letter of subject
|
|
129
|
+
subj = first_line[0].lower() + first_line[1:] if first_line else first_line
|
|
130
|
+
msg_lines[0] = f"{inferred_type}: {subj}"
|
|
131
|
+
message = "\n".join(msg_lines).strip()
|
|
132
|
+
|
|
104
133
|
return message
|
|
@@ -113,7 +113,7 @@ class ConflictResolver:
|
|
|
113
113
|
norm_content = norm_content.replace(norm_block, replacement, 1)
|
|
114
114
|
# Restore Windows line endings if they were originally present
|
|
115
115
|
if "\r\n" in content:
|
|
116
|
-
content = norm_content.replace("\n", "\r\n")
|
|
116
|
+
content = norm_content.replace("\r\n", "\n").replace("\r", "").replace("\n", "\r\n")
|
|
117
117
|
else:
|
|
118
118
|
content = norm_content
|
|
119
119
|
else:
|
|
@@ -8,6 +8,10 @@ Format structure:
|
|
|
8
8
|
|
|
9
9
|
<body>
|
|
10
10
|
|
|
11
|
+
CRITICAL REQUIREMENT:
|
|
12
|
+
The VERY FIRST LINE of your response MUST begin with a conventional commit prefix (e.g. `feat:`, `fix:`, `refactor:`, `docs:`, `style:`, `chore:`, `perf:`).
|
|
13
|
+
NEVER output plain titles or sentences like "Update Reactor Arc Visualization" without a type prefix.
|
|
14
|
+
|
|
11
15
|
Rules:
|
|
12
16
|
1. Type must be one of the following:
|
|
13
17
|
- feat: A new feature
|
|
@@ -21,14 +25,27 @@ Rules:
|
|
|
21
25
|
- ci: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, Greenkeeper)
|
|
22
26
|
- chore: Other changes that don't modify src or test files
|
|
23
27
|
2. Scope is optional but highly recommended. It should represent the module or component affected (e.g., auth, api, db, ui, core). Use lowercase.
|
|
24
|
-
3. Subject line
|
|
28
|
+
3. Subject line MUST start with `<type>(<scope>): ` or `<type>: `. NEVER start with plain sentences like "Update README..." or "Added feature...".
|
|
29
|
+
4. Subject line must:
|
|
25
30
|
- Be under 72 characters
|
|
26
|
-
- Use
|
|
27
|
-
- Don't capitalize the first letter of the subject
|
|
31
|
+
- Use imperative, present tense: "change", not "changed" nor "changes"
|
|
32
|
+
- Don't capitalize the first letter of the subject after the colon
|
|
28
33
|
- Do not end with a period
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
34
|
+
5. The body is optional but should be generated for non-trivial commits. It should list key bullet points describing specific details of what was changed. Use a blank line between the subject and the body.
|
|
35
|
+
6. Do NOT include markdown code blocks (e.g. ```) or conversational intro headers. Return ONLY the raw commit message.
|
|
36
|
+
|
|
37
|
+
Examples of required output structure:
|
|
38
|
+
|
|
39
|
+
Example 1:
|
|
40
|
+
feat(ui): add cyber-snake game component
|
|
41
|
+
|
|
42
|
+
- Implement energy orb collection logic
|
|
43
|
+
- Add responsive touch controls for mobile devices
|
|
44
|
+
|
|
45
|
+
Example 2:
|
|
46
|
+
docs(readme): update project details and links
|
|
47
|
+
|
|
48
|
+
- Refresh overview badges and links
|
|
32
49
|
|
|
33
50
|
Context about the repository and the branch is provided below to help you choose the best type and scope.
|
|
34
51
|
""".strip()
|