github-agent 1.4.1__tar.gz → 2.4.1__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 (164) hide show
  1. {github_agent-1.4.1 → github_agent-2.4.1}/PKG-INFO +134 -119
  2. {github_agent-1.4.1 → github_agent-2.4.1}/README.md +125 -107
  3. github_agent-2.4.1/github_agent/__init__.py +1 -0
  4. github_agent-2.4.1/github_agent/__main__.py +4 -0
  5. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/api/api_client_base.py +22 -21
  6. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/api/api_client_branches.py +2 -14
  7. github_agent-2.4.1/github_agent/api/api_client_comments.py +333 -0
  8. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/api/api_client_commits.py +2 -4
  9. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/api/api_client_contents.py +2 -10
  10. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/api/api_client_dependabot.py +1 -9
  11. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/api/api_client_issues.py +2 -8
  12. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/api/api_client_orgs.py +2 -20
  13. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/api/api_client_pages.py +2 -14
  14. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/api/api_client_pulls.py +2 -14
  15. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/api/api_client_releases.py +2 -12
  16. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/api/api_client_repos.py +20 -24
  17. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/api/api_client_search.py +2 -2
  18. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/api/api_client_workflows.py +2 -18
  19. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/api_client.py +2 -0
  20. github_agent-2.4.1/github_agent/auth.py +133 -0
  21. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/connectors/mcp_source_presets.json +2 -3
  22. github_agent-2.4.1/github_agent/connectors/tool_schema_fingerprints.json +8 -0
  23. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/github_gql.py +23 -9
  24. github_agent-2.4.1/github_agent/github_http.py +120 -0
  25. github_agent-2.4.1/github_agent/kg_ingest.py +491 -0
  26. github_agent-2.4.1/github_agent/mcp/mcp_action.py +296 -0
  27. github_agent-2.4.1/github_agent/mcp/mcp_branch.py +153 -0
  28. github_agent-2.4.1/github_agent/mcp/mcp_collaborator.py +125 -0
  29. github_agent-2.4.1/github_agent/mcp/mcp_commit.py +94 -0
  30. github_agent-2.4.1/github_agent/mcp/mcp_content.py +168 -0
  31. github_agent-2.4.1/github_agent/mcp/mcp_dependabot.py +207 -0
  32. github_agent-2.4.1/github_agent/mcp/mcp_issue.py +188 -0
  33. github_agent-2.4.1/github_agent/mcp/mcp_org.py +359 -0
  34. github_agent-2.4.1/github_agent/mcp/mcp_pull.py +353 -0
  35. github_agent-2.4.1/github_agent/mcp/mcp_release.py +171 -0
  36. github_agent-2.4.1/github_agent/mcp/mcp_repo.py +528 -0
  37. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/mcp/mcp_search.py +7 -2
  38. github_agent-2.4.1/github_agent/mcp_server.py +3698 -0
  39. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/ontology/__init__.py +2 -2
  40. github_agent-2.4.1/github_agent/ontology/certification.json +36 -0
  41. github_agent-2.4.1/github_agent/ontology/fixtures/records.json +21 -0
  42. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/ontology/github.ttl +1 -1
  43. github_agent-2.4.1/github_agent/ontology/mappings/source.yaml +20 -0
  44. github_agent-2.4.1/github_agent/ontology/migrations/manifest.json +6 -0
  45. github_agent-2.4.1/github_agent/ontology/shapes/connector.shacl.ttl +224 -0
  46. github_agent-2.4.1/github_agent/skills/github-actions-ci-review/WORKFLOW.md +82 -0
  47. github_agent-2.4.1/github_agent/skills/github-agent-operations/SKILL.md +33 -0
  48. github_agent-2.4.1/github_agent/skills/github-agent-operations/agents/openai.yaml +4 -0
  49. github_agent-2.4.1/github_agent/skills/github-agent-operations/references/catalog.md +17 -0
  50. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/github-backlog-planner/SKILL.md +8 -6
  51. github_agent-2.4.1/github_agent/skills/github-backlog-planner/WORKFLOW.md +98 -0
  52. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/github-backlog-planner/scripts/build_plan.py +92 -63
  53. github_agent-2.4.1/github_agent/skills/github-ci-failure-sweep/WORKFLOW.md +96 -0
  54. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/github-ci-failure-sweep/scripts/summarize_runs.py +69 -34
  55. github_agent-2.4.1/github_agent/skills/github-dependabot-review/WORKFLOW.md +91 -0
  56. github_agent-2.4.1/github_agent/skills/github-issue-tracking/WORKFLOW.md +83 -0
  57. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/github-org-remediation-loop/SKILL.md +9 -19
  58. github_agent-2.4.1/github_agent/skills/github-org-remediation-loop/WORKFLOW.md +267 -0
  59. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/github-org-remediation-loop/scripts/classify_fix_risk.py +43 -15
  60. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/github-pr-review-sweep/SKILL.md +10 -8
  61. github_agent-2.4.1/github_agent/skills/github-pr-review-sweep/WORKFLOW.md +95 -0
  62. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/github-pr-review-sweep/scripts/summarize_prs.py +48 -30
  63. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/github-project-provisioner/SKILL.md +1 -1
  64. github_agent-2.4.1/github_agent/skills/github-project-provisioner/WORKFLOW.md +51 -0
  65. github_agent-2.4.1/github_agent/skills/github-project-provisioner/scripts/enable_pages.py +54 -0
  66. github_agent-2.4.1/github_agent/skills/github-pull-request-create/WORKFLOW.md +70 -0
  67. github_agent-2.4.1/github_agent/skills/github-pull-request-review/WORKFLOW.md +121 -0
  68. github_agent-2.4.1/github_agent/skills/github-repository-management/WORKFLOW.md +90 -0
  69. github_agent-2.4.1/github_agent/skills/github-tools/WORKFLOW.md +141 -0
  70. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/github-tools/scripts/fetch_comments.py +31 -27
  71. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/github-tools/scripts/inspect_pr_checks.py +127 -81
  72. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/github-triage-resolver/SKILL.md +20 -14
  73. github_agent-2.4.1/github_agent/skills/github-triage-resolver/WORKFLOW.md +99 -0
  74. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/github-triage-resolver/references/resolution-rules.md +16 -10
  75. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/github-triage-resolver/scripts/classify_safe.py +146 -73
  76. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/github-triage-resolver/scripts/gh_write.py +28 -52
  77. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent.egg-info/PKG-INFO +134 -119
  78. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent.egg-info/SOURCES.txt +35 -5
  79. github_agent-2.4.1/github_agent.egg-info/entry_points.txt +11 -0
  80. github_agent-2.4.1/github_agent.egg-info/requires.txt +12 -0
  81. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent.egg-info/top_level.txt +3 -0
  82. {github_agent-1.4.1 → github_agent-2.4.1}/pyproject.toml +22 -16
  83. github_agent-2.4.1/scripts/security_sanitizer.py +318 -0
  84. {github_agent-1.4.1 → github_agent-2.4.1}/scripts/verify_api_integration.py +153 -112
  85. github_agent-2.4.1/tests/conftest.py +98 -0
  86. github_agent-2.4.1/tests/test_action_discovery.py +177 -0
  87. {github_agent-1.4.1 → github_agent-2.4.1}/tests/test_api_client_endpoints.py +5 -3
  88. {github_agent-1.4.1 → github_agent-2.4.1}/tests/test_api_validation.py +5 -3
  89. github_agent-2.4.1/tests/test_auth_client_edge_cases.py +182 -0
  90. github_agent-2.4.1/tests/test_comment_crud.py +890 -0
  91. {github_agent-1.4.1 → github_agent-2.4.1}/tests/test_github_agent_api_brute_force_coverage.py +89 -70
  92. {github_agent-1.4.1 → github_agent-2.4.1}/tests/test_github_agent_brute_force_coverage.py +61 -64
  93. github_agent-2.4.1/tests/test_github_gql.py +55 -0
  94. github_agent-2.4.1/tests/test_github_http.py +165 -0
  95. {github_agent-1.4.1 → github_agent-2.4.1}/tests/test_hardening.py +1 -5
  96. {github_agent-1.4.1 → github_agent-2.4.1}/tests/test_init_dynamics.py +4 -1
  97. {github_agent-1.4.1 → github_agent-2.4.1}/tests/test_kg_ingest.py +111 -117
  98. {github_agent-1.4.1 → github_agent-2.4.1}/tests/test_mcp_coverage.py +276 -15
  99. github_agent-2.4.1/tests/test_mcp_package_dispatch.py +725 -0
  100. {github_agent-1.4.1 → github_agent-2.4.1}/tests/test_org_crud.py +54 -15
  101. {github_agent-1.4.1 → github_agent-2.4.1}/tests/test_pages.py +2 -12
  102. github_agent-2.4.1/tests/test_repo_secrets_characterization.py +198 -0
  103. github_agent-2.4.1/tests/test_skill_backlog_build_plan.py +150 -0
  104. github_agent-2.4.1/tests/test_skill_ci_failure_sweep_summarize_runs.py +128 -0
  105. github_agent-2.4.1/tests/test_skill_github_tools_fetch_comments.py +108 -0
  106. github_agent-2.4.1/tests/test_skill_github_tools_inspect_pr_checks.py +179 -0
  107. github_agent-2.4.1/tests/test_skill_org_remediation_classify_fix_risk.py +163 -0
  108. github_agent-2.4.1/tests/test_skill_pr_review_sweep_summarize_prs.py +138 -0
  109. github_agent-2.4.1/tests/test_skill_triage_resolver_classify_safe.py +286 -0
  110. github_agent-2.4.1/tests/test_startup.py +30 -0
  111. github_agent-1.4.1/github_agent/__init__.py +0 -1
  112. github_agent-1.4.1/github_agent/__main__.py +0 -4
  113. github_agent-1.4.1/github_agent/agent_server.py +0 -85
  114. github_agent-1.4.1/github_agent/auth.py +0 -145
  115. github_agent-1.4.1/github_agent/kg_ingest.py +0 -478
  116. github_agent-1.4.1/github_agent/mcp/mcp_action.py +0 -271
  117. github_agent-1.4.1/github_agent/mcp/mcp_branch.py +0 -126
  118. github_agent-1.4.1/github_agent/mcp/mcp_collaborator.py +0 -107
  119. github_agent-1.4.1/github_agent/mcp/mcp_commit.py +0 -81
  120. github_agent-1.4.1/github_agent/mcp/mcp_content.py +0 -154
  121. github_agent-1.4.1/github_agent/mcp/mcp_dependabot.py +0 -172
  122. github_agent-1.4.1/github_agent/mcp/mcp_issue.py +0 -157
  123. github_agent-1.4.1/github_agent/mcp/mcp_org.py +0 -300
  124. github_agent-1.4.1/github_agent/mcp/mcp_pull.py +0 -278
  125. github_agent-1.4.1/github_agent/mcp/mcp_release.py +0 -159
  126. github_agent-1.4.1/github_agent/mcp/mcp_repo.py +0 -461
  127. github_agent-1.4.1/github_agent/mcp_server.py +0 -2558
  128. github_agent-1.4.1/github_agent/prompts/code_collaboration_specialist.json +0 -43
  129. github_agent-1.4.1/github_agent/prompts/main_agent.json +0 -20
  130. github_agent-1.4.1/github_agent/skills/github-project-provisioner/scripts/enable_pages.py +0 -53
  131. github_agent-1.4.1/github_agent.egg-info/entry_points.txt +0 -15
  132. github_agent-1.4.1/github_agent.egg-info/requires.txt +0 -16
  133. github_agent-1.4.1/scripts/security_sanitizer.py +0 -160
  134. github_agent-1.4.1/scripts/validate_a2a_agent.py +0 -139
  135. github_agent-1.4.1/tests/conftest.py +0 -11
  136. github_agent-1.4.1/tests/test_action_discovery.py +0 -87
  137. github_agent-1.4.1/tests/test_auth_client_edge_cases.py +0 -198
  138. github_agent-1.4.1/tests/test_concept_parity.py +0 -87
  139. github_agent-1.4.1/tests/test_github_gql.py +0 -35
  140. github_agent-1.4.1/tests/test_startup.py +0 -38
  141. {github_agent-1.4.1 → github_agent-2.4.1}/LICENSE +0 -0
  142. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/api/__init__.py +0 -0
  143. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/connectors/__init__.py +0 -0
  144. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/github_input_models.py +0 -0
  145. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/github_response_models.py +0 -0
  146. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/mcp/__init__.py +0 -0
  147. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/mcp_config.json +0 -0
  148. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/prompts/__init__.py +0 -0
  149. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/__init__.py +0 -0
  150. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/github-actions-ci-review/SKILL.md +0 -0
  151. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/github-backlog-planner/references/addressed-heuristics.md +0 -0
  152. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/github-ci-failure-sweep/SKILL.md +0 -0
  153. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/github-ci-failure-sweep/references/actions-tool-cheatsheet.md +0 -0
  154. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/github-dependabot-review/SKILL.md +0 -0
  155. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/github-issue-tracking/SKILL.md +0 -0
  156. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/github-pr-review-sweep/references/pulls-tool-cheatsheet.md +0 -0
  157. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/github-pull-request-create/SKILL.md +0 -0
  158. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/github-pull-request-review/SKILL.md +0 -0
  159. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/github-repository-management/SKILL.md +0 -0
  160. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/github-tools/SKILL.md +0 -0
  161. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent/skills/github-tools/code-reviewer.md +0 -0
  162. {github_agent-1.4.1 → github_agent-2.4.1}/github_agent.egg-info/dependency_links.txt +0 -0
  163. {github_agent-1.4.1 → github_agent-2.4.1}/setup.cfg +0 -0
  164. {github_agent-1.4.1 → github_agent-2.4.1}/tests/test_model_fields.py +0 -0
