Submit

Spf Smart Gate rust binary mcp server with built in local tools. preconfigured

@joseph stone

README.md--- license: apache-2.0 language: - en tags: - mcp-server - ai-gateway - security - rust - agent-framework - tool-enforcement - lmdb - rag - transformer - mesh-network - voice - android - termux - self-hosted - ai-safety - memory-system - flint - build-anchor - complexity-formula - agent-memory - p2p - quic - heed - self-learning - harness - ai-memory - persistent-memory - online-learning - agent-tools - tool-gateway - web-automation - browser-automation - social-media - p2p-communication - voice-synthesis - tts - embedded-database - zero-copy - code-search - filesystem - git - database pipeline_tag: text-generation --- ``` _____ _____ ______ _____ __ __ _____ _______ _____ _______ ______ / ____| __ \| ____| / ____| \/ | /\ | __ \__ __| / ____| /\|__ __| ____| | (___ | |__) | |__ | (___ | \ / | / \ | |__) | | | | | __ / \ | | | |__ \___ \| ___/| __| \___ \| |\/| | / /\ \ | _ / | | | | |_ | / /\ \ | | | __| ____) | | | | ____) | | | |/ ____ \| | \ \ | | | |__| |/ ____ \| | | |____ |_____/|_| |_| |_____/|_| |_/_/ \_\_| \_\ |_| \_____/_/ \_\_| |______| ``` # SPF Smart Gateway v3.0.0 **MCP Server Gateway with Multi-Layer Security Enforcement, Agent Memory, FLINT Transformer, Mesh Network, and 81 Gated Tools** > **NOTE: Full system upload still in progress.** Not all files are present yet. Repository is actively being populated — some modules may be missing until upload completes. Copyright (C) 2026 Joseph Stone — All Rights Reserved --- ## Quick Start ```bash # Clone into home folder git clone <repo-url> ~/SPFsmartGATE # Or for clones/SWARMagents: # ~/SWARMagents/1/SPFsmartGATE cd SPFsmartGATE cargo build --release # Copy optimized binary cp ~/SPFsmartGATE/target/release/spf-smart-gate ~/SPFsmartGATE/LIVE/BIN/spf-smart-gate # Configure MCP server filepath nano ~/SPFsmartGATE/LIVE/LMDB5/.mcp.json # Install Claude CLI in project directory # Use included configs, deny native Claude CLI tools # ~/SPFsmartGATE/LIVE/LMDB5/.claude.json # ~/SPFsmartGATE/LIVE/LMDB5/.claude/settings.json # Boot into flat-file agent runtime cd ~/SPFsmartGATE/LIVE/LMDB5 && claude # Boot into LMDB-backed agent runtime cd ~/SPFsmartGATE/LIVE/LMDB5.DB && claude ``` ### Route Other Models Through Claude CLI Adjust `~/SPFsmartGATE/LIVE/LMDB5/.claude/settings.local.json` with your model choice and API key. Uses OpenRouter for API and agent selection. Swap agents without changing sessions or losing project data. ### Build Notes - Cross-compiles on **Android** and **Linux** with minimal installation - Only rebuild on first boot or after system modifications - Binary: `~/SPFsmartGATE/LIVE/BIN/spf-smart-gate/spf-smart-gate` --- ## Overview SPF Smart Gateway is a **Rust-based MCP (Model Context Protocol) server** that acts as a security gateway for AI tool calls. Every file operation, bash command, brain query, and mesh call routes through compiled Rust enforcement logic. **No AI hallucination gets past the gate.** ### Web Agent Feature SPF agents can directly interact with the web and social media platforms through `spf_web_api` — a full HTTP client supporting GET, POST, PUT, DELETE, PATCH with custom headers and JSON body. Tested and working. **What agents can do:** - Post to X/Twitter, Facebook, Instagram, Reddit via their APIs - Reply to comments, send messages, manage accounts - Make authenticated API calls to any platform with stored API keys - Search, fetch, and download web content All web API calls pass through the 6-step gate pipeline with rate limiting (30-120 calls/min), content inspection, and full audit logging. Agents never touch the open web unmonitored. ### Why Heed + LMDB All persistent storage — config, agent state, brain vectors, session logs, gate training data — runs through **[heed](https://github.com/meilisearch/heed)**, a safe Rust wrapper over LMDB. This is what makes SPF extremely fast with a low memory footprint: - **Zero-copy reads** — heed maps LMDB pages directly into memory, no serialization overhead - **No server process** — LMDB is a memory-mapped B-tree library, not a database daemon - **ACID transactions** — single-writer, multi-reader with no lock contention on reads - **Sub-millisecond lookups** — B-tree index, not hash scanning - **Tiny footprint** — entire 138K+ memory store runs in-process with minimal RAM - **Phone-friendly** — designed for Android from day one; heed compiles cleanly on ARM64 Every tool call, brain search, and memory promotion goes through heed → LMDB. No network hops, no subprocess calls, no SQL parsing. The gate, brain, agent state, and FLINT training all share the same embedded database engine. Two agent runtimes: - **Flat files** — `LIVE/LMDB5/` (session state in markdown) - **LMDB database** — `LIVE/LMDB5.DB/` (session state in LMDB for persistence) Twin folder architecture: flat-file data uploaded via SPF CLI fs tools (user-only access). All agent tool calls are gated, validated, and audited. --- ## Architecture ``` ┌─────────────────────────────────────────────────────────────────┐ │ SPF Smart Gateway v3.0.0 │ │ 42 Rust modules │ ├─────────────────────────────────────────────────────────────────┤ │ MCP Server (JSON-RPC 2.0 over stdio) │ │ 81 tools │ tool alias map │ Qwen/LLM compatibility │ ├─────────────────────────────────────────────────────────────────┤ │ GATE (6-Step Pipeline) │ │ Step 0: Source logging │ │ Step 1: Rate limiting │ │ Step 2: Complexity calculation (SPF formula) │ │ Step 3: Validation (per-tool: paths, commands, Build Anchor) │ │ Step 4: Content inspection (credentials, injection) │ │ Step 5: Max mode escalation │ ├──────────┬──────────┬──────────┬──────────┬─────────────────────┤ │ FLINT │ Brain │ Mesh │ Voice │ Browser/RAG │ │ (encoder-│ (vectors │ (P2P QUIC│ (TTS/STT │ (reverse proxy │ │ decoder │ LMDB + │ Ed25519 │ espeak- │ search, fetch, │ │ ~5M │ MiniLM) │ iroh) │ ng FFI) │ RSS, web tools) │ │ params) │ │ │ │ │ ├──────────┴──────────┴──────────┴──────────┴─────────────────────┤ │ LMDB Storage Layer (heed) │ │ SPF_CONFIG │ TMP_DB │ AGENT_STATE │ Brain │ Gate Training │ │ All zero-copy reads via heed safe Rust bindings │ └─────────────────────────────────────────────────────────────────┘ ``` ### Module Inventory (42 modules) `paths`, `calculate`, `config`, `gate`, `inspect`, `mcp`, `session`, `storage`, `validate`, `web`, `http`, `dispatch`, `identity`, `mesh`, `fs`, `config_db`, `tmp_db`, `agent_state`, `tensor`, `tokenizer`, `framing`, `attention`, `ffn`, `encoder`, `decoder`, `transformer`, `checkpoint`, `gate_training`, `transformer_tools`, `train`, `learning`, `pipeline`, `worker`, `network`, `chat`, `voice`, `utf8_safe`, `brain_local`, `flint_memory`, `browser`, `orchestrator`, `channel` --- ## The SPF Formula ### Complexity Calculation ``` C = (basic ^ 1) + (dependencies ^ 7) + (complex ^ 10) + (files × 10) ``` ### Dynamic Analysis Allocation ``` a_optimal(C) = W_eff × (1 - 1/ln(C + e)) ``` Where `W_eff = 40,000` tokens and `e = Euler's number` ### Tier Allocation | Tier | C Range | Analyze | Build | Verify Passes | Approval | |------|---------|---------|-------|---------------|----------| | SIMPLE | < 500 | 40% | 60% | 1 | No | | LIGHT | < 2,000 | 60% | 40% | 1 | No | | MEDIUM | < 10,000 | 75% | 25% | 2 | No | | CRITICAL | > 10,000 | 95% | 5% | 3 | **Required** | ### Master Equation (Subtask Success) ``` P(success) = 1 - PRODUCT(1 - P_i) for i=1..D subtasks P_i = Q(a) × L(m) × V(v) × B(b) Q(a) = 1 - e^(-0.00004 × a) — Quality from analysis depth L(m) = 1 - 0.20^(m/2000) — Lookup from external memory V(v) = 1 - (1 - 0.75)^v — Verification accuracy B(b) = checks_done / checks_required — Build Anchor compliance ``` --- ## Security ### Gate Enforcement (6 Steps) Every tool call passes through `gate::process()` — compiled Rust, no runtime bypass. | Step | What | How | |------|------|-----| | 0 | Source logging | Identifies caller (Stdio, Transformer, Mesh, HTTP) | | 1 | Rate limiting | Per-tool limits (30–120 calls/min) | | 2 | Complexity calc | SPF formula → C value, tier, allocation | | 3 | Validation | Per-tool validator (paths, commands, anchors) | | 4 | Content inspection | Credential patterns, shell injection, path traversal | | 5 | Max mode | Escalation to CRITICAL tier on warnings | ### Build Anchor Protocol Files must be **read before they can be edited or overwritten**. Prevents AI hallucinations from blindly modifying files without understanding contents. - `Read` tracks files in `session.files_read` - `Edit` and `Write` check against this list - `Bash` write-class commands check target file reads - Violations: blocked (Max mode) or warned (Soft mode) ### Content Inspection Scans written/stored content for: - **Credential patterns**: API keys (sk-), AWS keys (AKIA), GitHub tokens (ghp_), Slack tokens, private keys, hardcoded passwords - **Shell injection**: Command substitution `$()`, backticks, eval/exec - **Path traversal**: `../` sequences - **Blocked path references**: Content mentioning system paths ### Blocked Paths Default blocked: `/tmp`, `/etc`, `/usr`, `/system`, `/data/data/com.termux/files/usr` ### Command Whitelist (Stage 0) Bash commands checked against sandbox and user-filesystem whitelists. Each command segment validated independently. Destructive commands (rm, chmod 777) blocked even if whitelisted. ### Default Deny Unknown tools blocked until explicitly added to the gate allowlist. --- ## MCP Tools (81 Total) ### Core Gate Tools | Tool | Description | |------|-------------| | `spf_calculate` | Calculate complexity score without executing. Returns C value, tier, allocation | | `spf_status` | Gateway status: session metrics, enforcement mode, complexity budget | | `spf_session` | Full session state: files read/written, action history, anchor ratio | ### Gated File Operations | Tool | Description | |------|-------------| | `Read` | Gated file read. Tracks for Build Anchor Protocol. Binary-safe | | `Write` | Gated file write. Validates Build Anchor, blocked paths, file size | | `Edit` | Gated file edit. Validates Build Anchor, blocked paths, change size | | `Bash` | Gated bash execution. Validates dangerous commands, /tmp access, git force | | `Glob` | Fast file pattern matching. Supports `**/*.rs`, `src/**/*.ts` | | `Grep` | Search file contents using regex. Built on ripgrep | ### Brain / Memory Tools | Tool | Description | |------|-------------| | `spf_brain_search` | Semantic vector search across collections (MiniLM-L6-v2, 384d) | | `spf_brain_recall` | Full document retrieval by semantic query | | `spf_brain_context` | Bounded context retrieval for prompt injection | | `spf_brain_store` | Store document in brain (FLINT-internal, source-gated) | | `spf_flint_store` | Agent memory store — bypasses brain write gate. Brain vectors + Working tier | | `spf_brain_index` | Index a file or directory into a brain collection | | `spf_brain_list` | List all indexed collections with document counts | | `spf_brain_status` | Brain system status: model state, storage size, collections | | `spf_brain_list_docs` | List stored documents in a collection | | `spf_brain_get_doc` | Retrieve a specific document by ID | ### Agent State Tools | Tool | Description | |------|-------------| | `spf_agent_stats` | AGENT_STATE LMDB statistics: memory count, sessions, state keys, tags | | `spf_agent_memory_search` | Search agent memories by content | | `spf_agent_memory_by_tag` | Get agent memories by tag | | `spf_agent_session_info` | Most recent session info | | `spf_agent_context` | Context summary for session continuity | ### FLINT Transformer Tools | Tool | Description | |------|-------------| | `spf_transformer_status` | FLINT transformer status: loaded, params, checkpoint, role | | `spf_transformer_infer` | Run inference: prompt → response. Returns generated tokens | | `spf_transformer_chat` | Multi-turn conversation with FLINT | | `spf_transformer_train` | Trigger manual training batch from accumulated gate signals | | `spf_transformer_metrics` | Learning metrics: loss, accuracy, gate alignment, training step | | `spf_flint_train_evil` | Mark a tool call as evil/harmful. Negative training signal | | `spf_flint_train_good` | Mark a tool call as good/safe. Positive training signal | | `spf_flint_execute` | Execute any SPF tool through FLINT worker mode (delegation) | ### Web Browser Tools **API tools (tested):** | Tool | Description | |------|-------------| | `spf_web_search` | Search the web (Brave API or DuckDuckGo) | | `spf_web_fetch` | Fetch URL and return clean readable text | | `spf_web_api` | Make HTTP API requests (GET/POST/PUT/DELETE/PATCH). Supports custom headers and JSON body — agents can directly interact with social media APIs (X/Twitter, Facebook, Instagram, Reddit, etc.) using stored API keys | | `spf_web_download` | Download a file from URL and save to disk | **Browser automation tools (in development — proxy starts, WebSocket bridge needs browser connection):** | Tool | Description | Status | |------|-------------|--------| | `spf_web_connect` | Initialize reverse proxy browser engine | Tested — works | | `spf_web_navigate` | Navigate browser to a URL (SSRF-validated) | Tested — works | | `spf_web_click` | Click a page element by CSS selector | In development — WebSocket timeout | | `spf_web_fill` | Type text into a form field by CSS selector | In development — WebSocket timeout | | `spf_web_select` | Query page elements by CSS selector | In development — WebSocket timeout | | `spf_web_eval` | Execute JavaScript on the current page | In development — WebSocket timeout | | `spf_web_screenshot` | Capture a screenshot of the current page | In development | | `spf_web_design` | Extract design brief: colours, fonts, spacing, components | In development | | `spf_web_page` | Structured page overview: title, headings, links, forms | In development | ### RAG Collector Tools | Tool | Description | |------|-------------| | `spf_rag_collect_web` | Search web and collect documents. Optional topic filter | | `spf_rag_collect_file` | Process a local file into brain | | `spf_rag_collect_folder` | Process all files in a folder | | `spf_rag_collect_drop` | Process files in DROP_HERE folder | | `spf_rag_index_gathered` | Index all documents in GATHERED to brain | | `spf_rag_dedupe` | Deduplicate a brain collection | | `spf_rag_status` | Collector status and stats | | `spf_rag_list_gathered` | List documents in GATHERED folder | | `spf_rag_bandwidth_status` | Bandwidth usage stats and limits | | `spf_rag_fetch_url` | Fetch a single URL with bandwidth limiting | | `spf_rag_collect_rss` | Collect from RSS/Atom feeds | | `spf_rag_list_feeds` | List configured RSS feeds | | `spf_rag_pending_searches` | Get pending SearchSeeker vectors (gaps needing fetch) | | `spf_rag_fulfill_search` | Mark a SearchSeeker as fulfilled after RAG fetch | | `spf_rag_smart_search` | Smart search with completeness check — triggers SearchSeeker if <80% | | `spf_rag_auto_fetch_gaps` | Automatically fetch data for all pending SearchSeekers | ### Mesh Network Tools | Tool | Description | |------|-------------| | `spf_mesh_status` | Mesh network status: role, team, identity | | `spf_mesh_peers` | List known/trusted mesh peers | | `spf_mesh_call` | Call a peer agent's tool via P2P mesh (Ed25519 authenticated) | ### Voice Tools | Tool | Description | |------|-------------| | `spf_voice_mode` | Voice pipeline control: start/stop audio, TTS (espeak-ng), mic capture | | `spf_voice_call` | Peer-to-peer voice calls: start, accept, reject, end, status | | `spf_voice_team` | Group voice channels: create, join, leave, add peers | ### Chat Tools | Tool | Description | |------|-------------| | `spf_chat_send` | Send text message to mesh peer via QUIC | | `spf_chat_history` | Chat message history (all conversations or specific) | | `spf_chat_rooms` | List active chat conversations with participant info | ### Network Pool Tools | Tool | Description | |------|-------------| | `spf_pool_status` | Pool status: worker roles, idle/busy counts, active tasks | | `spf_pool_assign` | Assign task to idle worker (NetAdmin only) | | `spf_pool_release` | Release worker and record proof of work receipt | ### Configuration Tools | Tool | Description | |------|-------------| | `spf_config_paths` | List all path rules (allowed/blocked) from SPF_CONFIG | | `spf_config_stats` | SPF_CONFIG LMDB statistics | ### Project Management Tools | Tool | Description | |------|-------------| | `spf_tmp_list` | List all registered projects with trust levels | | `spf_tmp_stats` | TMP_DB statistics: project count, access logs, resources | | `spf_tmp_get` | Get project info by path | | `spf_tmp_active` | Get the currently active project | ### Communication Hub | Tool | Description | |------|-------------| | `spf_channel` | Universal agent channel: create, join, leave, send, listen, history, list, connect (WS), disconnect, status | ### Notebook Tools | Tool | Description | |------|-------------| | `spf_notebook_edit` | Edit a Jupyter notebook cell (replace, insert, delete) | ### User-Only Tools (AI agents blocked) These tools are **hard-blocked** from AI agents at the gate level. User/system access only via SPF CLI: `spf_fs_exists`, `spf_fs_stat`, `spf_fs_ls`, `spf_fs_read`, `spf_fs_write`, `spf_fs_mkdir`, `spf_fs_rm`, `spf_fs_rename` --- ## FLINT Transformer Built-in encoder-decoder transformer for gate-aligned learning. | Property | Value | |----------|-------| | Architecture | Encoder-decoder | | Dimensions | 256d | | Heads | 8 | | Layers | 6 | | Parameters | ~5M | | Embeddings | all-MiniLM-L6-v2 (384d, in-process) | | Online learning | ON | | EWC lambda | 0.4 | | Learning rate | 1e-4 | | Replay buffer | 10,000 slots | | Checkpoint interval | 1,000 steps | | Training signal | Gate decisions (evil/FP labels) | ### Learning Pipeline | Phase | When | What | |-------|------|------| | PRE | Startup | init_brain() + index_knowledge_docs() + index_spf_sources() | | DURING | 30s loop | GateTrainingCollector → FLINT scores → route_signals → brain_store() | | AFTER | 1hr loop | Expire → Working→Fact → Fact→Pinned → auto-train (16+ tlog or 1hr) | ### Memory Lifecycle (Tiered Promotion) ``` Agent stores → Working (24hr) → Fact (7-day) → Pinned (permanent) ↓ ↓ ↓ Expire old Top 20% promote Never auto-expire ``` --- ## Brain System In-process vector memory using stoneshell-brain (Candle + LMDB + MiniLM-L6-v2). | Property | Value | |----------|-------| | Model | all-MiniLM-L6-v2 | | Embedding dim | 384 | | Chunk size | 512 | | Chunk overlap | 64 | | Storage | LMDB (vectors) + LIVE/BRAIN/DOCS/ (data files) | ### Collections | Collection | Purpose | |------------|---------| | `default` | General knowledge, web research, project docs | | `spf_source` | All src/*.rs modules indexed at boot | | `flint_results` | Tool call results (>2000 chars, before compression) | | `flint_training` | Gate decision signals, evil/FP labels | | `flint_knowledge` | User-dropped knowledge files (.md/.txt/.rs/.json) | | `flint_episodic` | Past FLINT Q+A pairs, behavioral patterns | | `session_state` | Current session metadata | ### Memory Triad (Redundant Persistence) Three systems — if any ONE fails, the other TWO recover: 1. **Brain** (vectors) — Semantic search, chunked knowledge 2. **STATUS** (sequential) — Current state, phase, next step 3. **Work Blocks** (structural) — Tasks, dependencies, confidence, progress 4. **Twin Folders** (evidence) — Data served for low-confidence work blocks --- ## Mesh Network P2P agent communication over QUIC (iroh library) with Ed25519 identity. **In development and testing.** | Feature | Status | |---------|--------| | P2P QUIC transport | In development | | Ed25519 identity | In development | | Peer discovery | In development | | Tool call proxying | In development | | Voice over mesh | In development | | Chat over mesh | In development | | Multi-agent coordination | In development | --- ## Voice Pipeline **Not yet tested.** Components built, awaiting integration testing. | Component | Technology | |-----------|-----------| | TTS | espeak-ng FFI (in-process) | | Codec | Opus (libopus.a) | | Audio | cpal + oboe-ext | | STT | Pending (JNI via Stone Shell Terminal) | --- ## Result Compression (FL-2) Three tiers based on result size: | Tier | Size | Behavior | |------|------|----------| | FULL | < 500 chars | Pass through unchanged | | SUMMARY | 500–5,000 | First 8 lines + last 3 lines + stats | | DIGEST | > 5,000 | First 200 chars + last 100 chars + stats + recall hint | Originals always preserved in brain (>2000 chars threshold) before compression. File reads never truncated (preserves non-Claude LLM compatibility). --- ## Build ```bash cd SPFsmartGATE cargo build --release # Deploy binary cp target/release/spf-smart-gate LIVE/BIN/spf-smart-gate/spf-smart-gate ``` ### Dependencies - Rust (stable) - **[heed](https://github.com/meilisearch/heed)** — safe Rust LMDB bindings. All persistent storage (config, agent state, brain vectors, training data) runs through heed → LMDB. Zero-copy reads, no server process, sub-millisecond lookups. The core reason SPF runs fast on a phone. - stoneshell-brain (Candle + MiniLM-L6-v2) - espeak-ng (TTS) - libopus (audio codec) - iroh (QUIC mesh) --- ## Configuration ### MCP Server Config `~/SPFsmartGATE/LIVE/LMDB5/.mcp.json` — points Claude CLI to the binary. ### Claude CLI Config `~/SPFsmartGATE/LIVE/LMDB5/.claude.json` — blocks native Claude CLI tools (26 tools denied). `~/SPFsmartGATE/LIVE/LMDB5/.claude/settings.json` — deny list for native tools. `~/SPFsmartGATE/LIVE/LMDB5/.claude/settings.local.json` — model routing (OpenRouter). ### SPF Config Enforcement mode (`soft` or `max`), blocked paths, allowed paths, formula weights — all in LMDB SPF_CONFIG database. --- ## File Structure ``` SPFsmartGATE/ ├── Cargo.toml # Rust project manifest (42 modules) ├── LICENSE # Apache-2.0 ├── README.md # This file ├── src/ │ ├── main.rs # CLI entry point │ ├── lib.rs # Library exports (42 pub mod) │ ├── gate.rs # Primary enforcement (6-step pipeline) │ ├── calculate.rs # SPF complexity formula │ ├── validate.rs # Rules validation (stages 0-6) │ ├── inspect.rs # Content inspection (creds, injection) │ ├── mcp.rs # MCP server (JSON-RPC 2.0, 81 tools) │ ├── dispatch.rs # Unified dispatch (all transports) │ ├── session.rs # Session state management │ ├── storage.rs # LMDB persistence │ ├── config.rs # Configuration types │ ├── brain_local.rs # In-process brain singleton │ ├── flint_memory.rs # Memory router + tiered promotion │ ├── agent_state.rs # Agent memory (LMDB5) │ ├── transformer.rs # FLINT model (encoder-decoder) │ ├── transformer_tools.rs # FLINT tool handlers │ ├── gate_training.rs # Training signal collection │ ├── train.rs # AdamW optimizer │ ├── tokenizer.rs # Tokenizer │ ├── tensor.rs # Tensor operations │ ├── attention.rs # Multi-head attention │ ├── ffn.rs # Feed-forward network │ ├── encoder.rs # Encoder stack │ ├── decoder.rs # Decoder stack │ ├── framing.rs # Message framing │ ├── checkpoint.rs # Model checkpoint save/load │ ├── learning.rs # Learning rate + EWC │ ├── pipeline.rs # Batch pipeline + API sessions │ ├── worker.rs # Worker pool │ ├── network.rs # Network pool + NetAdmin │ ├── mesh.rs # P2P QUIC mesh (iroh) │ ├── identity.rs # Ed25519 identity │ ├── chat.rs # Chat engine │ ├── voice.rs # Voice pipeline (TTS/STT) │ ├── web.rs # Web client │ ├── http.rs # HTTP server + reverse proxy │ ├── browser.rs # Browser automation │ ├── channel.rs # Universal channel hub │ ├── orchestrator.rs # Multi-agent orchestrator │ ├── config_db.rs # SPF_CONFIG LMDB │ ├── tmp_db.rs # TMP_DB LMDB │ ├── fs.rs # Virtual filesystem (LMDB) │ ├── paths.rs # Path utilities │ └── utf8_safe.rs # UTF-8 safe truncation ├── LIVE/ │ ├── BIN/spf-smart-gate/ # Deployed binary │ ├── BRAIN/DOCS/ # Brain data files │ ├── MODELS/ # FLINT checkpoints │ ├── SESSION/ # Session logs │ ├── LMDB5/ # Flat-file agent runtime │ └── LMDB5.DB/ # LMDB-backed agent runtime └── PROJECTS/PROJECTS/ └── DEPLOY/ # Agent workspace ``` --- ## Current Status | Component | Status | |-----------|--------| | MCP Server | 81 gated tools | | Gate Security | 6-step pipeline, compiled Rust enforcement | | Build Anchor | Read-before-write enforced | | Content Inspection | Credential + injection scanning | | FLINT Transformer | ~5M params, online learning, gate-aligned | | Brain | 7 collections, MiniLM-L6-v2, in-process | | Memory Triad | Brain + STATUS + Work Blocks + Twin Folders | | Tiered Promotion | Working → Fact → Pinned lifecycle | | Mesh Network | P2P QUIC, Ed25519, iroh — **in development and testing** | | Voice | TTS built (espeak-ng) — **not yet tested**, STT pending | | Chat | P2P messaging over mesh — **in development** | | RAG | Web search, RSS, file/folder indexing | | Web Agent | **Working** — spf_web_api tested (GET/POST with auth headers). Agents can interact with social media APIs | | Browser | API tools working (web_api, search, fetch). Browser automation (navigate/click/fill/select/eval) in development — proxy starts but WebSocket bridge needs browser connection | | Network Pool | Worker pool with proof of work | --- ## Notes - **1 developer** — not all features complete - **Gateway security**: approaching 100% - **All core tools**: 100% working - **Cross-compiles** on Android and Linux with minimal installation - **Agent cloning and specialization** supported - **50+ day continuous session** tested on Android phone - **Open source** — entire source code refreshes into transformer RAG system every reboot - Install in home folder, ensure file paths are correct in `.mcp.json` and `settings.local.json` - **Not all files have been uploaded yet** — repository is still being populated. Some modules may not be present until upload completes. --- ## License Licensed under the **Apache License 2.0**. See [LICENSE](LICENSE) for full terms. You are free to use, modify, and distribute this software, including for commercial purposes, provided you include the original copyright and license notice. **Author**: Joseph Stone **Email**: joepcstone@gmail.com *SPF (StoneCell Processing Formula), Build Anchor Protocol, and FLINT are proprietary designs of Joseph Stone.*
Overview
	<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />

	<meta name="description" content="We’re on a journey to advance and democratize artificial intelligence through open source and open science." />

	<meta property="fb:app_id" content="1321688464574422" />

	<meta name="twitter:card" content="summary_large_image" />

	<meta name="twitter:site" content="@huggingface" />

	<meta name="twitter:image" content="https://cdn-thumbnails.huggingface.co/social-thumbnails/datasets/JosephStoneCellAI/SPFsmartGATE.png" />

	<meta property="og:title" content="JosephStoneCellAI/SPFsmartGATE · Datasets at Hugging Face" />

	<meta property="og:description" content="We’re on a journey to advance and democratize artificial intelligence through open source and open science." />

	<meta property="og:type" content="website" />

	<meta property="og:url" content="https://huggingface.co/datasets/JosephStoneCellAI/SPFsmartGATE" />

	<meta property="og:image" content="https://cdn-thumbnails.huggingface.co/social-thumbnails/datasets/JosephStoneCellAI/SPFsmartGATE.png" />

	<link rel="stylesheet" href="/front/build/kube-839eaf9/style.css" />

	<link rel="preconnect" href="https://fonts.gstatic.com" />

	<link
		href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,200;0,300;0,400;0,600;0,700;1,200;1,300;1,400;1,600;1,700&display=swap"
		rel="stylesheet"
	/>

	<link
		href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600;700&display=swap"
		rel="stylesheet"
	/>

	<link
		rel="preload"
		href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.12.0/katex.min.css"
		as="style"
		onload="
			this.onload = null;
			this.rel = 'stylesheet';
		"
	/>

	<noscript>
		<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.12.0/katex.min.css" />
	</noscript>
	<script>const guestTheme = document.cookie.match(/theme=(\w+)/)?.[1]; document.documentElement.classList.toggle('dark', guestTheme === 'dark' || ( (!guestTheme || guestTheme === 'system') && window.matchMedia('(prefers-color-scheme: dark)').matches));</script>
	<script defer src="/js/script.js"></script>

	<script>
		((window.plausible =
			window.plausible
			|| function () {
				(plausible.q = plausible.q || []).push(arguments);
			}),
			(plausible.init =
				plausible.init
				|| function (i) {
					plausible.o = i || {};
				}));
		plausible.init({
			customProperties: {
				loggedIn: "false",
			},
			endpoint: "/api/event",
		});
	</script>

	<script>
		window.hubConfig = {"features":{"signupDisabled":false},"sshGitUrl":"git@hf.co","moonHttpUrl":"https:\/\/huggingface.co","captchaApiKey":"bd5f2066-93dc-4bdd-a64b-a24646ca3859","datasetViewerPublicUrl":"https:\/\/datasets-server.huggingface.co","stripePublicKey":"pk_live_x2tdjFXBCvXo2FFmMybezpeM00J6gPCAAc","environment":"production","userAgent":"HuggingFace (production)","spacesIframeDomain":"hf.space","spacesApiUrl":"https:\/\/api.hf.space","logoDev":{"apiUrl":"https:\/\/img.logo.dev\/","apiKey":"pk_UHS2HZOeRnaSOdDp7jbd5w"}};
		window.requestId = "Root=1-6a0cf8ea-352a604d3ed597e86e31f131";
		window.featureFlags = {"placeholder":false};
	</script>
	<script type="text/javascript" src="https://de5282c3ca0c.edge.sdk.awswaf.com/de5282c3ca0c/526cf06acb0d/challenge.js" defer></script> 
