> ## Documentation Index
> Fetch the complete documentation index at: https://flex-fields.bjanczak.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Examples target Filament 5. Verify optional dependencies before configuring integrations.
> Upload transfer completion, permanent storage and record acceptance are separate milestones. Native and Spatie image conversions retain the original.

# Inspect dependencies

> Explain registered dependencies, inspect live owners and diagnose missing assets.

> [!TIP]
>
> **Watch this in the workshop:** [1:02:07 — run the example checks and installed diagnostics](https://www.youtube.com/watch?v=m4V_R7YxTP4\&t=3727s).

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
php artisan fff:assets:doctor
php artisan fff:assets:doctor --published --share
php artisan fff:assets:explain acme-summary-field
php artisan fff:assets:explain flex-text-input \
  --capability=emoji-picker --json
```

`doctor` checks built bytes and metadata. `explain` reads the registered graph and
shows why dependencies are required, who owns each stylesheet, the selected
runtime components and the package's version, ABI and content release. It marks
lazy package resources separately from eager dependencies. Declared child slots
are reported without making their JavaScript eager.

For a support request, `doctor --share` returns redacted JSON with the effect of
each detected issue and a recommended repair. It omits raw error messages, file
paths, private file URLs and extension identities. Ordinary `--json` retains local details and
adds a `diagnosis` section with the same advice. The shareable report cannot
include `--definitions` or `--locations`. Its success covers asset validation,
rather than the health of application storage or queue workers.

This command reports the installation, rather than a particular open browser.
Use the live asset diagnostics to inspect active instance owners, generations and
readiness blockers. Neither command submits a form or publishes assets.

For a specific mounted component, pass its element to the browser runtime:

```javascript theme={"theme":{"light":"github-light","dark":"github-dark"}}
const report = window.FffAssetInjector.explainOwner(componentElement);

console.log(report.status);
console.log(report.owners);
console.log(report.factories);
```

The report describes the nearest component instance. Nested components have their
own report. Each owner shows whether it is active and retained, its rendered plan
generation, resource types, reference counts and loaded state. Factories report
`pending`, `ready` or `failed`. A missing retained resource list does not mean a
deferred component has no declared dependencies. Inspect the installation graph
for its declaration. The generation comes from the rendered plan and does not
identify a factory's private initialization attempt.

Reports hide file URLs, form values and raw identifiers. They are immutable snapshots;
request another report after a change. Reads do not start uploads, load missing
assets or acquire consumers. Large component trees return `truncated: true`. An owner with a truncated resource
list retains its full `retainedResourceCount` and reports `resourcesTruncated: true`.
Use the runtime for the element's document; elements from another document reject.
A retired runtime returns `status: 'disposed'` without inspecting the element.

## Continue reading

[Extension guides](https://flex-fields.bjanczak.com/docs/extensions.md) · [Definition and registration reference](https://flex-fields.bjanczak.com/docs/extensions/definition-reference.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.