@@ -1,33 +1,30 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: github-agent
3
- Version: 1.4.1
3
+ Version: 2.4.1
4
4
  Summary: GitHub Agent for MCP
5
- Author-email: Audel Rouhi <knucklessg1@gmail.com>
5
+ Author-email: Project Maintainers <maintainers@users.noreply.github.com>
6
6
  License: MIT
7
7
  Classifier: Development Status :: 5 - Production/Stable
8
8
  Classifier: License :: Public Domain
9
9
  Classifier: Environment :: Console
10
10
  Classifier: Operating System :: POSIX :: Linux
11
11
  Classifier: Programming Language :: Python :: 3
12
- Requires-Python: <3.15,>=3.11
12
+ Requires-Python: >=3.12
13
13
  Description-Content-Type: text/markdown
14
14
  License-File: LICENSE
15
- Requires-Dist: agent-utilities[mcp]>=1.0.0
16
- Requires-Dist: gql[requests]>=4.0.0
15
+ Requires-Dist: gql[requests]>=4.4.0
16
+ Requires-Dist: requests>=2.34.2
17
+ Requires-Dist: agent-connector-sdk[mcp]<1.0.0,>=0.3.5
17
18
  Provides-Extra: mcp
18
- Requires-Dist: agent-utilities[mcp]>=1.0.0; extra == "mcp"
19
- Provides-Extra: agent
20
- Requires-Dist: agent-utilities[agent,logfire]>=1.0.0; extra == "agent"
21
19
  Provides-Extra: all
