parishad 0.1.0__py3-none-any.whl → 0.1.2__py3-none-any.whl

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.
parishad/__init__.py CHANGED
@@ -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.0"
8
+ __version__ = "0.1.2"
9
9
 
10
10
  from .orchestrator.engine import Parishad, ParishadEngine, PipelineConfig
11
11
  from .models.runner import ModelRunner, ModelConfig
@@ -3,7 +3,7 @@
3
3
  # Uses 2 model slots: mid + big
4
4
 
5
5
  name: "parishad-core"
6
- version: "0.1.0"
6
+ version: "0.1.2"
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.0"
6
+ version: "0.1.2"
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.0"
6
+ version: "0.1.2"
7
7
  description: "Fast 5-role pipeline: Analyze -> Plan -> Execute -> Check -> Judge"
8
8
 
9
9
  # Role definitions
parishad/data/models.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.0",
2
+ "version": "0.1.2",
3
3
  "updated": "2024-12-30",
4
4
  "sources": {
5
5
  "ollama": {
@@ -553,6 +553,11 @@ class HuggingFaceDownloader:
553
553
  # Fallback: Guess the filename based on repo name
554
554
  # Most GGUF repos (like bartowski) follow: {ModelName}-{Quant}.gguf
555
555
  repo_name = repo_id.split("/")[-1]
556
+
557
+ # Strip '-GGUF' suffix if present (common in repo names but not filenames)
558
+ if repo_name.lower().endswith("-gguf"):
559
+ repo_name = repo_name[:-5]
560
+
556
561
  quant_suffix = quantization if quantization else "Q4_K_M"
557
562
 
558
563
  # Construct standard guess
@@ -21,7 +21,7 @@ class RoleSpec:
21
21
  name: str
22
22
  class_name: str
23
23
  slot: str
24
- version: str = "0.1.0"
24
+ version: str = "0.1.1"
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.0"),
113
+ version=role_config.get("version", "0.1.1"),
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"),
@@ -19,8 +19,9 @@ class PerceptionTool(BaseTool):
19
19
  name = "perception"
20
20
  description = "Convert files (PDF, Docx, Images, Audio) into text. Use for reading docs or seeing images."
21
21
 
22
- def __init__(self):
22
+ def __init__(self, llm_config: Optional[Dict[str, Any]] = None):
23
23
  super().__init__()
24
+ self.llm_config = llm_config
24
25
  self._markitdown = None
25
26
 
26
27
  def _get_markitdown(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: parishad
3
- Version: 0.1.0
3
+ Version: 0.1.2
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
@@ -25,10 +25,12 @@ Requires-Dist: httpx>=0.25.0
25
25
  Requires-Dist: jsonschema>=4.0.0
26
26
  Requires-Dist: numpy<2.0
27
27
  Requires-Dist: openai>=1.0.0
28
+ Requires-Dist: psutil>=5.9.0
28
29
  Requires-Dist: pydantic-settings>=2.0.0
29
30
  Requires-Dist: pydantic>=2.0.0
30
31
  Requires-Dist: pyyaml>=6.0
31
32
  Requires-Dist: rich>=13.0.0
33
+ Requires-Dist: textual>=0.70.0
32
34
  Requires-Dist: tiktoken>=0.5.0
33
35
  Provides-Extra: all
34
36
  Requires-Dist: accelerate>=0.25.0; extra == 'all'
@@ -1,4 +1,4 @@
1
- parishad/__init__.py,sha256=S-7Gzx7ahrOEsv93_xrRl5zExewYeFyDhKmPQCRm47g,1199
1
+ parishad/__init__.py,sha256=SARKl5rGmtcjU6NuOb8V2YnDXYhBwrWSbOfOGvuFtqA,1199
2
2
  parishad/__main__.py,sha256=0qrXs91zon0xM17c5HTrkiSBZwiRfMJV2jOo0qP7MJ8,146
3
3
  parishad/checker/__init__.py,sha256=m-Vl5emTwJWumsIbLY7g5pslU9m1uTcJNAxnGJPbkJU,540
4
4
  parishad/checker/deterministic.py,sha256=reXH8aew_pBGn85MRMQcHRzi6fWU_JaGniimYUqsly0,20477
@@ -10,16 +10,16 @@ parishad/cli/main.py,sha256=vmCV1O1u5fqWmMIjjzECeMOgUayGoI8n_oCaRgmf_Nw,38267
10
10
  parishad/cli/prarambh.py,sha256=4vvRzJHWC6ECPdL4IKv5laZDy4v3ZYDq4vjqu3Hll30,4296
11
11
  parishad/cli/sthapana.py,sha256=Sxk-TA-WCKW2CSPBQPhhEgaON60HKVDUaMorFjc-BNQ,13534
12
12
  parishad/config/modes.py,sha256=eh4B5ZUUPN6HqYAj5hLudTqkyxBHKhIsx_Q_BvSduGk,4066
13
- parishad/config/pipeline.core.yaml,sha256=NRi7-xeTvsBPhknT1OUPqURHVXB8uQmEfNTdTdYAhQw,2960
14
- parishad/config/pipeline.extended.yaml,sha256=gnrN-Tai7oxpFw38WNVptWcb-tS-7gZCT_NBvRjKKaQ,4187
15
- parishad/config/pipeline.fast.yaml,sha256=VzGFr480bjE96MqYn5Vwr_c6vHlzePGKPV3MSaW5XwY,2050
13
+ parishad/config/pipeline.core.yaml,sha256=M2-92a0GxM3JymKj5hVzUQ6sxr2qTNIflTBfFH_CiVQ,2960
14
+ parishad/config/pipeline.extended.yaml,sha256=-pxmHY27BuCZVvI-BL0Vk5ecS8lGDiUHgv7h3oyecrs,4187
15
+ parishad/config/pipeline.fast.yaml,sha256=Dic_1KBdW8sUVGxyTr-DZS0OPjpzwQsXSWk3oAasGEc,2050
16
16
  parishad/config/user_config.py,sha256=aKgiILWKDc3_OYaZz-u9a4Pm1PP1EULeX-q6KqMbcho,3165
17
17
  parishad/data/catalog.py,sha256=hnhyHlAuETzXf1hlP_snXYhjq2nZG9Ab2OGXeMyYlDY,4623
18
- parishad/data/models.json,sha256=oClNTo90Avt80n4AhImrZWQO2Uhx1RJanuD1q5_s-tY,19388
18
+ parishad/data/models.json,sha256=X-4_zHLfD-PP47_jt05E419gKhwHR_92BYDXMmVhhCs,19388
19
19
  parishad/memory/__init__.py,sha256=AJEa0RNcqjep_3mkYniuhK-ZUj1mshCk0rPTrCQrxhY,2687
20
20
  parishad/models/__init__.py,sha256=v0CqeJ69qwkUw4nC63VH6QOx4v8Mce1_akb-1VvzTa4,3682
21
21
  parishad/models/costs.py,sha256=2ngHV1HsDkuUsTK8QCJGqXlJUWOlVVgoO72K8oJ0ZrA,11393
22
- parishad/models/downloader.py,sha256=MIILM4je7UUzb56qO4iReTJQtI8SoaN4teeQAjRWxXw,55248
22
+ parishad/models/downloader.py,sha256=Co0lMgevYUcRvKaJWDBpBxhNDIw2FvdFM3gxYy_DEOs,55460
23
23
  parishad/models/optimizations.py,sha256=Ww4jUIdZ4-6OPzA-jqktE_J5dfp5OKawErBLwLoE27Q,25789
24
24
  parishad/models/profiles.py,sha256=E7gXpzxxX1k8r8cmBBeLc0zQMD8KbSurMfzLNXDyS2A,19504
25
25
  parishad/models/reliability.py,sha256=gUKunkPM4GW0akO5RFtIwhGMKYCXAXdhrya7XAQyjzQ,26392
@@ -34,7 +34,7 @@ parishad/models/backends/ollama.py,sha256=nyk7rxDXn6Cw03S6Z9Cm3SxaZp09m-1qf6JE1T
34
34
  parishad/models/backends/openai_api.py,sha256=9CmBvhQEcPX0R1RtQnHWVcTdH9wMT6Pu1acF2vy8C2o,6041
35
35
  parishad/models/backends/transformers_hf.py,sha256=z-nw18yY62BorAawrand59GgD_0dmnYqibQGcP6sadQ,6619
36
36
  parishad/orchestrator/__init__.py,sha256=a52VEdW_98XwD3FseRu_9_sKagFs6z5PtXS_o4j2fbs,413
37
- parishad/orchestrator/config_loader.py,sha256=wXTz9AWJWeminVWz3YR5jxhne5lCw-JjYvvQGbvOyNg,6975
37
+ parishad/orchestrator/config_loader.py,sha256=FebKOCQNYqnaGSEEypxXp64zpqD73f3A7OsO8kvl2vM,6975
38
38
  parishad/orchestrator/engine.py,sha256=WAKcHqG20tRqt-Hg62iR-TOswmgc0Y0OclSuSlZe0lA,45644
39
39
  parishad/orchestrator/exceptions.py,sha256=jLNkoKvhuKny2upGv04L7Dj4SAi0umVRC0RAukX5BBM,391
40
40
  parishad/roles/__init__.py,sha256=OF8Zb-yNP9nX0gS9gnYkt0QoG_KyHYwtw_OiWplFnxc,1171
@@ -52,7 +52,7 @@ parishad/roles/vidushak.py,sha256=f6lmtZrIbAO97RMG2NQYSm14JbqguBA7ukOT-n6i0cM,20
52
52
  parishad/tools/__init__.py,sha256=Ni_RlR4AnOFIBivbM-sfpRdZI0Tpu9MXkbs3n4Ngx8I,279
53
53
  parishad/tools/base.py,sha256=3uwWdSj1RRvbGCJpdBMHQ0LJx8fnE-d8uHQmDzkyqWk,1676
54
54
  parishad/tools/fs.py,sha256=7OiCm2KNnq6hnZCMoMEbompA_TUYCbu1kg-8ZgwhXZ0,4427
55
- parishad/tools/perception.py,sha256=Q0snYwzWCZbSqi8qcnDhxoZGx-n74cYRCJyS2ajt4wQ,3089
55
+ parishad/tools/perception.py,sha256=D0xc_Q7oLopTYhR58kkjM7RlCzC0mDH0FCGbhu-yIGg,3171
56
56
  parishad/tools/retrieval.py,sha256=WGoji7n5pKgww3iBNN68UelSCOePxLIf33hQXu3RGlA,2472
57
57
  parishad/tools/shell.py,sha256=RFESJun8TmaB97yaWl9LpsTrr-flR0EoqTs1wast7Xc,3258
58
58
  parishad/utils/__init__.py,sha256=vRipAnXqboRXUMY2RvUuYVemwKxUDxgovjyyazvTYbo,218
@@ -61,8 +61,8 @@ parishad/utils/logging.py,sha256=TT16YB6cOhBPyo9a6dZRww3SjStrZKihdtq9hwqBXJo,214
61
61
  parishad/utils/scanner.py,sha256=8wxaNgH3i_T4AdyBuLr9L4KcQ_AORguA6xvnOIyem8k,5841
62
62
  parishad/utils/text.py,sha256=S_3Ox4T3C87XfyXdR2b3JMatpCiOozaqPUbVic7OIFM,1617
63
63
  parishad/utils/tracing.py,sha256=x35BmMO9M83dVCy73kYqkOFE4zKMrUFe_RuV8qIWJaM,4304
64
- parishad-0.1.0.dist-info/METADATA,sha256=ROTQw7pjwqJCYUzxl27LOLxv4RBB3GZtEzxh75dlFCo,11021
65
- parishad-0.1.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
66
- parishad-0.1.0.dist-info/entry_points.txt,sha256=cCF4Bg5sLxlLMJhnOnWNua3XYzAGlL5ri-55y0fWPek,51
67
- parishad-0.1.0.dist-info/licenses/LICENSE,sha256=Xow-fDHX9pzrvBkPHImvQa-Uc1g6BDbz9IE4jPfB6D0,1073
68
- parishad-0.1.0.dist-info/RECORD,,
64
+ parishad-0.1.2.dist-info/METADATA,sha256=ME66m_3EBfyZJZbWzlyu1PY52af2n1c7d-gJrdkZGTQ,11081
65
+ parishad-0.1.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
66
+ parishad-0.1.2.dist-info/entry_points.txt,sha256=cCF4Bg5sLxlLMJhnOnWNua3XYzAGlL5ri-55y0fWPek,51
67
+ parishad-0.1.2.dist-info/licenses/LICENSE,sha256=Xow-fDHX9pzrvBkPHImvQa-Uc1g6BDbz9IE4jPfB6D0,1073
68
+ parishad-0.1.2.dist-info/RECORD,,