codecortex-context-engine 0.1.0a1__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 (197) hide show
  1. codecortex_context_engine-0.1.0a1/.dockerignore +16 -0
  2. codecortex_context_engine-0.1.0a1/.github/CODEOWNERS +10 -0
  3. codecortex_context_engine-0.1.0a1/.github/ISSUE_TEMPLATE/bug.yml +38 -0
  4. codecortex_context_engine-0.1.0a1/.github/ISSUE_TEMPLATE/config.yml +5 -0
  5. codecortex_context_engine-0.1.0a1/.github/ISSUE_TEMPLATE/feature.yml +22 -0
  6. codecortex_context_engine-0.1.0a1/.github/PULL_REQUEST_TEMPLATE.md +16 -0
  7. codecortex_context_engine-0.1.0a1/.github/dependabot.yml +20 -0
  8. codecortex_context_engine-0.1.0a1/.github/pull_request_template.md +15 -0
  9. codecortex_context_engine-0.1.0a1/.github/workflows/backend-conformance.yml +45 -0
  10. codecortex_context_engine-0.1.0a1/.github/workflows/bootstrap-release.yml +28 -0
  11. codecortex_context_engine-0.1.0a1/.github/workflows/ci.yml +61 -0
  12. codecortex_context_engine-0.1.0a1/.github/workflows/codeql.yml +31 -0
  13. codecortex_context_engine-0.1.0a1/.github/workflows/docker.yml +78 -0
  14. codecortex_context_engine-0.1.0a1/.github/workflows/docs.yml +58 -0
  15. codecortex_context_engine-0.1.0a1/.github/workflows/live-agent-e2e.yml +67 -0
  16. codecortex_context_engine-0.1.0a1/.github/workflows/parser-providers.yml +38 -0
  17. codecortex_context_engine-0.1.0a1/.github/workflows/production-benchmark.yml +56 -0
  18. codecortex_context_engine-0.1.0a1/.github/workflows/release.yml +189 -0
  19. codecortex_context_engine-0.1.0a1/.github/workflows/scorecard.yml +39 -0
  20. codecortex_context_engine-0.1.0a1/.github/workflows/security.yml +61 -0
  21. codecortex_context_engine-0.1.0a1/.gitignore +14 -0
  22. codecortex_context_engine-0.1.0a1/CHANGELOG.md +28 -0
  23. codecortex_context_engine-0.1.0a1/CITATION.cff +17 -0
  24. codecortex_context_engine-0.1.0a1/CODE_OF_CONDUCT.md +21 -0
  25. codecortex_context_engine-0.1.0a1/COMMERCIAL.md +9 -0
  26. codecortex_context_engine-0.1.0a1/CONTRIBUTING.md +38 -0
  27. codecortex_context_engine-0.1.0a1/Dockerfile +37 -0
  28. codecortex_context_engine-0.1.0a1/GOVERNANCE.md +25 -0
  29. codecortex_context_engine-0.1.0a1/LICENSE +201 -0
  30. codecortex_context_engine-0.1.0a1/NOTICE +2 -0
  31. codecortex_context_engine-0.1.0a1/PKG-INFO +381 -0
  32. codecortex_context_engine-0.1.0a1/README.md +141 -0
  33. codecortex_context_engine-0.1.0a1/ROADMAP.md +72 -0
  34. codecortex_context_engine-0.1.0a1/SECURITY.md +33 -0
  35. codecortex_context_engine-0.1.0a1/SUPPORT.md +15 -0
  36. codecortex_context_engine-0.1.0a1/benchmarks/README.md +13 -0
  37. codecortex_context_engine-0.1.0a1/benchmarks/cases.json +22 -0
  38. codecortex_context_engine-0.1.0a1/benchmarks/external/sample-suite.json +17 -0
  39. codecortex_context_engine-0.1.0a1/benchmarks/production/README.md +47 -0
  40. codecortex_context_engine-0.1.0a1/benchmarks/production/spec.json +46 -0
  41. codecortex_context_engine-0.1.0a1/benchmarks/regression-policy.json +7 -0
  42. codecortex_context_engine-0.1.0a1/codecov.yml +16 -0
  43. codecortex_context_engine-0.1.0a1/compose.yaml +27 -0
  44. codecortex_context_engine-0.1.0a1/docs/ADVANCED_INTELLIGENCE.md +66 -0
  45. codecortex_context_engine-0.1.0a1/docs/ARCHITECTURE.md +24 -0
  46. codecortex_context_engine-0.1.0a1/docs/BRAND.md +34 -0
  47. codecortex_context_engine-0.1.0a1/docs/INTEGRATIONS.md +14 -0
  48. codecortex_context_engine-0.1.0a1/docs/OPENSSF.md +30 -0
  49. codecortex_context_engine-0.1.0a1/docs/PACKAGING.md +17 -0
  50. codecortex_context_engine-0.1.0a1/docs/QUALITY.md +21 -0
  51. codecortex_context_engine-0.1.0a1/docs/RELEASE.md +11 -0
  52. codecortex_context_engine-0.1.0a1/docs/TESTING.md +9 -0
  53. codecortex_context_engine-0.1.0a1/docs/index.md +29 -0
  54. codecortex_context_engine-0.1.0a1/examples/demo_project/api.py +6 -0
  55. codecortex_context_engine-0.1.0a1/examples/demo_project/auth/service.py +12 -0
  56. codecortex_context_engine-0.1.0a1/examples/demo_project/auth/tokens.py +14 -0
  57. codecortex_context_engine-0.1.0a1/examples/demo_project/tests/test_auth.py +7 -0
  58. codecortex_context_engine-0.1.0a1/mkdocs.yml +26 -0
  59. codecortex_context_engine-0.1.0a1/pyproject.toml +80 -0
  60. codecortex_context_engine-0.1.0a1/scripts/backend_conformance.py +70 -0
  61. codecortex_context_engine-0.1.0a1/scripts/demo.py +32 -0
  62. codecortex_context_engine-0.1.0a1/scripts/install.ps1 +19 -0
  63. codecortex_context_engine-0.1.0a1/scripts/install.sh +24 -0
  64. codecortex_context_engine-0.1.0a1/scripts/live_agent_e2e.py +68 -0
  65. codecortex_context_engine-0.1.0a1/scripts/release_check.py +35 -0
  66. codecortex_context_engine-0.1.0a1/scripts/run_agent_matrix.py +70 -0
  67. codecortex_context_engine-0.1.0a1/scripts/run_production_benchmark.py +45 -0
  68. codecortex_context_engine-0.1.0a1/src/codecortex/__init__.py +3 -0
  69. codecortex_context_engine-0.1.0a1/src/codecortex/architecture/__init__.py +23 -0
  70. codecortex_context_engine-0.1.0a1/src/codecortex/architecture/drift.py +182 -0
  71. codecortex_context_engine-0.1.0a1/src/codecortex/architecture/inference.py +160 -0
  72. codecortex_context_engine-0.1.0a1/src/codecortex/backends/__init__.py +35 -0
  73. codecortex_context_engine-0.1.0a1/src/codecortex/backends/base.py +38 -0
  74. codecortex_context_engine-0.1.0a1/src/codecortex/backends/context.py +118 -0
  75. codecortex_context_engine-0.1.0a1/src/codecortex/backends/contracts.py +65 -0
  76. codecortex_context_engine-0.1.0a1/src/codecortex/backends/factory.py +60 -0
  77. codecortex_context_engine-0.1.0a1/src/codecortex/backends/graph.py +107 -0
  78. codecortex_context_engine-0.1.0a1/src/codecortex/backends/manager.py +303 -0
  79. codecortex_context_engine-0.1.0a1/src/codecortex/backends/mcp_client.py +196 -0
  80. codecortex_context_engine-0.1.0a1/src/codecortex/backends/pool.py +128 -0
  81. codecortex_context_engine-0.1.0a1/src/codecortex/backends/spec.py +83 -0
  82. codecortex_context_engine-0.1.0a1/src/codecortex/backends/symbols.py +189 -0
  83. codecortex_context_engine-0.1.0a1/src/codecortex/benchmark.py +211 -0
  84. codecortex_context_engine-0.1.0a1/src/codecortex/cli.py +409 -0
  85. codecortex_context_engine-0.1.0a1/src/codecortex/config.py +27 -0
  86. codecortex_context_engine-0.1.0a1/src/codecortex/context/__init__.py +13 -0
  87. codecortex_context_engine-0.1.0a1/src/codecortex/context/budget.py +62 -0
  88. codecortex_context_engine-0.1.0a1/src/codecortex/context/integrated.py +60 -0
  89. codecortex_context_engine-0.1.0a1/src/codecortex/context/pipeline.py +223 -0
  90. codecortex_context_engine-0.1.0a1/src/codecortex/core/__init__.py +1 -0
  91. codecortex_context_engine-0.1.0a1/src/codecortex/core/contracts.py +45 -0
  92. codecortex_context_engine-0.1.0a1/src/codecortex/core/errors.py +17 -0
  93. codecortex_context_engine-0.1.0a1/src/codecortex/core/models.py +69 -0
  94. codecortex_context_engine-0.1.0a1/src/codecortex/dashboard.py +259 -0
  95. codecortex_context_engine-0.1.0a1/src/codecortex/editing.py +41 -0
  96. codecortex_context_engine-0.1.0a1/src/codecortex/engines/__init__.py +5 -0
  97. codecortex_context_engine-0.1.0a1/src/codecortex/engines/builtin/__init__.py +5 -0
  98. codecortex_context_engine-0.1.0a1/src/codecortex/engines/builtin/factory.py +26 -0
  99. codecortex_context_engine-0.1.0a1/src/codecortex/engines/builtin/memory.py +35 -0
  100. codecortex_context_engine-0.1.0a1/src/codecortex/engines/builtin/repository.py +73 -0
  101. codecortex_context_engine-0.1.0a1/src/codecortex/engines/builtin/symbols.py +89 -0
  102. codecortex_context_engine-0.1.0a1/src/codecortex/engines/builtin/validation.py +54 -0
  103. codecortex_context_engine-0.1.0a1/src/codecortex/engines/registry.py +26 -0
  104. codecortex_context_engine-0.1.0a1/src/codecortex/entrypoint.py +266 -0
  105. codecortex_context_engine-0.1.0a1/src/codecortex/evaluation/__init__.py +55 -0
  106. codecortex_context_engine-0.1.0a1/src/codecortex/evaluation/external.py +265 -0
  107. codecortex_context_engine-0.1.0a1/src/codecortex/evaluation/production.py +670 -0
  108. codecortex_context_engine-0.1.0a1/src/codecortex/evaluation/regression.py +188 -0
  109. codecortex_context_engine-0.1.0a1/src/codecortex/gateway.py +38 -0
  110. codecortex_context_engine-0.1.0a1/src/codecortex/git_intelligence.py +252 -0
  111. codecortex_context_engine-0.1.0a1/src/codecortex/indexing/__init__.py +6 -0
  112. codecortex_context_engine-0.1.0a1/src/codecortex/indexing/graph.py +78 -0
  113. codecortex_context_engine-0.1.0a1/src/codecortex/indexing/impact.py +127 -0
  114. codecortex_context_engine-0.1.0a1/src/codecortex/indexing/incremental.py +163 -0
  115. codecortex_context_engine-0.1.0a1/src/codecortex/indexing/incremental_graph.py +189 -0
  116. codecortex_context_engine-0.1.0a1/src/codecortex/indexing/indexer.py +172 -0
  117. codecortex_context_engine-0.1.0a1/src/codecortex/indexing/relationships.py +179 -0
  118. codecortex_context_engine-0.1.0a1/src/codecortex/indexing/resolution.py +88 -0
  119. codecortex_context_engine-0.1.0a1/src/codecortex/integrations/__init__.py +5 -0
  120. codecortex_context_engine-0.1.0a1/src/codecortex/integrations/agents.py +235 -0
  121. codecortex_context_engine-0.1.0a1/src/codecortex/interfaces/__init__.py +1 -0
  122. codecortex_context_engine-0.1.0a1/src/codecortex/interfaces/mcp_bridge.py +66 -0
  123. codecortex_context_engine-0.1.0a1/src/codecortex/languages/__init__.py +5 -0
  124. codecortex_context_engine-0.1.0a1/src/codecortex/languages/native.py +166 -0
  125. codecortex_context_engine-0.1.0a1/src/codecortex/languages/registry.py +232 -0
  126. codecortex_context_engine-0.1.0a1/src/codecortex/mcp/__init__.py +5 -0
  127. codecortex_context_engine-0.1.0a1/src/codecortex/mcp/extended.py +114 -0
  128. codecortex_context_engine-0.1.0a1/src/codecortex/mcp/server.py +473 -0
  129. codecortex_context_engine-0.1.0a1/src/codecortex/memory/__init__.py +11 -0
  130. codecortex_context_engine-0.1.0a1/src/codecortex/memory/json_store.py +52 -0
  131. codecortex_context_engine-0.1.0a1/src/codecortex/memory/knowledge.py +193 -0
  132. codecortex_context_engine-0.1.0a1/src/codecortex/memory/team_store.py +193 -0
  133. codecortex_context_engine-0.1.0a1/src/codecortex/orchestrator.py +153 -0
  134. codecortex_context_engine-0.1.0a1/src/codecortex/pr_intelligence.py +214 -0
  135. codecortex_context_engine-0.1.0a1/src/codecortex/retrieval/__init__.py +16 -0
  136. codecortex_context_engine-0.1.0a1/src/codecortex/retrieval/hybrid.py +67 -0
  137. codecortex_context_engine-0.1.0a1/src/codecortex/retrieval/index.py +135 -0
  138. codecortex_context_engine-0.1.0a1/src/codecortex/retrieval/providers.py +67 -0
  139. codecortex_context_engine-0.1.0a1/src/codecortex/retrieval/repository.py +94 -0
  140. codecortex_context_engine-0.1.0a1/src/codecortex/router/__init__.py +5 -0
  141. codecortex_context_engine-0.1.0a1/src/codecortex/router/router.py +79 -0
  142. codecortex_context_engine-0.1.0a1/src/codecortex/runtime.py +69 -0
  143. codecortex_context_engine-0.1.0a1/src/codecortex/setup.py +100 -0
  144. codecortex_context_engine-0.1.0a1/src/codecortex/symbols/__init__.py +5 -0
  145. codecortex_context_engine-0.1.0a1/src/codecortex/symbols/providers.py +192 -0
  146. codecortex_context_engine-0.1.0a1/src/codecortex/telemetry/__init__.py +5 -0
  147. codecortex_context_engine-0.1.0a1/src/codecortex/telemetry/collector.py +43 -0
  148. codecortex_context_engine-0.1.0a1/src/codecortex/tracing/__init__.py +9 -0
  149. codecortex_context_engine-0.1.0a1/src/codecortex/tracing/task_trace.py +235 -0
  150. codecortex_context_engine-0.1.0a1/src/codecortex/workspace/__init__.py +9 -0
  151. codecortex_context_engine-0.1.0a1/src/codecortex/workspace/federation.py +173 -0
  152. codecortex_context_engine-0.1.0a1/tests/fixtures/fake_mcp_server.py +50 -0
  153. codecortex_context_engine-0.1.0a1/tests/test_agent_configurator.py +47 -0
  154. codecortex_context_engine-0.1.0a1/tests/test_architecture_drift.py +25 -0
  155. codecortex_context_engine-0.1.0a1/tests/test_architecture_inference.py +18 -0
  156. codecortex_context_engine-0.1.0a1/tests/test_backend_contracts.py +12 -0
  157. codecortex_context_engine-0.1.0a1/tests/test_backend_factory.py +16 -0
  158. codecortex_context_engine-0.1.0a1/tests/test_backend_manager.py +34 -0
  159. codecortex_context_engine-0.1.0a1/tests/test_backend_session_pool.py +13 -0
  160. codecortex_context_engine-0.1.0a1/tests/test_benchmark.py +26 -0
  161. codecortex_context_engine-0.1.0a1/tests/test_context.py +45 -0
  162. codecortex_context_engine-0.1.0a1/tests/test_context_backend_adapter.py +18 -0
  163. codecortex_context_engine-0.1.0a1/tests/test_context_pipeline.py +19 -0
  164. codecortex_context_engine-0.1.0a1/tests/test_dashboard.py +32 -0
  165. codecortex_context_engine-0.1.0a1/tests/test_external_evaluation.py +42 -0
  166. codecortex_context_engine-0.1.0a1/tests/test_git_intelligence.py +27 -0
  167. codecortex_context_engine-0.1.0a1/tests/test_graph.py +16 -0
  168. codecortex_context_engine-0.1.0a1/tests/test_graph_backend_adapter.py +23 -0
  169. codecortex_context_engine-0.1.0a1/tests/test_impact.py +23 -0
  170. codecortex_context_engine-0.1.0a1/tests/test_incremental.py +24 -0
  171. codecortex_context_engine-0.1.0a1/tests/test_incremental_graph.py +21 -0
  172. codecortex_context_engine-0.1.0a1/tests/test_integrated_context.py +14 -0
  173. codecortex_context_engine-0.1.0a1/tests/test_knowledge.py +19 -0
  174. codecortex_context_engine-0.1.0a1/tests/test_languages.py +28 -0
  175. codecortex_context_engine-0.1.0a1/tests/test_mcp.py +40 -0
  176. codecortex_context_engine-0.1.0a1/tests/test_mcp_edit_surface.py +26 -0
  177. codecortex_context_engine-0.1.0a1/tests/test_mcp_stdio_client.py +28 -0
  178. codecortex_context_engine-0.1.0a1/tests/test_memory.py +13 -0
  179. codecortex_context_engine-0.1.0a1/tests/test_native_parsers.py +24 -0
  180. codecortex_context_engine-0.1.0a1/tests/test_orchestrator_concurrency.py +37 -0
  181. codecortex_context_engine-0.1.0a1/tests/test_pr_intelligence.py +29 -0
  182. codecortex_context_engine-0.1.0a1/tests/test_production_benchmark.py +59 -0
  183. codecortex_context_engine-0.1.0a1/tests/test_regression_gate.py +23 -0
  184. codecortex_context_engine-0.1.0a1/tests/test_relationships.py +16 -0
  185. codecortex_context_engine-0.1.0a1/tests/test_repository_semantic.py +13 -0
  186. codecortex_context_engine-0.1.0a1/tests/test_resolution.py +15 -0
  187. codecortex_context_engine-0.1.0a1/tests/test_retrieval.py +30 -0
  188. codecortex_context_engine-0.1.0a1/tests/test_router.py +25 -0
  189. codecortex_context_engine-0.1.0a1/tests/test_runtime.py +30 -0
  190. codecortex_context_engine-0.1.0a1/tests/test_security_boundaries.py +38 -0
  191. codecortex_context_engine-0.1.0a1/tests/test_setup.py +11 -0
  192. codecortex_context_engine-0.1.0a1/tests/test_symbol_backend_adapter.py +29 -0
  193. codecortex_context_engine-0.1.0a1/tests/test_symbol_history.py +25 -0
  194. codecortex_context_engine-0.1.0a1/tests/test_symbols.py +27 -0
  195. codecortex_context_engine-0.1.0a1/tests/test_task_trace.py +28 -0
  196. codecortex_context_engine-0.1.0a1/tests/test_team_memory.py +37 -0
  197. codecortex_context_engine-0.1.0a1/tests/test_workspace.py +20 -0