22
- Requires-Dist: agent-utilities[agent,logfire,mcp]>=1.0.0; extra == "all"
23
20
  Provides-Extra: test
24
- Requires-Dist: pytest-xdist>=3.6.0; extra == "test"
25
- Requires-Dist: pytest; extra == "test"
26
- Requires-Dist: pytest-asyncio; extra == "test"
21
+ Requires-Dist: pytest-xdist>=3.8.0; extra == "test"
22
+ Requires-Dist: pytest>=9.1.1; extra == "test"
23
+ Requires-Dist: pytest-asyncio>=1.4.0; extra == "test"
27
24
  Dynamic: license-file
28
25
 
29
26
  # Github Agent
30
- ## CLI or API | MCP | Agent
27
+ ## CLI or API | MCP
31
28
 
32
29
  ![PyPI - Version](https://img.shields.io/pypi/v/github-agent)
33
30
  ![MCP Server](https://badge.mcpx.dev?type=server 'MCP Server')
@@ -48,10 +45,9 @@ Dynamic: license-file
48
45
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/github-agent)
49
46
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/github-agent)
50
47
 
51
- *Version: 1.4.1*
48
+ *Version: 2.4.1*
52
49
 
53
50
  > **Documentation** — Installation, deployment, and usage across the MCP, API, and
