vayrm 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.
Files changed (1002) hide show
  1. vayrm-0.1.0/PKG-INFO +166 -0
  2. vayrm-0.1.0/README.md +143 -0
  3. vayrm-0.1.0/acr/__init__.py +29 -0
  4. vayrm-0.1.0/acr/api/__init__.py +0 -0
  5. vayrm-0.1.0/acr/api/root_api.py +87 -0
  6. vayrm-0.1.0/acr/api/server.py +70 -0
  7. vayrm-0.1.0/acr/cache/__init__.py +20 -0
  8. vayrm-0.1.0/acr/cache/manager.py +394 -0
  9. vayrm-0.1.0/acr/cache/policy.py +187 -0
  10. vayrm-0.1.0/acr/checkpoint/__init__.py +30 -0
  11. vayrm-0.1.0/acr/checkpoint/delta.py +209 -0
  12. vayrm-0.1.0/acr/checkpoint/manager.py +764 -0
  13. vayrm-0.1.0/acr/checkpoint/manifest.py +174 -0
  14. vayrm-0.1.0/acr/checkpoint/policy.py +181 -0
  15. vayrm-0.1.0/acr/checkpoint/provider.py +44 -0
  16. vayrm-0.1.0/acr/cli.py +74 -0
  17. vayrm-0.1.0/acr/cluster/__init__.py +20 -0
  18. vayrm-0.1.0/acr/cluster/eligibility.py +71 -0
  19. vayrm-0.1.0/acr/cluster/federation.py +77 -0
  20. vayrm-0.1.0/acr/cluster/knowledge.py +285 -0
  21. vayrm-0.1.0/acr/cluster/node_entry.py +103 -0
  22. vayrm-0.1.0/acr/cluster/root_brain.py +1090 -0
  23. vayrm-0.1.0/acr/cluster/state_aggregator.py +340 -0
  24. vayrm-0.1.0/acr/cluster/subroot_agent.py +234 -0
  25. vayrm-0.1.0/acr/communication/__init__.py +0 -0
  26. vayrm-0.1.0/acr/communication/checkpoint_transfer.py +237 -0
  27. vayrm-0.1.0/acr/communication/framing.py +182 -0
  28. vayrm-0.1.0/acr/communication/inmemory.py +274 -0
  29. vayrm-0.1.0/acr/communication/interfaces.py +173 -0
  30. vayrm-0.1.0/acr/communication/local_channel.py +68 -0
  31. vayrm-0.1.0/acr/communication/network.py +193 -0
  32. vayrm-0.1.0/acr/communication/paladin_adapter.py +1003 -0
  33. vayrm-0.1.0/acr/communication/priority.py +45 -0
  34. vayrm-0.1.0/acr/communication/propagation.py +98 -0
  35. vayrm-0.1.0/acr/communication/protocol.py +1349 -0
  36. vayrm-0.1.0/acr/communication/tcp.py +917 -0
  37. vayrm-0.1.0/acr/communication/transport.py +286 -0
  38. vayrm-0.1.0/acr/core/__init__.py +3 -0
  39. vayrm-0.1.0/acr/core/config.py +134 -0
  40. vayrm-0.1.0/acr/core/enums.py +87 -0
  41. vayrm-0.1.0/acr/core/errors.py +15 -0
  42. vayrm-0.1.0/acr/core/identity.py +63 -0
  43. vayrm-0.1.0/acr/core/types.py +6 -0
  44. vayrm-0.1.0/acr/entrypoint.py +691 -0
  45. vayrm-0.1.0/acr/events.py +600 -0
  46. vayrm-0.1.0/acr/execution/__init__.py +5 -0
  47. vayrm-0.1.0/acr/execution/dispatcher.py +63 -0
  48. vayrm-0.1.0/acr/execution/feedback.py +79 -0
  49. vayrm-0.1.0/acr/execution/manager.py +126 -0
  50. vayrm-0.1.0/acr/execution/models.py +102 -0
  51. vayrm-0.1.0/acr/execution/safe_worker.py +145 -0
  52. vayrm-0.1.0/acr/facade.py +142 -0
  53. vayrm-0.1.0/acr/history/__init__.py +3 -0
  54. vayrm-0.1.0/acr/history/execution.py +85 -0
  55. vayrm-0.1.0/acr/integration/__init__.py +0 -0
  56. vayrm-0.1.0/acr/integration/paladin_import.py +72 -0
  57. vayrm-0.1.0/acr/logging.py +78 -0
  58. vayrm-0.1.0/acr/migration/__init__.py +3 -0
  59. vayrm-0.1.0/acr/migration/manager.py +110 -0
  60. vayrm-0.1.0/acr/network/__init__.py +0 -0
  61. vayrm-0.1.0/acr/network/paladin_adapter.py +359 -0
  62. vayrm-0.1.0/acr/node/__init__.py +72 -0
  63. vayrm-0.1.0/acr/node/agent.py +483 -0
  64. vayrm-0.1.0/acr/node/assessment.py +388 -0
  65. vayrm-0.1.0/acr/node/brain.py +812 -0
  66. vayrm-0.1.0/acr/node/history.py +95 -0
  67. vayrm-0.1.0/acr/node/knowledge.py +680 -0
  68. vayrm-0.1.0/acr/node/peer_view.py +226 -0
  69. vayrm-0.1.0/acr/node/resource_snapshot.py +294 -0
  70. vayrm-0.1.0/acr/node/self_model.py +542 -0
  71. vayrm-0.1.0/acr/node/state_buffer.py +145 -0
  72. vayrm-0.1.0/acr/node/state_machine.py +384 -0
  73. vayrm-0.1.0/acr/node/state_publisher.py +245 -0
  74. vayrm-0.1.0/acr/node/temporal.py +399 -0
  75. vayrm-0.1.0/acr/peers/__init__.py +36 -0
  76. vayrm-0.1.0/acr/peers/interfaces.py +65 -0
  77. vayrm-0.1.0/acr/peers/knowledge.py +212 -0
  78. vayrm-0.1.0/acr/peers/manager.py +186 -0
  79. vayrm-0.1.0/acr/peers/merge.py +94 -0
  80. vayrm-0.1.0/acr/peers/models.py +227 -0
  81. vayrm-0.1.0/acr/platforms/__init__.py +8 -0
  82. vayrm-0.1.0/acr/platforms/linux/__init__.py +12 -0
  83. vayrm-0.1.0/acr/platforms/linux/provider.py +10 -0
  84. vayrm-0.1.0/acr/platforms/linux/runtime.py +85 -0
  85. vayrm-0.1.0/acr/platforms/linux/workloads.py +22 -0
  86. vayrm-0.1.0/acr/platforms/macos/__init__.py +12 -0
  87. vayrm-0.1.0/acr/platforms/macos/provider.py +10 -0
  88. vayrm-0.1.0/acr/platforms/macos/runtime.py +28 -0
  89. vayrm-0.1.0/acr/platforms/macos/workloads.py +24 -0
  90. vayrm-0.1.0/acr/platforms/windows/__init__.py +12 -0
  91. vayrm-0.1.0/acr/platforms/windows/provider.py +10 -0
  92. vayrm-0.1.0/acr/platforms/windows/runtime.py +28 -0
  93. vayrm-0.1.0/acr/platforms/windows/workloads.py +20 -0
  94. vayrm-0.1.0/acr/registry/__init__.py +20 -0
  95. vayrm-0.1.0/acr/registry/backend.py +63 -0
  96. vayrm-0.1.0/acr/registry/cluster_registry.py +105 -0
  97. vayrm-0.1.0/acr/registry/node_registry.py +41 -0
  98. vayrm-0.1.0/acr/registry/resource_registry.py +395 -0
  99. vayrm-0.1.0/acr/registry/root_registry.py +57 -0
  100. vayrm-0.1.0/acr/registry/session_registry.py +74 -0
  101. vayrm-0.1.0/acr/registry/subroot_registry.py +162 -0
  102. vayrm-0.1.0/acr/resource_fabric/__init__.py +55 -0
  103. vayrm-0.1.0/acr/resource_fabric/capacity_model.py +165 -0
  104. vayrm-0.1.0/acr/resource_fabric/cooldown.py +133 -0
  105. vayrm-0.1.0/acr/resource_fabric/criticality.py +57 -0
  106. vayrm-0.1.0/acr/resource_fabric/decision_engine.py +476 -0
  107. vayrm-0.1.0/acr/resource_fabric/filtering.py +220 -0
  108. vayrm-0.1.0/acr/resource_fabric/hardware.py +182 -0
  109. vayrm-0.1.0/acr/resource_fabric/hierarchy.py +229 -0
  110. vayrm-0.1.0/acr/resource_fabric/manager.py +505 -0
  111. vayrm-0.1.0/acr/resource_fabric/normalization.py +70 -0
  112. vayrm-0.1.0/acr/resource_fabric/preemption.py +393 -0
  113. vayrm-0.1.0/acr/resource_fabric/quota.py +132 -0
  114. vayrm-0.1.0/acr/resource_fabric/reconciliation.py +160 -0
  115. vayrm-0.1.0/acr/resource_fabric/resource_claim.py +184 -0
  116. vayrm-0.1.0/acr/resource_fabric/resource_health.py +75 -0
  117. vayrm-0.1.0/acr/resource_fabric/resource_lease.py +147 -0
  118. vayrm-0.1.0/acr/resource_fabric/resource_offer.py +126 -0
  119. vayrm-0.1.0/acr/resource_fabric/resource_policy.py +164 -0
  120. vayrm-0.1.0/acr/resource_fabric/resource_pool.py +375 -0
  121. vayrm-0.1.0/acr/resource_fabric/scoring.py +329 -0
  122. vayrm-0.1.0/acr/resources/__init__.py +3 -0
  123. vayrm-0.1.0/acr/resources/capabilities.py +111 -0
  124. vayrm-0.1.0/acr/resources/cluster_state.py +101 -0
  125. vayrm-0.1.0/acr/resources/metric.py +15 -0
  126. vayrm-0.1.0/acr/resources/node_context.py +250 -0
  127. vayrm-0.1.0/acr/resources/pressure.py +47 -0
  128. vayrm-0.1.0/acr/resources/snapshot.py +173 -0
  129. vayrm-0.1.0/acr/resources/state.py +139 -0
  130. vayrm-0.1.0/acr/runtime/__init__.py +0 -0
  131. vayrm-0.1.0/acr/runtime/aggregate_state.py +102 -0
  132. vayrm-0.1.0/acr/runtime/continuous_sampler.py +103 -0
  133. vayrm-0.1.0/acr/runtime/discovery.py +199 -0
  134. vayrm-0.1.0/acr/runtime/endpoint.py +81 -0
  135. vayrm-0.1.0/acr/runtime/master_root.py +154 -0
  136. vayrm-0.1.0/acr/runtime/monitoring.py +205 -0
  137. vayrm-0.1.0/acr/runtime/monte_carlo.py +139 -0
  138. vayrm-0.1.0/acr/runtime/node.py +74 -0
  139. vayrm-0.1.0/acr/runtime/node_brain.py +242 -0
  140. vayrm-0.1.0/acr/runtime/node_model.py +104 -0
  141. vayrm-0.1.0/acr/runtime/policy.py +179 -0
  142. vayrm-0.1.0/acr/runtime/root.py +44 -0
  143. vayrm-0.1.0/acr/runtime/root_controller.py +250 -0
  144. vayrm-0.1.0/acr/runtime/safety.py +81 -0
  145. vayrm-0.1.0/acr/runtime/scheduling_view.py +325 -0
  146. vayrm-0.1.0/acr/runtime/trajectory.py +67 -0
  147. vayrm-0.1.0/acr/runtime/workload_brain.py +136 -0
  148. vayrm-0.1.0/acr/schedulers/__init__.py +54 -0
  149. vayrm-0.1.0/acr/schedulers/adaptive.py +333 -0
  150. vayrm-0.1.0/acr/schedulers/adaptive_common.py +44 -0
  151. vayrm-0.1.0/acr/schedulers/adaptive_v2.py +94 -0
  152. vayrm-0.1.0/acr/schedulers/adaptive_v3.py +387 -0
  153. vayrm-0.1.0/acr/schedulers/admission.py +76 -0
  154. vayrm-0.1.0/acr/schedulers/base.py +83 -0
  155. vayrm-0.1.0/acr/schedulers/context.py +44 -0
  156. vayrm-0.1.0/acr/schedulers/decision.py +85 -0
  157. vayrm-0.1.0/acr/schedulers/estimation.py +141 -0
  158. vayrm-0.1.0/acr/schedulers/explainable.py +129 -0
  159. vayrm-0.1.0/acr/schedulers/heterogeneity.py +251 -0
  160. vayrm-0.1.0/acr/schedulers/heterogeneity_aware.py +316 -0
  161. vayrm-0.1.0/acr/schedulers/least_loaded.py +182 -0
  162. vayrm-0.1.0/acr/schedulers/monte_carlo.py +123 -0
  163. vayrm-0.1.0/acr/schedulers/queue.py +132 -0
  164. vayrm-0.1.0/acr/schedulers/reasons.py +68 -0
  165. vayrm-0.1.0/acr/schedulers/replay.py +41 -0
  166. vayrm-0.1.0/acr/schedulers/resource_aware.py +547 -0
  167. vayrm-0.1.0/acr/schedulers/round_robin.py +77 -0
  168. vayrm-0.1.0/acr/schedulers/state_aware.py +144 -0
  169. vayrm-0.1.0/acr/schedulers/strategy.py +310 -0
  170. vayrm-0.1.0/acr/schedulers/task_weights.py +87 -0
  171. vayrm-0.1.0/acr/schedulers/trace.py +284 -0
  172. vayrm-0.1.0/acr/schedulers/weights.py +79 -0
  173. vayrm-0.1.0/acr/scripts/__init__.py +0 -0
  174. vayrm-0.1.0/acr/scripts/live_validator.py +0 -0
  175. vayrm-0.1.0/acr/simulation/__init__.py +8 -0
  176. vayrm-0.1.0/acr/simulation/decentralized.py +294 -0
  177. vayrm-0.1.0/acr/simulation/failure_injector.py +0 -0
  178. vayrm-0.1.0/acr/state/__init__.py +45 -0
  179. vayrm-0.1.0/acr/state/catalog.py +284 -0
  180. vayrm-0.1.0/acr/state/chunk.py +186 -0
  181. vayrm-0.1.0/acr/state/manifest.py +239 -0
  182. vayrm-0.1.0/acr/state/object.py +252 -0
  183. vayrm-0.1.0/acr/state/residency.py +282 -0
  184. vayrm-0.1.0/acr/storage/__init__.py +19 -0
  185. vayrm-0.1.0/acr/storage/backend.py +115 -0
  186. vayrm-0.1.0/acr/storage/filesystem.py +127 -0
  187. vayrm-0.1.0/acr/storage/memory.py +78 -0
  188. vayrm-0.1.0/acr/subroot/__init__.py +7 -0
  189. vayrm-0.1.0/acr/subroot/local_fabric.py +180 -0
  190. vayrm-0.1.0/acr/subroot/runtime.py +225 -0
  191. vayrm-0.1.0/acr/telemetry/__init__.py +3 -0
  192. vayrm-0.1.0/acr/telemetry/__main__.py +93 -0
  193. vayrm-0.1.0/acr/telemetry/base.py +25 -0
  194. vayrm-0.1.0/acr/telemetry/collector.py +94 -0
  195. vayrm-0.1.0/acr/telemetry/detector.py +45 -0
  196. vayrm-0.1.0/acr/telemetry/platforms/__init__.py +3 -0
  197. vayrm-0.1.0/acr/telemetry/platforms/linux/__init__.py +3 -0
  198. vayrm-0.1.0/acr/telemetry/platforms/linux/cpu.py +184 -0
  199. vayrm-0.1.0/acr/telemetry/platforms/linux/gpu.py +161 -0
  200. vayrm-0.1.0/acr/telemetry/platforms/linux/memory.py +149 -0
  201. vayrm-0.1.0/acr/telemetry/platforms/linux/network.py +170 -0
  202. vayrm-0.1.0/acr/telemetry/platforms/linux/power.py +52 -0
  203. vayrm-0.1.0/acr/telemetry/platforms/linux/provider.py +133 -0
  204. vayrm-0.1.0/acr/telemetry/platforms/linux/storage.py +98 -0
  205. vayrm-0.1.0/acr/telemetry/platforms/linux/system.py +30 -0
  206. vayrm-0.1.0/acr/telemetry/platforms/linux/thermal.py +106 -0
  207. vayrm-0.1.0/acr/telemetry/platforms/macos/__init__.py +3 -0
  208. vayrm-0.1.0/acr/telemetry/platforms/macos/cpu.py +85 -0
  209. vayrm-0.1.0/acr/telemetry/platforms/macos/gpu.py +208 -0
  210. vayrm-0.1.0/acr/telemetry/platforms/macos/memory.py +61 -0
  211. vayrm-0.1.0/acr/telemetry/platforms/macos/network.py +32 -0
  212. vayrm-0.1.0/acr/telemetry/platforms/macos/power.py +44 -0
  213. vayrm-0.1.0/acr/telemetry/platforms/macos/provider.py +75 -0
  214. vayrm-0.1.0/acr/telemetry/platforms/macos/storage.py +33 -0
  215. vayrm-0.1.0/acr/telemetry/platforms/macos/system.py +16 -0
  216. vayrm-0.1.0/acr/telemetry/platforms/macos/thermal.py +59 -0
  217. vayrm-0.1.0/acr/telemetry/platforms/windows/__init__.py +3 -0
  218. vayrm-0.1.0/acr/telemetry/platforms/windows/cpu.py +86 -0
  219. vayrm-0.1.0/acr/telemetry/platforms/windows/gpu.py +449 -0
  220. vayrm-0.1.0/acr/telemetry/platforms/windows/memory.py +69 -0
  221. vayrm-0.1.0/acr/telemetry/platforms/windows/network.py +86 -0
  222. vayrm-0.1.0/acr/telemetry/platforms/windows/power.py +68 -0
  223. vayrm-0.1.0/acr/telemetry/platforms/windows/provider.py +74 -0
  224. vayrm-0.1.0/acr/telemetry/platforms/windows/storage.py +62 -0
  225. vayrm-0.1.0/acr/telemetry/platforms/windows/system.py +13 -0
  226. vayrm-0.1.0/acr/telemetry/platforms/windows/thermal.py +139 -0
  227. vayrm-0.1.0/acr/telemetry/record.py +232 -0
  228. vayrm-0.1.0/acr/telemetry/root_telemetry_tracker.py +422 -0
  229. vayrm-0.1.0/acr/telemetry/validate.py +98 -0
  230. vayrm-0.1.0/acr/test_bug.py +6 -0
  231. vayrm-0.1.0/acr/test_migration.py +81 -0
  232. vayrm-0.1.0/acr/test_node.py +6 -0
  233. vayrm-0.1.0/acr/test_provider.py +10 -0
  234. vayrm-0.1.0/acr/training/__init__.py +0 -0
  235. vayrm-0.1.0/acr/training/backend.py +87 -0
  236. vayrm-0.1.0/acr/training/worker.py +48 -0
  237. vayrm-0.1.0/acr/transfer/__init__.py +51 -0
  238. vayrm-0.1.0/acr/transfer/backend.py +154 -0
  239. vayrm-0.1.0/acr/transfer/backends/__init__.py +3 -0
  240. vayrm-0.1.0/acr/transfer/backends/memory.py +239 -0
  241. vayrm-0.1.0/acr/transfer/backends/tcp.py +396 -0
  242. vayrm-0.1.0/acr/transfer/chunking.py +268 -0
  243. vayrm-0.1.0/acr/transfer/diff.py +283 -0
  244. vayrm-0.1.0/acr/transfer/manager.py +336 -0
  245. vayrm-0.1.0/acr/transfer/plan.py +307 -0
  246. vayrm-0.1.0/acr/ui/__init__.py +0 -0
  247. vayrm-0.1.0/acr/ui/resource_dashboard.py +0 -0
  248. vayrm-0.1.0/acr/ui/root_dashboard.py +1144 -0
  249. vayrm-0.1.0/acr/utils/__init__.py +0 -0
  250. vayrm-0.1.0/acr/utils/profiling.py +80 -0
  251. vayrm-0.1.0/acr/workloads/__init__.py +15 -0
  252. vayrm-0.1.0/acr/workloads/characteristics.py +36 -0
  253. vayrm-0.1.0/acr/workloads/cpu_worker.py +60 -0
  254. vayrm-0.1.0/acr/workloads/identity.py +36 -0
  255. vayrm-0.1.0/acr/workloads/io_worker.py +86 -0
  256. vayrm-0.1.0/acr/workloads/knowledge.py +36 -0
  257. vayrm-0.1.0/acr/workloads/memory_worker.py +68 -0
  258. vayrm-0.1.0/acr/workloads/mixed_worker.py +80 -0
  259. vayrm-0.1.0/acr/workloads/profile.py +44 -0
  260. vayrm-0.1.0/acr/workloads/pytorch/__init__.py +0 -0
  261. vayrm-0.1.0/acr/workloads/pytorch/adapter.py +37 -0
  262. vayrm-0.1.0/acr/workloads/pytorch/checkpoint.py +33 -0
  263. vayrm-0.1.0/acr/workloads/pytorch/runtime.py +229 -0
  264. vayrm-0.1.0/acr/workloads/requirements.py +155 -0
  265. vayrm-0.1.0/acr/workloads/spec.py +39 -0
  266. vayrm-0.1.0/acr/workloads/state_needs.py +32 -0
  267. vayrm-0.1.0/acr/workloads/virtual.py +146 -0
  268. vayrm-0.1.0/acr/workloads/windows_workloads.py +79 -0
  269. vayrm-0.1.0/acr/workloads/worker.py +83 -0
  270. vayrm-0.1.0/acr/workloads/workload.py +126 -0
  271. vayrm-0.1.0/paladin/ai/__init__.py +0 -0
  272. vayrm-0.1.0/paladin/ai/agents/__init__.py +0 -0
  273. vayrm-0.1.0/paladin/ai/agents/agents.py +0 -0
  274. vayrm-0.1.0/paladin/ai/checkpoints/__init__.py +0 -0
  275. vayrm-0.1.0/paladin/ai/checkpoints/checkpoints.py +0 -0
  276. vayrm-0.1.0/paladin/ai/datasets/__init__.py +0 -0
  277. vayrm-0.1.0/paladin/ai/datasets/datasets.py +0 -0
  278. vayrm-0.1.0/paladin/ai/fusion/__init__.py +0 -0
  279. vayrm-0.1.0/paladin/ai/fusion/fusion.py +0 -0
  280. vayrm-0.1.0/paladin/ai/inference/__init__.py +0 -0
  281. vayrm-0.1.0/paladin/ai/inference/inference.py +0 -0
  282. vayrm-0.1.0/paladin/ai/model_loader/__init__.py +0 -0
  283. vayrm-0.1.0/paladin/ai/model_loader/model_loader.py +0 -0
  284. vayrm-0.1.0/paladin/ai/model_registry/__init__.py +0 -0
  285. vayrm-0.1.0/paladin/ai/model_registry/model_registry.py +0 -0
  286. vayrm-0.1.0/paladin/ai/orchestration/__init__.py +0 -0
  287. vayrm-0.1.0/paladin/ai/orchestration/orchestration.py +0 -0
  288. vayrm-0.1.0/paladin/ai/plugins/__init__.py +0 -0
  289. vayrm-0.1.0/paladin/ai/plugins/coding/__init__.py +0 -0
  290. vayrm-0.1.0/paladin/ai/plugins/coding/coding.py +0 -0
  291. vayrm-0.1.0/paladin/ai/plugins/embedding/__init__.py +0 -0
  292. vayrm-0.1.0/paladin/ai/plugins/embedding/embedding.py +0 -0
  293. vayrm-0.1.0/paladin/ai/plugins/llm/__init__.py +0 -0
  294. vayrm-0.1.0/paladin/ai/plugins/llm/llm.py +0 -0
  295. vayrm-0.1.0/paladin/ai/plugins/memory/__init__.py +0 -0
  296. vayrm-0.1.0/paladin/ai/plugins/memory/memory.py +0 -0
  297. vayrm-0.1.0/paladin/ai/plugins/ocr/__init__.py +0 -0
  298. vayrm-0.1.0/paladin/ai/plugins/ocr/ocr.py +0 -0
  299. vayrm-0.1.0/paladin/ai/plugins/planning/__init__.py +0 -0
  300. vayrm-0.1.0/paladin/ai/plugins/planning/planning.py +0 -0
  301. vayrm-0.1.0/paladin/ai/plugins/reranker/__init__.py +0 -0
  302. vayrm-0.1.0/paladin/ai/plugins/reranker/reranker.py +0 -0
  303. vayrm-0.1.0/paladin/ai/plugins/slm/__init__.py +0 -0
  304. vayrm-0.1.0/paladin/ai/plugins/slm/slm.py +0 -0
  305. vayrm-0.1.0/paladin/ai/plugins/speech/__init__.py +0 -0
  306. vayrm-0.1.0/paladin/ai/plugins/speech/speech.py +0 -0
  307. vayrm-0.1.0/paladin/ai/plugins/trm/__init__.py +0 -0
  308. vayrm-0.1.0/paladin/ai/plugins/trm/trm.py +0 -0
  309. vayrm-0.1.0/paladin/ai/plugins/vision/__init__.py +0 -0
  310. vayrm-0.1.0/paladin/ai/plugins/vision/vision.py +0 -0
  311. vayrm-0.1.0/paladin/ai/runtime/__init__.py +0 -0
  312. vayrm-0.1.0/paladin/ai/runtime/runtime.py +0 -0
  313. vayrm-0.1.0/paladin/ai/tensors/__init__.py +0 -0
  314. vayrm-0.1.0/paladin/ai/tensors/tensors.py +0 -0
  315. vayrm-0.1.0/paladin/ai/training/__init__.py +0 -0
  316. vayrm-0.1.0/paladin/ai/training/training.py +0 -0
  317. vayrm-0.1.0/paladin/ai/workflows/__init__.py +0 -0
  318. vayrm-0.1.0/paladin/ai/workflows/workflows.py +0 -0
  319. vayrm-0.1.0/paladin/apps/__init__.py +0 -0
  320. vayrm-0.1.0/paladin/apps/cli/__init__.py +0 -0
  321. vayrm-0.1.0/paladin/apps/cli/main.py +517 -0
  322. vayrm-0.1.0/paladin/apps/node/__init__.py +0 -0
  323. vayrm-0.1.0/paladin/apps/node/api.py +140 -0
  324. vayrm-0.1.0/paladin/apps/node/main.py +634 -0
  325. vayrm-0.1.0/paladin/apps/node/peers.py +224 -0
  326. vayrm-0.1.0/paladin/apps/root/__init__.py +0 -0
  327. vayrm-0.1.0/paladin/apps/root/api/__init__.py +0 -0
  328. vayrm-0.1.0/paladin/apps/root/api/server.py +244 -0
  329. vayrm-0.1.0/paladin/apps/root/main.py +809 -0
  330. vayrm-0.1.0/paladin/cluster/__init__.py +0 -0
  331. vayrm-0.1.0/paladin/cluster/allocation/__init__.py +0 -0
  332. vayrm-0.1.0/paladin/cluster/allocation/allocation.py +0 -0
  333. vayrm-0.1.0/paladin/cluster/autoscaling/__init__.py +0 -0
  334. vayrm-0.1.0/paladin/cluster/autoscaling/autoscaling.py +0 -0
  335. vayrm-0.1.0/paladin/cluster/balancer/__init__.py +0 -0
  336. vayrm-0.1.0/paladin/cluster/balancer/balancer.py +0 -0
  337. vayrm-0.1.0/paladin/cluster/failover/__init__.py +0 -0
  338. vayrm-0.1.0/paladin/cluster/failover/failover.py +0 -0
  339. vayrm-0.1.0/paladin/cluster/global_state/__init__.py +0 -0
  340. vayrm-0.1.0/paladin/cluster/global_state/global_state.py +0 -0
  341. vayrm-0.1.0/paladin/cluster/health/__init__.py +0 -0
  342. vayrm-0.1.0/paladin/cluster/health/health.py +0 -0
  343. vayrm-0.1.0/paladin/cluster/leader/__init__.py +0 -0
  344. vayrm-0.1.0/paladin/cluster/leader/leader.py +0 -0
  345. vayrm-0.1.0/paladin/cluster/membership/__init__.py +0 -0
  346. vayrm-0.1.0/paladin/cluster/membership/membership.py +0 -0
  347. vayrm-0.1.0/paladin/cluster/node_manager/__init__.py +0 -0
  348. vayrm-0.1.0/paladin/cluster/node_manager/node_manager.py +0 -0
  349. vayrm-0.1.0/paladin/cluster/placement/__init__.py +0 -0
  350. vayrm-0.1.0/paladin/cluster/placement/placement.py +0 -0
  351. vayrm-0.1.0/paladin/cluster/recovery/__init__.py +0 -0
  352. vayrm-0.1.0/paladin/cluster/recovery/recovery.py +0 -0
  353. vayrm-0.1.0/paladin/cluster/registry/__init__.py +0 -0
  354. vayrm-0.1.0/paladin/cluster/registry/registry.py +0 -0
  355. vayrm-0.1.0/paladin/cluster/replication/__init__.py +0 -0
  356. vayrm-0.1.0/paladin/cluster/replication/replication.py +0 -0
  357. vayrm-0.1.0/paladin/cluster/resource_manager/__init__.py +0 -0
  358. vayrm-0.1.0/paladin/cluster/resource_manager/resource_manager.py +0 -0
  359. vayrm-0.1.0/paladin/cluster/routing/__init__.py +0 -0
  360. vayrm-0.1.0/paladin/cluster/routing/routing.py +0 -0
  361. vayrm-0.1.0/paladin/cluster/scheduler/__init__.py +0 -0
  362. vayrm-0.1.0/paladin/cluster/scheduler/scheduler.py +0 -0
  363. vayrm-0.1.0/paladin/cluster/topology/__init__.py +0 -0
  364. vayrm-0.1.0/paladin/cluster/topology/topology.py +0 -0
  365. vayrm-0.1.0/paladin/core/__init__.py +0 -0
  366. vayrm-0.1.0/paladin/core/ai/__init__.py +0 -0
  367. vayrm-0.1.0/paladin/core/ai/agent.py +8 -0
  368. vayrm-0.1.0/paladin/core/ai/cognition.py +9 -0
  369. vayrm-0.1.0/paladin/core/ai/context.py +8 -0
  370. vayrm-0.1.0/paladin/core/ai/dataset_security/__init__.py +9 -0
  371. vayrm-0.1.0/paladin/core/ai/dataset_security/dataset.py +26 -0
  372. vayrm-0.1.0/paladin/core/ai/execution.py +8 -0
  373. vayrm-0.1.0/paladin/core/ai/registry/__init__.py +9 -0
  374. vayrm-0.1.0/paladin/core/ai/registry/registry.py +40 -0
  375. vayrm-0.1.0/paladin/core/ai/scheduler.py +9 -0
  376. vayrm-0.1.0/paladin/core/bootstrap/__init__.py +50 -0
  377. vayrm-0.1.0/paladin/core/bootstrap/docker.py +209 -0
  378. vayrm-0.1.0/paladin/core/bootstrap/environment.py +50 -0
  379. vayrm-0.1.0/paladin/core/bootstrap/headscale.py +177 -0
  380. vayrm-0.1.0/paladin/core/bootstrap/manager.py +260 -0
  381. vayrm-0.1.0/paladin/core/bootstrap/metrics.py +40 -0
  382. vayrm-0.1.0/paladin/core/bootstrap/platform/__init__.py +68 -0
  383. vayrm-0.1.0/paladin/core/bootstrap/platform/base.py +164 -0
  384. vayrm-0.1.0/paladin/core/bootstrap/platform/capabilities.py +166 -0
  385. vayrm-0.1.0/paladin/core/bootstrap/platform/linux.py +168 -0
  386. vayrm-0.1.0/paladin/core/bootstrap/platform/macos.py +131 -0
  387. vayrm-0.1.0/paladin/core/bootstrap/platform/service_manager.py +226 -0
  388. vayrm-0.1.0/paladin/core/bootstrap/platform/windows.py +162 -0
  389. vayrm-0.1.0/paladin/core/bootstrap/policies.py +5 -0
  390. vayrm-0.1.0/paladin/core/bootstrap/ports.py +141 -0
  391. vayrm-0.1.0/paladin/core/bootstrap/processes.py +138 -0
  392. vayrm-0.1.0/paladin/core/bootstrap/recovery.py +29 -0
  393. vayrm-0.1.0/paladin/core/bootstrap/sources.py +5 -0
  394. vayrm-0.1.0/paladin/core/bootstrap/state_machine.py +86 -0
  395. vayrm-0.1.0/paladin/core/bootstrap/tailscale.py +175 -0
  396. vayrm-0.1.0/paladin/core/bootstrap/validators.py +5 -0
  397. vayrm-0.1.0/paladin/core/capabilities/__init__.py +0 -0
  398. vayrm-0.1.0/paladin/core/capabilities/descriptor.py +12 -0
  399. vayrm-0.1.0/paladin/core/capabilities/graph/__init__.py +0 -0
  400. vayrm-0.1.0/paladin/core/capabilities/graph/dependencies.py +15 -0
  401. vayrm-0.1.0/paladin/core/capabilities/graph/graph.py +14 -0
  402. vayrm-0.1.0/paladin/core/capabilities/graph/query.py +10 -0
  403. vayrm-0.1.0/paladin/core/capabilities/manager.py +8 -0
  404. vayrm-0.1.0/paladin/core/capabilities/registry.py +8 -0
  405. vayrm-0.1.0/paladin/core/cluster/__init__.py +0 -0
  406. vayrm-0.1.0/paladin/core/cluster/consensus/__init__.py +9 -0
  407. vayrm-0.1.0/paladin/core/cluster/consensus/consensus.py +44 -0
  408. vayrm-0.1.0/paladin/core/cluster/events.py +10 -0
  409. vayrm-0.1.0/paladin/core/cluster/health.py +8 -0
  410. vayrm-0.1.0/paladin/core/cluster/lifecycle.py +6 -0
  411. vayrm-0.1.0/paladin/core/cluster/manager.py +24 -0
  412. vayrm-0.1.0/paladin/core/cluster/membership.py +16 -0
  413. vayrm-0.1.0/paladin/core/cluster/state.py +11 -0
  414. vayrm-0.1.0/paladin/core/communication/__init__.py +100 -0
  415. vayrm-0.1.0/paladin/core/communication/cache/__init__.py +8 -0
  416. vayrm-0.1.0/paladin/core/communication/cache/cache.py +72 -0
  417. vayrm-0.1.0/paladin/core/communication/compression/__init__.py +12 -0
  418. vayrm-0.1.0/paladin/core/communication/compression/compression.py +51 -0
  419. vayrm-0.1.0/paladin/core/communication/connection/__init__.py +106 -0
  420. vayrm-0.1.0/paladin/core/communication/discovery/__init__.py +214 -0
  421. vayrm-0.1.0/paladin/core/communication/discovery/discovery.py +0 -0
  422. vayrm-0.1.0/paladin/core/communication/encryption/__init__.py +68 -0
  423. vayrm-0.1.0/paladin/core/communication/encryption/encryption.py +0 -0
  424. vayrm-0.1.0/paladin/core/communication/errors/__init__.py +65 -0
  425. vayrm-0.1.0/paladin/core/communication/events/__init__.py +130 -0
  426. vayrm-0.1.0/paladin/core/communication/gateway/__init__.py +9 -0
  427. vayrm-0.1.0/paladin/core/communication/gateway/gateway.py +156 -0
  428. vayrm-0.1.0/paladin/core/communication/heartbeat/__init__.py +116 -0
  429. vayrm-0.1.0/paladin/core/communication/heartbeat/heartbeat.py +0 -0
  430. vayrm-0.1.0/paladin/core/communication/identity/__init__.py +180 -0
  431. vayrm-0.1.0/paladin/core/communication/identity/identity.py +0 -0
  432. vayrm-0.1.0/paladin/core/communication/interfaces/__init__.py +57 -0
  433. vayrm-0.1.0/paladin/core/communication/interfaces/interfaces.py +193 -0
  434. vayrm-0.1.0/paladin/core/communication/latency/__init__.py +8 -0
  435. vayrm-0.1.0/paladin/core/communication/latency/latency.py +77 -0
  436. vayrm-0.1.0/paladin/core/communication/layer.py +857 -0
  437. vayrm-0.1.0/paladin/core/communication/messaging/__init__.py +95 -0
  438. vayrm-0.1.0/paladin/core/communication/messaging/messaging.py +0 -0
  439. vayrm-0.1.0/paladin/core/communication/messaging/secure_bus.py +144 -0
  440. vayrm-0.1.0/paladin/core/communication/monitoring/__init__.py +8 -0
  441. vayrm-0.1.0/paladin/core/communication/monitoring/monitor.py +64 -0
  442. vayrm-0.1.0/paladin/core/communication/network/__init__.py +77 -0
  443. vayrm-0.1.0/paladin/core/communication/network/context.py +59 -0
  444. vayrm-0.1.0/paladin/core/communication/network/events.py +47 -0
  445. vayrm-0.1.0/paladin/core/communication/network/monitor.py +140 -0
  446. vayrm-0.1.0/paladin/core/communication/network/resolver.py +125 -0
  447. vayrm-0.1.0/paladin/core/communication/network/transport.py +197 -0
  448. vayrm-0.1.0/paladin/core/communication/network/tuner.py +94 -0
  449. vayrm-0.1.0/paladin/core/communication/peer/__init__.py +188 -0
  450. vayrm-0.1.0/paladin/core/communication/peer/peer.py +0 -0
  451. vayrm-0.1.0/paladin/core/communication/plugins/__init__.py +76 -0
  452. vayrm-0.1.0/paladin/core/communication/protocols/__init__.py +0 -0
  453. vayrm-0.1.0/paladin/core/communication/protocols/protocol.py +0 -0
  454. vayrm-0.1.0/paladin/core/communication/qos/__init__.py +8 -0
  455. vayrm-0.1.0/paladin/core/communication/qos/qos.py +99 -0
  456. vayrm-0.1.0/paladin/core/communication/registry.py +83 -0
  457. vayrm-0.1.0/paladin/core/communication/relay/__init__.py +84 -0
  458. vayrm-0.1.0/paladin/core/communication/reliability/__init__.py +8 -0
  459. vayrm-0.1.0/paladin/core/communication/reliability/reliability.py +97 -0
  460. vayrm-0.1.0/paladin/core/communication/routing/__init__.py +54 -0
  461. vayrm-0.1.0/paladin/core/communication/routing/router.py +0 -0
  462. vayrm-0.1.0/paladin/core/communication/security/__init__.py +100 -0
  463. vayrm-0.1.0/paladin/core/communication/security/handshake.py +120 -0
  464. vayrm-0.1.0/paladin/core/communication/security/security.py +110 -0
  465. vayrm-0.1.0/paladin/core/communication/serialization/__init__.py +128 -0
  466. vayrm-0.1.0/paladin/core/communication/serialization/serialization.py +0 -0
  467. vayrm-0.1.0/paladin/core/communication/sessions/__init__.py +109 -0
  468. vayrm-0.1.0/paladin/core/communication/sessions/session.py +0 -0
  469. vayrm-0.1.0/paladin/core/communication/streaming/__init__.py +21 -0
  470. vayrm-0.1.0/paladin/core/communication/streaming/bandwidth_optimizer/__init__.py +8 -0
  471. vayrm-0.1.0/paladin/core/communication/streaming/bandwidth_optimizer/bandwidth_optimizer.py +68 -0
  472. vayrm-0.1.0/paladin/core/communication/streaming/checkpoint_sync/__init__.py +8 -0
  473. vayrm-0.1.0/paladin/core/communication/streaming/checkpoint_sync/checkpoint_sync.py +28 -0
  474. vayrm-0.1.0/paladin/core/communication/streaming/checksum/__init__.py +8 -0
  475. vayrm-0.1.0/paladin/core/communication/streaming/checksum/checksum.py +48 -0
  476. vayrm-0.1.0/paladin/core/communication/streaming/chunk_manager/__init__.py +8 -0
  477. vayrm-0.1.0/paladin/core/communication/streaming/chunk_manager/chunk_manager.py +100 -0
  478. vayrm-0.1.0/paladin/core/communication/streaming/dataset_sync/__init__.py +8 -0
  479. vayrm-0.1.0/paladin/core/communication/streaming/dataset_sync/dataset_sync.py +28 -0
  480. vayrm-0.1.0/paladin/core/communication/streaming/file_transfer/__init__.py +8 -0
  481. vayrm-0.1.0/paladin/core/communication/streaming/file_transfer/file_transfer.py +28 -0
  482. vayrm-0.1.0/paladin/core/communication/streaming/media_stream/__init__.py +8 -0
  483. vayrm-0.1.0/paladin/core/communication/streaming/media_stream/media_stream.py +28 -0
  484. vayrm-0.1.0/paladin/core/communication/streaming/model_distribution/__init__.py +8 -0
  485. vayrm-0.1.0/paladin/core/communication/streaming/model_distribution/model_distribution.py +28 -0
  486. vayrm-0.1.0/paladin/core/communication/streaming/replication/__init__.py +8 -0
  487. vayrm-0.1.0/paladin/core/communication/streaming/replication/replication.py +28 -0
  488. vayrm-0.1.0/paladin/core/communication/streaming/resume_manager/__init__.py +8 -0
  489. vayrm-0.1.0/paladin/core/communication/streaming/resume_manager/resume_manager.py +84 -0
  490. vayrm-0.1.0/paladin/core/communication/streaming/scheduler/__init__.py +76 -0
  491. vayrm-0.1.0/paladin/core/communication/streaming/secure_transfer.py +90 -0
  492. vayrm-0.1.0/paladin/core/communication/streaming/synchronization/__init__.py +8 -0
  493. vayrm-0.1.0/paladin/core/communication/streaming/synchronization/synchronization.py +28 -0
  494. vayrm-0.1.0/paladin/core/communication/streaming/tensor_stream/__init__.py +8 -0
  495. vayrm-0.1.0/paladin/core/communication/streaming/tensor_stream/tensor_stream.py +28 -0
  496. vayrm-0.1.0/paladin/core/communication/streaming/transfer_manager/__init__.py +8 -0
  497. vayrm-0.1.0/paladin/core/communication/streaming/transfer_manager/transfer_manager.py +212 -0
  498. vayrm-0.1.0/paladin/core/communication/topology/__init__.py +74 -0
  499. vayrm-0.1.0/paladin/core/communication/transport/__init__.py +1 -0
  500. vayrm-0.1.0/paladin/core/communication/transport/future/__init__.py +0 -0
  501. vayrm-0.1.0/paladin/core/communication/transport/future/transport.py +0 -0
  502. vayrm-0.1.0/paladin/core/communication/transport/grpc/__init__.py +0 -0
  503. vayrm-0.1.0/paladin/core/communication/transport/grpc/transport.py +0 -0
  504. vayrm-0.1.0/paladin/core/communication/transport/quic/__init__.py +0 -0
  505. vayrm-0.1.0/paladin/core/communication/transport/quic/client.py +0 -0
  506. vayrm-0.1.0/paladin/core/communication/transport/quic/connection.py +0 -0
  507. vayrm-0.1.0/paladin/core/communication/transport/quic/server.py +0 -0
  508. vayrm-0.1.0/paladin/core/communication/transport/quic/transport.py +0 -0
  509. vayrm-0.1.0/paladin/core/communication/transport/tcp/__init__.py +149 -0
  510. vayrm-0.1.0/paladin/core/communication/transport/tcp/client.py +0 -0
  511. vayrm-0.1.0/paladin/core/communication/transport/tcp/connection.py +0 -0
  512. vayrm-0.1.0/paladin/core/communication/transport/tcp/server.py +0 -0
  513. vayrm-0.1.0/paladin/core/communication/transport/tcp/transport.py +0 -0
  514. vayrm-0.1.0/paladin/core/communication/transport/websocket/__init__.py +0 -0
  515. vayrm-0.1.0/paladin/core/communication/transport/websocket/transport.py +0 -0
  516. vayrm-0.1.0/paladin/core/communication/traversal/__init__.py +60 -0
  517. vayrm-0.1.0/paladin/core/configuration/__init__.py +0 -0
  518. vayrm-0.1.0/paladin/core/configuration/configuration.py +0 -0
  519. vayrm-0.1.0/paladin/core/configuration/scopes.py +13 -0
  520. vayrm-0.1.0/paladin/core/diagnostics/__init__.py +0 -0
  521. vayrm-0.1.0/paladin/core/diagnostics/diagnostics.py +0 -0
  522. vayrm-0.1.0/paladin/core/discovery/__init__.py +0 -0
  523. vayrm-0.1.0/paladin/core/discovery/context.py +9 -0
  524. vayrm-0.1.0/paladin/core/discovery/events.py +10 -0
  525. vayrm-0.1.0/paladin/core/discovery/failure/__init__.py +0 -0
  526. vayrm-0.1.0/paladin/core/discovery/failure/detector.py +6 -0
  527. vayrm-0.1.0/paladin/core/discovery/failure/isolation.py +5 -0
  528. vayrm-0.1.0/paladin/core/discovery/failure/suspicion.py +5 -0
  529. vayrm-0.1.0/paladin/core/discovery/gossip/__init__.py +0 -0
  530. vayrm-0.1.0/paladin/core/discovery/gossip/exchange.py +5 -0
  531. vayrm-0.1.0/paladin/core/discovery/gossip/manager.py +6 -0
  532. vayrm-0.1.0/paladin/core/discovery/gossip/protocol.py +9 -0
  533. vayrm-0.1.0/paladin/core/discovery/gossip/state.py +9 -0
  534. vayrm-0.1.0/paladin/core/discovery/heartbeat/__init__.py +0 -0
  535. vayrm-0.1.0/paladin/core/discovery/heartbeat/manager.py +5 -0
  536. vayrm-0.1.0/paladin/core/discovery/heartbeat/monitor.py +5 -0
  537. vayrm-0.1.0/paladin/core/discovery/heartbeat/scheduler.py +6 -0
  538. vayrm-0.1.0/paladin/core/discovery/manager.py +8 -0
  539. vayrm-0.1.0/paladin/core/discovery/policies.py +9 -0
  540. vayrm-0.1.0/paladin/core/discovery/registry.py +11 -0
  541. vayrm-0.1.0/paladin/core/discovery/runtime.py +7 -0
  542. vayrm-0.1.0/paladin/core/discovery/state.py +9 -0
  543. vayrm-0.1.0/paladin/core/federation/__init__.py +0 -0
  544. vayrm-0.1.0/paladin/core/federation/directory.py +5 -0
  545. vayrm-0.1.0/paladin/core/federation/discovery.py +5 -0
  546. vayrm-0.1.0/paladin/core/federation/manager.py +5 -0
  547. vayrm-0.1.0/paladin/core/federation/policies.py +5 -0
  548. vayrm-0.1.0/paladin/core/federation/registry.py +5 -0
  549. vayrm-0.1.0/paladin/core/federation/remote.py +5 -0
  550. vayrm-0.1.0/paladin/core/federation/routing.py +5 -0
  551. vayrm-0.1.0/paladin/core/federation/trust.py +5 -0
  552. vayrm-0.1.0/paladin/core/interfaces/__init__.py +325 -0
  553. vayrm-0.1.0/paladin/core/interfaces/icluster.py +1 -0
  554. vayrm-0.1.0/paladin/core/interfaces/icommunication.py +0 -0
  555. vayrm-0.1.0/paladin/core/interfaces/idataset.py +0 -0
  556. vayrm-0.1.0/paladin/core/interfaces/imodel.py +0 -0
  557. vayrm-0.1.0/paladin/core/interfaces/iplugin.py +0 -0
  558. vayrm-0.1.0/paladin/core/interfaces/iresource.py +0 -0
  559. vayrm-0.1.0/paladin/core/interfaces/iruntime.py +0 -0
  560. vayrm-0.1.0/paladin/core/interfaces/ischeduler.py +0 -0
  561. vayrm-0.1.0/paladin/core/interfaces/isecurity.py +0 -0
  562. vayrm-0.1.0/paladin/core/interfaces/istorage.py +0 -0
  563. vayrm-0.1.0/paladin/core/interfaces/istreaming.py +0 -0
  564. vayrm-0.1.0/paladin/core/interfaces/itelemetry.py +0 -0
  565. vayrm-0.1.0/paladin/core/interfaces/itransport.py +0 -0
  566. vayrm-0.1.0/paladin/core/kernel/__init__.py +0 -0
  567. vayrm-0.1.0/paladin/core/kernel/context.py +19 -0
  568. vayrm-0.1.0/paladin/core/kernel/diagnostics.py +15 -0
  569. vayrm-0.1.0/paladin/core/kernel/events.py +13 -0
  570. vayrm-0.1.0/paladin/core/kernel/health.py +19 -0
  571. vayrm-0.1.0/paladin/core/kernel/kernel.py +23 -0
  572. vayrm-0.1.0/paladin/core/kernel/lifecycle.py +35 -0
  573. vayrm-0.1.0/paladin/core/kernel/manifest.py +29 -0
  574. vayrm-0.1.0/paladin/core/kernel/runtimes/__init__.py +0 -0
  575. vayrm-0.1.0/paladin/core/kernel/runtimes/descriptor.py +30 -0
  576. vayrm-0.1.0/paladin/core/kernel/runtimes/registry.py +21 -0
  577. vayrm-0.1.0/paladin/core/kernel/state.py +39 -0
  578. vayrm-0.1.0/paladin/core/logging/__init__.py +0 -0
  579. vayrm-0.1.0/paladin/core/logging/logging.py +0 -0
  580. vayrm-0.1.0/paladin/core/logging_setup.py +98 -0
  581. vayrm-0.1.0/paladin/core/network/__init__.py +0 -0
  582. vayrm-0.1.0/paladin/core/network/bus.py +56 -0
  583. vayrm-0.1.0/paladin/core/network/config.py +202 -0
  584. vayrm-0.1.0/paladin/core/network/connection/__init__.py +0 -0
  585. vayrm-0.1.0/paladin/core/network/connection/manager.py +57 -0
  586. vayrm-0.1.0/paladin/core/network/connection/pool.py +43 -0
  587. vayrm-0.1.0/paladin/core/network/connection/registry.py +19 -0
  588. vayrm-0.1.0/paladin/core/network/connection/retry.py +30 -0
  589. vayrm-0.1.0/paladin/core/network/connection/state.py +64 -0
  590. vayrm-0.1.0/paladin/core/network/controlplane/__init__.py +0 -0
  591. vayrm-0.1.0/paladin/core/network/controlplane/acl/__init__.py +0 -0
  592. vayrm-0.1.0/paladin/core/network/controlplane/acl/acl_manager.py +69 -0
  593. vayrm-0.1.0/paladin/core/network/controlplane/audit/__init__.py +0 -0
  594. vayrm-0.1.0/paladin/core/network/controlplane/audit/logger.py +33 -0
  595. vayrm-0.1.0/paladin/core/network/controlplane/authentication/__init__.py +0 -0
  596. vayrm-0.1.0/paladin/core/network/controlplane/authentication/auth.py +64 -0
  597. vayrm-0.1.0/paladin/core/network/controlplane/authorization/__init__.py +0 -0
  598. vayrm-0.1.0/paladin/core/network/controlplane/authorization/authz.py +42 -0
  599. vayrm-0.1.0/paladin/core/network/controlplane/cluster/__init__.py +0 -0
  600. vayrm-0.1.0/paladin/core/network/controlplane/cluster/synchronizer.py +32 -0
  601. vayrm-0.1.0/paladin/core/network/controlplane/configuration/__init__.py +0 -0
  602. vayrm-0.1.0/paladin/core/network/controlplane/configuration/manager.py +37 -0
  603. vayrm-0.1.0/paladin/core/network/controlplane/derp/__init__.py +0 -0
  604. vayrm-0.1.0/paladin/core/network/controlplane/derp/derp_coordinator.py +31 -0
  605. vayrm-0.1.0/paladin/core/network/controlplane/events.py +57 -0
  606. vayrm-0.1.0/paladin/core/network/controlplane/exceptions.py +26 -0
  607. vayrm-0.1.0/paladin/core/network/controlplane/identity/__init__.py +0 -0
  608. vayrm-0.1.0/paladin/core/network/controlplane/identity/manager.py +92 -0
  609. vayrm-0.1.0/paladin/core/network/controlplane/models.py +70 -0
  610. vayrm-0.1.0/paladin/core/network/controlplane/monitoring/__init__.py +0 -0
  611. vayrm-0.1.0/paladin/core/network/controlplane/monitoring/monitor.py +27 -0
  612. vayrm-0.1.0/paladin/core/network/controlplane/nat/__init__.py +0 -0
  613. vayrm-0.1.0/paladin/core/network/controlplane/nat/nat_coordinator.py +30 -0
  614. vayrm-0.1.0/paladin/core/network/controlplane/peer_coordinator.py +40 -0
  615. vayrm-0.1.0/paladin/core/network/controlplane/registry/__init__.py +0 -0
  616. vayrm-0.1.0/paladin/core/network/controlplane/registry/registry.py +67 -0
  617. vayrm-0.1.0/paladin/core/network/controlplane/routing/__init__.py +0 -0
  618. vayrm-0.1.0/paladin/core/network/controlplane/routing/routing.py +32 -0
  619. vayrm-0.1.0/paladin/core/network/controlplane/services/__init__.py +0 -0
  620. vayrm-0.1.0/paladin/core/network/controlplane/services/identity_service.py +16 -0
  621. vayrm-0.1.0/paladin/core/network/controlplane/topology/__init__.py +0 -0
  622. vayrm-0.1.0/paladin/core/network/controlplane/topology/topology.py +54 -0
  623. vayrm-0.1.0/paladin/core/network/discovery/__init__.py +0 -0
  624. vayrm-0.1.0/paladin/core/network/discovery/cache.py +30 -0
  625. vayrm-0.1.0/paladin/core/network/discovery/interfaces.py +43 -0
  626. vayrm-0.1.0/paladin/core/network/discovery/manager.py +49 -0
  627. vayrm-0.1.0/paladin/core/network/discovery/provider.py +331 -0
  628. vayrm-0.1.0/paladin/core/network/discovery/synchronizer.py +75 -0
  629. vayrm-0.1.0/paladin/core/network/events.py +136 -0
  630. vayrm-0.1.0/paladin/core/network/exceptions.py +34 -0
  631. vayrm-0.1.0/paladin/core/network/headscale/__init__.py +0 -0
  632. vayrm-0.1.0/paladin/core/network/headscale/acl.py +11 -0
  633. vayrm-0.1.0/paladin/core/network/headscale/api.py +132 -0
  634. vayrm-0.1.0/paladin/core/network/headscale/client.py +163 -0
  635. vayrm-0.1.0/paladin/core/network/headscale/headscale_state.py +107 -0
  636. vayrm-0.1.0/paladin/core/network/headscale/headscale_sync_service.py +349 -0
  637. vayrm-0.1.0/paladin/core/network/headscale/health.py +76 -0
  638. vayrm-0.1.0/paladin/core/network/headscale/identity.py +8 -0
  639. vayrm-0.1.0/paladin/core/network/headscale/models.py +28 -0
  640. vayrm-0.1.0/paladin/core/network/headscale/registration.py +368 -0
  641. vayrm-0.1.0/paladin/core/network/headscale/startup_check.py +651 -0
  642. vayrm-0.1.0/paladin/core/network/headscale/sync.py +75 -0
  643. vayrm-0.1.0/paladin/core/network/health/__init__.py +0 -0
  644. vayrm-0.1.0/paladin/core/network/health/monitor.py +50 -0
  645. vayrm-0.1.0/paladin/core/network/health/states.py +13 -0
  646. vayrm-0.1.0/paladin/core/network/management/__init__.py +0 -0
  647. vayrm-0.1.0/paladin/core/network/management/config.py +35 -0
  648. vayrm-0.1.0/paladin/core/network/management/doctor.py +70 -0
  649. vayrm-0.1.0/paladin/core/network/management/headscale.py +77 -0
  650. vayrm-0.1.0/paladin/core/network/management/installer.py +44 -0
  651. vayrm-0.1.0/paladin/core/network/management/logs.py +21 -0
  652. vayrm-0.1.0/paladin/core/network/management/models.py +58 -0
  653. vayrm-0.1.0/paladin/core/network/management/operator.py +37 -0
  654. vayrm-0.1.0/paladin/core/network/management/provision.py +20 -0
  655. vayrm-0.1.0/paladin/core/network/management/tailscale.py +125 -0
  656. vayrm-0.1.0/paladin/core/network/manager.py +266 -0
  657. vayrm-0.1.0/paladin/core/network/metrics/__init__.py +6 -0
  658. vayrm-0.1.0/paladin/core/network/metrics/manager.py +77 -0
  659. vayrm-0.1.0/paladin/core/network/orchestrator/__init__.py +0 -0
  660. vayrm-0.1.0/paladin/core/network/orchestrator/orchestrator.py +125 -0
  661. vayrm-0.1.0/paladin/core/network/orchestrator/route_evaluator.py +56 -0
  662. vayrm-0.1.0/paladin/core/network/platform/__init__.py +17 -0
  663. vayrm-0.1.0/paladin/core/network/platform/capabilities.py +237 -0
  664. vayrm-0.1.0/paladin/core/network/scheduler/__init__.py +0 -0
  665. vayrm-0.1.0/paladin/core/network/scheduler/network_scheduler.py +0 -0
  666. vayrm-0.1.0/paladin/core/network/security/__init__.py +0 -0
  667. vayrm-0.1.0/paladin/core/network/security/policy.py +0 -0
  668. vayrm-0.1.0/paladin/core/network/services/__init__.py +0 -0
  669. vayrm-0.1.0/paladin/core/network/services/heartbeat.py +149 -0
  670. vayrm-0.1.0/paladin/core/network/session/__init__.py +0 -0
  671. vayrm-0.1.0/paladin/core/network/session/manager.py +139 -0
  672. vayrm-0.1.0/paladin/core/network/transfer/__init__.py +0 -0
  673. vayrm-0.1.0/paladin/core/network/transfer/checksum.py +13 -0
  674. vayrm-0.1.0/paladin/core/network/transfer/chunk_manager.py +17 -0
  675. vayrm-0.1.0/paladin/core/network/transfer/compression.py +13 -0
  676. vayrm-0.1.0/paladin/core/network/transfer/reassembly.py +27 -0
  677. vayrm-0.1.0/paladin/core/network/transfer/resume.py +36 -0
  678. vayrm-0.1.0/paladin/core/network/transfer/transfer_manager.py +103 -0
  679. vayrm-0.1.0/paladin/core/network/transfer/verification.py +13 -0
  680. vayrm-0.1.0/paladin/core/network/transport/__init__.py +0 -0
  681. vayrm-0.1.0/paladin/core/network/transport/base.py +125 -0
  682. vayrm-0.1.0/paladin/core/network/transport/factory.py +27 -0
  683. vayrm-0.1.0/paladin/core/network/transport/interfaces.py +90 -0
  684. vayrm-0.1.0/paladin/core/network/transport/manager.py +37 -0
  685. vayrm-0.1.0/paladin/core/network/transport/mock_provider.py +60 -0
  686. vayrm-0.1.0/paladin/core/network/transport/provider.py +62 -0
  687. vayrm-0.1.0/paladin/core/network/transport/tcp_provider.py +45 -0
  688. vayrm-0.1.0/paladin/core/network/wireguard/__init__.py +0 -0
  689. vayrm-0.1.0/paladin/core/network/wireguard/health_monitor.py +30 -0
  690. vayrm-0.1.0/paladin/core/network/wireguard/interface_manager.py +19 -0
  691. vayrm-0.1.0/paladin/core/network/wireguard/key_manager.py +61 -0
  692. vayrm-0.1.0/paladin/core/network/wireguard/peer_manager.py +33 -0
  693. vayrm-0.1.0/paladin/core/network/wireguard/provider.py +41 -0
  694. vayrm-0.1.0/paladin/core/network/wireguard/system_provider.py +85 -0
  695. vayrm-0.1.0/paladin/core/network/wireguard/tunnel_manager.py +25 -0
  696. vayrm-0.1.0/paladin/core/node/__init__.py +0 -0
  697. vayrm-0.1.0/paladin/core/node/descriptor.py +10 -0
  698. vayrm-0.1.0/paladin/core/node/events.py +9 -0
  699. vayrm-0.1.0/paladin/core/node/health.py +6 -0
  700. vayrm-0.1.0/paladin/core/node/identity.py +9 -0
  701. vayrm-0.1.0/paladin/core/node/lifecycle.py +27 -0
  702. vayrm-0.1.0/paladin/core/node/manager.py +10 -0
  703. vayrm-0.1.0/paladin/core/node/state.py +15 -0
  704. vayrm-0.1.0/paladin/core/platform/__init__.py +0 -0
  705. vayrm-0.1.0/paladin/core/platform/common/__init__.py +0 -0
  706. vayrm-0.1.0/paladin/core/platform/common/common.py +0 -0
  707. vayrm-0.1.0/paladin/core/platform/drivers/__init__.py +0 -0
  708. vayrm-0.1.0/paladin/core/platform/drivers/drivers.py +0 -0
  709. vayrm-0.1.0/paladin/core/platform/linux/__init__.py +0 -0
  710. vayrm-0.1.0/paladin/core/platform/linux/linux.py +0 -0
  711. vayrm-0.1.0/paladin/core/platform/macos/__init__.py +0 -0
  712. vayrm-0.1.0/paladin/core/platform/macos/macos.py +0 -0
  713. vayrm-0.1.0/paladin/core/platform/windows/__init__.py +0 -0
  714. vayrm-0.1.0/paladin/core/platform/windows/windows.py +0 -0
  715. vayrm-0.1.0/paladin/core/plugins/__init__.py +0 -0
  716. vayrm-0.1.0/paladin/core/plugins/manager.py +17 -0
  717. vayrm-0.1.0/paladin/core/plugins/manifest.py +24 -0
  718. vayrm-0.1.0/paladin/core/plugins/registry.py +11 -0
  719. vayrm-0.1.0/paladin/core/research/__init__.py +9 -0
  720. vayrm-0.1.0/paladin/core/resource_fabric/__init__.py +0 -0
  721. vayrm-0.1.0/paladin/core/resource_fabric/admission_control/__init__.py +0 -0
  722. vayrm-0.1.0/paladin/core/resource_fabric/admission_control/admission_control.py +0 -0
  723. vayrm-0.1.0/paladin/core/resource_fabric/allocator/__init__.py +0 -0
  724. vayrm-0.1.0/paladin/core/resource_fabric/allocator/allocator.py +0 -0
  725. vayrm-0.1.0/paladin/core/resource_fabric/discovery/__init__.py +0 -0
  726. vayrm-0.1.0/paladin/core/resource_fabric/discovery/discovery.py +0 -0
  727. vayrm-0.1.0/paladin/core/resource_fabric/gpu_pool/__init__.py +0 -0
  728. vayrm-0.1.0/paladin/core/resource_fabric/gpu_pool/gpu_pool.py +0 -0
  729. vayrm-0.1.0/paladin/core/resource_fabric/inventory/__init__.py +0 -0
  730. vayrm-0.1.0/paladin/core/resource_fabric/inventory/inventory.py +0 -0
  731. vayrm-0.1.0/paladin/core/resource_fabric/memory_pool/__init__.py +0 -0
  732. vayrm-0.1.0/paladin/core/resource_fabric/memory_pool/memory_pool.py +0 -0
  733. vayrm-0.1.0/paladin/core/resource_fabric/network_pool/__init__.py +0 -0
  734. vayrm-0.1.0/paladin/core/resource_fabric/network_pool/network_pool.py +0 -0
  735. vayrm-0.1.0/paladin/core/resource_fabric/placement/__init__.py +0 -0
  736. vayrm-0.1.0/paladin/core/resource_fabric/placement/placement.py +0 -0
  737. vayrm-0.1.0/paladin/core/resource_fabric/quotas/__init__.py +0 -0
  738. vayrm-0.1.0/paladin/core/resource_fabric/quotas/quotas.py +0 -0
  739. vayrm-0.1.0/paladin/core/resource_fabric/storage_pool/__init__.py +0 -0
  740. vayrm-0.1.0/paladin/core/resource_fabric/storage_pool/storage_pool.py +0 -0
  741. vayrm-0.1.0/paladin/core/resources/__init__.py +0 -0
  742. vayrm-0.1.0/paladin/core/resources/allocator/__init__.py +0 -0
  743. vayrm-0.1.0/paladin/core/resources/allocator/allocator.py +0 -0
  744. vayrm-0.1.0/paladin/core/resources/bandwidth/__init__.py +0 -0
  745. vayrm-0.1.0/paladin/core/resources/bandwidth/bandwidth.py +0 -0
  746. vayrm-0.1.0/paladin/core/resources/cpu/__init__.py +0 -0
  747. vayrm-0.1.0/paladin/core/resources/cpu/cpu.py +0 -0
  748. vayrm-0.1.0/paladin/core/resources/disk/__init__.py +0 -0
  749. vayrm-0.1.0/paladin/core/resources/disk/disk.py +0 -0
  750. vayrm-0.1.0/paladin/core/resources/gpu/__init__.py +0 -0
  751. vayrm-0.1.0/paladin/core/resources/gpu/gpu.py +0 -0
  752. vayrm-0.1.0/paladin/core/resources/manager.py +12 -0
  753. vayrm-0.1.0/paladin/core/resources/memory/__init__.py +0 -0
  754. vayrm-0.1.0/paladin/core/resources/memory/memory.py +0 -0
  755. vayrm-0.1.0/paladin/core/resources/models.py +42 -0
  756. vayrm-0.1.0/paladin/core/resources/network/__init__.py +0 -0
  757. vayrm-0.1.0/paladin/core/resources/network/network.py +0 -0
  758. vayrm-0.1.0/paladin/core/resources/npu/__init__.py +0 -0
  759. vayrm-0.1.0/paladin/core/resources/npu/npu.py +0 -0
  760. vayrm-0.1.0/paladin/core/resources/power/__init__.py +0 -0
  761. vayrm-0.1.0/paladin/core/resources/power/power.py +0 -0
  762. vayrm-0.1.0/paladin/core/resources/predictor/__init__.py +0 -0
  763. vayrm-0.1.0/paladin/core/resources/predictor/predictor.py +0 -0
  764. vayrm-0.1.0/paladin/core/resources/registry.py +11 -0
  765. vayrm-0.1.0/paladin/core/resources/storage/__init__.py +0 -0
  766. vayrm-0.1.0/paladin/core/resources/storage/storage.py +0 -0
  767. vayrm-0.1.0/paladin/core/resources/telemetry/__init__.py +0 -0
  768. vayrm-0.1.0/paladin/core/resources/telemetry/telemetry.py +0 -0
  769. vayrm-0.1.0/paladin/core/resources/temperature/__init__.py +0 -0
  770. vayrm-0.1.0/paladin/core/resources/temperature/temperature.py +0 -0
  771. vayrm-0.1.0/paladin/core/runtime/__init__.py +0 -0
  772. vayrm-0.1.0/paladin/core/runtime/event_bus/__init__.py +0 -0
  773. vayrm-0.1.0/paladin/core/runtime/event_bus/event_bus.py +0 -0
  774. vayrm-0.1.0/paladin/core/runtime/executor/__init__.py +0 -0
  775. vayrm-0.1.0/paladin/core/runtime/executor/executor.py +0 -0
  776. vayrm-0.1.0/paladin/core/runtime/job_dispatcher/__init__.py +0 -0
  777. vayrm-0.1.0/paladin/core/runtime/job_dispatcher/job_dispatcher.py +0 -0
  778. vayrm-0.1.0/paladin/core/runtime/lifecycle/__init__.py +0 -0
  779. vayrm-0.1.0/paladin/core/runtime/lifecycle/lifecycle.py +0 -0
  780. vayrm-0.1.0/paladin/core/runtime/plugin_manager/__init__.py +0 -0
  781. vayrm-0.1.0/paladin/core/runtime/plugin_manager/plugin_manager.py +0 -0
  782. vayrm-0.1.0/paladin/core/runtime/runtime_api/__init__.py +0 -0
  783. vayrm-0.1.0/paladin/core/runtime/runtime_api/runtime_api.py +0 -0
  784. vayrm-0.1.0/paladin/core/runtime/scheduler/__init__.py +0 -0
  785. vayrm-0.1.0/paladin/core/runtime/scheduler/scheduler.py +0 -0
  786. vayrm-0.1.0/paladin/core/runtime/service_manager/__init__.py +0 -0
  787. vayrm-0.1.0/paladin/core/runtime/service_manager/service_manager.py +0 -0
  788. vayrm-0.1.0/paladin/core/runtime/state_machine/__init__.py +0 -0
  789. vayrm-0.1.0/paladin/core/runtime/state_machine/state_machine.py +0 -0
  790. vayrm-0.1.0/paladin/core/runtime/task_manager/__init__.py +0 -0
  791. vayrm-0.1.0/paladin/core/runtime/task_manager/task_manager.py +0 -0
  792. vayrm-0.1.0/paladin/core/runtime/task_queue/__init__.py +0 -0
  793. vayrm-0.1.0/paladin/core/runtime/task_queue/task_queue.py +0 -0
  794. vayrm-0.1.0/paladin/core/runtime/worker_pool/__init__.py +0 -0
  795. vayrm-0.1.0/paladin/core/runtime/worker_pool/worker_pool.py +0 -0
  796. vayrm-0.1.0/paladin/core/scheduler/__init__.py +0 -0
  797. vayrm-0.1.0/paladin/core/scheduler/execution_flow.py +8 -0
  798. vayrm-0.1.0/paladin/core/scheduler/executor.py +8 -0
  799. vayrm-0.1.0/paladin/core/scheduler/placement.py +7 -0
  800. vayrm-0.1.0/paladin/core/scheduler/queue.py +7 -0
  801. vayrm-0.1.0/paladin/core/scheduler/scheduler.py +8 -0
  802. vayrm-0.1.0/paladin/core/security/__init__.py +1 -0
  803. vayrm-0.1.0/paladin/core/security/audit/__init__.py +0 -0
  804. vayrm-0.1.0/paladin/core/security/audit/journal.py +12 -0
  805. vayrm-0.1.0/paladin/core/security/audit/logger.py +7 -0
  806. vayrm-0.1.0/paladin/core/security/audit/retention.py +10 -0
  807. vayrm-0.1.0/paladin/core/security/authentication/__init__.py +0 -0
  808. vayrm-0.1.0/paladin/core/security/authentication/handshake.py +16 -0
  809. vayrm-0.1.0/paladin/core/security/authentication/manager.py +17 -0
  810. vayrm-0.1.0/paladin/core/security/authentication/policy.py +12 -0
  811. vayrm-0.1.0/paladin/core/security/authorization/__init__.py +1 -0
  812. vayrm-0.1.0/paladin/core/security/authorization/manager.py +21 -0
  813. vayrm-0.1.0/paladin/core/security/authorization/policy.py +10 -0
  814. vayrm-0.1.0/paladin/core/security/authorization/rbac.py +23 -0
  815. vayrm-0.1.0/paladin/core/security/bus_integration.py +8 -0
  816. vayrm-0.1.0/paladin/core/security/crypto/__init__.py +0 -0
  817. vayrm-0.1.0/paladin/core/security/crypto/keys.py +18 -0
  818. vayrm-0.1.0/paladin/core/security/crypto/provider.py +38 -0
  819. vayrm-0.1.0/paladin/core/security/domains/__init__.py +0 -0
  820. vayrm-0.1.0/paladin/core/security/domains/domain.py +29 -0
  821. vayrm-0.1.0/paladin/core/security/hardware/__init__.py +0 -0
  822. vayrm-0.1.0/paladin/core/security/hardware/provider.py +21 -0
  823. vayrm-0.1.0/paladin/core/security/identity/__init__.py +0 -0
  824. vayrm-0.1.0/paladin/core/security/identity/descriptor.py +13 -0
  825. vayrm-0.1.0/paladin/core/security/identity/identity.py +36 -0
  826. vayrm-0.1.0/paladin/core/security/identity/registry.py +17 -0
  827. vayrm-0.1.0/paladin/core/security/identity/validator.py +13 -0
  828. vayrm-0.1.0/paladin/core/security/identity_store.py +34 -0
  829. vayrm-0.1.0/paladin/core/security/peer_registry.py +56 -0
  830. vayrm-0.1.0/paladin/core/security/pki/__init__.py +3 -0
  831. vayrm-0.1.0/paladin/core/security/pki/authority.py +12 -0
  832. vayrm-0.1.0/paladin/core/security/pki/ca.py +118 -0
  833. vayrm-0.1.0/paladin/core/security/pki/csr.py +10 -0
  834. vayrm-0.1.0/paladin/core/security/pki/manager.py +14 -0
  835. vayrm-0.1.0/paladin/core/security/pki/revocation.py +13 -0
  836. vayrm-0.1.0/paladin/core/security/pki/store.py +20 -0
  837. vayrm-0.1.0/paladin/core/security/pki/validator.py +16 -0
  838. vayrm-0.1.0/paladin/core/security/policy/__init__.py +1 -0
  839. vayrm-0.1.0/paladin/core/security/policy/policy.py +103 -0
  840. vayrm-0.1.0/paladin/core/security/runtime/__init__.py +0 -0
  841. vayrm-0.1.0/paladin/core/security/runtime/context.py +22 -0
  842. vayrm-0.1.0/paladin/core/security/runtime/events.py +37 -0
  843. vayrm-0.1.0/paladin/core/security/runtime/lifecycle.py +26 -0
  844. vayrm-0.1.0/paladin/core/security/runtime/manager.py +49 -0
  845. vayrm-0.1.0/paladin/core/security/secrets/__init__.py +1 -0
  846. vayrm-0.1.0/paladin/core/security/secrets/manager.py +7 -0
  847. vayrm-0.1.0/paladin/core/security/secrets/provider.py +9 -0
  848. vayrm-0.1.0/paladin/core/security/secrets/rotation.py +6 -0
  849. vayrm-0.1.0/paladin/core/security/secrets/store.py +14 -0
  850. vayrm-0.1.0/paladin/core/security/secrets/vault.py +65 -0
  851. vayrm-0.1.0/paladin/core/security/security.py +0 -0
  852. vayrm-0.1.0/paladin/core/security/sessions/__init__.py +0 -0
  853. vayrm-0.1.0/paladin/core/security/sessions/descriptor.py +11 -0
  854. vayrm-0.1.0/paladin/core/security/sessions/lifecycle.py +12 -0
  855. vayrm-0.1.0/paladin/core/security/sessions/manager.py +18 -0
  856. vayrm-0.1.0/paladin/core/security/sessions/state.py +11 -0
  857. vayrm-0.1.0/paladin/core/security/threats/__init__.py +0 -0
  858. vayrm-0.1.0/paladin/core/security/threats/catalog.py +23 -0
  859. vayrm-0.1.0/paladin/core/security/threats/classification.py +17 -0
  860. vayrm-0.1.0/paladin/core/security/threats/mitigation.py +11 -0
  861. vayrm-0.1.0/paladin/core/security/threats/severity.py +23 -0
  862. vayrm-0.1.0/paladin/core/security/trust/__init__.py +1 -0
  863. vayrm-0.1.0/paladin/core/security/trust/engine.py +16 -0
  864. vayrm-0.1.0/paladin/core/security/trust/evaluator.py +6 -0
  865. vayrm-0.1.0/paladin/core/security/trust/evidence.py +17 -0
  866. vayrm-0.1.0/paladin/core/security/trust/graph.py +11 -0
  867. vayrm-0.1.0/paladin/core/security/trust/manager.py +16 -0
  868. vayrm-0.1.0/paladin/core/security/trust/policy.py +9 -0
  869. vayrm-0.1.0/paladin/core/security/trust/reputation.py +3 -0
  870. vayrm-0.1.0/paladin/core/security/trust/trust.py +62 -0
  871. vayrm-0.1.0/paladin/core/services/__init__.py +0 -0
  872. vayrm-0.1.0/paladin/core/services/authentication/__init__.py +0 -0
  873. vayrm-0.1.0/paladin/core/services/authentication/service.py +0 -0
  874. vayrm-0.1.0/paladin/core/services/cache/__init__.py +0 -0
  875. vayrm-0.1.0/paladin/core/services/cache/service.py +0 -0
  876. vayrm-0.1.0/paladin/core/services/descriptor.py +7 -0
  877. vayrm-0.1.0/paladin/core/services/discovery/__init__.py +0 -0
  878. vayrm-0.1.0/paladin/core/services/discovery/service.py +0 -0
  879. vayrm-0.1.0/paladin/core/services/discovery.py +7 -0
  880. vayrm-0.1.0/paladin/core/services/health/__init__.py +0 -0
  881. vayrm-0.1.0/paladin/core/services/health/service.py +0 -0
  882. vayrm-0.1.0/paladin/core/services/health.py +7 -0
  883. vayrm-0.1.0/paladin/core/services/heartbeat/__init__.py +0 -0
  884. vayrm-0.1.0/paladin/core/services/heartbeat/service.py +0 -0
  885. vayrm-0.1.0/paladin/core/services/lifecycle.py +7 -0
  886. vayrm-0.1.0/paladin/core/services/logging/__init__.py +0 -0
  887. vayrm-0.1.0/paladin/core/services/logging/service.py +0 -0
  888. vayrm-0.1.0/paladin/core/services/manager.py +7 -0
  889. vayrm-0.1.0/paladin/core/services/manifest.py +7 -0
  890. vayrm-0.1.0/paladin/core/services/metrics/__init__.py +0 -0
  891. vayrm-0.1.0/paladin/core/services/metrics/service.py +0 -0
  892. vayrm-0.1.0/paladin/core/services/notifications/__init__.py +0 -0
  893. vayrm-0.1.0/paladin/core/services/notifications/service.py +0 -0
  894. vayrm-0.1.0/paladin/core/services/registry.py +7 -0
  895. vayrm-0.1.0/paladin/core/services/resolver.py +7 -0
  896. vayrm-0.1.0/paladin/core/services/resource_monitor/__init__.py +0 -0
  897. vayrm-0.1.0/paladin/core/services/resource_monitor/service.py +0 -0
  898. vayrm-0.1.0/paladin/core/services/runtime.py +8 -0
  899. vayrm-0.1.0/paladin/core/services/scheduler/__init__.py +0 -0
  900. vayrm-0.1.0/paladin/core/services/scheduler/service.py +0 -0
  901. vayrm-0.1.0/paladin/core/services/state.py +24 -0
  902. vayrm-0.1.0/paladin/core/services/sync/__init__.py +0 -0
  903. vayrm-0.1.0/paladin/core/services/sync/service.py +0 -0
  904. vayrm-0.1.0/paladin/core/services/transfer/__init__.py +0 -0
  905. vayrm-0.1.0/paladin/core/services/transfer/service.py +0 -0
  906. vayrm-0.1.0/paladin/core/storage/__init__.py +0 -0
  907. vayrm-0.1.0/paladin/core/storage/artifacts/__init__.py +0 -0
  908. vayrm-0.1.0/paladin/core/storage/artifacts/artifacts.py +0 -0
  909. vayrm-0.1.0/paladin/core/storage/cache/__init__.py +0 -0
  910. vayrm-0.1.0/paladin/core/storage/cache/cache.py +0 -0
  911. vayrm-0.1.0/paladin/core/storage/checkpoints/__init__.py +0 -0
  912. vayrm-0.1.0/paladin/core/storage/checkpoints/checkpoints.py +0 -0
  913. vayrm-0.1.0/paladin/core/storage/cleanup/__init__.py +0 -0
  914. vayrm-0.1.0/paladin/core/storage/cleanup/cleanup.py +0 -0
  915. vayrm-0.1.0/paladin/core/storage/datasets/__init__.py +0 -0
  916. vayrm-0.1.0/paladin/core/storage/datasets/datasets.py +0 -0
  917. vayrm-0.1.0/paladin/core/storage/distributed_store/__init__.py +0 -0
  918. vayrm-0.1.0/paladin/core/storage/distributed_store/distributed_store.py +0 -0
  919. vayrm-0.1.0/paladin/core/storage/logs/__init__.py +0 -0
  920. vayrm-0.1.0/paladin/core/storage/logs/logs.py +0 -0
  921. vayrm-0.1.0/paladin/core/storage/metadata/__init__.py +0 -0
  922. vayrm-0.1.0/paladin/core/storage/metadata/metadata.py +0 -0
  923. vayrm-0.1.0/paladin/core/storage/metadata/store.py +7 -0
  924. vayrm-0.1.0/paladin/core/storage/models/__init__.py +0 -0
  925. vayrm-0.1.0/paladin/core/storage/models/models.py +0 -0
  926. vayrm-0.1.0/paladin/core/storage/object_store/__init__.py +0 -0
  927. vayrm-0.1.0/paladin/core/storage/object_store/object_store.py +0 -0
  928. vayrm-0.1.0/paladin/core/storage/replication/__init__.py +0 -0
  929. vayrm-0.1.0/paladin/core/storage/replication/replication.py +0 -0
  930. vayrm-0.1.0/paladin/core/storage/snapshots/__init__.py +0 -0
  931. vayrm-0.1.0/paladin/core/storage/snapshots/snapshots.py +0 -0
  932. vayrm-0.1.0/paladin/core/system/__init__.py +0 -0
  933. vayrm-0.1.0/paladin/core/system/bus.py +15 -0
  934. vayrm-0.1.0/paladin/core/system/commands.py +7 -0
  935. vayrm-0.1.0/paladin/core/system/events.py +7 -0
  936. vayrm-0.1.0/paladin/core/system/queries.py +7 -0
  937. vayrm-0.1.0/paladin/core/system/subscriptions.py +7 -0
  938. vayrm-0.1.0/paladin/core/telemetry/__init__.py +0 -0
  939. vayrm-0.1.0/paladin/core/telemetry/alerts/__init__.py +0 -0
  940. vayrm-0.1.0/paladin/core/telemetry/alerts/alerts.py +0 -0
  941. vayrm-0.1.0/paladin/core/telemetry/analytics/__init__.py +0 -0
  942. vayrm-0.1.0/paladin/core/telemetry/analytics/analytics.py +0 -0
  943. vayrm-0.1.0/paladin/core/telemetry/dashboards/__init__.py +0 -0
  944. vayrm-0.1.0/paladin/core/telemetry/dashboards/dashboards.py +0 -0
  945. vayrm-0.1.0/paladin/core/telemetry/events/__init__.py +0 -0
  946. vayrm-0.1.0/paladin/core/telemetry/events/events.py +0 -0
  947. vayrm-0.1.0/paladin/core/telemetry/metrics/__init__.py +0 -0
  948. vayrm-0.1.0/paladin/core/telemetry/metrics/metrics.py +0 -0
  949. vayrm-0.1.0/paladin/core/telemetry/profiling/__init__.py +0 -0
  950. vayrm-0.1.0/paladin/core/telemetry/profiling/profiling.py +0 -0
  951. vayrm-0.1.0/paladin/core/telemetry/tracing/__init__.py +0 -0
  952. vayrm-0.1.0/paladin/core/telemetry/tracing/tracing.py +0 -0
  953. vayrm-0.1.0/paladin/core/time/__init__.py +0 -0
  954. vayrm-0.1.0/paladin/core/time/clock.py +5 -0
  955. vayrm-0.1.0/paladin/core/time/logical.py +5 -0
  956. vayrm-0.1.0/paladin/core/time/synchronization.py +5 -0
  957. vayrm-0.1.0/paladin/core/time/vector.py +5 -0
  958. vayrm-0.1.0/paladin/core/topology/__init__.py +0 -0
  959. vayrm-0.1.0/paladin/core/topology/graph.py +5 -0
  960. vayrm-0.1.0/paladin/core/topology/manager.py +5 -0
  961. vayrm-0.1.0/paladin/core/topology/snapshot.py +5 -0
  962. vayrm-0.1.0/paladin/core/utilities/__init__.py +0 -0
  963. vayrm-0.1.0/paladin/core/utilities/utilities.py +0 -0
  964. vayrm-0.1.0/paladin/protocol/__init__.py +0 -0
  965. vayrm-0.1.0/paladin/protocol/commands/__init__.py +0 -0
  966. vayrm-0.1.0/paladin/protocol/commands/commands.py +0 -0
  967. vayrm-0.1.0/paladin/protocol/errors/__init__.py +0 -0
  968. vayrm-0.1.0/paladin/protocol/errors/errors.py +0 -0
  969. vayrm-0.1.0/paladin/protocol/events/__init__.py +0 -0
  970. vayrm-0.1.0/paladin/protocol/events/events.py +0 -0
  971. vayrm-0.1.0/paladin/protocol/messages/__init__.py +0 -0
  972. vayrm-0.1.0/paladin/protocol/messages/messages.py +0 -0
  973. vayrm-0.1.0/paladin/protocol/protobuf/__init__.py +0 -0
  974. vayrm-0.1.0/paladin/protocol/responses/__init__.py +0 -0
  975. vayrm-0.1.0/paladin/protocol/responses/responses.py +0 -0
  976. vayrm-0.1.0/paladin/protocol/schemas/__init__.py +416 -0
  977. vayrm-0.1.0/paladin/protocol/versioning/__init__.py +0 -0
  978. vayrm-0.1.0/paladin/protocol/versioning/versioning.py +0 -0
  979. vayrm-0.1.0/paladin/protocol/wire/__init__.py +0 -0
  980. vayrm-0.1.0/paladin/protocol/wire/common/__init__.py +0 -0
  981. vayrm-0.1.0/paladin/protocol/wire/common/types.py +7 -0
  982. vayrm-0.1.0/paladin/protocol/wire/evolution.py +10 -0
  983. vayrm-0.1.0/pyproject.toml +68 -0
  984. vayrm-0.1.0/setup.cfg +4 -0
  985. vayrm-0.1.0/tests/test_adaptive_v3.py +122 -0
  986. vayrm-0.1.0/tests/test_estimation.py +104 -0
  987. vayrm-0.1.0/tests/test_live_dynamic_runtime.py +186 -0
  988. vayrm-0.1.0/tests/test_macos_telemetry.py +79 -0
  989. vayrm-0.1.0/tests/test_peer_view.py +53 -0
  990. vayrm-0.1.0/tests/test_phase_f.py +94 -0
  991. vayrm-0.1.0/tests/test_preemptive_state.py +44 -0
  992. vayrm-0.1.0/tests/test_recursive_subroots.py +67 -0
  993. vayrm-0.1.0/tests/test_root_telemetry_tracker_session.py +189 -0
  994. vayrm-0.1.0/tests/test_state_buffer.py +65 -0
  995. vayrm-0.1.0/tests/test_telemetry_contract.py +92 -0
  996. vayrm-0.1.0/vayrm/__init__.py +8 -0
  997. vayrm-0.1.0/vayrm.egg-info/PKG-INFO +166 -0
  998. vayrm-0.1.0/vayrm.egg-info/SOURCES.txt +1000 -0
  999. vayrm-0.1.0/vayrm.egg-info/dependency_links.txt +1 -0
  1000. vayrm-0.1.0/vayrm.egg-info/entry_points.txt +3 -0
  1001. vayrm-0.1.0/vayrm.egg-info/requires.txt +20 -0
  1002. vayrm-0.1.0/vayrm.egg-info/top_level.txt +7 -0
