parishad 0.1.2__tar.gz → 0.1.4__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.
- {parishad-0.1.2 → parishad-0.1.4}/.github/workflows/publish.yml +15 -5
- {parishad-0.1.2 → parishad-0.1.4}/CHANGELOG.md +12 -0
- {parishad-0.1.2 → parishad-0.1.4}/PKG-INFO +1 -1
- {parishad-0.1.2 → parishad-0.1.4}/pyproject.toml +1 -1
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/__init__.py +1 -1
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/config/pipeline.core.yaml +1 -1
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/config/pipeline.extended.yaml +1 -1
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/config/pipeline.fast.yaml +1 -1
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/data/models.json +1 -1
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/models/runner.py +14 -4
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/orchestrator/config_loader.py +2 -2
- {parishad-0.1.2 → parishad-0.1.4}/.gitignore +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/CODE_OF_CONDUCT.md +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/CONTRIBUTING.md +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/LICENSE +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/README.md +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/SECURITY.md +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/docs/assets/logo.jpeg +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/docs/assets/logo.svg +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/__main__.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/checker/__init__.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/checker/deterministic.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/checker/ensemble.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/checker/retrieval.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/cli/__init__.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/cli/code.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/cli/main.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/cli/prarambh.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/cli/sthapana.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/config/modes.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/config/user_config.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/data/catalog.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/memory/__init__.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/models/__init__.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/models/backends/__init__.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/models/backends/base.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/models/backends/huggingface.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/models/backends/llama_cpp.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/models/backends/mlx_lm.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/models/backends/ollama.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/models/backends/openai_api.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/models/backends/transformers_hf.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/models/costs.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/models/downloader.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/models/optimizations.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/models/profiles.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/models/reliability.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/models/tokenization.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/orchestrator/__init__.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/orchestrator/engine.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/orchestrator/exceptions.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/roles/__init__.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/roles/base.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/roles/dandadhyaksha.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/roles/darbari.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/roles/majumdar.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/roles/pantapradhan.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/roles/prerak.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/roles/raja.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/roles/sacheev.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/roles/sainik.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/roles/sar_senapati.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/roles/vidushak.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/tools/__init__.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/tools/base.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/tools/fs.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/tools/perception.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/tools/retrieval.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/tools/shell.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/utils/__init__.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/utils/hardware.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/utils/logging.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/utils/scanner.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/utils/text.py +0 -0
- {parishad-0.1.2 → parishad-0.1.4}/src/parishad/utils/tracing.py +0 -0
|
@@ -35,19 +35,27 @@ jobs:
|
|
|
35
35
|
# Extract version from pyproject.toml
|
|
36
36
|
VERSION=$(python -c "import toml; print(toml.load('pyproject.toml')['project']['version'])")
|
|
37
37
|
echo "Detected version: $VERSION"
|
|
38
|
+
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
|
38
39
|
|
|
39
40
|
# Check if tag exists
|
|
40
41
|
if git rev-parse "v$VERSION" >/dev/null 2>&1; then
|
|
41
|
-
echo "Tag v$VERSION already exists.
|
|
42
|
-
|
|
42
|
+
echo "Tag v$VERSION already exists."
|
|
43
|
+
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
|
|
44
|
+
echo "Manual trigger detected. Retrying release for existing version."
|
|
45
|
+
echo "new_release=true" >> $GITHUB_OUTPUT
|
|
46
|
+
echo "skip_tag=true" >> $GITHUB_OUTPUT
|
|
47
|
+
else
|
|
48
|
+
echo "Skipping release to prevent duplicates."
|
|
49
|
+
echo "new_release=false" >> $GITHUB_OUTPUT
|
|
50
|
+
fi
|
|
43
51
|
else
|
|
44
52
|
echo "New version detected!"
|
|
45
53
|
echo "new_release=true" >> $GITHUB_OUTPUT
|
|
46
|
-
echo "
|
|
54
|
+
echo "skip_tag=false" >> $GITHUB_OUTPUT
|
|
47
55
|
fi
|
|
48
56
|
|
|
49
57
|
- name: Create Tag
|
|
50
|
-
if: steps.check_version.outputs.new_release == 'true'
|
|
58
|
+
if: steps.check_version.outputs.new_release == 'true' && steps.check_version.outputs.skip_tag != 'true'
|
|
51
59
|
env:
|
|
52
60
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
53
61
|
run: |
|
|
@@ -59,7 +67,9 @@ jobs:
|
|
|
59
67
|
|
|
60
68
|
- name: Build package
|
|
61
69
|
if: steps.check_version.outputs.new_release == 'true'
|
|
62
|
-
run:
|
|
70
|
+
run: |
|
|
71
|
+
rm -rf dist/ build/ *.egg-info
|
|
72
|
+
python -m build
|
|
63
73
|
|
|
64
74
|
- name: Publish to PyPI
|
|
65
75
|
if: steps.check_version.outputs.new_release == 'true'
|
|
@@ -5,6 +5,18 @@ 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.4] - 2026-01-26
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- **Windows Compilation Spam**: Reverted `llama-cpp-python` to optional dependency to prevent pip build failures on Windows.
|
|
12
|
+
- **Helpful Errors**: Added smart detection for missing backend on Windows, providing direct `pip install` commands for pre-built wheels.
|
|
13
|
+
|
|
14
|
+
## [0.1.3] - 2026-01-26
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
- **Missing Core Backend**: Promoted `llama-cpp-python` to core dependencies (`backend-not-available` fix).
|
|
18
|
+
- **Default Profile**: Updated pipeline default version to `0.1.3`.
|
|
19
|
+
|
|
8
20
|
## [0.1.2] - 2026-01-26
|
|
9
21
|
|
|
10
22
|
### Fixed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: parishad
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.4
|
|
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.
|
|
7
|
+
version = "0.1.4"
|
|
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.
|
|
8
|
+
__version__ = "0.1.4"
|
|
9
9
|
|
|
10
10
|
from .orchestrator.engine import Parishad, ParishadEngine, PipelineConfig
|
|
11
11
|
from .models.runner import ModelRunner, ModelConfig
|
|
@@ -307,10 +307,20 @@ def _create_backend(backend_type: Backend | str) -> BackendProtocol:
|
|
|
307
307
|
|
|
308
308
|
if backend_name == "llama_cpp":
|
|
309
309
|
if not is_backend_available("llama_cpp"):
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
)
|
|
310
|
+
import platform
|
|
311
|
+
msg = "llama-cpp-python is not installed."
|
|
312
|
+
|
|
313
|
+
if platform.system() == "Windows":
|
|
314
|
+
msg += (
|
|
315
|
+
"\n\n❌ compilation failed likely due to missing MSVC/CUDA."
|
|
316
|
+
"\n💡 SOLUTION: Install a pre-built wheel for Windows:"
|
|
317
|
+
"\n pip install llama-cpp-python --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cu121"
|
|
318
|
+
"\n (Select the cpu or cuda version matching your system)"
|
|
319
|
+
)
|
|
320
|
+
else:
|
|
321
|
+
msg += "\nInstall with: pip install llama-cpp-python"
|
|
322
|
+
|
|
323
|
+
raise BackendNotAvailableError(msg)
|
|
314
324
|
return LlamaCppBackend()
|
|
315
325
|
|
|
316
326
|
if backend_name == "openai":
|
|
@@ -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.4"
|
|
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.4"),
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|