* feat: add compound tag filtering via tag_groups
Adds tag_groups to RecallRequest and ReflectRequest to express arbitrary
boolean tag predicates: leaf {tags, match}, and/or/not compounds.
Top-level groups are AND-ed. Existing tags/tags_match unchanged.
Examples:
Step filter AND user scope:
tag_groups: [{tags: ["step:5","step:8"], match: "any_strict"},
{tags: ["user:alice"], match: "all_strict"}]
Exclusion:
tag_groups: [{tags: ["user:alice"], match: "all_strict"},
{not: {tags: ["archived"], match: "any_strict"}}]
- Recursive SQL builder (build_tag_groups_where_clause) threads through
all 4 retrieval strategies (semantic/BM25, temporal, graph, MPFP)
- Python-side filter (filter_results_by_tag_groups) for post-traversal
- 22 new unit tests
- OpenAPI spec + all clients regenerated (Rust, Python, TypeScript, Go)
* fix: add tag_groups: None to Rust CLI struct initializers
* fix: add tag_groups: None to Rust client test RecallRequest initializer
* feat: reject tags+tag_groups together, add tag_groups integration tests
- Add model_validator to RecallRequest and ReflectRequest that returns 422
when both `tags` and `tag_groups` are set (mutually exclusive)
- Add 5 integration tests for tag_groups compound filtering:
* validation: 422 when both fields are set
* AND filter: two leaf groups (step scope AND user scope)
* OR compound: user:alice OR user:bob
* NOT compound: user:alice AND NOT archived
* Nested: user:alice AND (step:5 OR step:8)
* ci: trigger CI run
111 lines
5.3 KiB
Text
111 lines
5.3 KiB
Text
hindsight_client_api/__init__.py
|
|
hindsight_client_api/api/__init__.py
|
|
hindsight_client_api/api/banks_api.py
|
|
hindsight_client_api/api/directives_api.py
|
|
hindsight_client_api/api/documents_api.py
|
|
hindsight_client_api/api/entities_api.py
|
|
hindsight_client_api/api/files_api.py
|
|
hindsight_client_api/api/memory_api.py
|
|
hindsight_client_api/api/mental_models_api.py
|
|
hindsight_client_api/api/monitoring_api.py
|
|
hindsight_client_api/api/operations_api.py
|
|
hindsight_client_api/api/webhooks_api.py
|
|
hindsight_client_api/api_client.py
|
|
hindsight_client_api/api_response.py
|
|
hindsight_client_api/configuration.py
|
|
hindsight_client_api/exceptions.py
|
|
hindsight_client_api/models/__init__.py
|
|
hindsight_client_api/models/add_background_request.py
|
|
hindsight_client_api/models/async_operation_submit_response.py
|
|
hindsight_client_api/models/background_response.py
|
|
hindsight_client_api/models/bank_config_response.py
|
|
hindsight_client_api/models/bank_config_update.py
|
|
hindsight_client_api/models/bank_list_item.py
|
|
hindsight_client_api/models/bank_list_response.py
|
|
hindsight_client_api/models/bank_profile_response.py
|
|
hindsight_client_api/models/bank_stats_response.py
|
|
hindsight_client_api/models/budget.py
|
|
hindsight_client_api/models/cancel_operation_response.py
|
|
hindsight_client_api/models/child_operation_status.py
|
|
hindsight_client_api/models/chunk_data.py
|
|
hindsight_client_api/models/chunk_include_options.py
|
|
hindsight_client_api/models/chunk_response.py
|
|
hindsight_client_api/models/clear_memory_observations_response.py
|
|
hindsight_client_api/models/consolidation_response.py
|
|
hindsight_client_api/models/create_bank_request.py
|
|
hindsight_client_api/models/create_directive_request.py
|
|
hindsight_client_api/models/create_mental_model_request.py
|
|
hindsight_client_api/models/create_mental_model_response.py
|
|
hindsight_client_api/models/create_webhook_request.py
|
|
hindsight_client_api/models/delete_document_response.py
|
|
hindsight_client_api/models/delete_response.py
|
|
hindsight_client_api/models/directive_list_response.py
|
|
hindsight_client_api/models/directive_response.py
|
|
hindsight_client_api/models/disposition_traits.py
|
|
hindsight_client_api/models/document_response.py
|
|
hindsight_client_api/models/entity_detail_response.py
|
|
hindsight_client_api/models/entity_include_options.py
|
|
hindsight_client_api/models/entity_input.py
|
|
hindsight_client_api/models/entity_list_item.py
|
|
hindsight_client_api/models/entity_list_response.py
|
|
hindsight_client_api/models/entity_observation_response.py
|
|
hindsight_client_api/models/entity_state_response.py
|
|
hindsight_client_api/models/features_info.py
|
|
hindsight_client_api/models/file_retain_response.py
|
|
hindsight_client_api/models/graph_data_response.py
|
|
hindsight_client_api/models/http_validation_error.py
|
|
hindsight_client_api/models/include_options.py
|
|
hindsight_client_api/models/list_documents_response.py
|
|
hindsight_client_api/models/list_memory_units_response.py
|
|
hindsight_client_api/models/list_tags_response.py
|
|
hindsight_client_api/models/memory_item.py
|
|
hindsight_client_api/models/mental_model_list_response.py
|
|
hindsight_client_api/models/mental_model_response.py
|
|
hindsight_client_api/models/mental_model_trigger.py
|
|
hindsight_client_api/models/model_not.py
|
|
hindsight_client_api/models/observation_scopes.py
|
|
hindsight_client_api/models/operation_response.py
|
|
hindsight_client_api/models/operation_status_response.py
|
|
hindsight_client_api/models/operations_list_response.py
|
|
hindsight_client_api/models/recall_request.py
|
|
hindsight_client_api/models/recall_request_tag_groups_inner.py
|
|
hindsight_client_api/models/recall_response.py
|
|
hindsight_client_api/models/recall_result.py
|
|
hindsight_client_api/models/reflect_based_on.py
|
|
hindsight_client_api/models/reflect_directive.py
|
|
hindsight_client_api/models/reflect_fact.py
|
|
hindsight_client_api/models/reflect_include_options.py
|
|
hindsight_client_api/models/reflect_llm_call.py
|
|
hindsight_client_api/models/reflect_mental_model.py
|
|
hindsight_client_api/models/reflect_request.py
|
|
hindsight_client_api/models/reflect_response.py
|
|
hindsight_client_api/models/reflect_tool_call.py
|
|
hindsight_client_api/models/reflect_trace.py
|
|
hindsight_client_api/models/retain_request.py
|
|
hindsight_client_api/models/retain_response.py
|
|
hindsight_client_api/models/retry_operation_response.py
|
|
hindsight_client_api/models/source_facts_include_options.py
|
|
hindsight_client_api/models/tag_group_and.py
|
|
hindsight_client_api/models/tag_group_leaf.py
|
|
hindsight_client_api/models/tag_group_not.py
|
|
hindsight_client_api/models/tag_group_or.py
|
|
hindsight_client_api/models/tag_item.py
|
|
hindsight_client_api/models/timestamp.py
|
|
hindsight_client_api/models/token_usage.py
|
|
hindsight_client_api/models/tool_calls_include_options.py
|
|
hindsight_client_api/models/update_directive_request.py
|
|
hindsight_client_api/models/update_disposition_request.py
|
|
hindsight_client_api/models/update_document_request.py
|
|
hindsight_client_api/models/update_document_response.py
|
|
hindsight_client_api/models/update_mental_model_request.py
|
|
hindsight_client_api/models/update_webhook_request.py
|
|
hindsight_client_api/models/validation_error.py
|
|
hindsight_client_api/models/validation_error_loc_inner.py
|
|
hindsight_client_api/models/version_response.py
|
|
hindsight_client_api/models/webhook_delivery_list_response.py
|
|
hindsight_client_api/models/webhook_delivery_response.py
|
|
hindsight_client_api/models/webhook_http_config.py
|
|
hindsight_client_api/models/webhook_list_response.py
|
|
hindsight_client_api/models/webhook_response.py
|
|
hindsight_client_api/rest.py
|
|
hindsight_client_api_README.md
|