diff --git a/build.gradle.kts b/build.gradle.kts
index 2870a5112d..11be605540 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -227,6 +227,7 @@ fun Test.sharedIntegrationTestConfig(buildCodyDir: File, mode: String) {
environment(
"CODY_RECORDING_MODE" to mode,
+ "CODY_RECORDING_NAME" to "integration-test",
"CODY_RECORDING_DIRECTORY" to resourcesDir.resolve("recordings").absolutePath,
"CODY_SHIM_TESTING" to "true",
"CODY_TEMPERATURE_ZERO" to "true",
diff --git a/src/integrationTest/kotlin/com/sourcegraph/cody/AllSuites.kt b/src/integrationTest/kotlin/com/sourcegraph/cody/AllSuites.kt
index 171b0a4103..67c8ebd3c7 100644
--- a/src/integrationTest/kotlin/com/sourcegraph/cody/AllSuites.kt
+++ b/src/integrationTest/kotlin/com/sourcegraph/cody/AllSuites.kt
@@ -1,11 +1,8 @@
package com.sourcegraph.cody
-import com.sourcegraph.cody.chat.ChatTest
import com.sourcegraph.cody.edit.DocumentCodeTest
import com.sourcegraph.cody.util.RepeatableSuite
import org.junit.runner.RunWith
import org.junit.runners.Suite
-@RunWith(RepeatableSuite::class)
-@Suite.SuiteClasses(ChatTest::class, DocumentCodeTest::class)
-class AllSuites
+@RunWith(RepeatableSuite::class) @Suite.SuiteClasses(DocumentCodeTest::class) class AllSuites
diff --git a/src/integrationTest/kotlin/com/sourcegraph/cody/chat/ChatTest.kt b/src/integrationTest/kotlin/com/sourcegraph/cody/chat/ChatTest.kt
deleted file mode 100644
index 57656a1104..0000000000
--- a/src/integrationTest/kotlin/com/sourcegraph/cody/chat/ChatTest.kt
+++ /dev/null
@@ -1,102 +0,0 @@
-package com.sourcegraph.cody.chat
-
-import com.intellij.testFramework.runInEdtAndGet
-import com.intellij.testFramework.runInEdtAndWait
-import com.sourcegraph.cody.chat.ui.ContextFileActionLink
-import com.sourcegraph.cody.context.ui.EnterpriseEnhancedContextPanel
-import com.sourcegraph.cody.history.HistoryService
-import com.sourcegraph.cody.history.state.EnhancedContextState
-import com.sourcegraph.cody.history.state.RemoteRepositoryState
-import com.sourcegraph.cody.util.CodyIntegrationTestFixture
-import com.sourcegraph.cody.util.CustomJunitClassRunner
-import com.sourcegraph.cody.util.TestingCredentials
-import java.awt.Component
-import java.awt.Container
-import java.util.concurrent.TimeUnit
-import junit.framework.TestCase
-import org.awaitility.kotlin.await
-import org.awaitility.kotlin.until
-import org.junit.Test
-import org.junit.runner.RunWith
-
-@RunWith(CustomJunitClassRunner::class)
-class ChatTest : CodyIntegrationTestFixture() {
- override fun recordingName() = "chat"
-
- override fun credentials() = TestingCredentials.enterprise
-
- override fun checkSuiteSpecificInitialConditions() = Unit
-
- @Test
- fun testRemoteContextFileItems() {
- val enhancedContextState =
- EnhancedContextState().apply {
- remoteRepositories.add(
- RemoteRepositoryState().apply {
- isEnabled = true
- remoteUrl = "github.com/sourcegraph/cody"
- codebaseName = "github.com/sourcegraph/cody"
- })
- }
- HistoryService.getInstance(project).updateDefaultContextState(enhancedContextState)
-
- val session = runInEdtAndGet { AgentChatSession.createNew(project) }
-
- await.atMost(30, TimeUnit.SECONDS) until
- {
- (session.getPanel().contextView as EnterpriseEnhancedContextPanel)
- .controller
- .getConfiguredState()
- .find { it.name == "github.com/sourcegraph/cody" && !it.isIgnored } != null
- }
-
- runInEdtAndWait { session.sendMessage("What is JSON RPC?", emptyList()) }
-
- await.atMost(30, TimeUnit.SECONDS) until { !session.messages[0].contextFiles.isNullOrEmpty() }
- await.atMost(30, TimeUnit.SECONDS) until { session.messages.size == 2 }
- await.atMost(30, TimeUnit.SECONDS) until { session.messages[1].text?.isNotBlank() == true }
-
- val linkPanels =
- findComponentsRecursively(session.getPanel(), ContextFileActionLink::class.java)
-
- TestCase.assertEquals(
- listOf(
- "cody agent/CHANGELOG.md",
- "cody agent/README.md",
- "cody agent/src/__tests__/chat-response-quality/README.md",
- "cody agent/src/cli/command-jsonrpc-stdio.ts",
- "cody agent/src/cli/command-jsonrpc-websocket.ts",
- "cody agent/src/cli/command-root.ts",
- "cody agent/src/cli/scip-codegen/JvmCodegen.ts",
- "cody agent/src/cli/scip-codegen/JvmFormatter.ts",
- "cody agent/src/jsonrpc-alias.ts",
- "cody agent/src/local-e2e/README.md",
- "cody lib/icons/README.md",
- "cody vscode/src/graph/bfg/spawn-bfg.ts",
- "cody vscode/src/jsonrpc/bfg-protocol.ts",
- "cody vscode/src/jsonrpc/CodyJsonRpcErrorCode.ts",
- "cody vscode/src/jsonrpc/embeddings-protocol.ts",
- "cody vscode/src/jsonrpc/isRunningInsideAgent.ts",
- "cody vscode/src/jsonrpc/jsonrpc.ts",
- "cody vscode/src/jsonrpc/TextDocumentWithUri.test.ts",
- "cody vscode/src/jsonrpc/TextDocumentWithUri.ts",
- "cody web/lib/agent/agent.client.ts"),
- linkPanels.map { panel -> panel.text })
- }
-
- private fun findComponentsRecursively(parent: Component, targetClass: Class): List {
- val result = mutableListOf()
-
- if (targetClass.isInstance(parent)) {
- result.add(parent as A)
- }
-
- if (parent is Container) {
- for (component in parent.components) {
- result.addAll(findComponentsRecursively(component, targetClass))
- }
- }
-
- return result
- }
-}
diff --git a/src/integrationTest/kotlin/com/sourcegraph/cody/edit/DocumentCodeTest.kt b/src/integrationTest/kotlin/com/sourcegraph/cody/edit/DocumentCodeTest.kt
index 3189164621..251f31590d 100644
--- a/src/integrationTest/kotlin/com/sourcegraph/cody/edit/DocumentCodeTest.kt
+++ b/src/integrationTest/kotlin/com/sourcegraph/cody/edit/DocumentCodeTest.kt
@@ -1,10 +1,5 @@
package com.sourcegraph.cody.edit
-import com.intellij.openapi.actionSystem.ActionManager
-import com.intellij.openapi.actionSystem.AnActionEvent
-import com.intellij.openapi.actionSystem.DataContext
-import com.intellij.openapi.editor.Editor
-import com.intellij.openapi.editor.ex.EditorEx
import com.sourcegraph.cody.edit.actions.DocumentCodeAction
import com.sourcegraph.cody.edit.actions.lenses.EditAcceptAction
import com.sourcegraph.cody.edit.actions.lenses.EditCancelAction
@@ -15,35 +10,15 @@ import com.sourcegraph.cody.edit.widget.LensIcon
import com.sourcegraph.cody.edit.widget.LensLabel
import com.sourcegraph.cody.edit.widget.LensSpinner
import com.sourcegraph.cody.edit.widget.LensWidgetGroup
-import com.sourcegraph.cody.util.CodyIntegrationTestFixture
+import com.sourcegraph.cody.util.CodyIntegrationTextFixture
import com.sourcegraph.cody.util.CustomJunitClassRunner
-import com.sourcegraph.cody.util.TestingCredentials
import org.hamcrest.Matchers.startsWith
import org.junit.Assert.assertThat
import org.junit.Test
import org.junit.runner.RunWith
@RunWith(CustomJunitClassRunner::class)
-class DocumentCodeTest : CodyIntegrationTestFixture() {
- override fun recordingName() = "documentCode"
-
- override fun credentials() = TestingCredentials.dotcom
-
- override fun checkSuiteSpecificInitialConditions() {
- // Check the initial state of the action's presentation
- val action = ActionManager.getInstance().getAction("cody.documentCodeAction")
- val event =
- AnActionEvent.createFromAnAction(action, null, "", createEditorContext(myFixture.editor))
- action.update(event)
- val presentation = event.presentation
- assertTrue("Action should be enabled", presentation.isEnabled)
- assertTrue("Action should be visible", presentation.isVisible)
- }
-
- private fun createEditorContext(editor: Editor): DataContext {
- return (editor as? EditorEx)?.dataContext ?: DataContext.EMPTY_CONTEXT
- }
-
+class DocumentCodeTest : CodyIntegrationTextFixture() {
@Test
fun testGetsWorkingGroupLens() {
val codeLensGroup = runAndWaitForLenses(DocumentCodeAction.ID, EditCancelAction.ID)
diff --git a/src/integrationTest/kotlin/com/sourcegraph/cody/util/CodyIntegrationTestFixture.kt b/src/integrationTest/kotlin/com/sourcegraph/cody/util/CodyIntegrationTextFixture.kt
similarity index 82%
rename from src/integrationTest/kotlin/com/sourcegraph/cody/util/CodyIntegrationTestFixture.kt
rename to src/integrationTest/kotlin/com/sourcegraph/cody/util/CodyIntegrationTextFixture.kt
index bce07d2ebc..1ec0e0c4b8 100644
--- a/src/integrationTest/kotlin/com/sourcegraph/cody/util/CodyIntegrationTestFixture.kt
+++ b/src/integrationTest/kotlin/com/sourcegraph/cody/util/CodyIntegrationTextFixture.kt
@@ -1,11 +1,16 @@
package com.sourcegraph.cody.util
import com.intellij.ide.lightEdit.LightEdit
+import com.intellij.openapi.actionSystem.ActionManager
+import com.intellij.openapi.actionSystem.AnActionEvent
+import com.intellij.openapi.actionSystem.DataContext
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.application.WriteAction
import com.intellij.openapi.application.runInEdt
import com.intellij.openapi.command.WriteCommandAction
import com.intellij.openapi.diagnostic.Logger
+import com.intellij.openapi.editor.Editor
+import com.intellij.openapi.editor.ex.EditorEx
import com.intellij.openapi.fileEditor.FileDocumentManager
import com.intellij.openapi.project.DumbService
import com.intellij.openapi.project.Project
@@ -26,8 +31,8 @@ import java.util.concurrent.TimeUnit
import java.util.regex.Pattern
import junit.framework.TestCase
-abstract class CodyIntegrationTestFixture : BasePlatformTestCase(), LensListener {
- private val logger = Logger.getInstance(CodyIntegrationTestFixture::class.java)
+open class CodyIntegrationTextFixture : BasePlatformTestCase(), LensListener {
+ private val logger = Logger.getInstance(CodyIntegrationTextFixture::class.java)
private val lensSubscribers =
mutableListOf<
Pair<(List) -> Boolean, CompletableFuture>>()
@@ -56,7 +61,23 @@ abstract class CodyIntegrationTestFixture : BasePlatformTestCase(), LensListener
val recordingsFuture = CompletableFuture()
CodyAgentService.withAgent(project) { agent ->
- agent.server.testing_requestErrors(params = null).get()
+ val errors = agent.server.testingRequestErrors().get()
+ // We extract polly.js errors to notify users about the missing recordings, if any
+ val missingRecordings = errors.filter { it.error?.contains("`recordIfMissing` is") == true }
+ missingRecordings.forEach { missing ->
+ logger.error(
+ """Recording is missing: ${missing.error}
+ |
+ |${missing.body}
+ |
+ |------------------------------------------------------------------------------------------
+ |To fix this problem please run `./gradlew :recordingIntegrationTest`.
+ |You need to export access tokens first, using script from the `sourcegraph/cody` repository:
+ |`agent/scripts/export-cody-http-recording-tokens.sh`
+ |------------------------------------------------------------------------------------------
+ """
+ .trimMargin())
+ }
recordingsFuture.complete(null)
}
recordingsFuture.get(ASYNC_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS)
@@ -74,14 +95,7 @@ abstract class CodyIntegrationTestFixture : BasePlatformTestCase(), LensListener
// Methods there are mostly idempotent though, so calling again for every test case should not
// change anything.
private fun initCredentialsAndAgent() {
- assertNotNull(
- "Unable to start agent in a timely fashion!",
- CodyAgentService.getInstance(project)
- .startAgent(project, additionalEnvs = mapOf("CODY_RECORDING_NAME" to recordingName()))
- .completeOnTimeout(null, ASYNC_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS)
- .get())
-
- val credentials = credentials()
+ val credentials = TestingCredentials.dotcom
CodyPersistentAccountsHost(project)
.addAccount(
SourcegraphServerPath.from(credentials.serverEndpoint, ""),
@@ -89,11 +103,14 @@ abstract class CodyIntegrationTestFixture : BasePlatformTestCase(), LensListener
displayName = "Test User",
token = credentials.token ?: credentials.redactedToken,
id = "random-unique-testing-id-1337")
- }
- abstract fun recordingName(): String
-
- abstract fun credentials(): TestingCredentials
+ assertNotNull(
+ "Unable to start agent in a timely fashion!",
+ CodyAgentService.getInstance(project)
+ .startAgent(project)
+ .completeOnTimeout(null, ASYNC_WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS)
+ .get())
+ }
private fun checkInitialConditions() {
// If you don't specify this system property with this setting when running the tests,
@@ -113,10 +130,19 @@ abstract class CodyIntegrationTestFixture : BasePlatformTestCase(), LensListener
val isLightEditMode = LightEdit.owns(project)
assertFalse("Project should not be in LightEdit mode", isLightEditMode)
- checkSuiteSpecificInitialConditions()
+ // Check the initial state of the action's presentation
+ val action = ActionManager.getInstance().getAction("cody.documentCodeAction")
+ val event =
+ AnActionEvent.createFromAnAction(action, null, "", createEditorContext(myFixture.editor))
+ action.update(event)
+ val presentation = event.presentation
+ assertTrue("Action should be enabled", presentation.isEnabled)
+ assertTrue("Action should be visible", presentation.isVisible)
}
- abstract fun checkSuiteSpecificInitialConditions()
+ private fun createEditorContext(editor: Editor): DataContext {
+ return (editor as? EditorEx)?.dataContext ?: DataContext.EMPTY_CONTEXT
+ }
// This provides a crude mechanism for specifying the caret position in the test file.
private fun initCaretPosition() {
diff --git a/src/integrationTest/resources/recordings/chat_2722888107/recording.har.yaml b/src/integrationTest/resources/recordings/chat_2722888107/recording.har.yaml
deleted file mode 100644
index b4ef71acc2..0000000000
--- a/src/integrationTest/resources/recordings/chat_2722888107/recording.har.yaml
+++ /dev/null
@@ -1,2414 +0,0 @@
-log:
- _recordingName: chat
- creator:
- comment: persister:fs
- name: Polly.JS
- version: 6.0.6
- entries:
- - _id: 55e4b30d65f8bef20b754a5b102111d0
- _order: 0
- cache: {}
- request:
- bodySize: 0
- cookies: []
- headers:
- - _fromType: array
- name: authorization
- value: token
- REDACTED_b20717265e7ab1d132874d8ff0be053ab9c1dacccec8dce0bbba76888b6a0a69
- - _fromType: array
- name: content-type
- value: application/json; charset=utf-8
- - _fromType: array
- name: user-agent
- value: JetBrains / 6.0-localbuild
- - _fromType: array
- name: accept
- value: "*/*"
- - _fromType: array
- name: accept-encoding
- value: gzip,deflate
- - name: host
- value: demo.sourcegraph.com
- headersSize: 296
- httpVersion: HTTP/1.1
- method: GET
- queryString: []
- url: https://demo.sourcegraph.com/.api/client-config
- response:
- bodySize: 184
- content:
- encoding: base64
- mimeType: text/plain; charset=utf-8
- size: 184
- text: "[\"H4sIAAAAAAAAA2zMsQpCMQyF4b1PEe7sE7hJcXBzc861EQtNI80pKnLf3UVwyfz953wSE\
- dFytfI+dl6blGVPGFN2P7gzQuAJy6aPJpB4OR2m2VS5F48/gFHXiWo9dFceyNYhL1xq\
- L/YMM7UizQ/n019v3FzSlr4AAAD//wMAmGWdCt8AAAA=\"]"
- cookies: []
- headers:
- - name: date
- value: Fri, 09 Aug 2024 12:48:20 GMT
- - name: content-type
- value: text/plain; charset=utf-8
- - name: transfer-encoding
- value: chunked
- - name: connection
- value: keep-alive
- - name: retry-after
- value: "176"
- - name: access-control-allow-credentials
- value: "true"
- - name: access-control-allow-origin
- value: ""
- - name: cache-control
- value: no-cache, max-age=0
- - name: vary
- value: Accept-Encoding, Authorization, Cookie, Authorization, X-Requested-With,
- Cookie
- - name: x-content-type-options
- value: nosniff
- - name: x-frame-options
- value: DENY
- - name: x-xss-protection
- value: 1; mode=block
- - name: strict-transport-security
- value: max-age=31536000; includeSubDomains; preload
- - name: content-encoding
- value: gzip
- headersSize: 1364
- httpVersion: HTTP/1.1
- redirectURL: ""
- status: 200
- statusText: OK
- startedDateTime: 2024-08-09T12:48:19.849Z
- time: 0
- timings:
- blocked: -1
- connect: -1
- dns: -1
- receive: 0
- send: 0
- ssl: -1
- wait: 0
- - _id: 132f966d98fb83a3612d47239060956e
- _order: 0
- cache: {}
- request:
- bodySize: 20390
- cookies: []
- headers:
- - name: content-type
- value: application/json
- - name: accept-encoding
- value: gzip;q=0
- - name: authorization
- value: token
- REDACTED_b20717265e7ab1d132874d8ff0be053ab9c1dacccec8dce0bbba76888b6a0a69
- - name: user-agent
- value: JetBrains / 6.0-localbuild
- - name: traceparent
- value: 00-86dd245a47c1f0f20c9a2f9b5ff9a829-b8a845bad6768fe0-01
- - name: connection
- value: keep-alive
- - name: host
- value: demo.sourcegraph.com
- headersSize: 430
- httpVersion: HTTP/1.1
- method: POST
- postData:
- mimeType: application/json
- params: []
- textJSON:
- maxTokensToSample: 4000
- messages:
- - speaker: system
- text: You are Cody, an AI coding assistant from Sourcegraph.
- - speaker: human
- text: >-
- Codebase context from file /web/lib/agent/agent.client.ts in
- repository github.com/sourcegraph/cody:
-
- ```typescript
-
- // @ts-ignore
-
- import AgentWorker from './agent.worker.ts?worker&inline'
-
-
- // TODO(sqs): dedupe with agentClient.ts in [experimental Cody CLI](https://github.com/sourcegraph/cody/pull/3418)
-
- export interface AgentClient {
- serverInfo: ServerInfo
- rpc: MessageConnection
- dispose(): void
- }
-
-
- interface AgentClientOptions {
- serverEndpoint: string
- accessToken: string
- workspaceRootUri: string
- telemetryClientName?: string
- customHeaders?: Record
- debug?: boolean
- trace?: boolean
- }
-
-
- export async function createAgentClient({
- serverEndpoint,
- accessToken,
- workspaceRootUri,
- customHeaders,
- telemetryClientName,
- debug = true,
- trace = false,
- }: AgentClientOptions): Promise {
- // Run agent worker and set up a transport bridge between
- // main thread and web-worker thread via json-rpc protocol
- const worker = new AgentWorker() as Worker
- const rpc = createMessageConnection(
- new BrowserMessageReader(worker),
- ```
- - speaker: assistant
- text: Ok.
- - speaker: human
- text: >-
- Codebase context from file
- /vscode/src/jsonrpc/TextDocumentWithUri.ts in repository
- github.com/sourcegraph/cody:
-
- ```typescript
-
- } from './agent-protocol'
-
-
- /**
- * Wrapper around `ProtocolTextDocument` that also contains a parsed vscode.Uri.
- *
- * We can't use `vscode.Uri` in `ProtocolTextDocument` because we use that type
- * in the JSON-RPC protocol where URIs are string-encoded.
- */
- export class ProtocolTextDocumentWithUri {
- public underlying: ProtocolTextDocument
- private constructor(
- public readonly uri: vscode.Uri,
- underlying?: ProtocolTextDocument
- ) {
- this.underlying = underlying ?? { uri: uri.toString() }
- if (this.underlying.uri !== uri.toString()) {
- logDebug(
- 'ProtocolTextDocumentWithUri',
- 'correcting invariant violation',
- `${this.uri} (this.uri) !== ${this.underlying.uri} (this.underlying.uri)`
- )
- this.underlying.uri = uri.toString()
- }
- }
-
- public static fromDocument(document: ProtocolTextDocument): ProtocolTextDocumentWithUri {
- ```
- - speaker: assistant
- text: Ok.
- - speaker: human
- text: >-
- Codebase context from file
- /vscode/src/jsonrpc/TextDocumentWithUri.test.ts in repository
- github.com/sourcegraph/cody:
-
- ```typescript
-
- import { describe, expect, it } from 'vitest'
-
- import { ProtocolTextDocumentWithUri } from './TextDocumentWithUri'
-
-
- describe('TextDocumentWithUri', () => {
- it('handles URIs with exclamation marks', () => {
- const uri =
- 'file:///Users/com.jetbrains/ideaIC-2022.1-sources.jar!/com/intellij/RequiresBackgroundThread.java'
- const textDocument = ProtocolTextDocumentWithUri.fromDocument({ uri })
- expect(textDocument.uri.toString()).toStrictEqual(textDocument.underlying.uri)
- expect(textDocument.uri.toString()).toStrictEqual(
- 'file:///Users/com.jetbrains/ideaIC-2022.1-sources.jar%21/com/intellij/RequiresBackgroundThread.java'
- )
- })
- ```
- - speaker: assistant
- text: Ok.
- - speaker: human
- text: >-
- Codebase context from file /vscode/src/jsonrpc/jsonrpc.ts in
- repository github.com/sourcegraph/cody:
-
- ```typescript
-
- import { appendFileSync, existsSync, mkdirSync, rmSync } from 'node:fs'
-
- import { dirname } from 'node:path'
-
-
- import { isRateLimitError } from '@sourcegraph/cody-shared'
-
- import * as vscode from 'vscode'
-
- import { type CancellationToken, type MessageConnection, ResponseError, Trace } from 'vscode-jsonrpc'
-
- import { CodyJsonRpcErrorCode } from './CodyJsonRpcErrorCode'
-
- import type * as agent from './agent-protocol'
-
- import type * as bfg from './bfg-protocol'
-
- import type * as embeddings from './embeddings-protocol'
-
-
- type Requests = bfg.Requests & agent.Requests & embeddings.Requests
-
- type Notifications = bfg.Notifications & agent.Notifications & embeddings.Notifications
-
-
- // String literal types for the names of the Cody Agent protocol methods.
-
- export type RequestMethodName = keyof Requests
-
- export type NotificationMethodName = keyof Notifications
-
- type MethodName = RequestMethodName | NotificationMethodName
-
-
- // Parameter type of a request or notification. Note: JSON-RPC methods can only
-
- ```
- - speaker: assistant
- text: Ok.
- - speaker: human
- text: >-
- Codebase context from file
- /vscode/src/jsonrpc/isRunningInsideAgent.ts in repository
- github.com/sourcegraph/cody:
-
- ```typescript
-
- import * as vscode from 'vscode'
-
-
- let cached: boolean | undefined
-
- export function isRunningInsideAgent(): boolean {
- if (cached === undefined) {
- cached = vscode.workspace.getConfiguration().get('cody.advanced.agent.running', false)
- }
- return cached
- ```
- - speaker: assistant
- text: Ok.
- - speaker: human
- text: >-
- Codebase context from file
- /vscode/src/jsonrpc/embeddings-protocol.ts in repository
- github.com/sourcegraph/cody:
-
- ```typescript
-
- /**
- * The protocol for communicating between Cody and local embeddings.
- */
-
- interface InitializeParams {
- codyGatewayEndpoint: string
- indexPath: string
- chunkingPolicy?: ChunkingPolicy | undefined | null
- }
-
-
- interface ChunkingPolicy {
- maxFileSizeBytes: number
- pathsToExcludeRegexp: string
- }
-
-
- interface QueryParams {
- repoName: string
- query: string
- numResults: number
- }
-
-
- export interface QueryResultSet {
- results: QueryResult[]
- }
-
-
- interface QueryResult {
- fileName: string
- startLine: number
- endLine: number
- content: string
- }
-
-
- interface IndexHealthRequest {
- // The name of the repository to scrutinize the index for. Note, this
- // is a repo name, like github.com/sourcegraph/cody, not a file path.
- repoName: string
- }
-
-
- type IndexHealthResult = IndexHealthResultFound | IndexHealthResultNotFound
-
-
- export interface IndexHealthResultFound {
- type: 'found'
- repoName: string
- format: 'App' | 'LocalEmbeddings'
- commit: string
- ```
- - speaker: assistant
- text: Ok.
- - speaker: human
- text: >-
- Codebase context from file
- /vscode/src/jsonrpc/CodyJsonRpcErrorCode.ts in repository
- github.com/sourcegraph/cody:
-
- ```typescript
-
- export enum CodyJsonRpcErrorCode {
- ParseError = -32700,
- InvalidRequest = -32600,
- MethodNotFound = -32601,
- InvalidParams = -32602,
- InternalError = -32603,
- RequestCanceled = -32604,
- RateLimitError = -32000,
- ```
- - speaker: assistant
- text: Ok.
- - speaker: human
- text: >-
- Codebase context from file /vscode/src/jsonrpc/bfg-protocol.ts
- in repository github.com/sourcegraph/cody:
-
- ```typescript
-
- /**
- * This file declares the protocol for communicating between Cody and BFG (Blazingly Fast Graph), a Rust implementation
- * of the "Graph Context" feature flag.
- */
- import type { Position } from './agent-protocol'
-
-
- interface BFGFileContextSnippet {
- fileName: string
- content: string
- }
-
-
- interface BFGSymbolContextSnippet extends BFGFileContextSnippet {
- symbol: string
- }
-
-
- export type Requests = {
- 'bfg/initialize': [{ clientName: string }, { serverVersion: string }]
- 'bfg/contextAtPosition': [
- { uri: string; content: string; position: Position; maxSnippets: number; maxDepth: number },
- {
- symbols?: BFGSymbolContextSnippet[] | undefined | null
- files?: BFGFileContextSnippet[] | undefined | null
- },
- ]
- 'bfg/contextForIdentifiers': [
- { uri: string; identifiers: string[]; maxSnippets: number; maxDepth: number },
- { symbols?: BFGSymbolContextSnippet[] | undefined | null },
- ```
- - speaker: assistant
- text: Ok.
- - speaker: human
- text: >-
- Codebase context from file /vscode/src/graph/bfg/spawn-bfg.ts
- in repository github.com/sourcegraph/cody:
-
- ```typescript
-
- import * as child_process from 'node:child_process'
-
-
- import * as vscode from 'vscode'
-
-
- import { StreamMessageReader, StreamMessageWriter, createMessageConnection } from 'vscode-jsonrpc/node'
-
- import { MessageHandler } from '../../jsonrpc/jsonrpc'
-
- import { logDebug } from '../../log'
-
- import { getBfgPath } from './download-bfg'
-
-
- export async function spawnBfg(
- context: vscode.ExtensionContext,
- reject: (reason?: any) => void
- ): Promise {
- const codyrpc = await getBfgPath(context)
- if (!codyrpc) {
- throw new Error(
- 'Failed to download BFG binary. To fix this problem, set the "cody.experimental.cody-engine.path" configuration to the path of your BFG binary'
- )
- }
- const isVerboseDebug = vscode.workspace.getConfiguration().get('cody.debug.verbose', false)
- const child = child_process.spawn(codyrpc, {
- stdio: 'pipe',
- env: {
- ...process.env,
- ```
- - speaker: assistant
- text: Ok.
- - speaker: human
- text: >-
- Codebase context from file /lib/icons/README.md in repository
- github.com/sourcegraph/cody:
-
- ```markdown
-
-
- ```sh
-
- cp font/cody-icons.ttf ../../vscode/resources/cody-icons.ttf
-
- cp font/cody-icons.woff ../../vscode/resources/cody-icons.woff
-
- ```
-
-
- 2. Register the icons in `vscode/package.json` in the `icons` field.
-
- ```
- - speaker: assistant
- text: Ok.
- - speaker: human
- text: >-
- Codebase context from file /agent/src/local-e2e/README.md in
- repository github.com/sourcegraph/cody:
-
- ```markdown
- "completionModel": "anthropic/claude-instant-1",
- // truncated
- }
-
- ```
-
-
- While you can totally edit those over https://sourcegraph.test:3443/site-admin/configuration, the
-
- recommended method is through the escape hatch: `~/.sourcegraph/site-config.json`. Once the local
-
- instance is running, saving that file will reload the instance.
-
-
- ## Running the tests
-
-
- 1. In your Sourcegraph folder, run `sg start dotcom-cody-e2e`.
- 1. To ensure the default site-admin is available (mandatory), still in the Sourcegraph folder you can run `sg db default-site-admin`.
- 1. Back to the Cody repo, run `pnpm run test:local-e2e`
-
-
- ## FAQ
-
-
- ### Why write a test if I'm going to throw it away?
-
-
- First, because it's a starting point. Even if you can't solve the problem, you can at least try
-
- to reproduce the prolbem and just share that with your teammates.
-
-
- And second, the final integration/e2e test that will be shipped with the fix will most likely
-
- ```
- - speaker: assistant
- text: Ok.
- - speaker: human
- text: >-
- Codebase context from file /agent/src/jsonrpc-alias.ts in
- repository github.com/sourcegraph/cody:
-
- ```typescript
-
- export * from '../../vscode/src/jsonrpc/jsonrpc'
-
- ```
- - speaker: assistant
- text: Ok.
- - speaker: human
- text: >-
- Codebase context from file
- /agent/src/cli/scip-codegen/JvmFormatter.ts in repository
- github.com/sourcegraph/cody:
-
- ```typescript
- .replaceAll('$/', '')
- .split('/')
- .map(part => capitalize(part))
- .join('_')
- }
-
- public jsonrpcMethodParameter(jsonrpcMethod: scip.SymbolInformation): {
- parameterSyntax: string
- parameterType: scip.Type
- } {
- const parameterType = jsonrpcMethod.signature.value_signature.tpe.type_ref.type_arguments[0]
- const parameterSyntax = this.jsonrpcTypeName(jsonrpcMethod, parameterType, 'parameter')
- if (this.language === JvmLanguage.Kotlin) {
- return { parameterType, parameterSyntax: `params: ${parameterSyntax}` }
- }
- return { parameterType, parameterSyntax: `${parameterSyntax} params` }
- }
-
- public isNullish(symbol: string): boolean {
- return symbol === typescriptKeyword('undefined') || symbol === typescriptKeyword('null')
- }
-
- public isNullableInfo(info: scip.SymbolInformation): boolean {
- return this.isNullable(info.signature.value_signature.tpe)
- }
- ```
- - speaker: assistant
- text: Ok.
- - speaker: human
- text: >-
- Codebase context from file
- /agent/src/cli/scip-codegen/JvmCodegen.ts in repository
- github.com/sourcegraph/cody:
-
- ```typescript
- continue
- }
- // Process a JSON-RPC request signature. For example:
- // type Notifications = { 'textDocument/inlineCompletions': [NotificationParams] }
- const { parameterType, parameterSyntax } = f.jsonrpcMethodParameter(notification)
- this.queueClassLikeType(parameterType, notification, 'parameter')
- p.line(`@JsonNotification("${notification.display_name}")`)
- if (this.language === JvmLanguage.Kotlin) {
- p.line(`fun ${f.functionName(notification)}(${parameterSyntax})`)
- } else {
- p.line(`void ${f.functionName(notification)}(${parameterSyntax});`)
- }
- }
- })
-
- p.line('}')
-
- await fspromises.writeFile(
- path.join(this.options.output, `${name}.${this.fileExtension()}`),
- p.build()
- )
- }
-
- ```
- - speaker: assistant
- text: Ok.
- - speaker: human
- text: >-
- Codebase context from file /agent/src/cli/command-root.ts in
- repository github.com/sourcegraph/cody:
-
- ```typescript
-
- import { authCommand } from './command-auth/command-auth'
-
- import { benchCommand } from './command-bench/command-bench'
-
- import { chatCommand } from './command-chat'
-
- import { jsonrpcCommand } from './command-jsonrpc-stdio'
-
- import { serverCommand } from './command-jsonrpc-websocket'
-
-
- import { version } from '../../package.json'
-
-
- export const rootCommand = new Command()
- .name('cody')
- .version(version, '-v, --version')
- .description(
- 'The Cody cli supports running Cody in headless mode and interacting with it via JSON-RPC. Run `cody chat -m "Hello" to get started.'
- )
- .addCommand(authCommand())
- .addCommand(chatCommand())
- .addCommand(new Command('api').addCommand(serverCommand).addCommand(jsonrpcCommand))
- .addCommand(new Command('internal').addCommand(benchCommand))
- ```
- - speaker: assistant
- text: Ok.
- - speaker: human
- text: >-
- Codebase context from file
- /agent/src/cli/command-jsonrpc-websocket.ts in repository
- github.com/sourcegraph/cody:
-
- ```typescript
-
- import { logDebug, logError } from '@sourcegraph/cody-shared'
-
- import { Command } from 'commander'
-
- import { WebSocketServer } from 'ws'
-
- import { newAgentClient } from '../agent'
-
- import type { RpcMessageHandler } from '../jsonrpc-alias'
-
- import { intOption } from './command-bench/cli-parsers'
-
-
- interface ServerOptions {
- port: number
- }
-
-
- export const serverCommand = new Command('jsonrpc-websocket')
- .description(
- 'Start a server that opens JSON-RPC connections through websockets. This command does not work at the moment.'
- )
- .option('--port ', 'Which port to listen to', intOption, 7000)
- .action(async (options: ServerOptions) => {
- const wss = new WebSocketServer({
- port: options.port,
- })
- logDebug('cody-server', `Listening... http://localhost:${options.port}`)
- wss.on('connection', async ws => {
- logDebug('cody-server', 'New client')
- let client: RpcMessageHandler | undefined
- ```
- - speaker: assistant
- text: Ok.
- - speaker: human
- text: >-
- Codebase context from file
- /agent/src/cli/command-jsonrpc-stdio.ts in repository
- github.com/sourcegraph/cody:
-
- ```typescript
-
- import { startPollyRecording } from '../../../vscode/src/testutils/polly'
-
- import { Agent } from '../agent'
-
-
- import { activate } from '../../../vscode/src/extension.node'
-
- import { booleanOption } from './command-bench/cli-parsers'
-
-
- interface JsonrpcCommandOptions {
- expiresIn?: string | null | undefined
- recordingDirectory?: string
- keepUnusedRecordings?: boolean
- recordingMode?: MODE
- recordIfMissing?: boolean
- recordingExpiryStrategy?: EXPIRY_STRATEGY
- recordingName?: string
- }
-
-
- export interface PollyRequestError {
- request: Request
- error: string
- }
-
-
- function recordingModeOption(value: string): MODE {
- switch (value) {
- case 'record':
- case 'replay':
- case 'passthrough':
- case 'stopped':
- return value
- default:
- throw new commander.InvalidArgumentError(
- 'Not a valid recording mode. Valid options are record, replay-or-record, replay, passthrough, or stopped.'
- )
- }
- }
-
-
- ```
- - speaker: assistant
- text: Ok.
- - speaker: human
- text: >-
- Codebase context from file
- /agent/src/__tests__/chat-response-quality/README.md in
- repository github.com/sourcegraph/cody:
-
- ```markdown
-
-
- ### Web interface
-
- go install github.com/sourcegraph/zoekt/cmd/zoekt-webserver
- $GOPATH/bin/zoekt-webserver -listen :6070
-
- ### JSON API
-
-
- You can retrieve search results as JSON by sending a GET request to zoekt-webserver.
-
- curl --get /n --url "http://localhost:6070/search" /n --data-urlencode "q=ngram f:READ" /n --data-urlencode "num=50" /n --data-urlencode "format=json"
-
- The response data is a JSON object. You can refer to [web.ApiSearchResult](https://sourcegraph.com/github.com/sourcegraph/zoekt@6b1df4f8a3d7b34f13ba0cafd8e1a9b3fc728cf0/-/blob/web/api.go?L23:6&subtree=true) to learn about the structure of the object.
-
-
- ### CLI
-
- go install github.com/sourcegraph/zoekt/cmd/zoekt
- $GOPATH/bin/zoekt 'ngram f:READ'
-
- ## Installation
-
- A more organized installation on a Linux server should use a systemd unit file,
-
- eg.
-
- [Unit]
- Description=zoekt webserver
-
- [Service]
- ```
- - speaker: assistant
- text: Ok.
- - speaker: human
- text: >-
- Codebase context from file /agent/README.md in repository
- github.com/sourcegraph/cody:
-
- ```markdown
-
- # Cody Agent
-
-
- The `@sourcegraph/cody-agent` package implements a JSON-RPC server to interact
-
- with Cody via stdout/stdin. This package is intended to be used by
-
- non-ECMAScript clients such as the JetBrains and NeoVim plugins.
-
-
- ## Releases
-
-
- Cody Agent releases are available:
-
-
- - as self-contained executables for various platforms at [Cody Agent releases](https://github.com/sourcegraph/cody/releases) on GitHub
-
- - from the `@sourcegraph/cody-agent` npm package (`npx @sourcegraph/cody-agent help`)
-
-
- To build and publish a release using GitHub Actions, bump the version number in the agent's [package.json](package.json) and then push to the `agent-vN.N.N` tag (where `N.N.N` is that version number).
-
-
- ## Protocol
-
-
- The protocol is defined in the file [`protocol.ts`](../vscode/src/jsonrpc/agent-protocol.ts). The TypeScript code is the single source of truth of what JSON-RPC methods are
-
- supported in the protocol.
-
-
- ## Updating the protocol
-
-
- ```
- - speaker: assistant
- text: Ok.
- - speaker: human
- text: >-
- Codebase context from file /agent/CHANGELOG.md in repository
- github.com/sourcegraph/cody:
-
- ```markdown
-
-
- - New command `auth login --web` to authenticate the cli through the browser. The access token is stored in the operating system's secret storage (Keychain on macOS, Credential Vault on Windows, Secret Service API/libsecret on Linux).
-
- - New command `auth login --access-token` to authenticate with an access token or `SRC_ACCESS_TOKEN` environment variable.
-
- - New command `auth logout` to log out of the cli.
-
- - New command `auth whoami` to determine what account is logged in.
-
- - New command `auth accounts` to list all available Sourcegraph accounts.
-
- - New command `auth settings-path` to print the JSON file path where non-sensitive configuration is stored.
-
-
- ### Changed
-
-
- - The `chat` command now runs faster
-
- - The `chat` command now prints the reply to the standard output stream instead of system error.
-
- - The `chat` command now interacively streams the reply to system error. Use `--silent` to disable interactive streaming.
-
- ```
- - speaker: assistant
- text: Ok.
- - speaker: human
- text: |-
- You have access to the provided codebase context.
-
- Question: What is JSON RPC?
- model: anthropic/claude-3-opus-20240229
- temperature: 0
- topK: -1
- topP: -1
- queryString:
- - name: api-version
- value: "1"
- - name: client-name
- value: jetbrains
- - name: client-version
- value: 6.0-localbuild
- url: https://demo.sourcegraph.com/.api/completions/stream?api-version=1&client-name=jetbrains&client-version=6.0-localbuild
- response:
- bodySize: 121498
- content:
- mimeType: text/event-stream
- size: 121498
- text: >+
- event: completion
-
- data: {"completion":"Based on the provided codebase context, JSON-RPC (JSON Remote Procedure Call) is a protocol used for communication between different components of the Cody system. Here are a few key points about JSON-RPC in the context of this codebase:\n\n1. JSON-RPC is used to define the protocol for communication between Cody and other components like the BFG (Blazingly Fast Graph) and local embeddings (files `bfg-protocol.ts` and `embeddings-protocol.ts`).\n\n2. The protocol is defined in the file `agent-protocol.ts` in the `vscode/src/jsonrpc` directory. This TypeScript code serves as the single source of truth for the supported JSON-RPC methods in the protocol.\n\n3. The `@sourcegraph/cody-agent` package implements a JSON-RPC server to interact with Cody via stdout/stdin. This is intended for non-ECMAScript clients such as JetBrains and NeoVim plugins to communicate with Cody.\n\n4. The `jsonrpc.ts` file in `vscode/src/jsonrpc` defines types for request method names (`RequestMethodName`) and notification method names (`NotificationMethodName`) based on the protocol definition.\n\n5. The `command-jsonrpc-stdio.ts` and `command-jsonrpc-websocket.ts` files in the `agent/src/cli` directory implement JSON-RPC communication via stdio and WebSocket respectively.\n\nIn summary, JSON-RPC is used as a protocol for communication between different parts of the Cody system, with the protocol defined in TypeScript and implemented in various components for interoperability with non-ECMAScript clients.","stopReason":"end_turn"}
-
-
- event: done
-
- data: {}
-
- cookies: []
- headers:
- - name: date
- value: Fri, 09 Aug 2024 12:48:25 GMT
- - name: content-type
- value: text/event-stream
- - name: transfer-encoding
- value: chunked
- - name: connection
- value: keep-alive
- - name: retry-after
- value: "175"
- - name: access-control-allow-credentials
- value: "true"
- - name: access-control-allow-origin
- value: ""
- - name: cache-control
- value: no-cache
- - name: vary
- value: Accept-Encoding, Authorization, Cookie, Authorization, X-Requested-With,
- Cookie
- - name: x-content-type-options
- value: nosniff
- - name: x-frame-options
- value: DENY
- - name: x-xss-protection
- value: 1; mode=block
- - name: strict-transport-security
- value: max-age=31536000; includeSubDomains; preload
- headersSize: 1321
- httpVersion: HTTP/1.1
- redirectURL: ""
- status: 200
- statusText: OK
- startedDateTime: 2024-08-09T12:48:21.167Z
- time: 0
- timings:
- blocked: -1
- connect: -1
- dns: -1
- receive: 0
- send: 0
- ssl: -1
- wait: 0
- - _id: 904d184d3559994254e824161e4c5c77
- _order: 0
- cache: {}
- request:
- bodySize: 144
- cookies: []
- headers:
- - _fromType: array
- name: authorization
- value: token
- REDACTED_b20717265e7ab1d132874d8ff0be053ab9c1dacccec8dce0bbba76888b6a0a69
- - _fromType: array
- name: content-type
- value: application/json; charset=utf-8
- - _fromType: array
- name: user-agent
- value: JetBrains / 6.0-localbuild
- - _fromType: array
- name: accept
- value: "*/*"
- - _fromType: array
- name: content-length
- value: "144"
- - _fromType: array
- name: accept-encoding
- value: gzip,deflate
- - name: host
- value: demo.sourcegraph.com
- headersSize: 327
- httpVersion: HTTP/1.1
- method: POST
- postData:
- mimeType: application/json; charset=utf-8
- params: []
- textJSON:
- query: |-
-
- query ContextFilters {
- site {
- codyContextFilters(version: V1) {
- raw
- }
- }
- }
- variables: {}
- queryString:
- - name: ContextFilters
- value: null
- url: https://demo.sourcegraph.com/.api/graphql?ContextFilters
- response:
- bodySize: 111
- content:
- encoding: base64
- mimeType: application/json
- size: 111
- text: "[\"H4sIAAAAAAAAA6pWSkksSVSyqlYqzixJBdHJ+SmVzvl5JakVJW6ZOSWpRcUg0aLEciWrv\
- NKcnNra2loAAAAA//8=\",\"AwA2LshlNQAAAA==\"]"
- cookies: []
- headers:
- - name: date
- value: Fri, 09 Aug 2024 12:48:20 GMT
- - name: content-type
- value: application/json
- - name: transfer-encoding
- value: chunked
- - name: connection
- value: keep-alive
- - name: retry-after
- value: "176"
- - name: access-control-allow-credentials
- value: "true"
- - name: access-control-allow-origin
- value: ""
- - name: cache-control
- value: no-cache, max-age=0
- - name: vary
- value: Accept-Encoding, Authorization, Cookie, Authorization, X-Requested-With,
- Cookie
- - name: x-content-type-options
- value: nosniff
- - name: x-frame-options
- value: DENY
- - name: x-xss-protection
- value: 1; mode=block
- - name: strict-transport-security
- value: max-age=31536000; includeSubDomains; preload
- - name: content-encoding
- value: gzip
- headersSize: 1355
- httpVersion: HTTP/1.1
- redirectURL: ""
- status: 200
- statusText: OK
- startedDateTime: 2024-08-09T12:48:20.531Z
- time: 0
- timings:
- blocked: -1
- connect: -1
- dns: -1
- receive: 0
- send: 0
- ssl: -1
- wait: 0
- - _id: 5007670687f0520c7adc88dbc7af3663
- _order: 0
- cache: {}
- request:
- bodySize: 318
- cookies: []
- headers:
- - _fromType: array
- name: authorization
- value: token
- REDACTED_b20717265e7ab1d132874d8ff0be053ab9c1dacccec8dce0bbba76888b6a0a69
- - _fromType: array
- name: content-type
- value: application/json; charset=utf-8
- - _fromType: array
- name: user-agent
- value: JetBrains / 6.0-localbuild
- - _fromType: array
- name: accept
- value: "*/*"
- - _fromType: array
- name: content-length
- value: "318"
- - _fromType: array
- name: accept-encoding
- value: gzip,deflate
- - name: host
- value: demo.sourcegraph.com
- headersSize: 344
- httpVersion: HTTP/1.1
- method: POST
- postData:
- mimeType: application/json; charset=utf-8
- params: []
- textJSON:
- query: |-
-
- query CurrentSiteCodyLlmConfiguration {
- site {
- codyLLMConfiguration {
- chatModel
- chatModelMaxTokens
- fastChatModel
- fastChatModelMaxTokens
- completionModel
- completionModelMaxTokens
- }
- }
- }
- variables: {}
- queryString:
- - name: CurrentSiteCodyLlmConfiguration
- value: null
- url: https://demo.sourcegraph.com/.api/graphql?CurrentSiteCodyLlmConfiguration
- response:
- bodySize: 244
- content:
- encoding: base64
- mimeType: application/json
- size: 244
- text: "[\"H4sIAAAAAAAAA3zOTQqDMBAF4LvMWnEaC0W3bnXnBYYk1qDNSH5oi+TuxZbSUqGrB8Obj\
- 7eCokBQr+BN0FtKVve27Rq2gzlHR8Gwfd5HCh0rPUMNZMPoeDGykDNFpfMy5yX6XKA4\
- ohAVZJ96R7eeJ2091AeBiBkM5EPzXxvJTPHFlXiCn589KfmyzHqb+kYH4/SV3eQLH8h\
- JVtrBrvcFVYiYUkoPAAAA//8DAJ/xqakRAQAA\"]"
- textDecoded:
- data:
- site:
- codyLLMConfiguration:
- chatModel: anthropic/claude-3-opus-20240229
- chatModelMaxTokens: 12000
- completionModel: fireworks/starcoder
- completionModelMaxTokens: 9000
- fastChatModel: anthropic/claude-3-haiku-20240307
- fastChatModelMaxTokens: 12000
- cookies: []
- headers:
- - name: date
- value: Fri, 09 Aug 2024 12:48:19 GMT
- - name: content-type
- value: application/json
- - name: transfer-encoding
- value: chunked
- - name: connection
- value: keep-alive
- - name: retry-after
- value: "177"
- - name: access-control-allow-credentials
- value: "true"
- - name: access-control-allow-origin
- value: ""
- - name: cache-control
- value: no-cache, max-age=0
- - name: vary
- value: Accept-Encoding, Authorization, Cookie, Authorization, X-Requested-With,
- Cookie
- - name: x-content-type-options
- value: nosniff
- - name: x-frame-options
- value: DENY
- - name: x-xss-protection
- value: 1; mode=block
- - name: strict-transport-security
- value: max-age=31536000; includeSubDomains; preload
- - name: content-encoding
- value: gzip
- headersSize: 1355
- httpVersion: HTTP/1.1
- redirectURL: ""
- status: 200
- statusText: OK
- startedDateTime: 2024-08-09T12:48:19.006Z
- time: 0
- timings:
- blocked: -1
- connect: -1
- dns: -1
- receive: 0
- send: 0
- ssl: -1
- wait: 0
- - _id: df222ef86be999cf54ffad2c1b3ab52b
- _order: 0
- cache: {}
- request:
- bodySize: 165
- cookies: []
- headers:
- - _fromType: array
- name: authorization
- value: token
- REDACTED_b20717265e7ab1d132874d8ff0be053ab9c1dacccec8dce0bbba76888b6a0a69
- - _fromType: array
- name: content-type
- value: application/json; charset=utf-8
- - _fromType: array
- name: user-agent
- value: JetBrains / 6.0-localbuild
- - _fromType: array
- name: accept
- value: "*/*"
- - _fromType: array
- name: content-length
- value: "165"
- - _fromType: array
- name: accept-encoding
- value: gzip,deflate
- - name: host
- value: demo.sourcegraph.com
- headersSize: 344
- httpVersion: HTTP/1.1
- method: POST
- postData:
- mimeType: application/json; charset=utf-8
- params: []
- textJSON:
- query: |-
-
- query CurrentSiteCodyLlmConfiguration {
- site {
- codyLLMConfiguration {
- smartContextWindow
- }
- }
- }
- variables: {}
- queryString:
- - name: CurrentSiteCodyLlmConfiguration
- value: null
- url: https://demo.sourcegraph.com/.api/graphql?CurrentSiteCodyLlmConfiguration
- response:
- bodySize: 139
- content:
- encoding: base64
- mimeType: application/json
- size: 139
- text: "[\"H4sIAAAAAAAAA6pWSkksSVSyqlYqzixJBdHJ+SmVPj6+zvl5aZnppUWJJZn5eWD53MSiE\
- uf8vJLUipLwzLyU/HIlK6XUvMSknNQUpdra2loAAAAA//8=\",\"AwDoCDSlSwAAAA==\
- \"]"
- cookies: []
- headers:
- - name: date
- value: Fri, 09 Aug 2024 12:48:19 GMT
- - name: content-type
- value: application/json
- - name: transfer-encoding
- value: chunked
- - name: connection
- value: keep-alive
- - name: retry-after
- value: "177"
- - name: access-control-allow-credentials
- value: "true"
- - name: access-control-allow-origin
- value: ""
- - name: cache-control
- value: no-cache, max-age=0
- - name: vary
- value: Accept-Encoding, Authorization, Cookie, Authorization, X-Requested-With,
- Cookie
- - name: x-content-type-options
- value: nosniff
- - name: x-frame-options
- value: DENY
- - name: x-xss-protection
- value: 1; mode=block
- - name: strict-transport-security
- value: max-age=31536000; includeSubDomains; preload
- - name: content-encoding
- value: gzip
- headersSize: 1355
- httpVersion: HTTP/1.1
- redirectURL: ""
- status: 200
- statusText: OK
- startedDateTime: 2024-08-09T12:48:19.046Z
- time: 0
- timings:
- blocked: -1
- connect: -1
- dns: -1
- receive: 0
- send: 0
- ssl: -1
- wait: 0
- - _id: ce5b1e7cdbf1da3406b7de4cf77fe38d
- _order: 0
- cache: {}
- request:
- bodySize: 150
- cookies: []
- headers:
- - _fromType: array
- name: authorization
- value: token
- REDACTED_b20717265e7ab1d132874d8ff0be053ab9c1dacccec8dce0bbba76888b6a0a69
- - _fromType: array
- name: content-type
- value: application/json; charset=utf-8
- - _fromType: array
- name: user-agent
- value: JetBrains / 6.0-localbuild
- - _fromType: array
- name: accept
- value: "*/*"
- - _fromType: array
- name: content-length
- value: "150"
- - _fromType: array
- name: accept-encoding
- value: gzip,deflate
- - name: host
- value: demo.sourcegraph.com
- headersSize: 339
- httpVersion: HTTP/1.1
- method: POST
- postData:
- mimeType: application/json; charset=utf-8
- params: []
- textJSON:
- query: |-
-
- query CurrentSiteCodyLlmProvider {
- site {
- codyLLMConfiguration {
- provider
- }
- }
- }
- variables: {}
- queryString:
- - name: CurrentSiteCodyLlmProvider
- value: null
- url: https://demo.sourcegraph.com/.api/graphql?CurrentSiteCodyLlmProvider
- response:
- bodySize: 128
- content:
- encoding: base64
- mimeType: application/json
- size: 128
- text: "[\"H4sIAAAAAAAAA6pWSkksSVSyqlYqzixJBdHJ+SmVPj6+zvl5aZnppUWJJZn5eSDxgqL8s\
- syU1CIlK6Xi/NKi5NT0osSCDKXa2tpaAAAAAP//AwAfFAXARQAAAA==\"]"
- textDecoded:
- data:
- site:
- codyLLMConfiguration:
- provider: sourcegraph
- cookies: []
- headers:
- - name: date
- value: Fri, 09 Aug 2024 12:48:19 GMT
- - name: content-type
- value: application/json
- - name: transfer-encoding
- value: chunked
- - name: connection
- value: keep-alive
- - name: retry-after
- value: "177"
- - name: access-control-allow-credentials
- value: "true"
- - name: access-control-allow-origin
- value: ""
- - name: cache-control
- value: no-cache, max-age=0
- - name: vary
- value: Accept-Encoding, Authorization, Cookie, Authorization, X-Requested-With,
- Cookie
- - name: x-content-type-options
- value: nosniff
- - name: x-frame-options
- value: DENY
- - name: x-xss-protection
- value: 1; mode=block
- - name: strict-transport-security
- value: max-age=31536000; includeSubDomains; preload
- - name: content-encoding
- value: gzip
- headersSize: 1355
- httpVersion: HTTP/1.1
- redirectURL: ""
- status: 200
- statusText: OK
- startedDateTime: 2024-08-09T12:48:19.026Z
- time: 0
- timings:
- blocked: -1
- connect: -1
- dns: -1
- receive: 0
- send: 0
- ssl: -1
- wait: 0
- - _id: 1e4155184524e985a9d3113dc68b8f02
- _order: 0
- cache: {}
- request:
- bodySize: 341
- cookies: []
- headers:
- - _fromType: array
- name: authorization
- value: token
- REDACTED_b20717265e7ab1d132874d8ff0be053ab9c1dacccec8dce0bbba76888b6a0a69
- - _fromType: array
- name: content-type
- value: application/json; charset=utf-8
- - _fromType: array
- name: user-agent
- value: JetBrains / 6.0-localbuild
- - _fromType: array
- name: accept
- value: "*/*"
- - _fromType: array
- name: content-length
- value: "341"
- - _fromType: array
- name: accept-encoding
- value: gzip,deflate
- - name: host
- value: demo.sourcegraph.com
- headersSize: 324
- httpVersion: HTTP/1.1
- method: POST
- postData:
- mimeType: application/json; charset=utf-8
- params: []
- textJSON:
- query: |-
-
- query CurrentUser {
- currentUser {
- id
- hasVerifiedEmail
- displayName
- username
- avatarURL
- primaryEmail {
- email
- }
- organizations {
- nodes {
- id
- name
- }
- }
- }
- }
- variables: {}
- queryString:
- - name: CurrentUser
- value: null
- url: https://demo.sourcegraph.com/.api/graphql?CurrentUser
- response:
- bodySize: 260
- content:
- encoding: base64
- mimeType: application/json
- size: 260
- text: "[\"H4sIAAAAAAAAAzSOwQrCQAxE/yXnevK24NGLaAWxRRAPoRtrZJstyVassv8u1Xp8wzDz3\
- uAxIbg3NIMqSaqMdEL24KA+laG5x1d53K2ggBtaTcpXJr/ukAO4KwajAjxbH3AssSNw\
- MoRQwGCk8mVooh8TWWJpoQB8YEKtDtt/s1fuUMd58ZdFbVH4hYmj2KQj0ZOBO89ix+V\
- G9vdqkppPWIzbW7IFPbHrAxnkS845fwAAAP//AwC8qhJW4QAAAA==\"]"
- textDecoded:
- data:
- currentUser:
- avatarURL: null
- displayName: null
- hasVerifiedEmail: false
- id: VXNlcjozNTM=
- organizations:
- nodes:
- - id: T3JnOjU=
- name: insights-examples
- primaryEmail: null
- username: codytesting
- cookies: []
- headers:
- - name: date
- value: Fri, 09 Aug 2024 12:48:19 GMT
- - name: content-type
- value: application/json
- - name: transfer-encoding
- value: chunked
- - name: connection
- value: keep-alive
- - name: retry-after
- value: "177"
- - name: access-control-allow-credentials
- value: "true"
- - name: access-control-allow-origin
- value: ""
- - name: cache-control
- value: no-cache, max-age=0
- - name: vary
- value: Accept-Encoding, Authorization, Cookie, Authorization, X-Requested-With,
- Cookie
- - name: x-content-type-options
- value: nosniff
- - name: x-frame-options
- value: DENY
- - name: x-xss-protection
- value: 1; mode=block
- - name: strict-transport-security
- value: max-age=31536000; includeSubDomains; preload
- - name: content-encoding
- value: gzip
- headersSize: 1355
- httpVersion: HTTP/1.1
- redirectURL: ""
- status: 200
- statusText: OK
- startedDateTime: 2024-08-09T12:48:19.065Z
- time: 0
- timings:
- blocked: -1
- connect: -1
- dns: -1
- receive: 0
- send: 0
- ssl: -1
- wait: 0
- - _id: 48fcaa63c10513ba4765138404e0f5b2
- _order: 0
- cache: {}
- request:
- bodySize: 739
- cookies: []
- headers:
- - _fromType: array
- name: authorization
- value: token
- REDACTED_b20717265e7ab1d132874d8ff0be053ab9c1dacccec8dce0bbba76888b6a0a69
- - _fromType: array
- name: content-type
- value: application/json; charset=utf-8
- - _fromType: array
- name: traceparent
- value: 00-86dd245a47c1f0f20c9a2f9b5ff9a829-4f0ec2d152676d63-01
- - _fromType: array
- name: user-agent
- value: JetBrains / 6.0-localbuild
- - _fromType: array
- name: accept
- value: "*/*"
- - _fromType: array
- name: content-length
- value: "739"
- - _fromType: array
- name: accept-encoding
- value: gzip,deflate
- - name: host
- value: demo.sourcegraph.com
- headersSize: 397
- httpVersion: HTTP/1.1
- method: POST
- postData:
- mimeType: application/json; charset=utf-8
- params: []
- textJSON:
- query: >-
-
- query GetCodyContext($repos: [ID!]!, $query: String!, $codeResultsCount: Int!, $textResultsCount: Int!) {
- getCodyContext(repos: $repos, query: $query, codeResultsCount: $codeResultsCount, textResultsCount: $textResultsCount) {
- ...on FileChunkContext {
- blob {
- path
- repository {
- id
- name
- }
- commit {
- oid
- }
- url
- }
- startLine
- endLine
- chunkContent
- }
- }
- }
- variables:
- codeResultsCount: 15
- query: What is JSON RPC?
- repos:
- - UmVwb3NpdG9yeTozNzI2MQ==
- textResultsCount: 5
- queryString:
- - name: GetCodyContext
- value: null
- url: https://demo.sourcegraph.com/.api/graphql?GetCodyContext
- response:
- bodySize: 8500
- content:
- encoding: base64
- mimeType: application/json
- size: 8500
- text: "[\"H4sIAAAAAAAA/+R86XIbt7Lwq/Rh/BXJFDmjxVuYUjmyLDtKvB1Jjr9TpssEZ5okrCEwB\
- jCiaIX32W81gFm52PG5/6Q/IoFGo9FoNHoDb1sxM6w1uG1N0ZzIeHkihcEb0xp8uG2N\
- EzmmrpSZWWvQYlMUJtQqCj99MqiN/vQpjGbM9BXqVAqN/S8ZS7hZhuenx89enQbzuNV\
- rKUyl5kaqJaHicWvQejf/azE+fJ3GL35Z4qX8+vrr2cGrfx8dtXotwebYGrSm3MyycR\
- DJeahlpiKcKpbOwkjGy9aq14rkfM4N4ZMW4f3D8UN28CDaPzzYf/Bgbw8fxA8fsIf7B\
- /sP9x798ggfHLKHh/HjPRqbqaQ1aIU7Zvjte9GF/ZBYFP4IY1a9ljZMmZdcYGtw/36v\
- hSJ2Xx7d77WiWSau7F4I0xq0huKnn36C9zgGLgyqCYtwKIYCAGAqgQttWJLAljV9lXh\
- lwmgeu0/9BY41qmtUDsG9F2/eHl/+Ho65aAJAP+HaoIDBw71HezQjkfHHxZvXcPz2jL\
- 7/R2YQMQEKjeJ4jaCRqWgGCnWWGA1MO/DxEjSKmIspMHhxegkKv2SoDRgJjUmDfGVRp\
- hLo96doYDh0TfTX71P7sDUzJh2EYSIjlsykNpbG0M0/bDWGkJTTOBSRjBGGrS9HYqrY\
- HCYD2pNvw4tsfvRg79twE6nmzBx91lIMW7SSyxlCLgdA4MA1MMcVOf6MkQmg5OIEFbH\
- kwwLHwXHKL+xqzi0zP3ZoxXoQVjfXbvauff/t4Xg/ntyfPGaH8aPx4f3J/uGY7UVsEj\
- /GffbL+HASPTp4HE0KYV7gOGQpD6byycuDw8HDYba3d/BQZ2OjEI+MyrBLFCbIlAA2l\
- pkBM0PQRmWRyRSCnNgGv7ZcaE5env2wxG6RU2hXt7DtZoIzh5oZLsVQHMNcEk1qygT/\
- inE+s+0GKYDBSy6yG/ACr2cyS2LINAIDvdQG5zFkghuY8AR7Q4HTQj4/vBPcfHSfn6G\
- OFE8J65EjrnLKPPgFqmse4cehaK16W7TrndSc27TiXkUpHhysKcWfgC4sOCYc+Ukb/d\
- akqW/nGEHKois2ReDzNME5CpOfwv7525N8+410CpZFZigW3MzcFNecgTaxzEyoTcxFA\
- JczrkuU2o4SMcaEYYwkPzGMl0MhpOifnrw6vrDSAVHC7cw6i2akG+mg/IHmqWJcaGAi\
- htco/+JzSJNsyoX2xwfOMUGmUdPXctGgfDMwhcCuGU/YOMEBQfUJvcZk0o+kMIwLjAF\
- vMMoMgWiYSAXXTHGZaUgTZkhvaWAGPmzAX6qeHZsf5tBdOlcvuPk9GxMdEyXndqHb90\
- ak84KZnZFIb2ALKMwwSUddu9sSxhlPYsu1NBsnXM+A5SRDpumucVTAcUQHU/dgnM1TS\
- 8s1Kk0aQGTzMSrgwrbaOdoaPnhiAlLjHzvVb107n5mhgDTTM9pvuzY7tH/9OngdvB6B\
- YVPoLGaoEEa+idNuM9OYuZvv8FsljYxkkgty6r/TuBgndv88laSJ4MMohwiMHn3sBEF\
- 4rekOsnYIUarSyJ2vfgWyS6KLcLlMMRdJure4E0XiWYLgeG8VucrMjD4siPTitMzRzG\
- RsxW4odJamUpmSvmI6v7R3acwM7Ua1k/q2q8GT349fvzh9+ebFHdOEtXXXleGjqjZ8v\
- K4N6ai9xgXQukhER4y2LpFTLqBP1tWIZJUaURgeMYN2P6KEg5kpmU1n9vtYyYVG5cSE\
- RRFqDUZeoSAZ0Uaqcp9lisptrLso26RwIoXGwtmz/Ccuoxnj9qads+jNRQ9OFMZEAUv\
- gL5Ylhg==\",\"ut5zEcuF7sGFG+9vSjIyw4SPPVYp3F1NZ2bXWh3VfUv1+qKtVmeiv\
- japYHRxfvLp+OTk9OLi0+WbP09fjwDFNVdS0GVhdSVpzu1zy8zY2RI5BbKKvB0UJXzL\
- mMVMsjm3Y2I0qOZcoDtoLIpkJgyxPJHTqWX5FiQeVLupuTZAdlVxF8BFKZgF7BZUGg3\
- tpu7TUbT4UsWFM++suWoVD3WCU210uWkUmht+jRBJMeHTTDnTqpCW0gKcMTHF2F1O9q\
- 4mH2lUECHkAlQmNEyYNmQ2bYWyZDmNpTBNlrkS1oaJmKmY2J9mJIYK2dyafMhi2hAnq\
- IBKSRXsmMEbAfwak6VH05ivhgneaYRRv695Yu8z2lGuLf9zc4I45BBxQSbkJt2X8HHI\
- Iyn0XTMDNy28rv0OH1a03/1N2m80GunZUEQpTKQwzmawOANjJhAEYXlDKnQU6wbUxtE\
- LOfme4QRmiSD5PgjgHKfkOisrNRaE1ObIo6haFKNcn44s2AgmHJN4i4iUoQbr9/bxAO\
- +asOxmQSOu8qgiNg9/WRMb8suGtMA0QVJbr2SMybA1gGGLCboWUx6FUcKyGPvWcxSmv\
- z9s9ZxHF4ZkIAm6VuKhWBXb/35GinLpnXojyeFcAsacdKnUCJJ8jU3evEFtBof37x+G\
- mhvss3jORVhTrD0rKkOhkLbF+RzOHHNGXHmTo45YijBjJpoNYPQ/YVBlvcXvMDspDOC\
- NiJxNYPk6FG7BkbUOVSYEF9MeaHbtTDnmXGJY8CQhq1uy2Mm6H1W4Lm6k7bPBMaCO/Q\
- DOBLFI1W6oiUxiVD2aDkZ6CnYrIZYmkvO+PW14gKOA2L8fwKUEFDpTjuoYJ9aeKDlnI\
- y3FTdgh7c7oaHR7oA2R7Q/eOgXF5uWExOMcf7/ET4TsB/CURVf5FWSdJzqEfg0puTb0\
- ye5sIbAjz5znx/+G/H58P1vCQnGDwCw08AmctecwlZZ90m7uArgBtmDLJzTsOVfa9GC\
- MEcs0AiffhTmm0ZhUcmECOL0m622Sr6ltQMvkGnNzfJzgvFcsmBkgB8qAUcuhMJIWo2\
- ScRQV8Msa5dYI+Z9qAnjHLf2acZWW31CCbz5lBHdjVHYuYLEMp4p53YARL7M04dUId4\
- oETjhxRkpAXrWc8TTF2iN3AG9c5l9pAwq/oet6sKDc4Q7Q3f2gpztPolK7tExljYPTd\
- 0Jr/gB/bgzCP1xQo3pDvByiyOWzCB7dOVb5lSqNthSPoHx482tvzSvRMXLOEx+c+Hmx\
- 7Hxa9r6xqey3Nc5mJOO/dr499yxTZZ77zoOg0qARLKrM+3Dv0nX66E9JUCRaI7+fdzO\
- BLPuemMnjPErX7Uvas7bOEM31nZGvH+rfL0t42WfrZRYzaNZurKrf+f/tbmxElPPRGf\
- T8nbIFjLaMrNHdwc77Jjx3R1/WUFJ/b3bolD/UZjrNpjz6587LyW7gexbPXRdweimL4\
- iXe78jGeQlRVoPc4vrBkXrg4bQ680FUogQsbtzyxUdYCKAgcE0pQs0wRbuE8jV6h1my\
- KvzMRJxW8QVAX5eosXJg3NtBfQhdsHaOIZsTofkoKT2mblShyduDId8N1rhsJ78DHA6\
- 0ZORT+KJA/YHxsOufTES0z51qnvbaR7a7DGsRlSqJTpqzaF9akYkXEmy5cmaLQZXgvk\
- kKgC5kWFmWBX/vgd+4uxxI1CGlgIdUVmQ90Uc/lHIUJ2m7enCLpiGn3+3Z1w2xv7zDy\
- 66bP2O5B+/2MRzNw2+QiGkg2dLtXMr4Hj/b29nKszFLaYXopIui4OfSgzuouHLkZcp7\
- b/KLl7kJrz9OGkHUqoOU2efwBfeuVAA==\",\"q275OT8QnbYTeYut3YPRS7sY8v+DA\
- NbSl/duq7hXowrGhdYBMa7cmHYP3IIXetPSdpHRtpEfe0Ta3cYQzFMUgw2H42/IhA9F\
- f7fN5f/fGW27mwV1BbtfVbDr12GhcFiaooif8wQvliLqAd5wbbT7PL+KuXIf1Zz+F0p\
- JyBgHk5rmirkiptZBaO+clioUnG6YP9+vzn8GpsHxwI9xX6pUWOXrDC+Xhr2UV0h+Lb\
- V7kTspBL0H5z55bmnpwaUiRbqqoe+XJkHlXtlgjZYae1N344Kwi3Fpp3xUPZ+yCX48m\
- RbQ48l0JyzOxxjHXEx1MaRsqo4cCjvIG62kr8aTaVB8dSl6R+paa4mx6PLoXkvDJzxi\
- TtE7nPW2GuKNXRXstX6iOQzhwihyRBNuULHELt2lHumSIFnUeZi8knUsUl8+zRQU92G\
- VC94zIHk+gitcygmU66vCV+naMKhBtpfCCtj6fH9vwekXbd0RtLE/QiYnNi3p3Bup6K\
- 4sxgaECQfrmTVyxaVIlt+taLn2gZYzoXmMlpN3Wetu48c/cW6/rdSGwl6ZLJphPICxl\
- AkyUb8ovShOMhH5xMg6YZ1uOdjf4nwCHYcXjo6OSoTdmgXjATx1AZlgOmURBraarxI2\
- 7HSpyVlcfiZnNTjrIGDxNWnkOHBn3Yf72j2YsESjNxNW7p9CkynhJ/8eJ0xHPO0TgVM\
- U4R/X8+e2RsqgujMC+g/4URfQg2ph4P11Ea1ab4HCNGERHidJp30vJFOvaeAFOk246b\
- TDtY45SzspeQa5NRmxlBuW8K9o27vNAZ8lF532p3YpG96bycYJj8CfQ6ccC43YqTUPg\
- DgRXCznY5mcCVc6x6XoDqpCnuaDL5bCsJsBaHupbAC4XKbocdJHT9i6yV8bAEd1WgPN\
- p4KZTGFwzZIMP5XfTYoBqfRPCifuA1PTzNYSfdj7uHUWRzccgZlxHfjJaGq6M+oc6dV\
- p60G7+F7dMVIOFlnCxDRjU7Q64o/r+Uv/PfhTmoSLbtMn8Ef3tjnNGo9HtkUP4N5to2\
- 81yvVARSX8M9zrOB2QLlA3pYnr11mScD3raCssuRCs680KJQ7UssYaHtYb/hOXC6niT\
- rvQqO0u/P33N4BFliTbJN3RxsYJkgh3uJjIHYK9nVy7oSUyi2i3MJYEfX8gTEl5d+yC\
- 3SxoZJi/1xvLzKwZsyoDQNRb+1J1SWx0aPtYHzyqfquOjmbMbB9MvVVor1a2D8gDR9r\
- EXFZH1sNN2weWEaea95jXt61qYdxqwru9FuGiHdkc38qDPCR+zlQp4lt+oo7/34N2/7\
- oH/b7//q042GXudEQJB1/DVuQ5XQ8XMEMWJ6g1zMn6I/qKgg4xdYkpbmx9aG7CB3CeC\
- RhFFvWMGejPYdj6HZNEDltgJExtgRRTBuNmgIzFcb7wiph1uhv6K9Kwsb8WJGQpb3er\
- vbU9rvXU5eabmLlPstTRVwWdUHynD3OJN+aZjOyN+p6b2TvFbUb8zuirf8iT7b7M/uF\
- 2BebOwxh7gDcpRqZHElzEUzghr6qDvDB1AyEV5bCh1x7zfLJOexNEDzprkVkyT2c24q\
- jh3fmZdocMb6KEuUsU5kxd6Y1jS+MrUxyO6rZPe8ITHIRh+E6j0qTOgs9oxrb0OuQxs\
- rOT/sHewUGw3/f1PcFnpv5FgCGJeZLwz+E5fsm4Qv2URVdTJTMRX84Usjj4zK5Zu0mF\
- qawZjnaxMiBG5m2dW0t/NabstqpTRRhkJArShVg63a7/HJnTLxlLGqAiRpUsuZjSqP8\
- K7/8FU//fwf6PsTW3eL5fp1RjcHdZjzT5sCPX92hNd4Q//zwU8LNL/A==\",\"2KqfG\
- KOEKdS1mm4b2SNWZMLGt8QUxmgWiMLdp3R9Pn3+AjpPE/aVi2myhOdMG3hBK+32gMF5\
- pk35QsO/4YGf8yDhsGVBwT9SHLZggtYahknCpgGBhs0k31va7Hq2bi2KW03RPX3+4jl\
- P0E9xIXiaoskVDK2dvLa6Exo5RpWNqzWUzhVoIMUbgyLWu6esOzz1/GAzKuyHtMeTac\
- gFN9z67+0BfLj1eZ0q8bDqFebeX85oKrs+VlBFjrBjk/OSMJaH0mqrfOSvTW78CqkfN\
- Sj24leYsxu/Tp2nPm3jM0zNLG+BVSXD1vBkHVv0k8E27n74WI3Dwd9APlwdB+2mx7DO\
- /2+Mz0nbwKfnUp3ZEvcJR6V38oqXcHnjh48/xJ0fZIhF8t+YZ3dXo25hR12xPq4o1sN\
- 1o2ynTsq17nvF0hQVMHsxwmiTGTFyiXyWaAn+wZcGBrYKIc7Dw0QhYXRY0RcDZhrzum\
- SCsOXIW+bICw0X9oWbm9K4SNvPeTFlkcoobgX3WMDackyhF/O+ezEb50o79wcTpvVOm\
- /O2FnwpDZvBxlEeWPFrZtBZZSqLjFQVO8ajIntDimTpTmjJkMopK2d7smu6WtjNhnXK\
- gXBUwQJPnuQaoW50VeNqRbCvbsTBv46OGqPWwn1FCUC92SqsHTxu9zbAR1IpdG4vF/Y\
- 1jCDHV7oc7qYho3u3jm7FV/kSFO9awvOu2pJWGxfaHdVRNwLRm1jTZMxavLIZw9Nka0\
- RQM8Jj/2HzTnc3N1ekdJNWXaB77OACUy7X4i7mO6NJd7OgUSFRLd9/sB6UC0P4zeg+n\
- wqpsDD8bErtvVRXqOrq1ebHbJblifvkkthcJFy4bF4YwuWbZ286+ovuDiDGOEvzF2Nl\
- YVlg7FuOD+Q7KW4N1cQZuCcvz77vqWyaJUl4eH//cbfQfKW5WK1hy41Aa6Sd2dDyRfH\
- Zp+PSaLBeN+H6Yq5TqbHTHcC15PGaZVqZqlGU5mY8FbEtIq/bu+7pnC3bqHcU+cdzKc\
- 270tBxvQbJrDdqeVKYok8ahnSmjZz/jixGRZbMOUZSxS5r6eB6Obz1+/0iScU9KULrf\
- jLFIqw2Vu1mVzpVpGQjhcxghRedjUzora2+t3nZvQ2r6W3lQa+yCjgCo7K8ya4BjlwO\
- tjcUq8GGDXOKaM41Oj5VIOrBkTC0kUlX0OLk33pkGg1kKTCaTmjLn7Hi8RRz560YPmf\
- 2jqeL0o5c4LjvEfnWa85s5Lmv0qjy1BfKajsH7oK8lYPa6QLT4D5X4QnPkd+gNRmvXG\
- uE7ql7uurBzi3fO27C7retXHc6yYzXKVuI/ngyvTM6+dts+JHSYFs3Ec14En9KlbSvb\
- St1Z7WOagphZ7lFEZa8sG8pa3vdqze+V9xQ4xbh2VJCFopGudr2CuGySDjcUH+W216N\
- EYmcVqGmaJ5Opm+ZmVXiE7FciESymJjf3q627AY9neTWnfc+C9P19MagIKfeu4G9vHr\
- jM0ZmAB2FTEvxZABMLMtIqrsmmkqlzoS6XnEHleTOHVa2YNxUFtbxhHXLwpZ/eeiGoa\
- zkwh5kW5DXDDQ+Zzxxv6+Rs8fGksZcMLW0b8Em/MZag+WjJlJtLm5ki1yqF3bgXpOJK\
- RcYkDYYthovmP2LLvveWU7cw6Zyxg1BySo7uP4L1VhqfObV+n9doWPvh+DaYW0U5vgt\
- oBNF2rJ6sgIrJR3P8F6V4TbzN4B2ylOs2u8orgdNTyIIghwhiutvvoPZ9NTATndnVOp\
- 38qLxGw/VYp/97SkcO+StTJKls5BsxK6mZuovZwxqkxme6DClQVUF5EouNzyVqMDY5+\
- vkP++aA3N1Ew==\",\"NDWol+YffjTxRy0l2bBT8SblCvWZKEzJPLJVq8Jzms/z6hkn\
- T1aqZcP8vEJM34lMY1ywVTftygLJKxmTffnqzbPTas/Z5BXX2kUINg88JYqXF0Yxg1M\
- i4fT/vz07/8+ni8vz48vTF/9pgDfM5KoZW7LIy4INBLua7dscjW0b5FFizzQCaeAsrp\
- XaCh23O7b4pFJ0Q6suPIUFN9EMHEyjPFEjtB2+9mC9PU3Ycr09ZVr7VyfrndrINMUaN\
- ihLaCwJZY9/sTtoBgzye6Z4ahT4h4THvpxr0wVkL6HX0gADC1vyydYGBPCXbfVvOGyk\
- y0H0wK20L1W/3tKDylp7IBX45QXtjSGPld+q74zXbqglvzPq9/vZsd2yvf9gRyLsn2W\
- 97CufarG8j3pW1dxZkbDx71kL+ypevmAGF2y52R3nIsYbsrQazjSRzsX0rUx4RHrmpN\
- awMbvRCA80RniC5uzGPkbhX/Hp0qAu366BrcY0M30pT2+iJIvxHKd4k27NjP07Q7WsL\
- 5eEcz3F9oUA600im7sfRtSbH881ZnGwF2ViTeWDK90fPm4m0fXuzgIWUlTnhxeneuO3\
- MoZntKW/I0vMLH8YXXrxl/7tRJ4VLY+z/WGaSGWGC/4V/c8xxHhDIuqeGvSshVygsj9\
- FSeMtwp59Ur/tRxlJDnv2pR8rfwko2LZpq+LVSm0tlo1H623uefff6x350++NG7sFjW\
- eVseXA7Qm1tXcJl6vPHED7OE3b8De0X9JxPS1OazvfNFJx5dB/Xvh+4j7eGS383dyoK\
- +EHD3+pxn1/WbeEmxdzfqa4qN7/+d9qvSkMycG1MYnKr0Dmr3TKKlt4LhXgDZun9ncV\
- N6DZ+JTqFtrVkprQhZhPit+ZsVnh6iCnAz9uItU5d98qq4YVHMEk2FJ2X31z1F2fwuZ\
- QvmSY4UnCtH7Jr5Am6TSmrGLZVpqe/6UBrbgz+o2s9+pKO8PWvdvaG6iYa7KGPpGIr4\
- at7mgDuh+ueG/SM8kE3LudBLm5a2vwa+xZddbr0zfStAJM9Nqz2+aE15LHPzLjrxunr\
- DdVC/G7eUqrMnl71a41u9DMRKcutqMD+3szdJk3jF2r2u0LD8v0/GGy+121Hozu3drN\
- Cnwaj66DItzU6a5G3UY6MA3sb3VWM3HVavrW6uNq9b8BAAD//6qPyUCLXAAA\"]"
- cookies: []
- headers:
- - name: date
- value: Fri, 09 Aug 2024 12:48:21 GMT
- - name: content-type
- value: application/json
- - name: transfer-encoding
- value: chunked
- - name: connection
- value: keep-alive
- - name: retry-after
- value: "175"
- - name: access-control-allow-credentials
- value: "true"
- - name: access-control-allow-origin
- value: ""
- - name: cache-control
- value: no-cache, max-age=0
- - name: content-encoding
- value: gzip
- - name: vary
- value: Accept-Encoding, Authorization, Cookie, Authorization, X-Requested-With,
- Cookie
- - name: x-content-type-options
- value: nosniff
- - name: x-frame-options
- value: DENY
- - name: x-xss-protection
- value: 1; mode=block
- - name: strict-transport-security
- value: max-age=31536000; includeSubDomains; preload
- headersSize: 1355
- httpVersion: HTTP/1.1
- redirectURL: ""
- status: 200
- statusText: OK
- startedDateTime: 2024-08-09T12:48:20.804Z
- time: 0
- timings:
- blocked: -1
- connect: -1
- dns: -1
- receive: 0
- send: 0
- ssl: -1
- wait: 0
- - _id: 0420907dbc8d483fb0caefdcb56dc902
- _order: 0
- cache: {}
- request:
- bodySize: 246
- cookies: []
- headers:
- - _fromType: array
- name: authorization
- value: token
- REDACTED_b20717265e7ab1d132874d8ff0be053ab9c1dacccec8dce0bbba76888b6a0a69
- - _fromType: array
- name: content-type
- value: application/json; charset=utf-8
- - _fromType: array
- name: user-agent
- value: JetBrains / 6.0-localbuild
- - _fromType: array
- name: accept
- value: "*/*"
- - _fromType: array
- name: content-length
- value: "246"
- - _fromType: array
- name: accept-encoding
- value: gzip,deflate
- - name: host
- value: demo.sourcegraph.com
- headersSize: 325
- httpVersion: HTTP/1.1
- method: POST
- postData:
- mimeType: application/json; charset=utf-8
- params: []
- textJSON:
- query: |
-
- query Repositories($names: [String!]!, $first: Int!) {
- repositories(names: $names, first: $first) {
- nodes {
- name
- id
- }
- }
- }
- variables:
- first: 1
- names:
- - github.com/sourcegraph/cody
- queryString:
- - name: Repositories
- value: null
- url: https://demo.sourcegraph.com/.api/graphql?Repositories
- response:
- bodySize: 180
- content:
- encoding: base64
- mimeType: application/json
- size: 180
- text: "[\"H4sIAAAAAAAAA6pWSkksSVSyqlYqSi3IL84syS/KTC0G8fPyU0CM6GqlvMTcVCUrpfTMk\
- ozSJL3k/Fz94vzSouTU9KLEggz95PyUSiUdpcwUJSul0Nyw8iRjv4IUd8vK1JD8Kr8q\
- TyPfQFtbpdrY2tpaAAAAAP//AwDQIawwbAAAAA==\"]"
- textDecoded:
- data:
- repositories:
- nodes:
- - id: UmVwb3NpdG9yeTozNzI2MQ==
- name: github.com/sourcegraph/cody
- cookies: []
- headers:
- - name: date
- value: Fri, 09 Aug 2024 12:48:20 GMT
- - name: content-type
- value: application/json
- - name: transfer-encoding
- value: chunked
- - name: connection
- value: keep-alive
- - name: retry-after
- value: "176"
- - name: access-control-allow-credentials
- value: "true"
- - name: access-control-allow-origin
- value: ""
- - name: cache-control
- value: no-cache, max-age=0
- - name: vary
- value: Accept-Encoding, Authorization, Cookie, Authorization, X-Requested-With,
- Cookie
- - name: x-content-type-options
- value: nosniff
- - name: x-frame-options
- value: DENY
- - name: x-xss-protection
- value: 1; mode=block
- - name: strict-transport-security
- value: max-age=31536000; includeSubDomains; preload
- - name: content-encoding
- value: gzip
- headersSize: 1355
- httpVersion: HTTP/1.1
- redirectURL: ""
- status: 200
- statusText: OK
- startedDateTime: 2024-08-09T12:48:20.028Z
- time: 0
- timings:
- blocked: -1
- connect: -1
- dns: -1
- receive: 0
- send: 0
- ssl: -1
- wait: 0
- - _id: ad724b1d99cd03b5ca781ef8a218294c
- _order: 0
- cache: {}
- request:
- bodySize: 141
- cookies: []
- headers:
- - _fromType: array
- name: authorization
- value: token
- REDACTED_b20717265e7ab1d132874d8ff0be053ab9c1dacccec8dce0bbba76888b6a0a69
- - _fromType: array
- name: content-type
- value: application/json; charset=utf-8
- - _fromType: array
- name: user-agent
- value: JetBrains / 6.0-localbuild
- - _fromType: array
- name: accept
- value: "*/*"
- - _fromType: array
- name: content-length
- value: "141"
- - _fromType: array
- name: accept-encoding
- value: gzip,deflate
- - name: host
- value: demo.sourcegraph.com
- headersSize: 330
- httpVersion: HTTP/1.1
- method: POST
- postData:
- mimeType: application/json; charset=utf-8
- params: []
- textJSON:
- query: |-
-
- query SiteGraphQLFields {
- __type(name: "Site") {
- fields {
- name
- }
- }
- }
- variables: {}
- queryString:
- - name: SiteGraphQLFields
- value: null
- url: https://demo.sourcegraph.com/.api/graphql?SiteGraphQLFields
- response:
- bodySize: 596
- content:
- encoding: base64
- mimeType: application/json
- size: 596
- text: "[\"H4sIAAAAAAAAA3ySwY7bMAxE/8XnfkFuCzcuFkiBNt5sD0WxYKSJQ6wsuSKVxAjy74WSb\
- hEZTm82Z0yTb3iuLClVi3P19qbjgPy0Yzgr1eLnufLUo1pUbKvLp39vwornz/cVE/yO\
- uxRJOfh7wZFCtIUq+06KJn9rNYkhizlps14VPyG/hgtkW9bCf2AcEWvyT7Znz6KI9zI\
- ZA5GX8A5fTEBJ999iOLBFLAScFNGTezImJK+Ftk3s7CuiTBYdYrDJ6IySBkuKeg/zfl\
- /2gJU1hiCsIY71I4Ifw7SIBzaQJoa+YVcAIOfCcWlZlxPzD9b91LyLwEYQZXkygIUtO\
- yGWC+9J6mDx7BXOcQdvJll5K8ue2L0i8o7NdYFrQWb4tGkrJvIw3TIJdWiVlEXZlDF5\
- cuO0mGSSWR985si+e9AlI8qH83GLGVfZcugiWaxBlj1keiphc9OXnrauhDYgZqB16Ae\
- HvJl8T0Fp1mLxP1vE78QRcmMJe+XYhPzdeO/jnMk4M4oJdlytvj68pqzfxAakKUKm6h\
- dSHGlck2LFPWvGmWSmh+KkDTu9BvHrcrn8AQAA//8DAOln405LBAAA\"]"
- textDecoded:
- data:
- __type:
- fields:
- - name: id
- - name: siteID
- - name: configuration
- - name: latestSettings
- - name: settingsCascade
- - name: settingsURL
- - name: canReloadSite
- - name: viewerCanAdminister
- - name: accessTokens
- - name: authProviders
- - name: externalAccounts
- - name: buildVersion
- - name: productVersion
- - name: updateCheck
- - name: needsRepositoryConfiguration
- - name: externalServicesFromFile
- - name: allowEditExternalServicesWithFile
- - name: freeUsersExceeded
- - name: alerts
- - name: hasCodeIntelligence
- - name: sendsEmailVerificationEmails
- - name: productSubscription
- - name: usageStatistics
- - name: analytics
- - name: users
- - name: monitoringStatistics
- - name: allowSiteSettingsEdits
- - name: upgradeReadiness
- - name: autoUpgradeEnabled
- - name: perUserCompletionsQuota
- - name: perUserCodeCompletionsQuota
- - name: requiresVerifiedEmailForCody
- - name: isCodyEnabled
- - name: codyLLMConfiguration
- - name: codyConfigFeatures
- - name: codyGatewayRateLimitStatus
- - name: codyContextFilters
- cookies: []
- headers:
- - name: date
- value: Fri, 09 Aug 2024 12:48:19 GMT
- - name: content-type
- value: application/json
- - name: transfer-encoding
- value: chunked
- - name: connection
- value: keep-alive
- - name: retry-after
- value: "177"
- - name: access-control-allow-credentials
- value: "true"
- - name: access-control-allow-origin
- value: ""
- - name: cache-control
- value: no-cache, max-age=0
- - name: vary
- value: Accept-Encoding, Authorization, Cookie, Authorization, X-Requested-With,
- Cookie
- - name: x-content-type-options
- value: nosniff
- - name: x-frame-options
- value: DENY
- - name: x-xss-protection
- value: 1; mode=block
- - name: strict-transport-security
- value: max-age=31536000; includeSubDomains; preload
- - name: content-encoding
- value: gzip
- headersSize: 1355
- httpVersion: HTTP/1.1
- redirectURL: ""
- status: 200
- statusText: OK
- startedDateTime: 2024-08-09T12:48:19.316Z
- time: 0
- timings:
- blocked: -1
- connect: -1
- dns: -1
- receive: 0
- send: 0
- ssl: -1
- wait: 0
- - _id: e2304ad643386d8500a41a21d240755f
- _order: 0
- cache: {}
- request:
- bodySize: 100
- cookies: []
- headers:
- - _fromType: array
- name: authorization
- value: token
- REDACTED_b20717265e7ab1d132874d8ff0be053ab9c1dacccec8dce0bbba76888b6a0a69
- - _fromType: array
- name: content-type
- value: application/json; charset=utf-8
- - _fromType: array
- name: user-agent
- value: JetBrains / 6.0-localbuild
- - _fromType: array
- name: accept
- value: "*/*"
- - _fromType: array
- name: content-length
- value: "100"
- - _fromType: array
- name: accept-encoding
- value: gzip,deflate
- - name: host
- value: demo.sourcegraph.com
- headersSize: 331
- httpVersion: HTTP/1.1
- method: POST
- postData:
- mimeType: application/json; charset=utf-8
- params: []
- textJSON:
- query: |-
-
- query SiteHasCodyEnabled {
- site {
- isCodyEnabled
- }
- }
- variables: {}
- queryString:
- - name: SiteHasCodyEnabled
- value: null
- url: https://demo.sourcegraph.com/.api/graphql?SiteHasCodyEnabled
- response:
- bodySize: 40
- content:
- mimeType: application/json
- size: 40
- text: "{\"data\":{\"site\":{\"isCodyEnabled\":true}}}"
- cookies: []
- headers:
- - name: date
- value: Fri, 09 Aug 2024 12:48:19 GMT
- - name: content-type
- value: application/json
- - name: content-length
- value: "40"
- - name: connection
- value: keep-alive
- - name: retry-after
- value: "177"
- - name: access-control-allow-credentials
- value: "true"
- - name: access-control-allow-origin
- value: ""
- - name: cache-control
- value: no-cache, max-age=0
- - name: vary
- value: Accept-Encoding, Authorization, Cookie, Authorization, X-Requested-With,
- Cookie
- - name: x-content-type-options
- value: nosniff
- - name: x-frame-options
- value: DENY
- - name: x-xss-protection
- value: 1; mode=block
- - name: strict-transport-security
- value: max-age=31536000; includeSubDomains; preload
- headersSize: 1323
- httpVersion: HTTP/1.1
- redirectURL: ""
- status: 200
- statusText: OK
- startedDateTime: 2024-08-09T12:48:19.494Z
- time: 0
- timings:
- blocked: -1
- connect: -1
- dns: -1
- receive: 0
- send: 0
- ssl: -1
- wait: 0
- - _id: 2f61c4440220a7c49cbf07315e5225db
- _order: 0
- cache: {}
- request:
- bodySize: 101
- cookies: []
- headers:
- - _fromType: array
- name: authorization
- value: token
- REDACTED_b20717265e7ab1d132874d8ff0be053ab9c1dacccec8dce0bbba76888b6a0a69
- - _fromType: array
- name: content-type
- value: application/json; charset=utf-8
- - _fromType: array
- name: user-agent
- value: JetBrains / 6.0-localbuild
- - _fromType: array
- name: accept
- value: "*/*"
- - _fromType: array
- name: content-length
- value: "101"
- - _fromType: array
- name: accept-encoding
- value: gzip,deflate
- - name: host
- value: demo.sourcegraph.com
- headersSize: 331
- httpVersion: HTTP/1.1
- method: POST
- postData:
- mimeType: application/json; charset=utf-8
- params: []
- textJSON:
- query: |-
-
- query SiteProductVersion {
- site {
- productVersion
- }
- }
- variables: {}
- queryString:
- - name: SiteProductVersion
- value: null
- url: https://demo.sourcegraph.com/.api/graphql?SiteProductVersion
- response:
- bodySize: 44
- content:
- mimeType: application/json
- size: 44
- text: "{\"data\":{\"site\":{\"productVersion\":\"5.6.0\"}}}"
- cookies: []
- headers:
- - name: date
- value: Fri, 09 Aug 2024 12:48:19 GMT
- - name: content-type
- value: application/json
- - name: content-length
- value: "44"
- - name: connection
- value: keep-alive
- - name: retry-after
- value: "177"
- - name: access-control-allow-credentials
- value: "true"
- - name: access-control-allow-origin
- value: ""
- - name: cache-control
- value: no-cache, max-age=0
- - name: vary
- value: Accept-Encoding, Authorization, Cookie, Authorization, X-Requested-With,
- Cookie
- - name: x-content-type-options
- value: nosniff
- - name: x-frame-options
- value: DENY
- - name: x-xss-protection
- value: 1; mode=block
- - name: strict-transport-security
- value: max-age=31536000; includeSubDomains; preload
- headersSize: 1323
- httpVersion: HTTP/1.1
- redirectURL: ""
- status: 200
- statusText: OK
- startedDateTime: 2024-08-09T12:48:18.984Z
- time: 0
- timings:
- blocked: -1
- connect: -1
- dns: -1
- receive: 0
- send: 0
- ssl: -1
- wait: 0
- - _id: 09b59ac55ce3c40d6f9ab8c79846a2c6
- _order: 0
- cache: {}
- request:
- bodySize: 144
- cookies: []
- headers:
- - _fromType: array
- name: content-type
- value: application/json; charset=utf-8
- - _fromType: array
- name: user-agent
- value: JetBrains / 6.0-localbuild
- - _fromType: array
- name: accept
- value: "*/*"
- - _fromType: array
- name: content-length
- value: "144"
- - _fromType: array
- name: accept-encoding
- value: gzip,deflate
- - name: host
- value: sourcegraph.com
- headersSize: 244
- httpVersion: HTTP/1.1
- method: POST
- postData:
- mimeType: application/json; charset=utf-8
- params: []
- textJSON:
- query: |-
-
- query ContextFilters {
- site {
- codyContextFilters(version: V1) {
- raw
- }
- }
- }
- variables: {}
- queryString:
- - name: ContextFilters
- value: null
- url: https://sourcegraph.com/.api/graphql?ContextFilters
- response:
- bodySize: 104
- content:
- encoding: base64
- mimeType: application/json
- size: 104
- text: "[\"H4sIAAAAAAAAA6pWSkksSVSyqlYqzixJBdHJ+SmVzvl5JakVJW6ZOSWpRcUg0aLEciWrv\
- NKcnNra2loAAAAA//8DADYuyGU1AAAA\"]"
- textDecoded:
- data:
- site:
- codyContextFilters:
- raw: null
- cookies: []
- headers:
- - name: date
- value: Fri, 09 Aug 2024 12:48:18 GMT
- - name: content-type
- value: application/json
- - name: transfer-encoding
- value: chunked
- - name: connection
- value: keep-alive
- - name: retry-after
- value: "178"
- - name: access-control-allow-credentials
- value: "true"
- - name: access-control-allow-origin
- value: ""
- - name: cache-control
- value: no-cache, max-age=0
- - name: vary
- value: Cookie,Accept-Encoding,Authorization,Cookie, Authorization,
- X-Requested-With,Cookie
- - name: x-content-type-options
- value: nosniff
- - name: x-frame-options
- value: DENY
- - name: x-xss-protection
- value: 1; mode=block
- - name: strict-transport-security
- value: max-age=31536000; includeSubDomains; preload
- - name: content-encoding
- value: gzip
- headersSize: 1440
- httpVersion: HTTP/1.1
- redirectURL: ""
- status: 200
- statusText: OK
- startedDateTime: 2024-08-09T12:48:18.537Z
- time: 0
- timings:
- blocked: -1
- connect: -1
- dns: -1
- receive: 0
- send: 0
- ssl: -1
- wait: 0
- - _id: 203c1896021c3a09dfe619120ea1b725
- _order: 0
- cache: {}
- request:
- bodySize: 101
- cookies: []
- headers:
- - _fromType: array
- name: content-type
- value: application/json; charset=utf-8
- - _fromType: array
- name: user-agent
- value: JetBrains / 6.0-localbuild
- - _fromType: array
- name: accept
- value: "*/*"
- - _fromType: array
- name: content-length
- value: "101"
- - _fromType: array
- name: accept-encoding
- value: gzip,deflate
- - name: host
- value: sourcegraph.com
- headersSize: 248
- httpVersion: HTTP/1.1
- method: POST
- postData:
- mimeType: application/json; charset=utf-8
- params: []
- textJSON:
- query: |-
-
- query SiteProductVersion {
- site {
- productVersion
- }
- }
- variables: {}
- queryString:
- - name: SiteProductVersion
- value: null
- url: https://sourcegraph.com/.api/graphql?SiteProductVersion
- response:
- bodySize: 139
- content:
- encoding: base64
- mimeType: application/json
- size: 139
- text: "[\"H4sIAAAAAAAAA6pWSkksSVSyqlYqzixJBdEFRfkppcklYalFxZn5eUpWSkYWZhamxvFGB\
- kYmugYWugaW8aZ6ZropBkkWFqbGxkkmpmZKtbW1AAAAAP//\",\"AwDAvJF7SQAAAA==\
- \"]"
- cookies: []
- headers:
- - name: date
- value: Fri, 09 Aug 2024 12:48:18 GMT
- - name: content-type
- value: application/json
- - name: transfer-encoding
- value: chunked
- - name: connection
- value: keep-alive
- - name: retry-after
- value: "178"
- - name: access-control-allow-credentials
- value: "true"
- - name: access-control-allow-origin
- value: ""
- - name: cache-control
- value: no-cache, max-age=0
- - name: vary
- value: Cookie,Accept-Encoding,Authorization,Cookie, Authorization,
- X-Requested-With,Cookie
- - name: x-content-type-options
- value: nosniff
- - name: x-frame-options
- value: DENY
- - name: x-xss-protection
- value: 1; mode=block
- - name: strict-transport-security
- value: max-age=31536000; includeSubDomains; preload
- - name: content-encoding
- value: gzip
- headersSize: 1440
- httpVersion: HTTP/1.1
- redirectURL: ""
- status: 200
- statusText: OK
- startedDateTime: 2024-08-09T12:48:18.242Z
- time: 0
- timings:
- blocked: -1
- connect: -1
- dns: -1
- receive: 0
- send: 0
- ssl: -1
- wait: 0
- pages: []
- version: "1.2"
diff --git a/src/integrationTest/resources/recordings/documentCode_2994921345/recording.har.yaml b/src/integrationTest/resources/recordings/integration-test_2927926756/recording.har.yaml
similarity index 90%
rename from src/integrationTest/resources/recordings/documentCode_2994921345/recording.har.yaml
rename to src/integrationTest/resources/recordings/integration-test_2927926756/recording.har.yaml
index 6dacb4e2bf..f43e01b968 100644
--- a/src/integrationTest/resources/recordings/documentCode_2994921345/recording.har.yaml
+++ b/src/integrationTest/resources/recordings/integration-test_2927926756/recording.har.yaml
@@ -1,5 +1,5 @@
log:
- _recordingName: documentCode
+ _recordingName: integration-test
creator:
comment: persister:fs
name: Polly.JS
@@ -36,24 +36,26 @@ log:
queryString: []
url: https://sourcegraph.com/.api/client-config
response:
- bodySize: 198
+ bodySize: 188
content:
encoding: base64
mimeType: text/plain; charset=utf-8
- size: 198
- text: "[\"H4sIAAAA\",\"AAAAA2zMsQoCMRCE4T5PsVztE9hJsLjOznrPrBjI7koyQeW4d7dRBEn9\
- z3xrICKaLp5eR+OlSJr2hNpl9wk3xjBwh0fXexHI+NkbXKOrsqU2NoCal47s9utXLu0\
- 7aMoV0Q3yxDlb8sfQUU9S2uE0/ylhC28AAAD//w==\",\"AwAr87D14AAAAA==\"]"
+ size: 188
+ text: "[\"H4sIAAAAAAAAA2zMsQoCMRCE4T5PsVztE9hJsLjOznrPrBjI7koyQeW4d7dRBEn9z3xrI\
+ CKaLp5eR+OlSJr2hNpl9wk3xjBwh0fXexHI+NkbXKOrsqU2NoCal47s9utXLu07aMoV\
+ 0Q3yxDlb8sfQUU9S2uE0/ylhC28AAAD//wMAK/Ow9eAAAAA=\"]"
cookies: []
headers:
- name: date
- value: Fri, 09 Aug 2024 12:41:14 GMT
+ value: Mon, 05 Aug 2024 10:11:46 GMT
- name: content-type
value: text/plain; charset=utf-8
- name: transfer-encoding
value: chunked
- name: connection
value: keep-alive
+ - name: retry-after
+ value: "403"
- name: access-control-allow-credentials
value: "true"
- name: access-control-allow-origin
@@ -73,12 +75,12 @@ log:
value: max-age=31536000; includeSubDomains; preload
- name: content-encoding
value: gzip
- headersSize: 1342
+ headersSize: 1449
httpVersion: HTTP/1.1
redirectURL: ""
status: 200
statusText: OK
- startedDateTime: 2024-08-09T12:41:14.596Z
+ startedDateTime: 2024-08-05T10:11:45.841Z
time: 0
timings:
blocked: -1
@@ -105,7 +107,7 @@ log:
- name: user-agent
value: JetBrains / 6.0-localbuild
- name: traceparent
- value: 00-5fb0e28015d22fc1aee471c93c766b0e-c3b43e35617cba56-01
+ value: 00-0ec7441b05369c730163041565b0a6c3-ec2f5176d73290f6-01
- name: connection
value: keep-alive
- name: host
@@ -204,14 +206,14 @@ log:
value: 6.0-localbuild
url: https://sourcegraph.com/.api/completions/stream?api-version=1&client-name=jetbrains&client-version=6.0-localbuild
response:
- bodySize: 1168
+ bodySize: 1837
content:
mimeType: text/event-stream
- size: 1168
+ size: 1837
text: >+
event: completion
- data: {"completion":"/**\n * Imports the necessary Java utility classes, including ArrayList and List.\n */","stopReason":"stop_sequence"}
+ data: {"completion":"/**\n * Imports the necessary Java utility classes, including {@link java.util.List} and {@link java.util.ArrayList}.\n */","stopReason":"stop_sequence"}
event: done
@@ -221,7 +223,7 @@ log:
cookies: []
headers:
- name: date
- value: Fri, 09 Aug 2024 12:41:17 GMT
+ value: Mon, 05 Aug 2024 10:11:48 GMT
- name: content-type
value: text/event-stream
- name: transfer-encoding
@@ -229,7 +231,7 @@ log:
- name: connection
value: keep-alive
- name: retry-after
- value: "600"
+ value: "401"
- name: access-control-allow-credentials
value: "true"
- name: access-control-allow-origin
@@ -252,7 +254,7 @@ log:
redirectURL: ""
status: 200
statusText: OK
- startedDateTime: 2024-08-09T12:41:16.156Z
+ startedDateTime: 2024-08-05T10:11:47.322Z
time: 0
timings:
blocked: -1
@@ -327,13 +329,15 @@ log:
cookies: []
headers:
- name: date
- value: Fri, 09 Aug 2024 12:41:15 GMT
+ value: Mon, 05 Aug 2024 10:11:46 GMT
- name: content-type
value: application/json
- name: transfer-encoding
value: chunked
- name: connection
value: keep-alive
+ - name: retry-after
+ value: "403"
- name: access-control-allow-credentials
value: "true"
- name: access-control-allow-origin
@@ -353,12 +357,12 @@ log:
value: max-age=31536000; includeSubDomains; preload
- name: content-encoding
value: gzip
- headersSize: 1333
+ headersSize: 1440
httpVersion: HTTP/1.1
redirectURL: ""
status: 200
statusText: OK
- startedDateTime: 2024-08-09T12:41:14.978Z
+ startedDateTime: 2024-08-05T10:11:46.212Z
time: 0
timings:
blocked: -1
@@ -423,25 +427,37 @@ log:
value: null
url: https://sourcegraph.com/.api/graphql?CurrentSiteCodyLlmConfiguration
response:
- bodySize: 251
+ bodySize: 248
content:
encoding: base64
mimeType: application/json
- size: 251
- text: "[\"H4sIAAAAAAAAA3zOwQqC\",\"QBAG4HeZs+K0BqFXr3rrBYbdMRdtJ3ZXKmTfPSyiSOg0\
- 8PP/H7OAoUhQLxBs5PVqMfe27RpxvT3NnqIV98wHip0YnqAGcnHwcrG60BPNhvMyD+I\
- cx1yh2qNSFWSfQUe3o4zsAtQ7hYgZ9BRi898byI7ziyvxAD+bLanlfJl4ffaN9tbzVf\
- wYihDJazHsYdP7gipETCmlBwAAAP//AwBQeP+1EwEAAA==\"]"
+ size: 248
+ text: "[\"H4sIAAAAAAAAA3zOwQqCQBAG4HeZs+K0BqFXr3rrBYbdMRdtJ3ZXKmTfPSyiSOg08PP/H\
+ 7OAoUhQLxBs5PVqMfe27RpxvT3NnqIV98wHip0YnqAGcnHwcrG60BPNhvMyD+Icx1yh\
+ 2qNSFWSfQUe3o4zsAtQ7hYgZ9BRi898byI7ziyvxAD+bLanlfJl4ffaN9tbzVfwYihD\
+ JazHsYdP7gipETCmlBwAAAP//AwBQeP+1EwEAAA==\"]"
+ textDecoded:
+ data:
+ site:
+ codyLLMConfiguration:
+ chatModel: anthropic/claude-3-sonnet-20240229
+ chatModelMaxTokens: 12000
+ completionModel: fireworks/starcoder
+ completionModelMaxTokens: 9000
+ fastChatModel: anthropic/claude-3-haiku-20240307
+ fastChatModelMaxTokens: 12000
cookies: []
headers:
- name: date
- value: Fri, 09 Aug 2024 12:41:14 GMT
+ value: Mon, 05 Aug 2024 10:11:45 GMT
- name: content-type
value: application/json
- name: transfer-encoding
value: chunked
- name: connection
value: keep-alive
+ - name: retry-after
+ value: "404"
- name: access-control-allow-credentials
value: "true"
- name: access-control-allow-origin
@@ -461,12 +477,12 @@ log:
value: max-age=31536000; includeSubDomains; preload
- name: content-encoding
value: gzip
- headersSize: 1333
+ headersSize: 1440
httpVersion: HTTP/1.1
redirectURL: ""
status: 200
statusText: OK
- startedDateTime: 2024-08-09T12:41:13.684Z
+ startedDateTime: 2024-08-05T10:11:44.993Z
time: 0
timings:
blocked: -1
@@ -541,13 +557,15 @@ log:
cookies: []
headers:
- name: date
- value: Fri, 09 Aug 2024 12:41:14 GMT
+ value: Mon, 05 Aug 2024 10:11:45 GMT
- name: content-type
value: application/json
- name: transfer-encoding
value: chunked
- name: connection
value: keep-alive
+ - name: retry-after
+ value: "404"
- name: access-control-allow-credentials
value: "true"
- name: access-control-allow-origin
@@ -567,12 +585,12 @@ log:
value: max-age=31536000; includeSubDomains; preload
- name: content-encoding
value: gzip
- headersSize: 1333
+ headersSize: 1440
httpVersion: HTTP/1.1
redirectURL: ""
status: 200
statusText: OK
- startedDateTime: 2024-08-09T12:41:13.720Z
+ startedDateTime: 2024-08-05T10:11:45.025Z
time: 0
timings:
blocked: -1
@@ -632,28 +650,30 @@ log:
value: null
url: https://sourcegraph.com/.api/graphql?CurrentSiteCodyLlmProvider
response:
- bodySize: 128
+ bodySize: 124
content:
encoding: base64
mimeType: application/json
- size: 128
+ size: 124
text: "[\"H4sIAAAAAAAAA6pWSkksSVSyqlYqzixJBdHJ+SmVPj6+zvl5aZnppUWJJZn5eSDxgqL8s\
- syU1CIlK6Xi/NKi5NT0osSCDKXa2tpaAAAAAP//AwAfFAXARQAAAA==\"]"
+ syU1CIlK6W0zKLU8vyi7GKl2traWgAAAAD//wMAf38NDUMAAAA=\"]"
textDecoded:
data:
site:
codyLLMConfiguration:
- provider: sourcegraph
+ provider: fireworks
cookies: []
headers:
- name: date
- value: Fri, 09 Aug 2024 12:41:13 GMT
+ value: Mon, 05 Aug 2024 10:11:45 GMT
- name: content-type
value: application/json
- name: transfer-encoding
value: chunked
- name: connection
value: keep-alive
+ - name: retry-after
+ value: "404"
- name: access-control-allow-credentials
value: "true"
- name: access-control-allow-origin
@@ -673,12 +693,12 @@ log:
value: max-age=31536000; includeSubDomains; preload
- name: content-encoding
value: gzip
- headersSize: 1333
+ headersSize: 1440
httpVersion: HTTP/1.1
redirectURL: ""
status: 200
statusText: OK
- startedDateTime: 2024-08-09T12:41:13.703Z
+ startedDateTime: 2024-08-05T10:11:45.009Z
time: 0
timings:
blocked: -1
@@ -775,13 +795,15 @@ log:
cookies: []
headers:
- name: date
- value: Fri, 09 Aug 2024 12:41:14 GMT
+ value: Mon, 05 Aug 2024 10:11:45 GMT
- name: content-type
value: application/json
- name: transfer-encoding
value: chunked
- name: connection
value: keep-alive
+ - name: retry-after
+ value: "404"
- name: access-control-allow-credentials
value: "true"
- name: access-control-allow-origin
@@ -801,12 +823,12 @@ log:
value: max-age=31536000; includeSubDomains; preload
- name: content-encoding
value: gzip
- headersSize: 1333
+ headersSize: 1440
httpVersion: HTTP/1.1
redirectURL: ""
status: 200
statusText: OK
- startedDateTime: 2024-08-09T12:41:13.738Z
+ startedDateTime: 2024-08-05T10:11:45.041Z
time: 0
timings:
blocked: -1
@@ -891,13 +913,15 @@ log:
cookies: []
headers:
- name: date
- value: Fri, 09 Aug 2024 12:41:14 GMT
+ value: Mon, 05 Aug 2024 10:11:45 GMT
- name: content-type
value: application/json
- name: transfer-encoding
value: chunked
- name: connection
value: keep-alive
+ - name: retry-after
+ value: "403"
- name: access-control-allow-credentials
value: "true"
- name: access-control-allow-origin
@@ -917,12 +941,12 @@ log:
value: max-age=31536000; includeSubDomains; preload
- name: content-encoding
value: gzip
- headersSize: 1333
+ headersSize: 1440
httpVersion: HTTP/1.1
redirectURL: ""
status: 200
statusText: OK
- startedDateTime: 2024-08-09T12:41:14.014Z
+ startedDateTime: 2024-08-05T10:11:45.289Z
time: 0
timings:
blocked: -1
@@ -985,19 +1009,21 @@ log:
encoding: base64
mimeType: application/json
size: 139
- text: "[\"H4sIAAAAAAAAA6pWSkks\",\"SVSyqlYqzixJBdEFRfkppcklYalFxZn5eUpWSkYWZham\
- xvFGBkYmugYWugaW8aZ6ZropBkkWFqbGxkkmpmZKtbW1AAAAAP//AwDAvJF7SQAAAA==\
+ text: "[\"H4sIAAAAAAAAA6pWSkksSVSyqlYqzixJBdEFRfkppcklYalFxZn5eUpWSkYWphamxvFGB\
+ kYmugYWugam8aZ6prqpxsZGhkYmZpYWlqlKtbW1AAAAAP//\",\"AwDZmR/0SQAAAA==\
\"]"
cookies: []
headers:
- name: date
- value: Fri, 09 Aug 2024 12:41:14 GMT
+ value: Mon, 05 Aug 2024 10:11:45 GMT
- name: content-type
value: application/json
- name: transfer-encoding
value: chunked
- name: connection
value: keep-alive
+ - name: retry-after
+ value: "404"
- name: access-control-allow-credentials
value: "true"
- name: access-control-allow-origin
@@ -1017,12 +1043,12 @@ log:
value: max-age=31536000; includeSubDomains; preload
- name: content-encoding
value: gzip
- headersSize: 1333
+ headersSize: 1440
httpVersion: HTTP/1.1
redirectURL: ""
status: 200
statusText: OK
- startedDateTime: 2024-08-09T12:41:13.645Z
+ startedDateTime: 2024-08-05T10:11:44.958Z
time: 0
timings:
blocked: -1
diff --git a/src/main/kotlin/com/sourcegraph/cody/agent/CodyAgent.kt b/src/main/kotlin/com/sourcegraph/cody/agent/CodyAgent.kt
index 0e60ff4ead..2ed832d464 100644
--- a/src/main/kotlin/com/sourcegraph/cody/agent/CodyAgent.kt
+++ b/src/main/kotlin/com/sourcegraph/cody/agent/CodyAgent.kt
@@ -98,12 +98,9 @@ private constructor(
private fun shouldSpawnDebuggableAgent() = System.getenv("CODY_AGENT_DEBUG_INSPECT") == "true"
- fun create(
- project: Project,
- additionalEnvs: Map
- ): CompletableFuture {
+ fun create(project: Project): CompletableFuture {
try {
- val conn = startAgentProcess(additionalEnvs)
+ val conn = startAgentProcess()
val client = CodyAgentClient()
client.onSetConfigFeatures = project.service()
val launcher = startAgentLauncher(conn, client)
@@ -145,7 +142,7 @@ private constructor(
}
}
- private fun startAgentProcess(additionalEnvs: Map): AgentConnection {
+ private fun startAgentProcess(): AgentConnection {
if (ConfigUtil.shouldConnectToDebugAgent()) {
return connectToDebugAgent()
}
@@ -207,9 +204,6 @@ private constructor(
}
}
- // Add optional environment variables
- additionalEnvs.forEach { (key, value) -> processBuilder.environment()[key] = value }
-
logger.info("starting Cody agent ${command.joinToString(" ")}")
logger.info(
"Cody agent proxyUrl ${proxyUrl} PROXY_TYPE_IS_SOCKS ${proxy.PROXY_TYPE_IS_SOCKS}")
diff --git a/src/main/kotlin/com/sourcegraph/cody/agent/CodyAgentServer.kt b/src/main/kotlin/com/sourcegraph/cody/agent/CodyAgentServer.kt
index de7a08b684..39f8c69bde 100644
--- a/src/main/kotlin/com/sourcegraph/cody/agent/CodyAgentServer.kt
+++ b/src/main/kotlin/com/sourcegraph/cody/agent/CodyAgentServer.kt
@@ -19,6 +19,7 @@ import com.sourcegraph.cody.agent.protocol.IgnorePolicySpec
import com.sourcegraph.cody.agent.protocol.IgnoreTestParams
import com.sourcegraph.cody.agent.protocol.IgnoreTestResponse
import com.sourcegraph.cody.agent.protocol.InlineEditParams
+import com.sourcegraph.cody.agent.protocol.NetworkRequest
import com.sourcegraph.cody.agent.protocol.ProtocolTextDocument
import com.sourcegraph.cody.agent.protocol.RemoteRepoHasParams
import com.sourcegraph.cody.agent.protocol.RemoteRepoHasResponse
@@ -41,7 +42,6 @@ import com.sourcegraph.cody.agent.protocol_generated.Graphql_GetRepoIdsParams
import com.sourcegraph.cody.agent.protocol_generated.Graphql_GetRepoIdsResult
import com.sourcegraph.cody.agent.protocol_generated.Null
import com.sourcegraph.cody.agent.protocol_generated.ServerInfo
-import com.sourcegraph.cody.agent.protocol_generated.Testing_RequestErrorsResult
import com.sourcegraph.cody.chat.ConnectionId
import java.util.concurrent.CompletableFuture
import org.eclipse.lsp4j.jsonrpc.services.JsonNotification
@@ -83,9 +83,6 @@ interface _SubsetGeneratedCodyAgentServer {
@JsonRequest("extensionConfiguration/getSettingsSchema")
fun extensionConfiguration_getSettingsSchema(params: Null?): CompletableFuture
- @JsonRequest("testing/requestErrors")
- fun testing_requestErrors(params: Null?): CompletableFuture
-
// // =============
// // Notifications
// // =============
@@ -205,4 +202,7 @@ interface _LegacyAgentServer {
@JsonRequest("testing/ignore/overridePolicy")
fun testingIgnoreOverridePolicy(params: IgnorePolicySpec?): CompletableFuture
+
+ @JsonRequest("testing/requestErrors")
+ fun testingRequestErrors(): CompletableFuture>
}
diff --git a/src/main/kotlin/com/sourcegraph/cody/agent/CodyAgentService.kt b/src/main/kotlin/com/sourcegraph/cody/agent/CodyAgentService.kt
index 09b4d50b3a..2315dffe25 100644
--- a/src/main/kotlin/com/sourcegraph/cody/agent/CodyAgentService.kt
+++ b/src/main/kotlin/com/sourcegraph/cody/agent/CodyAgentService.kt
@@ -159,15 +159,11 @@ class CodyAgentService(private val project: Project) : Disposable {
synchronized(startupActions) { startupActions.add(action) }
}
- fun startAgent(
- project: Project,
- secondsTimeout: Long = 45,
- additionalEnvs: Map = emptyMap()
- ): CompletableFuture {
+ fun startAgent(project: Project, secondsTimeout: Long = 45): CompletableFuture {
ApplicationManager.getApplication().executeOnPooledThread {
try {
val future =
- CodyAgent.create(project, additionalEnvs).exceptionally { err ->
+ CodyAgent.create(project).exceptionally { err ->
val msg = "Creating agent unsuccessful: ${err.localizedMessage}"
logger.error(msg)
throw (CodyAgentException(msg))
diff --git a/src/main/kotlin/com/sourcegraph/cody/agent/protocol/NetworkRequest.kt b/src/main/kotlin/com/sourcegraph/cody/agent/protocol/NetworkRequest.kt
new file mode 100644
index 0000000000..5c287b6633
--- /dev/null
+++ b/src/main/kotlin/com/sourcegraph/cody/agent/protocol/NetworkRequest.kt
@@ -0,0 +1,3 @@
+package com.sourcegraph.cody.agent.protocol
+
+data class NetworkRequest(val url: String?, val body: String?, val error: String?)
diff --git a/src/main/kotlin/com/sourcegraph/cody/chat/AgentChatSession.kt b/src/main/kotlin/com/sourcegraph/cody/chat/AgentChatSession.kt
index 26c493e436..e4a17de2ab 100644
--- a/src/main/kotlin/com/sourcegraph/cody/chat/AgentChatSession.kt
+++ b/src/main/kotlin/com/sourcegraph/cody/chat/AgentChatSession.kt
@@ -57,7 +57,7 @@ private constructor(
private val chatPanel: ChatPanel =
ChatPanel(project, chatSession = this, chatModelProviderFromState)
private val cancellationToken = AtomicReference(CancellationToken())
- val messages = mutableListOf()
+ private val messages = mutableListOf()
init {
cancellationToken.get().dispose()
diff --git a/src/main/kotlin/com/sourcegraph/cody/chat/ui/BlinkingCursorComponent.kt b/src/main/kotlin/com/sourcegraph/cody/chat/ui/BlinkingCursorComponent.kt
index 06ab4617c9..b398724a1a 100644
--- a/src/main/kotlin/com/sourcegraph/cody/chat/ui/BlinkingCursorComponent.kt
+++ b/src/main/kotlin/com/sourcegraph/cody/chat/ui/BlinkingCursorComponent.kt
@@ -1,6 +1,5 @@
package com.sourcegraph.cody.chat.ui
-import com.intellij.openapi.Disposable
import com.intellij.util.ui.UIUtil
import java.awt.Dimension
import java.awt.Font
@@ -8,7 +7,7 @@ import java.awt.Graphics
import javax.swing.JPanel
import javax.swing.Timer
-class BlinkingCursorComponent : JPanel(), Disposable {
+class BlinkingCursorComponent private constructor() : JPanel() {
private var showCursor = true
private val timer: Timer =
@@ -35,7 +34,7 @@ class BlinkingCursorComponent : JPanel(), Disposable {
return Dimension(30, 30)
}
- override fun dispose() {
- timer.stop()
+ companion object {
+ var instance = BlinkingCursorComponent()
}
}
diff --git a/src/main/kotlin/com/sourcegraph/cody/chat/ui/ChatPanel.kt b/src/main/kotlin/com/sourcegraph/cody/chat/ui/ChatPanel.kt
index add6a3b4a9..5b97c4598d 100644
--- a/src/main/kotlin/com/sourcegraph/cody/chat/ui/ChatPanel.kt
+++ b/src/main/kotlin/com/sourcegraph/cody/chat/ui/ChatPanel.kt
@@ -41,7 +41,7 @@ class ChatPanel(
private val messagesPanel = MessagesPanel(project, chatSession)
private val chatPanel = ChatScrollPane(messagesPanel)
- val contextView: EnhancedContextPanel = EnhancedContextPanel.create(project, chatSession)
+ internal val contextView: EnhancedContextPanel = EnhancedContextPanel.create(project, chatSession)
private val stopGeneratingButton =
object : JButton("Stop generating", IconUtil.desaturate(AllIcons.Actions.Suspend)) {
diff --git a/src/main/kotlin/com/sourcegraph/cody/chat/ui/MessagesPanel.kt b/src/main/kotlin/com/sourcegraph/cody/chat/ui/MessagesPanel.kt
index 9092bfd5b9..769e7fe8ce 100644
--- a/src/main/kotlin/com/sourcegraph/cody/chat/ui/MessagesPanel.kt
+++ b/src/main/kotlin/com/sourcegraph/cody/chat/ui/MessagesPanel.kt
@@ -4,7 +4,6 @@ import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.keymap.KeymapUtil
import com.intellij.openapi.project.Project
import com.intellij.openapi.ui.VerticalFlowLayout
-import com.intellij.openapi.util.Disposer
import com.intellij.util.concurrency.annotations.RequiresEdt
import com.sourcegraph.cody.agent.protocol.ChatMessage
import com.sourcegraph.cody.agent.protocol.Speaker
@@ -46,7 +45,7 @@ class MessagesPanel(private val project: Project, private val chatSession: ChatS
}
if (message.speaker == Speaker.ASSISTANT && message.actualMessage().isBlank()) {
- add(BlinkingCursorComponent())
+ add(BlinkingCursorComponent.instance)
}
revalidate()
@@ -55,12 +54,7 @@ class MessagesPanel(private val project: Project, private val chatSession: ChatS
@RequiresEdt
fun removeBlinkingCursor() {
- components
- .firstNotNullOfOrNull { it as? BlinkingCursorComponent }
- ?.let {
- Disposer.dispose(it)
- remove(it)
- }
+ components.find { it is BlinkingCursorComponent }?.let { remove(it) }
}
fun registerCancellationToken(cancellationToken: CancellationToken) {
diff --git a/src/main/kotlin/com/sourcegraph/cody/context/EnterpriseEnhancedContextStateController.kt b/src/main/kotlin/com/sourcegraph/cody/context/EnterpriseEnhancedContextStateController.kt
index 7a0e974b50..53148c51a8 100644
--- a/src/main/kotlin/com/sourcegraph/cody/context/EnterpriseEnhancedContextStateController.kt
+++ b/src/main/kotlin/com/sourcegraph/cody/context/EnterpriseEnhancedContextStateController.kt
@@ -342,6 +342,4 @@ class EnterpriseEnhancedContextStateController(
fun requestUIUpdate() {
ApplicationManager.getApplication().executeOnPooledThread(this::updateUI)
}
-
- fun getConfiguredState() = model_.configured
}
diff --git a/src/main/kotlin/com/sourcegraph/cody/context/ui/EnhancedContextPanel.kt b/src/main/kotlin/com/sourcegraph/cody/context/ui/EnhancedContextPanel.kt
index e77e35143e..3421cfc474 100644
--- a/src/main/kotlin/com/sourcegraph/cody/context/ui/EnhancedContextPanel.kt
+++ b/src/main/kotlin/com/sourcegraph/cody/context/ui/EnhancedContextPanel.kt
@@ -205,7 +205,7 @@ class EnterpriseEnhancedContextPanel(project: Project, chatSession: ChatSession)
private const val ENTER_MAP_KEY = "enter"
}
- val controller =
+ private var controller =
EnterpriseEnhancedContextStateController(
project,
object : ChatEnhancedContextStateProvider {