Skip to content

Proposal 0015: bb_lua#18

Open
jimsynz wants to merge 1 commit into
mainfrom
proposal/0015-bb-lua
Open

Proposal 0015: bb_lua#18
jimsynz wants to merge 1 commit into
mainfrom
proposal/0015-bb-lua

Conversation

@jimsynz
Copy link
Copy Markdown
Contributor

@jimsynz jimsynz commented May 22, 2026

Summary

Adds proposal 0015 — bb_lua, a sandboxed Lua scripting layer for Beam Bots robots, mirroring ash_lua's thin-layer-over-{:lua, "~> 0.3"} design.

Key shape:

  • BB.Lua.Robot Spark extension with a lua do … end block (expose_commands, expose_topics, expose_parameters) — explicit opt-in surface
  • Go-style (result, err) return shape with a closed error code set aligned to BB.Command.await/2
  • Host-supplied safety/identity context that is not readable from Lua; scripts cannot arm/disarm
  • BB.Lua.PubSubBridge for bb.on(name, fn) event subscriptions, with per-topic throttling for high-frequency topics (joint state at 100 Hz)
  • Marshalling table for Vec3 / Quaternion / Transform / Localize.Unit / BB.Message
  • BB.Lua.Docs markdown surface (mirrors AshLua.Docs) for bb_mcp / bb_kino consumers

Closes #16.

Test plan

  • Review the proposal against ash_lua v0.1.1 to confirm the conventions line up where it matters (Go-style returns, host-supplied context, manifest-driven docs)
  • Confirm the error taxonomy matches BB.Command.await/2, BB.Jido.Action.Command, and the sibling bb_python proposal
  • Decide on the open questions (VM pooling, argument-type fidelity, async command form, cancellation, hot config reload, expose_commands :all)
  • Move to implemented/ once bb_lua ships

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Research and create proposal for integrating BB with Lua

1 participant