Skip to content

Commit 7683379

Browse files
committed
⬆️ Bump files with dotnet-file sync
# devlooped/oss - Ignore *.local recursively devlooped/oss@a225b7a # xai-org/xai-proto - Add `ExtendVideo` RPC and `reference_images` for Video Generation (#41) xai-org/xai-proto@43a1b6b - Update protos for video generation failure case (#38) xai-org/xai-proto@2b1a1fc - Add agent_count field to support multi-agent model configurations (#42) xai-org/xai-proto@6473565
1 parent 6d1b6ec commit 7683379

6 files changed

Lines changed: 88 additions & 22 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ BenchmarkDotNet.Artifacts
1212
.idea
1313
local.settings.json
1414
.env
15+
*.local
1516

1617
*.suo
1718
*.sdf

.netconfig

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@
8080
weak
8181
[file ".gitignore"]
8282
url = https://github.com/devlooped/oss/blob/main/.gitignore
83-
sha = 3776526342afb3f57da7e80f2095e5fdca3c31c9
84-
etag = 11767f73556aa4c6c8bcc153b77ee8e8114f99fa3b885b0a7d66d082f91e77b3
83+
sha = a225b7a9f609f26bcc24e0d84f663387be251a7d
84+
etag = 20a8b49d57024abbd85aac5b0020c30e5eb68e0384b2761e93727c8780c4a991
8585
weak
8686
[file "Directory.Build.rsp"]
8787
url = https://github.com/devlooped/oss/blob/main/Directory.Build.rsp
@@ -152,13 +152,13 @@
152152
weak
153153
[file "src/xAI.Protocol/chat.proto"]
154154
url = https://github.com/xai-org/xai-proto/blob/main/proto/xai/api/v1/chat.proto
155-
sha = 712e28ae9319e881d6dd6473d22566d61fe22854
156-
etag = d68802a822549776b7acdc0c03a226c913375f588a7938b48741ea5d1852ef02
155+
sha = 6473565631bba0e29fbc11dfb3a66a98dd72d496
156+
etag = 881e524631d7e6d7a7244f34bf8d99ad0c3dc149146c3a89d0bb626586f99c7f
157157
weak
158158
[file "src/xAI.Protocol/deferred.proto"]
159159
url = https://github.com/xai-org/xai-proto/blob/main/proto/xai/api/v1/deferred.proto
160-
sha = 626a3a3f22d8aa11c7a185bf8902e7d415df0462
161-
etag = d47b84dddfc4252abbced302fde18ea8093933a3a8d5516350db596d3ae86595
160+
sha = 2b1a1fc74c463f55ec92af764d4b790f4def2a24
161+
etag = 246c0340096b0dbc754ceb4933bde0ebf92af049ebffb06ed1fef1840d04c46b
162162
weak
163163
[file "src/xAI.Protocol/documents.proto"]
164164
url = https://github.com/xai-org/xai-proto/blob/main/proto/xai/api/v1/documents.proto
@@ -197,8 +197,8 @@
197197
weak
198198
[file "src/xAI.Protocol/video.proto"]
199199
url = https://github.com/xai-org/xai-proto/blob/main/proto/xai/api/v1/video.proto
200-
sha = 1813f69cd0fafba12eea98996cb6da15f29396b9
201-
etag = 69bb5336a09ae73e22e5d1a8af2d65386953face7d0b57917478e56e1c2fc5c6
200+
sha = 43a1b6b731943b8f031c2f2d946f7183f0933ffd
201+
etag = 37562e78a6d64800b09c643632a33b6bc902955b491114bd5b6ec957d23d6e64
202202
weak
203203
[file "src/xAI.Protocol/google/protobuf/timestamp.proto"]
204204
url = https://github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/timestamp.proto

