forked from github/CopilotForXcode
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGitHubCopilotRequest+Conversation.swift
More file actions
98 lines (83 loc) · 2.24 KB
/
GitHubCopilotRequest+Conversation.swift
File metadata and controls
98 lines (83 loc) · 2.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import CopilotForXcodeKit
import Foundation
import LanguageServerProtocol
import SuggestionBasic
import ConversationServiceProvider
enum ConversationSource: String, Codable {
case panel, inline
}
public struct Doc: Codable {
var position: Position?
var uri: String
}
struct Reference: Codable {
let uri: String
let position: Position?
let visibleRange: SuggestionBasic.CursorRange?
let selection: SuggestionBasic.CursorRange?
let openedAt: String?
let activeAt: String?
}
struct ConversationCreateParams: Codable {
var workDoneToken: String
var turns: [ConversationTurn]
var capabilities: Capabilities
var doc: Doc?
var references: [Reference]?
var computeSuggestions: Bool?
var source: ConversationSource?
var workspaceFolder: String?
struct Capabilities: Codable {
var skills: [String]
var allSkills: Bool?
}
}
public struct ConversationProgress: Codable {
public struct FollowUp: Codable {
public var message: String
public var id: String
public var type: String
}
public let kind: String
public let conversationId: String
public let turnId: String
public let reply: String?
public let suggestedTitle: String?
init(kind: String, conversationId: String, turnId: String, reply: String = "", suggestedTitle: String? = nil) {
self.kind = kind
self.conversationId = conversationId
self.turnId = turnId
self.reply = reply
self.suggestedTitle = suggestedTitle
}
}
// MARK: Conversation rating
struct ConversationRatingParams: Codable {
var turnId: String
var rating: ConversationRating
var doc: Doc?
var source: ConversationSource?
}
// MARK: Conversation turn
struct ConversationTurn: Codable {
var request: String
var response: String?
var turnId: String?
}
struct TurnCreateParams: Codable {
var workDoneToken: String
var conversationId: String
var message: String
var doc: Doc?
}
// MARK: Copy
struct CopyCodeParams: Codable {
var turnId: String
var codeBlockIndex: Int
var copyType: CopyKind
var copiedCharacters: Int
var totalCharacters: Int
var copiedText: String
var doc: Doc?
var source: ConversationSource?
}