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
▼.github/ISSUE_TEMPLATE/bug_report.yml
+3-3
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
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
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
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
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
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
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
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
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
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
-# 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
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
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
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
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
-# 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: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)
4
-[![arXiv](https://img.shields.io/badge/arXiv-2508.00031-b31b1b.svg)](https://arxiv.org/abs/2508.00031)
5
-[![PyPI](https://img.shields.io/pypi/v/contexa.svg)](https://pypi.org/project/contexa/)
6
-[![npm](https://img.shields.io/npm/v/contexa.svg)](https://www.npmjs.com/package/contexa)
7
-[![crates.io](https://img.shields.io/crates/v/contexa.svg)](https://crates.io/crates/contexa)
8
-[![Go Reference](https://pkg.go.dev/badge/github.com/swadhinbiswas/contexa/GO.svg)](https://pkg.go.dev/github.com/swadhinbiswas/contexa/GO)
9
-[![Hex.pm](https://img.shields.io/hexpm/v/contexa.svg)](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
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
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
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
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
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
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
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
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
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
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
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
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
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