github-agent 0.7.1__tar.gz → 0.9.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 (25) hide show
  1. {github_agent-0.7.1 → github_agent-0.9.0}/PKG-INFO +3 -3
  2. {github_agent-0.7.1 → github_agent-0.9.0}/README.md +1 -1
  3. {github_agent-0.7.1 → github_agent-0.9.0}/github_agent/agent_server.py +1 -1
  4. {github_agent-0.7.1 → github_agent-0.9.0}/github_agent.egg-info/PKG-INFO +3 -3
  5. {github_agent-0.7.1 → github_agent-0.9.0}/github_agent.egg-info/SOURCES.txt +1 -0
  6. github_agent-0.9.0/github_agent.egg-info/requires.txt +5 -0
  7. {github_agent-0.7.1 → github_agent-0.9.0}/github_agent.egg-info/top_level.txt +1 -0
  8. {github_agent-0.7.1 → github_agent-0.9.0}/pyproject.toml +2 -2
  9. github_agent-0.9.0/tests/test_concept_parity.py +79 -0
  10. github_agent-0.7.1/github_agent.egg-info/requires.txt +0 -5
  11. {github_agent-0.7.1 → github_agent-0.9.0}/LICENSE +0 -0
  12. {github_agent-0.7.1 → github_agent-0.9.0}/github_agent/__init__.py +0 -0
  13. {github_agent-0.7.1 → github_agent-0.9.0}/github_agent/__main__.py +0 -0
  14. {github_agent-0.7.1 → github_agent-0.9.0}/github_agent/api_client.py +0 -0
  15. {github_agent-0.7.1 → github_agent-0.9.0}/github_agent/auth.py +0 -0
  16. {github_agent-0.7.1 → github_agent-0.9.0}/github_agent/github_input_models.py +0 -0
  17. {github_agent-0.7.1 → github_agent-0.9.0}/github_agent/github_response_models.py +0 -0
  18. {github_agent-0.7.1 → github_agent-0.9.0}/github_agent/mcp_config.json +0 -0
  19. {github_agent-0.7.1 → github_agent-0.9.0}/github_agent/mcp_server.py +0 -0
  20. {github_agent-0.7.1 → github_agent-0.9.0}/github_agent.egg-info/dependency_links.txt +0 -0
  21. {github_agent-0.7.1 → github_agent-0.9.0}/github_agent.egg-info/entry_points.txt +0 -0
  22. {github_agent-0.7.1 → github_agent-0.9.0}/scripts/validate_a2a_agent.py +0 -0
  23. {github_agent-0.7.1 → github_agent-0.9.0}/setup.cfg +0 -0
  24. {github_agent-0.7.1 → github_agent-0.9.0}/tests/test_github_agent_api_brute_force_coverage.py +0 -0
  25. {github_agent-0.7.1 → github_agent-0.9.0}/tests/test_github_agent_brute_force_coverage.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: github-agent
3
- Version: 0.7.1
3
+ Version: 0.9.0
4
4
  Summary: GitHub Agent for MCP
5
5
  Author-email: Audel Rouhi <knucklessg1@gmail.com>
6
6
  License: MIT
@@ -12,7 +12,7 @@ Classifier: Programming Language :: Python :: 3
12
12
  Requires-Python: <3.14,>=3.11
13
13
  Description-Content-Type: text/markdown
14
14
  License-File: LICENSE
15
- Requires-Dist: agent-utilities[agent,logfire]>=0.6.2
15
+ Requires-Dist: agent-utilities[agent,logfire]>=0.9.0
16
16
  Provides-Extra: test
17
17
  Requires-Dist: pytest; extra == "test"
18
18
  Requires-Dist: pytest-asyncio; extra == "test"
@@ -41,7 +41,7 @@ Dynamic: license-file
41
41
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/github-agent)
42
42
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/github-agent)
43
43
 
44
- *Version: 0.7.1*
44
+ *Version: 0.9.0*
45
45
 
46
46
  ## Overview
47
47
 
@@ -21,7 +21,7 @@
21
21
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/github-agent)
22
22
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/github-agent)
23
23
 
24
- *Version: 0.7.1*
24
+ *Version: 0.9.0*
25
25
 
26
26
  ## Overview
27
27
 
@@ -12,7 +12,7 @@ from agent_utilities import (
12
12
  load_identity,
13
13
  )
14
14
 
15
- __version__ = "0.7.1"
15
+ __version__ = "0.9.0"
16
16
 
17
17
  logging.basicConfig(
18
18
  level=logging.INFO,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: github-agent
3
- Version: 0.7.1
3
+ Version: 0.9.0
4
4
  Summary: GitHub Agent for MCP
5
5
  Author-email: Audel Rouhi <knucklessg1@gmail.com>
6
6
  License: MIT
@@ -12,7 +12,7 @@ Classifier: Programming Language :: Python :: 3
12
12
  Requires-Python: <3.14,>=3.11
13
13
  Description-Content-Type: text/markdown
14
14
  License-File: LICENSE
15
- Requires-Dist: agent-utilities[agent,logfire]>=0.6.2
15
+ Requires-Dist: agent-utilities[agent,logfire]>=0.9.0
16
16
  Provides-Extra: test
17
17
  Requires-Dist: pytest; extra == "test"
18
18
  Requires-Dist: pytest-asyncio; extra == "test"
@@ -41,7 +41,7 @@ Dynamic: license-file
41
41
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/github-agent)
42
42
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/github-agent)
43
43
 
