File-first MCP memory fabric for AI coding assistants
Project description
Memory Fabric
File-first, local-first memory layer for MCP-compatible AI coding assistants.
Memory Fabric gives AI tools like Claude Code, Cursor, and GitHub Copilot a consistent, project-aware context layer without locking you into one model, editor, cloud provider, or operating system.
Memory is stored as human-readable Markdown with YAML frontmatter. No vector database. No cloud account. No embeddings required.
Features
- MCP-native: exposes memory tools through the standard Model Context Protocol
- File-first: Markdown files are the source of truth, inspectable and commit-ready
- Local-first: core reads and writes work offline
- Store-first: facts live in
memory-store/, one per file; root maps (architecture.md,decisions.md, ...) are generated views rebuilt by Dreaming, never hand-written - Captures itself: every git commit is recorded as episodic memory automatically — no agent cooperation required — via an opt-in post-commit hook
- Git-native merge: an optional custom merge driver lets two branches' memory merge as cleanly as their code, instead of conflicting on a shared timestamp line
- Self-verifying: memories can cite the file/line/commit they depend on;
ai-memory verifyflags citations that rotted - Learns from failure:
write_failure_memory_tooldeduplicates repeat occurrences of the same error into one growing record instead of scattering near-duplicates - Secret-safe: API keys and credentials are redacted before writing
- Token-budget aware: assembles context within limits; never slices files mid-document
- Quality eval: scores memory usefulness and Dreaming before/after results locally
- Unicode-safe: works with any human language
- Graceful degradation: works without
rg, git hooks, or Dreaming configured
Status
v0.7.3 — live on PyPI.
Core CLI and MCP tools work end-to-end. See ROADMAP.md for what shipped,
what's in progress, and what's next.
Installation
From PyPI (recommended)
Requires Python ≥ 3.11.
pipx install memory-fabric # CLI only
pipx install "memory-fabric[mcp]" # CLI + MCP server
Or with plain pip (inside a virtual environment):
pip install memory-fabric # CLI only
pip install "memory-fabric[mcp]" # CLI + MCP server
Zero-install one-off run (requires uv):
uvx --from "memory-fabric[mcp]" memory-fabric-mcp # starts the MCP server on stdio
From GitHub (latest, pre-release)
# CLI only
pipx install "git+https://github.com/elViRafa/agentic-memory.git"
# CLI + MCP server
pipx install "memory-fabric[mcp] @ git+https://github.com/elViRafa/agentic-memory.git"
Or with plain pip (inside a virtual environment):
pip install "git+https://github.com/elViRafa/agentic-memory.git" # CLI only
pip install "memory-fabric[mcp] @ git+https://github.com/elViRafa/agentic-memory.git" # + MCP
Upgrading
Because Memory Fabric is in active development, we recommend upgrading regularly:
-
Upgrade the Package:
# If installed via pipx: pipx upgrade memory-fabric # If installed in a virtual environment via pip: pip install --upgrade "memory-fabric[mcp]" # If installed from GitHub (pre-release): pipx install --force "memory-fabric[mcp] @ git+https://github.com/elViRafa/agentic-memory.git"
-
Refresh the MCP client config (uvx installs): If your client config launches the server via
uvx(the default written by olderai-memory installruns), uv serves the build it cached the first time and never re-resolves an unpinned spec — restarting the client is not enough and can leave the server several releases behind without any signal. After upgrading, either:# Re-write the client config (now pins the exact installed version, or points # at the local memory-fabric-mcp binary when one sits next to the CLI): ai-memory install --client <your-client> --project # ...or drop the stale cached build so uvx re-resolves: uv cache clean memory-fabric
ai-memory doctorwarns when the local version drifts from the latest on PyPI or when a differentai-memoryinstallation shadows this one on PATH. -
Restart MCP Clients: After upgrading, restart your IDE (Cursor, VS Code) or assistant process (Claude Code) to ensure the client reloads the updated
memory-fabric-mcpserver. -
Refresh Local Projects (Optional): If you have projects initialized with older versions of Memory Fabric, navigate to the project directory and run:
ai-memory init --install-hooks
This will safely refresh starter templates and local git hook integration to the latest format without overwriting your existing memory markdown files.
Windows terminals: the CLI emits UTF-8 (memory content legitimately contains em-dashes and bullets). Windows Terminal and PowerShell 7 render it out of the box; on legacy consoles (PowerShell 5.1 with an OEM code page) set
chcp 65001orPYTHONUTF8=1if you see replacement characters.
Or clone and install in editable mode for local development:
git clone https://github.com/elViRafa/agentic-memory.git
cd agentic-memory
pip install -e . # CLI only
pip install -e ".[mcp]" # CLI + MCP server
Quick Start
1. Initialize a project
ai-memory init
Creates .ai-memory/ in the current directory with starter sections and a .gitignore.
2. Check health
ai-memory doctor
3. Evaluate memory quality
ai-memory eval
ai-memory eval --json
eval scores whether memories are useful for coding assistants. It checks section coverage, starter-template content, summary quality, metadata, retrieval readiness, and likely secrets.
If .ai-memory/ exists, reports are saved under ignored local files:
.ai-memory/evals/latest.json
.ai-memory/evals/latest.md
.ai-memory/evals/<timestamp>-memory.json
.ai-memory/evals/<timestamp>-memory.md
If .ai-memory/ does not exist yet, eval prints a pre-init report only and creates no files.
4. Query memory
ai-memory query "authentication"
5. Run maintenance (Dreaming)
ai-memory dream --mode light
ai-memory dream --mode deep
Dreaming creates a snapshot before maintenance. You can evaluate whether a Dreaming run improved memory quality:
ai-memory eval --dream latest
ai-memory dream --mode light --eval
Dream eval compares the pre-dream snapshot to current memory and reports score delta, changed files, improvements, and regressions.
MCP Server — Install
One command per client. Safe to re-run: merges with your existing config, never overwrites it, and backs up the original file if it can't be parsed.
One-click install
These call uvx --from "memory-fabric[mcp]" memory-fabric-mcp under the hood — same
canonical invocation as ai-memory install, just without the CLI step. Requires
uv.
| Client | Command |
|---|---|
| Claude Code | ai-memory install --client claude-code |
| Claude Desktop | ai-memory install --client claude-desktop |
| VS Code | ai-memory install --client vscode |
| Cursor | ai-memory install --client cursor |
| Windsurf | ai-memory install --client windsurf |
| Codex | ai-memory install --client codex |
| Antigravity | ai-memory install --client antigravity |
| Gemini CLI | ai-memory install --client gemini-cli |
| Cline | ai-memory install --client cline |
| All detected clients | ai-memory install --client all |
Add --project to write project-scoped config instead of the global/user config
(where the client supports it). Add --dry-run to preview the change as a unified
diff without writing anything. Add --uninstall to remove only the memory-fabric
entry, leaving everything else in the file untouched.
Available MCP Tools
| Tool | Description |
|---|---|
initialize_memory_fabric_tool |
Create .ai-memory/ scaffolding in a project |
read_combined_context_tool |
Load Tier 0 directives + prioritized memory within token budget |
read_section_tool |
Read a single memory section by name |
keyword_search_tool |
Search memory with ripgrep or Python fallback |
write_local_memory_tool |
Update steering sections (framework-rules, ubiquitous-language). Deprecated for facts — root maps are generated from memory-store/; use write_memory_store_tool |
propose_memory_patch_tool |
Preview proposed memory changes without applying |
dream_tool |
Run memory maintenance / consolidation (--mode light |
prepare_dream_payload_tool |
Prepare candidate snapshot and return consolidation prompt for client-driven dreaming |
apply_dream_results_tool |
Apply LLM consolidated JSON output to candidate snapshot and save changes |
evaluate_memory_fabric_tool |
Evaluate local memory quality |
evaluate_dream_quality_tool |
Evaluate a Dreaming run against a snapshot |
write_memory_store_tool |
Write a memory file to a semantic store path (e.g. architecture/decisions/auth); accepts an optional evidence citation list |
read_memory_store_tool |
Read a single memory-store file by its semantic path |
list_memory_store_tool |
List files in the memory store, optionally filtered by prefix/tags |
delete_memory_store_tool |
Remove a memory-store file by its semantic path |
write_session_journal_tool |
Append a timestamped session journal entry (episodic memory) |
write_failure_memory_tool |
Record an error → fix pair; repeat occurrences of the same error accumulate onto one entry |
Agentic Architecture (making agents use Memory Fabric automatically)
Registering the MCP server is necessary but not sufficient — AI agents will not use its tools unless explicitly instructed to do so.
Memory Fabric provides an automated Agentic Architecture to handle this for you.
When you run ai-memory init in your project, the CLI automatically deploys a complete suite of agent instruction files tailored for every major AI tool:
| Target | File(s) Created |
|---|---|
| Gemini CLI / Codex / Antigravity | AGENTS.md |
| Grok (TUI / Build / Agent harness) | AGENTS.md (primary project rules); full docs + MCP registration in ~/.grok/config.toml or .mcp.json; see also .grok/docs/user-guide/13-memory-fabric.md when installed for the client |
| Cursor IDE | .cursor/rules/memory-fabric.mdc |
| Windsurf IDE | .windsurf/rules/memory-fabric.md |
| Cline / Generic IDE Agents | .agents/rules/memory-store.md, .agents/rules/dreaming.md |
| Claude Code | CLAUDE.md (created or appended) |
| GitHub Copilot | .github/copilot-instructions.md (created or appended) |
Single Source of Truth (Syncing)
All these files are generated from two canonical content blocks inside the Memory Fabric Python package. Running ai-memory sync-agents regenerates every platform file from these templates, guaranteeing perfect consistency. If you used ai-memory init --install-hooks, a pre-commit git hook runs this sync automatically on every commit.
For full details on the architecture, see AGENTIC_ARCHITECTURE.md.
Why this matters
Without these instruction files, agents will often explain they "don't use MCP tools automatically," or worse, they will write memory markdown files directly using native file-system tools—bypassing secret scanning, token budgeting, and background Dreaming management.
By simply running ai-memory init, you get zero-configuration, plug-and-play capability across the entire agent ecosystem.
Using Memory Fabric in Other Projects
You can use a single installed instance of Memory Fabric across all your coding projects:
-
Scaffold the target project: Navigate to your target project's root folder and initialize it:
cd /path/to/other-project ai-memory init --install-hooks
This automatically creates
.ai-memory/, deploys the Agentic Architecture rule files, sets up.gitignore, and installs the git post-commit hooks. -
Global MCP Configuration: Verify your AI assistant's configuration points to your globally installed
memory-fabric-mcpexecutable. The MCP tools automatically parse and use the active project's path passed by the assistant as thecwdargument, enabling a single global MCP server registration to support all your local workspaces.
Project Memory Layout
Memory Fabric is store-first: memory-store/ is the only place agents write facts by
hand, one fact per file. The root map files (architecture.md, decisions.md, debt.md,
schemas.md, index.md) are generated views rebuilt by Dreaming from their matching
memory-store/<category>/ subtree — never edit them directly, they carry generated: true
frontmatter and a hand edit gets folded back into the store for review on the next Dream.
Two sections are the exception: framework-rules.md and ubiquitous-language.md are
hand-curated steering directives (role: steering), always loaded into context in
full, never generated and never evicted by the token budget.
.ai-memory/
|-- index.md # generated discovery index
|-- architecture.md # generated map of memory-store/architecture/
|-- schemas.md # generated map of memory-store/schemas/
|-- decisions.md # generated map of memory-store/decisions/
|-- debt.md # generated map of memory-store/debt/
|-- ubiquitous-language.md # hand-curated steering directive (always loaded)
|-- framework-rules.md # hand-curated steering directive (always loaded)
|-- memory-store/ # the source of truth — one fact per file
| |-- index.md # generated store-wide index
| |-- architecture/...
| |-- decisions/...
| |-- debt/...
| |-- schemas/...
| |-- failures/<slug>.md # error -> fix pairs, deduplicated by normalized signature
| |-- episodic/<date>.md # agent-written session journals
| `-- episodic/commits/<date>.md # passively captured commits (source: passive-capture)
|-- evals/ # ignored local quality reports
|-- snapshots/ # ignored rollback baselines
|-- private/ # ignored personal notes + session markers
`-- .gitignore
All memory files use YAML frontmatter:
---
store_path: architecture/decisions/auth-service
summary: "One-line fallback used when the file exceeds the token budget."
priority: high
tags: [api, auth]
schema_version: "1.3"
last_updated: 2026-06-01T12:00:00-04:00
evidence: [src/auth.py:42, "commit:abc1234"]
---
Your memory content here.
The optional evidence field lets a memory cite what it depends on — a file, a
file:line, or a commit:<hash>. Run ai-memory verify to check those citations still
resolve; a memory citing a file that was renamed or deleted gets flagged instead of
quietly rotting.
Capture Reliability
Agent instruction files get an agent to read memory reliably at session start, but writes are less consistent — a long session can compress away the instructions, and some clients never load a rules file at all. Two mechanisms close that gap without depending on any agent's cooperation:
Passive capture. With ai-memory init --install-hooks, every commit is recorded as
episodic memory automatically:
ai-memory capture # capture HEAD (this is what the post-commit hook runs)
ai-memory capture --commit abc1234
Each capture writes to memory-store/episodic/commits/<date>.md with
source: passive-capture and review_status: pending frontmatter — reviewable, and
distinct from agent-written journal entries. It's idempotent per commit hash, needs no
LLM, and is the raw material the next ai-memory dream consolidates or extracts facts
from.
Session-end enforcement. ai-memory session-start marks when a session began;
ai-memory guard-journal exits non-zero if write_session_journal_tool hasn't been
called since — the primitive a client's Stop hook can use to actually enforce "journal
before you finish," instead of just asking nicely in a rules file. ai-memory status
reports local capture stats (last journal, commit captures, memories written in the last
7 days) so you can see whether capture is actually happening.
Failure memory. The highest-signal category for a coding agent — "I hit this exact error before, here's what fixed it":
ai-memory failure --error "KeyError: 'user_id' in handlers.py:12" --fix "Added a default value."
The error text is normalized (paths and line numbers stripped) into a stable signature,
so a repeat of the same kind of error accumulates onto one growing
memory-store/failures/<slug>.md entry — with an occurrences counter — instead of
scattering into near-duplicate files.
Git-Native Trust
Two capabilities that only exist because memory lives in the same git repo as the code it describes — no vector-database or cloud memory product can offer either.
Semantic merge driver. Two branches that each append new facts to the same store file
used to conflict on the shared last_updated line even when the actual content additions
never overlapped. ai-memory init --merge-driver registers a custom driver that merges
pure-append changes cleanly (reconciling frontmatter: tags union, the more urgent
priority wins, the later timestamp wins) and falls back to git's own textual merge for
anything it can't safely resolve — never worse than not having it installed.
ai-memory init --merge-driver
This writes .ai-memory/**/*.md merge=memory-fabric to .gitattributes (committed and
shared) and registers the driver command in local git config (per-clone by git's own
design — re-run this after every fresh clone, or have teammates run it once).
Self-verifying citations. See the evidence field above — ai-memory verify is the
command that checks citations still resolve and flags the ones that don't.
Global Memory
Developer-level preferences that apply across all projects are stored at:
| Platform | Path |
|---|---|
| Windows | %APPDATA%\memory-fabric\global\ |
| macOS | ~/Library/Application Support/memory-fabric/global/ |
| Linux | $XDG_CONFIG_HOME/memory-fabric/global/ |
global/directives.md is Tier 0: it is always loaded fully, bypassing token budgeting.
CLI Reference
ai-memory [--cwd <path>] [--json] [--debug-llm] <command>
Commands:
init Create .ai-memory/ scaffolding (--install-hooks, --merge-driver)
status Show memory status and capture stats
doctor Validate memory files and environment
verify Check evidence citations still resolve (--no-mark for a read-only report)
failure Record an error -> fix pair (--error, --fix, --tags)
merge-driver Git merge driver backend (invoked by git itself, not for direct use)
capture Record a commit as episodic memory (--commit, default HEAD)
session-start Mark session start (for client SessionStart hooks)
guard-journal Exit non-zero if no session journal was written (for client Stop hooks)
install Configure an MCP client to use memory-fabric (--client <name|all>)
eval Score memory quality or Dreaming quality
dream Run memory maintenance (--mode light|deep)
query Search memory
store CRUD operations on semantic memory store
sync-agents Regenerate agent instruction files from canonical templates
sync-global Preview local-to-global promotions
rollback Restore from a snapshot (--to <name>, or --list to discover valid names)
clean Prune old snapshots/candidates (--keep-snapshots, --keep-candidates, --dry-run)
Eval examples:
ai-memory eval
ai-memory eval --json
ai-memory eval --llm-review
ai-memory eval --dream latest
ai-memory eval --dream memory-20260601T140000_0400
Optional LLM review is never enabled by default. When requested, deterministic local scores remain the source of truth; LLM notes are secondary and inputs are sanitized before review.
LLM Configuration & MCP Sampling
Memory Fabric uses Large Language Models (LLMs) to perform semantic memory consolidation (Dreaming) and qualitative evaluation. You can configure this in two ways: via direct environment variables or via zero-config MCP Sampling.
Resolution Precedence
When an operation requires an LLM, Memory Fabric resolves the provider in the following order:
- Direct LLM Provider: Uses direct API calls if
MEMORY_FABRIC_LLM_PROVIDERis set in the environment along with the corresponding API keys. - Native MCP Sampling: If no direct provider is set (or configured keys are missing) AND the command is executed within an active MCP session where the parent agent supports sampling, Memory Fabric delegates the LLM call to the agent itself.
- Graceful Local Fallback: If neither is available, it degrades gracefully to local, deterministic regex-based deduplication without semantic synthesis.
Using MCP Sampling in Dreaming
MCP Sampling allows Memory Fabric to run semantic Dreaming and evaluations without configuring any local API keys or provider environment variables. Instead, it uses the host client's (e.g. Claude Code) native LLM connection.
How It Works
- When your AI assistant calls the
dream_toolorevaluate_memory_fabric_toolvia MCP, the Memory Fabric server checks if the client session supports sampling capabilities. - If supported and no direct provider is configured, the server sends a
create_messagerequest back to the client. - The client assistant executes the LLM reasoning under the hood and returns the consolidated memory JSON or evaluation notes.
Key Benefits
- Zero-Config: No need to configure or expose
GEMINI_API_KEY,OPENAI_API_KEY, orANTHROPIC_API_KEYto the background MCP server process. - Unified Context: The consolidation uses the same model and settings configured in your main coding assistant.
[!IMPORTANT] CLI Limitation: MCP Sampling relies on an active client-server session. Since the standalone terminal CLI (
ai-memory) runs outside of an MCP client, runningai-memory dreamfrom the command line cannot use MCP Sampling. To use LLM-based consolidation via the CLI, you must configure a direct LLM provider.
Client-Driven / Split-Tool Dreaming (Avoiding Deadlocks & Timeouts)
In some sequential/blocking MCP client environments (like IDE extensions or agentic loops), executing a nested MCP Sampling request (create_message) while the client is waiting for a tool response can lead to a JSON-RPC deadlock or execution timeouts.
To completely avoid this re-entrancy issue, Memory Fabric provides a client-driven split-tool dreaming protocol:
- Prepare Payload: The agent/client first calls
prepare_dream_payload_tool. This returns aconsolidation_promptand acandidate_storeID, but performs no blocking LLM reasoning. - Execute Locally: The client uses its own local LLM connection/context to execute the returned
consolidation_promptand captures the raw JSON output. - Apply Results: The client sends the raw LLM JSON response back by calling
apply_dream_results_tool(candidate_store=..., llm_response=...). Memory Fabric parses the response, applies the consolidated changes to the candidate folder, and saves the new memory states.
Direct LLM Providers Configuration
To use the CLI with LLMs, or to bypass MCP Sampling with a specific provider, set the following environment variables:
| Provider | Environment Variables | Notes |
|---|---|---|
| Gemini | MEMORY_FABRIC_LLM_PROVIDER=geminiGEMINI_API_KEY=your_key |
Defaults to gemini-2.5-flash |
| OpenAI | MEMORY_FABRIC_LLM_PROVIDER=openaiOPENAI_API_KEY=your_keyOPENAI_MODEL=gpt-4o-mini (opt)OPENAI_API_BASE=... (opt) |
Can connect to custom local/remote OpenAI-compatible endpoints |
| Anthropic | MEMORY_FABRIC_LLM_PROVIDER=anthropicANTHROPIC_API_KEY=your_key |
Defaults to claude-3-5-haiku-20241022 |
| Ollama | MEMORY_FABRIC_LLM_PROVIDER=ollamaOLLAMA_HOST=... (opt)OLLAMA_MODEL=gemma2 (opt) |
Offline, local reasoning |
Model quality matters for deep Dreaming. Consolidation quality — especially contradiction detection — degrades with small local models, and the failure is silent (the model simply returns an empty
contradictionslist). In our testing an 8B-class model (qwen3-vl:8b) missed a deliberately planted TTL conflict; prefer a ~14B+ model (or a hosted provider) when you rely ondream --mode deepfor semantic conflict detection. As a safety net, Memory Fabric always runs a deterministic heuristic that flags store files with overlapping wording but divergent numbers, independent of the LLM's answer.
LLM Debugging
If you want to view the exact prompts sent and responses received by the LLM providers (Gemini, OpenAI, Anthropic, Ollama), you can enable LLM debug logging.
-
Via the CLI: Pass the
--debug-llmglobal flag before the subcommand:ai-memory --debug-llm dream --mode deep
This automatically prints logs to
sys.stderrand appends them to a file namedllm_debug.log(in.ai-memory/llm_debug.logif the directory exists, otherwise in the current working directory). -
Via Environment Variables: Set the
MEMORY_FABRIC_LLM_DEBUGvariable in your environment:stderr: Output prompts and raw JSON responses only tosys.stderr.1ortrue: Output tosys.stderrand write to the defaultllm_debug.logfile./path/to/log.txt(or any other custom value): Append logs to a custom file path.
To protect your credentials and API keys, headers like Authorization and x-api-key are automatically redacted as [REDACTED] in the debug logs.
Write Safety
Every write path runs secret detection before saving. Detected secrets are replaced with [REDACTED_SECRET] and returned in the redactions field of the response. File locking prevents concurrent write corruption.
Eval scans existing memories for likely secrets but does not rewrite existing files. It reports what needs manual review.
Requirements
- Python >= 3.11
mcp >= 1.0.0(optional, required for MCP server only)rg(optional; ripgrep speeds up keyword search, Python fallback used when absent)
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file memory_fabric-0.7.3.tar.gz.
File metadata
- Download URL: memory_fabric-0.7.3.tar.gz
- Upload date:
- Size: 171.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
145774cad07053b6857338a6410dfba11f69120082e6cb691461b6b9d1b6f6e2
|
|
| MD5 |
ab324da7d219b72dddc27b4a651b6244
|
|
| BLAKE2b-256 |
bf365366f7acb29556aef1949734049c957e086006b9388c8d0a052d65de3652
|
Provenance
The following attestation bundles were made for memory_fabric-0.7.3.tar.gz:
Publisher:
release.yml on elViRafa/agentic-memory
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
memory_fabric-0.7.3.tar.gz -
Subject digest:
145774cad07053b6857338a6410dfba11f69120082e6cb691461b6b9d1b6f6e2 - Sigstore transparency entry: 2164986081
- Sigstore integration time:
-
Permalink:
elViRafa/agentic-memory@a33f19b89316d6adb468a117a4d2d632751d0e7d -
Branch / Tag:
refs/tags/v0.7.3 - Owner: https://github.com/elViRafa
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a33f19b89316d6adb468a117a4d2d632751d0e7d -
Trigger Event:
push
-
Statement type:
File details
Details for the file memory_fabric-0.7.3-py3-none-any.whl.
File metadata
- Download URL: memory_fabric-0.7.3-py3-none-any.whl
- Upload date:
- Size: 133.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
709709f3a5e00152cbec5be674b6f1103e5501565b4b7d0c91391d4d3ef34c5e
|
|
| MD5 |
71b3a8a42b7064bdfdba823d130e92f0
|
|
| BLAKE2b-256 |
eb0567aff6d337f9f89c41a6711e88730b931f199035fab5aaf029cffe09ece1
|
Provenance
The following attestation bundles were made for memory_fabric-0.7.3-py3-none-any.whl:
Publisher:
release.yml on elViRafa/agentic-memory
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
memory_fabric-0.7.3-py3-none-any.whl -
Subject digest:
709709f3a5e00152cbec5be674b6f1103e5501565b4b7d0c91391d4d3ef34c5e - Sigstore transparency entry: 2164986085
- Sigstore integration time:
-
Permalink:
elViRafa/agentic-memory@a33f19b89316d6adb468a117a4d2d632751d0e7d -
Branch / Tag:
refs/tags/v0.7.3 - Owner: https://github.com/elViRafa
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a33f19b89316d6adb468a117a4d2d632751d0e7d -
Trigger Event:
push
-
Statement type: