@tt-a1i/openpi 0.5.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -20
- package/SETUP.md +10 -4
- package/THIRD_PARTY_NOTICES.md +16 -0
- package/bin/openpi.js +25 -15
- package/extensions/ai-providers/LICENSE.upstream +23 -0
- package/extensions/ai-providers/README.md +65 -0
- package/extensions/ai-providers/antigravity/credentials.ts +52 -0
- package/extensions/ai-providers/antigravity/discovery.ts +130 -0
- package/extensions/ai-providers/antigravity/google-conversion.ts +455 -0
- package/extensions/ai-providers/antigravity/models.ts +84 -0
- package/extensions/ai-providers/antigravity/oauth.ts +700 -0
- package/extensions/ai-providers/antigravity/provider.ts +1116 -0
- package/extensions/ai-providers/antigravity/routing.ts +340 -0
- package/extensions/ai-providers/antigravity/with-resolvers.d.ts +19 -0
- package/extensions/ai-providers/cursor/constants.ts +5 -0
- package/extensions/ai-providers/cursor/credentials.ts +14 -0
- package/extensions/ai-providers/cursor/discovery.ts +291 -0
- package/extensions/ai-providers/cursor/input-images.ts +105 -0
- package/extensions/ai-providers/cursor/models.ts +45 -0
- package/extensions/ai-providers/cursor/oauth.ts +263 -0
- package/extensions/ai-providers/cursor/proto.ts +1271 -0
- package/extensions/ai-providers/cursor/protobuf.ts +1181 -0
- package/extensions/ai-providers/cursor/provider.ts +1431 -0
- package/extensions/ai-providers/cursor/proxy.ts +213 -0
- package/extensions/ai-providers/cursor/tool-bridge.ts +68 -0
- package/extensions/ai-providers/cursor/with-resolvers.d.ts +12 -0
- package/extensions/ai-providers/index.ts +86 -0
- package/extensions/ai-providers/oauth-adapter.ts +81 -0
- package/extensions/ai-providers/usage.ts +10 -0
- package/extensions/background-terminals/index.ts +8 -1
- package/extensions/background-terminals/src/manager.ts +3 -5
- package/extensions/background-terminals/src/result-delivery.ts +43 -23
- package/extensions/cron/index.ts +68 -27
- package/extensions/cron/schedule.ts +5 -1
- package/extensions/model-info/cache-diagnostics.ts +220 -0
- package/extensions/model-info/index.ts +45 -1
- package/extensions/plan-mode/index.ts +75 -4
- package/extensions/setup/index.ts +15 -3
- package/extensions/shared/child-session.ts +39 -5
- package/extensions/shared/completion-inbox.ts +193 -0
- package/extensions/shared/setup-config.ts +10 -1
- package/extensions/shared/structured-output.ts +154 -0
- package/extensions/subagents/index.ts +64 -7
- package/extensions/subagents/src/agent-types.ts +5 -17
- package/extensions/subagents/src/backends/pi.ts +130 -48
- package/extensions/subagents/src/backends/tool-preview.ts +29 -0
- package/extensions/subagents/src/domain.ts +16 -1
- package/extensions/subagents/src/manager.ts +7 -71
- package/extensions/subagents/src/prompt.ts +19 -5
- package/extensions/subagents/src/result-artifact.ts +32 -0
- package/extensions/subagents/src/result-delivery.ts +33 -14
- package/extensions/subagents/src/runtime.ts +10 -3
- package/extensions/ui-customization/footer.ts +16 -5
- package/extensions/user-input-fold/index.ts +42 -6
- package/extensions/web/index.ts +25 -2
- package/extensions/workflows/acceptance.ts +43 -19
- package/extensions/workflows/completion-projection.ts +3 -1
- package/extensions/workflows/dashboard.ts +147 -21
- package/extensions/workflows/index.ts +75 -20
- package/extensions/workflows/model.ts +5 -1
- package/extensions/workflows/progress-projection.ts +7 -1
- package/extensions/workflows/prompt.ts +4 -10
- package/extensions/workflows/result-delivery.ts +96 -22
- package/extensions/workflows/retention.ts +6 -0
- package/extensions/workflows/runner.ts +11 -233
- package/extensions/workflows/sandbox.ts +4 -0
- package/package.json +7 -7
- package/skills/subagents/REFERENCE.md +9 -9
- package/skills/subagents/SKILL.md +2 -1
- package/skills/workflows/REFERENCE.md +5 -3
- package/skills/workflows/SKILL.md +1 -1
- package/web/adapter/pi-adapter.ts +3 -0
- package/web/host/pi-coding-agent-entry.ts +162 -0
- package/web/host/web-host.ts +330 -50
- package/web/protocol/types.ts +5 -0
- package/web/runtime/pi-runtime.ts +240 -25
- package/web/runtime/types.ts +32 -1
- package/web/ui/app.js +343 -41
- package/web/ui/index.html +3 -0
- package/web/ui/styles.css +119 -37
|
@@ -0,0 +1,1271 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Small Cursor AgentService protobuf surface.
|
|
3
|
+
*
|
|
4
|
+
* The field numbers and message names are vendored from
|
|
5
|
+
* oh-my-pi@eab72e88e4, packages/catalog/src/discovery/cursor-proto.ts
|
|
6
|
+
* (MIT). Only the chat, image, model-discovery, and Pi MCP bridge messages
|
|
7
|
+
* used by this provider are retained. Unknown fields are skipped by
|
|
8
|
+
* the local protobuf codec so newer Cursor messages remain forward-compatible.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import { type MessageCodec, type ProtoMessage, pb } from "./protobuf.ts";
|
|
12
|
+
|
|
13
|
+
export interface AgentClientMessage extends ProtoMessage {
|
|
14
|
+
message:
|
|
15
|
+
| { case: undefined; value?: undefined }
|
|
16
|
+
| { case: "runRequest"; value: AgentRunRequest }
|
|
17
|
+
| { case: "execClientMessage"; value: ExecClientMessage }
|
|
18
|
+
| { case: "execClientControlMessage"; value: ExecClientControlMessage }
|
|
19
|
+
| { case: "kvClientMessage"; value: KvClientMessage }
|
|
20
|
+
| { case: "clientHeartbeat"; value: ClientHeartbeat };
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export const AgentClientMessageSchema: MessageCodec<AgentClientMessage> =
|
|
24
|
+
pb<AgentClientMessage>("agent.v1.AgentClientMessage", [
|
|
25
|
+
{
|
|
26
|
+
kind: "oneof",
|
|
27
|
+
name: "message",
|
|
28
|
+
variants: [
|
|
29
|
+
{
|
|
30
|
+
no: 1,
|
|
31
|
+
name: "runRequest",
|
|
32
|
+
kind: "message",
|
|
33
|
+
T: () => AgentRunRequestSchema,
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
no: 2,
|
|
37
|
+
name: "execClientMessage",
|
|
38
|
+
kind: "message",
|
|
39
|
+
T: () => ExecClientMessageSchema,
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
no: 5,
|
|
43
|
+
name: "execClientControlMessage",
|
|
44
|
+
kind: "message",
|
|
45
|
+
T: () => ExecClientControlMessageSchema,
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
no: 3,
|
|
49
|
+
name: "kvClientMessage",
|
|
50
|
+
kind: "message",
|
|
51
|
+
T: () => KvClientMessageSchema,
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
no: 7,
|
|
55
|
+
name: "clientHeartbeat",
|
|
56
|
+
kind: "message",
|
|
57
|
+
T: () => ClientHeartbeatSchema,
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
},
|
|
61
|
+
]);
|
|
62
|
+
|
|
63
|
+
export interface AgentRunRequest extends ProtoMessage {
|
|
64
|
+
conversationState?: ConversationStateStructure;
|
|
65
|
+
action?: ConversationAction;
|
|
66
|
+
modelDetails?: ModelDetails;
|
|
67
|
+
requestedModel?: RequestedModel;
|
|
68
|
+
conversationId?: string;
|
|
69
|
+
customSystemPrompt?: string;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export const AgentRunRequestSchema: MessageCodec<AgentRunRequest> =
|
|
73
|
+
pb<AgentRunRequest>("agent.v1.AgentRunRequest", [
|
|
74
|
+
{
|
|
75
|
+
no: 1,
|
|
76
|
+
name: "conversationState",
|
|
77
|
+
kind: "message",
|
|
78
|
+
T: () => ConversationStateStructureSchema,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
no: 2,
|
|
82
|
+
name: "action",
|
|
83
|
+
kind: "message",
|
|
84
|
+
T: () => ConversationActionSchema,
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
no: 3,
|
|
88
|
+
name: "modelDetails",
|
|
89
|
+
kind: "message",
|
|
90
|
+
T: () => ModelDetailsSchema,
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
no: 9,
|
|
94
|
+
name: "requestedModel",
|
|
95
|
+
kind: "message",
|
|
96
|
+
T: () => RequestedModelSchema,
|
|
97
|
+
},
|
|
98
|
+
{ no: 5, name: "conversationId", kind: "string", optional: true },
|
|
99
|
+
{ no: 8, name: "customSystemPrompt", kind: "string", optional: true },
|
|
100
|
+
]);
|
|
101
|
+
|
|
102
|
+
export interface ConversationStateStructure extends ProtoMessage {
|
|
103
|
+
rootPromptMessagesJson: Uint8Array[];
|
|
104
|
+
turns: Uint8Array[];
|
|
105
|
+
pendingToolCalls: string[];
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export const ConversationStateStructureSchema: MessageCodec<ConversationStateStructure> =
|
|
109
|
+
pb<ConversationStateStructure>("agent.v1.ConversationStateStructure", [
|
|
110
|
+
{ no: 1, name: "rootPromptMessagesJson", kind: "bytes", repeat: true },
|
|
111
|
+
{ no: 4, name: "pendingToolCalls", kind: "string", repeat: true },
|
|
112
|
+
{ no: 8, name: "turns", kind: "bytes", repeat: true },
|
|
113
|
+
]);
|
|
114
|
+
|
|
115
|
+
export interface ConversationAction extends ProtoMessage {
|
|
116
|
+
action:
|
|
117
|
+
| { case: undefined; value?: undefined }
|
|
118
|
+
| { case: "userMessageAction"; value: UserMessageAction }
|
|
119
|
+
| { case: "resumeAction"; value: ResumeAction };
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export const ConversationActionSchema: MessageCodec<ConversationAction> =
|
|
123
|
+
pb<ConversationAction>("agent.v1.ConversationAction", [
|
|
124
|
+
{
|
|
125
|
+
kind: "oneof",
|
|
126
|
+
name: "action",
|
|
127
|
+
variants: [
|
|
128
|
+
{
|
|
129
|
+
no: 1,
|
|
130
|
+
name: "userMessageAction",
|
|
131
|
+
kind: "message",
|
|
132
|
+
T: () => UserMessageActionSchema,
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
no: 2,
|
|
136
|
+
name: "resumeAction",
|
|
137
|
+
kind: "message",
|
|
138
|
+
T: () => ResumeActionSchema,
|
|
139
|
+
},
|
|
140
|
+
],
|
|
141
|
+
},
|
|
142
|
+
]);
|
|
143
|
+
|
|
144
|
+
export interface UserMessageAction extends ProtoMessage {
|
|
145
|
+
userMessage?: UserMessage;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export const UserMessageActionSchema: MessageCodec<UserMessageAction> =
|
|
149
|
+
pb<UserMessageAction>("agent.v1.UserMessageAction", [
|
|
150
|
+
{ no: 1, name: "userMessage", kind: "message", T: () => UserMessageSchema },
|
|
151
|
+
]);
|
|
152
|
+
|
|
153
|
+
export interface ResumeAction extends ProtoMessage {}
|
|
154
|
+
|
|
155
|
+
export const ResumeActionSchema: MessageCodec<ResumeAction> = pb<ResumeAction>(
|
|
156
|
+
"agent.v1.ResumeAction",
|
|
157
|
+
[],
|
|
158
|
+
);
|
|
159
|
+
|
|
160
|
+
export interface UserMessage extends ProtoMessage {
|
|
161
|
+
text: string;
|
|
162
|
+
messageId: string;
|
|
163
|
+
selectedContext?: SelectedContext;
|
|
164
|
+
mode: number;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
export const UserMessageSchema: MessageCodec<UserMessage> = pb<UserMessage>(
|
|
168
|
+
"agent.v1.UserMessage",
|
|
169
|
+
[
|
|
170
|
+
{ no: 1, name: "text", kind: "string" },
|
|
171
|
+
{ no: 2, name: "messageId", kind: "string" },
|
|
172
|
+
{
|
|
173
|
+
no: 3,
|
|
174
|
+
name: "selectedContext",
|
|
175
|
+
kind: "message",
|
|
176
|
+
T: () => SelectedContextSchema,
|
|
177
|
+
},
|
|
178
|
+
{ no: 4, name: "mode", kind: "int32" },
|
|
179
|
+
],
|
|
180
|
+
);
|
|
181
|
+
|
|
182
|
+
export interface SelectedContext extends ProtoMessage {
|
|
183
|
+
selectedImages: SelectedImage[];
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
export const SelectedContextSchema: MessageCodec<SelectedContext> =
|
|
187
|
+
pb<SelectedContext>("agent.v1.SelectedContext", [
|
|
188
|
+
{
|
|
189
|
+
no: 1,
|
|
190
|
+
name: "selectedImages",
|
|
191
|
+
kind: "message",
|
|
192
|
+
T: () => SelectedImageSchema,
|
|
193
|
+
repeat: true,
|
|
194
|
+
},
|
|
195
|
+
]);
|
|
196
|
+
|
|
197
|
+
export interface SelectedImage extends ProtoMessage {
|
|
198
|
+
uuid: string;
|
|
199
|
+
path: string;
|
|
200
|
+
dimension?: SelectedImage_Dimension;
|
|
201
|
+
mimeType: string;
|
|
202
|
+
dataOrBlobId:
|
|
203
|
+
| { case: undefined; value?: undefined }
|
|
204
|
+
| { case: "blobId"; value: Uint8Array }
|
|
205
|
+
| { case: "data"; value: Uint8Array }
|
|
206
|
+
| { case: "blobIdWithData"; value: SelectedImage_BlobIdWithData };
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
export const SelectedImageSchema: MessageCodec<SelectedImage> =
|
|
210
|
+
pb<SelectedImage>("agent.v1.SelectedImage", [
|
|
211
|
+
{ no: 2, name: "uuid", kind: "string" },
|
|
212
|
+
{ no: 3, name: "path", kind: "string" },
|
|
213
|
+
{
|
|
214
|
+
no: 4,
|
|
215
|
+
name: "dimension",
|
|
216
|
+
kind: "message",
|
|
217
|
+
T: () => SelectedImage_DimensionSchema,
|
|
218
|
+
},
|
|
219
|
+
{ no: 7, name: "mimeType", kind: "string" },
|
|
220
|
+
{
|
|
221
|
+
kind: "oneof",
|
|
222
|
+
name: "dataOrBlobId",
|
|
223
|
+
variants: [
|
|
224
|
+
{ no: 1, name: "blobId", kind: "bytes" },
|
|
225
|
+
{ no: 8, name: "data", kind: "bytes" },
|
|
226
|
+
{
|
|
227
|
+
no: 9,
|
|
228
|
+
name: "blobIdWithData",
|
|
229
|
+
kind: "message",
|
|
230
|
+
T: () => SelectedImage_BlobIdWithDataSchema,
|
|
231
|
+
},
|
|
232
|
+
],
|
|
233
|
+
},
|
|
234
|
+
]);
|
|
235
|
+
|
|
236
|
+
export interface SelectedImage_BlobIdWithData extends ProtoMessage {
|
|
237
|
+
blobId: Uint8Array;
|
|
238
|
+
data: Uint8Array;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
export const SelectedImage_BlobIdWithDataSchema: MessageCodec<SelectedImage_BlobIdWithData> =
|
|
242
|
+
pb<SelectedImage_BlobIdWithData>("agent.v1.SelectedImage_BlobIdWithData", [
|
|
243
|
+
{ no: 1, name: "blobId", kind: "bytes" },
|
|
244
|
+
{ no: 2, name: "data", kind: "bytes" },
|
|
245
|
+
]);
|
|
246
|
+
|
|
247
|
+
export interface SelectedImage_Dimension extends ProtoMessage {
|
|
248
|
+
width: number;
|
|
249
|
+
height: number;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
export const SelectedImage_DimensionSchema: MessageCodec<SelectedImage_Dimension> =
|
|
253
|
+
pb<SelectedImage_Dimension>("agent.v1.SelectedImage_Dimension", [
|
|
254
|
+
{ no: 1, name: "width", kind: "int32" },
|
|
255
|
+
{ no: 2, name: "height", kind: "int32" },
|
|
256
|
+
]);
|
|
257
|
+
|
|
258
|
+
export interface ConversationTurnStructure extends ProtoMessage {
|
|
259
|
+
turn:
|
|
260
|
+
| { case: undefined; value?: undefined }
|
|
261
|
+
| { case: "agentConversationTurn"; value: AgentConversationTurnStructure };
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
export const ConversationTurnStructureSchema: MessageCodec<ConversationTurnStructure> =
|
|
265
|
+
pb<ConversationTurnStructure>("agent.v1.ConversationTurnStructure", [
|
|
266
|
+
{
|
|
267
|
+
kind: "oneof",
|
|
268
|
+
name: "turn",
|
|
269
|
+
variants: [
|
|
270
|
+
{
|
|
271
|
+
no: 1,
|
|
272
|
+
name: "agentConversationTurn",
|
|
273
|
+
kind: "message",
|
|
274
|
+
T: () => AgentConversationTurnStructureSchema,
|
|
275
|
+
},
|
|
276
|
+
],
|
|
277
|
+
},
|
|
278
|
+
]);
|
|
279
|
+
|
|
280
|
+
export interface AgentConversationTurnStructure extends ProtoMessage {
|
|
281
|
+
userMessage: Uint8Array;
|
|
282
|
+
steps: Uint8Array[];
|
|
283
|
+
requestId?: string;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
export const AgentConversationTurnStructureSchema: MessageCodec<AgentConversationTurnStructure> =
|
|
287
|
+
pb<AgentConversationTurnStructure>(
|
|
288
|
+
"agent.v1.AgentConversationTurnStructure",
|
|
289
|
+
[
|
|
290
|
+
{ no: 1, name: "userMessage", kind: "bytes" },
|
|
291
|
+
{ no: 2, name: "steps", kind: "bytes", repeat: true },
|
|
292
|
+
{ no: 3, name: "requestId", kind: "string", optional: true },
|
|
293
|
+
],
|
|
294
|
+
);
|
|
295
|
+
|
|
296
|
+
export interface ConversationStep extends ProtoMessage {
|
|
297
|
+
message:
|
|
298
|
+
| { case: undefined; value?: undefined }
|
|
299
|
+
| { case: "assistantMessage"; value: AssistantMessage }
|
|
300
|
+
| { case: "thinkingMessage"; value: ThinkingMessage }
|
|
301
|
+
| { case: "toolCall"; value: CursorToolCall };
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
export const ConversationStepSchema: MessageCodec<ConversationStep> =
|
|
305
|
+
pb<ConversationStep>("agent.v1.ConversationStep", [
|
|
306
|
+
{
|
|
307
|
+
kind: "oneof",
|
|
308
|
+
name: "message",
|
|
309
|
+
variants: [
|
|
310
|
+
{
|
|
311
|
+
no: 2,
|
|
312
|
+
name: "toolCall",
|
|
313
|
+
kind: "message",
|
|
314
|
+
T: () => CursorToolCallSchema,
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
no: 1,
|
|
318
|
+
name: "assistantMessage",
|
|
319
|
+
kind: "message",
|
|
320
|
+
T: () => AssistantMessageSchema,
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
no: 3,
|
|
324
|
+
name: "thinkingMessage",
|
|
325
|
+
kind: "message",
|
|
326
|
+
T: () => ThinkingMessageSchema,
|
|
327
|
+
},
|
|
328
|
+
],
|
|
329
|
+
},
|
|
330
|
+
]);
|
|
331
|
+
|
|
332
|
+
export interface AssistantMessage extends ProtoMessage {
|
|
333
|
+
text: string;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
export const AssistantMessageSchema: MessageCodec<AssistantMessage> =
|
|
337
|
+
pb<AssistantMessage>("agent.v1.AssistantMessage", [
|
|
338
|
+
{ no: 1, name: "text", kind: "string" },
|
|
339
|
+
]);
|
|
340
|
+
|
|
341
|
+
export interface ThinkingMessage extends ProtoMessage {
|
|
342
|
+
text: string;
|
|
343
|
+
durationMs: number;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
export const ThinkingMessageSchema: MessageCodec<ThinkingMessage> =
|
|
347
|
+
pb<ThinkingMessage>("agent.v1.ThinkingMessage", [
|
|
348
|
+
{ no: 1, name: "text", kind: "string" },
|
|
349
|
+
{ no: 2, name: "durationMs", kind: "uint32" },
|
|
350
|
+
]);
|
|
351
|
+
|
|
352
|
+
export interface ModelDetails extends ProtoMessage {
|
|
353
|
+
modelId: string;
|
|
354
|
+
displayModelId: string;
|
|
355
|
+
displayName: string;
|
|
356
|
+
displayNameShort: string;
|
|
357
|
+
aliases: string[];
|
|
358
|
+
thinkingDetails?: ThinkingDetails;
|
|
359
|
+
maxMode?: boolean;
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
export const ModelDetailsSchema: MessageCodec<ModelDetails> = pb<ModelDetails>(
|
|
363
|
+
"agent.v1.ModelDetails",
|
|
364
|
+
[
|
|
365
|
+
{ no: 1, name: "modelId", kind: "string" },
|
|
366
|
+
{ no: 3, name: "displayModelId", kind: "string" },
|
|
367
|
+
{ no: 4, name: "displayName", kind: "string" },
|
|
368
|
+
{ no: 5, name: "displayNameShort", kind: "string" },
|
|
369
|
+
{ no: 6, name: "aliases", kind: "string", repeat: true },
|
|
370
|
+
{
|
|
371
|
+
no: 2,
|
|
372
|
+
name: "thinkingDetails",
|
|
373
|
+
kind: "message",
|
|
374
|
+
T: () => ThinkingDetailsSchema,
|
|
375
|
+
},
|
|
376
|
+
{ no: 7, name: "maxMode", kind: "bool", optional: true },
|
|
377
|
+
],
|
|
378
|
+
);
|
|
379
|
+
|
|
380
|
+
export interface ThinkingDetails extends ProtoMessage {}
|
|
381
|
+
|
|
382
|
+
export const ThinkingDetailsSchema: MessageCodec<ThinkingDetails> =
|
|
383
|
+
pb<ThinkingDetails>("agent.v1.ThinkingDetails", []);
|
|
384
|
+
|
|
385
|
+
export interface RequestedModel extends ProtoMessage {
|
|
386
|
+
modelId: string;
|
|
387
|
+
maxMode: boolean;
|
|
388
|
+
parameters: RequestedModel_ModelParameterbytes[];
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
export const RequestedModelSchema: MessageCodec<RequestedModel> =
|
|
392
|
+
pb<RequestedModel>("agent.v1.RequestedModel", [
|
|
393
|
+
{ no: 1, name: "modelId", kind: "string" },
|
|
394
|
+
{ no: 2, name: "maxMode", kind: "bool" },
|
|
395
|
+
{
|
|
396
|
+
no: 3,
|
|
397
|
+
name: "parameters",
|
|
398
|
+
kind: "message",
|
|
399
|
+
T: () => RequestedModel_ModelParameterbytesSchema,
|
|
400
|
+
repeat: true,
|
|
401
|
+
},
|
|
402
|
+
]);
|
|
403
|
+
|
|
404
|
+
export interface RequestedModel_ModelParameterbytes extends ProtoMessage {
|
|
405
|
+
id: string;
|
|
406
|
+
value: string;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
export const RequestedModel_ModelParameterbytesSchema: MessageCodec<RequestedModel_ModelParameterbytes> =
|
|
410
|
+
pb<RequestedModel_ModelParameterbytes>(
|
|
411
|
+
"agent.v1.RequestedModel_ModelParameterbytes",
|
|
412
|
+
[
|
|
413
|
+
{ no: 1, name: "id", kind: "string" },
|
|
414
|
+
{ no: 2, name: "value", kind: "string" },
|
|
415
|
+
],
|
|
416
|
+
);
|
|
417
|
+
|
|
418
|
+
export interface ClientHeartbeat extends ProtoMessage {}
|
|
419
|
+
|
|
420
|
+
export const ClientHeartbeatSchema: MessageCodec<ClientHeartbeat> =
|
|
421
|
+
pb<ClientHeartbeat>("agent.v1.ClientHeartbeat", []);
|
|
422
|
+
|
|
423
|
+
export interface GetBlobArgs extends ProtoMessage {
|
|
424
|
+
blobId: Uint8Array;
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
export const GetBlobArgsSchema: MessageCodec<GetBlobArgs> = pb<GetBlobArgs>(
|
|
428
|
+
"agent.v1.GetBlobArgs",
|
|
429
|
+
[{ no: 1, name: "blobId", kind: "bytes" }],
|
|
430
|
+
);
|
|
431
|
+
|
|
432
|
+
export interface GetBlobResult extends ProtoMessage {
|
|
433
|
+
blobData?: Uint8Array;
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
export const GetBlobResultSchema: MessageCodec<GetBlobResult> =
|
|
437
|
+
pb<GetBlobResult>("agent.v1.GetBlobResult", [
|
|
438
|
+
{ no: 1, name: "blobData", kind: "bytes", optional: true },
|
|
439
|
+
]);
|
|
440
|
+
|
|
441
|
+
export interface SetBlobArgs extends ProtoMessage {
|
|
442
|
+
blobId: Uint8Array;
|
|
443
|
+
blobData: Uint8Array;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
export const SetBlobArgsSchema: MessageCodec<SetBlobArgs> = pb<SetBlobArgs>(
|
|
447
|
+
"agent.v1.SetBlobArgs",
|
|
448
|
+
[
|
|
449
|
+
{ no: 1, name: "blobId", kind: "bytes" },
|
|
450
|
+
{ no: 2, name: "blobData", kind: "bytes" },
|
|
451
|
+
],
|
|
452
|
+
);
|
|
453
|
+
|
|
454
|
+
export interface SetBlobResult extends ProtoMessage {}
|
|
455
|
+
|
|
456
|
+
export const SetBlobResultSchema: MessageCodec<SetBlobResult> =
|
|
457
|
+
pb<SetBlobResult>("agent.v1.SetBlobResult", []);
|
|
458
|
+
|
|
459
|
+
export interface KvClientMessage extends ProtoMessage {
|
|
460
|
+
id: number;
|
|
461
|
+
message:
|
|
462
|
+
| { case: undefined; value?: undefined }
|
|
463
|
+
| { case: "getBlobResult"; value: GetBlobResult }
|
|
464
|
+
| { case: "setBlobResult"; value: SetBlobResult };
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
export const KvClientMessageSchema: MessageCodec<KvClientMessage> =
|
|
468
|
+
pb<KvClientMessage>("agent.v1.KvClientMessage", [
|
|
469
|
+
{ no: 1, name: "id", kind: "uint32" },
|
|
470
|
+
{
|
|
471
|
+
kind: "oneof",
|
|
472
|
+
name: "message",
|
|
473
|
+
variants: [
|
|
474
|
+
{
|
|
475
|
+
no: 2,
|
|
476
|
+
name: "getBlobResult",
|
|
477
|
+
kind: "message",
|
|
478
|
+
T: () => GetBlobResultSchema,
|
|
479
|
+
},
|
|
480
|
+
{
|
|
481
|
+
no: 3,
|
|
482
|
+
name: "setBlobResult",
|
|
483
|
+
kind: "message",
|
|
484
|
+
T: () => SetBlobResultSchema,
|
|
485
|
+
},
|
|
486
|
+
],
|
|
487
|
+
},
|
|
488
|
+
]);
|
|
489
|
+
|
|
490
|
+
export interface KvServerMessage extends ProtoMessage {
|
|
491
|
+
id: number;
|
|
492
|
+
message:
|
|
493
|
+
| { case: undefined; value?: undefined }
|
|
494
|
+
| { case: "getBlobArgs"; value: GetBlobArgs }
|
|
495
|
+
| { case: "setBlobArgs"; value: SetBlobArgs };
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
export const KvServerMessageSchema: MessageCodec<KvServerMessage> =
|
|
499
|
+
pb<KvServerMessage>("agent.v1.KvServerMessage", [
|
|
500
|
+
{ no: 1, name: "id", kind: "uint32" },
|
|
501
|
+
{
|
|
502
|
+
kind: "oneof",
|
|
503
|
+
name: "message",
|
|
504
|
+
variants: [
|
|
505
|
+
{
|
|
506
|
+
no: 2,
|
|
507
|
+
name: "getBlobArgs",
|
|
508
|
+
kind: "message",
|
|
509
|
+
T: () => GetBlobArgsSchema,
|
|
510
|
+
},
|
|
511
|
+
{
|
|
512
|
+
no: 3,
|
|
513
|
+
name: "setBlobArgs",
|
|
514
|
+
kind: "message",
|
|
515
|
+
T: () => SetBlobArgsSchema,
|
|
516
|
+
},
|
|
517
|
+
],
|
|
518
|
+
},
|
|
519
|
+
]);
|
|
520
|
+
|
|
521
|
+
/** Exec context is the only server-side interaction answered successfully. */
|
|
522
|
+
export interface CursorRuleTypeGlobal extends ProtoMessage {}
|
|
523
|
+
|
|
524
|
+
export const CursorRuleTypeGlobalSchema: MessageCodec<CursorRuleTypeGlobal> =
|
|
525
|
+
pb<CursorRuleTypeGlobal>("agent.v1.CursorRuleTypeGlobal", []);
|
|
526
|
+
|
|
527
|
+
export interface CursorRuleType extends ProtoMessage {
|
|
528
|
+
type:
|
|
529
|
+
| { case: undefined; value?: undefined }
|
|
530
|
+
| { case: "global"; value: CursorRuleTypeGlobal };
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
export const CursorRuleTypeSchema: MessageCodec<CursorRuleType> =
|
|
534
|
+
pb<CursorRuleType>("agent.v1.CursorRuleType", [
|
|
535
|
+
{
|
|
536
|
+
kind: "oneof",
|
|
537
|
+
name: "type",
|
|
538
|
+
variants: [
|
|
539
|
+
{
|
|
540
|
+
no: 1,
|
|
541
|
+
name: "global",
|
|
542
|
+
kind: "message",
|
|
543
|
+
T: () => CursorRuleTypeGlobalSchema,
|
|
544
|
+
},
|
|
545
|
+
],
|
|
546
|
+
},
|
|
547
|
+
]);
|
|
548
|
+
|
|
549
|
+
export interface CursorRule extends ProtoMessage {
|
|
550
|
+
fullPath: string;
|
|
551
|
+
content: string;
|
|
552
|
+
type?: CursorRuleType;
|
|
553
|
+
source: number;
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
export const CursorRuleSchema: MessageCodec<CursorRule> = pb<CursorRule>(
|
|
557
|
+
"agent.v1.CursorRule",
|
|
558
|
+
[
|
|
559
|
+
{ no: 1, name: "fullPath", kind: "string" },
|
|
560
|
+
{ no: 2, name: "content", kind: "string" },
|
|
561
|
+
{ no: 3, name: "type", kind: "message", T: () => CursorRuleTypeSchema },
|
|
562
|
+
{ no: 4, name: "source", kind: "int32" },
|
|
563
|
+
],
|
|
564
|
+
);
|
|
565
|
+
|
|
566
|
+
export interface McpToolDefinition extends ProtoMessage {
|
|
567
|
+
name: string;
|
|
568
|
+
providerIdentifier: string;
|
|
569
|
+
toolName: string;
|
|
570
|
+
description: string;
|
|
571
|
+
inputSchema: Uint8Array;
|
|
572
|
+
inputSchemaJson?: string;
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
export const McpToolDefinitionSchema: MessageCodec<McpToolDefinition> =
|
|
576
|
+
pb<McpToolDefinition>("agent.v1.McpToolDefinition", [
|
|
577
|
+
{ no: 1, name: "name", kind: "string" },
|
|
578
|
+
{ no: 4, name: "providerIdentifier", kind: "string" },
|
|
579
|
+
{ no: 5, name: "toolName", kind: "string" },
|
|
580
|
+
{ no: 2, name: "description", kind: "string" },
|
|
581
|
+
{ no: 3, name: "inputSchema", kind: "bytes" },
|
|
582
|
+
{ no: 6, name: "inputSchemaJson", kind: "string", optional: true },
|
|
583
|
+
]);
|
|
584
|
+
|
|
585
|
+
export interface McpArgs extends ProtoMessage {
|
|
586
|
+
name: string;
|
|
587
|
+
args: Record<string, Uint8Array>;
|
|
588
|
+
toolCallId: string;
|
|
589
|
+
providerIdentifier: string;
|
|
590
|
+
toolName: string;
|
|
591
|
+
smartModeApprovalOnly: boolean;
|
|
592
|
+
skipApproval: boolean;
|
|
593
|
+
serverIdentifier: string;
|
|
594
|
+
}
|
|
595
|
+
|
|
596
|
+
export const McpArgsSchema: MessageCodec<McpArgs> = pb<McpArgs>(
|
|
597
|
+
"agent.v1.McpArgs",
|
|
598
|
+
[
|
|
599
|
+
{ no: 1, name: "name", kind: "string" },
|
|
600
|
+
{ no: 2, name: "args", kind: "map", K: "string", V: "bytes" },
|
|
601
|
+
{ no: 3, name: "toolCallId", kind: "string" },
|
|
602
|
+
{ no: 4, name: "providerIdentifier", kind: "string" },
|
|
603
|
+
{ no: 5, name: "toolName", kind: "string" },
|
|
604
|
+
{ no: 7, name: "smartModeApprovalOnly", kind: "bool" },
|
|
605
|
+
{ no: 8, name: "skipApproval", kind: "bool" },
|
|
606
|
+
{ no: 9, name: "serverIdentifier", kind: "string" },
|
|
607
|
+
],
|
|
608
|
+
);
|
|
609
|
+
|
|
610
|
+
export interface McpRejected extends ProtoMessage {
|
|
611
|
+
reason: string;
|
|
612
|
+
isReadonly: boolean;
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
export const McpRejectedSchema: MessageCodec<McpRejected> = pb<McpRejected>(
|
|
616
|
+
"agent.v1.McpRejected",
|
|
617
|
+
[
|
|
618
|
+
{ no: 1, name: "reason", kind: "string" },
|
|
619
|
+
{ no: 2, name: "isReadonly", kind: "bool" },
|
|
620
|
+
],
|
|
621
|
+
);
|
|
622
|
+
|
|
623
|
+
export interface McpToolCall extends ProtoMessage {
|
|
624
|
+
result?: McpToolResult;
|
|
625
|
+
args?: McpArgs;
|
|
626
|
+
description?: string;
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
export const McpToolCallSchema: MessageCodec<McpToolCall> = pb<McpToolCall>(
|
|
630
|
+
"agent.v1.McpToolCall",
|
|
631
|
+
[
|
|
632
|
+
{ no: 2, name: "result", kind: "message", T: () => McpToolResultSchema },
|
|
633
|
+
{ no: 1, name: "args", kind: "message", T: () => McpArgsSchema },
|
|
634
|
+
{ no: 3, name: "description", kind: "string", optional: true },
|
|
635
|
+
],
|
|
636
|
+
);
|
|
637
|
+
|
|
638
|
+
export interface RequestContext extends ProtoMessage {
|
|
639
|
+
rules: CursorRule[];
|
|
640
|
+
tools: McpToolDefinition[];
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
export const RequestContextSchema: MessageCodec<RequestContext> =
|
|
644
|
+
pb<RequestContext>("agent.v1.RequestContext", [
|
|
645
|
+
{
|
|
646
|
+
no: 2,
|
|
647
|
+
name: "rules",
|
|
648
|
+
kind: "message",
|
|
649
|
+
T: () => CursorRuleSchema,
|
|
650
|
+
repeat: true,
|
|
651
|
+
},
|
|
652
|
+
{
|
|
653
|
+
no: 7,
|
|
654
|
+
name: "tools",
|
|
655
|
+
kind: "message",
|
|
656
|
+
T: () => McpToolDefinitionSchema,
|
|
657
|
+
repeat: true,
|
|
658
|
+
},
|
|
659
|
+
]);
|
|
660
|
+
|
|
661
|
+
export interface RequestContextArgs extends ProtoMessage {
|
|
662
|
+
notesSessionId?: string;
|
|
663
|
+
workspaceId?: string;
|
|
664
|
+
readOnlyPinnedTreeSha?: string;
|
|
665
|
+
readOnlyPluginCacheRoot?: string;
|
|
666
|
+
useCached?: boolean;
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
export const RequestContextArgsSchema: MessageCodec<RequestContextArgs> =
|
|
670
|
+
pb<RequestContextArgs>("agent.v1.RequestContextArgs", [
|
|
671
|
+
{ no: 2, name: "notesSessionId", kind: "string", optional: true },
|
|
672
|
+
{ no: 3, name: "workspaceId", kind: "string", optional: true },
|
|
673
|
+
{ no: 4, name: "readOnlyPinnedTreeSha", kind: "string", optional: true },
|
|
674
|
+
{ no: 5, name: "readOnlyPluginCacheRoot", kind: "string", optional: true },
|
|
675
|
+
{ no: 7, name: "useCached", kind: "bool", optional: true },
|
|
676
|
+
]);
|
|
677
|
+
|
|
678
|
+
export interface RequestContextSuccess extends ProtoMessage {
|
|
679
|
+
requestContext?: RequestContext;
|
|
680
|
+
servedFromDiskCache?: boolean;
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
export const RequestContextSuccessSchema: MessageCodec<RequestContextSuccess> =
|
|
684
|
+
pb<RequestContextSuccess>("agent.v1.RequestContextSuccess", [
|
|
685
|
+
{
|
|
686
|
+
no: 1,
|
|
687
|
+
name: "requestContext",
|
|
688
|
+
kind: "message",
|
|
689
|
+
T: () => RequestContextSchema,
|
|
690
|
+
},
|
|
691
|
+
{ no: 2, name: "servedFromDiskCache", kind: "bool", optional: true },
|
|
692
|
+
]);
|
|
693
|
+
|
|
694
|
+
export interface RequestContextError extends ProtoMessage {
|
|
695
|
+
error: string;
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
export const RequestContextErrorSchema: MessageCodec<RequestContextError> =
|
|
699
|
+
pb<RequestContextError>("agent.v1.RequestContextError", [
|
|
700
|
+
{ no: 1, name: "error", kind: "string" },
|
|
701
|
+
]);
|
|
702
|
+
|
|
703
|
+
export interface RequestContextRejected extends ProtoMessage {
|
|
704
|
+
reason: string;
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
export const RequestContextRejectedSchema: MessageCodec<RequestContextRejected> =
|
|
708
|
+
pb<RequestContextRejected>("agent.v1.RequestContextRejected", [
|
|
709
|
+
{ no: 1, name: "reason", kind: "string" },
|
|
710
|
+
]);
|
|
711
|
+
|
|
712
|
+
export interface RequestContextResult extends ProtoMessage {
|
|
713
|
+
result:
|
|
714
|
+
| { case: undefined; value?: undefined }
|
|
715
|
+
| { case: "success"; value: RequestContextSuccess }
|
|
716
|
+
| { case: "error"; value: RequestContextError }
|
|
717
|
+
| { case: "rejected"; value: RequestContextRejected };
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
export const RequestContextResultSchema: MessageCodec<RequestContextResult> =
|
|
721
|
+
pb<RequestContextResult>("agent.v1.RequestContextResult", [
|
|
722
|
+
{
|
|
723
|
+
kind: "oneof",
|
|
724
|
+
name: "result",
|
|
725
|
+
variants: [
|
|
726
|
+
{
|
|
727
|
+
no: 1,
|
|
728
|
+
name: "success",
|
|
729
|
+
kind: "message",
|
|
730
|
+
T: () => RequestContextSuccessSchema,
|
|
731
|
+
},
|
|
732
|
+
{
|
|
733
|
+
no: 2,
|
|
734
|
+
name: "error",
|
|
735
|
+
kind: "message",
|
|
736
|
+
T: () => RequestContextErrorSchema,
|
|
737
|
+
},
|
|
738
|
+
{
|
|
739
|
+
no: 3,
|
|
740
|
+
name: "rejected",
|
|
741
|
+
kind: "message",
|
|
742
|
+
T: () => RequestContextRejectedSchema,
|
|
743
|
+
},
|
|
744
|
+
],
|
|
745
|
+
},
|
|
746
|
+
]);
|
|
747
|
+
|
|
748
|
+
export interface ExecClientMessage extends ProtoMessage {
|
|
749
|
+
id: number;
|
|
750
|
+
execId: string;
|
|
751
|
+
message:
|
|
752
|
+
| { case: undefined; value?: undefined }
|
|
753
|
+
| { case: "requestContextResult"; value: RequestContextResult }
|
|
754
|
+
| { case: "mcpResult"; value: McpResult };
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
export const ExecClientMessageSchema: MessageCodec<ExecClientMessage> =
|
|
758
|
+
pb<ExecClientMessage>("agent.v1.ExecClientMessage", [
|
|
759
|
+
{ no: 1, name: "id", kind: "uint32" },
|
|
760
|
+
{ no: 15, name: "execId", kind: "string" },
|
|
761
|
+
{
|
|
762
|
+
kind: "oneof",
|
|
763
|
+
name: "message",
|
|
764
|
+
variants: [
|
|
765
|
+
{
|
|
766
|
+
no: 11,
|
|
767
|
+
name: "mcpResult",
|
|
768
|
+
kind: "message",
|
|
769
|
+
T: () => McpResultSchema,
|
|
770
|
+
},
|
|
771
|
+
{
|
|
772
|
+
no: 10,
|
|
773
|
+
name: "requestContextResult",
|
|
774
|
+
kind: "message",
|
|
775
|
+
T: () => RequestContextResultSchema,
|
|
776
|
+
},
|
|
777
|
+
],
|
|
778
|
+
},
|
|
779
|
+
]);
|
|
780
|
+
|
|
781
|
+
export interface ExecClientStreamClose extends ProtoMessage {
|
|
782
|
+
id: number;
|
|
783
|
+
}
|
|
784
|
+
|
|
785
|
+
export const ExecClientStreamCloseSchema: MessageCodec<ExecClientStreamClose> =
|
|
786
|
+
pb<ExecClientStreamClose>("agent.v1.ExecClientStreamClose", [
|
|
787
|
+
{ no: 1, name: "id", kind: "uint32" },
|
|
788
|
+
]);
|
|
789
|
+
|
|
790
|
+
export interface ExecClientThrow extends ProtoMessage {
|
|
791
|
+
id: number;
|
|
792
|
+
error: string;
|
|
793
|
+
stackTrace?: string;
|
|
794
|
+
errorCode?: string;
|
|
795
|
+
}
|
|
796
|
+
|
|
797
|
+
export const ExecClientThrowSchema: MessageCodec<ExecClientThrow> =
|
|
798
|
+
pb<ExecClientThrow>("agent.v1.ExecClientThrow", [
|
|
799
|
+
{ no: 1, name: "id", kind: "uint32" },
|
|
800
|
+
{ no: 2, name: "error", kind: "string" },
|
|
801
|
+
{ no: 3, name: "stackTrace", kind: "string", optional: true },
|
|
802
|
+
{ no: 4, name: "errorCode", kind: "string", optional: true },
|
|
803
|
+
]);
|
|
804
|
+
|
|
805
|
+
export interface ExecClientControlMessage extends ProtoMessage {
|
|
806
|
+
message:
|
|
807
|
+
| { case: undefined; value?: undefined }
|
|
808
|
+
| { case: "streamClose"; value: ExecClientStreamClose }
|
|
809
|
+
| { case: "throw"; value: ExecClientThrow };
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
export const ExecClientControlMessageSchema: MessageCodec<ExecClientControlMessage> =
|
|
813
|
+
pb<ExecClientControlMessage>("agent.v1.ExecClientControlMessage", [
|
|
814
|
+
{
|
|
815
|
+
kind: "oneof",
|
|
816
|
+
name: "message",
|
|
817
|
+
variants: [
|
|
818
|
+
{
|
|
819
|
+
no: 1,
|
|
820
|
+
name: "streamClose",
|
|
821
|
+
kind: "message",
|
|
822
|
+
T: () => ExecClientStreamCloseSchema,
|
|
823
|
+
},
|
|
824
|
+
{
|
|
825
|
+
no: 2,
|
|
826
|
+
name: "throw",
|
|
827
|
+
kind: "message",
|
|
828
|
+
T: () => ExecClientThrowSchema,
|
|
829
|
+
},
|
|
830
|
+
],
|
|
831
|
+
},
|
|
832
|
+
]);
|
|
833
|
+
|
|
834
|
+
export interface ExecServerMessage extends ProtoMessage {
|
|
835
|
+
id: number;
|
|
836
|
+
execId: string;
|
|
837
|
+
message:
|
|
838
|
+
| { case: undefined; value?: undefined }
|
|
839
|
+
| { case: "requestContextArgs"; value: RequestContextArgs }
|
|
840
|
+
| { case: "mcpArgs"; value: McpArgs };
|
|
841
|
+
}
|
|
842
|
+
|
|
843
|
+
export const ExecServerMessageSchema: MessageCodec<ExecServerMessage> =
|
|
844
|
+
pb<ExecServerMessage>("agent.v1.ExecServerMessage", [
|
|
845
|
+
{ no: 1, name: "id", kind: "uint32" },
|
|
846
|
+
{ no: 15, name: "execId", kind: "string" },
|
|
847
|
+
{
|
|
848
|
+
kind: "oneof",
|
|
849
|
+
name: "message",
|
|
850
|
+
variants: [
|
|
851
|
+
{ no: 11, name: "mcpArgs", kind: "message", T: () => McpArgsSchema },
|
|
852
|
+
{
|
|
853
|
+
no: 10,
|
|
854
|
+
name: "requestContextArgs",
|
|
855
|
+
kind: "message",
|
|
856
|
+
T: () => RequestContextArgsSchema,
|
|
857
|
+
},
|
|
858
|
+
],
|
|
859
|
+
},
|
|
860
|
+
]);
|
|
861
|
+
|
|
862
|
+
export interface AgentServerMessage extends ProtoMessage {
|
|
863
|
+
message:
|
|
864
|
+
| { case: undefined; value?: undefined }
|
|
865
|
+
| { case: "interactionUpdate"; value: InteractionUpdate }
|
|
866
|
+
| { case: "execServerMessage"; value: ExecServerMessage }
|
|
867
|
+
| { case: "kvServerMessage"; value: KvServerMessage }
|
|
868
|
+
| { case: "interactionQuery"; value: InteractionQuery };
|
|
869
|
+
}
|
|
870
|
+
|
|
871
|
+
export const AgentServerMessageSchema: MessageCodec<AgentServerMessage> =
|
|
872
|
+
pb<AgentServerMessage>("agent.v1.AgentServerMessage", [
|
|
873
|
+
{
|
|
874
|
+
kind: "oneof",
|
|
875
|
+
name: "message",
|
|
876
|
+
variants: [
|
|
877
|
+
{
|
|
878
|
+
no: 1,
|
|
879
|
+
name: "interactionUpdate",
|
|
880
|
+
kind: "message",
|
|
881
|
+
T: () => InteractionUpdateSchema,
|
|
882
|
+
},
|
|
883
|
+
{
|
|
884
|
+
no: 2,
|
|
885
|
+
name: "execServerMessage",
|
|
886
|
+
kind: "message",
|
|
887
|
+
T: () => ExecServerMessageSchema,
|
|
888
|
+
},
|
|
889
|
+
{
|
|
890
|
+
no: 4,
|
|
891
|
+
name: "kvServerMessage",
|
|
892
|
+
kind: "message",
|
|
893
|
+
T: () => KvServerMessageSchema,
|
|
894
|
+
},
|
|
895
|
+
{
|
|
896
|
+
no: 7,
|
|
897
|
+
name: "interactionQuery",
|
|
898
|
+
kind: "message",
|
|
899
|
+
T: () => InteractionQuerySchema,
|
|
900
|
+
},
|
|
901
|
+
],
|
|
902
|
+
},
|
|
903
|
+
]);
|
|
904
|
+
|
|
905
|
+
/**
|
|
906
|
+
* Queries require an interactive client answer. This provider has no UI or
|
|
907
|
+
* tool execution channel, so it recognizes the envelope and fails the turn
|
|
908
|
+
* explicitly instead of silently dropping a server request.
|
|
909
|
+
*/
|
|
910
|
+
export interface InteractionQuery extends ProtoMessage {
|
|
911
|
+
id: number;
|
|
912
|
+
query:
|
|
913
|
+
| { case: undefined; value?: undefined }
|
|
914
|
+
| { case: "webSearchRequestQuery"; value: InteractionQueryPayload }
|
|
915
|
+
| { case: "askQuestionInteractionQuery"; value: InteractionQueryPayload }
|
|
916
|
+
| { case: "switchModeRequestQuery"; value: InteractionQueryPayload }
|
|
917
|
+
| { case: "exaSearchRequestQuery"; value: InteractionQueryPayload }
|
|
918
|
+
| { case: "exaFetchRequestQuery"; value: InteractionQueryPayload }
|
|
919
|
+
| { case: "createPlanRequestQuery"; value: InteractionQueryPayload }
|
|
920
|
+
| { case: "setupVmEnvironmentArgs"; value: InteractionQueryPayload }
|
|
921
|
+
| { case: "webFetchRequestQuery"; value: InteractionQueryPayload };
|
|
922
|
+
}
|
|
923
|
+
|
|
924
|
+
export interface InteractionQueryPayload extends ProtoMessage {}
|
|
925
|
+
|
|
926
|
+
export const InteractionQueryPayloadSchema: MessageCodec<InteractionQueryPayload> =
|
|
927
|
+
pb<InteractionQueryPayload>("agent.v1.InteractionQueryPayload", []);
|
|
928
|
+
|
|
929
|
+
export const InteractionQuerySchema: MessageCodec<InteractionQuery> =
|
|
930
|
+
pb<InteractionQuery>("agent.v1.InteractionQuery", [
|
|
931
|
+
{ no: 1, name: "id", kind: "uint32" },
|
|
932
|
+
{
|
|
933
|
+
kind: "oneof",
|
|
934
|
+
name: "query",
|
|
935
|
+
variants: [
|
|
936
|
+
{
|
|
937
|
+
no: 2,
|
|
938
|
+
name: "webSearchRequestQuery",
|
|
939
|
+
kind: "message",
|
|
940
|
+
T: () => InteractionQueryPayloadSchema,
|
|
941
|
+
},
|
|
942
|
+
{
|
|
943
|
+
no: 3,
|
|
944
|
+
name: "askQuestionInteractionQuery",
|
|
945
|
+
kind: "message",
|
|
946
|
+
T: () => InteractionQueryPayloadSchema,
|
|
947
|
+
},
|
|
948
|
+
{
|
|
949
|
+
no: 4,
|
|
950
|
+
name: "switchModeRequestQuery",
|
|
951
|
+
kind: "message",
|
|
952
|
+
T: () => InteractionQueryPayloadSchema,
|
|
953
|
+
},
|
|
954
|
+
{
|
|
955
|
+
no: 5,
|
|
956
|
+
name: "exaSearchRequestQuery",
|
|
957
|
+
kind: "message",
|
|
958
|
+
T: () => InteractionQueryPayloadSchema,
|
|
959
|
+
},
|
|
960
|
+
{
|
|
961
|
+
no: 6,
|
|
962
|
+
name: "exaFetchRequestQuery",
|
|
963
|
+
kind: "message",
|
|
964
|
+
T: () => InteractionQueryPayloadSchema,
|
|
965
|
+
},
|
|
966
|
+
{
|
|
967
|
+
no: 7,
|
|
968
|
+
name: "createPlanRequestQuery",
|
|
969
|
+
kind: "message",
|
|
970
|
+
T: () => InteractionQueryPayloadSchema,
|
|
971
|
+
},
|
|
972
|
+
{
|
|
973
|
+
no: 8,
|
|
974
|
+
name: "setupVmEnvironmentArgs",
|
|
975
|
+
kind: "message",
|
|
976
|
+
T: () => InteractionQueryPayloadSchema,
|
|
977
|
+
},
|
|
978
|
+
{
|
|
979
|
+
no: 9,
|
|
980
|
+
name: "webFetchRequestQuery",
|
|
981
|
+
kind: "message",
|
|
982
|
+
T: () => InteractionQueryPayloadSchema,
|
|
983
|
+
},
|
|
984
|
+
],
|
|
985
|
+
},
|
|
986
|
+
]);
|
|
987
|
+
|
|
988
|
+
export interface InteractionUpdate extends ProtoMessage {
|
|
989
|
+
message:
|
|
990
|
+
| { case: undefined; value?: undefined }
|
|
991
|
+
| { case: "textDelta"; value: TextDeltaUpdate }
|
|
992
|
+
| { case: "partialToolCall"; value: ToolInteractionUpdate }
|
|
993
|
+
| { case: "toolCallDelta"; value: ToolInteractionUpdate }
|
|
994
|
+
| { case: "toolCallStarted"; value: ToolInteractionUpdate }
|
|
995
|
+
| { case: "toolCallCompleted"; value: ToolInteractionUpdate }
|
|
996
|
+
| { case: "thinkingDelta"; value: ThinkingDeltaUpdate }
|
|
997
|
+
| { case: "thinkingCompleted"; value: ThinkingCompletedUpdate }
|
|
998
|
+
| { case: "tokenDelta"; value: TokenDeltaUpdate }
|
|
999
|
+
| { case: "heartbeat"; value: HeartbeatUpdate }
|
|
1000
|
+
| { case: "turnEnded"; value: TurnEndedUpdate };
|
|
1001
|
+
}
|
|
1002
|
+
|
|
1003
|
+
export const InteractionUpdateSchema: MessageCodec<InteractionUpdate> =
|
|
1004
|
+
pb<InteractionUpdate>("agent.v1.InteractionUpdate", [
|
|
1005
|
+
{
|
|
1006
|
+
kind: "oneof",
|
|
1007
|
+
name: "message",
|
|
1008
|
+
variants: [
|
|
1009
|
+
{
|
|
1010
|
+
no: 1,
|
|
1011
|
+
name: "textDelta",
|
|
1012
|
+
kind: "message",
|
|
1013
|
+
T: () => TextDeltaUpdateSchema,
|
|
1014
|
+
},
|
|
1015
|
+
{
|
|
1016
|
+
no: 7,
|
|
1017
|
+
name: "partialToolCall",
|
|
1018
|
+
kind: "message",
|
|
1019
|
+
T: () => ToolInteractionUpdateSchema,
|
|
1020
|
+
},
|
|
1021
|
+
{
|
|
1022
|
+
no: 15,
|
|
1023
|
+
name: "toolCallDelta",
|
|
1024
|
+
kind: "message",
|
|
1025
|
+
T: () => InteractionQueryPayloadSchema,
|
|
1026
|
+
},
|
|
1027
|
+
{
|
|
1028
|
+
no: 2,
|
|
1029
|
+
name: "toolCallStarted",
|
|
1030
|
+
kind: "message",
|
|
1031
|
+
T: () => ToolInteractionUpdateSchema,
|
|
1032
|
+
},
|
|
1033
|
+
{
|
|
1034
|
+
no: 3,
|
|
1035
|
+
name: "toolCallCompleted",
|
|
1036
|
+
kind: "message",
|
|
1037
|
+
T: () => ToolInteractionUpdateSchema,
|
|
1038
|
+
},
|
|
1039
|
+
{
|
|
1040
|
+
no: 4,
|
|
1041
|
+
name: "thinkingDelta",
|
|
1042
|
+
kind: "message",
|
|
1043
|
+
T: () => ThinkingDeltaUpdateSchema,
|
|
1044
|
+
},
|
|
1045
|
+
{
|
|
1046
|
+
no: 5,
|
|
1047
|
+
name: "thinkingCompleted",
|
|
1048
|
+
kind: "message",
|
|
1049
|
+
T: () => ThinkingCompletedUpdateSchema,
|
|
1050
|
+
},
|
|
1051
|
+
{
|
|
1052
|
+
no: 8,
|
|
1053
|
+
name: "tokenDelta",
|
|
1054
|
+
kind: "message",
|
|
1055
|
+
T: () => TokenDeltaUpdateSchema,
|
|
1056
|
+
},
|
|
1057
|
+
{
|
|
1058
|
+
no: 13,
|
|
1059
|
+
name: "heartbeat",
|
|
1060
|
+
kind: "message",
|
|
1061
|
+
T: () => HeartbeatUpdateSchema,
|
|
1062
|
+
},
|
|
1063
|
+
{
|
|
1064
|
+
no: 14,
|
|
1065
|
+
name: "turnEnded",
|
|
1066
|
+
kind: "message",
|
|
1067
|
+
T: () => TurnEndedUpdateSchema,
|
|
1068
|
+
},
|
|
1069
|
+
],
|
|
1070
|
+
},
|
|
1071
|
+
]);
|
|
1072
|
+
|
|
1073
|
+
export interface ToolInteractionUpdate extends ProtoMessage {
|
|
1074
|
+
callId?: string;
|
|
1075
|
+
toolCall?: CursorToolCall;
|
|
1076
|
+
argsTextDelta?: string;
|
|
1077
|
+
}
|
|
1078
|
+
|
|
1079
|
+
export const ToolInteractionUpdateSchema: MessageCodec<ToolInteractionUpdate> =
|
|
1080
|
+
pb<ToolInteractionUpdate>("agent.v1.ToolInteractionUpdate", [
|
|
1081
|
+
{ no: 1, name: "callId", kind: "string" },
|
|
1082
|
+
{ no: 2, name: "toolCall", kind: "message", T: () => CursorToolCallSchema },
|
|
1083
|
+
{ no: 3, name: "argsTextDelta", kind: "string" },
|
|
1084
|
+
]);
|
|
1085
|
+
|
|
1086
|
+
// Only the MCP branch is supported. Unknown native tool variants remain unknown
|
|
1087
|
+
// and are rejected by the provider rather than executed outside Pi.
|
|
1088
|
+
export interface CursorToolCall extends ProtoMessage {
|
|
1089
|
+
toolCallId?: string;
|
|
1090
|
+
tool:
|
|
1091
|
+
| { case: undefined; value?: undefined }
|
|
1092
|
+
| { case: "mcpToolCall"; value: McpToolCall };
|
|
1093
|
+
}
|
|
1094
|
+
export const CursorToolCallSchema = pb<CursorToolCall>("agent.v1.ToolCall", [
|
|
1095
|
+
{ no: 57, name: "toolCallId", kind: "string", optional: true },
|
|
1096
|
+
{
|
|
1097
|
+
kind: "oneof",
|
|
1098
|
+
name: "tool",
|
|
1099
|
+
variants: [
|
|
1100
|
+
{
|
|
1101
|
+
no: 15,
|
|
1102
|
+
name: "mcpToolCall",
|
|
1103
|
+
kind: "message",
|
|
1104
|
+
T: () => McpToolCallSchema,
|
|
1105
|
+
},
|
|
1106
|
+
],
|
|
1107
|
+
},
|
|
1108
|
+
]);
|
|
1109
|
+
|
|
1110
|
+
export interface McpResult extends ProtoMessage {
|
|
1111
|
+
result:
|
|
1112
|
+
| { case: undefined; value?: undefined }
|
|
1113
|
+
| { case: "rejected"; value: McpRejected };
|
|
1114
|
+
}
|
|
1115
|
+
export const McpResultSchema = pb<McpResult>("agent.v1.McpResult", [
|
|
1116
|
+
{
|
|
1117
|
+
kind: "oneof",
|
|
1118
|
+
name: "result",
|
|
1119
|
+
variants: [
|
|
1120
|
+
{ no: 3, name: "rejected", kind: "message", T: () => McpRejectedSchema },
|
|
1121
|
+
],
|
|
1122
|
+
},
|
|
1123
|
+
]);
|
|
1124
|
+
|
|
1125
|
+
export interface TextDeltaUpdate extends ProtoMessage {
|
|
1126
|
+
text: string;
|
|
1127
|
+
}
|
|
1128
|
+
|
|
1129
|
+
export const TextDeltaUpdateSchema: MessageCodec<TextDeltaUpdate> =
|
|
1130
|
+
pb<TextDeltaUpdate>("agent.v1.TextDeltaUpdate", [
|
|
1131
|
+
{ no: 1, name: "text", kind: "string" },
|
|
1132
|
+
]);
|
|
1133
|
+
|
|
1134
|
+
export interface ThinkingDeltaUpdate extends ProtoMessage {
|
|
1135
|
+
text: string;
|
|
1136
|
+
}
|
|
1137
|
+
|
|
1138
|
+
export const ThinkingDeltaUpdateSchema: MessageCodec<ThinkingDeltaUpdate> =
|
|
1139
|
+
pb<ThinkingDeltaUpdate>("agent.v1.ThinkingDeltaUpdate", [
|
|
1140
|
+
{ no: 1, name: "text", kind: "string" },
|
|
1141
|
+
]);
|
|
1142
|
+
|
|
1143
|
+
export interface ThinkingCompletedUpdate extends ProtoMessage {
|
|
1144
|
+
thinkingDurationMs: number;
|
|
1145
|
+
}
|
|
1146
|
+
|
|
1147
|
+
export const ThinkingCompletedUpdateSchema: MessageCodec<ThinkingCompletedUpdate> =
|
|
1148
|
+
pb<ThinkingCompletedUpdate>("agent.v1.ThinkingCompletedUpdate", [
|
|
1149
|
+
{ no: 1, name: "thinkingDurationMs", kind: "int32" },
|
|
1150
|
+
]);
|
|
1151
|
+
|
|
1152
|
+
export interface TokenDeltaUpdate extends ProtoMessage {
|
|
1153
|
+
tokens: number;
|
|
1154
|
+
}
|
|
1155
|
+
|
|
1156
|
+
export const TokenDeltaUpdateSchema: MessageCodec<TokenDeltaUpdate> =
|
|
1157
|
+
pb<TokenDeltaUpdate>("agent.v1.TokenDeltaUpdate", [
|
|
1158
|
+
{ no: 1, name: "tokens", kind: "int32" },
|
|
1159
|
+
]);
|
|
1160
|
+
|
|
1161
|
+
export interface HeartbeatUpdate extends ProtoMessage {}
|
|
1162
|
+
|
|
1163
|
+
export const HeartbeatUpdateSchema: MessageCodec<HeartbeatUpdate> =
|
|
1164
|
+
pb<HeartbeatUpdate>("agent.v1.HeartbeatUpdate", []);
|
|
1165
|
+
|
|
1166
|
+
export interface TurnEndedUpdate extends ProtoMessage {}
|
|
1167
|
+
|
|
1168
|
+
export const TurnEndedUpdateSchema: MessageCodec<TurnEndedUpdate> =
|
|
1169
|
+
pb<TurnEndedUpdate>("agent.v1.TurnEndedUpdate", []);
|
|
1170
|
+
|
|
1171
|
+
export interface GetUsableModelsRequest extends ProtoMessage {
|
|
1172
|
+
customModelIds: string[];
|
|
1173
|
+
}
|
|
1174
|
+
|
|
1175
|
+
export const GetUsableModelsRequestSchema: MessageCodec<GetUsableModelsRequest> =
|
|
1176
|
+
pb<GetUsableModelsRequest>("agent.v1.GetUsableModelsRequest", [
|
|
1177
|
+
{ no: 1, name: "customModelIds", kind: "string", repeat: true },
|
|
1178
|
+
]);
|
|
1179
|
+
|
|
1180
|
+
export interface GetUsableModelsResponse extends ProtoMessage {
|
|
1181
|
+
models: ModelDetails[];
|
|
1182
|
+
}
|
|
1183
|
+
|
|
1184
|
+
export const GetUsableModelsResponseSchema: MessageCodec<GetUsableModelsResponse> =
|
|
1185
|
+
pb<GetUsableModelsResponse>("agent.v1.GetUsableModelsResponse", [
|
|
1186
|
+
{
|
|
1187
|
+
no: 1,
|
|
1188
|
+
name: "models",
|
|
1189
|
+
kind: "message",
|
|
1190
|
+
T: () => ModelDetailsSchema,
|
|
1191
|
+
repeat: true,
|
|
1192
|
+
},
|
|
1193
|
+
]);
|
|
1194
|
+
|
|
1195
|
+
export interface McpSuccess extends ProtoMessage {
|
|
1196
|
+
content: McpToolResultContentItem[];
|
|
1197
|
+
isError: boolean;
|
|
1198
|
+
}
|
|
1199
|
+
|
|
1200
|
+
export const McpSuccessSchema: MessageCodec<McpSuccess> = pb<McpSuccess>(
|
|
1201
|
+
"agent.v1.McpSuccess",
|
|
1202
|
+
[
|
|
1203
|
+
{
|
|
1204
|
+
no: 1,
|
|
1205
|
+
name: "content",
|
|
1206
|
+
kind: "message",
|
|
1207
|
+
T: () => McpToolResultContentItemSchema,
|
|
1208
|
+
repeat: true,
|
|
1209
|
+
},
|
|
1210
|
+
{ no: 2, name: "isError", kind: "bool" },
|
|
1211
|
+
],
|
|
1212
|
+
);
|
|
1213
|
+
|
|
1214
|
+
export interface McpTextContent extends ProtoMessage {
|
|
1215
|
+
text: string;
|
|
1216
|
+
}
|
|
1217
|
+
|
|
1218
|
+
export const McpTextContentSchema: MessageCodec<McpTextContent> =
|
|
1219
|
+
pb<McpTextContent>("agent.v1.McpTextContent", [
|
|
1220
|
+
{ no: 1, name: "text", kind: "string" },
|
|
1221
|
+
]);
|
|
1222
|
+
|
|
1223
|
+
export interface McpImageContent extends ProtoMessage {
|
|
1224
|
+
data: Uint8Array;
|
|
1225
|
+
mimeType: string;
|
|
1226
|
+
}
|
|
1227
|
+
|
|
1228
|
+
export const McpImageContentSchema: MessageCodec<McpImageContent> =
|
|
1229
|
+
pb<McpImageContent>("agent.v1.McpImageContent", [
|
|
1230
|
+
{ no: 1, name: "data", kind: "bytes" },
|
|
1231
|
+
{ no: 2, name: "mimeType", kind: "string" },
|
|
1232
|
+
]);
|
|
1233
|
+
|
|
1234
|
+
export interface McpToolResultContentItem extends ProtoMessage {
|
|
1235
|
+
content:
|
|
1236
|
+
| { case: undefined; value?: undefined }
|
|
1237
|
+
| { case: "text"; value: McpTextContent }
|
|
1238
|
+
| { case: "image"; value: McpImageContent };
|
|
1239
|
+
}
|
|
1240
|
+
|
|
1241
|
+
export const McpToolResultContentItemSchema: MessageCodec<McpToolResultContentItem> =
|
|
1242
|
+
pb<McpToolResultContentItem>("agent.v1.McpToolResultContentItem", [
|
|
1243
|
+
{
|
|
1244
|
+
kind: "oneof",
|
|
1245
|
+
name: "content",
|
|
1246
|
+
variants: [
|
|
1247
|
+
{ no: 1, name: "text", kind: "message", T: () => McpTextContentSchema },
|
|
1248
|
+
{
|
|
1249
|
+
no: 2,
|
|
1250
|
+
name: "image",
|
|
1251
|
+
kind: "message",
|
|
1252
|
+
T: () => McpImageContentSchema,
|
|
1253
|
+
},
|
|
1254
|
+
],
|
|
1255
|
+
},
|
|
1256
|
+
]);
|
|
1257
|
+
|
|
1258
|
+
export interface McpToolResult extends ProtoMessage {
|
|
1259
|
+
result:
|
|
1260
|
+
| { case: undefined; value?: undefined }
|
|
1261
|
+
| { case: "success"; value: McpSuccess };
|
|
1262
|
+
}
|
|
1263
|
+
export const McpToolResultSchema = pb<McpToolResult>("agent.v1.McpToolResult", [
|
|
1264
|
+
{
|
|
1265
|
+
kind: "oneof",
|
|
1266
|
+
name: "result",
|
|
1267
|
+
variants: [
|
|
1268
|
+
{ no: 1, name: "success", kind: "message", T: () => McpSuccessSchema },
|
|
1269
|
+
],
|
|
1270
|
+
},
|
|
1271
|
+
]);
|