readme.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -441,9 +441,10 @@ Uses your own API Key.
441441
[![Adrian Alonso](https://avatars.githubusercontent.com/u/2027083?u=129cf516d99f5cb2fd0f4a0787a069f3446b7522&v=4&s=39 "Adrian Alonso")](https://github.com/adalon)
442442
[![Michael Hagedorn](https://avatars.githubusercontent.com/u/61711586?u=8f653dfcb641e8c18cc5f78692ebc6bb3a0c92be&v=4&s=39 "Michael Hagedorn")](https://github.com/Eule02)
443443
[![torutek](https://avatars.githubusercontent.com/u/33917059?v=4&s=39 "torutek")](https://github.com/torutek)
444-
[![mccaffers](https://avatars.githubusercontent.com/u/16667079?u=739e110e62a75870c981640447efa5eb2cb3bc8f&v=4&s=39 "mccaffers")](https://github.com/mccaffers)
444+
[![mccaffers](https://avatars.githubusercontent.com/u/16667079?u=110034edf51097a5ee82cb6a94ae5483568e3469&v=4&s=39 "mccaffers")](https://github.com/mccaffers)
445445
[![Seika Logiciel](https://avatars.githubusercontent.com/u/2564602?v=4&s=39 "Seika Logiciel")](https://github.com/SeikaLogiciel)
446446
[![Andrew Grant](https://avatars.githubusercontent.com/devlooped-user?s=39 "Andrew Grant")](https://github.com/wizardness)
447+
[![Lars](https://avatars.githubusercontent.com/u/1727124?v=4&s=39 "Lars")](https://github.com/latonz)
447448

448449

449450
<!-- sponsors.md -->

src/xAI.Protocol/chat.proto

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,10 @@ message GetCompletionsRequest {
166166

167167
// Allow the users to control what optional fields to be returned in the response.
168168
repeated IncludeOption include = 26;
169+
170+
// Number of agents to use for multi-agent models.
171+
// Only valid when model is a `multi-agent` model. Defaults to `AGENT_COUNT_UNSPECIFIED`.
172+
optional AgentCount agent_count = 29;
169173
}
170174

171175
message GetChatCompletionResponse {
@@ -543,6 +547,16 @@ enum ReasoningEffort {
543547
EFFORT_HIGH = 3;
544548
}
545549

550+
// Number of agents to use for multi-agent models.
551+
enum AgentCount {
552+
// Unspecified / unset value.
553+
AGENT_COUNT_UNSPECIFIED = 0;
554+
// Use 4 agents.
555+
AGENT_COUNT_4 = 1;
556+
// Use 16 agents.
557+
AGENT_COUNT_16 = 2;
558+
}
559+
546560
enum ToolMode {
547561
// Invalid tool mode.
548562
TOOL_MODE_INVALID = 0;

src/xAI.Protocol/deferred.proto

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,8 @@ enum DeferredStatus {
3131

3232
// The request is still being processed.
3333
PENDING = 3;
34+
35+
// The request failed due to an internal service error.
36+
// The error message is in the `error` field of the response.
37+
FAILED = 4;
3438
}

src/xAI.Protocol/video.proto

Lines changed: 59 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -58,21 +58,23 @@ message VideoUrlContent {
5858
// An API service for interaction with video generation models.
5959
service Video {
6060
// Create a video based on a text prompt and optionally an image.
61-
// If an image is provided, generates video with the image as the first frame (image-to-video).
62-
// If no image is provided, generates video from text only (text-to-video).
61+
// If an image is provided, generates video with the image as the first frame
62+
// (image-to-video). If no image is provided, generates video from text only
63+
// (text-to-video).
6364
//
64-
// This is an asynchronous operation. The method returns immediately with a request_id
65-
// that can be used to poll for the result using GetDeferredVideo.
65+
// This is an asynchronous operation. The method returns immediately with a
66+
// request_id that can be used to poll for the result using GetDeferredVideo.
6667
rpc GenerateVideo(GenerateVideoRequest) returns (StartDeferredResponse) {}
6768

68-
// Gets the result of a video generation started by calling `GenerateVideo`.
69-
rpc GetDeferredVideo(GetDeferredVideoRequest) returns (GetDeferredVideoResponse) {}
70-
}
69+
// Extend an existing video by generating continuation content.
70+
//
71+
// This is an asynchronous operation. The method returns immediately with a
72+
// request_id that can be used to poll for the result using GetDeferredVideo.
73+
rpc ExtendVideo(ExtendVideoRequest) returns (StartDeferredResponse) {}
7174

72-
// Output destination for generated video.
73-
message VideoOutput {
74-
// Signed URL to upload the generated video via HTTP PUT.
75-
string upload_url = 1;
75+
// Gets the result of a video generation started by calling `GenerateVideo` or
76+
// `ExtendVideo`.
77+
rpc GetDeferredVideo(GetDeferredVideoRequest) returns (GetDeferredVideoResponse) {}
7678
}
7779

7880
// Request message for generating a video.
@@ -104,6 +106,11 @@ message GenerateVideoRequest {
104106
// Optional resolution for video generation.
105107
// Defaults to 480p if not specified.
106108
optional VideoResolution resolution = 8;
109+
110+
// Optional reference images for reference-to-video (R2V) generation.
111+
// When provided (and `image` is not set), generates video using these images
112+
// as style/content references.
113+
repeated ImageUrlContent reference_images = 13;
107114
}
108115

109116
// Request for retrieving deferred video generation results.
@@ -120,8 +127,20 @@ message VideoResponse {
120127
// The model used to generate the video (ignoring aliases).
121128
string model = 2;
122129

123-
// The usage of the request.
130+
// Billing and cost information for this request.
124131
SamplingUsage usage = 3;
132+
133+
// Structured error describing why video generation failed.
134+
// Only present when the background generation encountered a failure
135+
// (either client error 4xx or server error 5xx).
136+
optional VideoError error = 6;
137+
138+
// Approximate completion percentage for the video generation task (0-100).
139+
// - When status is `PENDING`: progress is between 0-99, indicating current
140+
// completion.
141+
// - When status is `DONE`: progress is 100.
142+
// - When status is `FAILED`: progress is 0.
143+
int32 progress = 7;
125144
}
126145

127146
// Contains all data related to a generated video.
@@ -144,6 +163,33 @@ message GetDeferredVideoResponse {
144163
// Current status of the request.
145164
DeferredStatus status = 1;
146165

147-
// Response. Only present if `status=DONE`
166+
// Response. Only present if `status=DONE` or `status=FAILED`.
167+
// When failed, the `error` field in VideoResponse describes the failure.
148168
optional VideoResponse response = 2;
149169
}
170+
171+
// Structured error returned when video generation fails.
172+
message VideoError {
173+
// Machine-readable error code (e.g. "invalid_argument", "internal_error").
174+
string code = 1;
175+
// Human-readable error message describing the failure.
176+
string message = 2;
177+
}
178+
179+
// Request message for extending an existing video.
180+
message ExtendVideoRequest {
181+
// Prompt describing what should happen next in the video.
182+
string prompt = 1;
183+
184+
// Input video to extend. The extension continues from the end of this video.
185+
// Supports URL or base64-encoded video data.
186+
// Input video must be between 2 and 30 seconds long.
187+
VideoUrlContent video = 2;
188+
189+
// Name or alias of the video generation model to be used.
190+
string model = 3;
191+
192+
// Duration of the extension segment to generate in seconds (1-10).
193+
// Defaults to 6 seconds if not specified.
194+
optional int32 duration = 4;
195+
}

0 commit comments

Comments
 (0)