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.
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
@answerup/retell0.2.0-preview.3 · 94943b88…4d20c1Selected preview versionRequires 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.tgzRuntime 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 SHA256Compare the displayed hash with that file's line in the manifest. Repeat for any other file you want to check.
Linux
sha256sum -c MANIFEST.sha256macOS
shasum -a 256 -c MANIFEST.sha256These 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
| Result | Customer action |
|---|---|
UNAUTHENTICATED | Authenticate before calling the adapter; never trust tool arguments as authority. |
INVALID_INPUT or UNKNOWN_TOOL | Check the configured name and object-shaped arguments. |
DUPLICATE_DELIVERY | Return the saved bounded result; do not redispatch. |
RECONCILIATION_PENDING or RECONCILIATION_UNAVAILABLE | Preserve the record and use an independent verifier; do not claim success. |
See the shared UNKNOWN and reconciliation guidance and security/privacy boundary.