veris-ai 0.2.1__py3-none-any.whl → 1.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of veris-ai might be problematic. Click here for more details.

@@ -0,0 +1,448 @@
1
+ Metadata-Version: 2.4
2
+ Name: veris-ai
3
+ Version: 1.1.0
4
+ Summary: A Python package for Veris AI tools
5
+ Project-URL: Homepage, https://github.com/veris-ai/veris-python-sdk
6
+ Project-URL: Bug Tracker, https://github.com/veris-ai/veris-python-sdk/issues
7
+ Author-email: Mehdi Jamei <mehdi@veris.ai>
8
+ License-Expression: MIT
9
+ License-File: LICENSE
10
+ Requires-Python: >=3.11
11
+ Requires-Dist: httpx>=0.24.0
12
+ Requires-Dist: pydantic>=2.0.0
13
+ Requires-Dist: requests>=2.31.0
14
+ Provides-Extra: dev
15
+ Requires-Dist: black>=23.7.0; extra == 'dev'
16
+ Requires-Dist: mypy>=1.5.1; extra == 'dev'
17
+ Requires-Dist: openai-agents>=0.0.1; extra == 'dev'
18
+ Requires-Dist: pre-commit>=3.3.3; extra == 'dev'
19
+ Requires-Dist: pytest-asyncio>=0.21.1; extra == 'dev'
20
+ Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
21
+ Requires-Dist: pytest>=7.4.0; extra == 'dev'
22
+ Requires-Dist: ruff>=0.11.4; extra == 'dev'
23
+ Provides-Extra: fastapi
24
+ Requires-Dist: fastapi; extra == 'fastapi'
25
+ Requires-Dist: fastapi-mcp; extra == 'fastapi'
26
+ Provides-Extra: instrument
27
+ Requires-Dist: braintrust; extra == 'instrument'
28
+ Requires-Dist: opentelemetry-api; extra == 'instrument'
29
+ Requires-Dist: opentelemetry-exporter-otlp; extra == 'instrument'
30
+ Requires-Dist: opentelemetry-exporter-otlp-proto-common; extra == 'instrument'
31
+ Requires-Dist: opentelemetry-exporter-otlp-proto-grpc; extra == 'instrument'
32
+ Requires-Dist: opentelemetry-exporter-otlp-proto-http; extra == 'instrument'
33
+ Requires-Dist: opentelemetry-sdk; extra == 'instrument'
34
+ Requires-Dist: wrapt; extra == 'instrument'
35
+ Description-Content-Type: text/markdown
36
+
37
+ # Veris AI Python SDK
38
+
39
+ A Python package for Veris AI tools with simulation capabilities and FastAPI MCP (Model Context Protocol) integration.
40
+
41
+ ## Installation
42
+
43
+ You can install the package using `uv`:
44
+
45
+ ```bash
46
+ # Install the package
47
+ uv add veris-ai
48
+
49
+ # Install with development dependencies
50
+ uv add "veris-ai[dev]"
51
+
52
+ # Install with FastAPI MCP integration
53
+ uv add "veris-ai[fastapi]"
54
+
55
+ # Install with tracing/instrumentation support
56
+ uv add "veris-ai[instrument]"
57
+ ```
58
+
59
+ ## Import Options
60
+
61
+ The SDK supports flexible import patterns to minimize dependencies:
62
+
63
+ ### Default Imports (Base Dependencies Only)
64
+
65
+ ```python
66
+ # These imports only require base dependencies (httpx, pydantic, requests)
67
+ from veris_ai import veris, JaegerClient, SearchQuery
68
+ ```
69
+
70
+ ### Optional Imports (Require Extra Dependencies)
71
+
72
+ ```python
73
+ # The instrument function requires the 'instrument' extra
74
+ # Install with: pip install veris-ai[instrument] or uv add "veris-ai[instrument]"
75
+ from veris_ai import instrument # Lazy-loaded, will error if deps missing
76
+ ```
77
+
78
+ ### Direct Submodule Imports
79
+
80
+ For maximum control over dependencies, you can import directly from submodules:
81
+
82
+ ```python
83
+ # Import only what you need
84
+ from veris_ai.tool_mock import veris
85
+ from veris_ai.jaeger_interface import JaegerClient
86
+ from veris_ai.braintrust_tracing import instrument # Requires [instrument] extra
87
+ ```
88
+
89
+ ## Environment Setup
90
+
91
+ The package requires the following environment variables:
92
+
93
+ ```bash
94
+ # Required: URL for the mock endpoint
95
+ VERIS_MOCK_ENDPOINT_URL=http://your-mock-endpoint.com
96
+
97
+ # Optional: Timeout in seconds (default: 30.0)
98
+ VERIS_MOCK_TIMEOUT=30.0
99
+
100
+ # Optional: Set to "simulation" to enable mock mode
101
+ ENV=simulation
102
+ ```
103
+
104
+ ## Tracing Integration
105
+
106
+ The SDK provides seamless integration with Braintrust and Jaeger/OpenTelemetry for distributed tracing.
107
+
108
+ ### Setting up Tracing
109
+
110
+ ```python
111
+ from veris_ai import instrument
112
+
113
+ # Initialize tracing instrumentation
114
+ instrument(
115
+ service_name="my-service", # or via VERIS_SERVICE_NAME env var
116
+ otlp_endpoint="http://localhost:4317" # or via VERIS_OTLP_ENDPOINT env var
117
+ )
118
+ ```
119
+
120
+ ### Session ID Tracking
121
+
122
+ When using the SDK with FastAPI MCP integration, session IDs are automatically embedded in all traces:
123
+
124
+ 1. **Automatic Session Extraction**: When a request includes an Authorization header with a bearer token, the token is automatically used as the session ID.
125
+
126
+ 2. **Trace Attribution**: All spans created during a request will include the `veris.session_id` attribute, allowing you to:
127
+ - Filter traces by session in Jaeger
128
+ - Correlate all operations within a single user session
129
+ - Debug issues specific to a particular session
130
+
131
+ 3. **Example**:
132
+ ```python
133
+ # FastAPI app with MCP integration
134
+ from fastapi import FastAPI
135
+ from veris_ai import veris, instrument
136
+
137
+ app = FastAPI()
138
+
139
+ # Set up tracing
140
+ instrument()
141
+
142
+ # Set up FastAPI MCP with session handling
143
+ veris.set_fastapi_mcp(
144
+ fastapi=app,
145
+ name="My API Server"
146
+ )
147
+
148
+ # Now all traces will automatically include session IDs from bearer tokens
149
+ ```
150
+
151
+ 4. **Manual Session Management**: You can also manually set session IDs:
152
+ ```python
153
+ veris.set_session_id("custom-session-123")
154
+ # All subsequent operations will be tagged with this session ID
155
+ veris.clear_session_id() # Clear when done
156
+ ```
157
+
158
+ The session ID tracking works seamlessly with both the mock decorators and the tracing system, providing end-to-end visibility of user sessions across your application.
159
+
160
+ ## Python Version
161
+
162
+ This project requires Python 3.11 or higher. We use [pyenv](https://github.com/pyenv/pyenv) for Python version management.
163
+
164
+ To set up the correct Python version:
165
+
166
+ ```bash
167
+ # Install Python 3.11.0 using pyenv
168
+ pyenv install 3.11.0
169
+
170
+ # Set the local Python version for this project
171
+ pyenv local 3.11.0
172
+ ```
173
+
174
+ ## Usage
175
+
176
+ ```python
177
+ from veris_ai import veris
178
+
179
+ @veris.mock()
180
+ async def your_function(param1: str, param2: int) -> dict:
181
+ """
182
+ Your function documentation here.
183
+
184
+ Args:
185
+ param1: Description of param1
186
+ param2: Description of param2
187
+
188
+ Returns:
189
+ A dictionary containing the results
190
+ """
191
+ # Your implementation here
192
+ return {"result": "actual implementation"}
193
+ ```
194
+
195
+ When `ENV=simulation` is set, the decorator will:
196
+ 1. Capture the function signature, type hints, and docstring
197
+ 2. Send this information to the mock endpoint
198
+ 3. Convert the mock response to the expected return type
199
+ 4. Return the mock result
200
+
201
+ When not in simulation mode, the original function will be executed normally.
202
+
203
+ ### Stub Decorator
204
+
205
+ For simple test scenarios where you want to return a fixed value in simulation mode, use the `@veris.stub()` decorator:
206
+
207
+ ```python
208
+ from veris_ai import veris
209
+
210
+ @veris.stub(return_value={"status": "success", "data": [1, 2, 3]})
211
+ async def get_data() -> dict:
212
+ """Get some data from external service."""
213
+ # This implementation is only called in production mode
214
+ return await fetch_from_api()
215
+
216
+ # In simulation mode: always returns {"status": "success", "data": [1, 2, 3]}
217
+ # In production mode: calls fetch_from_api()
218
+ ```
219
+
220
+ The stub decorator is useful for:
221
+ - Quick prototyping with fixed responses
222
+ - Testing with predictable data
223
+ - Bypassing external dependencies in development
224
+
225
+ ## FastAPI MCP Integration
226
+
227
+ The SDK provides integration with FastAPI applications through the Model Context Protocol (MCP). This allows your FastAPI endpoints to be exposed as MCP tools that can be used by AI agents.
228
+
229
+ ```python
230
+ from fastapi import FastAPI
231
+ from veris_ai import veris
232
+
233
+ app = FastAPI()
234
+
235
+ # Set up FastAPI MCP with automatic session handling
236
+ veris.set_fastapi_mcp(
237
+ fastapi=app,
238
+ name="My API Server",
239
+ description="My FastAPI application exposed as MCP tools",
240
+ describe_all_responses=True,
241
+ include_operations=["get_users", "create_user"],
242
+ exclude_tags=["internal"]
243
+ )
244
+
245
+ # The MCP server is now available at veris.fastapi_mcp
246
+ mcp_server = veris.fastapi_mcp
247
+ ```
248
+
249
+ ### Configuration Options
250
+
251
+ The `set_fastapi_mcp()` method accepts the following parameters:
252
+
253
+ - **fastapi** (required): Your FastAPI application instance
254
+ - **name**: Custom name for the MCP server (defaults to app.title)
255
+ - **description**: Custom description (defaults to app.description)
256
+ - **describe_all_responses**: Whether to include all response schemas in tool descriptions
257
+ - **describe_full_response_schema**: Whether to include full JSON schema for responses
258
+ - **http_client**: Optional custom httpx.AsyncClient instance
259
+ - **include_operations**: List of operation IDs to include as MCP tools
260
+ - **exclude_operations**: List of operation IDs to exclude (can't use with include_operations)
261
+ - **include_tags**: List of tags to include as MCP tools
262
+ - **exclude_tags**: List of tags to exclude (can't use with include_tags)
263
+ - **auth_config**: Optional FastAPI MCP AuthConfig for custom authentication
264
+
265
+ ### Session Management
266
+
267
+ The SDK automatically handles session management through OAuth2 authentication:
268
+ - Session IDs are extracted from bearer tokens
269
+ - Context is maintained across API calls
270
+ - Sessions can be managed programmatically:
271
+
272
+ ```python
273
+ # Get current session ID
274
+ session_id = veris.session_id
275
+
276
+ # Set a new session ID
277
+ veris.set_session_id("new-session-123")
278
+
279
+ # Clear the session
280
+ veris.clear_session_id()
281
+ ```
282
+
283
+ ## Braintrust & Jaeger Tracing
284
+
285
+ The SDK includes a non-invasive instrumentation helper for sending traces to both Braintrust and a Jaeger-compatible OpenTelemetry (OTEL) collector simultaneously. This allows you to leverage Braintrust's powerful monitoring and evaluation tools while also storing and visualizing traces in your own Jaeger instance.
286
+
287
+ ### Usage
288
+
289
+ To enable parallel tracing, simply import the `braintrust_tracing` module and call the `instrument()` function at the beginning of your application's lifecycle.
290
+
291
+ ```python
292
+ from veris_ai import braintrust_tracing
293
+
294
+ # Enable Braintrust and Jaeger tracing
295
+ braintrust_tracing.instrument()
296
+ ```
297
+
298
+ ### Configuration
299
+
300
+ The `instrument()` function is configured through environment variables:
301
+
302
+ - **`VERIS_SERVICE_NAME`** (required): The name of your service as it will appear in Jaeger.
303
+ - **`VERIS_OTLP_ENDPOINT`** (required): The gRPC endpoint of your Jaeger OTLP collector (e.g., `http://host.docker.internal:4317`).
304
+
305
+ When initialized, the SDK automatically patches the `agents` library to send traces to both systems without any further code changes required.
306
+
307
+ ## Utility Functions
308
+
309
+ ### extract_json_schema
310
+
311
+ The SDK provides a utility function to extract JSON schemas from Python types and Pydantic models:
312
+
313
+ ```python
314
+ from veris_ai.utils import extract_json_schema
315
+ from pydantic import BaseModel
316
+ from typing import List, Optional
317
+
318
+ # Extract schema from built-in types
319
+ int_schema = extract_json_schema(int)
320
+ # {"type": "integer"}
321
+
322
+ list_schema = extract_json_schema(List[str])
323
+ # {"type": "array", "items": {"type": "string"}}
324
+
325
+ # Extract schema from Pydantic models
326
+ class User(BaseModel):
327
+ name: str
328
+ age: int
329
+ email: Optional[str] = None
330
+
331
+ user_schema = extract_json_schema(User)
332
+ # Returns full JSON schema with properties, required fields, etc.
333
+
334
+ # Extract schema from TypedDict
335
+ from typing import TypedDict
336
+
337
+ class Config(TypedDict):
338
+ host: str
339
+ port: int
340
+ debug: bool
341
+
342
+ config_schema = extract_json_schema(Config)
343
+ # {"type": "object", "properties": {...}, "required": ["host", "port", "debug"]}
344
+ ```
345
+
346
+ This function supports:
347
+ - Built-in types (str, int, float, bool, None)
348
+ - Generic types (List, Dict, Union, Optional, Literal)
349
+ - Pydantic models
350
+ - TypedDict classes
351
+ - Forward references and complex nested types
352
+
353
+ ## Project Structure
354
+
355
+ ```
356
+ src/veris_ai/
357
+ ├── __init__.py # Main entry point, exports the veris instance
358
+ ├── tool_mock.py # VerisSDK class with @veris.mock() decorator
359
+ └── utils.py # Type conversion and JSON schema utilities
360
+
361
+ tests/
362
+ ├── conftest.py # Pytest fixtures
363
+ ├── test_tool_mock.py # Tests for VerisSDK functionality
364
+ └── test_utils.py # Tests for type conversion and schema extraction
365
+ ```
366
+
367
+ ## Development
368
+
369
+ This project uses `pyproject.toml` for dependency management and `uv` for package installation.
370
+
371
+ ### Development Dependencies
372
+
373
+ To install the package with development dependencies:
374
+
375
+ ```bash
376
+ uv add "veris-ai[dev]"
377
+ ```
378
+
379
+ This will install the following development tools:
380
+ - **Ruff**: Fast Python linter
381
+ - **pytest**: Testing framework
382
+ - **pytest-asyncio**: Async support for pytest
383
+ - **pytest-cov**: Coverage reporting for pytest
384
+ - **black**: Code formatter
385
+ - **mypy**: Static type checker
386
+ - **pre-commit**: Git hooks for code quality
387
+
388
+ ### Code Quality
389
+
390
+ This project uses [Ruff](https://github.com/charliermarsh/ruff) for linting and code quality checks. Ruff is a fast Python linter written in Rust.
391
+
392
+ To run Ruff:
393
+
394
+ ```bash
395
+ # Lint code
396
+ ruff check .
397
+
398
+ # Auto-fix linting issues
399
+ ruff check --fix .
400
+
401
+ # Format code
402
+ ruff format .
403
+
404
+ # Check formatting only
405
+ ruff format --check .
406
+ ```
407
+
408
+ The Ruff configuration is defined in `pyproject.toml` under the `[tool.ruff]` section.
409
+
410
+ ### Running Tests
411
+
412
+ ```bash
413
+ # Run all tests with coverage
414
+ pytest tests/ --cov=veris_ai --cov-report=xml --cov-report=term-missing
415
+
416
+ # Run specific test file
417
+ pytest tests/test_tool_mock.py
418
+
419
+ # Run tests with verbose output
420
+ pytest -v tests/
421
+ ```
422
+
423
+ ### Type Checking
424
+
425
+ ```bash
426
+ # Run static type checking
427
+ mypy src/veris_ai tests
428
+ ```
429
+
430
+ ## License
431
+
432
+ This project is licensed under the MIT License - see the LICENSE file for details.
433
+
434
+ ## Jaeger Trace Interface
435
+
436
+ A lightweight, fully-typed wrapper around the Jaeger **Query Service** HTTP API lives under `veris_ai.jaeger_interface`.
437
+ It allows you to **search and retrieve traces** from both Jaeger’s default storage back-ends as well as **OpenSearch**, which powers the official Jaeger UI search page.
438
+
439
+ ```python
440
+ from veris_ai.jaeger_interface import JaegerClient, SearchQuery
441
+
442
+ client = JaegerClient("http://localhost:16686")
443
+
444
+ traces = client.search(SearchQuery(service="veris-agent", limit=2))
445
+ first_trace = client.get_trace(traces.data[0].traceID)
446
+ ```
447
+
448
+ See `src/veris_ai/jaeger_interface/README.md` for a complete walkthrough and API reference.
@@ -0,0 +1,12 @@
1
+ veris_ai/__init__.py,sha256=D7IkmgwQmucTTqqgRu-kOs5JTLLAA0ts3x91k4kyK2Y,1161
2
+ veris_ai/braintrust_tracing.py,sha256=0i-HR6IuK3-Q5ujMjT1FojxESRZLgqEvJ44bfJfDHaw,11938
3
+ veris_ai/tool_mock.py,sha256=PkI90tHMtmLj8shp8ytmOlrKc53M4kY-1YU0y4muTmU,7645
4
+ veris_ai/utils.py,sha256=AjKfsCdpatUqO6iPcqcN_V5JFWo25MfF-xchwCnx3Ws,9119
5
+ veris_ai/jaeger_interface/README.md,sha256=mu-XdBm3FM8MqyLEpZdjIE1lbgsvWszk2ehvez2p-8w,3055
6
+ veris_ai/jaeger_interface/__init__.py,sha256=sWwt5M52Hi1vltNXmjSEpIHvA1NqsXymV8MiiGSedlg,735
7
+ veris_ai/jaeger_interface/client.py,sha256=GWYFS0sgTZShQOi7Ndz504vyzCIKi6Kb_ZAMKskdjgE,4782
8
+ veris_ai/jaeger_interface/models.py,sha256=Tnx_817dCNUJ1bM9dv-45AhK017AL8qgOfgE6ne9HUU,4606
9
+ veris_ai-1.1.0.dist-info/METADATA,sha256=FzO5tRUgWZ5OXqqeUpz_uHpou5I4mc000n2jTjMja_g,13597
10
+ veris_ai-1.1.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
11
+ veris_ai-1.1.0.dist-info/licenses/LICENSE,sha256=2g4i20atAgtD5einaKzhQrIB-JrPhyQgD3bC0wkHcCI,1065
12
+ veris_ai-1.1.0.dist-info/RECORD,,
@@ -1,137 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: veris-ai
3
- Version: 0.2.1
4
- Summary: A Python package for Veris AI tools
5
- Project-URL: Homepage, https://github.com/veris-ai/veris-python-sdk
6
- Project-URL: Bug Tracker, https://github.com/veris-ai/veris-python-sdk/issues
7
- Author-email: Mehdi Jamei <mehdi@veris.ai>
8
- License-Expression: MIT
9
- License-File: LICENSE
10
- Requires-Python: >=3.11
11
- Requires-Dist: httpx>=0.24.0
12
- Provides-Extra: dev
13
- Requires-Dist: black>=23.7.0; extra == 'dev'
14
- Requires-Dist: mypy>=1.5.1; extra == 'dev'
15
- Requires-Dist: pre-commit>=3.3.3; extra == 'dev'
16
- Requires-Dist: pytest-asyncio>=0.21.1; extra == 'dev'
17
- Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
18
- Requires-Dist: pytest>=7.4.0; extra == 'dev'
19
- Requires-Dist: ruff>=0.11.4; extra == 'dev'
20
- Description-Content-Type: text/markdown
21
-
22
- # Veris AI Python SDK
23
-
24
- A Python package for Veris AI tools with simulation capabilities.
25
-
26
- ## Installation
27
-
28
- You can install the package using `uv`:
29
-
30
- ```bash
31
- # Install the package
32
- uv add veris-ai
33
-
34
- # Install with development dependencies
35
- uv add "veris-ai[dev]"
36
- ```
37
-
38
- ## Environment Setup
39
-
40
- The package requires the following environment variables:
41
-
42
- ```bash
43
- # Required: URL for the mock endpoint
44
- VERIS_MOCK_ENDPOINT_URL=http://your-mock-endpoint.com
45
-
46
- # Optional: Timeout in seconds (default: 30.0)
47
- VERIS_MOCK_TIMEOUT=30.0
48
-
49
- # Optional: Set to "simulation" to enable mock mode
50
- ENV=simulation
51
- ```
52
-
53
- ## Python Version
54
-
55
- This project requires Python 3.11 or higher. We use [pyenv](https://github.com/pyenv/pyenv) for Python version management.
56
-
57
- To set up the correct Python version:
58
-
59
- ```bash
60
- # Install Python 3.11.0 using pyenv
61
- pyenv install 3.11.0
62
-
63
- # Set the local Python version for this project
64
- pyenv local 3.11.0
65
- ```
66
-
67
- ## Usage
68
-
69
- ```python
70
- from veris_ai import veris
71
-
72
- @veris.mock()
73
- async def your_function(param1: str, param2: int) -> dict:
74
- """
75
- Your function documentation here.
76
-
77
- Args:
78
- param1: Description of param1
79
- param2: Description of param2
80
-
81
- Returns:
82
- A dictionary containing the results
83
- """
84
- # Your implementation here
85
- return {"result": "actual implementation"}
86
- ```
87
-
88
- When `ENV=simulation` is set, the decorator will:
89
- 1. Capture the function signature, type hints, and docstring
90
- 2. Send this information to the mock endpoint
91
- 3. Convert the mock response to the expected return type
92
- 4. Return the mock result
93
-
94
- When not in simulation mode, the original function will be executed normally.
95
-
96
- ## Development
97
-
98
- This project uses `pyproject.toml` for dependency management and `uv` for package installation.
99
-
100
- ### Development Dependencies
101
-
102
- To install the package with development dependencies:
103
-
104
- ```bash
105
- uv add "veris-ai[dev]"
106
- ```
107
-
108
- This will install the following development tools:
109
- - **Ruff**: Fast Python linter
110
- - **pytest**: Testing framework
111
- - **pytest-asyncio**: Async support for pytest
112
- - **pytest-cov**: Coverage reporting for pytest
113
- - **black**: Code formatter
114
- - **mypy**: Static type checker
115
- - **pre-commit**: Git hooks for code quality
116
-
117
- ### Code Quality
118
-
119
- This project uses [Ruff](https://github.com/charliermarsh/ruff) for linting and code quality checks. Ruff is a fast Python linter written in Rust.
120
-
121
- To run Ruff:
122
-
123
- ```bash
124
- ruff check .
125
- ```
126
-
127
- To automatically fix issues:
128
-
129
- ```bash
130
- ruff check --fix .
131
- ```
132
-
133
- The Ruff configuration is defined in `pyproject.toml` under the `[tool.ruff]` section.
134
-
135
- ## License
136
-
137
- This project is licensed under the MIT License - see the LICENSE file for details.
@@ -1,6 +0,0 @@
1
- veris_ai/__init__.py,sha256=7mEfVmqxQCn5FZN_1ua3iykCB1NUeJ4RfVXaAzdp4Hw,101
2
- veris_ai/tool_mock.py,sha256=jXFJLGuOlbis_gkTrZhAxqQdh9DDnS1Z-mWbFpCcvFM,5025
3
- veris_ai-0.2.1.dist-info/METADATA,sha256=JYEuQcuWr_nBixZlWTsm7WV5hcM3cDSo3pFSED9DsBo,3419
4
- veris_ai-0.2.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
5
- veris_ai-0.2.1.dist-info/licenses/LICENSE,sha256=2g4i20atAgtD5einaKzhQrIB-JrPhyQgD3bC0wkHcCI,1065
6
- veris_ai-0.2.1.dist-info/RECORD,,