Find a service, prepare terms or check a supplied record.

The public connection needs no account or key. Choose the operation that matches the job, then supply its exact inputs. It can search published service records, prepare unsigned terms and check the records you provide. Signing, publishing your advert and paying use separately configured owner and account workflows.

Public connection · Complete dated schemas · Public request privacy. Discover current schemas with tools/list before calling; a documentation snapshot does not override the running connection.

Choose the next useful operation

Your taskExact public identifier and inputsRead the result and continue
Find a provider for a chart, brief or other service.aap_public_listing_search
Optional query, category, limit and offset.
Only active indexed public records are returned. Check the actual scope, price and currency in each record. Identity, capacity, performance and payment are not verified. An empty search can be a correct result; you can draft terms for a counterparty you already know.
Write the proposed work, price, deadline and acceptance terms.covenant_contract__draft
Required title, parties and clauses; each clause has id, title and text. Optional exact conditions, settlement, dispute and extension terms.
Retain the returned raw draft and identifier. The result remains an unsigned proposal; a dispute clause does not appoint a reviewer and a payment clause does not connect a rail.
Check the identifier and structure of one proposed contract.covenant_contract__inspect
Required body: the complete raw contract body.
Use the body itself, rather than the entire prior response wrapper. An identifier pins the supplied content; it does not establish assent, identity or outside-world truth.
See exactly what a revised version changes.covenant_contract__compare
Required raw bodies before and after.
Keep both identifiers and the change report. Changed terms need fresh assent. The comparison does not replace or approve an agreement.
Read or print an HTML copy of exact proposed terms.covenant_contract__render
Required raw body.
The returned HTML escapes supplied text and preserves the proposed terms. Showing the document does not sign it. A simple local formatting task may also be completed by your own document tool.
Prepare a simple buyer/seller service offer in one call.covenant_marketplace__quick_trade
Required seller, buyer, description, amount, payment_asset and context. Buyer, seller and context use the exact supported 64-character hexadecimal forms.
Price is an integer in the asset's stated unit: USD 25 is 2500 USD cents. Do not infer foreign exchange, inventory or custody. The existing optional compact: true requests a shorter view; retain the complete exact packet for any later approval. Both parties' explicit signatures remain separate. Returned next.tool hints may name installed-engine tools such as covenant_concept; these are not callable through the nine-tool public connection. Use tools/list to confirm a callable next step.
Review a supplied coordination record and what it establishes.covenant_review__review
Required raw case; optional retained expected_id. Use the case format in the public review reference.
A contract draft is not a case or a verified agreement. Read each agreement's assurance, approvals, duties and unresolved evidence. Installed case builders are SDK helpers, not extra tools on this public connection.
Check supplied role summaries and supported local authority evidence.covenant_review__authority
Required agreements: each row has exactly id, kind and parties; parties map roles to supported public verification keys. Optional exact grants, group, policies and expected heads.
CALLER_DECLARED_ROLE_NOT_REVERIFIED identifies a declaration. Calling someone “buyer” or “supplier” does not prove permission to sign or spend. Never submit a private key or credential.
Check supplied proof envelopes against exact expectations.covenant_review__evidence
Required items and agreement_ids. Follow the reference's exact item and verifier fields.
NO_PROOFS_PROVIDED means zero proofs, even when an “all supplied proofs” Boolean is true. UNKNOWN_VERIFIER means the required verifier is unavailable, rather than a failed proof. A verified statement remains limited to its exact scope and assumptions.

A useful first draft

Ask: “Draft proposed terms for a one-page source-linked research brief costing USD 25. Buyer-example buys and supplier-example supplies. Delivery is within three business days after approval; the buyer reviews against the agreed scope. Leave it unsigned.” The agent can use covenant_contract__draft with explicit clauses, then return the result and any missing material details.

For a revised price, pass the exact original and proposed replacement bodies to covenant_contract__compare. Keep the original proposal intact. A change from USD 25 to USD 30 requires fresh approval; a changed price is not an existing payment authorization.

For actual listing and deal records, follow the separate private account connection and owner approval steps. Do not send account tokens or signing material to the anonymous public endpoint.

When a public call will not do the requested job

A request to sign, publish an advert or send money cannot be completed by substituting a drafting or review call. Explain the required owner/account step and stop before claiming completion. General arithmetic, sentence edits and unrelated coding usually need no agreement tool.

The connection retains its existing nine identifiers, complete input schemas and annotations. Its legacy runtime identity is aap-public-directory, version 0.1; the public display name does not silently rename that identity. Discovery documentation explains the dated metadata and connection checks.

A repeatable check, with its limits visible

The frozen 20-prompt set contains nine direct requests, five indirect tasks and six negative controls. It includes synthetic attachment bodies, original tool identifiers and fixture hashes. Evaluators keep the expected choices separate from the prompts shown to a task agent.

The public execution harness has no model or API-key dependency. Its default command validates frozen inputs and replays explicitly synthetic response fixtures:

python3 tools/evaluate_public_tasks.py
python3 tools/evaluate_public_tasks.py --out /tmp/covenant-ato-offline-001

After reviewing the frozen execution profile, use the explicit live option to test the fixed anonymous endpoint:

python3 tools/evaluate_public_tasks.py --live --out /tmp/covenant-ato-live-001

The live path first initializes and compares the complete current inventory, protocol and legacy server identity with the retained snapshot. It then makes fourteen predetermined read-only calls. Six negative controls dispatch no tool. It refuses schema or metadata drift, credentials, redirects and oversized results; request waits, body size and the run have bounds. A transport/result error stops further calls without a retry or offline fallback. Existing output files are never overwritten.

The result format retains exact requests, responses, assertion results, call counts, live request times and text sizes; a viewable HTML companion summarizes them. The fixed new-draft examples check returned content and identifier format; they do not independently recompute those new identifiers. Offline placeholder identifiers are labelled synthetic and never treated as server observations.

Successful deterministic calls establish that the supplied cases execute and return expected fields. They do not measure whether an agent selected the tool unaided. Organic provider-store visibility, an explicitly selected connector's usefulness, offline catalogue choice and deterministic execution must be recorded separately. Model rankings, real-user retention, bookings and money movement remain unmeasured.

For weekly comparisons, retain this version's prompts and hashes, save each run separately and record changed model, client, plan, region, metadata or listing inventory. A changed prompt or oracle needs a new version. Metadata evaluation guidance recommends direct, indirect and negative tasks and one change at a time; plugin guidelines apply to descriptions.