cat-stack 1.2.0__tar.gz → 1.3.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 (45) hide show
  1. {cat_stack-1.2.0 → cat_stack-1.3.0}/PKG-INFO +1 -1
  2. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/__about__.py +1 -1
  3. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/prompt_tune.py +8 -8
  4. {cat_stack-1.2.0 → cat_stack-1.3.0}/.gitignore +0 -0
  5. {cat_stack-1.2.0 → cat_stack-1.3.0}/LICENSE +0 -0
  6. {cat_stack-1.2.0 → cat_stack-1.3.0}/README.md +0 -0
  7. {cat_stack-1.2.0 → cat_stack-1.3.0}/pyproject.toml +0 -0
  8. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/cat_stack/__init__.py +0 -0
  9. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/__init__.py +0 -0
  10. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/_batch.py +0 -0
  11. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/_category_analysis.py +0 -0
  12. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/_chunked.py +0 -0
  13. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/_embeddings.py +0 -0
  14. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/_formatter.py +0 -0
  15. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/_pilot_test.py +0 -0
  16. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/_prompts.py +0 -0
  17. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/_providers.py +0 -0
  18. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/_review_ui.py +0 -0
  19. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/_tiebreaker.py +0 -0
  20. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/_utils.py +0 -0
  21. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/_web_fetch.py +0 -0
  22. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/_wrapper_helpers.py +0 -0
  23. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/calls/CoVe.py +0 -0
  24. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/calls/__init__.py +0 -0
  25. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/calls/all_calls.py +0 -0
  26. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/calls/image_CoVe.py +0 -0
  27. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/calls/image_stepback.py +0 -0
  28. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/calls/pdf_CoVe.py +0 -0
  29. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/calls/pdf_stepback.py +0 -0
  30. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/calls/stepback.py +0 -0
  31. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/calls/top_n.py +0 -0
  32. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/classify.py +0 -0
  33. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/explore.py +0 -0
  34. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/extract.py +0 -0
  35. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/image_functions.py +0 -0
  36. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/images/circle.png +0 -0
  37. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/images/cube.png +0 -0
  38. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/images/diamond.png +0 -0
  39. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/images/overlapping_pentagons.png +0 -0
  40. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/images/rectangles.png +0 -0
  41. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/model_reference_list.py +0 -0
  42. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/pdf_functions.py +0 -0
  43. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/summarize.py +0 -0
  44. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/text_functions.py +0 -0
  45. {cat_stack-1.2.0 → cat_stack-1.3.0}/src/catstack/text_functions_ensemble.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cat-stack
3
- Version: 1.2.0
3
+ Version: 1.3.0
4
4
  Summary: Domain-agnostic text, image, PDF, and DOCX classification engine powered by LLMs
5
5
  Project-URL: Documentation, https://github.com/chrissoria/cat-stack#readme
6
6
  Project-URL: Issues, https://github.com/chrissoria/cat-stack/issues
@@ -1,7 +1,7 @@
1
1
  # SPDX-FileCopyrightText: 2025-present Christopher Soria <chrissoria@berkeley.edu>
2
2
  #
3
3
  # SPDX-License-Identifier: GPL-3.0-or-later
4
- __version__ = "1.2.0"
4
+ __version__ = "1.3.0"
5
5
  __author__ = "Chris Soria"
6
6
  __email__ = "chrissoria@berkeley.edu"
7
7
  __title__ = "cat-stack"
@@ -749,17 +749,17 @@ def _generate_category_instruction(
749
749
  # Current instruction
750
750
  current_text = f'\nCURRENT INSTRUCTION FOR THIS CATEGORY:\n"{current_instruction}"\n' if current_instruction else ""
751
751
 
752
- # History of previous attempts for this category so the meta-LLM doesn't repeat itself
752
+ # History of previous attempts capped at last 3 to avoid prompt bloat.
753
+ # Format is deliberately simple (no score numbers) so smaller models can follow it.
753
754
  history_text = ""
754
755
  if attempt_history:
755
- history_lines = []
756
- for i, h in enumerate(attempt_history, 1):
757
- history_lines.append(
758
- f' Attempt {i}: "{h["instruction"]}"'
759
- f' → {h["outcome"]} (holdout score {h["score_before"]:.2f}→{h["score_after"]:.2f})'
760
- )
756
+ recent = attempt_history[-3:]
757
+ history_lines = [
758
+ f' - "{h["instruction"]}" [{h["outcome"]}]'
759
+ for h in recent
760
+ ]
761
761
  history_text = (
762
- "\nPREVIOUS ATTEMPTS FOR THIS CATEGORY — do not repeat these:\n"
762
+ "\nPREVIOUS INSTRUCTIONS TRIED FOR THIS CATEGORY (already tested write something different):\n"
763
763
  + "\n".join(history_lines)
764
764
  + "\n"
765
765
  )
File without changes
File without changes
File without changes
File without changes