(messages = ['hello from launcher test'], mode = createMode())
| 819 | } |
| 820 | |
| 821 | function createSessionStub(messages = ['hello from launcher test'], mode = createMode()) { |
| 822 | const queue = new MessageQueue2<EnhancedMode>((mode) => JSON.stringify(mode)); |
| 823 | messages.forEach((message, index) => { |
| 824 | if (index === 0 && messages.length > 1) { |
| 825 | queue.pushIsolateAndClear(message, mode); |
| 826 | } else { |
| 827 | queue.push(message, mode); |
| 828 | } |
| 829 | }); |
| 830 | queue.close(); |
| 831 | |
| 832 | const sessionEvents: Array<{ type: string; [key: string]: unknown }> = []; |
| 833 | const codexMessages: unknown[] = []; |
| 834 | const summaryMessages: unknown[] = []; |
| 835 | const thinkingChanges: boolean[] = []; |
| 836 | const foundSessionIds: string[] = []; |
| 837 | const resetThreadCalls: string[] = []; |
| 838 | const collaborationModes: Array<EnhancedMode['collaborationMode'] | undefined> = []; |
| 839 | let currentPermissionMode: EnhancedMode['permissionMode'] = mode.permissionMode; |
| 840 | let currentModel: string | null | undefined = mode.model; |
| 841 | let currentCollaborationMode: EnhancedMode['collaborationMode'] | undefined = mode.collaborationMode; |
| 842 | let agentState: FakeAgentState = { |
| 843 | requests: {}, |
| 844 | completedRequests: {} |
| 845 | }; |
| 846 | |
| 847 | const rpcHandlers = new Map<string, (params: unknown) => unknown>(); |
| 848 | const client = { |
| 849 | rpcHandlerManager: { |
| 850 | registerHandler(method: string, handler: (params: unknown) => unknown) { |
| 851 | rpcHandlers.set(method, handler); |
| 852 | } |
| 853 | }, |
| 854 | updateAgentState(handler: (state: FakeAgentState) => FakeAgentState) { |
| 855 | agentState = handler(agentState); |
| 856 | }, |
| 857 | sendAgentMessage(message: unknown) { |
| 858 | codexMessages.push(message); |
| 859 | }, |
| 860 | sendUserMessage(_text: string) {}, |
| 861 | sendClaudeSessionMessage(message: unknown) { |
| 862 | summaryMessages.push(message); |
| 863 | }, |
| 864 | sendSessionEvent(event: { type: string; [key: string]: unknown }) { |
| 865 | sessionEvents.push(event); |
| 866 | } |
| 867 | }; |
| 868 | |
| 869 | const session = { |
| 870 | path: '/tmp/hapi-update', |
| 871 | logPath: '/tmp/hapi-update/test.log', |
| 872 | client, |
| 873 | queue, |
| 874 | codexArgs: undefined, |
| 875 | codexCliOverrides: undefined, |
| 876 | sessionId: null as string | null, |
| 877 | thinking: false, |
| 878 | getPermissionMode() { |
no test coverage detected