</head>
<body class="flex flex-col min-h-dvh bg-white dark:bg-gray-950 text-black DatasetPage">
	<!--[--><div class="flex min-h-dvh flex-col"><div class="SVELTE_HYDRATER contents" data-target="ClientErrorCatcher" data-props="{}"><!----></div> <div class="SVELTE_HYDRATER contents" data-target="DeviceProvider" data-props="{}"><!----></div> <div class="SVELTE_HYDRATER contents" data-target="SystemThemeMonitor" data-props="{&quot;isLoggedIn&quot;:false}"><!----></div> <!--[0--><div class="SVELTE_HYDRATER contents" data-target="MainHeader" data-props="{&quot;classNames&quot;:&quot;&quot;,&quot;isWide&quot;:false,&quot;isZh&quot;:false,&quot;canCreateKernels&quot;:false,&quot;isPro&quot;:false}"><header class="border-b border-gray-100 "><div class="w-full px-4 container flex h-16 items-center"><div class="flex flex-1 items-center"><a class="mr-5 flex flex-none items-center lg:mr-6" href="/"><img alt="Hugging Face's logo" class="w-7 md:mr-2" src="/front/assets/huggingface_logo-noborder.svg"/> <span class="hidden whitespace-nowrap text-lg font-bold md:block">Hugging Face</span></a> <div class="relative flex-1 lg:max-w-sm mr-2 sm:mr-4 md:mr-3 xl:mr-6"><input autocomplete="off" value="" class="w-full dark:bg-gray-950 pl-8 form-input-alt h-9 pr-3 focus:shadow-xl " name="" placeholder="Search models, datasets, users..." spellcheck="false" type="text"/> <!--[0--><svg class="absolute left-2.5 text-gray-400 top-1/2 transform -translate-y-1/2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M30 28.59L22.45 21A11 11 0 1 0 21 22.45L28.59 30zM5 14a9 9 0 1 1 9 9a9 9 0 0 1-9-9z" fill="currentColor"></path></svg><!--]--> <!--[-1--><!--]--></div><!----> <div class="flex flex-none items-center justify-center p-0.5 place-self-stretch lg:hidden"><button class="relative z-40 flex h-6 w-8 items-center justify-center" type="button"><!--[--><svg width="1em" height="1em" viewBox="0 0 10 10" class="text-xl" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" role="img" preserveAspectRatio="xMidYMid meet" fill="currentColor"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.65039 2.9999C1.65039 2.8066 1.80709 2.6499 2.00039 2.6499H8.00039C8.19369 2.6499 8.35039 2.8066 8.35039 2.9999C8.35039 3.1932 8.19369 3.3499 8.00039 3.3499H2.00039C1.80709 3.3499 1.65039 3.1932 1.65039 2.9999ZM1.65039 4.9999C1.65039 4.8066 1.80709 4.6499 2.00039 4.6499H8.00039C8.19369 4.6499 8.35039 4.8066 8.35039 4.9999C8.35039 5.1932 8.19369 5.3499 8.00039 5.3499H2.00039C1.80709 5.3499 1.65039 5.1932 1.65039 4.9999ZM2.00039 6.6499C1.80709 6.6499 1.65039 6.8066 1.65039 6.9999C1.65039 7.1932 1.80709 7.3499 2.00039 7.3499H8.00039C8.19369 7.3499 8.35039 7.1932 8.35039 6.9999C8.35039 6.8066 8.19369 6.6499 8.00039 6.6499H2.00039Z"></path></svg><!--]--> <!--[-1--><!--]--></button> <!--[-1--><!--]--></div><!----></div> <nav aria-label="Main" class="ml-auto hidden lg:block"><ul class="flex items-center gap-x-1 2xl:gap-x-2"><!--[--><li class="hover:text-indigo-700"><a class="group flex items-center px-2 py-0.5 dark:text-gray-300 dark:hover:text-gray-100" href="/models"><!--[--><svg class="mr-1.5 text-gray-400 group-hover:text-indigo-500" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path class="uim-quaternary" d="M20.23 7.24L12 12L3.77 7.24a1.98 1.98 0 0 1 .7-.71L11 2.76c.62-.35 1.38-.35 2 0l6.53 3.77c.29.173.531.418.7.71z" opacity=".25" fill="currentColor"></path><path class="uim-tertiary" d="M12 12v9.5a2.09 2.09 0 0 1-.91-.21L4.5 17.48a2.003 2.003 0 0 1-1-1.73v-7.5a2.06 2.06 0 0 1 .27-1.01L12 12z" opacity=".5" fill="currentColor"></path><path class="uim-primary" d="M20.5 8.25v7.5a2.003 2.003 0 0 1-1 1.73l-6.62 3.82c-.275.13-.576.198-.88.2V12l8.23-4.76c.175.308.268.656.27 1.01z" fill="currentColor"></path></svg><!--]--> Models <!--[-1--><!--]--></a></li><li class="hover:text-red-700"><a class="group flex items-center px-2 py-0.5 dark:text-gray-300 dark:hover:text-gray-100" href="/datasets"><!--[--><svg class="mr-1.5 text-gray-400 group-hover:text-red-500" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 25 25"><ellipse cx="12.5" cy="5" fill="currentColor" fill-opacity="0.25" rx="7.5" ry="2"></ellipse><path d="M12.5 15C16.6421 15 20 14.1046 20 13V20C20 21.1046 16.6421 22 12.5 22C8.35786 22 5 21.1046 5 20V13C5 14.1046 8.35786 15 12.5 15Z" fill="currentColor" opacity="0.5"></path><path d="M12.5 7C16.6421 7 20 6.10457 20 5V11.5C20 12.6046 16.6421 13.5 12.5 13.5C8.35786 13.5 5 12.6046 5 11.5V5C5 6.10457 8.35786 7 12.5 7Z" fill="currentColor" opacity="0.5"></path><path d="M5.23628 12C5.08204 12.1598 5 12.8273 5 13C5 14.1046 8.35786 15 12.5 15C16.6421 15 20 14.1046 20 13C20 12.8273 19.918 12.1598 19.7637 12C18.9311 12.8626 15.9947 13.5 12.5 13.5C9.0053 13.5 6.06886 12.8626 5.23628 12Z" fill="currentColor"></path></svg><!--]--> Datasets <!--[-1--><!--]--></a></li><li class="hover:text-blue-700"><a class="group flex items-center px-2 py-0.5 dark:text-gray-300 dark:hover:text-gray-100" href="/spaces"><!--[--><svg class="mr-1.5 text-gray-400 group-hover:text-blue-500" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" role="img" width="1em" height="1em" viewBox="0 0 25 25"><path opacity=".5" d="M6.016 14.674v4.31h4.31v-4.31h-4.31ZM14.674 14.674v4.31h4.31v-4.31h-4.31ZM6.016 6.016v4.31h4.31v-4.31h-4.31Z" fill="currentColor"></path><path opacity=".75" fill-rule="evenodd" clip-rule="evenodd" d="M3 4.914C3 3.857 3.857 3 4.914 3h6.514c.884 0 1.628.6 1.848 1.414a5.171 5.171 0 0 1 7.31 7.31c.815.22 1.414.964 1.414 1.848v6.514A1.914 1.914 0 0 1 20.086 22H4.914A1.914 1.914 0 0 1 3 20.086V4.914Zm3.016 1.102v4.31h4.31v-4.31h-4.31Zm0 12.968v-4.31h4.31v4.31h-4.31Zm8.658 0v-4.31h4.31v4.31h-4.31Zm0-10.813a2.155 2.155 0 1 1 4.31 0 2.155 2.155 0 0 1-4.31 0Z" fill="currentColor"></path><path opacity=".25" d="M16.829 6.016a2.155 2.155 0 1 0 0 4.31 2.155 2.155 0 0 0 0-4.31Z" fill="currentColor"></path></svg><!--]--> Spaces <!--[-1--><!--]--></a></li><li class="hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 max-xl:hidden"><a class="group flex items-center px-2 py-0.5 dark:text-gray-300 dark:hover:text-gray-100" href="/storage"><!--[--><svg class="mr-1.5 text-gray-400 text-blue-600! dark:text-blue-500!" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 48 48" fill="none"><path opacity="0.25" d="M36 4H12C7.58172 4 4 7.58172 4 12V36C4 40.4183 7.58172 44 12 44H36C40.4183 44 44 40.4183 44 36V12C44 7.58172 40.4183 4 36 4Z" fill="currentColor"></path><path opacity="0.5" d="M31 11H17C13.6863 11 11 13.6863 11 17V31C11 34.3137 13.6863 37 17 37H31C34.3137 37 37 34.3137 37 31V17C37 13.6863 34.3137 11 31 11Z" fill="currentColor"></path><path d="M27 18H21C19.3431 18 18 19.3431 18 21V27C18 28.6569 19.3431 30 21 30H27C28.6569 30 30 28.6569 30 27V21C30 19.3431 28.6569 18 27 18Z" fill="currentColor"></path></svg><!--]--> Buckets <!--[0--><span class="ml-1.5 translate-y-px rounded bg-blue-600/15 px-1 py-px text-[.65rem] font-bold uppercase leading-tight text-blue-600 dark:bg-blue-500/20 dark:text-blue-300">new</span><!--]--></a></li><li class="hover:text-yellow-700"><a class="group flex items-center px-2 py-0.5 dark:text-gray-300 dark:hover:text-gray-100" href="/docs"><!--[--><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="mr-1.5 text-gray-400 group-hover:text-yellow-500" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 16 16"><path d="m2.28 3.7-.3.16a.67.67 0 0 0-.34.58v8.73l.01.04.02.07.01.04.03.06.02.04.02.03.04.06.05.05.04.04.06.04.06.04.08.04.08.02h.05l.07.02h.11l.04-.01.07-.02.03-.01.07-.03.22-.12a5.33 5.33 0 0 1 5.15.1.67.67 0 0 0 .66 0 5.33 5.33 0 0 1 5.33 0 .67.67 0 0 0 1-.58V4.36a.67.67 0 0 0-.34-.5l-.3-.17v7.78a.63.63 0 0 1-.87.59 4.9 4.9 0 0 0-4.35.35l-.65.39a.29.29 0 0 1-.15.04.29.29 0 0 1-.16-.04l-.65-.4a4.9 4.9 0 0 0-4.34-.34.63.63 0 0 1-.87-.59V3.7Z" fill="currentColor" class="dark:opacity-40"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M8 3.1a5.99 5.99 0 0 0-5.3-.43.66.66 0 0 0-.42.62v8.18c0 .45.46.76.87.59a4.9 4.9 0 0 1 4.34.35l.65.39c.05.03.1.04.16.04.05 0 .1-.01.15-.04l.65-.4a4.9 4.9 0 0 1 4.35-.34.63.63 0 0 0 .86-.59V3.3a.67.67 0 0 0-.41-.62 5.99 5.99 0 0 0-5.3.43l-.3.17L8 3.1Zm.73 1.87a.43.43 0 1 0-.86 0v5.48a.43.43 0 0 0 .86 0V4.97Z" fill="currentColor" class="opacity-40 dark:opacity-100"></path><path d="M8.73 4.97a.43.43 0 1 0-.86 0v5.48a.43.43 0 1 0 .86 0V4.96Z" fill="currentColor" class="dark:opacity-40"></path></svg><!--]--> Docs <!--[-1--><!--]--></a></li><li class="hover:text-black dark:hover:text-white max-2xl:hidden"><a class="group flex items-center px-2 py-0.5 dark:text-gray-300 dark:hover:text-gray-100" href="/enterprise"><!--[--><svg class="mr-1.5 text-gray-400 group-hover:text-black dark:group-hover:text-white" xmlns="http://www.w3.org/2000/svg" fill="none" aria-hidden="true" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 12 12"><path fill-rule="evenodd" clip-rule="evenodd" d="M4.9 1.35a3.16 3.16 0 0 0-2.8 2.07L.37 8.58C0 9.71.7 10.65 1.86 10.65H7.3a3.2 3.2 0 0 0 2.84-2.07l1.67-5.16c.36-1.13-.3-2.07-1.46-2.07H4.91Zm.4 2.07L3.57 8.47h3.57l.36-1.12H5.4l.28-.91h1.75l.4-1.1H6.07l.3-.83h2l.36-1.1H5.27h.04Z" fill="currentColor"></path></svg><!--]--> Enterprise <!--[-1--><!--]--></a></li><!--]--> <li><a class="group flex items-center px-2 py-0.5 dark:text-gray-300 dark:hover:text-gray-100" href="/pricing">Pricing</a></li> <li><div class="relative group"><button class="px-2 py-0.5 hover:text-gray-500 dark:hover:text-gray-600 flex items-center " type="button"><!--[-1--><!--[0--><!--[--><svg class=" text-gray-500 w-5 group-hover:text-gray-400 dark:text-gray-300 dark:group-hover:text-gray-100" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" role="img" width="1em" height="1em" viewBox="0 0 32 18" preserveAspectRatio="xMidYMid meet"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.4504 3.30221C14.4504 2.836 14.8284 2.45807 15.2946 2.45807H28.4933C28.9595 2.45807 29.3374 2.836 29.3374 3.30221C29.3374 3.76842 28.9595 4.14635 28.4933 4.14635H15.2946C14.8284 4.14635 14.4504 3.76842 14.4504 3.30221Z" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M14.4504 9.00002C14.4504 8.53382 14.8284 8.15588 15.2946 8.15588H28.4933C28.9595 8.15588 29.3374 8.53382 29.3374 9.00002C29.3374 9.46623 28.9595 9.84417 28.4933 9.84417H15.2946C14.8284 9.84417 14.4504 9.46623 14.4504 9.00002Z" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M14.4504 14.6978C14.4504 14.2316 14.8284 13.8537 15.2946 13.8537H28.4933C28.9595 13.8537 29.3374 14.2316 29.3374 14.6978C29.3374 15.164 28.9595 15.542 28.4933 15.542H15.2946C14.8284 15.542 14.4504 15.164 14.4504 14.6978Z" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M1.94549 6.87377C2.27514 6.54411 2.80962 6.54411 3.13928 6.87377L6.23458 9.96907L9.32988 6.87377C9.65954 6.54411 10.194 6.54411 10.5237 6.87377C10.8533 7.20343 10.8533 7.73791 10.5237 8.06756L6.23458 12.3567L1.94549 8.06756C1.61583 7.73791 1.61583 7.20343 1.94549 6.87377Z" fill="currentColor"></path></svg><!--]--><!--]--> <!--]--> <!--[-1--><!--]--></button> <!--[0--><nav class="sr-only"><!--[-1--><!--]--> <ul><!--[0--><!--[--><!--[--><li><div class="bg-linear-to-r col-span-full flex items-center justify-between whitespace-nowrap to-white font-semibold dark:to-gray-925 px-4 py-0.5 text-blue-800 from-blue-50 dark:text-blue-100 dark:from-blue-900"><!--[--><!---->Website<!--]--></div><!----> <ul><!--[--><li><!----><a class="flex w-full cursor-pointer items-center whitespace-nowrap px-3 py-1.5 text-left hover:bg-gray-50 dark:hover:bg-gray-800  hover:underline leading-tight " href="/tasks"><!--[-1--><!--[0--><!--[--><svg class="mr-1.5 flex-none text-gray-400" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path class="uim-tertiary" d="M15.273 18.728A6.728 6.728 0 1 1 22 11.999V12a6.735 6.735 0 0 1-6.727 6.728z" opacity=".5" fill="currentColor"></path><path class="uim-primary" d="M8.727 18.728A6.728 6.728 0 1 1 15.455 12a6.735 6.735 0 0 1-6.728 6.728z" fill="currentColor"></path></svg><!--]--><!--]--> <span class="truncate">Tasks</span><!--]--><!----></a><!----> <!--[--><!--]--></li><li><!----><a class="flex w-full cursor-pointer items-center whitespace-nowrap px-3 py-1.5 text-left hover:bg-gray-50 dark:hover:bg-gray-800  hover:underline leading-tight " href="/chat"><!--[-1--><!--[0--><!--[--><svg width=".8em" height=".8em" class="mr-1.5 flex-none text-gray-400 dark:invert" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M6 12a6 6 0 1 1 5.374-3.33.976.976 0 0 0-.081.692l.36 1.337a.78.78 0 0 1-.955.954l-1.336-.36a.977.977 0 0 0-.69.081 6.001 6.001 0 0 1-2.673.63V12Z" fill="#000"></path><path d="M2 6a.675.675 0 1 1 1.35 0 2.476 2.476 0 0 0 4.952 0 .675.675 0 1 1 1.35 0A3.826 3.826 0 1 1 2 6Z" fill="#fff"></path></svg><!--]--><!--]--> <span class="truncate">HuggingChat</span><!--]--><!----></a><!----> <!--[--><!--]--></li><li><!----><a class="flex w-full cursor-pointer items-center whitespace-nowrap px-3 py-1.5 text-left hover:bg-gray-50 dark:hover:bg-gray-800  hover:underline leading-tight " href="/collections"><!--[-1--><!--[0--><!--[--><svg class="mr-1.5 flex-none text-gray-400" width="1em" height="1em" aria-hidden="true" focusable="false" role="img" viewBox="0 0 12 13" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><rect x="2" y="2.49902" width="8" height="3.76425" rx="1.16774" fill="currentColor" fill-opacity="0.4"></rect><rect x="6.21875" y="6.7334" width="3.78055" height="3.76425" rx="1.16774" fill="currentColor" fill-opacity="0.7"></rect><rect x="2" y="6.73438" width="3.78055" height="3.76425" rx="1.16774" fill="currentColor" fill-opacity="0.5"></rect></svg><!--]--><!--]--> <span class="truncate">Collections</span><!--]--><!----></a><!----> <!--[--><!--]--></li><li><!----><a class="flex w-full cursor-pointer items-center whitespace-nowrap px-3 py-1.5 text-left hover:bg-gray-50 dark:hover:bg-gray-800  hover:underline leading-tight " href="/languages"><!--[-1--><!--[0--><!--[--><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="mr-1.5 flex-none text-gray-400" preserveAspectRatio="xMidYMid meet" width="1em" height="1em" viewBox="0 0 10 10"><path fill-rule="evenodd" clip-rule="evenodd" d="M0.625 5C0.625 6.16032 1.08594 7.27312 1.90641 8.09359C2.72688 8.91406 3.83968 9.375 5 9.375C6.16032 9.375 7.27312 8.91406 8.09359 8.09359C8.91406 7.27312 9.375 6.16032 9.375 5C9.375 3.83968 8.91406 2.72688 8.09359 1.90641C7.27312 1.08594 6.16032 0.625 5 0.625C3.83968 0.625 2.72688 1.08594 1.90641 1.90641C1.08594 2.72688 0.625 3.83968 0.625 5ZM7.64365 7.48027C7.61734 7.50832 7.59054 7.53598 7.56326 7.56326C7.13828 7.98824 6.61864 8.2968 6.0539 8.46842C6.29802 8.11949 6.49498 7.64804 6.63475 7.09483C7.00845 7.18834 7.35014 7.3187 7.64365 7.48027ZM8.10076 6.87776C8.37677 6.42196 8.55005 5.90894 8.60556 5.37499H6.86808C6.85542 5.71597 6.82551 6.04557 6.77971 6.35841C7.25309 6.47355 7.68808 6.6414 8.062 6.85549C8.07497 6.86283 8.08789 6.87025 8.10076 6.87776ZM6.03795 6.22536C6.07708 5.95737 6.1044 5.67232 6.11705 5.37499H3.88295C3.89666 5.69742 3.92764 6.00542 3.9722 6.29287C4.37075 6.21726 4.79213 6.17749 5.224 6.17749C5.50054 6.17749 5.77294 6.19376 6.03795 6.22536ZM4.1261 7.02673C4.34894 7.84835 4.68681 8.375 5 8.375C5.32122 8.375 5.66839 7.82101 5.8908 6.963C5.67389 6.93928 5.45082 6.92699 5.224 6.92699C4.84316 6.92699 4.47332 6.96176 4.1261 7.02673ZM3.39783 7.21853C3.53498 7.71842 3.72038 8.14579 3.9461 8.46842C3.42141 8.30898 2.93566 8.03132 2.52857 7.65192C2.77253 7.48017 3.06711 7.33382 3.39783 7.21853ZM3.23916 6.48077C3.18263 6.13193 3.14625 5.76074 3.13192 5.37499H1.39444C1.4585 5.99112 1.67936 6.57938 2.03393 7.08403C2.3706 6.83531 2.78055 6.63162 3.23916 6.48077ZM1.39444 4.62499H3.13192C3.14615 4.24204 3.18211 3.87344 3.23794 3.52681C2.77814 3.37545 2.36731 3.17096 2.03024 2.92123C1.67783 3.42469 1.45828 4.011 1.39444 4.62499ZM2.5237 2.35262C2.76812 2.52552 3.06373 2.67281 3.39584 2.78875C3.53318 2.28573 3.71928 1.85578 3.9461 1.53158C3.41932 1.69166 2.93178 1.97089 2.5237 2.35262ZM3.97101 3.71489C3.92709 4.00012 3.89654 4.30547 3.88295 4.62499H6.11705C6.10453 4.33057 6.07761 4.04818 6.03909 3.78248C5.77372 3.81417 5.50093 3.83049 5.224 3.83049C4.79169 3.83049 4.3699 3.79065 3.97101 3.71489ZM5.8928 3.04476C5.67527 3.06863 5.45151 3.08099 5.224 3.08099C4.84241 3.08099 4.47186 3.04609 4.12405 2.98086C4.34686 2.1549 4.68584 1.625 5 1.625C5.32218 1.625 5.67048 2.18233 5.8928 3.04476ZM6.78083 3.6493C6.826 3.95984 6.85552 4.28682 6.86808 4.62499H8.60556C8.55029 4.09337 8.37827 3.58251 8.10436 3.1282C8.0903 3.1364 8.07618 3.14449 8.062 3.15249C7.68838 3.36641 7.25378 3.53417 6.78083 3.6493ZM7.64858 2.52499C7.35446 2.68754 7.0117 2.81868 6.63664 2.91268C6.49676 2.35623 6.29913 1.88209 6.0539 1.53158C6.61864 1.7032 7.13828 2.01176 7.56326 2.43674C7.59224 2.46572 7.62068 2.49514 7.64858 2.52499Z" fill="currentColor"></path></svg><!--]--><!--]--> <span class="truncate">Languages</span><!--]--><!----></a><!----> <!--[--><!--]--></li><li><!----><a class="flex w-full cursor-pointer items-center whitespace-nowrap px-3 py-1.5 text-left hover:bg-gray-50 dark:hover:bg-gray-800  hover:underline leading-tight " href="/organizations"><!--[-1--><!--[0--><!--[--><svg class="mr-1.5 flex-none text-gray-400" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path class="uim-tertiary" d="M12 18a3.5 3.5 0 1 1 3.5-3.5A3.504 3.504 0 0 1 12 18z" opacity=".5" fill="currentColor"></path><path class="uim-primary" d="M14.64 16.772a3.452 3.452 0 0 1-5.28 0A4.988 4.988 0 0 0 7 21a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1a4.988 4.988 0 0 0-2.36-4.228z" fill="currentColor"></path><path class="uim-tertiary" d="M21 12a.996.996 0 0 1-.664-.252L12 4.338l-8.336 7.41a1 1 0 0 1-1.328-1.496l9-8a.999.999 0 0 1 1.328 0l9 8A1 1 0 0 1 21 12z" opacity=".5" fill="currentColor"></path><path class="uim-quaternary" d="M12 4.338l-8 7.111V21a1 1 0 0 0 1 1h3a1 1 0 0 1-1-1a4.988 4.988 0 0 1 2.36-4.228A3.469 3.469 0 0 1 8.5 14.5a3.5 3.5 0 0 1 7 0a3.469 3.469 0 0 1-.86 2.272A4.988 4.988 0 0 1 17 21a1 1 0 0 1-1 1h3a1 1 0 0 0 1-1v-9.551z" opacity=".25" fill="currentColor"></path></svg><!--]--><!--]--> <span class="truncate">Organizations</span><!--]--><!----></a><!----> <!--[--><!--]--></li><!--]--></ul></li> <li><div class="bg-linear-to-r col-span-full flex items-center justify-between whitespace-nowrap to-white font-semibold dark:to-gray-925 px-4 py-0.5 text-yellow-800 from-yellow-50 dark:text-yellow-100 dark:from-yellow-900"><!--[--><!---->Community<!--]--></div><!----> <ul><!--[--><li><!----><a class="flex w-full cursor-pointer items-center whitespace-nowrap px-3 py-1.5 text-left hover:bg-gray-50 dark:hover:bg-gray-800  hover:underline leading-tight " href="/blog"><!--[-1--><!--[0--><!--[--><svg class="mr-1.5 flex-none text-gray-400 " xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 15 15"><path fill="currentColor" d="M3.417 12.75c-.32 0-.596-.114-.824-.342a1.126 1.126 0 0 1-.343-.825V3.417c0-.321.114-.597.343-.824.23-.228.503-.343.824-.343h8.166c.321 0 .596.114.825.343.228.229.342.503.342.824v8.166c0 .32-.114.596-.342.825a1.12 1.12 0 0 1-.825.342zm1.166-2.333h4.084V9.25H4.583v1.167m0-2.334h5.834V6.917H4.583v1.166m0-2.333h5.834V4.583H4.583V5.75"></path></svg><!--]--><!--]--> <span class="truncate">Blog</span><!--]--><!----></a><!----> <!--[--><!--]--></li><li><!----><a class="flex w-full cursor-pointer items-center whitespace-nowrap px-3 py-1.5 text-left hover:bg-gray-50 dark:hover:bg-gray-800  hover:underline leading-tight " href="/posts"><!--[-1--><!--[0--><!--[--><svg class="mr-1.5 flex-none text-gray-400 " xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" role="img" width="1em" height="1em" viewBox="0 0 12 12" preserveAspectRatio="xMidYMid meet"><path fill="currentColor" fill-rule="evenodd" d="M3.73 2.4A4.25 4.25 0 1 1 6 10.26H2.17l-.13-.02a.43.43 0 0 1-.3-.43l.01-.06a.43.43 0 0 1 .12-.22l.84-.84A4.26 4.26 0 0 1 3.73 2.4Z" clip-rule="evenodd"></path></svg><!--]--><!--]--> <span class="truncate">Posts</span><!--]--><!----></a><!----> <!--[--><!--]--></li><li><!----><a class="flex w-full cursor-pointer items-center whitespace-nowrap px-3 py-1.5 text-left hover:bg-gray-50 dark:hover:bg-gray-800  hover:underline leading-tight " href="/papers"><!--[-1--><!--[0--><!--[--><svg class="mr-1.5 flex-none text-gray-400 " xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" role="img" width="1em" height="1em" viewBox="0 0 12 12" preserveAspectRatio="xMidYMid meet" fill="none"><path fill="currentColor" fill-rule="evenodd" d="M8.007 1.814a1.176 1.176 0 0 0-.732-.266H3.088c-.64 0-1.153.512-1.153 1.152v6.803c0 .64.513 1.152 1.153 1.152h5.54c.632 0 1.144-.511 1.144-1.152V3.816c0-.338-.137-.658-.412-.887L8.007 1.814Zm-1.875 1.81c0 .695.55 1.253 1.244 1.253h.983a.567.567 0 0 1 .553.585v4.041c0 .165-.119.302-.283.302h-5.55c-.156 0-.275-.137-.275-.302V2.7a.284.284 0 0 1 .284-.301h2.468a.574.574 0 0 1 .434.19.567.567 0 0 1 .142.395v.64Z" clip-rule="evenodd" fill-opacity=".8"></path><path fill="currentColor" fill-opacity=".2" fill-rule="evenodd" d="M6.132 3.624c0 .695.55 1.253 1.244 1.253h.97a.567.567 0 0 1 .566.585v4.041c0 .165-.119.302-.283.302h-5.55c-.156 0-.275-.137-.275-.302V2.7a.284.284 0 0 1 .284-.301h2.468a.567.567 0 0 1 .576.585v.64Z" clip-rule="evenodd"></path></svg><!--]--><!--]--> <span class="truncate">Daily Papers</span><!--]--><!----></a><!----> <!--[--><!--]--></li><li><!----><a class="flex w-full cursor-pointer items-center whitespace-nowrap px-3 py-1.5 text-left hover:bg-gray-50 dark:hover:bg-gray-800  hover:underline leading-tight " href="/learn"><!--[-1--><!--[0--><!--[--><svg class="mr-1.5 flex-none text-gray-400 " xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" role="img" width="1em" height="1em" viewBox="0 0 32 32"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.44971 14.5964L5.44977 19.5221L5.44971 19.5321L5.44977 19.5422V19.6062H5.4533C5.59676 21.0844 10.0242 22.2706 15.465 22.2706C20.9057 22.2706 25.3332 21.0844 25.4767 19.6062H25.4803L25.4802 14.8524L15.7373 17.5754L5.44971 14.5964Z" fill="currentColor" fill-opacity="0.8"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M1.16846 11.7412L15.7374 15.9487L30.832 11.7412V13.3494H30.8069L30.832 13.3566L15.7374 17.5754L1.16846 13.3566L1.1927 13.3494H1.16846V11.7412ZM1.16846 11.7412V11.7412L1.16849 11.7412L1.16846 11.7412ZM1.16846 11.7412V11.6674H1.41519L1.16846 11.7412ZM30.5764 11.6674H30.832V11.7412L30.5764 11.6674Z" fill="currentColor" fill-opacity="0.5"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M3.02827 18.7976C3.398 17.0129 4.40214 15.3593 5.21357 14.3777L5.68497 14.7674C4.91639 15.6971 3.97099 17.2621 3.62717 18.9216C3.28615 20.5676 3.53867 22.2742 5.1103 23.5887C5.88204 24.2342 6.92784 24.5392 8.1691 24.6236C9.40985 24.7079 10.8132 24.5697 12.2706 24.3583C12.9462 24.2603 13.6292 24.1473 14.3104 24.0346C14.3626 24.0259 14.4148 24.0173 14.467 24.0087C15.1987 23.8877 15.9275 23.7684 16.6346 23.6714C18.0439 23.4782 19.3924 23.3696 20.5369 23.5201L20.4572 24.1265C19.3982 23.9872 18.1177 24.0854 16.7176 24.2774C16.0201 24.373 15.2991 24.491 14.5667 24.6121C14.5143 24.6208 14.4618 24.6295 14.4093 24.6382C13.7292 24.7507 13.0404 24.8647 12.3583 24.9636C10.8913 25.1764 9.43547 25.3227 8.12763 25.2338C6.8203 25.145 5.62813 24.8191 4.71791 24.0579C2.92563 22.5589 2.65573 20.5957 3.02827 18.7976Z" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M20.4304 24.1128L20.5291 23.5358L28.0463 24.2759L27.9888 24.8599L27.966 24.8577L27.8807 25.3377L27.8992 25.3422L27.7593 25.9121L20.4304 24.1128Z" fill="currentColor" fill-opacity="0.25"></path><path d="M15.7374 15.9487L1.16846 11.7412L15.7374 7.38605L30.832 11.7412L15.7374 15.9487Z" fill="currentColor" fill-opacity="0.25"></path></svg><!--]--><!--]--> <span class="truncate">Learn</span><!--]--><!----></a><!----> <!--[--><!--]--></li><li><!----><a class="flex w-full cursor-pointer items-center whitespace-nowrap px-3 py-1.5 text-left hover:bg-gray-50 dark:hover:bg-gray-800  hover:underline leading-tight " href="/join/discord" target="_blank"><!--[-1--><!--[0--><!--[--><svg class="mr-1.5 flex-none text-gray-400 " xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" role="img" width="1em" height="1em" viewBox="0 0 32 32" preserveAspectRatio="xMidYMid meet"><path d="M25.6933 7.10665C23.92 6.27998 22 5.67998 20 5.33331C19.9825 5.33275 19.965 5.33604 19.9489 5.34295C19.9328 5.34987 19.9183 5.36023 19.9067 5.37331C19.6667 5.81331 19.3867 6.38665 19.2 6.82665C17.0787 6.50665 14.9213 6.50665 12.8 6.82665C12.6133 6.37331 12.3333 5.81331 12.08 5.37331C12.0667 5.34665 12.0267 5.33331 11.9867 5.33331C9.98666 5.67998 8.07999 6.27998 6.29333 7.10665C6.27999 7.10665 6.26666 7.11998 6.25333 7.13331C2.62666 12.56 1.62666 17.84 2.11999 23.0666C2.11999 23.0933 2.13333 23.12 2.15999 23.1333C4.55999 24.8933 6.86666 25.96 9.14666 26.6666C9.18666 26.68 9.22666 26.6666 9.23999 26.64C9.77333 25.9066 10.2533 25.1333 10.6667 24.32C10.6933 24.2666 10.6667 24.2133 10.6133 24.2C9.85333 23.9066 9.13333 23.56 8.42666 23.16C8.37333 23.1333 8.37333 23.0533 8.41333 23.0133C8.55999 22.9066 8.70666 22.7866 8.85333 22.68C8.87999 22.6533 8.91999 22.6533 8.94666 22.6666C13.5333 24.76 18.48 24.76 23.0133 22.6666C23.04 22.6533 23.08 22.6533 23.1067 22.68C23.2533 22.8 23.4 22.9066 23.5467 23.0266C23.6 23.0666 23.6 23.1466 23.5333 23.1733C22.84 23.5866 22.1067 23.92 21.3467 24.2133C21.2933 24.2266 21.28 24.2933 21.2933 24.3333C21.72 25.1466 22.2 25.92 22.72 26.6533C22.76 26.6666 22.8 26.68 22.84 26.6666C25.1333 25.96 27.44 24.8933 29.84 23.1333C29.8667 23.12 29.88 23.0933 29.88 23.0666C30.4667 17.0266 28.9067 11.7866 25.7467 7.13331C25.7333 7.11998 25.72 7.10665 25.6933 7.10665V7.10665ZM11.36 19.88C9.98666 19.88 8.83999 18.6133 8.83999 17.0533C8.83999 15.4933 9.95999 14.2266 11.36 14.2266C12.7733 14.2266 13.8933 15.5066 13.88 17.0533C13.88 18.6133 12.76 19.88 11.36 19.88ZM20.6533 19.88C19.28 19.88 18.1333 18.6133 18.1333 17.0533C18.1333 15.4933 19.2533 14.2266 20.6533 14.2266C22.0667 14.2266 23.1867 15.5066 23.1733 17.0533C23.1733 18.6133 22.0667 19.88 20.6533 19.88Z" fill="currentColor"></path></svg><!--]--><!--]--> <span class="truncate">Discord</span><!--]--><!----></a><!----> <!--[--><!--]--></li><li><!----><a class="flex w-full cursor-pointer items-center whitespace-nowrap px-3 py-1.5 text-left hover:bg-gray-50 dark:hover:bg-gray-800  hover:underline leading-tight " href="https://discuss.huggingface.co/" target="_blank"><!--[-1--><!--[0--><!--[--><svg class="mr-1.5 flex-none text-gray-400 " xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" focusable="false" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path d="M12.077 3C7.149 3 3 6.96 3 11.843V21l9.075-.01c4.928 0 8.925-4.11 8.925-8.993C21 7.113 17 3 12.077 3zm3.92 12.859a5.568 5.568 0 0 1-6.102 1.043l-3.595.805l1.001-3.192a5.435 5.435 0 0 1 .11-5.415a5.55 5.55 0 0 1 4.753-2.678v.001h.006a5.533 5.533 0 0 1 5.131 3.438a5.442 5.442 0 0 1-1.304 5.998z" fill="currentColor"></path></svg><!--]--><!--]--> <span class="truncate">Forum</span><!--]--><!----></a><!----> <!--[--><!--]--></li><li><!----><a class="flex w-full cursor-pointer items-center whitespace-nowrap px-3 py-1.5 text-left hover:bg-gray-50 dark:hover:bg-gray-800  hover:underline leading-tight " href="https://github.com/huggingface" target="_blank"><!--[-1--><!--[0--><!--[--><svg class="mr-1.5 flex-none text-gray-400 text-sm" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" role="img" width="1.03em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 250"><path d="M128.001 0C57.317 0 0 57.307 0 128.001c0 56.554 36.676 104.535 87.535 121.46c6.397 1.185 8.746-2.777 8.746-6.158c0-3.052-.12-13.135-.174-23.83c-35.61 7.742-43.124-15.103-43.124-15.103c-5.823-14.795-14.213-18.73-14.213-18.73c-11.613-7.944.876-7.78.876-7.78c12.853.902 19.621 13.19 19.621 13.19c11.417 19.568 29.945 13.911 37.249 10.64c1.149-8.272 4.466-13.92 8.127-17.116c-28.431-3.236-58.318-14.212-58.318-63.258c0-13.975 5-25.394 13.188-34.358c-1.329-3.224-5.71-16.242 1.24-33.874c0 0 10.749-3.44 35.21 13.121c10.21-2.836 21.16-4.258 32.038-4.307c10.878.049 21.837 1.47 32.066 4.307c24.431-16.56 35.165-13.12 35.165-13.12c6.967 17.63 2.584 30.65 1.255 33.873c8.207 8.964 13.173 20.383 13.173 34.358c0 49.163-29.944 59.988-58.447 63.157c4.591 3.972 8.682 11.762 8.682 23.704c0 17.126-.148 30.91-.148 35.126c0 3.407 2.304 7.398 8.792 6.14C219.37 232.5 256 184.537 256 128.002C256 57.307 198.691 0 128.001 0zm-80.06 182.34c-.282.636-1.283.827-2.194.39c-.929-.417-1.45-1.284-1.15-1.922c.276-.655 1.279-.838 2.205-.399c.93.418 1.46 1.293 1.139 1.931zm6.296 5.618c-.61.566-1.804.303-2.614-.591c-.837-.892-.994-2.086-.375-2.66c.63-.566 1.787-.301 2.626.591c.838.903 1 2.088.363 2.66zm4.32 7.188c-.785.545-2.067.034-2.86-1.104c-.784-1.138-.784-2.503.017-3.05c.795-.547 2.058-.055 2.861 1.075c.782 1.157.782 2.522-.019 3.08zm7.304 8.325c-.701.774-2.196.566-3.29-.49c-1.119-1.032-1.43-2.496-.726-3.27c.71-.776 2.213-.558 3.315.49c1.11 1.03 1.45 2.505.701 3.27zm9.442 2.81c-.31 1.003-1.75 1.459-3.199 1.033c-1.448-.439-2.395-1.613-2.103-2.626c.301-1.01 1.747-1.484 3.207-1.028c1.446.436 2.396 1.602 2.095 2.622zm10.744 1.193c.036 1.055-1.193 1.93-2.715 1.95c-1.53.034-2.769-.82-2.786-1.86c0-1.065 1.202-1.932 2.733-1.958c1.522-.03 2.768.818 2.768 1.868zm10.555-.405c.182 1.03-.875 2.088-2.387 2.37c-1.485.271-2.861-.365-3.05-1.386c-.184-1.056.893-2.114 2.376-2.387c1.514-.263 2.868.356 3.061 1.403z" fill="currentColor"></path></svg><!--]--><!--]--> <span class="truncate">GitHub</span><!--]--><!----></a><!----> <!--[--><!--]--></li><!--]--></ul></li> <li><div class="bg-linear-to-r col-span-full flex items-center justify-between whitespace-nowrap to-white font-semibold dark:to-gray-925 px-4 py-0.5 text-pink-800 from-pink-50 dark:text-gray-200 dark:from-pink-900"><!--[--><!---->Solutions<!--]--></div><!----> <ul><!--[--><li><!----><a class="flex w-full cursor-pointer items-center whitespace-nowrap px-3 py-1.5 text-left hover:bg-gray-50 dark:hover:bg-gray-800  hover:underline leading-tight " href="/enterprise"><!--[-1--><!--[0--><!--[--><svg class="mr-1.5 flex-none text-gray-400" xmlns="http://www.w3.org/2000/svg" fill="none" aria-hidden="true" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 12 12"><path fill-rule="evenodd" clip-rule="evenodd" d="M4.9 1.35a3.16 3.16 0 0 0-2.8 2.07L.37 8.58C0 9.71.7 10.65 1.86 10.65H7.3a3.2 3.2 0 0 0 2.84-2.07l1.67-5.16c.36-1.13-.3-2.07-1.46-2.07H4.91Zm.4 2.07L3.57 8.47h3.57l.36-1.12H5.4l.28-.91h1.75l.4-1.1H6.07l.3-.83h2l.36-1.1H5.27h.04Z" fill="currentColor"></path></svg><!--]--><!--]--> <span class="truncate">Team &amp; Enterprise</span><!--]--><!----></a><!----> <!--[--><!--]--></li><li><!----><a class="flex w-full cursor-pointer items-center whitespace-nowrap px-3 py-1.5 text-left hover:bg-gray-50 dark:hover:bg-gray-800  hover:underline leading-tight " href="/pro"><!--[-1--><!--[0--><!--[--><svg class="mr-1.5 flex-none text-gray-400" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" role="img" width="1em" height="1em" viewBox="0 0 12 12" fill="none"><path d="M6.48 1.26c0 1.55.67 2.58 1.5 3.24.86.68 1.9 1 2.58 1.07v.86A5.3 5.3 0 0 0 7.99 7.5a3.95 3.95 0 0 0-1.51 3.24h-.96c0-1.55-.67-2.58-1.5-3.24a5.3 5.3 0 0 0-2.58-1.07v-.86A5.3 5.3 0 0 0 4.01 4.5a3.95 3.95 0 0 0 1.51-3.24h.96Z" fill="url(#pro-sparkle-gradient)"></path><defs><linearGradient id="pro-sparkle-gradient" x1="3.37" y1="3.43" x2="8.14" y2="8.9" gradientUnits="userSpaceOnUse"><stop stop-color="#FF0789"></stop><stop offset=".63" stop-color="#21DE75"></stop><stop offset="1" stop-color="#FF8D00"></stop></linearGradient></defs></svg><!--]--><!--]--> <span class="truncate">Hugging Face PRO</span><!--]--><!----></a><!----> <!--[--><!--]--></li><li><!----><a class="flex w-full cursor-pointer items-center whitespace-nowrap px-3 py-1.5 text-left hover:bg-gray-50 dark:hover:bg-gray-800  hover:underline leading-tight " href="/support"><!--[-1--><!--[0--><!--[--><svg class="mr-1.5 flex-none text-gray-400" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 25 24"><path d="M12.6213 22.4475C12.7096 22.4825 12.8038 22.5003 12.8988 22.5C13.068 22.4991 13.2318 22.4409 13.3638 22.335L17.1138 19.335C17.2022 19.2652 17.2737 19.1763 17.323 19.0751C17.3724 18.9738 17.3983 18.8627 17.3988 18.75V13.0575L20.2338 10.23C21.0025 9.46567 21.6117 8.5563 22.0263 7.55467C22.4409 6.55304 22.6524 5.47907 22.6488 4.39505V3.00005C22.6488 2.60222 22.4908 2.22069 22.2095 1.93939C21.9281 1.65808 21.5466 1.50005 21.1488 1.50005H19.7538C18.6698 1.49639 17.5958 1.70798 16.5942 2.12254C15.5925 2.5371 14.6832 3.14638 13.9188 3.91505L11.0913 6.75005H5.39879C5.28552 6.75146 5.17405 6.77851 5.07273 6.82917C4.97141 6.87983 4.88288 6.95278 4.81379 7.04255L1.81379 10.7925C1.73008 10.8963 1.67553 11.0205 1.65576 11.1523C1.63599 11.2841 1.6517 11.4188 1.70129 11.5425C1.75027 11.6654 1.83088 11.7732 1.93494 11.8548C2.03899 11.9365 2.1628 11.9892 2.29379 12.0075L7.54379 12.7575L11.4063 16.605L12.1563 21.855C12.1747 21.986 12.2274 22.1098 12.309 22.2139C12.3907 22.318 12.4984 22.3986 12.6213 22.4475Z" opacity=".5" fill="currentColor"></path><path d="M11.0837 10.9416L5.08569 16.9396L7.20363 19.0576L13.2017 13.0595L11.0837 10.9416Z" opacity="1" fill="currentColor"></path></svg><!--]--><!--]--> <span class="truncate">Enterprise Support</span><!--]--><!----></a><!----> <!--[--><!--]--></li><li><!----><a class="flex w-full cursor-pointer items-center whitespace-nowrap px-3 py-1.5 text-left hover:bg-gray-50 dark:hover:bg-gray-800  hover:underline leading-tight " href="/inference/models"><!--[-1--><!--[0--><!--[--><svg class="mr-1.5 flex-none text-gray-400" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 12 12"><path fill-rule="evenodd" clip-rule="evenodd" d="M7.587 8.498a.613.613 0 0 0 .812-.915l-.004-.004a.61.61 0 0 0-.27-.157l-.538 1.076Zm.935-1.871a.612.612 0 0 0 .211.037h.006a.613.613 0 0 0 .33-1.13l-.547 1.093Zm.057-2.531a.613.613 0 0 0-1.046-.444l-.005.005a.61.61 0 0 0-.178.402h.969a.93.93 0 0 1 .26.037ZM3.57 5.518l-.549 1.097a.613.613 0 0 1 .24-1.177h.007a.61.61 0 0 1 .302.08Zm.921-1.842L3.979 4.7a.61.61 0 0 1-.373-.177l-.004-.004a.613.613 0 0 1 .866-.867l.005.005a.619.619 0 0 1 .018.019Zm-1.067 4.29c.112.049.237.077.37.077h.857a.61.61 0 0 1-.178.403l-.005.004a.613.613 0 0 1-1.044-.484ZM8.121 6.06V6.05c0-.204.099-.384.252-.496l-.252.505ZM3.849 7.43h.381a.615.615 0 0 0-.381 0Zm4.305-2.758H7.77c.124.041.26.041.384 0ZM3.162 2.346a.613.613 0 0 0-.867.866l.002.002a.613.613 0 1 0 .867-.866l-.002-.002ZM5.777 4.96a.613.613 0 0 0-1.029.578.612.612 0 0 0 0 1.024.612.612 0 0 0 1.03.578l.004-.004a.613.613 0 0 0-.094-.944.617.617 0 0 0 0-.284.613.613 0 0 0 .094-.944l-.005-.004Zm.536 1.232a.613.613 0 0 0-.094.944l.005.004a.613.613 0 0 0 1.029-.578.612.612 0 0 0 0-1.024.613.613 0 0 0-1.03-.578l-.003.004a.613.613 0 0 0 .093.944.615.615 0 0 0 0 .284Zm3.391 2.695a.613.613 0 0 0-.867.867l.003.002a.613.613 0 0 0 .866-.867l-.002-.002Zm-8.263-3.45a.613.613 0 0 0 0 1.226h.003a.613.613 0 1 0 0-1.226h-.003Zm9.116 0a.613.613 0 1 0 0 1.226h.003a.613.613 0 1 0 0-1.226h-.003Zm-.85-3.092c.239.239.239.627 0 .866l-.003.002a.613.613 0 0 1-.867-.866l.003-.002c.239-.24.627-.24.866 0ZM3.163 8.888c.24.24.24.627 0 .867l-.002.002a.613.613 0 0 1-.867-.867l.002-.002c.24-.24.627-.24.867 0Z" fill="currentColor" class="text-gray-400 dark:text-gray-500"></path><path d="M5.597 7.736a.306.306 0 0 0-.306-.306H3.795a.306.306 0 0 1-.274-.444l2.415-4.83c.145-.289.58-.186.58.137v2.073c0 .169.138.306.307.306h1.496c.228 0 .376.24.274.444l-2.415 4.83c-.145.289-.58.186-.58-.137V7.736Z" fill="currentColor" class="text-yellow-500"></path></svg><!--]--><!--]--> <span class="truncate">Inference Providers</span><!--]--><!----></a><!----> <!--[--><!--]--></li><li><!----><a class="flex w-full cursor-pointer items-center whitespace-nowrap px-3 py-1.5 text-left hover:bg-gray-50 dark:hover:bg-gray-800  hover:underline leading-tight " href="/inference-endpoints" target="_blank"><!--[-1--><!--[0--><!--[--><svg class="mr-1.5 flex-none text-gray-400" width="1em" height="1em" viewBox="-5 -5 46 44" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M22.4784 6.09734C23.2951 4.15041 21.8652 2 19.7539 2L11.2073 2C9.0127 2 7.05415 3.3771 6.31163 5.44223L3.35017 13.6788C2.47741 16.1062 2.47741 18.7617 3.35017 21.1891L6.31163 29.4257C7.05415 31.4908 9.0127 32.8679 11.2073 32.8679H19.7539C21.8652 32.8679 23.2951 30.7175 22.4784 28.7706L19.5239 21.7271C18.3719 18.9809 18.3719 15.887 19.5239 13.1408L22.4784 6.09734Z" fill="currentColor" fill-opacity="0.6" stroke="currentColor" stroke-width="5" stroke-linejoin="round"></path><circle cx="26.821" cy="17.4339" r="8.4146" fill="currentColor" fill-opacity="0.4" stroke="currentColor" stroke-width="5" stroke-linejoin="round"></circle></svg><!--]--><!--]--> <span class="truncate">Inference Endpoints</span><!--]--><!----></a><!----> <!--[--><!--]--></li><li><!----><a class="flex w-full cursor-pointer items-center whitespace-nowrap px-3 py-1.5 text-left hover:bg-gray-50 dark:hover:bg-gray-800  hover:underline leading-tight " href="/storage"><!--[-1--><!--[0--><!--[--><svg class="mr-1.5 flex-none text-gray-400" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 48 48" fill="none"><path opacity="0.25" d="M36 4H12C7.58172 4 4 7.58172 4 12V36C4 40.4183 7.58172 44 12 44H36C40.4183 44 44 40.4183 44 36V12C44 7.58172 40.4183 4 36 4Z" fill="currentColor"></path><path opacity="0.5" d="M31 11H17C13.6863 11 11 13.6863 11 17V31C11 34.3137 13.6863 37 17 37H31C34.3137 37 37 34.3137 37 31V17C37 13.6863 34.3137 11 31 11Z" fill="currentColor"></path><path d="M27 18H21C19.3431 18 18 19.3431 18 21V27C18 28.6569 19.3431 30 21 30H27C28.6569 30 30 28.6569 30 27V21C30 19.3431 28.6569 18 27 18Z" fill="currentColor"></path></svg><!--]--><!--]--> <span class="truncate">Storage Buckets</span><!--]--><!----></a><!----> <!--[--><!--]--></li><!--]--></ul></li><!--]--><!--]--><!--]--></ul></nav><!--]-->  <!--[-1--><!--]--></div><!----></li> <li><hr class="h-5 w-0.5 border-none bg-gray-100 dark:bg-gray-800"/></li> <!--[-1--><li><a class="block cursor-pointer whitespace-nowrap px-2 py-0.5 hover:text-gray-500 dark:text-gray-300 dark:hover:text-gray-100" href="/login">Log In</a></li> <!--[0--><li><a class="whitespace-nowrap rounded-full border border-transparent bg-gray-900 px-3 py-1 leading-none text-white hover:border-black hover:bg-white hover:text-black" href="/join">Sign Up</a></li><!--]--><!--]--></ul></nav><!----></div></header><!----></div><!--]--> <!--[-1--><!--]--> <!--[2--><!--[-1--><!--]--><!--]--><!----> <!--[-1--><!--]--><!----> <!--[0--><div class="SVELTE_HYDRATER contents" data-target="SSOBanner" data-props="{}"><!--[-1--><!--]--><!----></div><!--]--> <!--[-1--><!--]--><!----> <main class="flex flex-1 flex-col"><!--[--><!--[-1--><!--]--> <div class="SVELTE_HYDRATER contents" data-target="DatasetHeader" data-props="{&quot;activeTab&quot;:&quot;datasetCard&quot;,&quot;author&quot;:{&quot;_id&quot;:&quot;697a044b63e0a4e88646d21f&quot;,&quot;avatarUrl&quot;:&quot;/avatars/c6211b96c36b8ef4d0aa73e7287ec258.svg&quot;,&quot;fullname&quot;:&quot;stone&quot;,&quot;name&quot;:&quot;JosephStoneCellAI&quot;,&quot;type&quot;:&quot;user&quot;,&quot;isPro&quot;:false,&quot;isHf&quot;:false,&quot;isHfAdmin&quot;:false,&quot;isMod&quot;:false,&quot;isUserFollowing&quot;:false},&quot;canReadRepoSettings&quot;:false,&quot;dataset&quot;:{&quot;author&quot;:&quot;JosephStoneCellAI&quot;,&quot;cardData&quot;:{&quot;license&quot;:&quot;apache-2.0&quot;},&quot;cardExists&quot;:true,&quot;createdAt&quot;:&quot;2026-04-16T02:41:20.000Z&quot;,&quot;description&quot;:&quot;\n\t\n\t\n\t\n\t\tREADME.md---\nlicense: apache-2.0\nlanguage:\n- en\ntags:\n- mcp-server\n- ai-gateway\n- security\n- rust\n- agent-framework\n- tool-enforcement\n- lmdb\n- rag\n- transformer\n- mesh-network\n- voice\n- android\n- termux\n- self-hosted\n- ai-safety\n- memory-system\n- flint\n- build-anchor\n- complexity-formula\n- agent-memory\n- p2p\n- quic\n- heed\n- self-learning\n- harness\n- ai-memory\n- persistent-memory\n- online-learning\n- agent-tools\n- tool-gateway\n- web-automation\n- browser-automation\n- social-media\n-… See the full description on the dataset page: https://huggingface.co/datasets/JosephStoneCellAI/SPFsmartGATE.&quot;,&quot;doi&quot;:{&quot;id&quot;:&quot;10.57967/hf/8460&quot;,&quot;commit&quot;:&quot;ae7aec445eff3f7924918ee09b523c0135dd8081&quot;,&quot;customAuthors&quot;:[{&quot;name&quot;:&quot;stone&quot;,&quot;nameType&quot;:&quot;Personal&quot;}]},&quot;downloads&quot;:1989,&quot;downloadsAllTime&quot;:2061,&quot;id&quot;:&quot;JosephStoneCellAI/SPFsmartGATE&quot;,&quot;isLikedByUser&quot;:false,&quot;lastModified&quot;:&quot;2026-05-19T01:00:19.000Z&quot;,&quot;likes&quot;:2,&quot;discussionsDisabled&quot;:false,&quot;discussionsSorting&quot;:&quot;recently-created&quot;,&quot;repoType&quot;:&quot;dataset&quot;,&quot;private&quot;:false,&quot;gated&quot;:false,&quot;tags&quot;:[&quot;license:apache-2.0&quot;,&quot;doi:10.57967/hf/8460&quot;,&quot;region:us&quot;],&quot;tag_objs&quot;:[{&quot;id&quot;:&quot;license:apache-2.0&quot;,&quot;label&quot;:&quot;apache-2.0&quot;,&quot;type&quot;:&quot;license&quot;},{&quot;id&quot;:&quot;doi:10.57967/hf/8460&quot;,&quot;label&quot;:&quot;doi:10.57967/hf/8460&quot;,&quot;type&quot;:&quot;doi&quot;},{&quot;type&quot;:&quot;region&quot;,&quot;label&quot;:&quot;🇺🇸 Region: US&quot;,&quot;id&quot;:&quot;region:us&quot;}],&quot;hasBlockedOids&quot;:false,&quot;region&quot;:&quot;us&quot;,&quot;isBenchmark&quot;:false,&quot;isTraces&quot;:false},&quot;discussionsStats&quot;:{&quot;closed&quot;:0,&quot;open&quot;:2,&quot;total&quot;:2}}"><!--[-1--><!--]--> <header class="bg-linear-to-t border-b border-gray-100 pt-6 sm:pt-9 from-gray-50-to-white via-white dark:via-gray-950 "><!--[--><!--]--> <div class="container relative "><h1 class="flex flex-wrap items-center max-md:leading-tight mb-3 text-lg max-sm:gap-y-1.5 md:text-xl"><!--[0--><!----><a href="/datasets" class="group flex items-center "><!--[--><svg class="sm:mr-1.5 -mr-1 text-gray-400 " xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 25 25"><ellipse cx="12.5" cy="5" fill="currentColor" fill-opacity="0.25" rx="7.5" ry="2"></ellipse><path d="M12.5 15C16.6421 15 20 14.1046 20 13V20C20 21.1046 16.6421 22 12.5 22C8.35786 22 5 21.1046 5 20V13C5 14.1046 8.35786 15 12.5 15Z" fill="currentColor" opacity="0.5"></path><path d="M12.5 7C16.6421 7 20 6.10457 20 5V11.5C20 12.6046 16.6421 13.5 12.5 13.5C8.35786 13.5 5 12.6046 5 11.5V5C5 6.10457 8.35786 7 12.5 7Z" fill="currentColor" opacity="0.5"></path><path d="M5.23628 12C5.08204 12.1598 5 12.8273 5 13C5 14.1046 8.35786 15 12.5 15C16.6421 15 20 14.1046 20 13C20 12.8273 19.918 12.1598 19.7637 12C18.9311 12.8626 15.9947 13.5 12.5 13.5C9.0053 13.5 6.06886 12.8626 5.23628 12Z" fill="currentColor"></path></svg><!--]--> <span class="mr-2.5 font-semibold text-gray-400 group-hover:text-gray-500 max-sm:hidden">Datasets:</span><!----></a><!----> <hr class="mx-1.5 h-2 translate-y-px rounded-sm border-r dark:border-gray-600 sm:hidden"/><!--]--> <!--[0--><div class="group flex flex-none items-center"><div class="relative mr-1 flex items-center"><!--[-1--><!--]--> <!--[-1--><!--[--><span class="inline-block "><span class="contents"><a href="/JosephStoneCellAI" class="text-gray-400 hover:text-blue-600"><div class="flex-none  "><img alt="" class="size-3.5 rounded-full  flex-none select-none " src="/avatars/c6211b96c36b8ef4d0aa73e7287ec258.svg" crossorigin="anonymous"/> <!--[-1--><!--]--></div><!----></a><!----><!----></span> <!--[-1--><!--]--></span><!--]--><!--]--></div> <!--[--><span class="inline-block "><span class="contents"><a href="/JosephStoneCellAI" class="text-gray-400 hover:text-blue-600">JosephStoneCellAI</a><!----><!----></span> <!--[-1--><!--]--></span><!--]--> <div class="mx-0.5 text-gray-300">/</div></div><!--]--> <div class="max-w-full "><a class="break-words font-mono font-semibold hover:text-blue-600 " href="/datasets/JosephStoneCellAI/SPFsmartGATE">SPFsmartGATE</a> <!--[0--><!----><button class="text-sm mr-4 focus:outline-hidden inline-flex cursor-pointer items-center text-sm  mx-0.5   text-gray-600  " title="Copy dataset name to clipboard" type="button"><!--[0--><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!--]--><!--]--> <!--[-1--><!--]--></button><!----><!--]--></div><!----> <!--[-1--><!--]--> <!--[-1--><!--]--> <!--[0--><div class="inline-flex items-center overflow-hidden whitespace-nowrap rounded-md border bg-white text-sm leading-none text-gray-500  mr-2"><button class="relative flex items-center overflow-hidden from-red-50 to-transparent dark:from-red-900 px-1.5 py-1 hover:bg-linear-to-t focus:outline-hidden" title="Like"><svg class="left-1.5 absolute" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32" fill="currentColor"><path d="M22.45,6a5.47,5.47,0,0,1,3.91,1.64,5.7,5.7,0,0,1,0,8L16,26.13,5.64,15.64a5.7,5.7,0,0,1,0-8,5.48,5.48,0,0,1,7.82,0L16,10.24l2.53-2.58A5.44,5.44,0,0,1,22.45,6m0-2a7.47,7.47,0,0,0-5.34,2.24L16,7.36,14.89,6.24a7.49,7.49,0,0,0-10.68,0,7.72,7.72,0,0,0,0,10.82L16,29,27.79,17.06a7.72,7.72,0,0,0,0-10.82A7.49,7.49,0,0,0,22.45,4Z"></path></svg><!----> <!--[-1--><!--]--> <span class="ml-4 pl-0.5 ">like</span></button> <button class="focus:outline-hidden flex items-center border-l px-1.5 py-1 text-gray-400 hover:bg-gray-50 focus:bg-gray-100 dark:hover:bg-gray-900 dark:focus:bg-gray-800" title="See users who liked this repository">2</button></div> <!--[0--><!--[-1--><!--]--> <dialog class="shadow-alternate z-40 mx-4 my-auto h-fit select-text overflow-hidden rounded-xl bg-white max-sm:max-w-[calc(100dvw-2rem)] sm:mx-auto lg:mt-26 md:portrait:mt-30 xl:mt-30 2xl:mt-32 w-full sm:w-96 max-w-[calc(100%-4rem)] text-base  "><div tabindex="-1" class="outline-none focus:ring-0 focus-visible:ring-0"><!--[-1--><!--]--></div></dialog><!--]--><!--]--> <!--[-1--><!--]--> <!--[--><!--]--></h1> <!--[--><!--[0--><div class="mb-3 flex flex-wrap md:mb-4"><!--[--><!--[--><div class="mr-1 flex flex-wrap items-center"><!--[0--><span class="mb-1 mr-1 p-1 text-sm leading-tight text-gray-400 md:mb-1.5">DOI:</span><!--]--> <!--[--><!--[0--><!--[0--><div class="relative inline-block "><button class="group mr-1 mb-1 md:mr-1.5 md:mb-1.5  rounded-lg rounded-br-none " type="button"><!--[0--><!--[--><div slot="button"><div class="tag   tag-white relative rounded-br-none pr-2.5"><!--[-1--><!--]--> <!--[-1--><!--]--> <!--[-1--><span>doi:10.57967/hf/8460</span><!--]--> <!--[-1--><!--]--> <!--[--><!--[0--><div class="border-br-gray-200 absolute bottom-0.5 right-0.5 h-1 w-1 border-[3px] border-l-transparent border-t-transparent border-b-gray-200 border-r-gray-200 group-hover:border-b-gray-400 group-hover:border-r-gray-400 dark:border-b-gray-700 dark:border-r-gray-700 group-hover:dark:border-b-gray-400 group-hover:dark:border-r-gray-400"></div><!--]--><!--]--></div><!----></div><!--]--><!--]--> <!--[-1--><!--]--></button> <!--[-1--><!--]-->  <!--[-1--><!--]--></div><!--]--><!--]--><!--]--> <!--[-1--><!--]--></div><div class="mr-1 flex flex-wrap items-center"><!--[0--><span class="mb-1 mr-1 p-1 text-sm leading-tight text-gray-400 md:mb-1.5">License:</span><!--]--> <!--[--><!--[0--><!--[1--><div class="relative inline-block "><button class="group mr-1 mb-1 md:mr-1.5 md:mb-1.5  rounded-full rounded-br-none " type="button"><!--[0--><!--[--><div slot="button"><div class="tag rounded-full  tag-white relative rounded-br-none pr-2.5"><!--[8--><!--[--><svg class="text-xs text-gray-900" width="1em" height="1em" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.46009 5.0945V6.88125C1.46009 7.25201 1.75937 7.55129 2.13012 7.55129C2.50087 7.55129 2.80016 7.25201 2.80016 6.88125V5.0945C2.80016 4.72375 2.50087 4.42446 2.13012 4.42446C1.75937 4.42446 1.46009 4.72375 1.46009 5.0945ZM4.14022 5.0945V6.88125C4.14022 7.25201 4.4395 7.55129 4.81026 7.55129C5.18101 7.55129 5.48029 7.25201 5.48029 6.88125V5.0945C5.48029 4.72375 5.18101 4.42446 4.81026 4.42446C4.4395 4.42446 4.14022 4.72375 4.14022 5.0945ZM1.23674 9.78473H8.38377C8.75452 9.78473 9.0538 9.48545 9.0538 9.1147C9.0538 8.74395 8.75452 8.44466 8.38377 8.44466H1.23674C0.865993 8.44466 0.566711 8.74395 0.566711 9.1147C0.566711 9.48545 0.865993 9.78473 1.23674 9.78473ZM6.82036 5.0945V6.88125C6.82036 7.25201 7.11964 7.55129 7.49039 7.55129C7.86114 7.55129 8.16042 7.25201 8.16042 6.88125V5.0945C8.16042 4.72375 7.86114 4.42446 7.49039 4.42446C7.11964 4.42446 6.82036 4.72375 6.82036 5.0945ZM4.39484 0.623142L0.865993 2.48137C0.682851 2.57517 0.566711 2.76725 0.566711 2.97273C0.566711 3.28094 0.816857 3.53109 1.12507 3.53109H8.49991C8.80365 3.53109 9.0538 3.28094 9.0538 2.97273C9.0538 2.76725 8.93766 2.57517 8.75452 2.48137L5.22568 0.623142C4.9666 0.484669 4.65391 0.484669 4.39484 0.623142V0.623142Z" fill="currentColor"></path></svg><!--]--><!--]--> <!--[-1--><!--]--> <!--[-1--><span>apache-2.0</span><!--]--> <!--[-1--><!--]--> <!--[--><!--[0--><div class="border-br-gray-200 absolute bottom-0.5 right-0.5 h-1 w-1 border-[3px] border-l-transparent border-t-transparent border-b-gray-200 border-r-gray-200 group-hover:border-b-gray-400 group-hover:border-r-gray-400 dark:border-b-gray-700 dark:border-r-gray-700 group-hover:dark:border-b-gray-400 group-hover:dark:border-r-gray-400"></div><!--]--><!--]--></div><!----></div><!--]--><!--]--> <!--[-1--><!--]--></button> <!--[-1--><!--]-->  <!--[-1--><!--]--></div><!--]--><!--]--><!--]--> <!--[-1--><!--]--></div><div class="mr-1 flex flex-wrap items-center"><!--[-1--><!--]--> <!--[--><!--[0--><!--[-1--><!--[-1--><!--]--><!--]--><!--]--><!--]--> <!--[-1--><!--]--></div><!--]--><!--]--></div><!--]--><!--]--> <div class="flex flex-col-reverse lg:flex-row lg:items-center lg:justify-between"><!--[--><div class="-mb-px flex h-12 items-center overflow-x-auto overflow-y-hidden "><!--[-1--><!--]--> <!--[--><!--[--><a class="tab-alternate active" href="/datasets/JosephStoneCellAI/SPFsmartGATE"><!--[0--><!--[--><svg class="mr-1.5 text-gray-400 flex-none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path class="uim-quaternary" d="M20.23 7.24L12 12L3.77 7.24a1.98 1.98 0 0 1 .7-.71L11 2.76c.62-.35 1.38-.35 2 0l6.53 3.77c.29.173.531.418.7.71z" opacity=".25" fill="currentColor"></path><path class="uim-tertiary" d="M12 12v9.5a2.09 2.09 0 0 1-.91-.21L4.5 17.48a2.003 2.003 0 0 1-1-1.73v-7.5a2.06 2.06 0 0 1 .27-1.01L12 12z" opacity=".5" fill="currentColor"></path><path class="uim-primary" d="M20.5 8.25v7.5a2.003 2.003 0 0 1-1 1.73l-6.62 3.82c-.275.13-.576.198-.88.2V12l8.23-4.76c.175.308.268.656.27 1.01z" fill="currentColor"></path></svg><!--]--><!--]--> <!--[0-->Dataset card<!--]--> <!--[-1--><!--]--> <!--[--><!--[-1--><!--]--><!--]--></a><a class="tab-alternate" href="/datasets/JosephStoneCellAI/SPFsmartGATE/tree/main"><!--[0--><!--[--><svg class="mr-1.5 text-gray-400 flex-none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path class="uim-tertiary" d="M21 19h-8a1 1 0 0 1 0-2h8a1 1 0 0 1 0 2zm0-4h-8a1 1 0 0 1 0-2h8a1 1 0 0 1 0 2zm0-8h-8a1 1 0 0 1 0-2h8a1 1 0 0 1 0 2zm0 4h-8a1 1 0 0 1 0-2h8a1 1 0 0 1 0 2z" opacity=".5" fill="currentColor"></path><path class="uim-primary" d="M9 19a1 1 0 0 1-1-1V6a1 1 0 0 1 2 0v12a1 1 0 0 1-1 1zm-6-4.333a1 1 0 0 1-.64-1.769L3.438 12l-1.078-.898a1 1 0 0 1 1.28-1.538l2 1.667a1 1 0 0 1 0 1.538l-2 1.667a.999.999 0 0 1-.64.231z" fill="currentColor"></path></svg><!--]--><!--]--> <!--[-1--><span class="xl:hidden">Files</span> <span class="hidden xl:inline">Files and versions</span><!--]--> <!--[-1--><!--]--> <!--[--><!--[0--><span class="inline-block "><span class="contents"><div class="shadow-purple-500/10 ml-2 inline-flex -translate-y-px items-center gap-0.5 rounded-md border bg-white px-1 py-0.5 align-middle text-xs font-semibold leading-none text-gray-800 shadow-sm dark:border-gray-700 dark:bg-gradient-to-b dark:from-gray-925 dark:to-gray-925 dark:text-gray-300"><svg class="size-3 " xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 12 12"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.14 3.64 5.1 4.92 2.98 2.28h2.06l1.1 1.36Zm0 4.72-1.1 1.36H2.98l2.13-2.64 1.03 1.28Zm4.9 1.36L8.03 6l3-3.72H8.96L5.97 6l3 3.72h2.06Z" fill="#7875FF"></path><path d="M4.24 6 2.6 8.03.97 6 2.6 3.97 4.24 6Z" fill="#FF7F41" opacity="1"></path></svg><!----> <span>xet</span></div><!----><!----></span> <!--[-1--><!--]--></span><!--]--><!--]--></a><a class="tab-alternate" href="/datasets/JosephStoneCellAI/SPFsmartGATE/discussions"><!--[0--><!--[--><svg class="mr-1.5 text-gray-400 flex-none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M20.6081 3C21.7684 3 22.8053 3.49196 23.5284 4.38415C23.9756 4.93678 24.4428 5.82749 24.4808 7.16133C24.9674 7.01707 25.4353 6.93643 25.8725 6.93643C26.9833 6.93643 27.9865 7.37587 28.696 8.17411C29.6075 9.19872 30.0124 10.4579 29.8361 11.7177C29.7523 12.3177 29.5581 12.8555 29.2678 13.3534C29.8798 13.8646 30.3306 14.5763 30.5485 15.4322C30.719 16.1032 30.8939 17.5006 29.9808 18.9403C30.0389 19.0342 30.0934 19.1319 30.1442 19.2318C30.6932 20.3074 30.7283 21.5229 30.2439 22.6548C29.5093 24.3704 27.6841 25.7219 24.1397 27.1727C21.9347 28.0753 19.9174 28.6523 19.8994 28.6575C16.9842 29.4379 14.3477 29.8345 12.0653 29.8345C7.87017 29.8345 4.8668 28.508 3.13831 25.8921C0.356375 21.6797 0.754104 17.8269 4.35369 14.1131C6.34591 12.058 7.67023 9.02782 7.94613 8.36275C8.50224 6.39343 9.97271 4.20438 12.4172 4.20438H12.4179C12.6236 4.20438 12.8314 4.2214 13.0364 4.25468C14.107 4.42854 15.0428 5.06476 15.7115 6.02205C16.4331 5.09583 17.134 4.359 17.7682 3.94323C18.7242 3.31737 19.6794 3 20.6081 3ZM20.6081 5.95917C20.2427 5.95917 19.7963 6.1197 19.3039 6.44225C17.7754 7.44319 14.8258 12.6772 13.7458 14.7131C13.3839 15.3952 12.7655 15.6837 12.2086 15.6837C11.1036 15.6837 10.2408 14.5497 12.1076 13.1085C14.9146 10.9402 13.9299 7.39584 12.5898 7.1776C12.5311 7.16799 12.4731 7.16355 12.4172 7.16355C11.1989 7.16355 10.6615 9.33114 10.6615 9.33114C10.6615 9.33114 9.0863 13.4148 6.38031 16.206C3.67434 18.998 3.5346 21.2388 5.50675 24.2246C6.85185 26.2606 9.42666 26.8753 12.0653 26.8753C14.8021 26.8753 17.6077 26.2139 19.1799 25.793C19.2574 25.7723 28.8193 22.984 27.6081 20.6107C27.4046 20.212 27.0693 20.0522 26.6471 20.0522C24.9416 20.0522 21.8393 22.6726 20.5057 22.6726C20.2076 22.6726 19.9976 22.5416 19.9116 22.222C19.3433 20.1173 28.552 19.2325 27.7758 16.1839C27.639 15.6445 27.2677 15.4256 26.746 15.4263C24.4923 15.4263 19.4358 19.5181 18.3759 19.5181C18.2949 19.5181 18.2368 19.4937 18.2053 19.4419C17.6743 18.557 17.9653 17.9394 21.7082 15.6009C25.4511 13.2617 28.0783 11.8545 26.5841 10.1752C26.4121 9.98141 26.1684 9.8956 25.8725 9.8956C23.6001 9.89634 18.2311 14.9403 18.2311 14.9403C18.2311 14.9403 16.7821 16.496 15.9057 16.496C15.7043 16.496 15.533 16.4139 15.4169 16.2112C14.7956 15.1296 21.1879 10.1286 21.5484 8.06535C21.7928 6.66715 21.3771 5.95917 20.6081 5.95917Z" fill="#FF9D00"></path><path d="M5.50686 24.2246C3.53472 21.2387 3.67446 18.9979 6.38043 16.206C9.08641 13.4147 10.6615 9.33111 10.6615 9.33111C10.6615 9.33111 11.2499 6.95933 12.59 7.17757C13.93 7.39581 14.9139 10.9401 12.1069 13.1084C9.29997 15.276 12.6659 16.7489 13.7459 14.713C14.8258 12.6772 17.7747 7.44316 19.304 6.44221C20.8326 5.44128 21.9089 6.00204 21.5484 8.06532C21.188 10.1286 14.795 15.1295 15.4171 16.2118C16.0391 17.2934 18.2312 14.9402 18.2312 14.9402C18.2312 14.9402 25.0907 8.49588 26.5842 10.1752C28.0776 11.8545 25.4512 13.2616 21.7082 15.6008C17.9646 17.9393 17.6744 18.557 18.2054 19.4418C18.7372 20.3266 26.9998 13.1351 27.7759 16.1838C28.5513 19.2324 19.3434 20.1173 19.9117 22.2219C20.48 24.3274 26.3979 18.2382 27.6082 20.6107C28.8193 22.9839 19.2574 25.7722 19.18 25.7929C16.0914 26.62 8.24723 28.3726 5.50686 24.2246Z" fill="#FFD21E"></path></svg><!--]--><!--]--> <!--[0-->Community<!--]--> <!--[0--><div class="ml-1.5 flex h-4 min-w-[1rem] items-center justify-center rounded px-1 text-xs leading-none shadow-sm bg-black text-white dark:bg-gray-800 dark:text-gray-200">2</div><!--]--> <!--[--><!--[-1--><!--]--><!--]--></a><!--]--><!--]--></div><!--]--> <!--[--><!--]--></div></div></header> <!--[-1--><!--]--><!----><!----></div> <div class="container relative flex flex-col md:grid md:space-y-0 w-full md:grid-cols-12 md:flex-1 md:grid-rows-full space-y-4 md:gap-6  "><!--[--><!--[-1--><section class="pt-6 border-gray-100 md:col-span-8 pb-24 relative break-words copiable-code-container"><!--[--><!--[-1--><!--]--> <!--[0--><div class="SVELTE_HYDRATER contents" data-target="UnsafeBanner" data-props="{&quot;classNames&quot;:&quot;mb-4&quot;,&quot;repoId&quot;:&quot;JosephStoneCellAI/SPFsmartGATE&quot;,&quot;repoType&quot;:&quot;dataset&quot;,&quot;minLevel&quot;:&quot;unsafe&quot;}"><!--[-1--><!--]--><!----></div> <!--[-1--><!--]--> <!--[-1--><div class="SVELTE_HYDRATER contents" data-target="DatasetViewer" data-props="{&quot;data&quot;:{&quot;kind&quot;:&quot;ConfigError&quot;,&quot;error&quot;:{&quot;error&quot;:&quot;No (supported) data files found in JosephStoneCellAI/SPFsmartGATE&quot;,&quot;error_code&quot;:&quot;DataFilesNotFoundError&quot;},&quot;partial&quot;:false,&quot;jwt&quot;:&quot;eyJhbGciOiJFZERTQSJ9.eyJyZWFkIjp0cnVlLCJwZXJtaXNzaW9ucyI6eyJyZXBvLmNvbnRlbnQucmVhZCI6dHJ1ZX0sImlhdCI6MTc3OTIzNTA1MCwic3ViIjoiL2RhdGFzZXRzL0pvc2VwaFN0b25lQ2VsbEFJL1NQRnNtYXJ0R0FURSIsImV4cCI6MTc3OTIzODY1MCwiaXNzIjoiaHR0cHM6Ly9odWdnaW5nZmFjZS5jbyJ9.TDGstOYgKlommQyYEmlvbsb4xJyN-gWXV7Nf6rOduinOFLT9PR136hiZOg10tCuyanag_jJcyfxn9mI9YdAFDg&quot;},&quot;dataset&quot;:&quot;JosephStoneCellAI/SPFsmartGATE&quot;,&quot;isGated&quot;:false,&quot;isPrivate&quot;:false,&quot;hasParquetFormat&quot;:false,&quot;isTracesDataset&quot;:false,&quot;author&quot;:{&quot;_id&quot;:&quot;697a044b63e0a4e88646d21f&quot;,&quot;avatarUrl&quot;:&quot;/avatars/c6211b96c36b8ef4d0aa73e7287ec258.svg&quot;,&quot;fullname&quot;:&quot;stone&quot;,&quot;name&quot;:&quot;JosephStoneCellAI&quot;,&quot;type&quot;:&quot;user&quot;,&quot;isPro&quot;:false,&quot;isHf&quot;:false,&quot;isHfAdmin&quot;:false,&quot;isMod&quot;:false,&quot;isUserFollowing&quot;:false},&quot;compact&quot;:true,&quot;isLoggedIn&quot;:false}"><!--[-1--><div class="flex flex-col overflow-hidden shadow-xs mx-auto mb-10 rounded-lg border pt-2 dark:ring dark:ring-white/5  px-2.5"><!--[1--><div class="mb-2 flex flex-wrap items-center gap-2"><div class="mr-auto flex items-center"><!--[-1--><svg class="mr-1 flex-none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 12 12"><path fill="currentColor" d="M2.5 2h7a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-7a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1Zm0 2v2h3V4h-3Zm4 0v2h3V4h-3Zm-4 3v2h3V7h-3Zm4 0v2h3V7h-3Z"></path></svg><!--]--> <div class="whitespace-nowrap font-semibold">Dataset Viewer</div> <!--[-1--><!--]--></div><!----> <!--[-1--><!--]--> <!--[-1--><!--]--></div><!--]--> <!--[0--><div class=" py-1 font-mono text-xs text-gray-600"><!--[3--><p class="mb-2">The dataset viewer is not available because its heuristics could not detect any <a class="underline" href="https://huggingface.co/docs/hub/datasets-adding#file-formats">supported data files</a>. You can try <a class="underline" href="https://huggingface.co/docs/hub/datasets-adding">uploading</a> some data
		files, or <a class="underline" href="https://huggingface.co/docs/hub/datasets-data-files-configuration">configuring</a> the data
		files location manually.</p><!--]--></div><!--]--></div><!--]--><!----></div><!--]--><!--]--> <!--[1--><!--[-1--><!--]--> <div class="SVELTE_HYDRATER contents" data-target="RepoCodeCopy" data-props="{}"><div></div><!----></div> <!--[-1--><!--]--> <div class="SVELTE_HYDRATER contents" data-target="SideNavigation" data-props="{&quot;titleTree&quot;:[{&quot;id&quot;:&quot;readmemd----license-apache-20-language---en-tags---mcp-server---ai-gateway---security---rust---agent-framework---tool-enforcement---lmdb---rag---transformer---mesh-network---voice---android---termux---self-hosted---ai-safety---memory-system---flint---build-anchor---complexity-formula---agent-memory---p2p---quic---heed---self-learning---harness---ai-memory---persistent-memory---online-learning---agent-tools---tool-gateway---web-automation---browser-automation---social-media---p2p-communication---voice-synthesis---tts---embedded-database---zero-copy---code-search---filesystem---git---database-pipeline_tag-text-generation&quot;,&quot;label&quot;:&quot;README.md---\nlicense: apache-2.0\nlanguage:\n- en\ntags:\n- mcp-server\n- ai-gateway\n- security\n- rust\n- agent-framework\n- tool-enforcement\n- lmdb\n- rag\n- transformer\n- mesh-network\n- voice\n- android\n- termux\n- self-hosted\n- ai-safety\n- memory-system\n- flint\n- build-anchor\n- complexity-formula\n- agent-memory\n- p2p\n- quic\n- heed\n- self-learning\n- harness\n- ai-memory\n- persistent-memory\n- online-learning\n- agent-tools\n- tool-gateway\n- web-automation\n- browser-automation\n- social-media\n- p2p-communication\n- voice-synthesis\n- tts\n- embedded-database\n- zero-copy\n- code-search\n- filesystem\n- git\n- database\npipeline_tag: text-generation&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;README.md---\nlicense: apache-2.0\nlanguage:\n- en\ntags:\n- mcp-server\n- ai-gateway\n- security\n- rust\n- agent-framework\n- tool-enforcement\n- lmdb\n- rag\n- transformer\n- mesh-network\n- voice\n- android\n- termux\n- self-hosted\n- ai-safety\n- memory-system\n- flint\n- build-anchor\n- complexity-formula\n- agent-memory\n- p2p\n- quic\n- heed\n- self-learning\n- harness\n- ai-memory\n- persistent-memory\n- online-learning\n- agent-tools\n- tool-gateway\n- web-automation\n- browser-automation\n- social-media\n- p2p-communication\n- voice-synthesis\n- tts\n- embedded-database\n- zero-copy\n- code-search\n- filesystem\n- git\n- database\npipeline_tag: text-generation&quot;},{&quot;id&quot;:&quot;quick-start&quot;,&quot;label&quot;:&quot;Quick Start&quot;,&quot;children&quot;:[{&quot;id&quot;:&quot;route-other-models-through-claude-cli&quot;,&quot;label&quot;:&quot;Route Other Models Through Claude CLI&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Route Other Models Through Claude CLI&quot;},{&quot;id&quot;:&quot;build-notes&quot;,&quot;label&quot;:&quot;Build Notes&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Build Notes&quot;}],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Quick Start&quot;},{&quot;id&quot;:&quot;overview&quot;,&quot;label&quot;:&quot;Overview&quot;,&quot;children&quot;:[{&quot;id&quot;:&quot;web-agent-feature&quot;,&quot;label&quot;:&quot;Web Agent Feature&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Web Agent Feature&quot;},{&quot;id&quot;:&quot;why-heed--lmdb&quot;,&quot;label&quot;:&quot;Why Heed + LMDB&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Why Heed + LMDB&quot;}],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Overview&quot;},{&quot;id&quot;:&quot;architecture&quot;,&quot;label&quot;:&quot;Architecture&quot;,&quot;children&quot;:[{&quot;id&quot;:&quot;module-inventory-42-modules&quot;,&quot;label&quot;:&quot;Module Inventory (42 modules)&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Module Inventory (42 modules)&quot;}],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Architecture&quot;},{&quot;id&quot;:&quot;the-spf-formula&quot;,&quot;label&quot;:&quot;The SPF Formula&quot;,&quot;children&quot;:[{&quot;id&quot;:&quot;complexity-calculation&quot;,&quot;label&quot;:&quot;Complexity Calculation&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Complexity Calculation&quot;},{&quot;id&quot;:&quot;dynamic-analysis-allocation&quot;,&quot;label&quot;:&quot;Dynamic Analysis Allocation&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Dynamic Analysis Allocation&quot;},{&quot;id&quot;:&quot;tier-allocation&quot;,&quot;label&quot;:&quot;Tier Allocation&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Tier Allocation&quot;},{&quot;id&quot;:&quot;master-equation-subtask-success&quot;,&quot;label&quot;:&quot;Master Equation (Subtask Success)&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Master Equation (Subtask Success)&quot;}],&quot;isValid&quot;:true,&quot;title&quot;:&quot;The SPF Formula&quot;},{&quot;id&quot;:&quot;security&quot;,&quot;label&quot;:&quot;Security&quot;,&quot;children&quot;:[{&quot;id&quot;:&quot;gate-enforcement-6-steps&quot;,&quot;label&quot;:&quot;Gate Enforcement (6 Steps)&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Gate Enforcement (6 Steps)&quot;},{&quot;id&quot;:&quot;build-anchor-protocol&quot;,&quot;label&quot;:&quot;Build Anchor Protocol&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Build Anchor Protocol&quot;},{&quot;id&quot;:&quot;content-inspection&quot;,&quot;label&quot;:&quot;Content Inspection&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Content Inspection&quot;},{&quot;id&quot;:&quot;blocked-paths&quot;,&quot;label&quot;:&quot;Blocked Paths&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Blocked Paths&quot;},{&quot;id&quot;:&quot;command-whitelist-stage-0&quot;,&quot;label&quot;:&quot;Command Whitelist (Stage 0)&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Command Whitelist (Stage 0)&quot;},{&quot;id&quot;:&quot;default-deny&quot;,&quot;label&quot;:&quot;Default Deny&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Default Deny&quot;}],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Security&quot;},{&quot;id&quot;:&quot;mcp-tools-81-total&quot;,&quot;label&quot;:&quot;MCP Tools (81 Total)&quot;,&quot;children&quot;:[{&quot;id&quot;:&quot;core-gate-tools&quot;,&quot;label&quot;:&quot;Core Gate Tools&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Core Gate Tools&quot;},{&quot;id&quot;:&quot;gated-file-operations&quot;,&quot;label&quot;:&quot;Gated File Operations&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Gated File Operations&quot;},{&quot;id&quot;:&quot;brain--memory-tools&quot;,&quot;label&quot;:&quot;Brain / Memory Tools&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Brain / Memory Tools&quot;},{&quot;id&quot;:&quot;agent-state-tools&quot;,&quot;label&quot;:&quot;Agent State Tools&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Agent State Tools&quot;},{&quot;id&quot;:&quot;flint-transformer-tools&quot;,&quot;label&quot;:&quot;FLINT Transformer Tools&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;FLINT Transformer Tools&quot;},{&quot;id&quot;:&quot;web-browser-tools&quot;,&quot;label&quot;:&quot;Web Browser Tools&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Web Browser Tools&quot;},{&quot;id&quot;:&quot;rag-collector-tools&quot;,&quot;label&quot;:&quot;RAG Collector Tools&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;RAG Collector Tools&quot;},{&quot;id&quot;:&quot;mesh-network-tools&quot;,&quot;label&quot;:&quot;Mesh Network Tools&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Mesh Network Tools&quot;},{&quot;id&quot;:&quot;voice-tools&quot;,&quot;label&quot;:&quot;Voice Tools&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Voice Tools&quot;},{&quot;id&quot;:&quot;chat-tools&quot;,&quot;label&quot;:&quot;Chat Tools&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Chat Tools&quot;},{&quot;id&quot;:&quot;network-pool-tools&quot;,&quot;label&quot;:&quot;Network Pool Tools&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Network Pool Tools&quot;},{&quot;id&quot;:&quot;configuration-tools&quot;,&quot;label&quot;:&quot;Configuration Tools&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Configuration Tools&quot;},{&quot;id&quot;:&quot;project-management-tools&quot;,&quot;label&quot;:&quot;Project Management Tools&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Project Management Tools&quot;},{&quot;id&quot;:&quot;communication-hub&quot;,&quot;label&quot;:&quot;Communication Hub&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Communication Hub&quot;},{&quot;id&quot;:&quot;notebook-tools&quot;,&quot;label&quot;:&quot;Notebook Tools&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Notebook Tools&quot;},{&quot;id&quot;:&quot;user-only-tools-ai-agents-blocked&quot;,&quot;label&quot;:&quot;User-Only Tools (AI agents blocked)&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;User-Only Tools (AI agents blocked)&quot;}],&quot;isValid&quot;:true,&quot;title&quot;:&quot;MCP Tools (81 Total)&quot;},{&quot;id&quot;:&quot;flint-transformer&quot;,&quot;label&quot;:&quot;FLINT Transformer&quot;,&quot;children&quot;:[{&quot;id&quot;:&quot;learning-pipeline&quot;,&quot;label&quot;:&quot;Learning Pipeline&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Learning Pipeline&quot;},{&quot;id&quot;:&quot;memory-lifecycle-tiered-promotion&quot;,&quot;label&quot;:&quot;Memory Lifecycle (Tiered Promotion)&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Memory Lifecycle (Tiered Promotion)&quot;}],&quot;isValid&quot;:true,&quot;title&quot;:&quot;FLINT Transformer&quot;},{&quot;id&quot;:&quot;brain-system&quot;,&quot;label&quot;:&quot;Brain System&quot;,&quot;children&quot;:[{&quot;id&quot;:&quot;collections&quot;,&quot;label&quot;:&quot;Collections&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Collections&quot;},{&quot;id&quot;:&quot;memory-triad-redundant-persistence&quot;,&quot;label&quot;:&quot;Memory Triad (Redundant Persistence)&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Memory Triad (Redundant Persistence)&quot;}],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Brain System&quot;},{&quot;id&quot;:&quot;mesh-network&quot;,&quot;label&quot;:&quot;Mesh Network&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Mesh Network&quot;},{&quot;id&quot;:&quot;voice-pipeline&quot;,&quot;label&quot;:&quot;Voice Pipeline&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Voice Pipeline&quot;},{&quot;id&quot;:&quot;result-compression-fl-2&quot;,&quot;label&quot;:&quot;Result Compression (FL-2)&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Result Compression (FL-2)&quot;},{&quot;id&quot;:&quot;build&quot;,&quot;label&quot;:&quot;Build&quot;,&quot;children&quot;:[{&quot;id&quot;:&quot;dependencies&quot;,&quot;label&quot;:&quot;Dependencies&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Dependencies&quot;}],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Build&quot;},{&quot;id&quot;:&quot;configuration&quot;,&quot;label&quot;:&quot;Configuration&quot;,&quot;children&quot;:[{&quot;id&quot;:&quot;mcp-server-config&quot;,&quot;label&quot;:&quot;MCP Server Config&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;MCP Server Config&quot;},{&quot;id&quot;:&quot;claude-cli-config&quot;,&quot;label&quot;:&quot;Claude CLI Config&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Claude CLI Config&quot;},{&quot;id&quot;:&quot;spf-config&quot;,&quot;label&quot;:&quot;SPF Config&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;SPF Config&quot;}],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Configuration&quot;},{&quot;id&quot;:&quot;file-structure&quot;,&quot;label&quot;:&quot;File Structure&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;File Structure&quot;},{&quot;id&quot;:&quot;current-status&quot;,&quot;label&quot;:&quot;Current Status&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Current Status&quot;},{&quot;id&quot;:&quot;notes&quot;,&quot;label&quot;:&quot;Notes&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;Notes&quot;},{&quot;id&quot;:&quot;license&quot;,&quot;label&quot;:&quot;License&quot;,&quot;children&quot;:[],&quot;isValid&quot;:true,&quot;title&quot;:&quot;License&quot;}],&quot;classNames&quot;:&quot;top-6&quot;}"><!--[0--><div class="absolute -left-12 bottom-0 top-0 z-10 top-6"><div class="sticky top-4 flex"><div class="h-7 pt-[0.175rem]"><span class="peer" tabindex="0"><button class="select-none text-gray-400 hover:cursor-pointer hover:text-gray-800 dark:text-gray-500 dark:hover:text-gray-400"><svg width="1em" height="1em" viewBox="0 0 10 10" class="text-lg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" role="img" preserveAspectRatio="xMidYMid meet" fill="currentColor"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.65039 2.9999C1.65039 2.8066 1.80709 2.6499 2.00039 2.6499H8.00039C8.19369 2.6499 8.35039 2.8066 8.35039 2.9999C8.35039 3.1932 8.19369 3.3499 8.00039 3.3499H2.00039C1.80709 3.3499 1.65039 3.1932 1.65039 2.9999ZM1.65039 4.9999C1.65039 4.8066 1.80709 4.6499 2.00039 4.6499H8.00039C8.19369 4.6499 8.35039 4.8066 8.35039 4.9999C8.35039 5.1932 8.19369 5.3499 8.00039 5.3499H2.00039C1.80709 5.3499 1.65039 5.1932 1.65039 4.9999ZM2.00039 6.6499C1.80709 6.6499 1.65039 6.8066 1.65039 6.9999C1.65039 7.1932 1.80709 7.3499 2.00039 7.3499H8.00039C8.19369 7.3499 8.35039 7.1932 8.35039 6.9999C8.35039 6.8066 8.19369 6.6499 8.00039 6.6499H2.00039Z"></path></svg><!----></button></span> <div class="invisible w-0 -translate-x-8 -translate-y-6 overflow-hidden rounded-xl border bg-white transition-transform hover:visible hover:w-52 hover:translate-x-0 peer-focus-within:visible peer-focus-within:w-52 peer-focus-within:translate-x-0"><nav aria-label="Secondary" class="max-h-[550px] overflow-y-auto p-3"><ul><!--[--><li class="mb-3 text-sm last:mb-0"><a class="mb-1 block break-words font-semibold text-gray-700 *:break-words hover:underline active:text-gray-900 dark:active:text-gray-200" href="#readmemd----license-apache-20-language---en-tags---mcp-server---ai-gateway---security---rust---agent-framework---tool-enforcement---lmdb---rag---transformer---mesh-network---voice---android---termux---self-hosted---ai-safety---memory-system---flint---build-anchor---complexity-formula---agent-memory---p2p---quic---heed---self-learning---harness---ai-memory---persistent-memory---online-learning---agent-tools---tool-gateway---web-automation---browser-automation---social-media---p2p-communication---voice-synthesis---tts---embedded-database---zero-copy---code-search---filesystem---git---database-pipeline_tag-text-generation" title="README.md---

license: apache-2.0 language:

README.md--- license: apache-2.0 language:
  • en tags:
  • mcp-server
  • ai-gateway
  • security
  • rust
  • agent-framework
  • tool-enforcement
  • lmdb
  • rag
  • transformer
  • mesh-network
  • voice
  • android
  • termux
  • self-hosted
  • ai-safety
  • memory-system
  • flint
  • build-anchor
  • complexity-formula
  • agent-memory
  • p2p
  • quic
  • heed
  • self-learning
  • harness
  • ai-memory
  • persistent-memory
  • online-learning
  • agent-tools
  • tool-gateway
  • web-automation
  • browser-automation
  • social-media
  • p2p-communication
  • voice-synthesis
  • tts
  • embedded-database
  • zero-copy
  • code-search
  • filesystem
  • git
  • database pipeline_tag: text-generation
  •      _____ _____  ______    _____ __  __          _____ _______    _____       _______ ______ 
      / ____|  __ \|  ____|  / ____|  \/  |   /\   |  __ \__   __|  / ____|   /\|__   __|  ____|
     | (___ | |__) | |__    | (___ | \  / |  /  \  | |__) | | |    | |  __   /  \  | |  | |__   
      \___ \|  ___/|  __|    \___ \| |\/| | / /\ \ |  _  /  | |    | | |_ | / /\ \ | |  |  __|  
      ____) | |    | |       ____) | |  | |/ ____ \| | \ \  | |    | |__| |/ ____ \| |  | |____ 
     |_____/|_|    |_|      |_____/|_|  |_/_/    \_\_|  \_\ |_|     \_____/_/    \_\_|  |______|
    

    SPF Smart Gateway v3.0.0

    MCP Server Gateway with Multi-Layer Security Enforcement, Agent Memory, FLINT Transformer, Mesh Network, and 81 Gated Tools

    NOTE: Full system upload available 1 file download SPFsmartGATE.zip. Repository is actively being populated — some modules may be missing until upload completes. Use .zip for full system

    Copyright (C) 2026 Joseph Stone — All Rights Reserved


    Quick Start

    # Clone into home folder
    git clone <repo-url> ~/SPFsmartGATE
    # Or for clones/SWARMagents:
    # ~/SWARMagents/1/SPFsmartGATE
    cd SPFsmartGATE
    cargo build --release
    # Copy optimized binary
    cp ~/SPFsmartGATE/target/release/spf-smart-gate ~/SPFsmartGATE/LIVE/BIN/spf-smart-gate
    chmod +x ~/SPFsmartGATE/LIVE/BIN/spf-smart-gate/spf-smart-gate
    cd SPFsmartGATE/LIVE/BIN/spf-smart-gate ./spf-smart-gate refresh-paths
    # Configure MCP server filepath
    nano ~/SPFsmartGATE/LIVE/LMDB5/.mcp.json
    # Install Claude CLI in project directory
    # Use included configs, deny native Claude CLI tools
    # ~/SPFsmartGATE/LIVE/LMDB5/.claude.json
    # ~/SPFsmartGATE/LIVE/LMDB5/.claude/settings.json
    # Boot into flat-file agent runtime
    cd ~/SPFsmartGATE/LIVE/LMDB5 && claude
    

    # Boot into LMDB-backed agent runtime cd ~/SPFsmartGATE/LIVE/LMDB5.DB && claude

    Route Other Models Through Claude CLI

    Adjust ~/SPFsmartGATE/LIVE/LMDB5/.claude/settings.local.json with your model choice and API key. Uses OpenRouter for API and agent selection. Swap agents without changing sessions or losing project data.

    Build Notes

    • Cross-compiles on Android and Linux with minimal installation
    • Only rebuild on first boot or after system modifications
    • Binary: ~/SPFsmartGATE/LIVE/BIN/spf-smart-gate/spf-smart-gate
    • Built in sandbox SPFsmartGATE/LIVE/TMP SPFsmartGATE/LIVE/PROJECTS
    • WHITELIST IN SPFsmartGATE/LIVE/CONFIG

    Overview

    SPF Smart Gateway is a Rust-based MCP (Model Context Protocol) server that acts as a security gateway for AI tool calls. Every file operation, bash command, brain query, and mesh call routes through compiled Rust enforcement logic.

    No AI hallucination gets past the gate.

    Web Agent Feature

    SPF agents can directly interact with the web and social media platforms through spf_web_api — a full HTTP client supporting GET, POST, PUT, DELETE, PATCH with custom headers and JSON body. Tested and working.

    What agents can do:

    • Post to X/Twitter, Facebook, Instagram, Reddit via their APIs
    • Reply to comments, send messages, manage accounts
    • Make authenticated API calls to any platform with stored API keys
    • Search, fetch, and download web content

    All web API calls pass through the 6-step gate pipeline with rate limiting (30-120 calls/min), content inspection, and full audit logging. Agents never touch the open web unmonitored.

    Why Heed + LMDB

    All persistent storage — config, agent state, brain vectors, session logs, gate training data — runs through heed, a safe Rust wrapper over LMDB. This is what makes SPF extremely fast with a low memory footprint:

    • Zero-copy reads — heed maps LMDB pages directly into memory, no serialization overhead
    • No server process — LMDB is a memory-mapped B-tree library, not a database daemon
    • ACID transactions — single-writer, multi-reader with no lock contention on reads
    • Sub-millisecond lookups — B-tree index, not hash scanning
    • Tiny footprint — entire 138K+ memory store runs in-process with minimal RAM
    • Phone-friendly — designed for Android from day one; heed compiles cleanly on ARM64

    Every tool call, brain search, and memory promotion goes through heed → LMDB. No network hops, no subprocess calls, no SQL parsing. The gate, brain, agent state, and FLINT training all share the same embedded database engine.

    Two agent runtimes:

    • Flat filesLIVE/LMDB5/ (session state in markdown)
    • LMDB databaseLIVE/LMDB5.DB/ (session state in LMDB for persistence)

    Twin folder architecture: flat-file data uploaded via SPF CLI fs tools (user-only access). All agent tool calls are gated, validated, and audited.


    Architecture

    ┌─────────────────────────────────────────────────────────────────┐
    │                       SPF Smart Gateway v3.0.0                  │
    │                        42 Rust modules                          │
    ├─────────────────────────────────────────────────────────────────┤
    │  MCP Server (JSON-RPC 2.0 over stdio)                           │
    │  81 tools │ tool alias map │ Qwen/LLM compatibility             │
    ├─────────────────────────────────────────────────────────────────┤
    │                       GATE (6-Step Pipeline)                    │
    │  Step 0: Source logging                                         │
    │  Step 1: Rate limiting                                          │
    │  Step 2: Complexity calculation (SPF formula)                    │
    │  Step 3: Validation (per-tool: paths, commands, Build Anchor)   │
    │  Step 4: Content inspection (credentials, injection)            │
    │  Step 5: Max mode escalation                                    │
    ├──────────┬──────────┬──────────┬──────────┬─────────────────────┤
    │  FLINT   │  Brain   │  Mesh    │  Voice   │  Browser/RAG        │
    │ (encoder-│ (vectors │ (P2P QUIC│ (TTS/STT │  (reverse proxy     │
    │  decoder │  LMDB +  │  Ed25519 │  espeak- │   search, fetch,    │
    │  ~5M     │  MiniLM) │  iroh)   │  ng FFI) │   RSS, web tools)   │
    │  params) │          │          │          │                     │
    ├──────────┴──────────┴──────────┴──────────┴─────────────────────┤
    │                    LMDB Storage Layer (heed)                     │
    │  SPF_CONFIG │ TMP_DB │ AGENT_STATE │ Brain │ Gate Training       │
    │  All zero-copy reads via heed safe Rust bindings                 │
    └─────────────────────────────────────────────────────────────────┘
    

    Module Inventory (42 modules)

    paths, calculate, config, gate, inspect, mcp, session, storage, validate, web, http, dispatch, identity, mesh, fs, config_db, tmp_db, agent_state, tensor, tokenizer, framing, attention, ffn, encoder, decoder, transformer, checkpoint, gate_training, transformer_tools, train, learning, pipeline, worker, network, chat, voice, utf8_safe, brain_local, flint_memory, browser, orchestrator, channel


    The SPF Formula

    Complexity Calculation

    C = (basic ^ 1) + (dependencies ^ 7) + (complex ^ 10) + (files × 10)
    

    Dynamic Analysis Allocation

    a_optimal(C) = W_eff × (1 - 1/ln(C + e))
    

    Where W_eff = 40,000 tokens and e = Euler's number

    Tier Allocation

    	</thead><tbody><tr>
    
    TierC RangeAnalyzeBuildVerify PassesApproval
    SIMPLE< 50040%60%1No
    LIGHT< 2,00060%40%1No
    MEDIUM< 10,00075%25%2No
    CRITICAL> 10,00095%5%3Required

    Master Equation (Subtask Success)

    P(success) = 1 - PRODUCT(1 - P_i)  for i=1..D subtasks
    P_i = Q(a) × L(m) × V(v) × B(b)
    

    Q(a) = 1 - e^(-0.00004 × a) — Quality from analysis depth L(m) = 1 - 0.20^(m/2000) — Lookup from external memory V(v) = 1 - (1 - 0.75)^v — Verification accuracy B(b) = checks_done / checks_required — Build Anchor compliance


    Security

    Gate Enforcement (6 Steps)

    Every tool call passes through gate::process() — compiled Rust, no runtime bypass.

    	</thead><tbody><tr>
    
    StepWhatHow
    0Source loggingIdentifies caller (Stdio, Transformer, Mesh, HTTP)
    1Rate limitingPer-tool limits (30–120 calls/min)
    2Complexity calcSPF formula → C value, tier, allocation
    3ValidationPer-tool validator (paths, commands, anchors)
    4Content inspectionCredential patterns, shell injection, path traversal
    5Max modeEscalation to CRITICAL tier on warnings

    Build Anchor Protocol

    Files must be read before they can be edited or overwritten. Prevents AI hallucinations from blindly modifying files without understanding contents.

    • Read tracks files in session.files_read
    • Edit and Write check against this list
    • Bash write-class commands check target file reads
    • Violations: blocked (Max mode) or warned (Soft mode)

    Content Inspection

    Scans written/stored content for:

    • Credential patterns: API keys (sk-), AWS keys (AKIA), GitHub tokens (ghp_), Slack tokens, private keys, hardcoded passwords
    • Shell injection: Command substitution $(), backticks, eval/exec
    • Path traversal: ../ sequences
    • Blocked path references: Content mentioning system paths

    Blocked Paths

    Default blocked: /tmp, /etc, /usr, /system, /data/data/com.termux/files/usr

    Command Whitelist (Stage 0)

    Bash commands checked against sandbox and user-filesystem whitelists. Each command segment validated independently. Destructive commands (rm, chmod 777) blocked even if whitelisted.

    Default Deny

    Unknown tools blocked until explicitly added to the gate allowlist.


    MCP Tools (81 Total)

    Core Gate Tools

    	</thead><tbody><tr>
    
    ToolDescription
    spf_calculateCalculate complexity score without executing. Returns C value, tier, allocation
    spf_statusGateway status: session metrics, enforcement mode, complexity budget
    spf_sessionFull session state: files read/written, action history, anchor ratio

    Gated File Operations

    	</thead><tbody><tr>
    
    ToolDescription
    ReadGated file read. Tracks for Build Anchor Protocol. Binary-safe
    WriteGated file write. Validates Build Anchor, blocked paths, file size
    EditGated file edit. Validates Build Anchor, blocked paths, change size
    BashGated bash execution. Validates dangerous commands, /tmp access, git force
    GlobFast file pattern matching. Supports **/*.rs, src/**/*.ts
    GrepSearch file contents using regex. Built on ripgrep

    Brain / Memory Tools

    	</thead><tbody><tr>
    
    ToolDescription
    spf_brain_searchSemantic vector search across collections (MiniLM-L6-v2, 384d)
    spf_brain_recallFull document retrieval by semantic query
    spf_brain_contextBounded context retrieval for prompt injection
    spf_brain_storeStore document in brain (FLINT-internal, source-gated)
    spf_flint_storeAgent memory store — bypasses brain write gate. Brain vectors + Working tier
    spf_brain_indexIndex a file or directory into a brain collection
    spf_brain_listList all indexed collections with document counts
    spf_brain_statusBrain system status: model state, storage size, collections
    spf_brain_list_docsList stored documents in a collection
    spf_brain_get_docRetrieve a specific document by ID

    Agent State Tools

    	</thead><tbody><tr>
    
    ToolDescription
    spf_agent_statsAGENT_STATE LMDB statistics: memory count, sessions, state keys, tags
    spf_agent_memory_searchSearch agent memories by content
    spf_agent_memory_by_tagGet agent memories by tag
    spf_agent_session_infoMost recent session info
    spf_agent_contextContext summary for session continuity

    FLINT Transformer Tools

    	</thead><tbody><tr>
    
    ToolDescription
    spf_transformer_statusFLINT transformer status: loaded, params, checkpoint, role
    spf_transformer_inferRun inference: prompt → response. Returns generated tokens
    spf_transformer_chatMulti-turn conversation with FLINT
    spf_transformer_trainTrigger manual training batch from accumulated gate signals
    spf_transformer_metricsLearning metrics: loss, accuracy, gate alignment, training step
    spf_flint_train_evilMark a tool call as evil/harmful. Negative training signal
    spf_flint_train_goodMark a tool call as good/safe. Positive training signal
    spf_flint_executeExecute any SPF tool through FLINT worker mode (delegation)

    Web Browser Tools

    API tools (tested):

    	</thead><tbody><tr>
    
    ToolDescription
    spf_web_searchSearch the web (Brave API or DuckDuckGo)
    spf_web_fetchFetch URL and return clean readable text
    spf_web_apiMake HTTP API requests (GET/POST/PUT/DELETE/PATCH). Supports custom headers and JSON body — agents can directly interact with social media APIs (X/Twitter, Facebook, Instagram, Reddit, etc.) using stored API keys
    spf_web_downloadDownload a file from URL and save to disk

    Browser automation tools (in development — proxy starts, WebSocket bridge needs browser connection):

    	</thead><tbody><tr>
    
    ToolDescriptionStatus
    spf_web_connectInitialize reverse proxy browser engineTested — works
    spf_web_navigateNavigate browser to a URL (SSRF-validated)Tested — works
    spf_web_clickClick a page element by CSS selectorIn development — WebSocket timeout
    spf_web_fillType text into a form field by CSS selectorIn development — WebSocket timeout
    spf_web_selectQuery page elements by CSS selectorIn development — WebSocket timeout
    spf_web_evalExecute JavaScript on the current pageIn development — WebSocket timeout
    spf_web_screenshotCapture a screenshot of the current pageIn development
    spf_web_designExtract design brief: colours, fonts, spacing, componentsIn development
    spf_web_pageStructured page overview: title, headings, links, formsIn development

    RAG Collector Tools

    	</thead><tbody><tr>
    
    ToolDescription
    spf_rag_collect_webSearch web and collect documents. Optional topic filter
    spf_rag_collect_fileProcess a local file into brain
    spf_rag_collect_folderProcess all files in a folder
    spf_rag_collect_dropProcess files in DROP_HERE folder
    spf_rag_index_gatheredIndex all documents in GATHERED to brain
    spf_rag_dedupeDeduplicate a brain collection
    spf_rag_statusCollector status and stats
    spf_rag_list_gatheredList documents in GATHERED folder
    spf_rag_bandwidth_statusBandwidth usage stats and limits
    spf_rag_fetch_urlFetch a single URL with bandwidth limiting
    spf_rag_collect_rssCollect from RSS/Atom feeds
    spf_rag_list_feedsList configured RSS feeds
    spf_rag_pending_searchesGet pending SearchSeeker vectors (gaps needing fetch)
    spf_rag_fulfill_searchMark a SearchSeeker as fulfilled after RAG fetch
    spf_rag_smart_searchSmart search with completeness check — triggers SearchSeeker if <80%
    spf_rag_auto_fetch_gapsAutomatically fetch data for all pending SearchSeekers

    Mesh Network Tools

    	</thead><tbody><tr>
    
    ToolDescription
    spf_mesh_statusMesh network status: role, team, identity
    spf_mesh_peersList known/trusted mesh peers
    spf_mesh_callCall a peer agent's tool via P2P mesh (Ed25519 authenticated)

    Voice Tools

    	</thead><tbody><tr>
    
    ToolDescription
    spf_voice_modeVoice pipeline control: start/stop audio, TTS (espeak-ng), mic capture
    spf_voice_callPeer-to-peer voice calls: start, accept, reject, end, status
    spf_voice_teamGroup voice channels: create, join, leave, add peers

    Chat Tools

    	</thead><tbody><tr>
    
    ToolDescription
    spf_chat_sendSend text message to mesh peer via QUIC
    spf_chat_historyChat message history (all conversations or specific)
    spf_chat_roomsList active chat conversations with participant info

    Network Pool Tools

    	</thead><tbody><tr>
    
    ToolDescription
    spf_pool_statusPool status: worker roles, idle/busy counts, active tasks
    spf_pool_assignAssign task to idle worker (NetAdmin only)
    spf_pool_releaseRelease worker and record proof of work receipt

    Configuration Tools

    	</thead><tbody><tr>
    
    ToolDescription
    spf_config_pathsList all path rules (allowed/blocked) from SPF_CONFIG
    spf_config_statsSPF_CONFIG LMDB statistics

    Project Management Tools

    	</thead><tbody><tr>
    
    ToolDescription
    spf_tmp_listList all registered projects with trust levels
    spf_tmp_statsTMP_DB statistics: project count, access logs, resources
    spf_tmp_getGet project info by path
    spf_tmp_activeGet the currently active project

    Communication Hub

    	</thead><tbody><tr>
    
    ToolDescription
    spf_channelUniversal agent channel: create, join, leave, send, listen, history, list, connect (WS), disconnect, status

    Notebook Tools

    	</thead><tbody><tr>
    
    ToolDescription
    spf_notebook_editEdit a Jupyter notebook cell (replace, insert, delete)

    User-Only Tools (AI agents blocked)

    These tools are hard-blocked from AI agents at the gate level. User/system access only via SPF CLI:

    spf_fs_exists, spf_fs_stat, spf_fs_ls, spf_fs_read, spf_fs_write, spf_fs_mkdir, spf_fs_rm, spf_fs_rename


    FLINT Transformer

    Built-in encoder-decoder transformer for gate-aligned learning.

    	</thead><tbody><tr>
    
    PropertyValue
    ArchitectureEncoder-decoder
    Dimensions256d
    Heads8
    Layers6
    Parameters~5M
    Embeddingsall-MiniLM-L6-v2 (384d, in-process)
    Online learningON
    EWC lambda0.4
    Learning rate1e-4
    Replay buffer10,000 slots
    Checkpoint interval1,000 steps
    Training signalGate decisions (evil/FP labels)

    Learning Pipeline

    	</thead><tbody><tr>
    
    PhaseWhenWhat
    PREStartupinit_brain() + index_knowledge_docs() + index_spf_sources()
    DURING30s loopGateTrainingCollector → FLINT scores → route_signals → brain_store()
    AFTER1hr loopExpire → Working→Fact → Fact→Pinned → auto-train (16+ tlog or 1hr)

    Memory Lifecycle (Tiered Promotion)

    Agent stores → Working (24hr) → Fact (7-day) → Pinned (permanent)
         ↓                ↓                ↓
      Expire old       Top 20% promote    Never auto-expire
    

    Brain System

    In-process vector memory using stoneshell-brain (Candle + LMDB + MiniLM-L6-v2).

    	</thead><tbody><tr>
    
    PropertyValue
    Modelall-MiniLM-L6-v2
    Embedding dim384
    Chunk size512
    Chunk overlap64
    StorageLMDB (vectors) + LIVE/BRAIN/DOCS/ (data files)

    Collections

    	</thead><tbody><tr>
    
    CollectionPurpose
    defaultGeneral knowledge, web research, project docs
    spf_sourceAll src/*.rs modules indexed at boot
    flint_resultsTool call results (>2000 chars, before compression)
    flint_trainingGate decision signals, evil/FP labels
    flint_knowledgeUser-dropped knowledge files (.md/.txt/.rs/.json)
    flint_episodicPast FLINT Q+A pairs, behavioral patterns
    session_stateCurrent session metadata

    Memory Triad (Redundant Persistence)

    Three systems — if any ONE fails, the other TWO recover:

    1. Brain (vectors) — Semantic search, chunked knowledge
    2. STATUS (sequential) — Current state, phase, next step
    3. Work Blocks (structural) — Tasks, dependencies, confidence, progress
    4. Twin Folders (evidence) — Data served for low-confidence work blocks

    Mesh Network

    P2P agent communication over QUIC (iroh library) with Ed25519 identity. In development and testing.

    	</thead><tbody><tr>
    
    FeatureStatus
    P2P QUIC transportIn development
    Ed25519 identityIn development
    Peer discoveryIn development
    Tool call proxyingIn development
    Voice over meshIn development
    Chat over meshIn development
    Multi-agent coordinationIn development

    Voice Pipeline

    Not yet tested. Components built, awaiting integration testing.

    	</thead><tbody><tr>
    
    ComponentTechnology
    TTSespeak-ng FFI (in-process)
    CodecOpus (libopus.a)
    Audiocpal + oboe-ext
    STTPending (JNI via Stone Shell Terminal)

    Result Compression (FL-2)

    Three tiers based on result size:

    	</thead><tbody><tr>
    
    TierSizeBehavior
    FULL< 500 charsPass through unchanged
    SUMMARY500–5,000First 8 lines + last 3 lines + stats
    DIGEST> 5,000First 200 chars + last 100 chars + stats + recall hint

    Originals always preserved in brain (>2000 chars threshold) before compression. File reads never truncated (preserves non-Claude LLM compatibility).


    Build

    cd SPFsmartGATE
    cargo build --release
    

    # Deploy binary cp target/release/spf-smart-gate LIVE/BIN/spf-smart-gate/spf-smart-gate

    Dependencies

    • Rust (stable)
    • heed — safe Rust LMDB bindings. All persistent storage (config, agent state, brain vectors, training data) runs through heed → LMDB. Zero-copy reads, no server process, sub-millisecond lookups. The core reason SPF runs fast on a phone.
    • stoneshell-brain (Candle + MiniLM-L6-v2)
    • espeak-ng (TTS)
    • libopus (audio codec)
    • iroh (QUIC mesh)

    Configuration

    MCP Server Config

    ~/SPFsmartGATE/LIVE/LMDB5/.mcp.json — points Claude CLI to the binary.

    Claude CLI Config

    ~/SPFsmartGATE/LIVE/LMDB5/.claude.json — blocks native Claude CLI tools (26 tools denied).

    ~/SPFsmartGATE/LIVE/LMDB5/.claude/settings.json — deny list for native tools.

    ~/SPFsmartGATE/LIVE/LMDB5/.claude/settings.local.json — model routing (OpenRouter).

    SPF Config

    Enforcement mode (soft or max), blocked paths, allowed paths, formula weights — all in LMDB SPF_CONFIG database.


    File Structure

    SPFsmartGATE/
    ├── Cargo.toml                  # Rust project manifest (42 modules)
    ├── LICENSE                     # Apache-2.0
    ├── README.md                   # This file
    ├── src/
    │   ├── main.rs                 # CLI entry point
    │   ├── lib.rs                  # Library exports (42 pub mod)
    │   ├── gate.rs                 # Primary enforcement (6-step pipeline)
    │   ├── calculate.rs            # SPF complexity formula
    │   ├── validate.rs             # Rules validation (stages 0-6)
    │   ├── inspect.rs              # Content inspection (creds, injection)
    │   ├── mcp.rs                  # MCP server (JSON-RPC 2.0, 81 tools)
    │   ├── dispatch.rs             # Unified dispatch (all transports)
    │   ├── session.rs              # Session state management
    │   ├── storage.rs              # LMDB persistence
    │   ├── config.rs               # Configuration types
    │   ├── brain_local.rs          # In-process brain singleton
    │   ├── flint_memory.rs         # Memory router + tiered promotion
    │   ├── agent_state.rs          # Agent memory (LMDB5)
    │   ├── transformer.rs          # FLINT model (encoder-decoder)
    │   ├── transformer_tools.rs    # FLINT tool handlers
    │   ├── gate_training.rs        # Training signal collection
    │   ├── train.rs                # AdamW optimizer
    │   ├── tokenizer.rs            # Tokenizer
    │   ├── tensor.rs               # Tensor operations
    │   ├── attention.rs            # Multi-head attention
    │   ├── ffn.rs                  # Feed-forward network
    │   ├── encoder.rs              # Encoder stack
    │   ├── decoder.rs              # Decoder stack
    │   ├── framing.rs              # Message framing
    │   ├── checkpoint.rs           # Model checkpoint save/load
    │   ├── learning.rs             # Learning rate + EWC
    │   ├── pipeline.rs             # Batch pipeline + API sessions
    │   ├── worker.rs               # Worker pool
    │   ├── network.rs              # Network pool + NetAdmin
    │   ├── mesh.rs                 # P2P QUIC mesh (iroh)
    │   ├── identity.rs             # Ed25519 identity
    │   ├── chat.rs                 # Chat engine
    │   ├── voice.rs                # Voice pipeline (TTS/STT)
    │   ├── web.rs                  # Web client
    │   ├── http.rs                 # HTTP server + reverse proxy
    │   ├── browser.rs              # Browser automation
    │   ├── channel.rs              # Universal channel hub
    │   ├── orchestrator.rs         # Multi-agent orchestrator
    │   ├── config_db.rs            # SPF_CONFIG LMDB
    │   ├── tmp_db.rs               # TMP_DB LMDB
    │   ├── fs.rs                   # Virtual filesystem (LMDB)
    │   ├── paths.rs                # Path utilities
    │   └── utf8_safe.rs            # UTF-8 safe truncation
    ├── LIVE/
    │   ├── BIN/spf-smart-gate/     # Deployed binary
    │   ├── BRAIN/DOCS/             # Brain data files
    │   ├── MODELS/                 # FLINT checkpoints
    │   ├── SESSION/                # Session logs
    │   ├── LMDB5/                  # Flat-file agent runtime
    │   └── LMDB5.DB/               # LMDB-backed agent runtime
    └── PROJECTS/PROJECTS/
        └── DEPLOY/                 # Agent workspace
    

    Current Status

    	</thead><tbody><tr>
    
    ComponentStatus
    MCP Server81 gated tools
    Gate Security6-step pipeline, compiled Rust enforcement
    Build AnchorRead-before-write enforced
    Content InspectionCredential + injection scanning
    FLINT Transformer~5M params, online learning, gate-aligned
    Brain7 collections, MiniLM-L6-v2, in-process
    Memory TriadBrain + STATUS + Work Blocks + Twin Folders
    Tiered PromotionWorking → Fact → Pinned lifecycle
    Mesh NetworkP2P QUIC, Ed25519, iroh — in development and testing
    VoiceTTS built (espeak-ng) — not yet tested, STT pending
    ChatP2P messaging over mesh — in development
    RAGWeb search, RSS, file/folder indexing
    Web AgentWorking — spf_web_api tested (GET/POST with auth headers). Agents can interact with social media APIs
    BrowserAPI tools working (web_api, search, fetch). Browser automation (navigate/click/fill/select/eval) in development — proxy starts but WebSocket bridge needs browser connection
    Network PoolWorker pool with proof of work

    Notes

    • 1 developer — not all features complete
    • Gateway security: approaching 100%
    • All core tools: 100% working
    • Cross-compiles on Android and Linux with minimal installation
    • Agent cloning and specialization supported
    • 50+ day continuous session tested on Android phone
    • Open source — entire source code refreshes into transformer RAG system every reboot
    • Install in home folder, ensure file paths are correct in .mcp.json and settings.local.json
    • Not all files have been uploaded yet — repository is still being populated. Some modules may not be present until upload completes.

    License

    Licensed under the Apache License 2.0. See LICENSE for full terms.

    You are free to use, modify, and distribute this software, including for commercial purposes, provided you include the original copyright and license notice.

    Author: Joseph Stone Email: joepcstone@gmail.com

    SPF (StoneCell Processing Formula), Build Anchor Protocol, and FLINT are proprietary designs of Joseph Stone.

    Downloads last month
    1,989

    Server Config

    {
      "mcpServers": {
        "spf-smart-gate": {
          "type": "stdio",
          "command": "/data/data/com.termux/files/home/SPFsmartGATE/LIVE/BIN/spf-smart-gate/spf-smart-gate",
          "args": [
            "serve"
          ],
          "timeout": 7200000,
          "env": {
            "SPF_ROOT": "/data/data/com.termux/files/home/SPFsmartGATE"
          }
        }
      }
    }
    © 2025 MCP.so. All rights reserved.

    Build with ShipAny.

    - MCP Server