54
- > CLI interfaces, including the integrated A2A agent server, are maintained in the
55
51
  > [official documentation](https://knuckles-team.github.io/github-agent/).
56
52
 
57
53
  ---
@@ -65,7 +61,7 @@ Dynamic: license-file
65
61
  ## Key Features
66
62
 
67
63
  - **Consolidated Action-Routed MCP Tools:** Minimizes token overhead and eliminates tool bloat in LLM contexts by grouping methods into optimized, togglable tool modules.
68
- - **Enterprise-Grade Security:** Comprehensive support for Eunomia policies, OIDC token delegation, and granular execution context tracking.
64
+ - **Enterprise-Grade Security:** Complete support for Eunomia policies, OIDC token delegation, and granular execution context tracking.
69
65
  - **Integrated Graph Agent:** Built-in Pydantic AI agent supporting the Agent Control Protocol (ACP) and standard Web interfaces (AG-UI).
70
66
  - **Native Telemetry & Tracing:** Out-of-the-box OpenTelemetry exports and native Langfuse tracing.
71
67
 
@@ -73,7 +69,7 @@ Dynamic: license-file
73
69
 
74
70
  ## CLI or API
75
71
 
76
- This agent wraps the GitHub Agent for MCP API. You can interact with it programmatically or via its integrated execution entrypoints.
72
+ This agent wraps the GitHub Agent for MCP API. The operator can interact with it programmatically or via its integrated execution entrypoints.
77
73
 
78
74
  Detailed instructions on how to use the underlying API wrappers, extended schema bindings, and developer SDK references are maintained in [docs/index.md](docs/index.md).
79
75
 
@@ -81,7 +77,7 @@ Detailed instructions on how to use the underlying API wrappers, extended schema
81
77
 
82
78
  ## MCP
83
79
 
84
- This server utilizes dynamic Action-Routed tools to optimize token overhead and maximize IDE compatibility.
80
+ This server use dynamic Action-Routed tools to optimize token overhead and maximize IDE compatibility.
85
81
 
86
82
  ### Available MCP Tools
87
83
 
@@ -89,13 +85,14 @@ _Auto-generated from the live MCP server — do not edit by hand._
89
85
 
90
86
  <!-- MCP-TOOLS-TABLE:START -->
91
87
 
92
- #### Condensed action-routed tools (default — `MCP_TOOL_MODE=condensed`)
88
+ #### Condensed action-routed tools (`MCP_TOOL_MODE=condensed`)
93
89
 
94
90
  | MCP Tool | Toggle Env Var | Description |
95
91
  |----------|----------------|-------------|
96
92
  | `github_actions` | `ACTIONTOOL` | Manage GitHub actions workflows and runs. |
97
93
  | `github_branches` | `BRANCHTOOL` | Manage GitHub branches. |
98
94
  | `github_collaborators` | `COLLABORATORTOOL` | Manage repository collaborators. |
95
+ | `github_comments` | `COMMENTTOOL` | Manage GitHub issue and pull-request comments. |
99
96
  | `github_commits` | `COMMITTOOL` | Manage GitHub commits. |
100
97
  | `github_contents` | `CONTENTTOOL` | Manage GitHub contents. |
101
98
  | `github_dependabot` | `DEPENDABOTTOOL` | Review and manage GitHub Dependabot vulnerability alerts. |
@@ -113,15 +110,17 @@ _Auto-generated from the live MCP server — do not edit by hand._
113
110
  #### Verbose 1:1 API-mapped tools (`MCP_TOOL_MODE=verbose` or `both`)
114
111
 
115
112
  <details>
116
- <summary>76 per-operation tools — one per public API method (click to expand)</summary>
113
+ <summary>95 per-operation tools — one per public API method (click to expand)</summary>
117
114
 
118
115
  | MCP Tool | Toggle Env Var | Description |
119
116
  |----------|----------------|-------------|
120
117
  | `github_add_collaborator` | `APITOOL` | Add a collaborator to a repository. |
121
118
  | `github_cancel_workflow_run` | `APITOOL` | Cancel a workflow run. |
122
119
  | `github_create_branch` | `APITOOL` | Create a new branch in a repository (using git ref creation). |
120
+ | `github_create_commit_comment` | `APITOOL` | Create a comment on a commit. |
123
121
  | `github_create_content` | `APITOOL` | Create a file in a repository. |
124
122
  | `github_create_issue` | `APITOOL` | Create a new issue in a repository. |
123
+ | `github_create_issue_comment` | `APITOOL` | Create a comment on an issue or pull request. |
125
124
  | `github_create_or_update_repo_secret` | `APITOOL` | Create or update a repository Actions secret. |
126
125
  | `github_create_organization` | `APITOOL` | Create an organization — GitHub Enterprise Server ONLY. |
127
126
  | `github_create_organization_repository` | `APITOOL` | Create a repository in an organization. |
@@ -129,26 +128,33 @@ _Auto-generated from the live MCP server — do not edit by hand._
129
128
  | `github_create_pull_request` | `APITOOL` | Create a new pull request in a repository. |
130
129
  | `github_create_pull_request_review` | `APITOOL` | Create a review on a pull request. |
131
130
  | `github_create_release` | `APITOOL` | Create a new repository release. |
132
- | `github_create_repository` | `APITOOL` | Create a new repository for the authenticated user. |
131
+ | `github_create_repository` | `APITOOL` | Create a repository for the authenticated user, or for an organization when 'org' is given. |
132
+ | `github_create_review_comment` | `APITOOL` | Create an inline review comment on a pull request's diff. |
133
+ | `github_create_review_comment_reply` | `APITOOL` | Reply to an existing pull-request review comment thread. |
133
134
  | `github_delete_branch` | `APITOOL` | Delete a branch in a repository. |
134
135
  | `github_delete_branch_protection` | `APITOOL` | Delete branch protection configuration. |
136
+ | `github_delete_commit_comment` | `APITOOL` | Permanently delete a commit comment. |
135
137
  | `github_delete_content` | `APITOOL` | Delete a file in a repository. |
138
+ | `github_delete_issue_comment` | `APITOOL` | Permanently delete an issue/PR comment. |
136
139
  | `github_delete_organization` | `APITOOL` | Schedule an organization for deletion. IRREVERSIBLE. |
137
140
  | `github_delete_pages` | `APITOOL` | Disable GitHub Pages for a repository and delete the site. |
138
141
  | `github_delete_release` | `APITOOL` | Delete a repository release. |
139
142
  | `github_delete_repo_secret` | `APITOOL` | Delete a repository Actions secret. |
140
143
  | `github_delete_repository` | `APITOOL` | Delete a repository. |
144
+ | `github_delete_review_comment` | `APITOOL` | Permanently delete a pull-request review comment. |
141
145
  | `github_delete_workflow_run` | `APITOOL` | Delete a workflow run. |
142
146
  | `github_get_branch` | `APITOOL` | Get a single branch in a repository. |
143
147
  | `github_get_branch_protection` | `APITOOL` | Get branch protection configuration. |
144
148
  | `github_get_branches` | `APITOOL` | List branches for a repository. |
145
149
  | `github_get_collaborators` | `APITOOL` | List collaborators for a repository. |
146
150
  | `github_get_commit` | `APITOOL` | Get a single commit in a repository. |
151
+ | `github_get_commit_comment` | `APITOOL` | Get a single commit comment. |
147
152
  | `github_get_commits` | `APITOOL` | List commits for a repository. |
148
153
  | `github_get_contents` | `APITOOL` | Get contents of a file or directory in a repository. |
149
154
  | `github_get_dependabot_alert` | `APITOOL` | Get a single Dependabot alert. |
150
155
  | `github_get_dependabot_alerts` | `APITOOL` | List Dependabot alerts for a repository. |
151
156
  | `github_get_issue` | `APITOOL` | Get a single issue in a repository. |
157
+ | `github_get_issue_comment` | `APITOOL` | Get a single issue/PR comment. |
152
158
  | `github_get_issues` | `APITOOL` | List issues for a repository. |
153
159
  | `github_get_org_dependabot_alerts` | `APITOOL` | List Dependabot alerts for an entire organization. |
154
160
  | `github_get_org_members` | `APITOOL` | List members for an organization. |
@@ -166,13 +172,20 @@ _Auto-generated from the live MCP server — do not edit by hand._
166
172
  | `github_get_repo_secrets` | `APITOOL` | List repository Actions secrets names. |
167
173
  | `github_get_repositories` | `APITOOL` | List repositories for the authenticated user. |
168
174
  | `github_get_repository` | `APITOOL` | Get a specific repository. |
175
+ | `github_get_review_comment` | `APITOOL` | Get a single pull-request review comment. |
169
176
  | `github_get_workflow_job_logs` | `APITOOL` | Download the plaintext logs for a single workflow job. |
170
177
  | `github_get_workflow_run` | `APITOOL` | Get a single workflow run. |
171
178
  | `github_get_workflow_run_jobs` | `APITOOL` | List the jobs for a workflow run (optional ``filter``: latest/all). |
172
179
  | `github_get_workflow_runs` | `APITOOL` | List workflow runs for a repository. |
173
180
  | `github_get_workflows` | `APITOOL` | List workflows for a repository. |
181
+ | `github_list_commit_comments` | `APITOOL` | List comments on a single commit. |
182
+ | `github_list_issue_comments` | `APITOOL` | List comments on an issue or pull request. |
174
183
  | `github_list_organizations` | `APITOOL` | List organizations. |
175
184
  | `github_list_pages_builds` | `APITOOL` | List GitHub Pages builds for a repository (newest first). |
185
+ | `github_list_repo_commit_comments` | `APITOOL` | List every commit comment in a repository. |
186
+ | `github_list_repo_issue_comments` | `APITOOL` | List every issue/PR comment in a repository. |
187
+ | `github_list_repo_review_comments` | `APITOOL` | List every pull-request review comment in a repository. |
188
+ | `github_list_review_comments` | `APITOOL` | List review (inline code) comments on a pull request. |
176
189
  | `github_merge_pull_request` | `APITOOL` | Merge a pull request (``merge_method`` is merge, squash, or rebase). |
177
190
  | `github_remove_collaborator` | `APITOOL` | Remove a collaborator from a repository. |
178
191
  | `github_remove_organization_member` | `APITOOL` | Remove a user from an organization (repositories access included). |
@@ -185,27 +198,30 @@ _Auto-generated from the live MCP server — do not edit by hand._
185
198
  | `github_set_organization_membership` | `APITOOL` | Add a user to an organization or update their role. |
186
199
  | `github_trigger_workflow_dispatch` | `APITOOL` | Trigger a workflow dispatch event. |
187
200
  | `github_update_branch_protection` | `APITOOL` | Update branch protection configuration. |
201
+ | `github_update_commit_comment` | `APITOOL` | Edit a commit comment. |
188
202
  | `github_update_content` | `APITOOL` | Update a file in a repository. |
189
203
  | `github_update_dependabot_alert` | `APITOOL` | Update the state of a Dependabot alert. |
190
204
  | `github_update_issue` | `APITOOL` | Update an issue in a repository. |
205
+ | `github_update_issue_comment` | `APITOOL` | Edit an issue/PR comment. |
191
206
  | `github_update_organization` | `APITOOL` | Update an organization's profile and member settings. |
192
207
  | `github_update_pages` | `APITOOL` | Update the GitHub Pages configuration for a repository. |
193
208
  | `github_update_pull_request` | `APITOOL` | Update a pull request. |
194
209
  | `github_update_release` | `APITOOL` | Update (PATCH) a repository release. |
195
210
  | `github_update_repository` | `APITOOL` | Update a repository. |
211
+ | `github_update_review_comment` | `APITOOL` | Edit a pull-request review comment. |
196
212
 
197
213
  </details>
198
214
 
199
- _16 action-routed tool(s) (default) · 76 verbose 1:1 tool(s). Each is enabled unless its `<DOMAIN>TOOL` toggle is set false; `MCP_TOOL_MODE` selects the surface (`condensed` default · `verbose` 1:1 · `both`). Auto-generated — do not edit._
215
+ _17 action-routed tool(s) · 95 verbose 1:1 tool(s). Each is enabled unless its `<DOMAIN>TOOL` toggle is set false; `MCP_TOOL_MODE` selects the surface (**`intent` default** — the six verb-tools, granular set loaded on demand · `condensed` action-routed · `verbose` 1:1 · `both`). Auto-generated — do not edit._
200
216
  <!-- MCP-TOOLS-TABLE:END -->
201
217
 
202
- Detailed tool schemas, parameter shapes, and validation constraints are preserved in [docs/mcp.md](docs/mcp.md).
218
+ Detailed tool schemas, parameter shapes, and validation constraints are preserved in [docs/usage.md](docs/usage.md).
203
219
 
204
220
  ### Dynamic Tool Selection & Visibility
205
221
 
206
- This MCP server supports dynamic toolset selection and visibility filtering at runtime. This allows you to restrict the set of exposed tools in order to prevent blowing up the LLM's context window.
222
+ This MCP server supports dynamic toolset selection and visibility filtering at runtime. This allows the operator to restrict the set of exposed tools to prevent blowing up the LLM's context window.
207
223
 
208
- You can configure tool filtering via multiple input channels:
224
+ The operator can configure tool filtering via multiple input channels:
209
225
 
210
226
  - **CLI Arguments:** Pass `--tools` or `--toolsets` (or their disabled counterparts `--disabled-tools` and `--disabled-toolsets`) during startup.
211
227
  - **Environment Variables:** Define standard environment variables:
@@ -214,7 +230,7 @@ You can configure tool filtering via multiple input channels:
214
230
  - **HTTP SSE Request Headers:** Pass custom headers during transport initialization:
215
231
  - `x-mcp-enabled-tools` / `x-mcp-disabled-tools`
216
232
  - `x-mcp-enabled-tags` / `x-mcp-disabled-tags`
217
- - **HTTP SSE Request Query Parameters:** Append query parameters directly to your transport connection URL:
233
+ - **HTTP SSE Request Query Parameters:** Append query parameters directly to the operator's transport connection URL:
218
234
  - `?tools=tool1,tool2`
219
235
  - `?tags=tag1`
220
236
 
@@ -226,11 +242,10 @@ When query strings or parameters are supplied, an LLM-free **Knowledge Graph res
226
242
 
227
243
  <!-- MCP-CONFIG-EXAMPLES:START -->
228
244
 
229
- > **Install the slim `[mcp]` extra.** All examples install `github-agent[mcp]` — the
230
- > MCP-server extra that pulls only the FastMCP / FastAPI tooling (`agent-utilities[mcp]`).
231
- > It deliberately **excludes** the heavy agent runtime (`pydantic-ai`, the epistemic-graph
232
- > engine, `dspy`, `llama-index`), so `uvx` / container installs are far smaller. Use the
233
- > full `[agent]` extra only when you need the integrated Pydantic AI agent.
245
+ > **Install the connector-focused `[mcp]` extra.** Examples use `github-agent[mcp]` to add
246
+ > FastMCP / FastAPI through `agent-connector-sdk`; the required Agent Connector SDK core
247
+ > still carries `epistemic-graph[full]`. The `[agent-runtime]` extra additionally
248
+ > enables model orchestration.
234
249
 
235
250
  #### stdio Transport (local IDEs — Cursor, Claude Desktop, VS Code)
236
251
 
@@ -245,10 +260,11 @@ When query strings or parameters are supplied, an LLM-free **Knowledge Graph res
245
260
  "github-mcp"
246
261
  ],
