project-brain-cli 1.0.0__tar.gz → 1.1.0__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 (51) hide show
  1. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/PKG-INFO +14 -2
  2. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/README.md +2 -0
  3. project_brain_cli-1.1.0/pyproject.toml +64 -0
  4. project_brain_cli-1.1.0/src/project_brain/__init__.py +1 -0
  5. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain/cli.py +43 -4
  6. project_brain_cli-1.1.0/src/project_brain/community.py +26 -0
  7. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain/core/config_loader.py +3 -3
  8. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain_cli.egg-info/PKG-INFO +14 -2
  9. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain_cli.egg-info/SOURCES.txt +1 -0
  10. project_brain_cli-1.0.0/pyproject.toml +0 -40
  11. project_brain_cli-1.0.0/src/project_brain/__init__.py +0 -1
  12. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/LICENSE +0 -0
  13. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/setup.cfg +0 -0
  14. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain/cli_help.py +0 -0
  15. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain/cli_ui.py +0 -0
  16. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain/config/__init__.py +0 -0
  17. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain/core/__init__.py +0 -0
  18. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain/core/analyzer.py +0 -0
  19. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain/core/differ.py +0 -0
  20. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain/core/doctor.py +0 -0
  21. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain/core/doctor_checks/analysis.py +0 -0
  22. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain/core/doctor_checks/environment.py +0 -0
  23. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain/core/doctor_checks/exports.py +0 -0
  24. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain/core/doctor_checks/llm.py +0 -0
  25. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain/core/doctor_checks/models.py +0 -0
  26. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain/core/doctor_checks/repository.py +0 -0
  27. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain/core/explainer.py +0 -0
  28. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain/core/explainer_file.py +0 -0
  29. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain/core/exporter.py +0 -0
  30. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain/core/logger.py +0 -0
  31. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain/core/results.py +0 -0
  32. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain/core/summarizer.py +0 -0
  33. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain/llm/__init__.py +0 -0
  34. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain/llm/provider.py +0 -0
  35. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain/storage/__init__.py +0 -0
  36. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain/storage/storage.py +0 -0
  37. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain_cli.egg-info/dependency_links.txt +0 -0
  38. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain_cli.egg-info/entry_points.txt +0 -0
  39. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain_cli.egg-info/requires.txt +0 -0
  40. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/src/project_brain_cli.egg-info/top_level.txt +0 -0
  41. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/tests/test_advanced_cli.py +0 -0
  42. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/tests/test_advanced_config.py +0 -0
  43. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/tests/test_advanced_diff.py +0 -0
  44. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/tests/test_advanced_edge_cases.py +0 -0
  45. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/tests/test_advanced_explain.py +0 -0
  46. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/tests/test_advanced_export.py +0 -0
  47. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/tests/test_advanced_logging.py +0 -0
  48. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/tests/test_analyzer.py +0 -0
  49. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/tests/test_cli.py +0 -0
  50. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/tests/test_config.py +0 -0
  51. {project_brain_cli-1.0.0 → project_brain_cli-1.1.0}/tests/test_diff.py +0 -0
@@ -1,9 +1,19 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: project-brain-cli
3
- Version: 1.0.0
4
- Summary: CLI-first developer intelligence tool
3
+ Version: 1.1.0
4
+ Summary: Local-first developer intelligence CLI for semantic repository analysis and Git diff understanding.
5
5
  Author: Srujan Amaragatti
6
6
  License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/Srujan-Amaragatti05/project-brain
8
+ Project-URL: Repository, https://github.com/Srujan-Amaragatti05/project-brain
9
+ Project-URL: Issues, https://github.com/Srujan-Amaragatti05/project-brain/issues
10
+ Project-URL: Discussions, https://github.com/Srujan-Amaragatti05/project-brain/discussions
11
+ Keywords: cli,git,ast,developer-tools,code-analysis,llm,developer-productivity
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Environment :: Console
15
+ Classifier: Topic :: Software Development
16
+ Classifier: Topic :: Software Development :: Version Control :: Git
7
17
  Requires-Python: >=3.10
