What the TypeScript SDK's stdio loop does, in Go: an empty name serves as MESH_SERVED_MODULE; each call runs beside the loop so a tool waiting on the runtime does not deadlock it; Emit asks the runtime (mesh/publish) with the same envelope and headers. README says how to install it and how releases are tagged.
19 lines
851 B
Markdown
19 lines
851 B
Markdown
# mesh-sdk for Go
|
|
|
|
`stdio.Serve("", tools)` speaks MCP over stdio to the node's tool runtime, as the module the runtime
|
|
names (novox/hq ADR 0188, ADR 0193). A `Tool` is a name, a description, an argument schema and a
|
|
function; calls run concurrently. A tool named `<seat>.<verb>` is the seat's implementation.
|
|
`stdio.Emit(type, body)` publishes an event as the module, through the runtime. Standard library only.
|
|
|
|
## Installing
|
|
|
|
```
|
|
GOPRIVATE=git.novox.be go get git.novox.be/novox/mesh-sdk/go@latest
|
|
```
|
|
|
|
Releases are tagged `go/vX.Y.Z` in this repository, the subdirectory form Go's module system expects,
|
|
at the same version as the TypeScript package.
|
|
|
|
What it holds, under ADR 0039's test: the stdio loop and the tool type. Nothing else — no bus, no
|
|
client, nothing of any module's. `go build ./example` and pipe a `tools/list` request into it.
|