MCPcopy Create free account
hub / github.com/FIND-Lab/AgentWard / processRequestAsync

Function processRequestAsync

worker/model-worker.ts:107–170  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

105}
106
107async function processRequestAsync(): Promise<void> {
108 let requestFile = '';
109 let responseFile = '';
110 let requestId = 'unknown';
111
112 try {
113 const requestFileLen = view[1];
114 if (requestFileLen <= 0 || requestFileLen > FILENAME_MAX_LENGTH) {
115 log('error', `[Worker] Invalid request filename length: ${requestFileLen}`);
116 finishProcessing('', 'unknown', false, undefined, 'Invalid request filename length');
117 return;
118 }
119
120 requestFile = decoder.decode(
121 dataBuffer.slice(REQUEST_FILENAME_DATA_OFFSET, REQUEST_FILENAME_DATA_OFFSET + requestFileLen)
122 );
123 const requestFilePath = join(tmpDir, requestFile);
124
125 const responseFileLen = view[RESPONSE_FILENAME_LENGTH_INDEX];
126 if (responseFileLen <= 0 || responseFileLen > FILENAME_MAX_LENGTH) {
127 log('error', `[Worker] Invalid response filename length: ${responseFileLen}`);
128 finishProcessing('', 'unknown', false, undefined, 'Invalid response filename length');
129 return;
130 }
131
132 responseFile = decoder.decode(
133 dataBuffer.slice(RESPONSE_FILENAME_DATA_OFFSET, RESPONSE_FILENAME_DATA_OFFSET + responseFileLen)
134 );
135
136 const requestJson = decrypt(new Uint8Array(readFileSync(requestFilePath)), aesKey);
137 const request = JSON.parse(requestJson);
138 requestId = request.requestId;
139
140 let result: any;
141
142 if (request.type === 'llm') {
143 const llmResponse = await callLLM(request.data as syncLLMRequest<Api>);
144 if (llmResponse) {
145 result = llmResponse;
146 } else {
147 throw new Error('LLM call returned null');
148 }
149 } else if (request.type === 'add') {
150 const { a, b } = request.data as { a: number; b: number };
151 result = {
152 calculation: `${a} + ${b}`,
153 sum: a + b,
154 processedAt: Date.now(),
155 };
156 } else {
157 result = {
158 message: 'Unknown operation',
159 type: request.type,
160 processedAt: Date.now(),
161 };
162 }
163
164 finishProcessing(responseFile, requestId, true, result);

Callers 1

runWorkerFunction · 0.85

Calls 4

decryptFunction · 0.90
logFunction · 0.85
finishProcessingFunction · 0.85
callLLMFunction · 0.85

Tested by

no test coverage detected