Research-Stack/6-Documentation/docs/IP_BOUNDARY.md
2026-05-11 22:18:31 -05:00

3.6 KiB

Solvent License Boundary Architecture

The Problem

MIT-licensed software (PageIndex) integrated with proprietary IP (CFF, eigenmass, NUVMAP) must be architected so the MIT license does NOT propagate to proprietary code.

The Solution: Clean Module Boundary

/home/allaun/                                    ← Workspace root
├── third_party/                                 ← ALL MIT/LICENSE-FOREIGN CODE
│   └── pageindex/                               ← VectifyAI/PageIndex (MIT)
│       ├── LICENSE                              ← MIT license (UNTOUCHED)
│       ├── ...                                  ← MIT code (NEVER MODIFIED)
│       └── NOTICE                               ← Attribution notice
│
├── cff/                                         ← PROPRIETARY CODE
│   ├── core/
│   │   ├── __init__.py                          ← Proprietary header
│   │   ├── cff.py                               ← Proprietary header
│   │   ├── fingerprint.py                       ← Proprietary header
│   │   └── schema.py                            ← Proprietary header
│   ├── gpu/
│   │   └── eigenmass_engine.py                  ← Proprietary header
│   ├── adapter/                                 ← ADAPTER LAYER (Proprietary)
│   │   └── pageindex_adapter.py                 ← Interfaces with MIT code, proprietary itself
│   ├── nuvmap/
│   ├── ingestion/
│   └── ...
│
├── LICENSE                                      ← Proprietary global license
├── THIRD_PARTY_NOTICES.txt                      ← Lists ALL third-party licenses
└── IP_BOUNDARY.md                               ← This document

Key Rules (Legally Defensible)

1. NEVER modify files inside third_party/

  • PageIndex source lives exactly as cloned
  • No patches, no inline changes, no forked copies
  • Configuration is done via env vars / config files OUTSIDE third_party/

2. Adapter layer NEVER includes MIT code

  • pageindex_adapter.py imports PageIndex as a library
  • Does NOT copy, paste, or inline MIT-licensed code
  • Contains ONLY proprietary glue logic

3. Proprietary modules NEVER import from MIT code directly

  • Only the adapter layer touches PageIndex
  • CFF core, eigenmass engine, NUVMAP engine remain clean
  • This prevents "derivative work" contamination

4. Third-party notices file is COMPLETE

  • Lists ALL foreign licenses, their terms, and attributions
  • Updated whenever a new third-party dep is added
  • Standard header: "PROPRIETARY — ALL RIGHTS RESERVED"
  • Date, entity, and explicit prohibition of copying

Why This Works

MIT license requires:

  1. Copyright notice included in copies of the MIT software → SATISFIED (third_party/ untouched)
  2. Permission notice included → SATISFIED (LICENSE file preserved)

MIT does NOT require:

  • Derivative works to be MIT-licensed
  • Combined works to be MIT-licensed
  • Proprietary code that uses MIT code to be disclosed

The adapter pattern ensures our code "uses" PageIndex (imports its API) without "modifying" or "distributing" it in a way that triggers copyleft.

Verification Checklist

  • All third_party/ files retain original copyright headers
  • All proprietary files have proprietary headers
  • No MIT-licensed code copied into proprietary directories
  • Adapter layer imports only, no inlining
  • THIRD_PARTY_NOTICES.txt is current
  • Root LICENSE file reflects proprietary status