Files
the-nexus/nexus/mempalace/__pycache__/searcher.cpython-312.pyc

98 lines
7.1 KiB
Plaintext
Raw Normal View History

<EFBFBD>
<00> <0A>i<EFBFBD><00><01><00>dZddlmZddlmZmZddlmZddlm Z ddl
m Z m Z m Z Gd<07>de<0E>ZeGd <09>d
<EFBFBD><00>Zdd <0B>Zd d d d d<0E> dd<0F>Zd dd<11> dd<12>Zdd d dd d<15> dd<16>Zy )aRMemPalace search and write interface.
Wraps the ChromaDB-backed palace so that callers (Evennia commands,
harness agents, MCP tools) do not need to know the storage details.
ChromaDB is imported lazily; if it is not installed the functions
raise ``MemPalaceUnavailable`` with an informative message rather
than crashing at import time.
<EFBFBD>)<01> annotations)<02> dataclass<73>field)<01>Path)<01>Optional)<03>MEMPALACE_PATH<54>FLEET_PALACE_PATH<54>COLLECTION_NAMEc<01><00>eZdZdZy)<03>MemPalaceUnavailablez?Raised when ChromaDB or the palace directory is not accessible.N)<04>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__<5F><00><00>d/Users/apayne/worktrees/claude-1075-18DB1F76-AABB-437D-A3B9-F29C3EA99D0B/nexus/mempalace/searcher.pyr r s<00><00>Irr c<01>r<00>eZdZUdZded<ded<ded<dZded<d Zded
<ee<08> <0B>Z d ed <ddd<0E>Z
y)<12>MemPalaceResultz-A single memory hit returned by the searcher.<2E>str<74>text<78>room<6F>wing<6E><00>float<61>score<72><00> source_file)<01>default_factory<72>dict<63>metadatac<01><><00>t|j<00>|kr |jS|jd|j<00>dzS)z3Return a truncated preview suitable for MUD output.Nu…)<03>lenr<00>rstrip)<02>self<6C> max_charss r<00>shortzMemPalaceResult.short's;<00><00> <0E>t<EFBFBD>y<EFBFBD>y<EFBFBD>><3E>Y<EFBFBD> &<26><17>9<EFBFBD>9<EFBFBD> <1C><13>y<EFBFBD>y<EFBFBD><1A>)<29>$<24>+<2B>+<2B>-<2D><05>5<>5rN)<01><>)r&<00>int<6E>returnr) r rrr<00>__annotations__rrrr r!r'rrrrrs<<00><00>7<>
<0A>I<EFBFBD>
<0A>I<EFBFBD>
<0A>I<EFBFBD><16>E<EFBFBD>5<EFBFBD><16><19>K<EFBFBD><13><19><1A>4<EFBFBD>0<>H<EFBFBD>d<EFBFBD>0<>6rrc<01><><00> ddl}|j<00>std|<00>d<05><03><00>|j t |<00><00><06>S#t$r}td<03>|<02>d}~wwxYw)zCReturn a ChromaDB persistent client, or raise MemPalaceUnavailable.rNzQChromaDB is not installed. Run: pip install chromadb (or: pip install mempalace)zPalace directory not found: z/
Run 'mempalace mine' to initialise the palace.)<01>path)<06>chromadb<64> ImportErrorr <00>exists<74>PersistentClientr)<03> palace_pathr.<00>excs r<00> _get_clientr4.s{<00><00><13><17> <17> <1D> <1D> <1F>"<22>*<2A>;<3B>-<2D>8=<3D> =<3D>
<EFBFBD>
<EFBFBD>
<14> $<24> $<24>#<23>k<EFBFBD>*:<3A> $<24> ;<3B>;<3B><> <17><13>"<22> E<01>
<EFBFBD><13> <13><><13>s<00>A<00> A<03> A<03>AN<>)r2rr<00> n_resultsc <01>v<00>|xst}t|<05>}|jt<00>}i}|r||d<|r||d<|g|d<03>} |r|| d<|jdi| <09><01>}
g} |
r|
j d<05>s| S|
dd} |
j dgg<01>dxsigt | <0C>z} |
j dgg<01>dxsd gt | <0C>z}t| | |<0E>D]b\}}}| jt||j dd
<EFBFBD>|j dd <0B>td |z
<00>|j d d <0B>|<10><0E><00><00>d| S)a"Search the palace for memories matching *query*.
Args:
query: Natural-language search string.
palace_path: Override the default palace path.
wing: Filter results to a specific wizard's wing.
room: Filter results to a specific room (e.g. ``"forge"``).
n_results: Maximum number of results to return.
Returns:
List of :class:`MemPalaceResult`, best-match first.
Raises:
MemPalaceUnavailable: If ChromaDB is not installed or the palace
directory does not exist.
rr)<02> query_textsr6<00>where<72> documentsr<00> metadatas<61> distancesr<00>generalrg<00>?r)rrrrrr!r) rr4<00>get_or_create_collectionr
<00>query<72>getr#<00>zip<69>appendrr)r?r2rrr6r-<00>client<6E>
collectionr9<00>kwargs<67>raw<61>results<74>docs<63>metasr<<00>doc<6F>meta<74>dists r<00>search_memoriesrMAs\<00><00>0 <17> (<28>.<2E>D<EFBFBD> <18><14> <1E>F<EFBFBD><17>0<>0<><1F>A<>J<EFBFBD><14>E<EFBFBD> <0B><1C><05>f<EFBFBD> <0A> <0B><1C><05>f<EFBFBD> <0A>$)<29>7<EFBFBD><19>C<>F<EFBFBD> <0C><1F><06>w<EFBFBD><0F>
<1A>*<2A>
<1A>
<1A>
$<24>V<EFBFBD>
$<24>C<EFBFBD>%'<27>G<EFBFBD> <0E>c<EFBFBD>g<EFBFBD>g<EFBFBD>k<EFBFBD>*<2A><16><0E> <0E>{<7B> <1B>A<EFBFBD> <1E>D<EFBFBD> <0F>G<EFBFBD>G<EFBFBD>K<EFBFBD>"<22><14> &<26>q<EFBFBD> )<29> =<3D>b<EFBFBD>T<EFBFBD>C<EFBFBD><04>I<EFBFBD>-=<3D>E<EFBFBD><13><07><07> <0B>b<EFBFBD>T<EFBFBD>*<2A>1<EFBFBD>-<2D>B<>#<23><15><13>T<EFBFBD><19>1B<31>I<EFBFBD><1E>t<EFBFBD>U<EFBFBD>I<EFBFBD>6<>

