Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 80 additions & 5 deletions backend/Manifest.toml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# This file is machine-generated - editing it directly is not advised

julia_version = "1.11.4"
julia_version = "1.11.5"
manifest_format = "2.0"
project_hash = "0db7880fbd4546921607752894b504bef3ed2e59"
project_hash = "1815c987b48f906b5fa93839578ef5a15ffb6bb8"

[[deps.ArgTools]]
uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f"
Expand Down Expand Up @@ -32,20 +32,28 @@ deps = ["TOML", "UUIDs"]
git-tree-sha1 = "8ae8d32e09f0dcf42a36b90d4e17f5dd2e4c4215"
uuid = "34da2185-b29b-5c13-b0c7-acf172513d20"
version = "4.16.0"
weakdeps = ["Dates", "LinearAlgebra"]

[deps.Compat.extensions]
CompatLinearAlgebraExt = "LinearAlgebra"

[deps.Compat.weakdeps]
Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
[[deps.CompilerSupportLibraries_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae"
version = "1.1.1+0"

[[deps.ConcurrentUtilities]]
deps = ["Serialization", "Sockets"]
git-tree-sha1 = "d9d26935a0bcffc87d2613ce14c527c99fc543fd"
uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb"
version = "2.5.0"

[[deps.DataStructures]]
deps = ["Compat", "InteractiveUtils", "OrderedCollections"]
git-tree-sha1 = "4e1fe97fdaed23e9dc21d4d664bea76b65fc50a0"
uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
version = "0.18.22"

[[deps.Dates]]
deps = ["Printf"]
uuid = "ade2ca70-3891-5945-98fb-dc099432e06a"
Expand Down Expand Up @@ -145,6 +153,11 @@ version = "1.11.0+1"
uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
version = "1.11.0"

[[deps.LinearAlgebra]]
deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"]
uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
version = "1.11.0"

[[deps.Logging]]
uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"
version = "1.11.0"
Expand Down Expand Up @@ -200,6 +213,11 @@ git-tree-sha1 = "cf7c2bf104f484f7c9b394c8d32f76d994604ba4"
uuid = "d5e62ea6-ddf3-4d43-8e4c-ad5e6c8bfd7d"
version = "0.2.0"

[[deps.OpenBLAS_jll]]
deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"]
uuid = "4536629a-c528-5b80-bd46-f80d51c5b363"
version = "0.3.27+1"

[[deps.OpenSSL]]
deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"]
git-tree-sha1 = "f1a7e086c677df53e064e0fdd2c9d0b0833e3f6e"
Expand All @@ -212,6 +230,35 @@ git-tree-sha1 = "9216a80ff3682833ac4b733caa8c00390620ba5d"
uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95"
version = "3.5.0+0"

[[deps.OrderedCollections]]
git-tree-sha1 = "05868e21324cede2207c6f0f466b4bfef6d5e7ee"
uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
version = "1.8.1"

[[deps.Oxygen]]
deps = ["DataStructures", "Dates", "HTTP", "JSON3", "MIMEs", "Reexport", "RelocatableFolders", "Sockets", "Statistics", "StructTypes"]
git-tree-sha1 = "7aab89647a9523dc62ac2cc8e844d097b9c1aa47"
uuid = "df9a0d86-3283-4920-82dc-4555fc0d1d8b"
version = "1.7.2"

[deps.Oxygen.extensions]
BonitoExt = "Bonito"
CairoMakieExt = "CairoMakie"
MustacheExt = "Mustache"
OteraEngineExt = "OteraEngine"
ProtoBufExt = "ProtoBuf"
TimeZonesExt = "TimeZones"
WGLMakieExt = ["WGLMakie", "Bonito"]

[deps.Oxygen.weakdeps]
Bonito = "824d6782-a2ef-11e9-3a09-e5662e0c26f8"
CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0"
Mustache = "ffc61752-8dc7-55ee-8c37-f3e9cdd09e70"
OteraEngine = "b2d7f28f-acd6-4007-8b26-bc27716e5513"
ProtoBuf = "3349acd9-ac6a-5e09-bcdb-63829b23a429"
TimeZones = "f269a46b-ccf7-5d73-abea-4c690281aa53"
WGLMakie = "276b4fcb-3e11-5398-bf8b-a0c2d153d008"

[[deps.Parsers]]
deps = ["Dates", "PrecompileTools", "UUIDs"]
git-tree-sha1 = "7d2f8f21da5db6a806faf7b9b292296da42b2810"
Expand Down Expand Up @@ -240,6 +287,17 @@ deps = ["SHA"]
uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
version = "1.11.0"

[[deps.Reexport]]
git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b"
uuid = "189a3867-3050-52da-a836-e630ba90ab69"
version = "1.2.2"

[[deps.RelocatableFolders]]
deps = ["SHA", "Scratch"]
git-tree-sha1 = "ffdaf70d81cf6ff22c2b6e733c900c3321cab864"
uuid = "05181044-ff0b-4ac5-8273-598c1e38db00"
version = "1.0.1"

[[deps.SHA]]
uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"
version = "0.7.0"
Expand All @@ -263,6 +321,18 @@ version = "1.2.0"
uuid = "6462fe0b-24de-5631-8697-dd941f90decc"
version = "1.11.0"

[[deps.Statistics]]
deps = ["LinearAlgebra"]
git-tree-sha1 = "ae3bb1eb3bba077cd276bc5cfc337cc65c3075c0"
uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
version = "1.11.1"

[deps.Statistics.extensions]
SparseArraysExt = ["SparseArrays"]

[deps.Statistics.weakdeps]
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"

[[deps.StructTypes]]
deps = ["Dates", "UUIDs"]
git-tree-sha1 = "159331b30e94d7b11379037feeb9b690950cace8"
Expand Down Expand Up @@ -321,6 +391,11 @@ deps = ["Libdl"]
uuid = "83775a58-1f1d-513f-b197-d71354ab007a"
version = "1.2.13+1"

[[deps.libblastrampoline_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "8e850b90-86db-534c-a0d3-1478176c7d93"
version = "5.11.0+0"

[[deps.nghttp2_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d"
Expand Down
8 changes: 8 additions & 0 deletions backend/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,11 @@ HTTP = "cd3eb016-35fb-5094-929b-558a96fad6f3"
JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
JSON3 = "0f8b85d8-7281-11e9-16c2-39a750bddbf1"
OpenAPI = "d5e62ea6-ddf3-4d43-8e4c-ad5e6c8bfd7d"
Oxygen = "df9a0d86-3283-4920-82dc-4555fc0d1d8b"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
Reexport = "189a3867-3050-52da-a836-e630ba90ab69"
StructTypes = "856f2bd8-1eba-4b0a-8007-ebc267875bd4"
TOML = "fa267f1f-6049-4f14-aa54-33bafae1ed76"
TimeZones = "f269a46b-ccf7-5d73-abea-4c690281aa53"
URIs = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4"

Expand All @@ -24,6 +28,10 @@ HTTP = "1.9.14"
JSON = "0.21.4"
JSON3 = "1.14.3"
OpenAPI = "0.2.0"
Oxygen = "1.7.2"
Random = "1.11.0"
Reexport = "1.2.2"
StructTypes = "1.11.0"
TOML = "1.0.3"
TimeZones = "1.21.3"
URIs = "1.5.2"
39 changes: 39 additions & 0 deletions backend/config/agents.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# JuliaOS Agents Configuration

# Storage settings
[storage]
path = "db/agents_state.json"
backup_enabled = true
backup_count = 5
auto_persist = true

# Agent settings
[agent]
max_task_history = 100
xp_decay_rate = 0.999
default_sleep_ms = 1000
paused_sleep_ms = 500
auto_restart = false
monitoring_enabled = true
monitor_interval = 30
max_stall_seconds = 300

# Metrics settings
[metrics]
enabled = true
collection_interval = 60
retention_period = 86400 # 24 hours in seconds

# Swarm settings
[swarm]
enabled = true
backend = "memory" # Options: none, memory, redis, nats, zeromq
connection_string = ""
default_topic = "juliaos.swarm"

# LLM settings
[llm]
default_provider = "openai"
default_model = "gpt-4o-mini"
default_temperature = 0.7
default_max_tokens = 1024
75 changes: 75 additions & 0 deletions backend/config/config.example.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# JuliaOS Configuration Example
# Copy this file to config.toml and update with your own values

# API configuration
[api]
host = "0.0.0.0"
port = 8052
log_level = "info"

# Storage configuration
[storage]
local_db_path = "~/.juliaos/juliaos.sqlite"
# Arweave configuration for decentralized storage
arweave_wallet_file = "" # Path to your Arweave wallet JSON file
arweave_gateway = "arweave.net"
arweave_port = 443
arweave_protocol = "https"
arweave_timeout = 20000
arweave_logging = false

# Blockchain configuration
[blockchain]
default_chain = "ethereum"
# Replace these with your own RPC URLs
rpc_urls.ethereum = "https://mainnet.infura.io/v3/YOUR_INFURA_API_KEY" # Get your key at https://infura.io
rpc_urls.polygon = "https://polygon-rpc.com"
rpc_urls.solana = "https://api.mainnet-beta.solana.com"
max_gas_price = 100.0 # Maximum gas price in GWEI
max_slippage = 0.01 # Maximum slippage for swaps (1%)
supported_chains = ["ethereum", "polygon", "solana"]

# Swarm configuration
[swarm]
default_algorithm = "DE" # Differential Evolution
default_population_size = 50
max_iterations = 1000
parallel_evaluation = true

# Security configuration
[security]
rate_limit = 100 # requests per minute
max_request_size = 1048576 # 1MB
enable_authentication = true # Set to true to enable API key authentication
# Add a list of valid API keys. Clients must provide one of these in the X-API-Key header.
# It is strongly recommended to change these default keys and use secure, randomly generated keys.
api_keys = ["your-secure-api-key-1", "your-secure-api-key-2"]

# Bridge configuration
[bridge]
port = 8052
host = "localhost"
bridge_api_url = "http://localhost:3001/api/v1"

# Wormhole bridge configuration
[wormhole]
enabled = true
network = "testnet" # "mainnet" or "testnet"

# Ethereum network configuration for Wormhole
[wormhole.networks.ethereum]
enabled = true
rpcUrl = "https://goerli.infura.io/v3/YOUR_INFURA_API_KEY" # For testnet (Goerli)
# rpcUrl = "https://mainnet.infura.io/v3/YOUR_INFURA_API_KEY" # For mainnet

# Solana network configuration for Wormhole
[wormhole.networks.solana]
enabled = true
rpcUrl = "https://api.devnet.solana.com" # For testnet (Devnet)
# rpcUrl = "https://api.mainnet-beta.solana.com" # For mainnet

# Logging configuration
[logging]
level = "info" # debug, info, warn, error
format = "json"
retention_days = 7
Loading