vayrm-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,166 @@
1
+ Metadata-Version: 2.4
2
+ Name: vayrm
3
+ Version: 0.1.0
4
+ Summary: Adaptive Compute Runtime
5
+ Requires-Python: >=3.10
6
+ Description-Content-Type: text/markdown
7
+ Requires-Dist: psutil>=5.9.0
8
+ Requires-Dist: cryptography>=41.0.0
9
+ Requires-Dist: PyYAML>=6.0.1
10
+ Requires-Dist: aiohttp>=3.9.0
11
+ Requires-Dist: qrcode>=7.4
12
+ Requires-Dist: pillow>=10.0.0
13
+ Requires-Dist: python-dotenv>=1.0.0
14
+ Requires-Dist: rich>=13.0.0
15
+ Provides-Extra: macos
16
+ Provides-Extra: windows
17
+ Provides-Extra: linux
18
+ Provides-Extra: dev
19
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
20
+ Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
21
+ Requires-Dist: mypy>=1.0.0; extra == "dev"
22
+ Requires-Dist: ruff>=0.0.260; extra == "dev"
23
+
24
+ # Adaptive Compute Runtime (ACR)
25
+
26
+ ACR is an **OS-independent**, **Network-provider-independent**, and **Scheduler-independent** Python library for intelligent, decentralized, and adaptive workload scheduling across heterogeneous machines.
27
+
28
+ The core principle of ACR is to completely decouple the adaptive scheduling algorithms from static network constraints.
29
+
30
+ ---
31
+
32
+ ## 1. Architecture
33
+
34
+ ACR is composed of a generic hierarchy that remains portable across macOS, Windows, and Linux.
35
+
36
+ * **Root**: The orchestrator role. The Root aggregates telemetry (NodeKnowledge), maintains the network route registry, and uses Schedulers to dispatch ExecutionPlans.
37
+ * **Node**: The worker role. The Node discovers its local capabilities, continually monitors its telemetry, and securely connects to the Root to advertise its service endpoint.
38
+ * **Endpoint Model**: ACR strictly distinguishes between the **Observed** IP/port (what the Root sees natively from the socket connection) and the **Advertised** IP/port (what the Node declares as its reachable listener). ACR always **Validates** the advertised endpoint over TCP before updating the internal Route table.
39
+ * **Authentication & Handshake**: Nodes register using an application-level handshake payload over a persistent TCP session that transmits the cluster ID, session ID, and endpoint topology.
40
+ * **Telemetry**: Node-native psutil monitors dynamically measure CPU and RAM degradation over time.
41
+ * **Scheduler**: Schedulers (RoundRobin, LeastLoaded, ResourceAware, HeterogeneityAware, Adaptive) perform workload allocation using real-time NodeSnapshot data without hardcoded hardware assumptions.
42
+
43
+ ---
44
+
45
+ ## 2. Platform Support & Validation Status
46
+
47
+ **Root and Node are portable roles, not hardware-locked classes.** ACR guarantees identical algorithmic behavior across operating systems. However, validation evidence is tracked strictly:
48
+
49
+ * **macOS (Root / Node):**
50
+ * Architecture/Implementation: **PASS**
51
+ * Automated Deterministic Testing: **PASS**
52
+ * Physical TCP Runtime Execution: **PASS**
53
+ * **Windows / Linux (Root / Node):**
54
+ * Architecture/Implementation: **PASS**
55
+ * Automated Deterministic Testing: **PASS**
56
+ * Physical TCP Runtime Execution: **NOT RUN / DEFERRED** (pending available physical peers)
57
+
58
+ ---
59
+
60
+ ## 3. Running ACR
61
+
62
+ ACR listener ports are **dynamically assigned by the OS** by default. You do not need to choose or remember a port number.
63
+
64
+ ### Running as Root
65
+
66
+ ```bash
67
+ python3 -m acr.entrypoint --role root
68
+ ```
69
+
70
+ The Root selects an available port at runtime, binds its listener, tests TCP reachability to itself, and publishes its actual endpoint over the discovery locator.
71
+
72
+ ### Running as Node
73
+
74
+ The Node dynamically selects its own service port, searches for the Root via discovery, probes it via TCP, and connects automatically:
75
+
76
+ ```bash
77
+ # macOS / Linux:
78
+ python3 -m acr.entrypoint --role node
79
+
80
+ # Windows:
81
+ python -m acr.entrypoint --role node
82
+ ```
83
+
84
+ ### The Automatic Flow
85
+
86
+ 1. Root starts, binds to port `0` (dynamic OS assignment).
87
+ 2. Root retrieves its Tailscale identity and discovers its assigned port.
88
+ 3. Root tests if it can reach itself via TCP.
89
+ 4. Root publishes a discovery record on its locator.
90
+ 5. Node starts, asks Tailscale for peers.
91
+ 6. Node scans peers for the Root locator.
92
+ 7. Node extracts Root's dynamic endpoint and runs a TCP reachability probe.
93
+ 8. If TCP passes, Node handshakes with Root and advertises its own dynamic endpoint.
94
+ 9. Root validates Node's advertised endpoint via TCP probe.
95
+ 10. Route is established using the validated endpoints.
96
+
97
+ ### Failure Diagnostics
98
+
99
+ The runtime actively distinguishes failure modes:
100
+ - **Discovery Failure**: `[ACR NODE] discovery=FAIL`. Node cannot find Root. Ensure Root is running and Tailscale peers are online.
101
+ - **TCP Failure / Firewall Failure**: `[ACR TCP CHECK] result=FAIL`. Discovery worked but connection failed. Windows or macOS Firewall may be blocking the dynamic port. Read the actual port from the log and allow it.
102
+ - **Handshake Failure**: `[ACR NODE] handshake=FAIL`. TCP connected, but protocol failed (e.g. cluster ID mismatch).
103
+ - **Authentication/Session Failure**: Protocol mismatched or node identity blocked.
104
+ - **Endpoint Validation Failure**: Root connected to Node, but Root's return TCP probe to Node failed. Route will remain `is_routable = False`. Node must allow inbound on its actual port.
105
+
106
+ ---
107
+
108
+ ## 4. The Endpoint Model
109
+
110
+ In complex mesh deployments (like Tailscale, NATs, or Docker), the network socket alone is insufficient for tracking reliable reverse routes.
111
+
112
+ ACR utilizes a strict triplet of endpoint values to ensure node health:
113
+ 1. **Observed**: `<incoming-ip>:<ephemeral-port>` - The raw socket origin the Root sees.
114
+ 2. **Advertised**: `<mesh-ip>:<service-port>` - The Node tells the Root to reach it at this specific binding.
115
+ 3. **Validated**: `<mesh-ip>:<service-port>` - The Root actively performs a TCP ping against the Advertised endpoint before approving it as a registered route.
116
+
117
+ If a Node's advertised endpoint fails validation, the Root **must not** silently assume the route is valid, nor can it permanently trust the ephemeral observed port.
118
+
119
+ ---
120
+
121
+ ## 5. Physical Runtime Validation
122
+
123
+ Current physical execution validation (Phase 3-9) focuses purely on **macOS Root ↔ macOS Node** over standard TCP.
124
+
125
+ *Historical Context:* During Phase 6 exploratory testing, ACR used Tailscale purely as the **external networking environment**. Tailscale is NOT an ACR dependency. ACR core knows nothing about Tailscale binaries or hardcoded IPs. End-to-end Tailscale benchmarking across distributed networks is currently DEFERRED pending peer availability.
126
+
127
+ ---
128
+
129
+ ## 6. Windows Troubleshooting
130
+
131
+ If you are running the Node on Windows and encountering connectivity issues, use this layered diagnostic sequence. Do NOT assume ACR is broken if ICMP fails.
132
+
133
+ 1. **Tailscale Status**: Run `tailscale status` and verify the peer is online.
134
+ 2. **ICMP Ping**: Run `ping <peer-ip>`. **Note**: Windows Firewall often blocks inbound ICMP by default. *An ICMP failure does not mean the application is unreachable.*
135
+ 3. **Check Node startup log**: ACR prints the dynamically assigned port:
136
+ ```
137
+ [ACR NODE]
138
+ actual_port=<RUNTIME_PORT>
139
+ advertised_endpoint=<WINDOWS_TAILSCALE_IP>:<RUNTIME_PORT>
140
+ ```
141
+ 4. **TCP Port Check**: Use the actual runtime port from the log:
142
+ ```powershell
143
+ Test-NetConnection -ComputerName <ROOT_IP> -Port <ROOT_ACTUAL_PORT>
144
+ ```
145
+ 5. **Listener Check**: Verify ACR bound using:
146
+ ```
147
+ netstat -an | findstr <RUNTIME_PORT>
148
+ ```
149
+ The listener must appear on `0.0.0.0:<RUNTIME_PORT>` or `<LOCAL_IP>:<RUNTIME_PORT>`. The *advertised* address must be the Tailscale IP, not `0.0.0.0`.
150
+ 6. **Windows Firewall (inbound)**: If TCP is blocked but the listener is up, add a narrowly scoped rule for the **actual runtime port**:
151
+ ```powershell
152
+ # Replace <RUNTIME_PORT> with the actual port printed in the Node startup log.
153
+ New-NetFirewallRule -DisplayName "ACR Node <RUNTIME_PORT>" `
154
+ -Direction Inbound -LocalPort <RUNTIME_PORT> -Protocol TCP -Action Allow
155
+ ```
156
+ Remove this rule after the experiment.
157
+ 7. **ACR Handshake**: If TCP connects but the handshake fails, check that the `--cluster-id` matches on both sides.
158
+
159
+ ---
160
+
161
+ ## 7. Automated Tests
162
+
163
+ To ensure the library remains stable across platform adaptations, ensure all unit and integration tests pass:
164
+ ```bash
165
+ pytest tests/
166
+ ```
vayrm-0.1.0/README.md ADDED
@@ -0,0 +1,143 @@
1
+ # Adaptive Compute Runtime (ACR)
2
+
3
+ ACR is an **OS-independent**, **Network-provider-independent**, and **Scheduler-independent** Python library for intelligent, decentralized, and adaptive workload scheduling across heterogeneous machines.
4
+
5
+ The core principle of ACR is to completely decouple the adaptive scheduling algorithms from static network constraints.
6
+
7
+ ---
8
+
9
+ ## 1. Architecture
10
+
11
+ ACR is composed of a generic hierarchy that remains portable across macOS, Windows, and Linux.
12
+
13
+ * **Root**: The orchestrator role. The Root aggregates telemetry (NodeKnowledge), maintains the network route registry, and uses Schedulers to dispatch ExecutionPlans.
14
+ * **Node**: The worker role. The Node discovers its local capabilities, continually monitors its telemetry, and securely connects to the Root to advertise its service endpoint.
15
+ * **Endpoint Model**: ACR strictly distinguishes between the **Observed** IP/port (what the Root sees natively from the socket connection) and the **Advertised** IP/port (what the Node declares as its reachable listener). ACR always **Validates** the advertised endpoint over TCP before updating the internal Route table.
16
+ * **Authentication & Handshake**: Nodes register using an application-level handshake payload over a persistent TCP session that transmits the cluster ID, session ID, and endpoint topology.
17
+ * **Telemetry**: Node-native psutil monitors dynamically measure CPU and RAM degradation over time.
18
+ * **Scheduler**: Schedulers (RoundRobin, LeastLoaded, ResourceAware, HeterogeneityAware, Adaptive) perform workload allocation using real-time NodeSnapshot data without hardcoded hardware assumptions.
19
+
20
+ ---
21
+
22
+ ## 2. Platform Support & Validation Status
23
+
24
+ **Root and Node are portable roles, not hardware-locked classes.** ACR guarantees identical algorithmic behavior across operating systems. However, validation evidence is tracked strictly:
25
+
26
+ * **macOS (Root / Node):**
27
+ * Architecture/Implementation: **PASS**
28
+ * Automated Deterministic Testing: **PASS**
29
+ * Physical TCP Runtime Execution: **PASS**
30
+ * **Windows / Linux (Root / Node):**
31
+ * Architecture/Implementation: **PASS**
32
+ * Automated Deterministic Testing: **PASS**
33
+ * Physical TCP Runtime Execution: **NOT RUN / DEFERRED** (pending available physical peers)
34
+
35
+ ---
36
+
37
+ ## 3. Running ACR
38
+
39
+ ACR listener ports are **dynamically assigned by the OS** by default. You do not need to choose or remember a port number.
40
+
41
+ ### Running as Root
42
+
43
+ ```bash
44
+ python3 -m acr.entrypoint --role root
45
+ ```
46
+
47
+ The Root selects an available port at runtime, binds its listener, tests TCP reachability to itself, and publishes its actual endpoint over the discovery locator.
48
+
49
+ ### Running as Node
50
+
51
+ The Node dynamically selects its own service port, searches for the Root via discovery, probes it via TCP, and connects automatically:
52
+
53
+ ```bash
54
+ # macOS / Linux:
55
+ python3 -m acr.entrypoint --role node
56
+
57
+ # Windows:
58
+ python -m acr.entrypoint --role node
59
+ ```
60
+
61
+ ### The Automatic Flow
62
+
63
+ 1. Root starts, binds to port `0` (dynamic OS assignment).
64
+ 2. Root retrieves its Tailscale identity and discovers its assigned port.
65
+ 3. Root tests if it can reach itself via TCP.
66
+ 4. Root publishes a discovery record on its locator.
67
+ 5. Node starts, asks Tailscale for peers.
68
+ 6. Node scans peers for the Root locator.
69
+ 7. Node extracts Root's dynamic endpoint and runs a TCP reachability probe.
70
+ 8. If TCP passes, Node handshakes with Root and advertises its own dynamic endpoint.
71
+ 9. Root validates Node's advertised endpoint via TCP probe.
72
+ 10. Route is established using the validated endpoints.
73
+
74
+ ### Failure Diagnostics
75
+
76
+ The runtime actively distinguishes failure modes:
77
+ - **Discovery Failure**: `[ACR NODE] discovery=FAIL`. Node cannot find Root. Ensure Root is running and Tailscale peers are online.
78
+ - **TCP Failure / Firewall Failure**: `[ACR TCP CHECK] result=FAIL`. Discovery worked but connection failed. Windows or macOS Firewall may be blocking the dynamic port. Read the actual port from the log and allow it.
79
+ - **Handshake Failure**: `[ACR NODE] handshake=FAIL`. TCP connected, but protocol failed (e.g. cluster ID mismatch).
80
+ - **Authentication/Session Failure**: Protocol mismatched or node identity blocked.
81
+ - **Endpoint Validation Failure**: Root connected to Node, but Root's return TCP probe to Node failed. Route will remain `is_routable = False`. Node must allow inbound on its actual port.
82
+
83
+ ---
84
+
85
+ ## 4. The Endpoint Model
86
+
87
+ In complex mesh deployments (like Tailscale, NATs, or Docker), the network socket alone is insufficient for tracking reliable reverse routes.
88
+
89
+ ACR utilizes a strict triplet of endpoint values to ensure node health:
90
+ 1. **Observed**: `<incoming-ip>:<ephemeral-port>` - The raw socket origin the Root sees.
91
+ 2. **Advertised**: `<mesh-ip>:<service-port>` - The Node tells the Root to reach it at this specific binding.
92
+ 3. **Validated**: `<mesh-ip>:<service-port>` - The Root actively performs a TCP ping against the Advertised endpoint before approving it as a registered route.
93
+
94
+ If a Node's advertised endpoint fails validation, the Root **must not** silently assume the route is valid, nor can it permanently trust the ephemeral observed port.
95
+
96
+ ---
97
+
98
+ ## 5. Physical Runtime Validation
99
+
100
+ Current physical execution validation (Phase 3-9) focuses purely on **macOS Root ↔ macOS Node** over standard TCP.
101
+
102
+ *Historical Context:* During Phase 6 exploratory testing, ACR used Tailscale purely as the **external networking environment**. Tailscale is NOT an ACR dependency. ACR core knows nothing about Tailscale binaries or hardcoded IPs. End-to-end Tailscale benchmarking across distributed networks is currently DEFERRED pending peer availability.
103
+
104
+ ---
105
+
106
+ ## 6. Windows Troubleshooting
107
+
108
+ If you are running the Node on Windows and encountering connectivity issues, use this layered diagnostic sequence. Do NOT assume ACR is broken if ICMP fails.
109
+
110
+ 1. **Tailscale Status**: Run `tailscale status` and verify the peer is online.
111
+ 2. **ICMP Ping**: Run `ping <peer-ip>`. **Note**: Windows Firewall often blocks inbound ICMP by default. *An ICMP failure does not mean the application is unreachable.*
112
+ 3. **Check Node startup log**: ACR prints the dynamically assigned port:
113
+ ```
114
+ [ACR NODE]
115
+ actual_port=<RUNTIME_PORT>
116
+ advertised_endpoint=<WINDOWS_TAILSCALE_IP>:<RUNTIME_PORT>
117
+ ```
118
+ 4. **TCP Port Check**: Use the actual runtime port from the log:
119
+ ```powershell
120
+ Test-NetConnection -ComputerName <ROOT_IP> -Port <ROOT_ACTUAL_PORT>
121
+ ```
122
+ 5. **Listener Check**: Verify ACR bound using:
123
+ ```
124
+ netstat -an | findstr <RUNTIME_PORT>
125
+ ```
126
+ The listener must appear on `0.0.0.0:<RUNTIME_PORT>` or `<LOCAL_IP>:<RUNTIME_PORT>`. The *advertised* address must be the Tailscale IP, not `0.0.0.0`.
127
+ 6. **Windows Firewall (inbound)**: If TCP is blocked but the listener is up, add a narrowly scoped rule for the **actual runtime port**:
128
+ ```powershell
129
+ # Replace <RUNTIME_PORT> with the actual port printed in the Node startup log.
130
+ New-NetFirewallRule -DisplayName "ACR Node <RUNTIME_PORT>" `
131
+ -Direction Inbound -LocalPort <RUNTIME_PORT> -Protocol TCP -Action Allow
132
+ ```
133
+ Remove this rule after the experiment.
134
+ 7. **ACR Handshake**: If TCP connects but the handshake fails, check that the `--cluster-id` matches on both sides.
135
+
136
+ ---
137
+
138
+ ## 7. Automated Tests
139
+
140
+ To ensure the library remains stable across platform adaptations, ensure all unit and integration tests pass:
141
+ ```bash
142
+ pytest tests/
143
+ ```
@@ -0,0 +1,29 @@
1
+ """
2
+ Adaptive Computing Resource (ACR)
3
+ =================================
4
+
5
+ ACR is a platform-agnostic, distributed computing runtime for heterogeneous clusters.
6
+ It provides node intelligence, cluster knowledge exchange, adaptive scheduling,
7
+ and closed-loop execution feedback.
8
+ """
9
+
10
+ from acr.facade import ACRNode, ACRRoot
11
+ from acr.workloads import Workload
12
+ from acr.schedulers.adaptive import AdaptiveScheduler
13
+ from acr.schedulers.decision import SchedulingDecision
14
+ from acr.execution.manager import ExecutionManager
15
+ from acr.execution.models import ExecutionAttempt
16
+ from acr.communication.protocol import ExecutionObservationMessage as ExecutionObservation
17
+ from acr.resources.snapshot import NodeSnapshot
18
+
19
+ __all__ = [
20
+ "ACRNode",
21
+ "ACRRoot",
22
+ "Workload",
23
+ "AdaptiveScheduler",
24
+ "SchedulingDecision",
25
+ "ExecutionManager",
26
+ "ExecutionAttempt",
27
+ "ExecutionObservation",
28
+ "NodeSnapshot",
29
+ ]
File without changes
@@ -0,0 +1,87 @@
1
+ from dataclasses import dataclass
2
+ from typing import Dict, List, Optional
3
+ from acr.node.knowledge import NodeKnowledge
4
+
5
+ @dataclass
6
+ class WorkerRecord:
7
+ worker_key: str
8
+ endpoint: Optional[Dict]
9
+ paladin_node_id: str
10
+ session_id: Optional[str]
11
+ connection: str
12
+ connection_status: str
13
+ telemetry: Optional[dict]
14
+ knowledge: Optional[NodeKnowledge]
15
+
16
+ class RootDashboardAPI:
17
+ """
18
+ API for retrieving WorkerRecords for the dashboard.
19
+ """
20
+ def __init__(self, root_brain, control_plane):
21
+ self._brain = root_brain
22
+ self._cp = control_plane
23
+
24
+ def get_workers(self) -> List[WorkerRecord]:
25
+ workers = []
26
+ all_k = self._brain.all_node_knowledge()
27
+ tracker = getattr(self._cp, "telemetry_tracker", None)
28
+
29
+ # We also want to include nodes that the tracker knows about but have no knowledge yet
30
+ worker_keys = set(all_k.keys())
31
+ if tracker:
32
+ worker_keys.update(rec.node_id for rec in tracker.all_records())
33
+
34
+ for worker_key in worker_keys:
35
+ # worker_key is usually "{paladin_node_id}_{session_id}"
36
+ if "_" in worker_key:
37
+ paladin_node_id, session_id = worker_key.split("_", 1)
38
+ else:
39
+ paladin_node_id, session_id = worker_key, None
40
+
41
+ k = all_k.get(worker_key)
42
+ ep = None
43
+ conn_status = "UNKNOWN"
44
+ tel = None
45
+
46
+ if tracker:
47
+ rec = tracker.get_record(worker_key)
48
+ if rec:
49
+ tel = rec.__dict__
50
+ if rec.current_mesh_ip:
51
+ ep = {
52
+ "mesh_ip": rec.current_mesh_ip,
53
+ "service_port": rec.current_service_port
54
+ }
55
+ conn_status = rec.connection_status
56
+
57
+ if not ep and hasattr(self._cp, "get_node_endpoint"):
58
+ # fallback to paladin directly if tracker missed it
59
+ ep_data = self._cp.get_node_endpoint(paladin_node_id)
60
+ if ep_data:
61
+ ep = {
62
+ "mesh_ip": ep_data.get("mesh_ip"),
63
+ "service_port": ep_data.get("service_port")
64
+ }
65
+ if conn_status == "UNKNOWN":
66
+ conn_status = ep_data.get("connection_status", "UNKNOWN")
67
+
68
+ workers.append(WorkerRecord(
69
+ worker_key=worker_key,
70
+ endpoint=ep,
71
+ paladin_node_id=paladin_node_id,
72
+ session_id=session_id,
73
+ connection="PALADIN",
74
+ connection_status=conn_status,
75
+ telemetry=tel,
76
+ knowledge=k
77
+ ))
78
+
79
+ # Sort so order is stable
80
+ workers.sort(key=lambda w: w.worker_key)
81
+ return workers
82
+
83
+ def get_worker(self, worker_key: str) -> Optional[WorkerRecord]:
84
+ for w in self.get_workers():
85
+ if w.worker_key == worker_key:
86
+ return w
87
+ return None
@@ -0,0 +1,70 @@
1
+ """
2
+ acr/api/server.py
3
+ FastAPI server exposing real-time state of the NodeBrain and WorkloadBrain.
4
+ """
5
+ from fastapi import FastAPI, HTTPException
6
+ import uuid
7
+ import threading
8
+
9
+ from acr.runtime.node_brain import NodeBrain
10
+ from acr.runtime.workload_brain import WorkloadBrain
11
+ from acr.runtime.monitoring import RuntimeMonitor
12
+ from acr.workloads.pytorch.adapter import PyTorchWorkloadAdapter
13
+ from acr.workloads.pytorch.checkpoint import PyTorchCheckpointer
14
+ from acr.workloads.pytorch.runtime import run_training
15
+
16
+ app = FastAPI(title="ACR Live Runtime API", version="1.0.0")
17
+
18
+ # Global instances for the runtime
19
+ run_id = str(uuid.uuid4())
20
+ node_brain = NodeBrain(node_id="macos_node_1")
21
+ workload_brain = WorkloadBrain(workload_id="pytorch_resnet_1")
22
+ monitor = RuntimeMonitor(node_brain, workload_brain, run_id=run_id, interval_s=1.0)
23
+ adapter = PyTorchWorkloadAdapter(workload_brain)
24
+ checkpointer = PyTorchCheckpointer(f"checkpoints/{run_id}")
25
+
26
+ training_thread = None
27
+
28
+ @app.on_event("startup")
29
+ def startup_event():
30
+ print("Starting Continuous Node Monitor...")
31
+ monitor.start()
32
+
33
+ @app.on_event("shutdown")
34
+ def shutdown_event():
35
+ print("Stopping runtime...")
36
+ monitor.stop()
37
+ adapter.stop()
38
+ if training_thread:
39
+ training_thread.join(timeout=2.0)
40
+
41
+ @app.get("/api/v1/node")
42
+ def get_node_state():
43
+ """Returns the current state and trends of the physical node."""
44
+ return node_brain.get_state_summary()
45
+
46
+ @app.get("/api/v1/workload")
47
+ def get_workload_state():
48
+ """Returns the current state and metrics of the running workload."""
49
+ return workload_brain.get_state_summary()
50
+
51
+ @app.post("/api/v1/workload/start")
52
+ def start_workload(device: str = "cpu", batch_size: int = 64):
53
+ """Start the real PyTorch workload in a background thread."""
54
+ global training_thread
55
+ if training_thread and training_thread.is_alive():
56
+ raise HTTPException(status_code=400, detail="Workload is already running")
57
+
58
+ training_thread = threading.Thread(
59
+ target=run_training,
60
+ args=(adapter, checkpointer, device, batch_size),
61
+ daemon=True
62
+ )
63
+ training_thread.start()
64
+ return {"status": "started", "device": device, "batch_size": batch_size}
65
+
66
+ @app.post("/api/v1/workload/stop")
67
+ def stop_workload():
68
+ """Stop the running PyTorch workload."""
69
+ adapter.running = False
70
+ return {"status": "stopping"}
@@ -0,0 +1,20 @@
1
+ """
2
+ acr/cache/__init__.py
3
+
4
+ Local state cache management for ACR nodes.
5
+ """
6
+ from acr.cache.policy import (
7
+ CacheEntry, EvictionPolicy, AdmissionPolicy,
8
+ LRUEvictionPolicy, LFUEvictionPolicy, SizeAwareEvictionPolicy,
9
+ AlwaysAdmitPolicy, SizeThresholdPolicy,
10
+ )
11
+ from acr.cache.manager import (
12
+ CacheTier, CacheEventType, CacheEvent, CacheStats, CacheManager,
13
+ )
14
+
15
+ __all__ = [
16
+ "CacheEntry", "EvictionPolicy", "AdmissionPolicy",
17
+ "LRUEvictionPolicy", "LFUEvictionPolicy", "SizeAwareEvictionPolicy",
18
+ "AlwaysAdmitPolicy", "SizeThresholdPolicy",
19
+ "CacheTier", "CacheEventType", "CacheEvent", "CacheStats", "CacheManager",
20
+ ]