Before/After pair for the Skills button, proxied straight through from the input box. Gated on
EnableSkillCommands — the button and the keystroke are two doors to the same feature, so one
flag governs both rather than letting a composer advertise skills it will not serve.
Cancel on beforeSkillsOpened vetoes the dropdown; afterSkillsOpened then does not fire.
Composer lost focus — hosts persist drafts on this.
OptionalcurrentMaster switch for all mention/command triggers (pass-through).
OptionalinputOptional metadata provider scoping this composer (pass-through to the trigger plugins).
The explicit provider list bound to the inner editor (stable reference; rebuilt only when a flag flips).
Enables the '@' trigger (agent + user mentions).
Enables the '#' trigger (entity + query record mentions).
Enables the '/' trigger (skill commands).
The inner mention editor — kept reachable for hosts that drive it directly (e.g. clear-after-programmatic-send).
The agent the message is expected to go to, when the host knows it (mj-message-input binds an
explicit @agent chip in the draft, else its resolved continuity/pinned/default agent). Narrows
the '/' skill picker to the skills that agent accepts (AcceptsSkills + MJ: AI Agent Skills
grants). Null = unknown, no narrowing — the server's RequestedSkills guard is the backstop.
Attach an artifact as a pending attachment (artifact picker flow).
Clear the editor content and pending attachments.
Focus with the caret at the end of content.
Pending (not yet uploaded) attachments.
Plain text with mentions encoded as JSON (@{"type":...}) — the persistence format.
Inserts a resolved mention chip + space (see MentionEditorComponent.InsertMention).
Open the attachment file picker programmatically.
AI-aware composer: wraps the generic
<mj-message-input-box>(from@memberjunction/ng-composer, which ships zero AI knowledge) and builds the AI trigger plugins in — '@' agent/user mentions, '#' entity/query record mentions, and '/' skill commands — while proxying the input box's full surface (inputs, outputs, and public methods).The familiar granular flags live HERE now:
EnableAgentMentions(default true) — the '@' triggerEnableEntityMentions(default true) — the '#' triggerEnableSkillCommands(default true) — the '/' trigger plus the pass-throughenableMentionsmaster switch.The wrapper always runs the inner editor in EXPLICIT provider-list mode (it owns the list; it deliberately does not proxy
TriggerProviders/ExcludedTriggerKeys— use the raw<mj-message-input-box>when you need custom providers or discovery mode).