feat(vdb): wire `vdb index` and `vdb serve` to engine mains
Build-order step 4. Builds on !6 (merged) (resolver) and !7 (merged) (typer skeleton).
vdb index / vdb serve resolve the active vault and call the engine logic in-process (no subprocess):
- Both engine
main()now acceptmain(argv=None)—python3 vault-indexer.py …/ piping intovault-mcp-server.pykeep working unchanged. -
vault-indexergains--table-groupsto overrideENABLED_TABLE_GROUPSat runtime. A single installedvdbcannot carry per-vault constants, sovdb indexreadsenabled_groupsfrom the vault'svdb-config.yamland passes them through — installed multi-vault indexing stays correct. -
vdb serveresolves the DB path fromvault.db_pathor<vault>/vault-index.db. -
vdb/engines.pyloads the hyphenated engine files by path (still standalone-runnable) and puts repo root onsys.pathfor the mcp server's siblingimport vault_notify.
tests/test_vdb_engines.py covers index dry-run/full, the table-groups→config flow, and a serve JSON-RPC round-trip. Full suite green; standalone indexer + mcp smoke still pass.