Metadata-Version: 2.4
Name: intutic-clawde
Version: 2.5.0
Summary: Programmatic proxy connection wrappers and warm-path budget gates for Intutic
Author: Intutic
Author-email: engineering@intutic.ai
Requires-Python: >=3.10,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Provides-Extra: ag2
Provides-Extra: agent-framework
Provides-Extra: autogen
Provides-Extra: compliance
Provides-Extra: crewai
Provides-Extra: google-adk
Provides-Extra: langchain
Provides-Extra: openai-agents
Provides-Extra: pydantic-ai
Provides-Extra: smolagents
Provides-Extra: strands
Requires-Dist: ag2 (>=1.0.2) ; extra == "ag2"
Requires-Dist: agent-framework-core (>=1.20.0) ; extra == "agent-framework"
Requires-Dist: autogen-agentchat (>=0.7.5) ; extra == "autogen"
Requires-Dist: autogen-core (>=0.7.5) ; extra == "autogen"
Requires-Dist: autogen-ext (>=0.7.5) ; extra == "autogen"
Requires-Dist: crewai (>=1.15.3) ; (python_version >= "3.10" and python_version < "3.14") and (extra == "crewai")
Requires-Dist: cryptography (>=44.0.1) ; extra == "compliance"
Requires-Dist: google-adk (>=2.7.1) ; extra == "google-adk"
Requires-Dist: langchain (>=1.0) ; extra == "langchain"
Requires-Dist: openai-agents ; extra == "openai-agents"
Requires-Dist: pydantic-ai-slim (>=2.53.0) ; extra == "pydantic-ai"
Requires-Dist: pyyaml (>=6.0,<7.0)
Requires-Dist: requests (>=2.33.0,<3.0.0)
Requires-Dist: smolagents (>=1.26.0) ; extra == "smolagents"
Requires-Dist: strands-agents (>=1.57.2) ; extra == "strands"
Requires-Dist: urllib3 (>=2.8.0)
Description-Content-Type: text/markdown

# intutic-clawde

Python SDK for Intutic Agentic AI Governance proxy wrappers.

`ClawdeClient.chat()` sends a request through the Intutic proxy and returns the completion with `verdict` set to `"allow"`. A governance refusal (policy block, reask, loop run held for review, spend cap, DLP block) raises `ClawdeBlockedError` with the proxy's `verdict`, `code`, `rule_id` (when the proxy names the rule) and reason, fires the matching `kill` / `reask` / `hold` event, and is never retried; transport failures and 5xx answers are retried. See [Verdicts and Errors](https://docs.intutic.ai/reference/clawde-sdk#_5-verdicts-and-errors) for every refusal code.

When the proxy withholds a tool call from the model's answer (a tool an SOP denies, the SSO group policy, destructive SQL, sensitive output), the answer arrives as a 200 that names the refusal in the `x-intutic-refusal` and `x-intutic-refusal-rule` headers; `chat()` raises `ClawdeBlockedError` for it too. For a stream you read yourself, pass each line to `stream_refusal()`.

With an Intutic virtual key, in a git repository, the first `chat()` registers a session with the control plane carrying the repository (the `origin` remote as `host/path`, credentials removed), the branch and the HEAD commit, so the calls count in cost per branch, commit and pull request. This is on by default; pass `auto_context=False` to send none of it. See [Git context and cost attribution](https://docs.intutic.ai/reference/clawde-sdk#_1a-git-context-and-cost-attribution).

`ControlPlaneClient` covers the operator APIs the CLI exposes: org and workspace setup, gateways, settings and provider credentials, the MCP registry, notification rules, SIEM destinations, usage, the AI inventory, compliance evidence, policy guardrails, held decisions and loop runs, findings, traces, trace integrity, policies and SOPs, with the TypeScript SDK's methods in snake_case. `verify_evidence_archive()` checks a compliance evidence archive offline and `verify_integrity_root()` a sealed trace root's signature; both signature checks need `pip install 'intutic-clawde[compliance]'`. See the [SDK reference](https://docs.intutic.ai/reference/clawde-sdk#control-plane-management-controlplaneclient).

The `intutic_clawde.gate` subpackage is the pre-execution tool gate for Python agent frameworks; see the [Gate SDK reference](https://docs.intutic.ai/reference/gate-sdk). Its `GateClient` fails closed by default (`fail_closed=True`): when the control plane's hook gate cannot be reached, or answers `GOVERNANCE_UNAVAILABLE` because a check it runs could not complete, the call is refused. Pass `fail_closed=False` to let calls through during such an outage. A request the hook gate cannot read (HTTP 400, `INVALID_REQUEST`) is refused whatever `fail_closed` says. See [Fail-closed defaults](https://docs.intutic.ai/reference/gate-sdk#fail-closed-defaults).

