github-agent 0.2.10__tar.gz → 0.2.12__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: github-agent
3
- Version: 0.2.10
3
+ Version: 0.2.12
4
4
  Summary: GitHub Agent for MCP
5
5
  Author-email: Audel Rouhi <knucklessg1@gmail.com>
6
6
  License: MIT
@@ -43,7 +43,7 @@ Dynamic: license-file
43
43
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/github-agent)
44
44
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/github-agent)
45
45
 
46
- *Version: 0.2.10*
46
+ *Version: 0.2.12*
47
47
 
48
48
  ## Overview
49
49
 
@@ -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.2.10*
24
+ *Version: 0.2.12*
25
25
 
26
26
  ## Overview
27
27
 
@@ -39,7 +39,7 @@ from pydantic import ValidationError
39
39
  from pydantic_ai.ui import SSE_CONTENT_TYPE
40
40
  from pydantic_ai.ui.ag_ui import AGUIAdapter
41
41
 
42
- __version__ = "0.2.10"
42
+ __version__ = "0.2.12"
43
43
 
44
44
  logging.basicConfig(
45
45
  level=logging.INFO,
@@ -60,7 +60,7 @@ DEFAULT_LLM_BASE_URL = os.getenv("LLM_BASE_URL", "http://host.docker.internal:12
60
60
  DEFAULT_LLM_API_KEY = os.getenv("LLM_API_KEY", "ollama")
61
61
  DEFAULT_MCP_URL = os.getenv("MCP_URL", None)
62
62
  DEFAULT_MCP_CONFIG = os.getenv("MCP_CONFIG", get_mcp_config_path())
63
- DEFAULT_SKILLS_DIRECTORY = os.getenv("SKILLS_DIRECTORY", get_skills_path())
63
+ DEFAULT_CUSTOM_SKILLS_DIRECTORY = os.getenv("CUSTOM_SKILLS_DIRECTORY", None)
64
64
  DEFAULT_ENABLE_WEB_UI = to_boolean(os.getenv("ENABLE_WEB_UI", "False"))
65
65
  DEFAULT_SSL_VERIFY = to_boolean(os.getenv("SSL_VERIFY", "True"))
66
66
 
@@ -269,7 +269,7 @@ def create_agent(
269
269
  api_key: Optional[str] = DEFAULT_LLM_API_KEY,
270
270
  mcp_url: str = DEFAULT_MCP_URL,
271
271
  mcp_config: str = DEFAULT_MCP_CONFIG,
272
- skills_directory: Optional[str] = DEFAULT_SKILLS_DIRECTORY,
272
+ custom_skills_directory: Optional[str] = DEFAULT_CUSTOM_SKILLS_DIRECTORY,
273
273
  ssl_verify: bool = DEFAULT_SSL_VERIFY,
274
274
  ) -> Agent:
275
275
  """
@@ -328,8 +328,7 @@ def create_agent(
328
328
  agent_toolsets.extend(mcp_toolset)
329
329
  logger.info(f"Connected to MCP Config JSON: {mcp_toolset}")
330
330
 
331
- if skills_directory and os.path.exists(skills_directory):
332
- agent_toolsets.append(SkillsToolset(directories=[str(skills_directory)]))
331
+ # Skills are loaded per-agent based on tags
333
332
 
334
333
  agent_defs = {
335
334
  "person": (CONTEXT_AGENT_PROMPT, "GitHub_Context_Agent"),
@@ -379,6 +378,26 @@ def create_agent(
379
378
  else:
380
379
  pass
381
380
 
381
+ # Load specific skills for this tag
382
+ skill_dir_name = f"github-{tag.replace('_', '-')}"
383
+
384
+ # Check custom skills directory
385
+ if custom_skills_directory:
386
+ skill_dir_path = os.path.join(custom_skills_directory, skill_dir_name)
387
+ if os.path.exists(skill_dir_path):
388
+ tag_toolsets.append(SkillsToolset(directories=[skill_dir_path]))
389
+ logger.info(
390
+ f"Loaded specialized skills for {tag} from {skill_dir_path}"
391
+ )
392
+
393
+ # Check default skills directory
394
+ default_skill_path = os.path.join(get_skills_path(), skill_dir_name)
395
+ if os.path.exists(default_skill_path):
396
+ tag_toolsets.append(SkillsToolset(directories=[default_skill_path]))
397
+ logger.info(
398
+ f"Loaded specialized skills for {tag} from {default_skill_path}"
399
+ )
400
+
382
401
  # Collect tool names for logging
383
402
  all_tool_names = []
384
403
  for ts in tag_toolsets:
@@ -698,7 +717,7 @@ def create_agent_server(
698
717
  api_key: Optional[str] = DEFAULT_LLM_API_KEY,
699
718
  mcp_url: str = DEFAULT_MCP_URL,
700
719
  mcp_config: str = DEFAULT_MCP_CONFIG,
701
- skills_directory: Optional[str] = DEFAULT_SKILLS_DIRECTORY,
720
+ custom_skills_directory: Optional[str] = DEFAULT_CUSTOM_SKILLS_DIRECTORY,
702
721
  debug: Optional[bool] = DEFAULT_DEBUG,
703
722
  host: Optional[str] = DEFAULT_HOST,
704
723
  port: Optional[int] = DEFAULT_PORT,
@@ -720,14 +739,30 @@ def create_agent_server(
720
739
  api_key=api_key,
721
740
  mcp_url=mcp_url,
722
741
  mcp_config=mcp_config,
723
- skills_directory=skills_directory,
742
+ custom_skills_directory=custom_skills_directory,
724
743
  ssl_verify=ssl_verify,
725
744
  )
726
745
 
727
- if skills_directory and os.path.exists(skills_directory):
728
- skills = load_skills_from_directory(skills_directory)
729
- logger.info(f"Loaded {len(skills)} skills from {skills_directory}")
730
- else:
746
+ # Always load default skills
747
+
748
+ skills = load_skills_from_directory(get_skills_path())
749
+
750
+ logger.info(f"Loaded {len(skills)} default skills from {get_skills_path()}")
751
+
752
+ # Load custom skills if provided
753
+
754
+ if custom_skills_directory and os.path.exists(custom_skills_directory):
755
+
756
+ custom_skills = load_skills_from_directory(custom_skills_directory)
757
+
758
+ skills.extend(custom_skills)
759
+
760
+ logger.info(
761
+ f"Loaded {len(custom_skills)} custom skills from {custom_skills_directory}"
762
+ )
763
+
764
+ if not skills:
765
+
731
766
  skills = [
732
767
  Skill(
733
768
  id="github_agent",
@@ -844,9 +879,9 @@ def agent_server():
844
879
  "--mcp-config", default=DEFAULT_MCP_CONFIG, help="MCP Server Config"
845
880
  )
846
881
  parser.add_argument(
847
- "--skills-directory",
848
- default=DEFAULT_SKILLS_DIRECTORY,
849
- help="Directory containing agent skills",
882
+ "--custom-skills-directory",
883
+ default=DEFAULT_CUSTOM_SKILLS_DIRECTORY,
884
+ help="Directory containing additional custom agent skills",
850
885
  )
851
886
  parser.add_argument(
852
887
  "--web",
@@ -866,7 +901,7 @@ def agent_server():
866
901
 
867
902
  if hasattr(args, "help") and args.help:
868
903
 
869
- usage()
904
+ parser.print_help()
870
905
 
871
906
  sys.exit(0)
872
907
 
@@ -894,7 +929,7 @@ def agent_server():
894
929
  api_key=args.api_key,
895
930
  mcp_url=args.mcp_url,
896
931
  mcp_config=args.mcp_config,
897
- skills_directory=args.skills_directory,
932
+ custom_skills_directory=args.custom_skills_directory,
898
933
  debug=args.debug,
899
934
  host=args.host,
900
935
  port=args.port,
@@ -903,28 +938,5 @@ def agent_server():
903
938
  )
904
939
 
905
940
 
906
- def usage():
907
- print(
908
- f"Github Agent ({__version__}): CLI Tool\n\n"
909
- "Usage:\n"
910
- "--host [ Host to bind the server to ]\n"
911
- "--port [ Port to bind the server to ]\n"
912
- "--debug [ Debug mode ]\n"
913
- "--reload [ Enable auto-reload ]\n"
914
- "--provider [ LLM Provider ]\n"
915
- "--model-id [ LLM Model ID ]\n"
916
- "--base-url [ LLM Base URL (for OpenAI compatible providers) ]\n"
917
- "--api-key [ LLM API Key ]\n"
918
- "--mcp-url [ MCP Server URL ]\n"
919
- "--mcp-config [ MCP Server Config ]\n"
920
- "--skills-directory [ Directory containing agent skills ]\n"
921
- "--web [ Enable Pydantic AI Web UI ]\n"
922
- "\n"
923
- "Examples:\n"
924
- " [Simple] github-agent \n"
925
- ' [Complex] github-agent --host "value" --port "value" --debug "value" --reload --provider "value" --model-id "value" --base-url "value" --api-key "value" --mcp-url "value" --mcp-config "value" --skills-directory "value" --web\n'
926
- )
927
-
928
-
929
941
  if __name__ == "__main__":
930
942
  agent_server()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: github-agent
3
- Version: 0.2.10
3
+ Version: 0.2.12
4
4
  Summary: GitHub Agent for MCP
5
5
  Author-email: Audel Rouhi <knucklessg1@gmail.com>
6
6
  License: MIT
@@ -43,7 +43,7 @@ Dynamic: license-file
43
43
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/github-agent)
44
44
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/github-agent)
45
45
 
46
- *Version: 0.2.10*
46
+ *Version: 0.2.12*
47
47
 
48
48
  ## Overview
49
49
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "github-agent"
7
- version = "0.2.10"
7
+ version = "0.2.12"
8
8
  readme = "README.md"
9
9
  description = "GitHub Agent for MCP"
10
10
  requires-python = ">=3.10"
File without changes
File without changes