classifyre-cli 0.4.136__tar.gz → 0.4.138__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (346) hide show
  1. classifyre_cli-0.4.138/.turbo/turbo-build.log +3 -0
  2. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/PKG-INFO +5 -8
  3. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/README.md +4 -7
  4. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/package.json +1 -1
  5. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/pyproject.toml +3 -3
  6. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/augmentation/session.py +1 -1
  7. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/models/generated_input.py +6 -6
  8. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/notebook/files.py +1 -1
  9. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/notebook/sdk.py +6 -6
  10. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/outputs/rest.py +1 -1
  11. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/pipeline/worker_pool.py +2 -2
  12. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/custom/source.py +1 -1
  13. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/git/source.py +2 -2
  14. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/local_folder/source.py +1 -1
  15. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/utils/legacy_office.py +5 -5
  16. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/utils/resources.py +1 -1
  17. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/utils/torch_runtime.py +2 -2
  18. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/uv.lock +449 -383
  19. classifyre_cli-0.4.136/.turbo/turbo-build.log +0 -3
  20. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/.gitignore +0 -0
  21. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/.python-version +0 -0
  22. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/main.py +0 -0
  23. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/scripts/generate_models.py +0 -0
  24. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/scripts/generate_runtime_packages.py +0 -0
  25. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/scripts/generate_sdk_completions.py +0 -0
  26. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/__init__.py +0 -0
  27. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/augmentation/__init__.py +0 -0
  28. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/augmentation/contract.py +0 -0
  29. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/augmentation/preview.py +0 -0
  30. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/augmentation/runner.py +0 -0
  31. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/augmentation/sdk.py +0 -0
  32. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/config.py +0 -0
  33. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/__init__.py +0 -0
  34. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/base.py +0 -0
  35. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/broken_links/__init__.py +0 -0
  36. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/broken_links/detector.py +0 -0
  37. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/config.py +0 -0
  38. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/content/__init__.py +0 -0
  39. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/custom/__init__.py +0 -0
  40. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/custom/detector.py +0 -0
  41. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/custom/extractor.py +0 -0
  42. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/custom/runners/__init__.py +0 -0
  43. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/custom/runners/_base.py +0 -0
  44. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/custom/runners/_factory.py +0 -0
  45. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/custom/runners/_gliner2.py +0 -0
  46. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/custom/runners/_image_classification.py +0 -0
  47. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/custom/runners/_llm.py +0 -0
  48. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/custom/runners/_object_detection.py +0 -0
  49. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/custom/runners/_regex.py +0 -0
  50. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/custom/runners/_tag.py +0 -0
  51. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/custom/runners/_text_classification.py +0 -0
  52. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/custom/trainer.py +0 -0
  53. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/dependencies.py +0 -0
  54. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/engine_version.py +0 -0
  55. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/pii/__init__.py +0 -0
  56. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/pii/detector.py +0 -0
  57. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/secrets/__init__.py +0 -0
  58. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/secrets/detector.py +0 -0
  59. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/threat/__init__.py +0 -0
  60. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/threat/code_security_detector.py +0 -0
  61. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/detectors/threat/yara_detector.py +0 -0
  62. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/file_evaluation/__init__.py +0 -0
  63. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/file_evaluation/runner.py +0 -0
  64. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/graph/__init__.py +0 -0
  65. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/graph/edges.py +0 -0
  66. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/main.py +0 -0
  67. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/models/generated_detectors.py +0 -0
  68. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/models/generated_single_asset_scan_results.py +0 -0
  69. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/notebook/__init__.py +0 -0
  70. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/notebook/child.py +0 -0
  71. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/notebook/cli.py +0 -0
  72. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/notebook/contract.py +0 -0
  73. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/notebook/execute.py +0 -0
  74. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/notebook/groups.py +0 -0
  75. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/notebook/outputs.py +0 -0
  76. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/notebook/packages.py +0 -0
  77. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/notebook/protocol.py +0 -0
  78. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/notebook/redact.py +0 -0
  79. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/notebook/scaffold.py +0 -0
  80. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/notebook/serialize.py +0 -0
  81. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/outputs/__init__.py +0 -0
  82. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/outputs/base.py +0 -0
  83. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/outputs/console.py +0 -0
  84. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/outputs/factory.py +0 -0
  85. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/outputs/file.py +0 -0
  86. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/pipeline/__init__.py +0 -0
  87. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/pipeline/content_provider.py +0 -0
  88. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/pipeline/detector_pipeline.py +0 -0
  89. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/pipeline/parsed_content_provider.py +0 -0
  90. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/pipeline/payload_window.py +0 -0
  91. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/pipeline/scan_cache.py +0 -0
  92. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/pipeline/text_artifact.py +0 -0
  93. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/__init__.py +0 -0
  94. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/asset_metadata.py +0 -0
  95. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/atlassian_common.py +0 -0
  96. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/azure_blob_storage/__init__.py +0 -0
  97. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/azure_blob_storage/source.py +0 -0
  98. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/base.py +0 -0
  99. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/confluence/__init__.py +0 -0
  100. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/confluence/source.py +0 -0
  101. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/custom/__init__.py +0 -0
  102. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/custom/env.py +0 -0
  103. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/custom/runner.py +0 -0
  104. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/databricks/__init__.py +0 -0
  105. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/databricks/source.py +0 -0
  106. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/delta_lake/__init__.py +0 -0
  107. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/delta_lake/source.py +0 -0
  108. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/dependencies.py +0 -0
  109. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/dropbox/__init__.py +0 -0
  110. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/dropbox/auth.py +0 -0
  111. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/dropbox/source.py +0 -0
  112. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/elasticsearch/__init__.py +0 -0
  113. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/elasticsearch/source.py +0 -0
  114. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/email/__init__.py +0 -0
  115. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/email/source.py +0 -0
  116. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/git/__init__.py +0 -0
  117. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/google_cloud_storage/__init__.py +0 -0
  118. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/google_cloud_storage/source.py +0 -0
  119. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/google_workspace/__init__.py +0 -0
  120. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/google_workspace/source.py +0 -0
  121. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/hive/__init__.py +0 -0
  122. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/hive/source.py +0 -0
  123. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/hugging_face/__init__.py +0 -0
  124. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/hugging_face/source.py +0 -0
  125. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/iceberg/__init__.py +0 -0
  126. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/iceberg/source.py +0 -0
  127. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/jira/__init__.py +0 -0
  128. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/jira/source.py +0 -0
  129. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/kafka/__init__.py +0 -0
  130. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/kafka/rest.py +0 -0
  131. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/kafka/source.py +0 -0
  132. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/lakehouse_base.py +0 -0
  133. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/local_folder/__init__.py +0 -0
  134. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/meilisearch/__init__.py +0 -0
  135. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/meilisearch/source.py +0 -0
  136. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/microsoft_365/__init__.py +0 -0
  137. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/microsoft_365/source.py +0 -0
  138. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/mongodb/__init__.py +0 -0
  139. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/mongodb/source.py +0 -0
  140. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/mssql/__init__.py +0 -0
  141. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/mssql/source.py +0 -0
  142. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/mysql/__init__.py +0 -0
  143. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/mysql/source.py +0 -0
  144. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/neo4j/__init__.py +0 -0
  145. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/neo4j/source.py +0 -0
  146. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/notion/__init__.py +0 -0
  147. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/notion/client.py +0 -0
  148. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/notion/source.py +0 -0
  149. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/object_storage/base.py +0 -0
  150. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/opensearch/__init__.py +0 -0
  151. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/opensearch/source.py +0 -0
  152. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/oracle/__init__.py +0 -0
  153. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/oracle/source.py +0 -0
  154. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/postgresql/__init__.py +0 -0
  155. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/postgresql/source.py +0 -0
  156. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/powerbi/__init__.py +0 -0
  157. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/powerbi/source.py +0 -0
  158. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/recipe_normalizer.py +0 -0
  159. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/reddit/__init__.py +0 -0
  160. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/reddit/source.py +0 -0
  161. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/s3_client.py +0 -0
  162. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/s3_compatible_storage/README.md +0 -0
  163. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/s3_compatible_storage/__init__.py +0 -0
  164. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/s3_compatible_storage/source.py +0 -0
  165. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/sandbox/__init__.py +0 -0
  166. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/sandbox/source.py +0 -0
  167. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/search_engine_base.py +0 -0
  168. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/servicedesk/__init__.py +0 -0
  169. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/servicedesk/source.py +0 -0
  170. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/slack/__init__.py +0 -0
  171. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/slack/source.py +0 -0
  172. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/snowflake/__init__.py +0 -0
  173. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/snowflake/source.py +0 -0
  174. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/sqlite/__init__.py +0 -0
  175. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/sqlite/source.py +0 -0
  176. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/tableau/__init__.py +0 -0
  177. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/tableau/source.py +0 -0
  178. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/tabular_base.py +0 -0
  179. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/tabular_utils.py +0 -0
  180. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/wordpress/__init__.py +0 -0
  181. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/wordpress/source.py +0 -0
  182. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/youtube/__init__.py +0 -0
  183. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/sources/youtube/source.py +0 -0
  184. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/telemetry.py +0 -0
  185. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/utils/__init__.py +0 -0
  186. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/utils/archive_extraction.py +0 -0
  187. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/utils/content_extraction.py +0 -0
  188. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/utils/dependency_groups.py +0 -0
  189. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/utils/embedded_files.py +0 -0
  190. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/utils/external_video.py +0 -0
  191. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/utils/file_metadata.py +0 -0
  192. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/utils/file_parser.py +0 -0
  193. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/utils/file_to_images.py +0 -0
  194. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/utils/hashing.py +0 -0
  195. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/utils/payload.py +0 -0
  196. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/utils/range_reader.py +0 -0
  197. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/utils/source_files.py +0 -0
  198. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/utils/sql_lineage.py +0 -0
  199. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/utils/transcription.py +0 -0
  200. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/utils/urn.py +0 -0
  201. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/utils/uv_sync.py +0 -0
  202. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/utils/validation.py +0 -0
  203. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/src/utils/video_processing.py +0 -0
  204. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/__init__.py +0 -0
  205. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/_lakehouse_fakes.py +0 -0
  206. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/conftest.py +0 -0
  207. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/__init__.py +0 -0
  208. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/broken_links/test_broken_links_detector.py +0 -0
  209. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/conftest.py +0 -0
  210. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/content/__init__.py +0 -0
  211. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/custom/__init__.py +0 -0
  212. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/custom/conftest.py +0 -0
  213. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/custom/test_gliner2_classification.py +0 -0
  214. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/custom/test_invoice_extraction.py +0 -0
  215. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/custom/test_llm_runner.py +0 -0
  216. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/custom/test_pipeline_integration.py +0 -0
  217. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/custom/test_regex_runner.py +0 -0
  218. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/custom/test_runner_hardening.py +0 -0
  219. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/custom/test_transformer_runners.py +0 -0
  220. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/pii/__init__.py +0 -0
  221. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/pii/conftest.py +0 -0
  222. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/pii/sample_invoice.pdf +0 -0
  223. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/pii/test_pii_chunking.py +0 -0
  224. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/pii/test_pii_detector.py +0 -0
  225. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/pii/test_pii_detector_extended.py +0 -0
  226. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/pii/test_pii_regional_entities.py +0 -0
  227. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/pii/test_pii_severity.py +0 -0
  228. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/secrets/__init__.py +0 -0
  229. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/secrets/test_secrets_detector.py +0 -0
  230. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/secrets/test_secrets_detector_extended.py +0 -0
  231. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/test_base_detector.py +0 -0
  232. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/test_custom_detector_examples_runtime.py +0 -0
  233. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/test_detector_catalog_commercial.py +0 -0
  234. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/test_detector_pipeline_types.py +0 -0
  235. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/test_detector_schema_examples.py +0 -0
  236. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/test_detector_types.py +0 -0
  237. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/test_phase2_detectors.py +0 -0
  238. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/test_registry.py +0 -0
  239. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/test_tag_runner.py +0 -0
  240. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/threat/__init__.py +0 -0
  241. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/threat/test_code_security_detector.py +0 -0
  242. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/detectors/threat/test_yara_detector.py +0 -0
  243. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/integration/test_wordpress_broken_links_detector.py +0 -0
  244. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/integration/test_wordpress_links_assets.py +0 -0
  245. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/pipeline/test_detector_outcomes.py +0 -0
  246. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/pipeline/test_detector_pipeline.py +0 -0
  247. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/pipeline/test_worker_pool.py +0 -0
  248. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_arrow_ipc_payloads.py +0 -0
  249. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_assets_metadata_catalog.py +0 -0
  250. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_augmentation_contract.py +0 -0
  251. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_augmentation_edges.py +0 -0
  252. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_augmentation_patch.py +0 -0
  253. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_augmentation_scan_cache.py +0 -0
  254. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_augmentation_sdk.py +0 -0
  255. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_augmentation_session.py +0 -0
  256. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_augmentation_tags_end_to_end.py +0 -0
  257. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_azure_blob_storage_source.py +0 -0
  258. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_base_source_attachment.py +0 -0
  259. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_base_source_sampling.py +0 -0
  260. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_byte_valued_fields.py +0 -0
  261. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_config.py +0 -0
  262. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_confluence_source.py +0 -0
  263. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_custom_extractor.py +0 -0
  264. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_custom_source.py +0 -0
  265. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_custom_source_relationships.py +0 -0
  266. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_custom_source_tags_end_to_end.py +0 -0
  267. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_databricks_source.py +0 -0
  268. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_delta_lake_source.py +0 -0
  269. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_dependency_groups.py +0 -0
  270. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_detector_scope.py +0 -0
  271. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_dropbox_auth_command.py +0 -0
  272. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_dropbox_source.py +0 -0
  273. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_elasticsearch_source.py +0 -0
  274. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_email_source.py +0 -0
  275. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_file_evaluation_runner.py +0 -0
  276. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_git_source.py +0 -0
  277. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_google_cloud_storage_source.py +0 -0
  278. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_google_workspace_source.py +0 -0
  279. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_graph_edges.py +0 -0
  280. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_hashing.py +0 -0
  281. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_hive_source.py +0 -0
  282. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_hugging_face_source.py +0 -0
  283. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_iceberg_source.py +0 -0
  284. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_jira_source.py +0 -0
  285. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_kafka_source.py +0 -0
  286. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_lineage_loss_reporting.py +0 -0
  287. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_local_folder_source.py +0 -0
  288. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_main.py +0 -0
  289. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_meilisearch_source.py +0 -0
  290. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_microsoft_365_source.py +0 -0
  291. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_mongodb_source.py +0 -0
  292. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_mssql_source.py +0 -0
  293. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_mysql_source.py +0 -0
  294. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_neo4j_source.py +0 -0
  295. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_notebook_asset_tags.py +0 -0
  296. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_notebook_execute.py +0 -0
  297. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_notebook_files.py +0 -0
  298. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_notebook_groups.py +0 -0
  299. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_notebook_packages.py +0 -0
  300. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_notebook_serialize.py +0 -0
  301. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_notebook_templates.py +0 -0
  302. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_notion_source.py +0 -0
  303. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_object_storage_download_efficiency.py +0 -0
  304. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_opensearch_source.py +0 -0
  305. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_oracle_source.py +0 -0
  306. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_outputs.py +0 -0
  307. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_payload_window.py +0 -0
  308. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_payload_window_parquet.py +0 -0
  309. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_postgresql_source.py +0 -0
  310. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_powerbi_source.py +0 -0
  311. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_range_reading.py +0 -0
  312. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_recipe_normalizer.py +0 -0
  313. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_reddit_source.py +0 -0
  314. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_rest_backpressure.py +0 -0
  315. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_runtime_packages.py +0 -0
  316. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_s3_compatible_storage_source.py +0 -0
  317. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_sampling_automatic.py +0 -0
  318. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_sandbox_source.py +0 -0
  319. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_scan_cache.py +0 -0
  320. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_sdk_completions.py +0 -0
  321. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_servicedesk_source.py +0 -0
  322. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_slack_source.py +0 -0
  323. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_snowflake_source.py +0 -0
  324. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_source_dependency_groups.py +0 -0
  325. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_source_strategy_conformance.py +0 -0
  326. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_sqlite_source.py +0 -0
  327. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_tableau_source.py +0 -0
  328. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_tabular_automatic_sampling.py +0 -0
  329. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_tabular_lineage.py +0 -0
  330. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_tabular_utils.py +0 -0
  331. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_torch_runtime.py +0 -0
  332. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_urn.py +0 -0
  333. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_uv_sync.py +0 -0
  334. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_wordpress_source.py +0 -0
  335. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_youtube_source.py +0 -0
  336. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/test_youtube_source_integration.py +0 -0
  337. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/utils/test_archive_extraction.py +0 -0
  338. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/utils/test_content_extraction.py +0 -0
  339. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/utils/test_embedded_files.py +0 -0
  340. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/utils/test_file_metadata.py +0 -0
  341. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/utils/test_file_parser.py +0 -0
  342. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/utils/test_file_to_images.py +0 -0
  343. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/utils/test_legacy_office.py +0 -0
  344. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/utils/test_payload.py +0 -0
  345. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/utils/test_transcription.py +0 -0
  346. {classifyre_cli-0.4.136 → classifyre_cli-0.4.138}/tests/utils/test_video_processing.py +0 -0
