triggers, conditions, target, delay, chance, cooldown, and every.
Most accept args.follow-up-actions. Follow-ups run after success or failure.
To handle an error, branch on an output variable or use a condition. Actions do
not accept not-met-actions; that field belongs to conditions.
String inputs support [[variables]], %placeholders%, and
{{secret.NAME}}. storeAs creates namespaced outputs such as [[probe_ok]].
HTTP requests
miktingHttp
Send a request to any HTTP endpoint. A request body is optional. If included,
choose one of json, form, or text.
mikting_status, mikting_ok, mikting_body, and, when the
response is JSON, mikting_json plus flattened JSON paths. Response headers
are available as mikting_headers_<name>. With storeAs: probe, the same
outputs use the probe_ prefix. For example, a JSON field at results.0.flagged
becomes [[probe_json_results_0_flagged]].
When using auth.tokenSecret, numbered keys rotate automatically. The chosen
slot name appears in mikting_key_name and probe_key_name. See
Secrets.
Validate a response
responseCheck validates the response body against a known contract. Supported
checks include OpenAI moderation, OpenAI and Groq policy responses, and Jev
policy responses. A check adds valid and flagged outputs to its namespace;
Jev also adds score. HTTP ok means only that the status is 2xx. Check both
valid and flagged before taking action.
OpenAI and Groq policy checks expect a completed Chat Completions response
whose message contains JSON with a boolean flagged and a 1 to 500 character
reason. Jev validates TypeSafe’s response shape, including its model, Noul
answer, score, and token counters. policyThreshold accepts a number from 0 to
1 and defaults to 0.80. A score at or above the threshold sets flagged to
true. This value is a model estimate, not a guarantee of accuracy. Extra fields
are allowed; missing fields and invalid types fail validation. See the
TypeSafe Noul contract.
miktingHttpPaginate
Follow a next URL or an RFC 5988 Link header and combine results:
data array when present; otherwise it appends the object. It sets
mikting_page_count and the named result array.
Variables
miktingSet { key, value }stores a value in the current run.miktingGet { key, storeAs? }copies a value to a new name or the same key. A missing key setsmikting_error.miktingAppend { key, value, sep? }appends to an array or joins text withsep(default,). It creates a missing variable.miktingClear { keys }removes one or more variables.keyscan be a string or list.miktingMath { expr, storeAs? }evaluates a numeric filtrex expression. It defaults the output name toresultand does not use JavaScripteval.
Text and data
miktingString supports upper, lower, trim, length, slice,
replace, split, join, and regex. slice uses from and to;
replace uses a literal pattern and replacement; split and join use
sep. regex uses a JavaScript regular expression and returns the match or
capture groups, or null when there is no match.
miktingJson parses, stringifies, or queries JSON. The query operation uses a
dot path such as users.0.name. miktingArray supports len, first,
last, reverse, unique, join, includes, and at. join uses sep,
includes uses item, and at uses a zero-based index. A direct array
variable input preserves objects; other string inputs are templated first.
miktingDate supports now, format, parse, and add. now returns epoch
milliseconds; format returns ISO text; parse returns milliseconds; add
shifts a timestamp by an amount in ms, s, m, h, or d.
miktingRandom produces an inclusive integer, UUID, or selected choice.
miktingHash supports SHA-256 and MD5. miktingEncode converts between
Base64, URL encoding, and hexadecimal.
Flow control
These actions run nested action lists where noted. They do not accept their own follow-up lists unless stated.miktingBranch { when, then?, else? } evaluates a templated boolean
expression, then runs one of its action lists:
miktingForEach { list, itemVar, actions, maxIter? } runs actions for each
array item and sets the item variable and its zero-based index. The default
iteration limit is 100. miktingWhile { cond, actions, maxIter? } defaults to
25 iterations. miktingTry { try, catch?, storeErrorAs? } runs a catch list
when the try list fails. miktingSleep { ms } pauses for up to 60 seconds.
miktingStop ends the current chain. miktingCallFunction calls a function
defined in a library. miktingInclude { path } runs an {actions:[...]} YAML
file confined to the bot working directory. See Libraries.
Discord actions
miktingReply sends a message using standard message arguments, including
content, embeds, components, and ephemeral. It replies to an interaction
when available and otherwise sends to the channel. Follow-ups receive the sent
message context.
miktingDm { user? } sends a direct message to the context member by default.
Closed DMs set mikting_error. miktingReact { value } reacts to the current
message. miktingPoll { question, options, durationH? } creates a native poll
with 2 to 10 options and a duration from 1 to 336 hours, defaulting to 24.
miktingTimeout { durationSec?, user?, reason? } applies a timeout to the
context member by default. Zero removes a timeout. The duration is in seconds.
miktingModerate supports ban, unban, kick, addRole, removeRole,
nickname, and slowmode; role and nickname operations accept their
corresponding values, ban accepts deleteMessagesSec, and slowmode requires a
text channel context.
miktingWebhookSend { url, content, username?, storeAs? } sends JSON to a
Discord webhook. Keep its URL in a secret. miktingPaginate { pages, timeoutSec? } sends the first page and lets the trigger author navigate the
pages; the current index is stored in paginate_page.
miktingWaitFor { type, timeoutSec?, fromUser?, storeAs? } waits for a message
or reaction. Message results include content and author; reaction results
include the emoji. A timeout sets mikting_error. Reactions require a message
context.
Store actions
UsemiktingStoreSet, miktingStoreGet, miktingStoreIncr,
miktingStoreListOp, and miktingStoreRemove for persistent data. The store
supports global, guild, user, channel, and message scopes. Setting the remove
key to * clears the selected scope. See Key-value store.
Documentation home · Source Markdown