diff --git a/pageindex/filesystem/commands.py b/pageindex/filesystem/commands.py index 6615da2..416acec 100644 --- a/pageindex/filesystem/commands.py +++ b/pageindex/filesystem/commands.py @@ -858,6 +858,19 @@ class PIFSCommandExecutor: lines.append(f" {key}: {self._compact_value(value)}") if len(metadata) > self.MAX_STAT_METADATA_FIELDS: lines.append(f" ... {len(metadata) - self.MAX_STAT_METADATA_FIELDS} more fields") + derived_metadata = data.get("derived_metadata") or {} + if derived_metadata: + lines.append("generated_metadata:") + derived_items = sorted(derived_metadata.items())[: self.MAX_STAT_METADATA_FIELDS] + for key, value in derived_items: + lines.append(f" {key}: {self._compact_value(value)}") + if len(derived_metadata) > self.MAX_STAT_METADATA_FIELDS: + lines.append( + f" ... {len(derived_metadata) - self.MAX_STAT_METADATA_FIELDS} more fields" + ) + generation = data.get("metadata_generation") or {} + if generation: + lines.append(f"metadata_generation_status: {generation.get('status', '-')}") return "\n".join(lines) def _file_row_text(self, item: dict[str, Any]) -> str: diff --git a/tests/test_pifs_find_maxdepth.py b/tests/test_pifs_find_maxdepth.py index 8a7fe50..304964f 100644 --- a/tests/test_pifs_find_maxdepth.py +++ b/tests/test_pifs_find_maxdepth.py @@ -98,6 +98,41 @@ def test_stable_path_targets_work_without_session_refs(tmp_path): assert "Root document fixture text" in text +def test_stat_shell_output_includes_generated_metadata(tmp_path): + from pageindex.filesystem import PIFSCommandExecutor, PageIndexFileSystem + + source = tmp_path / "source.txt" + source.write_text("fixture text", encoding="utf-8") + filesystem = PageIndexFileSystem(workspace=tmp_path / "workspace") + filesystem.register_file( + storage_uri=source.as_uri(), + source_path="docs/source.txt", + folder_path="/documents", + external_id="doc_generated", + title="Generated metadata document", + content=source.read_text(encoding="utf-8"), + metadata={"department": "ops"}, + derived_metadata={"summary": "Generated summary for retrieval."}, + metadata_generation_policy={ + "fields": { + "summary": True, + "doc_type": False, + "domain": False, + "topic": False, + } + }, + ) + executor = PIFSCommandExecutor(filesystem, json_output=False) + + stat = executor.execute("stat /documents/'Generated metadata document'") + + assert "metadata:" in stat + assert " department: ops" in stat + assert "generated_metadata:" in stat + assert " summary: Generated summary for retrieval." in stat + assert "metadata_generation_status: generated" in stat + + def test_find_maxdepth_zero_type_directory_returns_start_folder(tmp_path): executor = _register_find_fixture(tmp_path)