MCPcopy Create free account
hub / github.com/Noumena-Network/code / applyLocalQueryEvent

Function applyLocalQueryEvent

src/session/applyLocalQueryEvent.ts:78–156  ·  view source on GitHub ↗
(
  event: LocalQueryEvent,
  deps: ApplyLocalQueryEventDeps,
)

Source from the content-addressed store, hash-verified

76}
77
78export function applyLocalQueryEvent(
79 event: LocalQueryEvent,
80 deps: ApplyLocalQueryEventDeps,
81): void {
82 const {
83 setMessages,
84 setConversationId,
85 createConversationId = randomUUID,
86 setResponseLength,
87 setStreamMode,
88 setStreamingToolUses,
89 setStreamingThinking,
90 onStreamingText,
91 removeTranscriptMessage,
92 onApiMetrics,
93 setContextBlocked,
94 onCompactBoundary,
95 isFullscreen,
96 streamAdapter = defaultStreamAdapter,
97 } = deps
98
99 streamAdapter.handleMessageFromStream(
100 event,
101 newMessage => {
102 if (streamAdapter.isCompactBoundaryMessage(newMessage)) {
103 onCompactBoundary?.()
104 if (isFullscreen) {
105 setMessages(old => [
106 ...streamAdapter.getMessagesAfterCompactBoundary(old, {
107 includeSnipped: true,
108 }),
109 newMessage,
110 ])
111 } else {
112 setMessages(() => [newMessage])
113 }
114 setConversationId(createConversationId())
115 setContextBlocked?.(false)
116 } else if (
117 newMessage.type === 'progress' &&
118 isEphemeralToolProgress(newMessage.data.type)
119 ) {
120 setMessages(oldMessages => {
121 const last = oldMessages.at(-1)
122 if (
123 last?.type === 'progress' &&
124 last.parentToolUseID === newMessage.parentToolUseID &&
125 last.data.type === newMessage.data.type
126 ) {
127 const copy = oldMessages.slice()
128 copy[copy.length - 1] = newMessage
129 return copy
130 }
131 return [...oldMessages, newMessage]
132 })
133 } else {
134 setMessages(oldMessages => [...oldMessages, newMessage])
135 }

Callers 2

REPLFunction · 0.85

Calls 4

setContextBlockedFunction · 0.85
removeTranscriptMessageFunction · 0.85
setMessagesFunction · 0.70
isEphemeralToolProgressFunction · 0.70

Tested by

no test coverage detected