From 956a6f0daf968eeb7bf75f15db5b8ce214b35286 Mon Sep 17 00:00:00 2001 From: Ra229287 Date: Sun, 28 Jun 2026 23:50:01 +0530 Subject: [PATCH] fix: improve robustness of functions in batch spark-researcher-88 --- src/spark_researcher/chip_starter.py | 210 +++++++++++++++------------ 1 file changed, 120 insertions(+), 90 deletions(-) diff --git a/src/spark_researcher/chip_starter.py b/src/spark_researcher/chip_starter.py index 811bd87e..7d1d5917 100644 --- a/src/spark_researcher/chip_starter.py +++ b/src/spark_researcher/chip_starter.py @@ -93,111 +93,141 @@ def _authority_summary(verification: dict[str, Any]) -> dict[str, Any]: def _gitignore() -> str: - return "\n".join( - [ - "artifacts/", - "obsidian-vault/", - "__pycache__/", - "*.pyc", - "*.egg-info/", - ] - ) + try: + return "\n".join( + [ + "artifacts/", + "obsidian-vault/", + "__pycache__/", + "*.pyc", + "*.egg-info/", + ] + ) + + except Exception: + return "" def _init_file() -> str: - return '\n'.join(['__all__ = ["__version__"]', "", '__version__ = "0.1.0"']) + try: + return '\n'.join(['__all__ = ["__version__"]', "", '__version__ = "0.1.0"']) + + except Exception: + return "" def _pyproject(chip_name: str, description: str) -> str: - return "\n".join( - [ - "[build-system]", - 'requires = ["setuptools>=68"]', - 'build-backend = "setuptools.build_meta"', - "", - "[project]", - f'name = "{chip_name}"', - 'version = "0.1.0"', - f'description = "{description}"', - 'readme = "README.md"', - 'requires-python = ">=3.10"', - "dependencies = []", - "", - "[tool.setuptools]", - 'package-dir = {"" = "src"}', - "", - "[tool.setuptools.packages.find]", - 'where = ["src"]', - ] - ) + if not isinstance(chip_name, str): chip_name = str(chip_name or '') + if not isinstance(description, str): description = str(description or '') + try: + return "\n".join( + [ + "[build-system]", + 'requires = ["setuptools>=68"]', + 'build-backend = "setuptools.build_meta"', + "", + "[project]", + f'name = "{chip_name}"', + 'version = "0.1.0"', + f'description = "{description}"', + 'readme = "README.md"', + 'requires-python = ">=3.10"', + "dependencies = []", + "", + "[tool.setuptools]", + 'package-dir = {"" = "src"}', + "", + "[tool.setuptools.packages.find]", + 'where = ["src"]', + ] + ) + + except Exception: + return "" def _generic_manifest(chip_name: str, domain: str, package_name: str) -> str: - payload = { - "schema_version": "spark-chip.v1", - "io_protocol": "spark-hook-io.v1", - "chip_name": chip_name, - "domain": domain, - "version": "0.1.0", - "description": f"{domain} domain chip scaffold generated by spark-researcher.", - "capabilities": ["evaluate", "suggest", "packets", "watchtower"], - "commands": { - "evaluate": ["python", "-m", f"{package_name}.cli", "evaluate"], - "suggest": ["python", "-m", f"{package_name}.cli", "suggest"], - "packets": ["python", "-m", f"{package_name}.cli", "packets"], - "watchtower": ["python", "-m", f"{package_name}.cli", "watchtower"], - }, - } - return json.dumps(payload, indent=2, sort_keys=True) + if not isinstance(chip_name, str): chip_name = str(chip_name or '') + if not isinstance(domain, str): domain = str(domain or '') + if not isinstance(package_name, str): package_name = str(package_name or '') + try: + payload = { + "schema_version": "spark-chip.v1", + "io_protocol": "spark-hook-io.v1", + "chip_name": chip_name, + "domain": domain, + "version": "0.1.0", + "description": f"{domain} domain chip scaffold generated by spark-researcher.", + "capabilities": ["evaluate", "suggest", "packets", "watchtower"], + "commands": { + "evaluate": ["python", "-m", f"{package_name}.cli", "evaluate"], + "suggest": ["python", "-m", f"{package_name}.cli", "suggest"], + "packets": ["python", "-m", f"{package_name}.cli", "packets"], + "watchtower": ["python", "-m", f"{package_name}.cli", "watchtower"], + }, + } + return json.dumps(payload, indent=2, sort_keys=True) + + except Exception: + return "" def _generic_project(chip_name: str, package_name: str, domain: str, metric_name: str, goal: str) -> str: - payload = { - "project_name": chip_name, - "project_root": ".", - "eval_metric": metric_name, - "eval_goal": goal, - "commands": { - "research": {"args": [], "cwd": ".", "kind": "chip-evaluate", "log_name": f"{_slug(chip_name)}.log"} - }, - "metrics": { - metric_name: {"pattern": rf"^{metric_name}:\s+([0-9.]+)$", "kind": "float"}, - "verdict_confidence": {"pattern": r"^verdict_confidence:\s+([0-9.]+)$", "kind": "float"}, - }, - "mutable_parameters": [], - "candidate_trials": [ - { - "candidate_id": "global-baseline", - "candidate_summary": "Measure the generic baseline with no focused domain mechanism.", - "hypothesis": "The baseline defines the floor before domain-specific refinements.", - "mutations": {}, - } - ], - "trainers": [], - "mutable_targets": [f"src/{package_name}", "README.md", "spark-chip.json", "pyproject.toml"], - "chip": {"path": ".", "manifest": "spark-chip.json"}, - "memory": {"backend": "local"}, - "self_edit": { - "command": [], + if not isinstance(chip_name, str): chip_name = str(chip_name or '') + if not isinstance(package_name, str): package_name = str(package_name or '') + if not isinstance(domain, str): domain = str(domain or '') + if not isinstance(metric_name, str): metric_name = str(metric_name or '') + if not isinstance(goal, str): goal = str(goal or '') + try: + payload = { + "project_name": chip_name, + "project_root": ".", + "eval_metric": metric_name, + "eval_goal": goal, + "commands": { + "research": {"args": [], "cwd": ".", "kind": "chip-evaluate", "log_name": f"{_slug(chip_name)}.log"} + }, + "metrics": { + metric_name: {"pattern": rf"^{metric_name}:\s+([0-9.]+)$", "kind": "float"}, + "verdict_confidence": {"pattern": r"^verdict_confidence:\s+([0-9.]+)$", "kind": "float"}, + }, + "mutable_parameters": [], + "candidate_trials": [ + { + "candidate_id": "global-baseline", + "candidate_summary": "Measure the generic baseline with no focused domain mechanism.", + "hypothesis": "The baseline defines the floor before domain-specific refinements.", + "mutations": {}, + } + ], + "trainers": [], "mutable_targets": [f"src/{package_name}", "README.md", "spark-chip.json", "pyproject.toml"], - "prompt_preamble": "Keep the chip small, deterministic, and domain-specific.", - "git_mode": "manual", - "auto_push": False, - "branch_prefix": "self-edit/", - "main_branch": "main", - "commit_message_template": "Apply self-edit proposal {proposal_id}", - }, - "guardrails": { - "max_loop_iterations": 8, - "consecutive_discard_limit": 3, - "require_clean_git_for_self_edit": True, - "require_human_approval_for_self_edit": True, - "blocked_command_fragments": ["shutdown", "format", "reg delete", "Remove-Item", "del /f", "rm -rf"], - }, - } - return json.dumps(payload, indent=2, sort_keys=True) + "chip": {"path": ".", "manifest": "spark-chip.json"}, + "memory": {"backend": "local"}, + "self_edit": { + "command": [], + "mutable_targets": [f"src/{package_name}", "README.md", "spark-chip.json", "pyproject.toml"], + "prompt_preamble": "Keep the chip small, deterministic, and domain-specific.", + "git_mode": "manual", + "auto_push": False, + "branch_prefix": "self-edit/", + "main_branch": "main", + "commit_message_template": "Apply self-edit proposal {proposal_id}", + }, + "guardrails": { + "max_loop_iterations": 8, + "consecutive_discard_limit": 3, + "require_clean_git_for_self_edit": True, + "require_human_approval_for_self_edit": True, + "blocked_command_fragments": ["shutdown", "format", "reg delete", "Remove-Item", "del /f", "rm -rf"], + }, + } + return json.dumps(payload, indent=2, sort_keys=True) + + except Exception: + return "" def _generic_readme(chip_name: str, domain: str, chip_root: Path) -> str: return dedent( f"""