MCPcopy Create free account
hub / github.com/TanStack/ai / applyHookEvent

Function applyHookEvent

packages/ai-devtools/src/store/hook-registry.ts:252–404  ·  view source on GitHub ↗
(
  state: HookRegistryState,
  eventName: string,
  event: RuntimeScopedHookEvent,
)

Source from the content-addressed store, hash-verified

250}
251
252export function applyHookEvent(
253 state: HookRegistryState,
254 eventName: string,
255 event: RuntimeScopedHookEvent,
256): void {
257 if (isForeignClientRuntimeEvent(event)) {
258 return
259 }
260
261 if (!markEventSeen(state, eventName, event)) {
262 return
263 }
264
265 const timelineEvent = createTimelineEvent(eventName, event)
266 state.events[timelineEvent.id] = timelineEvent
267
268 switch (eventName) {
269 case 'hook:registered': {
270 const registered = event as HookRegisteredEvent
271 delete state.unregisteredHookIds[registered.hookId]
272 upsertHook(state, registered)
273 attachEventToHook(state, registered.hookId, timelineEvent.id)
274 break
275 }
276 case 'hook:updated': {
277 const updated = event as HookUpdatedEvent
278 if (state.unregisteredHookIds[updated.hookId]) {
279 break
280 }
281 if (isStaleHookInstanceEvent(state, updated.hookId, updated)) {
282 break
283 }
284 upsertHook(state, updated)
285 attachEventToHook(state, updated.hookId, timelineEvent.id)
286 break
287 }
288 case 'hook:unregistered': {
289 const unregistered = event as HookUnregisteredEvent
290 const existing = state.hooks[unregistered.hookId]
291 if (
292 existing?.clientId &&
293 unregistered.clientId &&
294 existing.clientId !== unregistered.clientId
295 ) {
296 break
297 }
298 if (
299 existing?.correlationId &&
300 unregistered.correlationId &&
301 existing.correlationId !== unregistered.correlationId
302 ) {
303 break
304 }
305 if (existing && existing.registeredAt > unregistered.timestamp) {
306 break
307 }
308 state.unregisteredHookIds[unregistered.hookId] = true
309 removeHookRecord(state, unregistered.hookId)

Callers 3

AIProviderFunction · 0.90
recordRunEventFunction · 0.90

Calls 15

markEventSeenFunction · 0.85
createTimelineEventFunction · 0.85
upsertHookFunction · 0.85
attachEventToHookFunction · 0.85
isStaleHookInstanceEventFunction · 0.85
removeHookRecordFunction · 0.85
syncRunsFromSnapshotFunction · 0.85
upsertRunFunction · 0.85
upsertUnknownHookFunction · 0.85
attachRunToHookFunction · 0.85

Tested by

no test coverage detected