- Add GET /conclusions/{id}/derived to walk the reasoning tree upward
(conclusions that list the given one in their source_ids), paginated,
wired to the previously-unused get_child_observations crud (now returns
a Select for pagination; the get_reasoning_chain agent tool updated to
execute the statement itself)
- Support source_ids in the filter DSL: JSONB containment (@>) instead of
invalid ILIKE SQL, with explicit JSONB binds for scalars; also fixes
'contains' on metadata/configuration JSONB columns
- Make id, level, source_ids, times_derived explicit entries in the
documents filter allowlist
- Python SDK: derived() and get_many() (batch fetch premises via the list
endpoint with an id-in filter), sync + async
- Tests for the new endpoint, filters, SDK methods, and previously
uncovered get_reasoning_chain tool handler
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>