chore: initial commit (sources + docs, ignore build artifacts and secrets)

This commit is contained in:
toot
2026-09-16 12:24:49 +08:00
commit 8a6c55d94a
124 changed files with 12168 additions and 0 deletions
+67
View File
@@ -0,0 +1,67 @@
import json
from mulit_agent_app.config import AgentConfig
def test_controller_url_requires_secure_scheme(tmp_path):
config = AgentConfig(tmp_path, tmp_path / "settings.json", tmp_path / "agent.sqlite3", tmp_path / "agent.log")
try:
config.save_controller_url("http://127.0.0.1:8443")
except ValueError:
pass
else:
raise AssertionError("An insecure controller URL must be rejected.")
def test_portable_config_is_loaded_and_updated(monkeypatch, tmp_path):
config_dir = tmp_path / "config"
config_dir.mkdir()
config_path = config_dir / "agent-config.json"
config_path.write_text(
json.dumps({"controller_url": "wss://10.0.0.8:8443", "agent_name": "build-agent"}),
encoding="utf-8",
)
monkeypatch.setenv("MULTI_AGENT_CONFIG_DIR", str(config_dir))
config = AgentConfig.load()
config.save_controller_url("wss://10.0.0.9:8443")
assert config.controller_url == "wss://10.0.0.8:8443"
assert json.loads(config_path.read_text(encoding="utf-8"))["controller_url"] == "wss://10.0.0.9:8443"
def test_agent_name_is_saved_in_portable_config(tmp_path):
config_path = tmp_path / "agent-config.json"
config = AgentConfig(tmp_path, config_path, tmp_path / "agent.sqlite3", tmp_path / "agent.log")
assert config.save_agent_name(" 设计部 Agent ") == "设计部 Agent"
assert json.loads(config_path.read_text(encoding="utf-8"))["agent_name"] == "设计部 Agent"
def test_persistent_settings_are_mirrored_to_the_portable_config(tmp_path):
persistent_path = tmp_path / "app-data" / "agent-settings.json"
portable_path = tmp_path / "release" / "config" / "agent-config.json"
config = AgentConfig(
tmp_path / "app-data",
persistent_path,
tmp_path / "app-data" / "agent.sqlite3",
tmp_path / "app-data" / "agent.log",
mirror_settings_path=portable_path,
)
config.save_agent_name("长期保存的 Agent")
reloaded = AgentConfig(
tmp_path / "app-data",
persistent_path,
tmp_path / "app-data" / "agent.sqlite3",
tmp_path / "app-data" / "agent.log",
agent_name="长期保存的 Agent",
mirror_settings_path=portable_path,
)
reloaded.save_controller_url("wss://10.0.0.9:8443")
expected = {"agent_name": "长期保存的 Agent", "controller_url": "wss://10.0.0.9:8443"}
for path in (persistent_path, portable_path):
saved = json.loads(path.read_text(encoding="utf-8"))
assert {key: saved[key] for key in expected} == expected