44
- *Version: 0.7.1*
44
+ *Version: 0.9.0*
45
45
 
46
46
  ## Overview
47
47
 
@@ -17,5 +17,6 @@ github_agent.egg-info/entry_points.txt
17
17
  github_agent.egg-info/requires.txt
18
18
  github_agent.egg-info/top_level.txt
19
19
  scripts/validate_a2a_agent.py
20
+ tests/test_concept_parity.py
20
21
  tests/test_github_agent_api_brute_force_coverage.py
21
22
  tests/test_github_agent_brute_force_coverage.py
@@ -0,0 +1,5 @@
1
+ agent-utilities[agent,logfire]>=0.9.0
2
+
3
+ [test]
4
+ pytest
5
+ pytest-asyncio
@@ -1,4 +1,5 @@
1
1
  dist
2
+ docs
2
3
  github_agent
3
4
  scripts
4
5
  tests
@@ -4,12 +4,12 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "github-agent"
7
- version = "0.7.1"
7
+ version = "0.9.0"
8
8
  readme = "README.md"
9
9
  description = "GitHub Agent for MCP"
10
10
  requires-python = ">=3.11, <3.14"
11
11
  classifiers = [ "Development Status :: 5 - Production/Stable", "License :: Public Domain", "Environment :: Console", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3",]
12
- dependencies = [ "agent-utilities[agent,logfire]>=0.6.2",]
12
+ dependencies = [ "agent-utilities[agent,logfire]>=0.9.0",]
13
13
  [[project.authors]]
14
14
  name = "Audel Rouhi"
15
15
  email = "knucklessg1@gmail.com"
@@ -0,0 +1,79 @@
1
+ import os
2
+ import re
3
+
4
+ import pytest
5
+
6
+ # Paths
7
+ ROOT_DIR = '/home/apps/workspace/agent-packages/agents/github-agent'
8
+ WORKSPACE_DIR = '/home/apps/workspace/agent-packages'
9
+ MASTER_OVERVIEW_PATH = os.path.join(WORKSPACE_DIR, 'agent-utilities', 'docs', 'overview.md')
10
+
11
+
12
+ def extract_concepts_from_overview(filepath):
13
+ """Extracts concepts from the markdown table in the master overview.md"""
14
+ if not os.path.exists(filepath):
15
+ return set()
16
+
17
+ concepts = set()
18
+ with open(filepath, 'r', encoding='utf-8') as f:
19
+ for line in f:
20
+ if not line.strip().startswith('|'):
21
+ continue
22
+ if 'Pillar | Sub-Concept' in line or '|---|' in line:
23
+ continue
24
+
25
+ parts = [p.strip() for p in line.split('|')]
26
+ if len(parts) >= 5:
27
+ raw_id = parts[1].replace('*', '').strip()
28
+ if re.match(r'^[A-Z]+-\d+(?:\.\d+)?$', raw_id):
29
+ concepts.add(raw_id)
30
+ return concepts
31
+
32
+
33
+ def extract_concepts_from_codebase(directory):
34
+ """Recursively scans source files in the project for CONCEPT:ID tags."""
35
+ found_concepts = set()
36
+ for root, _, files in os.walk(directory):
37
+ if 'node_modules' in root or '.venv' in root or '.git' in root or '__pycache__' in root:
38
+ continue
39
+
40
+ for file in files:
41
+ if file.endswith(('.py', '.ts', '.tsx', '.md')):
42
+ filepath = os.path.join(root, file)
43
+ try:
44
+ with open(filepath, 'r', encoding='utf-8') as f:
45
+ content = f.read()
46
+ matches = re.findall(r'CONCEPT:([A-Z]+-\d+(?:\.\d+)?)', content)
47
+ found_concepts.update(matches)
48
+ except Exception:
49
+ pass
50
+ return found_concepts
51
+
52
+
53
+ def test_concept_parity():
54
+ """
55
+ Enforces that all concepts documented or used in github-agent
56
+ exist in the master agent-utilities registry.
57
+ """
58
+ master_concepts = extract_concepts_from_overview(MASTER_OVERVIEW_PATH)
59
+
60
+ # Extract concepts from this project
61
+ local_codebase_concepts = extract_concepts_from_codebase(ROOT_DIR)
62
+
63
+
64
+ # Only enforce parity for agent-utilities 5-Pillar concepts
65
+ # Project-specific concepts (SX-*, AU-*, CE-*, TP-*, CA-*, etc.) are excluded
66
+ agent_utilities_pillars = ('ORCH-', 'KG-', 'AHE-', 'ECO-', 'OS-')
67
+ local_codebase_concepts = {c for c in local_codebase_concepts if c.startswith(agent_utilities_pillars)}
68
+
69
+ # Ignore legacy KG-00x concepts
70
+ local_codebase_concepts = {c for c in local_codebase_concepts if not c.startswith('KG-00')}
71
+
72
+ # Ensure every concept used locally is registered in the master overview.md
73
+ unregistered_concepts = local_codebase_concepts - master_concepts
74
+
75
+ assert not unregistered_concepts, (
76
+ f"The following concepts are used in github-agent but are NOT registered "
77
+ f"in the master agent-utilities/docs/overview.md registry: {unregistered_concepts}. "
78
+ f"Please register them first."
79
+ )
@@ -1,5 +0,0 @@
1
- agent-utilities[agent,logfire]>=0.6.2
2
-
3
- [test]
4
- pytest
5
- pytest-asyncio
File without changes
File without changes