Metadata-Version: 2.4
Name: prism-tool
Version: 0.1.0
Summary: Catch AI agent tool schema failures before they reach the provider
Home-page: https://github.com/sanim-science/prism-sdk
Author: Sanim
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: typer
Requires-Dist: rich
Requires-Dist: pydantic
Requires-Dist: jsonschema
Dynamic: author
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# Prism

Catch AI agent tool schema failures before they reach the provider.

## The Problem

You write a tool for your AI agent. It works locally.
Then it fails with a cryptic 400 error in production.
No explanation. No hint. Just failure.

Prism catches these before they ever reach OpenAI or Anthropic.

## Install

pip install prism-sdk

## Quick Start

from prism.linter import lint_tool

def search_products(query: str, limit: int = 10, category=None):
    pass

issues = lint_tool(search_products)
for issue in issues:
    print(f"[{issue['level']}] {issue['param']}: {issue['issue']}")

## Output

[ERROR] limit: Has default '10' вЂ” OpenAI strict will reject this.
[WARNING] category: No type annotation. Providers will reject this.
[WARNING] function: No docstring. AI uses this as the tool description.

## What It Catches

| Issue | Providers Affected |
|-------|--------------------|
| Default values not in required[] | OpenAI strict |
| Union types | OpenAI strict |
| Missing type annotations | All |
| Any type | OpenAI strict |
| Missing docstring | All |

## Status

Early development. Built to solve a real problem.
Issues and feedback welcome. 