247
262
  "env": {
248
- "MCP_TOOL_MODE": "condensed",
263
+ "MCP_TOOL_MODE": "intent",
249
264
  "ACTIONTOOL": "True",
250
265
  "BRANCHTOOL": "True",
251
266
  "COLLABORATORTOOL": "True",
267
+ "COMMENTTOOL": "True",
252
268
  "COMMITTOOL": "True",
253
269
  "CONTENTTOOL": "True",
254
270
  "DEPENDABOTTOOL": "True",
@@ -257,7 +273,6 @@ When query strings or parameters are supplied, an LLM-free **Knowledge Graph res
257
273
  "GITHUB_HTTP_READ_TIMEOUT": "30",
258
274
  "GITHUB_TOKEN": "your_github_token_here",
259
275
  "GITHUB_URL": "https://api.github.com",
260
- "GITHUB_VERIFY": "True",
261
276
  "GRAPHQLTOOL": "True",
262
277
  "INGESTTOOL": "True",
263
278
  "ISSUETOOL": "True",
@@ -272,6 +287,10 @@ When query strings or parameters are supplied, an LLM-free **Knowledge Graph res
272
287
  }
273
288
  ```
274
289
 
290
+ Runtime references require an alias-aware launcher such as Arbora. Other
291
+ launchers must omit those entries and inject the resolved values through their
292
+ own runtime secret boundary.
293
+
275
294
  #### Streamable-HTTP Transport (networked / production)
276
295
 
277
296
  ```json
@@ -290,12 +309,13 @@ When query strings or parameters are supplied, an LLM-free **Knowledge Graph res
290
309
  ],
291
310
  "env": {
292
311
  "TRANSPORT": "streamable-http",
293
- "HOST": "0.0.0.0",
312
+ "HOST": "127.0.0.1",
294
313
  "PORT": "8000",
295
- "MCP_TOOL_MODE": "condensed",
314
+ "MCP_TOOL_MODE": "intent",
296
315
  "ACTIONTOOL": "True",
297
316
  "BRANCHTOOL": "True",
298
317
  "COLLABORATORTOOL": "True",
318
+ "COMMENTTOOL": "True",
299
319
  "COMMITTOOL": "True",
300
320
  "CONTENTTOOL": "True",
301
321
  "DEPENDABOTTOOL": "True",
@@ -304,7 +324,6 @@ When query strings or parameters are supplied, an LLM-free **Knowledge Graph res
304
324
  "GITHUB_HTTP_READ_TIMEOUT": "30",
305
325
  "GITHUB_TOKEN": "your_github_token_here",
306
326
  "GITHUB_URL": "https://api.github.com",
307
- "GITHUB_VERIFY": "True",
308
327
  "GRAPHQLTOOL": "True",
309
328
  "INGESTTOOL": "True",
310
329
  "ISSUETOOL": "True",
@@ -331,19 +350,22 @@ Alternatively, connect to a pre-deployed Streamable-HTTP instance by `url`:
331
350
  }
332
351
  ```
333
352
 
334
- Deploying the Streamable-HTTP server via Docker:
353
+ Run a reviewed container image as a least-privilege stdio child (no
354
+ listener or published port):
335
355
 
336
356
  ```bash
337
- docker run -d \
338
- --name github-mcp-mcp \
339
- -p 8000:8000 \
340
- -e TRANSPORT=streamable-http \
341
- -e HOST=0.0.0.0 \
342
- -e PORT=8000 \
343
- -e MCP_TOOL_MODE=condensed \
357
+ docker run -i --rm \
358
+ --read-only \
359
+ --cap-drop=ALL \
360
+ --security-opt=no-new-privileges \
361
+ --pids-limit=256 \
362
+ --tmpfs /tmp:rw,noexec,nosuid,nodev,size=64m \
363
+ -e TRANSPORT=stdio \
364
+ -e MCP_TOOL_MODE=intent \
344
365
  -e ACTIONTOOL=True \
