YAML configuration, init without a wizard, and openai-chat-completions
ci / check (push) Successful in 15m52s
ci / check (push) Successful in 15m52s
- /config/agent.yaml and /config/boot.yaml replace the JSON files, read with serde_yaml_ng (also in the agent, inside WASM). - sausage init asks nothing and reads no SAUSAGE_* variables. It writes commented templates with an example for each API, and prints the path to edit. Until the agent is configured, agent.chat names the missing field. allow_no_token: true permits a local model without a key. - The agent speaks openai-chat-completions, the format of OpenRouter, Ollama, and most providers. base_url follows each SDK: with /v1 for the OpenAI shapes, without it for Anthropic. - Checked against the proxy with glm-5.3-flash: the agent wrote, built, and activated a counter plugin in 55 s.
This commit is contained in:
@@ -667,8 +667,8 @@ async fn reserved_world_roots_prevent_startup() {
|
||||
async fn boot_waits_for_readiness_in_order() {
|
||||
let w = TestWorld::new();
|
||||
std::fs::write(
|
||||
w.0.join("config/boot.json"),
|
||||
serde_json::to_vec(&json!([
|
||||
w.0.join("config/boot.yaml"),
|
||||
serde_yaml_ng::to_string(&json!([
|
||||
{"method":"probe.write","params":{"path":"/state/boot","text":"ready"}},
|
||||
{"method":"probe.read","params":{"path":"/state/boot"}}
|
||||
]))
|
||||
@@ -1399,7 +1399,7 @@ async fn failed_boot_services_are_logged_and_boot_continues() {
|
||||
{"method":"probe.write","params":{"path":"/state/continued","text":"yes"}}
|
||||
]);
|
||||
std::fs::write(
|
||||
w.0.join("config/boot.json"),
|
||||
w.0.join("config/boot.yaml"),
|
||||
serde_json::to_vec(&services).unwrap(),
|
||||
)
|
||||
.unwrap();
|
||||
@@ -1423,7 +1423,7 @@ async fn failed_boot_services_are_logged_and_boot_continues() {
|
||||
async fn boot_services_are_detached() {
|
||||
let w = TestWorld::new();
|
||||
std::fs::write(
|
||||
w.0.join("config/boot.json"),
|
||||
w.0.join("config/boot.yaml"),
|
||||
br#"[{"method":"probe.serve","params":{}}]"#,
|
||||
)
|
||||
.unwrap();
|
||||
@@ -1855,7 +1855,7 @@ async fn nested_parent_environment() {
|
||||
async fn service_parent_environment() {
|
||||
let w = TestWorld::new();
|
||||
std::fs::write(
|
||||
w.0.join("config/boot.json"),
|
||||
w.0.join("config/boot.yaml"),
|
||||
br#"[{"method":"probe.forgotten","params":{}}]"#,
|
||||
)
|
||||
.unwrap();
|
||||
@@ -1936,7 +1936,7 @@ async fn detached_processes_need_explicit_termination() {
|
||||
async fn core_exit_sets_executable_status_75() {
|
||||
let w = TestWorld::new();
|
||||
std::fs::write(
|
||||
w.0.join("config/boot.json"),
|
||||
w.0.join("config/boot.yaml"),
|
||||
br#"[{"method":"core.exit","params":{}}]"#,
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
Reference in New Issue
Block a user