8
18
  Description-Content-Type: text/markdown
9
19
  License-File: LICENSE
@@ -25,6 +35,8 @@ Dynamic: license-file
25
35
  ![License](https://img.shields.io/badge/license-MIT-green)
26
36
  ![Status](https://img.shields.io/badge/status-active-success)
27
37
  ![Tests](https://github.com/Srujan-Amaragatti05/project-brain/actions/workflows/tests.yml/badge.svg)
38
+ ![PyPI](https://img.shields.io/pypi/v/project-brain-cli)
39
+ ![Downloads](https://img.shields.io/pypi/dm/project-brain-cli)
28
40
 
29
41
  ---
30
42
 
@@ -7,6 +7,8 @@
7
7
  ![License](https://img.shields.io/badge/license-MIT-green)
8
8
  ![Status](https://img.shields.io/badge/status-active-success)
9
9
  ![Tests](https://github.com/Srujan-Amaragatti05/project-brain/actions/workflows/tests.yml/badge.svg)
10
+ ![PyPI](https://img.shields.io/pypi/v/project-brain-cli)
11
+ ![Downloads](https://img.shields.io/pypi/dm/project-brain-cli)
10
12
 
11
13
  ---
12
14
 
@@ -0,0 +1,64 @@
1
+ [build-system]
2
+ requires = ["setuptools>=65", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "project-brain-cli"
7
+ dynamic = ["version"]
8
+ description = "Local-first developer intelligence CLI for semantic repository analysis and Git diff understanding."
9
+ readme = "README.md"
10
+ authors = [
11
+ { name = "Srujan Amaragatti" }
12
+ ]
13
+ license = "MIT"
14
+ license-files = ["LICENSE"]
15
+ requires-python = ">=3.10"
16
+ dependencies = [
17
+ "typer",
18
+ "rich",
19
+ "PyYAML",
20
+ "requests"
21
+ ]
22
+
23
+ keywords = [
24
+ "cli",
25
+ "git",
26
+ "ast",
27
+ "developer-tools",
28
+ "code-analysis",
29
+ "llm",
30
+ "developer-productivity",
31
+ ]
32
+
33
+ classifiers = [
34
+ "Programming Language :: Python :: 3",
35
+ "Programming Language :: Python :: 3.10",
36
+ "Environment :: Console",
37
+ "Topic :: Software Development",
38
+ "Topic :: Software Development :: Version Control :: Git",
39
+ ]
40
+
41
+ [project.urls]
42
+ Homepage = "https://github.com/Srujan-Amaragatti05/project-brain"
43
+ Repository = "https://github.com/Srujan-Amaragatti05/project-brain"
44
+ Issues = "https://github.com/Srujan-Amaragatti05/project-brain/issues"
45
+ Discussions = "https://github.com/Srujan-Amaragatti05/project-brain/discussions"
46
+
47
+ [tool.setuptools.dynamic]
48
+ version = {attr = "project_brain.__version__"}
49
+
50
+ [project.scripts]
51
+ project-brain = "project_brain.cli:main"
52
+ brain = "project_brain.cli:main"
53
+
54
+ [tool.setuptools]
55
+ package-dir = {"" = "src"}
56
+
57
+ [tool.setuptools.packages.find]
58
+ where = ["src"]
59
+
60
+ [project.optional-dependencies]
61
+ dev = [
62
+ "pytest",
63
+ "pytest-cov"
64
+ ]
@@ -0,0 +1 @@
1
+ __version__ = "1.1.0"
@@ -11,6 +11,7 @@ import typer.rich_utils
11
11
  from rich.console import Console
12
12
  from rich.panel import Panel
13
13
 
14
+ from project_brain import __version__
14
15
  from project_brain.core.analyzer import analyze_project
15
16
  from project_brain.core.config_loader import (DEFAULT_CONFIG, dump_config,
16
17
  load_config)
@@ -42,6 +43,8 @@ from project_brain.cli_ui import (
42
43
  doctor_panel,
43
44
  )
44
45
 
46
+ from project_brain.community import open_feedback
47
+
45
48
  typer.rich_utils.STYLE_HELPTEXT = "bold"
46
49
  typer.rich_utils.STYLE_OPTIONS_PANEL_BORDER = "cyan"
47
50
  typer.rich_utils.STYLE_COMMANDS_PANEL_BORDER = "cyan"
@@ -80,23 +83,29 @@ llm_app = typer.Typer(
80
83
  no_args_is_help=True,
81
84
  )
82
85
 
86
+ community_app = typer.Typer(
87
+ help="Community and ecosystem resources.",
88
+ no_args_is_help=False,
89
+ )
90
+
83
91
  app.add_typer(project_app, name="project")
84
92
  app.add_typer(diff_app, name="diff")
85
93
  app.add_typer(export_app, name="export")
86
94
  app.add_typer(llm_app, name="testllm")
95
+ app.add_typer(community_app, name="community")
87
96
 
88
97
 
89
98
  def version_callback(value: bool):
90
99
  if value:
91
100
  try:
92
- version = importlib.metadata.version("project-brain")
101
+ version = __version__
93
102
  except Exception:
94
103
  version = "unknown"
95
104
  typer.echo(f"project-brain version: {version}")
96
105
  raise typer.Exit()
97
106
 
98
107
 
99
- @app.callback()
108
+ @app.callback(invoke_without_command=True)
100
109
  def main_callback(
101
110
  version: bool = typer.Option(
102
111
  False,
@@ -105,9 +114,17 @@ def main_callback(
105
114
  callback=version_callback,
106
115
  is_eager=True,
107
116
  help="Show version and exit",
108
- )
117
+ ),
118
+ feedback: bool = typer.Option(
119
+ False,
120
+ "--feedback",
121
+ help="Open GitHub Discussions page",
122
+ is_eager=True,
123
+ ),
109
124
  ):
110
- """ project-brain CLI entrypoint """
125
+ if feedback:
126
+ open_feedback()
127
+ raise typer.Exit()
111
128
 
112
129
 
113
130
  def require_git_repo(root: Path):
@@ -635,6 +652,28 @@ def test():
635
652
  typer.echo(f"✅ Output: {result['output']}")
636
653
  typer.echo(f"📦 Models: {result['models'][:5]}")
637
654
 
655
+ @community_app.callback(invoke_without_command=True)
656
+ def community():
657
+ panel = Panel.fit(
658
+ """
659
+ [bold cyan]GitHub[/bold cyan]
660
+ https://github.com/Srujan-Amaragatti05/project-brain
661
+
662
+ [bold cyan]PyPI[/bold cyan]
663
+ https://pypi.org/project/project-brain-cli/
664
+
665
+ [bold cyan]Discussions[/bold cyan]
666
+ https://github.com/Srujan-Amaragatti05/project-brain/discussions
667
+
668
+ [bold cyan]Issues[/bold cyan]
669
+ https://github.com/Srujan-Amaragatti05/project-brain/issues
670
+ """,
671
+ title="🧠 project-brain Community",
672
+ border_style="cyan",
673
+ )
674
+
675
+ console.print(panel)
676
+
638
677
 
639
678
  def main():
640
679
  app()
@@ -0,0 +1,26 @@
1
+ import webbrowser
2
+ from rich.console import Console
3
+
4
+ console = Console()
5
+
6
+ DISCUSSIONS_URL = (
7
+ "https://github.com/Srujan-Amaragatti05/project-brain/discussions"
8
+ )
9
+
10
+
11
+ def open_feedback():
12
+ try:
13
+ opened = webbrowser.open(DISCUSSIONS_URL)
14
+
15
+ if opened:
16
+ console.print(
17
+ "[green]Opened GitHub Discussions in browser.[/green]"
18
+ )
19
+ else:
20
+ raise RuntimeError()
21
+
22
+ except Exception:
23
+ console.print(
24
+ "[yellow]Unable to open browser automatically.[/yellow]"
25
+ )
26
+ console.print(f"\nFeedback URL:\n{DISCUSSIONS_URL}")
@@ -6,7 +6,7 @@ import yaml
6
6
  from project_brain.core.logger import log_warning
7
7
 
8
8
  DEFAULT_CONFIG = {
9
- "version": "1.0",
9
+ "version": "1.1.0",
10
10
  "llm": {
11
11
  "provider": "none",
12
12
  "model": "",
@@ -24,7 +24,7 @@ DEFAULT_CONFIG = {
24
24
  "__pycache__/",
25
25
  "env/",
26
26
  ".env/",
27
- "*.egg-info/",
27
+ "project_brain_cli.egg-info/",
28
28
  "tests/",
29
29
  "test/",
30
30
  ],
@@ -54,7 +54,7 @@ DEFAULT_CONFIG = {
54
54
  "__pycache__/",
55
55
  "env/",
56
56
  ".env/",
57
- "*.egg-info/",
57
+ "project_brain_cli.egg-info/",
58
58
  "tests/",
59
59
  "test/",
60
60
  ],
@@ -1,9 +1,19 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: project-brain-cli
3
- Version: 1.0.0
4
- Summary: CLI-first developer intelligence tool
3
+ Version: 1.1.0
4
+ Summary: Local-first developer intelligence CLI for semantic repository analysis and Git diff understanding.
5
5
  Author: Srujan Amaragatti
6
6
  License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/Srujan-Amaragatti05/project-brain
8
+ Project-URL: Repository, https://github.com/Srujan-Amaragatti05/project-brain
9
+ Project-URL: Issues, https://github.com/Srujan-Amaragatti05/project-brain/issues
10
+ Project-URL: Discussions, https://github.com/Srujan-Amaragatti05/project-brain/discussions
11
+ Keywords: cli,git,ast,developer-tools,code-analysis,llm,developer-productivity
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Environment :: Console
15
+ Classifier: Topic :: Software Development
16
+ Classifier: Topic :: Software Development :: Version Control :: Git
7
17
  Requires-Python: >=3.10
8
18
  Description-Content-Type: text/markdown
9
19
  License-File: LICENSE
@@ -25,6 +35,8 @@ Dynamic: license-file
25
35
  ![License](https://img.shields.io/badge/license-MIT-green)
26
36
  ![Status](https://img.shields.io/badge/status-active-success)
27
37
  ![Tests](https://github.com/Srujan-Amaragatti05/project-brain/actions/workflows/tests.yml/badge.svg)
38
+ ![PyPI](https://img.shields.io/pypi/v/project-brain-cli)
39
+ ![Downloads](https://img.shields.io/pypi/dm/project-brain-cli)
28
40
 
29
41
  ---
30
42
 
@@ -5,6 +5,7 @@ src/project_brain/__init__.py
5
5
  src/project_brain/cli.py
6
6
  src/project_brain/cli_help.py
7
7
  src/project_brain/cli_ui.py
8
+ src/project_brain/community.py
8
9
  src/project_brain/config/__init__.py
9
10
  src/project_brain/core/__init__.py
10
11
  src/project_brain/core/analyzer.py
@@ -1,40 +0,0 @@
1
- [build-system]
2
- requires = ["setuptools>=65", "wheel"]
3
- build-backend = "setuptools.build_meta"
4
-
5
- [project]
6
- name = "project-brain-cli"
7
- dynamic = ["version"]
8
- description = "CLI-first developer intelligence tool"
9
- readme = "README.md"
10
- authors = [
11
- { name = "Srujan Amaragatti" }
12
- ]
13
- license = "MIT"
14
- license-files = ["LICENSE"]
15
- requires-python = ">=3.10"
16
- dependencies = [
17
- "typer",
18
- "rich",
19
- "PyYAML",
20
- "requests"
21
- ]
22
-
23
- [tool.setuptools.dynamic]
24
- version = {attr = "project_brain.__version__"}
25
-
26
- [project.scripts]
27
- project-brain = "project_brain.cli:main"
28
- brain = "project_brain.cli:main"
29
-
30
- [tool.setuptools]
31
- package-dir = {"" = "src"}
32
-
33
- [tool.setuptools.packages.find]
34
- where = ["src"]
35
-
36
- [project.optional-dependencies]
37
- dev = [
38
- "pytest",
39
- "pytest-cov"
40
- ]
@@ -1 +0,0 @@
1
- __version__ = "1.0.0"