@@ -0,0 +1,3 @@
1
+ $ uv sync
2
+ Resolved 322 packages in 301ms
3
+ Checked 51 packages in 1ms
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: classifyre-cli
3
- Version: 0.4.136
3
+ Version: 0.4.138
4
4
  Summary: Classifyre CLI — scan and classify unstructured data sources
5
5
  License: MIT
6
6
  Keywords: data,ingestion,metadata,pii,secrets,unstructured
@@ -43,14 +43,11 @@ docx|xlsx|pptx` and feeds the result through the normal OOXML extractors. Withou
43
43
  it those files scan as *"no content available"* — a silent coverage gap, not an
44
44
  error.
45
45
 
46
- - **Kubernetes**: installed in the CLI image (`libreoffice-*-nogui`), so this
47
- works out of the box.
48
- - **Desktop and local dev**: install it yourself — `brew install --cask libreoffice`
46
+ - **Kubernetes and the all-in-one Docker image**: installed in the image
47
+ (`libreoffice-*-nogui`), so this works out of the box.
48
+ - **Local dev**: install it yourself — `brew install --cask libreoffice`
49
49
  (macOS), `apt install libreoffice-writer libreoffice-calc libreoffice-impress`
50
- (Debian/Ubuntu), or libreoffice.org on Windows. The desktop app deliberately
51
- does not bundle LibreOffice: it is ~550 MB even stripped, and slimming the
52
- upstream bundle breaks its code signature, which Apple Silicon punishes by
53
- killing the process on launch.
50
+ (Debian/Ubuntu), or libreoffice.org on Windows.
54
51
  - **Non-standard install**: set `CLASSIFYRE_SOFFICE_PATH` to the binary. The CLI
55
52
  checks that first, then `PATH`, then the standard macOS, Windows, and
56
53
  Linux-tarball install locations.
@@ -26,14 +26,11 @@ docx|xlsx|pptx` and feeds the result through the normal OOXML extractors. Withou
26
26
  it those files scan as *"no content available"* — a silent coverage gap, not an
