YmerNode.Mcp.Tools.Scripts.Actions (Ymer Node v0.2.1)

Copy Markdown View Source

Action implementations for the scripts tool — the boundary over YmerNode.Scripts.

This is a trust boundary, and it takes the shape YmerNode.Mcp.Tools.Notebook.Actions takes rather than the one YmerNode.Mcp.Tools.References.Actions takes: every extracted scalar is guarded on the head, and each guarded head is followed by a wrong-typed twin that answers a message. There is no Validate layer because there is nothing here to validate beyond type — no ranges, no vocabularies, no id that may arrive as either an integer or its string form. The values are four strings and a map, and the action's own JSON Schema, which YmerNode.Scripts.Runner applies, is what judges their content; info's one vocabulary, the promised package names, is judged by YmerNode.Scripts.PackageDocs, which refuses an unknown name naming every accepted one.

The twins are what make that a boundary rather than a crash. YmerNode.Scripts and YmerNode.Scripts.Runner both guard is_binary(action), so a wire call carrying action: 123 would raise FunctionClauseError and answer a caller nothing it could act on. Grouped after the guarded heads, never before: a twin that ran first would swallow every good call.

describe's hint context carries a runnable action only when the script is both accepted and compiled, and code: true whenever the code was asked for — see YmerNode.Mcp.Tools.Scripts.Hints for why the decision is made here and not there.

Summary

Functions

run(atom, data)