veralog 0.1.0__tar.gz

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.
veralog-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,202 @@
1
+ Metadata-Version: 2.4
2
+ Name: veralog
3
+ Version: 0.1.0
4
+ Summary: Cryptographic audit trails for AI agents
5
+ Home-page: https://www.vrlg.tech
6
+ Author: Anton Kupreev
7
+ Author-email: liquidcrystalcore@gmail.com
8
+ Keywords: ai agent audit log cryptographic ed25519 enterprise security
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: Topic :: Software Development :: Libraries
12
+ Classifier: Topic :: Security
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.8
15
+ Classifier: Programming Language :: Python :: 3.9
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Requires-Python: >=3.8
21
+ Description-Content-Type: text/markdown
22
+ Dynamic: author
23
+ Dynamic: author-email
24
+ Dynamic: classifier
25
+ Dynamic: description
26
+ Dynamic: description-content-type
27
+ Dynamic: home-page
28
+ Dynamic: keywords
29
+ Dynamic: requires-python
30
+ Dynamic: summary
31
+
32
+ # Veralog Python SDK
33
+
34
+ Cryptographic audit trails for AI agents. Add one line to your agent, get a tamper-proof signed log of every action.
35
+
36
+ **[www.vrlg.tech](https://www.vrlg.tech)**
37
+
38
+ ## Installation
39
+
40
+ ```bash
41
+ pip install veralog
42
+ ```
43
+
44
+ ## Quick start
45
+
46
+ ```python
47
+ import veralog
48
+
49
+ veralog.configure(api_key="vrlg_...")
50
+
51
+ result = veralog.record(
52
+ agent_id="sales-bot",
53
+ action="send_proposal",
54
+ payload={"client": "acme-corp", "deal_value": 50000},
55
+ status="success",
56
+ )
57
+
58
+ print(result.verify_url)
59
+ ```
60
+
61
+ ## Get an API key
62
+
63
+ ```python
64
+ import veralog
65
+ account = veralog.register(email="you@yourcompany.com")
66
+ print(account["api_key"])
67
+ ```
68
+
69
+ Or register at [www.vrlg.tech](https://www.vrlg.tech).
70
+
71
+ ## Configuration
72
+
73
+ ```python
74
+ # Explicit
75
+ veralog.configure(api_key="vrlg_...")
76
+
77
+ # Or via environment variable
78
+ export VERALOG_API_KEY="vrlg_..."
79
+ ```
80
+
81
+ ## Record an event
82
+
83
+ ```python
84
+ result = veralog.record(
85
+ agent_id="sales-bot", # required: your agent's ID
86
+ action="send_proposal", # required: what it did
87
+ payload={"client": "acme"}, # required: arbitrary dict
88
+ status="success", # success | warning | error | crash | timeout | blocked | cancelled
89
+ severity="info", # debug | info | warning | error | critical
90
+ flags=[], # loop_detected | policy_violation | data_exposure | ...
91
+ trace_id="trace-abc-123", # optional: correlation ID
92
+ tool_name="gmail_api", # optional: tool used
93
+ )
94
+
95
+ print(result.event_id) # UUID
96
+ print(result.verify_url) # https://www.vrlg.tech/verify/{id}/page
97
+ print(result.events_used) # running total
98
+ ```
99
+
100
+ ## Query events
101
+
102
+ ```python
103
+ events = veralog.get_events(
104
+ status="blocked",
105
+ agent_id="sales-bot",
106
+ since="2026-06-01T00:00:00",
107
+ limit=50,
108
+ )
109
+ print(events["total"])
110
+ print(events["events"])
111
+ ```
112
+
113
+ ## Export all events
114
+
115
+ ```python
116
+ data = veralog.export()
117
+ # Returns dict with all events, signatures, and public keys
118
+ ```
119
+
120
+ ## Verify an event
121
+
122
+ ```python
123
+ event = veralog.verify("8b466b96-8663-4742-a6a6-8964ce69e5d4")
124
+ print(event["signature"])
125
+ print(event["public_key"])
126
+ ```
127
+
128
+ ## LangChain example
129
+
130
+ ```python
131
+ from langchain.agents import AgentExecutor
132
+ import veralog
133
+
134
+ veralog.configure(api_key="vrlg_...")
135
+
136
+ def run_agent_with_audit(agent_executor, input_text):
137
+ try:
138
+ result = agent_executor.invoke({"input": input_text})
139
+ veralog.record(
140
+ agent_id="langchain-agent",
141
+ action="invoke",
142
+ payload={"input": input_text, "output": result["output"][:200]},
143
+ status="success",
144
+ )
145
+ return result
146
+ except Exception as e:
147
+ veralog.record(
148
+ agent_id="langchain-agent",
149
+ action="invoke",
150
+ payload={"input": input_text, "error": str(e)},
151
+ status="error",
152
+ severity="error",
153
+ )
154
+ raise
155
+ ```
156
+
157
+ ## CrewAI example
158
+
159
+ ```python
160
+ from crewai import Agent, Task, Crew
161
+ import veralog
162
+
163
+ veralog.configure(api_key="vrlg_...")
164
+
165
+ class AuditedCrew(Crew):
166
+ def kickoff(self, inputs=None):
167
+ result = super().kickoff(inputs=inputs)
168
+ veralog.record(
169
+ agent_id="crewai-crew",
170
+ action="kickoff",
171
+ payload={"inputs": inputs, "result": str(result)[:200]},
172
+ status="success",
173
+ )
174
+ return result
175
+ ```
176
+
177
+ ## Independent verification
178
+
179
+ Every event is signed with Ed25519. You can verify any event without Veralog:
180
+
181
+ ```python
182
+ from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PublicKey
183
+ from cryptography.hazmat.primitives.serialization import Encoding, PublicFormat
184
+ import binascii
185
+
186
+ event = veralog.verify("your-event-id")
187
+
188
+ public_key = Ed25519PublicKey.from_public_bytes(
189
+ binascii.unhexlify(event["public_key"])
190
+ )
191
+ message = f"{event['event_id']}:{event['agent_id']}:{event['action']}:{event['timestamp']}".encode()
192
+ signature = binascii.unhexlify(event["signature"])
193
+
194
+ public_key.verify(signature, message)
195
+ print("Signature valid — event was not tampered with")
196
+ ```
197
+
198
+ ## Links
199
+
200
+ - Website: [www.vrlg.tech](https://www.vrlg.tech)
201
+ - API docs: [www.vrlg.tech/docs](https://www.vrlg.tech/docs)
202
+ - Contact: liquidcrystalcore@gmail.com
@@ -0,0 +1,171 @@
1
+ # Veralog Python SDK
2
+
3
+ Cryptographic audit trails for AI agents. Add one line to your agent, get a tamper-proof signed log of every action.
4
+
5
+ **[www.vrlg.tech](https://www.vrlg.tech)**
6
+
7
+ ## Installation
8
+
9
+ ```bash
10
+ pip install veralog
11
+ ```
12
+
13
+ ## Quick start
14
+
15
+ ```python
16
+ import veralog
17
+
18
+ veralog.configure(api_key="vrlg_...")
19
+
20
+ result = veralog.record(
21
+ agent_id="sales-bot",
22
+ action="send_proposal",
23
+ payload={"client": "acme-corp", "deal_value": 50000},
24
+ status="success",
25
+ )
26
+
27
+ print(result.verify_url)
28
+ ```
29
+
30
+ ## Get an API key
31
+
32
+ ```python
33
+ import veralog
34
+ account = veralog.register(email="you@yourcompany.com")
35
+ print(account["api_key"])
36
+ ```
37
+
38
+ Or register at [www.vrlg.tech](https://www.vrlg.tech).
39
+
40
+ ## Configuration
41
+
42
+ ```python
43
+ # Explicit
44
+ veralog.configure(api_key="vrlg_...")
45
+
46
+ # Or via environment variable
47
+ export VERALOG_API_KEY="vrlg_..."
48
+ ```
49
+
50
+ ## Record an event
51
+
52
+ ```python
53
+ result = veralog.record(
54
+ agent_id="sales-bot", # required: your agent's ID
55
+ action="send_proposal", # required: what it did
56
+ payload={"client": "acme"}, # required: arbitrary dict
57
+ status="success", # success | warning | error | crash | timeout | blocked | cancelled
58
+ severity="info", # debug | info | warning | error | critical
59
+ flags=[], # loop_detected | policy_violation | data_exposure | ...
60
+ trace_id="trace-abc-123", # optional: correlation ID
61
+ tool_name="gmail_api", # optional: tool used
62
+ )
63
+
64
+ print(result.event_id) # UUID
65
+ print(result.verify_url) # https://www.vrlg.tech/verify/{id}/page
66
+ print(result.events_used) # running total
67
+ ```
68
+
69
+ ## Query events
70
+
71
+ ```python
72
+ events = veralog.get_events(
73
+ status="blocked",
74
+ agent_id="sales-bot",
75
+ since="2026-06-01T00:00:00",
76
+ limit=50,
77
+ )
78
+ print(events["total"])
79
+ print(events["events"])
80
+ ```
81
+
82
+ ## Export all events
83
+
84
+ ```python
85
+ data = veralog.export()
86
+ # Returns dict with all events, signatures, and public keys
87
+ ```
88
+
89
+ ## Verify an event
90
+
91
+ ```python
92
+ event = veralog.verify("8b466b96-8663-4742-a6a6-8964ce69e5d4")
93
+ print(event["signature"])
94
+ print(event["public_key"])
95
+ ```
96
+
97
+ ## LangChain example
98
+
99
+ ```python
100
+ from langchain.agents import AgentExecutor
101
+ import veralog
102
+
103
+ veralog.configure(api_key="vrlg_...")
104
+
105
+ def run_agent_with_audit(agent_executor, input_text):
106
+ try:
107
+ result = agent_executor.invoke({"input": input_text})
108
+ veralog.record(
109
+ agent_id="langchain-agent",
110
+ action="invoke",
111
+ payload={"input": input_text, "output": result["output"][:200]},
112
+ status="success",
113
+ )
114
+ return result
115
+ except Exception as e:
116
+ veralog.record(
117
+ agent_id="langchain-agent",
118
+ action="invoke",
119
+ payload={"input": input_text, "error": str(e)},
120
+ status="error",
121
+ severity="error",
122
+ )
123
+ raise
124
+ ```
125
+
126
+ ## CrewAI example
127
+
128
+ ```python
129
+ from crewai import Agent, Task, Crew
130
+ import veralog
131
+
132
+ veralog.configure(api_key="vrlg_...")
133
+
134
+ class AuditedCrew(Crew):
135
+ def kickoff(self, inputs=None):
136
+ result = super().kickoff(inputs=inputs)
137
+ veralog.record(
138
+ agent_id="crewai-crew",
139
+ action="kickoff",
140
+ payload={"inputs": inputs, "result": str(result)[:200]},
141
+ status="success",
142
+ )
143
+ return result
144
+ ```
145
+
146
+ ## Independent verification
147
+
148
+ Every event is signed with Ed25519. You can verify any event without Veralog:
149
+
150
+ ```python
151
+ from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PublicKey
152
+ from cryptography.hazmat.primitives.serialization import Encoding, PublicFormat
153
+ import binascii
154
+
155
+ event = veralog.verify("your-event-id")
156
+
157
+ public_key = Ed25519PublicKey.from_public_bytes(
158
+ binascii.unhexlify(event["public_key"])
159
+ )
160
+ message = f"{event['event_id']}:{event['agent_id']}:{event['action']}:{event['timestamp']}".encode()
161
+ signature = binascii.unhexlify(event["signature"])
162
+
163
+ public_key.verify(signature, message)
164
+ print("Signature valid — event was not tampered with")
165
+ ```
166
+
167
+ ## Links
168
+
169
+ - Website: [www.vrlg.tech](https://www.vrlg.tech)
170
+ - API docs: [www.vrlg.tech/docs](https://www.vrlg.tech/docs)
171
+ - Contact: liquidcrystalcore@gmail.com
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
veralog-0.1.0/setup.py ADDED
@@ -0,0 +1,29 @@
1
+ from setuptools import setup, find_packages
2
+
3
+ setup(
4
+ name="veralog",
5
+ version="0.1.0",
6
+ description="Cryptographic audit trails for AI agents",
7
+ long_description=open("README.md").read(),
8
+ long_description_content_type="text/markdown",
9
+ author="Anton Kupreev",
10
+ author_email="liquidcrystalcore@gmail.com",
11
+ url="https://www.vrlg.tech",
12
+ packages=find_packages(),
13
+ python_requires=">=3.8",
14
+ install_requires=[],
15
+ classifiers=[
16
+ "Development Status :: 4 - Beta",
17
+ "Intended Audience :: Developers",
18
+ "Topic :: Software Development :: Libraries",
19
+ "Topic :: Security",
20
+ "Programming Language :: Python :: 3",
21
+ "Programming Language :: Python :: 3.8",
22
+ "Programming Language :: Python :: 3.9",
23
+ "Programming Language :: Python :: 3.10",
24
+ "Programming Language :: Python :: 3.11",
25
+ "Programming Language :: Python :: 3.12",
26
+ "Programming Language :: Python :: 3.13",
27
+ ],
28
+ keywords="ai agent audit log cryptographic ed25519 enterprise security",
29
+ )
@@ -0,0 +1,202 @@
1
+ Metadata-Version: 2.4
2
+ Name: veralog
3
+ Version: 0.1.0
4
+ Summary: Cryptographic audit trails for AI agents
5
+ Home-page: https://www.vrlg.tech
6
+ Author: Anton Kupreev
7
+ Author-email: liquidcrystalcore@gmail.com
8
+ Keywords: ai agent audit log cryptographic ed25519 enterprise security
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: Topic :: Software Development :: Libraries
12
+ Classifier: Topic :: Security
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.8
15
+ Classifier: Programming Language :: Python :: 3.9
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Requires-Python: >=3.8
21
+ Description-Content-Type: text/markdown
22
+ Dynamic: author
23
+ Dynamic: author-email
24
+ Dynamic: classifier
25
+ Dynamic: description
26
+ Dynamic: description-content-type
27
+ Dynamic: home-page
28
+ Dynamic: keywords
29
+ Dynamic: requires-python
30
+ Dynamic: summary
31
+
32
+ # Veralog Python SDK
33
+
34
+ Cryptographic audit trails for AI agents. Add one line to your agent, get a tamper-proof signed log of every action.
35
+
36
+ **[www.vrlg.tech](https://www.vrlg.tech)**
37
+
38
+ ## Installation
39
+
40
+ ```bash
41
+ pip install veralog
42
+ ```
43
+
44
+ ## Quick start
45
+
46
+ ```python
47
+ import veralog
48
+
49
+ veralog.configure(api_key="vrlg_...")
50
+
51
+ result = veralog.record(
52
+ agent_id="sales-bot",
53
+ action="send_proposal",
54
+ payload={"client": "acme-corp", "deal_value": 50000},
55
+ status="success",
56
+ )
57
+
58
+ print(result.verify_url)
59
+ ```
60
+
61
+ ## Get an API key
62
+
63
+ ```python
64
+ import veralog
65
+ account = veralog.register(email="you@yourcompany.com")
66
+ print(account["api_key"])
67
+ ```
68
+
69
+ Or register at [www.vrlg.tech](https://www.vrlg.tech).
70
+
71
+ ## Configuration
72
+
73
+ ```python
74
+ # Explicit
75
+ veralog.configure(api_key="vrlg_...")
76
+
77
+ # Or via environment variable
78
+ export VERALOG_API_KEY="vrlg_..."
79
+ ```
80
+
81
+ ## Record an event
82
+
83
+ ```python
84
+ result = veralog.record(
85
+ agent_id="sales-bot", # required: your agent's ID
86
+ action="send_proposal", # required: what it did
87
+ payload={"client": "acme"}, # required: arbitrary dict
88
+ status="success", # success | warning | error | crash | timeout | blocked | cancelled
89
+ severity="info", # debug | info | warning | error | critical
90
+ flags=[], # loop_detected | policy_violation | data_exposure | ...
91
+ trace_id="trace-abc-123", # optional: correlation ID
92
+ tool_name="gmail_api", # optional: tool used
93
+ )
94
+
95
+ print(result.event_id) # UUID
96
+ print(result.verify_url) # https://www.vrlg.tech/verify/{id}/page
97
+ print(result.events_used) # running total
98
+ ```
99
+
100
+ ## Query events
101
+
102
+ ```python
103
+ events = veralog.get_events(
104
+ status="blocked",
105
+ agent_id="sales-bot",
106
+ since="2026-06-01T00:00:00",
107
+ limit=50,
108
+ )
109
+ print(events["total"])
110
+ print(events["events"])
111
+ ```
112
+
113
+ ## Export all events
114
+
115
+ ```python
116
+ data = veralog.export()
117
+ # Returns dict with all events, signatures, and public keys
118
+ ```
119
+
120
+ ## Verify an event
121
+
122
+ ```python
123
+ event = veralog.verify("8b466b96-8663-4742-a6a6-8964ce69e5d4")
124
+ print(event["signature"])
125
+ print(event["public_key"])
126
+ ```
127
+
128
+ ## LangChain example
129
+
130
+ ```python
131
+ from langchain.agents import AgentExecutor
132
+ import veralog
133
+
134
+ veralog.configure(api_key="vrlg_...")
135
+
136
+ def run_agent_with_audit(agent_executor, input_text):
137
+ try:
138
+ result = agent_executor.invoke({"input": input_text})
139
+ veralog.record(
140
+ agent_id="langchain-agent",
141
+ action="invoke",
142
+ payload={"input": input_text, "output": result["output"][:200]},
143
+ status="success",
144
+ )
145
+ return result
146
+ except Exception as e:
147
+ veralog.record(
148
+ agent_id="langchain-agent",
149
+ action="invoke",
150
+ payload={"input": input_text, "error": str(e)},
151
+ status="error",
152
+ severity="error",
153
+ )
154
+ raise
155
+ ```
156
+
157
+ ## CrewAI example
158
+
159
+ ```python
160
+ from crewai import Agent, Task, Crew
161
+ import veralog
162
+
163
+ veralog.configure(api_key="vrlg_...")
164
+
165
+ class AuditedCrew(Crew):
166
+ def kickoff(self, inputs=None):
167
+ result = super().kickoff(inputs=inputs)
168
+ veralog.record(
169
+ agent_id="crewai-crew",
170
+ action="kickoff",
171
+ payload={"inputs": inputs, "result": str(result)[:200]},
172
+ status="success",
173
+ )
174
+ return result
175
+ ```
176
+
177
+ ## Independent verification
178
+
179
+ Every event is signed with Ed25519. You can verify any event without Veralog:
180
+
181
+ ```python
182
+ from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PublicKey
183
+ from cryptography.hazmat.primitives.serialization import Encoding, PublicFormat
184
+ import binascii
185
+
186
+ event = veralog.verify("your-event-id")
187
+
188
+ public_key = Ed25519PublicKey.from_public_bytes(
189
+ binascii.unhexlify(event["public_key"])
190
+ )
191
+ message = f"{event['event_id']}:{event['agent_id']}:{event['action']}:{event['timestamp']}".encode()
192
+ signature = binascii.unhexlify(event["signature"])
193
+
194
+ public_key.verify(signature, message)
195
+ print("Signature valid — event was not tampered with")
196
+ ```
197
+
198
+ ## Links
199
+
200
+ - Website: [www.vrlg.tech](https://www.vrlg.tech)
201
+ - API docs: [www.vrlg.tech/docs](https://www.vrlg.tech/docs)
202
+ - Contact: liquidcrystalcore@gmail.com
@@ -0,0 +1,6 @@
1
+ README.md
2
+ setup.py
3
+ veralog.egg-info/PKG-INFO
4
+ veralog.egg-info/SOURCES.txt
5
+ veralog.egg-info/dependency_links.txt
6
+ veralog.egg-info/top_level.txt