Metadata-Version: 2.4
Name: qivo-studio
Version: 0.1.5
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Rust
Classifier: Programming Language :: SQL
Classifier: Topic :: Database
Classifier: Topic :: Software Development :: Quality Assurance
Requires-Dist: oracledb>=3.0
Requires-Dist: psycopg[binary]>=3.2
Requires-Dist: fastapi>=0.115
Requires-Dist: uvicorn>=0.30
Requires-Dist: python-dotenv>=1.0
Requires-Dist: python-multipart>=0.0.32
Requires-Dist: cryptography>=50.0.2
Requires-Dist: dnspython>=2.6
Requires-Dist: pixeltable-pgserver>=0.6 ; (platform_machine == 'aarch64' and sys_platform == 'linux') or sys_platform == 'darwin' or (platform_machine == 'x86_64' and sys_platform == 'linux') or sys_platform == 'win32'
Requires-Dist: mcp>=2.3
Requires-Dist: anthropic>=1.13
Requires-Dist: openai>=3.0
License-File: LICENSE.md
Summary: QiVo Studio: deterministic column-level lineage for Oracle SQL and PL/SQL estates
Keywords: oracle,plsql,sql,data lineage,column lineage,impact analysis,dynamic sql
Author-email: QiVo Studio <admin@qivo.studio>
License: Proprietary: free to use under the QiVo Studio Licence Agreement 1.0
	(LICENSE.md in the package)
Requires-Python: >=3.12
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Homepage, https://qivo.studio
Project-URL: Issues, https://github.com/qivo-studio/qivo-studio/issues

# QiVo Studio

Turn your Oracle code base into business knowledge. QiVo Studio connects jobs, SQL, PL/SQL, variables, tables and
columns, with their configuration, logs and scripts, into **QiVo MetaGraph**, a code ontology built on code,
config, logs and scripts. On it: column-level lineage, impact, code-quality rules and answers for your AI tools.
Nothing is guessed: what cannot be decided from the code is reported as a gap, with the reason.

This is the **Explorer edition**: one person, one machine, no database needed.

```sh
pip install qivo-studio
qivo serve
```

Then open the address it prints, usually http://127.0.0.1:8000/app. If port 8000 is busy, it uses the next free
port (8001, 8002, ...) and says so. To choose a port: `qivo serve --port 8080` (or set `QIVO_PORT=8080`).

Explore a bundled example estate, or upload your own scripts (DDL, packages, procedures, triggers, SQL*Plus scripts,
a zip). Your code never leaves your machine: the app listens on this machine only, and its data (an embedded
PostgreSQL) is kept in `~/.qivo`.

- Oracle 12.2 to 23ai/26ai: SQL, PL/SQL, conditional compilation, SQL*Plus scripts
- Lineage through PL/SQL variables, records, collections, cursors and parameters, across units
- Dynamic SQL resolved from constants, branches, control tables and call sites
- Code tools: parser, syntax tree, names (what every identifier is), lineage, dynamic SQL
- QiVo Rules: 24 rules for bugs, security risks (SQL injection through dynamic SQL), slow patterns and unused code,
  using the whole estate; `qivo check` with SARIF output for CI
- Python 3.12 or later; Linux (x86-64, ARM), macOS (Intel, Apple silicon), Windows (x64)

## Use with AI tools (MCP)

QiVo MetaGraph, the CodeBase Ontology, serves the proven facts of your code (lineage, joins, dynamic SQL, gaps,
findings, glossary) to AI tools through MCP, read only. Every analysis in the app builds it, so there is nothing to
prepare: let your AI tool start `qivo mcp` on this machine. No token and no server address are needed.

```sh
claude mcp add qivo -- qivo mcp  # Claude Code; Claude Desktop and VS Code: command "qivo", args ["mcp"]
qivo graph build <scan>          # only for a scan analysed by a version before 0.1.2 (the id is shown in the app)
```

Every answer names its evidence and proof level; what could not be proven is reported as a gap, never guessed.
If the tool cannot find `qivo`, give its full path (`which qivo`). On QiVo Cloud and self-hosted servers, AI tools
connect to `<server>/mcp` with a personal access token instead: https://qivo.studio/docs/mcp.

## Ask QiVo: a chat in the app

Ask a project questions in plain words in the app (**Ask QiVo** in the menu): answers cite the MetaGraph's facts
and their evidence, mark what is not proven, and check any SQL they write against your catalogue (it is never run).
Connect a model first in **Settings → AI model**: Claude, OpenAI, Azure OpenAI, or a model on your own machine
(Ollama: `http://localhost:11434/v1`). QiVo calls it only when you ask, with your key. Guide:
https://qivo.studio/docs/ask.

For teams and whole estates (live Oracle connections, Git, schedulers, a sandbox for probing dynamic SQL, sign-in
and single sign-on), the **Enterprise edition** runs with Docker or Kubernetes. See https://qivo.studio.

QiVo Studio is free to use under its licence agreement; it is not open source. Questions and issues:
https://github.com/qivo-studio/qivo-studio/issues

