Huskarl
Huskarl is Elyra's desktop colleagues: bots that do office work and wait for your yes before anything goes out in your name. eterm and Huskarl know about each other in two ways, and nothing leaves the Mac for either.
A command that finishes tells a bot
[hooks]
on_command_finished = "http://127.0.0.1:47811/hooks/<token>"
min_seconds = 10 # only commands that ran at least this long
only_failures = true # only commands that failed
When a command finishes that the settings want told, eterm posts a few lines
to the address: what ran, how it ended, how long it took, the directory, the
tab, and its last 40 lines. Tokens and keys in them are replaced with
[redacted] first, the same as for a model. The address must be this Mac
(http://127.0.0.1:… or http://localhost:…) or https; anything else is not
sent.
In Huskarl, the address is a routine's webhook: ask a bot for "a routine that runs when its webhook is called" (Dev Desk can turn a failed deploy into an issue it proposes), and paste the address it gives. The text reaches the bot as outside text, and whatever it does about it waits for your approval in Huskarl. Any other local service that takes a POST works too.
Proposals that wait show here
[huskarl]
enabled = true # ask Huskarl every half minute what waits
eterm asks Huskarl's daemon over its socket (~/.huskarl/run/huskarld.sock,
the same user only) how many proposals wait and what they are called. When
some do:
- the line on coming back after a while starts with "2 proposals wait in Huskarl", and
cmd-jlists Huskarl first, as waiting, with the newest proposal.
A click on either opens Huskarl on the queue (huskarl://queue). eterm never
approves anything: that is done in Huskarl, where the whole card is. When
Huskarl is not installed or its daemon is not running, nothing is shown and
nothing is said about it.