parishad 0.1.5__py3-none-any.whl → 0.1.7__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 +1 -1
- parishad/cli/code.py +19 -3
- parishad/config/pipeline.core.yaml +1 -1
- parishad/config/pipeline.extended.yaml +1 -1
- parishad/config/pipeline.fast.yaml +1 -1
- parishad/data/models.json +1 -1
- parishad/models/runner.py +3 -3
- parishad/orchestrator/config_loader.py +2 -2
- parishad/roles/sainik.py +1 -0
- {parishad-0.1.5.dist-info → parishad-0.1.7.dist-info}/METADATA +1 -1
- {parishad-0.1.5.dist-info → parishad-0.1.7.dist-info}/RECORD +14 -14
- {parishad-0.1.5.dist-info → parishad-0.1.7.dist-info}/WHEEL +0 -0
- {parishad-0.1.5.dist-info → parishad-0.1.7.dist-info}/entry_points.txt +0 -0
- {parishad-0.1.5.dist-info → parishad-0.1.7.dist-info}/licenses/LICENSE +0 -0
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.
|
|
8
|
+
__version__ = "0.1.7"
|
|
9
9
|
|
|
10
10
|
from .orchestrator.engine import Parishad, ParishadEngine, PipelineConfig
|
|
11
11
|
from .models.runner import ModelRunner, ModelConfig
|
parishad/cli/code.py
CHANGED
|
@@ -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
|
-
|
|
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]")
|
|
@@ -2707,6 +2710,12 @@ class ParishadApp(App):
|
|
|
2707
2710
|
|
|
2708
2711
|
self.log_message(f"[dim]━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[/dim]\n")
|
|
2709
2712
|
|
|
2713
|
+
# Check for silent file generation (common source of confusion)
|
|
2714
|
+
for role_output in trace.roles:
|
|
2715
|
+
if role_output.core_output and role_output.core_output.get("target_file"):
|
|
2716
|
+
fpath = role_output.core_output.get("target_file")
|
|
2717
|
+
self.log_message(f"\n[bold blue]📁 File Generated:[/bold blue] {fpath}")
|
|
2718
|
+
|
|
2710
2719
|
# Display the final answer from Raja
|
|
2711
2720
|
if trace.final_answer:
|
|
2712
2721
|
answer = trace.final_answer.final_answer
|
|
@@ -2714,15 +2723,22 @@ class ParishadApp(App):
|
|
|
2714
2723
|
elif trace.error:
|
|
2715
2724
|
self.log_message(f"\n[red]Error: {trace.error}[/red]")
|
|
2716
2725
|
else:
|
|
2717
|
-
|
|
2726
|
+
# Check if we generated a file but no text answer
|
|
2727
|
+
file_gen = any(r.core_output and r.core_output.get("target_file") for r in trace.roles)
|
|
2728
|
+
if not file_gen:
|
|
2729
|
+
self.log_message("\n[yellow]No answer generated[/yellow]")
|
|
2718
2730
|
|
|
2719
2731
|
except Exception as e:
|
|
2720
2732
|
import traceback
|
|
2721
2733
|
tb = traceback.format_exc()
|
|
2722
2734
|
self.log_message(f"\n[red]Error ({type(e).__name__}): {e}[/red]\n[dim]{tb[:500]}...[/dim]")
|
|
2723
2735
|
finally:
|
|
2724
|
-
# Always reset processing flag
|
|
2736
|
+
# Always reset processing flag and re-enable input
|
|
2725
2737
|
self._processing_query = False
|
|
2738
|
+
try:
|
|
2739
|
+
self.query_one("#user-input").focus()
|
|
2740
|
+
except:
|
|
2741
|
+
pass
|
|
2726
2742
|
|
|
2727
2743
|
def handle_command(self, parsed: ParsedInput) -> None:
|
|
2728
2744
|
"""Handle slash commands with ParsedInput."""
|
parishad/data/models.json
CHANGED
parishad/models/runner.py
CHANGED
|
@@ -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 =
|
|
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 =
|
|
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 !=
|
|
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.
|
|
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.
|
|
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"),
|
parishad/roles/sainik.py
CHANGED
|
@@ -53,6 +53,7 @@ Guidelines:
|
|
|
53
53
|
- If writing code, put the COMPLETE runnable code in "content".
|
|
54
54
|
- If writing text, put the clear explanation in "content".
|
|
55
55
|
- If the user asked to change/create a file, you MUST specify "target_file".
|
|
56
|
+
- IMPORTANT: Do NOT create files unless explicitly asked! For general questions/explanations, keep "target_file": null.
|
|
56
57
|
- "target_file" should be relative to the current directory (e.g., "src/main.py").
|
|
57
58
|
- If "target_file" is a text/markdown/json file (not executable code), put the RAW content in "content". DO NOT write a Python script to create it.
|
|
58
59
|
- If you need to Use a tool, add it to `tool_calls`. Available tools will be listed in the prompt.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: parishad
|
|
3
|
-
Version: 0.1.
|
|
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
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
parishad/__init__.py,sha256=
|
|
1
|
+
parishad/__init__.py,sha256=TfdCOFMnwQnoTXbBcbF8Jr-ND1aP3FQk7rwvfo7n4ic,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
|
|
5
5
|
parishad/checker/ensemble.py,sha256=ozJwmQFNY4ojcYB3I0o5-3xUk43tdDqHm-jGVgO6Bhg,17506
|
|
6
6
|
parishad/checker/retrieval.py,sha256=jQ5Zf38Y1rcBrhmAOyNs4sTHFwF98Iqugsw1rGLHPks,16974
|
|
7
7
|
parishad/cli/__init__.py,sha256=iI_jctu7iGt7SZMfdkAQ75eFORLjy4soWC9DMzV8WaI,67
|
|
8
|
-
parishad/cli/code.py,sha256=
|
|
8
|
+
parishad/cli/code.py,sha256=0pRqoEtHeVILihiycYUXQ2v1-7TmVmXtKze-YvUE9m8,119493
|
|
9
9
|
parishad/cli/main.py,sha256=qTegCLubN38iYivhrvdJFz-akwyWAKEOegq9XioTeuY,38513
|
|
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=
|
|
14
|
-
parishad/config/pipeline.extended.yaml,sha256=
|
|
15
|
-
parishad/config/pipeline.fast.yaml,sha256=
|
|
13
|
+
parishad/config/pipeline.core.yaml,sha256=VO-yxMSoPrto5JKQr8Z6H6Vz26dGzOyvX35YwWCNgE8,2960
|
|
14
|
+
parishad/config/pipeline.extended.yaml,sha256=nX16hF6Cx6FLadpYdQ0v2bCC5DwPsDa2stxK_K3SJgw,4187
|
|
15
|
+
parishad/config/pipeline.fast.yaml,sha256=ESXs-3tsagGDkBOiF9mnLrBwA7vyEkSf5SX6hhdMTGc,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=
|
|
18
|
+
parishad/data/models.json,sha256=nuunUASfvKgeKIj16bN6L-6thNfrMMHY5rvpD3U6fz0,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
|
|
@@ -23,7 +23,7 @@ parishad/models/downloader.py,sha256=Co0lMgevYUcRvKaJWDBpBxhNDIw2FvdFM3gxYy_DEOs
|
|
|
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
|
|
26
|
-
parishad/models/runner.py,sha256=
|
|
26
|
+
parishad/models/runner.py,sha256=B5loBuAaEe8Z72jVTtp7JKT2f5ElMMOS2LRHlQo-krc,21773
|
|
27
27
|
parishad/models/tokenization.py,sha256=mTl0QhLMSlSjjHzZccbvgPhRJJ6D36SrYTNEEL8AlZU,7305
|
|
28
28
|
parishad/models/backends/__init__.py,sha256=6j9TxZRa3ycaHVYEUDMWLFpoZms9mprgxW4dQfFp9vo,6696
|
|
29
29
|
parishad/models/backends/base.py,sha256=iLGkeANbkpQwOBh8zmW0uGORUHSOQkklSzrIUkfW2vE,5278
|
|
@@ -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=
|
|
37
|
+
parishad/orchestrator/config_loader.py,sha256=sc8cXhgaUg9b5KCUXQLtcAI-dzfOubyWDaIY0TZORoM,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
|
|
@@ -46,7 +46,7 @@ parishad/roles/pantapradhan.py,sha256=Hko47GQdbb561EHhFpWXrIIHw4bCHz8vu8sUtQmlic
|
|
|
46
46
|
parishad/roles/prerak.py,sha256=cpXPqibt1CT_Sz1q5F_m9mZKZVAGixPsIYtg3Vnwmo8,11879
|
|
47
47
|
parishad/roles/raja.py,sha256=iliR3v4YHnwSPPU1_GZUkNiTKgcoZ9EoiWJng_pfdBU,12096
|
|
48
48
|
parishad/roles/sacheev.py,sha256=terhWEEB_Zhti2Wb3LAK2aOYk8sFE72Q9cy7CfTor6I,6594
|
|
49
|
-
parishad/roles/sainik.py,sha256=
|
|
49
|
+
parishad/roles/sainik.py,sha256=DdQ4GNTvVkEE950i7UaKLbzcX9J6IB-iFCxdxHHRIVo,15523
|
|
50
50
|
parishad/roles/sar_senapati.py,sha256=XT7pPTYoJorusay1_v2Sk5-GgZX2auwRmJegLOvJGWA,5413
|
|
51
51
|
parishad/roles/vidushak.py,sha256=f6lmtZrIbAO97RMG2NQYSm14JbqguBA7ukOT-n6i0cM,2018
|
|
52
52
|
parishad/tools/__init__.py,sha256=Ni_RlR4AnOFIBivbM-sfpRdZI0Tpu9MXkbs3n4Ngx8I,279
|
|
@@ -62,8 +62,8 @@ parishad/utils/logging.py,sha256=TT16YB6cOhBPyo9a6dZRww3SjStrZKihdtq9hwqBXJo,214
|
|
|
62
62
|
parishad/utils/scanner.py,sha256=8wxaNgH3i_T4AdyBuLr9L4KcQ_AORguA6xvnOIyem8k,5841
|
|
63
63
|
parishad/utils/text.py,sha256=S_3Ox4T3C87XfyXdR2b3JMatpCiOozaqPUbVic7OIFM,1617
|
|
64
64
|
parishad/utils/tracing.py,sha256=x35BmMO9M83dVCy73kYqkOFE4zKMrUFe_RuV8qIWJaM,4304
|
|
65
|
-
parishad-0.1.
|
|
66
|
-
parishad-0.1.
|
|
67
|
-
parishad-0.1.
|
|
68
|
-
parishad-0.1.
|
|
69
|
-
parishad-0.1.
|
|
65
|
+
parishad-0.1.7.dist-info/METADATA,sha256=s-3tEYV7_E91nMqPpibGm7waSC0y8JuUvt-wIQ7sq0A,11081
|
|
66
|
+
parishad-0.1.7.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
67
|
+
parishad-0.1.7.dist-info/entry_points.txt,sha256=cCF4Bg5sLxlLMJhnOnWNua3XYzAGlL5ri-55y0fWPek,51
|
|
68
|
+
parishad-0.1.7.dist-info/licenses/LICENSE,sha256=Xow-fDHX9pzrvBkPHImvQa-Uc1g6BDbz9IE4jPfB6D0,1073
|
|
69
|
+
parishad-0.1.7.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|