Skip to content

Replace the bespoke store Lua object with ordinary tool calls #30

Description

@gregjkal

Summary

Remove the bespoke store Lua object and make store operations ordinary tool calls, so Store is just another entry in the RunConfig ToolCatalog.

Details

Discussed in #cppa-wg21-org on 2026-09-09 and again on 2026-09-10.

  • Today store is a table injected into the Lua VM whose keys call back into the host. The PromptForge Prompting Language document (## Store) describes it as the agent's virtual file system.
  • Proposed shape:
    tool_call("store.write_file", ...)
    with optional pure-Lua sugar if wanted:
    local store = tables:new()
    store.append_file = tool_call("store.append")
  • Guiding rule from Vinnie: if something currently written in Rust can be expressed in Lua using a lower-level primitive, keep the primitive and delete the Rust. tool_call becomes a first-class operation returning a Task-like future (async, awaitable, can fail, returns a result on success).

Rationale

Related

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions