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

Function createHandlerDeps

src/session/replMessageSelectorHandlers.test.ts:7–63  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

5import { createReplMessageSelectorRestoreHandlers } from './replMessageSelectorHandlers.js'
6
7const createHandlerDeps = () => {
8 const message = {
9 ...createUserMessage({
10 content: [
11 { type: 'text', text: 'restore me' },
12 {
13 type: 'image',
14 source: {
15 type: 'base64',
16 media_type: 'image/png',
17 data: 'abc123',
18 },
19 },
20 ],
21 }),
22 permissionMode: 'acceptEdits',
23 imagePasteIds: [42],
24 }
25 const laterMessage = createUserMessage({ content: 'later message' })
26 let nextState = getDefaultAppState()
27 const events: string[] = []
28
29 const handler = createReplMessageSelectorRestoreHandlers({
30 getCurrentMessages: () => [message, laterMessage],
31 setMessages: () => {
32 events.push('messages')
33 },
34 generateConversationId: () => 'new-session-id',
35 setConversationId: value => {
36 events.push(`session:${value}`)
37 },
38 resetMicrocompactState: () => {
39 events.push('microcompact')
40 },
41 resetContextCollapse: () => {
42 events.push('context-collapse')
43 },
44 setAppState: updater => {
45 events.push('app-state')
46 nextState = updater(nextState)
47 },
48 setInputValue: value => {
49 events.push(`input:${value}`)
50 },
51 setInputMode: value => {
52 events.push(`mode:${value}`)
53 },
54 setPastedContents: () => {
55 events.push('pastes')
56 },
57 logEvent: (event, payload) => {
58 events.push(`${event}:${payload.preRewindMessageCount}:${payload.postRewindMessageCount}:${payload.messagesRemoved}:${payload.rewindToMessageIndex}`)
59 },
60 })
61
62 return { message, events, handler, nextStateRef: () => nextState }
63}
64

Calls 3

getDefaultAppStateFunction · 0.85
createUserMessageFunction · 0.70

Tested by

no test coverage detected