# `package.not_public`

Code uses a package's declaration that isn't public.

Area 11, [External services](../topics/external-services.md); not declinable; the next step is usually the agent's.

A package offers only what it marks `public`:






```jadpo
use shared/providers/acme_couriers

action keep_slot(slot: AcmeCouriers.SlotText) -> AcmeCouriers.SlotText {
    return AcmeCouriers.tidying.same(slot)
}
```

```text
error: `AcmeCouriers.tidying` isn't public
 --> domains/shipping/actions/keep_slot.jadpo:4:12
  |
4 |     return AcmeCouriers.tidying.same(slot)
  |            ^^^^^^^^^^^^^^^^^^^^ not part of the package's API
  reason: A package offers only what it marks `public`; `tidying` is a library in `shared/providers/acme_couriers/v1/libraries/tidying.jadpo` that only the package's own code uses, and may change in any version.
  next: Use what `AcmeCouriers` marks `public` instead (agent)
  rule: package.not_public
  help: https://jadpo.dev/docs/errors/package.not_public

check failed: 1 error, 6 files
```
