84 lines
3.4 KiB
JavaScript
84 lines
3.4 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.ASSISTANT_MCP_DISCOVERY_RUNTIME_ENTRY_POINT_SCHEMA_VERSION = void 0;
|
|
exports.runAssistantMcpDiscoveryRuntimeEntryPoint = runAssistantMcpDiscoveryRuntimeEntryPoint;
|
|
const assistantMcpDiscoveryRuntimeBridge_1 = require("./assistantMcpDiscoveryRuntimeBridge");
|
|
const assistantMcpDiscoveryTurnInputAdapter_1 = require("./assistantMcpDiscoveryTurnInputAdapter");
|
|
exports.ASSISTANT_MCP_DISCOVERY_RUNTIME_ENTRY_POINT_SCHEMA_VERSION = "assistant_mcp_discovery_runtime_entry_point_v1";
|
|
function normalizeReasonCode(value) {
|
|
const normalized = value
|
|
.trim()
|
|
.replace(/[^\p{L}\p{N}_.:-]+/gu, "_")
|
|
.replace(/^_+|_+$/g, "")
|
|
.toLowerCase();
|
|
return normalized.length > 0 ? normalized.slice(0, 120) : null;
|
|
}
|
|
function pushReason(target, value) {
|
|
const normalized = normalizeReasonCode(value);
|
|
if (normalized && !target.includes(normalized)) {
|
|
target.push(normalized);
|
|
}
|
|
}
|
|
function uniqueStrings(values) {
|
|
const result = [];
|
|
for (const value of values) {
|
|
const text = String(value ?? "").trim();
|
|
if (text && !result.includes(text)) {
|
|
result.push(text);
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
function skippedContract(input) {
|
|
const reasonCodes = uniqueStrings(input.turnInput.reason_codes);
|
|
pushReason(reasonCodes, input.reason);
|
|
pushReason(reasonCodes, "runtime_entry_point_not_wired_to_hot_assistant_answer");
|
|
return {
|
|
schema_version: exports.ASSISTANT_MCP_DISCOVERY_RUNTIME_ENTRY_POINT_SCHEMA_VERSION,
|
|
policy_owner: "assistantMcpDiscoveryRuntimeEntryPoint",
|
|
entry_status: input.status,
|
|
hot_runtime_wired: false,
|
|
discovery_attempted: false,
|
|
turn_input: input.turnInput,
|
|
bridge: null,
|
|
reason_codes: reasonCodes
|
|
};
|
|
}
|
|
async function runAssistantMcpDiscoveryRuntimeEntryPoint(input) {
|
|
const turnInput = (0, assistantMcpDiscoveryTurnInputAdapter_1.buildAssistantMcpDiscoveryTurnInput)(input);
|
|
if (!turnInput.should_run_discovery) {
|
|
return skippedContract({
|
|
status: "skipped_not_applicable",
|
|
turnInput,
|
|
reason: "runtime_entry_point_skipped_supported_exact_turn"
|
|
});
|
|
}
|
|
if (!turnInput.turn_meaning_ref) {
|
|
return skippedContract({
|
|
status: "skipped_needs_more_context",
|
|
turnInput,
|
|
reason: "runtime_entry_point_skipped_missing_discovery_turn_meaning"
|
|
});
|
|
}
|
|
const bridge = await (0, assistantMcpDiscoveryRuntimeBridge_1.runAssistantMcpDiscoveryRuntimeBridge)({
|
|
semanticDataNeed: turnInput.semantic_data_need,
|
|
dataNeedGraph: turnInput.data_need_graph,
|
|
metadataSurface: turnInput.metadata_surface_ref,
|
|
turnMeaning: turnInput.turn_meaning_ref,
|
|
deps: input.deps
|
|
});
|
|
const reasonCodes = uniqueStrings([...turnInput.reason_codes, ...bridge.reason_codes]);
|
|
pushReason(reasonCodes, "runtime_entry_point_bridge_executed");
|
|
pushReason(reasonCodes, "runtime_entry_point_not_wired_to_hot_assistant_answer");
|
|
return {
|
|
schema_version: exports.ASSISTANT_MCP_DISCOVERY_RUNTIME_ENTRY_POINT_SCHEMA_VERSION,
|
|
policy_owner: "assistantMcpDiscoveryRuntimeEntryPoint",
|
|
entry_status: "bridge_executed",
|
|
hot_runtime_wired: false,
|
|
discovery_attempted: true,
|
|
turn_input: turnInput,
|
|
bridge,
|
|
reason_codes: reasonCodes
|
|
};
|
|
}
|