27
27
  error.
28
28
 
29
- - **Kubernetes**: installed in the CLI image (`libreoffice-*-nogui`), so this
30
- works out of the box.
31
- - **Desktop and local dev**: install it yourself — `brew install --cask libreoffice`
29
+ - **Kubernetes and the all-in-one Docker image**: installed in the image
30
+ (`libreoffice-*-nogui`), so this works out of the box.
31
+ - **Local dev**: install it yourself — `brew install --cask libreoffice`
32
32
  (macOS), `apt install libreoffice-writer libreoffice-calc libreoffice-impress`
33
- (Debian/Ubuntu), or libreoffice.org on Windows. The desktop app deliberately
34
- does not bundle LibreOffice: it is ~550 MB even stripped, and slimming the
35
- upstream bundle breaks its code signature, which Apple Silicon punishes by
36
- killing the process on launch.
33
+ (Debian/Ubuntu), or libreoffice.org on Windows.
37
34
  - **Non-standard install**: set `CLASSIFYRE_SOFFICE_PATH` to the binary. The CLI
38
35
  checks that first, then `PATH`, then the standard macOS, Windows, and
39
36
  Linux-tarball install locations.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@classifyre/cli",
3
- "version": "0.4.136",
3
+ "version": "0.4.138",
4
4
  "private": true,
