parishad 0.1.5__py3-none-any.whl → 0.1.6__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.5"
8
+ __version__ = "0.1.6"
9
9
 
10
10
  from .orchestrator.engine import Parishad, ParishadEngine, PipelineConfig
11
11
  from .models.runner import ModelRunner, ModelConfig
parishad/cli/code.py CHANGED
@@ -2707,6 +2707,12 @@ class ParishadApp(App):
2707
2707
 
2708
2708
  self.log_message(f"[dim]━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[/dim]\n")
2709
2709
 
2710
+ # Check for silent file generation (common source of confusion)
2711
+ for role_output in trace.roles:
2712
+ if role_output.core_output and role_output.core_output.get("target_file"):
2713
+ fpath = role_output.core_output.get("target_file")
2714
+ self.log_message(f"\n[bold blue]📁 File Generated:[/bold blue] {fpath}")
2715
+
2710
2716
  # Display the final answer from Raja
2711
2717
  if trace.final_answer:
2712
2718
  answer = trace.final_answer.final_answer
@@ -2714,15 +2720,22 @@ class ParishadApp(App):
2714
2720
  elif trace.error:
2715
2721
  self.log_message(f"\n[red]Error: {trace.error}[/red]")
2716
2722
  else:
2717
- self.log_message("\n[yellow]No answer generated[/yellow]")
2723
+ # Check if we generated a file but no text answer
2724
+ file_gen = any(r.core_output and r.core_output.get("target_file") for r in trace.roles)
2725
+ if not file_gen:
2726
+ self.log_message("\n[yellow]No answer generated[/yellow]")
2718
2727
 
2719
2728
  except Exception as e:
2720
2729
  import traceback
2721
2730
  tb = traceback.format_exc()
2722
2731
  self.log_message(f"\n[red]Error ({type(e).__name__}): {e}[/red]\n[dim]{tb[:500]}...[/dim]")
2723
2732
  finally:
2724
- # Always reset processing flag
2733
+ # Always reset processing flag and re-enable input
2725
2734
  self._processing_query = False
2735
+ try:
2736
+ self.query_one("#user-input").focus()
2737
+ except:
2738
+ pass
2726
2739
 
2727
2740
  def handle_command(self, parsed: ParsedInput) -> None:
2728
2741
  """Handle slash commands with ParsedInput."""
@@ -3,7 +3,7 @@
3
3
  # Uses 2 model slots: mid + big
4
4
 
5
5
  name: "parishad-core"
6
- version: "0.1.5"
6
+ version: "0.1.6"
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.5"
6
+ version: "0.1.6"
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.5"
6
+ version: "0.1.6"
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.5",
2
+ "version": "0.1.6",
3
3
  "updated": "2024-12-30",
4
4
  "sources": {
5
5
  "ollama": {
@@ -21,7 +21,7 @@ class RoleSpec:
21
21
  name: str
22
22
  class_name: str
23
23
  slot: str
24
- version: str = "0.1.5"
24
+ version: str = "0.1.6"
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.5"),
113
+ version=role_config.get("version", "0.1.6"),
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.5
3
+ Version: 0.1.6
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=Qe1HpLgNjNNMZve7X2UZO0RhLpDQkHhtqSYOespV22s,1199
1
+ parishad/__init__.py,sha256=y1Kid6blaHCTzk4WMfwDHHNnHm5ghqA8qNTz6uO4U48,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=P3sLqIXNLH_9cfxHZU-doPygCg_0KgffWwxDMpDMxdA,118649
8
+ parishad/cli/code.py,sha256=YTUKZrecm82cr0WZAqk4bV0slU3zLHqYJwg-Jcaa-Ok,119367
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=BKvMUfwoZRahRqp70kI-5YBoNiSsT8n94Kaup8w8l6Q,2960
14
- parishad/config/pipeline.extended.yaml,sha256=T2vlv9lz-XNKiDZVAcZrMKIuCOHtEKVUbVj06vaVspE,4187
15
- parishad/config/pipeline.fast.yaml,sha256=72Sp7k2Zvf3c1yjIGx29uwtNw5Y-yp4SewVPQF7S488,2050
13
+ parishad/config/pipeline.core.yaml,sha256=9f1BeR4zlXLeImn5SYtonova1rEW4fbyvhppG_hN41w,2960
14
+ parishad/config/pipeline.extended.yaml,sha256=VVQMZxjqwqJFV1xhYcJzaaiHV8zjGbDuR0FGITvGrXY,4187
15
+ parishad/config/pipeline.fast.yaml,sha256=RGBRSdc6WoQq_89_F-qFQLfhowwCSzJ15xtRdjRqCIQ,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=P8xk1byW70QbBoGwfGkDhYmoBulU1oH8baLKTbOTp5I,19388
18
+ parishad/data/models.json,sha256=AfJ1u4Z-HTVTlWGxvxduZUTcgPc4UJ-pv9srUMS5SFc,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
@@ -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=JwE1867HU9L3aTorxO9hPvTGFtDJJloMwfpbp75uJ0g,6975
37
+ parishad/orchestrator/config_loader.py,sha256=Jymo0MCS_K4-bdrYEA6bd5Q8x7dAsEwCH9vBhmSLuC8,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=a0EDIFEX4-KF3k0KQEKIhm2MYPXjcjjshhwY_tgJcp4,15403
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.5.dist-info/METADATA,sha256=arx-ShPOOFtNy9K-7tJKHfx213PBPxY-JKdiAMjDHTM,11081
66
- parishad-0.1.5.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
67
- parishad-0.1.5.dist-info/entry_points.txt,sha256=cCF4Bg5sLxlLMJhnOnWNua3XYzAGlL5ri-55y0fWPek,51
68
- parishad-0.1.5.dist-info/licenses/LICENSE,sha256=Xow-fDHX9pzrvBkPHImvQa-Uc1g6BDbz9IE4jPfB6D0,1073
69
- parishad-0.1.5.dist-info/RECORD,,
65
+ parishad-0.1.6.dist-info/METADATA,sha256=HeHdZ8GtK8ymv7P4J2JjJsdhoWWIeCvfTsxY3sbhLGY,11081
66
+ parishad-0.1.6.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
67
+ parishad-0.1.6.dist-info/entry_points.txt,sha256=cCF4Bg5sLxlLMJhnOnWNua3XYzAGlL5ri-55y0fWPek,51
68
+ parishad-0.1.6.dist-info/licenses/LICENSE,sha256=Xow-fDHX9pzrvBkPHImvQa-Uc1g6BDbz9IE4jPfB6D0,1073
69
+ parishad-0.1.6.dist-info/RECORD,,