notices
The notices namespace — 8 functions.
globals/notices/post
notices.post(template: string, params: { [string]: any }?, opts: NoticeOpts?)
Post a notice. template is a fixed sentence used to collapse
repeats; put varying values in params. opts.severity defaults to
"info"; opts.includeLocation attaches the emitting call site.
Parameters
templatestring— Fixed sentence identifying the notice.params{ [string]: any }(optional) — Optional table of named values rendered alongside the template.optsNoticeOpts(optional) — Optional table: severity ("info" | "warn" | "error"), includeLocation (boolean).
notices.post("wave complete", { wave = 3 })
notices.post("save slot corrupted, using defaults", { slot = id }, { severity = "warn" })
modules/notices/README
require("@builtin/modules/api/engine/notices") -- notices (also available as global 'notices')
Post an event record that surfaces to the operating agent on its next tool call. Public Luau surface over the __notices_post Internal FFI global.
Usage: local notices = require("@builtin/modules/api/engine/notices") Also available as global: notices
modules/notices/post
post(template: string, params: { [string]: any }?, opts: NoticeOpts?)
Post a notice. template is a fixed sentence used to collapse
repeats; put varying values in params. opts.severity defaults to
"info"; opts.includeLocation attaches the emitting call site.
Parameters
templatestring— Fixed sentence identifying the notice.params{ [string]: any }?(optional) — Optional table of named values rendered alongside the template.optsNoticeOpts?(optional) — Optional table: severity ("info" | "warn" | "error"), includeLocation (boolean).
notices.post("wave complete", { wave = 3 })
notices.post("save slot corrupted, using defaults", { slot = id }, { severity = "warn" })
tools/notices/drain
notices.drain() -> Drained?
Take every pending notice and return the formatted delivery block — the same text that would otherwise be attached to your next tool result. DRAINING: what this returns is no longer queued, so read it. Returns nil when nothing is pending. For a caller that pulls its own context; if you read notices off your tool results, you do not need this. Overflow content is written to /source/tmp/notices/ and named in the block.
Returns Drained?
tools/notices/list
notices.list() -> NoticesList
Show the currently pending notice keys and the suppressed set. Each pending row carries its key, template, severity, origin, count, and source; each suppressed row carries its key and the number of times it has fired while muted. Use a key from here with suppress.
Returns NoticesList
tools/notices/suppress
notices.suppress(key: string) -> { suppressed: string }
Mute a notice key you have acknowledged. It keeps counting (visible in list) but never renders on a tool call again this session. Available to the operating agent; a loaded world component cannot mute its own notices.
Parameters
keystring
Returns { suppressed: string }
"user:atlas:texture rebuilt"
tools/notices/unsuppress
notices.unsuppress(key: string) -> { unsuppressed: string }
Un-mute a notice key you previously suppressed, so it renders on a tool call again. Available to the operating agent.
Parameters
keystring
Returns { unsuppressed: string }
"user:atlas:texture rebuilt"
typed/builtin//modules/api/engine/notices/notices/post
notices.post(template: string, params: { [string]: any }?, opts: NoticeOpts?)
Post a notice. template is a fixed sentence used to collapse
repeats; put varying values in params. opts.severity defaults to
"info"; opts.includeLocation attaches the emitting call site.
Parameters
templatestring— Fixed sentence identifying the notice.params{ [string]: any }(optional) — Optional table of named values rendered alongside the template.optsNoticeOpts(optional) — Optional table: severity ("info" | "warn" | "error"), includeLocation (boolean).
notices.post("wave complete", { wave = 3 })
notices.post("save slot corrupted, using defaults", { slot = id }, { severity = "warn" })