OverviewLast updated on
Last updated on
The ten tools in the Paradoc AI packages, with their inputs and outputs
Every Paradoc AI adapter exposes these ten tools. They come from @paradoc/ai-tools, so names, inputs, and outputs are the same in every adapter. Input and output fields are snake_case. Artifact JSON and fill data keep their own field names.
| Tool | Category | Description |
|---|---|---|
get_registry | Registry | Discover the artifacts in a registry |
get_artifact | Registry | Retrieve one artifact and its instructions from a registry |
inspect_artifact | Artifacts | Return a bounded description of an artifact |
validate_artifact | Artifacts | Validate an artifact definition |
validate_input | Filling | Validate and normalize one value before it goes into a draft |
fill | Filling | Start a form or checklist draft from seed data |
get_fill_state | Filling | Report draft progress and the next target to fill |
update_fill | Filling | Merge, clear, or reset values in a draft |
render | Rendering | Render a form, document, or checklist through one of its layers |
extract | Extraction | Read a filled PDF form back into form data, with a report for each field |
Sources
All tools except get_registry and get_artifact work on an artifact that you identify with a source. The source field selects one of three modes:
| Mode | Fields | Resolution |
|---|---|---|
source: "artifact" | artifact, base_url? | Artifact JSON passed inline. File-backed layers resolve against base_url. |
source: "url" | url | Fetches the artifact JSON. File-backed layers resolve against the URL's directory. |
source: "registry" | registry_url?, artifact_name | Fetches registry.json, checks the artifact is listed, then fetches it. Without registry_url, uses defaultRegistryUrl from the config. |
{ source: "artifact", artifact: { kind: "form", name: "my-form", /* ... */ } }
{ source: "url", url: "https://example.com/forms/my-form.json" }
{ source: "registry", registry_url: "https://public.paradoc.dev", artifact_name: "pet-addendum" }Errors
Tools return failures in the result instead of throwing. A failed call carries an error object, and tools that validate values also return an errors array of the same shape:
| Field | Type | Description |
|---|---|---|
code | string | Machine-readable code, such as validation_error, unsupported_artifact, or missing_registry_url |
message | string | Human-readable message |
path | (string | number)[] | Optional path to the value that failed |
retryable | boolean | Optional hint that the call may succeed if retried |
How the tools work together
Build an intake agent shows the tools in a conversation: find the form, check each answer, keep the draft, ask the next question, and render the result. Read a filled PDF starts the draft from a PDF.
Pass data and evaluation_context from each fill or update_fill result into the next call, so the draft and its date context stay the same across turns.