[Grid agent] Generate, validate, inventory, and deliver LSL scripts safely #129
Reference in New Issue
Block a user
Delete Branch "%!s()"
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?
Objective
Implement the explicit exception that lets any resident request an LSL script in public chat or IM: generate a bounded script, validate it, create it in the agent's inventory, and give a full-permission copy to that same requesting avatar without treating the request as general command authority.
Workflow
libremetaverse-lsl-toolslexer/parser. Reject malformed, oversized, unsupported, secret-bearing, or policy-disallowed output with a useful chat response. Static checks are not a promise of runtime safety.Acceptance criteria
Dependencies
Depends on messaging, sessions, LLM loop, policy, lifecycle, observability, and inventory readiness. Scripted object construction is handled separately and is authorized-only.
Implemented and pushed in
a749111.The public/IM LSL workflow now uses a strict name/description/source schema, binds delivery exclusively to the authenticated sender UUID, validates bounded untrusted source with native MetaCrate LSL tooling plus public-policy checks, creates full-permission LSL inventory items in a dedicated MetaCrate Generated Scripts recovery folder, performs a single recipient offer, and retains ambiguous transfers without blind retry. Per-resident/global rate limits, outstanding-operation bounds, cancellation, safe outcomes, and live-grid wiring are included. The workflow never accepts a destination/folder argument and never rezzes, attaches, runs, or injects generated code.
Per the milestone namespace rule, the native LSL crate is now metacrate-lsl-tools, a generic metacrate facade owns MetaCrate APIs, and an executable dependency-policy test prevents any libremetaverse compatibility crate/facade from depending on or re-exporting metacrate crates.
Verified: full metacrate-grid-agent suite (111 unit tests plus integration/doc tests); focused script delivery tests; LLM transport timeout/duplicate tests; session reconnect/no-replay tests; live-grid all-target check; strict Clippy; metacrate facade check; Rustdoc; all metacrate-lsl-tools lexer/parser/generator fixtures; legacy extension compatibility tests; issue-82/83 parser/generator audits; consolidated CI audit. Generated source and conversation content are absent from default diagnostics.