@@ -3,6 +3,7 @@ import Preferences
33import SwiftUI
44
55public final class ChatProvider : ObservableObject {
6+ public typealias MessageID = String
67 let id = UUID ( )
78 @Published public var history : [ ChatMessage ] = [ ]
89 @Published public var isReceivingMessage = false
@@ -13,10 +14,11 @@ public final class ChatProvider: ObservableObject {
1314 public var onClear : ( ) -> Void
1415 public var onClose : ( ) -> Void
1516 public var onSwitchContext : ( ) -> Void
16- public var onDeleteMessage : ( String ) -> Void
17- public var onResendMessage : ( String ) -> Void
17+ public var onDeleteMessage : ( MessageID ) -> Void
18+ public var onResendMessage : ( MessageID ) -> Void
1819 public var onResetPrompt : ( ) -> Void
1920 public var onRunCustomCommand : ( CustomCommand ) -> Void = { _ in }
21+ public var onSetAsExtraPrompt : ( MessageID ) -> Void
2022
2123 public init (
2224 history: [ ChatMessage ] = [ ] ,
@@ -26,10 +28,11 @@ public final class ChatProvider: ObservableObject {
2628 onClear: @escaping ( ) -> Void = { } ,
2729 onClose: @escaping ( ) -> Void = { } ,
2830 onSwitchContext: @escaping ( ) -> Void = { } ,
29- onDeleteMessage: @escaping ( String ) -> Void = { _ in } ,
30- onResendMessage: @escaping ( String ) -> Void = { _ in } ,
31+ onDeleteMessage: @escaping ( MessageID ) -> Void = { _ in } ,
32+ onResendMessage: @escaping ( MessageID ) -> Void = { _ in } ,
3133 onResetPrompt: @escaping ( ) -> Void = { } ,
32- onRunCustomCommand: @escaping ( CustomCommand ) -> Void = { _ in }
34+ onRunCustomCommand: @escaping ( CustomCommand ) -> Void = { _ in } ,
35+ onSetAsExtraPrompt: @escaping ( MessageID ) -> Void = { _ in }
3336 ) {
3437 self . history = history
3538 self . isReceivingMessage = isReceivingMessage
@@ -42,19 +45,21 @@ public final class ChatProvider: ObservableObject {
4245 self . onResendMessage = onResendMessage
4346 self . onResetPrompt = onResetPrompt
4447 self . onRunCustomCommand = onRunCustomCommand
48+ self . onSetAsExtraPrompt = onSetAsExtraPrompt
4549 }
4650
4751 public func send( _ message: String ) { onMessageSend ( message) }
4852 public func stop( ) { onStop ( ) }
4953 public func clear( ) { onClear ( ) }
5054 public func close( ) { onClose ( ) }
5155 public func switchContext( ) { onSwitchContext ( ) }
52- public func deleteMessage( id: String ) { onDeleteMessage ( id) }
53- public func resendMessage( id: String ) { onResendMessage ( id) }
56+ public func deleteMessage( id: MessageID ) { onDeleteMessage ( id) }
57+ public func resendMessage( id: MessageID ) { onResendMessage ( id) }
5458 public func resetPrompt( ) { onResetPrompt ( ) }
5559 public func triggerCustomCommand( _ command: CustomCommand ) {
5660 onRunCustomCommand ( command)
5761 }
62+ public func setAsExtraPrompt( id: MessageID ) { onSetAsExtraPrompt ( id) }
5863}
5964
6065public struct ChatMessage : Equatable {
0 commit comments