Skip to main content

SOVIGL returns approved, pending, or blocked for any action.

Project description

sovigl

Sovigl evaluates approval decisions for actions like payments and returns one of three states: approved, pending, or blocked.

Install

pip install sovigl

Access

Demo: works instantly, no key needed. pip install sovigl and call evaluate().

Production: email sovigl100@gmail.com to get org_id and api_key.

Python Usage

import sovigl

for amount in [500, 5000, 100000]:
    decision = sovigl.evaluate(
        action="payment.create",
        context={"amount": amount}
    )

    print(f"amount={amount} status={decision.status} reason={decision.reason}")

    if decision.approved:
        print("Execute payment")
    elif decision.pending:
        print("Human approval required")
    elif decision.blocked:
        print("Do not execute payment")

Full Response Object (Python)

evaluate() returns a Decision object with these fields/properties:

  • decision.status - approved / pending / blocked
  • decision.decision_id - permanent audit ID
  • decision.reason - why this decision was made
  • decision.explanation_registry - full explainability record
  • decision.risk_assessment - risk score 0.0-1.0 + factors
  • decision.policy_version - which policy version was active
  • decision.approval_id - human approval reference
  • decision.summary - plain English summary
  • decision.approved - True/False helper
  • decision.pending - True/False helper
  • decision.blocked - True/False helper
  • decision.raw - complete backend response

Example:

decision = sovigl.evaluate(
    action="payment.create",
    context={"amount": 5000}
)

print(decision.status)
print(decision.decision_id)
print(decision.reason)
print(decision.explanation_registry)
print(decision.risk_assessment)
print(decision.policy_version)
print(decision.approval_id)
print(decision.summary)
print(decision.approved)
print(decision.pending)
print(decision.blocked)
print(decision.raw)

Pending Workflow

When decision.status == "pending", treat it as a hard stop for automatic execution and route to manual approval.

decision = sovigl.evaluate(
    action="payment.create",
    context={"amount": 5000}
)

if decision.pending:
    approval_id = getattr(decision, "approval_id", None)
    print("Human approval required", approval_id, decision.reason)

Context Fields

Field Type Description
amount number Transaction amount evaluated against policy
user_id string Who is performing the action
role string Caller role - employee, manager, or admin
agent_id string AI agent identifier if action is automated

Action Types

Sovigl accepts any action string in . format.

  • payment.create
  • expense.submit
  • transfer.initiate
  • loan.approve

Node.js Usage

const sovigl = require("./node/index.js");

(async () => {
  for (const amount of [500, 5000, 100000]) {
    const decision = await sovigl.evaluate({
      action: "payment.create",
      context: { amount }
    });

    console.log({ amount, status: decision.status, reason: decision.reason });
  }
})();

Backend: https://github.com/riteshkumar10000/sovigl-sdk | PyPI: https://pypi.org/project/sovigl/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sovigl-0.1.7.tar.gz (3.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sovigl-0.1.7-py3-none-any.whl (3.4 kB view details)

Uploaded Python 3

File details

Details for the file sovigl-0.1.7.tar.gz.

File metadata

  • Download URL: sovigl-0.1.7.tar.gz
  • Upload date:
  • Size: 3.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for sovigl-0.1.7.tar.gz
Algorithm Hash digest
SHA256 00511968a7b38328f4e4f1a5d2e00c5a5f3131052efdbcb729318442ad6208da
MD5 67082b0f39eac772d66be34d5cc805f7
BLAKE2b-256 70550bb44bdd4a88119efc71e35664022d701d90d355121eac3b3736c2f45f0c

See more details on using hashes here.

File details

Details for the file sovigl-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: sovigl-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 3.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for sovigl-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 fe2cf708d1f8d9593739e2aa22f222da318f44e4ba2bb738e6412149f56f1cb2
MD5 27dbfa880eb74b7b2dcedccab84ca714
BLAKE2b-256 8a28cabd1183fd9aea31cfdcc51a20820ef7e890fd20399dd4ddb1f49dde5f20

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page