[P1] Add config-defined AgentProlog tools and tool-pack selection #129

Closed
opened 2026-08-19 16:55:34 +00:00 by lost-rob0t · 1 comment
lost-rob0t commented 2026-08-19 16:55:34 +00:00 (Migrated from github.com)

Parent: #126
Depends on: #127; integrates with #128 and existing rlm_tool_loader, authority, and effect APIs.

Goal

Let trusted AgentProlog config.prolog register Prolog-defined tools as well as select/configure existing tool packs.

Trusted XDG config is executable operator code. A user may define a Prolog predicate and register it through the canonical tool registry with a stable id, schema, capability/effect metadata, and config-generation ownership. Trusted project config may do the same only after #127 project trust is granted.

Untrusted project/model data cannot register executable handlers.

Required semantics

  • reuse the existing tool registry/loader and invocation boundaries;
  • model-facing catalogs expose sanitized metadata/schema, not callable terms;
  • config reload deterministically removes registrations from the previous config generation;
  • tool availability remains separate from capability possession and authority;
  • invocation still passes normal validation, authority, effect accounting, confinement, cancellation and host policy;
  • config may also enable/disable/select existing pack/category/tool ids and provide validated options;
  • project config may narrow/disable inherited configuration safely.

Acceptance

  • XDG config.prolog can define and register a Prolog tool through the normal tool registry.
  • Trusted project config can register project-scoped tools only after project trust.
  • Untrusted project/model data cannot register executable handlers.
  • Registered tools use the normal sanitized catalog/schema path.
  • Registration or selection alone grants no capability and changes no authority tier.
  • Invocation still crosses canonical authority/effect/cancellation boundaries.
  • Reload removes stale config-owned registrations without duplicates.
  • Existing tool packs/categories remain selectable/configurable from user/project config.
Parent: #126 Depends on: #127; integrates with #128 and existing `rlm_tool_loader`, authority, and effect APIs. ## Goal Let trusted AgentProlog `config.prolog` register Prolog-defined tools as well as select/configure existing tool packs. Trusted XDG config is executable operator code. A user may define a Prolog predicate and register it through the canonical tool registry with a stable id, schema, capability/effect metadata, and config-generation ownership. Trusted project config may do the same only after #127 project trust is granted. Untrusted project/model data cannot register executable handlers. ## Required semantics - reuse the existing tool registry/loader and invocation boundaries; - model-facing catalogs expose sanitized metadata/schema, not callable terms; - config reload deterministically removes registrations from the previous config generation; - tool availability remains separate from capability possession and authority; - invocation still passes normal validation, authority, effect accounting, confinement, cancellation and host policy; - config may also enable/disable/select existing pack/category/tool ids and provide validated options; - project config may narrow/disable inherited configuration safely. ## Acceptance - [ ] XDG `config.prolog` can define and register a Prolog tool through the normal tool registry. - [ ] Trusted project config can register project-scoped tools only after project trust. - [ ] Untrusted project/model data cannot register executable handlers. - [ ] Registered tools use the normal sanitized catalog/schema path. - [ ] Registration or selection alone grants no capability and changes no authority tier. - [ ] Invocation still crosses canonical authority/effect/cancellation boundaries. - [ ] Reload removes stale config-owned registrations without duplicates. - [ ] Existing tool packs/categories remain selectable/configurable from user/project config.
Owner

Child of #126; closed with the epic under the restored canonical boundary (#141, 2026-08-31): AgentProlog product configuration/UX belongs to lost-rob0t/agentProlog, and this is not a current prolog-rlm gap blocking a coding agent. Re-file in the product repo if still wanted.

Child of #126; closed with the epic under the restored canonical boundary (#141, 2026-08-31): AgentProlog product configuration/UX belongs to lost-rob0t/agentProlog, and this is not a current prolog-rlm gap blocking a coding agent. Re-file in the product repo if still wanted.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
nsaspy/prolog-rlm#129
No description provided.