trusthandoff 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.
@@ -0,0 +1,19 @@
1
+ Metadata-Version: 2.4
2
+ Name: trusthandoff
3
+ Version: 0.1.0
4
+ Summary: Verifiable task delegation between AI agents
5
+ Requires-Python: >=3.11
6
+ Description-Content-Type: text/markdown
7
+ Requires-Dist: pydantic>=2.0
8
+
9
+ # TrustHandoff
10
+
11
+ Verifiable task delegation between AI agents.
12
+
13
+ ## Core primitive
14
+
15
+ SignedTaskPacket
16
+
17
+ ## Status
18
+
19
+ Early local development.
@@ -0,0 +1,11 @@
1
+ # TrustHandoff
2
+
3
+ Verifiable task delegation between AI agents.
4
+
5
+ ## Core primitive
6
+
7
+ SignedTaskPacket
8
+
9
+ ## Status
10
+
11
+ Early local development.
@@ -0,0 +1,16 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.0"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "trusthandoff"
7
+ version = "0.1.0"
8
+ description = "Verifiable task delegation between AI agents"
9
+ readme = "README.md"
10
+ requires-python = ">=3.11"
11
+ dependencies = [
12
+ "pydantic>=2.0"
13
+ ]
14
+
15
+ [tool.setuptools.packages.find]
16
+ where = ["src"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,3 @@
1
+ from .packet import SignedTaskPacket, Permissions, Constraints, Provenance
2
+
3
+ __all__ = ["SignedTaskPacket", "Permissions", "Constraints", "Provenance"]
@@ -0,0 +1,45 @@
1
+ from datetime import datetime
2
+ from typing import Any, Dict, List, Optional
3
+
4
+ from pydantic import BaseModel, Field
5
+
6
+
7
+ class Permissions(BaseModel):
8
+ allowed_actions: List[str] = Field(default_factory=list)
9
+ max_tool_calls: Optional[int] = None
10
+
11
+
12
+ class Constraints(BaseModel):
13
+ max_runtime_seconds: Optional[int] = None
14
+ data_boundary: Optional[str] = None
15
+
16
+
17
+ class Provenance(BaseModel):
18
+ origin_workflow: Optional[str] = None
19
+ delegation_depth: Optional[int] = None
20
+
21
+
22
+ class SignedTaskPacket(BaseModel):
23
+ packet_id: str
24
+ task_id: str
25
+ from_agent: str
26
+ to_agent: str
27
+
28
+ issued_at: datetime
29
+ expires_at: datetime
30
+ nonce: str
31
+
32
+ intent: str
33
+ task_type: Optional[str] = None
34
+ goal: Optional[str] = None
35
+
36
+ context: Dict[str, Any] = Field(default_factory=dict)
37
+ memory_refs: List[str] = Field(default_factory=list)
38
+
39
+ permissions: Permissions
40
+ constraints: Optional[Constraints] = None
41
+ provenance: Optional[Provenance] = None
42
+
43
+ signature_algo: str
44
+ signature: str
45
+ public_key: str
@@ -0,0 +1,19 @@
1
+ Metadata-Version: 2.4
2
+ Name: trusthandoff
3
+ Version: 0.1.0
4
+ Summary: Verifiable task delegation between AI agents
5
+ Requires-Python: >=3.11
6
+ Description-Content-Type: text/markdown
7
+ Requires-Dist: pydantic>=2.0
8
+
9
+ # TrustHandoff
10
+
11
+ Verifiable task delegation between AI agents.
12
+
13
+ ## Core primitive
14
+
15
+ SignedTaskPacket
16
+
17
+ ## Status
18
+
19
+ Early local development.
@@ -0,0 +1,10 @@
1
+ README.md
2
+ pyproject.toml
3
+ src/trusthandoff/__init__.py
4
+ src/trusthandoff/packet.py
5
+ src/trusthandoff.egg-info/PKG-INFO
6
+ src/trusthandoff.egg-info/SOURCES.txt
7
+ src/trusthandoff.egg-info/dependency_links.txt
8
+ src/trusthandoff.egg-info/requires.txt
9
+ src/trusthandoff.egg-info/top_level.txt
10
+ tests/test_packet.py
@@ -0,0 +1 @@
1
+ pydantic>=2.0
@@ -0,0 +1 @@
1
+ trusthandoff
@@ -0,0 +1,26 @@
1
+ from datetime import datetime, timedelta, timezone
2
+
3
+ from trusthandoff import SignedTaskPacket, Permissions
4
+
5
+
6
+ def test_signed_task_packet_creation():
7
+ packet = SignedTaskPacket(
8
+ packet_id="pk_001",
9
+ task_id="task_001",
10
+ from_agent="agent:planner:alpha",
11
+ to_agent="agent:research:beta",
12
+ issued_at=datetime.now(timezone.utc),
13
+ expires_at=datetime.now(timezone.utc) + timedelta(minutes=10),
14
+ nonce="abc123",
15
+ intent="Research company background",
16
+ context={"company": "Example Corp"},
17
+ permissions=Permissions(
18
+ allowed_actions=["read", "search"],
19
+ max_tool_calls=5,
20
+ ),
21
+ signature_algo="Ed25519",
22
+ signature="fake",
23
+ public_key="fake",
24
+ )
25
+
26
+ assert packet.task_id == "task_001"