feat(sdk): expose curated gateway resource capabilities
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 52/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- go, python, rust, typescript
- Lĩnh vực
- api, backend-api-design, documentation, testing
Hướng nghiên cứu
Bắt đầu với bề mặt Rust SDK đã được tuyển chọn và so sánh nó với các gateway API của các SDK TypeScript, Python và Go; quyền truy cập thô có sẵn thông qua OpenShellClient::raw_grpc() và openshell_sdk::raw::proto. Kiểm tra cách openshell-core tái tạo các protobuf binding từ cây proto/. Được xem là hoàn tất khi có thông tin về capability tương đương, các bài kiểm thử cho những trường đã được điền và vắng mặt, cùng tài liệu về static semantics và raw-protobuf fallback.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
User Story
As an OpenShell SDK user, I want a curated gateway-capabilities API so that I can determine which portable CPU, memory, and GPU requests a gateway’s compute drivers support without depending on generated protobuf types.
Problem Statement
Issue #2902 adds static resource capability fields to the compute-driver and gateway protobuf APIs. Rust callers can already access them through OpenShellClient::raw_grpc() and openshell_sdk::raw::proto, but the curated SDK surface has no typed gateway-info method or capability models.
Impact / Why This Matters
Consumers that need an idiomatic SDK API must currently use generated wire types and direct gRPC calls. That is workable but makes application code depend on protobuf details and produces inconsistent ergonomics across SDKs.
Proposed Design
Expose gateway information and per-driver resource capabilities through each curated SDK surface. Preserve absence when a driver does not report capabilities, and document that capability flags describe static implementation support rather than live inventory or available capacity.
Acceptance Criteria
- The Rust SDK exposes a curated gateway-info method and types for CPU, memory, and GPU resource capabilities.
- The TypeScript, Python, and Go SDKs expose equivalent capability information where they provide curated gateway APIs.
- SDK tests cover populated capability fields and unreported capabilities.
- SDK documentation explains the static semantics and raw-protobuf fallback.
Alternatives Considered
Keep the new fields available only through generated protobuf clients. This preserves wire-level access but leaves users to manage generated types directly and does not provide a consistent SDK-level experience.
Agent Investigation
The Rust SDK re-exports generated protobufs through openshell_sdk::raw::proto; protobuf bindings are regenerated from the full proto/ tree by openshell-core during Rust builds. This follow-up is therefore curated API work rather than a prerequisite for protocol access.
Related to #2902 and draft PR #3010.
- Ngôn ngữ chính
- Rust
- Star
- 8.7k
- Fork
- 1.3k
- Merge trung bình
- 2 ngày 6 giờ
- Pull request đã merge (30 ngày)
- 297
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của NVIDIA/OpenShell
-
area:docs
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
-
state:triage-needed
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
-
area:cli state:validated
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
-
state:triage-needed
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
-
area:build spike state:review-ready state:stale
Độ khó 2/5 Nửa ngày Mức phù hợp với người mới 68/100
Tất cả issue của NVIDIA/OpenShell
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
state:needs triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
zed-industries/zed#64680 · 2 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
RustPython/RustPython#8802 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
TheLarkInn/aipm#2390 ·