nodeping
nodeping
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.
Arguments
path selects the section below: [] is the root form, ["setup"] is setup, and ["status"] is status. The root form's instruction is instruction; with none, use the task established in the conversation, and if there is none, ask what the user wants to do at NodePing.
--yes on setup asserts that the user means to replace the token the Credential File already holds — a rotation.
The engine and the credential
The engine is uv run "$HERE/scripts/nodeping.py". It reads the NodePing API token from the Skill's Credential File, ~/.kntnt/nodeping/credentials.json, and prints each response body verbatim. Never read, print or copy that file yourself, and never ask for the token in the conversation; if the user pastes it there anyway, say that it now stands in the transcript and that they should regenerate it and run /nodeping setup --yes.
call [--yes] <METHOD> <path> ['<json>']sendsGET,POST,PUTorDELETEtohttps://api.nodeping.com/api/1/<path>. Parameters of aGETorDELETEgo in the path's query string; the JSON operand, one object in single quotes, is the parameters of aPOSTorPUT.statusasks for the account the token reaches.
Exit 0 means the service answered; a body carrying error is its refusal, to relay. Exit 1 means it could not be reached, so the outcome of a write is unknown: read the object again before any retry. Exit 2 is the engine's own refusal: show its stderr. Where it names setup, stop and point the user to /nodeping setup.