Implement bounded Recursive Language Model completion runtime (#9) #28
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nsaspy/prolog-rlm!28
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/issue-9-rlm-completion"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #9.
Public runtime
rlm_completion/4,llm_query/3, andrlm_query/4rlmentrypointRoot planner + typed execution
rlm_chain:model_complete/3; deterministic handler injection is test-only and explicit, with no fake-provider fallbackDepth-1 recursion and authority
capabilities_narrow/3and prevalidated against every child operationrlmauthority only if it attempts to recurse againBudgets
Completion-level hard limits cover:
Planner calls consume the same model/token/cost envelope. Planned model generation ceilings are tightened against remaining token budget before execution. Unknown provider usage remains explicitly unknown rather than fabricated.
Cancellation and cleanup
rlm_cancel/1marks the token and signals pending workcall_with_time_limitremain control signals rather than being swallowed as handler errorsTrajectory
Deterministic acceptance
The branch-head deterministic suite is green and covers:
llm_query/3and depth-boundedrlm_query/4REAL OpenRouter acceptance gate
Same-repository PR CI must execute this production path before merge:
real OpenRouter root planner -> opaque external context slice -> registered project_read tool -> exactly one rlm child -> real OpenRouter child model call -> child final -> root finalThe live test also verifies
project_readauthorization/status and the fixture tokenPROLOG_RLM_TOOL_OK, recursion depth/count, child HTTP 200, and total real model-call count.Live evidence is limited to non-secret status fields. Planner JSON, model text/reasoning, API keys, Authorization headers, and environment dumps are not intentionally logged.
Do not merge until deterministic CI and the REAL OpenRouter PR job are both green and the final diff/credential scan is clean.