refactor: rename project from 'contexa' to 'cortexa' across root files and CI/CD
Swadhin Biswas committed 7 months ago
7cbf4e3
1 parent e69ed59
commit 7cbf4e3
8 files changed
+157 -124
Showing 8 changed files+157-122
▼.github/ISSUE_TEMPLATE/bug_report.yml
+3-3
| @@ -1,5 +1,5 @@ | ||
1 | 1 | name: Bug Report |
2 | -description: Report a bug in contexa | |
2 | +description: Report a bug in cortexa | |
3 | 3 | title: "[Bug]: " |
4 | 4 | labels: ["bug"] |
5 | 5 | body: |
| @@ -29,7 +29,7 @@ body: | ||
29 | 29 | id: version |
30 | 30 | attributes: |
31 | 31 | label: Package Version |
32 | - description: "Which version of contexa are you using? (e.g. 0.1.1)" | |
32 | + description: "Which version of cortexa are you using? (e.g. 0.1.1)" | |
33 | 33 | placeholder: "0.1.1" |
34 | 34 | validations: |
35 | 35 | required: true |
| @@ -106,5 +106,5 @@ body: | ||
106 | 106 | options: |
107 | 107 | - label: I have searched existing issues and this hasn't been reported before |
108 | 108 | required: true |
109 | - - label: I am using the latest version of contexa | |
109 | + - label: I am using the latest version of cortexa | |
110 | 110 | required: false |
111 | 111 | |
▼.github/ISSUE_TEMPLATE/config.yml
+1-1
| @@ -1,7 +1,7 @@ | ||
1 | 1 | blank_issues_enabled: false |
2 | 2 | contact_links: |
3 | 3 | - name: Documentation |
4 | - url: https://github.com/swadhinbiswas/contexa#readme | |
4 | + url: https://github.com/swadhinbiswas/Cortexa#readme | |
5 | 5 | about: Read the documentation before opening an issue |
6 | 6 | - name: Paper (arXiv) |
7 | 7 | url: https://arxiv.org/abs/2508.00031 |
8 | 8 | |
▼.github/ISSUE_TEMPLATE/feature_request.yml
+1-1
| @@ -1,5 +1,5 @@ | ||
1 | 1 | name: Feature Request |
2 | -description: Suggest a new feature or enhancement for contexa | |
2 | +description: Suggest a new feature or enhancement for cortexa | |
3 | 3 | title: "[Feature]: " |
4 | 4 | labels: ["enhancement"] |
5 | 5 | body: |
6 | 6 | |
▼.github/ISSUE_TEMPLATE/question.yml
+2-2
| @@ -1,12 +1,12 @@ | ||
1 | 1 | name: Question |
2 | -description: Ask a question about using contexa | |
2 | +description: Ask a question about using cortexa | |
3 | 3 | title: "[Question]: " |
4 | 4 | labels: ["question"] |
5 | 5 | body: |
6 | 6 | - type: markdown |
7 | 7 | attributes: |
8 | 8 | value: | |
9 | - Have a question about using contexa? Ask below. For bugs, please use the Bug Report template instead. | |
9 | + Have a question about using cortexa? Ask below. For bugs, please use the Bug Report template instead. | |
10 | 10 | |
11 | 11 | - type: dropdown |
12 | 12 | id: language |
13 | 13 | |
▼.github/workflows/publish.yml
+9-9
| @@ -227,7 +227,7 @@ jobs: | ||
227 | 227 | - name: Publish to LuaRocks |
228 | 228 | env: |
229 | 229 | LUAROCKS_API_KEY: ${{ secrets.LUAROCKS_API_KEY }} |
230 | - run: luarocks upload contexa-0.1.1-1.rockspec --api-key="$LUAROCKS_API_KEY" | |
230 | + run: luarocks upload cortexa-0.1.1-1.rockspec --api-key="$LUAROCKS_API_KEY" | |
231 | 231 | |
232 | 232 | # ── Publish Elixir to Hex.pm ──────────────────────────────────────── |
233 | 233 | publish-elixir: |
| @@ -284,7 +284,7 @@ jobs: | ||
284 | 284 | TAG="${{ steps.version.outputs.version }}" |
285 | 285 | { |
286 | 286 | echo "notes<<EOF" |
287 | - echo "## contexa $TAG" | |
287 | + echo "## cortexa $TAG" | |
288 | 288 | echo "" |
289 | 289 | echo "Git-inspired context management for LLM agents — COMMIT, BRANCH, MERGE, and CONTEXT operations over a persistent versioned memory workspace." |
290 | 290 | echo "" |
| @@ -292,12 +292,12 @@ jobs: | ||
292 | 292 | echo "" |
293 | 293 | echo "| Language | Command |" |
294 | 294 | echo "|----------|---------|" |
295 | - echo "| Python | \`pip install contexa\` |" | |
296 | - echo "| JS/TS | \`npm install contexa\` |" | |
297 | - echo "| Rust | \`cargo add contexa\` |" | |
298 | - echo "| Go | \`go get github.com/swadhinbiswas/contexa/GO/cortexa@GO/$TAG\` |" | |
299 | - echo "| Lua | \`luarocks install contexa\` |" | |
300 | - echo "| Elixir | \`{:contexa, \"~> 0.1.1\"}\` in mix.exs |" | |
295 | + echo "| Python | \`pip install cortexa\` |" | |
296 | + echo "| JS/TS | \`npm install cortexa\` |" | |
297 | + echo "| Rust | \`cargo add cortexa\` |" | |
298 | + echo "| Go | \`go get github.com/swadhinbiswas/Cortexa/GO/cortexa@GO/$TAG\` |" | |
299 | + echo "| Lua | \`luarocks install cortexa\` |" | |
300 | + echo "| Elixir | \`{:cortexa, \"~> 0.1.1\"}\` in mix.exs |" | |
301 | 301 | echo "| Zig | Add dependency via \`build.zig.zon\` (see README) |" |
302 | 302 | echo "" |
303 | 303 | echo "### Changes" |
| @@ -311,7 +311,7 @@ jobs: | ||
311 | 311 | uses: softprops/action-gh-release@v2 |
312 | 312 | with: |
313 | 313 | tag_name: ${{ steps.version.outputs.version }} |
314 | - name: "contexa ${{ steps.version.outputs.version }}" | |
314 | + name: "cortexa ${{ steps.version.outputs.version }}" | |
315 | 315 | body: ${{ steps.notes.outputs.notes }} |
316 | 316 | draft: false |
317 | 317 | prerelease: ${{ contains(steps.version.outputs.version, '-') }} |
318 | 318 | |
▼CONTRIBUTING.md
+8-8
| @@ -1,6 +1,6 @@ | ||
1 | -# Contributing to contexa | |
1 | +# Contributing to cortexa | |
2 | 2 | |
3 | -Thank you for your interest in contributing to **contexa** — git-inspired context management for LLM agents. | |
3 | +Thank you for your interest in contributing to **cortexa** — git-inspired context management for LLM agents. | |
4 | 4 | |
5 | 5 | This is a polyglot monorepo with implementations in **Python, JavaScript/TypeScript, Rust, Go, Zig, Lua, and Elixir**. Contributions to any language are welcome. |
6 | 6 | |
| @@ -20,11 +20,11 @@ This project follows the [Contributor Covenant v2.1](CODE_OF_CONDUCT.md). By par | ||
20 | 20 | |
21 | 21 | ## Getting Started |
22 | 22 | |
23 | -1. Fork the repository: <https://github.com/swadhinbiswas/contexa> | |
23 | +1. Fork the repository: <https://github.com/swadhinbiswas/Cortexa> | |
24 | 24 | 2. Clone your fork: |
25 | 25 | ```bash |
26 | - git clone https://github.com/<your-username>/contexa.git | |
27 | - cd contexa | |
26 | + git clone https://github.com/<your-username>/cortexa.git | |
27 | + cd cortexa | |
28 | 28 | ``` |
29 | 29 | 3. Create a feature branch: |
30 | 30 | ```bash |
| @@ -39,7 +39,7 @@ Each language lives in its own top-level directory. You only need to install too | ||
39 | 39 | |
40 | 40 | ### Python (`PYTHON/`) |
41 | 41 | |
42 | -- **Requires**: Python 3.9+ and [uv](https://docs.astral.sh/uv/) | |
42 | +- **Requires**: Python 3.10+ and [uv](https://docs.astral.sh/uv/) | |
43 | 43 | - **Setup**: |
44 | 44 | ```bash |
45 | 45 | cd PYTHON |
| @@ -131,7 +131,7 @@ CI runs all 7 language test suites on every pull request. Your PR must pass all | ||
131 | 131 | - **Rust**: Run `cargo fmt` and `cargo clippy` before committing. |
132 | 132 | - **Go**: Run `gofmt` and `go vet`. |
133 | 133 | - **Zig**: Follow the [Zig style guide](https://ziglang.org/documentation/master/#Style-Guide). |
134 | -- **Lua**: Follow the existing style in `LUA/contexa/`. | |
134 | +- **Lua**: Follow the existing style in `LUA/cortexa/`. | |
135 | 135 | - **Elixir**: Run `mix format` before committing. |
136 | 136 | |
137 | 137 | ## Labels |
| @@ -164,4 +164,4 @@ Issues and PRs are categorized with the following labels: | ||
164 | 164 | |
165 | 165 | --- |
166 | 166 | |
167 | -If you have questions, feel free to [open a discussion](https://github.com/swadhinbiswas/contexa/issues/new?template=question.yml) or reach out to [@swadhinbiswas](https://github.com/swadhinbiswas). | |
167 | +If you have questions, feel free to [open a discussion](https://github.com/swadhinbiswas/Cortexa/issues/new?template=question.yml) or reach out to [@swadhinbiswas](https://github.com/swadhinbiswas). | |
168 | 168 | |
▼README.md
+131-96
| @@ -1,48 +1,72 @@ | ||
1 | -# contexa | |
1 | +<p align="center"> | |
2 | + <img src="assets/logo.svg" alt="Cortexa" width="500" /> | |
3 | +</p> | |
4 | + | |
5 | +<p align="center"> | |
6 | + <strong>Versioned memory for AI agents</strong><br> | |
7 | + <em>A brain-inspired context management system based on Git's branching model</em> | |
8 | +</p> | |
9 | + | |
10 | +<p align="center"> | |
11 | + <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-green.svg" alt="License: MIT" /></a> | |
12 | + <a href="https://arxiv.org/abs/2508.00031"><img src="https://img.shields.io/badge/arXiv-2508.00031-b31b1b.svg" alt="arXiv" /></a> | |
13 | + <a href="https://pypi.org/project/cortexa/"><img src="https://img.shields.io/pypi/v/cortexa.svg" alt="PyPI" /></a> | |
14 | + <a href="https://www.npmjs.com/package/cortexa"><img src="https://img.shields.io/npm/v/cortexa.svg" alt="npm" /></a> | |
15 | + <a href="https://crates.io/crates/cortexa"><img src="https://img.shields.io/crates/v/cortexa.svg" alt="crates.io" /></a> | |
16 | + <a href="https://pkg.go.dev/github.com/swadhinbiswas/Cortexa/GO"><img src="https://pkg.go.dev/badge/github.com/swadhinbiswas/Cortexa/GO.svg" alt="Go Reference" /></a> | |
17 | + <a href="https://hex.pm/packages/cortexa"><img src="https://img.shields.io/hexpm/v/cortexa.svg" alt="Hex.pm" /></a> | |
18 | +</p> | |
2 | 19 | |
3 | -[](LICENSE) | |
4 | -[](https://arxiv.org/abs/2508.00031) | |
5 | -[](https://pypi.org/project/contexa/) | |
6 | -[](https://www.npmjs.com/package/contexa) | |
7 | -[](https://crates.io/crates/contexa) | |
8 | -[](https://pkg.go.dev/github.com/swadhinbiswas/contexa/GO) | |
9 | -[](https://hex.pm/packages/contexa) | |
20 | +--- | |
10 | 21 | |
11 | -**Git-inspired context management for LLM agents.** COMMIT, BRANCH, MERGE, and CONTEXT operations over a persistent versioned memory workspace. | |
22 | +**Cortexa** implements the [Git Context Controller (GCC)](https://arxiv.org/abs/2508.00031) -- a structured, versioned memory system for LLM-based agents. Named after the cerebral cortex, it gives agents a persistent brain that survives across sessions, branches for parallel exploration, and compressed recall at any resolution. | |
12 | 23 | |
13 | -Based on the research paper: | |
24 | +Available in **Python**, **TypeScript/JavaScript**, **Rust**, **Go**, **Zig**, **Lua**, and **Elixir**. All 7 implementations produce the same `.GCC/` on-disk format (Markdown + YAML) and are fully interoperable. | |
14 | 25 | |
15 | -> *"Git Context Controller: Manage the Context of LLM-based Agents like Git"* | |
16 | -> Junde Wu et al., [arXiv:2508.00031](https://arxiv.org/abs/2508.00031), 2025 | |
26 | +## Why Cortexa? | |
17 | 27 | |
18 | -Available in **Python**, **TypeScript/JavaScript**, **Rust**, **Go**, **Zig**, **Lua**, and **Elixir**. | |
28 | +LLM agents lose track of earlier reasoning as context windows fill up. Current workarounds -- full history dumps, naive summarization, or ad-hoc memory stores -- are expensive, lossy, or unstructured. | |
19 | 29 | |
30 | +GCC applies Git's proven branching model to agent memory: | |
20 | 31 | |
21 | -## Why contexa? | |
32 | +| GCC Command | Git Analogy | What It Does | | |
33 | +|-------------|-------------|--------------| | |
34 | +| **OTA Log** | Working directory | Continuous Observation-Thought-Action trace | | |
35 | +| **COMMIT** | `git commit` | Milestone summary that compresses older OTA steps | | |
36 | +| **BRANCH** | `git branch` | Isolated workspace for alternative reasoning paths | | |
37 | +| **MERGE** | `git merge` | Integrates a successful branch back into the main trajectory | | |
38 | +| **CONTEXT** | `git log` | Retrieves history at K-commit resolution | | |
22 | 39 | |
23 | -LLM-based agents accumulate observations, thoughts, and actions over time. Context windows are finite. As conversations grow, agents lose track of earlier reasoning, repeat mistakes, or forget prior decisions. | |
40 | +### Results from the paper | |
24 | 41 | |
25 | -**contexa** borrows Git's branching model to give agents structured, versioned memory: | |
42 | +The GCC framework achieves state-of-the-art results: | |
26 | 43 | |
27 | -``` | |
28 | - main | |
29 | - | | |
30 | - init --> log OTA --> COMMIT --> COMMIT --> MERGE <--+ | |
31 | - | | | |
32 | - BRANCH --> COMMIT --+ | |
33 | - (experiment) | |
34 | -``` | |
44 | +| Benchmark | Score | Model | | |
45 | +|-----------|-------|-------| | |
46 | +| **SWE-Bench Verified** | **80.2%** | Claude 4 Sonnet | | |
47 | +| **BrowseComp-Plus** | **83.4%** | GPT-5 | | |
35 | 48 | |
36 | -| Command | Git Equivalent | What It Does | | |
37 | -|---------|---------------|--------------| | |
38 | -| **OTA Log** | Working directory | Continuous Observation-Thought-Action trace | | |
39 | -| **COMMIT** | `git commit` | Milestone summary, compresses older OTA steps | | |
40 | -| **BRANCH** | `git branch` | Isolated workspace for alternative reasoning | | |
41 | -| **MERGE** | `git merge` | Integrates a successful branch back into main | | |
42 | -| **CONTEXT** | `git log` | Retrieves history at K-commit resolution | | |
49 | +Outperforms 26 existing open and commercial agent systems. Key findings: | |
50 | + | |
51 | +- **K=1** (most recent commit only) performs best in most benchmarks | |
52 | +- Each component contributes: RoadMap+COMMIT (69.1%) -> +Logs+CONTEXT (75.3%) -> +Metadata (77.8%) -> +BRANCH&MERGE (80.2%) | |
53 | +- Agents with GCC allocate more computation (more tool calls) but achieve better cost-efficiency | |
54 | + | |
55 | +### Three-tiered memory hierarchy | |
43 | 56 | |
44 | -The paper shows **K=1 performs best** in most benchmarks -- agents do better with compressed recent context than full history dumps. | |
57 | +``` | |
58 | +.GCC/ | |
59 | + main.md # Tier 1: Global roadmap / planning artifact | |
60 | + branches/ | |
61 | + main/ | |
62 | + commit.md # Tier 2: Commit-level milestone summaries | |
63 | + log.md # Tier 3: Fine-grained OTA traces | |
64 | + metadata.yaml # Branch intent, status, provenance | |
65 | + experiment/ | |
66 | + commit.md | |
67 | + log.md | |
68 | + metadata.yaml | |
69 | +``` | |
45 | 70 | |
46 | 71 | --- |
47 | 72 | |
| @@ -50,15 +74,15 @@ The paper shows **K=1 performs best** in most benchmarks -- agents do better wit | ||
50 | 74 | |
51 | 75 | | Language | Package | Install | |
52 | 76 | |----------|---------|---------| |
53 | -| Python | [`contexa`](https://pypi.org/project/contexa/) | `pip install contexa` | | |
54 | -| TypeScript/JS | [`contexa`](https://www.npmjs.com/package/contexa) | `npm install contexa` | | |
55 | -| Rust | [`contexa`](https://crates.io/crates/contexa) | `cargo add contexa` | | |
56 | -| Go | [`contexa`](https://pkg.go.dev/github.com/swadhinbiswas/contexa/GO) | `go get github.com/swadhinbiswas/contexa/GO/cortexa` | | |
57 | -| Lua | [`contexa`](https://luarocks.org/modules/swadhinbiswas/contexa) | `luarocks install contexa` | | |
58 | -| Elixir | [`contexa`](https://hex.pm/packages/contexa) | `{:contexa, "~> 0.1.1"}` in mix.exs | | |
59 | -| Zig | `contexa` | See [Zig README](ZIG/README.md) | | |
77 | +| Python | [`cortexa`](https://pypi.org/project/cortexa/) | `pip install cortexa` | | |
78 | +| TypeScript/JS | [`cortexa`](https://www.npmjs.com/package/cortexa) | `npm install cortexa` | | |
79 | +| Rust | [`cortexa`](https://crates.io/crates/cortexa) | `cargo add cortexa` | | |
80 | +| Go | [`cortexa`](https://pkg.go.dev/github.com/swadhinbiswas/Cortexa/GO) | `go get github.com/swadhinbiswas/Cortexa/GO/cortexa` | | |
81 | +| Lua | [`cortexa`](https://luarocks.org/modules/swadhinbiswas/cortexa) | `luarocks install cortexa` | | |
82 | +| Elixir | [`cortexa`](https://hex.pm/packages/cortexa) | `{:cortexa, "~> 0.1.1"}` in mix.exs | | |
83 | +| Zig | `cortexa` | See [Zig README](ZIG/README.md) | | |
60 | 84 | |
61 | -All packages implement the same API and produce the same `.GCC/` file system layout. Workspaces created by one language can be read by another. | |
85 | +All 7 packages produce the same `.GCC/` file system layout. A workspace created by one language can be read or extended by any other. | |
62 | 86 | |
63 | 87 | --- |
64 | 88 | |
| @@ -67,23 +91,31 @@ All packages implement the same API and produce the same `.GCC/` file system lay | ||
67 | 91 | ### Python |
68 | 92 | |
69 | 93 | ```python |
70 | -from contexa import GCCWorkspace | |
94 | +from cortexa import GCCWorkspace | |
71 | 95 | |
72 | 96 | ws = GCCWorkspace("/path/to/project") |
73 | -ws.init("Build a REST API") | |
97 | +ws.init("Build a REST API with user auth") | |
98 | + | |
99 | +# Agent logs its reasoning | |
74 | 100 | ws.log_ota("saw empty dir", "scaffold first", "create_files()") |
75 | -ws.commit("Project scaffold done") | |
101 | +ws.log_ota("files created", "implement user model", "write_code('models.py')") | |
102 | +ws.commit("Project scaffold and User model complete") | |
103 | + | |
104 | +# Branch to explore alternatives | |
76 | 105 | ws.branch("auth-jwt", "Explore JWT authentication") |
77 | -ws.commit("JWT middleware implemented") | |
106 | +ws.log_ota("JWT docs reviewed", "stateless, good for APIs", "implement_jwt()") | |
107 | +ws.commit("JWT auth middleware implemented") | |
108 | + | |
109 | +# Merge and retrieve context | |
78 | 110 | ws.merge("auth-jwt") |
79 | -ctx = ws.context(k=1) | |
80 | -print(ctx.summary()) | |
111 | +ctx = ws.context(k=1) # K=1: paper's recommended default | |
112 | +print(ctx.summary()) # Formatted markdown ready for LLM prompt injection | |
81 | 113 | ``` |
82 | 114 | |
83 | 115 | ### TypeScript |
84 | 116 | |
85 | 117 | ```typescript |
86 | -import { GCCWorkspace } from "contexa"; | |
118 | +import { GCCWorkspace } from "cortexa"; | |
87 | 119 | |
88 | 120 | const ws = new GCCWorkspace("/path/to/project"); |
89 | 121 | ws.init("Build a REST API"); |
| @@ -99,7 +131,7 @@ console.log(ctx.summary()); | ||
99 | 131 | ### Rust |
100 | 132 | |
101 | 133 | ```rust |
102 | -use contexa::GCCWorkspace; | |
134 | +use cortexa::GCCWorkspace; | |
103 | 135 | |
104 | 136 | let mut ws = GCCWorkspace::new("/path/to/project"); |
105 | 137 | ws.init("Build a REST API")?; |
| @@ -115,7 +147,7 @@ println!("{}", ctx.summary()); | ||
115 | 147 | ### Go |
116 | 148 | |
117 | 149 | ```go |
118 | -import "github.com/swadhinbiswas/contexa/GO/cortexa" | |
150 | +import "github.com/swadhinbiswas/Cortexa/GO/cortexa" | |
119 | 151 | |
120 | 152 | ws := cortexa.New("/path/to/project") |
121 | 153 | ws.Init("Build a REST API") |
| @@ -131,9 +163,9 @@ fmt.Println(ctx.Summary()) | ||
131 | 163 | ### Zig |
132 | 164 | |
133 | 165 | ```zig |
134 | -const contexa = @import("contexa"); | |
166 | +const cortexa = @import("cortexa"); | |
135 | 167 | |
136 | -var ws = contexa.Workspace.init(allocator, "/path/to/project"); | |
168 | +var ws = cortexa.Workspace.init(allocator, "/path/to/project"); | |
137 | 169 | try ws.create("Build a REST API"); |
138 | 170 | _ = try ws.logOTA("saw empty dir", "scaffold first", "createFiles()"); |
139 | 171 | const c = try ws.commit("Project scaffold done", null); |
| @@ -150,9 +182,9 @@ defer ctx.deinit(allocator); | ||
150 | 182 | ### Lua |
151 | 183 | |
152 | 184 | ```lua |
153 | -local contexa = require("contexa") | |
185 | +local cortexa = require("cortexa") | |
154 | 186 | |
155 | -local ws = contexa.GCCWorkspace.new("/path/to/project") | |
187 | +local ws = cortexa.GCCWorkspace.new("/path/to/project") | |
156 | 188 | ws:init("Build a REST API") |
157 | 189 | ws:log_ota("saw empty dir", "scaffold first", "create_files()") |
158 | 190 | ws:commit("Project scaffold done") |
| @@ -160,13 +192,13 @@ ws:branch("auth-jwt", "Explore JWT authentication") | ||
160 | 192 | ws:commit("JWT middleware implemented") |
161 | 193 | ws:merge("auth-jwt", nil, "main") |
162 | 194 | local ctx = ws:context("main", 1) |
163 | -print(contexa.context_summary(ctx)) | |
195 | +print(cortexa.context_summary(ctx)) | |
164 | 196 | ``` |
165 | 197 | |
166 | 198 | ### Elixir |
167 | 199 | |
168 | 200 | ```elixir |
169 | -alias Contexa.{Workspace, Models} | |
201 | +alias Cortexa.{Workspace, Models} | |
170 | 202 | |
171 | 203 | ws = Workspace.new("/path/to/project") |
172 | 204 | ws = Workspace.init(ws, "Build a REST API") |
| @@ -181,43 +213,20 @@ IO.puts(Models.context_summary(ctx)) | ||
181 | 213 | |
182 | 214 | --- |
183 | 215 | |
184 | -## File System Layout | |
185 | - | |
186 | -All implementations produce the same on-disk structure: | |
216 | +## Architecture | |
187 | 217 | |
188 | 218 | ``` |
189 | -your-project/ | |
190 | - .GCC/ | |
191 | - main.md # Global roadmap | |
192 | - branches/ | |
193 | - main/ | |
194 | - log.md # Continuous OTA trace | |
195 | - commit.md # Milestone-level summaries | |
196 | - metadata.yaml # Branch intent & status | |
197 | - feature-branch/ | |
198 | - log.md | |
199 | - commit.md | |
200 | - metadata.yaml | |
219 | + main | |
220 | + | | |
221 | + init --> OTA --> COMMIT --> COMMIT ---------> MERGE <--+ | |
222 | + | | | |
223 | + BRANCH --> OTA --> COMMIT --+ | |
224 | + (experiment) | |
225 | + | |
226 | + CONTEXT(k=1) returns: roadmap + last commit + current OTA log | |
201 | 227 | ``` |
202 | 228 | |
203 | -All data is stored as **human-readable Markdown and YAML** -- inspect and debug agent memory directly in your editor. | |
204 | - | |
205 | - | |
206 | -## Repository Structure | |
207 | - | |
208 | -``` | |
209 | -contexa/ | |
210 | - PYTHON/ # PyPI: contexa | |
211 | - JS/ # npm: contexa | |
212 | - RUST/ # crates.io: contexa | |
213 | - GO/ # pkg.go.dev: github.com/swadhinbiswas/contexa/GO | |
214 | - ZIG/ # Zig package: contexa | |
215 | - LUA/ # LuaRocks: contexa | |
216 | - ELIXIR/ # Hex.pm: contexa | |
217 | -``` | |
218 | - | |
219 | -Each directory is an independent package with its own build tooling, tests, and README. | |
229 | +The CONTEXT command controls **how much history** the agent sees. The paper's experiments show K=1 (most recent commit only) is optimal -- agents perform better with compressed recent context than with full history dumps. | |
220 | 230 | |
221 | 231 | --- |
222 | 232 | |
| @@ -230,12 +239,34 @@ Each directory is an independent package with its own build tooling, tests, and | ||
230 | 239 | | **BranchMetadata** | Branch intent and status | `name`, `purpose`, `created_from`, `created_at`, `status`, `merged_into`, `merged_at` | |
231 | 240 | | **ContextResult** | CONTEXT retrieval result | `branch_name`, `k`, `commits`, `ota_records`, `main_roadmap`, `metadata` | |
232 | 241 | |
242 | +All data is stored as **human-readable Markdown and YAML** -- inspect and debug agent memory directly in your editor. | |
243 | + | |
244 | +--- | |
245 | + | |
246 | +## Repository Structure | |
247 | + | |
248 | +``` | |
249 | +Cortexa/ | |
250 | + PYTHON/ # PyPI: cortexa (Python 3.10+) | |
251 | + JS/ # npm: cortexa (Node.js 18+) | |
252 | + RUST/ # crates.io: cortexa (Rust stable) | |
253 | + GO/ # pkg.go.dev (Go 1.21+) | |
254 | + ZIG/ # Zig package (Zig 0.14+) | |
255 | + LUA/ # LuaRocks: cortexa (Lua 5.1+) | |
256 | + ELIXIR/ # Hex.pm: cortexa (Elixir 1.15+) | |
257 | + assets/ # Logo and visual assets | |
258 | +``` | |
259 | + | |
260 | +Each directory is an independent package with its own build tooling, tests, and README. | |
261 | + | |
233 | 262 | --- |
234 | 263 | |
235 | 264 | ## Contributing |
236 | 265 | |
266 | +See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, testing instructions, and guidelines. | |
267 | + | |
237 | 268 | 1. Fork the repository |
238 | -2. Create a feature branch: `git checkout -b feature/my-feature` | |
269 | +2. Create a feature branch: `git checkout -b feat/my-change` | |
239 | 270 | 3. Make your changes and add tests |
240 | 271 | 4. Run the test suite for your language |
241 | 272 | 5. Submit a pull request |
| @@ -250,11 +281,13 @@ MIT License. See [LICENSE](LICENSE) for details. | ||
250 | 281 | |
251 | 282 | ## Citation |
252 | 283 | |
284 | +If you use Cortexa in research, please cite the original paper: | |
285 | + | |
253 | 286 | ```bibtex |
254 | 287 | @article{wu2025gcc, |
255 | 288 | title={Git Context Controller: Manage the Context of LLM-based Agents like Git}, |
256 | 289 | author={Wu, Junde and others}, |
257 | - journal={arXiv preprint arXiv:2508.00031}, | |
290 | + journal={arXiv preprint arXiv:2508.00031v2}, | |
258 | 291 | year={2025} |
259 | 292 | } |
260 | 293 | ``` |
| @@ -263,11 +296,11 @@ MIT License. See [LICENSE](LICENSE) for details. | ||
263 | 296 | |
264 | 297 | ## Links |
265 | 298 | |
266 | -- [Original Paper](https://arxiv.org/abs/2508.00031) -- arXiv:2508.00031 | |
267 | -- [Python (PyPI)](https://pypi.org/project/contexa/) | |
268 | -- [TypeScript (npm)](https://www.npmjs.com/package/contexa) | |
269 | -- [Rust (crates.io)](https://crates.io/crates/contexa) | |
270 | -- [Go (pkg.go.dev)](https://pkg.go.dev/github.com/swadhinbiswas/contexa/GO) | |
271 | -- [Lua (LuaRocks)](https://luarocks.org/modules/swadhinbiswas/contexa) | |
272 | -- [Elixir (Hex.pm)](https://hex.pm/packages/contexa) | |
299 | +- [Original Paper](https://arxiv.org/abs/2508.00031) -- arXiv:2508.00031v2 | |
300 | +- [Python (PyPI)](https://pypi.org/project/cortexa/) | |
301 | +- [TypeScript (npm)](https://www.npmjs.com/package/cortexa) | |
302 | +- [Rust (crates.io)](https://crates.io/crates/cortexa) | |
303 | +- [Go (pkg.go.dev)](https://pkg.go.dev/github.com/swadhinbiswas/Cortexa/GO) | |
304 | +- [Lua (LuaRocks)](https://luarocks.org/modules/swadhinbiswas/cortexa) | |
305 | +- [Elixir (Hex.pm)](https://hex.pm/packages/cortexa) | |
273 | 306 | - [Author: Swadhin Biswas](https://github.com/swadhinbiswas) |
274 | 307 | |
▼SECURITY.md
+2-2
| @@ -9,7 +9,7 @@ | ||
9 | 9 | |
10 | 10 | ## Reporting a Vulnerability |
11 | 11 | |
12 | -If you discover a security vulnerability in contexa, please report it responsibly by emailing **[email protected]** with the following information: | |
12 | +If you discover a security vulnerability in cortexa, please report it responsibly by emailing **[email protected]** with the following information: | |
13 | 13 | |
14 | 14 | - Description of the vulnerability |
15 | 15 | - Steps to reproduce |
| @@ -26,7 +26,7 @@ If you discover a security vulnerability in contexa, please report it responsibl | ||
26 | 26 | |
27 | 27 | ## Scope |
28 | 28 | |
29 | -This security policy covers all 7 language implementations of contexa: | |
29 | +This security policy covers all 7 language implementations of cortexa: | |
30 | 30 | |
31 | 31 | - Python |
32 | 32 | - JavaScript |
33 | 33 | |