Files
SecondBrain/99 System/Tools/agent-tools/vault_index.py
T
Dmitry 22eda53d79 ada-pc: 2026-06-16 20:18:31 | 9
Affected files:
.obsidian/graph.json
99 System/INDEX.md
99 System/Tools/agent-tools/AGENT_TOOLS.md
99 System/Tools/agent-tools/vault_audit.py
99 System/Tools/agent-tools/vault_common.py
99 System/Tools/agent-tools/vault_frontmatter.py
99 System/Tools/agent-tools/vault_index.py
99 System/Tools/agent-tools/vault_ingest.py
AGENTS.md
2026-06-16 20:18:32 +03:00

36 lines
1.2 KiB
Python

#!/usr/bin/env python3
from __future__ import annotations
import argparse
from vault_common import all_records, compact_record, json_print, search_records, write_index
def main() -> int:
parser = argparse.ArgumentParser(description="Agent-facing vault index helper")
sub = parser.add_subparsers(dest="command", required=True)
query = sub.add_parser("query", help="Search notes by term")
query.add_argument("--term", required=True)
query.add_argument("--limit", type=int, default=10)
sub.add_parser("dump", help="Dump note records as JSON")
sub.add_parser("rebuild", help="Rebuild 99 System/INDEX.md")
args = parser.parse_args()
records = all_records()
if args.command == "query":
json_print({"ok": True, "results": search_records(records, args.term, args.limit)})
elif args.command == "dump":
json_print({"ok": True, "total": len(records), "notes": [compact_record(r) for r in records]})
elif args.command == "rebuild":
write_index(records)
json_print({"ok": True, "written": "99 System/INDEX.md", "total": len(records)})
return 0
if __name__ == "__main__":
raise SystemExit(main())