NODEDC_1C/llm_normalizer/backend/dist/services/assistantAddressToolGateRun...

57 lines
2.5 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.runAssistantAddressToolGateRuntime = runAssistantAddressToolGateRuntime;
async function runAssistantAddressToolGateRuntime(input) {
if (Boolean(input.orchestrationDecision?.runAddressLane)) {
return {
handled: false,
response: null
};
}
const runtimeMeta = input.addressRuntimeMeta && typeof input.addressRuntimeMeta === "object"
? input.addressRuntimeMeta
: {};
const predecomposeContract = runtimeMeta.predecomposeContract && typeof runtimeMeta.predecomposeContract === "object"
? runtimeMeta.predecomposeContract
: null;
const predecomposePeriod = predecomposeContract?.period && typeof predecomposeContract.period === "object"
? predecomposeContract.period
: null;
input.logEvent({
timestamp: input.nowIso(),
level: "info",
service: "assistant_loop",
message: "assistant_address_tool_gate_skip",
sessionId: input.sessionId,
details: {
session_id: input.sessionId,
user_message: input.userMessage,
effective_address_user_message: input.addressInputMessage,
address_llm_predecompose_attempted: Boolean(runtimeMeta.attempted),
address_llm_predecompose_applied: Boolean(runtimeMeta.applied),
address_llm_predecompose_reason: runtimeMeta.reason ?? null,
address_fallback_rule_hit: runtimeMeta.fallbackRuleHit ?? null,
address_sanitized_user_message: runtimeMeta.sanitizedUserMessage ?? null,
assistant_orchestration_contract_v1: runtimeMeta.orchestrationContract ?? null,
address_tool_gate_decision: runtimeMeta.toolGateDecision ?? null,
address_tool_gate_reason: runtimeMeta.toolGateReason ?? null,
address_llm_predecompose_contract_intent: predecomposeContract?.intent ?? null,
address_llm_predecompose_contract_aggregation_profile: predecomposeContract?.aggregation_profile ?? null,
address_llm_predecompose_contract_period_scope: predecomposePeriod?.scope ?? null
}
});
if (input.livingModeDecision?.mode === "chat") {
const chatHandled = await input.tryHandleLivingChat(input.livingModeDecision, runtimeMeta);
if (chatHandled) {
return {
handled: true,
response: chatHandled
};
}
}
return {
handled: false,
response: null
};
}