MCPcopy Create free account
hub / github.com/CommonstackAI/UncommonRoute / _extract_session_v2_inputs

Function _extract_session_v2_inputs

uncommon_route/proxy.py:959–1018  ·  view source on GitHub ↗

Compute session_id_v2 inputs and shadow output for this request. Returns a dict suitable for **-splatting into RequestTrace(...).

(
    request: Request, body: dict
)

Source from the content-addressed store, hash-verified

957
958
959def _extract_session_v2_inputs(
960 request: Request, body: dict
961) -> dict[str, Any]:
962 """Compute session_id_v2 inputs and shadow output for this request.
963
964 Returns a dict suitable for **-splatting into RequestTrace(...).
965 """
966 messages = body.get("messages") or []
967 msg_hashes = normalize_messages_to_hashes(messages)
968 first_user_v2 = ""
969 for m in messages:
970 if isinstance(m, dict) and m.get("role") == "user":
971 first_user_v2 = hash16(normalize_message_text(m))
972 break
973 system_text = ""
974 sys_field = body.get("system")
975 if isinstance(sys_field, str):
976 system_text = sys_field
977 elif isinstance(sys_field, list):
978 system_text = " ".join(
979 (b.get("text") or "")
980 for b in sys_field
981 if isinstance(b, dict) and b.get("type") == "text"
982 )
983 else:
984 for m in messages:
985 if isinstance(m, dict) and m.get("role") == "system":
986 system_text = normalize_message_text(m)
987 break
988 system_h = hash16(system_text) if system_text else ""
989
990 metadata_uid = ""
991 md = body.get("metadata") or {}
992 if isinstance(md, dict):
993 metadata_uid = str(md.get("user_id", "") or "")
994
995 prev_response = str(body.get("previous_response_id", "") or "")
996 headers = {k.lower(): v for k, v in request.headers.items()}
997 user_agent = headers.get("user-agent", "")
998
999 sid_v2 = derive_session_id_v2(
1000 msg_hashes=msg_hashes,
1001 first_user_v2=first_user_v2,
1002 system_hash=system_h,
1003 metadata_uid=metadata_uid,
1004 prev_response=prev_response,
1005 registry=_SESSION_V2_REGISTRY,
1006 now=time.time(),
1007 )
1008
1009 return {
1010 "messages_count": len(messages),
1011 "msg_hashes": msg_hashes,
1012 "first_user_hash_v2": first_user_v2,
1013 "system_hash": system_h,
1014 "metadata_user_id": metadata_uid,
1015 "previous_response_id": prev_response,
1016 "user_agent": user_agent,

Calls 5

hash16Function · 0.90
normalize_message_textFunction · 0.90
derive_session_id_v2Function · 0.90
getMethod · 0.45