345
366
  -e BRANCHTOOL=True \
346
367
  -e COLLABORATORTOOL=True \
368
+ -e COMMENTTOOL=True \
347
369
  -e COMMITTOOL=True \
348
370
  -e CONTENTTOOL=True \
349
371
  -e DEPENDABOTTOOL=True \
@@ -352,7 +374,6 @@ docker run -d \
352
374
  -e GITHUB_HTTP_READ_TIMEOUT=30 \
353
375
  -e GITHUB_TOKEN=your_github_token_here \
354
376
  -e GITHUB_URL=https://api.github.com \
355
- -e GITHUB_VERIFY=True \
356
377
  -e GRAPHQLTOOL=True \
357
378
  -e INGESTTOOL=True \
358
379
  -e ISSUETOOL=True \
@@ -361,25 +382,30 @@ docker run -d \
361
382
  -e RELEASETOOL=True \
362
383
  -e REPOTOOL=True \
363
384
  -e SEARCHTOOL=True \
364
- knucklessg1/github-agent:mcp
385
+ registry.example.invalid/github-agent@sha256:<digest> github-mcp
365
386
  ```
366
387
 
388
+ For containerized network HTTP, supply an authenticated TLS ingress (or
389
+ direct server TLS), exact `MCP_ALLOWED_HOSTS`, and an exact trusted-proxy
390
+ CIDR policy through the operator-owned deployment profile. The generator
391
+ does not emit an unauthenticated non-loopback listener.
392
+
367
393
  _Auto-generated from the code-read env surface (`MCP_TOOL_MODE` + package vars) — do not edit._
368
394
  <!-- MCP-CONFIG-EXAMPLES:END -->
369
395
 
370
396
  <!-- BEGIN GENERATED: additional-deployment-options -->
371
397
  ### Additional Deployment Options
372
398
 
373
- `github-agent` can also run as a **local container** (Docker / Podman / `uv`) or be
374
- consumed from a **remote deployment**. The
375
- [Deployment guide](https://knuckles-team.github.io/github-agent/deployment/) has full, copy-paste
376
- `mcp_config.json` for all four transports — **stdio**, **streamable-http**,
377
- **local container / uv**, and **remote URL**:
399
+ `github-agent` can run as a local stdio process or container, or behind a remote
400
+ network boundary. The
401
+ [Deployment guide](https://knuckles-team.github.io/github-agent/deployment/) carries
402
+ the detailed transport contract.
378
403
 
379
- - **Local container / uv** — launch the server from `mcp_config.json` via `uvx`,
380
- `docker run`, or `podman run`, or point at a local streamable-http container by `url`.
381
- - **Remote URL** — connect to a server deployed behind Caddy at
382
- `http://github-mcp.arpa/mcp` using the `"url"` key.
404
+ - **Local container** — launch a reviewed immutable image as a least-privilege
405
+ stdio child with no listener or published port.
406
+ - **Remote URL** — connect through an operator-supplied authenticated HTTPS
407
+ ingress. Keep its URL, outbound identity references, trust profile, and exact
408
+ `MCP_ALLOWED_HOSTS` in `AgentConfig`.
383
409
  <!-- END GENERATED: additional-deployment-options -->
384
410
 
385
411
  ---
@@ -397,24 +423,26 @@ consumed from a **remote deployment**. The
397
423
  | `TRANSPORT` | `stdio` | options: stdio, streamable-http, sse |
398
424
  | `ENABLE_OTEL` | `True` | |
399
425
  | `OTEL_EXPORTER_OTLP_ENDPOINT` | `http://localhost:8080/api/public/otel` | |
400
- | `OTEL_EXPORTER_OTLP_PUBLIC_KEY` | `pk-...` | |
401
- | `OTEL_EXPORTER_OTLP_SECRET_KEY` | `sk-...` | |
426
+ | `OTEL_EXPORTER_OTLP_PUBLIC_KEY` | secret-injected | |
427
+ | `OTEL_EXPORTER_OTLP_SECRET_KEY` | secret-injected | |
402
428
  | `OTEL_EXPORTER_OTLP_PROTOCOL` | `http/protobuf` | |
403
429
  | `EUNOMIA_TYPE` | `none` | options: none, embedded, remote |
404
430
  | `EUNOMIA_POLICY_FILE` | `mcp_policies.json` | |
405
431
  | `EUNOMIA_REMOTE_URL` | `http://eunomia-server:8000` | |
406
432
  | `GITHUB_URL` | `https://api.github.com` | |
407
- | `GITHUB_VERIFY` | `True` | |
408
- | `GITHUB_SSL_VERIFY` | `True` | GITHUB_SSL_VERIFY takes precedence over GITHUB_VERIFY when set |
433
+ | `TLS_PROFILE` | `private-ca` | AgentConfig named transport profile |
434
+ | `TLS_PROFILE_REF` | `secret://transport/provider` | Direct runtime profile reference |
435
+ | `TLS_PROFILES_REF` | `secret://transport/catalog` | Named runtime profile catalog |
409
436
  | `GITHUB_ALLOW_DESTRUCTIVE` | `False` | Allow destructive (delete/force) operations |
410
437
  | `GITHUB_HTTP_CONNECT_TIMEOUT` | `10` | HTTP client timeouts (seconds) |
411
438
  | `GITHUB_HTTP_READ_TIMEOUT` | `30` | |
412
439
  | `DEBUG` | `False` | |
413
440
  | `PYTHONUNBUFFERED` | `1` | |
414
- | `GITHUB_TOKEN` | `your_github_token_here` | |
415
- | `ACTIONTOOL` | `True` | MCP tools table (condensed action-routed surface). |
441
+ | `GITHUB_TOKEN` | secret-injected | |
442
+ | `ACTIONTOOL` | `True` | These names match the authoritative "Toggle Env Var" column in the README MCP tools table (condensed action-routed surface). |
416
443
  | `BRANCHTOOL` | `True` | |
417
444
  | `COLLABORATORTOOL` | `True` | |
445
+ | `COMMENTTOOL` | `True` | |
418
446
  | `COMMITTOOL` | `True` | |
419
447
  | `CONTENTTOOL` | `True` | |
420
448
  | `DEPENDABOTTOOL` | `True` | |
@@ -427,24 +455,26 @@ consumed from a **remote deployment**. The
427
455
  | `REPOTOOL` | `True` | |
428
456
  | `SEARCHTOOL` | `True` | |
429
457
 
430
- #### Inherited agent-utilities variables (apply to every connector)
458
+ #### Inherited agent-connector-sdk variables (apply to every connector)
431
459
 
432
460
  | Variable | Example | Description |
433
461
  |----------|---------|-------------|
434
- | `MCP_TOOL_MODE` | `condensed` | Tool surface: `condensed` | `verbose` | `both` |
462
+ | `MCP_TOOL_MODE` | `intent` | Tool surface: `intent` \| `condensed` \| `verbose` \| `both` |
435
463
  | `MCP_ENABLED_TOOLS` | — | Comma-separated tool allow-list |
436
464
  | `MCP_DISABLED_TOOLS` | — | Comma-separated tool deny-list |
437
465
  | `MCP_ENABLED_TAGS` | — | Comma-separated tag allow-list |
