File size: 1,125 Bytes
4d5727a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
"""
src/memory/observe.py — Observation ingestion pipeline.

Public API:
  folder_observe(kv, payload)         — ingest a folder-scoped observation
  observe(kv, payload)                — legacy session-scoped observation
  build_synthetic_compression(raw)    — build compressed observation dict
  strip_private_data(text)            — redact secrets and private tags
"""

from __future__ import annotations

import os
import re
import json
import datetime
from typing import Any, Dict, List, Optional, Tuple

from db import StateKV
import functions as _fn  # access module-level globals (_bm25_index, etc.)


# Re-export for backward compatibility
strip_private_data = _fn.strip_private_data
build_synthetic_compression = _fn.build_synthetic_compression


def folder_observe(kv: StateKV, payload: Dict[str, Any]) -> Dict[str, Any]:
    """Ingest a new observation scoped to a (folder_path, agent_id) pair."""
    return _fn.folder_observe(kv, payload)


def observe(kv: StateKV, payload: Dict[str, Any]) -> Dict[str, Any]:
    """Legacy session-scoped observation ingestion."""
    return _fn.observe(kv, payload)