@@ -75,9 +75,7 @@ type ResponseEvent<T extends ResponseEventType = "text"> =
75
75
76
76
type CopilotAckResponseEventData = {
77
77
choices : [ {
78
- delta : {
79
- content : "" , role : "assistant"
80
- }
78
+ delta : InteropMessage < "assistant" >
81
79
} ]
82
80
}
83
81
@@ -92,9 +90,7 @@ type CopilotDoneResponseEventData = {
92
90
93
91
type CopilotTextResponseEventData = {
94
92
choices : [ {
95
- delta : {
96
- content : string , role : "assistant"
97
- }
93
+ delta : InteropMessage < "assistant" >
98
94
} ]
99
95
}
100
96
type CopilotConfirmationResponseEventData = {
@@ -134,7 +130,7 @@ interface CopilotReference {
134
130
135
131
export interface CopilotRequestPayload {
136
132
copilot_thread_id : string
137
- messages : Message [ ]
133
+ messages : CopilotMessage [ ]
138
134
stop : any
139
135
top_p : number
140
136
temperature : number
@@ -146,14 +142,10 @@ export interface CopilotRequestPayload {
146
142
}
147
143
148
144
export interface OpenAICompatibilityPayload {
149
- messages : {
150
- role : string
151
- name ?: string
152
- content : string
153
- } [ ]
145
+ messages : InteropMessage [ ]
154
146
}
155
147
156
- export interface Message {
148
+ export interface CopilotMessage {
157
149
role : string
158
150
content : string
159
151
copilot_references : MessageCopilotReference [ ]
@@ -169,6 +161,13 @@ export interface Message {
169
161
name ?: string
170
162
}
171
163
164
+ export interface InteropMessage < TRole extends string = string > {
165
+ role : TRole
166
+ content : string
167
+ name ?: string
168
+ [ key : string ] : unknown
169
+ }
170
+
172
171
export interface MessageCopilotReference {
173
172
type : string
174
173
data : CopilotReferenceData
@@ -274,18 +273,23 @@ export type PromptOptions = {
274
273
model : ModelName
275
274
token : string
276
275
tools ?: PromptFunction [ ]
276
+ messages ?: InteropMessage [ ]
277
277
request ?: {
278
278
fetch ?: Function
279
279
}
280
280
}
281
281
282
282
export type PromptResult = {
283
283
requestId : string
284
- message : Message
284
+ message : CopilotMessage
285
285
}
286
286
287
+ // https://stackoverflow.com/a/69328045
288
+ type WithRequired < T , K extends keyof T > = T & { [ P in K ] -?: T [ P ] }
289
+
287
290
interface PromptInterface {
288
291
( userPrompt : string , options : PromptOptions ) : Promise < PromptResult > ;
292
+ ( options : WithRequired < PromptOptions , "messages" > ) : Promise < PromptResult > ;
289
293
}
290
294
291
295
// exported methods
0 commit comments