-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
148 lines (141 loc) · 5.94 KB
/
Copy pathpyproject.toml
File metadata and controls
148 lines (141 loc) · 5.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
[build-system]
requires = ["setuptools>=68.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "autonet-computer"
version = "0.7.1"
description = "Decentralized AI alignment network with agent orchestration framework"
requires-python = ">=3.11"
license = "MIT"
readme = "README.md"
authors = [
{name = "ATN Contributors"},
]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
]
dependencies = [
# ATN core (agent framework + full-node participation). A plain
# `pip install autonet-computer` gives a functional node: agent
# orchestration, chain registration, and substrate/p2p close. Only the
# native-training stack is optional (see [training]).
"rich>=13.0",
"pyyaml>=6.0",
"httpx>=0.27",
"mcp>=1.0",
"websockets>=13.0",
"python-dotenv>=1.0.0",
"requests>=2.28.0",
# Vault (agent secret access-control) — ships in core, gated at runtime by
# ATN_WORKER_ISOLATION. Self-contained age-encrypted keystore (no HashiCorp).
# pyrage = age encryption for the local secret store (vendored under
# atn/_vendor/kevin). The broker itself uses only stdlib + ctypes.
"pyrage>=1.1",
# psutil = PID-reuse defense (create_time/cmdline) for the agent supervisor's
# orphan recovery under ATN_WORKER_ISOLATION. Cross-platform; the Linux broker
# _identity has a /proc fast path that does not need it, but the supervisor
# does. Small, pure-ish, ships in core.
"psutil>=5.9.0",
# --- Full-node participation (register + gossip + substrate close) ---
# These are on the LIVE product path, so a plain `pip install
# autonet-computer` yields a fully functional node. Only genuinely
# compute-heavy training deps stay optional (see [training] below).
#
# Blockchain: agent registration + on-chain service. atn/on_chain.py,
# atn/runtime/agent_registry.py, nodes/common/crypto.py all lazy-import
# web3/eth-account; eth-utils.keccak is used unguarded at module level in
# nodes/common/mint_merkle.py. cryptography (gossip ed25519 signing) ships
# transitively with these.
"web3>=6.0.0",
"eth-account>=0.10.0",
"eth-utils>=2.0.0",
# P2P: libp2p event gossip + federated close transport (nodes/common/p2p.py,
# blob_resolver.py). multiaddr ships with libp2p. trio is the required
# async runtime for the libp2p host. (miniupnpc is NOT imported anywhere in
# code — UPnP defaults off — so it stays optional under [network] below.)
"libp2p>=0.6.0",
"trio>=0.22.0",
# Substrate engine math: numpy is imported UNGUARDED at module level on the
# live federated-close path — nodes/common/world_model_substrate/reconcile.py
# does `from world_model.generalized import World`, whose __init__ pulls
# equilibrate.py (`import numpy as np`). Also coverage.py / artifact_index.py
# (daemon-local retrieval). Pure-Python wheels, cheap. Must be core.
"numpy>=1.24.0",
]
# Note: the substrate runtime needs the world-model engine. It's
# vendored under nodes/common/world_model_substrate/_engine/ so
# `pip install autonet-computer` works without external git deps.
# Source of truth: github.com/autonet-code/world-model (master).
[project.urls]
Homepage = "https://autonet.computer"
Repository = "https://github.com/autonet-code/node"
Issues = "https://github.com/autonet-code/node/issues"
[project.optional-dependencies]
# Native training: JEPA / FedAvg / model-sharding stack. These are the only
# genuinely compute-heavy deps and are NOT on the live product path — every
# torch/transformers/mss import on atn/ + nodes/common/ (outside the shelved
# JEPA modules ml.py, jepa.py, vl_jepa.py, text_jepa.py) is behind a
# try/except or a lazy in-function import. scipy is not imported by any live
# module either; it lives here with the rest of the training stack.
training = [
"torch>=2.0.0",
"scipy>=1.10.0",
# LLM backbone (open-weights encoder for JEPA)
"transformers>=4.40.0",
"accelerate>=0.28.0",
# Screen capture (perception input for training/observation)
"mss>=9.0.0",
]
# Back-compat alias. The full-node deps (web3, eth-account, eth-utils, libp2p,
# trio, numpy) moved to core so `pip install autonet-computer` is a working
# node — see the block in [project].dependencies. This extra now carries only
# the optional UPnP helper (never imported in code; UPnP defaults off) plus the
# training stack, so existing `autonet-computer[network]` instructions still
# resolve. Prefer `[training]` for the training stack going forward.
network = [
"autonet-computer[training]",
"miniupnpc>=2.0",
]
# Core voice: TTS output + audio mixing
voice = [
"numpy>=1.24",
"sounddevice>=0.4",
]
# Individual TTS backends
voice-kokoro = ["autonet-computer[voice]", "kokoro-onnx>=0.4"]
voice-edge = ["autonet-computer[voice]", "edge-tts>=6.0", "miniaudio>=1.5"]
voice-11labs = ["autonet-computer[voice]", "requests>=2.28"]
# Push-to-talk: STT input via hotkey recording + Whisper transcription
voice-ptt = ["autonet-computer[voice]", "keyboard>=0.13", "faster-whisper>=1.0"]
# Everything voice-related
voice-full = [
"autonet-computer[voice]",
"autonet-computer[voice-kokoro]",
"autonet-computer[voice-edge]",
"autonet-computer[voice-ptt]",
]
# Development
dev = [
"pytest>=7.0.0",
"pytest-asyncio>=0.21.0",
"black>=23.0.0",
"mypy>=1.0.0",
]
[project.scripts]
atn = "atn.cli:main"
atn-vault-setup = "atn.vault_setup:main"
[tool.setuptools.packages.find]
include = ["atn*", "nodes*", "bridge", "world_model*"]
[tool.setuptools.package-data]
"atn.connectors" = ["*/connector.json"]
"bridge" = ["*.ts", "package.json", "bun.lock"]
"atn._vendor.kevin.vault" = ["*.md"]
[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]