@@ -0,0 +1,16 @@
1
+ .git
2
+ .github
3
+ .codecortex
4
+ .venv
5
+ venv
6
+ __pycache__
7
+ *.pyc
8
+ *.pyo
9
+ .pytest_cache
10
+ .mypy_cache
11
+ .ruff_cache
12
+ build
13
+ dist
14
+ *.egg-info
15
+ benchmarks/production/results.json
16
+ benchmarks/production/agent-results.json
@@ -0,0 +1,10 @@
1
+ # Default ownership
2
+ * @BehnamJalaliCo
3
+
4
+ # Security and release-sensitive surfaces
5
+ /.github/ @BehnamJalaliCo
6
+ /SECURITY.md @BehnamJalaliCo
7
+ /LICENSE @BehnamJalaliCo
8
+ /pyproject.toml @BehnamJalaliCo
9
+ /src/codecortex/backends/ @BehnamJalaliCo
10
+ /src/codecortex/mcp/ @BehnamJalaliCo
@@ -0,0 +1,38 @@
1
+ name: Bug report
2
+ description: Report a reproducible CodeCortex problem
3
+ title: "[Bug]: "
4
+ labels: ["bug"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: "Thanks for helping improve CodeCortex. Do not include secrets or vulnerability details here."
9
+ - type: input
10
+ id: version
11
+ attributes:
12
+ label: Version or commit
13
+ validations:
14
+ required: true
15
+ - type: textarea
16
+ id: reproduce
17
+ attributes:
18
+ label: Reproduction
19
+ description: Minimal steps or repository-independent example.
20
+ validations:
21
+ required: true
22
+ - type: textarea
23
+ id: expected
24
+ attributes:
25
+ label: Expected behavior
26
+ validations:
27
+ required: true
28
+ - type: textarea
29
+ id: actual
30
+ attributes:
31
+ label: Actual behavior
32
+ validations:
33
+ required: true
34
+ - type: input
35
+ id: environment
36
+ attributes:
37
+ label: Environment
38
+ description: OS, Python version, and relevant agent/CLI.
@@ -0,0 +1,5 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: Security vulnerability
4
+ url: https://github.com/BehnamJalaliCo/CodeCortex/security/advisories/new
5
+ about: Report suspected vulnerabilities privately.
@@ -0,0 +1,22 @@
1
+ name: Feature request
2
+ description: Propose a focused product or engineering improvement
3
+ title: "[Feature]: "
4
+ labels: ["enhancement"]
5
+ body:
6
+ - type: textarea
7
+ id: problem
8
+ attributes:
9
+ label: Problem
10
+ description: What user or engineering problem should be solved?
11
+ validations:
12
+ required: true
13
+ - type: textarea
14
+ id: proposal
15
+ attributes:
16
+ label: Proposed solution
17
+ validations:
18
+ required: true
19
+ - type: textarea
20
+ id: alternatives
21
+ attributes:
22
+ label: Alternatives considered
@@ -0,0 +1,16 @@
1
+ ## Summary
2
+
3
+ Describe what changed and why.
4
+
5
+ ## Validation
6
+
7
+ - [ ] Tests added or updated when behavior changed
8
+ - [ ] `ruff check .` passes
9
+ - [ ] `pytest -q` passes
10
+ - [ ] Security implications considered
11
+ - [ ] Documentation updated when user-visible behavior changed
12
+ - [ ] No secrets, private source, or generated credentials are included
13
+
14
+ ## Compatibility / risk
15
+
16
+ Describe compatibility impact, migration needs, or rollout risk. Write `None` when not applicable.
@@ -0,0 +1,20 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: pip
4
+ directory: "/"
5
+ schedule:
6
+ interval: weekly
7
+ open-pull-requests-limit: 10
8
+ labels: ["dependencies"]
9
+ - package-ecosystem: github-actions
10
+ directory: "/"
11
+ schedule:
12
+ interval: weekly
13
+ open-pull-requests-limit: 10
14
+ labels: ["dependencies", "github-actions"]
15
+ - package-ecosystem: docker
16
+ directory: "/"
17
+ schedule:
18
+ interval: weekly
19
+ open-pull-requests-limit: 5
20
+ labels: ["dependencies", "docker"]
@@ -0,0 +1,15 @@
1
+ ## What changed
2
+
3
+ Describe the behavior and why it belongs in CodeCortex.
4
+
5
+ ## Verification
6
+
7
+ - [ ] Tests added or updated
8
+ - [ ] `ruff check .` passes
9
+ - [ ] `pytest -q` passes
10
+ - [ ] No benchmark or performance claim is included without a reproducible measurement
11
+ - [ ] Backend contract changes include compatibility coverage
12
+
13
+ ## Risk
14
+
15
+ Describe compatibility, security, performance, or migration risk.
@@ -0,0 +1,45 @@
1
+ name: Backend Boundary Conformance
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ push:
6
+ branches: [main]
7
+ paths:
8
+ - "src/codecortex/backends/**"
9
+ - "src/codecortex/context/integrated.py"
10
+ - "tests/test_backend_*.py"
11
+ - "tests/test_context_backend_adapter.py"
12
+ - ".github/workflows/backend-conformance.yml"
13
+ - "pyproject.toml"
14
+ pull_request:
15
+ paths:
16
+ - "src/codecortex/backends/**"
17
+ - "src/codecortex/context/integrated.py"
18
+ - "tests/test_backend_*.py"
19
+ - "tests/test_context_backend_adapter.py"
20
+ - ".github/workflows/backend-conformance.yml"
21
+ - "pyproject.toml"
22
+
23
+ permissions:
24
+ contents: read
25
+
26
+ jobs:
27
+ backend-boundary:
28
+ runs-on: ubuntu-latest
29
+ steps:
30
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
31
+ with:
32
+ persist-credentials: false
33
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
34
+ with:
35
+ python-version: "3.13"
36
+ cache: pip
37
+ - run: python -m pip install --upgrade pip
38
+ - run: pip install -e ".[dev]"
39
+ - run: >-
40
+ pytest -q
41
+ tests/test_backend_contracts.py
42
+ tests/test_backend_factory.py
43
+ tests/test_backend_manager.py
44
+ tests/test_backend_session_pool.py
45
+ tests/test_context_backend_adapter.py
@@ -0,0 +1,28 @@
1
+ name: Bootstrap First Release
2
+
3
+ on:
4
+ push:
5
+ paths:
6
+ - .github/workflows/bootstrap-release.yml
7
+
8
+ permissions:
9
+ contents: write
10
+ actions: write
11
+
12
+ jobs:
13
+ release:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
17
+ with:
18
+ fetch-depth: 0
19
+ - name: Point v0.1.0a1 at the validated release commit
20
+ run: |
21
+ git config user.name "github-actions[bot]"
22
+ git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
23
+ git tag -fa v0.1.0a1 -m "CodeCortex Context Engine v0.1.0a1"
24
+ git push --force origin refs/tags/v0.1.0a1
25
+ - name: Dispatch release workflow
26
+ env:
27
+ GH_TOKEN: ${{ github.token }}
28
+ run: gh workflow run release.yml --ref main -f tag=v0.1.0a1
@@ -0,0 +1,61 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ test:
13
+ runs-on: ubuntu-latest
14
+ permissions:
15
+ contents: read
16
+ id-token: write
17
+ strategy:
18
+ fail-fast: false
19
+ matrix:
20
+ python-version: ["3.11", "3.12", "3.13"]
21
+ steps:
22
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
23
+ with:
24
+ persist-credentials: false
25
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
26
+ with:
27
+ python-version: ${{ matrix.python-version }}
28
+ cache: pip
29
+ - run: python -m pip install --upgrade pip
30
+ - run: pip install -e ".[dev]"
31
+ - run: ruff check .
32
+ - name: Tests
33
+ run: |
34
+ if [ "${{ matrix.python-version }}" = "3.13" ]; then
35
+ pytest -q --cov=codecortex --cov-report=xml --cov-report=term-missing --cov-fail-under=65
36
+ else
37
+ pytest -q
38
+ fi
39
+ - name: Upload coverage
40
+ if: matrix.python-version == '3.13' && !cancelled()
41
+ uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
42
+ with:
43
+ use_oidc: true
44
+ files: ./coverage.xml
45
+ fail_ci_if_error: false
46
+
47
+ package:
48
+ runs-on: ubuntu-latest
49
+ steps:
50
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
51
+ with:
52
+ persist-credentials: false
53
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
54
+ with:
55
+ python-version: "3.13"
56
+ - run: python -m pip install --upgrade pip build twine
57
+ - run: python -m build
58
+ - run: python -m twine check dist/*
59
+ - run: pip install dist/*.whl
60
+ - run: cortex --help
61
+ - run: cortex version
@@ -0,0 +1,31 @@
1
+ name: CodeQL
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+ schedule:
9
+ - cron: "7 2 * * 5"
10
+
11
+ permissions:
12
+ security-events: write
13
+ packages: read
14
+ actions: read
15
+ contents: read
16
+
17
+ jobs:
18
+ analyze:
19
+ runs-on: ubuntu-latest
20
+ timeout-minutes: 30
21
+ steps:
22
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
23
+ with:
24
+ persist-credentials: false
25
+ - uses: github/codeql-action/init@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4
26
+ with:
27
+ languages: python
28
+ queries: security-extended
29
+ - uses: github/codeql-action/analyze@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4
30
+ with:
31
+ category: /language:python
@@ -0,0 +1,78 @@
1
+ name: Docker
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ push:
6
+ branches: [main]
7
+ paths:
8
+ - "Dockerfile"
9
+ - "compose.yaml"
10
+ - ".dockerignore"
11
+ - "pyproject.toml"
12
+ - "src/**"
13
+ - ".github/workflows/docker.yml"
14
+ pull_request:
15
+ paths:
16
+ - "Dockerfile"
17
+ - "compose.yaml"
18
+ - ".dockerignore"
19
+ - "pyproject.toml"
20
+ - "src/**"
21
+ - ".github/workflows/docker.yml"
22
+
23
+ permissions:
24
+ contents: read
25
+
26
+ jobs:
27
+ core-image:
28
+ runs-on: ubuntu-latest
29
+ timeout-minutes: 30
30
+ steps:
31
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
32
+ with:
33
+ persist-credentials: false
34
+ - uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3
35
+ - name: Build core image
36
+ uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6
37
+ with:
38
+ context: .
39
+ target: core
40
+ load: true
41
+ tags: codecortex:test-core
42
+ cache-from: type=gha,scope=core
43
+ cache-to: type=gha,mode=max,scope=core
44
+ - name: CLI smoke
45
+ run: |
46
+ docker run --rm codecortex:test-core --help
47
+ docker run --rm codecortex:test-core version
48
+ - name: Runtime smoke
49
+ run: |
50
+ docker run --rm -v "$PWD/examples/demo_project:/workspace" --tmpfs /workspace/.codecortex:uid=10001,gid=10001 codecortex:test-core doctor --path /workspace
51
+ docker run --rm -v "$PWD/examples/demo_project:/workspace" --tmpfs /workspace/.codecortex:uid=10001,gid=10001 codecortex:test-core index --path /workspace
52
+
53
+ full-image:
54
+ runs-on: ubuntu-latest
55
+ timeout-minutes: 90
56
+ steps:
57
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
58
+ with:
59
+ persist-credentials: false
60
+ - uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3
61
+ - name: Build full image
62
+ uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6
63
+ with:
64
+ context: .
65
+ target: full
66
+ load: true
67
+ tags: codecortex:test-full
68
+ cache-from: type=gha,scope=full
69
+ cache-to: type=gha,mode=max,scope=full
70
+ - name: Backend smoke
71
+ run: |
72
+ docker run --rm codecortex:test-full backend list
73
+ docker run --rm -v "$PWD/examples/demo_project:/workspace" --tmpfs /workspace/.codecortex:uid=10001,gid=10001 codecortex:test-full backend doctor --path /workspace
74
+ - name: MCP discovery smoke
75
+ run: |
76
+ printf '%s\n' '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' | docker run -i --rm -v "$PWD/examples/demo_project:/workspace" --tmpfs /workspace/.codecortex:uid=10001,gid=10001 codecortex:test-full mcp --path /workspace | tee /tmp/mcp.out
77
+ grep -q 'cortex_repository_map' /tmp/mcp.out
78
+ grep -q 'cortex_rename_symbol' /tmp/mcp.out
@@ -0,0 +1,58 @@
1
+ name: Docs
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ push:
6
+ branches: [main]
7
+ paths:
8
+ - "docs/**"
9
+ - "mkdocs.yml"
10
+ - ".github/workflows/docs.yml"
11
+ pull_request:
12
+ paths:
13
+ - "docs/**"
14
+ - "mkdocs.yml"
15
+ - ".github/workflows/docs.yml"
16
+
17
+ permissions:
18
+ contents: read
19
+
20
+ concurrency:
21
+ group: pages
22
+ cancel-in-progress: true
23
+
24
+ jobs:
25
+ build:
26
+ runs-on: ubuntu-latest
27
+ steps:
28
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
29
+ with:
30
+ persist-credentials: false
31
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
32
+ with:
33
+ python-version: "3.13"
34
+ cache: pip
35
+ - name: Install docs toolchain
36
+ run: pip install "mkdocs>=1.6,<2" "mkdocs-material>=9.6,<10"
37
+ - name: Build documentation
38
+ run: mkdocs build --strict
39
+ - name: Upload Pages artifact
40
+ if: github.event_name != 'pull_request'
41
+ uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b # v4
42
+ with:
43
+ path: site
44
+
45
+ deploy:
46
+ if: github.event_name != 'pull_request'
47
+ needs: build
48
+ runs-on: ubuntu-latest
49
+ environment:
50
+ name: github-pages
51
+ url: ${{ steps.deployment.outputs.page_url }}
52
+ permissions:
53
+ pages: write
54
+ id-token: write
55
+ steps:
56
+ - name: Deploy to GitHub Pages
57
+ id: deployment
58
+ uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4
@@ -0,0 +1,67 @@
1
+ name: Live Agent E2E
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ schedule:
6
+ - cron: "13 6 * * 2"
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ live-agent:
13
+ runs-on: ubuntu-latest
14
+ timeout-minutes: 45
15
+ strategy:
16
+ fail-fast: false
17
+ matrix:
18
+ include:
19
+ - agent: opencode
20
+ install: npm install -g opencode-ai
21
+ configure: cortex agents configure --target opencode
22
+ command: opencode run {prompt}
23
+ key_env: OPENAI_API_KEY
24
+ - agent: codex
25
+ install: npm install -g @openai/codex
26
+ configure: cortex agents configure --target codex
27
+ command: codex exec {prompt}
28
+ key_env: OPENAI_API_KEY
29
+ - agent: claude
30
+ install: npm install -g @anthropic-ai/claude-code
31
+ configure: cortex agents configure --target claude
32
+ command: claude -p {prompt}
33
+ key_env: ANTHROPIC_API_KEY
34
+ - agent: gemini
35
+ install: npm install -g @google/gemini-cli
36
+ configure: cortex agents configure --target gemini
37
+ command: gemini -p {prompt}
38
+ key_env: GEMINI_API_KEY
39
+ steps:
40
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
41
+ with:
42
+ persist-credentials: false
43
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
44
+ with:
45
+ python-version: "3.13"
46
+ - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
47
+ with:
48
+ node-version: "22"
49
+ - run: pip install -e ".[dev]"
50
+ - run: cortex init .
51
+ - name: Install agent
52
+ run: ${{ matrix.install }}
53
+ - name: Verify agent binary and generate MCP config
54
+ run: |
55
+ ${{ matrix.configure }}
56
+ command -v ${{ matrix.agent }} || true
57
+ - name: Run live MCP tool-use check
58
+ if: ${{ matrix.key_env == 'OPENAI_API_KEY' && secrets.OPENAI_API_KEY != '' || matrix.key_env == 'ANTHROPIC_API_KEY' && secrets.ANTHROPIC_API_KEY != '' || matrix.key_env == 'GEMINI_API_KEY' && secrets.GEMINI_API_KEY != '' }}
59
+ env:
60
+ OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
61
+ ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
62
+ GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
63
+ CODECORTEX_SOURCE_ROOT: ${{ github.workspace }}
64
+ run: python scripts/live_agent_e2e.py --agent "${{ matrix.agent }}" --command "${{ matrix.command }}"
65
+ - name: Record credential-gated skip
66
+ if: ${{ !(matrix.key_env == 'OPENAI_API_KEY' && secrets.OPENAI_API_KEY != '' || matrix.key_env == 'ANTHROPIC_API_KEY' && secrets.ANTHROPIC_API_KEY != '' || matrix.key_env == 'GEMINI_API_KEY' && secrets.GEMINI_API_KEY != '') }}
67
+ run: echo "${{ matrix.agent }} installed/configured; live model call skipped because its API secret is not configured." >> "$GITHUB_STEP_SUMMARY"
@@ -0,0 +1,38 @@
1
+ name: Native Parser Providers
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ push:
6
+ branches: [main]
7
+ paths:
8
+ - "src/codecortex/languages/**"
9
+ - "tests/test_native_parsers.py"
10
+ - "pyproject.toml"
11
+ - ".github/workflows/parser-providers.yml"
12
+ pull_request:
13
+ paths:
14
+ - "src/codecortex/languages/**"
15
+ - "tests/test_native_parsers.py"
16
+ - "pyproject.toml"
17
+ - ".github/workflows/parser-providers.yml"
18
+
19
+ permissions:
20
+ contents: read
21
+
22
+ jobs:
23
+ native-parsers:
24
+ strategy:
25
+ fail-fast: false
26
+ matrix:
27
+ python-version: ["3.11", "3.13"]
28
+ runs-on: ubuntu-latest
29
+ steps:
30
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
31
+ with:
32
+ persist-credentials: false
33
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
34
+ with:
35
+ python-version: ${{ matrix.python-version }}
36
+ cache: pip
37
+ - run: pip install -e ".[dev,parsers]"
38
+ - run: pytest -q tests/test_native_parsers.py tests/test_languages.py
@@ -0,0 +1,56 @@
1
+ name: Production Benchmark
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ push:
6
+ branches: [main]
7
+ paths:
8
+ - "benchmarks/production/**"
9
+ - "scripts/run_production_benchmark.py"
10
+ - "src/codecortex/evaluation/production.py"
11
+ - "src/codecortex/backends/**"
12
+ - ".github/workflows/production-benchmark.yml"
13
+ schedule:
14
+ - cron: "41 4 * * 0"
15
+
16
+ permissions:
17
+ contents: read
18
+
19
+ jobs:
20
+ production-benchmark:
21
+ runs-on: ubuntu-latest
22
+ timeout-minutes: 120
23
+ env:
24
+ CODECORTEX_SOURCE_ROOT: ${{ github.workspace }}
25
+ CODECORTEX_BACKENDS: builtin
26
+ steps:
27
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
28
+ with:
29
+ persist-credentials: false
30
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
31
+ with:
32
+ python-version: "3.13"
33
+ cache: pip
34
+ - name: Install tooling
35
+ run: |
36
+ python -m pip install --upgrade pip uv
37
+ pip install -e ".[dev]"
38
+ - name: Run benchmark matrix
39
+ run: python scripts/run_production_benchmark.py --output benchmark-results.json
40
+ - name: Publish benchmark summary
41
+ run: |
42
+ python - <<'PY' >> "$GITHUB_STEP_SUMMARY"
43
+ import json
44
+ p=json.load(open('benchmark-results.json', encoding='utf-8'))
45
+ print('# CodeCortex production benchmark')
46
+ print('| Scenario | Completed | Success | Avg ms | Avg est. tokens |')
47
+ print('|---|---:|---:|---:|---:|')
48
+ for name,row in p.get('summary',{}).items():
49
+ print(f"| {name} | {row.get('completed')} | {row.get('success_rate')} | {row.get('avg_wall_time_ms')} | {row.get('avg_estimated_context_tokens')} |")
50
+ PY
51
+ - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
52
+ with:
53
+ name: codecortex-production-benchmark-${{ github.sha }}
54
+ path: benchmark-results.json
55
+ if-no-files-found: error
56
+ retention-days: 90