5
5
  "scripts": {
6
6
  "build": "uv sync",
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "classifyre-cli"
3
- version = "0.4.136"
3
+ version = "0.4.138"
4
4
  description = "Classifyre CLI — scan and classify unstructured data sources"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -474,10 +474,10 @@ package = true
474
474
  # distribution declared by our video and OCR groups. Installing both would
475
475
  # overwrite the same cv2 namespace and add GUI libraries to CPU-only containers.
476
476
  exclude-dependencies = ["opencv-python"]
477
- # Every platform we ship (desktop bundles + CI) must resolve to versions with
477
+ # Every platform we ship must resolve to versions with
478
478
  # usable wheels. Without this, uv happily locks versions that are missing a
479
479
  # platform — e.g. deltalake 1.6.1 published no win_amd64 wheel, which broke the
480
- # Windows desktop venv bake ("can't be installed because it doesn't have a
480
+ # Windows venv bake ("can't be installed because it doesn't have a
481
481
  # source distribution or wheel for the current platform").
482
482
  required-environments = [
483
483
  "sys_platform == 'win32' and platform_machine == 'AMD64'",
@@ -223,7 +223,7 @@ class AugmentationSession:
223
223
  if not path.is_dir():
224
224
  raise ChildProcessError(
225
225
  f"Local folder {entry.get('name')!r} points at {path}, which is not "
226
- "a directory. Local folders are only available in the desktop application."
226
+ "a directory. The folder must be mounted where the scan runs."
227
227
  )
228
228
 
229
229
  async def _slot(self, index: int) -> _ChildSlot:
@@ -1031,7 +1031,7 @@ class LocalFolderRequired(BaseModel):
1031
1031
  )
1032
1032
  path: str = Field(
1033
1033
  ...,
1034
- description="Absolute path of the folder to scan, as seen by the machine that runs the scan. On desktop that is this computer (for example /Users/jane/Documents). In Kubernetes it is the scan pod, so the folder must be mounted into CLI jobs first via the chart's `api.localFolders` — then use the `mountPath` you gave it there (for example /mnt/corpora/invoices).",
1034
+ description="Absolute path of the folder to scan, as seen by the machine that runs the scan — not as your browser sees it. With the all-in-one Docker image, bind-mount the directory and use the container-side path (`-v ~/invoices:/data/invoices:ro` /data/invoices). In Kubernetes the scan runs in a pod, so the folder must be mounted into CLI jobs first via the chart's `api.localFolders` — then use the `mountPath` you gave it there (for example /mnt/corpora/invoices).",
1035
1035
  )
1036
1036
 
1037
1037
 
@@ -1063,7 +1063,7 @@ class SandboxOptional(BaseModel):
1063
1063
 
1064
1064
  class LocalFolderMasked(BaseModel):
1065
1065
  """
1066
- A folder scan reads the filesystem it runs on with that process's own permissions — the desktop app's, or the CLI job pod's. No credentials are required.
1066
+ A folder scan reads the filesystem it runs on with that process's own permissions — the container's, or the CLI job pod's. No credentials are required.
1067
1067
  """
1068
1068
 
1069
1069
  model_config = ConfigDict(
@@ -4654,7 +4654,7 @@ class NotebookPackage(BaseModel):
4654
4654
 
4655
4655
  class NotebookLocalFolder(BaseModel):
4656
4656
  """
4657
- A folder the notebook can read on the machine that runs the scan: this computer on desktop, or a path mounted into CLI jobs by the chart's `api.localFolders` in Kubernetes.
4657
+ A folder the notebook can read on the machine that runs the scan: a bind-mounted path in the all-in-one Docker image, or one mounted into CLI jobs by the chart's `api.localFolders` in Kubernetes.
4658
4658
  """
4659
4659
 
4660
4660
  model_config = ConfigDict(
@@ -4667,7 +4667,7 @@ class NotebookLocalFolder(BaseModel):
4667
4667
  )
4668
4668
  path: str = Field(
4669
4669
  ...,
4670
- description='Absolute path to the folder, as seen by the machine that runs the scan — for example /Users/me/dumps on desktop, or /mnt/corpora/dumps for a folder mounted by the chart.',
4670
+ description='Absolute path to the folder, as seen by the machine that runs the scan — for example /data/dumps for a directory bind-mounted into the container, or /mnt/corpora/dumps for a folder mounted by the chart.',
4671
4671
  max_length=4096,
4672
4672
  min_length=1,
4673
4673
  )
@@ -4777,7 +4777,7 @@ class AugmentationConfig(BaseModel):
4777
4777
  )
4778
4778
  local_folders: list[NotebookLocalFolder] | None = Field(
4779
4779
  [],
4780
- description='Desktop only. Folders on this machine the notebook reads with ctx.folder("name"). Not available in Kubernetes deployments, where files are uploaded to the source instead.',
4780
+ description='Folders the notebook reads with ctx.folder("name"). Not available in Kubernetes deployments, where files are uploaded to the source instead.',
4781
4781
  max_length=10,
4782
4782
  validate_default=True,
4783
4783
  )
@@ -5709,7 +5709,7 @@ class CustomOptional(BaseModel):
5709
5709
  )
