The LLM call path now runs on the agent-loop crate's clients and trait: - core-api: BuiltLlmClient.client is Arc<dyn agent_loop::model::Model>; chatbot.rs (ChatbotClient + wire types) deleted; APP_NAME re-exported from agent-loop - providers (openai/anthropic/ollama/openrouter/requesty/declared) build OpenAiModel/AnthropicModel/OllamaModel with the model's wire id - LoggingModel decorator (llm/logging.rs) replaces LoggingChatbotClient; per-request correlation (session/stack/user) travels in the new ModelRequest.log field, never sent to providers - llm_call/llm_loop/compactor speak Model::complete + ModelResponse; retriability via Model::is_retriable (structured status, B6 rule now the crate's default); payload persistence reads RawMeta off ModelResponse/ModelError - crates/llm-client and skald-core/src/chatbot deleted Full workspace test suite green (incl. 162 skald-core + 32 agent-loop).
19 lines
686 B
TOML
19 lines
686 B
TOML
[package]
|
|
name = "core-api"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
|
|
[dependencies]
|
|
agent-loop = { path = "../agent-loop" }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
tokio = { version = "1", features = ["sync", "macros"] }
|
|
tokio-util = { version = "0.7" }
|
|
chrono = { version = "0.4", default-features = false, features = ["clock", "std"] }
|
|
async-trait = "0.1"
|
|
anyhow = "1"
|
|
axum = { version = "0.8", default-features = false }
|
|
# SqlitePool exposed to plugins via PluginContext (plugin.md §12.1). Version
|
|
# pinned to match the rest of the workspace.
|
|
sqlx = { version = "0.9.0", features = ["runtime-tokio", "sqlite"] }
|