22eda53d79
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
36 lines
1.2 KiB
Python
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())
|