Skip to content

Validation and raw calldata

Validation compiles the TypeScript without changing workflow state. A changed save repeats validation, prepares an immutable backend artifact, appends a revision, and makes that revision current atomically.

  • an input/output schema is invalid or a run input does not match it;
  • an effect key is missing, duplicated, unstable, or reused with another request;
  • maxResultBytes is missing or exceeds the remaining run budget;
  • a reachable effect, network, account, target, HTTP host, channel, or audience is outside the capability envelope;
  • an account-bound agent grant does not cover the proposed capability set;
  • a forbidden import, API, promise pattern, or floating effect is present;
  • a parallel effect array is aliased, mutated after assimilation, or mixed with non-effect thenables;
  • source, bundle, input, output, effect, or provider limits would be crossed.

Compiler diagnostics include source locations. Fix the source and validate again; do not suppress errors by widening capabilities to "*" unless the workflow truly requires that authority.

A raw call must include exact to, data, value, label, and reason. The target must still be allowed by the frozen capability envelope. The run review labels it as raw calldata because txcast cannot derive a decoded function call from it.

Starting a run freezes source-derived artifacts, inputs, capabilities, quotas, and backend authority. If any of that is wrong, cancel the run, correct and save the workflow, and start a new run. Never sign a request you cannot explain.