parishad 0.1.6__tar.gz → 0.1.7__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 (76) hide show
  1. {parishad-0.1.6 → parishad-0.1.7}/CHANGELOG.md +6 -0
  2. {parishad-0.1.6 → parishad-0.1.7}/PKG-INFO +1 -1
  3. {parishad-0.1.6 → parishad-0.1.7}/pyproject.toml +1 -1
  4. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/__init__.py +1 -1
  5. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/cli/code.py +4 -1
  6. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/config/pipeline.core.yaml +1 -1
  7. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/config/pipeline.extended.yaml +1 -1
  8. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/config/pipeline.fast.yaml +1 -1
  9. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/data/models.json +1 -1
  10. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/models/runner.py +3 -3
  11. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/orchestrator/config_loader.py +2 -2
  12. {parishad-0.1.6 → parishad-0.1.7}/.github/workflows/publish.yml +0 -0
  13. {parishad-0.1.6 → parishad-0.1.7}/.gitignore +0 -0
  14. {parishad-0.1.6 → parishad-0.1.7}/CODE_OF_CONDUCT.md +0 -0
  15. {parishad-0.1.6 → parishad-0.1.7}/CONTRIBUTING.md +0 -0
  16. {parishad-0.1.6 → parishad-0.1.7}/LICENSE +0 -0
  17. {parishad-0.1.6 → parishad-0.1.7}/README.md +0 -0
  18. {parishad-0.1.6 → parishad-0.1.7}/SECURITY.md +0 -0
  19. {parishad-0.1.6 → parishad-0.1.7}/docs/assets/logo.jpeg +0 -0
  20. {parishad-0.1.6 → parishad-0.1.7}/docs/assets/logo.svg +0 -0
  21. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/__main__.py +0 -0
  22. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/checker/__init__.py +0 -0
  23. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/checker/deterministic.py +0 -0
  24. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/checker/ensemble.py +0 -0
  25. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/checker/retrieval.py +0 -0
  26. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/cli/__init__.py +0 -0
  27. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/cli/main.py +0 -0
  28. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/cli/prarambh.py +0 -0
  29. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/cli/sthapana.py +0 -0
  30. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/config/modes.py +0 -0
  31. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/config/user_config.py +0 -0
  32. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/data/catalog.py +0 -0
  33. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/memory/__init__.py +0 -0
  34. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/models/__init__.py +0 -0
  35. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/models/backends/__init__.py +0 -0
  36. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/models/backends/base.py +0 -0
  37. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/models/backends/huggingface.py +0 -0
  38. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/models/backends/llama_cpp.py +0 -0
  39. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/models/backends/mlx_lm.py +0 -0
  40. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/models/backends/ollama.py +0 -0
  41. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/models/backends/openai_api.py +0 -0
  42. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/models/backends/transformers_hf.py +0 -0
  43. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/models/costs.py +0 -0
  44. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/models/downloader.py +0 -0
  45. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/models/optimizations.py +0 -0
  46. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/models/profiles.py +0 -0
  47. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/models/reliability.py +0 -0
  48. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/models/tokenization.py +0 -0
  49. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/orchestrator/__init__.py +0 -0
  50. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/orchestrator/engine.py +0 -0
  51. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/orchestrator/exceptions.py +0 -0
  52. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/roles/__init__.py +0 -0
  53. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/roles/base.py +0 -0
  54. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/roles/dandadhyaksha.py +0 -0
  55. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/roles/darbari.py +0 -0
  56. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/roles/majumdar.py +0 -0
  57. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/roles/pantapradhan.py +0 -0
  58. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/roles/prerak.py +0 -0
  59. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/roles/raja.py +0 -0
  60. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/roles/sacheev.py +0 -0
  61. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/roles/sainik.py +0 -0
  62. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/roles/sar_senapati.py +0 -0
  63. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/roles/vidushak.py +0 -0
  64. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/tools/__init__.py +0 -0
  65. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/tools/base.py +0 -0
  66. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/tools/fs.py +0 -0
  67. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/tools/perception.py +0 -0
  68. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/tools/retrieval.py +0 -0
  69. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/tools/shell.py +0 -0
  70. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/utils/__init__.py +0 -0
  71. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/utils/hardware.py +0 -0
  72. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/utils/installer.py +0 -0
  73. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/utils/logging.py +0 -0
  74. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/utils/scanner.py +0 -0
  75. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/utils/text.py +0 -0
  76. {parishad-0.1.6 → parishad-0.1.7}/src/parishad/utils/tracing.py +0 -0
@@ -5,6 +5,12 @@ All notable changes to the **Parishad** project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.1.7] - 2026-01-26
9
+
10
+ ### Fixed
11
+ - **Memory Optimization**: Reduced default context length from 8192 to 4096 tokens to prevent VRAM saturation and freezing on 4GB GPUs (like RTX 3050).
12
+ - **Windows TUI Rendering**: Fixed "garbage characters" in loading spinner by switching to ASCII-safe animation on Windows.
13
+
8
14
  ## [0.1.6] - 2026-01-26
9
15
 
