"""Quickstart example: save observations, query memory, inspect provenance.

Run:  python examples/quickstart.py
"""

import sys, os
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

from agentmemory import MemoryStore, Retrieval, Entry, ProvenanceLedger, Consolidator


def main() -> None:
    store = MemoryStore()
    ledger = ProvenanceLedger()

    # 1) Write observations (episodic memory).
    store.add(Entry(
        text="deployed v2.3 of the order service to production",
        source="release-notes/2026-03-01.md",
        tags=["deploy", "order"],
    ))
    store.add(Entry(
        text="order service latency spiked to 800ms after v2.3 rollout",
        source="incidents/2026-03-02.md",
        tags=["incident", "order"],
    ))

    # 2) Query.
    r = Retrieval()
    hits = r.search(store, "why is the order service slow", k=3)
    print("Top retrieval:")
    for s in hits:
        print(f"  {s.score:+.3f}  {s.entry.id}  {s.entry.text[:60]}")

    # 3) Consolidate duplicates.
    store.add(Entry(text="deployed v2.3 of the order service to production",
                    source="release-notes/2026-03-01.md", tags=["deploy", "order"]))
    cons = Consolidator()
    summaries = cons.consolidate(store, ledger)
    print(f"\n{len(summaries)} consolidated summary(ies):")
    for s in summaries:
        print(f"  {s.id}  {s.text[:70]}")


if __name__ == "__main__":
    main()