Docs/CLI reference

CLI reference

tama judgement ask

The model call a gate on a shell command does not make inside its hook. block-one-off-repairs, block-background-execution, block-external-source-edits, block-inline-execution, block-keychain-prompt-commands, block-local-model-training, pre-bash and block-device-level-tests-without-consent judge a command by asking a model through Oko (oko gateway object), and a model call takes longer than a harness waits for a hook: a gate that waited was abandoned and decided nothing, and while Brama or Skarbiec stood unreachable every shell of every session waited with it. So the gate decides a command from the answer already kept for that exact question, and a command not yet judged is refused, never let through, with the request that asks it named.

The model call a gate on a shell command does not make inside its hook. block-one-off-repairs, block-background-execution, block-external-source-edits, block-inline-execution, block-keychain-prompt-commands, block-local-model-training, pre-bash and block-device-level-tests-without-consent judge a command by asking a model through Oko (oko gateway object), and a model call takes longer than a harness waits for a hook: a gate that waited was abandoned and decided nothing, and while Brama or Skarbiec stood unreachable every shell of every session waited with it. So the gate decides a command from the answer already kept for that exact question, and a command not yet judged is refused, never let through, with the request that asks it named.

#Invocation

tama judgement ask <request>
  • <request> is the path the gate's refusal names: <sha256 of the question>.request.json in the judgement memory (TAMA_JUDGEMENT_MEMORY_DIR, else model-judgements under the Tama state root), holding {"key", "verb", "arguments"}: the whole question and the oko gateway call that asks it.
  • It runs that call here, outside every hook, keeps the answer beside the request under the question's hash and prints it. The gate reads the kept answer when the same command is run again; an answer the gate's reading does not accept is taken back so the next ask goes to the model again.
  • The command runs only Tama, so a gate whose question is unanswered lets it through (the programs the judge stands on).

#Output and refusals

  • The answer the model gave, as one JSON object, exit 0.
  • judgement: the judgement request <path> cannot be read: <cause> or … is not one: <cause>, exit 1.
  • judgement: <cause> when the question went unanswered — no model declared, Oko absent, the gateway refusing, a judge Oko recorded as not answering — exit 1.
  • No verb, another verb or a second argument is a usage refusal: the judgement lines of tama --help on stderr, exit 2.

#Quickstart

$ # a shell command is refused:
block-one-off-repairs: TAMA_HOOK_INFRASTRUCTURE: … this call has not been judged yet, and the gate does not wait for the model inside its hook: `tama judgement ask …/model-judgements/3f1c….request.json` asks it now and keeps the answer, and the same call is then judged at once
$ tama judgement ask …/model-judgements/3f1c….request.json
{"choice":"PASS","reason":"…"}
$ # the same command now runs, decided by the kept answer

Return to the complete CLI tree.