lara-zeus/torch-filament
A Filament plugin for Torch that brings AI chat and assistant capabilities into your Laravel admin panel. Connect providers, manage conversations, and add LLM-powered workflows to Filament resources with minimal configuration.
Architecture fit: A narrow, presentational Filament plugin. It registers as a panel plugin and provides an Infolist entry that renders syntax-highlighted code through Torchlight. It has no domain logic, no persistence, no migrations, no queues, no authorization surface beyond what Filament already enforces. From a TPM's seat that is the best possible shape for a peripheral dependency: the blast radius of adopting it — or ripping it out — is one entry type inside one panel. It solves a readability problem in internal admin screens (config previews, API payloads, log excerpts, webhook bodies, docs pages), which is exactly the profile of "low-differentiation work we should not hand-roll."
Diligence flag — confirm what you are buying. The repo description ("Infolist component to highlight code") and the attached description.md ("manage providers, models, prompts, and conversations… chat page… AI providers") describe two different packages. The latter reads like a Torch AI toolkit for Filament, not a syntax-highlighting component. Every assessment in this dossier inherits that ambiguity, so treat the star count, opportunity score, and dependent count as directionally right but not decision-grade. Before scheduling anything, read the actual composer.json and source tree. That the metadata is this contradictory is itself a supportability signal — a maintained package tends to have coherent docs.
Integration feasibility: High, conditional on Filament 5. Composer require plus panel-provider registration; no schema, no data flow, no services to operate. The real constraint is not the plugin but what sits underneath it: Torchlight. If it runs against a hosted API, you are making a data-residency and availability decision — source code leaves your infrastructure, a key must be managed, rate limits apply, and an outage degrades or breaks page render. For internal admin tooling that is usually acceptable; in a regulated or air-gapped environment it is disqualifying unless the self-hosted path is real and supported. Verify the hosted-vs-self-hosted question with whoever owns information security before the build-vs-buy call, not after.
Technical risk: Low impact, medium likelihood. Failure modes are cosmetic-degrading rather than operationally severe, with one exception: an unhandled highlighting exception turning an infolist page into a 500 is a real (if contained) availability event. Beyond that: vendor thinness (7 stars, 0 dependents, single-maintainer Lara Zeus ecosystem, a one-line changelog for 3.0.0), and major versions pinned lockstep to Filament majors — meaning every Filament upgrade re-opens this dependency and its test burden.
Key questions:
<pre> on failure, or throw?php / laravel/framework / filament/filament / livewire/livewire constraints?Stack fit: Laravel + Filament 5 admin surface, consumed as a panel plugin. Treat it as part of the Filament plugin layer, not a standalone library, and validate PHP/Laravel/Filament/Livewire as a set — Filament majors historically move with Livewire and Tailwind majors, so a mismatch surfaces as a Composer resolution failure rather than a runtime bug.
Migration path: Additive; there is nothing to migrate. The only migration question is the Filament 5 upgrade itself. The TPM position here should be unambiguous: do not let a syntax-highlighting widget justify or drive a Filament major upgrade. If the panel is on Filament 4, park this package until the platform move is independently funded. If the panel is already on Filament 5, adopt with near-zero cost.
Compatibility: Pin exact versions during evaluation and record them in the service catalog. Because the 3.0.0 changelog is a single line, do not assume it's a compatibility shim — run composer why-not on a scratch branch and smoke-test one entry before accepting the constraint set.
Sequencing:
filament:assets build and page latency.<pre> entry or client-side Prism/Shiki covers most of the need at zero vendor risk. Because the fallback is cheap, the adoption bar should be low-effort, not "we must have it."Maintenance: This is the dominant cost, and it's vendor risk, not engineering hours. One maintainer, minimal adoption, and a track record of major bumps that track Filament means the package can go quiet at any Filament release with no replacement story. Mitigations a TPM should fund up front: pin exactly; keep it behind panel-scoped registration plus a config toggle so it can be disabled without a redeploy; keep the fallback specced so removal is an afternoon, not a project; budget roughly half a day to vendor/fork it under MIT if needed; and add it to the Filament upgrade checklist alongside every other panel plugin.
Support: Low. Internal-admin-only surface, no customer exposure, no data mutation, no PII — provided hosted Torchlight is approved. Expected ticket volume is "code blocks render oddly," which is triage-able. The one incident that matters is an infolist page that fails to render at all; verify that behavior explicitly during the spike so support isn't discovering it in production.
Scaling: Marginal to non-issue at internal admin concurrency (tens of users). The one thing worth verifying is caching: if highlighted output is recomputed on every render, large code blocks degrade page load, and that is the only scaling item that can bite. Also confirm the Torchlight key/quota has headroom above expected admin usage so a busy week doesn't turn into rate-limit errors.
Failure modes: Torchlight outage or deprecation; expired or throttled key; unhandled exception breaking page render; Filament minor-version drift; abandonment. All five share the same cheap mitigation — a toggle that falls back to plain <pre> — and that toggle should be a condition of adoption, written into the acceptance criteria rather than discovered later.
Ramp-up: Very low for engineers already fluent in Filament plugins (an hour to read the entry API and register it). The real ramp is organizational, not technical: getting a tiering rule agreed — "third-party Filament plugins are fine for peripheral UI, not for critical paths" — and getting the fallback pattern baked into the team's definition of done for panel plugins. Once that rule exists, this package becomes a low-risk convenience rather than a debate, and future plugin decisions get cheaper.
How can I help you explore Laravel packages today?