5710
5710
  local_folders: list[NotebookLocalFolder] | None = Field(
5711
5711
  [],
5712
- description='Desktop only. Folders on this machine the notebook reads with ctx.folder("name"). Not available in Kubernetes deployments, where files are uploaded to the source instead. This is a convenience, not a sandbox: the notebook process runs as you and can open any path you can.',
5712
+ description='Folders the notebook reads with ctx.folder("name"). Not available in Kubernetes deployments, where files are uploaded to the source instead. This is a convenience, not a sandbox: the notebook process runs as you and can open any path you can.',
5713
5713
  max_length=10,
5714
5714
  validate_default=True,
5715
5715
  )
@@ -59,7 +59,7 @@ class ParsedContent:
59
59
 
60
60
 
61
61
  def local_folders(recipe: dict[str, Any]) -> dict[str, str]:
62
- """The desktop-only folders a source declared, as ``{name: path}``.
62
+ """The folders a source declared, as ``{name: path}``.
63
63
 
64
64
  Read straight from the recipe rather than handed over separately: unlike an
65
65
  uploaded file there is nothing to fetch, only a path the notebook may open.
@@ -16,8 +16,8 @@ the only place the distinction can come from.
16
16
  .eml or a Parquet file is not connector logic, every other source in the system
17
17
  already delegates it to the same parser, and a notebook that had to reimplement
