Skip to content

Commit

Permalink
generate
Browse files Browse the repository at this point in the history
  • Loading branch information
umpox committed Mar 5, 2025
1 parent f21cdcc commit ed37a55
Show file tree
Hide file tree
Showing 13 changed files with 107 additions and 13 deletions.
Original file line number Diff line number Diff line change
@@ -1,8 +1,49 @@
@file:Suppress("FunctionName", "ClassName", "unused", "EnumEntryName", "UnusedImport")
package com.sourcegraph.cody.agent.protocol_generated;

data class AutocompleteResult(
import com.google.gson.annotations.SerializedName;
import com.google.gson.Gson;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import java.lang.reflect.Type;

sealed class AutocompleteResult {
companion object {
val deserializer: JsonDeserializer<AutocompleteResult> =
JsonDeserializer { element: JsonElement, _: Type, context: JsonDeserializationContext ->
when (element.getAsJsonObject().get("type").getAsString()) {
"completion" -> context.deserialize<AutocompleteCompletionResult>(element, AutocompleteCompletionResult::class.java)
"edit" -> context.deserialize<AutocompleteEditResult>(element, AutocompleteEditResult::class.java)
else -> throw Exception("Unknown discriminator ${element}")
}
}
}
}

data class AutocompleteCompletionResult(
val type: TypeEnum, // Oneof: completion
val items: List<AutocompleteItem>,
val completionEvent: CompletionBookkeepingEvent? = null,
)
) : AutocompleteResult() {

enum class TypeEnum {
@SerializedName("completion") Completion,
}
}

data class AutocompleteEditResult(
val type: TypeEnum, // Oneof: edit
val range: Range,
val originalText: String,
val prediction: String,
val decorations: DecorationsParams,
val items: List<AutocompleteItem>,
val completionEvent: CompletionBookkeepingEvent? = null,
) : AutocompleteResult() {

enum class TypeEnum {
@SerializedName("edit") Edit,
}
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
@file:Suppress("FunctionName", "ClassName", "unused", "EnumEntryName", "UnusedImport")
package com.sourcegraph.cody.agent.protocol_generated;

data class AutoeditImageDecoration(
val dark: String,
val light: String,
val pixelRatio: Long,
val position: PositionParams,
)

Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
@file:Suppress("FunctionName", "ClassName", "unused", "EnumEntryName", "UnusedImport")
package com.sourcegraph.cody.agent.protocol_generated;

import com.google.gson.annotations.SerializedName;

data class AutoeditTextDecoration(
val type: TypeEnum, // Oneof: insert, delete
val range: Range,
val text: String? = null,
) {

enum class TypeEnum {
@SerializedName("insert") Insert,
@SerializedName("delete") Delete,
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@ import com.google.gson.annotations.SerializedName;
data class ClientCapabilities(
val authentication: AuthenticationEnum? = null, // Oneof: enabled, none
val completions: CompletionsEnum? = null, // Oneof: none
val autoEditDecorationSuggestions: AutoEditDecorationSuggestionsEnum? = null, // Oneof: none, deletions, insertions-and-deletions
val autoEditImageSuggestions: AutoEditImageSuggestionsEnum? = null, // Oneof: none, enabled
val autoEdit: AutoEditEnum? = null, // Oneof: none, enabled
val autoEditTextDecorations: AutoEditTextDecorationsEnum? = null, // Oneof: none, insertions-only, deletions-only, insertions-and-deletions
val autoEditImageDecorations: AutoEditImageDecorationsEnum? = null, // Oneof: none, enabled
val chat: ChatEnum? = null, // Oneof: none, streaming
val git: GitEnum? = null, // Oneof: none, enabled
val progressBars: ProgressBarsEnum? = null, // Oneof: none, enabled
Expand Down Expand Up @@ -38,13 +39,19 @@ data class ClientCapabilities(
@SerializedName("none") None,
}

enum class AutoEditDecorationSuggestionsEnum {
enum class AutoEditEnum {
@SerializedName("none") None,
@SerializedName("deletions") Deletions,
@SerializedName("enabled") Enabled,
}

enum class AutoEditTextDecorationsEnum {
@SerializedName("none") None,
@SerializedName("insertions-only") `Insertions-only`,
@SerializedName("deletions-only") `Deletions-only`,
@SerializedName("insertions-and-deletions") `Insertions-and-deletions`,
}

enum class AutoEditImageSuggestionsEnum {
enum class AutoEditImageDecorationsEnum {
@SerializedName("none") None,
@SerializedName("enabled") Enabled,
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ object Constants {
const val chat = "chat"
const val `class` = "class"
const val `client-managed` = "client-managed"
const val completion = "completion"
const val confirmation = "confirmation"
const val contextFile = "context_file"
const val contextRepo = "context_repo"
Expand All @@ -36,7 +37,7 @@ object Constants {
const val default = "default"
const val delete = "delete"
const val `delete-file` = "delete-file"
const val deletions = "deletions"
const val `deletions-only` = "deletions-only"
const val deprecated = "deprecated"
const val dev = "dev"
const val `early-access` = "early-access"
Expand All @@ -61,6 +62,7 @@ object Constants {
const val initial = "initial"
const val insert = "insert"
const val `insertions-and-deletions` = "insertions-and-deletions"
const val `insertions-only` = "insertions-only"
const val internal = "internal"
const val isChatErrorGuard = "isChatErrorGuard"
const val local = "local"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
@file:Suppress("FunctionName", "ClassName", "unused", "EnumEntryName", "UnusedImport")
package com.sourcegraph.cody.agent.protocol_generated;

data class DecorationsParams(
val text: List<AutoeditTextDecoration>? = null,
val image: AutoeditImageDecoration? = null,
)

Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
@file:Suppress("FunctionName", "ClassName", "unused", "EnumEntryName", "UnusedImport")
package com.sourcegraph.cody.agent.protocol_generated;

data class PositionParams(
val line: Long,
val column: Long,
)

Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ object ProtocolTypeAdapters {
fun register(gson: com.google.gson.GsonBuilder) {
gson.registerTypeAdapter(ContextItem::class.java, ContextItem.deserializer)
gson.registerTypeAdapter(MessagePart::class.java, MessagePart.deserializer)
gson.registerTypeAdapter(AutocompleteResult::class.java, AutocompleteResult.deserializer)
gson.registerTypeAdapter(CustomCommandResult::class.java, CustomCommandResult.deserializer)
gson.registerTypeAdapter(ProtocolAuthStatus::class.java, ProtocolAuthStatus.deserializer)
gson.registerTypeAdapter(TextEdit::class.java, TextEdit.deserializer)
Expand Down
2 changes: 1 addition & 1 deletion agent/src/vscode-shim.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ import { emptyDisposable } from '../../vscode/src/testutils/emptyDisposable'

import open from 'open'
import type { AutoeditsProvider } from '../../vscode/src/autoedits/autoedits-provider'
import { InlineCompletionItemProvider } from '../../vscode/src/completions/inline-completion-item-provider'
import type { InlineCompletionItemProvider } from '../../vscode/src/completions/inline-completion-item-provider'
import { AgentDiagnostics } from './AgentDiagnostics'
import { AgentQuickPick } from './AgentQuickPick'
import { AgentTabGroups } from './AgentTabGroups'
Expand Down
2 changes: 1 addition & 1 deletion vscode/src/autoedits/autoedits-provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import { isRunningInsideAgent } from '../jsonrpc/isRunningInsideAgent'
import type { FixupController } from '../non-stop/FixupController'
import type { CodyStatusBar } from '../services/StatusBar'

import { CompletionBookkeepingEvent } from '../completions/analytics-logger'
import type { CompletionBookkeepingEvent } from '../completions/analytics-logger'
import type { AutoeditImageDecoration, AutoeditTextDecoration } from '../jsonrpc/agent-protocol'
import type { AutoeditsModelAdapter, AutoeditsPrompt, ModelResponse } from './adapters/base'
import { createAutoeditsModelAdapter } from './adapters/create-adapter'
Expand Down
2 changes: 1 addition & 1 deletion vscode/src/autoedits/renderer/inline-manager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import type * as vscode from 'vscode'

import { isFileURI } from '@sourcegraph/cody-shared'

import { AutoeditClientCapabilities } from '../autoedits-provider'
import type { AutoeditClientCapabilities } from '../autoedits-provider'
import { areSameUriDocs } from '../utils'
import { generateSuggestionAsImage } from './image-gen'
import { makeVisualDiff } from './image-gen/visual-diff'
Expand Down
2 changes: 1 addition & 1 deletion vscode/src/autoedits/renderer/manager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import {
import type { FixupController } from '../../non-stop/FixupController'
import { CodyTaskState } from '../../non-stop/state'
import { AutoeditCompletionItem } from '../autoedit-completion-item'
import { AutoeditClientCapabilities } from '../autoedits-provider'
import type { AutoeditClientCapabilities } from '../autoedits-provider'
import { autoeditsOutputChannelLogger } from '../output-channel-logger'
import type { AutoEditDecorations, AutoEditsDecorator, DecorationInfo } from './decorators/base'
import {
Expand Down
2 changes: 1 addition & 1 deletion vscode/src/autoedits/renderer/render-output.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { shortenPromptForOutputChannel } from '../../completions/output-channel-
import { isRunningInsideAgent } from '../../jsonrpc/isRunningInsideAgent'
import type { AutoeditRequestID } from '../analytics-logger'
import { AutoeditCompletionItem } from '../autoedit-completion-item'
import { AutoeditClientCapabilities } from '../autoedits-provider'
import type { AutoeditClientCapabilities } from '../autoedits-provider'
import { autoeditsOutputChannelLogger } from '../output-channel-logger'
import type { AutoEditDecorations, DecorationInfo } from './decorators/base'
import { cssPropertiesToString } from './decorators/utils'
Expand Down

0 comments on commit ed37a55

Please sign in to comment.