438
466
  | `MCP_DISABLED_TAGS` | — | Comma-separated tag deny-list |
439
- | `MCP_CLIENT_AUTH` | — | Outbound MCP auth (`oidc-client-credentials` for fleet calls) |
467
+ | `MCP_CLIENT_AUTH` | — | Outbound MCP child auth: `oidc-client-credentials` \| `basic` \| `none` |
440
468
  | `OIDC_CLIENT_ID` | — | OIDC client id (service-account auth) |
441
- | `OIDC_CLIENT_SECRET` | — | OIDC client secret (service-account auth) |
469
+ | `OIDC_CLIENT_SECRET_REF` | `secret://identity/oidc-client-secret` | Runtime secret reference for the OIDC service account |
470
+ | `MCP_BASIC_AUTH_USERNAME` | — | HTTP Basic username (`MCP_CLIENT_AUTH=basic`) |
471
+ | `MCP_BASIC_AUTH_PASSWORD_REF` | `secret://identity/mcp-basic-password` | Runtime secret reference for HTTP Basic auth (`MCP_CLIENT_AUTH=basic`) |
442
472
  | `MCP_URL` | `http://localhost:8000/mcp` | URL of the MCP server the agent connects to |
443
473
  | `PROVIDER` | `openai` | LLM provider for the agent |
444
474
  | `MODEL_ID` | `gpt-4o` | Model id for the agent |
445
475
  | `ENABLE_WEB_UI` | `True` | Serve the AG-UI web interface |
446
476
 
447
- _34 package + 12 inherited variable(s). Auto-generated from `.env.example` + the shared agent-utilities set — do not edit._
477
+ _36 package + 14 inherited variable(s). Auto-generated from `.env.example` + the shared agent-connector-sdk set — do not edit._
448
478
  <!-- ENV-VARS-TABLE:END -->
449
479
 
450
480
 
@@ -453,9 +483,9 @@ Every variable the server reads.
453
483
  ### Connection & Credentials
454
484
  | Variable | Description | Default |
455
485
  |----------|-------------|---------|
