atif-sql 0.3.0__tar.gz → 0.4.0__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 (192) hide show
  1. {atif_sql-0.3.0 → atif_sql-0.4.0}/PKG-INFO +4 -4
  2. {atif_sql-0.3.0 → atif_sql-0.4.0}/README.md +3 -3
  3. {atif_sql-0.3.0 → atif_sql-0.4.0}/docs/README.md +10 -8
  4. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/README.md +5 -4
  5. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/pyproject.toml +2 -2
  6. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-cli/README.md +6 -1
  7. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-cli/pyproject.toml +6 -6
  8. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/README.md +6 -4
  9. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/pyproject.toml +1 -1
  10. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/model_prices.json +2131 -1482
  11. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/pricing.py +2 -2
  12. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/schema_version.py +13 -1
  13. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-corpus/pyproject.toml +1 -1
  14. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/README.md +5 -5
  15. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/pyproject.toml +1 -1
  16. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-embed/README.md +13 -11
  17. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-embed/pyproject.toml +1 -1
  18. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-models/README.md +2 -1
  19. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-models/pyproject.toml +1 -1
  20. {atif_sql-0.3.0 → atif_sql-0.4.0}/pyproject.toml +2 -9
  21. {atif_sql-0.3.0 → atif_sql-0.4.0}/.gitignore +0 -0
  22. {atif_sql-0.3.0 → atif_sql-0.4.0}/.vale/styles/Google/LICENSE +0 -0
  23. {atif_sql-0.3.0 → atif_sql-0.4.0}/.vale/styles/proselint/LICENSE +0 -0
  24. {atif_sql-0.3.0 → atif_sql-0.4.0}/.vale/styles/proselint/README.md +0 -0
  25. {atif_sql-0.3.0 → atif_sql-0.4.0}/LICENSE +0 -0
  26. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/LICENSE +0 -0
  27. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/__init__.py +0 -0
  28. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/application/__init__.py +0 -0
  29. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/application/analyze.py +0 -0
  30. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/application/prompts.py +0 -0
  31. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/application/use_cases/__init__.py +0 -0
  32. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/application/use_cases/_shared.py +0 -0
  33. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/application/use_cases/classify.py +0 -0
  34. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/application/use_cases/conflicts.py +0 -0
  35. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/application/use_cases/friction.py +0 -0
  36. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/application/use_cases/perceived.py +0 -0
  37. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/domain/__init__.py +0 -0
  38. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/domain/authorship.py +0 -0
  39. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/domain/config.py +0 -0
  40. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/domain/costs.py +0 -0
  41. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/domain/friction.py +0 -0
  42. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/domain/layout.py +0 -0
  43. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/domain/models.py +0 -0
  44. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/domain/ports.py +0 -0
  45. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/domain/transcript.py +0 -0
  46. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/infrastructure/__init__.py +0 -0
  47. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/infrastructure/corpus_reader.py +0 -0
  48. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/infrastructure/parquet_cache.py +0 -0
  49. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/infrastructure/settings.py +0 -0
  50. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/infrastructure/sqlite_state/__init__.py +0 -0
  51. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/infrastructure/sqlite_state/checkpointer.py +0 -0
  52. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/infrastructure/sqlite_state/retry_queue.py +0 -0
  53. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-analytics/src/atif_analytics/py.typed +0 -0
  54. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-cli/LICENSE +0 -0
  55. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-cli/src/atif_cli/__init__.py +0 -0
  56. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-cli/src/atif_cli/__main__.py +0 -0
  57. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-cli/src/atif_cli/app.py +0 -0
  58. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-cli/src/atif_cli/converter_adapter.py +0 -0
  59. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-cli/src/atif_cli/corpus.py +0 -0
  60. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-cli/src/atif_cli/cron.py +0 -0
  61. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-cli/src/atif_cli/duck_errors.py +0 -0
  62. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-cli/src/atif_cli/embed_lake.py +0 -0
  63. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-cli/src/atif_cli/errors.py +0 -0
  64. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-cli/src/atif_cli/lake.py +0 -0
  65. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-cli/src/atif_cli/lake_sessions.py +0 -0
  66. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-cli/src/atif_cli/output.py +0 -0
  67. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-cli/src/atif_cli/py.typed +0 -0
  68. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/LICENSE +0 -0
  69. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/__init__.py +0 -0
  70. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/application/__init__.py +0 -0
  71. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/application/convert_and_audit.py +0 -0
  72. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/application/convert_codex.py +0 -0
  73. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/__init__.py +0 -0
  74. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/agents.py +0 -0
  75. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/atif/__init__.py +0 -0
  76. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/atif/agent.py +0 -0
  77. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/atif/content.py +0 -0
  78. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/atif/final_metrics.py +0 -0
  79. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/atif/metrics.py +0 -0
  80. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/atif/observation.py +0 -0
  81. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/atif/observation_result.py +0 -0
  82. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/atif/step.py +0 -0
  83. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/atif/subagent_trajectory_ref.py +0 -0
  84. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/atif/tool_call.py +0 -0
  85. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/atif/trajectory.py +0 -0
  86. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/atif/trajectory_validator.py +0 -0
  87. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/blobs.py +0 -0
  88. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/claude_code_conversion.py +0 -0
  89. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/codex_conversion.py +0 -0
  90. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/codex_edges.py +0 -0
  91. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/codex_enrichment.py +0 -0
  92. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/codex_fidelity.py +0 -0
  93. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/codex_nested_calls.py +0 -0
  94. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/edges.py +0 -0
  95. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/enrichment.py +0 -0
  96. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/errors.py +0 -0
  97. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/fidelity.py +0 -0
  98. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/result_signals.py +0 -0
  99. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/domain/session_events.py +0 -0
  100. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/infrastructure/__init__.py +0 -0
  101. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/infrastructure/census.py +0 -0
  102. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/infrastructure/claude_code_converter.py +0 -0
  103. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/infrastructure/codex_adapter.py +0 -0
  104. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/infrastructure/codex_census.py +0 -0
  105. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/infrastructure/codex_converter.py +0 -0
  106. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/infrastructure/harbor_adapter.py +0 -0
  107. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/infrastructure/raw_records.py +0 -0
  108. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/infrastructure/source_archive.py +0 -0
  109. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-converter/src/atif_converter/py.typed +0 -0
  110. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-corpus/LICENSE +0 -0
  111. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-corpus/README.md +0 -0
  112. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-corpus/src/atif_corpus/__init__.py +0 -0
  113. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-corpus/src/atif_corpus/application/__init__.py +0 -0
  114. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-corpus/src/atif_corpus/application/materialize.py +0 -0
  115. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-corpus/src/atif_corpus/domain/__init__.py +0 -0
  116. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-corpus/src/atif_corpus/domain/agents.py +0 -0
  117. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-corpus/src/atif_corpus/domain/generation.py +0 -0
  118. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-corpus/src/atif_corpus/domain/layout.py +0 -0
  119. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-corpus/src/atif_corpus/domain/ports.py +0 -0
  120. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-corpus/src/atif_corpus/domain/session_id.py +0 -0
  121. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-corpus/src/atif_corpus/domain/sessions.py +0 -0
  122. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-corpus/src/atif_corpus/domain/slug.py +0 -0
  123. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-corpus/src/atif_corpus/domain/source_layout.py +0 -0
  124. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-corpus/src/atif_corpus/domain/watermark.py +0 -0
  125. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-corpus/src/atif_corpus/infrastructure/__init__.py +0 -0
  126. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-corpus/src/atif_corpus/infrastructure/atomic.py +0 -0
  127. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-corpus/src/atif_corpus/infrastructure/compress_artifacts.py +0 -0
  128. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-corpus/src/atif_corpus/infrastructure/fake_converter.py +0 -0
  129. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-corpus/src/atif_corpus/infrastructure/scanner.py +0 -0
  130. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-corpus/src/atif_corpus/infrastructure/settings.py +0 -0
  131. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-corpus/src/atif_corpus/infrastructure/source_archive.py +0 -0
  132. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-corpus/src/atif_corpus/py.typed +0 -0
  133. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/LICENSE +0 -0
  134. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/src/atif_duck/__init__.py +0 -0
  135. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/src/atif_duck/domain/__init__.py +0 -0
  136. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/src/atif_duck/domain/artifacts.py +0 -0
  137. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/src/atif_duck/domain/authorship.py +0 -0
  138. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/src/atif_duck/domain/catalog.py +0 -0
  139. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/src/atif_duck/domain/columnar.py +0 -0
  140. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/src/atif_duck/domain/embedding_guard.py +0 -0
  141. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/src/atif_duck/domain/examples.py +0 -0
  142. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/src/atif_duck/domain/lake.py +0 -0
  143. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/src/atif_duck/domain/lake_sessions.py +0 -0
  144. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/src/atif_duck/domain/raw_readers.py +0 -0
  145. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/src/atif_duck/domain/session_id.py +0 -0
  146. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/src/atif_duck/domain/sql_literal.py +0 -0
  147. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/src/atif_duck/infrastructure/__init__.py +0 -0
  148. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/src/atif_duck/infrastructure/analytics.py +0 -0
  149. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/src/atif_duck/infrastructure/authorship.py +0 -0
  150. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/src/atif_duck/infrastructure/columnar.py +0 -0
  151. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/src/atif_duck/infrastructure/lake.py +0 -0
  152. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/src/atif_duck/infrastructure/lake_sessions.py +0 -0
  153. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/src/atif_duck/infrastructure/lake_settings.py +0 -0
  154. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/src/atif_duck/infrastructure/lake_steps.py +0 -0
  155. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/src/atif_duck/infrastructure/projections.py +0 -0
  156. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/src/atif_duck/infrastructure/registry.py +0 -0
  157. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/src/atif_duck/infrastructure/stored_artifacts.py +0 -0
  158. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-duck/src/atif_duck/py.typed +0 -0
  159. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-embed/LICENSE +0 -0
  160. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-embed/src/atif_embed/__init__.py +0 -0
  161. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-embed/src/atif_embed/application/__init__.py +0 -0
  162. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-embed/src/atif_embed/application/embed.py +0 -0
  163. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-embed/src/atif_embed/application/prune.py +0 -0
  164. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-embed/src/atif_embed/domain/__init__.py +0 -0
  165. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-embed/src/atif_embed/domain/discovery.py +0 -0
  166. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-embed/src/atif_embed/domain/embedding_guard.py +0 -0
  167. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-embed/src/atif_embed/domain/errors.py +0 -0
  168. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-embed/src/atif_embed/domain/ports.py +0 -0
  169. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-embed/src/atif_embed/domain/sql_literal.py +0 -0
  170. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-embed/src/atif_embed/domain/text_stamp.py +0 -0
  171. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-embed/src/atif_embed/infrastructure/__init__.py +0 -0
  172. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-embed/src/atif_embed/infrastructure/cohere_bedrock.py +0 -0
  173. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-embed/src/atif_embed/infrastructure/corpus_text_rows.py +0 -0
  174. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-embed/src/atif_embed/infrastructure/gemma_local.py +0 -0
  175. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-embed/src/atif_embed/infrastructure/lake_text_rows.py +0 -0
  176. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-embed/src/atif_embed/infrastructure/lance_store.py +0 -0
  177. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-embed/src/atif_embed/infrastructure/providers.py +0 -0
  178. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-embed/src/atif_embed/infrastructure/settings.py +0 -0
  179. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-embed/src/atif_embed/py.typed +0 -0
  180. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-models/LICENSE +0 -0
  181. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-models/src/atif_models/__init__.py +0 -0
  182. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-models/src/atif_models/domain/__init__.py +0 -0
  183. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-models/src/atif_models/domain/ports.py +0 -0
  184. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-models/src/atif_models/domain/registry.py +0 -0
  185. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-models/src/atif_models/domain/schema.py +0 -0
  186. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-models/src/atif_models/infrastructure/__init__.py +0 -0
  187. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-models/src/atif_models/infrastructure/anthropic_bedrock.py +0 -0
  188. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-models/src/atif_models/infrastructure/bedrock_common.py +0 -0
  189. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-models/src/atif_models/infrastructure/openai_bedrock.py +0 -0
  190. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-models/src/atif_models/infrastructure/providers.py +0 -0
  191. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-models/src/atif_models/infrastructure/settings.py +0 -0
  192. {atif_sql-0.3.0 → atif_sql-0.4.0}/packages/atif-models/src/atif_models/py.typed +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: atif-sql
