diff --git a/.agents/plugins/marketplace.json b/.agents/plugins/marketplace.json index 088204f..133f78b 100644 --- a/.agents/plugins/marketplace.json +++ b/.agents/plugins/marketplace.json @@ -16,18 +16,6 @@ }, "category": "Productivity" }, - { - "name": "mneme", - "source": { - "source": "local", - "path": "./codex-marketplace/plugins/mneme" - }, - "policy": { - "installation": "AVAILABLE", - "authentication": "ON_INSTALL" - }, - "category": "Productivity" - }, { "name": "code-quality", "source": { diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 24133cc..a8a91b7 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -16,14 +16,6 @@ "name": "Sentio Labs" } }, - { - "name": "mneme", - "source": "./claude-marketplace/plugins/mneme", - "description": "Context window protection — sandboxed execution in 11 languages, FTS knowledge base with BM25 ranking, session continuity. Single Rust binary, <5ms hooks.", - "author": { - "name": "Sentio Labs" - } - }, { "name": "code-quality", "source": "./claude-marketplace/plugins/code-quality", diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 2b6ed7c..fbece4e 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,10 +1,8 @@ { "claude-marketplace/plugins/arc": "0.12.0", "claude-marketplace/plugins/git-spice": "0.2.0", - "claude-marketplace/plugins/mneme": "0.10.0", "claude-marketplace/plugins/code-quality": "0.8.1", "codex-marketplace/plugins/arc": "0.8.1", - "codex-marketplace/plugins/mneme": "0.11.0", "codex-marketplace/plugins/code-quality": "0.9.0", "codex-marketplace/plugins/worktrunk": "0.3.0", "opencode-marketplace/plugins/frontend-design": "0.3.0", diff --git a/claude-marketplace/plugins/mneme/.claude-plugin/plugin.json b/claude-marketplace/plugins/mneme/.claude-plugin/plugin.json deleted file mode 100644 index c81d03d..0000000 --- a/claude-marketplace/plugins/mneme/.claude-plugin/plugin.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "name": "mneme", - "version": "0.9.2", - "description": "Context window protection for Claude Code — sandboxed execution, FTS knowledge base, session continuity. Powered by a single Rust binary.", - "author": { - "name": "SentioLabs", - "url": "https://github.com/sentiolabs" - }, - "homepage": "https://github.com/sentiolabs/mneme", - "repository": "https://github.com/sentiolabs/mneme", - "license": "MIT", - "keywords": [ - "context-window", - "sandbox", - "code-execution", - "fts", - "bm25", - "rust" - ], - "hooks": { - "PreToolUse": [ - { - "matcher": "Bash", - "hooks": [ - { - "type": "command", - "command": "mneme hook pretooluse" - } - ] - }, - { - "matcher": "WebFetch", - "hooks": [ - { - "type": "command", - "command": "mneme hook pretooluse" - } - ] - }, - { - "matcher": "Read", - "hooks": [ - { - "type": "command", - "command": "mneme hook pretooluse" - } - ] - }, - { - "matcher": "Grep", - "hooks": [ - { - "type": "command", - "command": "mneme hook pretooluse" - } - ] - } - ], - "PostToolUse": [ - { - "matcher": "", - "hooks": [ - { - "type": "command", - "command": "mneme hook posttooluse" - } - ] - } - ], - "SessionStart": [ - { - "matcher": "", - "hooks": [ - { - "type": "command", - "command": "mneme hook sessionstart" - } - ] - } - ], - "PreCompact": [ - { - "matcher": "", - "hooks": [ - { - "type": "command", - "command": "mneme hook precompact" - } - ] - } - ], - "SessionEnd": [ - { - "matcher": "", - "hooks": [ - { - "type": "command", - "command": "mneme hook sessionend" - } - ] - } - ], - "Stop": [ - { - "matcher": "", - "hooks": [ - { - "type": "command", - "command": "mneme hook stop" - } - ] - } - ] - } -} diff --git a/claude-marketplace/plugins/mneme/CHANGELOG.md b/claude-marketplace/plugins/mneme/CHANGELOG.md deleted file mode 100644 index c7c073e..0000000 --- a/claude-marketplace/plugins/mneme/CHANGELOG.md +++ /dev/null @@ -1,91 +0,0 @@ -# Changelog - -## [0.9.2](https://github.com/SentioLabs/claude-marketplace/compare/mneme-v0.9.1...mneme-v0.9.2) (2026-03-25) - - -### Bug Fixes - -* **mneme:** move hooks from hooks.json into plugin.json ([d2d96fb](https://github.com/SentioLabs/claude-marketplace/commit/d2d96fbf4a893c1babba4a8ae2aa1126d8503e6c)) -* **mneme:** remove hooks/hooks.json, use only plugin.json inline hooks ([1ffe4d7](https://github.com/SentioLabs/claude-marketplace/commit/1ffe4d7f621560bc3c0ed68277d7cf13f48851af)) - -## [0.9.1](https://github.com/SentioLabs/claude-marketplace/compare/mneme-v0.9.0...mneme-v0.9.1) (2026-03-25) - - -### Bug Fixes - -* **mneme:** update plugin for hierarchical path scoping ([ef4e911](https://github.com/SentioLabs/claude-marketplace/commit/ef4e9119cb7375b903a0048815d9cc7808d9f46d)) - -## [0.9.0](https://github.com/SentioLabs/claude-marketplace/compare/mneme-v0.8.1...mneme-v0.9.0) (2026-03-24) - - -### Features - -* **mneme:** allow WebFetch instead of redirecting to mneme fetch ([e7c79f1](https://github.com/SentioLabs/claude-marketplace/commit/e7c79f1e553e74b04148182ae25859c227ff09f5)) - -## [0.8.1](https://github.com/SentioLabs/claude-marketplace/compare/mneme-v0.8.0...mneme-v0.8.1) (2026-03-24) - - -### Bug Fixes - -* **mneme:** document memory search/recall CLI syntax in skill ([7b5da78](https://github.com/SentioLabs/claude-marketplace/commit/7b5da78062958482409d240661e007b2bfdcbcdf)) - -## [0.8.0](https://github.com/SentioLabs/claude-marketplace/compare/mneme-v0.7.0...mneme-v0.8.0) (2026-03-24) - - -### Features - -* **mneme:** add /remember command for explicit memory storage ([53be1c3](https://github.com/SentioLabs/claude-marketplace/commit/53be1c31eb278c4688e705d47313fba74bc8d092)) - -## [0.7.0](https://github.com/SentioLabs/claude-marketplace/compare/mneme-v0.6.0...mneme-v0.7.0) (2026-03-23) - - -### Features - -* **mneme:** add SessionEnd and Stop hooks for memory prompting ([630e747](https://github.com/SentioLabs/claude-marketplace/commit/630e74744db5eea126e3f6d823fe00caf204d99d)) - -## [0.6.0](https://github.com/SentioLabs/claude-marketplace/compare/mneme-v0.5.0...mneme-v0.6.0) (2026-03-22) - - -### Features - -* **mneme:** convert doctor, setup, stats from skills to commands ([e6fa6df](https://github.com/SentioLabs/claude-marketplace/commit/e6fa6df8132e20e84658b90bdc72a8a429d1798a)) - -## [0.5.0](https://github.com/SentioLabs/claude-marketplace/compare/mneme-v0.4.0...mneme-v0.5.0) (2026-03-22) - - -### Features - -* **mneme:** use bare skill names in SKILL.md frontmatter ([cb38073](https://github.com/SentioLabs/claude-marketplace/commit/cb38073dfab891e55e6ef81397d54d77f16a893a)) - -## [0.4.0](https://github.com/SentioLabs/claude-marketplace/compare/mneme-v0.3.0...mneme-v0.4.0) (2026-03-22) - - -### Features - -* **mneme:** drop plugin prefix from skill dirs for colon namespace ([94c3c66](https://github.com/SentioLabs/claude-marketplace/commit/94c3c66ba71d7767527739959b0eb4aeb15d55ac)) - -## [0.3.0](https://github.com/SentioLabs/claude-marketplace/compare/mneme-v0.2.1...mneme-v0.3.0) (2026-03-22) - - -### Features - -* **mneme:** rename plugin from loci-ctx to mneme ([c633ee8](https://github.com/SentioLabs/claude-marketplace/commit/c633ee89e6615c594026df6c6b703f4957edc6e9)) - -## [0.2.1](https://github.com/SentioLabs/claude-marketplace/compare/mneme-ctx-v0.2.0...mneme-ctx-v0.2.1) (2026-03-22) - - -### Bug Fixes - -* **mneme-ctx:** correct skills path for marketplace layout ([c16a6a3](https://github.com/SentioLabs/claude-marketplace/commit/c16a6a346efcbf9a0f2753f1755b88db93b3adc9)) - - -### Refactoring - -* **mneme-ctx:** drop explicit skills path, rely on auto-discovery ([19c58e3](https://github.com/SentioLabs/claude-marketplace/commit/19c58e34dfeaf0b70dbd184898aa760b4885fc72)) - -## [0.2.0](https://github.com/SentioLabs/claude-marketplace/compare/mneme-ctx-v0.1.0...mneme-ctx-v0.2.0) (2026-03-22) - - -### Features - -* initial marketplace with arc and mneme-ctx plugins ([309c039](https://github.com/SentioLabs/claude-marketplace/commit/309c039f4532fda6226d6c2e7e487b4257324bd6)) diff --git a/claude-marketplace/plugins/mneme/commands/doctor.md b/claude-marketplace/plugins/mneme/commands/doctor.md deleted file mode 100644 index 2a4ff78..0000000 --- a/claude-marketplace/plugins/mneme/commands/doctor.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -description: Check mneme system health — runtime availability, server status, database health, and configuration ---- - -# mneme doctor - -Run system health diagnostics. - -## Instructions - -Run the following command and display the output as a checklist: - -```bash -mneme doctor --json -``` - -Format each check as: -- ✓ Check name — detail (if passed) -- ✗ Check name — detail (if failed) - -Checks include: server connectivity, database status, runtime availability -(JavaScript, Python, Shell, etc.), index health, and configuration validity. diff --git a/claude-marketplace/plugins/mneme/commands/remember.md b/claude-marketplace/plugins/mneme/commands/remember.md deleted file mode 100644 index c0b59ce..0000000 --- a/claude-marketplace/plugins/mneme/commands/remember.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -description: Store a memory in mneme — use when you learn a preference, knowledge, or decision worth remembering -allowed-tools: Bash -user-invocable: true ---- - -# mneme remember - -Store a memory in mneme's searchable memory system. Use this whenever you learn something worth remembering — preferences, knowledge, decisions — from the conversation. - -## When to use - -- The user states a preference ("always use X", "never do Y", "use bun not npm") -- You learn project knowledge ("this project uses stoolap for storage", "CI runs on Blacksmith") -- A decision is made ("we chose Catppuccin Mocha for dark theme", "memory feedback is idempotent") -- The user explicitly asks you to remember something - -## Instructions - -Determine the appropriate type and content, then run: - -```bash -mneme memory add "" -t -``` - -Memories are **automatically scoped** to the current project based on your working directory. The mneme server resolves your CWD against registered paths to determine the scope. No `--project` or `--scope` flags are needed. - -To store a **global** memory (applies across all projects), add `--scope-global`: - -```bash -mneme memory add "" -t --scope-global -``` - -### Type mapping - -| Signal | Type | -|--------|------| -| "always", "never", "prefer", "use X not Y", "I like", "don't" | `preference` | -| Facts, how things work, architecture, tooling, conventions | `knowledge` | -| "we decided", "the approach is", trade-off resolutions | `decision` | - -### Scope behavior - -| Scenario | What happens | -|----------|-------------| -| Running from a project directory | Memory auto-scoped to the closest registered path | -| `--scope-global` flag used | Memory stored as global (no path association) | -| CWD has no registered ancestor path | Memory stored as global | - -### Content guidelines - -- Write the memory as a clear, self-contained statement -- Include enough context that it's useful without the conversation -- Don't include ephemeral details (timestamps, session IDs, file paths that may change) -- Keep it under 200 characters when possible - -## Example - -User says: "this project uses bun exclusively, use bun/bunx instead of npm/npx" - -```bash -mneme memory add "This project uses bun exclusively as its JavaScript runtime. Always use bun/bunx instead of npm/npx." -t preference -``` - -User says: "always use rg instead of grep" (applies everywhere): - -```bash -mneme memory add "Prefer using rg (ripgrep) instead of grep for faster searches" -t preference --scope-global -``` - -## Important - -This command stores in mneme's memory system — searchable, scoreable, and visible in the web UI. This is **in addition to** Claude Code's built-in auto-memory (file-based). Both should be used: auto-memory for Claude's own context, mneme for the shared knowledge base. diff --git a/claude-marketplace/plugins/mneme/commands/setup.md b/claude-marketplace/plugins/mneme/commands/setup.md deleted file mode 100644 index b168647..0000000 --- a/claude-marketplace/plugins/mneme/commands/setup.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -description: First-run setup and validation — checks binary, server, and guides installation ---- - -# mneme setup - -Validate mneme installation and guide setup if needed. - -## Instructions - -### Step 1: Check binary - -```bash -which mneme && mneme version -``` - -If `mneme` is not found, guide the user: - -```text -mneme is not installed. Install with: - cargo install mneme - -Or build from source: - git clone https://github.com/sentiolabs/mneme - cd mneme - cargo build --release - cp target/release/mneme ~/.cargo/bin/ -``` - -### Step 2: Check server - -```bash -mneme doctor --json -``` - -If the server is not running, guide the user: - -```text -The mneme server is not running. Start it with: - mneme server start - -For background daemon mode: - mneme server start --daemon -``` - -### Step 3: Verify - -```bash -mneme stats --json -``` - -If all checks pass, confirm: "mneme is installed and running correctly." diff --git a/claude-marketplace/plugins/mneme/commands/stats.md b/claude-marketplace/plugins/mneme/commands/stats.md deleted file mode 100644 index 60cd486..0000000 --- a/claude-marketplace/plugins/mneme/commands/stats.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -description: Show context savings statistics — token consumption, savings ratio, and per-tool breakdown ---- - -# mneme stats - -Show context window savings for this session. - -## Instructions - -Run the following command and display the output: - -```bash -mneme stats --json -``` - -Format the JSON output as a readable summary: -- Total bytes intercepted vs returned -- Context savings ratio (percentage) -- Per-tool breakdown (which tools saved the most) -- Session duration and event count diff --git a/claude-marketplace/plugins/mneme/evals/workspace/.gitignore b/claude-marketplace/plugins/mneme/evals/workspace/.gitignore deleted file mode 100644 index d6b7ef3..0000000 --- a/claude-marketplace/plugins/mneme/evals/workspace/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/claude-marketplace/plugins/mneme/skills/mneme/SKILL.md b/claude-marketplace/plugins/mneme/skills/mneme/SKILL.md deleted file mode 100644 index 9aa4b8c..0000000 --- a/claude-marketplace/plugins/mneme/skills/mneme/SKILL.md +++ /dev/null @@ -1,154 +0,0 @@ ---- -name: mneme -description: > - Use mneme CLI (execute, exec-file, batch, fetch, search, index) instead of Bash/Read/Grep when - processing large outputs. This skill protects your context window by running commands in a sandbox - and only returning search results. Make sure to use this skill whenever the user asks to analyze - build output, summarize logs, process data, parse JSON, filter results, extract errors, check - build output, analyze dependencies, process API responses, do large file analysis, run tests and - check output, review git log or recent commits, diff between branches, find TODOs, count lines, - check codebase statistics, fetch documentation, call APIs, or any operation that may produce more - than 20 lines of output. The PreToolUse hook enforces routing automatically for curl/wget. ---- - -# mneme -- context window protection - -## Prerequisites - -The `mneme` binary must be available. Check with `which mneme`. If not found: - -```bash -# If in the mneme repo with a compiled binary: -./target/release/mneme version - -# Otherwise install: -cargo install mneme -``` - -The mneme server daemon must be running for execute/exec-file/batch commands: - -```bash -mneme server start -``` - -If `mneme` is genuinely unavailable, fall back to the Grep tool with targeted file-type filters and small result sets, or use other available sandbox tools (ck-search, etc.) that keep output out of context. - -## Tool Routing - -The mneme CLI uses **long flags only** (`--lang`, `--code`, `--path`, `--url`). There are no short flag aliases. - -| Instead of... | Use... | -|---|---| -| `Bash` with large output | `mneme execute --lang shell --code '...'` | -| `Bash` with curl/wget | `mneme fetch --url ` then `mneme search -q '...'` | -| `Read` for analysis (not editing) | `mneme exec-file --path --lang python --code '...'` | -| `Grep` with many results | `mneme execute --lang shell --code 'grep ...'` | -| Multiple commands + analysis | `mneme batch --commands-json '[...]' --queries-json '[...]'` | -| "What should I do before X?" / recalling preferences | `mneme memory search "query"` | - -**When to use Read instead of exec-file**: If you are reading a file in order to **Edit** it, use Read -- you need the content in context for the edit. Use exec-file only when you are reading to **analyze or summarize**. - -## Blocked Commands - -These are intercepted by the PreToolUse hook and will be rejected: - -- `curl` / `wget` in Bash -- Use `mneme fetch --url ` instead -- `fetch('http...` / `requests.get(` / `requests.post(` in Bash -- Use `mneme execute` instead - -**Note:** WebFetch is allowed. Content fetched via WebFetch is automatically indexed by mneme and available for future `mneme search` lookups. If the same URL was fetched before, cached content is injected as context automatically (no re-fetch needed). You can also use `mneme fetch --url ` which returns clean markdown content directly and indexes it for search. - -## Usage Examples - -### Run tests and analyze output - -```bash -mneme batch --commands-json '[{"language":"shell","code":"cargo test 2>&1"}]' \ - --queries-json '["test failures","FAILED","compilation error","warning"]' -``` - -### Execute code in sandbox - -```bash -mneme execute --lang python --code 'import json; data = json.load(open("/path/to/large.json")); print(len(data["items"]))' -mneme execute --lang shell --code 'find . -name "*.rs" | wc -l' -``` - -### Analyze a file without flooding context - -```bash -mneme exec-file --path src/main.rs --lang python --code 'lines = content.splitlines(); print(f"Lines: {len(lines)}"); print("Imports:", [l for l in lines[:20] if l.startswith("use ")])' -``` - -### Fetch and index web content - -```bash -mneme fetch --url https://docs.example.com/api -``` - -Content is returned as clean markdown (HTML converted via readability + html-to-markdown). Use `mneme search` for follow-up queries on the indexed content: - -```bash -mneme search -q "authentication endpoints" -``` - -Note: `mneme fetch` does not support custom HTTP headers. For APIs requiring authentication or User-Agent headers (like GitHub's API), use `mneme execute` with a script: - -```bash -mneme execute --lang python --code ' -import urllib.request, json -req = urllib.request.Request("https://api.github.com/repos/owner/repo/releases/latest", - headers={"User-Agent": "mneme"}) -data = json.loads(urllib.request.urlopen(req).read()) -print(json.dumps({"tag": data["tag_name"], "date": data["published_at"]}, indent=2)) -' -``` - -### Multi-step batch operation - -```bash -mneme batch --commands-json '[{"language":"shell","code":"cargo test 2>&1"},{"language":"shell","code":"cargo clippy 2>&1"}]' \ - --queries-json '["test failures","clippy warnings"]' -``` - -### Index content for later search - -```bash -mneme index --source "error-log" --content "$(cat /tmp/error.log)" -mneme search -q "connection timeout errors" -``` - -### Query knowledge base - -```bash -mneme search -q "how does authentication work" -mneme search -q "database schema" --source "architecture-docs" -``` - -### Search agent memories - -Use `mneme memory search` to find stored preferences, knowledge, and decisions: - -```bash -mneme memory search "before pushing code" -mneme memory search "testing strategy" --limit 5 -``` - -Use `mneme memory recall` for a context-free top-K recall (no query argument — returns highest-confidence memories): - -```bash -mneme memory recall --top-k 5 -``` - -**Important:** `memory search` takes a `` positional argument. `memory recall` takes **no** positional argument — it only accepts options (`--top-k`, `--format`). Do not pass a query string to `recall`. - -Memories are automatically scoped by your working directory — the server resolves CWD against registered paths for hierarchical recall (closest path ancestor scores highest). - -## Output Constraints - -- Keep responses under 500 words -- Write artifacts (code, configs) to FILES -- never return them as inline text -- Return only: file path + 1-line description - -## Subagent Usage - -Subagents automatically receive mneme tool routing via the PreToolUse hook. You do NOT need to manually add tool names to subagent prompts -- the hook injects them. diff --git a/claude-marketplace/plugins/mneme/skills/mneme/evals/evals.json b/claude-marketplace/plugins/mneme/skills/mneme/evals/evals.json deleted file mode 100644 index 3d0507c..0000000 --- a/claude-marketplace/plugins/mneme/skills/mneme/evals/evals.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "skill_name": "mneme", - "evals": [ - { - "id": 1, - "prompt": "Analyze the build output from cargo test and summarize any failures", - "expected_output": "Claude uses mneme execute to run cargo test in sandbox rather than raw Bash", - "expectations": [ - "Uses mneme execute or mneme batch instead of raw Bash for running tests", - "Does not dump full test output into context", - "Provides a concise summary of test results" - ] - }, - { - "id": 2, - "prompt": "Fetch the Rust documentation for the axum crate and find how to add middleware", - "expected_output": "Claude uses mneme fetch, WebFetch, or similar to retrieve docs, then mneme search to query", - "expectations": [ - "Uses mneme fetch or WebFetch to retrieve documentation (WebFetch content is automatically indexed by mneme)", - "Uses mneme search to query the indexed documentation", - "Does not use curl or wget in any Bash command" - ] - }, - { - "id": 3, - "prompt": "Parse this 500-line JSON log file and count how many error entries there are", - "expected_output": "Claude uses mneme exec-file or mneme execute for analysis rather than reading the entire file into context", - "expectations": [ - "Uses mneme exec-file or mneme execute instead of Read + inline analysis", - "Only the summary count enters context, not the raw log content", - "Correct count is returned" - ] - }, - { - "id": 4, - "prompt": "Find all TODO comments in the codebase and give me a summary", - "expected_output": "Claude uses mneme execute with shell grep rather than raw Grep that could flood context", - "expectations": [ - "Uses mneme execute or mneme batch for the search", - "Provides a structured summary rather than dumping raw grep output", - "Does not use raw Grep for a potentially large result set" - ] - }, - { - "id": 5, - "prompt": "Call the GitHub API to check the latest release of tokio-rs/tokio", - "expected_output": "Claude uses mneme fetch or mneme execute for the API call instead of curl in Bash", - "expectations": [ - "Does not use curl or wget in Bash", - "Uses mneme fetch or mneme execute for the HTTP call", - "Returns the release version information" - ] - }, - { - "id": 6, - "prompt": "Read src/main.rs and explain the command routing architecture", - "expected_output": "Claude uses mneme exec-file for analysis since it's reading to understand, not to edit", - "expectations": [ - "Uses mneme exec-file for file analysis rather than Read", - "Provides architectural explanation without dumping full file content", - "Identifies key structures like CLI enum and command dispatch" - ] - }, - { - "id": 7, - "prompt": "Run git log for the last 50 commits and identify which areas of the codebase changed most", - "expected_output": "Claude uses mneme execute to run git log in sandbox and analyze results", - "expectations": [ - "Uses mneme execute or mneme batch instead of raw Bash for git log", - "Performs analysis in sandbox, not in context window", - "Returns a focused summary of most-changed areas" - ] - } - ] -} diff --git a/claude-marketplace/plugins/mneme/version.txt b/claude-marketplace/plugins/mneme/version.txt deleted file mode 100644 index 2003b63..0000000 --- a/claude-marketplace/plugins/mneme/version.txt +++ /dev/null @@ -1 +0,0 @@ -0.9.2 diff --git a/codex-marketplace/plugins/mneme/.codex-plugin/plugin.json b/codex-marketplace/plugins/mneme/.codex-plugin/plugin.json deleted file mode 100644 index 21427b1..0000000 --- a/codex-marketplace/plugins/mneme/.codex-plugin/plugin.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "mneme", - "version": "0.11.0", - "description": "Transparent context-window protection for Codex using hook-based routing and project-scoped memory recall.", - "author": { - "name": "Sentio Labs", - "url": "https://github.com/sentiolabs" - }, - "homepage": "https://github.com/sentiolabs/mneme", - "repository": "https://github.com/sentiolabs/mneme", - "license": "MIT", - "keywords": [ - "context-window", - "sandbox", - "code-execution", - "fts", - "bm25", - "rust" - ], - "skills": "./skills/", - "hooks": "./hooks.json", - "interface": { - "displayName": "Mneme", - "shortDescription": "Route large analysis to mneme and recall important memory automatically", - "longDescription": "Mneme for Codex uses plugin hooks to transparently route large-output operations through the mneme runtime, reducing context usage while preserving searchable memory. It is designed for practical feature parity: context reduction, memory recall, and conservative durable memory capture.", - "developerName": "Sentio Labs", - "category": "Productivity", - "capabilities": [ - "Interactive", - "Write" - ], - "websiteURL": "https://github.com/sentiolabs/mneme", - "privacyPolicyURL": "https://github.com/sentiolabs/claude-marketplace/blob/main/docs/legal/privacy.md", - "termsOfServiceURL": "https://github.com/sentiolabs/claude-marketplace/blob/main/docs/legal/terms.md", - "defaultPrompt": [ - "Analyze this large output with mneme and summarize what matters", - "Recall what we already know about this repo from mneme memory", - "Store this explicit preference or decision in mneme memory" - ], - "brandColor": "#0F766E", - "composerIcon": "./assets/mneme-icon.svg", - "logo": "./assets/mneme-logo.svg", - "screenshots": [] - } -} diff --git a/codex-marketplace/plugins/mneme/CHANGELOG.md b/codex-marketplace/plugins/mneme/CHANGELOG.md deleted file mode 100644 index dac7f4f..0000000 --- a/codex-marketplace/plugins/mneme/CHANGELOG.md +++ /dev/null @@ -1,111 +0,0 @@ -# Changelog - -## [0.11.0](https://github.com/SentioLabs/agent-nexus/compare/codex-mneme-v0.10.0...codex-mneme-v0.11.0) (2026-04-23) - - -### Features - -* **codex:** reset versions to 0.1.0 for codex ([64d9134](https://github.com/SentioLabs/agent-nexus/commit/64d91348b103e69a8d47d35d0796f2fbad81f05b)) - -## [0.10.0](https://github.com/SentioLabs/agent-nexus/compare/codex-mneme-v0.9.2...codex-mneme-v0.10.0) (2026-04-04) - - -### Features - -* **arc:** add semantic search and symbol navigation guidance ([e371741](https://github.com/SentioLabs/agent-nexus/commit/e371741f292723d60e44954764e84222d02239f1)) - -## [Unreleased] - -### Tests - -* **mneme:** expand Codex transparency eval coverage for fetch/search/index routing and resilient memory recall/capture behavior - -## [0.9.2](https://github.com/SentioLabs/claude-marketplace/compare/mneme-v0.9.1...mneme-v0.9.2) (2026-03-25) - - -### Bug Fixes - -* **mneme:** move hooks from hooks.json into plugin.json ([d2d96fb](https://github.com/SentioLabs/claude-marketplace/commit/d2d96fbf4a893c1babba4a8ae2aa1126d8503e6c)) -* **mneme:** remove hooks/hooks.json, use only plugin.json inline hooks ([1ffe4d7](https://github.com/SentioLabs/claude-marketplace/commit/1ffe4d7f621560bc3c0ed68277d7cf13f48851af)) - -## [0.9.1](https://github.com/SentioLabs/claude-marketplace/compare/mneme-v0.9.0...mneme-v0.9.1) (2026-03-25) - - -### Bug Fixes - -* **mneme:** update plugin for hierarchical path scoping ([ef4e911](https://github.com/SentioLabs/claude-marketplace/commit/ef4e9119cb7375b903a0048815d9cc7808d9f46d)) - -## [0.9.0](https://github.com/SentioLabs/claude-marketplace/compare/mneme-v0.8.1...mneme-v0.9.0) (2026-03-24) - - -### Features - -* **mneme:** allow WebFetch instead of redirecting to mneme fetch ([e7c79f1](https://github.com/SentioLabs/claude-marketplace/commit/e7c79f1e553e74b04148182ae25859c227ff09f5)) - -## [0.8.1](https://github.com/SentioLabs/claude-marketplace/compare/mneme-v0.8.0...mneme-v0.8.1) (2026-03-24) - - -### Bug Fixes - -* **mneme:** document memory search/recall CLI syntax in skill ([7b5da78](https://github.com/SentioLabs/claude-marketplace/commit/7b5da78062958482409d240661e007b2bfdcbcdf)) - -## [0.8.0](https://github.com/SentioLabs/claude-marketplace/compare/mneme-v0.7.0...mneme-v0.8.0) (2026-03-24) - - -### Features - -* **mneme:** add /remember command for explicit memory storage ([53be1c3](https://github.com/SentioLabs/claude-marketplace/commit/53be1c31eb278c4688e705d47313fba74bc8d092)) - -## [0.7.0](https://github.com/SentioLabs/claude-marketplace/compare/mneme-v0.6.0...mneme-v0.7.0) (2026-03-23) - - -### Features - -* **mneme:** add SessionEnd and Stop hooks for memory prompting ([630e747](https://github.com/SentioLabs/claude-marketplace/commit/630e74744db5eea126e3f6d823fe00caf204d99d)) - -## [0.6.0](https://github.com/SentioLabs/claude-marketplace/compare/mneme-v0.5.0...mneme-v0.6.0) (2026-03-22) - - -### Features - -* **mneme:** convert doctor, setup, stats from skills to commands ([e6fa6df](https://github.com/SentioLabs/claude-marketplace/commit/e6fa6df8132e20e84658b90bdc72a8a429d1798a)) - -## [0.5.0](https://github.com/SentioLabs/claude-marketplace/compare/mneme-v0.4.0...mneme-v0.5.0) (2026-03-22) - - -### Features - -* **mneme:** use bare skill names in SKILL.md frontmatter ([cb38073](https://github.com/SentioLabs/claude-marketplace/commit/cb38073dfab891e55e6ef81397d54d77f16a893a)) - -## [0.4.0](https://github.com/SentioLabs/claude-marketplace/compare/mneme-v0.3.0...mneme-v0.4.0) (2026-03-22) - - -### Features - -* **mneme:** drop plugin prefix from skill dirs for colon namespace ([94c3c66](https://github.com/SentioLabs/claude-marketplace/commit/94c3c66ba71d7767527739959b0eb4aeb15d55ac)) - -## [0.3.0](https://github.com/SentioLabs/claude-marketplace/compare/mneme-v0.2.1...mneme-v0.3.0) (2026-03-22) - - -### Features - -* **mneme:** rename plugin from loci-ctx to mneme ([c633ee8](https://github.com/SentioLabs/claude-marketplace/commit/c633ee89e6615c594026df6c6b703f4957edc6e9)) - -## [0.2.1](https://github.com/SentioLabs/claude-marketplace/compare/mneme-ctx-v0.2.0...mneme-ctx-v0.2.1) (2026-03-22) - - -### Bug Fixes - -* **mneme-ctx:** correct skills path for marketplace layout ([c16a6a3](https://github.com/SentioLabs/claude-marketplace/commit/c16a6a346efcbf9a0f2753f1755b88db93b3adc9)) - - -### Refactoring - -* **mneme-ctx:** drop explicit skills path, rely on auto-discovery ([19c58e3](https://github.com/SentioLabs/claude-marketplace/commit/19c58e34dfeaf0b70dbd184898aa760b4885fc72)) - -## [0.2.0](https://github.com/SentioLabs/claude-marketplace/compare/mneme-ctx-v0.1.0...mneme-ctx-v0.2.0) (2026-03-22) - - -### Features - -* initial marketplace with arc and mneme-ctx plugins ([309c039](https://github.com/SentioLabs/claude-marketplace/commit/309c039f4532fda6226d6c2e7e487b4257324bd6)) diff --git a/codex-marketplace/plugins/mneme/assets/mneme-icon.svg b/codex-marketplace/plugins/mneme/assets/mneme-icon.svg deleted file mode 100644 index 9e645b3..0000000 --- a/codex-marketplace/plugins/mneme/assets/mneme-icon.svg +++ /dev/null @@ -1,5 +0,0 @@ - - Mneme icon - - - diff --git a/codex-marketplace/plugins/mneme/assets/mneme-logo.svg b/codex-marketplace/plugins/mneme/assets/mneme-logo.svg deleted file mode 100644 index 10df269..0000000 --- a/codex-marketplace/plugins/mneme/assets/mneme-logo.svg +++ /dev/null @@ -1,7 +0,0 @@ - - Mneme logo - - - - MNEME - diff --git a/codex-marketplace/plugins/mneme/commands/doctor.md b/codex-marketplace/plugins/mneme/commands/doctor.md deleted file mode 100644 index 2a4ff78..0000000 --- a/codex-marketplace/plugins/mneme/commands/doctor.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -description: Check mneme system health — runtime availability, server status, database health, and configuration ---- - -# mneme doctor - -Run system health diagnostics. - -## Instructions - -Run the following command and display the output as a checklist: - -```bash -mneme doctor --json -``` - -Format each check as: -- ✓ Check name — detail (if passed) -- ✗ Check name — detail (if failed) - -Checks include: server connectivity, database status, runtime availability -(JavaScript, Python, Shell, etc.), index health, and configuration validity. diff --git a/codex-marketplace/plugins/mneme/commands/plugin.md b/codex-marketplace/plugins/mneme/commands/plugin.md deleted file mode 100644 index 5dbd8ce..0000000 --- a/codex-marketplace/plugins/mneme/commands/plugin.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -description: Install and configure mneme for Claude Code and Codex ---- - -# mneme docs plugin - -Mneme supports both Claude Code and Codex through repo-local plugin packaging. - -## Claude Code - -- Install the Claude plugin from this repository's `claude-marketplace/plugins/mneme/.claude-plugin/` manifest. -- Claude packaging uses inline hooks in `plugin.json` for transparent tool interception and session events. - -## Codex - -- Install the Codex plugin from this repository's `.agents/plugins/marketplace.json` catalog. -- Codex packaging uses: - - `codex-marketplace/plugins/mneme/.codex-plugin/plugin.json` - - `codex-marketplace/plugins/mneme/hooks.json` -- For transparent routing to work reliably, Codex should connect to a running mneme daemon. - -Recommended explicit hook transport: - -```bash -mneme hook pretooluse --platform codex --server 127.0.0.1:7435 -mneme hook sessionstart --platform codex --server 127.0.0.1:7435 -``` - -## Compatibility note - -Codex support in this repo targets feature parity: transparent context reduction, session memory recall, and conservative durable memory capture. It does not depend on one-to-one event parity with Claude. - -## After installation - -Run the setup flow from your project root: - -```bash -mneme doctor --json -mneme stats --json -``` - -If `doctor` reports the server is not reachable, start the daemon: - -```bash -mneme server start -``` diff --git a/codex-marketplace/plugins/mneme/commands/remember.md b/codex-marketplace/plugins/mneme/commands/remember.md deleted file mode 100644 index 2de9767..0000000 --- a/codex-marketplace/plugins/mneme/commands/remember.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -description: Store a memory in mneme — use when you learn a preference, knowledge, or decision worth remembering -allowed-tools: Bash -user-invocable: true ---- - -# mneme remember - -Store a memory in mneme's searchable memory system. Use this whenever you learn something worth remembering — preferences, knowledge, decisions — from the conversation. - -## When to use - -- The user states a preference ("always use X", "never do Y", "use bun not npm") -- You learn project knowledge ("this project uses stoolap for storage", "CI runs on Blacksmith") -- A decision is made ("we chose Catppuccin Mocha for dark theme", "memory feedback is idempotent") -- The user explicitly asks you to remember something - -## Instructions - -Determine the appropriate type and content, then run: - -```bash -mneme memory add "" -t -``` - -Memories are **automatically scoped** to the current project based on your working directory. The mneme server resolves your CWD against registered paths to determine the scope. No `--project` or `--scope` flags are needed. - -To store a **global** memory (applies across all projects), add `--scope-global`: - -```bash -mneme memory add "" -t --scope-global -``` - -### Type mapping - -| Signal | Type | -|--------|------| -| "always", "never", "prefer", "use X not Y", "I like", "don't" | `preference` | -| Facts, how things work, architecture, tooling, conventions | `knowledge` | -| "we decided", "the approach is", trade-off resolutions | `decision` | - -### Scope behavior - -| Scenario | What happens | -|----------|-------------| -| Running from a project directory | Memory auto-scoped to the closest registered path | -| `--scope-global` flag used | Memory stored as global (no path association) | -| CWD has no registered ancestor path | Memory stored as global | - -### Content guidelines - -- Write the memory as a clear, self-contained statement -- Include enough context that it's useful without the conversation -- Don't include ephemeral details (timestamps, session IDs, file paths that may change) -- Keep it under 200 characters when possible - -## Example - -User says: "this project uses bun exclusively, use bun/bunx instead of npm/npx" - -```bash -mneme memory add "This project uses bun exclusively as its JavaScript runtime. Always use bun/bunx instead of npm/npx." -t preference -``` - -User says: "always use rg instead of grep" (applies everywhere): - -```bash -mneme memory add "Prefer using rg (ripgrep) instead of grep for faster searches" -t preference --scope-global -``` - -## Important - -This command stores in mneme's memory system — searchable, scoreable, and visible in the web UI. This complements agent-specific local memory features (for example Claude Code auto-memory). Use runtime-local memory for session context and mneme for the shared knowledge base. - -For Codex-oriented transparent memory workflows, use a conservative capture policy: - -- store explicit preferences -- store explicit decisions -- store durable project facts and conventions -- avoid storing ephemeral task chatter or temporary debugging notes diff --git a/codex-marketplace/plugins/mneme/commands/setup.md b/codex-marketplace/plugins/mneme/commands/setup.md deleted file mode 100644 index 00505aa..0000000 --- a/codex-marketplace/plugins/mneme/commands/setup.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -description: First-run setup and validation — checks binary, server, and guides installation ---- - -# mneme setup - -Validate mneme installation and guide setup if needed. - -## Instructions - -### Step 1: Check binary - -```bash -which mneme && mneme --version -``` - -If `mneme` is not found, guide the user: - -```text -mneme is not installed. Build from source: - git clone https://github.com/sentiolabs/mneme - cd mneme - cargo build --release - cp target/release/mneme ~/.cargo/bin/ -``` - -### Step 2: Check server - -```bash -mneme doctor --json -``` - -If the server is not running, guide the user: - -```text -The mneme server is not running. Start it with: - mneme server start -``` - -### Step 3: Verify - -```bash -mneme stats --json -``` - -If all checks pass, confirm: "mneme is installed and running correctly." - -## Codex note - -If Codex plugin hooks are installed, transparent mneme routing depends on both: - -- a reachable daemon -- the hook commands using explicit transport, for example: - -```bash -mneme hook pretooluse --platform codex --server 127.0.0.1:7435 -``` diff --git a/codex-marketplace/plugins/mneme/commands/stats.md b/codex-marketplace/plugins/mneme/commands/stats.md deleted file mode 100644 index 60cd486..0000000 --- a/codex-marketplace/plugins/mneme/commands/stats.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -description: Show context savings statistics — token consumption, savings ratio, and per-tool breakdown ---- - -# mneme stats - -Show context window savings for this session. - -## Instructions - -Run the following command and display the output: - -```bash -mneme stats --json -``` - -Format the JSON output as a readable summary: -- Total bytes intercepted vs returned -- Context savings ratio (percentage) -- Per-tool breakdown (which tools saved the most) -- Session duration and event count diff --git a/codex-marketplace/plugins/mneme/evals/workspace/.gitignore b/codex-marketplace/plugins/mneme/evals/workspace/.gitignore deleted file mode 100644 index d6b7ef3..0000000 --- a/codex-marketplace/plugins/mneme/evals/workspace/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/codex-marketplace/plugins/mneme/hooks.json b/codex-marketplace/plugins/mneme/hooks.json deleted file mode 100644 index bac3e28..0000000 --- a/codex-marketplace/plugins/mneme/hooks.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "hooks": { - "PreToolUse": [ - { - "matcher": "Bash", - "hooks": [ - { - "type": "command", - "command": "mneme hook pretooluse --platform codex --server 127.0.0.1:7435" - } - ] - }, - { - "matcher": "WebFetch", - "hooks": [ - { - "type": "command", - "command": "mneme hook pretooluse --platform codex --server 127.0.0.1:7435" - } - ] - }, - { - "matcher": "Read", - "hooks": [ - { - "type": "command", - "command": "mneme hook pretooluse --platform codex --server 127.0.0.1:7435" - } - ] - }, - { - "matcher": "Grep", - "hooks": [ - { - "type": "command", - "command": "mneme hook pretooluse --platform codex --server 127.0.0.1:7435" - } - ] - } - ], - "PostToolUse": [ - { - "matcher": "", - "hooks": [ - { - "type": "command", - "command": "mneme hook posttooluse --platform codex --server 127.0.0.1:7435" - } - ] - } - ], - "SessionStart": [ - { - "matcher": "", - "hooks": [ - { - "type": "command", - "command": "mneme hook sessionstart --platform codex --server 127.0.0.1:7435" - } - ] - } - ], - "PreCompact": [ - { - "matcher": "", - "hooks": [ - { - "type": "command", - "command": "mneme hook precompact --platform codex --server 127.0.0.1:7435" - } - ] - } - ] - } -} diff --git a/codex-marketplace/plugins/mneme/skills/mneme/SKILL.md b/codex-marketplace/plugins/mneme/skills/mneme/SKILL.md deleted file mode 100644 index 3e7f846..0000000 --- a/codex-marketplace/plugins/mneme/skills/mneme/SKILL.md +++ /dev/null @@ -1,169 +0,0 @@ ---- -name: mneme -description: > - Use mneme CLI (execute, exec-file, batch, fetch, search, index) instead of Bash/Read/Grep when - processing large outputs. This skill protects your context window by running commands in a sandbox - and only returning search results. Make sure to use this skill whenever the user asks to analyze - build output, summarize logs, process data, parse JSON, filter results, extract errors, check - build output, analyze dependencies, process API responses, do large file analysis, run tests and - check output, review git log or recent commits, diff between branches, find TODOs, count lines, - check codebase statistics, fetch documentation, call APIs, or any operation that may produce more - than 20 lines of output. The PreToolUse hook enforces routing automatically for curl/wget. ---- - -# mneme -- context window protection - -## Codex Transparency - -When the Codex plugin hooks are installed, mneme can route eligible tool usage transparently. -For Codex packaging, hook commands should target a reachable daemon explicitly: - -```bash -mneme hook --platform codex --server 127.0.0.1:7435 -``` - -This enables transparent context reduction for large-output operations and session memory recall -without requiring users to say "use mneme" on every turn. - -## Prerequisites - -The `mneme` binary must be available. Check with `which mneme`. If not found: - -```bash -# If in the mneme repo with a compiled binary: -./target/release/mneme --version - -# Otherwise build from source: -git clone https://github.com/sentiolabs/mneme -cd mneme -cargo build --release -cp target/release/mneme ~/.cargo/bin/ -``` - -The mneme server must be reachable for transparent Codex hook workflows and for runtime-backed CLI operations (including fetch/search/index, execute/exec-file/batch, and memory commands): - -```bash -mneme server start -``` - -If `mneme` is genuinely unavailable, fall back to the Grep tool with targeted file-type filters and small result sets, or use other available sandbox tools (ck-search, etc.) that keep output out of context. - -## Tool Routing - -For the routing commands in this guide, prefer long flags (`--lang`, `--code`, `--path`, `--url`) for consistency. Some subcommands expose short aliases (for example `mneme memory add -t ...`). - -| Instead of... | Use... | -|---|---| -| `Bash` with large output | `mneme execute --lang shell --code '...'` | -| `Bash` with curl/wget | `mneme fetch --url ` then `mneme search '...'` | -| `Read` for analysis (not editing) | `mneme exec-file --path --lang python --code '...'` | -| `Grep` with many results | `mneme execute --lang shell --code 'grep ...'` | -| Multiple commands + analysis | `mneme batch --commands-json '[...]' --queries-json '[...]'` | -| "What should I do before X?" / recalling preferences | `mneme memory search "query"` | - -**When to use Read instead of exec-file**: If you are reading a file in order to **Edit** it, use Read -- you need the content in context for the edit. Use exec-file only when you are reading to **analyze or summarize**. - -## Blocked Commands - -These are intercepted by the PreToolUse hook and will be rejected: - -- `curl` / `wget` in Bash -- Use `mneme fetch --url ` instead -- `fetch('http...` / `requests.get(` / `requests.post(` in Bash -- Use `mneme execute` instead - -**Note:** WebFetch is allowed. Content fetched via WebFetch is automatically indexed by mneme and available for future `mneme search` lookups. If the same URL was fetched before, cached content is injected as context automatically (no re-fetch needed). You can also use `mneme fetch --url ` which returns clean markdown content directly and indexes it for search. - -## Usage Examples - -### Run tests and analyze output - -```bash -mneme batch --commands-json '[{"language":"shell","code":"cargo test 2>&1"}]' \ - --queries-json '["test failures","FAILED","compilation error","warning"]' -``` - -### Execute code in sandbox - -```bash -mneme execute --lang python --code 'import json; data = json.load(open("/path/to/large.json")); print(len(data["items"]))' -mneme execute --lang shell --code 'find . -name "*.rs" | wc -l' -``` - -### Analyze a file without flooding context - -```bash -mneme exec-file --path src/main.rs --lang python --code 'lines = content.splitlines(); print(f"Lines: {len(lines)}"); print("Imports:", [l for l in lines[:20] if l.startswith("use ")])' -``` - -### Fetch and index web content - -```bash -mneme fetch --url https://docs.example.com/api -``` - -Content is returned as clean markdown (HTML converted via readability + html-to-markdown). Use `mneme search` for follow-up queries on the indexed content: - -```bash -mneme search "authentication endpoints" -``` - -Note: `mneme fetch` does not support custom HTTP headers. For APIs requiring authentication or User-Agent headers (like GitHub's API), use `mneme execute` with a script: - -```bash -mneme execute --lang python --code ' -import urllib.request, json -req = urllib.request.Request("https://api.github.com/repos/owner/repo/releases/latest", - headers={"User-Agent": "mneme"}) -data = json.loads(urllib.request.urlopen(req).read()) -print(json.dumps({"tag": data["tag_name"], "date": data["published_at"]}, indent=2)) -' -``` - -### Multi-step batch operation - -```bash -mneme batch --commands-json '[{"language":"shell","code":"cargo test 2>&1"},{"language":"shell","code":"cargo clippy 2>&1"}]' \ - --queries-json '["test failures","clippy warnings"]' -``` - -### Index content for later search - -```bash -mneme index --source "error-log" --path /tmp/error.log -mneme search "connection timeout errors" -``` - -### Query knowledge base - -```bash -mneme search "how does authentication work" -mneme search "database schema" --source "architecture-docs" -``` - -### Search agent memories - -Use `mneme memory search` to find stored preferences, knowledge, and decisions: - -```bash -mneme memory search "before pushing code" -mneme memory search "testing strategy" --limit 5 -``` - -Use `mneme memory recall` for a context-free top-K recall (no query argument — returns highest-confidence memories): - -```bash -mneme memory recall --top-k 5 -``` - -**Important:** `memory search` takes a `` positional argument. `memory recall` takes **no** positional argument — it only accepts options (`--top-k`, `--format`). Do not pass a query string to `recall`. - -Memories are automatically scoped by your working directory — the server resolves CWD against registered paths for hierarchical recall (closest path ancestor scores highest). - -## Output Constraints - -- Keep responses under 500 words -- Write artifacts (code, configs) to FILES -- never return them as inline text -- Return only: file path + 1-line description - -## Subagent Usage - -Subagents automatically receive mneme tool routing via the PreToolUse hook. You do NOT need to manually add tool names to subagent prompts -- the hook injects them. diff --git a/codex-marketplace/plugins/mneme/skills/mneme/evals/evals.json b/codex-marketplace/plugins/mneme/skills/mneme/evals/evals.json deleted file mode 100644 index 0e8c3e2..0000000 --- a/codex-marketplace/plugins/mneme/skills/mneme/evals/evals.json +++ /dev/null @@ -1,126 +0,0 @@ -{ - "skill_name": "mneme", - "evals": [ - { - "id": 1, - "prompt": "Analyze the build output from cargo test and summarize any failures", - "expected_output": "The agent uses mneme execute to run cargo test in sandbox rather than raw Bash", - "expectations": [ - "Uses mneme execute or mneme batch instead of raw Bash for running tests", - "Does not dump full test output into context", - "Provides a concise summary of test results" - ] - }, - { - "id": 2, - "prompt": "Fetch the Rust documentation for the axum crate and find how to add middleware", - "expected_output": "The agent uses mneme fetch, WebFetch, or similar to retrieve docs, then mneme search to query", - "expectations": [ - "Uses mneme fetch or WebFetch to retrieve documentation (WebFetch content is automatically indexed by mneme)", - "Uses mneme search to query the indexed documentation", - "Does not use curl or wget in any Bash command" - ] - }, - { - "id": 3, - "prompt": "Parse this 500-line JSON log file and count how many error entries there are", - "expected_output": "The agent uses mneme exec-file or mneme execute for analysis rather than reading the entire file into context", - "expectations": [ - "Uses mneme exec-file or mneme execute instead of Read + inline analysis", - "Only the summary count enters context, not the raw log content", - "Correct count is returned" - ] - }, - { - "id": 4, - "prompt": "Find all TODO comments in the codebase and give me a summary", - "expected_output": "The agent uses mneme execute with shell grep rather than raw Grep that could flood context", - "expectations": [ - "Uses mneme execute or mneme batch for the search", - "Provides a structured summary rather than dumping raw grep output", - "Does not use raw Grep for a potentially large result set" - ] - }, - { - "id": 5, - "prompt": "Call the GitHub API to check the latest release of tokio-rs/tokio", - "expected_output": "The agent uses mneme fetch or mneme execute for the API call instead of curl in Bash", - "expectations": [ - "Does not use curl or wget in Bash", - "Uses mneme fetch or mneme execute for the HTTP call", - "Returns the release version information" - ] - }, - { - "id": 6, - "prompt": "Read src/main.rs and explain the command routing architecture", - "expected_output": "The agent uses mneme exec-file for analysis since it's reading to understand, not to edit", - "expectations": [ - "Uses mneme exec-file for file analysis rather than Read", - "Provides architectural explanation without dumping full file content", - "Identifies key structures like CLI enum and command dispatch" - ] - }, - { - "id": 7, - "prompt": "Run git log for the last 50 commits and identify which areas of the codebase changed most", - "expected_output": "The agent uses mneme execute to run git log in sandbox and analyze results", - "expectations": [ - "Uses mneme execute or mneme batch instead of raw Bash for git log", - "Performs analysis in sandbox, not in context window", - "Returns a focused summary of most-changed areas" - ] - }, - { - "id": 8, - "prompt": "I'm in Codex. Pull https://valkey.io/clients/ and summarize which clients are supported.", - "expected_output": "The Codex agent transparently routes webpage retrieval through mneme-compatible fetch behavior and summarizes supported clients without requiring explicit mneme instructions.", - "expectations": [ - "Uses mneme fetch or WebFetch for webpage retrieval (WebFetch content may be auto-indexed by mneme)", - "Allows optional follow-up mneme search for extraction, but does not require a fixed fetch then search sequence", - "Does not require the user to explicitly say \"use mneme\" to route fetch/search" - ] - }, - { - "id": 9, - "prompt": "I just ran a huge test suite in Codex and the output is massive. Tell me what failed.", - "expected_output": "The Codex agent routes large-output analysis through mneme execution primitives and returns a concise failure summary.", - "expectations": [ - "Uses mneme execute or mneme batch for large-output analysis", - "Avoids dumping full raw output into context", - "Returns focused failures, not a verbose transcript" - ] - }, - { - "id": 10, - "prompt": "Before we continue, what does mneme memory already know about this repo?", - "expected_output": "The agent accurately reports available project memory via session-recalled context or explicit mneme memory retrieval, and handles empty-memory states without fabricating facts.", - "expectations": [ - "Returns important stored context when available (preferences, decisions, durable project facts), including SessionStart-recalled memory when present", - "If no repo memory exists yet, clearly says so instead of inventing content", - "May use mneme memory recall/search for additional lookup, but does not require a turn-local recall/search call", - "Does not fabricate memories that were never stored" - ] - }, - { - "id": 11, - "prompt": "Remember this decision for future Codex sessions: use --platform codex --server 127.0.0.1:7435 for mneme hook commands.", - "expected_output": "The agent persists the decision using mneme memory add with durable wording suitable for future recall.", - "expectations": [ - "Uses mneme memory add to store the decision", - "Stores it as a durable preference/decision rather than ephemeral chatter", - "Writes a concise, self-contained memory statement suitable for future recall" - ] - }, - { - "id": 12, - "prompt": "I'm in Codex and just added a large local docs folder. Make it searchable for later questions.", - "expected_output": "The Codex agent transparently routes standalone indexing through mneme index so later retrieval can use search without bloating context.", - "expectations": [ - "Uses mneme index for the indexing step (not only fetch-based implicit indexing)", - "Keeps user-facing output concise while preparing content for later search/recall", - "Does not require the user to explicitly say \"use mneme\" to trigger indexing behavior" - ] - } - ] -} diff --git a/codex-marketplace/plugins/mneme/version.txt b/codex-marketplace/plugins/mneme/version.txt deleted file mode 100644 index d9df1bb..0000000 --- a/codex-marketplace/plugins/mneme/version.txt +++ /dev/null @@ -1 +0,0 @@ -0.11.0 diff --git a/opencode-marketplace/plugins/mneme/CHANGELOG.md b/opencode-marketplace/plugins/mneme/CHANGELOG.md deleted file mode 100644 index f94803b..0000000 --- a/opencode-marketplace/plugins/mneme/CHANGELOG.md +++ /dev/null @@ -1,5 +0,0 @@ -# Changelog - -## 0.10.0 - -- Initial OpenCode marketplace port for `mneme` diff --git a/opencode-marketplace/plugins/mneme/README.md b/opencode-marketplace/plugins/mneme/README.md deleted file mode 100644 index 844592e..0000000 --- a/opencode-marketplace/plugins/mneme/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# mneme for OpenCode - -OpenCode port of the `mneme` plugin. - -## Runtime Surface - -- `plugins/mneme.js` -- `commands/mneme-*.md` -- `skills/mneme/SKILL.md` - -## Notes - -This port relies on OpenCode local plugin hooks instead of Codex `hooks.json`. - -## Quickstart After Install - -1. Restart OpenCode or start a fresh session so the new local plugin, commands, and skill load. -2. Run `mneme doctor --json`. -3. If the daemon is not reachable, start it with `mneme server start`. -4. Then use the installed `/mneme-*` commands or the `mneme` skill. - -The runtime plugin is fail-open: if `mneme` is missing or the hook command fails, normal OpenCode tool execution continues without Mneme interception. diff --git a/opencode-marketplace/plugins/mneme/commands/mneme-doctor.md b/opencode-marketplace/plugins/mneme/commands/mneme-doctor.md deleted file mode 100644 index 2a4ff78..0000000 --- a/opencode-marketplace/plugins/mneme/commands/mneme-doctor.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -description: Check mneme system health — runtime availability, server status, database health, and configuration ---- - -# mneme doctor - -Run system health diagnostics. - -## Instructions - -Run the following command and display the output as a checklist: - -```bash -mneme doctor --json -``` - -Format each check as: -- ✓ Check name — detail (if passed) -- ✗ Check name — detail (if failed) - -Checks include: server connectivity, database status, runtime availability -(JavaScript, Python, Shell, etc.), index health, and configuration validity. diff --git a/opencode-marketplace/plugins/mneme/commands/mneme-plugin.md b/opencode-marketplace/plugins/mneme/commands/mneme-plugin.md deleted file mode 100644 index 1fbe038..0000000 --- a/opencode-marketplace/plugins/mneme/commands/mneme-plugin.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -description: Install and configure mneme for OpenCode ---- - -# mneme plugin - -Mneme supports OpenCode in this repository through a local runtime plugin plus command and skill docs. - -## OpenCode - -- Install from this repository's OpenCode marketplace tree: - - `opencode-marketplace/plugins/mneme/plugins/mneme.js` - - `opencode-marketplace/plugins/mneme/commands/mneme-plugin.md` - - `opencode-marketplace/plugins/mneme/commands/mneme-doctor.md` - - `opencode-marketplace/plugins/mneme/commands/mneme-remember.md` - - `opencode-marketplace/plugins/mneme/commands/mneme-setup.md` - - `opencode-marketplace/plugins/mneme/commands/mneme-stats.md` - - `opencode-marketplace/plugins/mneme/skills/mneme/SKILL.md` -- OpenCode packaging uses a local `.opencode/plugins/mneme.js` runtime plugin for transparent tool interception and session events. - -Recommended explicit hook transport: - -```bash -mneme hook pretooluse --platform opencode --server 127.0.0.1:7435 -mneme hook sessionstart --platform opencode --server 127.0.0.1:7435 -``` - -## Compatibility note - -OpenCode support in this repo targets feature parity: transparent context reduction, session memory recall, and conservative durable memory capture. It does not depend on one-to-one event parity with other platforms. - -## After installation - -Restart OpenCode or start a fresh session so the new local plugin, commands, and skill load. - -Then, from your project root, run: - -```bash -mneme doctor --json -``` - -If `doctor` reports the server is not reachable, start the daemon: - -```bash -mneme server start -``` - -Once the daemon is healthy, use the installed `/mneme-*` commands or the `mneme` skill. - -The local runtime plugin is fail-open: if `mneme` is missing or a hook command fails, OpenCode tool and session flow continue without Mneme interception. diff --git a/opencode-marketplace/plugins/mneme/commands/mneme-remember.md b/opencode-marketplace/plugins/mneme/commands/mneme-remember.md deleted file mode 100644 index 4ad356c..0000000 --- a/opencode-marketplace/plugins/mneme/commands/mneme-remember.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -description: Store a memory in mneme — use when you learn a preference, knowledge, or decision worth remembering -allowed-tools: Bash -user-invocable: true ---- - -# mneme remember - -Store a memory in mneme's searchable memory system. Use this whenever you learn something worth remembering — preferences, knowledge, decisions — from the conversation. - -## When to use - -- The user states a preference ("always use X", "never do Y", "use bun not npm") -- You learn project knowledge ("this project uses stoolap for storage", "CI runs on Blacksmith") -- A decision is made ("we chose Catppuccin Mocha for dark theme", "memory feedback is idempotent") -- The user explicitly asks you to remember something - -## Instructions - -Determine the appropriate type and content, then run: - -```bash -mneme memory add "" -t -``` - -Memories are **automatically scoped** to the current project based on your working directory. The mneme server resolves your CWD against registered paths to determine the scope. No `--project` or `--scope` flags are needed. - -To store a **global** memory (applies across all projects), add `--scope-global`: - -```bash -mneme memory add "" -t --scope-global -``` - -### Type mapping - -| Signal | Type | -|--------|------| -| "always", "never", "prefer", "use X not Y", "I like", "don't" | `preference` | -| Facts, how things work, architecture, tooling, conventions | `knowledge` | -| "we decided", "the approach is", trade-off resolutions | `decision` | - -### Scope behavior - -| Scenario | What happens | -|----------|-------------| -| Running from a project directory | Memory auto-scoped to the closest registered path | -| `--scope-global` flag used | Memory stored as global (no path association) | -| CWD has no registered ancestor path | Memory stored as global | - -### Content guidelines - -- Write the memory as a clear, self-contained statement -- Include enough context that it's useful without the conversation -- Don't include ephemeral details (timestamps, session IDs, file paths that may change) -- Keep it under 200 characters when possible - -## Example - -User says: "this project uses bun exclusively, use bun/bunx instead of npm/npx" - -```bash -mneme memory add "This project uses bun exclusively as its JavaScript runtime. Always use bun/bunx instead of npm/npx." -t preference -``` - -User says: "always use rg instead of grep" (applies everywhere): - -```bash -mneme memory add "Prefer using rg (ripgrep) instead of grep for faster searches" -t preference --scope-global -``` - -## Important - -This command stores in mneme's memory system — searchable, scoreable, and visible in the web UI. This complements agent-specific local memory features. Use runtime-local memory for session context and mneme for the shared knowledge base. - -For OpenCode-oriented transparent memory workflows, use a conservative capture policy: - -- store explicit preferences -- store explicit decisions -- store durable project facts and conventions -- avoid storing ephemeral task chatter or temporary debugging notes diff --git a/opencode-marketplace/plugins/mneme/commands/mneme-setup.md b/opencode-marketplace/plugins/mneme/commands/mneme-setup.md deleted file mode 100644 index 7253e73..0000000 --- a/opencode-marketplace/plugins/mneme/commands/mneme-setup.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -description: First-run setup and validation — checks binary, server, and guides installation ---- - -# mneme setup - -Validate mneme installation and guide setup if needed. - -## Instructions - -### Step 1: Check binary - -```bash -which mneme && mneme --version -``` - -If `mneme` is not found, guide the user: - -```text -mneme is not installed. Build from source: - git clone https://github.com/sentiolabs/mneme - cd mneme - cargo build --release - cp target/release/mneme ~/.cargo/bin/ -``` - -### Step 2: Check server - -```bash -mneme doctor --json -``` - -If the server is not running, guide the user: - -```text -The mneme server is not running. Start it with: - mneme server start -``` - -### Step 3: Verify - -```bash -mneme stats --json -``` - -If all checks pass, confirm: "mneme is installed and running correctly." - -## OpenCode note - -If the local OpenCode plugin is installed, transparent mneme routing depends on both: - -- a reachable daemon -- the hook commands using explicit transport, for example: - -```bash -mneme hook pretooluse --platform opencode --server 127.0.0.1:7435 -``` diff --git a/opencode-marketplace/plugins/mneme/commands/mneme-stats.md b/opencode-marketplace/plugins/mneme/commands/mneme-stats.md deleted file mode 100644 index 60cd486..0000000 --- a/opencode-marketplace/plugins/mneme/commands/mneme-stats.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -description: Show context savings statistics — token consumption, savings ratio, and per-tool breakdown ---- - -# mneme stats - -Show context window savings for this session. - -## Instructions - -Run the following command and display the output: - -```bash -mneme stats --json -``` - -Format the JSON output as a readable summary: -- Total bytes intercepted vs returned -- Context savings ratio (percentage) -- Per-tool breakdown (which tools saved the most) -- Session duration and event count diff --git a/opencode-marketplace/plugins/mneme/plugins/mneme.js b/opencode-marketplace/plugins/mneme/plugins/mneme.js deleted file mode 100644 index 6856940..0000000 --- a/opencode-marketplace/plugins/mneme/plugins/mneme.js +++ /dev/null @@ -1,36 +0,0 @@ -export const MnemePlugin = async ({ $ }) => { - const routedTools = new Set(["bash", "webfetch", "read", "grep"]) - const runHook = async (event) => { - try { - await $`mneme hook ${event} --platform opencode --server 127.0.0.1:7435` - } catch { - // Fail open so missing mneme runtime does not block normal OpenCode flow. - } - } - - return { - "tool.execute.before": async (input) => { - if (routedTools.has(input.tool)) { - await runHook("pretooluse") - } - }, - "tool.execute.after": async (input) => { - if (routedTools.has(input.tool)) { - await runHook("posttooluse") - } - }, - event: async ({ event }) => { - if (event.type === "session.created") { - await runHook("sessionstart") - } - if (event.type === "session.compacted") { - await runHook("precompact") - } - if (event.type === "session.idle") { - await runHook("stop") - } - }, - } -} - -export default MnemePlugin diff --git a/opencode-marketplace/plugins/mneme/skills/mneme/SKILL.md b/opencode-marketplace/plugins/mneme/skills/mneme/SKILL.md deleted file mode 100644 index 1bb2ddc..0000000 --- a/opencode-marketplace/plugins/mneme/skills/mneme/SKILL.md +++ /dev/null @@ -1,170 +0,0 @@ ---- -name: mneme -description: > - Use mneme CLI (execute, exec-file, batch, fetch, search, index) instead of Bash/Read/Grep when - processing large outputs. This skill protects your context window by running commands in a sandbox - and only returning search results. Make sure to use this skill whenever the user asks to analyze - build output, summarize logs, process data, parse JSON, filter results, extract errors, check - build output, analyze dependencies, process API responses, do large file analysis, run tests and - check output, review git log or recent commits, diff between branches, find TODOs, count lines, - check codebase statistics, fetch documentation, call APIs, or any operation that may produce more - than 20 lines of output. The local OpenCode plugin can route eligible tool usage transparently. ---- - -# mneme -- context window protection - -## OpenCode Transparency - -When the local OpenCode plugin is installed, mneme can observe `bash`, `webfetch`, `read`, and `grep` through `tool.execute.before` / `tool.execute.after`, and it can react to `session.created`, `session.compacted`, and `session.idle` through the local `.opencode/plugins/mneme.js` runtime plugin. - -For OpenCode packaging, hook commands should target a reachable daemon explicitly: - -```bash -mneme hook --platform opencode --server 127.0.0.1:7435 -``` - -This enables transparent context reduction for large-output operations and session memory recall -without requiring users to say "use mneme" on every turn. - -## Prerequisites - -The `mneme` binary must be available. Check with `which mneme`. If not found: - -```bash -# If in the mneme repo with a compiled binary: -./target/release/mneme --version - -# Otherwise build from source: -git clone https://github.com/sentiolabs/mneme -cd mneme -cargo build --release -cp target/release/mneme ~/.cargo/bin/ -``` - -The mneme server must be reachable for transparent OpenCode hook workflows and for runtime-backed CLI operations (including fetch/search/index, execute/exec-file/batch, and memory commands): - -```bash -mneme server start -``` - -If `mneme` is genuinely unavailable, fall back to the Grep tool with targeted file-type filters and small result sets, or use other available sandbox tools that keep output out of context. - -## Tool Routing - -For the routing commands in this guide, prefer long flags (`--lang`, `--code`, `--path`, `--url`) for consistency. Some subcommands expose short aliases (for example `mneme memory add -t ...`). - -| Instead of... | Use... | -|---|---| -| `Bash` with large output | `mneme execute --lang shell --code '...'` | -| `Bash` with curl/wget | `mneme fetch --url ` then `mneme search '...'` | -| `Read` for analysis (not editing) | `mneme exec-file --path --lang python --code '...'` | -| `Grep` with many results | `mneme execute --lang shell --code 'grep ...'` | -| Multiple commands + analysis | `mneme batch --commands-json '[...]' --queries-json '[...]'` | -| "What should I do before X?" / recalling preferences | `mneme memory search "query"` | - -**When to use Read instead of exec-file**: If you are reading a file in order to edit it, use Read because you need the content in context for the edit. Use exec-file only when you are reading to analyze or summarize. - -## Blocked Commands - -These are intercepted by the pre-tool hook and will be rejected: - -- `curl` / `wget` in Bash -- Use `mneme fetch --url ` instead -- `fetch('http...` / `requests.get(` / `requests.post(` in Bash -- Use `mneme execute` instead - -**Note:** WebFetch is allowed. Content fetched via WebFetch is automatically indexed by mneme and available for future `mneme search` lookups. If the same URL was fetched before, cached content is injected as context automatically (no re-fetch needed). You can also use `mneme fetch --url ` which returns clean markdown content directly and indexes it for search. - -## Usage Examples - -### Run tests and analyze output - -```bash -mneme batch --commands-json '[{"language":"shell","code":"cargo test 2>&1"}]' \ - --queries-json '["test failures","FAILED","compilation error","warning"]' -``` - -### Execute code in sandbox - -```bash -mneme execute --lang python --code 'import json; data = json.load(open("/path/to/large.json")); print(len(data["items"]))' -mneme execute --lang shell --code 'find . -name "*.rs" | wc -l' -``` - -### Analyze a file without flooding context - -```bash -mneme exec-file --path src/main.rs --lang python --code 'lines = content.splitlines(); print(f"Lines: {len(lines)}"); print("Imports:", [l for l in lines[:20] if l.startswith("use ")])' -``` - -### Fetch and index web content - -```bash -mneme fetch --url https://docs.example.com/api -``` - -Content is returned as clean markdown (HTML converted via readability + html-to-markdown). Use `mneme search` for follow-up queries on the indexed content: - -```bash -mneme search "authentication endpoints" -``` - -Note: `mneme fetch` does not support custom HTTP headers. For APIs requiring authentication or User-Agent headers (like GitHub's API), use `mneme execute` with a script: - -```bash -mneme execute --lang python --code ' -import urllib.request, json -req = urllib.request.Request("https://api.github.com/repos/owner/repo/releases/latest", - headers={"User-Agent": "mneme"}) -data = json.loads(urllib.request.urlopen(req).read()) -print(json.dumps({"tag": data["tag_name"], "date": data["published_at"]}, indent=2)) -' -``` - -### Multi-step batch operation - -```bash -mneme batch --commands-json '[{"language":"shell","code":"cargo test 2>&1"},{"language":"shell","code":"cargo clippy 2>&1"}]' \ - --queries-json '["test failures","clippy warnings"]' -``` - -### Index content for later search - -```bash -mneme index --source "error-log" --path /tmp/error.log -mneme search "connection timeout errors" -``` - -### Query knowledge base - -```bash -mneme search "how does authentication work" -mneme search "database schema" --source "architecture-docs" -``` - -### Search agent memories - -Use `mneme memory search` to find stored preferences, knowledge, and decisions: - -```bash -mneme memory search "before pushing code" -mneme memory search "testing strategy" --limit 5 -``` - -Use `mneme memory recall` for a context-free top-K recall (no query argument — returns highest-confidence memories): - -```bash -mneme memory recall --top-k 5 -``` - -**Important:** `memory search` takes a `` positional argument. `memory recall` takes no positional argument; it only accepts options (`--top-k`, `--format`). Do not pass a query string to `recall`. - -Memories are automatically scoped by your working directory — the server resolves CWD against registered paths for hierarchical recall (closest path ancestor scores highest). - -## Output Constraints - -- Keep responses under 500 words -- Write artifacts (code, configs) to files; never return them as inline text -- Return only: file path + 1-line description - -## Subagent Usage - -Subagents automatically receive mneme tool routing via the local OpenCode plugin hooks. You do not need to manually add tool names to subagent prompts because the hook injects them. diff --git a/opencode-marketplace/plugins/mneme/version.txt b/opencode-marketplace/plugins/mneme/version.txt deleted file mode 100644 index 78bc1ab..0000000 --- a/opencode-marketplace/plugins/mneme/version.txt +++ /dev/null @@ -1 +0,0 @@ -0.10.0 diff --git a/release-please-config.json b/release-please-config.json index 64c9ea7..4486ad6 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -21,27 +21,6 @@ {"type": "test", "section": "Tests", "hidden": true} ] }, - "claude-marketplace/plugins/mneme": { - "release-type": "simple", - "component": "claude-mneme", - "bump-minor-pre-major": true, - "extra-files": [ - { - "type": "json", - "path": ".claude-plugin/plugin.json", - "jsonpath": "$.version" - } - ], - "changelog-sections": [ - {"type": "feat", "section": "Features"}, - {"type": "fix", "section": "Bug Fixes"}, - {"type": "perf", "section": "Performance"}, - {"type": "refactor", "section": "Refactoring"}, - {"type": "docs", "section": "Documentation", "hidden": true}, - {"type": "chore", "section": "Miscellaneous", "hidden": true}, - {"type": "test", "section": "Tests", "hidden": true} - ] - }, "claude-marketplace/plugins/code-quality": { "release-type": "simple", "component": "claude-code-quality", @@ -106,28 +85,6 @@ {"type": "test", "section": "Tests", "hidden": true} ] }, - "codex-marketplace/plugins/mneme": { - "release-type": "simple", - "component": "codex-mneme", - "bump-minor-pre-major": true, - "version-file": "version.txt", - "extra-files": [ - { - "type": "json", - "path": ".codex-plugin/plugin.json", - "jsonpath": "$.version" - } - ], - "changelog-sections": [ - {"type": "feat", "section": "Features"}, - {"type": "fix", "section": "Bug Fixes"}, - {"type": "perf", "section": "Performance"}, - {"type": "refactor", "section": "Refactoring"}, - {"type": "docs", "section": "Documentation", "hidden": true}, - {"type": "chore", "section": "Miscellaneous", "hidden": true}, - {"type": "test", "section": "Tests", "hidden": true} - ] - }, "codex-marketplace/plugins/code-quality": { "release-type": "simple", "component": "codex-code-quality",