Skip to content

feat(sdk): expose split stdout/stderr on execute command response - #199

Open
MDzaja wants to merge 1 commit into
mainfrom
feat/exec-stdout-stderr
Open

feat(sdk): expose split stdout/stderr on execute command response#199
MDzaja wants to merge 1 commit into
mainfrom
feat/exec-stdout-stderr

Conversation

@MDzaja

@MDzaja MDzaja commented Aug 18, 2026

Copy link
Copy Markdown
Collaborator

What

Command execution results now expose stdout and stderr separately across
all SDKs (TypeScript, Python sync/async, Go, Ruby, Java), alongside the
existing combined result.

How

  • openapi-specs/toolbox.json: ExecuteResponse gains optional
    stdout/stderr string fields.
  • All six generated toolbox API clients regenerated.
  • Each SDK maps the new fields onto its execute response type:
    • TS: response.stdout / response.stderr (undefined on older daemons)
    • Python: response.stdout / response.stderr (None on older daemons)
    • Go: *string fields (nil on older daemons)
    • Ruby: stdout / stderr readers (nil on older daemons)
    • Java: nullable getStdout() / getStderr()

Backward compatibility

  • Fully additive: result, exit_code, and artifacts.stdout keep their
    existing semantics.
  • Sandboxes running an older daemon simply don't return the split fields —
    SDKs surface them as null/undefined and result remains the fallback.

Summary by cubic

Expose split stdout and stderr on command execution responses across all SDKs to enable separate stream handling. Previously only the interleaved result was available; now stdout and stderr are added without changing existing behavior.

  • Contract: ExecuteResponse adds optional stdout and stderr; result remains the combined, interleaved output. Older daemons omit the new fields.
  • SDKs: sdk-typescript, sdk-python (sync/async), sdk-go, sdk-ruby, and sdk-java now surface stdout/stderr while preserving result and artifacts.stdout semantics.
  • Clients/docs/tests: openapi-specs/toolbox.json and toolbox-api-client-* regenerated; language SDK docs and tests updated to cover both split and legacy behavior.
  • Rollout: No migration required. Consumers can start reading stdout/stderr when present and fall back to result on older daemons.

Written for commit cb34ec6. Summary will update on new commits.

Review in cubic

Signed-off-by: MDzaja <mirkodzaja0@gmail.com>
@vidoc-agent

vidoc-agent Bot commented Aug 18, 2026

Copy link
Copy Markdown

Vidoc security review

Tip

Good to merge — no security issues found. Reviewed 29 changed files.

💬 Have questions? Tag @vidoc in a comment and I'll answer.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 29 files

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread artifacts/sdk-docs/python-sdk/sync/process.mdx
Comment thread artifacts/sdk-docs/python-sdk/async/async-process.mdx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant