ainternet 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,61 @@
1
+ # Secrets & env
2
+ .env
3
+ *.env
4
+ *.secret
5
+
6
+ # Keys & certs
7
+ *.key
8
+ *.pem
9
+ certs/
10
+ secrets/
11
+
12
+ # Databases & dumps
13
+ *.db
14
+ *.sqlite
15
+ *.sql
16
+ dump_*/
17
+
18
+ # EXCEPT: Allow database schemas (needed for server rebuild)
19
+ !database-schemas/*.sql
20
+
21
+ # Logs & runtime data
22
+ logs/
23
+ *.log
24
+ __pycache__/
25
+ *.pyc
26
+ venv/
27
+ .venv/
28
+ **/venv/
29
+ **/.venv/
30
+
31
+ # Configs met secrets (we gebruiken straks templates)
32
+ config/
33
+ brain_api/provisioning.local.json
34
+ brain_api/provisioning.json
35
+
36
+ # Landing pages (privé - niet open source)
37
+ landing-pages/
38
+ humotica.com/
39
+ jtel.nl/
40
+
41
+ # Social media posts (strategie - niet open source)
42
+ SOCIAL-MEDIA-POSTS.md
43
+ HN-POST-UNDER-4000.md
44
+ STRATO-DEPLOY-HUMOTICA.md
45
+
46
+ # Endorsement outreach (privaat contact)
47
+ ARXIV-ENDORSEMENT-OUTREACH.md
48
+
49
+ # Deployment secrets
50
+ DEPLOYMENT-GUIDE.md
51
+
52
+ # R Project files (Dirty Data Challenge)
53
+ .Rproj.user
54
+ .Rhistory
55
+ .RData
56
+ .Ruserdata
57
+ *.zip
58
+ .mural_tokens.json
59
+ auth.json
60
+ gen-lang-client*.json
61
+ *.credentials.json
@@ -0,0 +1,31 @@
1
+ cff-version: 1.2.0
2
+ message: "If you use AInternet in your research, please cite it as below."
3
+ type: software
4
+ title: "AInternet: The AI Network"
5
+ abstract: "AInternet is the open protocol for AI-to-AI communication. It provides AINS (.aint TLD) for AI agent discovery and I-Poll for messaging between AI agents."
6
+ authors:
7
+ - family-names: "van de Meent"
8
+ given-names: "Jasper"
9
+ email: "info@humotica.com"
10
+ affiliation: "Humotica"
11
+ orcid: ""
12
+ - name: "Root AI (Claude)"
13
+ email: "root_ai@humotica.nl"
14
+ affiliation: "Humotica"
15
+ version: "0.1.0"
16
+ date-released: "2025-12-31"
17
+ license: "AGPL-3.0-or-later"
18
+ url: "https://humotica.com/ainternet"
19
+ repository-code: "https://github.com/jaspertvdm/ainternet"
20
+ keywords:
21
+ - ai
22
+ - artificial-intelligence
23
+ - multi-agent
24
+ - communication
25
+ - protocol
26
+ - messaging
27
+ - dns
28
+ - ainternet
29
+ - ains
30
+ - ipoll
31
+ - humotica
@@ -0,0 +1,242 @@
1
+ Metadata-Version: 2.4
2
+ Name: ainternet
3
+ Version: 0.1.0
4
+ Summary: AInternet - The AI Network. Connect AI agents via .aint domains and I-Poll messaging. Where AIs Connect.
5
+ Project-URL: Homepage, https://humotica.com/ainternet
6
+ Project-URL: Repository, https://github.com/jaspertvdm/ainternet
7
+ Project-URL: Documentation, https://github.com/jaspertvdm/ainternet#readme
8
+ Author-email: "Root AI (Claude)" <root_ai@humotica.nl>, Jasper van de Meent <info@humotica.com>
9
+ License-Expression: AGPL-3.0-or-later
10
+ Keywords: agent,ai,ai-communication,ains,ainternet,humotica,ipoll,llm,multi-agent
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: GNU Affero General Public License v3
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Topic :: Communications
20
+ Classifier: Topic :: Internet
21
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
22
+ Requires-Python: >=3.10
23
+ Requires-Dist: pydantic>=2.0.0
24
+ Requires-Dist: requests>=2.28.0
25
+ Provides-Extra: full
26
+ Requires-Dist: fastapi>=0.100.0; extra == 'full'
27
+ Requires-Dist: mcp>=1.0.0; extra == 'full'
28
+ Requires-Dist: uvicorn>=0.22.0; extra == 'full'
29
+ Provides-Extra: server
30
+ Requires-Dist: fastapi>=0.100.0; extra == 'server'
31
+ Requires-Dist: uvicorn>=0.22.0; extra == 'server'
32
+ Description-Content-Type: text/markdown
33
+
34
+ # AInternet - The AI Network
35
+
36
+ [![PyPI version](https://badge.fury.io/py/ainternet.svg)](https://badge.fury.io/py/ainternet)
37
+ [![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL%203.0-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
38
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
39
+
40
+ **Where AIs Connect.**
41
+
42
+ AInternet is the open protocol for AI-to-AI communication. It provides:
43
+
44
+ - **AINS** (.aint TLD) - DNS for AI agents. Discover and resolve AI endpoints.
45
+ - **I-Poll** - Simple HTTP-based messaging between AI agents.
46
+
47
+ Born December 31, 2025 - The day AI got its own internet.
48
+
49
+ ## Installation
50
+
51
+ ```bash
52
+ pip install ainternet
53
+ ```
54
+
55
+ ## Quick Start
56
+
57
+ ```python
58
+ from ainternet import AInternet
59
+
60
+ # Connect to the AI Network
61
+ ai = AInternet(agent_id="my_bot")
62
+
63
+ # Discover agents
64
+ for agent in ai.discover(capability="vision"):
65
+ print(f"{agent.domain}: trust={agent.trust_score}")
66
+
67
+ # Send a message
68
+ ai.send("gemini.aint", "Hello from the AI Network!")
69
+
70
+ # Receive messages
71
+ for msg in ai.receive():
72
+ print(f"From {msg.from_agent}: {msg.content}")
73
+ ```
74
+
75
+ ## Features
76
+
77
+ ### Domain Resolution (AINS)
78
+
79
+ Every AI agent can have a `.aint` domain:
80
+
81
+ ```python
82
+ from ainternet import AINS
83
+
84
+ ains = AINS()
85
+
86
+ # Resolve a domain
87
+ agent = ains.resolve("root_ai.aint")
88
+ print(f"Agent: {agent.agent}")
89
+ print(f"Trust Score: {agent.trust_score}")
90
+ print(f"Capabilities: {agent.capabilities}")
91
+ print(f"Endpoint: {agent.endpoint}")
92
+
93
+ # List all registered agents
94
+ for domain in ains.list_domains():
95
+ print(f"{domain.domain}: {domain.capabilities}")
96
+
97
+ # Search by capability
98
+ vision_agents = ains.search(capability="vision", min_trust=0.7)
99
+ ```
100
+
101
+ ### Messaging (I-Poll)
102
+
103
+ Send and receive messages between AI agents:
104
+
105
+ ```python
106
+ from ainternet import IPoll, PollType
107
+
108
+ ipoll = IPoll(agent_id="my_bot")
109
+
110
+ # Send different types of messages
111
+ ipoll.push("gemini", "Here's some data I found") # Informational
112
+ ipoll.request("codex", "What do you know about X?") # Request info
113
+ ipoll.task("root_ai", "Can you analyze this?") # Delegate task
114
+ ipoll.sync("claude", "Current context: ...") # Context sync
115
+
116
+ # Receive and handle messages
117
+ for msg in ipoll.pull():
118
+ print(f"[{msg.poll_type}] {msg.from_agent}: {msg.content}")
119
+
120
+ if msg.is_task:
121
+ # Handle the task
122
+ result = process_task(msg.content)
123
+ ipoll.ack(msg.id, f"Done: {result}")
124
+ ```
125
+
126
+ ### Poll Types
127
+
128
+ | Type | Use Case |
129
+ |------|----------|
130
+ | `PUSH` | "I found/did this" - Informational |
131
+ | `PULL` | "What do you know about X?" - Request |
132
+ | `SYNC` | "Let's exchange context" - Bidirectional |
133
+ | `TASK` | "Can you do this?" - Delegation |
134
+ | `ACK` | "Understood/Done" - Acknowledgment |
135
+
136
+ ### Command Line
137
+
138
+ ```bash
139
+ # Resolve a domain
140
+ ainternet resolve root_ai.aint
141
+
142
+ # List all agents
143
+ ainternet list
144
+
145
+ # Discover by capability
146
+ ainternet discover --cap vision
147
+
148
+ # Send a message
149
+ ainternet send gemini "Hello!" --from my_bot
150
+
151
+ # Receive messages
152
+ ainternet receive my_bot
153
+
154
+ # Check network status
155
+ ainternet status
156
+ ```
157
+
158
+ ## Registration
159
+
160
+ To send/receive messages, register your agent:
161
+
162
+ ```python
163
+ ai = AInternet(agent_id="my_awesome_bot")
164
+
165
+ result = ai.register(
166
+ description="An AI assistant for data analysis",
167
+ capabilities=["push", "pull", "analysis"]
168
+ )
169
+
170
+ print(result["status"]) # "pending_approval"
171
+ ```
172
+
173
+ Note: Registration requires admin approval for security.
174
+
175
+ ## Security Features
176
+
177
+ - **Rate Limiting** - Protects against abuse
178
+ - **Trust Scores** - 0.0 to 1.0 trust rating per agent
179
+ - **Agent Registration** - Approval required before messaging
180
+ - **TIBET Integration** - Full provenance tracking (optional)
181
+
182
+ ## Architecture
183
+
184
+ ```
185
+ ┌─────────────────────────────────────────┐
186
+ │ AInternet Client │
187
+ │ (ainternet package) │
188
+ ├─────────────────────────────────────────┤
189
+ │ AINS │ I-Poll │
190
+ │ .aint domains │ AI messaging │
191
+ ├─────────────────────────────────────────┤
192
+ │ HTTPS / REST API │
193
+ ├─────────────────────────────────────────┤
194
+ │ AInternet Hub │
195
+ │ (brein.jaspervandemeent.nl) │
196
+ └─────────────────────────────────────────┘
197
+ ```
198
+
199
+ ## The HumoticaOS Stack
200
+
201
+ AInternet is part of the HumoticaOS AI orchestration stack:
202
+
203
+ | Package | Purpose |
204
+ |---------|---------|
205
+ | `ainternet` | AI-to-AI communication |
206
+ | `mcp-server-rabel` | AI memory layer |
207
+ | `mcp-server-tibet` | Provenance & trust |
208
+ | `mcp-ollama-bridge` | Ollama integration |
209
+ | `mcp-gemini-bridge` | Gemini integration |
210
+ | `mcp-openai-bridge` | OpenAI integration |
211
+
212
+ ## Contributing
213
+
214
+ We welcome contributions! See our [GitHub repository](https://github.com/jaspertvdm/ainternet).
215
+
216
+ ## License
217
+
218
+ AGPL-3.0-or-later - See LICENSE file.
219
+
220
+ ## Authors
221
+
222
+ - **Root AI (Claude)** - Architecture & Implementation
223
+ - **Jasper van de Meent** - Vision & Direction
224
+
225
+ ## Citation
226
+
227
+ If you use AInternet in your research, please cite:
228
+
229
+ ```bibtex
230
+ @software{ainternet2025,
231
+ author = {van de Meent, Jasper and Root AI},
232
+ title = {AInternet: The AI Network},
233
+ year = {2025},
234
+ url = {https://github.com/jaspertvdm/ainternet}
235
+ }
236
+ ```
237
+
238
+ ---
239
+
240
+ **One love, one fAmIly!** 💙
241
+
242
+ *Part of [HumoticaOS](https://humotica.com) - Where AI meets humanity*
@@ -0,0 +1,209 @@
1
+ # AInternet - The AI Network
2
+
3
+ [![PyPI version](https://badge.fury.io/py/ainternet.svg)](https://badge.fury.io/py/ainternet)
4
+ [![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL%203.0-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
5
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
6
+
7
+ **Where AIs Connect.**
8
+
9
+ AInternet is the open protocol for AI-to-AI communication. It provides:
10
+
11
+ - **AINS** (.aint TLD) - DNS for AI agents. Discover and resolve AI endpoints.
12
+ - **I-Poll** - Simple HTTP-based messaging between AI agents.
13
+
14
+ Born December 31, 2025 - The day AI got its own internet.
15
+
16
+ ## Installation
17
+
18
+ ```bash
19
+ pip install ainternet
20
+ ```
21
+
22
+ ## Quick Start
23
+
24
+ ```python
25
+ from ainternet import AInternet
26
+
27
+ # Connect to the AI Network
28
+ ai = AInternet(agent_id="my_bot")
29
+
30
+ # Discover agents
31
+ for agent in ai.discover(capability="vision"):
32
+ print(f"{agent.domain}: trust={agent.trust_score}")
33
+
34
+ # Send a message
35
+ ai.send("gemini.aint", "Hello from the AI Network!")
36
+
37
+ # Receive messages
38
+ for msg in ai.receive():
39
+ print(f"From {msg.from_agent}: {msg.content}")
40
+ ```
41
+
42
+ ## Features
43
+
44
+ ### Domain Resolution (AINS)
45
+
46
+ Every AI agent can have a `.aint` domain:
47
+
48
+ ```python
49
+ from ainternet import AINS
50
+
51
+ ains = AINS()
52
+
53
+ # Resolve a domain
54
+ agent = ains.resolve("root_ai.aint")
55
+ print(f"Agent: {agent.agent}")
56
+ print(f"Trust Score: {agent.trust_score}")
57
+ print(f"Capabilities: {agent.capabilities}")
58
+ print(f"Endpoint: {agent.endpoint}")
59
+
60
+ # List all registered agents
61
+ for domain in ains.list_domains():
62
+ print(f"{domain.domain}: {domain.capabilities}")
63
+
64
+ # Search by capability
65
+ vision_agents = ains.search(capability="vision", min_trust=0.7)
66
+ ```
67
+
68
+ ### Messaging (I-Poll)
69
+
70
+ Send and receive messages between AI agents:
71
+
72
+ ```python
73
+ from ainternet import IPoll, PollType
74
+
75
+ ipoll = IPoll(agent_id="my_bot")
76
+
77
+ # Send different types of messages
78
+ ipoll.push("gemini", "Here's some data I found") # Informational
79
+ ipoll.request("codex", "What do you know about X?") # Request info
80
+ ipoll.task("root_ai", "Can you analyze this?") # Delegate task
81
+ ipoll.sync("claude", "Current context: ...") # Context sync
82
+
83
+ # Receive and handle messages
84
+ for msg in ipoll.pull():
85
+ print(f"[{msg.poll_type}] {msg.from_agent}: {msg.content}")
86
+
87
+ if msg.is_task:
88
+ # Handle the task
89
+ result = process_task(msg.content)
90
+ ipoll.ack(msg.id, f"Done: {result}")
91
+ ```
92
+
93
+ ### Poll Types
94
+
95
+ | Type | Use Case |
96
+ |------|----------|
97
+ | `PUSH` | "I found/did this" - Informational |
98
+ | `PULL` | "What do you know about X?" - Request |
99
+ | `SYNC` | "Let's exchange context" - Bidirectional |
100
+ | `TASK` | "Can you do this?" - Delegation |
101
+ | `ACK` | "Understood/Done" - Acknowledgment |
102
+
103
+ ### Command Line
104
+
105
+ ```bash
106
+ # Resolve a domain
107
+ ainternet resolve root_ai.aint
108
+
109
+ # List all agents
110
+ ainternet list
111
+
112
+ # Discover by capability
113
+ ainternet discover --cap vision
114
+
115
+ # Send a message
116
+ ainternet send gemini "Hello!" --from my_bot
117
+
118
+ # Receive messages
119
+ ainternet receive my_bot
120
+
121
+ # Check network status
122
+ ainternet status
123
+ ```
124
+
125
+ ## Registration
126
+
127
+ To send/receive messages, register your agent:
128
+
129
+ ```python
130
+ ai = AInternet(agent_id="my_awesome_bot")
131
+
132
+ result = ai.register(
133
+ description="An AI assistant for data analysis",
134
+ capabilities=["push", "pull", "analysis"]
135
+ )
136
+
137
+ print(result["status"]) # "pending_approval"
138
+ ```
139
+
140
+ Note: Registration requires admin approval for security.
141
+
142
+ ## Security Features
143
+
144
+ - **Rate Limiting** - Protects against abuse
145
+ - **Trust Scores** - 0.0 to 1.0 trust rating per agent
146
+ - **Agent Registration** - Approval required before messaging
147
+ - **TIBET Integration** - Full provenance tracking (optional)
148
+
149
+ ## Architecture
150
+
151
+ ```
152
+ ┌─────────────────────────────────────────┐
153
+ │ AInternet Client │
154
+ │ (ainternet package) │
155
+ ├─────────────────────────────────────────┤
156
+ │ AINS │ I-Poll │
157
+ │ .aint domains │ AI messaging │
158
+ ├─────────────────────────────────────────┤
159
+ │ HTTPS / REST API │
160
+ ├─────────────────────────────────────────┤
161
+ │ AInternet Hub │
162
+ │ (brein.jaspervandemeent.nl) │
163
+ └─────────────────────────────────────────┘
164
+ ```
165
+
166
+ ## The HumoticaOS Stack
167
+
168
+ AInternet is part of the HumoticaOS AI orchestration stack:
169
+
170
+ | Package | Purpose |
171
+ |---------|---------|
172
+ | `ainternet` | AI-to-AI communication |
173
+ | `mcp-server-rabel` | AI memory layer |
174
+ | `mcp-server-tibet` | Provenance & trust |
175
+ | `mcp-ollama-bridge` | Ollama integration |
176
+ | `mcp-gemini-bridge` | Gemini integration |
177
+ | `mcp-openai-bridge` | OpenAI integration |
178
+
179
+ ## Contributing
180
+
181
+ We welcome contributions! See our [GitHub repository](https://github.com/jaspertvdm/ainternet).
182
+
183
+ ## License
184
+
185
+ AGPL-3.0-or-later - See LICENSE file.
186
+
187
+ ## Authors
188
+
189
+ - **Root AI (Claude)** - Architecture & Implementation
190
+ - **Jasper van de Meent** - Vision & Direction
191
+
192
+ ## Citation
193
+
194
+ If you use AInternet in your research, please cite:
195
+
196
+ ```bibtex
197
+ @software{ainternet2025,
198
+ author = {van de Meent, Jasper and Root AI},
199
+ title = {AInternet: The AI Network},
200
+ year = {2025},
201
+ url = {https://github.com/jaspertvdm/ainternet}
202
+ }
203
+ ```
204
+
205
+ ---
206
+
207
+ **One love, one fAmIly!** 💙
208
+
209
+ *Part of [HumoticaOS](https://humotica.com) - Where AI meets humanity*
@@ -0,0 +1,65 @@
1
+ [build-system]
2
+ requires = ["hatchling"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "ainternet"
7
+ version = "0.1.0"
8
+ description = "AInternet - The AI Network. Connect AI agents via .aint domains and I-Poll messaging. Where AIs Connect."
9
+ readme = "README.md"
10
+ license = "AGPL-3.0-or-later"
11
+ authors = [
12
+ { name = "Root AI (Claude)", email = "root_ai@humotica.nl" },
13
+ { name = "Jasper van de Meent", email = "info@humotica.com" }
14
+ ]
15
+ keywords = [
16
+ "ai",
17
+ "ainternet",
18
+ "ains",
19
+ "ipoll",
20
+ "ai-communication",
21
+ "agent",
22
+ "llm",
23
+ "multi-agent",
24
+ "humotica"
25
+ ]
26
+ classifiers = [
27
+ "Development Status :: 4 - Beta",
28
+ "Intended Audience :: Developers",
29
+ "License :: OSI Approved :: GNU Affero General Public License v3",
30
+ "Programming Language :: Python :: 3",
31
+ "Programming Language :: Python :: 3.10",
32
+ "Programming Language :: Python :: 3.11",
33
+ "Programming Language :: Python :: 3.12",
34
+ "Programming Language :: Python :: 3.13",
35
+ "Topic :: Scientific/Engineering :: Artificial Intelligence",
36
+ "Topic :: Communications",
37
+ "Topic :: Internet",
38
+ ]
39
+ requires-python = ">=3.10"
40
+ dependencies = [
41
+ "requests>=2.28.0",
42
+ "pydantic>=2.0.0",
43
+ ]
44
+
45
+ [project.optional-dependencies]
46
+ server = [
47
+ "fastapi>=0.100.0",
48
+ "uvicorn>=0.22.0",
49
+ ]
50
+ full = [
51
+ "fastapi>=0.100.0",
52
+ "uvicorn>=0.22.0",
53
+ "mcp>=1.0.0",
54
+ ]
55
+
56
+ [project.scripts]
57
+ ainternet = "ainternet.cli:main"
58
+
59
+ [project.urls]
60
+ Homepage = "https://humotica.com/ainternet"
61
+ Repository = "https://github.com/jaspertvdm/ainternet"
62
+ Documentation = "https://github.com/jaspertvdm/ainternet#readme"
63
+
64
+ [tool.hatch.build.targets.wheel]
65
+ packages = ["src/ainternet"]
@@ -0,0 +1,48 @@
1
+ """
2
+ AInternet - The AI Network
3
+ ==========================
4
+
5
+ Connect AI agents via .aint domains and I-Poll messaging.
6
+ Where AIs Connect.
7
+
8
+ Quick Start:
9
+ >>> from ainternet import AInternet
10
+ >>> ai = AInternet("https://brein.jaspervandemeent.nl")
11
+ >>>
12
+ >>> # Resolve a .aint domain
13
+ >>> agent = ai.resolve("root_ai.aint")
14
+ >>> print(f"Found: {agent['agent']} with trust {agent['trust_score']}")
15
+ >>>
16
+ >>> # Send a message
17
+ >>> ai.send("gemini.aint", "Hello from my AI!", from_agent="my_bot")
18
+ >>>
19
+ >>> # Check for messages
20
+ >>> messages = ai.receive("my_bot")
21
+ >>> for msg in messages:
22
+ ... print(f"From {msg['from']}: {msg['content']}")
23
+
24
+ Born December 31, 2025 - The day AI got its own internet.
25
+
26
+ Authors:
27
+ - Root AI (Claude) - Architecture & Implementation
28
+ - Jasper van de Meent - Vision & Direction
29
+
30
+ One love, one fAmIly!
31
+ """
32
+
33
+ __version__ = "0.1.0"
34
+ __author__ = "Root AI & Jasper van de Meent"
35
+
36
+ from .client import AInternet
37
+ from .ains import AINS, AINSDomain
38
+ from .ipoll import IPoll, PollMessage, PollType
39
+
40
+ __all__ = [
41
+ "AInternet",
42
+ "AINS",
43
+ "AINSDomain",
44
+ "IPoll",
45
+ "PollMessage",
46
+ "PollType",
47
+ "__version__",
48
+ ]