{"id":49723756,"url":"https://github.com/universe-coder/laravel-self-heallm","last_synced_at":"2026-05-12T06:00:52.753Z","repository":{"id":355792550,"uuid":"1229557546","full_name":"universe-coder/laravel-self-heallm","owner":"universe-coder","description":"Open-source Laravel package that detects recent application errors, asks an LLM for a fix proposal via OpenAI-compatible API, validates safety rules, applies fixes in hybrid mode, and sends healing reports.","archived":false,"fork":false,"pushed_at":"2026-05-07T14:24:01.000Z","size":71,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-09T03:43:01.910Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/universe-coder.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-05T06:57:40.000Z","updated_at":"2026-05-07T14:23:43.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/universe-coder/laravel-self-heallm","commit_stats":null,"previous_names":["universe-coder/laravel-self-heallm"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/universe-coder/laravel-self-heallm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/universe-coder%2Flaravel-self-heallm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/universe-coder%2Flaravel-self-heallm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/universe-coder%2Flaravel-self-heallm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/universe-coder%2Flaravel-self-heallm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/universe-coder","download_url":"https://codeload.github.com/universe-coder/laravel-self-heallm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/universe-coder%2Flaravel-self-heallm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32882110,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-10T13:40:02.631Z","status":"online","status_checked_at":"2026-05-11T02:00:05.975Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-09T03:13:27.427Z","updated_at":"2026-05-12T06:00:52.747Z","avatar_url":"https://github.com/universe-coder.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Laravel Self-HeaLLM\n\n[![Latest Version](https://img.shields.io/packagist/v/self-heallm/laravel-self-heallm.svg?style=flat-square)](https://packagist.org/packages/self-heallm/laravel-self-heallm)\n[![License](https://img.shields.io/packagist/l/self-heallm/laravel-self-heallm.svg?style=flat-square)](LICENSE)\n[![PHP Version](https://img.shields.io/packagist/dependency-v/self-heallm/laravel-self-heallm/php.svg?style=flat-square)](https://packagist.org/packages/self-heallm/laravel-self-heallm)\n[![Laravel](https://img.shields.io/packagist/dependency-v/self-heallm/laravel-self-heallm/illuminate%2Fsupport.svg?label=laravel\u0026style=flat-square)](https://packagist.org/packages/self-heallm/laravel-self-heallm)\n[![Total Downloads](https://img.shields.io/packagist/dt/self-heallm/laravel-self-heallm.svg?style=flat-square)](https://packagist.org/packages/self-heallm/laravel-self-heallm)\n[![Monthly Downloads](https://img.shields.io/packagist/dm/self-heallm/laravel-self-heallm.svg?style=flat-square)](https://packagist.org/packages/self-heallm/laravel-self-heallm)\n[![GitHub Stars](https://img.shields.io/github/stars/universe-coder/laravel-self-heallm.svg?style=flat-square)](https://github.com/universe-coder/laravel-self-heallm/stargazers)\n[![Last Commit](https://img.shields.io/github/last-commit/universe-coder/laravel-self-heallm.svg?style=flat-square)](https://github.com/universe-coder/laravel-self-heallm/commits/main)\n[![Open Issues](https://img.shields.io/github/issues/universe-coder/laravel-self-heallm.svg?style=flat-square)](https://github.com/universe-coder/laravel-self-heallm/issues)\n\nOpen-source Laravel package that detects recent application errors, asks an LLM for a fix proposal (OpenAI, Anthropic, Hugging Face, or Ollama), validates safety rules, applies fixes in hybrid mode, and sends healing reports.\n\n## What It Does\n\n- Detects recent app errors and builds a repair context.\n- Requests a fix proposal from a configured LLM provider.\n- Validates proposed changes against strict safety rules.\n- Applies validated fixes in `dry-run` or auto-apply mode.\n- Sends reports to chat/monitoring channels.\n\n## Quick Start\n\n### 1) Install\n\n```bash\ncomposer require self-heallm/laravel-self-heallm\nphp artisan vendor:publish --tag=self-heal-config\n```\n\n### 2) Configure\n\nMain config file: `config/self-heal.php`\n\nSupported sections:\n\n- Provider selector: `llm.provider` (`openai`, `anthropic`, `huggingface`, `ollama`)\n- OpenAI: `openai.base_url`, `openai.token`, `openai.model`, `openai.timeout`\n- Anthropic: `anthropic.base_url`, `anthropic.token`, `anthropic.model`, `anthropic.timeout`, `anthropic.version`\n- Hugging Face (OpenAI-compatible endpoint): `huggingface.base_url`, `huggingface.token`, `huggingface.model`, `huggingface.timeout`\n- Ollama (OpenAI-compatible endpoint): `ollama.base_url`, `ollama.token`, `ollama.model`, `ollama.timeout`\n- Telegram: `telegram.bot_token`, `telegram.user_id`, `telegram.enabled`\n- Slack: `slack.enabled`, `slack.webhook_url`\n- Generic webhook: `webhook.enabled`, `webhook.url`, `webhook.token`\n- Sentry: `sentry.enabled`, `sentry.dsn`, `sentry.environment`\n- Modes: `enabled`, `auto_apply`, `dry_run`\n- Safety: `allowed_paths`, `forbidden_paths`, `max_files_per_fix`\n- Deduplication: `deduplication.enabled`, `deduplication.ttl_seconds`, `deduplication.store_path`\n- Model context size: `context.max_file_chars`\n- Reporting: JSONL fallback path via `reporting.json_path`\n\nExample `.env` values:\n\n```dotenv\nSELF_HEAL_ENABLED=true\nSELF_HEAL_AUTO_APPLY=false\nSELF_HEAL_DRY_RUN=true\nSELF_HEAL_LLM_PROVIDER=openai\nSELF_HEAL_OPENAI_BASE_URL=https://api.openai.com/v1\nSELF_HEAL_OPENAI_TOKEN=sk-...\nSELF_HEAL_OPENAI_MODEL=gpt-4.1-mini\nSELF_HEAL_ANTHROPIC_BASE_URL=https://api.anthropic.com/v1\nSELF_HEAL_ANTHROPIC_TOKEN=\nSELF_HEAL_ANTHROPIC_MODEL=claude-3-5-sonnet-latest\nSELF_HEAL_HUGGINGFACE_BASE_URL=https://router.huggingface.co/v1\nSELF_HEAL_HUGGINGFACE_TOKEN=\nSELF_HEAL_HUGGINGFACE_MODEL=openai/gpt-oss-120b\nSELF_HEAL_OLLAMA_BASE_URL=http://localhost:11434/v1\nSELF_HEAL_OLLAMA_TOKEN=\nSELF_HEAL_OLLAMA_MODEL=llama3.1\nSELF_HEAL_TELEGRAM_BOT_TOKEN=123:abc\nSELF_HEAL_TELEGRAM_USER_ID=123456789\nSELF_HEAL_SLACK_ENABLED=false\nSELF_HEAL_SLACK_WEBHOOK_URL=\nSELF_HEAL_WEBHOOK_ENABLED=false\nSELF_HEAL_WEBHOOK_URL=\nSELF_HEAL_WEBHOOK_TOKEN=\nSELF_HEAL_SENTRY_ENABLED=false\nSELF_HEAL_SENTRY_DSN=\nSELF_HEAL_DEDUP_ENABLED=true\nSELF_HEAL_DEDUP_TTL_SECONDS=600\nSELF_HEAL_CONTEXT_MAX_FILE_CHARS=12000\n```\n\nProvider notes:\n\n- `openai`: default provider, no migration needed for existing setups.\n- `anthropic`: uses native Anthropic Messages API.\n- `huggingface`: in this version, use an OpenAI-compatible Hugging Face endpoint.\n- `ollama`: in this version, use Ollama's OpenAI-compatible endpoint (`/v1/chat/completions`).\n\n### 3) Run\n\n```bash\nphp artisan self-heal:run\n```\n\n## Security Model\n\n- Accepts fixes only for whitelisted paths.\n- Rejects forbidden paths even if suggested by the model.\n- Rejects empty replacement targets.\n- Applies validated patches automatically only with `dry_run=false` and `auto_apply=true`.\n- Skips duplicate error fingerprints during deduplication TTL.\n\n## Reporting Channels\n\n- Telegram notifications.\n- Slack incoming webhook notifications.\n- Generic webhook (`POST`) notifications.\n- Sentry envelope event reporting.\n- JSON fallback report when enabled.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funiverse-coder%2Flaravel-self-heallm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funiverse-coder%2Flaravel-self-heallm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funiverse-coder%2Flaravel-self-heallm/lists"}