<EFBFBD><0F><03>T<EFBFBD>4<EFBFBD><0F><0E><0E> <1B><18><19>X<EFBFBD>X<EFBFBD>f<EFBFBD>i<EFBFBD>0<><19>X<EFBFBD>X<EFBFBD>f<EFBFBD>b<EFBFBD>)<29><1B>C<EFBFBD>$<24>J<EFBFBD>'<27> <20>H<EFBFBD>H<EFBFBD>]<5D>B<EFBFBD>7<><1D>  <0E>
<EFBFBD>

<EFBFBD> <13>Nr<00>
)rr6c<01>(<00>t|t||<02><01>S)a Search the shared fleet palace (closets only, no raw drawers).
Args:
query: Natural-language search string.
room: Optional room filter (e.g. ``"issues"``).
n_results: Maximum results.
Returns:
List of :class:`MemPalaceResult` from all wings.
)r2rr6)rMr )r?rr6s r<00> search_fleetrP<00>s<00><00> <1B> <0A>%<25> <11><1B>  <06>rr=r)rrr2r<00>extra_metadatac<01><00>ddl}ddlm}|xst}t |<08>} | j t <00>}
t|j<00><00>} ||xs||d<04>} |r| j|<05>|
j|g| g| g<01><05>| S)a=Add a new memory drawer to the palace.
Args:
text: The memory text to store.
room: Target room (e.g. ``"hall_facts"``).
wing: Wing name; defaults to :data:`~nexus.mempalace.config.FLEET_WING`.
palace_path: Override the default palace path.
source_file: Optional source file attribution.
extra_metadata: Additional key/value metadata to store.
Returns:
The generated document ID.
Raises:
MemPalaceUnavailable: If ChromaDB is not installed or the palace
directory does not exist.
rN)<01>
FLEET_WING)rrr)r:r;<00>ids) <0B>uuid<69>nexus.mempalace.configrSrr4r>r
r<00>uuid4<64>update<74>add) rrrr2rrQrUrSr-rCrD<00>doc_idr!s r<00>
add_memoryr[<00>s<><00><00>4<10>1<> <16> (<28>.<2E>D<EFBFBD> <18><14> <1E>F<EFBFBD><17>0<>0<><1F>A<>J<EFBFBD> <10><14><1A><1A><1C> <1E>F<EFBFBD><14><14>"<22>
<EFBFBD>"<22><06>H<EFBFBD>
<16><10><0F><0F><0E>'<27><0E>N<EFBFBD>N<EFBFBD><17>&<26><1B>*<2A> <13>H<EFBFBD><13><06>
<12>Mr)r2r) r?rr2<00>Optional[Path]r<00> Optional[str]rr]r6r)r*<00>list[MemPalaceResult])r?rrr]r6r)r*r^)rrrrrr]r2r\rrrQzOptional[dict]r*r)r<00>
__future__r<00> dataclassesrr<00>pathlibr<00>typingrrVrr r
<00> RuntimeErrorr rr4rMrPr[rrr<00><module>rds)<00><01><04>#<23>(<28><18><1B><02><02>J<01><<3C>J<01> <0B>6<>6<> <0B>6<>"<<3C>,#'<27><1E><1E><16> =<13> <0E>=<13> <20>=<13> <18> =<13>
<18> =<13> <13> =<13><1B>=<13>F<1F><17> <06> <0E><06> <18><06><13> <06>
<1B> <06>6<1A><1E>"&<26><19>%)<29>/<12>
<0A>/<12> <0E>/<12> <18> /<12>
 <20> /<12> <15> /<12>#<23>/<12> <09>/r