3
- Version: 0.3.0
3
+ Version: 0.4.0
4
4
  Summary: ATIF-native analytics over Claude Code agent trajectories: convert, materialize, and query agent sessions with DuckDB.
5
5
  Project-URL: Homepage, https://github.com/laithalsaadoon/atif-sql
6
6
  Project-URL: Repository, https://github.com/laithalsaadoon/atif-sql
@@ -149,7 +149,7 @@ the only thing documented as installable is the `atif-sql` CLI above.
149
149
  | `atif-converter` | Claude Code and Codex CLI transcript → ATIF converters (ours, built on Harbor's ATIF models, vendored) + per-agent fidelity policy (loss accounting per session) |
150
150
  | `atif-corpus` | Corpus materialization: discovery, watermarks, quiescence, atomic artifact writes |
151
151
  | `atif-duck` | DuckDB views + macros over the materialized corpus (core surface plus the v2 analytics surface) |
152
- | `atif-models` | Model alias registry + structured-output LLM clients for GPT-6 and Claude 5.5 on Bedrock; no other package hardcodes a model id |
152
+ | `atif-models` | Model alias registry + structured-output LLM clients for GPT-6 and Claude 5.5 on Bedrock; no other package hardcodes an LLM model id |
153
153
  | `atif-analytics` | the LLM pipelines `atif-sql analyze` runs: classify, conflicts, friction, and perceived |
154
154
  | `atif-embed` | Cohere Embed v4 on Bedrock or EmbeddingGemma 2 on this machine + LanceDB vector store + embedding backfill |
155
155
  | `atif-cli` | the composition root, and the source of the `atif-sql` command (see [What you can do](#what-you-can-do)) |
@@ -194,7 +194,7 @@ matching `ATIF_SQL_*` env var still wins.
194
194
  ```bash
195
195
  atif-sql materialize --agent codex
196
196
  atif-sql status --agent codex
197
- atif-sql query "SELECT agent, count(*) FROM sessions GROUP BY 1"
197
+ atif-sql query --agent codex "SELECT agent, count(*) FROM sessions GROUP BY 1"
198
198
  ```
199
199
 
200
200
  One corpus holds one agent, so a Codex corpus and a Claude Code corpus stay
@@ -269,7 +269,7 @@ vulnerability in a tool that reads local transcripts are in
269
269
  corpus is registered (override with `ATIF_SQL_QUERY_MEMORY_LIMIT` and `ATIF_SQL_QUERY_THREADS`),
270
270
  a private spill directory outside the corpus that's removed on exit, no extension installs at
271
271
  query time (`atif-sql embed --install-extension` is where the lance extension comes from), file
272
- facing statements (`COPY`, `EXPORT`, `ATTACH`, `INSTALL`, `LOAD`, `PREPARE`, `EXECUTE`) refused
272
+ facing statements (`COPY`, `EXPORT`, `ATTACH`, `DETACH`, `INSTALL`, `LOAD`, `PREPARE`, `EXECUTE`) refused
273
273
  before they run, and a refusal to run as root unless `ATIF_SQL_ALLOW_ROOT=1` says so. The details
274
274
  and the one accepted disclosure (`duckdb_settings()` lists the granted paths) are in
275
275
  [docs/reference/cli.md](docs/reference/cli.md#query).
@@ -107,7 +107,7 @@ the only thing documented as installable is the `atif-sql` CLI above.
107
107
  | `atif-converter` | Claude Code and Codex CLI transcript → ATIF converters (ours, built on Harbor's ATIF models, vendored) + per-agent fidelity policy (loss accounting per session) |
108
108
  | `atif-corpus` | Corpus materialization: discovery, watermarks, quiescence, atomic artifact writes |
109
109
  | `atif-duck` | DuckDB views + macros over the materialized corpus (core surface plus the v2 analytics surface) |
110
- | `atif-models` | Model alias registry + structured-output LLM clients for GPT-6 and Claude 5.5 on Bedrock; no other package hardcodes a model id |
110
+ | `atif-models` | Model alias registry + structured-output LLM clients for GPT-6 and Claude 5.5 on Bedrock; no other package hardcodes an LLM model id |
111
111
  | `atif-analytics` | the LLM pipelines `atif-sql analyze` runs: classify, conflicts, friction, and perceived |
112
112
  | `atif-embed` | Cohere Embed v4 on Bedrock or EmbeddingGemma 2 on this machine + LanceDB vector store + embedding backfill |
113
113
  | `atif-cli` | the composition root, and the source of the `atif-sql` command (see [What you can do](#what-you-can-do)) |
@@ -152,7 +152,7 @@ matching `ATIF_SQL_*` env var still wins.
152
152
  ```bash
153
153
  atif-sql materialize --agent codex
154
154
  atif-sql status --agent codex
155
- atif-sql query "SELECT agent, count(*) FROM sessions GROUP BY 1"
155
+ atif-sql query --agent codex "SELECT agent, count(*) FROM sessions GROUP BY 1"
156
156
  ```
157
157
 
158
158
  One corpus holds one agent, so a Codex corpus and a Claude Code corpus stay
@@ -227,7 +227,7 @@ vulnerability in a tool that reads local transcripts are in
227
227
  corpus is registered (override with `ATIF_SQL_QUERY_MEMORY_LIMIT` and `ATIF_SQL_QUERY_THREADS`),
228
228
  a private spill directory outside the corpus that's removed on exit, no extension installs at
229
229
  query time (`atif-sql embed --install-extension` is where the lance extension comes from), file
230
- facing statements (`COPY`, `EXPORT`, `ATTACH`, `INSTALL`, `LOAD`, `PREPARE`, `EXECUTE`) refused
230
+ facing statements (`COPY`, `EXPORT`, `ATTACH`, `DETACH`, `INSTALL`, `LOAD`, `PREPARE`, `EXECUTE`) refused
231
231
  before they run, and a refusal to run as root unless `ATIF_SQL_ALLOW_ROOT=1` says so. The details
232
232
  and the one accepted disclosure (`duckdb_settings()` lists the granted paths) are in
233
233
  [docs/reference/cli.md](docs/reference/cli.md#query).
@@ -6,9 +6,11 @@ this codebase quietly assumes. Every factual claim carries a `path:LOC` citation
6
6
  Prose is generated; structure is mechanical. Cross-references are deterministic.
7
7
 
8
8
  Citations come as full paths or as shorthands, and each one resolves into a
9
- source file. A validator rejects any citation naming a file that does not exist, a line
10
- outside that file's range, or a shorthand with no resolvable antecedent, and it exits non-zero on the
11
- first one, so a citation here resolves or the tree does not ship.
9
+ source file. The docs site build turns each one into a link and fails on the first citation naming
10
+ a file that does not exist at the commit it links to, or a shorthand with no resolvable antecedent.
11
+ `mise run docs:citations` also fails on a line outside its file and, against the base commit, on a
12
+ citation whose cited lines a change moved or removed without editing the citation, so a citation
13
+ here resolves to the code it names or the tree does not ship.
12
14
 
13
15
  ## Start here
14
16
 
@@ -24,8 +26,8 @@ first one, so a citation here resolves or the tree does not ship.
24
26
 
25
27
  - [System overview](architecture/system-overview.md): the short version, the stack, and one
26
28
  diagram of the workspace members.
27
- - [Module map](architecture/module-map.md): one section per member, ordered by source size, with the
28
- files in each that carry the weight.
29
+ - [Module map](architecture/module-map.md): one section per member, with the files in each that
30
+ carry the weight.
29
31
  - [Data flow](architecture/data-flow.md): the flows (`materialize`, `query`, `analyze`) traced end
30
32
  to end, each as a sequence diagram.
31
33
 
@@ -75,11 +77,11 @@ first one, so a citation here resolves or the tree does not ship.
75
77
 
76
78
  ## Documents this tree deliberately omits
77
79
 
78
- - **`analysis/ownership.md`**: the history sits under a single bot identity,
79
- with no human authors. A per-person ranked table and a bus-factor list would be noise dressed as
80
+ - **`analysis/ownership.md`**: every commit in the history names either the one maintainer or a
81
+ GitHub bot account. A per-person ranked table and a bus-factor list would be noise dressed as
80
82
  analysis.
81
83
  - **`reference/rpc-tools.md`**: there is no RPC, MCP, or HTTP surface. `fastapi`, `uvicorn`,
82
- `starlette`, and the supabase client stack do appear in the installed dependency closure, arriving
84
+ `starlette`, and the supabase client stack do appear in the locked dev dependency closure, arriving
83
85
  transitively through harbor, and no first-party module imports any of them.
84
86
 
85
87
  An empty file in either slot would imply absence by omission rather than by silence, which is why
@@ -6,8 +6,8 @@ The v2 analytics pipelines over the materialized ATIF corpus:
6
6
  read the materialized corpus (`trajectory.json` steps + `edges.jsonl`,
7
7
  each stored compressed or plain),
8
8
  render session transcripts under the documented caps, and classify through
9
- `atif_models.LlmStructuredProvider` (GPT-6 or Claude 5.5 structured
10
- outputs on bedrock-runtime; sizes classify=small, conflicts=large,
9
+ `atif_models.domain.ports.LlmStructuredProvider` (GPT-6 or Claude 5.5
10
+ structured outputs on bedrock-runtime; sizes classify=small, conflicts=large,
11
11
  friction=small, perceived=medium). `classify` labels `work_category` and `goal` only.
12
12
  `classify` and `conflicts` skip non-interactive sessions (`turn_audit`,
13
13
  `one_shot_job`), and `friction` and `perceived` read human turns only.
@@ -25,8 +25,9 @@ The v2 analytics pipelines over the materialized ATIF corpus:
25
25
  sharded parquet caches under `<corpus_root>/analytics/<name>/`.
26
26
 
27
27
  Composition: atif-analytics imports **only** atif-models among the workspace
28
- packages (import-linter independence contract); atif-cli composes it with
29
- atif-duck's registered views via the `atif-sql analyze` command.
28
+ packages (import-linter forbidden contract); atif-cli composes it via the
29
+ `atif-sql analyze` command, handing it a session source over atif-duck's lake
30
+ (`atif_cli.lake_sessions`).
30
31
 
31
32
  All pipelines default to `dry_run=True` and return plan dicts with
32
33
  `estimate_cost_tokens` projections (cost guard per CONTRACT-V2).
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "atif-analytics"
3
- version = "0.3.0"
3
+ version = "0.4.0"
4
4
  description = "LLM analytics pipelines over the materialized ATIF corpus: session classification, stance conflicts, user friction, and perceived errors."
5
5
  readme = "README.md"
6
6
  license = "Apache-2.0"
@@ -20,7 +20,7 @@ dependencies = [
20
20
  # a LOCAL source an external installer never sees, so a bare name would ship as
21
21
  # `Requires-Dist: atif-models` and resolve to whatever the newest release of
22
22
  # that name is. `[tool.commitizen] version_files` rewrites this line on a bump.
23
- "atif-models==0.3.0",
23
+ "atif-models==0.4.0",
24
24
  "loguru>=0.7.3",
25
25
  "polars>=1.40.0",
26
26
  "pyarrow>=23.0.1",
@@ -16,7 +16,7 @@ atif-sql materialize [--force] [--quiesce-seconds N]
16
16
  [--sessions id,id] # contract-compatible extension:
17
17
  # plan only the named sessions
18
18
  atif-sql status # corpus freshness, read-only
19
- atif-sql query 'SQL' [--format auto|json|csv]
19
+ atif-sql query 'SQL' [--format auto|table|json|csv]
20
20
  atif-sql schema # static catalog, no duckdb bind, <50ms
21
21
  atif-sql examples # tested example queries per view/macro
22
22
  # (alias: atif-sql query --examples)
@@ -27,6 +27,11 @@ atif-sql embed --all --no-dry-run # embed corpus steps into LanceDB
27
27
  atif-sql search '<text>' # embed the text, then semantic kNN
28
28
  atif-sql cron install | status # print the refresh crontab block, or
29
29
  # report lane locks + last runs
30
+ atif-sql lake rebuild | verify | status | compact
31
+ # build, check, report on, and compact
32
+ # the DuckLake every query reads
33
+ atif-sql corpus slim [--no-dry-run] # convert a corpus to the compressed
34
+ # layout; a dry run by default
30
35
  ```
31
36
 
32
37
  Conventions: `--format auto` resolves to a table on a TTY and JSON on a pipe;
@@ -5,7 +5,7 @@
5
5
  # import-linter can read what it is allowed to import, and so its tests have a
6
6
  # home — none of which needs an index.
7
7
  name = "atif-cli"
8
- version = "0.3.0"
8
+ version = "0.4.0"
9
9
  description = "ATIF-native analytics over Claude Code agent trajectories: convert, materialize, and query agent sessions with DuckDB."
10
10
  readme = "README.md"
11
11
  license = "Apache-2.0"
@@ -29,11 +29,11 @@ dependencies = [
29
29
  # namespace to whatever the newest release of that name is, by whoever owns it.
30
30
  # One version moves the whole workspace, so `==` is the honest constraint, and
31
31
  # `[tool.commitizen] version_files` rewrites every one of these on each bump.
32
- "atif-analytics==0.3.0",
33
- "atif-converter==0.3.0",
34
- "atif-corpus==0.3.0",
35
- "atif-duck==0.3.0",
36
- "atif-embed==0.3.0",
32
+ "atif-analytics==0.4.0",
33
+ "atif-converter==0.4.0",
34
+ "atif-corpus==0.4.0",
35
+ "atif-duck==0.4.0",
36
+ "atif-embed==0.4.0",
37
37
  "cyclopts>=5.1.1",
38
38
  # Imported directly by duck_errors.py to classify a DuckDB failure into the
39
39
  # parse/catalog/runtime exit-code taxonomy. Reaching it transitively through
@@ -2,8 +2,10 @@
2
2
 
3
3
  Converts Claude Code session JSONL and Codex rollouts into ATIF trajectories
4
4
  (converters ported from harbor and held to parity with harbor 0.24.0, on harbor's ATIF models vendored in
5
- `atif_converter.domain.atif`), and owns the FIDELITY POLICY: the seven known upstream
6
- conversion gaps are encoded as `atif_converter.domain.fidelity.FidelityGap`,
5
+ `atif_converter.domain.atif`), and owns the FIDELITY POLICY: the known upstream
6
+ conversion gaps are encoded as `atif_converter.domain.fidelity.FidelityGap` (six
7
+ for Claude Code, plus one retired number) and
8
+ `atif_converter.domain.codex_fidelity.CodexFidelityGap` (six for Codex),
7
9
  and every conversion is audited into a `LossReport` (raw-side census vs
8
10
  converted output). harbor is a dev dependency only; the tests pin harbor 0.24.0
9
11
  behavior and hold the vendored models to it, so they are the drift alarm for a
@@ -14,7 +16,7 @@ harbor bump.
14
16
  `LossReport.record_counts` (and therefore `records_total` / `records_dropped`)
15
17
  counts every record of every `*.jsonl` discovered under the session's side
16
18
  directory, at any depth and regardless of whether a `subagents/` part appears
17
- in the path. That is the same file set the adapter stages into harbor and the
19
+ in the path. That is the same file set the converter reads and the
18
20
  same set `edges.jsonl` is built from, so `records_total` always equals the
19
21
  edges line count. A session with a side-file outside `subagents/` reports a
20
22
  higher `records_total` than a census scoped to `subagents/` alone would.
@@ -27,7 +29,7 @@ value: `atif_converter.domain.pricing` returns the same floats, bit for bit,
27
29
  without litellm being installed. It reads `domain/model_prices.json`, a
28
30
  filtered copy of litellm's public `model_prices_and_context_window.json` (MIT;
29
31
  the notice and source ref are in its `meta` block), and repeats litellm
30
- 1.103.2's arithmetic in the same float operation order. The table holds the
32
+ 1.104.2's arithmetic in the same float operation order. The table holds the
31
33
  Claude and OpenAI text models our transcripts name under the `anthropic`,
32
34
  `openai`, `bedrock` and `bedrock_converse` providers, and keeps litellm's
33
35
  `fallback_generalizations` rules, which route an unmapped `claude-<family>-<n>`
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "atif-converter"
3
- version = "0.3.0"
3
+ version = "0.4.0"
4
4
  description = "Claude Code and Codex transcripts -> ATIF conversion, with the fidelity policy per agent."
5
5
  readme = "README.md"
6
6
  license = "Apache-2.0"