Skip to content

Expose full-output artifact locations in shell exit events #2391

Description

@anthonykim1

Problem

When the built-in shell tool returns a truncated output preview, structured tool.execution_complete shell_exit content exposes outputPreview and outputTruncated, but the public SDK does not expose a typed location for the complete output.

SDK consumers therefore cannot provide a reliable "open full output" experience. VS Code Agent Host currently has to fall back to generic tool completion display text and deliberately does not parse a path out of that presentation-oriented prose.

VS Code tracking issue:

Related shell-tool SDK surface request:

Ask

Add an optional outputFilePath field to the public shell-exit event type:

export interface ToolExecutionCompleteContentShellExit {
  type: "shell_exit";
  shellId: string;
  exitCode: number;
  cwd?: string;
  outputPreview?: string;
  outputTruncated?: boolean;
  /** Path to the complete output when it is available as a file. */
  outputFilePath?: string;
}

The important part is that the complete-output location is structured SDK data rather than presentation text.

Desired semantics

  • Present only when the complete output is available as a file.
  • Identifies the complete output corresponding to outputPreview.
  • Documents which filesystem namespace the SDK consumer resolves the path in.
  • Documents the file's availability/lifetime and text encoding.
  • Remains optional and backward compatible when no complete-output file is available.

Acceptance criteria

  • Expose outputFilePath?: string in the public SDK shell-exit event types.
  • Generate the field consistently across supported SDK languages.
  • Document its resolution and availability semantics.
  • Add SDK contract/code-generation coverage for events with and without the field.
  • Enable VS Code Agent Host to consume the structured value without parsing generic tool progress or completion text.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions