conform.refused
The conformance suite wasn't sent to the provider's live API, because the app has no connection to the package, nothing sets the connection's credential or address, or ai: doesn't ask its models through it.
Area 14, Tools; not declinable; the next step is usually the human's.
Why Jadpo refuses it
jadpo package conform <package> ai --live sends the ai capability's
cases to the provider's own API, so a package is proved against what the
provider answers today rather than against its recordings. It sends them
through the app's own connection to the package, with that connection's
credential and address, and asks the models the app's ai: names, so
the run proves what the app itself will send.
Without those, the only thing it could send is a stand-in key to a guessed address, and a failure would say nothing about the package. Jadpo won't set a credential for you: the key decides which account at the provider pays for the calls, and it is a secret only you hold.
What it looks like
An app that asks its models through its own provider package, Acme
Models, whose key ACME_KEY gives:
config.jadpo:
config { acme_host: Url { default: "https://api.acme-models.example" } acme_key: Text { secret: true } drafting_model: ModelId { default: "acme/acme-small-1" }}
app.jadpo:
application { connections: { acme: { package: AcmeModels.v1 domains: [support] credential: config.acme_key host: config.acme_host } } ai: { connection: acme models: { default: config.drafting_model } limits: { per_day: { tokens: 2000000 } } }}
Nothing on this machine sets ACME_KEY, so the live run is refused
before anything is sent:
jadpo package conform acme_models ai --live error acme has nothing set for the provider's API
- reason
--livesends the suite to the provider's API withacme's credential and address, and nothing setsACME_KEY, so only a stand-in would be sent.- next
- Set
ACME_KEYin.env.localto the provider's, then run it again (human) - rule
- conform.
refused - help
- https://jadpo.
dev/docs/errors/conform. refused
(human) at the end of the next: line tells your coding agent to stop
and ask you which fix you want, because the choice is yours to make: it
decides which of your accounts at Acme the suite's calls are made with.
How to fix it
The question is whether you meant to call Acme's API.
If you did, set the key, then run the suite again:
jadpo config set acme_keyjadpo package conform acme_models ai --live
jadpo config set asks for the key without showing what you type and
saves it in .env.local, which is never committed. The suite's cases
then go to https://api.acme-models.example with it.
If you didn't, run the suite without --live:
jadpo package conform acme_models aiIt then runs against the package's recordings and a local fake, and nothing leaves your machine.
Related
Markdown for agents: /docs/errors/conform.refused.md.Built from Jadpo main at aee2e8f.