diff --git a/.github/workflows/runtime-build.yml b/.github/workflows/build.yml similarity index 97% rename from .github/workflows/runtime-build.yml rename to .github/workflows/build.yml index 68f00c5d..7aa5a71c 100644 --- a/.github/workflows/runtime-build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: Runtime Build +name: Build on: push: @@ -10,7 +10,7 @@ on: - "Cargo.toml" - "Cargo.lock" - "rustfmt.toml" - - ".github/workflows/runtime-build.yml" + - ".github/workflows/build.yml" pull_request: branches: - "main" @@ -20,7 +20,7 @@ on: - "Cargo.toml" - "Cargo.lock" - "rustfmt.toml" - - ".github/workflows/runtime-build.yml" + - ".github/workflows/build.yml" workflow_dispatch: env: diff --git a/.github/workflows/runtime-release.yml b/.github/workflows/release.yml similarity index 98% rename from .github/workflows/runtime-release.yml rename to .github/workflows/release.yml index c4c62caf..2027ee4a 100644 --- a/.github/workflows/runtime-release.yml +++ b/.github/workflows/release.yml @@ -1,4 +1,4 @@ -name: Runtime Release +name: Release on: push: diff --git a/.github/workflows/runtime-security.yml b/.github/workflows/security.yml similarity index 90% rename from .github/workflows/runtime-security.yml rename to .github/workflows/security.yml index 060953f2..953458f8 100644 --- a/.github/workflows/runtime-security.yml +++ b/.github/workflows/security.yml @@ -1,4 +1,4 @@ -name: Runtime Security +name: Security on: push: @@ -10,7 +10,7 @@ on: - "Cargo.toml" - "Cargo.lock" - "deny.toml" - - ".github/workflows/runtime-security.yml" + - ".github/workflows/security.yml" pull_request: branches: - "main" @@ -20,7 +20,7 @@ on: - "Cargo.toml" - "Cargo.lock" - "deny.toml" - - ".github/workflows/runtime-security.yml" + - ".github/workflows/security.yml" schedule: - cron: "0 6 * * 1" workflow_dispatch: diff --git a/CHANGELOG.md b/CHANGELOG.md index 79929b90..c9131f6d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,10 +17,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Context-aware redaction operators: mask, replace, hash, encrypt, blur, block, pixelate, policy-driven with per-entity confidence thresholds. -- Deployment-owned NER and LLM recognizer lineups (deployment picks - the providers; the wire only toggles NER or LLM on or off). -- BentoML inference services shipped as Docker containers: - docTR (OCR), PaddleOCR-VL (vision-language OCR), and GLiNER (NER). +- Deployment-owned NER, LLM, OCR, and STT recognizer/enricher lineups + (deployment picks the providers; the wire only toggles them on or off). +- HTTP client integration with the inference services shipped separately + from [nvisycom/bento](https://github.com/nvisycom/bento) via the + `elide-bento` git dependency. ### Rust crates (`crates/`) diff --git a/Makefile b/Makefile index 61d1db84..a2cfa232 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -# Makefile for the Nvisy runtime workspace (Rust crates). +# Makefile for the Nvisy runtime (Rust workspace). # Default to a single recipe shell so a failure inside a piped # command (e.g. server panics under `tee`) is reported by make. diff --git a/README.md b/README.md index 00bb711c..70f81c78 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,18 @@ # Nvisy Runtime -[![Runtime](https://img.shields.io/github/actions/workflow/status/nvisycom/runtime/runtime-build.yml?branch=main&label=runtime&style=flat-square)](https://github.com/nvisycom/runtime/actions/workflows/runtime-build.yml) -[![Inference](https://img.shields.io/github/actions/workflow/status/nvisycom/bento/inference-build.yml?branch=main&label=inference&style=flat-square)](https://github.com/nvisycom/bento/actions/workflows/inference-build.yml) +[![Runtime](https://img.shields.io/github/actions/workflow/status/nvisycom/runtime/build.yml?branch=main&label=runtime&style=flat-square)](https://github.com/nvisycom/runtime/actions/workflows/build.yml) +[![Inference](https://img.shields.io/github/actions/workflow/status/nvisycom/bento/build.yml?branch=main&label=inference&style=flat-square)](https://github.com/nvisycom/bento/actions/workflows/build.yml) -Multimodal redaction library and its inference services. +Multimodal redaction pipeline as a stateless Rust library. -A workspace that pairs a stateless Rust redaction pipeline with the -BentoML-hosted Python model services it calls into. The Rust side ships -as library crates hosts embed directly; the Python side ships as Docker -containers hosts deploy alongside. +A workspace of library crates hosts (a SaaS backend, a Tauri app, a +language SDK, a custom pipeline) embed directly. No long-running +process, no HTTP layer of its own. Inference is delegated over HTTP to +model services that live in the sibling +[nvisycom/bento](https://github.com/nvisycom/bento) repository; the +engine ships with a git-dep client (`elide-bento`) that speaks their +wire contract, and any service reproducing that contract is a drop-in +replacement. > [!WARNING] > **Active development: API not stable.** This project is under active @@ -16,36 +20,21 @@ containers hosts deploy alongside. > change without notice between releases. Pin a specific commit if you > depend on this in production. -## Workspaces - -Rust crates ([`crates/`](crates/)) — library only, no long-running -process. Hosts (a SaaS backend, a Tauri app, a language SDK, a custom -pipeline) embed the engine directly. - -- **[nvisy-policy](crates/nvisy-policy/)**: wire schema for redaction governance (rules, predicates, operators) -- **[nvisy-schema](crates/nvisy-schema/)**: wire schema for plan, file, and the `elide-core` slice; re-exports `nvisy-policy` -- **[nvisy-template](crates/nvisy-template/)**: ready-to-run policy templates for common regulatory postures (HIPAA, GDPR, PCI DSS, CCPA) -- **[nvisy-engine](crates/nvisy-engine/)**: stateless pipeline (decode, analyze, apply) wrapping elide, hosting the per-modality orchestrator and the deployment-side NER / LLM recognizer configuration - -The BentoML inference services and their Rust client (`elide-bento`) -live in a sibling repository, [nvisycom/bento](https://github.com/nvisycom/bento); -this workspace consumes `elide-bento` as a git dependency. - ## Features - **Multimodal codecs**: read, edit, and write PDF, DOCX, images, audio, CSV, JSON, and plain text through a unified span-based content model - **Layered detection**: regex, dictionary, and checksum patterns run first at low cost; NER, OCR, VLM, and LLM classification handle what deterministic methods cannot - **Context-aware redaction**: mask, replace, hash, encrypt, blur, block, and pixelate with policy-driven rules scoped to entity type, document class, and confidence threshold - **Stateless engine**: no persistence, no HTTP layer, no background tasks; every analyze and apply call is self-contained -- **Bring your own inference**: any service that reproduces the wire contract is a drop-in replacement for the shipped Python packages, including self-hosted or custom models and weights +- **Bring your own inference**: any service that reproduces the wire contract is a drop-in replacement for the shipped bento services, including self-hosted or custom models and weights ## Quick Start The fastest way to get started is with [Nvisy Cloud](https://nvisy.com). For self-hosted use, embed the engine crate directly and deploy the -Python services as sidecar containers. See each crate and package -README for details. +inference services from [nvisycom/bento](https://github.com/nvisycom/bento) +as sidecar containers. See each crate README for details. ## Changelog diff --git a/crates/nvisy-engine/README.md b/crates/nvisy-engine/README.md index b2ab7f96..4ec51784 100644 --- a/crates/nvisy-engine/README.md +++ b/crates/nvisy-engine/README.md @@ -1,6 +1,6 @@ # nvisy-engine -[![Build](https://img.shields.io/github/actions/workflow/status/nvisycom/runtime/runtime-build.yml?branch=main&label=build%20%26%20test&style=flat-square)](https://github.com/nvisycom/runtime/actions/workflows/runtime-build.yml) +[![Build](https://img.shields.io/github/actions/workflow/status/nvisycom/runtime/build.yml?branch=main&label=build%20%26%20test&style=flat-square)](https://github.com/nvisycom/runtime/actions/workflows/build.yml) Stateless multimodal redaction pipeline over elide. diff --git a/crates/nvisy-policy/README.md b/crates/nvisy-policy/README.md index 3538b961..e6c16fd5 100644 --- a/crates/nvisy-policy/README.md +++ b/crates/nvisy-policy/README.md @@ -1,6 +1,6 @@ # nvisy-policy -[![Build](https://img.shields.io/github/actions/workflow/status/nvisycom/runtime/runtime-build.yml?branch=main&label=build%20%26%20test&style=flat-square)](https://github.com/nvisycom/runtime/actions/workflows/runtime-build.yml) +[![Build](https://img.shields.io/github/actions/workflow/status/nvisycom/runtime/build.yml?branch=main&label=build%20%26%20test&style=flat-square)](https://github.com/nvisycom/runtime/actions/workflows/build.yml) Wire schema for Nvisy policies: authored redaction governance. diff --git a/crates/nvisy-schema/README.md b/crates/nvisy-schema/README.md index 481f853b..a028bea9 100644 --- a/crates/nvisy-schema/README.md +++ b/crates/nvisy-schema/README.md @@ -1,6 +1,6 @@ # nvisy-schema -[![Build](https://img.shields.io/github/actions/workflow/status/nvisycom/runtime/runtime-build.yml?branch=main&label=build%20%26%20test&style=flat-square)](https://github.com/nvisycom/runtime/actions/workflows/runtime-build.yml) +[![Build](https://img.shields.io/github/actions/workflow/status/nvisycom/runtime/build.yml?branch=main&label=build%20%26%20test&style=flat-square)](https://github.com/nvisycom/runtime/actions/workflows/build.yml) Wire schema for the Nvisy platform: plan, file, and the `elide-core` slice, plus a re-export of `nvisy-policy`. diff --git a/crates/nvisy-template/README.md b/crates/nvisy-template/README.md index 38a8ef99..7016e735 100644 --- a/crates/nvisy-template/README.md +++ b/crates/nvisy-template/README.md @@ -1,6 +1,6 @@ # nvisy-template -[![Build](https://img.shields.io/github/actions/workflow/status/nvisycom/runtime/runtime-build.yml?branch=main&label=build%20%26%20test&style=flat-square)](https://github.com/nvisycom/runtime/actions/workflows/runtime-build.yml) +[![Build](https://img.shields.io/github/actions/workflow/status/nvisycom/runtime/build.yml?branch=main&label=build%20%26%20test&style=flat-square)](https://github.com/nvisycom/runtime/actions/workflows/build.yml) Ready-to-run Nvisy policy templates for common regulatory postures.