@juspay/neurolink
Version:
The pipe layer of an AI nervous system: one interface connecting provider neurons to your application, across three inference types — generate, stream and decide. `decide` returns typed, calibrated judgements from a non-generative model (~400ms, ~$0.00002
86 lines (85 loc) • 3.63 kB
JavaScript
/** Content visible to the caller; thinking and empty text are not useful output. */
export function hasUsefulClaudeContent(value) {
if (!value || typeof value !== "object") {
return false;
}
const block = value;
if (Array.isArray(block.content)) {
return block.content.some(hasUsefulClaudeContent);
}
if (block.type === "thinking" || block.type === "redacted_thinking") {
return false;
}
if (typeof block.text === "string" && block.text.trim().length > 0) {
return true;
}
if (typeof block.refusal === "string" && block.refusal.trim().length > 0) {
return true;
}
return ((block.type === "tool_use" || block.type === "server_tool_use") &&
typeof block.name === "string" &&
block.name.length > 0 &&
block.input !== undefined);
}
/** A complete JSON response becomes observable when its body has been read. */
export function observeClaudeJsonOutput(metadata, value, at = Date.now()) {
if (!value ||
typeof value !== "object" ||
!Array.isArray(value.content)) {
metadata.firstUsefulOutputStatus = "not_observed";
metadata.firstUsefulOutputUnavailableReason = "unrecognized_response";
return;
}
if (hasUsefulClaudeContent(value)) {
metadata.firstUsefulOutputAt = at;
metadata.firstUsefulOutputStatus = "observed";
metadata.firstUsefulOutputEvent = "json_response.content";
}
else {
metadata.firstUsefulOutputStatus = "no_useful_output";
delete metadata.firstUsefulOutputAt;
delete metadata.firstUsefulOutputEvent;
}
delete metadata.firstUsefulOutputUnavailableReason;
}
/** Keep unavailable observations distinct from a complete stream with no output. */
export function observeClaudeStreamOutput(metadata, data) {
delete metadata.firstUsefulOutputAt;
delete metadata.firstUsefulOutputEvent;
delete metadata.firstUsefulOutputUnavailableReason;
if (!data.observationIncomplete && data.firstUsefulOutputAt !== undefined) {
metadata.firstUsefulOutputAt = data.firstUsefulOutputAt;
metadata.firstUsefulOutputEvent = data.firstUsefulOutputEvent;
metadata.firstUsefulOutputStatus = "observed";
}
else if (!data.observationIncomplete && data.messageStopReceived) {
metadata.firstUsefulOutputStatus = "no_useful_output";
}
else {
metadata.firstUsefulOutputStatus = "not_observed";
metadata.firstUsefulOutputUnavailableReason = data.observationIncomplete
? "incomplete_observation"
: "stream_incomplete";
}
}
/** Final records always explain whether useful-output latency was observed. */
export function claudeOutputLogFields(metadata, requestStartTime) {
const at = metadata.firstUsefulOutputAt;
if (typeof at === "number" && Number.isFinite(at)) {
return {
firstUsefulOutputMs: Math.max(0, at - requestStartTime),
firstUsefulOutputStatus: "observed",
firstUsefulOutputEvent: typeof metadata.firstUsefulOutputEvent === "string"
? metadata.firstUsefulOutputEvent
: "translated_output",
};
}
return metadata.firstUsefulOutputStatus === "no_useful_output"
? { firstUsefulOutputStatus: "no_useful_output" }
: {
firstUsefulOutputStatus: "not_observed",
firstUsefulOutputUnavailableReason: typeof metadata.firstUsefulOutputUnavailableReason === "string"
? metadata.firstUsefulOutputUnavailableReason
: "response_not_observed",
};
}