@oh-my-pi/pi-ai 16.1.12 → 16.1.13
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/CHANGELOG.md +15 -0
- package/dist/types/providers/devin.d.ts +12 -0
- package/dist/types/providers/register-builtins.d.ts +1 -0
- package/dist/types/registry/devin.d.ts +8 -0
- package/dist/types/registry/oauth/devin.d.ts +5 -0
- package/dist/types/registry/registry.d.ts +6 -0
- package/dist/types/types.d.ts +4 -2
- package/package.json +5 -4
- package/src/api-registry.ts +12 -2
- package/src/providers/anthropic-messages-server.ts +4 -1
- package/src/providers/devin/proto/buf/validate/validate.proto +468 -0
- package/src/providers/devin/proto/buf.gen.yaml +33 -0
- package/src/providers/devin/proto/buf.yaml +17 -0
- package/src/providers/devin/proto/cel/expr/checked.proto +103 -0
- package/src/providers/devin/proto/cel/expr/eval.proto +38 -0
- package/src/providers/devin/proto/cel/expr/explain.proto +15 -0
- package/src/providers/devin/proto/cel/expr/syntax.proto +113 -0
- package/src/providers/devin/proto/cel/expr/value.proto +41 -0
- package/src/providers/devin/proto/connectext/grpc/status/v1/status.proto +11 -0
- package/src/providers/devin/proto/errorspb/errors.proto +56 -0
- package/src/providers/devin/proto/errorspb/hintdetail.proto +7 -0
- package/src/providers/devin/proto/errorspb/markers.proto +10 -0
- package/src/providers/devin/proto/errorspb/tags.proto +12 -0
- package/src/providers/devin/proto/errorspb/testing.proto +6 -0
- package/src/providers/devin/proto/exa/analytics_pb/analytics.proto +188 -0
- package/src/providers/devin/proto/exa/api_server_pb/api_server.proto +2461 -0
- package/src/providers/devin/proto/exa/auth_pb/auth.proto +19 -0
- package/src/providers/devin/proto/exa/auto_cascade_common_pb/auto_cascade_common.proto +79 -0
- package/src/providers/devin/proto/exa/browser_preview_pb/browser_preview.proto +32 -0
- package/src/providers/devin/proto/exa/bug_checker_pb/bug_checker.proto +22 -0
- package/src/providers/devin/proto/exa/cascade_plugins_pb/cascade_plugins.proto +262 -0
- package/src/providers/devin/proto/exa/chat_client_server_pb/chat_client_server.proto +57 -0
- package/src/providers/devin/proto/exa/chat_pb/chat.proto +449 -0
- package/src/providers/devin/proto/exa/code_edit/code_edit_pb/code_edit.proto +186 -0
- package/src/providers/devin/proto/exa/codeium_common_pb/codeium_common.proto +4157 -0
- package/src/providers/devin/proto/exa/context_module_pb/context_module.proto +175 -0
- package/src/providers/devin/proto/exa/cortex_pb/cortex.proto +3268 -0
- package/src/providers/devin/proto/exa/dev_pb/dev.proto +26 -0
- package/src/providers/devin/proto/exa/diff_action_pb/diff_action.proto +75 -0
- package/src/providers/devin/proto/exa/eval/pr_eval/datasets_pb/datasets.proto +103 -0
- package/src/providers/devin/proto/exa/eval_pb/eval.proto +1315 -0
- package/src/providers/devin/proto/exa/extension_server_pb/extension_server.proto +556 -0
- package/src/providers/devin/proto/exa/file_system_provider_pb/file_system_provider.proto +75 -0
- package/src/providers/devin/proto/exa/index_pb/index.proto +461 -0
- package/src/providers/devin/proto/exa/knowledge_base_pb/knowledge_base.proto +144 -0
- package/src/providers/devin/proto/exa/language_server_pb/language_server.proto +2385 -0
- package/src/providers/devin/proto/exa/model_management_pb/model_management.proto +186 -0
- package/src/providers/devin/proto/exa/opensearch_clients_pb/opensearch_clients.proto +503 -0
- package/src/providers/devin/proto/exa/product_analytics_pb/product_analytics.proto +37 -0
- package/src/providers/devin/proto/exa/prompt_pb/prompt.proto +92 -0
- package/src/providers/devin/proto/exa/reactive_component_pb/reactive_component.proto +96 -0
- package/src/providers/devin/proto/exa/seat_management_pb/seat_management.proto +2680 -0
- package/src/providers/devin/proto/exa/tokenizer_pb/tokenizer.proto +37 -0
- package/src/providers/devin/proto/exa/trainer_pb/config.proto +647 -0
- package/src/providers/devin/proto/exa/tree_sitter/language_data_pb/language_data.proto +14 -0
- package/src/providers/devin/proto/exa/trust_pb/trust.proto +157 -0
- package/src/providers/devin/proto/exa/user_analytics_pb/user_analytics.proto +519 -0
- package/src/providers/devin/proto/google.golang.org/appengine/internal/base/api_base.proto +28 -0
- package/src/providers/devin/proto/google.golang.org/appengine/internal/datastore/datastore_v3.proto +484 -0
- package/src/providers/devin/proto/google.golang.org/appengine/internal/log/log_service.proto +136 -0
- package/src/providers/devin/proto/google.golang.org/appengine/internal/remote_api/remote_api.proto +42 -0
- package/src/providers/devin/proto/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto +61 -0
- package/src/providers/devin/proto/grpc/binlog/v1/binarylog.proto +84 -0
- package/src/providers/devin/proto/io/prometheus/client/metrics.proto +98 -0
- package/src/providers/devin.ts +568 -0
- package/src/providers/register-builtins.ts +15 -0
- package/src/registry/devin.ts +15 -0
- package/src/registry/fireworks.ts +7 -1
- package/src/registry/oauth/devin.ts +113 -0
- package/src/registry/registry.ts +2 -0
- package/src/stream.ts +47 -6
- package/src/types.ts +4 -2
- package/src/utils.ts +5 -8
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [16.1.13] - 2026-06-22
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Added support for Devin as a provider
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- Updated tool call arguments to use `Record<string, unknown>` and `unknown` for tool results
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- Fixed OpenAI Responses native history replay dropping failed/incomplete image generation calls instead of resending their transient `ig_...` item IDs, preventing follow-up requests from failing with `404 Item with id ... not found`. ([#3225](https://github.com/can1357/oh-my-pi/issues/3225))
|
|
18
|
+
- Fixed `/login fireworks` rejecting valid `fw_…` keys with `Fireworks API key validation failed (500): Error listing deployed models`. The validator pinged `/inference/v1/models`, which Fireworks serves from the per-account deployment registry and 500s for accounts without active deployments. Login now hits the static control-plane `List Models` catalog (`GET /v1/accounts/fireworks/models?filter=supports_serverless=true&pageSize=1`) — the same endpoint discovery already uses — so authentication no longer depends on the caller's deployment state. ([#3219](https://github.com/can1357/oh-my-pi/issues/3219))
|
|
19
|
+
|
|
5
20
|
## [16.1.11] - 2026-06-21
|
|
6
21
|
|
|
7
22
|
### Fixed
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { StreamFunction, StreamOptions } from "../types";
|
|
2
|
+
/** Base host for Codeium/Windsurf's Cascade chat API (Connect protocol over HTTP/1.1). */
|
|
3
|
+
export declare const DEVIN_API_URL = "https://server.codeium.com";
|
|
4
|
+
export interface DevinOptions extends StreamOptions {
|
|
5
|
+
/** Cascade conversation id; reused as `cascade_id` so the server threads turns. */
|
|
6
|
+
conversationId?: string;
|
|
7
|
+
/** Falls back to `cascade_id` when no `conversationId` is supplied. */
|
|
8
|
+
sessionId?: string;
|
|
9
|
+
/** Wire model uid selected after thinking-effort routing. */
|
|
10
|
+
chatModelUid?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare const streamDevin: StreamFunction<"devin-agent">;
|
|
@@ -26,6 +26,7 @@ export declare const streamOpenAICodexResponses: (model: Model<"openai-codex-res
|
|
|
26
26
|
export declare const streamOpenAICompletions: (model: Model<"openai-completions">, context: Context, options: OptionsForApi<"openai-completions">) => EventStreamImpl;
|
|
27
27
|
export declare const streamOpenAIResponses: (model: Model<"openai-responses">, context: Context, options: OptionsForApi<"openai-responses">) => EventStreamImpl;
|
|
28
28
|
export declare const streamCursor: (model: Model<"cursor-agent">, context: Context, options: OptionsForApi<"cursor-agent">) => EventStreamImpl;
|
|
29
|
+
export declare const streamDevin: (model: Model<"devin-agent">, context: Context, options: OptionsForApi<"devin-agent">) => EventStreamImpl;
|
|
29
30
|
export declare const streamOllama: (model: Model<"ollama-chat">, context: Context, options: OptionsForApi<"ollama-chat">) => EventStreamImpl;
|
|
30
31
|
export declare const streamBedrock: (model: Model<"bedrock-converse-stream">, context: Context, options: OptionsForApi<"bedrock-converse-stream">) => EventStreamImpl;
|
|
31
32
|
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { OAuthLoginCallbacks } from "./oauth/types";
|
|
2
|
+
export declare const devinProvider: {
|
|
3
|
+
readonly id: "devin";
|
|
4
|
+
readonly name: "Devin";
|
|
5
|
+
readonly login: (cb: OAuthLoginCallbacks) => Promise<string>;
|
|
6
|
+
readonly callbackPort: 59653;
|
|
7
|
+
readonly pasteCodeFlow: true;
|
|
8
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { OAuthController, OAuthCredentials } from "./types";
|
|
2
|
+
type FetchFunction = NonNullable<OAuthController["fetch"]>;
|
|
3
|
+
export declare function loginDevin(ctrl: OAuthController): Promise<OAuthCredentials>;
|
|
4
|
+
export declare function exchangeDevinCliToken(authorizationCode: string, codeVerifier: string, fetchImpl?: FetchFunction): Promise<string>;
|
|
5
|
+
export {};
|
|
@@ -46,6 +46,12 @@ declare const ALL: ({
|
|
|
46
46
|
readonly id: "deepseek";
|
|
47
47
|
readonly name: "DeepSeek";
|
|
48
48
|
readonly login: (cb: import("./oauth").OAuthLoginCallbacks) => Promise<string>;
|
|
49
|
+
} | {
|
|
50
|
+
readonly id: "devin";
|
|
51
|
+
readonly name: "Devin";
|
|
52
|
+
readonly login: (cb: import("./oauth").OAuthLoginCallbacks) => Promise<string>;
|
|
53
|
+
readonly callbackPort: 59653;
|
|
54
|
+
readonly pasteCodeFlow: true;
|
|
49
55
|
} | {
|
|
50
56
|
readonly id: "firepass";
|
|
51
57
|
readonly name: "Fire Pass (Fireworks Kimi K2.6 Turbo subscription)";
|
package/dist/types/types.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ import type { AnthropicOptions } from "./providers/anthropic";
|
|
|
11
11
|
import type { StopDetails } from "./providers/anthropic-wire";
|
|
12
12
|
import type { AzureOpenAIResponsesOptions } from "./providers/azure-openai-responses";
|
|
13
13
|
import type { CursorOptions } from "./providers/cursor";
|
|
14
|
+
import type { DevinOptions } from "./providers/devin";
|
|
14
15
|
import type { GoogleOptions } from "./providers/google";
|
|
15
16
|
import type { GoogleGeminiCliOptions } from "./providers/google-gemini-cli";
|
|
16
17
|
import type { GoogleVertexOptions } from "./providers/google-vertex";
|
|
@@ -46,6 +47,7 @@ export interface ApiOptionsMap {
|
|
|
46
47
|
"google-vertex": GoogleVertexOptions;
|
|
47
48
|
"ollama-chat": OllamaChatOptions;
|
|
48
49
|
"cursor-agent": CursorOptions;
|
|
50
|
+
"devin-agent": DevinOptions;
|
|
49
51
|
}
|
|
50
52
|
export type OptionsForApi<TApi extends Api> = StreamOptions | (TApi extends keyof ApiOptionsMap ? ApiOptionsMap[TApi] : never);
|
|
51
53
|
export interface TokenTaskBudget {
|
|
@@ -354,7 +356,7 @@ export interface ToolCall {
|
|
|
354
356
|
type: "toolCall";
|
|
355
357
|
id: string;
|
|
356
358
|
name: string;
|
|
357
|
-
arguments: Record<string,
|
|
359
|
+
arguments: Record<string, unknown>;
|
|
358
360
|
thoughtSignature?: string;
|
|
359
361
|
intent?: string;
|
|
360
362
|
/**
|
|
@@ -442,7 +444,7 @@ export interface AssistantMessage {
|
|
|
442
444
|
duration?: number;
|
|
443
445
|
ttft?: number;
|
|
444
446
|
}
|
|
445
|
-
export interface ToolResultMessage<TDetails =
|
|
447
|
+
export interface ToolResultMessage<TDetails = unknown> {
|
|
446
448
|
role: "toolResult";
|
|
447
449
|
toolCallId: string;
|
|
448
450
|
toolName: string;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@oh-my-pi/pi-ai",
|
|
4
|
-
"version": "16.1.
|
|
4
|
+
"version": "16.1.13",
|
|
5
5
|
"description": "Unified LLM API with automatic model discovery and provider configuration",
|
|
6
6
|
"homepage": "https://omp.sh",
|
|
7
7
|
"author": "Can Boluk",
|
|
@@ -38,13 +38,14 @@
|
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@bufbuild/protobuf": "^2.12.0",
|
|
41
|
-
"@oh-my-pi/pi-catalog": "16.1.
|
|
42
|
-
"@oh-my-pi/pi-utils": "16.1.
|
|
43
|
-
"@oh-my-pi/pi-wire": "16.1.
|
|
41
|
+
"@oh-my-pi/pi-catalog": "16.1.13",
|
|
42
|
+
"@oh-my-pi/pi-utils": "16.1.13",
|
|
43
|
+
"@oh-my-pi/pi-wire": "16.1.13",
|
|
44
44
|
"arktype": "^2.2.0",
|
|
45
45
|
"zod": "^4"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
+
"@bufbuild/protoc-gen-es": "^2.12.0",
|
|
48
49
|
"@types/bun": "^1.3.14"
|
|
49
50
|
},
|
|
50
51
|
"engines": {
|
package/src/api-registry.ts
CHANGED
|
@@ -14,9 +14,10 @@ import type {
|
|
|
14
14
|
StreamOptions,
|
|
15
15
|
} from "./types";
|
|
16
16
|
|
|
17
|
-
const
|
|
17
|
+
const BUILTIN_API_IDS = [
|
|
18
18
|
"openai-completions",
|
|
19
19
|
"openai-responses",
|
|
20
|
+
"openrouter",
|
|
20
21
|
"openai-codex-responses",
|
|
21
22
|
"azure-openai-responses",
|
|
22
23
|
"anthropic-messages",
|
|
@@ -26,7 +27,16 @@ const BUILTIN_APIS = new Set<KnownApi>([
|
|
|
26
27
|
"google-vertex",
|
|
27
28
|
"ollama-chat",
|
|
28
29
|
"cursor-agent",
|
|
29
|
-
|
|
30
|
+
"devin-agent",
|
|
31
|
+
] as const satisfies readonly KnownApi[];
|
|
32
|
+
|
|
33
|
+
type _MissingBuiltinApis = Exclude<KnownApi, (typeof BUILTIN_API_IDS)[number]>;
|
|
34
|
+
type _CheckBuiltinApis = _MissingBuiltinApis extends never
|
|
35
|
+
? true
|
|
36
|
+
: ["BUILTIN_APIS is missing KnownApi values", _MissingBuiltinApis];
|
|
37
|
+
true satisfies _CheckBuiltinApis;
|
|
38
|
+
|
|
39
|
+
const BUILTIN_APIS = new Set<KnownApi>(BUILTIN_API_IDS);
|
|
30
40
|
|
|
31
41
|
export type CustomStreamFn = (
|
|
32
42
|
model: Model<Api>,
|
|
@@ -204,7 +204,10 @@ function walkAssistantContent(
|
|
|
204
204
|
type: "toolCall",
|
|
205
205
|
id: block.id,
|
|
206
206
|
name: block.name,
|
|
207
|
-
arguments:
|
|
207
|
+
arguments:
|
|
208
|
+
block.input && typeof block.input === "object" && !Array.isArray(block.input)
|
|
209
|
+
? (block.input as Record<string, unknown>)
|
|
210
|
+
: {},
|
|
208
211
|
});
|
|
209
212
|
break;
|
|
210
213
|
default: {
|
|
@@ -0,0 +1,468 @@
|
|
|
1
|
+
package buf.validate;
|
|
2
|
+
|
|
3
|
+
import "google/protobuf/descriptor.proto";
|
|
4
|
+
import "google/protobuf/duration.proto";
|
|
5
|
+
import "google/protobuf/timestamp.proto";
|
|
6
|
+
|
|
7
|
+
enum Ignore {
|
|
8
|
+
IGNORE_UNSPECIFIED = 0;
|
|
9
|
+
IGNORE_IF_UNPOPULATED = 1;
|
|
10
|
+
IGNORE_IF_DEFAULT_VALUE = 2;
|
|
11
|
+
IGNORE_ALWAYS = 3;
|
|
12
|
+
reserved "IGNORE_EMPTYIGNORE_DEFAULT";
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
enum KnownRegex {
|
|
16
|
+
KNOWN_REGEX_UNSPECIFIED = 0;
|
|
17
|
+
KNOWN_REGEX_HTTP_HEADER_NAME = 1;
|
|
18
|
+
KNOWN_REGEX_HTTP_HEADER_VALUE = 2;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
message Rule {
|
|
22
|
+
optional string id = 1;
|
|
23
|
+
optional string message = 2;
|
|
24
|
+
optional string expression = 3;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
message MessageRules {
|
|
28
|
+
optional bool disabled = 1;
|
|
29
|
+
repeated .buf.validate.Rule cel = 3;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
message OneofRules {
|
|
33
|
+
optional bool required = 1;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
message FieldRules {
|
|
37
|
+
reserved 24;
|
|
38
|
+
reserved 26;
|
|
39
|
+
reserved "skipped", "ignore_empty";
|
|
40
|
+
|
|
41
|
+
repeated .buf.validate.Rule cel = 23;
|
|
42
|
+
optional bool required = 25;
|
|
43
|
+
optional .buf.validate.Ignore ignore = 27;
|
|
44
|
+
oneof type {
|
|
45
|
+
.buf.validate.FloatRules float = 1;
|
|
46
|
+
.buf.validate.DoubleRules double = 2;
|
|
47
|
+
.buf.validate.Int32Rules int32 = 3;
|
|
48
|
+
.buf.validate.Int64Rules int64 = 4;
|
|
49
|
+
.buf.validate.UInt32Rules uint32 = 5;
|
|
50
|
+
.buf.validate.UInt64Rules uint64 = 6;
|
|
51
|
+
.buf.validate.SInt32Rules sint32 = 7;
|
|
52
|
+
.buf.validate.SInt64Rules sint64 = 8;
|
|
53
|
+
.buf.validate.Fixed32Rules fixed32 = 9;
|
|
54
|
+
.buf.validate.Fixed64Rules fixed64 = 10;
|
|
55
|
+
.buf.validate.SFixed32Rules sfixed32 = 11;
|
|
56
|
+
.buf.validate.SFixed64Rules sfixed64 = 12;
|
|
57
|
+
.buf.validate.BoolRules bool = 13;
|
|
58
|
+
.buf.validate.StringRules string = 14;
|
|
59
|
+
.buf.validate.BytesRules bytes = 15;
|
|
60
|
+
.buf.validate.EnumRules enum = 16;
|
|
61
|
+
.buf.validate.RepeatedRules repeated = 18;
|
|
62
|
+
.buf.validate.MapRules map = 19;
|
|
63
|
+
.buf.validate.AnyRules any = 20;
|
|
64
|
+
.buf.validate.DurationRules duration = 21;
|
|
65
|
+
.buf.validate.TimestampRules timestamp = 22;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
message PredefinedRules {
|
|
70
|
+
reserved 24;
|
|
71
|
+
reserved 26;
|
|
72
|
+
reserved "skippedignore_empty";
|
|
73
|
+
|
|
74
|
+
repeated .buf.validate.Rule cel = 1;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
message FloatRules {
|
|
78
|
+
extensions 1000 to max;
|
|
79
|
+
|
|
80
|
+
optional float const = 1;
|
|
81
|
+
oneof less_than {
|
|
82
|
+
float lt = 2;
|
|
83
|
+
float lte = 3;
|
|
84
|
+
}
|
|
85
|
+
oneof greater_than {
|
|
86
|
+
float gt = 4;
|
|
87
|
+
float gte = 5;
|
|
88
|
+
}
|
|
89
|
+
repeated float in = 6;
|
|
90
|
+
repeated float not_in = 7;
|
|
91
|
+
optional bool finite = 8;
|
|
92
|
+
repeated float example = 9;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
message DoubleRules {
|
|
96
|
+
extensions 1000 to max;
|
|
97
|
+
|
|
98
|
+
optional double const = 1;
|
|
99
|
+
oneof less_than {
|
|
100
|
+
double lt = 2;
|
|
101
|
+
double lte = 3;
|
|
102
|
+
}
|
|
103
|
+
oneof greater_than {
|
|
104
|
+
double gt = 4;
|
|
105
|
+
double gte = 5;
|
|
106
|
+
}
|
|
107
|
+
repeated double in = 6;
|
|
108
|
+
repeated double not_in = 7;
|
|
109
|
+
optional bool finite = 8;
|
|
110
|
+
repeated double example = 9;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
message Int32Rules {
|
|
114
|
+
extensions 1000 to max;
|
|
115
|
+
|
|
116
|
+
optional int32 const = 1;
|
|
117
|
+
oneof less_than {
|
|
118
|
+
int32 lt = 2;
|
|
119
|
+
int32 lte = 3;
|
|
120
|
+
}
|
|
121
|
+
oneof greater_than {
|
|
122
|
+
int32 gt = 4;
|
|
123
|
+
int32 gte = 5;
|
|
124
|
+
}
|
|
125
|
+
repeated int32 in = 6;
|
|
126
|
+
repeated int32 not_in = 7;
|
|
127
|
+
repeated int32 example = 8;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
message Int64Rules {
|
|
131
|
+
extensions 1000 to max;
|
|
132
|
+
|
|
133
|
+
optional int64 const = 1;
|
|
134
|
+
oneof less_than {
|
|
135
|
+
int64 lt = 2;
|
|
136
|
+
int64 lte = 3;
|
|
137
|
+
}
|
|
138
|
+
oneof greater_than {
|
|
139
|
+
int64 gt = 4;
|
|
140
|
+
int64 gte = 5;
|
|
141
|
+
}
|
|
142
|
+
repeated int64 in = 6;
|
|
143
|
+
repeated int64 not_in = 7;
|
|
144
|
+
repeated int64 example = 9;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
message UInt32Rules {
|
|
148
|
+
extensions 1000 to max;
|
|
149
|
+
|
|
150
|
+
optional uint32 const = 1;
|
|
151
|
+
oneof less_than {
|
|
152
|
+
uint32 lt = 2;
|
|
153
|
+
uint32 lte = 3;
|
|
154
|
+
}
|
|
155
|
+
oneof greater_than {
|
|
156
|
+
uint32 gt = 4;
|
|
157
|
+
uint32 gte = 5;
|
|
158
|
+
}
|
|
159
|
+
repeated uint32 in = 6;
|
|
160
|
+
repeated uint32 not_in = 7;
|
|
161
|
+
repeated uint32 example = 8;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
message UInt64Rules {
|
|
165
|
+
extensions 1000 to max;
|
|
166
|
+
|
|
167
|
+
optional uint64 const = 1;
|
|
168
|
+
oneof less_than {
|
|
169
|
+
uint64 lt = 2;
|
|
170
|
+
uint64 lte = 3;
|
|
171
|
+
}
|
|
172
|
+
oneof greater_than {
|
|
173
|
+
uint64 gt = 4;
|
|
174
|
+
uint64 gte = 5;
|
|
175
|
+
}
|
|
176
|
+
repeated uint64 in = 6;
|
|
177
|
+
repeated uint64 not_in = 7;
|
|
178
|
+
repeated uint64 example = 8;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
message SInt32Rules {
|
|
182
|
+
extensions 1000 to max;
|
|
183
|
+
|
|
184
|
+
optional sint32 const = 1;
|
|
185
|
+
oneof less_than {
|
|
186
|
+
sint32 lt = 2;
|
|
187
|
+
sint32 lte = 3;
|
|
188
|
+
}
|
|
189
|
+
oneof greater_than {
|
|
190
|
+
sint32 gt = 4;
|
|
191
|
+
sint32 gte = 5;
|
|
192
|
+
}
|
|
193
|
+
repeated sint32 in = 6;
|
|
194
|
+
repeated sint32 not_in = 7;
|
|
195
|
+
repeated sint32 example = 8;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
message SInt64Rules {
|
|
199
|
+
extensions 1000 to max;
|
|
200
|
+
|
|
201
|
+
optional sint64 const = 1;
|
|
202
|
+
oneof less_than {
|
|
203
|
+
sint64 lt = 2;
|
|
204
|
+
sint64 lte = 3;
|
|
205
|
+
}
|
|
206
|
+
oneof greater_than {
|
|
207
|
+
sint64 gt = 4;
|
|
208
|
+
sint64 gte = 5;
|
|
209
|
+
}
|
|
210
|
+
repeated sint64 in = 6;
|
|
211
|
+
repeated sint64 not_in = 7;
|
|
212
|
+
repeated sint64 example = 8;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
message Fixed32Rules {
|
|
216
|
+
extensions 1000 to max;
|
|
217
|
+
|
|
218
|
+
optional fixed32 const = 1;
|
|
219
|
+
oneof less_than {
|
|
220
|
+
fixed32 lt = 2;
|
|
221
|
+
fixed32 lte = 3;
|
|
222
|
+
}
|
|
223
|
+
oneof greater_than {
|
|
224
|
+
fixed32 gt = 4;
|
|
225
|
+
fixed32 gte = 5;
|
|
226
|
+
}
|
|
227
|
+
repeated fixed32 in = 6;
|
|
228
|
+
repeated fixed32 not_in = 7;
|
|
229
|
+
repeated fixed32 example = 8;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
message Fixed64Rules {
|
|
233
|
+
extensions 1000 to max;
|
|
234
|
+
|
|
235
|
+
optional fixed64 const = 1;
|
|
236
|
+
oneof less_than {
|
|
237
|
+
fixed64 lt = 2;
|
|
238
|
+
fixed64 lte = 3;
|
|
239
|
+
}
|
|
240
|
+
oneof greater_than {
|
|
241
|
+
fixed64 gt = 4;
|
|
242
|
+
fixed64 gte = 5;
|
|
243
|
+
}
|
|
244
|
+
repeated fixed64 in = 6;
|
|
245
|
+
repeated fixed64 not_in = 7;
|
|
246
|
+
repeated fixed64 example = 8;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
message SFixed32Rules {
|
|
250
|
+
extensions 1000 to max;
|
|
251
|
+
|
|
252
|
+
optional sfixed32 const = 1;
|
|
253
|
+
oneof less_than {
|
|
254
|
+
sfixed32 lt = 2;
|
|
255
|
+
sfixed32 lte = 3;
|
|
256
|
+
}
|
|
257
|
+
oneof greater_than {
|
|
258
|
+
sfixed32 gt = 4;
|
|
259
|
+
sfixed32 gte = 5;
|
|
260
|
+
}
|
|
261
|
+
repeated sfixed32 in = 6;
|
|
262
|
+
repeated sfixed32 not_in = 7;
|
|
263
|
+
repeated sfixed32 example = 8;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
message SFixed64Rules {
|
|
267
|
+
extensions 1000 to max;
|
|
268
|
+
|
|
269
|
+
optional sfixed64 const = 1;
|
|
270
|
+
oneof less_than {
|
|
271
|
+
sfixed64 lt = 2;
|
|
272
|
+
sfixed64 lte = 3;
|
|
273
|
+
}
|
|
274
|
+
oneof greater_than {
|
|
275
|
+
sfixed64 gt = 4;
|
|
276
|
+
sfixed64 gte = 5;
|
|
277
|
+
}
|
|
278
|
+
repeated sfixed64 in = 6;
|
|
279
|
+
repeated sfixed64 not_in = 7;
|
|
280
|
+
repeated sfixed64 example = 8;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
message BoolRules {
|
|
284
|
+
extensions 1000 to max;
|
|
285
|
+
|
|
286
|
+
optional bool const = 1;
|
|
287
|
+
repeated bool example = 2;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
message StringRules {
|
|
291
|
+
extensions 1000 to max;
|
|
292
|
+
|
|
293
|
+
optional string const = 1;
|
|
294
|
+
optional uint64 len = 19;
|
|
295
|
+
optional uint64 min_len = 2;
|
|
296
|
+
optional uint64 max_len = 3;
|
|
297
|
+
optional uint64 len_bytes = 20;
|
|
298
|
+
optional uint64 min_bytes = 4;
|
|
299
|
+
optional uint64 max_bytes = 5;
|
|
300
|
+
optional string pattern = 6;
|
|
301
|
+
optional string prefix = 7;
|
|
302
|
+
optional string suffix = 8;
|
|
303
|
+
optional string contains = 9;
|
|
304
|
+
optional string not_contains = 23;
|
|
305
|
+
repeated string in = 10;
|
|
306
|
+
repeated string not_in = 11;
|
|
307
|
+
oneof well_known {
|
|
308
|
+
bool email = 12;
|
|
309
|
+
bool hostname = 13;
|
|
310
|
+
bool ip = 14;
|
|
311
|
+
bool ipv4 = 15;
|
|
312
|
+
bool ipv6 = 16;
|
|
313
|
+
bool uri = 17;
|
|
314
|
+
bool uri_ref = 18;
|
|
315
|
+
bool address = 21;
|
|
316
|
+
bool uuid = 22;
|
|
317
|
+
bool tuuid = 33;
|
|
318
|
+
bool ip_with_prefixlen = 26;
|
|
319
|
+
bool ipv4_with_prefixlen = 27;
|
|
320
|
+
bool ipv6_with_prefixlen = 28;
|
|
321
|
+
bool ip_prefix = 29;
|
|
322
|
+
bool ipv4_prefix = 30;
|
|
323
|
+
bool ipv6_prefix = 31;
|
|
324
|
+
bool host_and_port = 32;
|
|
325
|
+
.buf.validate.KnownRegex well_known_regex = 24;
|
|
326
|
+
}
|
|
327
|
+
optional bool strict = 25;
|
|
328
|
+
repeated string example = 34;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
message BytesRules {
|
|
332
|
+
extensions 1000 to max;
|
|
333
|
+
|
|
334
|
+
optional bytes const = 1;
|
|
335
|
+
optional uint64 len = 13;
|
|
336
|
+
optional uint64 min_len = 2;
|
|
337
|
+
optional uint64 max_len = 3;
|
|
338
|
+
optional string pattern = 4;
|
|
339
|
+
optional bytes prefix = 5;
|
|
340
|
+
optional bytes suffix = 6;
|
|
341
|
+
optional bytes contains = 7;
|
|
342
|
+
repeated bytes in = 8;
|
|
343
|
+
repeated bytes not_in = 9;
|
|
344
|
+
oneof well_known {
|
|
345
|
+
bool ip = 10;
|
|
346
|
+
bool ipv4 = 11;
|
|
347
|
+
bool ipv6 = 12;
|
|
348
|
+
}
|
|
349
|
+
repeated bytes example = 14;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
message EnumRules {
|
|
353
|
+
extensions 1000 to max;
|
|
354
|
+
|
|
355
|
+
optional int32 const = 1;
|
|
356
|
+
optional bool defined_only = 2;
|
|
357
|
+
repeated int32 in = 3;
|
|
358
|
+
repeated int32 not_in = 4;
|
|
359
|
+
repeated int32 example = 5;
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
message RepeatedRules {
|
|
363
|
+
extensions 1000 to max;
|
|
364
|
+
|
|
365
|
+
optional uint64 min_items = 1;
|
|
366
|
+
optional uint64 max_items = 2;
|
|
367
|
+
optional bool unique = 3;
|
|
368
|
+
optional .buf.validate.FieldRules items = 4;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
message MapRules {
|
|
372
|
+
extensions 1000 to max;
|
|
373
|
+
|
|
374
|
+
optional uint64 min_pairs = 1;
|
|
375
|
+
optional uint64 max_pairs = 2;
|
|
376
|
+
optional .buf.validate.FieldRules keys = 4;
|
|
377
|
+
optional .buf.validate.FieldRules values = 5;
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
message AnyRules {
|
|
381
|
+
repeated string in = 2;
|
|
382
|
+
repeated string not_in = 3;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
message DurationRules {
|
|
386
|
+
extensions 1000 to max;
|
|
387
|
+
|
|
388
|
+
optional .google.protobuf.Duration const = 2;
|
|
389
|
+
oneof less_than {
|
|
390
|
+
.google.protobuf.Duration lt = 3;
|
|
391
|
+
.google.protobuf.Duration lte = 4;
|
|
392
|
+
}
|
|
393
|
+
oneof greater_than {
|
|
394
|
+
.google.protobuf.Duration gt = 5;
|
|
395
|
+
.google.protobuf.Duration gte = 6;
|
|
396
|
+
}
|
|
397
|
+
repeated .google.protobuf.Duration in = 7;
|
|
398
|
+
repeated .google.protobuf.Duration not_in = 8;
|
|
399
|
+
repeated .google.protobuf.Duration example = 9;
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
message TimestampRules {
|
|
403
|
+
extensions 1000 to max;
|
|
404
|
+
|
|
405
|
+
optional .google.protobuf.Timestamp const = 2;
|
|
406
|
+
oneof less_than {
|
|
407
|
+
.google.protobuf.Timestamp lt = 3;
|
|
408
|
+
.google.protobuf.Timestamp lte = 4;
|
|
409
|
+
bool lt_now = 7;
|
|
410
|
+
}
|
|
411
|
+
oneof greater_than {
|
|
412
|
+
.google.protobuf.Timestamp gt = 5;
|
|
413
|
+
.google.protobuf.Timestamp gte = 6;
|
|
414
|
+
bool gt_now = 8;
|
|
415
|
+
}
|
|
416
|
+
optional .google.protobuf.Duration within = 9;
|
|
417
|
+
repeated .google.protobuf.Timestamp example = 10;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
message Violations {
|
|
421
|
+
repeated .buf.validate.Violation violations = 1;
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
message Violation {
|
|
425
|
+
reserved 1;
|
|
426
|
+
reserved "field_path";
|
|
427
|
+
|
|
428
|
+
optional .buf.validate.FieldPath field = 5;
|
|
429
|
+
optional .buf.validate.FieldPath rule = 6;
|
|
430
|
+
optional string rule_id = 2;
|
|
431
|
+
optional string message = 3;
|
|
432
|
+
optional bool for_key = 4;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
message FieldPath {
|
|
436
|
+
repeated .buf.validate.FieldPathElement elements = 1;
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
message FieldPathElement {
|
|
440
|
+
optional int32 field_number = 1;
|
|
441
|
+
optional string field_name = 2;
|
|
442
|
+
optional .google.protobuf.FieldDescriptorProto.Type field_type = 3;
|
|
443
|
+
optional .google.protobuf.FieldDescriptorProto.Type key_type = 4;
|
|
444
|
+
optional .google.protobuf.FieldDescriptorProto.Type value_type = 5;
|
|
445
|
+
oneof subscript {
|
|
446
|
+
uint64 index = 6;
|
|
447
|
+
bool bool_key = 7;
|
|
448
|
+
int64 int_key = 8;
|
|
449
|
+
uint64 uint_key = 9;
|
|
450
|
+
string string_key = 10;
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
extend .google.protobuf.MessageOptions {
|
|
455
|
+
optional .buf.validate.MessageRules message = 1159;
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
extend .google.protobuf.OneofOptions {
|
|
459
|
+
optional .buf.validate.OneofRules oneof = 1159;
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
extend .google.protobuf.FieldOptions {
|
|
463
|
+
optional .buf.validate.FieldRules field = 1159;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
extend .google.protobuf.FieldOptions {
|
|
467
|
+
optional .buf.validate.PredefinedRules predefined = 1160;
|
|
468
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
version: v2
|
|
2
|
+
# Codegen is scoped to the api_server.proto transitive closure (the RPCs the
|
|
3
|
+
# devin provider actually uses). The rest of the reverse-engineered Codeium
|
|
4
|
+
# corpus is kept in this directory for reference/maintenance but is NOT
|
|
5
|
+
# generated. Vendored google/* WKTs are intentionally absent — buf bundles them.
|
|
6
|
+
inputs:
|
|
7
|
+
- directory: .
|
|
8
|
+
paths:
|
|
9
|
+
- buf/validate/validate.proto
|
|
10
|
+
- exa/analytics_pb/analytics.proto
|
|
11
|
+
- exa/api_server_pb/api_server.proto
|
|
12
|
+
- exa/auth_pb/auth.proto
|
|
13
|
+
- exa/auto_cascade_common_pb/auto_cascade_common.proto
|
|
14
|
+
- exa/bug_checker_pb/bug_checker.proto
|
|
15
|
+
- exa/cascade_plugins_pb/cascade_plugins.proto
|
|
16
|
+
- exa/chat_pb/chat.proto
|
|
17
|
+
- exa/code_edit/code_edit_pb/code_edit.proto
|
|
18
|
+
- exa/codeium_common_pb/codeium_common.proto
|
|
19
|
+
- exa/context_module_pb/context_module.proto
|
|
20
|
+
- exa/cortex_pb/cortex.proto
|
|
21
|
+
- exa/diff_action_pb/diff_action.proto
|
|
22
|
+
- exa/index_pb/index.proto
|
|
23
|
+
- exa/knowledge_base_pb/knowledge_base.proto
|
|
24
|
+
- exa/language_server_pb/language_server.proto
|
|
25
|
+
- exa/opensearch_clients_pb/opensearch_clients.proto
|
|
26
|
+
- exa/prompt_pb/prompt.proto
|
|
27
|
+
- exa/reactive_component_pb/reactive_component.proto
|
|
28
|
+
- exa/trust_pb/trust.proto
|
|
29
|
+
plugins:
|
|
30
|
+
- local: ../../../../../../node_modules/.bin/protoc-gen-es
|
|
31
|
+
out: ../../../../../catalog/src/discovery/devin-gen
|
|
32
|
+
opt:
|
|
33
|
+
- target=ts
|