cloudns
cloudns
Run uv run "$HERE/scripts/invoke.py" — $HERE is the directory that holds this SKILL.md — with everything the user typed after the Skill name, verbatim and however many lines, on stdin. Exit 0: do what it prints. On any other exit, if you introduced a known construction error and can correct it while preserving the user's request and authority, account for effects already produced, submit the corrected invocation through the same shim, and continue from the failed boundary; a refusal before the operation starts consumes no operation. Otherwise show what it printed to the user verbatim and stop. Never repair input the user supplied, or automatically retry exact help, an unmet dependency, an unrelated failure, or a failure whose origin or valid correction is unknown.
Then follow the section the reading's path names: Change DNS for the empty path, setup, or status.
Arguments
<sub-user>, the one operand ofsetup, is the name of the ClouDNS API sub-user the credential belongs to, which becomes the Credential File'ssub-auth-user. Without it the name iskntnt-agent.--yesonsetupasserts that the credential the Credential File already holds may be replaced: it is the rotation.- The root form's change is the
instruction. With none, use the task established in the conversation; if there is none, ask what the user wants changed in DNS at ClouDNS.
The engine
Every call to ClouDNS goes through uv run "$HERE/scripts/cloudns.py", which reads the sub-user's credential from the Credential File, ~/.kntnt/cloudns/credentials.json, and puts it in the request body and nowhere else:
call [--yes] <path> [<key>=<value>]...POSTs tohttps://api.cloudns.net/<path>with the credential and every pair, and prints the response body verbatim. Compose<path>and the pairs from the API reference.statuschecks the credential with the service and lists the zones it can see.