Intent-based discovery and communication protocol with TIBET provenance. ICMP replacement with identity, trust, and context.
Project description
tibet-ping
Intent-based discovery and communication protocol with TIBET provenance.
ICMP ping is dumb: "are you there?" → "yes". No identity, no intent, no trust.
tibet-ping replaces this with a TIBET token as handshake. Every ping carries identity (JIS), intent, context, and purpose. Responses are trust-gated through Airlock zones.
Features
- PingPacket — TIBET-backed ping with identity, intent, context, purpose
- NonceTracker — Replay protection (30-second time window)
- Airlock — Trust-gated access (GROEN/GEEL/ROOD zones) with rules engine
- Vouching — Trust delegation for device groups (solves HITL scaling)
- Topology — Hub/Hubby/Pod/Station network modeling
- Beacon — Airgapped bootstrap for new devices (chicken-and-egg solved)
Quick Start
from tibet_ping import PingNode, PingDecision
# Create nodes
hub = PingNode("jis:home:hub")
sensor = PingNode("jis:home:sensor_temp")
# Hub trusts sensor
hub.set_trust("jis:home:sensor_temp", 0.9)
# Sensor pings hub
packet = sensor.ping(
target="jis:home:hub",
intent="temperature.report",
purpose="Periodic temperature reading",
payload={"celsius": 21.5},
)
# Hub receives and processes
response = hub.receive(packet)
assert response.decision == PingDecision.ACCEPT
assert response.airlock_zone == "GROEN"
Airlock Zones
| Zone | Trust | Action |
|---|---|---|
| GROEN | >= 0.7 | Auto-allow |
| GEEL | 0.3 - 0.7 | Pending (rules or HITL) |
| ROOD | < 0.3 | Silent drop |
Vouching (HITL Scaling)
# Hub vouches for 50 sensors at once
hub.vouch(
vouched_dids=["jis:home:s1", "jis:home:s2", ...],
my_trust=0.9,
vouch_factor=0.7, # Vouched trust = 0.9 * 0.7 = 0.63
)
Beacon Bootstrap
# New device broadcasts beacon (no secrets!)
beacon = new_device.broadcast_beacon(
capabilities=["temperature"],
device_type="sensor",
)
# Hub auto-vouches or escalates to HITL
response = hub.handle_beacon(beacon)
License
MIT — Humotica AI Lab 2025-2026
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tibet_ping-0.1.0.tar.gz.
File metadata
- Download URL: tibet_ping-0.1.0.tar.gz
- Upload date:
- Size: 13.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f515e9a71f3b2ea002fa7111cd795cdfa146f6a6084e0f128a6b98682a5e857
|
|
| MD5 |
ba530d0520b36be9b5b28465df4be54d
|
|
| BLAKE2b-256 |
cf9b8404c3a75090597c2b2ea010472038ffacfe2964e15fcf345c72a9227142
|
File details
Details for the file tibet_ping-0.1.0-py3-none-any.whl.
File metadata
- Download URL: tibet_ping-0.1.0-py3-none-any.whl
- Upload date:
- Size: 18.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71049f485fc21a5ff1925f940afcf0e2771d5c22f4157e2d153126250b62f66b
|
|
| MD5 |
32d135ba6c7bb16abf595407abce4f7b
|
|
| BLAKE2b-256 |
524409a09c5366955068265312b5033b671bf79917796a1095d091320c3f7be3
|