10
16
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: parishad
3
- Version: 0.1.6
3
+ Version: 0.1.7
4
4
  Summary: A cost-aware, local-first council of heterogeneous LLMs for reliable reasoning, coding, and factual correctness
5
5
  Project-URL: Homepage, https://github.com/parishad-council/parishad
6
6
  Project-URL: Documentation, https://github.com/parishad-council/parishad#readme
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "parishad"
7
- version = "0.1.6"
7
+ version = "0.1.7"
8
8
  description = "A cost-aware, local-first council of heterogeneous LLMs for reliable reasoning, coding, and factual correctness"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -5,7 +5,7 @@ Parishad orchestrates multiple local language models into a structured "council"
5
5
  that achieves higher reliability than a single model under strict compute budgets.
6
6
  """
7
7
 
8
- __version__ = "0.1.6"
8
+ __version__ = "0.1.7"
9
9
 
10
10
  from .orchestrator.engine import Parishad, ParishadEngine, PipelineConfig
11
11
  from .models.runner import ModelRunner, ModelConfig
@@ -2610,7 +2610,10 @@ class ParishadApp(App):
2610
2610
  # Process with Sabha council
2611
2611
  progress = self.query_one("#role-progress", RoleProgressBar)
2612
2612
  progress.reset()
2613
- self.log_message("[dim] ⎿ सभा विचार-विमर्श...[/dim]") # Sabha deliberating in Hindi
2613
+ if sys.platform == "win32":
2614
+ self.log_message("[dim] -- Sabha deliberating...[/dim]")
2615
+ else:
2616
+ self.log_message("[dim] ⎿ सभा विचार-विमर्श...[/dim]") # Sabha deliberating in Hindi
2614
2617
 
2615
2618
  if not self.council:
2616
2619
  self.log_message("\n[red]✗ Sabha council not loaded![/red]")
@@ -3,7 +3,7 @@
3
3
  # Uses 2 model slots: mid + big
4
4
 
5
5
  name: "parishad-core"
6
- version: "0.1.6"
6
+ version: "0.1.7"
7
7
  description: "Balanced 8-role pipeline: Madhya Sabha with extended council"
8
8
 
9
9
  # Role definitions
@@ -3,7 +3,7 @@
3
3
  # Uses 3 model slots: small + mid + big
4
4
 
5
5
  name: "parishad-extended"
6
- version: "0.1.6"
6
+ version: "0.1.7"
7
7
  description: "Maha Sabha: Full 10-role council including Lateral Thinker (Vidushak)"
8
8
 
9
9
  # Role definitions
@@ -3,7 +3,7 @@
3
3
  # Laghu Sabha matches standard structure but uses smaller/faster models
4
4
 
5
5
  name: "parishad-fast"
6
- version: "0.1.6"
6
+ version: "0.1.7"
7
7
  description: "Fast 5-role pipeline: Analyze -> Plan -> Execute -> Check -> Judge"
8
8
 
9
9
  # Role definitions
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.6",
2
+ "version": "0.1.7",
3
3
  "updated": "2024-12-30",
4
4
  "sources": {
5
5
  "ollama": {
@@ -92,7 +92,7 @@ class SlotConfig:
92
92
  backend: Backend | str = Backend.TRANSFORMERS
93
93
 
94
94
  # Context and generation settings
95
- context_length: int = 8192
95
+ context_length: int = 4096
96
96
  default_max_tokens: int = 1024
97
97
  default_temperature: float = 0.5
98
98
  top_p: float = 0.9
@@ -117,7 +117,7 @@ class SlotConfig:
117
117
  extra: dict[str, Any] = field(default_factory=dict)
118
118
 
119
119
  # Legacy fields for backward compatibility
120
- max_context: int = 8192 # Alias for context_length
120
+ max_context: int = 4096 # Alias for context_length
121
121
  top_k: int = 50
122
122
  repetition_penalty: float = 1.0
123
123
 
@@ -131,7 +131,7 @@ class SlotConfig:
131
131
  pass
132
132
 
133
133
  # Sync max_context with context_length
134
- if self.max_context != 8192:
134
+ if self.max_context != 4096:
135
135
  self.context_length = self.max_context
136
136
 
137
137
  def to_backend_config(self) -> BackendConfig:
@@ -21,7 +21,7 @@ class RoleSpec:
21
21
  name: str
22
22
  class_name: str
23
23
  slot: str
24
- version: str = "0.1.6"
24
+ version: str = "0.1.7"
25
25
  budget_tokens: int = 1000
26
26
  dependencies: list[str] = field(default_factory=list)
27
27
  max_tokens: Optional[int] = None
@@ -110,7 +110,7 @@ def load_pipeline_config(name: str, config_dir: Optional[Path] = None) -> list[R
110
110
  name=role_name.lower(), # Always store as lowercase for consistent lookups
111
111
  class_name=role_config.get("class", role_name.capitalize()),
112
112
  slot=role_config.get("slot", "mid"),
113
- version=role_config.get("version", "0.1.6"),
113
+ version=role_config.get("version", "0.1.7"),
114
114
  budget_tokens=role_config.get("budget_tokens", 1000),
115
115
  dependencies=role_config.get("dependencies", []),
116
116
  max_tokens=role_config.get("max_tokens"),
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes