4310207738
- README, .gitignore, CLAUDE.md (project conventions) - docs/PHASE0.md — full Phase 0 manifest (locked substrate) - 10 root .lua modules + 4 ffi/ bindings, all stubs raising NotImplemented with module-scoped responsibilities matching the manifest - config.lua wired to current dirac/hossenfelder endpoints (qwen-coder-7b snappy/32k + cloud via OpenRouter through hossenfelder) File names match docs/PHASE0.md §4 exactly. Module bodies fill in across later phases; the tree shape is locked. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
16 lines
545 B
Lua
16 lines
545 B
Lua
-- broker.lua — llama.cpp HTTP client.
|
|
-- Phase 0: blocking POST via libcurl FFI; SSE streaming wired in Phase 1.
|
|
-- See docs/PHASE0.md §6.
|
|
|
|
local M = {}
|
|
|
|
-- Send a /v1/chat/completions request.
|
|
-- model_cfg: entry from config.models (endpoint, model, temperature, [key_env])
|
|
-- messages: list of { role = ..., content = ... } including system prompt
|
|
-- Returns: assistant content string on success, (nil, errmsg) on failure.
|
|
function M.chat(model_cfg, messages)
|
|
error("broker.chat: not implemented (Phase 0 pending)")
|
|
end
|
|
|
|
return M
|