When your Ownbox says no
Refusal codes
Your Ownbox refuses a call with sdk.BoxRefused: .code is the reason, which a rewording never changes, and the message is a sentence saying what to change. The codes: not_permitted (add the permission it names), host_not_allowed, key_not_allowed, key_wrong_host, key_missing, no_cap and over_cap (the owner's monthly limit for a key), over_budget (the AI's allowance for the month), rate_limited, too_large, bad_* (an argument), never_readable (a key read), too_many_screens and too_many_panels. The people, conversation and send calls never raise: their answer carries a status and a code instead.
try:
m.think("check", "Say yes.")
except sdk.BoxRefused as e:
m.save_setting("refused", e.code).code is the reason, which a rewording never changes; the message is a sentence saying what to change. Decide in code on .code.
Raised by the calls under Not yet, with a sentence.
Raised by the reserved calls, with a sentence saying what to use until then.