Expand one command file into text
Expands one command file and returns the text: its shell blocks run, their output spliced in where they stood, and the arguments substituted into what that produced. The order is deliberate and is not the caller’s to choose — a pasted issue body carrying a backtick block must never become a block. Shell blocks run only in a repository somebody has trusted, and never at all for a command a package shipped; a block that did not run is replaced by a sentence saying why. They run in the named repository’s own directory, and only when that repository is trusted — an untrusted checkout is never a working directory. One expansion’s blocks share a ten-second deadline, so this call can take that long. A name two command files both claim is refused with 409 naming both, never awarded to one of them: listCommands lists every claimant for exactly that reason, and there is never an implicit winner.
Path Parameters
The command's name — what "/" reaches it by.
128^[^\s/\\]+$Body
What to expand a skill or a command file against: the repository the work is happening in, and whatever the person typed after the name.
Absolute path of the repository, which decides which rungs are read and — for a command — where its shell blocks run and whether they may.
4096Everything typed after the name, verbatim. A command file's $ARGUMENTS and $1..$9 are filled from it, AFTER its shell blocks have already run, so text pasted here can never become a block.
65536Response
The expanded text.
The text one expansion produced, ready to be put in front of a person. It is never sent anywhere on their behalf: the whole point of expanding into a composer is that somebody reads what a file wrote in their name before a model does.