456
- | `GITHUB_URL` | GitHub REST API base URL (use your GitHub Enterprise Server URL for self-hosted) | `https://api.github.com` |
486
+ | `GITHUB_URL` | GitHub REST API base URL (use the operator's GitHub Enterprise Server URL for self-hosted) | `https://api.github.com` |
457
487
  | `GITHUB_TOKEN` | GitHub Personal Access Token / OAuth token (`Authorization: Bearer <token>`) | — |
458
- | `GITHUB_VERIFY` | TLS certificate verification | `True` |
488
+ | `TLS_PROFILE` / `TLS_PROFILE_REF` | AgentConfig transport profile selector; peer verification is mandatory | — |
459
489
 
460
490
  ### MCP server / transport
461
491
  | Variable | Description | Default |
@@ -511,7 +541,7 @@ See [`.env.example`](.env.example) for a copy-paste starting point.
511
541
 
512
542
  ## Agent
513
543
 
514
- This repository features a fully integrated Pydantic AI Graph Agent. It communicates over the **Agent Control Protocol (ACP)** and interacts seamlessly with the **Agent Web UI (AG-UI)** and Terminal interface.
544
+ This repository features a fully integrated Pydantic AI Graph Agent. It communicates over the **Agent Control Protocol (ACP)** and interacts smoothly with the **Agent Web UI (AG-UI)** and Terminal interface.
515
545
 
516
546
  ### Running the Agent CLI
517
547
  To start the interactive command-line agent:
@@ -519,7 +549,7 @@ To start the interactive command-line agent:
519
549
  ```bash
520
550
  # Set credentials
521
551
  export GITHUB_URL="your_value"
522
- export GITHUB_VERIFY="your_value"
552
+ # Configure TLS_PROFILE or TLS_PROFILE_REF through AgentConfig for private PKI.
523
553
  export DEBUG="your_value"
524
554
  export PYTHONUNBUFFERED="your_value"
525
555
  export GITHUB_TOKEN="your_value"
@@ -529,14 +559,12 @@ github-agent --provider openai --model-id gpt-4o
529
559
  ```
530
560
 
531
561
  ### Docker Compose Orchestration
532
- The following `docker/agent.compose.yml` configures the Agent, Web UI, and Terminal Interface together:
533
562
 
534
563
  ```yaml
535
564
  version: '3.8'
536
565
 
537
566
  services:
538
567
  github-agent-mcp:
539
- image: knucklessg1/github-agent:mcp
540
568
  container_name: github-agent-mcp
541
569
  hostname: github-agent-mcp
542
570
  restart: always
@@ -561,8 +589,7 @@ services:
561
589
  max-size: "10m"
562
590
  max-file: "3"
563
591
 
564
- github-agent-agent:
565
- image: knucklessg1/github-agent:latest
592
+ image: example/github-agent@sha256:<digest>
566
593
  container_name: github-agent-agent
567
594
  hostname: github-agent-agent
568
595
  restart: always
@@ -596,13 +623,13 @@ services:
596
623
 
597
624
  ```
598
625
 
599
- Detailed graph node architecture explanations, custom skill configurations, and agentic trace guides are available in [docs/agent.md](docs/agent.md).
626
+ Detailed graph node architecture explanations, custom skill configurations, and agentic trace guides are available in [docs/deployment.md](docs/deployment.md).
600
627
 
601
628
  ---
602
629
 
603
630
  ## Security & Governance
604
631
 
605
- Built directly upon the enterprise-ready [`agent-utilities`](https://github.com/Knuckles-Team/agent-utilities) core, standard security parameters are fully supported:
632
+ Built directly upon the enterprise-ready [`agent-connector-sdk`](https://github.com/Knuckles-Team/agent-connector-sdk) core, standard security parameters are fully supported:
606
633
 
607
634
  ### Access Control & Policy Enforcement
608
635
  - **Eunomia Policies:** Fine-grained, policy-driven tool authorization. Supports `none`, local `embedded` (`mcp_policies.json`), or centralized `remote` modes.
@@ -610,7 +637,7 @@ Built directly upon the enterprise-ready [`agent-utilities`](https://github.com/
610
637
  - **Scoped Credentials:** Execution context runs restricted to the specific caller identity.
611
638
 
612
639
  ### Runtime Security Grid
613
- | Feature | Functionality | Enablement |
640
+ | Feature | Feature | Enablement |
614
641
  |---------|---------------|------------|
615
642
  | **Tool Guard** | Sensitivity inspection with human-in-the-loop validation | Enabled by default |
616
643
  | **Prompt Injection Defense** | Input scanning, repetition monitoring, and recursive loop blocks | Enabled by default |
@@ -620,51 +647,43 @@ Built directly upon the enterprise-ready [`agent-utilities`](https://github.com/
620
647
 
621
648
  ## Installation
622
649
 
623
- Pick the extra that matches what you want to run:
650
+ Pick the extra that matches what the operator want to run:
624
651
 
625
652
  | Extra | Installs | Use when |
626
653
  |-------|----------|----------|
627
- | `github-agent[mcp]` | Slim MCP server only (`agent-utilities[mcp]` — FastMCP/FastAPI) | You only run the **MCP server** (smallest install / image) |
628
- | `github-agent[agent]` | Full agent runtime (`agent-utilities[agent,logfire]` — Pydantic AI + the epistemic-graph engine) | You run the **integrated agent** |
654
+ | `github-agent[mcp]` | Connector-focused MCP server (`agent-connector-sdk` — FastMCP/FastAPI + `epistemic-graph[full]`) | The operator only run the **MCP server** (smallest install / image) |
629
655
  | `github-agent[all]` | Everything (`mcp` + `agent` + `logfire`) | Development / both surfaces |
630
656
 
631
657
  ```bash
632
- # MCP server only (recommended for tool hosting — slim deps)
658
+ # Connector-focused MCP server (includes the shared graph engine)
633
659
  uv pip install "github-agent[mcp]"
634
660
 
635
- # Full agent runtime (Pydantic AI + epistemic-graph engine)
636
- uv pip install "github-agent[agent]"
661
+ # Agent runtime (adds model orchestration to the shared graph engine)
637
662
 
638
663
  # Everything (development)
639
664
  uv pip install "github-agent[all]" # or: python -m pip install "github-agent[all]"
640
665
  ```
641
666
 
642
- ### Container images (`:mcp` vs `:agent`)
667
+ ### Container images (`:mcp`)
643
668
 
644
- One multi-stage `docker/Dockerfile` builds two right-sized images, selected by `--target`:
669
+ One multi-stage `docker/Dockerfile` builds the MCP-only image (`--target mcp`):
645
670
 
646
671
  | Image tag | Build target | Contents | Entrypoint |
647
672
  |-----------|--------------|----------|------------|
648
- | `knucklessg1/github-agent:mcp` | `--target mcp` | `github-agent[mcp]` — **slim**, no engine/`pydantic-ai`/`dspy`/`llama-index`/`tree-sitter` | `github-mcp` |
649
- | `knucklessg1/github-agent:latest` | `--target agent` (default) | `github-agent[agent]` — **full** agent runtime + epistemic-graph engine | `github-agent` |
650
673
 
651
674
  ```bash
652
- docker build --target mcp -t knucklessg1/github-agent:mcp docker/ # slim MCP server
653
- docker build --target agent -t knucklessg1/github-agent:latest docker/ # full agent
654
675
  ```
655
676
 
656
- `docker/mcp.compose.yml` runs the slim `:mcp` server; `docker/agent.compose.yml` runs the
657
- agent (`:latest`) with a co-located `:mcp` sidecar.
677
+ agent (`immutable agent digest`) with a co-located `:mcp` sidecar.
658
678
 
659
679
  ### Knowledge-graph database (`epistemic-graph`)
660
680
 
661
- The **full agent** (`[agent]` / `:latest`) embeds the **epistemic-graph** engine (pulled in
662
- transitively via `agent-utilities[agent]`). For production — or to share one knowledge graph
663
- across multiple agents — run **epistemic-graph as its own database container** and point the
664
- agent at it instead of embedding it. Deployment recipes (single-node + Raft HA), connection
665
- config, and the full database architecture (with diagrams) are documented in the
681
+ Agent Connector SDK core dependency (`epistemic-graph[full]`). The `[mcp]` extra keeps
682
+ deployments can use the bundled engine. For production or shared state, run
683
+ **epistemic-graph as a dedicated database service** and configure the runtime to use it.
684
+ Deployment recipes (single-node + Raft HA), connection configuration, and architecture
685
+ diagrams are documented in the
666
686
  [epistemic-graph deployment guide](https://knuckles-team.github.io/epistemic-graph/deployment/).
667
- The slim `[mcp]` server does **not** require the database.
668
687
 
669
688
  ---
670
689
 
@@ -686,39 +705,35 @@ recommended reference for installation, deployment, and day-to-day operation.
686
705
 
687
706
  ## Repository Owners
688
707
 
689
- <img width="100%" height="180em" src="https://github-readme-stats.vercel.app/api?username=Knucklessg1&show_icons=true&hide_border=true&&count_private=true&include_all_commits=true" />
708
+ <img width="100%" height="180em" src="https://github-readme-stats.vercel.app/api?username=example&show_icons=true&hide_border=true&&count_private=true&include_all_commits=true" />
690
709
 
691
- ![GitHub followers](https://img.shields.io/github/followers/Knucklessg1)
692
- ![GitHub User's stars](https://img.shields.io/github/stars/Knucklessg1)
710
+ ![GitHub followers](https://img.shields.io/github/followers/example)
711
+ ![GitHub User's stars](https://img.shields.io/github/stars/example)
693
712
 
694
713
  ---
695
714
 
696
715
  ## Contribute
697
716
 
698
- Contributions are welcome! Please ensure code quality by executing local checks before submitting pull requests:
717
+ Contributions are welcome! Please ensure code quality by running local checks before submitting pull requests:
699
718
  - Format code using `ruff format .`
700
719
  - Lint code using `ruff check .`
701
720
  - Validate type-safety with `mypy .`
702
- - Execute test suites using `pytest`
703
-
704
-
705
- <!-- BEGIN agent-os-genesis-deploy (generated; do not edit between markers) -->
721
+ - Run test suites using `pytest`
706
722
 
707
- ## Deploy with `agent-os-genesis`
708
723
 
709
- This package can be provisioned for you — skill-guided — by the **`agent-os-genesis`**
710
- universal skill (its *single-package deploy mode*): it picks your install method, seeds
711
- secrets to OpenBao/Vault (or `.env`), trusts your enterprise CA, registers the MCP
712
- server, and verifies it — the same machinery that stands up the whole Agent OS, narrowed
713
- to just this package. Ask your agent to **"deploy `github-agent` with agent-os-genesis"**.
714
724
 
715
- | Install mode | Command |
716
- |------|---------|
717
- | Bare-metal, prod (PyPI) | `uvx github-mcp` · or `uv tool install github-agent` |
718
- | Bare-metal, dev (editable) | `uv pip install -e ".[all]"` · or `pip install -e ".[all]"` |
719
- | Container, prod | deploy `knucklessg1/github-agent:latest` via docker-compose / swarm / podman / podman-compose / kubernetes |
720
- | Container, dev (editable) | deploy `docker/compose.dev.yml` (source-mounted at `/src`; edits live on restart) |
725
+ <!-- GOVERNED-CAPABILITY:START -->
726
+ ## Governed capability contract
721
727
 
722
- Secrets are read-existing + seeded via `vault_sync` — you are only prompted for what's missing.
728
+ This package ships a compact canonical skill surface with specialist procedures
729
+ kept as referenced workflows. The current MCP tools, skill metadata,
730
+ `connector_manifest.yml`, ontology, mappings, shapes, fixtures, migrations,
731
+ tool-schema fingerprints, and certification metadata form one versioned
732
+ capability contract. Validate them together; do not rely on stale tool names or
733
+ historical per-task skill wrappers.
723
734
 
724
- <!-- END agent-os-genesis-deploy -->
735
+ Runtime endpoints, credentials, certificate trust, tenant identity, retention,
736
+ and observability policy are deployment inputs and are never packaged values.
737
+ See [Configuration, trust, and privacy](docs/configuration.md) before enabling a
738
+ network transport, connector ingestion, Arbora delegation, or trace export.
739
+ <!-- GOVERNED-CAPABILITY:END -->