Files
Mrunal Patel 39cf4823f7 feat(api): add structured gateway errors and SDK decoding (#3313)
* feat(api): expose structured gateway errors across SDKs

Refs #3051. Add standard validation, conflict, and retry details; preserve raw transport status in Rust, Go, TypeScript, and Python; document status and recovery guidance.

This is the structured-error foundation only. Mutation result shapes, allow_missing, durable request deduplication, and exec retry semantics remain follow-up work.

Signed-off-by: Mrunal Patel <mrunalp@gmail.com>

* fix(python): preserve wrapped RPC cleanup handling

Inspect the original gRPC call when handling missing sandboxes during deletion waits and managed cleanup. Add intercepted cleanup regressions and clarify the error-wrapper migration contract.

Addresses the cleanup review on #3313; part of #3051.

Signed-off-by: Mrunal Patel <mrunalp@gmail.com>

---------

Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
2026-09-15 17:51:11 +00:00

30 lines
1.1 KiB
YAML

# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
# Code generation for the TypeScript SDK. The proto module boundary and
# validation policy live in the repo-level buf.yaml; this template only drives
# generation. buf compiles the module with its own compiler (no protoc) and
# runs the connect-es plugin from this package's devDependencies. Limited to
# the client-surface closure so we don't emit unused compute/test
# protos; well-known types resolve through @bufbuild/protobuf/wkt and are not
# generated.
version: v2
clean: true
inputs:
- directory: ../../proto
paths:
- ../../proto/openshell.proto
- ../../proto/sandbox.proto
- ../../proto/datamodel.proto
- ../../proto/options.proto
# Standard rich gRPC error messages, pinned to an immutable Google APIs commit.
- module: buf.build/googleapis/googleapis:c17df5b2beca46928cc87d5656bd5343
paths:
- google/rpc/error_details.proto
plugins:
- local: ./node_modules/.bin/protoc-gen-es
out: src/gen
opt:
- target=ts
- import_extension=js