Discord: scoped moderation tool surface for Mara #32

Closed
opened 2026-09-01 01:48:47 +00:00 by lost-rob0t · 1 comment
lost-rob0t commented 2026-09-01 01:48:47 +00:00 (Migrated from github.com)

Expose zara-discord moderation capabilities as service-plugin tools, bound to an expiring message context token. Initial actions: inspect current member, delete current message, warn/reply, timeout current author, kick current author, ban current author. Hard-refuse guild owner, administrators, members with moderation/manage-guild permissions, bot/self targets, expired tokens, cross-message/cross-guild targets, or channels without moderation mode enabled.

Expose zara-discord moderation capabilities as service-plugin tools, bound to an expiring message context token. Initial actions: inspect current member, delete current message, warn/reply, timeout current author, kick current author, ban current author. Hard-refuse guild owner, administrators, members with moderation/manage-guild permissions, bot/self targets, expired tokens, cross-message/cross-guild targets, or channels without moderation mode enabled.
Owner

Auto-RAGE compatibility handoff update: the earlier blocker is now resolved upstream. Current Zara master exposes the canonical service-plugin tool contract in API v1: ServicePlugin.tools() -> Sequence[BaseTool]. Zara's plugin docs state those LangChain tools are registered before start() and removed when the service fails/stops, and Zara's agent guidance requires ordinary BaseTool/StructuredTool rather than a private registry.

#32 is therefore dependency-ready again. Implementation can stay entirely in zara-plugins: issue a bounded expiring token for the current Discord message only when moderation mode is enabled, expose typed LangChain moderation tools through ServicePlugin.tools(), fence every operation to the token's guild/channel/message/current author, hard-refuse protected/self/bot targets, execute through the existing Discord client loop, and record bounded metadata-only outcomes through the moderation audit substrate.

No Zara Core changes are required for the tool-registration seam anymore.

Auto-RAGE compatibility handoff update: the earlier blocker is now resolved upstream. Current Zara `master` exposes the canonical service-plugin tool contract in API v1: `ServicePlugin.tools() -> Sequence[BaseTool]`. Zara's plugin docs state those LangChain tools are registered before `start()` and removed when the service fails/stops, and Zara's agent guidance requires ordinary `BaseTool`/`StructuredTool` rather than a private registry. #32 is therefore dependency-ready again. Implementation can stay entirely in zara-plugins: issue a bounded expiring token for the current Discord message only when moderation mode is enabled, expose typed LangChain moderation tools through `ServicePlugin.tools()`, fence every operation to the token's guild/channel/message/current author, hard-refuse protected/self/bot targets, execute through the existing Discord client loop, and record bounded metadata-only outcomes through the moderation audit substrate. No Zara Core changes are required for the tool-registration seam anymore.
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/zara-plugins#32
No description provided.