personal memory agent
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add --stream flag to sol call journal search

Exposes the existing stream filter (already supported in schema, indexer,
query layer, tool layer, and web API) on the CLI surface. Stream value is
shown in result metadata when present.

Closes VPE request req_43est4h5.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

+13 -1
+13 -1
think/tools/call.py
··· 10 10 Mounted by ``think.call`` as ``sol call journal ...``. 11 11 """ 12 12 13 + import json 13 14 import sys 14 15 from pathlib import Path 15 16 ··· 30 31 from think.indexer.journal import get_events as get_events_impl 31 32 from think.indexer.journal import search_counts as search_counts_impl 32 33 from think.indexer.journal import search_journal as search_journal_impl 34 + from think.importers.utils import ( 35 + build_import_info, 36 + get_import_details, 37 + list_import_timestamps, 38 + ) 33 39 from think.utils import ( 34 40 get_journal, 35 41 iter_segments, ··· 58 64 ), 59 65 facet: str | None = typer.Option(None, "--facet", "-f", help="Filter by facet."), 60 66 agent: str | None = typer.Option(None, "--agent", "-a", help="Filter by agent."), 67 + stream: str | None = typer.Option( 68 + None, "--stream", help="Filter by stream (e.g. import.ics, archon)." 69 + ), 61 70 ) -> None: 62 71 """Search the journal index.""" 63 72 kwargs = {} ··· 71 80 kwargs["facet"] = facet 72 81 if agent is not None: 73 82 kwargs["agent"] = agent 83 + if stream is not None: 84 + kwargs["stream"] = stream 74 85 75 86 total, results = search_journal_impl(query, limit, offset, **kwargs) 76 87 ··· 97 108 # Results 98 109 for r in results: 99 110 meta = r["metadata"] 100 - typer.echo(f"\n--- {meta['day']} | {meta['facet']} | {meta['agent']} ---") 111 + stream_tag = f" | {meta['stream']}" if meta.get("stream") else "" 112 + typer.echo(f"\n--- {meta['day']} | {meta['facet']} | {meta['agent']}{stream_tag} ---") 101 113 typer.echo(r["text"].strip()) 102 114 103 115