Skip directly to article

Local synthetic example

Run the Generic HTTP first-action example

Run a local HTTP business action, check its result, and see what your application can safely tell the customer. Start with the selected first-action example; the longer recovery demonstration and guidance for your own backend follow below.

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.

For a booking application built with a reusable source-local helper, see the Restaurant HTTP quickstart. Its source download is separate from the entitled SDK packages.

1. Run the local example

This example uses a sample business system running on your computer, so you can explore how AnswerUp handles the situation without connecting to a real customer system.

The selected @answerup/generic-http-reference@0.2.0-preview.4 first-action executable calls Actions 0.2.0-preview.8 over real localhost HTTP. Core 1.0.0-rc.1 and Runtime 0.2.0-preview.5 are included dependencies. Its first exercise holds admission in memory; the full reference adds persisted single-writer admission and verifier-only recovery.

Prerequisites

  • Node 22 or newer, npm, and a writable workspace with local process and socket access.
  • The selected Generic HTTP preview.4 archive from Package access. It includes the three Core, Runtime and Actions dependency archives under package/packages/.
  • PowerShell, Linux or macOS with tar available for extraction. Replace paths with the folders on your system.

Once you have the archives, the local exercise needs no model key, live provider, cloud account or Guide. Runtime and Actions use ESM; the example already declares "type": "module".

Guide availability. The steps and troubleshooting below work without Guide.

Extract and run

Replace the first path with your downloads directory. Run one line at a time in a new extraction folder. Manual checksum verification is optional; you can install and run without it.

cd received-archives
mkdir http-preview-first
tar -xzf answerup-generic-http-reference-0.2.0-preview.4.tgz -C http-preview-first
cd http-preview-first/package/try-answerup/01-first-action
npm install --ignore-scripts --offline
npm start

Run npm start from http-preview-first/package/try-answerup/01-first-action. Its package.json points to the three included local dependency archives. No model key, live provider, cloud account or Guide is needed. The retained packed README includes creation-time notes; the selected release and access status are described here.

The JSON output separates a verified cedar-board reservation from withheld wording when claim permission, execution identity or the saved proposition does not match. It shows a changed-input conflict, one provider POST under a same-key repeat, a separate final maple-board refusal, and an uncertain oak-board result later reconciled by read only. Each customer sentence is limited to its own attempted effect. The first exercise is process-local and does not establish restart-safe admission.

Optional file logging

After your first action, you can use a small companion based on the same selected Generic HTTP preview.4 example to write a readable execution.log and a parseable execution.jsonl from actual Actions preview.8 results (with Core rc.1 and Runtime preview.5). Its initial UNKNOWN record withholds confirmation; a later verifier-only reconciliation records COMMITTED and a permitted bounded confirmation, without another provider POST.

See the companion README and accepted example source with its file writer, package scripts and focused test. The example source is public; the SDK archives still require an approved private handoff, and protected Portal downloads require authorization. Identities use per-run HMAC aliases, and host observations are labeled separately from SDK fields. These files are diagnostics, not authenticated evidence, durable recovery records or atomic audit records. Trace Local remains a separate, optional evidence-inspection tool.

2. See the lost-response recovery

From the first-action directory, continue with the full preview.4 reference. It retains persisted single-writer admission and verifier-only recovery after a graceful process exit:

cd ../..
npm install --ignore-scripts --offline ./packages/answerup-core-1.0.0-rc.1.tgz ./packages/answerup-runtime-0.2.0-preview.5.tgz ./packages/answerup-actions-0.2.0-preview.8.tgz
npm run demo -- .demo/first-run

The full demo prints outputs, provider and redispatches. Expected response statuses:

UNKNOWN → UNKNOWN → UNKNOWN → COMMITTED → COMMITTED
provider.dispatches: 1 · provider.mutations: 1
provider.verifierReads: 3 · redispatches: 0

The creator sends one reservation. The provider saves the mutation and loses its response. A restarted request replays the saved uncertainty. A fresh-process verifier-only recovery remains unresolved, then a later read establishes the effect. The last response replays the saved terminal result; it does not create another reservation.

Evidence stays under .demo/first-run/: 01-creator.json, 02-restart-replay.json, 03-recover-unknown.json, 04-recover-committed.json and 05-terminal-replay.json, plus host.json and provider.json. The numbered files retain PIDs, exits, stdout and stderr. Keep each attempt in a separate directory.

OutcomeMeaningWhat your app may say
UNKNOWNVerification establishes neither the requested effect nor final absence.No ordinary success or failure claim. Use neutral wording unless returned observation authority permits a historical statement about the last check. Preserve evidence; do not resend to resolve uncertainty.
COMMITTEDPRESENT evidence establishes the exact requested effect.Only the matching permitted positive claim, joined to the trusted original request; otherwise neutral wording.
DISPROVEDABSENT_FINAL evidence establishes final absence of the exact requested effect.Only the matching permitted negative claim. This does not establish generic provider failure or automatic retry permission.

PRESENT, ABSENT_FINAL and INDETERMINATE are verifier statuses. COMMITTED, DISPROVED and UNKNOWN are lifecycle outcomes. Claim permission is a separate decision; terminal truth alone does not permit arbitrary wording. NOT_DISPATCHED means the protected boundary was not crossed. Read handling results and permitted claims.

The full recovery demo does not emit DISPROVED. The first-action exercise above covers final absence. This demo establishes local package execution and recovery after graceful process exits with synthetic provider state. It does not establish arbitrary-crash durability, distributed coordination, live-provider behavior, universal exactly-once effects or throughput limits.

Guide availability · Troubleshoot this step

Optional: inspect a later execution in Trace Local

The selected private handoff includes Trace Local preview.7 and an optional first-action follow-up note. Core works without Trace. If you want to inspect a particular execution, arrange bounded package-result and redacted host-observation capture before that execution; a summary saved afterward cannot recreate the snapshots. The local viewer labels package results and host reports separately. It does not authenticate host reads, establish effect truth from provider acknowledgment, or grant claim permission. Read Trace and evidence after the first action.

3. Add AnswerUp to your app

Start with Actions for one operation. Keep your existing business rules and provider client. Direct Core is an optional lower-level route when you need its exact contracts.

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

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.

The supplied dependencies can install offline. Your existing app's other dependencies may still require ordinary internet or registry access. Keep its normal environment; these instructions impose no simulation restrictions.

  1. Retain a baseline example of your existing eligibility, rejection and successful business behavior.
  2. Choose one action and a stable request identity scoped to the authenticated tenant. Changed input under the same identity must not become a new mutation silently.
  3. Derive tenant, actor, policy and provider context in your trusted backend, rather than trusting request-supplied identity. See trusted context and authorization.
  4. Ground intent to the exact subject and requested effect. Ambiguity requires clarification; preserve your eligibility rules. See grounding candidates.
  5. Connect your provider dispatch and a separate authoritative verifier. Acknowledgment alone does not prove the effect. See provider and verifier responsibilities.
  6. Retain the result and original request association; render only a matching permitted claim. Keep duplicate replay, live reconciliation and exported-record recovery separate. See Actions API and the packed understand/ guides.

Choose a continuation path

PathRequired retained materialWhat runs
Saved duplicate replayTrusted tenant-scoped bounded response.Return it; no dispatch or verification.
Live reconciliationExact Actions-owned UNKNOWN in the same Runtime and process; one-shot authority.Verifier only. Retain the new related UNKNOWN if unresolved.
Exported-record recoveryAccepted V2 record/digest, original effect association, matching recovery plan and host ownership.After host admission, rehydrate and invoke the returned verifier capability. No redispatch.
Identity, authority and recovery details

Your host owns identity, business policy, provider access, verification, storage, recovery admission and delivery. Before losing live authority, Actions exportRecoveryRecord retains a closed V2 record. A fresh process registers a stable recovery verifier and uses rehydrateRecovery with a matching RecoveryClaimPlan and host acquire/commit/release authority. Invoke only the returned capability's reconcile. Accept each continuing record and retire the source on a committed terminal transition. Coordinate live and durable ownership; copied JSON cannot recreate live authority.

Bind recovery to the original requested effect, not merely the resource lookup. Never call run to recover uncertainty. Without accepted material, use operator handling. Render a returned matching permitted EFFECT_COMMITTED or EFFECT_DISPROVED claim with the trusted request join; otherwise neutral wording. Observation-only claims remain historical.

Reconciliation contracts · Persistence and recovery

Troubleshooting without Guide

  • Downloads and optional checksums: The complete ZIP contains the selected package set. The Generic HTTP reference archive also includes the SDK dependencies needed by its bundled example. Checksum verification is optional; you may verify independently if desired. Missing checksum tooling does not prevent running the local example. If a checksum differs from the trusted manifest, stop and download a fresh copy from Package access. Do not use incomplete or corrupted downloads, or replace trusted manifest values with hashes calculated from untrusted files.
  • No package.json or missing embedded package: enter the extracted http-preview-first/package/try-answerup/01-first-action directory. Re-extract the selected HTTP archive into a fresh directory if incomplete.
  • Installation fails: check node --version (22+) and that all three explicit archive paths exist. For a non-writable default cache, add --cache ./.npm-cache to the same install command.
  • Socket or evidence-directory error: allow ordinary localhost/process access and use a new writable demo output directory. Keep the failed attempt's output; do not overwrite it.
  • Still UNKNOWN: retain evidence and use the permitted verifier-only path. Lack of evidence is not final absence and does not authorize redispatch.
  • Recovery binding or authority mismatch: stop and compare the original effect bindings with the accepted record and host registration; see understand/durable-recovery.md. Do not reconstruct authority from JSON.

Support status · Guide availability · HTTP reference details · Retell equipment example

Historical notes and provenance

Retained READMEs record their creation-time review and registry-supply checkpoints. The selected local archives are the current source for the commands above. HTTP preview.1 simulates classifications without HTTP or package execution. Retell preview.2 uses a mock Actions facade; its saved-JSON live-reconciliation recipe is historical and does not establish restart authority. Adapter preview.3 keeps live exact-result associations separate from persisted replay; after restart it reports RECONCILIATION_UNAVAILABLE. Those historical artifacts stay unchanged. The selected preview.4 first-action executable is the starting path; the full recovery demo follows it. Deferred manual live recipes are not part of this path.