18
18
  it would get it wrong. It arrives with the files it operates on: ``ctx.files``
19
- for what was uploaded to the source, ``ctx.folder(...)`` for a folder on a
20
- desktop machine.
19
+ for what was uploaded to the source, ``ctx.folder(...)`` for a folder mounted
20
+ into the machine that runs the scan.
21
21
  """
22
22
 
23
23
  from __future__ import annotations
@@ -331,10 +331,10 @@ class Context:
331
331
  def folders(self) -> dict[str, Path]:
332
332
  """Folders this source was configured with, by name.
333
333
 
334
- The paths are resolved on whatever machine runs the scan: this computer
335
- on desktop, an ephemeral CLI job pod in Kubernetes. In a cluster the
336
- folder has to be mounted into those pods first (the chart's
337
- ``api.localFolders``); an unmounted path simply will not exist.
334
+ The paths are resolved on whatever machine runs the scan: inside the
335
+ all-in-one container, or an ephemeral CLI job pod in Kubernetes. Either
336
+ way the folder has to be mounted there first (a bind mount, or the
337
+ chart's ``api.localFolders``); an unmounted path simply will not exist.
338
338
  """
339
339
  return dict(self._folders)
340
340
 
@@ -20,7 +20,7 @@ logger = logging.getLogger(__name__)
20
20
  # The API has no user authentication, so the ingest endpoints are restricted to
21
21
  # callers holding this shared secret; the API injects it into every CLI job's
22
22
  # environment (Kubernetes job env, or inherited from the parent process on
23
- # desktop). Absent locally, where the API leaves the restriction disabled.
23
+ # all-in-one image). Absent locally, where the API leaves the restriction disabled.
24
24
  INTERNAL_KEY_HEADER = "X-Classifyre-Internal-Key"
25
25
 
26
26
 
@@ -45,7 +45,7 @@ def _init_worker_threads(threads_per_worker: int) -> None:
45
45
  threads = max(1, threads_per_worker)
46
46
  for var in ("OMP_NUM_THREADS", "MKL_NUM_THREADS", "OPENBLAS_NUM_THREADS"):
47
47
  os.environ.setdefault(var, str(threads))
48
- # Detector work is background work: on a shared host (desktop) the pool
48
+ # Detector work is background work: on a shared host the pool
49
49
  # must yield to the UI, so deprioritize workers where the OS allows it.
50
50
  if hasattr(os, "nice"):
51
51
  try:
@@ -235,7 +235,7 @@ class DetectorWorkerPool:
235
235
 
236
236
  ctx = multiprocessing.get_context(mp_start_method)
237
237
  # CLASSIFYRE_WORKER_THREADS caps BLAS/torch threads per worker; the
238
- # desktop app sets it so workers*threads stays below the core count
238
+ # the all-in-one image sets it so workers*threads stays below the core count
239
239
  # instead of saturating the machine. Unset (K8s/dev) keeps the
240
240
  # divide-the-cores behavior.
241
241
  threads_env = os.environ.get("CLASSIFYRE_WORKER_THREADS", "")
@@ -233,7 +233,7 @@ class CustomSource(BaseSource):
233
233
  if not path.is_dir():
234
234
  raise CustomSourceError(
235
235
  f"Local folder {folder.name!r} points at {path}, which is not a directory. "
236
- "Local folders are only available in the desktop application."
236
+ "The folder must be mounted where the scan runs."
237
237
  )
238
238
 
239
239
  def _materialize_uploaded_files(self) -> Path | None:
@@ -10,7 +10,7 @@ Two properties drive the design:
10
10
  directory with its own ``HOME`` and its own git configuration, and deletes all of
11
11
  it when the run ends — normally, on abort, and on failure. There is no clone
12
12
  cache and no credential cache, so one job can never see another job's objects or
13
- another job's secrets. In Kubernetes the pod dies anyway; on the desktop, where
13
+ another job's secrets. In Kubernetes the pod dies anyway; in a long-lived container, where
14
14
  the process is long-lived and scans many sources, that guarantee has to be made
15
15
  by this module.
16
16
 
@@ -573,7 +573,7 @@ class GitSource(ObjectStorageSourceBase):
573
573
  def _git_binary() -> str:
574
574
  """The git executable to use.
575
575
 
576
- ``CLASSIFYRE_GIT_BINARY`` lets a packaged desktop build point at the git
576
+ ``CLASSIFYRE_GIT_BINARY`` lets a packaged build point at the git
577
577
  it ships rather than whatever the user happens to have installed — an
578
578
  operational concern, so it is an environment variable rather than a
579
579
  field on the source.
@@ -16,7 +16,7 @@ logger = logging.getLogger(__name__)
16
16
 
17
17
 
18
18
  class LocalFolderSource(ObjectStorageSourceBase):
19
- """Scans a folder on the local filesystem (desktop application deployments).
19
+ """Scans a folder on the filesystem the scan process runs on.
20
20
 
21
21
  Reuses the object-storage pipeline: each file becomes an ObjectRef whose key
22
22
  is the path relative to the scanned root, so sampling, MIME resolution, text
@@ -8,7 +8,7 @@ is fed back through the existing docx/xlsx/pptx extraction paths:
8
8
 
9
9
  The CLI container image ships LibreOffice (the ``libreoffice-*-nogui`` Debian
10
10
  packages, which install ``/usr/bin/soffice``), so conversion works out of the box
11
- under Kubernetes. The desktop app deliberately does NOT bundle it — ~550 MB even
11
+ under Kubernetes, and in the all-in-one Docker image. A packaged distribution may deliberately NOT bundle it — ~550 MB even
12
12
  stripped, and slimming the upstream bundle breaks its code signature — so there
13
13
  it is a system dependency the user installs.
14
14
 
@@ -55,7 +55,7 @@ LEGACY_OFFICE_MIME_TYPES = frozenset(_CONVERSION_TARGETS)
55
55
 
56
56
  _SOFFICE_TIMEOUT_SECONDS = 120
57
57
 
58
- # How to actually get LibreOffice, per platform. The desktop app does not bundle
58
+ # How to actually get LibreOffice, per platform. A distribution that does not bundle
59
59
  # it, so this message is the entire remediation path a user gets — a generic
60
60
  # "install LibreOffice" would leave them guessing which package to install.
61
61
  _INSTALL_HINTS: dict[str, str] = {
@@ -85,14 +85,14 @@ def soffice_missing_error() -> str:
85
85
  )
86
86
 
87
87
 
88
- # Explicit override, checked before anything else. The desktop app rebuilds a
88
+ # Explicit override, checked before anything else. A packaged distribution rebuilds a
89
89
  # minimal PATH for the processes it spawns, so an installation it discovered
90
90
  # itself is handed down through this variable rather than through PATH.
91
91
  SOFFICE_PATH_ENV = "CLASSIFYRE_SOFFICE_PATH"
92
92
 
93
93
  # Install locations to check when PATH comes up empty, keyed by sys.platform.
94
94
  # macOS and Windows always need these: their installers drop the binary inside an
95
- # app bundle / Program Files without touching PATH, and the packaged desktop app
95
+ # app bundle / Program Files without touching PATH, and a packaged distribution
96
96
  # rebuilds a minimal PATH that cannot see either. Linux only needs them for an
97
97
  # upstream tarball install — the distro packages (including the
98
98
  # libreoffice-*-nogui ones in the CLI image) all land on /usr/bin/soffice.
@@ -119,7 +119,7 @@ def find_soffice() -> str | None:
119
119
 
120
120
  Resolution order, most explicit first:
121
121
 
122
- 1. ``CLASSIFYRE_SOFFICE_PATH`` — an operator/desktop-supplied absolute path.
122
+ 1. ``CLASSIFYRE_SOFFICE_PATH`` — an operator-supplied absolute path.
123
123
  2. ``PATH`` — the CLI container, Linux hosts, and dev shells.
124
124
  3. Platform install locations — macOS/Windows only (see the table above).
125
125
 
@@ -63,7 +63,7 @@ def get_effective_memory_mb() -> int:
63
63
  pass
64
64
 
65
65
  # macOS (and other POSIX without /proc): total physical memory via sysconf.
66
- # Without this the desktop app fell through to the 4096 MB guess, which
66
+ # Without this a single-host install fell through to the 4096 MB guess, which
67
67
  # oversized the pool on small laptops and undersized it on big ones.
68
68
  try:
69
69
  pages = os.sysconf("SC_PHYS_PAGES")
@@ -5,9 +5,9 @@ generates C++ and shells out to a compiler *at scan time*. That is a poor fit
5
5
  for how this CLI is deployed, in two independent ways:
6
6
 
7
7
  1. It needs a working C++ toolchain on the machine running the scan. Neither
8
- the desktop bundle nor a slim container image promises one.
8
+ a packaged bundle nor a slim container image promises one.
9
9
  2. Inductor builds the compiler command line without quoting its paths, so any
10
- path containing a space breaks it. The desktop venv lives under
10
+ path containing a space breaks it. A venv living under
11
11
  ``~/Library/Application Support/…``, which produces exactly that:
12
12
 
13
13
  clang++: error: no such file or directory: