github-agent 0.2.48__tar.gz → 0.2.54__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.
- {github_agent-0.2.48 → github_agent-0.2.54}/PKG-INFO +2 -2
- {github_agent-0.2.48 → github_agent-0.2.54}/README.md +1 -1
- github_agent-0.2.54/github_agent/agent_data/A2A_AGENTS.md +12 -0
- {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/agent_data/IDENTITY.md +3 -3
- github_agent-0.2.54/github_agent/agent_data/MCP_AGENTS.md +21 -0
- github_agent-0.2.54/github_agent/agent_data/mcp_config.json +18 -0
- {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/agent_data/templates.py +5 -6
- {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/agent_server.py +16 -50
- {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/api_wrapper.py +4 -6
- {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/auth.py +1 -1
- {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/github_input_models.py +1 -1
- {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/github_response_models.py +1 -1
- {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/mcp_server.py +31 -6
- {github_agent-0.2.48 → github_agent-0.2.54}/github_agent.egg-info/PKG-INFO +2 -2
- {github_agent-0.2.48 → github_agent-0.2.54}/github_agent.egg-info/SOURCES.txt +1 -1
- {github_agent-0.2.48 → github_agent-0.2.54}/github_agent.egg-info/entry_points.txt +1 -0
- {github_agent-0.2.48 → github_agent-0.2.54}/pyproject.toml +2 -1
- github_agent-0.2.48/github_agent/agent_data/A2A_AGENTS.md +0 -12
- github_agent-0.2.48/github_agent/agent_data/mcp_config.json +0 -10
- github_agent-0.2.48/github_agent/graph_config.py +0 -25
- {github_agent-0.2.48 → github_agent-0.2.54}/LICENSE +0 -0
- {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/__init__.py +0 -0
- {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/__main__.py +0 -0
- {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/agent_data/CRON.md +0 -0
- {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/agent_data/CRON_LOG.md +0 -0
- {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/agent_data/HEARTBEAT.md +0 -0
- {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/agent_data/MEMORY.md +0 -0
- {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/agent_data/USER.md +0 -0
- {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/agent_data/chats +0 -0
- {github_agent-0.2.48 → github_agent-0.2.54}/github_agent/agent_data/icon.png +0 -0
- {github_agent-0.2.48 → github_agent-0.2.54}/github_agent.egg-info/dependency_links.txt +0 -0
- {github_agent-0.2.48 → github_agent-0.2.54}/github_agent.egg-info/requires.txt +0 -0
- {github_agent-0.2.48 → github_agent-0.2.54}/github_agent.egg-info/top_level.txt +0 -0
- {github_agent-0.2.48 → github_agent-0.2.54}/scripts/validate_a2a_agent.py +0 -0
- {github_agent-0.2.48 → github_agent-0.2.54}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: github-agent
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.54
|
|
4
4
|
Summary: GitHub Agent for MCP
|
|
5
5
|
Author-email: Audel Rouhi <knucklessg1@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -38,7 +38,7 @@ Dynamic: license-file
|
|
|
38
38
|

|
|
39
39
|

|
|
40
40
|
|
|
41
|
-
*Version: 0.2.
|
|
41
|
+
*Version: 0.2.54*
|
|
42
42
|
|
|
43
43
|
## Overview
|
|
44
44
|
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# AGENTS.md - Known A2A Peer Agents
|
|
2
|
+
Last updated: 2026-02-21 01:19
|
|
3
|
+
|
|
4
|
+
This file is the local registry of other A2A agents this agent can discover and call.
|
|
5
|
+
|
|
6
|
+
## Registered A2A Peers
|
|
7
|
+
|
|
8
|
+
| Name | Endpoint URL | Description | Capabilities | Auth | Notes / Last Connected |
|
|
9
|
+
|------|--------------|-------------|--------------|------|------------------------|
|
|
10
|
+
| | | | | | |
|
|
11
|
+
|
|
12
|
+
*Add new rows manually or let the agent call `register_a2a_peer(...)`.*
|
|
@@ -18,9 +18,9 @@ You have three primary operational modes:
|
|
|
18
18
|
|
|
19
19
|
#### 1. Context-Aware Delegation
|
|
20
20
|
When dealing with complex Github workflows, optimize your context by spawning specialized versions of yourself:
|
|
21
|
-
- **PR Review**: Call `spawn_agent(
|
|
22
|
-
- **Issue Management**: Call `spawn_agent(
|
|
23
|
-
- **Discovery**: Always use `get_mcp_reference(
|
|
21
|
+
- **PR Review**: Call `spawn_agent(agent_name="github", prompt="Review and summarize PR #456...", enabled_tools=["PULL_REQUESTSTOOL", "REPOSTOOL"])`.
|
|
22
|
+
- **Issue Management**: Call `spawn_agent(agent_name="github", prompt="Triage and label new issues with 'bug'...", enabled_tools=["ISSUESTOOL"])`.
|
|
23
|
+
- **Discovery**: Always use `get_mcp_reference(agent_name="github")` to verify available tool tags before spawning.
|
|
24
24
|
|
|
25
25
|
#### 2. Workflow for Meta-Tasks
|
|
26
26
|
- **Memory Management**:
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# MCP_AGENTS.md - Dynamic Agent Registry
|
|
2
|
+
|
|
3
|
+
This file tracks the generated agents from MCP servers. You can manually modify the 'Tools' list to customize agent expertise.
|
|
4
|
+
|
|
5
|
+
## Agent Mapping Table
|
|
6
|
+
|
|
7
|
+
| Name | Description | System Prompt | Tools | Tag | Source MCP |
|
|
8
|
+
|------|-------------|---------------|-------|-----|------------|
|
|
9
|
+
| Github Contents Specialist | Expert specialist for contents domain tasks. | You are a Github Contents specialist. Help users manage and interact with Contents functionality using the available tools. | github-mcp_contents_toolset | contents | github-mcp |
|
|
10
|
+
| Github Issue Specialist | Expert specialist for issue domain tasks. | You are a Github Issue specialist. Help users manage and interact with Issue functionality using the available tools. | github-mcp_issue_toolset | issue | github-mcp |
|
|
11
|
+
| Github Pulls Specialist | Expert specialist for pulls domain tasks. | You are a Github Pulls specialist. Help users manage and interact with Pulls functionality using the available tools. | github-mcp_pulls_toolset | pulls | github-mcp |
|
|
12
|
+
| Github Repos Specialist | Expert specialist for repos domain tasks. | You are a Github Repos specialist. Help users manage and interact with Repos functionality using the available tools. | github-mcp_repos_toolset | repos | github-mcp |
|
|
13
|
+
|
|
14
|
+
## Tool Inventory Table
|
|
15
|
+
|
|
16
|
+
| Tool Name | Description | Tag | Source |
|
|
17
|
+
|-----------|-------------|-----|--------|
|
|
18
|
+
| github-mcp_contents_toolset | Static hint toolset for contents based on config env. | contents | github-mcp |
|
|
19
|
+
| github-mcp_issue_toolset | Static hint toolset for issue based on config env. | issue | github-mcp |
|
|
20
|
+
| github-mcp_pulls_toolset | Static hint toolset for pulls based on config env. | pulls | github-mcp |
|
|
21
|
+
| github-mcp_repos_toolset | Static hint toolset for repos based on config env. | repos | github-mcp |
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mcpServers": {
|
|
3
|
+
"github-mcp": {
|
|
4
|
+
"command": "github-mcp",
|
|
5
|
+
"args": [
|
|
6
|
+
"--transport",
|
|
7
|
+
"stdio"
|
|
8
|
+
],
|
|
9
|
+
"env": {
|
|
10
|
+
"GITHUB_TOKEN": "${GITHUB_TOKEN}",
|
|
11
|
+
"CONTENTSTOOL": "${ CONTENTSTOOL:-True }",
|
|
12
|
+
"ISSUETOOL": "${ ISSUETOOL:-True }",
|
|
13
|
+
"PULLSTOOL": "${ PULLSTOOL:-True }",
|
|
14
|
+
"REPOSTOOL": "${ REPOSTOOL:-True }"
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -2,7 +2,6 @@ import asyncio
|
|
|
2
2
|
from typing import Dict
|
|
3
3
|
from github_agent.models import PeriodicTask
|
|
4
4
|
|
|
5
|
-
# Core files we care about most
|
|
6
5
|
CORE_FILES = {
|
|
7
6
|
"IDENTITY": "IDENTITY.md",
|
|
8
7
|
"USER": "USER.md",
|
|
@@ -13,11 +12,11 @@ CORE_FILES = {
|
|
|
13
12
|
"MCP_CONFIG": "mcp_config.json",
|
|
14
13
|
}
|
|
15
14
|
|
|
16
|
-
|
|
15
|
+
|
|
17
16
|
tasks: list[PeriodicTask] = []
|
|
18
17
|
lock = asyncio.Lock()
|
|
19
18
|
|
|
20
|
-
|
|
19
|
+
|
|
21
20
|
TEMPLATES: Dict[str, str] = {
|
|
22
21
|
"IDENTITY": """# IDENTITY.md - Who I Am, Core Personality, & Boundaries
|
|
23
22
|
|
|
@@ -66,9 +65,9 @@ This file is the local registry of other A2A agents this agent can discover and
|
|
|
66
65
|
|
|
67
66
|
## Registered A2A Peers
|
|
68
67
|
|
|
69
|
-
| Name
|
|
70
|
-
|
|
71
|
-
|
|
|
68
|
+
| Name | Endpoint URL | Description | Capabilities | Auth | Notes / Last Connected |
|
|
69
|
+
|------|--------------|-------------|--------------|------|------------------------|
|
|
70
|
+
| | | | | | |
|
|
72
71
|
|
|
73
72
|
*Add new rows manually or let the agent call `register_a2a_peer(...)`.*
|
|
74
73
|
""",
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/python
|
|
2
2
|
# coding: utf-8
|
|
3
3
|
import os
|
|
4
|
-
import logging
|
|
5
|
-
|
|
6
4
|
import sys
|
|
5
|
+
import logging
|
|
7
6
|
import warnings
|
|
7
|
+
|
|
8
8
|
from agent_utilities import (
|
|
9
9
|
build_system_prompt_from_workspace,
|
|
10
10
|
create_agent_parser,
|
|
@@ -13,7 +13,7 @@ from agent_utilities import (
|
|
|
13
13
|
load_identity,
|
|
14
14
|
)
|
|
15
15
|
|
|
16
|
-
__version__ = "0.2.
|
|
16
|
+
__version__ = "0.2.54"
|
|
17
17
|
|
|
18
18
|
logging.basicConfig(
|
|
19
19
|
level=logging.INFO,
|
|
@@ -22,13 +22,16 @@ logging.basicConfig(
|
|
|
22
22
|
)
|
|
23
23
|
logger = logging.getLogger(__name__)
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
|
|
26
26
|
initialize_workspace()
|
|
27
27
|
meta = load_identity()
|
|
28
28
|
DEFAULT_AGENT_NAME = os.getenv("DEFAULT_AGENT_NAME", meta.get("name", "Github Agent"))
|
|
29
29
|
DEFAULT_AGENT_DESCRIPTION = os.getenv(
|
|
30
30
|
"AGENT_DESCRIPTION",
|
|
31
|
-
meta.get(
|
|
31
|
+
meta.get(
|
|
32
|
+
"description",
|
|
33
|
+
"AI agent for GitHub Agent management.",
|
|
34
|
+
),
|
|
32
35
|
)
|
|
33
36
|
DEFAULT_AGENT_SYSTEM_PROMPT = os.getenv(
|
|
34
37
|
"AGENT_SYSTEM_PROMPT",
|
|
@@ -36,68 +39,31 @@ DEFAULT_AGENT_SYSTEM_PROMPT = os.getenv(
|
|
|
36
39
|
)
|
|
37
40
|
|
|
38
41
|
|
|
39
|
-
def agent_template(mcp_url: str = None, mcp_config: str = None, **kwargs):
|
|
40
|
-
"""Factory function returning the fully initialized graph for execution."""
|
|
41
|
-
from agent_utilities import create_graph_agent
|
|
42
|
-
from github_agent.graph_config import TAG_PROMPTS, TAG_ENV_VARS
|
|
43
|
-
|
|
44
|
-
# In-process MCP loading: if no external URL/Config, load the local FastMCP instance
|
|
45
|
-
mcp_toolsets = []
|
|
46
|
-
effective_mcp_url = mcp_url or os.getenv("MCP_URL")
|
|
47
|
-
effective_mcp_config = mcp_config or os.getenv("MCP_CONFIG")
|
|
48
|
-
|
|
49
|
-
if not effective_mcp_url and not effective_mcp_config:
|
|
50
|
-
try:
|
|
51
|
-
from github_agent.mcp_server import get_mcp_instance
|
|
52
|
-
|
|
53
|
-
mcp, _, _, _ = get_mcp_instance()
|
|
54
|
-
mcp_toolsets.append(mcp)
|
|
55
|
-
logger.info("Github Agent: Using in-process MCP instance.")
|
|
56
|
-
except (ImportError, Exception) as e:
|
|
57
|
-
logger.warning(f"Github Agent: Could not load in-process MCP: {e}")
|
|
58
|
-
|
|
59
|
-
return create_graph_agent(
|
|
60
|
-
mcp_url=effective_mcp_url,
|
|
61
|
-
mcp_config=effective_mcp_config or "",
|
|
62
|
-
mcp_toolsets=mcp_toolsets,
|
|
63
|
-
name=f"{DEFAULT_AGENT_NAME} Graph Agent",
|
|
64
|
-
tag_prompts=TAG_PROMPTS,
|
|
65
|
-
tag_env_vars=TAG_ENV_VARS,
|
|
66
|
-
**kwargs,
|
|
67
|
-
)
|
|
68
|
-
|
|
69
|
-
|
|
70
42
|
def agent_server():
|
|
71
|
-
|
|
72
|
-
# Suppress RequestsDependencyWarning and FastMCP DeprecationWarnings
|
|
73
43
|
warnings.filterwarnings("ignore", message=".*urllib3.*or chardet.*")
|
|
74
44
|
warnings.filterwarnings("ignore", category=DeprecationWarning, module="fastmcp")
|
|
75
45
|
|
|
76
46
|
print(f"{DEFAULT_AGENT_NAME} v{__version__}", file=sys.stderr)
|
|
77
47
|
parser = create_agent_parser()
|
|
78
|
-
|
|
79
48
|
args = parser.parse_args()
|
|
80
49
|
|
|
81
50
|
if args.debug:
|
|
82
51
|
logging.getLogger().setLevel(logging.DEBUG)
|
|
83
52
|
logger.debug("Debug mode enabled")
|
|
84
53
|
|
|
85
|
-
#
|
|
86
|
-
|
|
54
|
+
# Start server using the auto-discovery pattern (from mcp_config.json)
|
|
55
|
+
create_graph_agent_server(
|
|
56
|
+
mcp_url=args.mcp_url,
|
|
57
|
+
mcp_config=args.mcp_config or "mcp_config.json",
|
|
58
|
+
host=args.host,
|
|
59
|
+
port=args.port,
|
|
87
60
|
provider=args.provider,
|
|
61
|
+
model_id=args.model_id,
|
|
62
|
+
router_model=args.model_id,
|
|
88
63
|
agent_model=args.model_id,
|
|
89
64
|
base_url=args.base_url,
|
|
90
65
|
api_key=args.api_key,
|
|
91
66
|
custom_skills_directory=args.custom_skills_directory,
|
|
92
|
-
debug=args.debug,
|
|
93
|
-
ssl_verify=not args.insecure,
|
|
94
|
-
)
|
|
95
|
-
|
|
96
|
-
# Start server using the pre-built graph bundle
|
|
97
|
-
create_graph_agent_server(
|
|
98
|
-
graph_bundle=graph_bundle,
|
|
99
|
-
host=args.host,
|
|
100
|
-
port=args.port,
|
|
101
67
|
enable_web_ui=args.web,
|
|
102
68
|
enable_otel=args.otel,
|
|
103
69
|
otel_endpoint=args.otel_endpoint,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/python
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
import re
|
|
4
4
|
import requests
|
|
5
5
|
import urllib3
|
|
@@ -73,10 +73,9 @@ class Api(object):
|
|
|
73
73
|
if token:
|
|
74
74
|
self.headers["Authorization"] = f"Bearer {token}"
|
|
75
75
|
else:
|
|
76
|
-
|
|
76
|
+
|
|
77
77
|
logger.warning("No token provided for GitHub API")
|
|
78
78
|
|
|
79
|
-
# Basic health check / auth test
|
|
80
79
|
try:
|
|
81
80
|
response = self._session.get(
|
|
82
81
|
url=f"{self.url}/user",
|
|
@@ -89,7 +88,6 @@ class Api(object):
|
|
|
89
88
|
raise AuthError if response.status_code == 401 else UnauthorizedError
|
|
90
89
|
except requests.exceptions.RequestException as e:
|
|
91
90
|
logger.error(f"Connection Error: {str(e)}")
|
|
92
|
-
# Don't raise here, allow the client to be initialized but operations might fail
|
|
93
91
|
|
|
94
92
|
def _fetch_next_page(
|
|
95
93
|
self, endpoint: str, model: T, header: dict, page: int
|
|
@@ -113,7 +111,7 @@ class Api(object):
|
|
|
113
111
|
link = response.headers.get("Link")
|
|
114
112
|
if not link:
|
|
115
113
|
return 1
|
|
116
|
-
|
|
114
|
+
|
|
117
115
|
last_match = re.search(r'page=(\d+)>; rel="last"', link)
|
|
118
116
|
if last_match:
|
|
119
117
|
return int(last_match.group(1))
|
|
@@ -148,7 +146,7 @@ class Api(object):
|
|
|
148
146
|
model.max_pages = total_pages
|
|
149
147
|
|
|
150
148
|
if model.max_pages > 1:
|
|
151
|
-
|
|
149
|
+
|
|
152
150
|
with ThreadPoolExecutor(max_workers=5) as executor:
|
|
153
151
|
futures = []
|
|
154
152
|
for page in range(2, model.max_pages + 1):
|
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
#!/usr/bin/python
|
|
2
|
-
|
|
2
|
+
import warnings
|
|
3
|
+
|
|
4
|
+
# Filter RequestsDependencyWarning early to prevent log spam
|
|
5
|
+
with warnings.catch_warnings():
|
|
6
|
+
warnings.simplefilter("ignore")
|
|
7
|
+
try:
|
|
8
|
+
from requests.exceptions import RequestsDependencyWarning
|
|
9
|
+
warnings.filterwarnings("ignore", category=RequestsDependencyWarning)
|
|
10
|
+
except ImportError:
|
|
11
|
+
pass
|
|
12
|
+
|
|
13
|
+
# General urllib3/chardet mismatch warnings
|
|
14
|
+
warnings.filterwarnings("ignore", message=".*urllib3.*or chardet.*")
|
|
15
|
+
warnings.filterwarnings("ignore", message=".*urllib3.*or charset_normalizer.*")
|
|
16
|
+
|
|
3
17
|
import os
|
|
4
18
|
import sys
|
|
5
19
|
from typing import Dict, Any
|
|
@@ -207,7 +221,7 @@ def register_content_tools(mcp: FastMCP):
|
|
|
207
221
|
}
|
|
208
222
|
|
|
209
223
|
|
|
210
|
-
def get_mcp_instance() -> tuple[Any, Any, Any, Any]:
|
|
224
|
+
def get_mcp_instance() -> tuple[Any, Any, Any, Any, Any]:
|
|
211
225
|
args, mcp, middlewares = create_mcp_server(
|
|
212
226
|
name="Github MCP",
|
|
213
227
|
version=__version__,
|
|
@@ -234,12 +248,23 @@ def get_mcp_instance() -> tuple[Any, Any, Any, Any]:
|
|
|
234
248
|
mcp.add_middleware(mw)
|
|
235
249
|
|
|
236
250
|
registered_tags = []
|
|
237
|
-
|
|
251
|
+
# FastMCP typically stores tools in .get_tools() or ._tools
|
|
252
|
+
tools_dict = (
|
|
253
|
+
mcp._tools
|
|
254
|
+
if hasattr(mcp, "_tools")
|
|
255
|
+
else mcp.get_tools() if hasattr(mcp, "get_tools") else {}
|
|
256
|
+
)
|
|
257
|
+
for tool in tools_dict.values():
|
|
258
|
+
if hasattr(tool, "tags"):
|
|
259
|
+
registered_tags.extend(list(tool.tags))
|
|
260
|
+
|
|
261
|
+
imported_tools = list(tools_dict.keys())
|
|
262
|
+
return mcp, args, middlewares, registered_tags, imported_tools
|
|
238
263
|
|
|
239
264
|
|
|
240
265
|
def mcp_server() -> None:
|
|
241
|
-
mcp, args, middlewares, registered_tags = get_mcp_instance()
|
|
242
|
-
print(f"Starting
|
|
266
|
+
mcp, args, middlewares, registered_tags, imported_tools = get_mcp_instance()
|
|
267
|
+
print(f"Starting GitHub Agent MCP v{__version__}", file=sys.stderr)
|
|
243
268
|
|
|
244
269
|
if args.transport == "stdio":
|
|
245
270
|
mcp.run(transport="stdio")
|
|
@@ -251,4 +276,4 @@ def mcp_server() -> None:
|
|
|
251
276
|
|
|
252
277
|
|
|
253
278
|
if __name__ == "__main__":
|
|
254
|
-
mcp_server()
|
|
279
|
+
mcp_server()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: github-agent
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.54
|
|
4
4
|
Summary: GitHub Agent for MCP
|
|
5
5
|
Author-email: Audel Rouhi <knucklessg1@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -38,7 +38,7 @@ Dynamic: license-file
|
|
|
38
38
|

|
|
39
39
|

|
|
40
40
|
|
|
41
|
-
*Version: 0.2.
|
|
41
|
+
*Version: 0.2.54*
|
|
42
42
|
|
|
43
43
|
## Overview
|
|
44
44
|
|
|
@@ -8,7 +8,6 @@ github_agent/api_wrapper.py
|
|
|
8
8
|
github_agent/auth.py
|
|
9
9
|
github_agent/github_input_models.py
|
|
10
10
|
github_agent/github_response_models.py
|
|
11
|
-
github_agent/graph_config.py
|
|
12
11
|
github_agent/mcp_server.py
|
|
13
12
|
github_agent.egg-info/PKG-INFO
|
|
14
13
|
github_agent.egg-info/SOURCES.txt
|
|
@@ -21,6 +20,7 @@ github_agent/agent_data/CRON.md
|
|
|
21
20
|
github_agent/agent_data/CRON_LOG.md
|
|
22
21
|
github_agent/agent_data/HEARTBEAT.md
|
|
23
22
|
github_agent/agent_data/IDENTITY.md
|
|
23
|
+
github_agent/agent_data/MCP_AGENTS.md
|
|
24
24
|
github_agent/agent_data/MEMORY.md
|
|
25
25
|
github_agent/agent_data/USER.md
|
|
26
26
|
github_agent/agent_data/chats
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "github-agent"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.54"
|
|
8
8
|
readme = "README.md"
|
|
9
9
|
description = "GitHub Agent for MCP"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -20,6 +20,7 @@ dependencies = [
|
|
|
20
20
|
"agent-utilities[agent,logfire]>=0.2.31"]
|
|
21
21
|
|
|
22
22
|
[project.scripts]
|
|
23
|
+
github-mcp = "github_agent.mcp_server:mcp_server"
|
|
23
24
|
github-agent = "github_agent.agent_server:agent_server"
|
|
24
25
|
|
|
25
26
|
[tool.setuptools.packages.find]
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# AGENTS.md - Known A2A Peer Agents
|
|
2
|
-
Last updated: 2026-02-21 01:19
|
|
3
|
-
|
|
4
|
-
This file is the local registry of other A2A agents this agent can discover and call.
|
|
5
|
-
|
|
6
|
-
## Registered A2A Peers
|
|
7
|
-
|
|
8
|
-
| Name | Endpoint URL | Description | Capabilities | Auth | Notes / Last Connected |
|
|
9
|
-
|-----------------|---------------------------------|--------------------------------------|----------------------------------|-----------|------------------------|
|
|
10
|
-
| SearchMaster | http://search-agent:9000/a2a | Advanced web researcher | web_search, summarize, browse | none | 2026-02-20 |
|
|
11
|
-
|
|
12
|
-
*Add new rows manually or let the agent call `register_a2a_peer(...)`.*
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"""GitHub graph configuration — tag prompts and env var mappings."""
|
|
2
|
-
|
|
3
|
-
# ── Tag → System Prompt Mapping ──────────────────────────────────────
|
|
4
|
-
TAG_PROMPTS: dict[str, str] = {
|
|
5
|
-
"repos": (
|
|
6
|
-
"You are a GitHub Repositories specialist. Help users manage and interact with Repository functionality using the available tools."
|
|
7
|
-
),
|
|
8
|
-
"issues": (
|
|
9
|
-
"You are a GitHub Issues specialist. Help users manage and interact with Issues functionality using the available tools."
|
|
10
|
-
),
|
|
11
|
-
"pulls": (
|
|
12
|
-
"You are a GitHub Pull Requests specialist. Help users manage and interact with Pull Request functionality using the available tools."
|
|
13
|
-
),
|
|
14
|
-
"contents": (
|
|
15
|
-
"You are a GitHub Contents specialist. Help users manage and interact with Repository Content (files/directories) using the available tools."
|
|
16
|
-
),
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
# ── Tag → Environment Variable Mapping ────────────────────────────────
|
|
20
|
-
TAG_ENV_VARS: dict[str, str] = {
|
|
21
|
-
"repos": "REPOSTOOL",
|
|
22
|
-
"issues": "ISSUETOOL",
|
|
23
|
-
"pulls": "PULLSTOOL",
|
|
24
|
-
"contents": "CONTENTSTOOL",
|
|
25
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|