Skip directly to article

Local synthetic example

Retell tool mapping with the equipment example

Build a customer-hosted voice workflow that maps Retell custom-tool calls to bounded Actions outcomes.

Using the preview packages

Approved preview participants can download the selected archives from Package access. Sign in to continue, or explore the package-free guided tour while you wait for approval.

Package and historical reference boundaries

Current package set: Core rc.1, Runtime preview.5 and Actions preview.8. Try HTTP reference preview.4 or Retell adapter preview.3 with equipment example preview.4.

Version history and scope

Retell preview.1 declarations describe the older Runtime preview.1 / Actions preview.2 line. Retell preview.2 uses a mock facade; HTTP preview.1 simulates bookkeeping. The older private HTTP source uses Runtime preview.3 / Actions preview.4. These are separate from the current runnable examples.

Examples use local test systems. They do not validate live providers, arbitrary crashes or distributed durability. Approved participants can use protected downloads.

Retell adapter 0.2.0-preview.3 maps tool calls; equipment example 0.2.0-preview.4 is the local runnable host. Use Node 22+, npm and a writable workspace with localhost access. Start with the complete HTTP example before adapting a Retell tool. Guide availability.

Current: start with the equipment example

The selected answerup-retell-equipment-example@0.2.0-preview.4 archive runs packed Retell preview.3 and real Actions preview.8 against a local test equipment provider over localhost. If you already received the selected archive, use its packed README. Protected Portal download is available to authorized participants; public or unauthenticated download is unavailable. Archive SHA-256: dc62a4d91d7cc94e2f84bed3a074a4c05328855e4589bc92681147932634a3b0.

After receiving this exact archive through an approved private handoff or protected Portal delivery, extract it, install the exact included archives, then run npm run demo -- .demo/first-run from the extracted package root. The demo records one real provider mutation, a lost response, an exported UNKNOWN recovery record, and fresh-process UNKNOWN then COMMITTED verifier-only recovery. Live continuation through the adapter and exported-record recovery through the host CLI are separate paths. Use the runnable demo with fresh fixture state; the archived manual recipe has not been revised. The README explains the test bearer tokens, local provider and single-writer JSON storage. Manual checksum verification is optional; download a fresh copy if a check finds a mismatch. No Retell service webhook or live provider was exercised.

Use cases and prerequisites

Use this preview to evaluate a host-owned voice workflow that maps a Retell tool call to an Actions facade. Use Node 22 or newer, an authenticated customer-owned HTTP façade, a durable invocation store, and a trusted-context resolver. Retell arguments never choose tenant, actor, authorization, or provider authority.

Exact compatibility and package access

ArtifactVersion / SHA-256Availability
@answerup/retell0.2.0-preview.3 · 94943b88…4d20c1Selected preview version

Requires Core 1.0.0-rc.1, Runtime 0.2.0-preview.5, and Actions 0.2.0-preview.8. Full hashes: adapter 94943b881c016992043b792f4fff12e1132d5e94b00ad11f73c02fa5c74d20c1.

Compose the host-owned Actions facade

Use Node 22 or newer. Place the extracted bundle files or individual archives in a downloads folder inside your application, then run:

npm install --ignore-scripts --offline ./downloads/answerup-core-1.0.0-rc.1.tgz ./downloads/answerup-runtime-0.2.0-preview.5.tgz ./downloads/answerup-actions-0.2.0-preview.8.tgz ./downloads/answerup-retell-0.2.0-preview.3.tgz

Runtime and Actions use ESM. No registry credentials are needed. You can install individual archives using their file paths; use the selected versions together.

Optional: check downloaded files with SHA-256

A checksum helps confirm a download matches the published manifest. Manual checksum verification is optional; it is not required to install the packages. If you choose to check and find a mismatch, download the file again before using it.

Save MANIFEST.sha256 alongside the archives. Compare against the manifest supplied by AnswerUp.

Windows PowerShell

Get-FileHash .\answerup-core-1.0.0-rc.1.tgz -Algorithm SHA256

Compare the displayed hash with that file's line in the manifest. Repeat for any other file you want to check.

Linux

sha256sum -c MANIFEST.sha256

macOS

shasum -a 256 -c MANIFEST.sha256

These checks compare files with a trusted manifest; they do not authenticate an unknown sender or prove that a business action occurred.

The complete bundle's README explains how to run the local example.

Current selected adapter preview.3 expects a host facade with getTools, run, and reconcile. The Actions preview.8 TypeScript declaration does not expose getTools, so supply tool metadata explicitly in your host instead of assuming that method is typed on ProtectedActionRuntime. The selected equipment archive demonstrates the full working composition in src/host.mjs; this fragment shows its boundary. The named wrappers stand for the host admission and exact live-reconciliation functions shown in that example; they are not package exports:

const actions = {
  getTools: () => toolDescriptors, // host-owned names and input schemas
  run: request => admittedHostRun(request), // persisted host admission, then runtime.run
  reconcile: exactUnknown => acceptedLiveReconcile(exactUnknown), // exact live source, verifier only
};
const adapter = createRetellAdapter({ actions, trustedContextResolver, invocationStore });
const tools = adapter.getTools({ webhookUrl: 'https://your-host.example/retell' });
const result = await adapter.handleToolCall(retellCall, hostContext);

toolDescriptors must describe the registered action, livePlan must match the host's saved original effect, and runtime is the selected Actions instance. The host-owned wrappers must authenticate each call, admit and persist the original request before dispatch, bind tenant and effect identities, retire the exact live UNKNOWN authority before reconciliation, and supply a durable invocationStore.get/set implementation. Live reconcile receives only the exact process-local Actions-owned UNKNOWN object and performs no redispatch. The Retell adapter exports createRetellAdapter; it is not a Retell SDK.

The selected Retell preview.3 archive exports JavaScript without a TypeScript declaration, while the selected Actions preview.8 declaration omits getTools. This host facade makes the JavaScript integration explicit, but it does not close the separate typed-package declaration gap. Do not use the historical preview.1 API page as a declaration for preview.3.

Historical preview.2 mock example

Preview.2 mapped tool calls through a mock Actions facade. It did not execute the real Actions package or establish restart recovery, and its archive is not part of the current package set. Use adapter preview.3 and equipment example preview.4 above. Preview.1 API signatures are also historical and do not describe the current adapter.

Truth, claims, recovery, and host duties

A provider acknowledgement is not effect truth. COMMITTED and DISPROVED require the matching returned permitted safe claim before effect wording; UNKNOWN must not be spoken as success and requires reconciliation. Live reconciliation requires the exact Actions-owned result in the same runtime/process and must not redispatch. Saved JSON supports duplicate replay only. The historical .2 saved-raw restart instruction does not apply to the selected path; read the recovery paths guide. The host owns authentication, tenant binding, consent, raw-payload retention, provider credentials, rate limits, durable atomicity, independent verification, incident response, and spoken wording.

Errors, limits, and troubleshooting

ResultCustomer action
UNAUTHENTICATEDAuthenticate before calling the adapter; never trust tool arguments as authority.
INVALID_INPUT or UNKNOWN_TOOLCheck the configured name and object-shaped arguments.
DUPLICATE_DELIVERYReturn the saved bounded result; do not redispatch.
RECONCILIATION_PENDING or RECONCILIATION_UNAVAILABLEPreserve the record and use an independent verifier; do not claim success.

See the shared UNKNOWN and reconciliation guidance and security/privacy boundary.