--output json, every terminating command answers with exactly one schema-1 envelope on stdout. Long-running commands stream the same shape as lifecycle frames.
Envelope shape
The
error object:
Success and failure examples
Where human copy goes
TheEXTENSION_OUTPUT environment variable is the machine-mode switch. When it is json or ndjson, frames own stdout and human copy moves aside:
- Informational lines and warnings go quiet, or move to stderr where a stream needs them.
- Error copy is never suppressed. It always writes to stderr, so a launch failure stays visible while stdout stays parseable.
Published contract artifacts
Theextension-develop package ships the contract as importable files under the ./contract/* export:
Validate your consumer against the schema, and pin your tests to the golden fixtures. Codes may be added, never renamed or removed.
Next steps
- Branch on failures with the error code table.
- Follow long-running sessions with the lifecycle stream.

