MCPcopy Create free account
hub / github.com/tiann/hapi / parseToolCall

Function parseToolCall

cli/src/opencode/opencodeLocalLauncher.ts:164–189  ·  view source on GitHub ↗
(part: unknown)

Source from the content-addressed store, hash-verified

162}
163
164function parseToolCall(part: unknown): ParsedToolCall | null {
165 if (!isObject(part)) {
166 return null;
167 }
168 const record = part as Record<string, unknown>;
169 const name = getString(record.tool) || getString(record.name);
170 const callId = getString(record.callID)
171 || getString(record.callId)
172 || getString(record.id)
173 || getString(record.tool_call_id)
174 || getString(record.toolCallId);
175 if (!name || !callId) {
176 return null;
177 }
178 if (getString(record.type) === 'tool' && isObject(record.state)) {
179 const state = record.state as Record<string, unknown>;
180 const status = getString(state.status);
181 if (status !== 'pending' && status !== 'running') {
182 return null;
183 }
184 const input = parseMaybeJson(state.input ?? state.raw ?? record.input ?? record.args ?? record.arguments);
185 return { callId, name, input };
186 }
187 const input = parseMaybeJson(record.input ?? record.args ?? record.arguments ?? record.raw);
188 return { callId, name, input };
189}
190
191function parseToolResult(part: unknown): ParsedToolResult | null {
192 if (!isObject(part)) {

Callers 1

handleHookEventFunction · 0.85

Calls 3

isObjectFunction · 0.85
parseMaybeJsonFunction · 0.85
getStringFunction · 0.70

Tested by

no test coverage detected