Liking cljdoc? Tell your friends :D

hive-gimp.tools

FACADE. The MCP surface.

FOUR tools, not eighty, and the arithmetic is the reason. The reference project publishes one MCP tool per GIMP command; eighty tool definitions with their descriptions and schemas is a large, permanent tax on the context of every client that mounts this addon, whether or not it ever touches GIMP. The commands are DATA here, so one dispatching tool carries all of them and the catalog is queried on demand instead of being recited up front.

gimp run any catalogued command gimp_exec arbitrary Python-Fu, the escape hatch gimp_catalog list, search and describe commands (the discovery path that replaces eighty descriptions) gimp_doctor why is this not working

Adding a GIMP command adds a row to commands_extra.edn and changes nothing here (OCP).

FACADE. The MCP surface.

FOUR tools, not eighty, and the arithmetic is the reason. The reference
project publishes one MCP tool per GIMP command; eighty tool definitions
with their descriptions and schemas is a large, permanent tax on the context
of every client that mounts this addon, whether or not it ever touches GIMP.
The commands are DATA here, so one dispatching tool carries all of them and
the catalog is queried on demand instead of being recited up front.

  gimp          run any catalogued command
  gimp_exec     arbitrary Python-Fu, the escape hatch
  gimp_catalog  list, search and describe commands (the discovery path that
                replaces eighty descriptions)
  gimp_doctor   why is this not working

Adding a GIMP command adds a row to commands_extra.edn and changes nothing
here (OCP).
raw docstring

catalog-handlerclj

(catalog-handler params)

Discovery. Never touches GIMP: every answer comes from the loaded contract.

The projection itself lives in hive-gimp.contract/describe, reached here through the catalog accessor. Keeping it out of this namespace is what lets it be generatively tested; a wiring namespace is a poor place for a decision about what clients may depend on.

Discovery. Never touches GIMP: every answer comes from the loaded contract.

The projection itself lives in `hive-gimp.contract/describe`, reached here
through the catalog accessor. Keeping it out of this namespace is what lets
it be generatively tested; a wiring namespace is a poor place for a decision
about what clients may depend on.
sourceraw docstring

catalog-toolclj

(catalog-tool)
source

doctor-toolclj

(doctor-tool transport host-python)
source

exec-handlerclj

(exec-handler transport params)
source

exec-toolclj

(exec-tool transport)
source

gimp-handlerclj

(gimp-handler transport params)
source

gimp-toolclj

(gimp-tool transport)
source

normalize-argsclj

(normalize-args params)

A JSON params object to the kebab-case keyword map the promote layer wants.

Accepts either spelling for every key. An MCP client that read the wire contract sends image_index; one that read the catalog sends image-index. Punishing either would be a puzzle, not a contract.

A JSON params object to the kebab-case keyword map the promote layer wants.

Accepts either spelling for every key. An MCP client that read the wire
contract sends `image_index`; one that read the catalog sends `image-index`.
Punishing either would be a puzzle, not a contract.
sourceraw docstring

pixel-handlerclj

(pixel-handler transport host-python params)
source

pixel-toolclj

(pixel-tool transport host-python)

Host-side pixel work, and its composition with GIMP.

A separate tool from gimp because these are NOT GIMP commands: they run in the host's Python, on files, using packages GIMP does not ship. Folding them into the gimp command enum would tell a client they are available whenever GIMP is, which is exactly wrong: they need the optional Python port and GIMP commands do not.

Host-side pixel work, and its composition with GIMP.

A separate tool from `gimp` because these are NOT GIMP commands: they run in
the host's Python, on files, using packages GIMP does not ship. Folding them
into the `gimp` command enum would tell a client they are available whenever
GIMP is, which is exactly wrong: they need the optional Python port and GIMP
commands do not.
sourceraw docstring

toolsclj

(tools transport host-python)

Every tool this addon publishes.

Five, carrying eighty GIMP commands plus the host-side pixel operations. The count is the point: one tool definition per GIMP command would be a large permanent tax on the context of every client that mounts this addon, whether or not it ever opens an image.

Every tool this addon publishes.

Five, carrying eighty GIMP commands plus the host-side pixel operations.
The count is the point: one tool definition per GIMP command would be a
large permanent tax on the context of every client that mounts this addon,
whether or not it ever opens an image.
sourceraw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close