IAddon facade for hive-mcp-compatible hosts. The host loads this namespace by name from META-INF/hive-addons/hive-elm.edn.
IAddon facade for hive-mcp-compatible hosts. The host loads this namespace by name from META-INF/hive-addons/hive-elm.edn.
Command handlers. Each takes the parsed params map and returns a Result. MCP delivers every param as a string.
Command handlers. Each takes the parsed params map and returns a Result. MCP delivers every param as a string.
IAddon record and constructor for the hive.elm addon.
IAddon record and constructor for the hive.elm addon.
The elm subdomain of the host's code tool: command table, dispatch,
and the shape the host is handed.
The `elm` subdomain of the host's `code` tool: command table, dispatch, and the shape the host is handed.
Boundary: reads the project's files and assembles the adapters.
Boundary: reads the project's files and assembles the adapters.
IElmCompiler over a child process.
IElmCompiler over a child process.
The project's watch configuration as a value. Pure.
A project needs no hive-elm.edn: everything has a default, and the
source directories come from the project's own elm.json.
The project's watch configuration as a value. Pure. A project needs no `hive-elm.edn`: everything has a default, and the source directories come from the project's own elm.json.
IBuildNotifier that shouts on the host's hivemind.
The host is a runtime, not a dependency: its shout function is resolved when a notice is delivered, never required. Outside a host the notifier answers with an err Result and the watcher carries on.
A shout reaches the model two ways. It is piggybacked on the next tool
result of the reader it is addressed to, and sixth-sense perceives it as
:sense/build-failed (see hive-elm.notify.sense) and pushes it to an idle
session. Both address by :parent-id: without one the shout goes to
coordinator readers only.
IBuildNotifier that shouts on the host's hivemind. The host is a runtime, not a dependency: its shout function is resolved when a notice is delivered, never required. Outside a host the notifier answers with an err Result and the watcher carries on. A shout reaches the model two ways. It is piggybacked on the next tool result of the reader it is addressed to, and sixth-sense perceives it as `:sense/build-failed` (see hive-elm.notify.sense) and pushes it to an idle session. Both address by `:parent-id`: without one the shout goes to coordinator readers only.
Registers :sense/build-failed with sixth-sense, when it is loaded.
sixth-sense turns a shout into a sense only when a registered class
perceives it; a :build-failed shout matches none of the built-ins. The
registration is one map. sixth-sense belongs to hive-agent, which this
library does not depend on, so its registry is resolved softly: without
it the shout is still piggybacked, only never pushed.
Registers `:sense/build-failed` with sixth-sense, when it is loaded. sixth-sense turns a shout into a sense only when a registered class perceives it; a `:build-failed` shout matches none of the built-ins. The registration is one map. sixth-sense belongs to hive-agent, which this library does not depend on, so its registry is resolved softly: without it the shout is still piggybacked, only never pushed.
Ports the watcher depends on. Adapters live in their own namespaces; tests supply stub records.
Ports the watcher depends on. Adapters live in their own namespaces; tests supply stub records.
Promote: the output of elm make --report=json to a Report value, and a
Report to the text an LLM reads. Pure.
Wire shapes, measured against elm 0.19.1 (fixtures in test/resources/elm):
{"type" "compile-errors" "errors" [{"path" abs "name" module "problems" [{"title" s "region" {"start" {"line" n "column" n}} "message" [chunk ...]}]}]} {"type" "error" "path" "elm.json" "title" s "message" [chunk ...]}
A chunk is a string, or a styled span {"string" s "color" ... "bold" ...}. The report is written to stderr; stdout carries progress only.
Promote: the output of `elm make --report=json` to a Report value, and a
Report to the text an LLM reads. Pure.
Wire shapes, measured against elm 0.19.1 (fixtures in test/resources/elm):
{"type" "compile-errors"
"errors" [{"path" abs "name" module
"problems" [{"title" s "region" {"start" {"line" n "column" n}}
"message" [chunk ...]}]}]}
{"type" "error" "path" "elm.json" "title" s "message" [chunk ...]}
A chunk is a string, or a styled span {"string" s "color" ... "bold" ...}.
The report is written to stderr; stdout carries progress only.Value objects of the Elm build domain.
Value objects of the Elm build domain.
IFileStamps over the filesystem, plus the system clock.
IFileStamps over the filesystem, plus the system clock.
No vars found in this namespace.
Pure decisions of the watcher: when a change is settled enough to compile, and whether a report is news.
Pure decisions of the watcher: when a change is settled enough to compile, and whether a report is news.
Pipeline: sample the sources, compile when a change settles, tell the
notifier when the report is news. All effects go through the ports in
deps ({:compiler :notifier :stamps :clock}).
Pipeline: sample the sources, compile when a change settles, tell the
notifier when the report is news. All effects go through the ports in
`deps` ({:compiler :notifier :stamps :clock}).cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |