@volter/twin-tavily
Tavily
Local search and extraction over pages supplied to your World. Answers use configured scenarios or labeled stubs; no live web search or model runs.
The example uses Tavily 1.0.1. Setup installs the selected 1.0.2 release; keep the example's own pins when following it.
Setup gives the current installation instructions for @volter/twin-tavily 1.0.2. Open the published README for credentials, seeds, supported operations and limits.
README shipped with @volter/twin-tavily 1.0.2
These instructions were published with this package. Their tool versions may differ from the current starter cohort. Use Setup to install this version.
Tavily Search (POST /search) and Extract (POST /extract) at api.tavily.com, for Postiz's shipped post-generator research and LibreChat's agent tools. Postiz's deployment key authorizes that feature; its caller is recorded in demand.json. LibreChat users select and authenticate Tavily extraction in the in-app scraper key dialog; the exact caller commits are in demand.json.
Use with an existing app
Use Node 22.6 or newer.
Install the exact twin release and World CLI in your app's folder:
npm install --save-dev --save-exact @volter/world@3.0.147 @volter/twin-tavily@1.0.2
./node_modules/.bin/volter world init --name my-app --twins tavily --source tavily=@volter/twin-tavily
Review the selected vendor and generated bindings before starting. The World supplies synthetic credentials; keep your app's real SDK. Read this release's modeled scope below. Supply the corpus or scenario described below before expecting meaningful search results.
./node_modules/.bin/volter world up
./node_modules/.bin/volter world run -- npm test
./node_modules/.bin/volter world log
./node_modules/.bin/volter world down
Replace npm test with your app's usual command. down retains data, and a later up resumes it.
Use these installed executables from the same app folder; install there first if they are missing.
Bring an existing app explains multi-vendor selection and routing.
The World supplies a synthetic web corpus. Search ranks its pages by lexical overlap, with topic, domain restriction/preference, date, country, language, exact-phrase and safety options. It returns requested chunks, Markdown/text raw content, images/descriptions, favicon, publication date and usage. Answer and automatic-parameter judgment are scripted by the World or labeled deterministic stubs; no model or live web search runs. Advanced depth changes documented credit usage, and ultra-fast uses the corpus's supplied summary.
Extract reads held corpus pages or a source the World routes through ctx.vendorFetch, including the application's own pages. An unregistered, failing or simulated slow source becomes a per-URL failure. Depth selects supplied advanced content; query/chunk limits, Markdown/text, images, favicon and timeout options apply to each URL. Credit accounting follows successful extractions, in groups of five per depth.
Authentication accepts the World-issued key in Authorization: Bearer or api_key in the body. The key is held by its hash and regenerated from the World's secret. No real credentials are needed.
The doors are:
POST /_twin/app-credentials {}: the dashboard's first key, returned identically on subsequent boots and wired toTAVILY_API_KEY.POST /_twin/pages {url, title, content, ...}: a synthetic source page; the same URL replaces its record. Optional fields areraw_content,text_content,advanced_content,summary,images(URLs or{url, description}objects),favicon,topic,published_date,country,language(an ISO code),unsafeandfetch_seconds. These supply facts about a source that Tavily's API cannot create.
The World scenario supports operationEquals and queryEquals, status faults in Tavily's envelope, and search judgment {parameters: {topic?, search_depth?}, answer?}. Explicit input overrides automatic judgment; size options stay explicit. Source pages and their metadata are supplied through the door.
Crawl, Map, Research, Feedback, Usage and Logs answer the gap: no measured caller, life act or refresh brings them into scope. This compute API has no vendor-backed deployment/refresh half; keys, corpus pages, request ids and extraction counts are private World bookkeeping. Real semantic ranking, crawling, model answers and billing are outside this deterministic corpus.
The life, published examples, coverage and score retain their measured results. SDK cases are not owed by the measured clients: LibreChat uses raw fetch/axios for both operations, without the official @tavily/core SDK.
Set up this release
The example uses Tavily 1.0.1. Setup installs the selected 1.0.2 release; keep the example's own pins when following it.
For a complete example, follow Search a synthetic page. It includes the application code and its own exact dependency pins.
Use Node 22.6 or newer. Install this exact starter cohort in your app folder:
npm install --save-dev --save-exact @volter/world@3.0.158 @volter/world-core@3.0.148 @volter/world-runtime@3.0.156 @volter/world-console@3.0.149 @volter/twin-tavily@1.0.2In your app’s folder, initialize a World with this implementation:
./node_modules/.bin/volter world init --name my-app --twins tavily --source tavily=@volter/twin-tavilyReview the detected vendor and retain the generated bindings. The tavily service’s source must select this version:
{
"source": {
"package": "@volter/twin-tavily",
"version": "1.0.2"
}
}This is the source field, not a complete config. Keep the installed version, lockfile and generated service source in agreement. Use the release README for throwaway SDK credentials, seeds and limits.
The assessment records its own earlier tool versions under Measurements. This setup uses the current starter cohort.
Run your app’s own test command inside the World:
./node_modules/.bin/volter world up
./node_modules/.bin/volter world run -- npm test
./node_modules/.bin/volter world log
./node_modules/.bin/volter world downdown stops compute and retains state.
Versions and implementations
| Package / version | Publisher | Status | First use |
|---|---|---|---|
| @volter/twin-tavily1.0.2 | volter-ai | Selected default | Passed |
| @volter/twin-tavily1.0.1 | volter-ai | live | Not measured |
Evidence for 1.0.2
Installed first use · Passed
- Installed first use
- Passed
- Fresh app installation
- Verified
- Workflow scope
- Exact installed artifact; normal CLI initialization, unchanged SDK, result assertions and retained-state read-only resume where applicable
- Customer SDK versions
@tavily/core@0.7.14- CLI, kernel and runtime versions
@volter/world@3.0.147·@volter/world-core@3.0.147·@volter/world-runtime@3.0.147- World clock
- {"mode":"wall"}
- Retained-state readback
- Not applicable: Search and extraction create no stored Tavily resource; the pages door supplies synthetic World corpus, not vendor state.
- Stopped compute
- Verified
- Customer journey failures
- 0
API coverage, replay and browser measurements
Counts describe the declared HTTP surface, not separate command tables or other protocols. Consult the release README for those workflows.
- Assessment scope
- packaged-customer-journey; in-process
- Declared HTTP surface
- 2 served · 7 gaps · 9 declared operations
- Exercised HTTP operation coverage
- 2 / 9 declared operations (22.2%)
- Journey steps
- 9 answered / 9 steps
- Replay
- Equal across 2 runs
- Journey failures
- 0
- Browser target
- HTTP customer journey replay through Chromium at each request origin; authored HTTP headers and observed wire responses 153.0.8010.12
- HTTP operations exercised through Chromium
- 2 / 9 declared operations (22.2%)
- Chromium journey replay
- Equal across 2 runs
- Browser response observation
- Transport observes status, headers and body, including redirects and Set-Cookie; these are not JavaScript-visible response claims
- Application-origin CORS coverage
- Not measured
- Native cookie-jar coverage
- Not measured
- DOM coverage
- Not measured
- Source code coverage
- Not measured
- State transition coverage
- Not measured
Operations not exercised
tavily:crawltavily:createResearchtavily:getResearchtavily:getUsagetavily:maptavily:post_feedbacktavily:post_logs
Conformance results
- decided: 0 failures · every served operation is decided with its demand; every demanded and every refreshed operation is served
- published: 0 failures · what a release publishes holds every unit: its manifest, its spec and its journeys
- cited: 0 failures · every vendor fact cited is recorded as a page that answered, each quote found on it
- refresh: 0 failures · every stored resource of a vendor-backed unit declares how it is read back, and a unit that sends events ingests the vendor's
- registered: 0 failures · a vendor-backed unit, lane or not, reaches the registered pack's state system
- allowance: 0 failures · a rate budget above the fallback rests on the vendor's documented allowance, cited in its manifest
- client: 0 failures · driven by the vendor's own client (its official SDK), served as a World runs it, the vendor's documented behaviour holds · tavily owes no client case: LibreChat uses raw Undici/axios; its demanded search and extraction clients do not use the official @tavily/core SDK. No official SDK behavior beyond a plain request is demanded.
- life: 0 failures · the life walked over HTTP against the pack served as a World runs it, with its scenario: every check held
- standalone: 0 failures · served by its server.ts as a World runs it, the pack answers HTTP and the boot probe, and each declared socket upgrades
Publisher, admission and provenance
- Publisher
- volter-ai/twin-packs-open
- Source commit
- aa8fdf214742cc2bd955d7a5d9d297a995726258
- Catalog record commit
- efc9a2a9cfac659f841d8e2f419f16bea8319734
- Package integrity
sha512-5WnqMR9T9YtOkkm+rZXgzpovFvq/MhPwpu0Qi/MfCL6VvDhesYHPOJduXBtro+o1V5wy/XsbZv24ffJy+qxFlw==- Admission mode
- Trusted internal publisher · maintainer merge
- Catalog assessment
- Bundled report checksum verified
- Assessed at
- Not recorded
- Assessment input head
- 0719026d8fef1f6f100e8571ba25b7261e38ea2f
- Evidence
- Assessment and admission
Catalog snapshot · @volter/twin-catalog@0.2.62
- Source commit
2d891e44624083a0ee54c058f1a566f050f38f1e- Catalog digest
72cc7d129522aaa089c84552b9d0839ab4cb0924ee7bd56ab359f827cddaa258- Installer integrity
sha512-MelxBw6h8W8k67EMu7SlYXOPwg8Z0QVcpDNKEcMzB8gH4v0JfYK2vuL7WdXNY1epjPZqxyK/5pEvDCiRqU0nAA==