From 5079f2be417c68a7c0868ec3f5ec3a2a96744017 Mon Sep 17 00:00:00 2001 From: nym21 Date: Sat, 25 Jul 2026 22:18:21 +0200 Subject: [PATCH] next: ai part 6 --- Cargo.lock | 50 +- Cargo.toml | 2 +- crates/brk_bindgen/README.md | 16 +- crates/brk_bindgen/src/generators/llm/mod.rs | 486 ++++ crates/brk_bindgen/src/generators/mod.rs | 4 +- crates/brk_bindgen/src/lib.rs | 28 +- crates/brk_client/src/lib.rs | 2 +- crates/brk_query/src/impl/addr/stats.rs | 14 +- crates/brk_server/examples/bindgen.rs | 4 +- crates/brk_server/src/api/addrs.rs | 2 +- crates/brk_server/src/lib.rs | 4 +- crates/brk_types/src/addr_stats.rs | 7 +- modules/brk-client/index.js | 5 +- packages/brk_client/brk_client/__init__.py | 6 +- scripts/build-ask-source.mjs | 162 ++ website/llms-full.txt | 2180 ++++++++++++++--- website/llms.txt | 38 +- website_next/ask/compactor.js | 77 + website_next/ask/context.js | 48 +- website_next/ask/index.js | 70 +- website_next/ask/model.js | 10 +- website_next/ask/storage.js | 63 + website_next/ask/tools/api/answer.js | 241 ++ website_next/ask/tools/api/execute.js | 127 + website_next/ask/tools/api/index.js | 104 + website_next/ask/tools/api/openapi.js | 201 ++ website_next/ask/tools/api/result.js | 32 + website_next/ask/tools/api/worker.js | 218 ++ website_next/ask/tools/chart/units.js | 19 + website_next/ask/tools/data.js | 27 +- website_next/ask/tools/direct/chart.js | 3 +- website_next/ask/tools/direct/evidence.js | 7 + website_next/ask/tools/index.js | 188 +- website_next/ask/tools/metrics/index.js | 22 +- website_next/ask/tools/metrics/language.js | 21 +- website_next/ask/tools/metrics/series.js | 51 + website_next/ask/tools/metrics/worker.js | 150 +- website_next/ask/tools/prompts.js | 25 +- website_next/ask/tools/refs.js | 1 + website_next/ask/tools/render.js | 173 +- website_next/ask/tools/schemas.js | 76 +- website_next/ask/tools/session.js | 721 +++++- .../ask/tools/source/catalog.jsonl.gz | Bin 0 -> 1001814 bytes website_next/ask/tools/source/formula.js | 3 +- website_next/ask/tools/source/index.js | 6 +- website_next/ask/tools/source/search.js | 188 ++ website_next/ask/tools/source/worker.js | 302 +-- website_next/ask/worker.js | 12 +- website_next/llms-full.txt | 2180 ++++++++++++++--- website_next/llms.txt | 38 +- website_next/utils/client.js | 3 +- 51 files changed, 7130 insertions(+), 1287 deletions(-) create mode 100644 crates/brk_bindgen/src/generators/llm/mod.rs create mode 100644 scripts/build-ask-source.mjs create mode 100644 website_next/ask/compactor.js create mode 100644 website_next/ask/tools/api/answer.js create mode 100644 website_next/ask/tools/api/execute.js create mode 100644 website_next/ask/tools/api/index.js create mode 100644 website_next/ask/tools/api/openapi.js create mode 100644 website_next/ask/tools/api/result.js create mode 100644 website_next/ask/tools/api/worker.js create mode 100644 website_next/ask/tools/chart/units.js create mode 100644 website_next/ask/tools/metrics/series.js create mode 100644 website_next/ask/tools/source/catalog.jsonl.gz create mode 100644 website_next/ask/tools/source/search.js diff --git a/Cargo.lock b/Cargo.lock index 7113f7869..7b912d607 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -679,7 +679,7 @@ version = "0.3.6" dependencies = [ "proc-macro2", "quote", - "syn 3.0.2", + "syn 3.0.3", ] [[package]] @@ -1367,13 +1367,13 @@ dependencies = [ [[package]] name = "foreign-types-macros" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +checksum = "ea5190182e6915eb873ddbc16e23b711b6eb1f9c00a0d0a3a91b5f6228475225" dependencies = [ "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.3", ] [[package]] @@ -1481,9 +1481,9 @@ checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" [[package]] name = "glob" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" +checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b" [[package]] name = "half" @@ -1949,9 +1949,9 @@ checksum = "803ec87c9cfb29b9d2633f20cba1f488db3fd53f2158b1024cbefb47ba05d413" [[package]] name = "libc" -version = "0.2.186" +version = "0.2.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" [[package]] name = "libloading" @@ -2507,7 +2507,7 @@ checksum = "2c9283685feec7d69af75fb0e858d5e7378f33fe4fc699383b2916ab9273e03c" dependencies = [ "proc-macro2", "quote", - "syn 3.0.2", + "syn 3.0.3", ] [[package]] @@ -2613,9 +2613,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.15.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "764899a24af3980067ee14bc143654f297b22eaebfe3c7b6b211920a5a59b046" +checksum = "2f4925028c7eb5d1fcdaf196971378ed9d2c1c4efc7dc5d011256f76c99c0a96" dependencies = [ "zeroize", ] @@ -2753,7 +2753,7 @@ checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" dependencies = [ "proc-macro2", "quote", - "syn 3.0.2", + "syn 3.0.3", ] [[package]] @@ -2960,9 +2960,9 @@ dependencies = [ [[package]] name = "syn" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a207d6d6a2b7fc470b80443726053f18a2481b7e1eee970597051596567987a3" +checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3" dependencies = [ "proc-macro2", "quote", @@ -3016,7 +3016,7 @@ checksum = "43cbfe0cf76104d42a574802844187e84a305e531ed54455f11fbde0f10541cd" dependencies = [ "proc-macro2", "quote", - "syn 3.0.2", + "syn 3.0.3", ] [[package]] @@ -3070,9 +3070,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.53.0" +version = "1.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d988bcd52dbe076d3d46903332f58c912b87a2c49b1428419a5845154762ffee" +checksum = "202caea871b69668250d242070849eb495be178ed697a3e98aebce5bc81a0bed" dependencies = [ "libc", "mio", @@ -3095,9 +3095,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.18" +version = "0.7.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" +checksum = "494815d09bf52b5548659851081238f0ca39ff638363907596da739561c62c52" dependencies = [ "bytes", "futures-core", @@ -3684,9 +3684,9 @@ checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" [[package]] name = "xxhash-rust" -version = "0.8.17" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "985eec839aaf2a1270af8f4ebcf63cf9401cfd90f0902f97c28d9f104ffbde72" +checksum = "aee1b19627c7c60102ab80d3a9cbe18de90bfe03bfa6c3715447681f0e8c8af6" [[package]] name = "yeslogic-fontconfig-sys" @@ -3724,18 +3724,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.54" +version = "0.8.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7cbbc0a705a0fd05cc3676525980d2bf5a9bc4adac6d6475209a7887cf59d19" +checksum = "b5a105cd7b140f6eeec8acff2ea38135d3cab283ada58540f629fe51e46696eb" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.54" +version = "0.8.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e817b7b52d0c7358d3246da9d69935ebb18116b2b102b4230dac079b4862f5" +checksum = "0fe976fb70c78cd64cccfe3a6fc142244e8a77b70959b30faf9d0ac37ee228eb" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 48e7d780f..590ef2de5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -79,7 +79,7 @@ serde_bytes = "0.11.19" serde_derive = "1.0.229" serde_json = { version = "1.0.151", features = ["float_roundtrip", "preserve_order"] } smallvec = "1.15.2" -tokio = { version = "1.53.0", features = ["rt-multi-thread"] } +tokio = { version = "1.53.1", features = ["rt-multi-thread"] } tower-http = { version = "0.7.0", features = ["catch-panic", "compression-br", "compression-gzip", "compression-zstd", "cors", "normalize-path", "timeout", "trace"] } tower-layer = "0.3" tracing = { version = "0.1", default-features = false, features = ["std"] } diff --git a/crates/brk_bindgen/README.md b/crates/brk_bindgen/README.md index 26bd6315a..f6bb8397e 100644 --- a/crates/brk_bindgen/README.md +++ b/crates/brk_bindgen/README.md @@ -4,15 +4,15 @@ Code generation for BRK client libraries. ## What It Enables -Generate typed client libraries for Rust, JavaScript, and Python from the OpenAPI specification. Keeps frontend code in sync with available metrics and API endpoints without manual maintenance. +Generate clients for Rust, JavaScript, Python, and LLMs from the OpenAPI specification and metric tree. Keeps every consumer in sync with available metrics and API endpoints without manual maintenance. ## Key Features -- **Multi-language**: Generates Rust, JavaScript, and Python clients +- **Multi-client**: Generates Rust, JavaScript, Python, and LLM clients - **OpenAPI-driven**: Extracts endpoints and schemas from the OpenAPI spec - **Metric catalog**: Includes all metric IDs and their supported indexes - **Type definitions**: Generates types/interfaces from JSON Schema -- **Selective output**: Generate only the languages you need +- **Selective output**: Generate only the clients you need ## Core API @@ -22,7 +22,9 @@ use brk_bindgen::{generate_clients, ClientOutputPaths}; let paths = ClientOutputPaths::new() .rust("crates/brk_client/src/lib.rs") .javascript("modules/brk-client/index.js") - .python("packages/brk_client/brk_client/__init__.py"); + .python("packages/brk_client/brk_client/__init__.py") + .llm("website") + .llm("website_next"); generate_clients(&vecs, &openapi_json, &paths)?; ``` @@ -34,12 +36,16 @@ generate_clients(&vecs, &openapi_json, &paths)?; | Rust | Typed API client using `brk_types`, metric catalog | | JavaScript | ES module with JSDoc types, metric catalog, fetch helpers | | Python | Typed client with dataclasses, metric catalog | +| LLM | Concise discovery and complete plain-text API references | -Each client includes: +Language clients include: - All REST API endpoints as typed functions - Complete metric catalog with index information - Type definitions for request/response schemas +The LLM client emits the standard discovery files and links to the live +OpenAPI and series endpoints instead of duplicating their catalogs. + ## Built On - `brk_query` for metric enumeration diff --git a/crates/brk_bindgen/src/generators/llm/mod.rs b/crates/brk_bindgen/src/generators/llm/mod.rs new file mode 100644 index 000000000..76b8e2b96 --- /dev/null +++ b/crates/brk_bindgen/src/generators/llm/mod.rs @@ -0,0 +1,486 @@ +use std::{ + collections::{BTreeMap, BTreeSet}, + fmt::Write, + fs::create_dir_all, + io, + path::{Path, PathBuf}, +}; + +use brk_types::TreeNode; +use oas3::Spec; +use serde_json::Value; + +use crate::{ClientMetadata, Endpoint, ResponseKind, TypeSchemas}; + +use super::write_if_changed; + +const BASE_URL: &str = "https://bitview.space"; + +pub fn generate_llm_clients( + metadata: &ClientMetadata, + spec: &Spec, + endpoints: &[Endpoint], + schemas: &TypeSchemas, + roots: &[PathBuf], +) -> io::Result<()> { + let metric_count = count_metrics(&metadata.catalog); + let generated = endpoints + .iter() + .filter(|endpoint| endpoint.should_generate()) + .collect::>(); + let llms = render_llms( + &spec.info.title, + &spec.info.version, + metric_count, + &generated, + ); + let llms_full = render_llms_full( + &spec.info.title, + &spec.info.version, + metric_count, + &generated, + schemas, + ); + + for root in roots { + create_dir_all(root)?; + write_output(&root.join("llms.txt"), &llms)?; + write_output(&root.join("llms-full.txt"), &llms_full)?; + } + Ok(()) +} + +fn write_output(path: &Path, content: &str) -> io::Result<()> { + if let Some(parent) = path.parent() { + create_dir_all(parent)?; + } + write_if_changed(path, content) +} + +fn count_metrics(node: &TreeNode) -> usize { + match node { + TreeNode::Leaf(_) => 1, + TreeNode::Branch(children) => children.values().map(count_metrics).sum(), + } +} + +fn render_llms(title: &str, version: &str, metric_count: usize, endpoints: &[&Endpoint]) -> String { + format!( + "# {title} (BRK)\n\n\ +> Free, open-source Bitcoin analytics API and block explorer. {metric_count} on-chain time-series and {} API operations. No authentication required.\n\n\ +## API\n\n\ +- Version: `{version}`\n\ +- Base URL: {BASE_URL}\n\ +- [Full plain-text reference]({BASE_URL}/llms-full.txt)\n\ +- [Compact OpenAPI]({BASE_URL}/api.json)\n\ +- [Full OpenAPI]({BASE_URL}/openapi.json)\n\ +- [Series catalog]({BASE_URL}/api/series)\n\ +- [Interactive documentation]({BASE_URL}/api)\n\n\ +Use OpenAPI for tool construction, `/api/series` for complete series metadata, and `llms-full.txt` for a readable reference.\n\n\ +## Clients\n\n\ +- [JavaScript](https://www.npmjs.com/package/brk-client)\n\ +- [Python](https://pypi.org/project/brk-client/)\n\ +- [Rust](https://crates.io/crates/brk_client)\n\n\ +## Source\n\n\ +- [GitHub](https://github.com/bitcoinresearchkit/brk)\n\ +- MIT licensed\n", + endpoints.len(), + ) +} + +fn render_llms_full( + title: &str, + version: &str, + metric_count: usize, + endpoints: &[&Endpoint], + schemas: &TypeSchemas, +) -> String { + let mut output = String::new(); + writeln!(output, "# {title} (BRK) — Full API Reference\n").unwrap(); + writeln!( + output, + "> Generated from BRK's OpenAPI specification and metric tree. Do not edit this file manually.\n" + ) + .unwrap(); + writeln!(output, "- Version: `{version}`").unwrap(); + writeln!(output, "- Base URL: {BASE_URL}").unwrap(); + writeln!(output, "- Metrics: {metric_count}").unwrap(); + writeln!(output, "- Operations: {}\n", endpoints.len()).unwrap(); + writeln!( + output, + "For machine-readable tool construction, use [{BASE_URL}/openapi.json]({BASE_URL}/openapi.json). For the complete source-derived series tree, use [{BASE_URL}/api/series]({BASE_URL}/api/series).\n" + ) + .unwrap(); + + let mut groups = BTreeMap::>::new(); + for endpoint in endpoints { + groups + .entry(endpoint_group(&endpoint.path)) + .or_default() + .push(endpoint); + } + for group in groups.values_mut() { + group.sort_unstable_by(|left, right| { + left.path + .cmp(&right.path) + .then_with(|| left.method.cmp(&right.method)) + }); + } + + writeln!(output, "## Operations\n").unwrap(); + for (group, operations) in groups { + writeln!(output, "### {group}\n").unwrap(); + for endpoint in operations { + render_endpoint(&mut output, endpoint); + } + } + + let referenced = referenced_schemas(endpoints, schemas); + if !referenced.is_empty() { + writeln!(output, "## Schemas\n").unwrap(); + for name in referenced { + let Some(schema) = schemas.get(&name) else { + continue; + }; + render_schema(&mut output, &name, schema); + } + } + output +} + +fn endpoint_group(path: &str) -> String { + let segment = path + .split('/') + .find(|part| !part.is_empty() && *part != "api" && *part != "v1") + .unwrap_or("server"); + title_case(segment) +} + +fn title_case(value: &str) -> String { + value + .split(['-', '_']) + .filter(|part| !part.is_empty()) + .map(|part| { + let mut chars = part.chars(); + chars + .next() + .map(|first| first.to_uppercase().collect::() + chars.as_str()) + .unwrap_or_default() + }) + .collect::>() + .join(" ") +} + +fn render_endpoint(output: &mut String, endpoint: &Endpoint) { + writeln!(output, "#### {} `{}`\n", endpoint.method, endpoint.path).unwrap(); + if let Some(summary) = endpoint + .summary + .as_deref() + .filter(|value| !value.trim().is_empty()) + { + writeln!(output, "{}\n", one_line(summary)).unwrap(); + } + if let Some(description) = endpoint + .description + .as_deref() + .filter(|value| !value.trim().is_empty()) + { + let description = one_line(description); + if endpoint.summary.as_deref().map(one_line).as_deref() != Some(description.as_str()) { + writeln!(output, "{description}\n").unwrap(); + } + } + + let parameters = endpoint + .path_params + .iter() + .map(|parameter| ("path", parameter)) + .chain( + endpoint + .query_params + .iter() + .map(|parameter| ("query", parameter)), + ) + .collect::>(); + if !parameters.is_empty() { + writeln!(output, "Parameters:").unwrap(); + for (location, parameter) in parameters { + let requirement = if parameter.required { + "required" + } else { + "optional" + }; + write!( + output, + "- `{}` ({location}, {}, {requirement})", + parameter.name, parameter.param_type + ) + .unwrap(); + if let Some(description) = parameter + .description + .as_deref() + .filter(|value| !value.trim().is_empty()) + { + write!(output, ": {}", one_line(description)).unwrap(); + } + writeln!(output).unwrap(); + } + writeln!(output).unwrap(); + } + + if let Some(body) = &endpoint.request_body { + writeln!( + output, + "Request body: `{}` ({})\n", + body.body_type, + if body.required { + "required" + } else { + "optional" + } + ) + .unwrap(); + } + writeln!( + output, + "Returns: {}\n", + response_label(&endpoint.response_kind) + ) + .unwrap(); + writeln!(output, "```bash").unwrap(); + writeln!(output, "{}", curl_example(endpoint)).unwrap(); + writeln!(output, "```\n").unwrap(); +} + +fn response_label(response: &ResponseKind) -> String { + match response { + ResponseKind::Json(name) => format!("JSON `{name}`"), + ResponseKind::Text(Some(schema)) => format!("text `{}`", schema.name), + ResponseKind::Text(None) => "text".to_owned(), + ResponseKind::Binary => "binary data".to_owned(), + } +} + +fn curl_example(endpoint: &Endpoint) -> String { + let mut path = endpoint.path.clone(); + for parameter in &endpoint.path_params { + path = path.replace( + &format!("{{{}}}", parameter.name), + &format!("<{}>", parameter.name), + ); + } + if !endpoint.query_params.is_empty() { + path.push('?'); + path.push_str( + &endpoint + .query_params + .iter() + .map(|parameter| format!("{}=<{}>", parameter.name, parameter.name)) + .collect::>() + .join("&"), + ); + } + if let Some(body) = &endpoint.request_body { + format!( + "curl -s -X {} --data '<{}>' \"{BASE_URL}{path}\"", + endpoint.method, body.body_type + ) + } else { + format!("curl -s \"{BASE_URL}{path}\"") + } +} + +fn referenced_schemas(endpoints: &[&Endpoint], schemas: &TypeSchemas) -> BTreeSet { + let mut names = BTreeSet::new(); + for endpoint in endpoints { + if let Some(name) = endpoint.schema_name().filter(|name| *name != "*") { + names.insert(name.to_owned()); + } + if let Some(body) = &endpoint.request_body + && schemas.contains_key(&body.body_type) + { + names.insert(body.body_type.clone()); + } + } + + let mut pending = names.iter().cloned().collect::>(); + while let Some(name) = pending.pop() { + let Some(schema) = schemas.get(&name) else { + continue; + }; + let mut refs = BTreeSet::new(); + collect_refs(schema, &mut refs); + for referenced in refs { + if schemas.contains_key(&referenced) && names.insert(referenced.clone()) { + pending.push(referenced); + } + } + } + names +} + +fn collect_refs(value: &Value, refs: &mut BTreeSet) { + match value { + Value::Object(object) => { + if let Some(reference) = object.get("$ref").and_then(Value::as_str) + && let Some(name) = reference.rsplit('/').next() + { + refs.insert(name.to_owned()); + } + for child in object.values() { + collect_refs(child, refs); + } + } + Value::Array(values) => { + for child in values { + collect_refs(child, refs); + } + } + _ => {} + } +} + +fn render_schema(output: &mut String, name: &str, schema: &Value) { + writeln!(output, "### `{name}`\n").unwrap(); + let required = schema + .get("required") + .and_then(Value::as_array) + .map(|values| { + values + .iter() + .filter_map(Value::as_str) + .collect::>() + }) + .unwrap_or_default(); + if let Some(properties) = schema.get("properties").and_then(Value::as_object) { + for (property, shape) in properties { + write!( + output, + "- `{property}`: `{}`{}", + schema_type(shape), + if required.contains(property.as_str()) { + " (required)" + } else { + "" + } + ) + .unwrap(); + if let Some(description) = shape + .get("description") + .and_then(Value::as_str) + .filter(|value| !value.trim().is_empty()) + { + write!(output, " — {}", one_line(description)).unwrap(); + } + writeln!(output).unwrap(); + } + } else { + writeln!(output, "`{}`", schema_type(schema)).unwrap(); + } + writeln!(output).unwrap(); +} + +fn schema_type(schema: &Value) -> String { + if let Some(reference) = schema.get("$ref").and_then(Value::as_str) { + return reference.rsplit('/').next().unwrap_or(reference).to_owned(); + } + if let Some(values) = schema.get("enum").and_then(Value::as_array) { + return values + .iter() + .map(|value| { + value + .as_str() + .map_or_else(|| value.to_string(), str::to_owned) + }) + .collect::>() + .join(" | "); + } + if let Some(kind) = schema.get("type").and_then(Value::as_str) { + if kind == "array" { + return format!( + "{}[]", + schema + .get("items") + .map(schema_type) + .unwrap_or_else(|| "value".to_owned()) + ); + } + return kind.to_owned(); + } + for key in ["oneOf", "anyOf", "allOf"] { + if let Some(values) = schema.get(key).and_then(Value::as_array) { + return values + .iter() + .map(schema_type) + .collect::>() + .join(" | "); + } + } + "object".to_owned() +} + +fn one_line(value: &str) -> String { + value.split_whitespace().collect::>().join(" ") +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::Parameter; + + fn endpoint(path: &str, method: &str) -> Endpoint { + Endpoint { + method: method.to_owned(), + path: path.to_owned(), + operation_id: None, + summary: Some("Read a thing".to_owned()), + description: None, + path_params: vec![Parameter { + name: "id".to_owned(), + required: true, + param_type: "string".to_owned(), + description: Some("Thing identifier".to_owned()), + }], + query_params: Vec::new(), + request_body: None, + response_kind: ResponseKind::Json("Thing".to_owned()), + deprecated: false, + supports_csv: false, + } + } + + #[test] + fn full_reference_lists_every_operation_once() { + let first = endpoint("/api/thing/{id}", "GET"); + let second = endpoint("/api/thing/{id}/status", "GET"); + let endpoints = [&first, &second]; + let output = render_llms_full("BRK", "v1", 12, &endpoints, &BTreeMap::new()); + + assert_eq!(output.matches("#### GET `/api/thing/{id}`\n").count(), 1); + assert_eq!( + output + .matches("#### GET `/api/thing/{id}/status`\n") + .count(), + 1 + ); + assert!(output.contains("curl -s \"https://bitview.space/api/thing/\"")); + } + + #[test] + fn schema_renderer_keeps_required_fields_and_references() { + let schema = serde_json::json!({ + "type": "object", + "required": ["tx"], + "properties": { + "tx": { "$ref": "#/components/schemas/Transaction" }, + "height": { "type": "integer" } + } + }); + let mut output = String::new(); + + render_schema(&mut output, "Result", &schema); + + assert!(output.contains("`tx`: `Transaction` (required)")); + assert!(output.contains("`height`: `integer`")); + } +} diff --git a/crates/brk_bindgen/src/generators/mod.rs b/crates/brk_bindgen/src/generators/mod.rs index 608c25ed1..397be141a 100644 --- a/crates/brk_bindgen/src/generators/mod.rs +++ b/crates/brk_bindgen/src/generators/mod.rs @@ -1,6 +1,6 @@ //! Code generators for client libraries. //! -//! Each language has its own submodule with focused files: +//! Each client has its own submodule. Language clients use focused files: //! - `types.rs` - Type definitions //! - `client.rs` - Base client and pattern factories //! - `tree.rs` - Tree structure generation @@ -10,10 +10,12 @@ use std::{fmt::Write, fs, io, path::Path}; pub mod javascript; +pub mod llm; pub mod python; pub mod rust; pub use javascript::generate_javascript_client; +pub use llm::generate_llm_clients; pub use python::generate_python_client; pub use rust::generate_rust_client; diff --git a/crates/brk_bindgen/src/lib.rs b/crates/brk_bindgen/src/lib.rs index ca3acf729..b8bdddc58 100644 --- a/crates/brk_bindgen/src/lib.rs +++ b/crates/brk_bindgen/src/lib.rs @@ -4,17 +4,20 @@ use std::{collections::btree_map::Entry, fs::create_dir_all, io, path::PathBuf}; use brk_query::Vecs; -/// Output path configuration for each language client. +/// Output path configuration for each client. /// -/// Each path should be the full path to the output file, not just a directory. -/// Parent directories will be created automatically if they don't exist. +/// Rust, JavaScript, and Python take a full output file path. LLM clients take +/// a root directory and generate their complete bundle inside it. Parent +/// directories will be created automatically if they don't exist. /// /// # Example /// ```ignore /// let paths = ClientOutputPaths::new() /// .rust("crates/brk_client/src/lib.rs") /// .javascript("modules/brk-client/index.js") -/// .python("packages/brk_client/__init__.py"); +/// .python("packages/brk_client/__init__.py") +/// .llm("website") +/// .llm("website_next"); /// ``` #[derive(Debug, Clone, Default)] pub struct ClientOutputPaths { @@ -24,6 +27,8 @@ pub struct ClientOutputPaths { pub javascript: Option, /// Full path to Python client file (e.g., "packages/brk_client/__init__.py") pub python: Option, + /// Root directories for generated LLM client bundles. + pub llm: Vec, } impl ClientOutputPaths { @@ -45,6 +50,11 @@ impl ClientOutputPaths { self.python = Some(path.into()); self } + + pub fn llm(mut self, root: impl Into) -> Self { + self.llm.push(root.into()); + self + } } mod analysis; @@ -67,15 +77,17 @@ pub const VERSION: &str = env!("CARGO_PKG_VERSION"); /// Generate all client libraries from the query vecs and OpenAPI JSON. /// -/// Uses `ClientOutputPaths` to specify the output file path for each language. -/// Only languages with a configured path will be generated. +/// Uses `ClientOutputPaths` to specify the output location for each client. +/// Only clients with a configured location will be generated. /// /// # Example /// ```ignore /// let paths = ClientOutputPaths::new() /// .rust("crates/brk_client/src/lib.rs") /// .javascript("modules/brk-client/index.js") -/// .python("packages/brk_client/__init__.py"); +/// .python("packages/brk_client/__init__.py") +/// .llm("website") +/// .llm("website_next"); /// /// generate_clients(&vecs, &openapi_json, &paths)?; /// ``` @@ -125,6 +137,8 @@ pub fn generate_clients( generate_python_client(&metadata, &endpoints, &schemas, python_path)?; } + generate_llm_clients(&metadata, &spec, &endpoints, &schemas, &output_paths.llm)?; + Ok(()) } diff --git a/crates/brk_client/src/lib.rs b/crates/brk_client/src/lib.rs index 2927e3b2d..e28c00ce5 100644 --- a/crates/brk_client/src/lib.rs +++ b/crates/brk_client/src/lib.rs @@ -10359,7 +10359,7 @@ impl BrkClient { /// Address information /// - /// Retrieve address information including balance and transaction counts. Supports all standard Bitcoin address types (P2PKH, P2SH, P2WPKH, P2WSH, P2TR). + /// Retrieve address information including current balance and transaction counts. Supports all standard Bitcoin address types (P2PKH, P2SH, P2WPKH, P2WSH, P2TR). /// /// *[Mempool.space docs](https://mempool.space/docs/api/rest#get-address)* /// diff --git a/crates/brk_query/src/impl/addr/stats.rs b/crates/brk_query/src/impl/addr/stats.rs index 45c7eec67..656998ec8 100644 --- a/crates/brk_query/src/impl/addr/stats.rs +++ b/crates/brk_query/src/impl/addr/stats.rs @@ -57,6 +57,14 @@ impl Query { } }; + let mempool_stats = self + .mempool() + .and_then(|m| m.addr_stats(&bytes)) + .unwrap_or_default(); + let balance = addr_data.received + mempool_stats.funded_txo_sum + - addr_data.sent + - mempool_stats.spent_txo_sum; + Ok(AddrStats { addr, addr_type: output_type, @@ -69,10 +77,8 @@ impl Query { tx_count: addr_data.tx_count, realized_price, }, - mempool_stats: self - .mempool() - .and_then(|m| m.addr_stats(&bytes)) - .unwrap_or_default(), + mempool_stats, + balance, }) } } diff --git a/crates/brk_server/examples/bindgen.rs b/crates/brk_server/examples/bindgen.rs index 59ae46a58..e0f1d66ee 100644 --- a/crates/brk_server/examples/bindgen.rs +++ b/crates/brk_server/examples/bindgen.rs @@ -27,7 +27,9 @@ pub fn main() -> color_eyre::Result<()> { let output_paths = brk_bindgen::ClientOutputPaths::new() .rust(workspace_root.join("crates/brk_client/src/lib.rs")) .javascript(workspace_root.join("website/scripts/modules/brk-client/index.js")) - .python(workspace_root.join("packages/brk_client/brk_client/__init__.py")); + .python(workspace_root.join("packages/brk_client/brk_client/__init__.py")) + .llm(workspace_root.join("website")) + .llm(workspace_root.join("website_next")); generate_bindings(&vecs, &openapi, &output_paths)?; diff --git a/crates/brk_server/src/api/addrs.rs b/crates/brk_server/src/api/addrs.rs index 393fe6730..01f830298 100644 --- a/crates/brk_server/src/api/addrs.rs +++ b/crates/brk_server/src/api/addrs.rs @@ -63,7 +63,7 @@ impl AddrRoutes for ApiRouter { .id("get_address") .addrs_tag() .summary("Address information") - .description("Retrieve address information including balance and transaction counts. Supports all standard Bitcoin address types (P2PKH, P2SH, P2WPKH, P2WSH, P2TR).\n\n*[Mempool.space docs](https://mempool.space/docs/api/rest#get-address)*") + .description("Retrieve address information including current balance and transaction counts. Supports all standard Bitcoin address types (P2PKH, P2SH, P2WPKH, P2WSH, P2TR).\n\n*[Mempool.space docs](https://mempool.space/docs/api/rest#get-address)*") .json_response::() .not_modified() .bad_request() diff --git a/crates/brk_server/src/lib.rs b/crates/brk_server/src/lib.rs index 09777101d..831d6da85 100644 --- a/crates/brk_server/src/lib.rs +++ b/crates/brk_server/src/lib.rs @@ -286,7 +286,9 @@ impl Server { let output_paths = brk_bindgen::ClientOutputPaths::new() .rust(workspace_root.join("crates/brk_client/src/lib.rs")) .javascript(workspace_root.join("modules/brk-client/index.js")) - .python(workspace_root.join("packages/brk_client/brk_client/__init__.py")); + .python(workspace_root.join("packages/brk_client/brk_client/__init__.py")) + .llm(workspace_root.join("website")) + .llm(workspace_root.join("website_next")); let result = std::panic::catch_unwind(std::panic::AssertUnwindSafe(|| { generate_bindings(vecs, &openapi, &output_paths) diff --git a/crates/brk_types/src/addr_stats.rs b/crates/brk_types/src/addr_stats.rs index 93c4e761e..e4a44a4a1 100644 --- a/crates/brk_types/src/addr_stats.rs +++ b/crates/brk_types/src/addr_stats.rs @@ -1,8 +1,8 @@ -use crate::{Addr, AddrChainStats, AddrMempoolStats, OutputType}; +use crate::{Addr, AddrChainStats, AddrMempoolStats, OutputType, Sats}; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; -/// Address information compatible with mempool.space API format +/// Address information compatible with mempool.space API format. #[derive(Debug, Serialize, Deserialize, JsonSchema)] pub struct AddrStats { /// Bitcoin address string @@ -20,4 +20,7 @@ pub struct AddrStats { /// Statistics for unconfirmed transactions in the mempool pub mempool_stats: AddrMempoolStats, + + /// Current balance in satoshis, including unconfirmed mempool changes + pub balance: Sats, } diff --git a/modules/brk-client/index.js b/modules/brk-client/index.js index 7cfcaf293..904aaabb6 100644 --- a/modules/brk-client/index.js +++ b/modules/brk-client/index.js @@ -60,13 +60,14 @@ * @property {Addr} address */ /** - * Address information compatible with mempool.space API format + * Address information compatible with mempool.space API format. * * @typedef {Object} AddrStats * @property {Addr} address - Bitcoin address string * @property {OutputType} addrType - Address type (p2pkh, p2sh, v0_p2wpkh, v0_p2wsh, v1_p2tr, etc.) * @property {AddrChainStats} chainStats - Statistics for confirmed transactions on the blockchain * @property {AddrMempoolStats} mempoolStats - Statistics for unconfirmed transactions in the mempool + * @property {Sats} balance - Current balance in satoshis, including unconfirmed mempool changes */ /** * Address validation result @@ -12012,7 +12013,7 @@ class BrkClient extends BrkClientBase { /** * Address information * - * Retrieve address information including balance and transaction counts. Supports all standard Bitcoin address types (P2PKH, P2SH, P2WPKH, P2WSH, P2TR). + * Retrieve address information including current balance and transaction counts. Supports all standard Bitcoin address types (P2PKH, P2SH, P2WPKH, P2WSH, P2TR). * * *[Mempool.space docs](https://mempool.space/docs/api/rest#get-address)* * diff --git a/packages/brk_client/brk_client/__init__.py b/packages/brk_client/brk_client/__init__.py index 20a605e5d..d883ea397 100644 --- a/packages/brk_client/brk_client/__init__.py +++ b/packages/brk_client/brk_client/__init__.py @@ -336,18 +336,20 @@ class AddrParam(TypedDict): class AddrStats(TypedDict): """ - Address information compatible with mempool.space API format + Address information compatible with mempool.space API format. Attributes: address: Bitcoin address string addr_type: Address type (p2pkh, p2sh, v0_p2wpkh, v0_p2wsh, v1_p2tr, etc.) chain_stats: Statistics for confirmed transactions on the blockchain mempool_stats: Statistics for unconfirmed transactions in the mempool + balance: Current balance in satoshis, including unconfirmed mempool changes """ address: Addr addr_type: OutputType chain_stats: AddrChainStats mempool_stats: AddrMempoolStats + balance: Sats class AddrValidation(TypedDict): """ @@ -8768,7 +8770,7 @@ class BrkClient(BrkClientBase): def get_address(self, address: Addr) -> AddrStats: """Address information. - Retrieve address information including balance and transaction counts. Supports all standard Bitcoin address types (P2PKH, P2SH, P2WPKH, P2WSH, P2TR). + Retrieve address information including current balance and transaction counts. Supports all standard Bitcoin address types (P2PKH, P2SH, P2WPKH, P2WSH, P2TR). *[Mempool.space docs](https://mempool.space/docs/api/rest#get-address)* diff --git a/scripts/build-ask-source.mjs b/scripts/build-ask-source.mjs new file mode 100644 index 000000000..ea52ca9e2 --- /dev/null +++ b/scripts/build-ask-source.mjs @@ -0,0 +1,162 @@ +import { mkdir, rename, unlink, writeFile } from "node:fs/promises"; +import { dirname, resolve } from "node:path"; +import { fileURLToPath } from "node:url"; +import { gzipSync } from "node:zlib"; + +const repository = "bitcoinresearchkit/brk"; +const revision = process.argv[2] ?? "main"; +const root = resolve(dirname(fileURLToPath(import.meta.url)), ".."); +const output = resolve( + process.argv[3] ?? `${root}/website_next/ask/tools/source/catalog.jsonl.gz`, +); +const temporaryOutput = `${output}.${process.pid}.tmp`; +const maxFileSize = 128_000; +const concurrency = 12; +const extensions = new Set([ + "css", + "html", + "js", + "json", + "md", + "mjs", + "py", + "rs", + "sh", + "toml", + "ts", + "yaml", + "yml", +]); +const excludedPrefixes = [ + ".git/", + ".github/", + "docs/ai/", + "modules/", + "packages/brk_client/brk_client/", + "target/", + "website/assets/", + "website_next/modules/", +]; +const excludedFiles = new Set([ + "crates/brk_server/src/api/scalar.js", + "docs/CHANGELOG.md", + "website/scripts/options/scalar.js", +]); +const headers = { + Accept: "application/vnd.github+json", + "User-Agent": "brk-ask-source-builder", +}; + +async function fetchResponse(url, options = {}) { + let lastError; + for (let attempt = 0; attempt < 3; attempt += 1) { + try { + const response = await fetch(url, options); + if (response.ok) return response; + lastError = new Error(`${response.status} ${response.statusText}: ${url}`); + if (response.status < 500 && response.status !== 429) break; + } catch (error) { + lastError = error; + } + await new Promise((resolveDelay) => + setTimeout(resolveDelay, 250 * 2 ** attempt), + ); + } + throw lastError; +} + +async function fetchJson(url) { + return fetchResponse(url, { headers }).then((response) => response.json()); +} + +function isUsefulSource(entry) { + if (entry.type !== "blob" || !entry.size || entry.size > maxFileSize) { + return false; + } + const extension = entry.path.slice(entry.path.lastIndexOf(".") + 1).toLowerCase(); + return ( + extensions.has(extension) && + !excludedFiles.has(entry.path) && + !excludedPrefixes.some((prefix) => entry.path.startsWith(prefix)) + ); +} + +function rawUrl(commit, filePath) { + const encodedPath = filePath.split("/").map(encodeURIComponent).join("/"); + return `https://raw.githubusercontent.com/${repository}/${commit}/${encodedPath}`; +} + +async function mapConcurrent(items, mapper) { + const results = new Array(items.length); + let nextIndex = 0; + async function worker() { + while (nextIndex < items.length) { + const index = nextIndex; + nextIndex += 1; + results[index] = await mapper(items[index], index); + } + } + await Promise.all( + Array.from({ length: Math.min(concurrency, items.length) }, worker), + ); + return results; +} + +async function main() { + const commitInfo = await fetchJson( + `https://api.github.com/repos/${repository}/commits/${encodeURIComponent(revision)}`, + ); + const commit = commitInfo.sha; + if (!commit) throw new Error(`Could not resolve revision: ${revision}`); + + const treeInfo = await fetchJson( + `https://api.github.com/repos/${repository}/git/trees/${commit}?recursive=1`, + ); + if (treeInfo.truncated) { + throw new Error("GitHub returned a truncated repository tree"); + } + + const entries = treeInfo.tree.filter(isUsefulSource); + entries.sort((left, right) => left.path.localeCompare(right.path)); + const files = await mapConcurrent(entries, async (entry, index) => { + const response = await fetchResponse(rawUrl(commit, entry.path)); + const source = await response.text(); + if ((index + 1) % 250 === 0 || index + 1 === entries.length) { + console.error(`Fetched ${index + 1}/${entries.length}`); + } + return JSON.stringify([entry.path, source]); + }); + + const header = JSON.stringify({ + repository, + revision: commit, + count: files.length, + }); + const raw = Buffer.from([header, ...files].join("\n")); + const compressed = gzipSync(raw, { level: 9 }); + + await mkdir(dirname(output), { recursive: true }); + try { + await writeFile(temporaryOutput, compressed); + await rename(temporaryOutput, output); + } catch (error) { + await unlink(temporaryOutput).catch(() => {}); + throw error; + } + + console.log( + JSON.stringify( + { + revision: commit, + files: files.length, + rawBytes: raw.length, + compressedBytes: compressed.length, + output, + }, + null, + 2, + ), + ); +} + +await main(); diff --git a/website/llms-full.txt b/website/llms-full.txt index 373f95b62..85ed48b34 100644 --- a/website/llms-full.txt +++ b/website/llms-full.txt @@ -1,497 +1,2059 @@ # Bitcoin Research Kit (BRK) — Full API Reference -> Free, open-source Bitcoin on-chain analytics API. 49,000+ time-series, block explorer, address index, mempool, mining stats — all computed from a Bitcoin Core node. No auth required. +> Generated from BRK's OpenAPI specification and metric tree. Do not edit this file manually. -Base URL: https://bitview.space -GitHub: https://github.com/bitcoinresearchkit/brk -License: MIT +- Version: `v0.3.6` +- Base URL: https://bitview.space +- Metrics: 55667 +- Operations: 97 -## Quick Start +For machine-readable tool construction, use [https://bitview.space/openapi.json](https://bitview.space/openapi.json). For the complete source-derived series tree, use [https://bitview.space/api/series](https://bitview.space/api/series). - # Search for series by keyword - curl -s "https://bitview.space/api/series/search?q=price" +## Operations - # Get Bitcoin closing price for the last 30 days - curl -s "https://bitview.space/api/series/price/day?start=-30" +### Address - # Get just the latest price - curl -s "https://bitview.space/api/series/price/day/latest" +#### GET `/api/address/hash-prefix/{addr_type}/{prefix}` - # Bulk query multiple series - curl -s "https://bitview.space/api/series/bulk?index=day&series=price,market_cap&start=-7" +Address hash-prefix matches - # Get the genesis block - curl -s "https://bitview.space/api/block-height/0" +Find addresses by address type and by the first 1-16 hex nibbles of RapidHash v3 over the raw address payload bytes. Intended for privacy-preserving client-side wallet discovery without sending raw addresses or xpubs. Fetch metadata for the returned addresses through `/api/address/{address}`. - # Get an address balance - curl -s "https://bitview.space/api/address/1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa" +Parameters: +- `addr_type` (path, OutputType, required) +- `prefix` (path, string, required) - # Get current fee estimates - curl -s "https://bitview.space/api/v1/fees/recommended" +Returns: JSON `AddrHashPrefixMatches` - # Get the live mempool-derived price - curl -s "https://bitview.space/api/mempool/price" +```bash +curl -s "https://bitview.space/api/address/hash-prefix//" +``` ---- +#### GET `/api/address/{address}` -## Response Format +Address information -All endpoints return JSON by default. Series endpoints also support CSV via `?format=csv`. +Retrieve address information including current balance and transaction counts. Supports all standard Bitcoin address types (P2PKH, P2SH, P2WPKH, P2WSH, P2TR). *[Mempool.space docs](https://mempool.space/docs/api/rest#get-address)* -Errors return: +Parameters: +- `address` (path, Addr, required) - { - "error": { - "type": "not_found", - "code": "series_not_found", - "message": "'foo' not found, did you mean 'bar'?", - "doc_url": "/api" - } - } +Returns: JSON `AddrStats` -Error types: `invalid_request` (400), `forbidden` (403), `not_found` (404), `unavailable` (503), `internal` (500). +```bash +curl -s "https://bitview.space/api/address/
" +``` -## Range Parameters +#### GET `/api/address/{address}/txs` -`start` and `end` are optional on all series data endpoints. They accept: -- Dates: `2025-01-01` -- Integers: block height or absolute index -- Negative integers: relative offset from latest (`-30` = last 30 entries) -- ISO 8601 timestamps +Address transactions -## Indexes +Get transaction history for an address, newest first. Returns up to 50 mempool transactions plus a confirmed page sized to fill the response to 50 total (chain floor of 25, so 25-50 confirmed depending on mempool weight). To paginate further confirmed history, use `/address/{address}/txs/chain/{last_seen_txid}`. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-address-transactions)* -Series are queryable by time-based and block-based indexes. Common aliases are accepted (e.g. `day` for `day1`, `week` for `week1`). +Parameters: +- `address` (path, Addr, required) -Time-based: `minute10`, `minute30`, `hour1`, `hour4`, `hour12`, `day1`, `day3`, `week1`, `month1`, `month3`, `month6`, `year1`, `year10`, `halving`, `epoch` -Block-based: `height` +Returns: JSON `Transaction[]` -Common aliases: `day` = `day1`, `week` = `week1`, `month` = `month1`, `hour` = `hour1`, `h` = `height` +```bash +curl -s "https://bitview.space/api/address/
/txs" +``` -Not all series support all indexes. Use `GET /api/series/{name}` to see which indexes a series supports. +#### GET `/api/address/{address}/txs/chain` ---- +Address confirmed transactions -## Server +Get the first 25 confirmed transactions for an address. For pagination, use the path-style form `/txs/chain/{last_seen_txid}`. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-address-transactions-chain)* -### GET https://bitview.space/health +Parameters: +- `address` (path, Addr, required) -Health check. +Returns: JSON `Transaction[]` - → {"status": "healthy", "service": "brk", "version": "0.2.1", "indexed_height": 941908, "blocks_behind": 0, "uptime_seconds": 11806, ...} +```bash +curl -s "https://bitview.space/api/address/
/txs/chain" +``` -### GET https://bitview.space/version +#### GET `/api/address/{address}/txs/chain/{after_txid}` -API version string. +Address confirmed transactions (paginated) - → "0.2.1" +Get the next 25 confirmed transactions strictly older than `after_txid` (Esplora-canonical pagination form, matches mempool.space). *[Mempool.space docs](https://mempool.space/docs/api/rest#get-address-transactions-chain)* -### GET https://bitview.space/api/server/sync +Parameters: +- `address` (path, Addr, required) +- `after_txid` (path, Txid, required): Last txid from the previous page (return transactions strictly older than this) -Sync status. +Returns: JSON `Transaction[]` - → {"indexed_height": 941908, "computed_height": 941908, "tip_height": 941908, "blocks_behind": 0, "last_indexed_at": "2026-03-23T19:13:32Z"} +```bash +curl -s "https://bitview.space/api/address/
/txs/chain/" +``` -### GET https://bitview.space/api/server/disk +#### GET `/api/address/{address}/txs/mempool` -Disk usage for BRK data and Bitcoin Core data directories. +Address mempool transactions ---- +Get unconfirmed transactions for an address from the mempool, newest first (up to 50). *[Mempool.space docs](https://mempool.space/docs/api/rest#get-address-transactions-mempool)* -## Series +Parameters: +- `address` (path, Addr, required) -The core feature. 49,000+ on-chain time-series. +Returns: JSON `Transaction[]` -### GET https://bitview.space/api/series/search?q={query} +```bash +curl -s "https://bitview.space/api/address/
/txs/mempool" +``` -Fuzzy search series by name. Returns an array of matching series names. +#### GET `/api/address/{address}/utxo` - → ["price", "price_ath", "price_low", "price_sats", "price_high", "price_ohlc", ...] +Address UTXOs -### GET https://bitview.space/api/series/{series}/{index} +Get unspent transaction outputs (UTXOs) for an address. Returns txid, vout, value, and confirmation status for each UTXO. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-address-utxo)* -Fetch series data. Parameters: `format` (json|csv), `start`, `end`. +Parameters: +- `address` (path, Addr, required) -The `data` array contains raw values. Their position maps to the index range `start..end`. For date-based indexes, compute dates from the index type and position. +Returns: JSON `Utxo[]` - GET /api/series/price/day?start=-3 - → { - "version": 69, - "index": "day1", - "type": "Dollars", - "total": 6291, - "start": 6288, - "end": 6291, - "stamp": "2026-03-23T19:06:40Z", - "data": [70077.35, 68301.76, 70788.45] - } +```bash +curl -s "https://bitview.space/api/address/
/utxo" +``` -Some series return compound values per entry (e.g. OHLC): +### Api.json - GET /api/series/price_ohlc/day?start=-1 - → { ..., "type": "OHLCDollars", "data": [[68251.03, 71455.61, 67682.26, 70788.45]] } +#### GET `/api.json` -CSV format returns the series name as header, then one value per line: +Compact OpenAPI specification - GET /api/series/price/day?start=-3&format=csv - → price - 70077.35 - 68301.76 - 70788.45 +Compact OpenAPI specification optimized for LLM consumption. Removes redundant fields while preserving essential API information. Full spec available at `/openapi.json`. -### GET https://bitview.space/api/series/{series}/{index}/data +Returns: JSON `*` -Raw data array only (no metadata wrapper). Same parameters. +```bash +curl -s "https://bitview.space/api.json" +``` - GET /api/series/price/day/data?start=-3 - → [70077.35, 68301.76, 70788.45] +### Block -### GET https://bitview.space/api/series/{series}/{index}/latest +#### GET `/api/block/{hash}` -Most recent value only. +Block information - GET /api/series/price/day/latest - → 70788.45 +Retrieve block information by block hash. Returns block metadata including height, timestamp, difficulty, size, weight, and transaction count. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block)* -### GET https://bitview.space/api/series/{series} +Parameters: +- `hash` (path, BlockHash, required) -Series metadata: available indexes and value type. +Returns: JSON `BlockInfo` - GET /api/series/price - → { - "indexes": ["minute10", "minute30", "hour1", "hour4", "hour12", - "day1", "day3", "week1", "month1", "month3", "month6", - "year1", "year10", "halving", "epoch", "height"], - "type": "Dollars" - } +```bash +curl -s "https://bitview.space/api/block/" +``` -### GET https://bitview.space/api/series +#### GET `/api/block/{hash}/header` -Full hierarchical catalog of all series as a tree. +Block header -### GET https://bitview.space/api/series/list +Returns the hex-encoded 80-byte block header. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-header)* -Paginated list of all series. Supports `?page=N` (default 0, 1000 per page). +Parameters: +- `hash` (path, BlockHash, required) - → {"current_page": 0, "max_page": 49, "total_count": 49259, "per_page": 1000, "has_more": true, "series": ["fee", "nvt", ...]} +Returns: text `Hex` -### GET https://bitview.space/api/series/count +```bash +curl -s "https://bitview.space/api/block//header" +``` -Series count by category. Returns totals and per-database breakdowns. +#### GET `/api/block/{hash}/raw` -### GET https://bitview.space/api/series/indexes +Raw block -List all available indexes with their aliases. +Returns the raw block data in binary format. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-raw)* - → [{"index": "day1", "aliases": ["1d", "d", "day", "date", "daily", "day1", "dateindex"]}, ...] +Parameters: +- `hash` (path, BlockHash, required) -### GET https://bitview.space/api/series/{series}/{index}/len +Returns: binary data -Number of data points in the series. +```bash +curl -s "https://bitview.space/api/block//raw" +``` -### GET https://bitview.space/api/series/{series}/{index}/version +#### GET `/api/block/{hash}/status` -Version number (increments when data changes). +Block status -### GET https://bitview.space/api/series/bulk?index={index}&series={s1},{s2} +Retrieve the status of a block. Returns whether the block is in the best chain and, if so, its height and the hash of the next block. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-status)* -Fetch multiple series at once. Parameters: `series` (comma-separated, required), `index` (required), `format`, `start`, `end`. +Parameters: +- `hash` (path, BlockHash, required) - GET /api/series/bulk?index=day&series=price,market_cap&start=-1 - → [ - {"version": 69, "index": "day1", "type": "Dollars", "total": 6291, "start": 6290, "end": 6291, "stamp": "...", "data": [70788.45]}, - {"version": 83, "index": "day1", "type": "Dollars", "total": 6291, "start": 6290, "end": 6291, "stamp": "...", "data": [1416174345666.71]} - ] +Returns: JSON `BlockStatus` -CSV bulk format uses one column per series: +```bash +curl -s "https://bitview.space/api/block//status" +``` - GET /api/series/bulk?index=day&series=price,market_cap&start=-1&format=csv - → price,market_cap - 70788.45,1416174345666.71 +#### GET `/api/block/{hash}/txid/{index}` -### Cost Basis Distribution +Transaction ID at index -#### GET https://bitview.space/api/series/cost-basis -List available cohorts. +Retrieve a single transaction ID at a specific index within a block. Returns plain text txid. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-transaction-id)* -#### GET https://bitview.space/api/series/cost-basis/{cohort}/dates -Available snapshot dates for a cohort. +Parameters: +- `hash` (path, BlockHash, required): Bitcoin block hash +- `index` (path, BlockTxIndex, required): Transaction index within the block (0-based) -#### GET https://bitview.space/api/series/cost-basis/{cohort}/{date} -Distribution data. Parameters: `bucket` (raw|lin200|lin500|lin1000|log10|log50|log100), `value` (supply|realized|unrealized). +Returns: text `Txid` ---- +```bash +curl -s "https://bitview.space/api/block//txid/" +``` -## Blocks +#### GET `/api/block/{hash}/txids` -Mempool.space compatible. +Block transaction IDs -### GET https://bitview.space/api/block-height/{height} +Retrieve all transaction IDs in a block. Returns an array of txids in block order. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-transaction-ids)* -Single block by height. +Parameters: +- `hash` (path, BlockHash, required) - GET /api/block-height/0 - → { - "id": "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f", - "height": 0, - "tx_count": 1, - "size": 285, - "weight": 1140, - "timestamp": 1231006505, - "difficulty": 1.0 - } +Returns: JSON `Txid[]` -### GET https://bitview.space/api/block/{hash} +```bash +curl -s "https://bitview.space/api/block//txids" +``` -Single block by hash. Same response shape. +#### GET `/api/block/{hash}/txs` -### GET https://bitview.space/api/blocks +Block transactions -Last 10 blocks. Returns array of block objects. +Retrieve transactions in a block by block hash. Returns up to 25 transactions starting from index 0. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-transactions)* -### GET https://bitview.space/api/blocks/{height} +Parameters: +- `hash` (path, BlockHash, required) -Up to 10 blocks ending at `{height}` (descending). +Returns: JSON `Transaction[]` -### GET https://bitview.space/api/block/{hash}/status +```bash +curl -s "https://bitview.space/api/block//txs" +``` - → {"in_best_chain": true, "height": 916656, "next_best": "0000..."} +#### GET `/api/block/{hash}/txs/{start_index}` -### GET https://bitview.space/api/block/{hash}/txids +Block transactions (paginated) -Array of all transaction IDs in the block. +Retrieve transactions in a block by block hash, starting from the specified index. Returns up to 25 transactions at a time. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-transactions)* -### GET https://bitview.space/api/block/{hash}/txs/{start_index} +Parameters: +- `hash` (path, BlockHash, required): Bitcoin block hash +- `start_index` (path, BlockTxIndex, required): Starting transaction index within the block (0-based) -Paginated transactions in the block. +Returns: JSON `Transaction[]` -### GET https://bitview.space/api/block/{hash}/txid/{index} +```bash +curl -s "https://bitview.space/api/block//txs/" +``` -Single txid at position `index`. +#### GET `/api/v1/block/{hash}` -### GET https://bitview.space/api/block/{hash}/raw +Block (v1) -Raw block bytes. +Returns block details with extras by hash. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-v1)* -### GET https://bitview.space/api/v1/mining/blocks/timestamp/{timestamp} +Parameters: +- `hash` (path, BlockHash, required) -Block closest to a UNIX timestamp. +Returns: JSON `BlockInfoV1` ---- +```bash +curl -s "https://bitview.space/api/v1/block/" +``` -## Transactions +### Block Height -Mempool.space compatible. +#### GET `/api/block-height/{height}` -### GET https://bitview.space/api/tx/{txid} +Block hash by height -Full transaction data. Values in satoshis (1 BTC = 100,000,000 sats). +Retrieve the block hash at a given height. Returns the hash as plain text. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-height)* - → { - "index": 0, - "txid": "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b", - "version": 1, - "locktime": 0, - "size": 204, - "weight": 816, - "sigops": 4, - "fee": 0, - "vin": [{ - "txid": "0000000000000000000000000000000000000000000000000000000000000000", - "vout": 65535, - "prevout": null, - "scriptsig": "04ffff001d...", - "scriptsig_asm": "OP_PUSHBYTES_4 ...", - "is_coinbase": true, - "sequence": 4294967295 - }], - "vout": [{ - "scriptpubkey": "4104678a...", - "scriptpubkey_asm": "OP_PUSHBYTES_65 ... OP_CHECKSIG", - "scriptpubkey_type": "p2pk65", - "scriptpubkey_address": "04678afdb0...", - "value": 5000000000 - }], - "status": { - "confirmed": true, - "block_height": 0, - "block_hash": "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f", - "block_time": 1231006505 - } - } +Parameters: +- `height` (path, Height, required) -### GET https://bitview.space/api/tx/{txid}/status +Returns: text `BlockHash` - → {"confirmed": true, "block_height": 0, "block_hash": "0000...", "block_time": 1231006505} +```bash +curl -s "https://bitview.space/api/block-height/" +``` -### GET https://bitview.space/api/tx/{txid}/hex +### Blocks -Raw transaction hex string. +#### GET `/api/blocks` -### GET https://bitview.space/api/tx/{txid}/outspend/{vout} +Recent blocks - → {"spent": true, "txid": "...", "vin": 0, "status": {...}} +Retrieve the last 10 blocks. Returns block metadata for each block. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-blocks)* -### GET https://bitview.space/api/tx/{txid}/outspends +Returns: JSON `BlockInfo[]` -Array of spend status for all outputs. +```bash +curl -s "https://bitview.space/api/blocks" +``` ---- +#### GET `/api/blocks/tip/hash` -## Addresses +Block tip hash -Mempool.space compatible. Supports P2PKH, P2SH, P2WPKH, P2WSH, P2TR. +Returns the hash of the last block. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-tip-hash)* -### GET https://bitview.space/api/address/{address} +Returns: text `BlockHash` -Address summary. Values in satoshis. +```bash +curl -s "https://bitview.space/api/blocks/tip/hash" +``` - GET /api/address/1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa - → { - "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa", - "chain_stats": { - "funded_txo_count": 73262, - "funded_txo_sum": 5715642026, - "spent_txo_count": 0, - "spent_txo_sum": 0, - "tx_count": 62198, - "type_index": 371955 - }, - "mempool_stats": { - "funded_txo_count": 0, - "funded_txo_sum": 0, - "spent_txo_count": 0, - "spent_txo_sum": 0, - "tx_count": 0 - } - } +#### GET `/api/blocks/tip/height` -### GET https://bitview.space/api/address/{address}/txs +Block tip height -Transaction history (up to 75 per page). Paginate with `?after_txid={txid}`. +Returns the height of the last block. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-tip-height)* -### GET https://bitview.space/api/address/{address}/txs/chain +Returns: text `Height` -Confirmed transactions only (25 per page). Paginate with `?after_txid={txid}`. +```bash +curl -s "https://bitview.space/api/blocks/tip/height" +``` -### GET https://bitview.space/api/address/{address}/txs/mempool +#### GET `/api/blocks/{height}` -Unconfirmed transactions (up to 50). +Blocks from height -### GET https://bitview.space/api/address/{address}/utxo +Retrieve up to 10 blocks going backwards from the given height. For example, height=100 returns blocks 100, 99, 98, ..., 91. Height=0 returns only block 0. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-blocks)* -Unspent outputs. +Parameters: +- `height` (path, Height, required) - → [{"txid": "...", "vout": 0, "status": {...}, "value": 5000000000}] +Returns: JSON `BlockInfo[]` -### GET https://bitview.space/api/v1/validate-address/{address} +```bash +curl -s "https://bitview.space/api/blocks/" +``` - → {"isvalid": true, "address": "...", "scriptPubKey": "...", "isscript": false, "iswitness": true, "witness_version": 0, "witness_program": "..."} +#### GET `/api/v1/blocks` ---- +Recent blocks with extras -## Mempool +Retrieve the last 15 blocks with extended data including pool identification and fee statistics. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-blocks-v1)* -### GET https://bitview.space/api/mempool/price +Returns: JSON `BlockInfoV1[]` -Live BTC/USD price derived from on-chain round-dollar transaction patterns. +```bash +curl -s "https://bitview.space/api/v1/blocks" +``` - → 70817.64 +#### GET `/api/v1/blocks/{height}` -### GET https://bitview.space/api/mempool/info +Blocks from height with extras - → {"count": 24611, "vsize": 2185871, "total_fee": 6250465} +Retrieve up to 15 blocks with extended data going backwards from the given height. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-blocks-v1)* -### GET https://bitview.space/api/mempool/txids +Parameters: +- `height` (path, Height, required) -Array of all transaction IDs in the mempool. +Returns: JSON `BlockInfoV1[]` -### GET https://bitview.space/api/v1/fees/recommended +```bash +curl -s "https://bitview.space/api/v1/blocks/" +``` -Fee rate recommendations in sat/vB. +### Cpfp - → {"fastestFee": 3.0, "halfHourFee": 0.135, "hourFee": 0.111, "economyFee": 0.106, "minimumFee": 0.1} +#### GET `/api/v1/cpfp/{txid}` -### GET https://bitview.space/api/v1/fees/mempool-blocks +CPFP info -Projected mempool blocks. +Returns ancestors and descendants for a CPFP (Child Pays For Parent) transaction, including the effective fee rate of the package. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-children-pay-for-parent)* - → [{"blockSize": 3999892, "blockVSize": 999973.0, "nTx": 3743, "totalFees": 4148496, "medianFee": 3.0, "feeRange": [2.0, 2.0, 2.173, 3.0, 3.965, 5.969, 347.223]}] +Parameters: +- `txid` (path, Txid, required) ---- +Returns: JSON `CpfpInfo` -## Mining +```bash +curl -s "https://bitview.space/api/v1/cpfp/" +``` -Mempool.space compatible. Time periods: `24h`, `3d`, `1w`, `1m`, `3m`, `6m`, `1y`, `2y`, `3y`. +### Difficulty Adjustment -### GET https://bitview.space/api/v1/mining/pools +#### GET `/api/v1/difficulty-adjustment` -All known mining pools. +Difficulty adjustment -### GET https://bitview.space/api/v1/mining/pools/{time_period} +Get current difficulty adjustment progress and estimates. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-difficulty-adjustment)* -Pool statistics for a time period. +Returns: JSON `DifficultyAdjustment` -### GET https://bitview.space/api/v1/mining/pool/{slug} +```bash +curl -s "https://bitview.space/api/v1/difficulty-adjustment" +``` -Detailed info for a specific pool. +### Fees -### GET https://bitview.space/api/v1/difficulty-adjustment +#### GET `/api/v1/fees/mempool-blocks` -Current difficulty epoch: progress, estimated adjustment, remaining blocks/time. +Projected mempool blocks -### GET https://bitview.space/api/v1/mining/difficulty-adjustments +Projected blocks for fee estimation. Block 0 reflects Bitcoin Core's actual next-block selection; blocks 1+ are a fee-tier approximation. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-mempool-blocks-fees)* -All historical difficulty adjustments. +Returns: JSON `MempoolBlock[]` -### GET https://bitview.space/api/v1/mining/difficulty-adjustments/{time_period} +```bash +curl -s "https://bitview.space/api/v1/fees/mempool-blocks" +``` -Difficulty adjustments for a given time period. +#### GET `/api/v1/fees/precise` -### GET https://bitview.space/api/v1/mining/hashrate +Precise recommended fees -All-time hashrate and difficulty data. +Recommended fee rates with sub-integer precision. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-recommended-fees-precise)* -### GET https://bitview.space/api/v1/mining/hashrate/{time_period} +Returns: JSON `RecommendedFees` -Hashrate and difficulty for a given time period. +```bash +curl -s "https://bitview.space/api/v1/fees/precise" +``` -### GET https://bitview.space/api/v1/mining/blocks/fees/{time_period} +#### GET `/api/v1/fees/recommended` -Average block fees over time. +Recommended fees -### GET https://bitview.space/api/v1/mining/blocks/rewards/{time_period} +Recommended fee rates by confirmation target. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-recommended-fees)* -Average block rewards (subsidy + fees) over time. +Returns: JSON `RecommendedFees` -### GET https://bitview.space/api/v1/mining/blocks/sizes-weights/{time_period} +```bash +curl -s "https://bitview.space/api/v1/fees/recommended" +``` -Average block sizes and weights over time. +### Fullrbf -### GET https://bitview.space/api/v1/mining/reward-stats/{block_count} +#### GET `/api/v1/fullrbf/replacements` -Reward statistics for the last N blocks. +Recent full-RBF replacements ---- +Like `/api/v1/replacements`, but limited to trees where at least one predecessor was non-signaling (full-RBF). *[Mempool.space docs](https://mempool.space/docs/api/rest#get-fullrbf-replacements)* -## Series Categories +Returns: JSON `ReplacementNode[]` -49,000+ series across these categories. Use `/api/series/search?q={keyword}` to discover, or `/api/series` for the full tree. +```bash +curl -s "https://bitview.space/api/v1/fullrbf/replacements" +``` -- **Market**: price, market_cap, realized_cap, mvrv, nvt, thermocap, and variants (SMA, rolling) -- **Supply**: circulating, issued, inflation_rate, subsidy -- **Mining**: hashrate, difficulty, revenue, fees, block size/weight stats -- **Network activity**: transaction counts, volumes, active addresses -- **UTXO age bands**: HODL waves, realized cap by age cohort -- **Cointime economics**: liveliness, vaultedness, activity-to-vaultedness ratio -- **Holder cohorts**: by balance range (plankton to whale), by holding duration (short/long-term) -- **Cost basis**: UTXO realized price distributions by cohort -- **Addresses**: total, new, active, empty, by balance range, by type +### Health ---- +#### GET `/health` -## Client Libraries +Health check + +Liveness probe. Returns server identity, uptime, and indexed/computed heights from local state only (no bitcoind round-trip). For real chain-tip catch-up, see `/api/server/sync`. + +Returns: JSON `Health` + +```bash +curl -s "https://bitview.space/health" +``` + +### Historical Price + +#### GET `/api/v1/historical-price` + +Historical price + +Get historical BTC/USD price. Optionally specify a UNIX timestamp to get the price at that time. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-historical-price)* + +Parameters: +- `timestamp` (query, Timestamp, optional) + +Returns: JSON `HistoricalPrice` + +```bash +curl -s "https://bitview.space/api/v1/historical-price?timestamp=" +``` + +### Mempool + +#### GET `/api/mempool` + +Mempool statistics + +Get current mempool statistics including transaction count, total vsize, total fees, and fee histogram. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-mempool)* + +Returns: JSON `MempoolInfo` + +```bash +curl -s "https://bitview.space/api/mempool" +``` + +#### GET `/api/mempool/hash` + +Mempool content hash + +Returns an opaque hash that changes whenever the projected next block changes. Same value as the mempool ETag. Useful as a freshness/liveness signal: if it stays constant for tens of seconds on a live network, the mempool sync loop has stalled. + +Returns: JSON `NextBlockHash` + +```bash +curl -s "https://bitview.space/api/mempool/hash" +``` + +#### GET `/api/mempool/price` + +Live BTC/USD price + +Returns the current BTC/USD price in dollars, derived from on-chain round-dollar output patterns in the last 12 blocks plus mempool. + +Returns: JSON `Dollars` + +```bash +curl -s "https://bitview.space/api/mempool/price" +``` + +#### GET `/api/mempool/recent` + +Recent mempool transactions + +Get the last 10 transactions to enter the mempool. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-mempool-recent)* + +Returns: JSON `MempoolRecentTx[]` + +```bash +curl -s "https://bitview.space/api/mempool/recent" +``` + +#### GET `/api/mempool/txids` + +Mempool transaction IDs + +Get all transaction IDs currently in the mempool. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-mempool-transaction-ids)* + +Returns: JSON `Txid[]` + +```bash +curl -s "https://bitview.space/api/mempool/txids" +``` + +#### GET `/api/v1/mempool/block-template` + +Projected next block template + +Bitcoin Core's `getblocktemplate` selection: full transaction bodies in GBT order with aggregate stats. The returned `hash` is an opaque content token; pass it as `` on `/api/v1/mempool/block-template/diff/{hash}` to fetch deltas instead of refetching the whole template. + +Returns: JSON `BlockTemplate` + +```bash +curl -s "https://bitview.space/api/v1/mempool/block-template" +``` + +#### GET `/api/v1/mempool/block-template/diff/{hash}` + +Block template diff since hash + +Delta of the projected next block since ``. `order` is the full new template in order: each entry is either a number (index into the prior template the client cached at ``) or a transaction object (new body to insert at this position). Walk `order` once to rebuild; `removed` is a convenience list of txids that left so clients can evict cached bodies. After applying, use the response `hash` as `` on the next call to keep iterating. Returns `404` when `` has aged out of server history; clients should fall back to `/api/v1/mempool/block-template`. + +Parameters: +- `hash` (path, NextBlockHash, required) + +Returns: JSON `BlockTemplateDiff` + +```bash +curl -s "https://bitview.space/api/v1/mempool/block-template/diff/" +``` + +### Mining + +#### GET `/api/v1/mining/blocks/fee-rates/{time_period}` + +Block fee rates + +Get block fee rate percentiles (min, 10th, 25th, median, 75th, 90th, max) for a time period. Valid periods: `24h`, `3d`, `1w`, `1m`, `3m`, `6m`, `1y`, `2y`, `3y`. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-feerates)* + +Parameters: +- `time_period` (path, TimePeriod, required) + +Returns: JSON `BlockFeeRatesEntry[]` + +```bash +curl -s "https://bitview.space/api/v1/mining/blocks/fee-rates/" +``` + +#### GET `/api/v1/mining/blocks/fees/{time_period}` + +Block fees + +Get average total fees per block for a time period. Valid periods: `24h`, `3d`, `1w`, `1m`, `3m`, `6m`, `1y`, `2y`, `3y`. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-fees)* + +Parameters: +- `time_period` (path, TimePeriod, required) + +Returns: JSON `BlockFeesEntry[]` + +```bash +curl -s "https://bitview.space/api/v1/mining/blocks/fees/" +``` + +#### GET `/api/v1/mining/blocks/rewards/{time_period}` + +Block rewards + +Get average coinbase reward (subsidy + fees) per block for a time period. Valid periods: `24h`, `3d`, `1w`, `1m`, `3m`, `6m`, `1y`, `2y`, `3y`. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-rewards)* + +Parameters: +- `time_period` (path, TimePeriod, required) + +Returns: JSON `BlockRewardsEntry[]` + +```bash +curl -s "https://bitview.space/api/v1/mining/blocks/rewards/" +``` + +#### GET `/api/v1/mining/blocks/sizes-weights/{time_period}` + +Block sizes and weights + +Get average block sizes and weights for a time period. Valid periods: `24h`, `3d`, `1w`, `1m`, `3m`, `6m`, `1y`, `2y`, `3y`. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-sizes-weights)* + +Parameters: +- `time_period` (path, TimePeriod, required) + +Returns: JSON `BlockSizesWeights` + +```bash +curl -s "https://bitview.space/api/v1/mining/blocks/sizes-weights/" +``` + +#### GET `/api/v1/mining/blocks/timestamp/{timestamp}` + +Block by timestamp + +Find the block closest to a given UNIX timestamp. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-timestamp)* + +Parameters: +- `timestamp` (path, Timestamp, required) + +Returns: JSON `BlockTimestamp` + +```bash +curl -s "https://bitview.space/api/v1/mining/blocks/timestamp/" +``` + +#### GET `/api/v1/mining/difficulty-adjustments` + +Difficulty adjustments (all time) + +Get historical difficulty adjustments including timestamp, block height, difficulty value, and percentage change. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-difficulty-adjustments)* + +Returns: JSON `DifficultyAdjustmentEntry[]` + +```bash +curl -s "https://bitview.space/api/v1/mining/difficulty-adjustments" +``` + +#### GET `/api/v1/mining/difficulty-adjustments/{time_period}` + +Difficulty adjustments + +Get historical difficulty adjustments for a time period. Valid periods: `24h`, `3d`, `1w`, `1m`, `3m`, `6m`, `1y`, `2y`, `3y`. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-difficulty-adjustments)* + +Parameters: +- `time_period` (path, TimePeriod, required) + +Returns: JSON `DifficultyAdjustmentEntry[]` + +```bash +curl -s "https://bitview.space/api/v1/mining/difficulty-adjustments/" +``` + +#### GET `/api/v1/mining/hashrate` + +Network hashrate (all time) + +Get network hashrate and difficulty data for all time. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-hashrate)* + +Returns: JSON `HashrateSummary` + +```bash +curl -s "https://bitview.space/api/v1/mining/hashrate" +``` + +#### GET `/api/v1/mining/hashrate/pools` + +All pools hashrate (all time) + +Get hashrate data for all mining pools. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-mining-pool-hashrates)* + +Returns: JSON `PoolHashrateEntry[]` + +```bash +curl -s "https://bitview.space/api/v1/mining/hashrate/pools" +``` + +#### GET `/api/v1/mining/hashrate/pools/{time_period}` + +All pools hashrate + +Get hashrate data for all mining pools for a time period. Valid periods: `1m`, `3m`, `6m`, `1y`, `2y`, `3y`. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-mining-pool-hashrates)* + +Parameters: +- `time_period` (path, TimePeriod, required) + +Returns: JSON `PoolHashrateEntry[]` + +```bash +curl -s "https://bitview.space/api/v1/mining/hashrate/pools/" +``` + +#### GET `/api/v1/mining/hashrate/{time_period}` + +Network hashrate + +Get network hashrate and difficulty data for a time period. Valid periods: `24h`, `3d`, `1w`, `1m`, `3m`, `6m`, `1y`, `2y`, `3y`. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-hashrate)* + +Parameters: +- `time_period` (path, TimePeriod, required) + +Returns: JSON `HashrateSummary` + +```bash +curl -s "https://bitview.space/api/v1/mining/hashrate/" +``` + +#### GET `/api/v1/mining/pool/{slug}` + +Mining pool details + +Get detailed information about a specific mining pool including block counts and shares for different time periods. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-mining-pool)* + +Parameters: +- `slug` (path, PoolSlug, required) + +Returns: JSON `PoolDetail` + +```bash +curl -s "https://bitview.space/api/v1/mining/pool/" +``` + +#### GET `/api/v1/mining/pool/{slug}/blocks` + +Mining pool blocks + +Get the 10 most recent blocks mined by a specific pool. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-mining-pool-blocks)* + +Parameters: +- `slug` (path, PoolSlug, required) + +Returns: JSON `BlockInfoV1[]` + +```bash +curl -s "https://bitview.space/api/v1/mining/pool//blocks" +``` + +#### GET `/api/v1/mining/pool/{slug}/blocks/{height}` + +Mining pool blocks from height + +Get 10 blocks mined by a specific pool before (and including) the given height. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-mining-pool-blocks)* + +Parameters: +- `slug` (path, PoolSlug, required) +- `height` (path, Height, required) + +Returns: JSON `BlockInfoV1[]` + +```bash +curl -s "https://bitview.space/api/v1/mining/pool//blocks/" +``` + +#### GET `/api/v1/mining/pool/{slug}/hashrate` + +Mining pool hashrate + +Get hashrate history for a specific mining pool. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-mining-pool-hashrate)* + +Parameters: +- `slug` (path, PoolSlug, required) + +Returns: JSON `PoolHashrateEntry[]` + +```bash +curl -s "https://bitview.space/api/v1/mining/pool//hashrate" +``` + +#### GET `/api/v1/mining/pools` + +List all mining pools + +Get list of all known mining pools with their identifiers. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-mining-pools)* + +Returns: JSON `PoolInfo[]` + +```bash +curl -s "https://bitview.space/api/v1/mining/pools" +``` + +#### GET `/api/v1/mining/pools/{time_period}` + +Mining pool statistics + +Get mining pool statistics for a time period. Valid periods: `24h`, `3d`, `1w`, `1m`, `3m`, `6m`, `1y`, `2y`, `3y`. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-mining-pools)* + +Parameters: +- `time_period` (path, TimePeriod, required) + +Returns: JSON `PoolsSummary` + +```bash +curl -s "https://bitview.space/api/v1/mining/pools/" +``` + +#### GET `/api/v1/mining/reward-stats/{block_count}` + +Mining reward statistics + +Get mining reward statistics for the last N blocks including total rewards, fees, and transaction count. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-reward-stats)* + +Parameters: +- `block_count` (path, integer, required): Number of recent blocks to include + +Returns: JSON `RewardStats` + +```bash +curl -s "https://bitview.space/api/v1/mining/reward-stats/" +``` + +### Openapi.json + +#### GET `/openapi.json` + +OpenAPI specification + +Full OpenAPI 3.1 specification for this API. + +Returns: text + +```bash +curl -s "https://bitview.space/openapi.json" +``` + +### Oracle + +#### GET `/api/oracle/histogram/outputs/live` + +Live output value histogram + +Live unfiltered output value histogram for the forming mempool block. Every live output is binned by value on the oracle log scale; no oracle payment filters are applied. A flat array of log-scale bins, all zero when no mempool is configured. + +Returns: JSON `integer[]` + +```bash +curl -s "https://bitview.space/api/oracle/histogram/outputs/live" +``` + +#### GET `/api/oracle/histogram/outputs/{point}` + +Output value histogram at height or day + +Unfiltered output value histogram for a confirmed point. A block height (`840000`) gives every output in that block, coinbase included, binned by value on the oracle log scale; a calendar date (`YYYY-MM-DD`) sums every block that day. A flat array of log-scale bins. + +Parameters: +- `point` (path, string, required) + +Returns: JSON `integer[]` + +```bash +curl -s "https://bitview.space/api/oracle/histogram/outputs/" +``` + +#### GET `/api/oracle/histogram/payments/live` + +Live payment output histogram + +Live smoothed histogram of oracle-eligible payment outputs, binned by output value on the oracle log scale. It combines the committed oracle window with the forming mempool block. A flat array of log-scale bins. + +Returns: JSON `integer[]` + +```bash +curl -s "https://bitview.space/api/oracle/histogram/payments/live" +``` + +#### GET `/api/oracle/histogram/payments/{point}` + +Payment output histogram at height or day + +Smoothed histogram of oracle-eligible payment outputs for a confirmed point. A block height (`840000`) gives that block's oracle payment histogram; a calendar date (`YYYY-MM-DD`) gives the average of that day's per-block payment histograms. A flat array of log-scale bins. + +Parameters: +- `point` (path, string, required) + +Returns: JSON `integer[]` + +```bash +curl -s "https://bitview.space/api/oracle/histogram/payments/" +``` + +#### GET `/api/oracle/price` + +Live BTC/USD price + +Current BTC/USD price in dollars. Same value as `/api/mempool/price`. Confirmed per-height history is available at `/api/vecs/height-to-price`. + +Returns: JSON `Dollars` + +```bash +curl -s "https://bitview.space/api/oracle/price" +``` + +### Prices + +#### GET `/api/v1/prices` + +Current BTC price + +Returns bitcoin latest price (on-chain derived, USD only). *[Mempool.space docs](https://mempool.space/docs/api/rest#get-price)* + +Returns: JSON `Prices` + +```bash +curl -s "https://bitview.space/api/v1/prices" +``` + +### Replacements + +#### GET `/api/v1/replacements` + +Recent RBF replacements + +Returns up to 25 most-recent RBF replacement trees across the whole mempool. Each entry has the same shape as `tx_rbf().replacements`. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-replacements)* + +Returns: JSON `ReplacementNode[]` + +```bash +curl -s "https://bitview.space/api/v1/replacements" +``` + +### Series + +#### GET `/api/series` + +Series catalog + +Returns the complete hierarchical catalog of available series organized as a tree structure. Series are grouped by categories and subcategories. + +Returns: JSON `TreeNode` + +```bash +curl -s "https://bitview.space/api/series" +``` + +#### GET `/api/series/bulk` + +Bulk series data + +Fetch multiple series in a single request. Supports filtering by index and date range. Returns an array of SeriesData objects. For a single series, use `get_series` instead. + +Parameters: +- `series` (query, SeriesList, required): Requested series +- `index` (query, Index, required): Index to query +- `start` (query, RangeIndex, optional): Inclusive start: integer index, date (YYYY-MM-DD), or timestamp (ISO 8601). Negative integers count from end. Aliases: `from`, `f`, `s` +- `end` (query, RangeIndex, optional): Exclusive end: integer index, date (YYYY-MM-DD), or timestamp (ISO 8601). Negative integers count from end. Aliases: `to`, `t`, `e` +- `limit` (query, Limit, optional): Maximum number of values to return (ignored if `end` is set). Aliases: `count`, `c`, `l` +- `format` (query, Format, optional): Format of the output + +Returns: JSON `SeriesData[]` + +```bash +curl -s "https://bitview.space/api/series/bulk?series=&index=&start=&end=&limit=&format=" +``` + +#### GET `/api/series/count` + +Series count + +Returns the number of series available per index type. + +Returns: JSON `SeriesCount[]` + +```bash +curl -s "https://bitview.space/api/series/count" +``` + +#### GET `/api/series/indexes` + +List available indexes + +Returns all available indexes with their accepted query aliases. Use any alias when querying series. + +Returns: JSON `IndexInfo[]` + +```bash +curl -s "https://bitview.space/api/series/indexes" +``` + +#### GET `/api/series/list` + +Series list + +Paginated flat list of all available series names. Use `page` query param for pagination. + +Parameters: +- `page` (query, integer, optional): Pagination index +- `per_page` (query, integer, optional): Results per page (default: 1000, max: 1000) + +Returns: JSON `PaginatedSeries` + +```bash +curl -s "https://bitview.space/api/series/list?page=&per_page=" +``` + +#### GET `/api/series/search` + +Search series + +Fuzzy search for series by name. Supports partial matches and typos. + +Parameters: +- `q` (query, SeriesName, required): Search query string +- `limit` (query, Limit, optional): Maximum number of results + +Returns: JSON `string[]` + +```bash +curl -s "https://bitview.space/api/series/search?q=&limit=" +``` + +#### GET `/api/series/{series}` + +Get series info + +Returns the supported indexes and value type for the specified series. + +Parameters: +- `series` (path, SeriesName, required) + +Returns: JSON `SeriesInfo` + +```bash +curl -s "https://bitview.space/api/series/" +``` + +#### GET `/api/series/{series}/{index}` + +Get series data + +Fetch data for a specific series at the given index. Use query parameters to filter by date range and format (json/csv). + +Parameters: +- `series` (path, SeriesName, required): Series name +- `index` (path, Index, required): Aggregation index +- `start` (query, RangeIndex, optional): Inclusive start: integer index, date (YYYY-MM-DD), or timestamp (ISO 8601). Negative integers count from end. Aliases: `from`, `f`, `s` +- `end` (query, RangeIndex, optional): Exclusive end: integer index, date (YYYY-MM-DD), or timestamp (ISO 8601). Negative integers count from end. Aliases: `to`, `t`, `e` +- `limit` (query, Limit, optional): Maximum number of values to return (ignored if `end` is set). Aliases: `count`, `c`, `l` +- `format` (query, Format, optional): Format of the output + +Returns: JSON `SeriesData` + +```bash +curl -s "https://bitview.space/api/series//?start=&end=&limit=&format=" +``` + +#### GET `/api/series/{series}/{index}/data` + +Get raw series data + +Returns just the data array without the SeriesData wrapper. Supports the same range and format parameters as the standard endpoint. + +Parameters: +- `series` (path, SeriesName, required): Series name +- `index` (path, Index, required): Aggregation index +- `start` (query, RangeIndex, optional): Inclusive start: integer index, date (YYYY-MM-DD), or timestamp (ISO 8601). Negative integers count from end. Aliases: `from`, `f`, `s` +- `end` (query, RangeIndex, optional): Exclusive end: integer index, date (YYYY-MM-DD), or timestamp (ISO 8601). Negative integers count from end. Aliases: `to`, `t`, `e` +- `limit` (query, Limit, optional): Maximum number of values to return (ignored if `end` is set). Aliases: `count`, `c`, `l` +- `format` (query, Format, optional): Format of the output + +Returns: JSON `boolean[]` + +```bash +curl -s "https://bitview.space/api/series///data?start=&end=&limit=&format=" +``` + +#### GET `/api/series/{series}/{index}/latest` + +Get latest series value + +Returns the single most recent value for a series, unwrapped (not inside a SeriesData object). + +Parameters: +- `series` (path, SeriesName, required): Series name +- `index` (path, Index, required): Aggregation index + +Returns: JSON `*` + +```bash +curl -s "https://bitview.space/api/series///latest" +``` + +#### GET `/api/series/{series}/{index}/len` + +Get series data length + +Returns the total number of data points for a series at the given index. + +Parameters: +- `series` (path, SeriesName, required): Series name +- `index` (path, Index, required): Aggregation index + +Returns: JSON `integer` + +```bash +curl -s "https://bitview.space/api/series///len" +``` + +#### GET `/api/series/{series}/{index}/version` + +Get series version + +Returns the current version of a series. Changes when the series data is updated. + +Parameters: +- `series` (path, SeriesName, required): Series name +- `index` (path, Index, required): Aggregation index + +Returns: JSON `Version` + +```bash +curl -s "https://bitview.space/api/series///version" +``` + +### Server + +#### GET `/api/server/disk` + +Disk usage + +Returns the disk space used by BRK and Bitcoin data. + +Returns: JSON `DiskUsage` + +```bash +curl -s "https://bitview.space/api/server/disk" +``` + +#### GET `/api/server/sync` + +Sync status + +Returns the sync status of the indexer, including indexed height, tip height, blocks behind, and last indexed timestamp. + +Returns: JSON `SyncStatus` + +```bash +curl -s "https://bitview.space/api/server/sync" +``` + +### Transaction Times + +#### GET `/api/v1/transaction-times` + +Transaction first-seen times + +Returns timestamps when transactions were first seen in the mempool. Returns 0 for mined or unknown transactions. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction-times)* + +Parameters: +- `txId[]` (query, Txid[], required): Transaction IDs to look up (max 250 per request). + +Returns: JSON `integer[]` + +```bash +curl -s "https://bitview.space/api/v1/transaction-times?txId[]=" +``` + +### Tx + +#### POST `/api/tx` + +Broadcast transaction + +Broadcast a raw transaction to the network. The transaction should be provided as hex in the request body. The txid will be returned on success. *[Mempool.space docs](https://mempool.space/docs/api/rest#post-transaction)* + +Request body: `string` (required) + +Returns: JSON `Txid` + +```bash +curl -s -X POST --data '' "https://bitview.space/api/tx" +``` + +#### GET `/api/tx/{txid}` + +Transaction information + +Retrieve complete transaction data by transaction ID (txid). Returns inputs, outputs, fee, size, and confirmation status. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction)* + +Parameters: +- `txid` (path, Txid, required) + +Returns: JSON `Transaction` + +```bash +curl -s "https://bitview.space/api/tx/" +``` + +#### GET `/api/tx/{txid}/hex` + +Transaction hex + +Retrieve the raw transaction as a hex-encoded string. Returns the serialized transaction in hexadecimal format. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction-hex)* + +Parameters: +- `txid` (path, Txid, required) + +Returns: text `Hex` + +```bash +curl -s "https://bitview.space/api/tx//hex" +``` + +#### GET `/api/tx/{txid}/merkle-proof` + +Transaction merkle proof + +Get the merkle inclusion proof for a transaction. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction-merkle-proof)* + +Parameters: +- `txid` (path, Txid, required) + +Returns: JSON `MerkleProof` + +```bash +curl -s "https://bitview.space/api/tx//merkle-proof" +``` + +#### GET `/api/tx/{txid}/merkleblock-proof` + +Transaction merkleblock proof + +Get the merkleblock proof for a transaction (BIP37 format, hex encoded). *[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction-merkleblock-proof)* + +Parameters: +- `txid` (path, Txid, required) + +Returns: text `Hex` + +```bash +curl -s "https://bitview.space/api/tx//merkleblock-proof" +``` + +#### GET `/api/tx/{txid}/outspend/{vout}` + +Output spend status + +Get the spending status of a transaction output. Returns whether the output has been spent and, if so, the spending transaction details. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction-outspend)* + +Parameters: +- `txid` (path, Txid, required): Transaction ID +- `vout` (path, Vout, required): Output index + +Returns: JSON `TxOutspend` + +```bash +curl -s "https://bitview.space/api/tx//outspend/" +``` + +#### GET `/api/tx/{txid}/outspends` + +All output spend statuses + +Get the spending status of all outputs in a transaction. Returns an array with the spend status for each output. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction-outspends)* + +Parameters: +- `txid` (path, Txid, required) + +Returns: JSON `TxOutspend[]` + +```bash +curl -s "https://bitview.space/api/tx//outspends" +``` + +#### GET `/api/tx/{txid}/raw` + +Transaction raw + +Returns a transaction as binary data. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction-raw)* + +Parameters: +- `txid` (path, Txid, required) + +Returns: binary data + +```bash +curl -s "https://bitview.space/api/tx//raw" +``` + +#### GET `/api/tx/{txid}/status` + +Transaction status + +Retrieve the confirmation status of a transaction. Returns whether the transaction is confirmed and, if so, the block height, hash, and timestamp. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction-status)* + +Parameters: +- `txid` (path, Txid, required) + +Returns: JSON `TxStatus` + +```bash +curl -s "https://bitview.space/api/tx//status" +``` + +#### GET `/api/v1/tx/{txid}/rbf` + +RBF replacement history + +Returns the RBF replacement tree for a transaction, if any. Both `replacements` and `replaces` are null when the tx has no known RBF history within the mempool monitor's retention window. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction-rbf-history)* + +Parameters: +- `txid` (path, Txid, required) + +Returns: JSON `RbfResponse` + +```bash +curl -s "https://bitview.space/api/v1/tx//rbf" +``` + +### Tx Index + +#### GET `/api/tx-index/{index}` + +Txid by index + +Retrieve the transaction ID (txid) at a given global transaction index. Returns the txid as plain text. + +Parameters: +- `index` (path, TxIndex, required) + +Returns: text `Txid` + +```bash +curl -s "https://bitview.space/api/tx-index/" +``` + +### Urpd + +#### GET `/api/urpd` + +Available URPD cohorts + +Cohorts for which URPD data is available. Returns names like `all`, `sth`, `lth`, `utxos_under_1h_old`. + +Returns: JSON `Cohort[]` + +```bash +curl -s "https://bitview.space/api/urpd" +``` + +#### GET `/api/urpd/{cohort}` + +Latest URPD + +URPD for the most recent available date in the cohort. The response's `date` field echoes which date was served. See the URPD tag description for the response shape and `agg` options. + +Parameters: +- `cohort` (path, Cohort, required) +- `agg` (query, UrpdAggregation, optional): Aggregation strategy. Default: raw (no aggregation). Accepts `bucket` as alias. + +Returns: JSON `Urpd` + +```bash +curl -s "https://bitview.space/api/urpd/?agg=" +``` + +#### GET `/api/urpd/{cohort}/dates` + +Available URPD dates + +Dates for which a URPD snapshot is available for the cohort. One entry per UTC day, sorted ascending. + +Parameters: +- `cohort` (path, Cohort, required) + +Returns: JSON `Date[]` + +```bash +curl -s "https://bitview.space/api/urpd//dates" +``` + +#### GET `/api/urpd/{cohort}/{date}` + +URPD at date + +URPD for a (cohort, date) pair. Returns `{ cohort, date, aggregation, close, total_supply, buckets }` where each bucket is `{ price_floor, supply, realized_cap, unrealized_pnl }`. See the URPD tag description for unit conventions and `agg` options. + +Parameters: +- `cohort` (path, Cohort, required) +- `date` (path, string, required) +- `agg` (query, UrpdAggregation, optional): Aggregation strategy. Default: raw (no aggregation). Accepts `bucket` as alias. + +Returns: JSON `Urpd` + +```bash +curl -s "https://bitview.space/api/urpd//?agg=" +``` + +### Validate Address + +#### GET `/api/v1/validate-address/{address}` + +Validate address + +Validate a Bitcoin address and get information about its type and scriptPubKey. Returns `isvalid: false` with an error message for invalid addresses. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-address-validate)* + +Parameters: +- `address` (path, string, required): Bitcoin address to validate (can be any string) + +Returns: JSON `AddrValidation` + +```bash +curl -s "https://bitview.space/api/v1/validate-address/
" +``` + +### Version + +#### GET `/version` + +API version + +Returns the current version of the API server + +Returns: JSON `string` + +```bash +curl -s "https://bitview.space/version" +``` + +## Schemas + +### `Addr` + +`string` + +### `AddrChainStats` + +- `funded_txo_count`: `integer` (required) — Total number of transaction outputs that funded this address +- `funded_txo_sum`: `Sats` (required) — Total amount in satoshis received by this address across all funded outputs +- `spent_txo_count`: `integer` (required) — Total number of transaction outputs spent from this address +- `spent_txo_sum`: `Sats` (required) — Total amount in satoshis spent from this address +- `tx_count`: `integer` (required) — Total number of confirmed transactions involving this address +- `type_index`: `TypeIndex` (required) — Index of this address within its type on the blockchain +- `realized_price`: `Dollars` (required) — Realized price (average cost basis) in USD + +### `AddrHashPrefixMatches` + +- `addr_type`: `OutputType` (required) +- `prefix`: `string` (required) +- `truncated`: `boolean` (required) +- `addresses`: `Addr[]` (required) + +### `AddrMempoolStats` + +- `funded_txo_count`: `integer` (required) — Number of unconfirmed transaction outputs funding this address +- `funded_txo_sum`: `Sats` (required) — Total amount in satoshis being received in unconfirmed transactions +- `spent_txo_count`: `integer` (required) — Number of unconfirmed transaction inputs spending from this address +- `spent_txo_sum`: `Sats` (required) — Total amount in satoshis being spent in unconfirmed transactions +- `tx_count`: `integer` (required) — Number of unconfirmed transactions involving this address + +### `AddrStats` + +- `address`: `Addr` (required) — Bitcoin address string +- `addr_type`: `OutputType` (required) — Address type (p2pkh, p2sh, v0_p2wpkh, v0_p2wsh, v1_p2tr, etc.) +- `chain_stats`: `AddrChainStats` (required) — Statistics for confirmed transactions on the blockchain +- `mempool_stats`: `AddrMempoolStats` (required) — Statistics for unconfirmed transactions in the mempool +- `balance`: `Sats` (required) — Current balance in satoshis, including unconfirmed mempool changes + +### `AddrValidation` + +- `isvalid`: `boolean` (required) — Whether the address is valid +- `address`: `object` — The validated address +- `scriptPubKey`: `object` — The scriptPubKey in hex +- `isscript`: `object` — Whether this is a script address (P2SH) +- `iswitness`: `object` — Whether this is a witness address +- `witness_version`: `object` — Witness version (0 for P2WPKH/P2WSH, 1 for P2TR) +- `witness_program`: `object` — Witness program in hex +- `error_locations`: `object` — Error locations (empty array for most errors) +- `error`: `object` — Error message for invalid addresses + +### `Bitcoin` + +`number` + +### `BlockExtras` + +- `totalFees`: `Sats` (required) — Total fees in satoshis +- `medianFee`: `FeeRate` (required) — Median fee rate in sat/vB +- `feeRange`: `FeeRate[]` (required) — Fee rate range: [min, 10%, 25%, 50%, 75%, 90%, max] +- `reward`: `Sats` (required) — Total block reward (subsidy + fees) in satoshis +- `pool`: `BlockPool` (required) — Mining pool that mined this block +- `avgFee`: `Sats` (required) — Average fee per transaction in satoshis +- `avgFeeRate`: `FeeRate` (required) — Average fee rate in sat/vB +- `coinbaseRaw`: `string` (required) — Raw coinbase transaction scriptsig as hex +- `coinbaseAddress`: `object` — Primary coinbase output address +- `coinbaseAddresses`: `string[]` (required) — All coinbase output addresses +- `coinbaseSignature`: `string` (required) — Coinbase output script in ASM format +- `coinbaseSignatureAscii`: `string` (required) — Coinbase scriptsig decoded as ASCII +- `avgTxSize`: `number` (required) — Average transaction size in bytes +- `totalInputs`: `integer` (required) — Total number of inputs (excluding coinbase) +- `totalOutputs`: `integer` (required) — Total number of outputs +- `totalOutputAmt`: `Sats` (required) — Total output amount in satoshis +- `medianFeeAmt`: `Sats` (required) — Median fee amount in satoshis +- `feePercentiles`: `Sats[]` (required) — Fee amount percentiles in satoshis: [min, 10%, 25%, 50%, 75%, 90%, max] +- `segwitTotalTxs`: `integer` (required) — Number of segwit transactions +- `segwitTotalSize`: `integer` (required) — Total size of segwit transactions in bytes +- `segwitTotalWeight`: `Weight` (required) — Total weight of segwit transactions +- `header`: `string` (required) — Raw 80-byte block header as hex +- `utxoSetChange`: `integer` (required) — UTXO set change (total outputs - total inputs, includes unspendable like OP_RETURN). Note: intentionally differs from utxo_set_size diff which excludes unspendable outputs. Matches mempool.space/bitcoin-cli behavior. +- `utxoSetSize`: `integer` (required) — Total spendable UTXO set size at this height (excludes OP_RETURN and other unspendable outputs) +- `totalInputAmt`: `Sats` (required) — Total input amount in satoshis +- `virtualSize`: `number` (required) — Virtual size in vbytes +- `firstSeen`: `object` — Timestamp when the block was first seen (always null, not yet supported) +- `orphans`: `string[]` (required) — Orphaned blocks (always empty) +- `price`: `Dollars` (required) — USD price at block height + +### `BlockHash` + +`string` + +### `BlockInfo` + +- `id`: `BlockHash` (required) — Block hash +- `height`: `Height` (required) — Block height +- `version`: `integer` (required) — Block version +- `timestamp`: `Timestamp` (required) — Block timestamp (Unix time) +- `bits`: `integer` (required) — Compact target (bits) +- `nonce`: `integer` (required) — Nonce +- `difficulty`: `number` (required) — Block difficulty +- `merkle_root`: `string` (required) — Merkle root of the transaction tree +- `tx_count`: `integer` (required) — Number of transactions +- `size`: `integer` (required) — Block size in bytes +- `weight`: `Weight` (required) — Block weight in weight units +- `previousblockhash`: `BlockHash` (required) — Previous block hash +- `mediantime`: `Timestamp` (required) — Median time of the last 11 blocks + +### `BlockInfoV1` + +- `id`: `BlockHash` (required) — Block hash +- `height`: `Height` (required) — Block height +- `version`: `integer` (required) — Block version +- `timestamp`: `Timestamp` (required) — Block timestamp (Unix time) +- `bits`: `integer` (required) — Compact target (bits) +- `nonce`: `integer` (required) — Nonce +- `difficulty`: `number` (required) — Block difficulty +- `merkle_root`: `string` (required) — Merkle root of the transaction tree +- `tx_count`: `integer` (required) — Number of transactions +- `size`: `integer` (required) — Block size in bytes +- `weight`: `Weight` (required) — Block weight in weight units +- `previousblockhash`: `BlockHash` (required) — Previous block hash +- `mediantime`: `Timestamp` (required) — Median time of the last 11 blocks +- `stale`: `boolean` — Whether this block has been replaced by a longer chain +- `extras`: `BlockExtras` (required) — Extended block data + +### `BlockPool` + +- `id`: `integer` (required) — Unique pool identifier +- `name`: `string` (required) — Pool name +- `slug`: `PoolSlug` (required) — URL-friendly pool identifier +- `blockNumber`: `integer` (required) — This block's ordinal among blocks attributed to this pool +- `minerNames`: `object` — Miner name tags found in coinbase scriptsig + +### `BlockSizeEntry` + +- `avgHeight`: `Height` (required) — Average block height in this window +- `timestamp`: `Timestamp` (required) — Unix timestamp at the window midpoint +- `avgSize`: `integer` (required) — Rolling 24h median block size (bytes) + +### `BlockSizesWeights` + +- `sizes`: `BlockSizeEntry[]` (required) — Block size data points +- `weights`: `BlockWeightEntry[]` (required) — Block weight data points + +### `BlockStatus` + +- `in_best_chain`: `boolean` (required) — Whether this block is in the best chain +- `height`: `Height | null` — Block height (only if in best chain) +- `next_best`: `BlockHash | null` — Hash of the next block in the best chain (null if tip) + +### `BlockTemplate` + +- `hash`: `NextBlockHash` (required) — Pass back as `` on `/api/v1/mempool/block-template/diff/{hash}` to fetch deltas. +- `stats`: `MempoolBlock` (required) — Aggregate stats for this block (size, vsize, fee range, ...). +- `transactions`: `Transaction[]` (required) — Full transaction bodies in `getblocktemplate` order. + +### `BlockTemplateDiff` + +- `hash`: `NextBlockHash` (required) — Current next-block hash. Use as `since` on the next diff call. +- `since`: `NextBlockHash` (required) — Echoed prior hash the diff was computed against. +- `order`: `BlockTemplateDiffEntry[]` (required) — New template in order. Each entry is either an index into the prior template's transactions or a full transaction body. +- `removed`: `Txid[]` (required) — Txids that left the projected next block since `since` (confirmed, evicted, replaced, or pushed past block 0). + +### `BlockTemplateDiffEntry` + +`integer | Transaction` + +### `BlockTimestamp` + +- `height`: `Height` (required) — Block height +- `hash`: `BlockHash` (required) — Block hash +- `timestamp`: `string` (required) — Block timestamp in ISO 8601 format + +### `BlockWeightEntry` + +- `avgHeight`: `Height` (required) — Average block height in this window +- `timestamp`: `Timestamp` (required) — Unix timestamp at the window midpoint +- `avgWeight`: `Weight` (required) — Rolling 24h median block weight (weight units) + +### `Cohort` + +`all | sth | lth | utxos_under_1h_old | utxos_1h_to_1d_old | utxos_1d_to_1w_old | utxos_1w_to_1m_old | utxos_1m_to_2m_old | utxos_2m_to_3m_old | utxos_3m_to_4m_old | utxos_4m_to_5m_old | utxos_5m_to_6m_old | utxos_6m_to_1y_old | utxos_1y_to_2y_old | utxos_2y_to_3y_old | utxos_3y_to_4y_old | utxos_4y_to_5y_old | utxos_5y_to_6y_old | utxos_6y_to_7y_old | utxos_7y_to_8y_old | utxos_8y_to_10y_old | utxos_10y_to_12y_old | utxos_12y_to_15y_old | utxos_over_15y_old` + +### `CpfpCluster` + +- `txs`: `CpfpClusterTx[]` (required) — All txs in the cluster, in topological order (parents before children). +- `chunks`: `CpfpClusterChunk[]` (required) — SFL-emitted chunks ordered by descending feerate. +- `chunkIndex`: `integer` (required) — Index into `chunks` of the chunk containing the seed tx. + +### `CpfpClusterChunk` + +- `txs`: `CpfpClusterTxIndex[]` (required) +- `feerate`: `FeeRate` (required) + +### `CpfpClusterTx` + +- `txid`: `Txid` (required) +- `weight`: `Weight` (required) +- `fee`: `Sats` (required) +- `parents`: `CpfpClusterTxIndex[]` (required) — In-cluster parents of this tx. + +### `CpfpClusterTxIndex` + +`integer` + +### `CpfpEntry` + +- `txid`: `Txid` (required) +- `weight`: `Weight` (required) +- `fee`: `Sats` (required) + +### `CpfpInfo` + +- `ancestors`: `CpfpEntry[]` (required) — Ancestor transactions in the CPFP chain. +- `bestDescendant`: `CpfpEntry | null` — Best (highest fee rate) descendant, if any. +- `descendants`: `CpfpEntry[]` (required) — Descendant transactions in the CPFP chain. +- `effectiveFeePerVsize`: `FeeRate` (required) — Effective fee rate considering CPFP relationships (sat/vB). This is the seed's chunk feerate after lift-merging, i.e. the rate Core/mempool.space would surface for this tx. +- `sigops`: `SigOps` (required) — BIP-141 sigop cost for the seed tx (witness sigops count as 1, legacy and P2SH-redeem sigops count as 4). +- `fee`: `Sats` (required) — Transaction fee (sats). +- `vsize`: `VSize` (required) — Virtual size of the seed tx (vbytes). +- `adjustedVsize`: `VSize` (required) — Policy-adjusted virtual size: `max(vsize, sigops * 5)`. +- `cluster`: `CpfpCluster | null` — Cluster the seed belongs to: full tx list, SFL-linearized chunks, and the seed's chunk index. Omitted when the seed has no ancestors and no descendants (matches mempool.space). + +### `Date` + +`integer` + +### `DifficultyAdjustment` + +- `progressPercent`: `number` (required) — Progress through current difficulty epoch (0-100%) +- `difficultyChange`: `number` (required) — Estimated difficulty change at next retarget (%) +- `estimatedRetargetDate`: `integer` (required) — Estimated timestamp of next retarget (milliseconds) +- `remainingBlocks`: `integer` (required) — Blocks remaining until retarget +- `remainingTime`: `integer` (required) — Estimated time until retarget (milliseconds) +- `previousRetarget`: `number` (required) — Previous difficulty adjustment (%) +- `previousTime`: `Timestamp` (required) — Timestamp of most recent retarget (seconds) +- `nextRetargetHeight`: `Height` (required) — Height of next retarget +- `timeAvg`: `integer` (required) — Average block time in current epoch (milliseconds) +- `adjustedTimeAvg`: `integer` (required) — Time-adjusted average (milliseconds) +- `timeOffset`: `integer` (required) — Time offset from expected schedule (seconds) +- `expectedBlocks`: `number` (required) — Expected blocks based on wall clock time since epoch start + +### `DifficultyEntry` + +- `time`: `Timestamp` (required) — Unix timestamp of the difficulty adjustment +- `height`: `Height` (required) — Block height of the adjustment +- `difficulty`: `number` (required) — Difficulty value +- `adjustment`: `number` (required) — Adjustment ratio (new/previous, e.g. 1.068 = +6.8%) + +### `DiskUsage` + +- `brk`: `string` (required) — Human-readable brk data size (e.g., "48.8 GiB") +- `brk_bytes`: `integer` (required) — brk data size in bytes +- `bitcoin`: `string` (required) — Human-readable Bitcoin blocks directory size +- `bitcoin_bytes`: `integer` (required) — Bitcoin blocks directory size in bytes +- `ratio`: `number` (required) — brk as percentage of Bitcoin data + +### `Dollars` + +`number` + +### `ExchangeRates` + +`object` + +### `FeeRate` + +`number` + +### `HashrateEntry` + +- `timestamp`: `Timestamp` (required) — Unix timestamp +- `avgHashrate`: `integer` (required) — Average hashrate (H/s) + +### `HashrateSummary` + +- `hashrates`: `HashrateEntry[]` (required) — Historical hashrate data points +- `difficulty`: `DifficultyEntry[]` (required) — Historical difficulty adjustments +- `currentHashrate`: `integer` (required) — Current network hashrate (H/s) +- `currentDifficulty`: `number` (required) — Current network difficulty + +### `Health` + +- `status`: `string` (required) — Health status ("healthy") +- `service`: `string` (required) — Service name +- `version`: `string` (required) — Server version +- `timestamp`: `string` (required) — Current server time (ISO 8601) +- `started_at`: `string` (required) — Server start time (ISO 8601) +- `uptime_seconds`: `integer` (required) — Uptime in seconds +- `indexed_height`: `Height` (required) — Height of the last indexed block +- `computed_height`: `Height` (required) — Height of the last computed block (series) +- `tip_height`: `Height` (required) — Height of the chain tip (from Bitcoin node) +- `blocks_behind`: `Height` (required) — Number of blocks behind the tip +- `last_indexed_at`: `string` (required) — Human-readable timestamp of the last indexed block (ISO 8601) +- `last_indexed_at_unix`: `Timestamp` (required) — Unix timestamp of the last indexed block + +### `Height` + +`integer` + +### `Hex` + +`string` + +### `HistoricalPrice` + +- `prices`: `HistoricalPriceEntry[]` (required) — Price data points +- `exchangeRates`: `ExchangeRates` (required) — Exchange rates (currently empty) + +### `HistoricalPriceEntry` + +- `time`: `Timestamp` (required) — Unix timestamp +- `USD`: `Dollars` (required) — BTC/USD price + +### `Index` + +`minute10 | minute30 | hour1 | hour4 | hour12 | day1 | day3 | week1 | month1 | month3 | month6 | year1 | year10 | halving | epoch | height | tx_index | txin_index | txout_index | empty_output_index | op_return_index | p2a_addr_index | p2ms_output_index | p2pk33_addr_index | p2pk65_addr_index | p2pkh_addr_index | p2sh_addr_index | p2tr_addr_index | p2wpkh_addr_index | p2wsh_addr_index | unknown_output_index | funded_addr_index | empty_addr_index` + +### `MempoolBlock` + +- `blockSize`: `integer` (required) — Total serialized block size in bytes (witness + non-witness). +- `blockVSize`: `number` (required) — Total block virtual size in vbytes +- `nTx`: `integer` (required) — Number of transactions in the projected block +- `totalFees`: `Sats` (required) — Total fees in satoshis +- `medianFee`: `FeeRate` (required) — Median fee rate in sat/vB +- `feeRange`: `FeeRate[]` (required) — Fee rate range: [min, 10%, 25%, 50%, 75%, 90%, max] + +### `MempoolInfo` + +- `count`: `integer` (required) — Number of transactions in the mempool +- `vsize`: `VSize` (required) — Total virtual size of all transactions in the mempool (vbytes) +- `total_fee`: `Sats` (required) — Total fees of all transactions in the mempool (satoshis) +- `fee_histogram`: `object` (required) — Fee histogram: `[[fee_rate, vsize], ...]` sorted by descending fee rate + +### `MerkleProof` + +- `block_height`: `Height` (required) — Block height containing the transaction +- `merkle`: `string[]` (required) — Merkle proof path (hex-encoded hashes) +- `pos`: `integer` (required) — Transaction position in the block (0-indexed) + +### `NextBlockHash` + +`integer` + +### `OutputType` + +`p2pk | p2pk | p2pkh | multisig | p2sh | op_return | v0_p2wpkh | v0_p2wsh | v1_p2tr | p2a | empty | unknown` + +### `PaginatedSeries` + +- `current_page`: `integer` (required) — Current page number (0-indexed) +- `max_page`: `integer` (required) — Maximum valid page index (0-indexed) +- `total_count`: `integer` (required) — Total number of series +- `per_page`: `integer` (required) — Results per page +- `has_more`: `boolean` (required) — Whether more pages are available after the current one +- `series`: `string[]` (required) — List of series names + +### `PoolBlockCounts` + +- `all`: `integer` (required) — Total blocks mined (all time) +- `24h`: `integer` (required) — Blocks mined in last 24 hours +- `1w`: `integer` (required) — Blocks mined in last week + +### `PoolBlockShares` + +- `all`: `number` (required) — Share of all blocks (0.0 - 1.0) +- `24h`: `number` (required) — Share of blocks in last 24 hours (0.0 - 1.0) +- `1w`: `number` (required) — Share of blocks in last week (0.0 - 1.0) + +### `PoolDetail` + +- `pool`: `PoolDetailInfo` (required) — Pool information +- `blockCount`: `PoolBlockCounts` (required) — Block counts for different time periods +- `blockShare`: `PoolBlockShares` (required) — Pool's share of total blocks for different time periods +- `estimatedHashrate`: `integer` (required) — Estimated hashrate based on blocks mined (H/s) +- `reportedHashrate`: `object` — Self-reported hashrate (if available, H/s) +- `totalReward`: `Sats | null` — Total reward earned by this pool (sats, all time; None for minor pools) + +### `PoolDetailInfo` + +- `id`: `integer` (required) — Pool identifier +- `name`: `string` (required) — Pool name +- `link`: `string` (required) — Pool website URL +- `addresses`: `string[]` (required) — Known payout addresses +- `regexes`: `string[]` (required) — Coinbase tag patterns (regexes) +- `slug`: `PoolSlug` (required) — URL-friendly pool identifier +- `unique_id`: `integer` (required) — Unique pool identifier + +### `PoolSlug` + +`unknown | blockfills | ultimuspool | terrapool | luxor | 1thash | btccom | bitfarms | huobipool | wayicn | canoepool | btctop | bitcoincom | 175btc | gbminers | axbt | asicminer | bitminter | bitcoinrussia | btcserv | simplecoinus | btcguild | eligius | ozcoin | eclipsemc | maxbtc | triplemining | coinlab | 50btc | ghashio | stminingcorp | bitparking | mmpool | polmine | kncminer | bitalo | f2pool | hhtt | megabigpower | mtred | nmcbit | yourbtcnet | givemecoins | braiinspool | antpool | multicoinco | bcpoolio | cointerra | kanopool | solock | ckpool | nicehash | bitclub | bitcoinaffiliatenetwork | btcc | bwpool | exxbw | bitsolo | bitfury | 21inc | digitalbtc | 8baochi | mybtccoinpool | tbdice | hashpool | nexious | bravomining | hotpool | okexpool | bcmonster | 1hash | bixin | tatmaspool | viabtc | connectbtc | batpool | waterhole | dcexploration | dcex | btpool | 58coin | bitcoinindia | shawnp0wers | phashio | rigpool | haozhuzhu | 7pool | miningkings | hashbx | dpool | rawpool | haominer | helix | bitcoinukraine | poolin | secretsuperstar | tigerpoolnet | sigmapoolcom | okpooltop | hummerpool | tangpool | bytepool | spiderpool | novablock | miningcity | binancepool | minerium | lubiancom | okkong | aaopool | emcdpool | foundryusa | sbicrypto | arkpool | purebtccom | marapool | kucoinpool | entrustcharitypool | okminer | titan | pegapool | btcnuggets | cloudhashing | digitalxmintsy | telco214 | btcpoolparty | multipool | transactioncoinmining | btcdig | trickysbtcpool | btcmp | eobot | unomp | patels | gogreenlight | bitcoinindiapool | ekanembtc | canoe | tiger | 1m1x | zulupool | secpool | ocean | whitepool | wiz | wk057 | futurebitapollosolo | carbonnegative | portlandhodl | phoenix | neopool | maxipool | bitfufupool | gdpool | miningdutch | publicpool | miningsquared | innopolistech | btclab | parasite | redrockpool | est3lar | braiinssolo | solopoolcom | noderunners` + +### `PoolStats` + +- `poolId`: `integer` (required) — Unique pool identifier +- `name`: `string` (required) — Pool name +- `link`: `string` (required) — Pool website URL +- `blockCount`: `integer` (required) — Number of blocks mined in the time period +- `rank`: `integer` (required) — Pool ranking by block count (1 = most blocks) +- `emptyBlocks`: `integer` (required) — Number of empty blocks mined +- `slug`: `PoolSlug` (required) — URL-friendly pool identifier +- `share`: `number` (required) — Pool's share of total blocks (0.0 - 1.0) +- `poolUniqueId`: `integer` (required) — Unique pool identifier + +### `PoolsSummary` + +- `pools`: `PoolStats[]` (required) — List of pools sorted by block count descending +- `blockCount`: `integer` (required) — Total blocks in the time period +- `lastEstimatedHashrate`: `integer` (required) — Estimated network hashrate (H/s) +- `lastEstimatedHashrate3d`: `integer` (required) — Estimated network hashrate over last 3 days (H/s) +- `lastEstimatedHashrate1w`: `integer` (required) — Estimated network hashrate over last 1 week (H/s) + +### `Prices` + +- `time`: `Timestamp` (required) — Unix timestamp +- `USD`: `Dollars` (required) — BTC/USD price + +### `RawLockTime` + +`integer` + +### `RbfResponse` + +- `replacements`: `ReplacementNode | null` +- `replaces`: `object` + +### `RbfTx` + +- `txid`: `Txid` (required) +- `fee`: `Sats` (required) +- `vsize`: `VSize` (required) +- `value`: `Sats` (required) — Sum of output amounts. +- `rate`: `FeeRate` (required) +- `time`: `Timestamp` (required) +- `rbf`: `boolean` (required) — BIP-125 signaling: at least one input has sequence < 0xffffffff-1. +- `fullRbf`: `object` — Only populated on the root `tx` of an RBF response. `true` iff this tx displaced at least one non-signaling predecessor. + +### `RecommendedFees` + +- `fastestFee`: `FeeRate` (required) — Fee rate for fastest confirmation (next block) +- `halfHourFee`: `FeeRate` (required) — Fee rate for confirmation within ~30 minutes (3 blocks) +- `hourFee`: `FeeRate` (required) — Fee rate for confirmation within ~1 hour (6 blocks) +- `economyFee`: `FeeRate` (required) — Fee rate for economical confirmation +- `minimumFee`: `FeeRate` (required) — Minimum relay fee rate + +### `ReplacementNode` + +- `tx`: `RbfTx` (required) +- `time`: `Timestamp` (required) — First-seen timestamp, duplicated here to match mempool.space's on-the-wire shape. +- `fullRbf`: `boolean` (required) — Any predecessor in this subtree was non-signaling. +- `interval`: `object` — Seconds between this node's `time` and the successor that replaced it. Omitted on the root of an RBF response. +- `mined`: `object` — `Some(true)` iff this node's tx is currently confirmed. Absent on serialization otherwise. +- `replaces`: `ReplacementNode[]` (required) + +### `RewardStats` + +- `startBlock`: `Height` (required) — First block in the range +- `endBlock`: `Height` (required) — Last block in the range +- `totalReward`: `Sats` (required) — Total coinbase rewards (subsidy + fees) in sats +- `totalFee`: `Sats` (required) — Total transaction fees in sats +- `totalTx`: `integer` (required) — Total number of transactions + +### `Sats` + +`integer` + +### `SeriesData` + +- `version`: `Version` (required) — Version of the series data +- `index`: `Index` (required) — The index type used for this query +- `type`: `string` — Value type (e.g. "f32", "u64", "Sats") +- `start`: `integer` (required) — Start index (inclusive) of the returned range +- `end`: `integer` (required) — End index (exclusive) of the returned range +- `stamp`: `string` (required) — ISO 8601 timestamp of when the response was generated +- `data`: `object[]` (required) — The series data + +### `SeriesInfo` + +- `indexes`: `Index[]` (required) — Available indexes +- `type`: `string` (required) — Value type (e.g. "f32", "u64", "Sats") + +### `SeriesLeafWithSchema` + +- `name`: `string` (required) — The series name/identifier +- `kind`: `string` (required) — The Rust type (e.g., "Sats", "StoredF64") +- `indexes`: `Index[]` (required) — Available indexes for this series +- `type`: `string` (required) — JSON Schema type (e.g., "integer", "number", "string", "boolean", "array", "object") + +### `SigOps` + +`integer` + +### `SyncStatus` + +- `indexed_height`: `Height` (required) — Height of the last indexed block +- `computed_height`: `Height` (required) — Height of the last computed block (series) +- `tip_height`: `Height` (required) — Height of the chain tip (from Bitcoin node) +- `blocks_behind`: `Height` (required) — Number of blocks behind the tip +- `last_indexed_at`: `string` (required) — Human-readable timestamp of the last indexed block (ISO 8601) +- `last_indexed_at_unix`: `Timestamp` (required) — Unix timestamp of the last indexed block + +### `Timestamp` + +`integer` + +### `Transaction` + +- `index`: `TxIndex | null` — Internal transaction index (brk-specific, not in mempool.space) +- `txid`: `Txid` (required) — Transaction ID +- `version`: `TxVersionRaw` (required) — Transaction version (raw i32 from Bitcoin protocol, may contain non-standard values in coinbase txs) +- `locktime`: `RawLockTime` (required) — Transaction lock time +- `vin`: `TxIn[]` (required) — Transaction inputs +- `vout`: `TxOut[]` (required) — Transaction outputs +- `size`: `integer` (required) — Transaction size in bytes +- `weight`: `Weight` (required) — Transaction weight +- `sigops`: `SigOps` (required) — Number of signature operations +- `fee`: `Sats` (required) — Transaction fee in satoshis +- `status`: `TxStatus` (required) — Confirmation status (confirmed, block height/hash/time) + +### `TreeNode` + +`object | SeriesLeafWithSchema` + +### `TxIn` + +- `txid`: `Txid` (required) — Transaction ID of the output being spent +- `vout`: `Vout` (required) — Output index being spent (u16: coinbase is 65535, mempool.space uses u32: 4294967295) +- `prevout`: `TxOut | null` — Information about the previous output being spent +- `scriptsig`: `string` (required) — Signature script (hex, for non-SegWit inputs) +- `scriptsig_asm`: `string` (required) — Signature script in assembly format +- `witness`: `Witness` (required) — Witness data (stack items, present for SegWit inputs; hex-encoded on the wire) +- `is_coinbase`: `boolean` (required) — Whether this input is a coinbase (block reward) input +- `sequence`: `integer` (required) — Input sequence number +- `inner_redeemscript_asm`: `string` (required) — Inner redeemscript in assembly (for P2SH-wrapped SegWit: scriptsig + witness both present) +- `inner_witnessscript_asm`: `string` (required) — Inner witnessscript in assembly (for P2WSH: last witness item decoded as script) + +### `TxIndex` + +`integer` + +### `TxOut` + +- `scriptpubkey`: `string` (required) — Script pubkey (locking script) +- `value`: `Sats` (required) — Value of the output in satoshis + +### `TxOutspend` + +- `spent`: `boolean` (required) — Whether the output has been spent +- `txid`: `Txid | null` — Transaction ID of the spending transaction (only present if spent) +- `vin`: `Vin | null` — Input index in the spending transaction (only present if spent) +- `status`: `TxStatus | null` — Status of the spending transaction (only present if spent) + +### `TxStatus` + +- `confirmed`: `boolean` (required) — Whether the transaction is confirmed +- `block_height`: `Height | null` — Block height (only present if confirmed) +- `block_hash`: `BlockHash | null` — Block hash (only present if confirmed) +- `block_time`: `Timestamp | null` — Block timestamp (only present if confirmed) + +### `TxVersionRaw` + +`integer` + +### `Txid` + +`string` + +### `TypeIndex` + +`integer` + +### `Urpd` + +- `cohort`: `Cohort` (required) +- `date`: `Date` (required) +- `aggregation`: `UrpdAggregation` (required) — Aggregation strategy applied to the buckets. +- `close`: `Dollars` (required) — Close price on `date`, in USD. Anchor for `unrealized_pnl`. +- `total_supply`: `Bitcoin` (required) — Sum of `supply` across all buckets, in BTC. +- `buckets`: `UrpdBucket[]` (required) + +### `UrpdAggregation` + +`raw | lin200 | lin500 | lin1000 | log10 | log50 | log100 | log200 | log500 | log1000 | log2000` + +### `UrpdBucket` + +- `price_floor`: `Dollars` (required) — Lower bound of the bucket, in USD. Equals the exact realized price for `Raw`. +- `supply`: `Bitcoin` (required) — Supply held with a last-move price inside this bucket, in BTC. +- `realized_cap`: `Dollars` (required) — Realized cap contribution in USD: sum of `realized_price * supply` over the coins in this bucket. +- `unrealized_pnl`: `Dollars` (required) — Unrealized P&L in USD against the close on the snapshot date: `close * supply - realized_cap`. Can be negative. + +### `VSize` + +`integer` + +### `Version` + +`integer` + +### `Vin` + +`integer` + +### `Vout` + +`integer` + +### `Weight` + +`integer` + +### `Witness` + +`string[]` -- JavaScript: https://www.npmjs.com/package/brk-client -- Python: https://pypi.org/project/brk-client/ -- Rust: https://crates.io/crates/brk_client diff --git a/website/llms.txt b/website/llms.txt index 0014d735c..39c9700fd 100644 --- a/website/llms.txt +++ b/website/llms.txt @@ -1,32 +1,26 @@ # Bitcoin Research Kit (BRK) -> Free, open-source Bitcoin on-chain analytics API at https://bitview.space. 49,000+ time-series (price, hashrate, supply, MVRV, HODL waves, and more), block explorer, address index, mempool stats, mining data. No auth required. JSON and CSV output. +> Free, open-source Bitcoin analytics API and block explorer. 55667 on-chain time-series and 97 API operations. No authentication required. -## API Documentation +## API -- [Full API reference (plain text)](https://bitview.space/llms-full.txt): Every endpoint, parameter, and response shape -- [OpenAPI spec (compact, LLM-optimized)](https://bitview.space/api.json): Machine-readable, minimal spec for tool use -- [OpenAPI spec (full)](https://bitview.space/openapi.json): Complete OpenAPI 3.1 specification -- [Interactive docs](https://bitview.space/api): Scalar API explorer +- Version: `v0.3.6` +- Base URL: https://bitview.space +- [Full plain-text reference](https://bitview.space/llms-full.txt) +- [Compact OpenAPI](https://bitview.space/api.json) +- [Full OpenAPI](https://bitview.space/openapi.json) +- [Series catalog](https://bitview.space/api/series) +- [Interactive documentation](https://bitview.space/api) -## Quick Start +Use OpenAPI for tool construction, `/api/series` for complete series metadata, and `llms-full.txt` for a readable reference. -- [Search series](https://bitview.space/api/series/search?q=price): `GET /api/series/search?q={query}` -- [Get series data](https://bitview.space/api/series/price/day?start=-30): `GET /api/series/{name}/{index}?start=-30` -- [Latest value](https://bitview.space/api/series/price/day/latest): `GET /api/series/{name}/{index}/latest` -- [Bulk query](https://bitview.space/api/series/bulk?index=day&series=price,market_cap&start=-7): `GET /api/series/bulk?index={index}&series={s1},{s2}` -- [Block by height](https://bitview.space/api/block-height/0): `GET /api/block-height/{height}` -- [Transaction](https://bitview.space/api/tx/4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b): `GET /api/tx/{txid}` -- [Address](https://bitview.space/api/address/1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa): `GET /api/address/{address}` -- [Fee estimates](https://bitview.space/api/v1/fees/recommended): `GET /api/v1/fees/recommended` -- [Live price](https://bitview.space/api/mempool/price): `GET /api/mempool/price` +## Clients -## Client Libraries - -- [JavaScript](https://www.npmjs.com/package/brk-client): npm install brk-client -- [Python](https://pypi.org/project/brk-client/): pip install brk-client -- [Rust](https://crates.io/crates/brk_client): cargo add brk_client +- [JavaScript](https://www.npmjs.com/package/brk-client) +- [Python](https://pypi.org/project/brk-client/) +- [Rust](https://crates.io/crates/brk_client) ## Source -- [GitHub](https://github.com/bitcoinresearchkit/brk): MIT licensed +- [GitHub](https://github.com/bitcoinresearchkit/brk) +- MIT licensed diff --git a/website_next/ask/compactor.js b/website_next/ask/compactor.js new file mode 100644 index 000000000..b22a11c98 --- /dev/null +++ b/website_next/ask/compactor.js @@ -0,0 +1,77 @@ +import { compactContext } from "./context.js"; + +/** @param {() => void} callback */ +function whenIdle(callback) { + return requestIdleCallback(callback); +} + +/** @param {number | undefined} scheduled */ +function cancelIdle(scheduled) { + if (scheduled !== undefined) cancelIdleCallback(scheduled); +} + +/** + * @param {Object} options + * @param {import("./model.js").AskModel} options.model + * @param {readonly unknown[]} options.tools + * @param {(id: string, update: NonNullable>>) => void} options.onCompacted + */ +export function createAskCompactor({ model, tools, onCompacted }) { + /** @type {import("./storage.js").StoredChat | undefined} */ + let pending; + /** @type {number | undefined} */ + let scheduled; + /** @type {{ controller: AbortController, promise: ReturnType } | undefined} */ + let active; + + function queue() { + if (!pending || scheduled || active) return; + scheduled = whenIdle(() => { + scheduled = undefined; + void run(); + }); + } + + async function run() { + const target = pending; + if (!target) return; + pending = undefined; + const controller = new AbortController(); + const promise = compactContext(target, model, tools, controller.signal); + const task = { controller, promise }; + active = task; + + try { + const update = await promise; + if (update) onCompacted(target.id, update); + } catch { + // Background memory is optional; the next foreground request remains usable. + } finally { + if (active === task) active = undefined; + queue(); + } + } + + function stop() { + pending = undefined; + cancelIdle(scheduled); + scheduled = undefined; + if (!active) return; + active.controller.abort(); + model.stop(); + } + + return { + /** @param {import("./storage.js").StoredChat} chat */ + schedule(chat) { + pending = chat; + queue(); + }, + async cancel() { + const running = active?.promise; + stop(); + await running?.catch(() => {}); + }, + stop, + }; +} diff --git a/website_next/ask/context.js b/website_next/ask/context.js index 623e3aa64..ea8773b19 100644 --- a/website_next/ask/context.js +++ b/website_next/ask/context.js @@ -4,6 +4,8 @@ const KEEP_RECENT_MESSAGES = 5; const BASE_INSTRUCTIONS = `You are the Bitview assistant for the BRK Bitcoin research project. Answer clearly and concisely. +If essential context is missing, ask one brief clarification instead of guessing. +BRK is the software repository, not a cryptocurrency or token. For BRK questions, current repository evidence supplied by tools is authoritative. Use only that evidence for source-defined behavior, APIs, terminology, and metrics. Mention relevant repository paths. In BRK source evidence, sats means Bitcoin satoshis, not products, sales, or shares. Do not reinterpret formulas or add financial meaning that the evidence does not establish. Use metric search before building charts. Build an inline chart when it materially helps answer a quantitative Bitcoin question.`; @@ -17,15 +19,15 @@ Return only the updated memory, using short factual bullet points.`; /** @typedef {import("./storage.js").StoredChat} StoredChat */ /** @typedef {import("./model.js").AskModel} AskModel */ -/** @param {StoredChat} chat */ -function messagesFor(chat) { +/** @param {StoredChat} chat @param {number} [start] */ +function messagesFor(chat, start = chat.compactedCount) { const instructions = chat.memory ? `${BASE_INSTRUCTIONS}\n\nEarlier conversation memory:\n${chat.memory}` : BASE_INSTRUCTIONS; return [ { role: /** @type {const} */ ("system"), content: instructions }, - ...chat.messages.slice(chat.compactedCount).map(({ role, content }) => ({ + ...chat.messages.slice(start).map(({ role, content }) => ({ role, content, })), @@ -54,36 +56,46 @@ function compactionPrompt(memory, messages) { * @param {StoredChat} chat * @param {AskModel} model * @param {readonly unknown[]} tools - * @param {() => void} onCompacting */ -export async function prepareContext(chat, model, tools, onCompacting) { +export async function prepareContext(chat, model, tools) { const messages = messagesFor(chat); const tokenCount = await model.countTokens(messages, tools); - const compactThrough = chat.messages.length - KEEP_RECENT_MESSAGES; + if (tokenCount <= MAX_INPUT_TOKENS) return { chat, messages }; + const recentStart = Math.max( + chat.compactedCount, + chat.messages.length - KEEP_RECENT_MESSAGES, + ); + return { chat, messages: messagesFor(chat, recentStart) }; +} + +/** + * @param {StoredChat} chat + * @param {AskModel} model + * @param {readonly unknown[]} tools + * @param {AbortSignal} signal + */ +export async function compactContext(chat, model, tools, signal) { + const tokenCount = await model.countTokens(messagesFor(chat), tools); + signal.throwIfAborted(); + const compactThrough = chat.messages.length - KEEP_RECENT_MESSAGES; if ( tokenCount <= MAX_INPUT_TOKENS || compactThrough <= chat.compactedCount - ) { - return { chat, messages, compacted: false }; - } + ) return undefined; - onCompacting(); const memory = await model.compact( compactionPrompt( chat.memory, chat.messages.slice(chat.compactedCount, compactThrough), ), ); - const compactedChat = { - ...chat, + signal.throwIfAborted(); + return { + messageCount: chat.messages.length, + previousCompactedCount: chat.compactedCount, + previousMemory: chat.memory, memory: memory.trim(), compactedCount: compactThrough, }; - - return { - chat: compactedChat, - messages: messagesFor(compactedChat), - compacted: true, - }; } diff --git a/website_next/ask/index.js b/website_next/ask/index.js index c329204fe..c9e46db5d 100644 --- a/website_next/ask/index.js +++ b/website_next/ask/index.js @@ -1,4 +1,5 @@ import { createAskComposer } from "./composer/index.js"; +import { createAskCompactor } from "./compactor.js"; import { prepareContext } from "./context.js"; import { createAskConversation } from "./conversation/index.js"; import { createAskHero } from "./hero/index.js"; @@ -27,6 +28,16 @@ export function createAskPage() { let checking = false; let loading = false; let followingOutput = false; + const compactor = createAskCompactor({ + model, + tools: assistant.toolsFor(), + onCompacted(id, update) { + const saved = askStorage.saveMemory(id, update); + if (!saved || chat.id !== id) return; + chat = saved; + workspace = { ...workspace, activeChat: saved }; + }, + }); const sidebarPreference = localStorage.getItem(SIDEBAR_PREFERENCE_KEY); let sidebarCollapsed = sidebarPreference === null ? workspace.chats.length <= 1 @@ -168,10 +179,12 @@ export function createAskPage() { setLoading(cached); try { - await model.load( + const modelLoading = model.load( (update) => loader.reportProgress(update, cached), (status) => loader.reportStatus(status, cached), ); + void assistant.prewarm().catch(() => {}); + await modelLoading; setReady(); composer.focus(); } catch (error) { @@ -200,8 +213,13 @@ export function createAskPage() { } } - function openNewChat() { + async function openNewChat() { if (busy) return; + busy = true; + syncControls(); + await compactor.cancel(); + if (main.inert) return; + busy = false; if (chat.messages.length) { const wasSingleChat = workspace.chats.length === 1; @@ -222,16 +240,21 @@ export function createAskPage() { if (loaded) { setReady(); composer.focus(); - } + } else syncControls(); } /** @param {string} id */ - function selectChat(id) { + async function selectChat(id) { if (busy || id === chat.id) { setSidebarOpen(false); syncSidebar(); return; } + busy = true; + syncControls(); + await compactor.cancel(); + if (main.inert) return; + busy = false; workspace = askStorage.select(id); chat = workspace.activeChat; @@ -250,11 +273,16 @@ export function createAskPage() { } /** @param {string} id */ - function removeChat(id) { + async function removeChat(id) { if (busy) return; const item = workspace.chats.find((candidate) => candidate.id === id); if (!item) return; + busy = true; + syncControls(); + await compactor.cancel(); + if (main.inert) return; + busy = false; workspace = askStorage.remove(id); chat = workspace.activeChat; @@ -285,13 +313,6 @@ export function createAskPage() { const questionMessage = conversation.append("user", question); const answerMessage = conversation.append("assistant", ""); const timer = createResponseTimer(answerMessage.setSteps); - const draft = { - ...chat, - messages: [ - ...chat.messages, - { role: /** @type {const} */ ("user"), content: question }, - ], - }; busy = true; followingOutput = true; @@ -303,7 +324,21 @@ export function createAskPage() { try { timer.set("Preparing context"); - const { output, artifacts, metricPaths, chat: preparedChat } = await assistant.answer({ + await compactor.cancel(); + const draft = { + ...chat, + messages: [ + ...chat.messages, + { role: /** @type {const} */ ("user"), content: question }, + ], + }; + const { + output, + artifacts = [], + metricPaths, + apiContext, + chat: preparedChat, + } = await assistant.answer({ chatId: chat.id, question, history: draft.messages, @@ -314,7 +349,6 @@ export function createAskPage() { draft, model, assistant.toolsFor(), - () => timer.set("Compacting conversation"), ); timer.set("Routing request"); return prepared; @@ -330,7 +364,8 @@ export function createAskPage() { }); const { elapsedMs, steps } = timer.finish(); - conversation.setContent(answerMessage.content, "assistant", output); + const response = output ?? ""; + conversation.setContent(answerMessage.content, "assistant", response); answerMessage.setArtifacts(artifacts); answerMessage.setElapsed(elapsedMs); if (followingOutput) conversation.scrollToBottom(); @@ -341,10 +376,11 @@ export function createAskPage() { ...answeredChat.messages, { role: /** @type {const} */ ("assistant"), - content: output, + content: response, elapsedMs, steps, metricPaths, + ...(apiContext ? { apiContext } : {}), ...(artifacts.length ? { artifacts } : {}), }, ], @@ -353,6 +389,7 @@ export function createAskPage() { renderChatList(); setReady(); composer.focus(); + compactor.schedule(chat); } catch (error) { questionMessage.item.remove(); answerMessage.item.remove(); @@ -383,6 +420,7 @@ export function createAskPage() { mobileSidebar.addEventListener("change", syncSidebar); main.addEventListener("pageactive", () => void activateModel()); main.addEventListener("pageinactive", () => { + compactor.stop(); model.terminate(); assistant.terminate(); setSidebarOpen(false); diff --git a/website_next/ask/model.js b/website_next/ask/model.js index 022f6d6ab..4fd0500d1 100644 --- a/website_next/ask/model.js +++ b/website_next/ask/model.js @@ -61,10 +61,11 @@ export class AskModel { * @param {(update: TokenUpdate) => void} onToken * @param {readonly unknown[]} [tools] * @param {ToolChoice} [toolChoice] + * @param {{ maxTokens?: number }} [options] */ - generate(messages, onToken, tools = [], toolChoice = "auto") { + generate(messages, onToken, tools = [], toolChoice = "auto", options = {}) { return /** @type {Promise} */ ( - this.#request("generate", messages, onToken, tools, toolChoice) + this.#request("generate", messages, onToken, tools, toolChoice, options) ); } @@ -105,8 +106,9 @@ export class AskModel { * @param {((update: TokenUpdate) => void) | undefined} [onToken] * @param {readonly unknown[]} [tools] * @param {ToolChoice} [toolChoice] + * @param {{ maxTokens?: number }} [options] */ - #request(type, messages, onToken, tools = [], toolChoice = "auto") { + #request(type, messages, onToken, tools = [], toolChoice = "auto", options = {}) { if (!this.#worker) throw new Error("Model is not loaded"); this.#onToken = onToken; @@ -115,7 +117,7 @@ export class AskModel { this.#reject = reject; this.#worker?.postMessage({ type, - data: { messages, tools, toolChoice }, + data: { messages, tools, toolChoice, ...options }, }); }); } diff --git a/website_next/ask/storage.js b/website_next/ask/storage.js index bb885c40e..ec69b3918 100644 --- a/website_next/ask/storage.js +++ b/website_next/ask/storage.js @@ -36,6 +36,11 @@ const CHART_COLORS = new Set([ * @property {StoredResponseStep[]} [steps] * @property {StoredArtifact[]} [artifacts] * @property {string[]} [metricPaths] + * @property {ApiContext} [apiContext] + * + * @typedef {Object} ApiContext + * @property {string} key + * @property {Record} arguments * * @typedef {Object} StoredResponseStep * @property {string} label @@ -140,6 +145,36 @@ function readResponseStep(value) { return { label: step.label, elapsedMs: step.elapsedMs }; } +/** @param {unknown} value @returns {ApiContext | undefined} */ +function readApiContext(value) { + if (!value || typeof value !== "object") return undefined; + const context = /** @type {Record} */ (value); + if (typeof context.key !== "string" || !context.key.startsWith("GET /")) return undefined; + const rawArguments = context.arguments; + if (!rawArguments || typeof rawArguments !== "object" || Array.isArray(rawArguments)) { + return { key: context.key, arguments: {} }; + } + const arguments_ = Object.fromEntries( + Object.entries(rawArguments) + .filter(([key, item]) => + key.length <= 64 && + ( + typeof item === "string" || + typeof item === "number" || + typeof item === "boolean" || + Array.isArray(item) && + item.every((part) => + typeof part === "string" || + typeof part === "number" || + typeof part === "boolean" + ) + ) + ) + .slice(0, 16), + ); + return /** @type {ApiContext} */ ({ key: context.key, arguments: arguments_ }); +} + /** @param {unknown} value @returns {StoredMessage | undefined} */ function readMessage(value) { if (!value || typeof value !== "object") return undefined; @@ -173,6 +208,7 @@ function readMessage(value) { (/** @type {unknown} */ path) => typeof path === "string" && path.trim(), )))].slice(0, 6) : []; + const apiContext = readApiContext(message.apiContext); return { role: message.role, content: message.content, @@ -180,6 +216,7 @@ function readMessage(value) { ...(steps.length ? { steps } : {}), ...(artifacts.length ? { artifacts } : {}), ...(hasMetricPaths ? { metricPaths } : {}), + ...(apiContext ? { apiContext } : {}), }; } @@ -353,6 +390,31 @@ function save(chat) { return { chats, activeChat: saved }; } +/** + * @param {string} id + * @param {{ messageCount: number, previousCompactedCount: number, previousMemory: string, memory: string, compactedCount: number }} update + */ +function saveMemory(id, update) { + const index = readIndex() ?? initialize(); + const meta = index.chats.find((chat) => chat.id === id); + if (!meta) return undefined; + + const chat = readChat(meta); + if ( + chat.messages.length !== update.messageCount || + chat.compactedCount !== update.previousCompactedCount || + chat.memory !== update.previousMemory + ) return undefined; + + const saved = { + ...chat, + memory: update.memory, + compactedCount: update.compactedCount, + }; + writeChat(saved); + return saved; +} + /** @param {string} id */ function remove(id) { const index = readIndex() ?? initialize(); @@ -377,5 +439,6 @@ export const askStorage = /** @type {const} */ ({ create, select, save, + saveMemory, remove, }); diff --git a/website_next/ask/tools/api/answer.js b/website_next/ask/tools/api/answer.js new file mode 100644 index 000000000..92d2f4cd5 --- /dev/null +++ b/website_next/ask/tools/api/answer.js @@ -0,0 +1,241 @@ +import { renderApiAnswer } from "../render.js"; +import { normalize } from "../text.js"; +import { focusApiData } from "./result.js"; + +const MAX_FIELDS = 64; + +/** + * @typedef {Object} ApiNumericField + * @property {string} ref + * @property {string} name + * @property {string} type + * @property {string} [description] + * @property {number} value + * + * @typedef {Object} ApiAnswerSpec + * @property {ApiNumericField[]} fields + * @property {any} tool + */ + +/** @param {unknown} value @param {string[]} path */ +function valueAt(value, path) { + let current = value; + for (const key of path) { + if (!current || typeof current !== "object" || !Object.hasOwn(current, key)) { + return undefined; + } + current = /** @type {Record} */ (current)[key]; + } + return current; +} + +/** @param {any} grounding @returns {ApiAnswerSpec} */ +export function createApiAnswerTool(grounding) { + const data = focusApiData(grounding.data, grounding.arguments); + const responseFields = /** @type {{ name: string, type: string, description?: string }[]} */ ( + grounding.operation.response.fields ?? [] + ); + const fields = responseFields + .map((field) => ({ + ...field, + value: valueAt(data, field.name.split(".")), + })) + .filter((field) => typeof field.value === "number") + .slice(0, MAX_FIELDS) + .map((field, index) => ({ + ...field, + value: /** @type {number} */ (field.value), + ref: `n${index + 1}`, + })); + const fieldDescription = fields + .map((field) => + `${field.ref}=${field.name} (${field.type}): ${field.value}${field.description ? ` — ${field.description}` : ""}` + ) + .join("; "); + + return { + fields, + tool: { + type: "function", + function: { + name: "answer_from_api", + description: "Answer only from verified API data. Use calculate whenever the requested numeric result combines fields.", + parameters: { + type: "object", + properties: { + action: { type: "string", enum: ["calculate", "answer"] }, + label: { + type: "string", + description: "Short user-facing name for a calculated result.", + }, + terms: { + type: "array", + minItems: 1, + maxItems: 12, + items: { + type: "object", + properties: { + ref: { + type: "string", + enum: fields.map(({ ref }) => ref), + description: `Verified numeric fields: ${fieldDescription}`, + }, + sign: { type: "string", enum: ["add", "subtract"] }, + }, + required: ["ref", "sign"], + additionalProperties: false, + }, + description: "Exact arithmetic expression, one signed term per source field.", + }, + text: { + type: "string", + description: "For answer only: concise answer copied or summarized from verified data, with no invented values.", + }, + }, + required: ["action"], + additionalProperties: false, + }, + }, + }, + }; +} + +/** @param {string} value */ +function words(value) { + return normalize(value).split(" ").filter(Boolean); +} + +/** + * @param {string} phrase + * @param {string} context + * @param {ApiNumericField} field + */ +function fieldScore(phrase, context, field) { + const name = normalize(field.name); + const description = normalize(field.description ?? ""); + const document = new Set(words(`${name} ${description}`)); + const phraseWords = words(phrase); + if (!phraseWords.length || !phraseWords.every((word) => document.has(word))) return 0; + + let score = phraseWords.reduce( + (sum, word) => sum + (new Set(words(name)).has(word) ? 8 : 3), + 0, + ); + const normalizedPhrase = normalize(phrase); + if (name.includes(normalizedPhrase)) score += 12; + if (description.includes(normalizedPhrase)) score += 5; + for (const word of new Set(words(context))) { + if (document.has(word)) score += name.includes(word) ? 2 : 1; + } + return score; +} + +/** + * Resolve only explicit two-operand subtraction from OpenAPI-derived numeric + * fields. Ambiguous matches fall back to the model. + * + * @param {string} question + * @param {ApiNumericField[]} fields + * @param {any} grounding + */ +export function directApiCalculation(question, fields, grounding) { + /** @type {{ left: string, right: string, context: string, label: string } | undefined} */ + let expression; + const minus = question.match(/^(.*?)(?:,\s*)?([^,;?.]+?)\s+minus\s+([^,;?.]+)[?.]*$/i); + if (minus) { + expression = { + context: minus[1], + left: minus[2], + right: minus[3], + label: `${minus[2].trim()} minus ${minus[3].trim()}`, + }; + } else { + const difference = question.match( + /^(.*?)\bdifference\s+between\s+([^,;?.]+?)\s+and\s+([^,;?.]+)[?.]*$/i, + ); + if (difference) { + expression = { + context: difference[1], + left: difference[2], + right: difference[3], + label: `difference between ${difference[2].trim()} and ${difference[3].trim()}`, + }; + } else { + const subtract = question.match( + /^(.*?)\bsubtract\s+([^,;?.]+?)\s+from\s+([^,;?.]+)[?.]*$/i, + ); + if (subtract) { + expression = { + context: subtract[1], + left: subtract[3], + right: subtract[2], + label: `${subtract[3].trim()} minus ${subtract[2].trim()}`, + }; + } + } + } + if (!expression) return undefined; + + /** @param {string} phrase */ + const select = (phrase) => { + const ranked = fields + .map((field) => ({ + field, + score: fieldScore(phrase, expression.context, field), + })) + .filter(({ score }) => score > 0) + .sort((left, right) => right.score - left.score); + if (!ranked.length || ranked[1]?.score === ranked[0].score) return undefined; + return ranked[0].field; + }; + const left = select(expression.left); + const right = select(expression.right); + if (!left || !right || left.ref === right.ref) return undefined; + + return finishApiAnswer( + { + action: "calculate", + label: expression.label, + terms: [ + { ref: left.ref, sign: "add" }, + { ref: right.ref, sign: "subtract" }, + ], + }, + fields, + grounding, + ); +} + +/** @param {Record} action @param {ApiNumericField[]} fields @param {any} grounding */ +export function finishApiAnswer(action, fields, grounding) { + if (action.action === "answer") { + const text = typeof action.text === "string" ? action.text.trim() : ""; + if (!text) throw new Error("The AI returned an empty API answer"); + return renderApiAnswer(text, grounding.operation); + } + if (action.action !== "calculate" || !Array.isArray(action.terms) || !action.terms.length) { + throw new Error("The AI returned an invalid API calculation"); + } + const byRef = new Map(fields.map((field) => [field.ref, field])); + const selected = action.terms.map((raw) => { + if (!raw || typeof raw !== "object") throw new Error("Invalid calculation term"); + const term = /** @type {Record} */ (raw); + const field = byRef.get(String(term.ref)); + if (!field) throw new Error("Unknown calculation field"); + if (term.sign !== "add" && term.sign !== "subtract") { + throw new Error("Invalid calculation sign"); + } + return { field, sign: term.sign }; + }); + const value = selected.reduce( + (sum, { field, sign }) => sum + (sign === "add" ? field.value : -field.value), + 0, + ); + const types = new Set(selected.map(({ field }) => field.type)); + const unit = types.size === 1 ? ` ${selected[0].field.type}` : ""; + const label = typeof action.label === "string" && action.label.trim() + ? action.label.trim() + : "result"; + const formatted = new Intl.NumberFormat("en-US", { maximumFractionDigits: 8 }).format(value); + return renderApiAnswer(`**${label}**: ${formatted}${unit}`, grounding.operation); +} diff --git a/website_next/ask/tools/api/execute.js b/website_next/ask/tools/api/execute.js new file mode 100644 index 000000000..5e834905f --- /dev/null +++ b/website_next/ask/tools/api/execute.js @@ -0,0 +1,127 @@ +import { brk } from "../../../utils/client.js"; + +const MAX_TEXT = 2_000; +const MAX_ARRAY = 8; +const ARRAY_SAMPLE = 4; +const MAX_KEYS = 64; +const MAX_DEPTH = 6; + +/** @param {unknown} value */ +function hasValue(value) { + return value !== undefined && value !== null && value !== ""; +} + +/** @param {unknown} value @param {number} depth @param {{ truncated: boolean }} state @returns {unknown} */ +function compact(value, depth, state) { + if (depth >= MAX_DEPTH) { + state.truncated = true; + return "[nested value omitted]"; + } + if (typeof value === "string" && value.length > MAX_TEXT) { + state.truncated = true; + return `${value.slice(0, MAX_TEXT)}…`; + } + if (Array.isArray(value)) { + if (value.length <= MAX_ARRAY) { + return value.map((item) => compact(item, depth + 1, state)); + } + state.truncated = true; + return { + count: value.length, + sample: value.slice(0, ARRAY_SAMPLE).map((item) => compact(item, depth + 1, state)), + }; + } + if (value && typeof value === "object") { + const entries = Object.entries(value); + if (entries.length > MAX_KEYS) state.truncated = true; + return Object.fromEntries( + entries.slice(0, MAX_KEYS).map(([key, item]) => [ + key, + compact(item, depth + 1, state), + ]), + ); + } + return value; +} + +/** @param {unknown} value @param {import("./index.js").ApiParameter} parameter */ +function parameterValue(value, parameter) { + const type = parameter.valueType ?? parameter.type; + if (type.includes("integer")) { + const number = Number(value); + if (!Number.isInteger(number)) throw new Error(`${parameter.name} must be an integer`); + return String(number); + } + if (type.includes("number")) { + const number = Number(value); + if (!Number.isFinite(number)) throw new Error(`${parameter.name} must be a number`); + return String(number); + } + if (type.includes("boolean")) { + if (value !== true && value !== false && value !== "true" && value !== "false") { + throw new Error(`${parameter.name} must be true or false`); + } + return String(value); + } + const string = Array.isArray(value) ? value.join(",") : String(value); + if (parameter.enum?.length && !parameter.enum.map(String).includes(string)) { + throw new Error(`${parameter.name} must be one of: ${parameter.enum.join(", ")}`); + } + return string; +} + +/** + * @param {import("./index.js").ApiOperation} operation + * @param {Record} arguments_ + * @param {AbortSignal} signal + */ +export async function executeApi(operation, arguments_, signal) { + if (operation.method !== "GET" || !operation.path.startsWith("/")) { + throw new Error("Only generated read-only API operations are allowed"); + } + const allowed = new Set(operation.parameters.map((parameter) => parameter.name)); + for (const key of Object.keys(arguments_)) { + if (!allowed.has(key)) throw new Error(`Unexpected API parameter: ${key}`); + } + + let path = operation.path; + const query = new URLSearchParams(); + for (const parameter of operation.parameters) { + const value = arguments_[parameter.name]; + if (!hasValue(value)) { + if (parameter.required) throw new Error(`${parameter.name} is required`); + continue; + } + const encoded = parameterValue(value, parameter); + if (parameter.in === "path") { + path = path.replace(`{${parameter.name}}`, encodeURIComponent(encoded)); + } else if (parameter.in === "query") { + query.set(parameter.name, encoded); + } + } + if (/\{[^}]+\}/.test(path)) throw new Error("A required path parameter is missing"); + if (query.size) path += `?${query}`; + + const response = await brk.get(path, { signal }); + const contentType = response.headers.get("content-type") ?? operation.response.contentType; + const raw = contentType.includes("json") ? await response.json() : await response.text(); + const state = { truncated: false }; + const data = compact(raw, 0, state); + return { + operation: { + key: operation.key, + method: operation.method, + path: operation.path, + summary: operation.summary || operation.label, + description: operation.description, + parameters: operation.parameters, + response: operation.response, + }, + arguments: Object.fromEntries( + Object.entries(arguments_).filter(([, value]) => hasValue(value)), + ), + requestPath: path, + data, + truncated: state.truncated, + }; +} diff --git a/website_next/ask/tools/api/index.js b/website_next/ask/tools/api/index.js new file mode 100644 index 000000000..c0c97fc38 --- /dev/null +++ b/website_next/ask/tools/api/index.js @@ -0,0 +1,104 @@ +import { BRK_BASE_URL } from "../../../utils/client.js"; + +const WORKER_URL = import.meta.resolve("./worker.js"); +const OPENAPI_URL = `${BRK_BASE_URL}/openapi.json`; + +/** + * @typedef {Object} ApiParameter + * @property {string} name + * @property {"path" | "query"} in + * @property {boolean} required + * @property {string} type + * @property {string} [valueType] + * @property {unknown[]} [enum] + * @property {string} description + * + * @typedef {Object} ApiOperation + * @property {string} key + * @property {"GET"} method + * @property {string} path + * @property {string} label + * @property {string} summary + * @property {string} description + * @property {ApiParameter[]} parameters + * @property {{ contentType: string, type: string, description: string, fields: { name: string, type: string, required: boolean, description: string }[] }} response + * @property {string} [matchedQuery] + * @property {number} [matchedTerms] + * @property {number} [score] + */ + +class ApiIndex { + /** @type {Worker | undefined} */ + #worker; + + /** @type {Map void, reject: (error: Error) => void, onProgress?: () => void }>} */ + #pending = new Map(); + + /** @param {"prewarm" | "search" | "byKey"} type @param {Record} data @param {(() => void) | undefined} [onProgress] */ + request(type, data, onProgress) { + this.#ensureWorker(); + const id = crypto.randomUUID(); + return new Promise((resolve, reject) => { + this.#pending.set(id, { resolve, reject, onProgress }); + this.#worker?.postMessage({ id, type, data: { ...data, url: OPENAPI_URL } }); + }); + } + + #ensureWorker() { + if (this.#worker) return; + this.#worker = new Worker(WORKER_URL, { type: "module" }); + this.#worker.addEventListener("message", this.#handleMessage); + this.#worker.addEventListener("error", this.#handleError); + } + + terminate() { + const error = new Error("API search stopped"); + for (const request of this.#pending.values()) request.reject(error); + this.#pending.clear(); + this.#worker?.terminate(); + this.#worker = undefined; + } + + /** @param {MessageEvent} event */ + #handleMessage = (event) => { + const message = event.data; + const request = this.#pending.get(message.id); + if (!request) return; + if (message.status === "progress") { + request.onProgress?.(); + return; + } + this.#pending.delete(message.id); + if (message.status === "complete") request.resolve(message.data); + else request.reject(new Error(message.data)); + }; + + /** @param {ErrorEvent} event */ + #handleError = (event) => { + const error = new Error(event.message || "The API index failed"); + for (const request of this.#pending.values()) request.reject(error); + this.#pending.clear(); + this.#worker?.terminate(); + this.#worker = undefined; + }; +} + +const index = new ApiIndex(); + +export function prewarmApiIndex() { + return index.request("prewarm", {}); +} + +/** @param {string[]} queries @param {number} [limit] @param {(() => void) | undefined} [onProgress] @returns {Promise} */ +export function searchApi(queries, limit = 8, onProgress) { + return index.request("search", { queries, limit }, onProgress); +} + +/** @param {string} key @returns {Promise} */ +export function apiByKey(key) { + return index.request("byKey", { key }); +} + +export function terminateApiIndex() { + index.terminate(); +} diff --git a/website_next/ask/tools/api/openapi.js b/website_next/ask/tools/api/openapi.js new file mode 100644 index 000000000..f330d9afe --- /dev/null +++ b/website_next/ask/tools/api/openapi.js @@ -0,0 +1,201 @@ +const MAX_DESCRIPTION = 600; +const MAX_FIELD_DESCRIPTION = 240; +const MAX_PARAMETER_DESCRIPTION = 300; +const MAX_FIELDS = 32; + +/** @param {unknown} value @returns {value is Record} */ +function isObject(value) { + return Boolean(value) && typeof value === "object" && !Array.isArray(value); +} + +/** @param {Record} spec @param {string} reference */ +function resolveRef(spec, reference) { + if (!reference.startsWith("#/")) return undefined; + return reference + .slice(2) + .split("/") + .map((part) => part.replaceAll("~1", "/").replaceAll("~0", "~")) + .reduce((value, key) => isObject(value) ? value[key] : undefined, spec); +} + +/** @param {Record} spec @param {unknown} value @returns {Record} */ +function dereference(spec, value) { + if (!isObject(value)) return {}; + const resolved = typeof value.$ref === "string" + ? resolveRef(spec, value.$ref) + : undefined; + if (isObject(resolved)) return resolved; + if (Array.isArray(value.allOf) && value.allOf.length === 1) { + return dereference(spec, value.allOf[0]); + } + return value; +} + +/** @param {unknown} schema @returns {string} */ +function schemaName(schema) { + if (!isObject(schema)) return "value"; + if (typeof schema.$ref === "string") return schema.$ref.split("/").at(-1) || "value"; + for (const key of ["allOf", "oneOf", "anyOf"]) { + if (Array.isArray(schema[key])) return schema[key].map(schemaName).join(" | "); + } + if (schema.type === "array") return `${schemaName(schema.items)}[]`; + if (Array.isArray(schema.type)) { + return schema.type.filter((value) => typeof value === "string").join(" | "); + } + if (typeof schema.type === "string") return schema.type; + if (Array.isArray(schema.enum)) { + return schema.enum + .map((value) => typeof value === "string" ? value : JSON.stringify(value)) + .join(" | "); + } + return "value"; +} + +/** @param {unknown} value @param {number} limit */ +function compactText(value, limit) { + if (typeof value !== "string") return ""; + const text = value.split(/\s+/).filter(Boolean).join(" "); + const characters = [...text]; + return characters.length <= limit + ? text + : `${characters.slice(0, Math.max(0, limit - 1)).join("")}…`; +} + +/** + * @param {Record} spec + * @param {Record} shape + * @param {string} prefix + * @param {number} depth + * @returns {{ name: string, type: string, required: boolean, description: string }[]} + */ +function schemaFields(spec, shape, prefix = "", depth = 0, context = "") { + const required = new Set(Array.isArray(shape.required) ? shape.required : []); + const fields = []; + + for (const [name, raw] of Object.entries( + isObject(shape.properties) ? shape.properties : {}, + )) { + const resolved = dereference(spec, raw); + const path = prefix ? `${prefix}.${name}` : name; + const ownDescription = compactText( + isObject(raw) && raw.description !== undefined + ? raw.description + : resolved.description, + MAX_FIELD_DESCRIPTION, + ); + const description = compactText( + [context, ownDescription].filter(Boolean).join(". "), + MAX_FIELD_DESCRIPTION, + ); + fields.push({ + name: path, + type: schemaName(raw), + required: required.has(name), + description, + }); + if (depth < 1 && isObject(resolved.properties)) { + fields.push(...schemaFields(spec, resolved, path, depth + 1, description)); + } + if (fields.length >= MAX_FIELDS) break; + } + return fields.slice(0, MAX_FIELDS); +} + +/** + * @param {Record} spec + * @param {unknown} raw + * @returns {import("./index.js").ApiParameter | undefined} + */ +function parameterDetails(spec, raw) { + const parameter = dereference(spec, raw); + if (typeof parameter.name !== "string" || typeof parameter.in !== "string") { + return undefined; + } + const location = parameter.in; + if (location !== "path" && location !== "query") return undefined; + const rawSchema = isObject(parameter.schema) ? parameter.schema : {}; + const schema = dereference(spec, rawSchema); + return { + name: parameter.name, + in: location, + required: location === "path" || parameter.required === true, + type: schemaName(rawSchema), + valueType: schemaName(schema), + ...(Array.isArray(schema.enum) ? { enum: schema.enum.slice(0, 64) } : {}), + description: compactText( + parameter.description !== undefined ? parameter.description : schema.description, + MAX_PARAMETER_DESCRIPTION, + ), + }; +} + +/** @param {Record} spec @param {Record} operation */ +function responseDetails(spec, operation) { + if (!isObject(operation.responses)) return undefined; + const raw = operation.responses["200"] ?? + Object.entries(operation.responses) + .find(([status]) => status.length === 3 && /^2\d\d$/.test(status))?.[1]; + const response = dereference(spec, raw); + if (!isObject(response.content)) return undefined; + const content = Object.entries(response.content); + const selected = content.find(([type]) => type.includes("json")) ?? + content.find(([type]) => type.startsWith("text/")); + if (!selected) return undefined; + + const [contentType, media] = selected; + const rawSchema = isObject(media) && isObject(media.schema) ? media.schema : {}; + const schema = dereference(spec, rawSchema); + const itemSchema = schema.type === "array" ? schema.items : undefined; + const shape = dereference(spec, itemSchema ?? schema); + return { + contentType, + type: schemaName(rawSchema), + description: compactText(shape.description, MAX_DESCRIPTION), + fields: schemaFields(spec, shape), + }; +} + +/** + * Convert BRK's OpenAPI source of truth into the flat read-only operations + * consumed by the browser search index. + * + * @param {unknown} value + * @returns {import("./index.js").ApiOperation[]} + */ +export function operationsFromOpenApi(value) { + if (!isObject(value) || !isObject(value.paths)) { + throw new Error("Unsupported OpenAPI document"); + } + /** @type {import("./index.js").ApiOperation[]} */ + const operations = []; + for (const [path, pathItem] of Object.entries(value.paths)) { + if (!isObject(pathItem) || !isObject(pathItem.get) || pathItem.get.deprecated === true) { + continue; + } + const operation = pathItem.get; + const response = responseDetails(value, operation); + if (!response) continue; + /** @type {import("./index.js").ApiParameter[]} */ + const parameters = []; + for (const raw of [ + ...(Array.isArray(pathItem.parameters) ? pathItem.parameters : []), + ...(Array.isArray(operation.parameters) ? operation.parameters : []), + ]) { + const parameter = parameterDetails(value, raw); + if (parameter) parameters.push(parameter); + } + const summary = compactText(operation.summary, MAX_DESCRIPTION); + const key = `GET ${path}`; + operations.push({ + key, + method: "GET", + path, + label: summary || key, + summary, + description: compactText(operation.description, MAX_DESCRIPTION), + parameters, + response, + }); + } + return operations.sort((left, right) => left.path.localeCompare(right.path)); +} diff --git a/website_next/ask/tools/api/result.js b/website_next/ask/tools/api/result.js new file mode 100644 index 000000000..3a2c017bf --- /dev/null +++ b/website_next/ask/tools/api/result.js @@ -0,0 +1,32 @@ +/** @param {unknown} value */ +function isObject(value) { + return Boolean(value) && typeof value === "object" && !Array.isArray(value); +} + +/** @param {unknown} left @param {unknown} right */ +function equalValue(left, right) { + return String(left).trim() === String(right).trim(); +} + +/** + * Some APIs return a page containing the requested resource. When a unique + * item carries the same source-derived parameter name and value, focus that + * item before selecting response fields. + * + * @param {unknown} data + * @param {Record} [arguments_] + */ +export function focusApiData(data, arguments_ = {}) { + if (!Array.isArray(data)) return data; + if (data.length === 1) return data[0]; + + const supplied = Object.entries(arguments_); + if (!supplied.length) return data; + const matches = data.filter((item) => + isObject(item) && + supplied.every(([name, value]) => + Object.hasOwn(item, name) && equalValue(item[name], value) + ) + ); + return matches.length === 1 ? matches[0] : data; +} diff --git a/website_next/ask/tools/api/worker.js b/website_next/ask/tools/api/worker.js new file mode 100644 index 000000000..99b07e090 --- /dev/null +++ b/website_next/ask/tools/api/worker.js @@ -0,0 +1,218 @@ +import { QuickMatch, QuickMatchConfig } from "../../../modules/quickmatch-js/0.5.0/src/index.js"; +import { operationsFromOpenApi } from "./openapi.js"; + +const SEARCH_CANDIDATES = 256; + +/** + * @typedef {import("./index.js").ApiOperation} ApiOperation + * @typedef {ApiOperation & { document: string, tokens: string[], titleTokens: string[] }} IndexedOperation + */ + +/** @param {string} value */ +function searchable(value) { + return value + .replace(/([a-z0-9])([A-Z])/g, "$1 $2") + .replace(/[_./{}|:-]+/g, " ") + .replace(/\s+/g, " ") + .trim() + .toLowerCase(); +} + +/** @param {ApiOperation} operation @returns {IndexedOperation} */ +function indexOperation(operation) { + const { summary, description, parameters, response } = operation; + const fields = response.fields + .flatMap((field) => [field.name, field.description]) + .filter(Boolean) + .join(" "); + const parameterText = parameters + .flatMap((parameter) => [ + parameter.name, + parameter.type, + parameter.valueType, + parameter.description, + ...(parameter.enum ?? []), + ]) + .filter(Boolean) + .join(" "); + const titleDocument = searchable( + `${operation.key} ${summary} ${parameters.flatMap((parameter) => [parameter.name, parameter.type]).join(" ")}`, + ); + const document = searchable( + `${operation.key} ${summary} ${description} ${parameterText} ${response.type} ${response.description} ${fields}`, + ); + return { + ...operation, + document, + tokens: [...new Set(document.split(" ").filter(Boolean))], + titleTokens: [...new Set(titleDocument.split(" ").filter(Boolean))], + }; +} + +/** @param {IndexedOperation} operation @returns {ApiOperation} */ +function publicOperation(operation) { + const { document, tokens, titleTokens, ...value } = operation; + return value; +} + +/** @param {string} url */ +async function buildState(url) { + const response = await fetch(url); + if (!response.ok) throw new Error(`OpenAPI unavailable (${response.status})`); + const operations = operationsFromOpenApi(await response.json()).map(indexOperation); + operations.sort((left, right) => left.path.localeCompare(right.path)); + const config = new QuickMatchConfig() + .withLimit(SEARCH_CANDIDATES) + .withTrigramBudget(0) + .withMinScore(2) + .withSeparators("_- :/.|{}"); + const byDocument = new Map(operations.map((operation) => [operation.document, operation])); + const byKey = new Map(operations.map((operation) => [operation.key, operation])); + const documentFrequency = new Map(); + for (const operation of operations) { + for (const token of operation.tokens) { + documentFrequency.set(token, (documentFrequency.get(token) ?? 0) + 1); + } + } + const matcher = new QuickMatch(operations.map((operation) => operation.document), config); + return { operations, config, byDocument, byKey, documentFrequency, matcher }; +} + +/** @type {Promise>> | undefined} */ +let statePromise; +let stateUrl = ""; + +/** @param {string} id @param {string} url */ +function state(id, url) { + if (!statePromise || url !== stateUrl) { + stateUrl = url; + self.postMessage({ id, status: "progress" }); + statePromise = buildState(url); + } + return statePromise; +} + +/** @param {Awaited>} index @param {string} query @param {number} limit */ +function searchOne(index, query, limit) { + const normalized = searchable(query) + .split(" ") + .filter((word) => word.length < 32) + .join(" "); + if (!normalized) return []; + const words = [...new Set(normalized.split(" ").filter(Boolean))]; + const full = index.matcher.matchesWith( + normalized, + index.config.withLimit(SEARCH_CANDIDATES), + ); + const fullRanks = new Map(full.map((document, rank) => [document, rank])); + const lexical = index.operations + .map((operation) => { + const tokens = new Set(operation.tokens); + const titleTokens = new Set(operation.titleTokens); + let score = 0; + let matched = 0; + for (const word of words) { + if (!tokens.has(word)) continue; + matched += 1; + const frequency = index.documentFrequency.get(word) ?? index.operations.length; + const idf = Math.log((index.operations.length + 1) / (frequency + 1)) + 1; + score += idf * (titleTokens.has(word) ? 3 : 1); + } + return { operation, matched, score }; + }) + .filter(({ matched }) => matched > 0) + .sort((left, right) => + right.score - left.score || + right.matched - left.matched || + (fullRanks.get(left.operation.document) ?? SEARCH_CANDIDATES) - + (fullRanks.get(right.operation.document) ?? SEARCH_CANDIDATES) || + left.operation.path.localeCompare(right.operation.path) + ); + if (lexical.length) { + return lexical.slice(0, limit).map(({ operation, matched, score }, rank) => ({ + ...publicOperation(operation), + matchedQuery: query, + matchedTerms: matched, + score: Math.round(score * 1_000) - rank, + })); + } + + const scores = new Map(); + for (const word of words) { + if (!word) continue; + const matches = index.matcher.matchesWith( + word, + index.config.withLimit(SEARCH_CANDIDATES), + ); + for (const [rank, document] of matches.entries()) { + const score = scores.get(document) ?? { matched: 0, ranks: 0 }; + score.matched += 1; + score.ranks += rank; + scores.set(document, score); + } + } + return [...new Set([...full, ...scores.keys()])] + .sort((left, right) => { + const a = scores.get(left) ?? { matched: 0, ranks: SEARCH_CANDIDATES }; + const b = scores.get(right) ?? { matched: 0, ranks: SEARCH_CANDIDATES }; + return b.matched - a.matched || + (fullRanks.get(left) ?? SEARCH_CANDIDATES) - + (fullRanks.get(right) ?? SEARCH_CANDIDATES) || + a.ranks - b.ranks || + left.localeCompare(right); + }) + .slice(0, limit) + .map((document, rank) => ({ + ...publicOperation( + /** @type {IndexedOperation} */ (index.byDocument.get(document)), + ), + matchedQuery: query, + matchedTerms: 0, + score: 1_000 - rank, + })); +} + +/** @param {Awaited>} index @param {string[]} queries @param {number} limit */ +function search(index, queries, limit) { + const groups = queries.map((query) => searchOne(index, query, limit)); + const output = []; + const seen = new Set(); + for (let rank = 0; output.length < limit; rank += 1) { + let added = false; + for (const group of groups) { + const operation = group[rank]; + if (!operation || seen.has(operation.key)) continue; + seen.add(operation.key); + output.push(operation); + added = true; + if (output.length === limit) break; + } + if (!added) break; + } + return output; +} + +self.addEventListener("message", async (event) => { + const { id, type, data } = event.data; + try { + const index = await state(id, data.url); + let result; + if (type === "prewarm") { + result = true; + } else if (type === "search") { + result = search(index, data.queries, data.limit); + } else if (type === "byKey") { + const operation = index.byKey.get(data.key); + result = operation ? publicOperation(operation) : undefined; + } else { + throw new Error(`Unknown API request: ${type}`); + } + self.postMessage({ id, status: "complete", data: result }); + } catch (error) { + self.postMessage({ + id, + status: "error", + data: error instanceof Error ? error.message : String(error), + }); + } +}); diff --git a/website_next/ask/tools/chart/units.js b/website_next/ask/tools/chart/units.js new file mode 100644 index 000000000..3393dd517 --- /dev/null +++ b/website_next/ask/tools/chart/units.js @@ -0,0 +1,19 @@ +/** + * @param {{ suggestedUnit?: string }[]} metrics + * @param {string | undefined} existingUnit + * @param {string} operation + */ +export function resolveChartUnit(metrics, existingUnit, operation) { + const units = metrics.flatMap((metric) => + metric.suggestedUnit ? [metric.suggestedUnit] : [] + ); + if (existingUnit && operation !== "replace" && operation !== "remove") { + units.unshift(existingUnit); + } + + const distinct = [...new Set(units)]; + return { + unit: operation === "remove" ? existingUnit : distinct[0] ?? existingUnit, + conflicts: distinct.length > 1 ? distinct : [], + }; +} diff --git a/website_next/ask/tools/data.js b/website_next/ask/tools/data.js index 7c6e5e375..b7570d29c 100644 --- a/website_next/ask/tools/data.js +++ b/website_next/ask/tools/data.js @@ -2,19 +2,6 @@ import { brk } from "../../utils/client.js"; const RANGE_POINTS = 120; -/** @type {Map>} */ -const infoCache = new Map(); - -/** @param {string} name */ -function seriesInfo(name) { - let request = infoCache.get(name); - if (!request) { - request = brk.getSeriesInfo(name); - infoCache.set(name, request); - } - return request; -} - /** @param {string} type */ export function unitFromType(type) { const value = type.toLowerCase(); @@ -45,21 +32,21 @@ export function formatValue(value, unit) { return affix === "$" ? `$${number}` : `${number}${affix}`; } -/** @param {{ name: string, suggestedUnit?: string }} metric @param {Record} action */ +/** @param {{ name: string, indexes: string[], type: string, suggestedUnit?: string }} metric @param {Record} action */ export async function readMetric(metric, action) { - const info = await seriesInfo(metric.name); const rawIndex = typeof action.index === "string" ? action.index : ""; const indexLooksLikeValue = /^-?\d+$/.test(rawIndex) || /^\d{4}-\d{2}-\d{2}$/.test(rawIndex); const at = action.at ?? (indexLooksLikeValue ? rawIndex : undefined); const dateLike = typeof at === "string" && !/^-?\d+$/.test(at); const preferredIndex = indexLooksLikeValue ? "" : rawIndex; - const index = info.indexes.includes(preferredIndex) + const index = metric.indexes.includes(preferredIndex) ? preferredIndex - : dateLike && info.indexes.includes("day1") + : dateLike && metric.indexes.includes("day1") ? "day1" - : info.indexes.includes("height") + : metric.indexes.includes("height") ? "height" - : info.indexes[0]; + : metric.indexes[0]; + if (!index) throw new Error(`No supported index for ${metric.name}`); const mode = typeof action.mode === "string" ? action.mode : "latest"; let response; @@ -97,7 +84,7 @@ export async function readMetric(metric, action) { return { name: metric.name, label: metric.name.replaceAll("_", " "), - unit: metric.suggestedUnit ?? unitFromType(info.type), + unit: metric.suggestedUnit ?? unitFromType(metric.type), index: response.index, start: response.start, end: response.end, diff --git a/website_next/ask/tools/direct/chart.js b/website_next/ask/tools/direct/chart.js index 8914c7417..21380d3a2 100644 --- a/website_next/ask/tools/direct/chart.js +++ b/website_next/ask/tools/direct/chart.js @@ -1,6 +1,7 @@ import { normalize } from "../text.js"; -const CHART_REQUEST = /\b(?:chart|graph|plot)\b/; +const CHART_REQUEST = + /\b(?:chart|graph|plot|trend|visualize|visualise)\b|\b(?:over|through)\s+time\b|\btime\s+series\b/; const ADD_REQUEST = /\b(?:add|include|overlay)\b/; const REMOVE_REQUEST = /\b(?:remove|drop)\b/; diff --git a/website_next/ask/tools/direct/evidence.js b/website_next/ask/tools/direct/evidence.js index 2fad40d55..a9d8f2b17 100644 --- a/website_next/ask/tools/direct/evidence.js +++ b/website_next/ask/tools/direct/evidence.js @@ -2,11 +2,18 @@ import { normalize } from "../text.js"; const VARIANTS = /\b(?:availability|available|cohorts?|variants?)\b/; const IMPLEMENTATION = /\b(?:calculated?|calculation|code|formula|implemented?|implementation|source)\b/; +const PRODUCT = /\b(?:bitview|brk)\b/; +const PRODUCT_QUESTION = /^(?:how|what|where|which|why)\b/; +const DATA_REQUEST = + /\b(?:chart|current|graph|historical|history|latest|now|plot|today|trend|value|visualize|visualise)\b|\b(?:over|through)\s+time\b/; /** @param {string} request */ export function directEvidenceFocus(request) { const text = normalize(request); if (IMPLEMENTATION.test(text)) return "implementation"; if (VARIANTS.test(text)) return "variants"; + if (PRODUCT.test(text) && PRODUCT_QUESTION.test(text) && !DATA_REQUEST.test(text)) { + return "implementation"; + } return undefined; } diff --git a/website_next/ask/tools/index.js b/website_next/ask/tools/index.js index 9d97e47c8..138673bc7 100644 --- a/website_next/ask/tools/index.js +++ b/website_next/ask/tools/index.js @@ -1,9 +1,69 @@ import { searchTool } from "./schemas.js"; import { AskToolSession } from "./session.js"; import { AskSource } from "./source/index.js"; -import { terminateMetricIndex } from "./metrics/index.js"; +import { + createApiAnswerTool, + directApiCalculation, + finishApiAnswer, +} from "./api/answer.js"; +import { prewarmApiIndex, terminateApiIndex } from "./api/index.js"; +import { prewarmMetricIndex, terminateMetricIndex } from "./metrics/index.js"; +import { renderDirectApiAnswer, renderEvidence } from "./render.js"; const MAX_TOOL_ROUNDS = 8; +const GATE_PROMPT = `You are the front door for Bitview's local Bitcoin assistant. +Respond directly in at most 60 words when ordinary Bitcoin knowledge, conversation, or writing is enough. +When an essential subject or previous topic is missing, output only one clarification question of at most 15 words. Never guess it, explain possibilities, or list examples. +If and only if the request needs current or historical Bitview data, a concrete public blockchain record, server/API state, metric lookup, charts, cohorts, variants, or BRK repository evidence, return exactly: +TOOLS +BRK is software, not a cryptocurrency or token. + +Examples: +User: Which holder group? +Assistant: Which metric or Bitcoin concept do you mean? +User: Why does Bitcoin have a fixed supply? +Assistant: Bitcoin's consensus rules cap issuance at 21 million BTC. The block subsidy halves roughly every four years, so new issuance declines until the cap is approached. +User: Chart capitalized price. +Assistant: TOOLS +User: What fee did transaction 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b pay? +Assistant: TOOLS`; + +/** @param {import("../model.js").AskModel} model @param {import("../model.js").ChatMessage[]} messages */ +async function useFrontDoor(model, messages) { + const [, ...dialogue] = messages; + const result = await model.generate( + [ + { + role: "system", + content: GATE_PROMPT, + }, + ...dialogue, + ], + () => {}, + [], + "none", + { maxTokens: 96 }, + ); + const text = result.text.trim(); + return text === "TOOLS" + ? { kind: "tools" } + : { kind: "answer", text }; +} + +/** @param {AskToolSession} session */ +function modelStatus(session) { + if (session.stage === "rewrite") return "Refining search…"; + if (session.stage === "resolve") { + if (session.outcome === "read_api") return "Selecting API…"; + if (session.outcome === "explain_from_verified_facts") { + return session.options.some((option) => option.kind === "source") + ? "Selecting source…" + : "Selecting evidence…"; + } + return "Selecting metrics…"; + } + return "Understanding request…"; +} /** * @typedef {Object} ToolOutcome @@ -12,8 +72,51 @@ const MAX_TOOL_ROUNDS = 8; * @property {string} [output] * @property {import("../storage.js").StoredArtifact[]} [artifacts] * @property {string[]} [metricPaths] + * @property {{ key: string, arguments: Record }} [apiContext] + * @property {{ question: string, excerpts: { revision: string, path: string, startLine: number, endLine?: number, content: string }[] }} [grounding] + * @property {{ question: string, operation: { key: string, method: string, path: string, summary: string, description: string, parameters: { name: string }[], response: { fields?: { name: string, type: string, description?: string }[] } }, arguments: Record, requestPath: string, data: unknown, truncated: boolean }} [apiGrounding] */ +/** + * @param {import("../model.js").AskModel} model + * @param {NonNullable} grounding + * @param {(status: string) => void} onStatus + */ +async function answerFromApi(model, grounding, onStatus) { + const direct = renderDirectApiAnswer(grounding); + if (direct) return direct; + + onStatus("Answering from API…"); + const apiAnswer = createApiAnswerTool(grounding); + const calculation = directApiCalculation( + grounding.question, + apiAnswer.fields, + grounding, + ); + if (calculation) return calculation; + const answer = await model.generate( + [ + { + role: "system", + content: "Answer the user's exact question using only the verified API result and schema. Call answer_from_api once. Choose calculate whenever the requested numeric value requires combining fields; encode the complete arithmetic expression with signed source-field refs so the app computes it exactly. Choose answer only when no arithmetic is required. Preserve identifiers and units. Never invent missing values.", + }, + { + role: "user", + content: JSON.stringify(grounding), + }, + ], + () => {}, + [apiAnswer.tool], + { name: "answer_from_api" }, + { maxTokens: 128 }, + ); + const call = answer.toolCalls[0]; + if (!call || call.name !== "answer_from_api") { + throw new Error("The AI did not produce a valid API answer"); + } + return finishApiAnswer(call.arguments, apiAnswer.fields, grounding); +} + export function createAskTools() { const source = new AskSource(); /** @type {Map} */ @@ -32,6 +135,14 @@ export function createAskTools() { } return { + prewarm() { + return Promise.all([ + prewarmApiIndex(), + prewarmMetricIndex(), + source.prewarm(), + ]); + }, + toolsFor() { return [searchTool()]; }, @@ -53,19 +164,41 @@ export function createAskTools() { await session.begin( question, history, - () => onStatus("Indexing metrics…"), + () => onStatus("Indexing tools…"), ); try { - const direct = await session.tryDirect(onStatus); + const direct = /** @type {ToolOutcome | undefined} */ ( + await session.tryDirect(onStatus, signal) + ); + if (direct?.apiGrounding) { + return { + output: await answerFromApi(model, direct.apiGrounding, onStatus), + artifacts: [], + metricPaths: session.metricPaths(), + apiContext: session.apiContext(), + }; + } if (direct) return { ...direct, metricPaths: session.metricPaths() }; const prepared = await prepare(); const { messages } = prepared; + if (!session.requiresTools) { + onStatus("Understanding request…"); + const frontDoor = await useFrontDoor(model, messages); + if (frontDoor.kind === "answer") { + return { + output: frontDoor.text, + artifacts: [], + metricPaths: [], + chat: prepared.chat, + }; + } + } for (let round = 0; round < MAX_TOOL_ROUNDS; round += 1) { signal.throwIfAborted(); - onStatus("Thinking…"); + onStatus(modelStatus(session)); const newestUser = messages.findLast((message) => message.role === "user"); const stagedMessages = [ { role: /** @type {const} */ ("system"), content: session.instruction() }, @@ -82,6 +215,7 @@ export function createAskTools() { () => {}, [await session.tool()], { name: "next_action" }, + { maxTokens: 64 }, ); const call = result.toolCalls[0]; if (!call || call.name !== "next_action") { @@ -90,7 +224,7 @@ export function createAskTools() { signal.throwIfAborted(); const outcome = /** @type {ToolOutcome} */ ( - await session.execute(call.arguments, onStatus) + await session.execute(call.arguments, onStatus, signal) ); if (!outcome.done) continue; if (outcome.general) { @@ -108,10 +242,53 @@ export function createAskTools() { chat: prepared.chat, }; } + if (outcome.grounding) { + onStatus("Answering from source…"); + const answer = await model.generate( + [ + { + role: "system", + content: "Answer in at most 45 words using only the supplied source excerpt. Describe operations in source order. Preserve the exact subject, object, and identifiers of each relationship; never merge separate statements. Do not add background knowledge, guesses, or uncited details.", + }, + { + role: "user", + content: JSON.stringify(outcome.grounding), + }, + ], + onToken, + [], + "none", + { maxTokens: 64 }, + ); + return { + output: renderEvidence({ + facts: [answer.text.trim()], + sources: outcome.grounding.excerpts, + excerpts: [], + }), + artifacts: [], + metricPaths: session.metricPaths(), + chat: prepared.chat, + }; + } + if (outcome.apiGrounding) { + return { + output: await answerFromApi( + model, + outcome.apiGrounding, + onStatus, + ), + artifacts: [], + metricPaths: session.metricPaths(), + apiContext: session.apiContext(), + chat: prepared.chat, + }; + } return { output: outcome.output ?? "", artifacts: outcome.artifacts ?? [], metricPaths: session.metricPaths(), + apiContext: session.apiContext(), chat: prepared.chat, }; } @@ -132,6 +309,7 @@ export function createAskTools() { controller = undefined; sessions.clear(); source.terminate(); + terminateApiIndex(); terminateMetricIndex(); }, }; diff --git a/website_next/ask/tools/metrics/index.js b/website_next/ask/tools/metrics/index.js index 0f3d07e32..da6f12b28 100644 --- a/website_next/ask/tools/metrics/index.js +++ b/website_next/ask/tools/metrics/index.js @@ -1,10 +1,11 @@ -import { brk } from "../../../utils/client.js"; -import { expandMetricQueries } from "./language.js"; +import { BRK_BASE_URL, brk } from "../../../utils/client.js"; +import { canonicalMetricQuery, expandMetricQueries } from "./language.js"; const WORKER_URL = import.meta.resolve("./worker.js"); +const SERIES_URL = `${BRK_BASE_URL}/api/series`; const FORBIDDEN_KEYS = new Set(["__proto__", "constructor", "prototype"]); -/** @typedef {{ path: string, name: string, endpoint: string, suggestedUnit?: string, matchedQuery?: string, score?: number }} CatalogMetric */ +/** @typedef {{ path: string, name: string, endpoint: string, indexes: string[], type: string, suggestedUnit?: string, matchedQuery?: string, score?: number }} CatalogMetric */ /** @param {unknown} value */ function isMetric(value) { @@ -65,14 +66,14 @@ class MetricIndex { /** @type {Map void, reject: (error: Error) => void, onProgress?: () => void }>} */ #pending = new Map(); - /** @param {"search" | "mentions" | "categories" | "byName" | "byPaths" | "variants"} type @param {Record} data @param {(() => void) | undefined} [onProgress] */ + /** @param {"prewarm" | "search" | "mentions" | "byName" | "byPaths" | "variants"} type @param {Record} data @param {(() => void) | undefined} [onProgress] */ request(type, data, onProgress) { this.#ensureWorker(); const id = crypto.randomUUID(); return new Promise((resolve, reject) => { this.#pending.set(id, { resolve, reject, onProgress }); - this.#worker?.postMessage({ id, type, data }); + this.#worker?.postMessage({ id, type, data: { ...data, url: SERIES_URL } }); }); } @@ -119,6 +120,10 @@ class MetricIndex { const index = new MetricIndex(); +export function prewarmMetricIndex() { + return index.request("prewarm", {}); +} + /** @param {string[]} queries @param {number} [limit] @param {string[]} [prefixes] @param {(() => void) | undefined} [onProgress] @returns {Promise} */ export function searchMetrics(queries, limit = 16, prefixes = [], onProgress) { return index.request( @@ -130,12 +135,7 @@ export function searchMetrics(queries, limit = 16, prefixes = [], onProgress) { /** @param {string} query @param {(() => void) | undefined} [onProgress] @returns {Promise} */ export function mentionedMetrics(query, onProgress) { - return index.request("mentions", { query }, onProgress); -} - -/** @returns {Promise<{ path: string, label: string, count: number, examples: string[] }[]>} */ -export function metricCategories() { - return index.request("categories", {}); + return index.request("mentions", { query: canonicalMetricQuery(query) }, onProgress); } /** @param {string} name @returns {Promise} */ diff --git a/website_next/ask/tools/metrics/language.js b/website_next/ask/tools/metrics/language.js index 3e8534b34..b44e7e016 100644 --- a/website_next/ask/tools/metrics/language.js +++ b/website_next/ask/tools/metrics/language.js @@ -1,9 +1,13 @@ /** @type {[RegExp, string][]} */ const ALIASES = [ [/\bcapitalised\b/g, "capitalized"], + [/\bcap price\b/g, "capitalized price"], [/\ball time high\b/g, "ath"], [/\blong term holders?\b/g, "lth"], [/\bshort term holders?\b/g, "sth"], + [/\blong term\b/g, "lth"], + [/\bshort term\b/g, "sth"], + [/\b(lth|sth)\s+holders?\b/g, "$1"], [/\b(?:one )?(?:bitcoin|btc) worth\b/g, "bitcoin spot price"], ]; @@ -12,10 +16,19 @@ function expand(query) { return ALIASES.reduce( (value, [pattern, replacement]) => value.replace(pattern, replacement), query.toLowerCase().replace(/[-_]+/g, " "), - ).replace( - /\b(\d+(?:\.\d+)?)\s+to\s+(\d+(?:\.\d+)?)\s*(btc|sats?)\b/g, - "$1$3 to $2$3", - ); + ) + .replace(/\b(?:over|through)\s+time\b|\btime\s+series\b/g, " ") + .replace( + /\b(\d+(?:\.\d+)?)\s+to\s+(\d+(?:\.\d+)?)\s*(btc|sats?)\b/g, + "$1$3 to $2$3", + ) + .replace(/\s+/g, " ") + .trim(); +} + +/** @param {string} query */ +export function canonicalMetricQuery(query) { + return expand(query); } /** @param {string[]} queries */ diff --git a/website_next/ask/tools/metrics/series.js b/website_next/ask/tools/metrics/series.js new file mode 100644 index 000000000..a713aa2a6 --- /dev/null +++ b/website_next/ask/tools/metrics/series.js @@ -0,0 +1,51 @@ +/** @param {string} value */ +function toCamelCase(value) { + const pascal = value + .replaceAll("-", "_") + .split("_") + .map((word) => word ? `${word[0].toUpperCase()}${word.slice(1)}` : "") + .join(""); + const result = pascal ? `${pascal[0].toLowerCase()}${pascal.slice(1)}` : ""; + return /^\d/.test(result) ? `_${result}` : result; +} + +/** @param {unknown} value @returns {value is Record} */ +function isObject(value) { + return Boolean(value) && typeof value === "object" && !Array.isArray(value); +} + +/** + * Flatten the server's source-derived series tree into JavaScript client paths. + * + * @param {unknown} tree + * @returns {{ path: string, name: string, indexes: string[], type: string }[]} + */ +export function metricsFromSeries(tree) { + if (!isObject(tree)) throw new Error("Unsupported series catalog"); + /** @type {{ path: string, name: string, indexes: string[], type: string }[]} */ + const metrics = []; + + /** @param {Record} node @param {string[]} path */ + function visit(node, path) { + if ( + typeof node.name === "string" && + typeof node.kind === "string" && + Array.isArray(node.indexes) + ) { + metrics.push({ + path: path.join("."), + name: node.name, + indexes: node.indexes, + type: node.kind, + }); + return; + } + for (const [name, child] of Object.entries(node)) { + if (!isObject(child)) throw new Error(`Invalid series catalog entry: ${name}`); + visit(child, [...path, toCamelCase(name)]); + } + } + + visit(tree, []); + return metrics.sort((left, right) => left.path.localeCompare(right.path)); +} diff --git a/website_next/ask/tools/metrics/worker.js b/website_next/ask/tools/metrics/worker.js index 6ce96d2de..739d1d60b 100644 --- a/website_next/ask/tools/metrics/worker.js +++ b/website_next/ask/tools/metrics/worker.js @@ -1,24 +1,9 @@ import { QuickMatch, QuickMatchConfig } from "../../../modules/quickmatch-js/0.5.0/src/index.js"; -import { brk } from "../../../utils/client.js"; +import { metricsFromSeries } from "./series.js"; const SEARCH_CANDIDATES = 1_024; -/** @typedef {{ path: string, name: string, endpoint: string, document: string }} CatalogMetric */ - -/** @param {unknown} value */ -function isMetric(value) { - if (!value || typeof value !== "object") return false; - const by = /** @type {{ by?: Record }} */ (value).by; - return Boolean( - by && - Object.values(by).some( - (endpoint) => - endpoint && - typeof endpoint === "object" && - typeof /** @type {{ fetch?: unknown }} */ (endpoint).fetch === "function", - ), - ); -} +/** @typedef {{ path: string, name: string, indexes: string[], type: string, document: string }} CatalogMetric */ /** @param {string} value */ function searchable(value) { @@ -30,8 +15,14 @@ function searchable(value) { .toLowerCase(); } -/** @param {string} path */ -function suggestedUnit(path) { +/** @param {string} path @param {string} type */ +function suggestedUnit(path, type) { + if (/(dollar|usd|cents)/i.test(type)) return "usd"; + if (/(bitcoin|btc)/i.test(type)) return "btc"; + if (/(percent|ratio)/i.test(type)) return "percent"; + if (/address/i.test(type)) return "addresses"; + if (/(utxo|output)/i.test(type)) return "utxos"; + if (/(block|height)/i.test(type)) return "blocks"; if (/(percent|ratio|dominance|rate)/i.test(path)) return "percent"; if (/(usd|price|cap)/i.test(path)) return "usd"; if (/(btc|supply|value)/i.test(path)) return "btc"; @@ -51,9 +42,14 @@ function createConfig(limit = SEARCH_CANDIDATES) { .withSeparators("_- :/.|"); } -function buildState() { - /** @type {CatalogMetric[]} */ - const items = []; +/** @param {string} url */ +async function buildState(url) { + const response = await fetch(url); + if (!response.ok) throw new Error(`Series catalog unavailable (${response.status})`); + const items = metricsFromSeries(await response.json()).map((metric) => ({ + ...metric, + document: searchable(`${metric.name} ${metric.path}`), + })); /** @type {Map} */ const byName = new Map(); /** @type {Map} */ @@ -62,35 +58,14 @@ function buildState() { const bySearchableName = new Map(); /** @type {Map} */ const byDocument = new Map(); - const seen = new WeakSet(); - /** @type {{ value: unknown, keys: string[] }[]} */ - const pending = [{ value: brk.series, keys: [] }]; - - while (pending.length) { - const { value, keys } = /** @type {{ value: unknown, keys: string[] }} */ (pending.pop()); - if (!value || typeof value !== "object" || seen.has(value)) continue; - seen.add(value); - - if (isMetric(value)) { - const raw = /** @type {{ name?: string, by: Record }} */ (value); - const path = keys.join("."); - const name = raw.name ?? keys.at(-1) ?? ""; - const endpoint = Object.values(raw.by).find((item) => item.path)?.path ?? ""; - const document = searchable(`${name} | ${path} | ${endpoint}`); - const metric = { path, name, endpoint, document }; - items.push(metric); - if (!byName.has(name)) byName.set(name, metric); - byPath.set(path, metric); - const nameKey = searchable(name); - const named = bySearchableName.get(nameKey) ?? []; - named.push(metric); - bySearchableName.set(nameKey, named); - byDocument.set(document, metric); - } else { - for (const [key, child] of Object.entries(value)) { - if (key !== "by") pending.push({ value: child, keys: [...keys, key] }); - } - } + for (const metric of items) { + if (!byName.has(metric.name)) byName.set(metric.name, metric); + byPath.set(metric.path, metric); + const nameKey = searchable(metric.name); + const named = bySearchableName.get(nameKey) ?? []; + named.push(metric); + bySearchableName.set(nameKey, named); + if (!byDocument.has(metric.document)) byDocument.set(metric.document, metric); } const config = createConfig(); @@ -100,14 +75,16 @@ function buildState() { return { items, byName, byPath, bySearchableName, byDocument, matcher, config, scoped }; } -/** @type {Promise> | undefined} */ +/** @type {Promise>> | undefined} */ let statePromise; +let stateUrl = ""; -/** @param {string} id */ -function state(id) { - if (!statePromise) { +/** @param {string} id @param {string} url */ +function state(id, url) { + if (!statePromise || url !== stateUrl) { + stateUrl = url; self.postMessage({ id, status: "progress" }); - statePromise = Promise.resolve().then(buildState); + statePromise = buildState(url); } return statePromise; } @@ -117,12 +94,13 @@ function publicMetric(metric) { return { path: metric.path, name: metric.name, - endpoint: metric.endpoint, - suggestedUnit: suggestedUnit(metric.path), + indexes: metric.indexes, + type: metric.type, + suggestedUnit: suggestedUnit(metric.path, metric.type), }; } -/** @param {ReturnType} index @param {string[]} prefixes */ +/** @param {Awaited>} index @param {string[]} prefixes */ function scopedIndex(index, prefixes) { const inScope = (/** @type {CatalogMetric} */ metric) => !prefixes.length || prefixes.some((prefix) => @@ -141,7 +119,7 @@ function scopedIndex(index, prefixes) { return { ...scoped, inScope }; } -/** @param {ReturnType} index @param {string} query @param {number} limit @param {string[]} prefixes */ +/** @param {Awaited>} index @param {string} query @param {number} limit @param {string[]} prefixes */ function searchOne(index, query, limit, prefixes) { const scope = scopedIndex(index, prefixes); const normalizedQuery = searchable(query); @@ -187,7 +165,7 @@ function searchOne(index, query, limit, prefixes) { })); } -/** @param {ReturnType} index @param {string[]} queries @param {number} limit @param {string[]} prefixes */ +/** @param {Awaited>} index @param {string[]} queries @param {number} limit @param {string[]} prefixes */ function search(index, queries, limit, prefixes) { const groups = queries.map((query) => searchOne(index, query, limit, prefixes)); const output = []; @@ -208,7 +186,7 @@ function search(index, queries, limit, prefixes) { return output; } -/** @param {ReturnType} index @param {string} query */ +/** @param {Awaited>} index @param {string} query */ function mentions(index, query) { const words = searchable(query).match(/[a-z0-9]+/g) ?? []; /** @type {{ start: number, end: number, metric: CatalogMetric }[]} */ @@ -233,42 +211,7 @@ function mentions(index, query) { ).values()]; } -/** @param {ReturnType} index */ -function categories(index) { - /** @type {Map[] }>} */ - const values = new Map(); - for (const metric of index.items) { - const [root, branch] = metric.path.split("."); - if (!root) continue; - const category = values.get(root) ?? { - path: root, - label: searchable(root), - count: 0, - branches: [new Map(), new Map()], - }; - category.count += 1; - if (branch) { - category.branches[0].set(branch, (category.branches[0].get(branch) ?? 0) + 1); - const selector = metric.path.split(".").slice(1, 3).join(" / "); - if (selector !== branch) { - category.branches[1].set(selector, (category.branches[1].get(selector) ?? 0) + 1); - } - } - values.set(root, category); - } - return [...values.values()] - .map(({ branches, ...category }) => ({ - ...category, - examples: branches.flatMap((level, index) => [...level] - .sort((left, right) => right[1] - left[1]) - .slice(0, index === 0 ? 4 : 8) - .map(([name]) => searchable(name))) - .slice(0, 8), - })) - .sort((left, right) => left.label.localeCompare(right.label)); -} - -/** @param {ReturnType} index @param {string} name @param {string} query */ +/** @param {Awaited>} index @param {string} name @param {string} query */ function variants(index, name, query) { const suffix = `_${name}`; const candidates = index.items.filter((candidate) => @@ -319,10 +262,9 @@ function variants(index, name, query) { return { totalSeries: ranked.length, groups: [...groups.values()].slice(0, 8), - series: ranked.slice(0, 16).map(({ path, name: metricName, endpoint, suggestedUnit }) => ({ + series: ranked.slice(0, 16).map(({ path, name: metricName, suggestedUnit }) => ({ path, name: metricName, - endpoint, suggestedUnit, })), }; @@ -331,14 +273,14 @@ function variants(index, name, query) { self.addEventListener("message", async (event) => { const { id, type, data } = event.data; try { - const index = await state(id); + const index = await state(id, data.url); let result; - if (type === "search") { + if (type === "prewarm") { + result = true; + } else if (type === "search") { result = search(index, data.queries, data.limit, data.prefixes); } else if (type === "mentions") { result = mentions(index, data.query); - } else if (type === "categories") { - result = categories(index); } else if (type === "byName") { const metric = index.byName.get(data.name); result = metric ? publicMetric(metric) : undefined; diff --git a/website_next/ask/tools/prompts.js b/website_next/ask/tools/prompts.js index add5440ed..205dcc82c 100644 --- a/website_next/ask/tools/prompts.js +++ b/website_next/ask/tools/prompts.js @@ -1,27 +1,35 @@ const COMMON = `You route one step for Bitview's small on-device Bitcoin assistant. -Call next_action exactly once. Never answer directly, invent refs, alter returned refs, or repeat a ref.`; +Call next_action exactly once. Never answer directly, invent refs, alter returned refs, or repeat a ref. +Choose clarify when none of the available references match the user's meaning. Similar spelling alone is not a semantic match. Ask one short question; never force an unrelated result.`; export const ASK_STAGE_PROMPTS = /** @type {const} */ ({ search: `You route one user request for Bitview's Bitcoin data assistant. +First decide whether the request needs Bitview/BRK evidence or tools at all. +Choose answer_general for ordinary Bitcoin knowledge, explanation, conversation, or writing that the model can answer without current site data or repository evidence. A related metric existing does not by itself make the request a metric lookup. +Choose clarify_request when the request depends on a missing subject or missing prior context. Ask for that subject; never search source merely to guess it. +Only return catalog queries for outcomes that actually need metric, API, source, data, or chart tools. Omit queries, context, and cardinality for answer_general and clarify_request. +Examples: +- With no previous topic, "Which holder group?" is clarify_request. +- After a verified capitalized price answer, "Which holder groups have it?" reuses the previous topic and explains verified variants. +- "Why does Bitcoin have a fixed supply?" is answer_general. +- "Write a haiku about Bitcoin" is answer_general. Choose the requested outcome and translate the user's meaning into terse catalog-style Bitcoin or BRK metric names or technical noun phrases. Never copy a question or include request verbs, pronouns, time words, or punctuation in a query. Use one query for one metric. For X vs Y, return separate complete X and Y metric phrases; never leave vs or both sides inside one query. Set cardinality to multiple for every comparison or request involving more than one distinct metric, even if you accidentally return one query. Choose reuse_previous when the newest request asks another question about the previous verified topic, including its variants, cohorts, source, value, or chart. Choose extend_previous only when it adds a distinct new metric. Do not turn properties of the previous answer into new metric queries. Choose read_requested_value for a current or historical number. +Choose read_api for a concrete blockchain record or server resource that should be read from Bitview's API, such as a transaction, address, block, mempool, fee estimate, or server status. Do not choose it for time-series metrics or ordinary Bitcoin knowledge. Choose build_requested_chart for a graph, trend, history, comparison over time, or a request to show quantitative metrics over time—even when the user does not say chart. When an active chart is supplied, choose edit_existing_chart only to add, remove, or replace series on that chart. Choose explain_from_verified_facts for what or why questions, meaning, availability, cohorts, variants, or source code. -Choose answer_general only when the request needs no repository evidence, live data, metric lookup, or chart. +Choose answer_general when the request needs no repository evidence, live data, metric lookup, or chart. +Choose clarify_request when essential context is absent or multiple materially different interpretations remain and choosing one would change the result. Put one concise question in clarification. Never clarify merely because wording is informal. Interpret ordinary wording by meaning. BRK means the software repository, not a coin. Call next_action exactly once.`, explain: `${COMMON} Choose the smallest sufficient set of returned references by semantic fit and call answer. Prefer recommended references when they answer the request.`, - navigate: `${COMMON} -Choose one to three source-derived metric families that could contain the user's intended meaning. Use their names and examples; normally choose one. -Prefer the narrowest ordinary family whose name directly expresses the request. Choose a specialized family only when the user explicitly asks for that specialized concept.`, - rewrite: `${COMMON} Rewrite the newest request as concise conventional Bitcoin or BRK metric or source-search phrases. Translate colloquial meaning into standard technical terminology. Keep independently requested metrics as separate queries. Return exactly one rewritten query for every supplied unmatched query, in the same order. Never merge comparison sides. @@ -31,6 +39,11 @@ Return only those searches through next_action.`, Choose the smallest exact metric set that answers the requested value and call read_data. Use latest for the present. Use at for a specific block or date, put that block or date in at, and choose height for a block.`, + api: `${COMMON} +Choose the single read-only API operation that directly answers the request and call call_api. +Copy identifiers and parameter values exactly from the newest user request. Reuse previous verified arguments only for a dependent follow-up on the same resource. +If a required argument is absent, clarify instead of inventing it.`, + chart: `${COMMON} Build the requested chart from the smallest exact set of returned metric references. Use multiple references only when the user requested a comparison.`, diff --git a/website_next/ask/tools/refs.js b/website_next/ask/tools/refs.js index accb51f71..9b9f31c42 100644 --- a/website_next/ask/tools/refs.js +++ b/website_next/ask/tools/refs.js @@ -1,4 +1,5 @@ const PREFIX = /** @type {const} */ ({ + api: "a", category: "c", fact: "f", guide: "g", diff --git a/website_next/ask/tools/render.js b/website_next/ask/tools/render.js index 28ef10557..d22b91f22 100644 --- a/website_next/ask/tools/render.js +++ b/website_next/ask/tools/render.js @@ -1,4 +1,6 @@ import { formatValue } from "./data.js"; +import { focusApiData } from "./api/result.js"; +import { normalize } from "./text.js"; /** * @typedef {Object} MetricRead @@ -10,17 +12,45 @@ import { formatValue } from "./data.js"; * @property {unknown[]} values */ -/** @param {{ facts: string[], sources: string[], excerpts: { path: string, startLine: number, content: string }[] }} evidence */ +/** + * @typedef {Object} SourceEvidence + * @property {string} revision + * @property {string} path + * @property {number} startLine + * @property {number} [endLine] + */ + +const SOURCE_URL = "https://github.com/bitcoinresearchkit/brk/blob"; + +/** @param {SourceEvidence} source */ +function sourceKey(source) { + return `${source.revision}:${source.path}:${source.startLine}:${source.endLine ?? source.startLine}`; +} + +/** @param {SourceEvidence} source */ +function sourceLink(source) { + const end = source.endLine && source.endLine !== source.startLine + ? `-${source.endLine}` + : ""; + const path = source.path.split("/").map(encodeURIComponent).join("/"); + const lines = `#L${source.startLine}${end ? `-L${source.endLine}` : ""}`; + const url = `${SOURCE_URL}/${encodeURIComponent(source.revision)}/${path}${lines}`; + return `[\`${source.path}:${source.startLine}${end}\`](${url})`; +} + +/** @param {{ facts: string[], sources: SourceEvidence[], excerpts: (SourceEvidence & { content: string })[] }} evidence */ export function renderEvidence(evidence) { const sections = [...new Set(evidence.facts)].filter(Boolean); + const cited = new Set(); for (const excerpt of evidence.excerpts) { - sections.push(`\`${excerpt.path}:${excerpt.startLine}\`\n\n\`\`\`\n${excerpt.content}\n\`\`\``); + sections.push(`${sourceLink(excerpt)}\n\n\`\`\`\n${excerpt.content}\n\`\`\``); + cited.add(sourceKey(excerpt)); } - const sources = [...new Set(evidence.sources)].filter( - (source) => !sections.some((section) => section.includes(source)), - ); + const sources = [...new Map( + evidence.sources.map((source) => [sourceKey(source), source]), + ).values()].filter((source) => !cited.has(sourceKey(source))); if (sources.length) { - sections.push(`Source${sources.length === 1 ? "" : "s"}: ${sources.map((source) => `\`${source}\``).join(", ")}`); + sections.push(`Source${sources.length === 1 ? "" : "s"}: ${sources.map(sourceLink).join(", ")}`); } return sections.join("\n\n") || "I could not find enough verified evidence to answer that."; } @@ -43,3 +73,134 @@ export function renderData(results) { return `**${result.label}**: ${values.length} values; latest ${formatValue(values[values.length - 1], result.unit)}.`; }).join("\n"); } + +/** @param {string} answer @param {{ method: string, path: string }} operation */ +export function renderApiAnswer(answer, operation) { + return `${answer.trim()}\n\nData: \`${operation.method} ${operation.path}\``; +} + +/** @param {unknown} value @param {string[]} path */ +function valueAt(value, path) { + let current = value; + for (const key of path) { + if (!current || typeof current !== "object" || !Object.hasOwn(current, key)) { + return undefined; + } + current = /** @type {Record} */ (current)[key]; + } + return current; +} + +/** @param {unknown} value */ +function scalar(value) { + return value === null || + typeof value === "string" || + typeof value === "number" || + typeof value === "boolean"; +} + +/** @param {unknown} value */ +function displayScalar(value) { + if (typeof value === "number") { + return new Intl.NumberFormat("en-US", { maximumFractionDigits: 8 }).format(value); + } + if (typeof value === "string") return value; + return JSON.stringify(value); +} + +/** @param {{ field: { name: string, type: string }, value: unknown }} candidate */ +function renderApiField(candidate) { + const genericTypes = new Set([ + "boolean", + "integer", + "null", + "number", + "object", + "string", + "value", + ]); + const types = candidate.field.type + .split("|") + .map((type) => type.trim()); + const semanticTypes = types.filter((type) => !genericTypes.has(type.toLowerCase())); + const unit = semanticTypes.length === 1 ? ` ${semanticTypes[0]}` : ""; + const label = candidate.field.name.replaceAll("_", " ").replaceAll(".", " · "); + return `**${label}**: ${displayScalar(candidate.value)}${unit}`; +} + +/** + * Render scalar fields selected directly by exact OpenAPI field-name overlap. + * Equal-scoring fields are returned together rather than asking the model to + * choose, which is both faster and safer for questions such as "which block?". + * Field names, parameter names, and units all come from OpenAPI. + * @param {{ question: string, data: unknown, arguments?: Record, operation: { method: string, path: string, parameters?: { name: string }[], response: { type?: string, fields?: { name: string, type: string, description?: string }[] } } }} grounding + */ +export function renderDirectApiAnswer(grounding) { + if ( + /\b(?:add(?:ed)?|combined?|difference|minus|net|plus|subtract(?:ed)?|sum)\b/i + .test(grounding.question) + ) return undefined; + + const data = focusApiData(grounding.data, grounding.arguments); + const responseFields = grounding.operation.response.fields ?? []; + if (scalar(data) && !responseFields.length) { + const type = grounding.operation.response.type ?? "value"; + const label = normalize(type) || "value"; + return renderApiAnswer(`**${label}**: ${displayScalar(data)}`, grounding.operation); + } + + const words = new Set( + normalize(grounding.question).match(/[a-z0-9]+/g) ?? [], + ); + const parameters = new Set( + (grounding.operation.parameters ?? []).map(({ name }) => normalize(name)), + ); + const fields = responseFields.map((field) => { + const nameTokens = new Set(normalize(field.name).match(/[a-z0-9]+/g) ?? []); + const tokens = new Set( + normalize(`${field.name} ${field.description ?? ""}`).match(/[a-z0-9]+/g) ?? [], + ); + return { field, nameTokens, tokens }; + }); + const frequencies = new Map(); + for (const { tokens } of fields) { + for (const token of tokens) { + frequencies.set(token, (frequencies.get(token) ?? 0) + 1); + } + } + const candidates = fields + .map((field) => { + const path = field.field.name.split("."); + const leaf = path.at(-1) ?? ""; + let matches = 0; + let score = 0; + for (const word of words) { + if (!field.tokens.has(word)) continue; + matches += 1; + const frequency = frequencies.get(word) ?? fields.length; + const idf = Math.log((fields.length + 1) / (frequency + 1)) + 1; + score += idf * (field.nameTokens.has(word) ? 3 : 1); + } + return { + field: field.field, + path, + value: valueAt(data, path), + matches, + score, + parameter: parameters.has(normalize(leaf)), + }; + }) + .filter(({ matches, parameter, value }) => + matches > 0 && !parameter && scalar(value) && value !== null + ) + .sort((left, right) => right.score - left.score || right.matches - left.matches); + if (!candidates.length) return undefined; + + const selected = candidates + .filter(({ score }) => score === candidates[0].score) + .slice(0, 6); + const answer = selected.length === 1 + ? renderApiField(selected[0]) + : selected.map((candidate) => `- ${renderApiField(candidate)}`).join("\n"); + return renderApiAnswer(answer, grounding.operation); +} diff --git a/website_next/ask/tools/schemas.js b/website_next/ask/tools/schemas.js index f9bf6395e..9b2fcd82a 100644 --- a/website_next/ask/tools/schemas.js +++ b/website_next/ask/tools/schemas.js @@ -42,27 +42,19 @@ export function searchTool(hasActiveChart = false, hasPrevious = false) { type: "string", enum: [ "read_requested_value", + "read_api", "build_requested_chart", ...(hasActiveChart ? ["edit_existing_chart"] : []), "explain_from_verified_facts", "answer_general", + "clarify_request", ], }, - }, ["action", "context", "queries", "cardinality", "outcome"]); -} - -/** @param {{ ref: string, label: string }[]} options */ -export function navigateTool(options) { - return actionTool({ - action: { type: "string", enum: ["navigate"] }, - refs: { - type: "array", - minItems: 1, - maxItems: 3, - items: { type: "string", enum: options.map(({ ref }) => ref) }, - description: `Metric families: ${options.map(({ ref, label }) => `${ref}=${label}`).join("; ")}`, + clarification: { + type: "string", + description: "Only for clarify_request: one short question that distinguishes the materially different interpretations.", }, - }, ["action", "refs"]); + }, ["action", "outcome"]); } /** @param {string[]} queries */ @@ -79,6 +71,44 @@ export function rewriteTool(queries) { }, ["action", "queries"]); } +/** @param {{ ref: string, label: string, operation: import("./api/index.js").ApiOperation }[]} options */ +export function apiResolveTool(options) { + const parameters = new Map(); + for (const { operation } of options) { + for (const parameter of operation.parameters) { + const current = parameters.get(parameter.name); + const descriptions = [ + current?.description, + `${parameter.in}${parameter.required ? ", required" : ""} for ${operation.path}${parameter.description ? `: ${parameter.description}` : ""}`, + ].filter(Boolean); + parameters.set(parameter.name, { + type: "string", + description: [...new Set(descriptions)].join(" "), + }); + } + } + return actionTool({ + action: { type: "string", enum: ["call_api", "clarify"] }, + ref: { + type: "string", + enum: options.map(({ ref }) => ref), + description: `Read-only operations: ${options.map(({ ref, label, operation }) => { + const params = operation.parameters + .map((parameter) => `${parameter.name}${parameter.required ? "*" : ""}`) + .join(", "); + return `${ref}=${label} [${params || "no parameters"}]`; + }).join("; ")}`, + }, + arguments: { + type: "object", + properties: Object.fromEntries(parameters), + additionalProperties: false, + description: "Arguments copied from the user's request. Include every required parameter for the selected operation.", + }, + text: { type: "string", description: "For clarify only: one short question." }, + }, ["action"]); +} + /** * @param {{ ref: string, label: string }[]} options * @param {string} outcome @@ -95,14 +125,15 @@ export function resolveTool(options, outcome, maxItems = 3) { if (outcome === "explain_from_verified_facts") { return actionTool({ - action: { type: "string", enum: ["answer"] }, + action: { type: "string", enum: ["answer", "clarify"] }, refs, - }, ["action", "refs"]); + text: { type: "string", description: "For clarify only: one short question." }, + }, ["action"]); } if (outcome === "read_requested_value") { return actionTool({ - action: { type: "string", enum: ["read_data"] }, + action: { type: "string", enum: ["read_data", "clarify"] }, refs, mode: { type: "string", enum: ["latest", "at", "range"] }, index: { type: "string", description: "Index such as height or day1." }, @@ -110,12 +141,16 @@ export function resolveTool(options, outcome, maxItems = 3) { start: { type: "string" }, end: { type: "string" }, points: { type: "integer", minimum: 1, maximum: 120 }, - }, ["action", "refs", "mode"]); + text: { type: "string", description: "For clarify only: one short question." }, + }, ["action"]); } const editing = outcome === "edit_existing_chart"; return actionTool({ - action: { type: "string", enum: [editing ? "edit_chart" : "build_chart"] }, + action: { + type: "string", + enum: [editing ? "edit_chart" : "build_chart", "clarify"], + }, refs, title: { type: "string" }, operation: { @@ -123,7 +158,8 @@ export function resolveTool(options, outcome, maxItems = 3) { enum: ["add", "remove", "replace"], description: "For edit_chart, make exactly the requested change.", }, - }, ["action", "refs"]); + text: { type: "string", description: "For clarify only: one short question." }, + }, ["action"]); } export function clarifyTool() { diff --git a/website_next/ask/tools/session.js b/website_next/ask/tools/session.js index c27d5b07b..40a391fdb 100644 --- a/website_next/ask/tools/session.js +++ b/website_next/ask/tools/session.js @@ -1,22 +1,25 @@ import { createChartArtifact } from "./chart.js"; +import { resolveChartUnit } from "./chart/units.js"; +import { apiByKey, searchApi } from "./api/index.js"; +import { executeApi } from "./api/execute.js"; import { readMetric } from "./data.js"; import { directChartCommand } from "./direct/chart.js"; import { directEvidenceFocus } from "./direct/evidence.js"; import { searchLearn } from "./learn.js"; import { metricByName, - metricCategories, metricVariants, metricsByPaths, mentionedMetrics, searchMetrics, } from "./metrics/index.js"; +import { canonicalMetricQuery } from "./metrics/language.js"; import { ASK_STAGE_PROMPTS } from "./prompts.js"; import { AskRefs } from "./refs.js"; import { renderData, renderEvidence } from "./render.js"; import { + apiResolveTool, clarifyTool, - navigateTool, resolveTool, rewriteTool, searchTool, @@ -24,7 +27,8 @@ import { import { normalize } from "./text.js"; const MAX_OPTIONS = 12; -const MAX_CATEGORIES = 24; +const MAX_API_OPTIONS = 6; +const MAX_API_HINTS = 12; /** @typedef {import("../storage.js").ChartArtifact} ChartArtifact */ @@ -69,9 +73,15 @@ function isExplicitComparison(value) { return /\b(?:vs\.?|versus|compare|compared|comparison)\b/i.test(value); } +/** @param {string} value */ +function mayRequestMultiple(value) { + return isExplicitComparison(value) || /\b(?:and|both|together)\b/i.test(value); +} + /** @param {string} value */ function referencesPrevious(value) { - return /\b(?:it|its|that|this|they|their|them|those|these|same)\b/i.test(value); + return /\b(?:it|its|that|this|they|their|them|those|these|same)\b/i.test(value) || + /^(?:and|also|what about)\b/i.test(value.trim()); } /** @param {string} value */ @@ -79,6 +89,144 @@ function referencesSingular(value) { return /\b(?:it|its|that|this)\b/i.test(value); } +/** @param {string} value */ +function referencesPlural(value) { + return /\b(?:they|their|them|those|these)\b/i.test(value); +} + +/** @param {string} value */ +function literalArguments(value) { + return [...new Set( + (value.match(/\b(?=[A-Za-z0-9:_-]*\d)[A-Za-z0-9][A-Za-z0-9:_-]*\b/g) ?? []) + .filter((item) => item.length > 1 || /^\d$/.test(item)), + )]; +} + +/** @param {string} request @param {import("./api/index.js").ApiOperation} operation */ +function matchesApiResponse(request, operation) { + const words = new Set(normalize(request).match(/[a-z0-9]+/g) ?? []); + return operation.response.fields.some((field) => { + const names = normalize(field.name).match(/[a-z0-9]+/g) ?? []; + if (names.some((word) => words.has(word))) return true; + const description = normalize(field.description).match(/[a-z0-9]+/g) ?? []; + return description.some((word) => word.length >= 4 && words.has(word)); + }); +} + +/** @param {string} request @param {import("./api/index.js").ApiOperation} operation */ +function matchesApiIntent(request, operation) { + if (matchesApiResponse(request, operation)) return true; + const words = new Set( + (normalize(request).match(/[a-z0-9]+/g) ?? []).filter((word) => word.length >= 3), + ); + const document = new Set( + (normalize(`${operation.summary} ${operation.path}`).match(/[a-z0-9]+/g) ?? []) + .filter((word) => word.length >= 3), + ); + return [...words].filter((word) => document.has(word)).length >= 2; +} + +/** @param {string} value */ +function literalType(value) { + if (/^-?\d+(?:\.\d+)?$/.test(value) && value.replace(/[^0-9]/g, "").length <= 15) { + return "number"; + } + if (value === "true" || value === "false") return "boolean"; + return "string"; +} + +/** @param {import("./api/index.js").ApiParameter} parameter */ +function parameterType(parameter) { + const type = normalize(parameter.valueType ?? parameter.type); + if (/\b(?:integer|number)\b/.test(type)) return "number"; + if (/\bboolean\b/.test(type)) return "boolean"; + if (/\bstring\b/.test(type)) return "string"; + return "unknown"; +} + +/** + * Prefer candidates whose source-derived parameter schemas fit the supplied + * literals, while retaining catalog rank for equal fits. + * @param {string[]} values + * @param {import("./api/index.js").ApiOperation} operation + * @param {string} [request] + */ +function argumentAffinity(values, operation, request = "") { + const required = operation.parameters.filter((parameter) => parameter.required); + if (required.length !== values.length) return -1; + const requestTokens = normalize(request).split(" "); + return required.reduce((score, parameter, index) => { + const expected = parameterType(parameter); + const actual = literalType(values[index]); + let next = expected === actual ? score + 2 : expected === "unknown" ? score + 1 : score; + const valueIndex = requestTokens.indexOf(normalize(values[index])); + const context = valueIndex > 0 ? requestTokens[valueIndex - 1] : ""; + const placeholder = `{${parameter.name}}`; + const parts = operation.path.split("/"); + const parameterIndex = parts.indexOf(placeholder); + const pathContext = parameterIndex > 0 ? normalize(parts[parameterIndex - 1]) : ""; + if (context && pathContext.split(" ").includes(context)) next += 2; + return next; + }, 0); +} + +/** + * @param {import("./api/index.js").ApiOperation[]} hints + * @param {string[]} values + * @param {string} request + */ +function directApiCandidate(hints, values, request) { + if (!values.length) { + return hints.find((operation) => + operation.parameters.every((parameter) => !parameter.required) && + (operation.matchedTerms ?? 0) >= 2 && + matchesApiIntent(request, operation) + ); + } + const ranked = hints + .map((operation, rank) => ({ + operation, + rank, + affinity: argumentAffinity(values, operation, request), + })) + .filter(({ operation, affinity }) => + affinity >= 0 && (operation.matchedTerms ?? 0) > 0 + ) + .sort((left, right) => + right.affinity - left.affinity || left.rank - right.rank + ); + const [first, second] = ranked; + if (!first || !matchesApiIntent(request, first.operation)) return undefined; + const numericAmbiguity = values.some((value) => literalType(value) === "number") && + second?.affinity === first.affinity && + second.operation.parameters + .filter((parameter) => parameter.required) + .map((parameter) => parameter.name) + .join("|") !== first.operation.parameters + .filter((parameter) => parameter.required) + .map((parameter) => parameter.name) + .join("|"); + return numericAmbiguity ? undefined : first.operation; +} + +/** + * @param {import("./api/index.js").ApiOperation} operation + * @param {{ operation: import("./api/index.js").ApiOperation, arguments: Record } | undefined} previous + */ +function reusableArguments(operation, previous) { + if (!previous) return undefined; + const required = operation.parameters.filter((parameter) => parameter.required); + if (!required.length && previous.operation.key !== operation.key) return undefined; + if (!required.every((parameter) => Object.hasOwn(previous.arguments, parameter.name))) { + return undefined; + } + return Object.fromEntries( + operation.parameters + .filter((parameter) => Object.hasOwn(previous.arguments, parameter.name)) + .map((parameter) => [parameter.name, previous.arguments[parameter.name]]), + ); +} + /** @param {string} request */ function isDirectValueFollowup(request) { const text = normalize(request); @@ -90,6 +238,18 @@ function isDirectValueFollowup(request) { return referencesPrevious(text) && hasPoint && !needsInterpretation; } +/** @param {string} request */ +function isDirectValueRequest(request) { + const text = normalize(request); + const hasPoint = /\b(?:current|currently|latest|now|today)\b/.test(text) || + /\bblock\s+\d{4,}\b/.test(text) || + /\b\d{4}-\d{2}-\d{2}\b/.test(text); + const needsDifferentTool = + /\b(?:available|availability|chart|cohorts?|code|explain|formula|graph|history|plot|source|trend|variants?|visualize|visualise)\b/.test(text) || + /\b(?:over|through)\s+time\b/.test(text); + return hasPoint && !needsDifferentTool; +} + /** @param {string} request @param {string} proposed */ function evidenceFocus(request, proposed) { if (/\b(?:cohorts?|variants?|availability|available)\b/i.test(request)) return "variants"; @@ -119,6 +279,44 @@ async function exactTopicMetrics(topics, onProgress) { return metrics.filter((metric) => names.has(normalize(metric.name))); } +/** + * Resolve coordinated metric wording only when expanding its shared suffix + * produces two exact generated catalog names. + * @param {string} request + * @param {() => void} onProgress + */ +async function coordinatedMetrics(request, onProgress) { + const expression = canonicalMetricQuery(request) + .replace( + /^(?:(?:compare|chart|graph|plot|show|visualize|visualise)(?: me)?|comparison of)\s+/, + "", + ) + .replace(/^both\s+/, "") + .trim(); + const parts = expression + .split(/\s+(?:and|against|versus|vs)\s+/) + .map((part) => part.trim()) + .filter(Boolean); + if (parts.length !== 2) return []; + + const [left, right] = parts; + const candidates = [[left, right]]; + const leftWords = left.split(" "); + const rightWords = right.split(" "); + for (let index = 1; index < rightWords.length; index += 1) { + candidates.push([`${left} ${rightWords.slice(index).join(" ")}`, right]); + } + for (let index = 1; index < leftWords.length; index += 1) { + candidates.push([left, `${right} ${leftWords.slice(index).join(" ")}`]); + } + + for (const topics of candidates) { + const metrics = await exactTopicMetrics(topics, onProgress); + if (new Set(metrics.map((metric) => metric.path)).size === 2) return metrics; + } + return []; +} + /** @param {string} request */ function directReadAction(request) { const block = request.match(/\bblock\s+(\d{4,})\b/i)?.[1]; @@ -166,6 +364,41 @@ function latestMetricPaths(history) { return undefined; } +/** @param {any[]} history */ +function recentMetricPaths(history) { + /** @type {string[]} */ + const paths = []; + for (const message of [...history].reverse()) { + const remembered = Array.isArray(message.metricPaths) + ? message.metricPaths + : message.artifacts?.findLast?.( + (/** @type {any} */ artifact) => artifact.type === "chart", + )?.chart.series.map((/** @type {any} */ item) => item.path); + for (const path of remembered ?? []) { + if (!paths.includes(path)) paths.push(path); + if (paths.length === 6) return paths; + } + } + return paths; +} + +/** @param {any[]} history */ +function latestApiContext(history) { + for (const message of [...history].reverse()) { + if (message.apiContext) return message.apiContext; + } + return undefined; +} + +/** @param {any} formula */ +function formulaCitation(formula) { + return { + revision: formula.revision, + path: formula.fact.path, + startLine: formula.fact.line, + }; +} + /** @param {any[]} items */ function uniqueMetricOptions(items) { return [...new Map(items.map((/** @type {any} */ item) => [item.ref, item])).values()]; @@ -237,6 +470,8 @@ export class AskToolSession { /** @type {any[]} */ previousMetrics = []; /** @type {any[]} */ + recentMetrics = []; + /** @type {any[]} */ contextMetrics = []; query = ""; /** @type {string[]} */ @@ -248,17 +483,27 @@ export class AskToolSession { rewritten = false; rewriteChanged = false; comparison = false; - /** @type {string[]} */ - categoryPaths = []; /** @type {any} */ observation; /** @type {any[]} */ options = []; /** @type {MetricOption[]} */ metricOptions = []; + /** @type {{ ref: string, label: string, operation: import("./api/index.js").ApiOperation }[]} */ + apiOptions = []; + /** @type {import("./api/index.js").ApiOperation[]} */ + apiHints = []; + /** @type {import("./api/index.js").ApiOperation[]} */ + apiCandidates = []; + /** @type {import("./api/index.js").ApiOperation | undefined} */ + directApiHint; + /** @type {{ operation: import("./api/index.js").ApiOperation, arguments: Record } | undefined} */ + previousApi; + reuseApiContext = false; /** @type {any} */ formula; sourceSearched = false; + requiresTools = false; /** @type {ChartArtifact | undefined} */ activeChart; @@ -276,27 +521,105 @@ export class AskToolSession { this.rewriteChanged = false; this.comparison = false; this.contextMetrics = []; - this.categoryPaths = []; this.observation = undefined; this.options = []; this.metricOptions = []; + this.apiOptions = []; + this.apiHints = []; + this.apiCandidates = []; + this.directApiHint = undefined; + this.reuseApiContext = false; this.formula = undefined; this.sourceSearched = false; + this.requiresTools = false; this.activeChart ??= latestChart(history); - const paths = latestMetricPaths(history); - if (paths === undefined) return; + const apiContext = latestApiContext(history); + if (apiContext?.key) { + const operation = await apiByKey(apiContext.key); + this.previousApi = operation + ? { operation, arguments: apiContext.arguments ?? {} } + : undefined; + } else { + this.previousApi = undefined; + } - const current = this.previousMetrics.map((metric) => metric.path); - if (paths.length === current.length && paths.every((path, index) => path === current[index])) { + const dependsOnPrevious = Boolean(this.previousApi) && referencesPrevious(this.request); + const apiQuery = dependsOnPrevious + ? `${this.request} ${this.previousApi?.operation.summary || this.previousApi?.operation.label}` + : this.request; + const literals = literalArguments(this.request); + this.apiHints = await searchApi([apiQuery], MAX_API_HINTS, onProgress).catch(() => []); + this.apiCandidates = literals.length + ? this.apiHints.filter((operation) => + argumentAffinity(literals, operation, this.request) >= 0 && + (operation.matchedTerms ?? 0) > 0 + ) + : []; + this.directApiHint = directApiCandidate(this.apiHints, literals, this.request); + this.requiresTools = Boolean(this.directApiHint) || this.apiCandidates.length > 0; + + if (this.previousApi && referencesPrevious(this.request)) { + this.requiresTools = true; + const contextual = this.apiHints.find((operation) => + (operation.matchedTerms ?? 0) >= 2 && + matchesApiIntent(this.request, operation) && + reusableArguments(operation, this.previousApi) !== undefined + ); + if (contextual) { + this.directApiHint = contextual; + } else if (matchesApiResponse(this.request, this.previousApi.operation)) { + this.directApiHint = this.previousApi.operation; + } + } + + const focusPaths = latestMetricPaths(history); + if (focusPaths === undefined) return; + const recentPaths = recentMetricPaths(history); + const currentFocus = this.previousMetrics.map((metric) => metric.path); + const currentRecent = this.recentMetrics.map((metric) => metric.path); + if ( + focusPaths.length === currentFocus.length && + focusPaths.every((path, index) => path === currentFocus[index]) && + recentPaths.length === currentRecent.length && + recentPaths.every((path, index) => path === currentRecent[index]) + ) { return; } + const paths = [...new Set([...focusPaths, ...recentPaths])]; const metrics = paths.length ? await metricsByPaths(paths, onProgress) : []; - this.rememberMetricValues(metrics); + const byPath = new Map(metrics.map((metric) => [metric.path, metric])); + this.previousMetrics = focusPaths.map((path) => byPath.get(path)).filter(Boolean); + this.previousTopics = this.previousMetrics.map((metric) => label(metric.name)); + this.recentMetrics = recentPaths.map((path) => byPath.get(path)).filter(Boolean); } - /** @param {(status: string) => void} onStatus */ - async tryDirect(onStatus) { + /** @param {(status: string) => void} onStatus @param {AbortSignal} signal */ + async tryDirect(onStatus, signal) { + if (this.directApiHint) { + this.outcome = "read_api"; + this.queries = [this.request]; + this.apiOptions = [{ + ref: this.refs.issue("api", this.directApiHint, this.directApiHint.key), + label: `${this.directApiHint.method} ${this.directApiHint.path} — ${this.directApiHint.label}`, + operation: this.directApiHint, + }]; + try { + const direct = await this.tryDirectApi(onStatus, signal); + if (direct) return direct; + } catch { + this.requiresTools = true; + this.apiOptions = []; + } + } + + if (this.apiCandidates.length) { + this.outcome = "read_api"; + this.queries = [this.request]; + await this.searchApiOperations(onStatus); + return undefined; + } + const evidence = directEvidenceFocus(this.request); const chart = evidence ? undefined @@ -306,11 +629,19 @@ export class AskToolSession { this.request, () => onStatus("Indexing metrics…"), ); + if (metrics.length < 2 && mayRequestMultiple(this.request)) { + metrics = await coordinatedMetrics( + this.request, + () => onStatus("Searching metrics…"), + ); + } if (!metrics.length) { if (this.previousTopics.length > 1 && referencesSingular(this.request)) { return undefined; } - metrics = this.previousMetrics.length + metrics = referencesPlural(this.request) && this.recentMetrics.length + ? this.recentMetrics + : this.previousMetrics.length ? this.previousMetrics : await exactTopicMetrics( this.previousTopics, @@ -318,7 +649,7 @@ export class AskToolSession { ); } - if (metrics.length) { + if (metrics.length && (!mayRequestMultiple(this.request) || metrics.length > 1)) { const refs = metrics.map((metric) => this.refs.issue("metric", metric, metric.path)); this.outcome = chart.kind === "edit" ? "edit_existing_chart" @@ -327,6 +658,7 @@ export class AskToolSession { const result = this.buildChart({ refs, operation: chart.operation }); return { output: result.output, artifacts: result.artifacts }; } + this.requiresTools = true; } if (evidence) { @@ -367,9 +699,38 @@ export class AskToolSession { const result = await this.inspect(refs); return { output: result.output, artifacts: [] }; } + if (evidence === "implementation") { + onStatus("Searching source…"); + const result = await this.source.search( + this.request, + undefined, + ({ loaded, total }) => onStatus(`Indexing source · ${loaded} / ${total}`), + ); + if (result.matches.length) { + const options = result.matches.slice(0, 6).map((/** @type {any} */ match) => { + const value = { ...match, revision: result.revision }; + return { + ref: this.refs.issue("source", value, `${match.path}:${match.startLine}`), + kind: "source", + label: `${match.path}:${match.startLine}`, + detail: match.content.slice(0, 180), + }; + }); + this.outcome = "explain_from_verified_facts"; + this.stage = "resolve"; + this.options = options; + this.observation = { options }; + this.requiresTools = true; + return undefined; + } + } + this.requiresTools = true; } - if (this.previousTopics.length === 1 && isDirectValueFollowup(this.request)) { + if ( + isDirectValueRequest(this.request) || + this.previousTopics.length === 1 && isDirectValueFollowup(this.request) + ) { const action = directReadAction(this.request); if (action) { let metrics = await mentionedMetrics( @@ -391,11 +752,13 @@ export class AskToolSession { this.rememberMetricValues(metrics); return { output: renderData(results), artifacts: [] }; } + this.requiresTools = true; } } if (!isDirectDefinition(this.request)) return undefined; + const explicitlyNamesMetric = /\b(?:indicator|metric|series)\b/i.test(this.request); const mentioned = await mentionedMetrics( this.request, () => onStatus("Indexing metrics…"), @@ -405,6 +768,7 @@ export class AskToolSession { if (!metric && this.previousMetrics.length === 1 && referencesPrevious(this.request)) { [metric] = this.previousMetrics; } + if (!metric && !explicitlyNamesMetric) return undefined; if (!metric) { [metric] = await searchMetrics( [this.request], @@ -413,29 +777,42 @@ export class AskToolSession { () => onStatus("Indexing metrics…"), ); } - if (!metric) return undefined; + if (!metric) { + this.requiresTools = true; + return undefined; + } onStatus("Searching source…"); const formula = await this.source.explain( `${this.request}\n${metric.name}`, ({ loaded, total }) => onStatus(`Indexing source · ${loaded} / ${total}`), ); - if (!formula || normalize(formula.fact.metric) !== normalize(metric.name)) return undefined; + if (!formula || normalize(formula.fact.metric) !== normalize(metric.name)) { + this.requiresTools = true; + return undefined; + } this.rememberMetricValues([metric]); - return { output: formula.answer, artifacts: [] }; + return { + output: renderEvidence({ + facts: [formula.answer], + sources: [formulaCitation(formula)], + excerpts: [], + }), + artifacts: [], + }; } async tool() { if (this.stage === "search") { return searchTool( Boolean(this.activeChart), - this.previousTopics.length > 0, + this.previousTopics.length > 0 || Boolean(this.previousApi), ); } if (this.stage === "rewrite") return rewriteTool(this.queries); - if (this.stage === "navigate") return navigateTool(this.options); if (this.stage === "resolve") { + if (this.outcome === "read_api") return apiResolveTool(this.apiOptions); const maxItems = this.formula ? 1 : this.outcome === "explain_from_verified_facts" @@ -456,14 +833,17 @@ export class AskToolSession { const previous = this.previousTopics.length ? `\nPrevious verified topic${this.previousTopics.length === 1 ? "" : "s"}: ${this.previousTopics.join(", ")}. Reuse only when the newest request depends on it.` : ""; + const previousApi = this.previousApi + ? `\nPrevious verified API resource: ${this.previousApi.operation.label} (${this.previousApi.operation.key}), arguments ${JSON.stringify(this.previousApi.arguments)}. Reuse only for a dependent follow-up on that resource.` + : ""; const chart = this.activeChart ? `\nActive chart: ${this.activeChart.chart.title}; series: ${this.activeChart.chart.series.map((item) => item.label).join(", ")}.` : ""; - return `${ASK_STAGE_PROMPTS.search}${previous}${chart}`; + return `${ASK_STAGE_PROMPTS.search}${previous}${previousApi}${chart}`; } - if (this.stage === "navigate") return ASK_STAGE_PROMPTS.navigate; if (this.stage === "rewrite") return ASK_STAGE_PROMPTS.rewrite; if (this.stage === "resolve") { + if (this.outcome === "read_api") return ASK_STAGE_PROMPTS.api; if (this.outcome === "explain_from_verified_facts") { return this.directMatch ? `${ASK_STAGE_PROMPTS.explain}\nA trusted direct match exists. Use only recommendedRefs.` @@ -479,6 +859,8 @@ export class AskToolSession { /** @param {(status: string) => void} onStatus */ async search(onStatus) { + if (this.outcome === "read_api") return await this.searchApiOperations(onStatus); + const [globalMetrics, rawMetrics, guideGroups] = await Promise.all([ searchMetrics( this.queries, @@ -513,10 +895,18 @@ export class AskToolSession { /** @type {any[]} */ let sources = []; + const hasExactMetric = foundMetrics.some((metric) => + normalize(metric.name) === normalize(metric.matchedQuery ?? "") + ); + const hasGroundedSubject = hasExactMetric || + this.contextMetrics.length > 0 || + this.rewritten && this.rewriteChanged; + if ( this.outcome === "explain_from_verified_facts" && this.focus !== "variants" && - !this.sourceSearched + !this.sourceSearched && + (this.focus === "implementation" || hasGroundedSubject) ) { this.sourceSearched = true; onStatus("Searching source…"); @@ -528,11 +918,15 @@ export class AskToolSession { ({ loaded, total }) => onStatus(`Indexing source · ${loaded} / ${total}`), ); if (!this.formula) { - sources = (await this.source.search( + const result = await this.source.search( this.queries.join(" "), undefined, ({ loaded, total }) => onStatus(`Indexing source · ${loaded} / ${total}`), - )).matches; + ); + sources = result.matches.map((/** @type {any} */ source) => ({ + ...source, + revision: result.revision, + })); } else { const formulaMetric = await metricByName(this.formula.fact.metric); if (formulaMetric && !metrics.some((metric) => metric.path === formulaMetric.path)) { @@ -597,7 +991,7 @@ export class AskToolSession { return; } - const normalizedQueries = this.queries.map(normalize); + const normalizedQueries = this.queries.map((query) => normalize(canonicalMetricQuery(query))); const exactCandidates = this.options.filter((option) => option.kind === "metric" && normalize(option.label) === normalize(option.matchedQuery ?? "") @@ -615,26 +1009,18 @@ export class AskToolSession { this.directMatch = exactByQuery.every((matches) => matches.length === 1); const directOptions = exactByQuery.flat(); const trusted = this.directMatch || - this.comparison && metrics.length > 0 || - this.rewritten && this.rewriteChanged && metrics.length > 0 || Boolean(this.formula) || - sources.length > 0 || - this.outcome !== "explain_from_verified_facts" && guides.length > 0; - if (!trusted && !this.categoryPaths.length) { + sources.length > 0; + if (!trusted) { if (!this.rewritten) { this.stage = "rewrite"; this.observation = { unmatchedQueries: this.queries }; return; } - this.options = (await metricCategories()).slice(0, MAX_CATEGORIES).map((category) => ({ - ref: this.refs.issue("category", category, category.path), - kind: "category", - label: category.label, - detail: `${category.count} series; ${category.examples.join(", ")}`, - })); - this.stage = "navigate"; - this.observation = { options: this.options }; - return; + return { + done: true, + output: "I couldn't find a matching series. What metric should I use instead?", + }; } if ( @@ -656,7 +1042,6 @@ export class AskToolSession { } if (this.directMatch && this.outcome === "build_requested_chart") { const refs = directOptions.map(({ ref }) => ref); - this.rememberMetrics(refs); onStatus("Building chart…"); return this.buildChart({ refs }); } @@ -683,6 +1068,105 @@ export class AskToolSession { await this.prepareMetricOptions(); } + /** @param {(status: string) => void} onStatus */ + async searchApiOperations(onStatus) { + onStatus("Searching API…"); + const values = literalArguments(this.request); + const found = await searchApi( + [this.request, ...this.queries], + MAX_OPTIONS, + () => onStatus("Indexing API…"), + ); + const candidates = [...new Map( + [...this.apiHints, ...found].map((operation) => [operation.key, operation]), + ).values()]; + candidates.sort((left, right) => { + const leftRequired = left.parameters.filter((parameter) => parameter.required).length; + const rightRequired = right.parameters.filter((parameter) => parameter.required).length; + return argumentAffinity(values, right, this.request) - + argumentAffinity(values, left, this.request) || + Number(rightRequired === values.length) - Number(leftRequired === values.length) || + (right.score ?? 0) - (left.score ?? 0); + }); + const operations = this.reuseApiContext && this.previousApi + ? [ + this.previousApi.operation, + ...candidates.filter((operation) => operation.key !== this.previousApi?.operation.key), + ] + : candidates; + this.apiOptions = operations.slice(0, MAX_API_OPTIONS).map((operation) => ({ + ref: this.refs.issue("api", operation, operation.key), + label: `${operation.method} ${operation.path} — ${operation.label}`, + operation, + })); + if (!this.apiOptions.length) { + this.stage = "clarify"; + this.observation = { noApiMatch: true }; + return; + } + this.stage = "resolve"; + this.observation = { + verifiedOperations: this.apiOptions.map(({ ref, operation }) => ({ + ref, + method: operation.method, + path: operation.path, + summary: operation.summary || operation.label, + description: operation.description, + parameters: operation.parameters, + response: { + type: operation.response.type, + description: operation.response.description, + fields: operation.response.fields + .slice(0, 12) + .map(({ name, type, description }) => ({ name, type, description })), + }, + })), + }; + } + + /** @param {(status: string) => void} onStatus @param {AbortSignal} signal */ + async tryDirectApi(onStatus, signal) { + const operation = this.apiOptions[0]?.operation; + if (!operation) return undefined; + const required = operation.parameters.filter((parameter) => parameter.required); + const values = literalArguments(this.request); + if (!values.length) { + const arguments_ = reusableArguments(operation, this.previousApi); + if (arguments_ === undefined && required.length) return undefined; + return await this.callApi( + operation, + arguments_ ?? {}, + onStatus, + signal, + ); + } + if (values.length !== required.length) return undefined; + const arguments_ = Object.fromEntries( + required.map((parameter, index) => [parameter.name, values[index]]), + ); + return await this.callApi(operation, arguments_, onStatus, signal); + } + + /** + * @param {import("./api/index.js").ApiOperation} operation + * @param {Record} arguments_ + * @param {(status: string) => void} onStatus + * @param {AbortSignal} signal + */ + async callApi(operation, arguments_, onStatus, signal) { + onStatus("Reading API…"); + const result = await executeApi(operation, arguments_, signal); + this.previousApi = { operation, arguments: result.arguments }; + return { + done: true, + apiGrounding: { + question: this.request, + queries: this.queries, + ...result, + }, + }; + } + /** @param {string[]} queries @param {(status: string) => void} onStatus */ async rewrite(queries, onStatus) { this.rewriteChanged = queries.length !== this.queries.length || @@ -693,16 +1177,6 @@ export class AskToolSession { return await this.search(onStatus) ?? { done: false }; } - /** @param {string[]} selected @param {(status: string) => void} onStatus */ - async navigate(selected, onStatus) { - const categories = selected.map((ref) => this.refs.get(ref, "category")); - this.categoryPaths = categories.map((category) => category.path); - const prefix = categories.map((category) => category.label).join(" "); - this.queries = this.queries.map((query) => `${prefix} ${query}`); - this.query = this.queries.join(" / "); - return await this.search(onStatus) ?? { done: false }; - } - async prepareMetricOptions() { /** @type {MetricOption[]} */ const metrics = []; @@ -744,8 +1218,8 @@ export class AskToolSession { async inspect(selected) { const evidence = { facts: /** @type {string[]} */ ([]), - sources: /** @type {string[]} */ ([]), - excerpts: /** @type {any[]} */ ([]), + sources: /** @type {{ revision: string, path: string, startLine: number, endLine?: number }[]} */ ([]), + excerpts: /** @type {{ revision: string, path: string, startLine: number, endLine?: number, content: string }[]} */ ([]), }; /** @type {string[]} */ const topics = []; @@ -760,12 +1234,11 @@ export class AskToolSession { const metric = await metricByName(fact.fact.metric); if (metric) rememberedMetrics.push(metric); evidence.facts.push(fact.answer); - evidence.sources.push(`${fact.fact.path}:${fact.fact.line}`); + evidence.sources.push(formulaCitation(fact)); } else if (kind === "source") { const match = this.refs.get(ref, "source"); const excerpt = await this.source.read(match.path, match.startLine, match.endLine); evidence.excerpts.push(excerpt); - evidence.sources.push(`${excerpt.path}:${excerpt.startLine}-${excerpt.endLine}`); } else if (kind === "guide") { const guide = this.refs.get(ref, "guide"); if (guide.description) evidence.facts.push(guide.description); @@ -794,7 +1267,7 @@ export class AskToolSession { if (this.formula && selected.some((ref) => this.refs.kind(ref) === "metric")) { evidence.facts.unshift(this.formula.answer); - evidence.sources.push(`${this.formula.fact.path}:${this.formula.fact.line}`); + evidence.sources.push(formulaCitation(this.formula)); } if (rememberedMetrics.length) { @@ -803,7 +1276,18 @@ export class AskToolSession { this.previousMetrics = []; this.previousTopics = [...new Set(topics.length ? topics : this.queries)].slice(0, 4); } - return { done: true, output: renderEvidence(evidence) }; + return { + done: true, + output: renderEvidence(evidence), + ...(evidence.excerpts.length + ? { + grounding: { + question: this.request, + excerpts: evidence.excerpts, + }, + } + : {}), + }; } /** @param {Record} action */ @@ -844,14 +1328,23 @@ export class AskToolSession { : [...prior, ...added.filter((item) => !prior.some((old) => old.path === item.path))]; if (!series.length) throw new Error("A chart needs at least one series"); - const inferredUnit = chosen.map((metric) => metric.suggestedUnit).find(Boolean); + const { unit, conflicts } = resolveChartUnit( + chosen, + existingChart?.chart.unit, + operation, + ); + if (conflicts.length) { + return { + done: true, + output: `Those metrics use different units (${conflicts.map((value) => `**${value.toUpperCase()}**`).join(" and ")}), so they need separate charts. Which one should I chart?`, + artifacts: [], + }; + } const artifact = createChartArtifact({ title: typeof action.title === "string" && action.title.trim() ? action.title.trim() - : existingChart - ? existingChart.chart.title - : chosen.map((metric) => metric.label ?? label(metric.name)).join(" and "), - unit: existingChart ? existingChart.chart.unit : inferredUnit, + : series.map((item) => item.label).join(" and "), + unit, series, }); this.activeChart = artifact; @@ -869,49 +1362,81 @@ export class AskToolSession { * @param {Record} action * @param {(status: string) => void} onStatus */ - async execute(action, onStatus) { + /** @param {Record} action @param {(status: string) => void} onStatus @param {AbortSignal} signal */ + async execute(action, onStatus, signal) { const name = requiredString(action.action, "action"); + if (name === "clarify") { + const text = typeof action.text === "string" ? action.text.trim() : ""; + return { + done: true, + output: text || "I couldn't find a matching series. Which metric should I use instead?", + }; + } if (this.stage === "search") { if (name !== "search") throw new Error("The AI chose an invalid search action"); - const context = requiredString(action.context, "context"); - const proposed = requiredStrings(action.queries, "queries"); - const cardinality = requiredString(action.cardinality, "cardinality"); + this.outcome = requiredString(action.outcome, "outcome"); + if (this.outcome === "clarify_request") { + return { + done: true, + output: requiredString(action.clarification, "clarification"), + }; + } + if (this.outcome === "answer_general") { + return { done: true, general: true }; + } + const context = typeof action.context === "string" && action.context.trim() + ? action.context.trim() + : (this.previousTopics.length || this.previousApi) && referencesPrevious(this.request) + ? "reuse_previous" + : "new_topic"; + const proposed = Array.isArray(action.queries) && action.queries.length + ? requiredStrings(action.queries, "queries") + : [this.request]; + const cardinality = typeof action.cardinality === "string" + ? action.cardinality + : "single"; const effectiveContext = context; - if (effectiveContext !== "new_topic" && !this.previousTopics.length) { + if ( + effectiveContext !== "new_topic" && + !this.previousTopics.length && + !this.previousApi + ) { throw new Error("There is no previous verified topic to reuse"); } const previousTopics = [...this.previousTopics]; const previousMetrics = [...this.previousMetrics]; - const routedQueries = effectiveContext === "reuse_previous" - ? previousTopics - : effectiveContext === "extend_previous" - ? [...new Set([...previousTopics, ...proposed])] - : proposed; + const routedQueries = this.outcome === "read_api" + ? proposed + : effectiveContext === "reuse_previous" + ? previousTopics + : effectiveContext === "extend_previous" + ? [...new Set([...previousTopics, ...proposed])] + : proposed; this.contextMetrics = effectiveContext === "new_topic" ? [] : previousMetrics; - if (effectiveContext === "new_topic") this.rememberMetricValues([]); - this.outcome = requiredString(action.outcome, "outcome"); - if (this.outcome === "answer_general") { - return { done: true, general: true }; + this.reuseApiContext = effectiveContext !== "new_topic" && Boolean(this.previousApi); + if (effectiveContext === "new_topic") { + this.previousMetrics = []; + this.previousTopics = []; + this.previousApi = undefined; } this.focus = evidenceFocus(this.request, "definition"); this.comparison = cardinality === "multiple" || isExplicitComparison(this.request); this.queries = this.comparison ? completeComparisonQueries(routedQueries) : routedQueries.slice(0, 1); - this.categoryPaths = []; this.query = this.queries.join(" / "); - return await this.search(onStatus) ?? { done: false }; + const searched = await this.search(onStatus); + if (this.outcome === "read_api" && this.apiOptions.length) { + const direct = await this.tryDirectApi(onStatus, signal); + if (direct) return direct; + } + return searched ?? { done: false }; } if (this.stage === "resolve" && this.outcome === "explain_from_verified_facts") { if (name !== "answer") throw new Error("The AI chose an invalid evidence action"); onStatus("Inspecting results…"); return this.inspect(uniqueRefs(action.refs)); } - if (this.stage === "navigate") { - if (name !== "navigate") throw new Error("The AI chose an invalid navigation action"); - onStatus("Narrowing search…"); - return this.navigate(uniqueRefs(action.refs), onStatus); - } if (this.stage === "rewrite") { if (name !== "rewrite") throw new Error("The AI chose an invalid rewrite action"); onStatus("Refining search…"); @@ -923,6 +1448,19 @@ export class AskToolSession { onStatus("Reading data…"); return this.read(action); } + if (this.stage === "resolve" && this.outcome === "read_api") { + if (name !== "call_api") throw new Error("The AI chose an invalid API action"); + const ref = requiredString(action.ref, "ref"); + const operation = this.refs.get(ref, "api"); + const supplied = action.arguments && typeof action.arguments === "object" + ? /** @type {Record} */ (action.arguments) + : {}; + const previousApi = this.previousApi; + const arguments_ = previousApi && previousApi.operation.key === operation.key + ? { ...previousApi.arguments, ...supplied } + : supplied; + return await this.callApi(operation, arguments_, onStatus, signal); + } if (this.stage === "resolve") { if (name !== "build_chart" && name !== "edit_chart") { throw new Error("The AI chose an invalid chart action"); @@ -945,9 +1483,22 @@ export class AskToolSession { metrics.map((metric) => [metric.path, metric]), ).values()].slice(0, 6); this.previousTopics = this.previousMetrics.map((metric) => label(metric.name)); + this.recentMetrics = [...new Map( + [...this.previousMetrics, ...this.recentMetrics] + .map((metric) => [metric.path, metric]), + ).values()].slice(0, 6); } metricPaths() { return this.previousMetrics.map((metric) => metric.path); } + + apiContext() { + return this.previousApi + ? { + key: this.previousApi.operation.key, + arguments: this.previousApi.arguments, + } + : undefined; + } } diff --git a/website_next/ask/tools/source/catalog.jsonl.gz b/website_next/ask/tools/source/catalog.jsonl.gz new file mode 100644 index 0000000000000000000000000000000000000000..f26c9ddb7bc40f433a7101032378854e4097c066 GIT binary patch literal 1001814 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 ln_Pnf{>a3fw6E5rNCrueAZl=ZSQ?kvAvdyHd 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 MSsSIETalo)yx7ltdu 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 z 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�`(c~XEHfZsi0*UW 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

    3Ep5C@mgj8XRZd za9{VaX5!hq2n3!g_VAGp9AAV0&%zi&0Q+?xT>vsU?6N__A&V(ktykjYYueU2&iFmY z3Z~}`#cx}i=6?0XN5u)!<#^NGjpO6uKi$jxrj?JA;^PQRdDsR@e)#@Ron)qPT7tH3 zJgWwdRT4ygXF9B;L=S1xZ0J*B9b~-L!lO*N4PpejeC#G8`$JU|@4yCu~^S~+E z)|Biyen)+)`p3NR$bv1<#O|BGEw%buo36gD+PeaLd$ZYbwI=|>Ohcsuv}ncDo0QtR zN#1MdLux7k_ho$sYA@fl`j8LteqGsS;^hRl)NNt(_JUE10yIvA3BRm%bKlYfd&i@1 zwi05U*T4@_1xoNch1Z({11=)N7UxaHi&@%1lB1kjU4 zj8U+xkUJvcgIA-qDSTf3YSfJTRB#Vgcj~x-V>ssm9WujR*KUFunRbPTkW~J&@1)7M-R+`|G zO~DGuU&3q#+PjEf$IRSnD(MN_<)~l4s^o0ckJW9xfB069I=je{Y&@9WPT-LQdr8U^ zBK0V7d3KSP$?3GXE)@$k!DFDH*qMYsL&M-+~twe4%iG)MN$wgi%!iuF~*Q z4_AO>)8G;&NCp*MFGkxqyYAL?hOAWe1iVw0qQ(dw!tp$0Bkju(4l_q~{s`0TzvuZB zAH(bbn%3M@^>1oPg|wJ#(6>YxY&FdC!!9r_%*Y+;sqMcxpq6ZJe3g#!p;MMIfZcqOH5LZg#vBG!W(GLvn3aJnuto;HVBHw6_tH4)>xSEKqUhXG7Q%xoP@>)HTCYn^88nSOt7xC@ix|cOV zZeP*Jm+nRKV;u3S-bZ?J!Vu?3ZowwtY*m&!H{gm;#j47br`ji#ci z)IZ@p+)L1vTF+>wYj_ zf`@6eS?z2t73sN^XE<;=KYMK=RiD%d{sw%r3qF3p#vSTAyfYIBHf4suzvkI>k|xjd z*`UbB#u$8}6G)D3J9v5&^BHED14Ef4RehCZ&j3P*lxjz@3*J9`ql%K7$^5j$$MI_m zEc0{49y`(IE|7OR%@Xb4KU6Fxxh>{X_4_IxWYw+r=cl85kZ522GMSg4y)4GJV7UX_ zuV!FO^Qr1g!K_HfLrrwhLj^j_1mHoF(8?|j(<`oMbv9j74M}1jY7=waG<_LcYa}0u zUnPfO<6rk*qba{)57RUmXEVjaKkC&R-1h8^zJB+0OrLMYUCgj%5(iHn6U*@{Prg{#Q^DCvc~$vQMIN6wvvoA&LATO;HUJ5N%+v>D!%hQUQ;FF0!G1qL^Y< z4bUiG3QonA1281ZSvCVn82^-IG1b5B_fIo*IAxO5i9^5@l3fOk39zJCwO#EF@(NDX zWd+RZHYPVoS-^`+m6fEf*`21t9G>tWTTL+IJhLLSOkUJb*ab7)3z^$@g1NCNOq?yW zfqy+hejASh0<1R!j>3pSWqiw4(}pxIt|5)`vN2(}stnFyesvcPEV`eb z&3qf!FE(%h!Nns!awrNkGORyKFZ0o@!2e}2E*h>9-$VB{z^~hPV&aoZ(PISylc3)X z5H#wEZ8YIDVzy3rSa>Xevh{f$2IzaSq5jwNyW@&W!F< zFAW_n(Q4XNrKYCX6`}Wt7!Uj$8x2=kak0crBNQk#61)1|n}dOz=5?Med<6M5sM16N zyM0=W=xbpA-E2mI(RmDqjaRL9*yT_!>Y0u`ru3B*l%wE2VN?KcDUEp$g|FCmv2y1o z;SsH-G+IFAVePY{ZwITJ2u-8YZTzbl6s{K3K-<ahDM7-sr)%>Jjd53h8P(wZLv204z!ZJdI{(wEK9MMh*$ug11UyH( zX|i0cvw}j$s63d4rE8QAhLQb1`U!0f?u&4ErffJ7(9>TyBN8d)!6ImlO6*=1+yorI zuz-=4Ca$Al7fqqrkxq$P4syQ{iD4%uTOs6JvdbVLWV}0!*T!lUtj$E=w$C`_h1_;LH@=^kJl-KqptJU z-M^na-#gMp-`mfJ+b@q!p8x$w=X`YE_kML>d3GTMU!kp9Ar%0mHr>@<@J-e{l=yXC zWUfw~W6-YAdLL$rxdt(mHWq+V(0KbL?;mO$bPs>oR?~wg*^k4ssxYVu_tP}$0`UIf z_U>W#FFUWGhe1BM(0R9Gv69MkR2{MEs;Wfy$({j2L#(&?c=qG=RBeGpa(X+<$}r0< zmOh`Kohh7R6)&z46cGA@sy+DcONL|0E z>pHa0WtvIZ`e;-{f4>9oWO$}jovV|mQyXVCHoxcwWK2q~p=5y}ZY(U^Eg&7~xIENS ztnbI{)*8fDAy%%S#H<@osMHy$e>7a_k{^h5L=e~ldS|MQT~&ncPOz6jWtq)p$ws zE1z)kt9B)gcpF~hP6im2E(s*Q^dl0T>3n$RsNIS)ROraIAL7MW6QG0*6zSXH++HBDTl)wduU z*fD=$8CAav&FXxiT_|g^iN-b}T~2!X-Y^Wn%SBtHRdLb0csTjJp}Udj5^EW*#E@T^ zOW`OJp2VU}W^7J{K{zI4`Y1~U|)25D4F8eq3=(5)_YEUqoL9S^SA|~2+HNn|{->_= zvwh*4ROeCT>Uv&8Vhtm;m#rtSeCKt&?<}orOk|qw)QL=ZRHVb`d?VYh;#B%<*a*^3 zR!4AWpp=|%b)-0E3Pi478Sgj5ye|*tBnDQXJ~h=_SW$$xwo?!CW!jTUtOoacrS6zD z0uvv4y`HtW*MA%bxpDSHgnDPx7IzlB4?YtY99P%{*bD^h&L!sSaA#+Ovu5{VJAX#T z(4m=sOpf9e+|;8J7t{9I`I8sL0tI(D90T0|M0^q0U0z8@!}1VMm9X&xcKcCsov|_{Q9{fbMUZNxs(?VpxZJ@LWTC{sEO;?zmbk!bAF0xp5&((V~39zbCe^xw; zzf__`Ma;SoQjsl<1+QzG4NYc2TWgkCvpP-H_&~nkS zKKpX0WgTjrJT`qI(znY~kq!~N`ZcE>OfGhIIdB)2>88U~SfEpfaux`=HBn>T!9Vpb z7fcX72TES1i)I>LVK5|uI>Hu*;Srh8}Y7p^=%WKu-AXP7rfg< zjCR)kh@@{(qa2}B#JHn9wP7!9sou7xT>p|aET8Ek7)Ho8%!Pej zEVu9xN~*}yccmJRLitQ{GsCj=?zofqDye%8AF8<|15ktyxxtoEQ-w{3ZvQOCZT`pM zo7X)|rcPTm_NIUmmorJQ`P7d^`q%LNnw@%4(*j?s7qYtmNcYkl<9h6N>Wr{8sQ71xD#={S+M(XEf?NH`+0~nZt2T=`Hi} zb^4lqv}_OUws1tnUTmysTZu&vlp1==F*I4$Oy??{%7BImHL4lSgGbkIS4NK@VldUQ zt*H%&s9vn3%ho68=>5aQg$ZATnh~nLOf*czrtp(T=xAVu(5Y@Mt$TaJG_j17wm8N? zr#dF{ih-q*(3WDs-)ZiCtVMOCR&UAP0II!qNml%fC`(Y}F_CF;9mf*Yc%BZ=vzDqQ z9VXywt-Glg%?<*4gYa2g_fFLfad7bxzC7#AikHQ8Hr+{;5Zcy8RhEI!v~Vm#AJ|bR z`H=kESD!eS1_*n|E8B|?zBdMRurfO0Op+?@WTVlJ_Ja&?Q_CkYGZABx-9a|;;_^XE zvcqh)LV!JLVQ};TekbTp8bQ)Uj&aGJ&j%l~*Vj1U%XMRr{bh(TN?y$uDUm>puC zZ8U^2n^!@ujZgaf1Wc2tuaBFi!S&U=MZCQ0l_GbJxuc9$+O5 z6SOQZ;G-X_@&bB+g#6s2E=E*Pv@|85jxM5e5;9=gpC|m-Mi_p_3l4O*7(hJA%o3kn zS9MYCx@#F(NMejiFdD`66bKFeD+o_v{#za{hy}LzZe5b348m3y>ji&yRs8{m`l3Ny zNC(v@5>jR9Vn1H5T5N-K6I@I&q|u$?K1d#r)yezMXM^p_Vm=PU{S?1SS^ST_D^wjN zqPc&k`C_+*mAi^PUavJcTWf_fs&!CYM+Gu?R%;Mw*k%aKFlYL*@EI7oKvj($d6t6g z{lJQHz0-6A>Fk~FWb*(1KZ*04lbo;kf;LXaT^pwmAc#b^)V1;NnaIeQr6AV|~ZH z5~Rg;@4t$Cta$zV_r&L$Ku>B2!wEeh{xY2?frczjeW`k2ODZI5I}OoN;7b@I{jvw| zg?~TUdGmVb?ZLtB>m4vk`p(7-dbRzxlf&JYyE{j_FHW{!yg1lBJUlu28^#}EQH*xB zcYeVqM^$-$`(Ru3seNJ8NbkpDM5Bbcb)at6xLX>NLjG-gk{`hi)0)S3$6H%l`YFab zUAF(o3&YyX0b@LD1%wL^;$~J%Fy=2BSvzstQ6eCh_n1rxpY?$r(!oWh{xbQC7b53b zfWifs+|j5>)^t9j$sU&}TGr9%rn2W=(mzTw0wx6YU@!R$*|r@F&TT=&DH z@7?-w0JT(nM;i4M;kE?H83b4oz%GvUsTnyl>MYMz9%)rNW5R{rv6DUw4l@;rr3QyzJVvrvN<$s?}s+R{LK_ z5N@X7&&#)EXgnd#Vqdb@LRCfd7+n2y^D3&UK7?qYVwsrX9W{sI@gX7rYs^r|J zO5^Yt3&f64OnDNseT4 zHZE-?<6})5$~}+!^3K+7Gq3N^yU;vxSo*ac>}B)YN; zYLcIRK8uP~&7!}!jl^e@(5g?VSQCJ%DJ$5-jSQUHjA(}+rES4 zMAKLFIeSGHX0k`{mfg}@Z02v*CqZ=#wq092wBz9QD9d`(UZdLHgZH4x9Q1!>ey+~! zK0X$MI}q>mEX!8yST(6+=}a&buv7?%tK{RB8M&9)laP`C?F z!7@1$2JSwpYp?ix^tn7f1Y>3QS92?mF(XhRKrIM|8>q=@2o@Le=+}4B;DOhD0y^|e@lM|eUTM@})m3vvEH;5JGp2}+$UsiCi zt+{i}LJ5Q2yZnx7E@8S=BRem$z5YxKrtM{nzR>zVRIV3%yMnCc4UE31>OF0~EQK_p zt+??Q&ChgfAQLuPTrteMG;bbo`CIp>C%c@?ZX4PxCc3r*>UH6;d7I6g3ylvRwljrQ z{wJo9jsNGuye)$L@s5$>v2&7g;TAmzs(5FMleM7hCSW!;baNY_>KUa{UZWPq5UxXQ z?rjhUEVYq6+=U@M-x}^0uVASyoE|b_3TI&vmT+-9!}ky2p$5X?T*y6vmO+J*JcEd0-5caqJ z1dYMeE!7D?-#^^3AE?>FGoJCCX>anOfBb2)?;};xVmb$tI1u%S=EZyC`{Y^j;j2&h zwH)Px42=GMY%hAfp7`2T-##RLY<}kxz0nob1r9(q9neAaJZEZFaVf(rju;tHU|NxY z@A@b%Yzg8dcF!Ty88?0Q{7-i-kXSyj2hI4gRRbtc$#VGKKb#eb+RNE=oQ@1I{XByCVtnp-Y-%>W8Lm5N259v|wFD^@DEEk`S?KtRZH=83v@^}sKPZd9+%2J5 zzWdJKF~`m*Bb*Do+&S3~KiLekvtq2XyG{yqDk>K3@+VYw_q0KGNfB)@#3LtH=s^LW?FsD$aV6y|Rrb+t*2DzE48viQiV%Wy;D+!Tay2j4B#1Y z^^^}9lGfMfr2H5LUffADY_crMZMlE{0vK^{d0S>_E^xni=yU_LEj15JvYoXz|i zU-$b8^pDxJ6Dd)<k@9ex@I^{Hqj^;_Hn7tqwm+C6p*Ur{o27q^bQZN8!@DM zE_jgO5O#N@o{9Hi0Y{&(?rAo=&a!c&ftTk!te~$VvH8?9X8u1*xS1Xz)^rhr$PYtt z7l`V^Q^=i&ryyJdHu;_6I1WI-{1w{cAS{}U=Pn)1#+zot%F&j7iqi8WHm*lCOHknZ zL9Xl#xq?q*447e7ODy^LBAe#3YRWxJFZ0oDUBwtGmoZ=eY+Zr*Zpf2%*-VS8YT;=v@gp?>T%}2G2F*@VgQ>{u;sFfHRpF`m)Mt|JLzt#xm@^)Ag zD_=+a;BoWy--mb~46nB?jQ$t4bU(-jO0=@?;1qv+D`wSR8|0nU6$AMhKP*t!Ay8pl z`>9daSCp3#V|P;298m1#ik+mXFmGIG<<+I)?Bz1$XD;G6($l6x*Afqjp8^OI& z+iw^|z0&Uo>;YvT3a*Wl_4V~OMyv&QASfp)dH*mQci$d@j@qeDl_Y)v+KCZ97g}Y= z5Tt2!dz@b?*?hnXZnJb6D_O*B{N6u&l_~iUlX*9l`YJwhmQOD;oirRC zH1%|zY3W9nsm-Hx(CXvmvI#}xL0Mqlu)@3!V(PCMHmrc`e8N;MYCNoGZ(CaatHYxaQ8d1 zV2}H|=@cqkR>5U5TKXM|7#epzZ|^jDMKZhLy2{hFV*Z~^l9A2;o0Wp7@cK0AZQ`QL zveVoAY~5k;pV8PWo#DR6b=4wPyD?tNEQre7zBQpN71iTVdEqM17G|0BTG^8zOD{h$RqwbEjT%T6 zc7nyG7()njJHak5Tu|tIn`tEyB*=43w;d^VmHhs@{f_h9A~n{6uMNYkvt;u&d-b?R zjP}PDTggNEXBei`PB`HZ(bKJpJqD&uoe1&si102Sj=pt>MSBvYPFo_PMvbUJX7AVE z158$7CEN95G9`>|DzWToTI%U9m#0iqC3y5#6Gl4R1PXE>8A?_Xe}Bm>LdG1n9<u0$#O!JnDfP69V$=$k#k^AK$OTVZD4^y_(IvBmMqec639Tv*b^@Qu=Aj8~^~gLy zB$>y%^95E6WfV%?uZ!8wYP%0jsH8|lHY`bUMduKZyf{mC@q-Dz#;E)gA^ch2JOCsM zP0hM@y1JpD{@wa_waM(+ZV;A{ z@ELdXc*g=CdxD?|8@ZfjY?EW@wi9H<(=49meb=o}9Uv*TBN*JP1Xu~L+a^N+L}(Pk zYE=|Q>5=FQ-^j-Lipr(*Toq=oX?!AZp1`glpSpKSM`P?^B@3l#x{Q*;(J2I-z2io6 zy$2A*LeW*EeD~Zsg05^RB|W1Mou_U(cFSSisANm)!x|y_{D6Pj`B>)66yZgnpU)m! z#0ZN23dvgj3E@a=7Y?~g;|n+y1S}@651stWCxeMw*;~*}Q<$4+>V(jmKm-cD`JPbLiXX{9KRn;ZwF%UiV1wG+y(!`mWIE}< zx*}k(W{W=kfE$iUju&wd60I2_*^b)Lo`jnfmb$l+XWAFlypG_*h<)jac@G&F0;e7B z6x69sUWnt%%rmvlN6nH6aq3PhORA#zk(lnn_}OT9TCEJ>@bq6G*wlpR)8+V(-G$cr z(fVG}_|o)85pm7Ud6|%HBpP=1y2daXO2Nl>iy&!T`<*lqam)`Cv1|}%0wd_2dQuvb z`foh9Hob$)UA>T@d4bbi!*(Es=@2Qb#*^iN*K|W3U+t|Cwmw4!tk@0TkAy;!j|ot~ z@wIB!DflX*>|A~=JEO7;)P5hESJhq8P_cpjm6>DD>+Js1`BBn`{XMBce zCe-g23}<5QdG~Q-bjbd{3C)DR-{ih7jNEafaSE&dKV(!Ri2rY9wWgWXVs3QR4s>zX zx#doCE4a(mILgIc(yGJ*2~is2&;fLur9+}FSpKIYGM|-7K>QxE_Q~Bv$zScN#zVYOP@_t*&iB#Nhdpcwy`~gC6=5{R-$$G)uHMO}+m8 zkepVMZdZ;o9D98TGb%??`ebG86NC#w$=mwjkfSZ#El)J{-)H=%2)LGzG2rvLl4wMf zV=~mLZA@2H3TePYB!h-xLpsznL%A1= zTF$=Dv{0763O$txd{$d0Y9=JAD8ieMW_5Ky*ELpBLd2TIV}c0uqE_L+Dz>CT%!Ybf zrVxupd^092H3}~6N%v5iY2xG?3~JD1^-?AhSE-JUnPSkV^BF`eN~d|+MHPl_r+X|D z4`}MHY3pEg$s0|SFK&`(Ed6v#`i0BbPu|(EU{u#s^InKo(mZhzh$vAx^)FFPao(XR zMXRPrF(Ncn5k8|8C_Ohvp_QTEr?bJ^a=1Uu2bo!sfZIhoBDN<|$Qad&UQ=HM<8!l? z$Ua#WT393!s8rL5TKssyYLsuX-83_^&(gyq??0z6lnDQJI`YL}^?(08tzhR6HRna1 zj*9b0t05ND9t3}Zz|b}g%nI-BE7%Eq2GRXMP)4QXE2~*2`0cnSsGb6~`A?9|1o?3e znqQ{pwNC>1rT1n#pXRFmhtqsEDDrXtt533bvuPF|jN}I+^wJRsnIHc1K;IofRbJcD zv@53r%V;efwG<4PSpy#N`pNe$09Qb$zpE~>IBZ+RknVv?<3Ce_Pzu1>@S(yB*BT?; zRvb%hZ_3ou-6tJ?*dl$3sG#-8pwwO@#dxQf|7^U*DiQwz*e&-zKf!q-Gh#R zpHU0V)>_bEC#fMN&E?{9hAuN=26-0pZQ39Okm@NPIK4i+z-TOie}ujju0N5vS*FEE z$51`R!;Ua%N|l(s2ds`71}R&3OA%q*P}%31<}PRr)wm71buiEbD?&S>+&3OZ({gXCyzGuxVcxw^kaJjKp% zxO=7kc&X%wY^-kY?;ooDHTVeh1PGB^C{p`lcB|k=F}Ianp=9NtN8eWX*aIui2N*AV z7c}DUA3`QYzbJt?+TQD%t^?lv>faaHS*nDjmh&5fRpkCtPFQGZLg?UjZQnTtx}*r{ zK^xuYadA{ihBhR6&7Rl$s&3bsoo9$!|EAdF{?4SrVP3)u9{KH+iIr)y7?)W>ynVk3iFOn1gHBdT&FO68o%zJDJm?xS9zJAj)cZvu`GBZ=qHctYn6UDD5mN7Ts)9a)oyWiR)UA6 z|K_*g1NPIinS3o`ksC?W;PD$B4%8*77^xdEx3w^m>iN_et&Sw5M@sM(=u3;ZJ z_>JFD3bpk4?A8l(s*&17Mpg#V$?$1zgzke~1yrI0+CdBd`o`d??N`_H<f{!7>}2MP6lTU&5Z`FS+F;8_d*3RA`p7I8~GZ`Gz1rNX26yUOc**`QwA{B)@^Z z$xmz#;EwwxUjEoxM;18Vo#-GIO|N0lVpCDSvFEc?@p%!bw?T|zS3UlM7d+mvw`Xrj z4Ci93L&n~Xg%OSKYCm|RDh>k~Qd9T*ZlBymcgYWr|J32{uk9yaKFpw2zIl2U#aFeP z$Dt50?+3-t+71Uu8$4~+yx;el%5QMe~STJ(;n z;jnAcGWybL$lEK9A5pG4Bu*si1fW!8K{9m%m?K)@4_|#U)q8sFG2zFek2+3xw=-t# z^dx9&Q~3^Bg)YqAGH^%rZA)%ws8KBmGE2?jVc%KREnB)3)_^OJ^e?4RU6 zLVYgxB#pVZ<6>|8TY;s^qS|MCb{oBuM&;f{6 zQv}vL2SzL#Vj(`4EoI%yj9F0oJi>TE)!G`w)r2dV7T0(IHNi>1vBlENy8rqXe`{$% za!s$AhDqGVw$(oVg{G~{YRx`yE|OV#8b4%JDQPBEl|MiWX&(;& zB2j`?YajHobyaEit552`>NC9sQni@j18_9eF*tnK9uRk|k9I`M31zqn-tnnxElHAC zfmQ|Ie4+}q{eeR&jHRFZ#YBBDpUAo#U78vmdNnEyK}Ol|^p;~p;Q+c*%dBN^7$KvL)2lifRK>DBVx>M|WbQT5%MEQ{cnpE(Z4N^pYP4pS zH^z0#P6k@?#RUHaT1ySFp~+saXQ9yKPt%QR(^X9}m$CXA zO&>`#s_ID167Fk?z3Mt^;;BtnXo-6EKu1qGKviy^3+d0NdL6VMp!xXCX0j1Dj+&lT zYwBflQ-a0Lahmr#ta%(=N7EFRl8k4~C#Kl(I$|%L7M^G7#Oia)bC{87pf~PCJ{)Gi zUmuuOz6^tH#B7dx#x@YCoTKFd$@Q9ippfxwSg>(Tn7@4M^j|9*f<@5k>_bxoa> z$M46(e5!C#ppmMQFQIr`%udc=mM0f#bw)a4raBCBfB@;bt5~wycog(m!n@YHRtJ0+ zeGAsoygM1q)wM;*tHoHsjR;VE4KA|F^h8lgiCw_!+0_Q=6W-(O6bRFki}__r#m}`t zS8|Y*SvnnDB!A6kVS~$J2&Y|NV+IC6>sbbp}#oM#FfX1HS99b7=X zk#wAnZfE&G-4kaQ#k^Fg!T1E1nPSER&<{Xx^+ZV^iip6~#>6nt5`N{#4C3lBlkNSz zUUH}>P9r8)>dw2CPVzPSu%_p^_UXT228)i4Bn8nwQ@`%oC;jhY?Gu8x=q0ZU*jg8g z5B~RD(ZtX}44(nOPaqyZ;uZuJUJBnoB(GXkX_8|dqabn>;YA%wt@3C-r3qimW|OkN zwnjwU!(0CvH9(TlA=S+wqvE_cS<+fl_S#u`m8*kzO;IIKYga9AewLN9?&FO|H|qa; z6C1}KqnOXq!R$oQWNtcFL|ps_(U2h_MM1q{>e`L6^K^8QkIy1do#(TQ`DssW$hEMS zwbSXxHAOI|Yj9ww3!PfMmwP+AuMc;7ml#Lh;{t2jf7yL~bf^l|Ci=GoqN|p$k&lW* zZ6!r_fbTMy&f(?t{rJO&59Nj0$&;I;t9I<*BUn*l6{NjnRt{9bxY)hSXHY{Oe(L_F z0|)-D4xen2bgv+aeKDMmvT_X|Qhh?#|Ca1P92)i4_RHV4|9%L6byZWaKIu@DH%W>*AYv3f3z62ShuW=^qM`vuv6`Dr^X>nkiV--7-1L zM;R-=R67j6m1>I&)wwnrDo&#IWvVVn`MEBF`fy<=)wTa)mMAGh3APs&sw^#UlUae5 zGgF8+ISh(mZ2(ShDfEWEm?0y6`amrnUMu0l*8A~O_*Y$^$LE`nNa6j%EufXB;AXm| zH^5W1_foZN>9j-{U_LwR{;0OnnkmQN6I(>qPuKKM-WJ&1reGziIqA+e9UpOywF6LP zUMik_h6W05DBd07c8X?DuCH;?W#2_R8<$!)2Vmj$WwIb7tQS1$HiwzolbJsEAXiI1 z%Tsl9gO%*&MsK|XPptXn{E~l~m)R75gMrZIxG=q2NYwfC5e!V!C}xidTt> zqzs@O(!5(rdN#lm8%T zYmni0kP#JEQr}7t71gHW6L9e&VIGRgAsT~2WLm1P(AIqdlB17n*Tvb{BUfbRZa5)~ zx%N^`?dIL}`NizGd-dq#`$y|NubC30%CeZ|=lR&7m`!u<)&84l1a+m~H!!Gf0obsHR}(~oVILWtYLpx#PdQ?lU^RCc-xnN^xqQBYtMwL|p@JT=a< z+1@O>Y$?$cig~mc8zcEdU6vPes(JZBfd%>#*R>n(nH&-Ag<%?wt3o!QdURdA8g*oC45ng0y_rCm*IvnmyDK813GC z0$1N7+ffT?%QM?F_|W+mAlTkqNuh^;WD(HBpN+RH%$BhYGu@}>5dG{vG^;}z1zI3d z9mtqP48hJlVkYRFJ(2};)TH1#TtarCHjQmj#i_^V8QY9W(t<YF*Xlae%vRwypLOAG(46BQLK~geA~KZr%D}rSI&1_e=cmrY7Spu- z@coaIn>JVuHDvy(n6a@tvc`w6KDp5slba8sJgx$bEb`MeAy7Ou`UriS z(dq_;Q6=@D@T0|)HHccT^Q35<)?}Kii^}X4LaeEiPTjFtzoB3SiXhdL20wesrx zo14oKle9d=5&hd!6@7V4-qv*Q-n~o@f;uLv{?7lA!9DJ$?{9wkzWTN%hwozT9_uJ7 zIbNuH_dwAn&2-6>)PL%y1nS+aJ1gdci>{oWnZ(AA>o@BEmrld)DLNB=3D*t0t2k;v z#6_HxBUM-VXfO2_dZ10KqPTc;d|y2s=2u&CBR;+O*0%@8-Mz_W&gFs3+_OqoKLMa2zm826 zskqz;!?6<2hTX656cg_zXybN)nmYx$R&DosJvdSwp1N3 zPv;}iw+%p{R%||Ut4cRLv;25rHb3AI2m4Ts!M;c_Ol1&6`!slB<9yyQOp=-o}T5|XjsB4E%bB-pF z7T0Cgd?K`AD(2#qvgsTWvy03~Zf7|?StjQy%VN;^bqpd5=jEjmEd*{oTIg+BkF55l z;sIn!=B5pw)vWQ~r)#==tD+BmgAV%G8(%3oEg@aS7GA8Db)|(=+t*f5|LL09>XtDG zUf|e?o*9}W`6rcMi4Id;nS%!2Zmb?g>LAI^qsXTzuL!OiNJd7cz^SBc7M!!0ztv>* znXNd#eu)u}Hvd&(@U(O9AsQ69N=BHznUF~od&0zrwf}+Nz+AvSUxJb3U>1CyrPK3l zrXK-!4`1Vhye%}6ZM3lbm``5jr#mp7>6SlxW;cV;e2A^z0cR@FpajE4k$_C^bnhP? zhcAbw&I!K%X;V{cSZ8fc_jcf%*`DN`WbZJ898v1;BrTH@_p_7eKVN{Wd9L%G9->tM z>N+6$3AXUQb&?&hBgo2GKKN)WdEYw8bBdd4Yw!=91Y-)FD<)ve#TNq`yo^HW%N_Sy zO$p4>a0V|`hq?r8{PJ`}D~~-^6|&JQ+t$`_v#V@hS3zK~vWF#gI>~RKa>7?~jjhN@07Hb+^hTzlMm)LU1Kp`5KLnui!uit7K}g{LE;|1-ey zeEQMF;WK@nPCs^aFe>J6^yo@ld9q0^A_w)Gvuvn};pob6M5s7cG`=-{dd{_haXx$iaJuK2Zn}SLZL& zd?y^0sB2~6VKJYwArSnZ$M*M8QH*B!&vw#D zSfnJ=u#^f8C_acm9Kxvo)FA4=C4}yq08oD>_}C8*Jg-DT=emvor`F#5{jwOJA7#@^ zTXvq&PL#j(;IsME0glAMXNMnRQ?vz)9ojsM#szCFp}yun&;Rj{ zTl5r0ThA7kP)1o+jPu*HJ3oV3Ya6}w-o{T_n$it>!=4M<8oHmo8&jV329vxV!gA+~Y<%v!e=XL}XHfssnWx+O0^Oi8$iDId$ z^=Je?h>%xkeK@;N$i-n5pIN>AOK5M{)auO@+$V3x>ees<3sRhi;WzQlK4!PY87yD# z`E0NQb_a*)tOP%4U442d`KfH2FGgY?=aljmdG-83N{N*ihpP6e2p+7y7cFS?nw2MUq- z?3O?~AY#z#;fTXdL7`k7fi(-YVt?j5{aigh(riEnc39piAhj{5s&3PMoA!xV2gB*F){hh3r!&mFCHePM0e;>Vir2hM@+Su#+8~f_Z{-b^MWnXb_qTqft677YY3lV<@n#_r_-h?Qr-rQtcN!1Q&_^x2m6C z((;1(fj{ep`*nj2`0GZb>JdEa>4+ifEOb9&RUw~ja%A(Xc!emEK)G?d4AxXpCIrGM zHId?<6+P*0qJ@egp!ChW53C_W<9 z5XJNploBkHLj&;%)Jj^a4+uaqjPbnZlQQUQQ8fs*XJ6fA!9t;j6i{fuz5y=_Q$1;o zi{$XtHh4A;Uu0Jmkm2#jM!`}2EUe1!S$fQ{@{+r<^Mi;dVP}&?D?*Kl=DmV-&7y}2{QbcG&Yk(a40rSqi8Lh$5Y20>Vfq z!6+(Y{Q1LU{O2d_lhFZp#Wp(Pzzrp~iP2i_q8(yMP6sK*XlmCKP}GknLM)V88vYV5zjy#`($LH!VPd!N+W7w{)w-V;o{3(Y#O8T-DFHMa0Qu46%~NYW&z%0l1cm7_x#7;em(p zqy@~UpJ+(V@sjrq{4)4azef7w<<;~GfKyWf-kAbB(A*XNg^2@80LM4=PcfOc*6Nx_%9T;L?wpVhQ=9(V^-nn3_K+Jix(8?h0&q9Jg;pxmG^b-LK{2mwINv$B1h+ z=TLiNeuFU}{E84%V_lDo7_Enr!PH4=8E7TvWC+7yVYWVGK+Q=?Vy6QMeCdYiEk;_; z$G2Gu&s9T+oQ8gNGl}r%N>dLzru_?QZ7^kl1Q3ki>w%~5Q2U4Ou!h~k56TJ&LRaSJ zn%cRMuWsl1-K)vb=^+-Tb(v46#k5Rz*j)ph_c87R0U5)`$;Rcz^~UX^?=Ir-N$}iq z`haR|NMWG`W50g8|5A$w`DG5_r{buQVpgo3oeAOp}fsFy?AMkOoUKLj$^%;RwkL+!g(+M7Mz)rg`}>xJ^}`cfp81 zF0ivh)z^XQs$w|24o%GcPTh9Qy~kXM-0ksm+xFEPtOKK!`VgV{4|F}R*wH20vBgVpjdcwna`en4w~&G|BmDT`_>|c2%mt*w{io5 z(j(A@`ny2i{HwRcivXQbJ_GYud-QnihsSF_t$Ra$f(HFS34&cjKVzq{5*((Y;L+oX zf*-01eu{LJEEZzQR@2K+q7Q&9M!x+dO9xs_mDup2xuPgvn>Eb_#dNr2Uw*QvIKb*p zb(qsmaAD}B?1zQ6R zZ}`0b{^7|6cn3Rc5qYX8H_Y$qX1P{sF#3a60!5cBREr~Y?x&&DKHj5g>jujKZg#OaQT z$3cMxqa{7sTC(+bQXWj>6B<%MEL<&7qFbT+Ns(^RC!m9R?S3Wkf+*??qU-4TeuHw- zmt)p!iu(--8$b>f*%J2~!jhaEr)rzrZ!oh*F4ry+moEEAX@^WkoHCSt(nX|rr_j>ZzzM3&CK^Fwg?ghl3bhKtPMQ>=jm+qhTp0)9ohVnrevb) z1OZ=HZ)5=bJWuvboQ~jvz4mDB@!C)7|9)Ki>8ExD!v|ImOdeRdX4C3FKf-^0a-yvp ztHPYAiTzfzmt6>PV<+_&Ff3P`9*xh(#ZX(I!3%lJWvx9LCwG177VJ{dx4all|?#?4BI%{m)(Q zOQG9|R68bfALPP$kzd(#IDcNlxLKIo!mCDgAX5p|!iWUBqw-0UE@wA~Iy#H2Z8G&x zt-*Y%phe##3}!|U>!?!)Z+<&@x&3_i<)JEjr+vyznmiNAdI!AYr;|^S&No$}`HSJ#?RMv=ZEXzIRG+_+*wF7EiWV2L}SxfiZ;q55&RyJyw$i<}9(V1nt zL)|mQnB&Pd!0n&1u1s0p6P*GGtJWpJ;1E(6GKz5s2UQ)c7aImttlEQEKRY)5AR`qE z2Bj#1+GZ?6)2f9dH=QX)r!iu&?lfGVAPru}G*tU;({10DO??FQ-H?z-?}^ANL(QMq zEbKTBvu7GEk*(ju7&Cxgz%|4Qb>`4s@*fB3%GARk>Lv@~Ts(=um za_+pA%MzmsHlC<|p4yf!Jt9)xp?w*B9y(PFjo< zDE}fskZeI>8dt2kn_;}tXT525SzKi;OMNc#A4UDc*CaLP>olLiAqdg_XjeIuej=p0 zu#6b;55M(NSTDtLfB#)z8)6|+2W{FBHUyy_TPKp()G+k$7ph~Q@JcR)C06L2K~VhR z(M@qUzf8LHQ5zuOH_`Y~+sxZB=yx~@IUK2qrpYt&mp`KU%*ISyrWDZ~-2O|~rwI}h z=~}=0hMn(FraFq&D@Pfa)6R_JVaRkUafDwbv?#}Ha;c`(7B$W;F}?0)(qhNF$!DdG z`4Zp8H@94PSA7Gwp@=^uUw!qdg_h=!#Wnj8vbSQbc5ha^glLl)WsU;q&maKypiU$6>?5mf>v58+t|jIb zZYT{78ysuQZjffGd)1o@a0sH3NfO&y`(Ib@-w(ezS?l2ZVWr0!U#TM061&-sqbiF8$cpTjaW`6vmo7tb`h3ToJU>o9@rCn9s zy;9f0mdM0L34x`Y;i}3hEI;(zP z={My&S5X~{8)_Hcu*AlgAdV;&qHilm$B>3kCR)?*gM@{Ba*>OqYm~f18-Niiv|a!7 zhyGj}p;$%_hprw-!K;lh73y}BfysNzMexM6fQk3v7M4YkX~hQGBYu|Qq=KVZrlU#6 z+eZ=TSBIQKy`YPPe<=p732aEGKEX>V)c31`Rt2kC^@^=puP{Obt^25p^yMoa0*mX7 zSP-lwx}%>n)LNRK+9P*=s`&QJ7tkr`*cnD!*E;QUuU+Kn_V5^E)R@-NI_+o2U~PN- zLUnD;bexXlMl^p1grTmx5JWKSO3h%L{D_LXZIWUVmcI;+2}i9qkyQkc|j-Z5Y5L-jOzZgYK5}^s7n5=w`is0~4kkjj9>7+4#QA=KMU@ zu_*0iPa%X2uWYNnF0@+F)g8l^K;*RzUgT$I`CvYp-Lh6Brk<+P!<4qGyMQI!_QLl&phz{6wKla{jyNx6{6n#HmQLWQ^3|Js2^>}P=s@2-m zttAh2u}G=yLvf2mph(sT1Yi_Eie_UkKkX0L%WItvI)CCXIT;aoiM&-MK!9TRsFyt= zDsPdQk&zLRaj~0Zfr7Dq&Z#`oleNz;A&#~`Z^U6L^XI7> z%cv^h*0QjsIh`XMMZU|%&lA=XxRQE0Y4pZ!sajIM@FbP(78qMBgo?B2mysx@(wbT8 zegeCvdkJnGyOD~MUj#2N1V68XsyMkQr??2BxVeuQ4zYd`Fj97AuDY7;s8XOqap9RB z!Oa=n`phGvJ<*=5pj-kyO7HeiH1+|JN^36<-Q~OdBHEcK3$(y@5(wTHZKrG0wa&J8 zpS*n8+{bp+D@)VS3(RBTHKX(vSnVJnNnB;ehJjc4${;b=d9VOq-Kb=D zoSW~ET|CktI0Trq?0tEipL4Ne;fHeug06SUgs??gyv9chRvlj-33LOFevPC8Jsb9R zPtUhPLP>qS2c6<|9{NMNKGsHkvK!&zOQ@AHNPIzc{DEDSiE&JJlf7dhC>_OT(TqMK zC3u^kpmzVB{=DO6UshWp>u5i-*soMQQRn#r{cIdKx(XKPxSlq0{kU(kd z0eTtYulMl=>15RI`S4&FvyV>pnDTqJsFQYz9f;fQO&Wwmj563+`a+j@^5|6EAN^pVKv1bHO*6-mB*J2l47ZJ2WcOiRQ)X6vvl=}I?xAf7MhBZ-XjDsivnd#D& z8gqI(>n!fna)@z_ZA3$svaVm1dWaffbq~=#ew^LAxBb|<7=R;9?-y!^y8Yq)f4^sS zODU|<=`SoCX{!?aY0gKqr86LlryY3c;C820S8X z@j>NKkTqCUW7}_W3Z5ZF5*M+aXZ{*0s6HMMdq2*4BUxGQ zvPCqH^&)(t!ae1f+-NPMSBZ1+bhS5H2}Xu@Kv@NS7Cum>JXu$YwOM1${P3Fv=Y#6WvxJg+#|nmKF7#wN4Z#e z+nL8wGCzT1sayC{2A1A%ZhD#6jdtkAfncS0Ty&>M=+|OeJaQFx+u-T^zVO~osF~UNc!5y&p26n zb69w!lVWI%bk82=M6Mkc(pYlg?C}(lO4`-(*V-8#I5P0n!q;FAf!#k(p~yAfM^C;8T6LSgF6+_WvCp{ za`k0@EgvpMKCH^^cMO&$@VXGu2YTZKM zPGsE2QaKHcgr0eN+xV18-b3=NN|iGOJd~m89N6(O31z2`chJS@RGMd?x6CQpu5u+* zGPDGfhWX!S#pIHRyWq7C_k~1~Z+w3Ru+1NSyz~7Phim@v&cR{Z+Ew?0f#+4|47Z7G z4d=z$7H1anyiw))+y^Yc6n!*pFZht21#RPi3ID5`zb#^-EO_L`zXc zN~v(I?vI4{a1gvv*>qtnbmG84R8Odextd$zDg|?gdkWzLH4LAkmL_FA%e?=3E9tFe zPmP!1pB@2rJDBSo#aSAm4I0xoK@&$G%HpCWgsS2+KQAGUj9L`QF^Nm10MZF7UJfB& zE&rx8ta`BTXf4~eV0=om<#ajKG?S!u=4No7FJ6S&YTaVhnB;W^ZGMhMoPO8o;_HUB!|;QK?yagOhpIKhX!i zwh!&nhRyUY2zXGj?D_Y=E>PXJ)3MTQ$=? zk#1n?fRCh(I{V2&Q+8ZvZHTxb^Cm+ui{D53Ro>OdTBk}J$rd?g9J!~)I~>{!hkx%V z&;`3?l<#V15VK(VP7~KulKYR!`K|TrF4B#)T5qvQ; zO=6H#9Y(aKj3<)Zka56yI~kpoRbfPNDSZcYs4oR+Df59eC-K#$LI$JRNNo6yXocZ~ ze9dF^;XY^{X@^wDhT91?&<`MzKDrN8N1!=WM{hhS8Zpno9v4kQgjUw^PLI{bBB!So zGf92=WRGFwccyupx$SY5S#G`o82ux!!6f@=Vbu?##-yl5gY!b|VVI+CW==IV0d81$3xr+e%B*eQ@R)VoK>cqK`f94jRL^yi)S7~2}$ zXvdq*-EqUwM%Yy_<2k4a=yEdJ8+o!6xgh&oYe2YyJw#1M+u2=nP|^?pi1+6Igct_j zZ+0OzhP@XWKb%pdou z{Rv(QeHNTW({_AOYuhd+6bS}Ft%z#t#BBF}&7lCHT{4X+m9V;6pAV<1^p7XjWvD!a@Q zTGGp}zuFft*s@p)>&QChb#<{dV7!Pm9+>y|ZwZK>96gA^18t1|zUg5+$UCn`=lJi_qWAHRANWz(l+1=D z*t9r0VtnYvSn22jFDqGMPhYD4c?IPj&pGtN@2_Z@`+cPUqv7+T_(=LK$3_i)@ztpwq+1I*2GuV8 zw{*ASvr??r%q7xy# z$^@iv8tMYulN)Q-pQ1|cPC>$&M0SaQzOgTd@#^zp>o)|Z@1*p7as7Dr=#(6 zLBKlM1m;A4g8BviV*VzY%{N9epK1%u1#wBxD)&Z|S6 zw9QJs19aGur~Xuh@R;Nmxa=E)(FtTf#qFSbk$c#nC2$h#vaWa7)eD|oOW7p&MqBpD z>)Jl#=W9fy3f!b;p z@yF5=;;)BhK6-q0^XcI^>VyWB3THIfKnuCKbntUU5@eq};RXHKwVOV(em!Mg`HmpK z&GMul7<4YPzjRbn+kq=dEXX5Pc154!)35;exsnIqANfUj=i|TXn?)Y51D{RJ4bWUz z%GH857|xTq`kl@lWju@a1Gx8Kl{m?#qe(Y=I~vb0(6v~ME*2INQ!!=D{Xb>Lz>AA3 zhN9Br(duXAFjFISdsWrV-dCcFF@#Qevb&q1>opMH3Ufp6e)zfl0MZF#7ezi9lwuRb zSD6d0JR8%X=*XHKO-7#!7-Ba+&L?HopA}$BSyF0M!AuNKHb8-lz63|J69M}K9*dzz zKD6lSNAZ`qkcV$DJJ(NLowfxfjM0P?Z2!K2e{D&_-9P?+|8LekfjviM(L{XuumAW@ z>Ul5&%a@Ew!4?+Rr{XOK<-g6!K5sc1=l>?=APb-sX4RIiP`Q+!?zIEG98UzAgnFTZ z7UXC?FDpTGi|mgCOFJ+P){Q?6EaZ)#n+;SUWNPm4V{~3j2KlAfQ+R0KB;F_6#Jj3( za>~YTAFEU;UG`z>2UMirMzvt*M}5)!mS3c?ZAAyFtPnI2-t-(QJNRiGt^ zv!wk(!*+;{Ge=9_L32Ag0&R=vs{}TeX<2a|M7#y6(FzOgL$1JbpUs!?Q zI2~QUclg(Q1(#Cz3jeCF%wbIhiVhCG_oZ&+y)PYYfCOLh5BZV9B0q6J@Dqb#8l6AO z9u))v%DoZwM?R+f$VN3;)%=WP+Gfm3EkH>L$SAj%oaZWv*DybqyzM}HLtsuI^A*(< z=vkFlQ}T8t?^~VhLtlBKxAFuZL!{L!@0|jXw{*0Tq;WHERLW=A6}yl8Tz4#lJgF(= zp%~b>6bIciTQ%OzZ1tq4iIgs;U*sRK;2>v+g}gW|d+NOx|CV+vs@)@l#$p+^4EoCX z@HW{0BZ+IeHvH*TB?x3?zzAKPeuM-i6Mt-;IWigX{vgkgI8b<^%YvQ+VTqJ#6y0e) zIVq-X!AXoNFzpfZ*#{}+Ku~L=E1@^ofHV)WvvR%DLZk6c$sDg^l0 zz1!YoU7lH8l2W07w3DbDl#6{TB(Txs5<`DL&Z444;ne}lJ5u&CeV*;#Kd?96MAeXo zU~fd*ezyO^fik{83t6Wx;+v$-}l{>cM47%v}_fki{XAeE+9(PvMLJtcZiX)E_ zzpEE$!&5V+w32qh*{d080Zf=LFTR)En~W&Z&crf~-%?85mWe|r&LrBQ*(LL~_DP5x z25_t@kKp~CyyQC0=jY`>+|yfNRY4GZymMf$xE9_5VUJK|hlJplJss%So9TDD2dOH6 z0A{i2lZl)iOixjOt|BlkNm|^I=xg`0xVa_GQ^PRIr&Z<6x4h~Xs)Emy#UhYvV#|-I z=G^|)wh<8i9y4X4i~q5U{1zAnJ#joCA~Y zqRCv(ju9u54Lx)ZzGsrP4?8I13LVsJQnwll+!J`X2~S?fh{`P)%h6mHBfxM7F zL5h0gV#Sp53R$MDkZY(V_oGLd_njW2MF~-9WreLgX$=fYkb%5S!HW{P3KK+$gEx=tfXWXV+y-YxP4GD^ z3JYZv2gezLL1uVsidRLBw6)ofYB#9X=+4gHmsvF3>wxt7?HLeI8`!^Gr;I3|qB#Dr9lL)HRGss`z z(;A5S6rp@<^t7b0fkUt$?Q86F&2-PBda0?;tlK0KQ_9WT7CHI#@<eJ($ zH&6Zy*2w>8NA@x45adf#VTbltQFUT3L$WyjJ|ru|UWs&Io+t9Dsy-cp8^P*~dz_%T zjvvGddbT3{!zSoJ082o$zyHmF>){18JM8ipFNgZMHl_toK~|^_iLpMkDGyCfEALrc zmT%aRVBA)I07x10M_D;I4Z?aeR>yG{cNf8O_z8H7yTfsE8HL?;7J(a*hkm`thf{72 zYt`5WH- zAlFUnRJ1z{i$o!V@p6@myKu~cq^pc2=AN&-%o_|a$z;JqDLo+e%Y%+_l!q9swQ+q% zf?fhDm=|W~Y92Bp;X|o*7MWipqeIw;9F#ia$>=XuunrP9C7g&)?NARxd;neEh#Jgd zY|n(N48Em2rukvmXcfJ;eSSFQ(G0%*tNBW5>jVIHH(hRcCkt*%zyh6~pYVS_M9k0$ z9hZ3G$Ck>L*$e-@P+;@12_^1FdbUvl!wV4#2!{FaE*S7qIrBE?IwscIJV{qDHmkLe zQ!vv63-B*hFs$-$?~9jy%I^Mss?DXWTW5Busze~c1-y?7h-!>2{6nQraF#{qC=h&^ z?AKaAZJb%Ve$vi2Wq!)&e$Y3RcUPO+DnolwTDJl;p2-{{s=Ma7v>ewp(pAn26w-$S zyJ7qls?$1HEj!;3jFz1*b{C!tx9R;#=Dapa$T`s(dxpJ@JiO+#1q&}Z8JdulrTAg? z!=LI|MnQ9eF|c^NXqBQU6ui6O!BvR6nJ+V-6?NJlus*B`W~dBvb%YC#r@a=6?@_@LHnS-oaJ`~+*Q1%Kio8S0*>ki4w=dCt!hu)snM~9&zzOg!HS3^(dpxz|65$-cgYU_yvg=Tcv%**kndL@SkuC((4+k&@3HkOIjhAPFH@`q6sV*-mJFUS*HB_`29S;4!sZ<4$~63TjeW0pOQ z#!?rrg+pSvL_rg>YPfqWzBv}PFyOOf(jcpQ{nElYm15ouEE!7O$Z`>YHP0ny&OuRW zPFzs%J6{7X?>rmmy>X;nFZWy!QT7Q_I+^;nWkq>vKRN)dljy5TiAx^UN)3bbl3pRW&XX_U66Ig<>Am4YTqB#+U)Fm7~jof>c+*#&s= znP=zaFnEafbzWgeQgPsF5om=mqjgJk(aEgpD?Dq{FB|2^@van?XzEdey1`qRtA@k` zx@Dyj73+P+wk~I*YUykt!4Z18mKCBcuto;Ks`4b+Cn1B{(NQ-@DW zYbgi!R&hWizuEB&E#gIG6J$b;wfX&(>|8r_WG)9RD^Q{;_GAXQpeQ9PaYKU!G3)*C z^Kf)A)QB~A<7A&rld=BHm%4MAM&8tL2$Iwd`Oo?FTn|qU|&69^Pe6t$a)_&c@)?n(f*A1Tbx-D73k@7JS;u_RuKO zV&Uk7*SIw*fg{X(JORM_*nOqaLv>7}P6p8*NPEHv$Dlkbt>;5*uU`*En?RUp`E-VD z<=dGjHW2{S-F~U`rGUJAgzP6A!inlP9j50*&7is;FY|PCv2iw<6m~TSA$Gyl=KCuP zpbY?MoW%`}KlqZr*&LYM|S)?^JR0S6{mDombH0 zclu=$@~L74Nq-S`{U!v}d1gu5PHL|_E1a_fAu3XdD8*9>EfjorYT1+0VdykS1|k)b zF09FQW(YGd_kgX~v-kgK)W1wk8zicRrUl2m{89mxwL_4~q9~}Mykl{j9o3tYydKhGiW-FCc%M#+{;XHDTH^jW z$C*~y-RxZDHovEnK*9FNeWs~eLvS>Js`jwQqfu(Mc&Hj$0r>7DFfR%S{7EB=!XTWgFOcWwmhYt1RVg}T7+_Z~9 z%A@Dh^}^N=Igh>_rZ?;8JFjD&H9O|Pu`YFHb0SLwyxAmAvyjDBW_&qW#2VnoU$Ce( zArn30UZqm~u~zy8EB)e@Y4yahqMXvo%Au$+zLQ&6uuZLDuQ+_`&Qa_s(RtDy^anGc z+TB>sg_|}@Aj8yfTR?Fixr`yxy`F=j)$L<@0A{&e5bwK62hFo`*S)vYsH#+$py(c- z-sji9sO(9xjE~fEtT~<7CY=eb$;>|eVxCn4nTfbTOY)pjXB3#v`pG||%rA%XaxI79 zyR~($6j6@|J-}xEUR#^pUH7JD4+pfv`wH{+#d`hA%cpQYCI5QRF=aaY`^P)G$Q|kg zg_Leuv#|oe<8pFV^i3)FbsRoX-=%XfU22@uq_@CF{w3Ew zkfMBkD7}qzKaqLwsaSEfLqaWk>WQ57`@JV>#_n|A78tCGjmts21J;SKZHF{J@hiY6 zJU+DAe4zNc8EbnUX?gB6{Y8d1RRdnA7iYKOFYoP!;ubcoqU?;08YUmD&9c){B0f!>KBW012Jl3=!eNv z1{IQhVN9EXO6ZFn#70OOMFo+BCet89s_SRUMT@odqAbOm?+S*lcba(vSNPp)>Vp45 zpy63QmfyG|5(Gp#rP2r(0)_j#f~hO|fNsDCs$UnA65PGuXMPeulZpyLtDaYajb&~{ z^kIkW63kazSN_3`M1a!Q1i}qV*0bUzXPDL5{2u1#&QEVdT2TIFkY5T?`54u={JUH= zt1%b}+4#{A5UUjOfxmEqr~z$oT*IC|+x_$2o423-`TetZ|7sl9F^88e=mz>(U3vOcyHHWIF6l4j^{1$$`oj&=Pb;qy`dQPbSr-*Jc_V0#%#@IwfaA{W z7xl;prUI#*fnV%%z@I=yP}7E+)FneL#=+J0V=0(1jfAELYrAOKMUk?lsC!lTXN6V4 zq3op!NvS%Z2H$aLZ({&rN8kXYJ}lT2!a*7BHu9aBJa_(NK*(qvmP+8cb?jSCN@5ar z1K2%gb-l>bkbw*Jo-aXnqPh`x z_O=T50wE|z6QinD|Dg||Y}&TFHNMP)(TSQ+r@nXdJSC-*Q&2QW)=5xQ2#ZTDMZ*zn zkk}I~>(hU88$LESLss=Ux4Dv*nn!ew;QjxdF}?$6@O#^vx&r+5NR2MAWjM-Y%Vv;| zCDt{7Y>(<$7?AA%0wCX(JG@13rZ{r#Uh@7T8%Bpl;d*~mRKvd!xc^09Wc};`1UdJI z53M8Uf#ifV33P@Xh5S3L(dx$Fg#q;;8#mkrMxF4mKp7800vY>?{ImW&w+)Ms?{IIi z5PigL)ZBebaO?C*a`~+ma`ooq^UVa>Fscd+ET&5p_`Tm*-PzRNcw$;3b8EWLzZju;?bIR-0L z_ackbWt~-dE1IxfTlPsdx2_{*1Snu^kv!tSg};`&WbGOP5#I$HQ9?Ar>Pt>r$}2Uq zwj~;809T3(tbZCDDAUzI!DYULg-0X~t~!>q7Fc3+9zyGD>j0LXJiH2dbNBA3IivMF zUe|YWmD>6WRi~&r9nA*)?5F@h^%H{*2PkWOC-XfrnqsXSdf2<=&WGp)SGeW&P0FU? zlQnbF+2to&Xp;15bX1C~gbq0yzJ?BY(E|OBAYPzSG_^d*iZg9>Vi()B5Uge?blky! z2CQXiMf`h)UGC=6qHDcBP_s3wF@1~gmMx?8Xsa9FADXE~IQw7Qn+i#(zsOX<_Iu(X z1<8H*@y_>GF2mpj-J5^Bb8x5vWl8s10q5w0U=&)$R;@VA1qMy*M9I1o^ukaC`5TIf zE}6$9$#(_33OqJXrqXmL2V(2;(sw3Ud*di~423@zm#A0~1*Czov>+450L0NAaG!WI zc*H#*xZ%mWDxMEU`LsoDXeTBN!v|onF&2Ypw*d+-HMl_CP4Zd&Tk1zHK0ZhO0(ETd zcz%wl>Y0W|%*a@AVR;+p5eWtX$jc^=T6%0XAAdOvC4SIBz9~!)wv#LXcUnbQTUcr_ zT2%i#3M1sX5cCH5*%)V}jYP2lT8Fln5V_!tWWQ=o)Q6+zKx1La^UC_|m=^&Xp0ulV z5b)rGMiXl`$`%Vm!!V~@!nx?9n?fgRSy6@~aiysD%8ZR9ZkwMI*j(ix{YKKU@L$)l4*ruqv0#CZQx>^ zMmh=RU5NfIr;%;QxwYGF=ttJ&`*Dl)*B7*KTBOcK?=dVn?Q>)cp$N8+rqE7rI2%*5 z_u~Z`_3~k_7`P4f?CY^D3~GHFAIkdrAprG#8)@1<8aQe%z4=I1*qzI+iRd+IKOgX$ z)V$&-DL`LG!KXR(ZUt7BXv*q@tQ!ewpb90^z=CUK-pDZMj9(ifbX1|&oc?G^=^+Gr zE3i9Yf zW@uXG1F4+&c`}-f8!{-#{&ppzSe(XHrgj;uY9U)KL_3^~$Ae2sDLnbyrFrwHR?=S- zCR=Uk9#EN6NtUOVk5x==G3p_*L4Dr%nzvRzj2wr-U9`B>NA z!RnSC1S^r&Lz=R{`zI{cmYinyET4Q9@>@Rc&Hz7v(FFeR6@JFp`EY2qArQJQn>y;28o~ve8iB!c`{tWI=6) zTiM$Xj=!Z+HACf?jcU2Ati`_)sgo5XTujn@AL=y zUI(vW98tWXeLIYR?hdd5nDN{f9>~xw(fu=50^?GYYszjiP1TVBJQS=3bV+PSL>Qio(hbcj4lJ~ zqDy?bDC1lZ6rp-9+hdOrU&8=^#5M=cG<|OX&adShe5?0`0F%aQE?o4v0W7bQ4OPXv zcGiOo$ z)2A8^4K6`BI!19fdkTq*{Y7->tnPj8<{Pz#^ltO1z~n9CZouB1R1;zWZPx?4k<-u~ z4`j!}Y8~F2z%VkEsxy+7uUl8{=ZG+9^d9zqH9{dbpQ#ZK*&AlNb3Gsh?@>+@0e)iY zCcw;kP64~yrSU5vp^sZF&1Vo-Az2AWAQk=Smyy5{=ozPV<$>gWIk0}utzS*xBj(AW z3GA#DKwcLO5#yseEPt2PsP1=(`1lWrNM4meaZ(KXTOlyy)`n3{>tm|GiK#)y1y4=l zxk)}b4ZLy#wjMZNoGSA+|7|J*&eYI6alqD3@w`D$nU2Y~0~-k0)?J;OLUGzZ>r}-~ zB&hbnEhyOY7V4Qn{7E^83amOv5=liJU{(jqz}Y}B8fLHnnV?P98V|9>hp8KUy`71p z2Sz`PuXr6j5KX0uyM_)xr68$dGyv*^DHrBmvSycd?i+S^xnob_r+x6%v6a|+US(3~ z%>uR6<~p)`_jr&`U&U`z|4f*dlXw$0ZaZ~`+fo(_&v8f05Ox3H>n5i;#JqihIa&xD z!X@6qd~Q}D0(5Mhn$?AC0@?2+w8GhD zmJYe|P?ZFF!mU1E?sC@Rdeapxh@$h-=`Nn&;iT$McUs5xMs9*^5ne5)w^YpxcjX7K zVl_K6mBbIffBhP3>h<^wtxZE+l6h8$x%X;T)Y)RQM0F?%7g5t%N`gZGEXj*UU#9)d zX&A)e3u`o7XgkJ*(kvKaeZS%Fa%ZSG81POP#66sfwMe1-3B(B^KUm|9p8O zg4qMq*L3Tqr|LA$m8vDq*sk0>Z@Yfo>}%OEm)00%Tphh}dBHHDX+*Mb#HNn9UYN>6 z1m7q|FSmfrh`QhbSPH8Z)=~q~94)iHb%)tq>}3f0%VEFl<=|1aq|##h!^;nGjRllu zsP;-%SHy%%>)rdjJP$ICji4nkp8=_{P74rOn0I7mm4TgAe1U3fExkm{#H(wJyCSN% z;O>O9aIV?dx|TEG>esD#SL8n?{}Xr zg*dhCR)#poWxfLP;+QVoIO067pT#n06IQmZ_m(qX<~8xXj1vKQ$yMY<0M-Og1 z%HgcKZzVf;Jo)?t;okpvhamfS=U^Yw_{b#}Kj)eG70U7~{&oBdwuhIb4Us0@G3SDl zVyZT>rN^MGZ`{EEeG{d5#_SBzQ9>xs!%yE|NiQ{M0Qmt2c@Mk^yA&B20yRM7$U~gB z%(a;xRakw_Lo(}iw@g*sStR5#c~|sClm3s>rUrCu*jr+TIsaJFv5xe5Xp4n=}Nc zq#z83GChxmcPslIc43}@4;}mv|IFKmZpu8Y>!#3zpPYVY4W=wyEbt^P(V z@81vre24C<)ljy#gd|&Omg)^Ac-7vs)sr3f=i`rjP8}t`0q3g z9pu#%bvYl(syrHaZw9@|sH#r$a)Pb|lSnPOKwSxfWyv*f$1>-sU9Z%x?;q4|wB9bg z+t?~~ldHfkvo)8>Ec#&{2Mvx~IkPq9aD=kTyIP0bY`Ts5WkoTa#IH^LmZWYbTq^Z= zsDpMM%^+F#1SdHg%%mU~~b|hL6-kYnu`vRC27H=5dzqeEWnl zcyGSSzifjd$_ym9@Uo{z`r+?RGw>8@>#m2R413><_5B7IGC{H4Prr<|F)Ds1dv-RS zUJBw%X_nes5R^*4%gLT$7>Rjxo`cQKgW6{h1Pc8FWZ=jA1D7F9Y{=@l80iT@jZq|} z(hq~a;g@%Bc6MIA{`u1{FJC`>^UJQ~OBiz|L~lgnPiX&qE_PNsGK!P)gdE&{DW|8~ zGQRQ&xC0jbU(ny4DIino?DBCfP%VGOI?gM?d|S6r<$wBnPp>A6)4jj-pmOm;@Ah&SAv1g%A5zi zp%CmA?cLXxtB+MJ-x67LW|{ETxE@v z_;M(LN{|l6STRvkwg|vGfmh( zq2|5jHsV4mxa-7)PLduywqo)HuZAqv?N`_WI{MV+(ao%GD-$-d=6$VhErQ#z>`Lr} zHf@P@h~P*gh9ti+l2>g+KAKv0`&Jgb>$CY>bEWIQ^Q{;U&ZYl+1hPrXu*mVt|H_!g zsJmM3HRB(&Ok}Tv+wXjR3n&wAtb}-Ib@lkO`pBZUODc!!Av}FNIA;h6Z1p|4-Tm(#5YM)a8j;-u|hX+yCKiZDN zXQ~hrgfc3)*vly>L3!3{`>VRYqQ(1o2gY%3>E+kxK+B2k`ujP2J)m01c#p1E*0#pN zvtoY=Qui9V8f?w!sqbOzlhIqTUXk0<8cgyl2}^cmTk_fqAo-T$y_m0Tf$ABQudtRD z2jWg&n-!$691&0U0Pm5y?yKTC>bQ)Q8s_50c?EmD0=!pj z84?#kvk1<0^(&|rpP zaV@Q}I#F^c{>yKpi@8Cldr|J`ZwO(HNTq){!<<7M)J4%{jU{q^j)})#z5haOI=^DN|5q=%Af)n3&OiXWkfdjoX z(pM5ix3VzFXbjkidb`OaZHK|HLH^(!xrP&P9jw0@jCQfONpCFCvleOmBWmMh15$+A zFSzkxYc8}kCc_zui>FzzquG>rt4s}>wH))O?7#lwKQpj&LLD-iJ2|f(4t|AB!eYTG43>94iEbm&DFT|) zMss~%ds-V;qUKyRpQLCwiW*k0k?&lJ^SlP{*~ESNKEd;Ly_bWbDX+?5d6o|h<&d;R zJ)~*_#VB2P3}gn*;VTs$UQ-BNG@4EQQd#h>kVY!%JJ?H#AMg)-cysg@0o2zbF>-~X z)Mc@2EyYxg#_8I)1u2L< zOw9g&;VV_AB4wu|#7Hf5&w5~+bD>X#0XjfS7X-CtSl^_#zB03VZGStrf92;kY_(w> zTq%Yxe01a1yGzoA`8PcM{o`qHNx~*fqKEAoGwbVOyrtz&K+sMcpz9eP6^oeS>S$T`)a}AAUOm^wO?hZ}7H&0<8}7r#+;|tr zyPl2CiI-X9H5M~8Zo0Q@*aG)e!%gM4_im_!yJ`LnBa<<*o;wUZPcDp<32p+{JOcA? z`yKTbSxl~2C+0NE7ayEQ?pb-vG`Yr8{lc&C zj^*u2pW>T0QY-rxRt2TKy*t%xOTmZ*?ka3J$83KQKp8~v6R(3W4vW~0G$v{nt_o(a!#C*g& z%WZA|bY1_kHEm7QVfbb@DDD9#cPg3`aOI25f9Q#AhU z3a}?7rAZ3sQyUO=fh?Cz-aEm7pzRwA4jV$4TfRGuAzE*EcUF{N#)|0Q8&%T{xJ4^F zrvDT1Jp<3GDjwB;cRHE%#2uq!_`fYCxXBtq8VvG@ z3{$medtPUYazbqMW>ZX&(;62O6gx#@__L1#Wf1TJa$BGqp6ZD5w+lQSR@4(L#Stw9 z74@koGr86Dn!EwNg7YlDyxe<%UC?5-kbl_Sd(nX`1Z_Vke|n5~-9#qb4Y$d`+ShA> z2_rgI*qW?4)_x#_ekKD0*`Kp`F#L~0@`BxdviI`CvrliI?CoX`G3(22F>URCyff}i z|KU%R(nkFGr+fO(AH>&#_JdITrnfYYa$s`sWaC6>e}Cv2ygVn;VmR)f%^@3Vl+Xi!)WU)Ni~KK^*R6mEb%} zNYFCj)D5>TWPnn6_9jC}l*2LwiAAKgJ79+*GpkKoG;DWJ3{R$~yr#ItTWssP zr+L*vN&iuHHP662GnC!kGECFDqZ^1+BomFC-hfe>B7T`T{Dzh(?=>I^xpe#w1r;L4 zL@qX{7wh3ABBI7?%m$O6pWs(PuC(w&nT<51YXcy?d@N|9S5D-w9kc>d{lCr~lh`mM zWyqy0R@FF!)f`-`Yfe=a3R-N^48`X_*T+tNRHQ2Yu$ljM=*?yyE1s2#ax~P-mk%=g z3(i3@^H-VL_D&`@$QW8H3+WCcNR?)i*jgAHqjD(zC;#FKj4^ejOwt^UPs>;aSv6}3 z?%a$Fxw=f-(by6YBw5qc%*-p~uNRE)ZZlABhi2_$W-GOVD)V=z4j5Wm--|8~WIY(B zHL5dYoJ`8f^7_|V-bGdeXg=V{Bd`#)yAhwws=U2_@1DOT)ij@Wv0mh6I1tyy{(&=~ zf2$g-_Fxl4Hw0TbWUxgcgIbA@9W=NbCdQ0fK7`J76-rMOAIeloj09glwn^_uMK;ka zZ%tGlgV!-_R6z5f?%9C8Aw)B|1f`JPRqc!|nu@e;FmPmBJp~If z!G|icB6^s$#;UrxPo`yVVl4#WBcYcX;tYf>(UGF%^g|rBTAzUEx)RT_!j)zG$Msg3 zAd9TCENob5)kS!%-|s%HUF+0kw57*74JV`OZljRG(+)Ap;&>c&Ni3DEJ8@9lq|oIQ zMdGjPHFB$1^b-rHDvd?=-V>VWJ-$^VZ&>?ajf}YaYTZk|Rq*}@bK+pxC{OHqdXEO0 zSW)kuAhBrQQNcrW|286fxDwJ{)RSgK^2ZX^2adpCyWwnWrY{^f1OI%>#RoOZkOZ*? zx#9aOHQ>CFxn00*$7g@pVu0hk?Vsbg<KAuFA%8%(5Ts!;U? zCaQvjEImySDOi$gWNayuwPs8AE#2g+qF?5MA2mvOTaEe8fAq_KP-XW`*+IK4)qi6M zL^gmGIta!s$D)+ugca9+mbeVjYXkTPORRrWDwF8@eZqbFwcqfYC9ehF@mDQ71@Dhq zUu(zXd0UGBktb&2|D9GZHN$VW(&D2pYk578L=bNu6~}DMjdu}ht1c@0hHH@ERxFjR zf6sjR?OOX65Y!gh!EpQ3Jq)x?+eJq8xQu&I~FH+pBt=?&s5- z-lcE&ee`JZIWokc6y32j-G))n*OE-do*xa0Jy8O}9^4P|-Sg?wch7crw;%63`?UA3 zZ=b>ICz5Qz7W|M))PTRI6ZYexI_1B{pZQO#%q|*#{^K95pMU=+{CVI4507|T+3vU) z_7&WCj>P8-6#Dj*_=L)e6~eoxH2j4zL#spAD=kXa@|FW4MD+%=q+{LK3L=0o5k{C>CnI#~79oA(PBa>_8+ zQlYFlyoW9aWcVIM!S$D*p3CBr7?yO6DZIvo*$^TZ@vskDwC7!cgne-ta`X9qF_`A6 z9DlH4MFGW4vwcSWQbqkiSDsrluK+mElmbo~OzKvS%3VhuvC@HH zlY^B>lq)bvRssPUOV)e3N#NUDdl>>8w*(KyZXi_b7=kJC-7B3O*m;X5rE zZ3my}-YQnQ1XpGX<|Y>1+6tHIvwSE@G@Eb1aOUvFux3#=*}q zM!fi9WS0m01`psHUK!qM`;6Cb2IFRCLg^^C+EqwIIv3KvBCMlXd)Jr8)&FL&E;kcO z$GX+7LL%0=kp6XG9mwyti0=vQ#4IR}-z#<1L+haw147azUqp8aVXKl+GgRc*dZC&L z)iIX4jgO8~uTDfN49SJAAG0qS+BJ;UFfJe3EkGAi0jEc`FMe_OFx7-5-@eAGwD#ITY~~Fx7i!y zRrQH23Db`x*!5qJ40|l~b!acnq;9G(!^eB~UE%uI|9^SUB)8uS`=K(i25 z+83$TpDOfL+Cuhw$Iud`Es{T_B1Ne%rQ$*UM3G#zv*mAFom%)MuKeUS@QYmD*KOe! zIeZKIiZ_~Cb)bM-lBBDd!HL(z%srl=0xJQAhc3%Kew~g6{c?EXIA*?(Uu)bl>D^Ew z3b+6fDDVV!bg7tISO?{|`4kwF7y01$Q z+|Bx$K7zp^Inw{a6J?0-t=-CYwO(=uyTlRVk zb+C*-DSIERUYs15;#;#PssYUE$|OF-pZ4oGe)2t7{ffM#A;6LgtmW!@oi}SVw%8H# zvRdJFln>25vyfY&sSwVjhcc~N*77h)+)N`$pf*|FJZ)ix4T2fnsAtCgb-R~}XGB8(mTF%XZLeE&1?rhOZ-#gj>{Bd}P&aQDq@I-ZGR z5RThXYYHZtE?@`teu$D^Q^<~3{0BI9O`#uv0ncR38;SE^hjkdynsjG0Qv{?7#I9ra zYQ<#$73Km#7fkkv(2*iWM9sZl0>Bbf?^8)i3upJebTu~d`$ga57@L=I{QAr2@fcTM^P+*7!Y`a2M zyZKQy8qB7}*1B_{bcAfmhq+QrN2m{+TeuelX8Fcv*J*sYY-7r5h2+Fqf7r-5ZtArY z#0>LgvM`eGAR~~HOoiPQZ5PxL}Z~Mv;J6gtbUcriRQ+LBbG--qp7FheQSbd4U_h^u2Qx zy!w+*S@gnRYpCm*tNt2yhOOLn?~33}QGegp+!Zx9#qx2-!&mu@>_qGmzs7c?T;K~{ z-)r5FgByq~Nb4v5ITI8UEu$Xmr?@o+F_EU0_-bN38J!E#4$o0iy-$CmF+xdN^-V#? zH)mD9o22va;G;opYVSZ1d2%*9A6zE`2j)c~+Ukem(mr1f_6 zx?+WzHR?NczIaMI{+bba$nf4U97_NhoQ$J>Q^(f~p4Z&{lHu^0ItGk0-M&Da_Io{< zYRnIZXOIR>+tc4x<=Cj6CuT4QavR=03uLYL9;dvV$>+H_0 z7uJsT-tD}qI$$jGn(COZ@LlyEBb`Uo$or}P7U@S>xUq-G{hBAm_-i6SAqP);S3Fq! zU6IW1{mW7+G`PeMv`21BgBb4=;O_c?-fr;taQq&tDar?14P4@JN;VMjU-B))F#{)J zOgO=goDSJ#EMjZYkXpxmzt5UbjW|>Hol=1pH_`Cd;RXU{+Ty3S2fdNB(0+*HR5Pm8 z1l;1_jPJqehA%*NB0MdnVpc5mWC&_E`nk;su;uPDt{?)`BGIN>kAJUq!%{; zgGzrx{%^>CBNB{Y*uItsL%iZQRR4zRziBaL8zbBpt<={&PP8fC4%P2O6?IeCy~dRSYcp1a zt!X?XiuTPVIsD3xwNBn7BWA8EF;X+9ELSEfe>SB%eb97l!vqRq39!yK@_jPOt_Ke4Q|+4 z3xK-VBGIL4Oj)jyyQ`zS@J2#TE3kKK*h^;^^gyF#%X+4|d#fU>hBh|LNSLG@5Ra}V z1yXz~qe~)pWQkRIjCAKxAgg6_-ubW&MQ97 zX~+=V_?z5!@7ejAEc82&g%T-If+bMXWRU)70l3_cBlFLXu%!DZ_mgd4zE{@uiN zE52_0&0x^Ypy#o2vW;`tmKSc@2|XK_bka-9%}&_(K(AoBZUm8esxk0wrorj?0Lo#% z_+lpmkk1Ndqy9|LosEpBSOsHAHOK~%Z$a4=Wy|qst6TvDq0S*78Ub^8RB)HjM8EC_d}KSe$$NdhnT&&Q!YP|dA?YmC)VKkTlZts-GMK#WcUif~DH9wl1Zf6(XIt|6Ldj_B;=@ICFcEi9H`WhnckJsFQjc#2O(e+^$gg?zt@wT&wehqJ({VLIe z8mp|XCwV))?M)jRX@9-Irq#~5rdAZ{hBmKf<3W1u;8ZQFvM=?>)^5w2+n=FR!nH6B zwd5y%F7d&_6(YSkwO*BCUiqN0H&c%-6XRUWmG-XKkTP&TpXTaj(}M98eId5xDb!#c zLJO<2HOD-VT>ct^6@F>^y+niBaVtcs8d z5`+YVGwRi{ASdm^L!ZOc_RT1LJc!wI$y)Fu`}J2bJ1~@tMBNcm)dD{7CPQEJQfzMJ zT`A2?8g7M@F@t2jxnT_@scYm=6zm$)(!!dH%=;6ZJw7{NARR@rG=7t+Bn-{|7k zr;7_?=fW7NBr#0~!8#4%&z_MYw3m+sV!nR=b_ek@|19?PL~O12^>%ZIl%D}yRo$)w zK~>-15cKOKsNRdUBkJ}^L217=ri$ws=w?XfkyZ+85qxCd-|pkz!F}u^72U>S?`9Lo zsuPM7%<&7xenpkniE3<^5Y|c1A0{B{gXM6QMxb}e@vJ&+IX+ktI0sez*CG>yQ(J4x z!Q_$~I|M63jfqq%N6H+-1r?6iI$8v^yXAMdOrzw}{x~^2KLbYw>GGZ|9mXqFS zJfOdxoBRfx?Qimx(59&fh^?P)G)7K9bZzPoQBoti>M;M(3KT68jhz|VBBG@hnPem$ z5z|ZjfGl=0mi9Jq@GxQ@vq)R(&@9$4U9x5=N!1oePDGl7gk-PS!1ZEy9R7xs8V>e) z`tCI%F)F=(CkR~c8<2*-u6@_i_$>94$&H&emDfHVwAbnV_}a@=V7Sp!t_iKR{^uKA z{zjLtMVH;cQxb*L&v0}fUw`TQQ6;%aT@U-Y{`A@h!O^xh9y&YgQE)tK-_@Sa)0DOD z>03@!o0JVWmtFoT3X`40eE~5D-&>7dEBjLXQ4d5p6q0m z>STs27AEuJF>vebzU_2nbAaZDl*wzt|A0pMcW@8ms>I zvHRP{v)VXtzX48zYv^_gQIn!m%b6kHLLv4+tkhz z{Wa8n^^svU%cT5DrLVk6O?ouz2_7MsfOKE{7P9wi(f`2`*+VIA`eW>09X;Cvd#u2K zKh;o)N6j?I9%X_7HNWTC_g65?{4k@_7CVc{DM`I>3BgzZSK&0Gp-A_MvF;;zO>5KH ztIVO&j~ow&1Bx3tE6|_s?jIYVnw|!N1L&38dl3kvkU6QuMSo}A3U&8xRS#5~$G83P zue=BmVW(h!ei!AiKf0(w%SW#G-TbH;4QA8Aj|yR3p6WlAWSL?hJUIo~Ft8Yd;-nb% zG5SQfinjzhT1BXS(~3lVp_f^bNxuAY2$FFzJ@u1B*G@RzXx@-xH*l!A|9@ScYP;S_ zk`60xf6-&t=ERx_2a8%UtNQUw!;3@WpX9nzoOps$!A;yW6Dc8kJKU+;Hn-+VHg2Xn zeLEa{<*l<}`7LZ7Jki%}8I>=Z2wtrR*aTB{_jsI_)g*tv4#O1;t*;m^BR(vh_<`6h z48Np;%rK$kT2jo4GXQN5u9g4CRwKq3%hce(F|KJ90hav(=uUL+MfMdZ3#4OZlMV7D z3n-gwRL%{GXN%7|j4{&7uB00#XAu_JXCg!DYBTc~zue3mw;dY2(ALGdtDD?E2E`gS z(aznm%oYOE`*pXkF-m@fvt1Ecj`PFL2AwUoIpI^a80#F_fbjCya5vfd3I6R_#*hSm zqs!Qc&{3{`MJQb-E8N6xG>H|zA+)|-OL_ZI+mVSHB%)>4ZZ{0znKK0U8Bwf{Uy{Q+^44t3cc*VHOSH>^b|aZZ~ck{7NKU|YB#MB z+Wr)&Uiuu}9+#W44B@-V2@f#u4eLEHS*Ww{RAp~V>2ZE8hh;V>@?&&cddkAwWm6T9_W1 zmE#zTbSfhU?@lMP9+-Y*EkYD&#no2PfhBToWsgTfl%ydt(bH%sssd`tdWynt(U1_4 z3U9j>L;!A!pa0LsZf`V!$n$_J7?WQ5xwX|$WX~DurLnm?8F_?sovj8idpOOq5;Mzt zlM%X`V#{XOYMZK<`kqf81?9&MBrb{DlssRt`%T$7p8kxY>kmhI8QNY@;$?#6GH)Xs zj%ZEC47ou|a7#*BOq05OBvHLF#r-v_$$_w%ga--iP)ckQJ8L~glU7Pgox1)(oV?Ny3ou3@<|d{OQJwQ! zX*wD^S19ha8?;`@EZs517I!r{l(n6cUM*!gVn}`WJwp-Pp%}67M`P`ldii1VaQTby zakd3LvES3;%T!zI`ftqU5j{ART$i_2s$OT&d2Kvv&DDIV5$o*LA&AT1Vy(B6;<)@` z>F#9ZuuXF9V%t0Eu6L9sMr^H{5U55UzyJx)9hZ5pp%L9!Zc}D85t**PJ%I&`@Q8_Y znXW#YFypnysk0TyH)D}SIxHD-CzA86mUIU*HBp?CUs>O=gmPYTr>{flW3IwCP3miC zREikvpV!8_!Z-J#>*9J>gjl)-Y^00^01w$B;D--pjm_Fo&D&YcT&0F8Ze$jQ-BIAh zIsu@zvisLDJUh5PS#enZlpN~oO$uwBVpq2pfh1trz+zE@wKFe@fj1}km$raVNQyY> zCEJ-YJBS9mh5$iGOfnrH1q%@ZBm+w(MY54LnUt*J?LTx5m!Kfm%nIcYBTaK6YjAcx zId9N@cNCGhZXW5iAL(X?hy)}4I{j4eR$buWd33QcFJGg4+P=B4o zn7(O|yS*y=0z@g2 zZNAFCh`$Ax3_|K-6SVJ}!(u9$Zek#D(6x$TF@U`S8h>bb+X`SCR_Y|Xo1ux5>PLZ( z;qcWAl-`@fOiW&`Le@Py8&5BF<~;#20)@2P0IvX$qH|zMI6OgwV{1qP>f;4-vo$7_ z>xLN1sGM5O7B}GN7&wA*sKYj@ zKHTTvkkQ&7n3a&HehKgh3=nOIRAA0x+vJH~|3n+P?navvk-dU#B4y`ww)iLeZ9y)P zDUMiOC4qw01PWgQ(7c8sv0|RFL-b*LB@l&|W+gy~v5Vt;HkhK9wCMLZA5=kSetiuH zM2Ky3L~*56#z2oGg|KNuUSm?6@kr9WEGNU_m0eSIyk`N*Sht5sWl8(>q!zeKT^P-3iys>?EPvo*^nIWGy zt{Kj(0Xr0dvrvbn*TxID?^c7RD?!m9dZwag6zwnqUNLPAjU@8*QP6nQ7?eN&t(z$k zm(-*@j13~{4I-$_nJ)NJCdiebR3*WK(jvRyKk@moboW^}!Ze`%(8r`k$3-&VVr)|hIG zor|$#><|Q)F&l&?e$2BdcTLG-Hsl%x*f-itu^#ZF9XC(+D1HqSs?1OQNxO#VT!Um* zA;?D7UOtViWDVEEj(($&zQd@+*Ff5(F1rE&Ua^K-Y~UA{nfpN!#S#?h=gF-kNlKM= z%jp)}!?=R=1Wa5>F?tunRN9v)s$y{pnM%V~wcJshb;0qG7Q0wA)}kcx=3;2X6h%r^J7XYAT(Zd2hj|_VBr0#S-Cb@NaF6vXDGzpKH}GKbFo|`U@jT zw`E&&YRa3~8t(%3S3iMs)@0f=Y&TrXH6$xcTXDZu#aCOe!l|HeJY5BYTf@PBMI2wl zdytA9uN-X6g(rgY2nB#pdx&1c~au9QKPZ z!C`-f;tb29ZgNym`%D*Wp`CHN%5C4 z4iG=c{wE)h$Y#Yv;k)WbhSpk#YIX*$`n}Pl|D$r~j|%@kb+VowzD7x)>;t><`U<`n zVFj8ni`k|Pp9S{II(QNiB}r_sq>@3=J@4S_wd1yPFhG2fykVGSWA@^6hUK~T} z9o-hv(zK)OvLOahq+;}9P0M0P!p$yA(*6qvNkcD{(Legm@QG*e*s<<1SdXVNe~Rs15E{LtN9N z$%foqQ^{-;x+tl2SNE_n{_N`3(0x)|I_hq_-Z3CVWPKBMLsQZ)Zka`?A+;-Cl+cnu znETpb@H*;m@imKA6A`|R$d$yo9IRF{tY>qSB@9o6#MDVzStD5>Y1(fdyO=AB zPM*Z_Bc)n0uPgar)xH!a}YPwuV<-|M8^79KiH{kNofnp?TV~)%F;*yl0bvMw*#MLWIQ20YueiQ#@A?v=0 zODmP#-lWU83i{93>rJ{RzEO=inmC@#dxYc#hQR^FP7+A20Kx=@G$;DF1wfK^N6Lfs z1_3r(6E@rO9O>0dyqa{EG-~(HLXYx%M)%LMwA5rt{`CG!&$U*F_q5(Mdbjd5ItU@| zRg&c!o!jt>Ptg8i65<4zVtaXZ(mgS$aq1!ghZmZY$Cf!WTAZ(2b~ZjIwZwD+G|-z8 z+3<1$&@_f^*@?Z~+{yeH7%PYm9*YcQ#)}>1G+lRU$T4*?SWt%g1TPWgccTJ))e*@W zBBif6Uyr|GhbxT)x5T!@ko5+_!7USXJtjr0{A^hRUH?!e?A*dK)k;oOXnn! zAD4A3c(V|@=)%^Wh&Tp^-=^x{r;_mbdaGFbP<4Z=xXdF3L=Xy!wRTXU?7#lwKeN-k za>D=EL3cLY&_7D76@z?z!B+tBo0NMOky`zJ++_FPWQN->GenN+V>=8MJFIm&!{9D81H7JC4DXR;`8Ovnw&708)(}5fZ!wk02=-dft*KtDG#X`12 zq&yzw^#+5j2Q!R?!>z|6n5Lu^3#4l_>7n+o6{kSueSpxGX6aS%f&+HaBD9HjV0O-O z<%&?~aKuRrn>e#wxMbW8pK`ZVLY=KhApX|)hck#pG5kCnT?{)}0g)7&WB;=*zA82W zEc6`+PD3dFnGW9XZs&vRBA`!XElgZS!1hcRBEm`Br9Me02}i+5jABz4v@JS}9VjjK zRv)@9mLAQTQu+X$;45fo*tDn3CNXQpAypazE(chS#e%F{Q|OI`T}c8oi9=eo92{NE zosca(o1g*R1X=2-QdrBuvXyRNy0i(Ql*?<=BL zLRP!q41PJ`FMj(77Dh1@P9lYReT9^XK91@57rzrc3&ivIeG)UJo;L*Ttn6<<{(>!3 z)7NGI=wxS1>)(*_^XButg@r~H*h0p&c-xz{B!(j1hAhl~L&)nysH{O+>lq_PoYtdi zlWA_0uI(lQ1*joIT5r^)N$i~#XX63nOS@7lt{f~Rv;4$lM*&ZhiB6MjViB60I!ZmE zgALNFO|$~IqyYZ!-6mkR!)e&|g1OhWSDSM!m=Vs~ODAIhIO~RCcJ-mRFMXWagGF-4 z1ynXxj;v6Ej6g=Ij;qOk=PCd?*-0^dB^~3mC!(9)O$Ip*1dCPrm(@b2dToYH#!HSl z!FzZG9&~_BVPtCA7n_yw)XR{Xl2PpDa54PE<{;ziVhUK;fP`0W@ZgnfuI~(-vcHNe zA??WX;g+`f!d-Xw`&N;Mq%F~xck-sZ^LT}YNlx>+rJRKJ?OjaZgqB~={nTUA38vj^ zSp5Tk`4yQ0>SVnI$wXS)(pg;Ghv1@2&qg_TosiqK@{4ZQZ|1EcSSgn$1rK=&i*TI` zte!>v0*<5Cj|3qN`hx)>R*=50DPls1o;ooI>f=jbPv-POM2xe2afA)!z-_)j8XmKjxZjuY?n&M< zZ^PW}ip7lag{+tZQ1ey=+>2J>1(a+uA2pa?-pM5GLhjWi26vxP)dd_DrxV;!XqvsS zM}vCkjrcP(x~PO5RO%9wx7(|5N4Y^vkDJsd=sZGB!s+(7>PAFME|xiBQT3nE0>iIB z#*u3&7ZZE`n%crTDFHym*xbv?1=1`hmWfGP=eW^duFbR8$BYRXCkD=NI3Q^(w20e2 z8i_Q@+i_fh+y1})_x~a6hCgJ6G5B*wrCy#$lfw3IM8QypY36~ZS+TIczN}w2jd>=W z*z%aSNCe!3bG_CCW7l5a^tG)?QnrS*U41696)jbCeQZll-Ba8ga~)(1{!o_DEgnLn zj-uUe&6?R-*f*M!m{J-|Ge@+6ATE*B#Fb>PlH-&$o%H4qC@a?H*!rBB=pYfIP!mQa zECwvV#CIB2IAB;>PaMAb>c*GTN@&D-PFtXZG=fr@v?j-mX-$5^3NLNCw3w31w~ksu z%jNS*4Te-VrB-Li7S9B;ZcTc0t$D=!7tSiusCnU|ip6%c8@ zhPQ*9b;KLgy&Kl=5SpS3GKV_d_##ceXYal1&B@GbrB~-lJUAV+3HEe5F~s%o#8}Zv z&#UyiX~Ce^@5;H5LgHrK^UhYmMmM{nB`Pgy#FOw{vg&Y4H{r+km6p807x1erc<7z< zx`Z_(SQ(dwTtyr@qliNxV*>v=P17*nRyrATYFI11Ou1^Cl;O=tQKvI%xNxn&3CLL8 zrJyz-v*XF=Oe|)%yD9!pj4-G+ff84u_m6iTu=?b(9d04rx!op?!9)jdmyR)&VabO& znVYYulSOjwbSwp1Cup2zfk}6l2OYjSKE~^l{MkDGCE5vV1?}zy=Ou1Jw|gC>!K#cd zTlvte@0ubDAxyOUKnjiqqu%HBikmW+k#@nO;MI4ziK0qs2Wx5z4W1eN$2)M2Ki)Z* z@jt#!oLXuxe z67cmB$X2^4vQGVz<&DWr9~7gW9u(y&BhEu&igxU;apkx9{${~>ZzO65Vtv_}N?6RV z{YKJb1w3;yo@`EO<3+|3a9k()-V$-sAdA4LDy?&ph!mOCHW@(#gI#M3 z65TPBDHqtY&>k&5IBt?ZbbOndq7x2hXGaj$<^H{UQM9k7m$35ptSy&-=O;z#5PwSV zV6kvtG?kZ`)2hwIXN$7Bp&lBQ8qITCI+#OG7BTP1^!|ab9OS z68#wirW(i;^OF`S++`GoqX3^!m1kpdg*Nj9!SDz)kPep6?@wY<;aB4rlDLK65u323 z;uxhc4NDxF)C0V~fDp_3t&?L9zJ|TYO)~hu3$u~H30%-*B=Mm69IrZYQR^-D=&jLy zE9Dd~s!<5Itk!F}>hFohXVnDL)!T+`uxoIi>SwBN*tc@*3(TE!*U|ZV5&>&6**knB+!tD8q_OGtuqT%1*`R>;`i}YjcqSHc=zrfmBMS%quuBi&{n45K z5In0+Ux)=CO)fivY*)qfEnHppQ@VV4pA7tGYH_jcipCI){9+=OWN!pNQL^(aV0I(eY?I@r>CZ9t+4@$61*RS;MMP7=&B(AkAscdKW)9$mKXHWK?J^l3O zXa6dMvqK?Fhzq{xe-h{B^bosKwX6IbGg_UBdV;md{>SukTx3_YU+^0Fx0_ju&d5LQ zzIojhxLg%2gA*-hxOVpIuVNbe2Z9{HpW+YExZOQ22jaxGTIa~koVP6?#`e*97(7ue z)rNsdMFghl4ycRhWdFc#AV|@V%IE*Z-m9IRm-2M|^frTd*TwD~83Sl0AzqLOolsnfVO_tvxMIP6y)usWWGuxKoBXC71;3 zIUDwiV{u#c=Ku-S!X7m~&BlGP1RJ!r zxpw+u_R~Vt>WV>xNILE6sE=$ToDOYs{^c!aZ@C42t22HRTx4h8)8_#$l};_| zc&@pmFu5_e#&Fax0NX;8rmWrwfs+Pn#3bK-4ZS}4|jpE;Zmsck%X`?`kWi{R}58Bj>7HjUUkq$ny=d2nn|DIq0 zhN?tM_Npwjj)VN)FI&gMcHqeDg-^=>U$lFtGB&&XFghF0=DWB zg<#!GC$oZ41sV~$AGSPNpa7i6l?H|axV=sm1z`W+C$j~F+CuhpIE!evz+=!G z(@$PE`W>nY@F{Y$5N^4~Vpv_cxhbSJ0WHn3!fRCQ;Tf<3z@}!S*|aMA;?f?C#vXh% zlZ~UEkZrdolLxEmtjebq^~Tr$D1giE-UIQ^k1#cPsKxKQcfE`8NaM&us4LE}?v57d zwCH`to;46s*tgDu?xstH*14FTPDU5FInO4O(WG@~5R;Nk*d1?W-(Q*j$nNOSIyFJ~ z5EGPG%;tp_E@Is`VYwje6z&}q2-qXu0@AZnR%6c%K zy@Y4^uHHFtNw=E-nh#-XcZ8(2jU_Ok^Y>SGJ(PbQ1CeI47 zP-rNtC)qKX(4YrTcf?Rwaqe_foblnS06-S{5Xgdh5U3Ld1FZ?~M=aU29I_k1#^LQ_ zvE8~-C%Y&z*ji-D1gntcf_RFzP_qHPe0I7Ayl6dFT zgjESuhVK?yeg|LLe4$h+QcY1v8wA@2+&fnHd$6{6hL=anG`4nEex|*30c_huaBq?e zBBP_q!ym+U)18serXxvypuDoz09QY-2JqeHRL45$joV0)90DnUUc1jHXCSBfj~=uvi$5$&viOqvK1&hyt_ zGdABHf3BLgi#BKZaF!3)5@#D(4w6DfubIRTgAxdDa?q-ddi4C_kgX$-eJerI*bJHU zEJhPohfVKjA&)Ni*;&Fs33P5gw-1OBf7C69y}_(6;P`k)>CrxkS+!kbsL;MWQlbWG zm!1zs`P5%+Qfc$uVN4_*-AR#uX2o+~?9{B!cE8V&Hp{13G3?`NOp3F-9KvH8Ev%`gnjO;@U&dS$ z`A}fCDirJJP%tT~tNCF~;`0-MkzRB*>w`Q*TbUPmd06a{Y1ZF4_EQ7Fq~OpW%BnmX zs8qFXkPZmKdzzOMe507u)SX*F;vU4%#$uvtL=mNMpqYil3KATtp40aEYj!ieS$)LqAQr6YKO?sn#VVz-#T7g#|`%soc5XrXGAmRAV_VF4%8I--x zTdp9l4*B$-CoK-LLti5&gD$k#1gz&QdjhaXcJQ-7KK#6eDg%2a#g}RNJOiiJ0Wl3g z08dc2&F`-m%6I=VDu?1)+Z3B_5jz(Of*Fxa-0)%8>-Hl=79NB`uj%Q|?E}}WF(t|Q zyy#OEUy}zNh&CXx!JqI_j8DxU?>w+VCO?1+;o%3?N??{nz4P2%%rde)r@a*}@`$2siw_peUYkthxJ;ro`rsa}My)4i)YAK}DTS?KoWc zYxi4l9gwj33z89>_7}A+iFZ5gDp6NktD=Y?h=L56J&YIz?6yLv$#b9B23cpDk0 zI)RYFrwvhnV{0JT;#zXOg899l3~J{FYrLf;kCe$pqF+hzJy=F!$yWB=cWig*qn|xx zGO*~D_`UGzUfEPCCW-+o?VzZxJ{ps5liwPnaiAtyBYKtTbGYZ{KXA(J1wk+G@oUvmqNlx}0S<8Y*NWvH- zxCu})$Km~R{@mZ^#m+mNC%IkKALws1KvGsdvSus^XmnRsS5;S6*N1>a`+R8{!u)$d zR7A_IY&4*lFp48+*`=5>i|H_LP>!Ak#3D;xaO|R6ta&=BcISKdj4KdD3n%hRY#~pc zC>pxP*wRT!P^AmDy8WM@Q!K`>*1LPXv5M(pLUEUL80A7;_*zPa!=C1s*L^I9elZal3nUmK8UmA2z6ZoS2Et50kRgSXI-^ZIFACQmYRPKUp!8yAl9s& zRm^OwN;cl3=BiWSB8M(5?+vEuSEoGoZ4bZd+HPVbTn~rOugRKlZ!u5RekQM+GF}nic2{J2YXS4ue31DV z`ZY*3bds@W%1SGnRF5=LNi<|Z6?avPQL&tanS~CtFZ-4!rZ`QCJiAWbg2`R?dPKit zNyhT)Tx4XBI{jjjr6sc++C1yI++a0kpCG`G-9|1xrq{wXipv2UCTXW+SVAmpQ2zZ% zdP-HQ>Ii>rb1wc1_SMyHY~hUsnrJiHR(KqHPz-6byRLBqEas05`Vtn@OL=Q&(um4k z7k&R&zx(iTx(b%+#;tVy7k%nP$jLhB56WM=s1KjqKUFAHrYuHv+=GP{*8M|- z>6rZa9Xum?nG{s>{UYM=C?KA^F<~^&kC41bi5mULABjw;o9r3NPr@N&E|+tnkmp37 zipN9p|2Uf$X`$yyZ5n$N5>8abhFLOh^q6Oa6dC2nU<%G&Ps_pELJ84w}E=tRmWQ$fTDy?-GG zq$3EcJV4AsKnswL^>cY%)z=V;?)zBl{a5vaMYNY?>gQE>JUH0w@BRG{45Kl18Y6T@ zbacp;sRYmi**%9>kV0cYTPY3X+@Q=mbP)~W%c&Lx55QF&vG{kotYG@zCtr{y?ce}C z?0_W%1lytXl>1Q9PyhLR@9^mT&i$SHH3UJLeBFb8AK||b@!tpd?+*UEjsMPI;ipi9`}ok$f3@5w^G-n{0q`uFq2|7_hQV0 zVs|gL(3QwiEoB3e3731xgT{$Mn`VI7q%F{}R%p<1uNQ^P8GUp2YH=-#2jb1>SxPj# zc#ePSO|eArf<-lxJq4h`KlFxV%IK0@u}ofI(xHNUwx3haGV+ITXji_rG972N&FGN* zX8)KBjs98U!=eNq(#_}ye@-081_s_FZ$>i4@zxF`iH27NpV41oqa?h$Yg<)VY(+ST zktsdyy?XT?xxvkWL_$c+)QhCQ3ICj`q>0s)qG$Vi(IAV9g3SiEyE$PPMYst)VG#)} zLTSJm&is@zE%{E9gQ`H)6a3=A2ztaO9WiJR2fzR)DVX>J#!E^_shFN(hKYqa%7m^n z0n{09!gV>tOE4}wX|Gxa9>*x!GP>QZP}E1v_J@ObpT9kkYQ!^KSU;eoE4N1Kw6;Zh zt(qE1VD?cZHI=<(^RtK!c^V)s?-tEY+N(fD%WGx2RV=kxo_{ze^XLiwr7;W8#bcXx zUZvdN1nJ1*LV+bD@pJKNHkusGMpfD(iLfjHR0e<1$J068FsxlTKV;*2KMozAtoF17 z>bCS!ec~qtzB#a?Co(-I2v=B_%X{!MNIt6Bz7NvDhwl^~?nPh1l6*<_?k|yJ*l&#R z@h>(r{2l4}%kRN}E{2vx0G;wah4ck2L&G5H(JvHoEAz=gJchj*-_c~sTGozgZ;?`W z;4wnVk0KgbQ*(5E+2bgz4e|-$28V;$vYMP#uOZ-yOBzmoU^bdTe5|z`=b7|A zqTcYGFShUB-x|jA?pm-)RTcxM)sa_DLxYXmC!7hAA{o(Oc&z~*Y(bA$sCRaQ1&pE! z)d&e_`=_AzQ&8L;L4ijB>q?OqYe5^c2`qy%=;BYwdKV-sJ+QMQ8Q$X%Q8^nBl1|)K zDLh^xz7D3zMf&jv*@xUPXyvqm(5W~t(^Sml_{)BQ)KpB8(||L|meeoDDu!vj1cV12 zDpJ%6mF~3@0!5evGxPK_1+iEVCbu6e0v)^uYs9l5Ma4RuIwW;n@?W(#yC{~XMo1Gu zU4_t9yHzOOLg>m0+zvZ71F)8<03;lSmPcyFOtH#NsHQMuFWPP(Z8nJI?vku!VF<8H zOI(2*p=Ktva}K-70{&sTM@`OgXxis{o<>a-&bo~-BviSmBg|V7lp=w&8<2&;ROl3? zttHZ+4+qYe*f3et6d;lTM>o)@)))S^+WRQoAw~TuY#Q@&9i`S1>GHbOY5_*d&;}2N z_4g!4!Bl)*L}1H`j%Fj(ifE6XwOWudHr8%Nriofl-feJW7?w7~55yB|`za@7-kd-1 z*)Lm}1nDZ*Um}^uO>u{GqMRoy7X>OxDg!UQYjT>8D=H%^BT<*NS`G7c;A^hSFFwb7G_uI3ryqTjX(zxmb$tXmxLFhr>#{u#lvALE)xINz^PgY({z2 zKeR-%vKymHy#2|J3EgSKb=Uk1^o0lg39j=)X<6RZ^eydftU1hPtt-xWr9bctbbIUT z=WEykp;8^|u2N7O|V+*`tL6OdXXDDPrBl)T$`I{}Bd?Fep} zEmb8IFF(9Lu`@y783~BP1I*4ngrl$kBKr$UaA?%l^qfPfZxakeL*W%EUSCHCb~S1MAf`KoRUhB?y?CRG#i9;@Gs2MIKn)DP{;b!#3<>0q0K*jY7zyr9bB zsbTzZ8j)V=>WrpAIEvq{QmL`b(e!UQ6a6dGl!(fhrSwkIl>+8iZy6S3v{t)tTRU%{ z+ot7eF6cW4UWBRqc93%`M)S6=tj$ns>%mWa=oX7iwL%>GNvg&Z*SsmPTABDmnn%XE zr-PS9!uAStgM5|@;vp@TSy`fJMil;)p{UBD-sd%~Ngc@=byjuW)Am~~Vf5WPM9;8p z+jUzvf+Gi+i$5F&9v0P3VTE7`*n_3e2@1XlHBk0oZ&ZTh`lpStt&FkVdJGxLCObYg zFDQ&+8W^C7w%Px3m5if*<}>=8Y`?6hmv4f0OPW zj0aEUjt}3wdi5hw!+-hlr)O_|IkG)_fBfeC_G_i4r8DZ7{Fc#j8#okA>c9q1v*c+! z9u^E6_`5qe*%nU7_cOYOx+3+`p)W8`f7dodQBoVcp?#V*A{vT3NGD`!@hmI%22kky z)Cj$kQr=Q+stTxU2RjR}BwhW&&hnlyIm%zht3*2KP0&ac!U%sEpfH6eg~|p|ht0Q3 z#6LEtRTn04I^_;rPbY;VdQ_?lE-qc#VX&v7FBpDt*Z4p{?TWLrKtd<1O`(6f}Q*Kht>1B{Jd)aP|qP?jR(o%bIiFT zpIIo+fhHVZCr}T-Vd8!rAI;9WLXI8v#21P|o0SoJBHoG|H8HBoqEv{48PZih9V&L5 zQ9e!Fo&2Sy7yX35=SgO%c@e$fSz=hvHnXz`ONahhIJ%;(**2w)TzZs>f>@)x$|B?* z2MlP4ZplwAOD+?d&2f*S$MjN)`!XdjG}jxOB1_jaJa9%0wUMWTco1M0M(BW8Q`FRB zBep{I-%?pvN1>8R8L(yzs!*{}Wh0Zgd)G&p&B8E<=1sf6333vX>ahzfz9vLYTBGYJ zq8zAR{i@DXWIF@v2{agkQzA3?n{5*kdsAu8nyccy-nF(Ft?-jCr5Wapb!K-b#XB7l zS29^DCTG%jM>4@%7bQ(BloUb`9Q=_0UCGgEl{OPY+IWS=L>3w$`1HExPWoXU#og{o z=#%S-P3V+=vub)hhBT>l7UWMhy0O!`joxt#_bN4`{7~u-;s7rf)Nq0&ov+LhdQq7W z&S=OT;T+Oz1p;szfLWcB{F#s|-fD0`VtVnfoOUVBV4zzkSxYG8ABA3nuwEn5>tZfK zsBUd~2%4P8B;)M!sv<8192DoK0&9|hMSrbMo&D<8MIuyPk2TVUG`FKLK~g532B8TmRB)?aU~blXQUabr=X=`$71+83-Jq z^BRQC9SEJXu1*!w%7hb`PFd=dMQTj{ly|C|NNQ}BowtAr!A2Ks*Wq;*lSSM}8n4ErX`7!yx?H58>B-2)|wi!f(PL{KgOA zH+~4eSq4I$fwm4r(#{K`{N5^6?l*u^l{{Fvgr1rzr)GVptM2VJLB%th8%gaeom7cH zlKQm`L$xp6PZ`uRk6W@i18$S;y5N#+B6vCkYd+^ZKBYA4HeDuiHk~}r% z{jGK4-&&yDwoV8hn{6LjL50UAp6Jz+fhh9W#K0qKTX^hJOEd`P=J>XDJ98VHH+DEp zYIp1oJ}@%n!+W_+cwLdW}(d z&&dy(;4m$qTrk_m*rl8JJ0EBBuCjsrTs&7eM$=(#Bo&5RA-1Dml0>eVNV<`?8u2_~ z&lBajOI;dShkBil%PZ$tBga@H|5(!HzdRaw96gKYuF>Et`*_kD*X-uj*=d0T>g48* z$<1pgcjK6xZ{6TC=j?78oT~VM552Q{=$M^$c3Ksu*nLc?70cx#O1O&}+>8rmW{2xl zuBcC0f)Qb%>s9r}fJ@`D*!sd3X+j%Vqc7kcaB%c2&oV90#E6_X-E=f(9kjjmi%DK$ zTzk)cX<>m!^U*OrUbqe15+=aK_Bb6S5tN4Vr6N+=wYzzFHjQtF`OVmM^+HBDei^x2 zS?#h=0Pu>yR9R(7Cz?&xeSzS)--3>Z3>N1VmlIh10FvcJQF9O03qT<*!BILMByJ>D zZ6ZX)n$UQnPuO*_B@Z!-=LLf1yxt->C2cJDRHz;LslVe2g9$w2Yk@N3tt?PsPpblJ z6n_LvJWa}*BpG`^dmVp_oH(nc!Zjk6%mC3AHU&3^o6aF{8BU$-=aiO*!dJObR=ic+ zO|zXYvJIlJCJ#$wwu~N+;A4NE{#Lv!3=7(%Z+BL0bA62EhTh!= z!Lfm$?JTx_T5OK&0=_>hKj!^7%ZT)(Xy^}Wf%Rg{+%0*}E11`5b9L2&SqnK?I+8nM zsYfj{(Fw~##kI8MTfY`G)_~3e*2F(Z3iMw&E|D2=4b9id`BQtC;%7Abd#sQ*6AZ_2Ca z5Zua+CS;<+6_B=T6IWBpDS|c%07RyEEj*U0iZ?b@5x?>rM4W>8bvm9Ed@TvI6hZ*- z6!Cjde>MR+y~Dfoe9ovDcL%tw25 zG^UY~%wba6eXIBVT9^LahL5doYtbFTyRGhNi4hl=CfM(WeLxWd*R1usgC@HVkA4g} zdSh^8LhjsAAu)oa-I5AH8@?6R+!q-%b%8Kba>MUh5Ntc&s3{6tUG-Dr6% zx+@`3yM*=9D9*SMt&vFukd~WeZ0Bqdkweg&j+;^1@>Het-~!l@qr@_QHr}KA&L$pr z=@n1omSA zVDQ5t{YQXa@{bU$#NfXRGPO1u^>Xuh7BHV@t>#l?`Ay6DR4Lee^9hyV^5mQQ zy=dqD>B=-c3-vGRZ7Q{D*z3LhXCdciXm(4Am~||VvCR-KZLQCh&>6*pA=j})TD)5^ ztu-<-cUPqCtj4ki>vpz|TY;AA;-RFL;<4>IEi=s`y&Q{hV&|@mjT%qYBRShoRV1Qp zH(xc6rF+URdAr-Vfb2Ft-u^72!~>+O)OdLr`y*^oE4D@YV@IND#F)UlFG zUR9jF-=ZFTRt^;A&CKs!RiL4vui@QEdj(lv<<=_l`qt9RRG)KAS8d4iNP^?(EQt;w zJH?8{!LvBc=Jmn=n?*HHtdveL6-OUZryNR2Ieb$IfX>`OG08M0-3THVx8Fi@I_b4o zt{sfdF-ihj*NnBT(Bl1UT?++=_IRlMyzk^yyEj-$8iB*jf8a22}I-`d9LJE zMJ+SQYl9EKy-#rqVO&U^8u=V)ft38s7@R3q^`@;E|n(N_S;}qPy$LQizVt$u}kdn zI&g+Cs!9}fwDLurQMX61q+R;Man{ZY-qTjF0e$4Xj;yx_ zYp2~oJ{y-lZSKXGM*z5_L?E?m{T8%D#KEBKzrX+fQLjPs?Iw+Pnlugoqa-_N0e10m z*`()h8_n?BZyL4!wpnY>G*7!H*U`P`;c1ieMyN0Rs9y~7Y2E$Z5wuwe=@M46;mSf# zF4J^2=JE0=G=BQ|*d3WlUPfrHSzR!yB#p<{rM0k29eAcLaZdBw_~Vl7L#-m> z==ds`j>tARaho@)bR_j{SAp9ShuM!Oe3V*D3&8F^z7J+emIdItrrj#=Jb@vCaf|>3 z;MZ<6z7^aazI^lSm4oRk1=7=K6a`#CV`~g2~migw3EWdFh*57Ou zs0ClT56AfnyW55Ucjv`#Kn$c2KRdVtfU||wFi@LkQsxoGw62!?j^y70?4t9V`6J{+j&uVh~#3Pm!F zo`1ZG$>P}3dsKUi-Za{0b)wg^(co~^Xg&gazJK?3n|(;2`79~Q>1<#}baPkcXU}S` z-N~4cf{u=x&y!))(YUd@o-7*DLJk-Z0)``x%m|rYlcf#hxAolo?f)}ieK5V=XI~(M zqWKE_GjxUAZY=9uolvWN^@P=z+Bp4>lZ~6?yhzJrs~AkvNm*>=w0_jqC>^Kc%l^NL zjot=W8(-t!y!KSI8U2)$H~I7fJei>lIvx+ZQ93ACIdM^<9uOc^o$qhW z$}}ss06S(q`(#|gD)vPAS<9F4bQ;f%FX?hvnzMD%+5<|2llw4dIdRD^CCgSbOrdt$ z`3z?Mv>ZTU-M4J1;ew{vD}N!B#`aRpITWACPCdp0o-Gky46fp7S-c={?=w?dHH$4u z);91VlP`gcKn0)nv`4cngVZ-Ynnn3K8P5`J8tmy|o)JhcwU-y5FO>V39p{+Y?PaJ4 z$jQ)HgmXe0mKDfSGH>1(E1X5I6u`)u1iDETZ#_994_vAeYeFZ!coi+p{#b$|QOCfi&#Dcf%XaZW|@mMvCCj$(K3r(;Cz-cQfozc~Ey z`A^S|LeQ+^6#fu5p#*2;V33czCn1`IvJ>crEH0rC0F#^@?4XZt**)M1 zR6K;or;2-la3r969t^{{2V$7;*Pr%YKPO-FEd~0Js@(`k(yPY71t(=wIbYpt%O zIInX~=8POA1$ah(V|0u2cbsLRwFR7uZ_wZ9a?W1 zoOxd|(`MU38q`ASaaUw^d+RvfTNf~mdtEB%l>xWS_VFL^5AfV-I-$^(3p$0Q&8xTy zx5B9xzO*>3+yuI-cw(PJX4Lj#e5r|#d=novoA~HAH1QqZ#CJxG9h4lQuXlFc=e~8H zH(U4ltxufZ(fOuMx0?Piy|_pRWQe)Ig3s{&^U~T1CgHD{EG&B`har?RI z!rDVOtz{_D2cS;xY?lAZa|L3{Y)G#<86;6kjGvL#`rygq-?k7
    fy~KbO*4W&lf2NvbAs0=Cv1}-Uz!(|wWn(;L+H<+ zZ}+I{IJ`M!AG?liIq3Cxc=d$kk|DIYm2eW{+Uszsf?hJxt~)uIW6P|y*M>^WeCFvBx@xVoB>raDMM`^!D61#J>wY>Nw zFhf+QUpHwaFTK*zzO6|R(AZs5PI_q99h9J*yOl*Pb2cIlC~6Kl0|lzIIJVg07Hb?3 zo?syZ^W4%xcY8Y?WHAvRL-(mgG;ylHd_`0@c*{LhJ|p~REW(Tr(BeQ5ATC#NIDgJV zDq3C(fsKP^!F1!<(`IGXGK|aZmsf?y%mfPM@yo4Z6|sk;!9g-TzADJS&*J$yOs{lG zliDdAtaM5TO{P?DCwH#X>vSBjRMFmXNPYoNIy?XoqT z`xndB0=N1XW!JJtQbYG5aGR>TR{K~+wo#VaSJ*}V744U~kR9i29M3{f$F@5EA{KME zf{j806p{jjfJsC_Es)UHTI9v^Nj|vp2@8ZivNv1Rk|xl*2SfJJH5A!9SqC3E{6kjg zsmBaz9!HdAQ7^g0pj`9Or{5h$rc%*zJ+2>^GGgS#Tm@|8X>PmKf9g!KBz6Q7cd;15 zX&l(UvX;JScO4lff}0^>1ti2}@?lcO)61m1dqP%uvROjdT@=qw z;fyigb#mE=+UP)zddNk=KUZVOduXGk5A<*%m#`9<99Wom=*^%FHd|*}6uMQ{Rl_1X z{x4b(DdNl(cchN3MBB8GeHgvw9ZHFB>nO2t-L)jj8B;H^DpQV>7>A|Gc{AP|T*c`) z0%bPm$9wcTG^5m8J6Ugl64Qvgn-4Ic?x`nrw+B8PGD_fER}45jh{@ zHsQ#NV?2A#@&&1{4(R4yc|O&>w|BF5c{xok34IL}uw*|5>Yq@EOgqfStJni<(Ud#{ zS6T8b$;w!?vZV{EhQ*Qg#>21A@x=&Ipd6uy79DtV3q7ORj2h+;>NQI#WXlf}(ZIW8 z$grZ}Kfb z7kKjF>qmN@^oiQ%*N?n?o^~tt_$eQ6%2Z8Rh!S@XU0kQ+J7ja<_nVY#%Y(QaTy4f# zRz!qB$~es`E*R%yiQ~eUfh!nnp84buC6T1d@Cm;;cz^i(`0e3O(z|Nv{6q1|vQ+Gy z1-YX_MeXY&9kHXLZmG1HB%_I96A&ju~+cIU9c%tLNX!n?Qe44a>d? zA6O?*ex=k?+G9^lCMgJ# zspVSAAIu(^t*6N#Nw2l`ht)&#i}Q4tPN@>1R*ib9zOapj^N4ABX=ya+u}-=yKLPCZ zuhBy}9BDv7>PRod6UJ5W_XUJ;o4|6hV8{dQ>f@3q$L80_Ir7)X{DC#@&OU2Jb$pRe zfrpu%g&5%Z)aV$lY-%jgL&VaZ*%F}8ftW}r`t;AodYfVbnJcSC__x*ySjV+Kgp8ps z2A?CFhB(B26;V~208-3G1rbS=*Ame{iIB+RIdB_;wlkTgqj);+;$f77*Maru_N87q zn(&Op4shSm>b>7DSZC~UgRgKj_h*)zb*zCyfrrD$qH4FLqIE!_NT-mOLjk#`!NRlI z;WA5BnI@jvbx9dQ6O=j4cm5;`%KYl{E4d5z?S)*zLuGD3gVy@P>%mej&eW#W=47Sg+%;NV`NvzrvRnff`klymb&w+g{ zV-;-`(UJJc9-O(mtFrA=%Au(0(_Q|=5v~wII{^jaTHM$$8fprqi;9BisLf2;R6=9A zjF$|s(XCMd>RWf62ttAUEzkfze=J`f13>&7;ee(VL+51B>{-_v3g{?W>MQSH5HW-t zl|`Q(^XT|6JmSV5ixo=Ufu!M${|TQIrTP`k%FPZ9m|_+4Z(EkyOaDh#v7>b9-Jt&n z0sMSCfWxne2iQ$he3^U}Mrb;<^)NzPB%Iz}T=E-w{d5bvjW}pqL%CH-W!BJKmu$}E z)X1Un_iAW9Lke7wnOc_R`!&lcs|fhy5Axh|)Jc`rqxPQL&4uj#-zl9u05+E@iicet zolwU2vb}9}nuA>@F*K-a$TJA+Mqeg{Y!v;7dfE1db>qlSWA%okK;S23g8ta@M>FKpm_(XGC;9HU5oC5 zHqcgj)k&^Tt2hBTq?Kh2YIi&r^L|=^I`0xqZQyJmlNQ0+zE2L-?81%db+ML%1@-Ez zGi9<`pXqoRbEcBFtMkbqLh4yZ*U(1IjyOQMPfrveCn0&1_1Pd-QuEjQ+}0vn3SZ!DmFD2VJRKw-2liQYudey-M88JNt6%}H z2S)Q6*9hL8J4lc&dQs&iQK8(WGZ_dQSz~WZ^XGx4OYz5|yjD+~?0(83)tT z4AK!0R$*$_U12T`zTyu@7rJ!R%PafVa!X2>g1T5Y)OVk)RG*K9YjskZc2`rK;c5&a zq0%5BrKM*z)jD~PZHu%HCofZc?Xl5TCBd3rP}C<=c3w)jZ{vL1xsAH4WncU@eTCsg zr%?QgQIXGx?;u{+UP~*%sDQi5!317uS(J_V9N^))d?kXpCQ9;Cl>7|vCOqh zH4Ex-=$=N?+xjMRJ@us6*0xgnM!?-MxlDF#C~irGdqntlayuH@?^?t)5NBbWVA~Pv zDBmf`mXTx4eO9_lGk`=(b;M62=-2{P@r!)BjykeebzM77)rzSSAX$(=68Sw~w8i-W%2M2!gT(21~zy~wr7W_T(4lDya(p)(nvLH&%z*(?GHx3TmF z0N^*Hr4ZQUi5im-~W^g^tXNLP4A8c;>6L-gwm6j*cAWTF#3@~KVq zYtO>isYWy|JYvtoRyM|R0Pm9nZWarb1Cc|o@U5Z3bsbqR?Wqc0FY@%_XH3tB^}H!z z(%4@V`sR(=2Ng`mRDGlU=ssq3NlVcj_nvd9-Yrh7A}`1@kNvtQA}7oFA8kT zdK#c6lNJ#94HO)83aHsim#r7!AFw*TC?6-NC}0T$02(=zMbCT{9hKAB0J4QZG#imO zNmfK>eu;9%qt!Rh=bKgFI`mfL5m}>Yfzf>fR%SLH&&w+ep}R`v_~tq#+(1B&+0+rF zzN2C-1LG;`7gFh3%XUl}ydqN-1`s{?NGPO)YCEj9t{g(xJ)zM*r`Y%2cuwceVgwe^ zWm3{7mOg&My`-ojlPnBJ&}Et=zT#{e31)kHRjj#d)_v$%oG$mV68e*=V#fJ z)@*{n<<{aOgnDA2re4MF<@4*~7Fws1O_)Qy!-KBdZR1b6?fzaWj%o!w~z|Dz|P;9(yHHPj-zhNTZ+(Ky>>tM@8rrJuH9L1Od722+oGjw6aSX$ z*=)@|oSUb2+iZ5nqVfPH#;?{D?@}OBYI-?_n*?swtK|e+g8enPA1ICo3Olfw1aO5g z${Mm%Sr&S`AvBR)h#8wGbtNEk(;6p*-{Um2jlV-g2hlc zvH=Oa45w?4^6yQJ7KA(9L>;_H;(wKRfd-GLBWB&ISbTRRH&4^|CH5>xY+aD`S780( zQ>^=mx;2y#-9%Yr;jhDV!`SPw)2*v-TC=K*R#EqX7z0QOnQRv6kgy$9h`MA4!$?W- z6pik+3oZ9-U2X07;JQudNExjZ4@G_I-VWG}f_8iCPr9XG>N&kOu9-D&6)@jVt~_JT z01{DBgIyP}!R#83<$J%~be3krD2Alsd^Mti zI@|3=+|R3nTX?h;l^-MN*Z-#*O|n@L#jG#kN;jOQS+)s<=V*ll@Uuf_xbg~IMn=rm zL_cF6|7V$uCK;U4glEb>_$%gh^5*)0qWc^|?pO5qUJr;%PJ{FoU}* z1%3-dU$IdExw7eH9GUkPkoPpX-h2apcC{f6lXwW#Prifdx6|Qw|L8@wl-1vV&!E7u zmh7YaxF6QbfwZ|*CLGqS=nl8ARdrT=Jo0phF@oQH!X)kg;9>T3l|*LtedHFMHO})q zOXBfDj04QiN2$%}ZF(-!LkRjRJrT!F*@sBBLlsiS8HRlEmz<5J6jr^3=>eJLH_7xB z65$g%648EN!NdKya7QIr0uF4UG7T&6hTe8IzcH%0EwUcj*`0#dDy$zZTyA{z(S(&t z-$1``^yUJr75G6SKR5|ycQE4sFP9}OKB z=p{#K^;Y2b8)K9mX0dYBOF1Mjk-#?WKgImY#r$1c+CSxeOQGSD{hvi>*!)mF7l~P%fol9t)<9;p zJ}kdsF>+TI`;WECOI1)OGNEjpKxo-RYfYH2Wa5)g2M+a9Nj0RNW6qjpkg6eoHmaUa zQhRcKdT`>szz{gGXyaJ;7oG}yovnZVp{i~;O{hAA8v}}PLi?pcC&IY1xC>+wy1BO_ z8C6UM5X};}Yl|A$+tQw(L3O>Xy!^0Ax4@SsqM(W@y=``z=PcLJ4Fp{}9pDOJMNq3h zlhP=1Tz>Pd5xjP36K1LPi2{11IjDNCyHPiWZ9}X-j^Pdm0@a-p7ENp}W7TB!%Jubg zO?k)Aud}+Gb7bm@+@>aHVhp&sSX3 zJBL;9QzV086$Xg(-}Q&d7qcw$sG@9w1?j4Ga@O&biJi~OWEC^}B}p%@$`#G+20N>r zonuU8emAofOz!$AU};5@ySAa+oSb7!WpdZ&t&a4n@+O-XJSv>hY-5dPNWkJjGDR%- z%qS8(vVim;w%+{JG_8FQ^?-NhQ8LKK!zD$VGUe+$n~jow`H^%_dJmg6bs2R4qZ`xB zUfaz6XN1!+bLj+0R^80==w5L?eRy_}Oz9|rYwrN5&Fr3ETqHFA@rxv}n^$!DM#A13 z55GPSo$E!C6#aycL{z@@eUp>FJi0@u5- zH#wp@ceG}xbE6Nm2G{oL#-ax-|7N=iQ_Rol)OmbbAyTfb3Y8lt*ACsPZi`;p3gecv z$+R$bXXmAkvyh!AV#j{zsB)JL(hZfhE}+)3)&86i0x)B6<)}ObHb-mck*zK-J+pFN zvyS^?*FjAf#*X*vYDi4M!oG^~5jt=eXUXH*gZR&Dyi)`Ej%z9p6oE9W_?`tzcfN7+^ zGnu#tvEf-R+$u?y-#Db>XqJ^}l@Qt^7AV&XJ>_q zTx8o2%O=rhjqC}yW+VT{q=6k$VR*8C?=?)>tVmw0`O1r0afZo`{3ydF9Oz(NS-%QF zlJa3g?3{YGSL6{ZDKE39+8mQCLe-Xm_KsfVP*6Y1T}}XV{&}$zcCjO`;#zKYYGh&H zRS710=p4;P-MagdbuC!4*`8wrpI#`QZqdQBuIjP}&3r{SMJt&7l6)!Fd++-4HrCs4 zUA>62BKaJo(FjQrd4wQpWfzIdA?tJ8AqH<%E0uDA5g+bcH+M&51yAM3=}&cw!s;|& zZylx(*?m3(O9cxZv>!|?jzbplW`Uy8C}r})8v?YW-NM;&-8Uv2A(Og05}rK#)~`pN zI`VZeo1GSIZwVO%&);eW7N~KV3@*wm<}m{?!SmShg&eRiK}+4hjc?R&f4TjUbqqBj zfYctsBY10D_Rr-HHkLf*tG?OXyS$txmtYJCxZjjdj~>EBuz!=cnQVf!tjQ86|8_aE zN`KUarK(>tV{{t7$&FywU|*!%UdYL#Hj^T8yY3 zHXRC>U4Ib~ah?l%mkKSW{$E=~GO*H&#rjo#T$U&5=Ay7`9q^QAn@qrNzFYAeRCS{w&66CtW({t>;9uEy6I*hdtpw?#@6rmy=8(s-Q{Jbad>f;LF{yG#wJG{ zI*+Bv8DJ_)aaTFW4u)v;SSKN|y-ngi=@W>jTD%)?oc_nj#!Yfwq-C;I45sOX5FT@g z-I~z6O#Ocq8@-LKufB>{q9*P!8*N6f<8+Ky6!U13r$mc~oK5e>>1dKqOS)R;kd=&9 zrhOK(D;PR|`jDoS-DCBM%{Sno<9PK;T3+o9|1~R07TaNO^3!bM>fu#BzC2E*BNtSc z$swfohF)IBP}I{k&eOO^2ejGrLsIU?6AwUyT@MrK*k~D;l7{q_J&_wpZ~snny#ye~ z(Ne>arIjBSmJhrru?=9%nKklH{cZU%KbYnhX&IlV8Pvq31yoJkJ&m(?JV^eYj?-63 zd_fv4Xnl-#8~rW$+`C0|#pENQ`*$0UD`IAy(b=#;BB_TFzHofSA`~s3jp-ZLXav~t zrEN5P;rMDFcrhI%mhT4amE+4F$Ja?w+J{W}JN;Y0bUuv-+%{6YBwZ0XNi(|js@Dhc zd;}#z^!L>u{VnppVmjEmqD{8whqe)C)5(w!<=Njm59}!n}@O zMf4swnrO0@73ZwaqX!b14R$db(?z9gt+wxUDOw?}3KL1vd-Z5Ygm#sOPb9~KcYC6! zJel9<2p&m)gKTAgLatB{AneclTK+3$f`$E=O!C1M{~dM~-Us3H;thN`k`56uS2T<_ z*#0dJZ2iD|g-+OmCqIP-_!KR%$J*Igg)7GCw5Wu~lv9d_pBwFhr%t6N-eo-0wE1qHXKTvm1BZ zDY=hdM%P93>iDHMFSoB1&G>dwv8~`(^IQ^V*{;Fx$`PUtOBkRa#tQj@>t!7dmidtr zJ>X$z%`5LJvDRWKLY)Gn_4qjS z)+1yQz7XgzvUiy@Sqm?wQDnRD>@J`es3g1YgF;tY_0$7U9g|mATH702EV$>M3m2Y` z;8}Z)1A8y0tMIG>aroOfEp$KmK0b?BkTpI~V$u(NAZOZ)b zwe}yQq8ang-@J$gM*g zvy3KbW){@k^-XcztBE^dPv6~O zXQhU)BfMC56-aAtmt-)n#4PEDt)d0{RmX}qpMl$!Jo} zoo{F3599o1Y<+*)t%~#UVl1ER(U5Q-2uvG2(W#?uN(m;{r{(^N?)3_PMfUaCj_QZiIDj zmXJ%~7gO>JTs1pN;95OwI^CL*o$f1g=56A=B)0;}qGx`FY`qRxJx)13j~x449AF$w zQ=(DISLs2ugTaR3bkUKROuqGoYV))+tEY}x_*Q)UO8@v(gOA}l0lbU~wF|57QL{p> zZmQTj_))^*Y)UwO)%g^Xa7xh^Mq=bjX@U|42&(4w}%v&h?afPFJ3%)JHbDO0o$c8SB3S zA3`pD40K_>*3mg(hRKxhW}&&FGLPv<_T?hfniX5jm0I_Q1Gi~QYw)Qq6pybbEBueT zkkQaN7P3OMnwZRJ4Wpr(S@fTvDh-p1=+l?)cOG7S8T}f4`F{I`{T#8M^Dh@1G#VKA z528p>B#Tb$MPv1^^cu2^dTb?Sp>(X|!A3PaEdqn+dMI2z@m%gO3E)*uv=8`<`FWPdz29}_Sg?yUqJEOfcU=F#H-GACEHj0^>m zwcwv1;c$f%!8ICe-&F5Mw)dmz{oM9`-j#zf*0Y;X{fzFMxN(;GB$~wIgdDkNWe(oT zpxcng(c7bE(LGF#+FjRPBfB)m(F9@RG!C#`B|-2-A|Ieap;}e>>II=4#Dkz$T0@-< zyvcCHVqj^lqggSG$hbI~(v?!49(dmR_5@!;oR{+Y6;CkFTNLnz+J*{C_8w)0`koh6 zXDyVh6PD2!%gCq-4`Lfe&iv2ySg8O&1uJ*PQVuAK^>Z#pzYckQ zq%`APd>gze4a&HrGm1Y#)XCN;8K&`gYceSR_6Yvn!GFKK5C3l8@6x?09?uB|fm0b* zh4HC;j68zR8K2oY0R^4C2BqA?hDakil@pP`2wkJ`lT%LR6?qG6(6*gVd|EvWvSiym z(Oceapu0DvC>An-h(Jeuy7NCaee>1$Q64wS#^@8w_tb+Mlslw>!>{9yXMHl;k#uFj z^b8nQ`4&NCg35h6SjxZdpy$@te~>p)QqgTbA~I4{A;y94+gqFsvbz?_g@VE^Br+&}F_Ut<4XeqZsDWetXT2^SvFLfJ{*!xOTNN|p-u zSoE$K`@jwNeMQ-%i*0!m#x;M>o33+WadEZgiS2xri4~-`B6+s{b$b{%Jt5MeqNq?| z;RAZSL+=8bvH;_@r{qYP7U_AGbpJ?_|E`=hVU+>}^iY(D^$BR-`7&4(17+^YREy+H z3H03t!2E85D{%FJDE*bi(!5< zrmb+$EV)d^!U=?2oCeBMC>pMjpa% zE5oVoPWpz3(F=m!A^+%{;M>+#Jur}|(i0SJ)}8yi(NUhI!(Oz#8&Tb$7wwQ=Q48ut z4|bzhQ0kNa{gAYm^ayp@e8t0Dv6=$`P%!RyYzUGY;yKeu_cM1PH__ewIvE70%sCf}=EwHh?&l#h=ihdnH}#j<`>zy>~5_ z#FgdCc3*a-R##?fHQ~EcK&41ewzkPe3|F(UfdfvGV>|SEA$z%?UdYyejzu+F|2&Uv_pubMX%7v`< znoUZ%t~Zm{yt?5}pgP3v|mzuYF1o=WQ%U>-J-mrLad# zBWtN@%ngmqBxgg-llFvaHm9iCScLtt(N~Dz_B*}dTiLGaNKJ~7PKJ}sRQ3|b^rh;- zg}ZVJaVrVqWAV2TUqYRr06BFRN$t=ARV;bUZDCdwEKJ#NRNhZDGgbd_@y=##Pa5wj zYv-*3Cdqh9y8VRg>;DCuKdD3!qZn_q%om2>M;eZXn))gm1CLm=x7x~d0!r|}9 znDjhg?sRYp#8oA_9QkvT=|075bdTs3cohaE}jh-=A%x2aS@%*Ip(@|Nndnr7V90=w$ZF* zC$Z|Is}SIS8sxI=lgZdb*T=P%Yz}gXOps6g#Yy%7ILCc1ad{57fA)_oK0{ z^BVo`8CGtcw$;w*;q^4!OkyK$)kY!=BsE)EkDZ*+T8&$VzPZ&|VpLm88TjzE}NrltBJ3cR5S9s?Oc8RT@GR>82txT6|sBmBxn!&Twa(x(M~;pR!_ zv6UZ6>GAc?9d@Zhp;j+CboY!_W0ccHOOs23AnUk~$?vRfEof$N4y7lXfU~Y{$8yJh z%Ax1xwV}ALwk2Wd5DwegzS-IyZEep3Po7J;c*wWfWWi*M6%WtH$MrYb=7CUhUzEMH z-~rd3$~-ErKprvwP=YWV2j$WokpUs9iCptjQg-E26guZM6bYJEVy!Z_0`25XFqJ~P zXWiC!k-mFK-HqV)aUJQARP{*J3t4xNM}CM-G%-eLNYtvPemLUVG9n$Fs_I9GyN$&c z1eT<0ioiy?2T@{)EY##%k>%x=1(Sh<`6ZtndZ3(4^Wkg&U&OT4CSIwQ5Kn1M08;tN z943Q&I{c2`{TYIgxzYqQOM`l2J}W^DcS0M2|4LB9?SO`$Q~}0KcRYNG8^CCmmFebS zHk~Hp!QA5B_p}@wk!Np<;Xji30+)&W;&8b*BK^L|ryy55Fh-BJ_c|6qOD+yrd&RAY zzK=f|FH`YxYJAC-2VYZvBD2Ac)L_Tf0G5L{`1Zb~!M4<3TWjEQ7L_*(*^EGr4_lz_ zZ$ZW=>Pl+kpFhd}R>;4F_b2trl$W<+9^CWEu+^#FDw`Q$aRKdQt9KiOS}HGS^$^O8 zS-lmEf=SD4!{D)Xb>k3{w+=&|SEHOhu5-PPj%JfdHb0Qfa9hAv&=15L6|>P+Wf>3D zu$4|dd8BGw?CS3%S~?ml@X0zSHTjD>ZtrnZSI;;dnT}}#!^>AAy-L4w_Abb$LHE)( zwf%FtY0!Q3iS7ijj$DeASE75-A!JzQ`G{{ZAsfUS;Ls`qJ)IN`HU#XTNzS!Tyl7{JQK@)0Ay&7{wjmLCm)36@|oEU)3dHUP#@Z}!U}q#vWsoK!z3%?%1I|a zFY;_wCUnQ<)&NJKs7GG$et`LFD7}=qEO``$T{b= zAk2|n1mf@Y9(8QUVCR4o2H`k>g9pp^&Y-w~M=nhY;R2^Q`0x{L+OvU7b zSPv!2d7(#xu_m_s2JoE+U;CDTNRd=6d&VFklZVJB6 zI2W8fP7)*QOryr_X*cRzW4G6`*Yp|; z<>-O8c?ogWv`8PX+}B}%o0!7ORCaPDt1ugocF9@_5s?m$uM%))nq;Z){w~Ow7aW@s zSZN|6$WdlXb^+Ovf*H93W+iEkuq!xcpu^^QmJdD%l@&W?F^3%<7qSIsCD#a4&Tu-v ziisfQ30|VU930ul$VDC()g=$O9~iycMn5p|zK0M73b7ZnEF%K`DNLpQ7VR^~Q^?o1 zN3)BI^y6u3-lQw_f*d{o1!n%Ay3?@OW=)`~3_)s6AZYm-dmt^$&*(1qgSdP$C7s@fPaO?DN)n}I06RZkIoyAn!O zmncI?IFh9R<<*Bugz&o!hyy`BASc{Z^&5=L8{^*`M}_kUrB;6!fXj)Txh|t*x zXb;}^ECjx*AsKfk*Ah{OTq5`GsVkubgW@_q5K?zc4f~-B?W%P`Oc7c0 z^|_&^EFE9O*3=n#!v$pr8+I*mH$E40;Z6o0>n`OBS4Nos_hmk#)uwBqVolq^MQFwj zl_8tBoF~K$2QKo%a*hij;e9D6_dA+g@B6!?76j)`Xhgy|>u~CIcrDiMxsC%z&2b}W zcXcLEkT$l;+-wGuA87s|AW${`?t4nUqER}X=CF=B8hMs$>~0vBabQfjY-O!b_nEf6 z^^h5xqD~l1)J{h>jy1<;x^9-;_sY5~TYa`P@^Ua?2a*^)TfR#l&rYjNv#+n+Z1Dd0MurZJIo`9<{U zKZ&sX;N$kit{y;|6G5NFbBHZXqBD7xXJl?E%F&2Cn$Dw+?!gC_Y6VN!@wULbAMWCW zA!-=_2%7J8n%oosA(Wjjz=wq*n&v!*ST?A@js4&;ro73CmVI%NOi_X-<9w8ojtHi@ z{pdMNfI{^8?a?tWR6u$;1Js{A#(vU^=nRp27Nun9Q3_RIaD4h{I=&)G4}{rWp=;tM z2E8!vFt#k%QHQ6p!zCj}Dkjjjs(b-GGSzGo){wP={YMI;2;6=SlXwV~UocSqyHEHo zQd4%aXH`m1-;Tvwt7$&*;eu;afDAo5^J=%V)oxeMDZG>e8SnwS*4@~v7`)Z{q?MOc z()a9WQVnM+Q9)`a^tUs++f>qb%2EV z6$)wMRDQg4VbeWsV;^26Qrcppg+^v<;J-*277Nv)4!Z{iUP5ss0B6W&&GyT38jp*Z z%F1gf=0oIZs5KAwmJ=QnYCCJ6-rnA@HiHn(OY9Y5qX;z#vGQ7FGJ^UcoaB(*PpA_; zoGMRyQQCw2K}I%GwIUWH7a}TY^M00$FUu=Yq6d!TcuK9#QwjLF1&bnc>ljhXr+k;i zOQU(MSio$Y{>RD2O>$lk8Mjporsu6mnoKu4)oh2AFEOno+8JS7q%RfzaPXwlP0KRr?>$0@$;Sqg;w@9<)y#?3^t(c2`jrNu!I}m1jS;o)@CsG54)kZE8Bj4}f`Nf#| zIKbzU4V%WASrO(d2lBgFl;ude`O-*)URj>Ji$j%(g6U%DdgWTL+T@&6JtUH4gi3HF zW9S=u&Ab!3kjIk3D=^iOj}x+%Z1d8gi=27M6X)k9JESZ$nk-xqLPqs6BpJefK46^?{~_{(NlHawh^q zE10HnlD&vbqY2B%JDQgBmiBle`6lT1r#ukHpb681n9;%@Psc!_TgB|WNQd*Si$oQo zBJ`M!UaXQ1_~30wh=SYVOESS=%3F#erpa|Oo+VY@=FTU9Zn(3<3G^ZY4-$#{I!Pxj zAxLmVcB@YL3m`euU5nv*LzOS$%6*iMAy`c7Y#|v|>fqp0@_}*0)~yB#wW}sT06KjD zyhxIwZuF{;_L9_BjRme+x+~D+qs?e9s_08(2!Si@9>a);0)*S)zA^A`MX0hYg6-6h zrl$mpxO_TGvmsg5i&>UI%uci=5*u#G!8>w_Fo-ag7cV>>JMi#!=VK`(W+k)o#>O`d z($VUc-g=_MCV)oF+vfJkyV^;z_bAiW_&xN)FK!R_0}#bx98|=##DJ7@m-yG-Evc0=M9z z8?d0AC*@6&jH92(&wTm;D?%w1t-wouvz$*7e!T(C@0zuZO$x~@O4tk)5lQC|pJ&N2 zboDF0Gg(Bs3h6Yk%Lx7eMwZPc(D2wL_i@hS4z2avOvJMayMk#!keTz>afNPqL;^~}g7gGjoN_9(M zhd$Q>jLrTHo4{7|4Re7dVRj6OKP|Mu-AV0TJSmM+FS% zsOc1Z6BO`z+SvRUAXlosOI2SL;4S|7?>2VsMWK3-xzkm{$VidLvBg4@A&-z}e6i5R z{^r@;JT+?9>ggMbchkvtJ$ScdL%Mam3&WH9*uXcn;8R1eu1b5Z+r)ipDqT3AmfB$9 z{K_F)Jj+;i?a;A&pF=SWRH;|I9FqRL?$xMO)$h<^Fy%&F4m}6DmIYltku^E|P0?Wp1G~?OT-)7QFz>n8yeS zGlAjj@_#HY#K>K40l}a(iv+Ypz1FSDQFSaa`&smwgJov{1FD(@_ktC`QFiFf&eSx0 z{6B7tmX3vOiEQDfvOr#@$CJ;<$|(Q0r>Mx6N4eD{aGEUHooDni&xYyvvZ#!g(ght@{kkkiDh9FBU)eE^Ek~nE zIn{!WcXzX&%g{3 z+@h$snsAvGilIT?Rq)KyNwE*A41S^dB!zoB;jrA3>95hJ5CA6AXpI;RNGK!G^u+w%6*fd_u$zu90L2Qd~@Sjd4%w(kbI4OndLy7oV7Y zo#sPa4HQ-}YA;ddFLLXffv2WzHQ;Wv9cr&tm`SR(JSe|?gmf&Ecn_XC9)J6d{rQfg z`M37x+pgx0VegyIf!QYhLdt0Xc0h^0mOLe@MA4b3w5z>Fx2;JpqWL_c#PDLO!jqqS zYiJ6DKIbTWE|B(|qv^Ro%yW*4=hft&i|IZW6RcDkOnpgSA)LpHNGjl1j|DzW_K}^P zD?a}A5m;Rz=|ELqZ_>vJc6-_ejP!XhDEsffeN?e&)t9R)Ur*MKzWv4p)Hgn$zOnVS zsBc|Bed`12TU%e-j;^*nJ#E{8>N^+Ezk=V|QGegr-+f zm^&oED(#Tmhm!3rMtBXhZd&Ag7a{pU^<;)LhL{sTe8aN)K+-LYtAeOCvO|caWc!0G z-0D|Aiz{<10V1?=PM{T$1t#0#&=H~34uvYNoLg%PB+}gXHpNt~C{Kj2g)w7S0K@Jnl5IsnW_PXrEhN-H=kC7OkrmLd5 zotzCnimLfk$*U>|jZ#dL=!sD5szojyODzT^Ic-2QzrI0{(N({slvMvMLTyVX*-A5) z@~}43j@1&v9SwOPtxit0Mv}y(m~vOq4b}LoC4>=c^#2vjHDDUQfg=M>MUvc{0)r0~ zzSun;cLb&AmXG7Jhad5QqfHS61H(9G2!CLqZ^qAlFd-cp43ts-`h z%`PB>FC==;QV7im-CIkzo@HP?R&NdQd6rS-;JlRuL#0~mhf5JU@ zLHdX~w!L(3ILyb60wK8H_!>ZB28x=Z96n2~mHgwyC_bc?Mb=~#!+S-RTen0p;={QU z80D1##`}kJFBs%~12A^nVC?w8*r@?yrwJI_ZZNj}U~Jcbv26q6)J@W$`a{CM2^!#e zrl*S5RTp&Vd3%0T6>OwAcC0jw90!t(C>{+6T8O&)|L1>I$NFMO4(!EHKh5J~i%sC( z{r)5E^U3{3@GmBQHG3g%E#3Uz|L=dB9gVyljjSEr+t#7k_5rhPhehvX#9gVyljjSEr+tH!f@d2}AhehvXI}W^<9gVyljjSEr zd!R$}zz56&J1lx9BVQ+@2Tg?q->g~+4SBCrtT_uI+5EDFIxK)t;O$o+XIM{53!15; zm&Ss|)lm~c;{>LOpm74yNYJ=JX((vi;DierCooL}jT4YYg2oL>LqX#PCtT1tfoURW zoPg8`8md(vz24K4gseu}#&<`f*s5$B(qa1sAc5Hlmwidux}meQU}byc`)=g^ZtnYT z?)+}Y_uY>ByNAB-9va{2=TT8Ii*};h#NDTbnj(~pLRbP~tsG8m`5Qc1vr;w+fl=Ef zwRs63MLN8DFbjx1ln#f1bS7C)NF!!M2{)jic?+Rp1(V&R=}wVGk*y-xWs`H-<5XLm zY^%`uM!hQGX}FEc5-qq!%hqAQ;Yu&f;E>?49sYx^Z_J1s>lKc6iKAcR)Li6vO`dg^ zIgvhL=MAOP7U^~}bX>t`x0?JeM|$LEh3e+Tc5_o*+<5M70A%024mEc>Ze;f1YKvaW zIIDP}C7719gw~VsGD3APR9+v+%f8!oOhg*Evw}gfklP#aFKbjLQJ! z5?a0ypq=q+74v#P;U2}N7sx=yJ+g<33_dbBsg{>QSjJi-kKYaOYYvyB^*Zk7C1PnP9qB8zKU}35e?T7`z zQ-;8#Tg|Un>-nERa(t!xF+v4~tNaGjCFB$Gc$|dF3D%!mt#inZHm=c>_1Qwcz;&d= zD`8r{fDI4_>cuPCaiOlCVbEoP$+X$O3xMK)EMPu_)~3!mM}5p<`?D&3_QpGNtF~uv z{Lt1|G7{UZ!wwa0h02@TTm64-(zRTTm%2m+9l3A$8dATTZ6c7ZSF|XH6=I+mo9MM| ztivjou*PY=kV?z1-b?{wfyWK5<$kovsrf zwvcKK9kfdaLMCQ0)&M-nDUFBW2&gXOvBZ}Sx35>4dj!J$?)QjN9&M8U?~otl{}0HI z2YU2P?Ml_g9{}^A7?U*tyqxGs7Zo57Dzh8a4P=&M&LYzUHm4`jhf(GHfPXI{sG#z0 z1M8KkUlV?#&Pz{PF`Cq$DnVpAs3s@Bv&6nyq8P;`FwmJLe9nri0~d7$Bk? zoND7&d*G*4c==prbd0#Al4WOe1jPEJg>!a7_}JlV)u&gch4m}Tw*cYRXr&kRE2;wX^vl4;!(l4mu9jW4YaLW* zY8?zf?N61t5be)QZDOcyVSZwbD(jWBBtfA9*#5YF2-k$AZ0d}Q% zf^A#ISdiO%GsDap;soqh57Goh?NPoa9ceA4Q!{-4i8;}p!|RV$BO7FcCt&mDRs1E9 zoV2Sr4W{s)w8`(PRa2!owV#3lQR5jIPS0zsfzBQJY4TdQI+oIWuCpTgE3y%9Vn$_1 zgqu>`P^+TCc6d3JF5S*?%g1h5Apu%Lm?m?^(!cTLz)!uFVmnT!EJ3;P?HfhL zn_iPz3W6LPjXHzf=(xw$;UCEy1RDf!5X?eS=J(q-;J5f!8k|1J{Sy|7f4Tv<7vg213$^R5W9w9{Ul4+T` z!-Skahu`tZesa~1{=TOasB^XxdC&-Dyf&-(txTTOi;WXSZk(=MIEawqW`f~$Rke@9 z7Ck{TdpP4Oa!CT90-=tZE!=4obJjS1Hv&x*^iV*&m!_2I#>2R^?uYhyKx+5$H~S`a$clm zvQ-SG>7*>Sm`nB+gjg2+e-#_OjVdo8c}DcPO0qnS3;lwIvGp{cB-3(UvA--BjF(i1 zN*6d#m=!Oxl4(Kk3f6kK#+nkO45_O&z1m7IqHzvBY58?Zj+b41fT}vPS(w=~r_4;0 zax_T>>4i`�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�@2_B0M!Ub=hKf#w?T%dqd&IQbx=Poo zz>D?*-ShJ8ZlG^8CsZ|hcbxIU1%ijyM4K zwz29R0r5_Ery~|fcYC%NT$Fjr<|Pm$>fYN;cDBWC**3kRoMo!*BBY|ny*r)V-Ca$! zMahQV@9p8xyJGHw_`5xgOyB#T_6zK)2G0l7vg~s8nnl`Bt(KKhNbeOTS7Lc}jl+Q2I;*dM z`5lbTooG*PMh@M<9qa+B`n_C_?2tchdJwl0>VsgmNyW+T1Va&<92pcKLy2CG50oiI^3Mup~Kkxir784Q2?1cg1`U( literal 0 HcmV?d00001 diff --git a/website_next/ask/tools/source/formula.js b/website_next/ask/tools/source/formula.js index cc24acf46..5a252cd51 100644 --- a/website_next/ask/tools/source/formula.js +++ b/website_next/ask/tools/source/formula.js @@ -160,8 +160,7 @@ export function explainFormula(question, formulas) { return { answer: `${metric} is a weighted average of ${values}. ` + - `Each ${fact.value} is weighted by \`${fact.weight}\`.${consequence}\n\n` + - `Source: \`${fact.path}:${fact.line}\``, + `Each ${fact.value} is weighted by \`${fact.weight}\`.${consequence}`, fact, }; } diff --git a/website_next/ask/tools/source/index.js b/website_next/ask/tools/source/index.js index 6eb6df873..2c8b7a53e 100644 --- a/website_next/ask/tools/source/index.js +++ b/website_next/ask/tools/source/index.js @@ -7,6 +7,10 @@ export class AskSource { /** @type {Map void, reject: (error: Error) => void, onProgress?: (progress: { loaded: number, total: number }) => void }>} */ #pending = new Map(); + prewarm() { + return this.#request("prewarm", {}); + } + /** * @param {string} query * @param {string | undefined} path @@ -34,7 +38,7 @@ export class AskSource { } /** - * @param {"search" | "read" | "explain"} type + * @param {"prewarm" | "search" | "read" | "explain"} type * @param {Record} data * @param {((progress: { loaded: number, total: number }) => void) | undefined} [onProgress] */ diff --git a/website_next/ask/tools/source/search.js b/website_next/ask/tools/source/search.js new file mode 100644 index 000000000..939e30e6b --- /dev/null +++ b/website_next/ask/tools/source/search.js @@ -0,0 +1,188 @@ +const MAX_EXCERPT_CHARACTERS = 500; + +/** @param {string} value */ +function normalize(value) { + return value + .toLowerCase() + .replace(/[^a-z0-9]+/g, " ") + .replace(/\s+/g, " ") + .trim(); +} + +/** @param {string} text @param {number} index */ +function lineAt(text, index) { + return text.slice(0, index).split("\n").length; +} + +/** @param {string} text @param {number} line */ +function excerptAt(text, line) { + const lines = text.split("\n"); + const start = Math.max(1, line - 3); + const end = Math.min(lines.length, line + 3); + return { + startLine: start, + endLine: end, + content: lines + .slice(start - 1, end) + .join("\n") + .slice(0, MAX_EXCERPT_CHARACTERS), + }; +} + +/** @param {{ path: string, text: string }[]} files */ +export function createSourceSearchIndex(files) { + /** @type {Map} */ + const postings = new Map(); + + files.forEach((file, fileIndex) => { + const tokens = new Set( + normalize(`${file.path}\n${file.text}`).split(" ").filter(Boolean), + ); + for (const token of tokens) { + const matches = postings.get(token); + if (matches) matches.push(fileIndex); + else postings.set(token, [fileIndex]); + } + }); + + return { + files, + paths: files.map((file) => normalize(file.path)), + postings, + }; +} + +/** @param {string} left @param {string} right */ +function relatedToken(left, right) { + if (left === right) return true; + const shortest = Math.min(left.length, right.length); + if (shortest < 5) return false; + + let prefix = 0; + while (prefix < shortest && left[prefix] === right[prefix]) prefix += 1; + return left.startsWith(right) || + right.startsWith(left) || + prefix >= Math.max(4, shortest - 2); +} + +/** + * @param {ReturnType} index + * @param {string} token + */ +function candidateFiles(index, token) { + const exact = index.postings.get(token); + const matches = new Set(exact ?? []); + if (token.length < 5) return [...matches]; + + for (const [candidate, files] of index.postings) { + if (candidate === token) continue; + if (!relatedToken(candidate, token)) continue; + for (const file of files) matches.add(file); + } + return [...matches]; +} + +/** + * @param {ReturnType} index + * @param {string} rawQuery + * @param {string} [pathPrefix] + */ +export function searchSource(index, rawQuery, pathPrefix = "") { + const query = normalize(rawQuery); + if (!query) throw new Error("Search query is empty"); + + const tokens = [...new Set(query.split(" "))]; + const tokenMatches = tokens + .map((token) => ({ token, files: candidateFiles(index, token) })) + .filter(({ files }) => files.length) + .map(({ token, files }) => ({ + token, + files, + weight: Math.log2((index.files.length + 1) / (files.length + 1)) + 1, + })); + if (!tokenMatches.length) return []; + + /** @type {Map} */ + const candidates = new Map(); + for (const { token, files, weight } of tokenMatches) { + for (const fileIndex of files) { + const candidate = candidates.get(fileIndex) ?? { + weights: [], + queryTokens: [], + matched: 0, + excerptToken: token, + excerptWeight: 0, + }; + candidate.weights.push(weight); + candidate.queryTokens.push(token); + candidate.matched += 1; + if (weight > candidate.excerptWeight) { + candidate.excerptToken = token; + candidate.excerptWeight = weight; + } + candidates.set(fileIndex, candidate); + } + } + + const matches = []; + for (const [fileIndex, candidate] of candidates) { + const file = index.files[fileIndex]; + if (pathPrefix && !file.path.startsWith(pathPrefix)) continue; + + const normalized = normalize(file.text); + const exact = normalized.includes(query); + const normalizedPath = index.paths[fileIndex]; + const pathTokens = normalizedPath.split(" "); + const pathMatches = tokenMatches.filter(({ token }) => + pathTokens.some((pathToken) => relatedToken(pathToken, token)) + ).length; + const source = file.text.toLowerCase(); + let rawIndex = source.indexOf(candidate.excerptToken); + if (rawIndex < 0) { + for (const { token } of [...tokenMatches].sort((left, right) => right.weight - left.weight)) { + rawIndex = source.indexOf(token); + if (rawIndex >= 0) break; + } + } + const line = lineAt(file.text, Math.max(0, rawIndex)); + const semanticScore = [...candidate.weights] + .sort((left, right) => right - left) + .slice(0, 3) + .reduce((sum, weight) => sum + weight, 0); + matches.push({ + path: file.path, + score: semanticScore + + pathMatches * 6 + + (exact ? 10 : 0) + + (normalizedPath.includes(query) ? 10 : 0), + matched: candidate.matched, + queryTokens: candidate.queryTokens, + pathTokens, + ...excerptAt(file.text, line), + }); + } + + const ranked = matches.sort((left, right) => + right.score - left.score || + right.matched - left.matched || + left.path.localeCompare(right.path) + ); + const diversified = ranked.slice(0, 3); + const salient = [...tokenMatches] + .sort((left, right) => right.weight - left.weight) + .slice(0, 5); + for (const { token } of salient) { + const candidate = ranked + .filter((match) => match.queryTokens.includes(token)) + .sort((left, right) => + Number(right.pathTokens.some((pathToken) => relatedToken(pathToken, token))) - + Number(left.pathTokens.some((pathToken) => relatedToken(pathToken, token))) || + right.score - left.score + )[0]; + if (candidate) diversified.push(candidate); + } + + return [...new Map(diversified.map((match) => [match.path, match])).values()] + .slice(0, 8) + .map(({ score, matched, queryTokens, pathTokens, ...match }) => match); +} diff --git a/website_next/ask/tools/source/worker.js b/website_next/ask/tools/source/worker.js index c9f3d2d04..551578047 100644 --- a/website_next/ask/tools/source/worker.js +++ b/website_next/ask/tools/source/worker.js @@ -1,73 +1,11 @@ import { createFormulaIndex, explainFormula } from "./formula.js"; +import { createSourceSearchIndex, searchSource } from "./search.js"; -const REPOSITORY = "bitcoinresearchkit/brk"; -const TREE_URL = `https://api.github.com/repos/${REPOSITORY}/git/trees/main?recursive=1`; -const RAW_URL = `https://raw.githubusercontent.com/${REPOSITORY}`; -const DATABASE_NAME = "bitview-ask-source-v1"; -const STORE_NAME = "snapshots"; -const MAX_FILE_SIZE = 128_000; +const CATALOG_URL = import.meta.resolve("./catalog.jsonl.gz"); const MAX_READ_LINES = 120; const MAX_READ_CHARACTERS = 2_500; -const MAX_EXCERPT_CHARACTERS = 500; -const CONCURRENCY = 12; -const SEARCH_STOPWORDS = new Set([ - "a", - "about", - "and", - "bitview", - "bitcoin", - "brk", - "code", - "define", - "does", - "explain", - "for", - "how", - "in", - "is", - "mean", - "of", - "repo", - "repository", - "source", - "the", - "what", - "where", - "why", - "work", - "works", -]); -const EXTENSIONS = new Set([ - "css", - "html", - "js", - "json", - "md", - "mjs", - "py", - "rs", - "sh", - "toml", - "ts", - "yaml", - "yml", -]); -const EXCLUDED_PREFIXES = [ - ".git/", - ".github/", - "modules/", - "packages/brk_client/brk_client/", - "target/", - "website/assets/", - "website_next/modules/", -]; -const EXCLUDED_FILES = new Set([ - "docs/CHANGELOG.md", - "website/scripts/options/scalar.js", -]); - -/** @type {Promise<{ sha: string, entries: { path: string, size: number }[] }> | undefined} */ -let treePromise; +const READ_CONTEXT_BEFORE = 4; +const READ_CONTEXT_AFTER = 40; /** @type {Promise<{ sha: string, files: { path: string, text: string }[] }> | undefined} */ let snapshotPromise; @@ -75,140 +13,31 @@ let snapshotPromise; /** @type {ReturnType | undefined} */ let formulaIndex; +/** @type {ReturnType | undefined} */ +let sourceSearchIndex; + /** @param {unknown} error */ function errorMessage(error) { return error instanceof Error ? error.message : String(error); } -/** @param {string} path */ -function extension(path) { - return path.slice(path.lastIndexOf(".") + 1).toLowerCase(); -} - -/** @param {{ type: string, path: string, size?: number }} item */ -function isSource(item) { - return ( - item.type === "blob" && - Number(item.size ?? 0) <= MAX_FILE_SIZE && - EXTENSIONS.has(extension(item.path)) && - !EXCLUDED_FILES.has(item.path) && - !EXCLUDED_PREFIXES.some((prefix) => item.path.startsWith(prefix)) - ); -} - -async function loadTree() { - treePromise ??= fetch(TREE_URL, { - headers: { Accept: "application/vnd.github+json" }, - }).then(async (response) => { - if (!response.ok) { - throw new Error(`GitHub source tree unavailable (${response.status})`); - } - - const data = await response.json(); - if (data.truncated) throw new Error("GitHub returned a truncated source tree"); - - const tree = /** @type {{ type: string, path: string, size?: number }[]} */ ( - data.tree - ); - return { - sha: data.sha, - entries: tree.filter(isSource).map((item) => ({ - path: item.path, - size: Number(item.size ?? 0), - })), - }; - }); - - return treePromise; -} - -/** @param {string} sha @param {string} path */ -async function fetchSource(sha, path) { - const encodedPath = path.split("/").map(encodeURIComponent).join("/"); - const response = await fetch(`${RAW_URL}/${sha}/${encodedPath}`); - if (!response.ok) throw new Error(`Could not fetch ${path}`); - return response.text(); -} - -function openDatabase() { - return new Promise((resolve, reject) => { - const request = indexedDB.open(DATABASE_NAME, 1); - request.addEventListener("upgradeneeded", () => { - request.result.createObjectStore(STORE_NAME, { keyPath: "sha" }); - }); - request.addEventListener("success", () => resolve(request.result)); - request.addEventListener("error", () => reject(request.error)); - }); -} - -/** @param {IDBDatabase} database @param {string} sha */ -function readSnapshot(database, sha) { - return new Promise((resolve, reject) => { - const request = database - .transaction(STORE_NAME, "readonly") - .objectStore(STORE_NAME) - .get(sha); - request.addEventListener("success", () => resolve(request.result)); - request.addEventListener("error", () => reject(request.error)); - }); -} - -/** @param {IDBDatabase} database @param {{ sha: string, files: { path: string, text: string }[] }} snapshot */ -function writeSnapshot(database, snapshot) { - return new Promise((resolve, reject) => { - const transaction = database.transaction(STORE_NAME, "readwrite"); - const store = transaction.objectStore(STORE_NAME); - store.clear(); - store.put(snapshot); - transaction.addEventListener("complete", () => resolve(undefined)); - transaction.addEventListener("error", () => reject(transaction.error)); - }); -} - /** @param {(loaded: number, total: number) => void} reportProgress */ async function loadSnapshot(reportProgress) { - const tree = await loadTree(); - const database = /** @type {IDBDatabase} */ (await openDatabase()); - - try { - const cached = /** @type {{ sha: string, files: { path: string, text: string }[] } | undefined} */ ( - await readSnapshot(database, tree.sha) - ); - if (cached) { - reportProgress(cached.files.length, cached.files.length); - return cached; - } - - const files = new Array(tree.entries.length); - let cursor = 0; - let loaded = 0; - reportProgress(loaded, tree.entries.length); - - async function download() { - while (cursor < tree.entries.length) { - const index = cursor; - cursor += 1; - const entry = tree.entries[index]; - files[index] = { - path: entry.path, - text: await fetchSource(tree.sha, entry.path), - }; - loaded += 1; - if (loaded % 20 === 0 || loaded === tree.entries.length) { - reportProgress(loaded, tree.entries.length); - } - } - } - - await Promise.all( - Array.from({ length: Math.min(CONCURRENCY, tree.entries.length) }, download), - ); - const snapshot = { sha: tree.sha, files }; - await writeSnapshot(database, snapshot); - return snapshot; - } finally { - database.close(); + const response = await fetch(CATALOG_URL); + if (!response.ok || !response.body) { + throw new Error(`Source catalog unavailable (${response.status})`); } + const decompressed = response.body.pipeThrough(new DecompressionStream("gzip")); + const text = await new Response(decompressed).text(); + const [rawHeader, ...lines] = text.split("\n"); + const header = /** @type {{ revision: string, count: number }} */ (JSON.parse(rawHeader)); + reportProgress(0, header.count); + const files = lines.filter(Boolean).map((line) => { + const [path, source] = /** @type {[string, string]} */ (JSON.parse(line)); + return { path, text: source }; + }); + reportProgress(files.length, header.count); + return { sha: header.revision, files }; } /** @param {(loaded: number, total: number) => void} reportProgress */ @@ -220,75 +49,17 @@ function ensureSnapshot(reportProgress) { return snapshotPromise; } -/** @param {string} value */ -function normalize(value) { - return value - .toLowerCase() - .replace(/[^a-z0-9]+/g, " ") - .replace(/\s+/g, " ") - .trim(); -} - -/** @param {string} text @param {number} index */ -function lineAt(text, index) { - return text.slice(0, index).split("\n").length; -} - -/** @param {string} text @param {number} line */ -function excerptAt(text, line) { - const lines = text.split("\n"); - const start = Math.max(1, line - 3); - const end = Math.min(lines.length, line + 3); - return { - startLine: start, - endLine: end, - content: lines - .slice(start - 1, end) - .join("\n") - .slice(0, MAX_EXCERPT_CHARACTERS), - }; -} - /** * @param {{ query: string, path?: string }} args * @param {(loaded: number, total: number) => void} reportProgress */ async function search(args, reportProgress) { - const rawQuery = normalize(args.query); - if (!rawQuery) throw new Error("Search query is empty"); const pathPrefix = String(args.path ?? "").replace(/^\/+/, ""); - const rawTokens = rawQuery.split(" "); - const tokens = rawTokens.filter((token) => !SEARCH_STOPWORDS.has(token)); - const searchTokens = tokens.length ? tokens : rawTokens; - const query = searchTokens.join(" "); const snapshot = await ensureSnapshot(reportProgress); - const matches = []; - - for (const file of snapshot.files) { - if (pathPrefix && !file.path.startsWith(pathPrefix)) continue; - const normalized = normalize(file.text); - let index = normalized.indexOf(query); - let score = 2; - - if (index < 0 && searchTokens.every((token) => normalized.includes(token))) { - index = normalized.indexOf(searchTokens[0]); - score = 1; - } - if (index < 0) continue; - - const rawIndex = file.text.toLowerCase().indexOf(searchTokens[0]); - const line = lineAt(file.text, Math.max(0, rawIndex)); - matches.push({ - path: file.path, - score: score + (normalize(file.path).includes(query) ? 2 : 0), - ...excerptAt(file.text, line), - }); - } - - matches.sort((a, b) => b.score - a.score || a.path.localeCompare(b.path)); + sourceSearchIndex ??= createSourceSearchIndex(snapshot.files); return { revision: snapshot.sha, - matches: matches.slice(0, 4).map(({ score, ...match }) => match), + matches: searchSource(sourceSearchIndex, String(args.query ?? ""), pathPrefix), }; } @@ -306,17 +77,16 @@ async function explain(args, reportProgress) { /** @param {{ path: string, startLine: number, endLine: number }} args */ async function read(args) { const path = String(args.path).replace(/^\/+/, ""); - const startLine = Math.max(1, Math.floor(Number(args.startLine))); - const requestedEnd = Math.max(startLine, Math.floor(Number(args.endLine))); - const endLine = Math.min(requestedEnd, startLine + MAX_READ_LINES - 1); - const tree = await loadTree(); - if (!tree.entries.some((entry) => entry.path === path)) { - throw new Error(`Source file not found: ${path}`); - } - - const snapshot = await snapshotPromise; - const text = snapshot?.files.find((file) => file.path === path)?.text ?? - (await fetchSource(tree.sha, path)); + const selectedStart = Math.max(1, Math.floor(Number(args.startLine))); + const selectedEnd = Math.max(selectedStart, Math.floor(Number(args.endLine))); + const startLine = Math.max(1, selectedStart - READ_CONTEXT_BEFORE); + const endLine = Math.min( + selectedEnd + READ_CONTEXT_AFTER, + startLine + MAX_READ_LINES - 1, + ); + const snapshot = await ensureSnapshot(() => {}); + const text = snapshot.files.find((file) => file.path === path)?.text; + if (text === undefined) throw new Error(`Source file not found: ${path}`); const lines = text.split("\n"); if (startLine > lines.length) { throw new Error(`${path} only has ${lines.length} lines`); @@ -325,7 +95,7 @@ async function read(args) { const content = lines.slice(startLine - 1, lastLine).join("\n"); return { - revision: tree.sha, + revision: snapshot.sha, path, startLine, endLine: lastLine, @@ -341,7 +111,9 @@ self.addEventListener("message", async (event) => { }; try { - const result = type === "search" + const result = type === "prewarm" + ? await explain({ question: "" }, reportProgress) + : type === "search" ? await search(data, reportProgress) : type === "explain" ? await explain(data, reportProgress) diff --git a/website_next/ask/worker.js b/website_next/ask/worker.js index eb49a79b1..d192fb9de 100644 --- a/website_next/ask/worker.js +++ b/website_next/ask/worker.js @@ -50,9 +50,15 @@ async function load() { return; } - if (!navigator.gpu) throw new Error("WebGPU is unavailable in this browser"); + if (!/** @type {any} */ (navigator).gpu) { + throw new Error("WebGPU is unavailable in this browser"); + } self.postMessage({ status: "loading", data: "Loading AI runtime..." }); + // BitGPU 0.19.1's smaller prefill segments keep the UI responsive during + // long grounded prompts. Replace this compatibility hook when BitGPU + // exposes the segment size as a public engine option. + /** @type {any} */ (globalThis).__SEG = 64; const [{ createEngine }, { createChat }] = await Promise.all([ import(ASK_MODEL.runtimeUrl), import(ASK_MODEL.chatUrl), @@ -125,7 +131,7 @@ async function generate(messages, options) { const result = await chat.send(messages, { maxTokens: options.maxTokens, temperature: 0, - repetitionPenalty: 1.05, + repetitionPenalty: 1, signal: generationController.signal, tools, toolChoice: tools ? options.toolChoice : undefined, @@ -172,7 +178,7 @@ self.addEventListener("message", async (event) => { break; case "generate": await generate(data.messages, { - maxTokens: 256, + maxTokens: data.maxTokens ?? 256, stream: true, tools: data.tools, toolChoice: data.toolChoice, diff --git a/website_next/llms-full.txt b/website_next/llms-full.txt index 373f95b62..85ed48b34 100644 --- a/website_next/llms-full.txt +++ b/website_next/llms-full.txt @@ -1,497 +1,2059 @@ # Bitcoin Research Kit (BRK) — Full API Reference -> Free, open-source Bitcoin on-chain analytics API. 49,000+ time-series, block explorer, address index, mempool, mining stats — all computed from a Bitcoin Core node. No auth required. +> Generated from BRK's OpenAPI specification and metric tree. Do not edit this file manually. -Base URL: https://bitview.space -GitHub: https://github.com/bitcoinresearchkit/brk -License: MIT +- Version: `v0.3.6` +- Base URL: https://bitview.space +- Metrics: 55667 +- Operations: 97 -## Quick Start +For machine-readable tool construction, use [https://bitview.space/openapi.json](https://bitview.space/openapi.json). For the complete source-derived series tree, use [https://bitview.space/api/series](https://bitview.space/api/series). - # Search for series by keyword - curl -s "https://bitview.space/api/series/search?q=price" +## Operations - # Get Bitcoin closing price for the last 30 days - curl -s "https://bitview.space/api/series/price/day?start=-30" +### Address - # Get just the latest price - curl -s "https://bitview.space/api/series/price/day/latest" +#### GET `/api/address/hash-prefix/{addr_type}/{prefix}` - # Bulk query multiple series - curl -s "https://bitview.space/api/series/bulk?index=day&series=price,market_cap&start=-7" +Address hash-prefix matches - # Get the genesis block - curl -s "https://bitview.space/api/block-height/0" +Find addresses by address type and by the first 1-16 hex nibbles of RapidHash v3 over the raw address payload bytes. Intended for privacy-preserving client-side wallet discovery without sending raw addresses or xpubs. Fetch metadata for the returned addresses through `/api/address/{address}`. - # Get an address balance - curl -s "https://bitview.space/api/address/1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa" +Parameters: +- `addr_type` (path, OutputType, required) +- `prefix` (path, string, required) - # Get current fee estimates - curl -s "https://bitview.space/api/v1/fees/recommended" +Returns: JSON `AddrHashPrefixMatches` - # Get the live mempool-derived price - curl -s "https://bitview.space/api/mempool/price" +```bash +curl -s "https://bitview.space/api/address/hash-prefix//" +``` ---- +#### GET `/api/address/{address}` -## Response Format +Address information -All endpoints return JSON by default. Series endpoints also support CSV via `?format=csv`. +Retrieve address information including current balance and transaction counts. Supports all standard Bitcoin address types (P2PKH, P2SH, P2WPKH, P2WSH, P2TR). *[Mempool.space docs](https://mempool.space/docs/api/rest#get-address)* -Errors return: +Parameters: +- `address` (path, Addr, required) - { - "error": { - "type": "not_found", - "code": "series_not_found", - "message": "'foo' not found, did you mean 'bar'?", - "doc_url": "/api" - } - } +Returns: JSON `AddrStats` -Error types: `invalid_request` (400), `forbidden` (403), `not_found` (404), `unavailable` (503), `internal` (500). +```bash +curl -s "https://bitview.space/api/address/
    " +``` -## Range Parameters +#### GET `/api/address/{address}/txs` -`start` and `end` are optional on all series data endpoints. They accept: -- Dates: `2025-01-01` -- Integers: block height or absolute index -- Negative integers: relative offset from latest (`-30` = last 30 entries) -- ISO 8601 timestamps +Address transactions -## Indexes +Get transaction history for an address, newest first. Returns up to 50 mempool transactions plus a confirmed page sized to fill the response to 50 total (chain floor of 25, so 25-50 confirmed depending on mempool weight). To paginate further confirmed history, use `/address/{address}/txs/chain/{last_seen_txid}`. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-address-transactions)* -Series are queryable by time-based and block-based indexes. Common aliases are accepted (e.g. `day` for `day1`, `week` for `week1`). +Parameters: +- `address` (path, Addr, required) -Time-based: `minute10`, `minute30`, `hour1`, `hour4`, `hour12`, `day1`, `day3`, `week1`, `month1`, `month3`, `month6`, `year1`, `year10`, `halving`, `epoch` -Block-based: `height` +Returns: JSON `Transaction[]` -Common aliases: `day` = `day1`, `week` = `week1`, `month` = `month1`, `hour` = `hour1`, `h` = `height` +```bash +curl -s "https://bitview.space/api/address/
    /txs" +``` -Not all series support all indexes. Use `GET /api/series/{name}` to see which indexes a series supports. +#### GET `/api/address/{address}/txs/chain` ---- +Address confirmed transactions -## Server +Get the first 25 confirmed transactions for an address. For pagination, use the path-style form `/txs/chain/{last_seen_txid}`. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-address-transactions-chain)* -### GET https://bitview.space/health +Parameters: +- `address` (path, Addr, required) -Health check. +Returns: JSON `Transaction[]` - → {"status": "healthy", "service": "brk", "version": "0.2.1", "indexed_height": 941908, "blocks_behind": 0, "uptime_seconds": 11806, ...} +```bash +curl -s "https://bitview.space/api/address/
    /txs/chain" +``` -### GET https://bitview.space/version +#### GET `/api/address/{address}/txs/chain/{after_txid}` -API version string. +Address confirmed transactions (paginated) - → "0.2.1" +Get the next 25 confirmed transactions strictly older than `after_txid` (Esplora-canonical pagination form, matches mempool.space). *[Mempool.space docs](https://mempool.space/docs/api/rest#get-address-transactions-chain)* -### GET https://bitview.space/api/server/sync +Parameters: +- `address` (path, Addr, required) +- `after_txid` (path, Txid, required): Last txid from the previous page (return transactions strictly older than this) -Sync status. +Returns: JSON `Transaction[]` - → {"indexed_height": 941908, "computed_height": 941908, "tip_height": 941908, "blocks_behind": 0, "last_indexed_at": "2026-03-23T19:13:32Z"} +```bash +curl -s "https://bitview.space/api/address/
    /txs/chain/" +``` -### GET https://bitview.space/api/server/disk +#### GET `/api/address/{address}/txs/mempool` -Disk usage for BRK data and Bitcoin Core data directories. +Address mempool transactions ---- +Get unconfirmed transactions for an address from the mempool, newest first (up to 50). *[Mempool.space docs](https://mempool.space/docs/api/rest#get-address-transactions-mempool)* -## Series +Parameters: +- `address` (path, Addr, required) -The core feature. 49,000+ on-chain time-series. +Returns: JSON `Transaction[]` -### GET https://bitview.space/api/series/search?q={query} +```bash +curl -s "https://bitview.space/api/address/
    /txs/mempool" +``` -Fuzzy search series by name. Returns an array of matching series names. +#### GET `/api/address/{address}/utxo` - → ["price", "price_ath", "price_low", "price_sats", "price_high", "price_ohlc", ...] +Address UTXOs -### GET https://bitview.space/api/series/{series}/{index} +Get unspent transaction outputs (UTXOs) for an address. Returns txid, vout, value, and confirmation status for each UTXO. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-address-utxo)* -Fetch series data. Parameters: `format` (json|csv), `start`, `end`. +Parameters: +- `address` (path, Addr, required) -The `data` array contains raw values. Their position maps to the index range `start..end`. For date-based indexes, compute dates from the index type and position. +Returns: JSON `Utxo[]` - GET /api/series/price/day?start=-3 - → { - "version": 69, - "index": "day1", - "type": "Dollars", - "total": 6291, - "start": 6288, - "end": 6291, - "stamp": "2026-03-23T19:06:40Z", - "data": [70077.35, 68301.76, 70788.45] - } +```bash +curl -s "https://bitview.space/api/address/
    /utxo" +``` -Some series return compound values per entry (e.g. OHLC): +### Api.json - GET /api/series/price_ohlc/day?start=-1 - → { ..., "type": "OHLCDollars", "data": [[68251.03, 71455.61, 67682.26, 70788.45]] } +#### GET `/api.json` -CSV format returns the series name as header, then one value per line: +Compact OpenAPI specification - GET /api/series/price/day?start=-3&format=csv - → price - 70077.35 - 68301.76 - 70788.45 +Compact OpenAPI specification optimized for LLM consumption. Removes redundant fields while preserving essential API information. Full spec available at `/openapi.json`. -### GET https://bitview.space/api/series/{series}/{index}/data +Returns: JSON `*` -Raw data array only (no metadata wrapper). Same parameters. +```bash +curl -s "https://bitview.space/api.json" +``` - GET /api/series/price/day/data?start=-3 - → [70077.35, 68301.76, 70788.45] +### Block -### GET https://bitview.space/api/series/{series}/{index}/latest +#### GET `/api/block/{hash}` -Most recent value only. +Block information - GET /api/series/price/day/latest - → 70788.45 +Retrieve block information by block hash. Returns block metadata including height, timestamp, difficulty, size, weight, and transaction count. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block)* -### GET https://bitview.space/api/series/{series} +Parameters: +- `hash` (path, BlockHash, required) -Series metadata: available indexes and value type. +Returns: JSON `BlockInfo` - GET /api/series/price - → { - "indexes": ["minute10", "minute30", "hour1", "hour4", "hour12", - "day1", "day3", "week1", "month1", "month3", "month6", - "year1", "year10", "halving", "epoch", "height"], - "type": "Dollars" - } +```bash +curl -s "https://bitview.space/api/block/" +``` -### GET https://bitview.space/api/series +#### GET `/api/block/{hash}/header` -Full hierarchical catalog of all series as a tree. +Block header -### GET https://bitview.space/api/series/list +Returns the hex-encoded 80-byte block header. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-header)* -Paginated list of all series. Supports `?page=N` (default 0, 1000 per page). +Parameters: +- `hash` (path, BlockHash, required) - → {"current_page": 0, "max_page": 49, "total_count": 49259, "per_page": 1000, "has_more": true, "series": ["fee", "nvt", ...]} +Returns: text `Hex` -### GET https://bitview.space/api/series/count +```bash +curl -s "https://bitview.space/api/block//header" +``` -Series count by category. Returns totals and per-database breakdowns. +#### GET `/api/block/{hash}/raw` -### GET https://bitview.space/api/series/indexes +Raw block -List all available indexes with their aliases. +Returns the raw block data in binary format. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-raw)* - → [{"index": "day1", "aliases": ["1d", "d", "day", "date", "daily", "day1", "dateindex"]}, ...] +Parameters: +- `hash` (path, BlockHash, required) -### GET https://bitview.space/api/series/{series}/{index}/len +Returns: binary data -Number of data points in the series. +```bash +curl -s "https://bitview.space/api/block//raw" +``` -### GET https://bitview.space/api/series/{series}/{index}/version +#### GET `/api/block/{hash}/status` -Version number (increments when data changes). +Block status -### GET https://bitview.space/api/series/bulk?index={index}&series={s1},{s2} +Retrieve the status of a block. Returns whether the block is in the best chain and, if so, its height and the hash of the next block. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-status)* -Fetch multiple series at once. Parameters: `series` (comma-separated, required), `index` (required), `format`, `start`, `end`. +Parameters: +- `hash` (path, BlockHash, required) - GET /api/series/bulk?index=day&series=price,market_cap&start=-1 - → [ - {"version": 69, "index": "day1", "type": "Dollars", "total": 6291, "start": 6290, "end": 6291, "stamp": "...", "data": [70788.45]}, - {"version": 83, "index": "day1", "type": "Dollars", "total": 6291, "start": 6290, "end": 6291, "stamp": "...", "data": [1416174345666.71]} - ] +Returns: JSON `BlockStatus` -CSV bulk format uses one column per series: +```bash +curl -s "https://bitview.space/api/block//status" +``` - GET /api/series/bulk?index=day&series=price,market_cap&start=-1&format=csv - → price,market_cap - 70788.45,1416174345666.71 +#### GET `/api/block/{hash}/txid/{index}` -### Cost Basis Distribution +Transaction ID at index -#### GET https://bitview.space/api/series/cost-basis -List available cohorts. +Retrieve a single transaction ID at a specific index within a block. Returns plain text txid. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-transaction-id)* -#### GET https://bitview.space/api/series/cost-basis/{cohort}/dates -Available snapshot dates for a cohort. +Parameters: +- `hash` (path, BlockHash, required): Bitcoin block hash +- `index` (path, BlockTxIndex, required): Transaction index within the block (0-based) -#### GET https://bitview.space/api/series/cost-basis/{cohort}/{date} -Distribution data. Parameters: `bucket` (raw|lin200|lin500|lin1000|log10|log50|log100), `value` (supply|realized|unrealized). +Returns: text `Txid` ---- +```bash +curl -s "https://bitview.space/api/block//txid/" +``` -## Blocks +#### GET `/api/block/{hash}/txids` -Mempool.space compatible. +Block transaction IDs -### GET https://bitview.space/api/block-height/{height} +Retrieve all transaction IDs in a block. Returns an array of txids in block order. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-transaction-ids)* -Single block by height. +Parameters: +- `hash` (path, BlockHash, required) - GET /api/block-height/0 - → { - "id": "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f", - "height": 0, - "tx_count": 1, - "size": 285, - "weight": 1140, - "timestamp": 1231006505, - "difficulty": 1.0 - } +Returns: JSON `Txid[]` -### GET https://bitview.space/api/block/{hash} +```bash +curl -s "https://bitview.space/api/block//txids" +``` -Single block by hash. Same response shape. +#### GET `/api/block/{hash}/txs` -### GET https://bitview.space/api/blocks +Block transactions -Last 10 blocks. Returns array of block objects. +Retrieve transactions in a block by block hash. Returns up to 25 transactions starting from index 0. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-transactions)* -### GET https://bitview.space/api/blocks/{height} +Parameters: +- `hash` (path, BlockHash, required) -Up to 10 blocks ending at `{height}` (descending). +Returns: JSON `Transaction[]` -### GET https://bitview.space/api/block/{hash}/status +```bash +curl -s "https://bitview.space/api/block//txs" +``` - → {"in_best_chain": true, "height": 916656, "next_best": "0000..."} +#### GET `/api/block/{hash}/txs/{start_index}` -### GET https://bitview.space/api/block/{hash}/txids +Block transactions (paginated) -Array of all transaction IDs in the block. +Retrieve transactions in a block by block hash, starting from the specified index. Returns up to 25 transactions at a time. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-transactions)* -### GET https://bitview.space/api/block/{hash}/txs/{start_index} +Parameters: +- `hash` (path, BlockHash, required): Bitcoin block hash +- `start_index` (path, BlockTxIndex, required): Starting transaction index within the block (0-based) -Paginated transactions in the block. +Returns: JSON `Transaction[]` -### GET https://bitview.space/api/block/{hash}/txid/{index} +```bash +curl -s "https://bitview.space/api/block//txs/" +``` -Single txid at position `index`. +#### GET `/api/v1/block/{hash}` -### GET https://bitview.space/api/block/{hash}/raw +Block (v1) -Raw block bytes. +Returns block details with extras by hash. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-v1)* -### GET https://bitview.space/api/v1/mining/blocks/timestamp/{timestamp} +Parameters: +- `hash` (path, BlockHash, required) -Block closest to a UNIX timestamp. +Returns: JSON `BlockInfoV1` ---- +```bash +curl -s "https://bitview.space/api/v1/block/" +``` -## Transactions +### Block Height -Mempool.space compatible. +#### GET `/api/block-height/{height}` -### GET https://bitview.space/api/tx/{txid} +Block hash by height -Full transaction data. Values in satoshis (1 BTC = 100,000,000 sats). +Retrieve the block hash at a given height. Returns the hash as plain text. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-height)* - → { - "index": 0, - "txid": "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b", - "version": 1, - "locktime": 0, - "size": 204, - "weight": 816, - "sigops": 4, - "fee": 0, - "vin": [{ - "txid": "0000000000000000000000000000000000000000000000000000000000000000", - "vout": 65535, - "prevout": null, - "scriptsig": "04ffff001d...", - "scriptsig_asm": "OP_PUSHBYTES_4 ...", - "is_coinbase": true, - "sequence": 4294967295 - }], - "vout": [{ - "scriptpubkey": "4104678a...", - "scriptpubkey_asm": "OP_PUSHBYTES_65 ... OP_CHECKSIG", - "scriptpubkey_type": "p2pk65", - "scriptpubkey_address": "04678afdb0...", - "value": 5000000000 - }], - "status": { - "confirmed": true, - "block_height": 0, - "block_hash": "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f", - "block_time": 1231006505 - } - } +Parameters: +- `height` (path, Height, required) -### GET https://bitview.space/api/tx/{txid}/status +Returns: text `BlockHash` - → {"confirmed": true, "block_height": 0, "block_hash": "0000...", "block_time": 1231006505} +```bash +curl -s "https://bitview.space/api/block-height/" +``` -### GET https://bitview.space/api/tx/{txid}/hex +### Blocks -Raw transaction hex string. +#### GET `/api/blocks` -### GET https://bitview.space/api/tx/{txid}/outspend/{vout} +Recent blocks - → {"spent": true, "txid": "...", "vin": 0, "status": {...}} +Retrieve the last 10 blocks. Returns block metadata for each block. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-blocks)* -### GET https://bitview.space/api/tx/{txid}/outspends +Returns: JSON `BlockInfo[]` -Array of spend status for all outputs. +```bash +curl -s "https://bitview.space/api/blocks" +``` ---- +#### GET `/api/blocks/tip/hash` -## Addresses +Block tip hash -Mempool.space compatible. Supports P2PKH, P2SH, P2WPKH, P2WSH, P2TR. +Returns the hash of the last block. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-tip-hash)* -### GET https://bitview.space/api/address/{address} +Returns: text `BlockHash` -Address summary. Values in satoshis. +```bash +curl -s "https://bitview.space/api/blocks/tip/hash" +``` - GET /api/address/1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa - → { - "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa", - "chain_stats": { - "funded_txo_count": 73262, - "funded_txo_sum": 5715642026, - "spent_txo_count": 0, - "spent_txo_sum": 0, - "tx_count": 62198, - "type_index": 371955 - }, - "mempool_stats": { - "funded_txo_count": 0, - "funded_txo_sum": 0, - "spent_txo_count": 0, - "spent_txo_sum": 0, - "tx_count": 0 - } - } +#### GET `/api/blocks/tip/height` -### GET https://bitview.space/api/address/{address}/txs +Block tip height -Transaction history (up to 75 per page). Paginate with `?after_txid={txid}`. +Returns the height of the last block. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-tip-height)* -### GET https://bitview.space/api/address/{address}/txs/chain +Returns: text `Height` -Confirmed transactions only (25 per page). Paginate with `?after_txid={txid}`. +```bash +curl -s "https://bitview.space/api/blocks/tip/height" +``` -### GET https://bitview.space/api/address/{address}/txs/mempool +#### GET `/api/blocks/{height}` -Unconfirmed transactions (up to 50). +Blocks from height -### GET https://bitview.space/api/address/{address}/utxo +Retrieve up to 10 blocks going backwards from the given height. For example, height=100 returns blocks 100, 99, 98, ..., 91. Height=0 returns only block 0. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-blocks)* -Unspent outputs. +Parameters: +- `height` (path, Height, required) - → [{"txid": "...", "vout": 0, "status": {...}, "value": 5000000000}] +Returns: JSON `BlockInfo[]` -### GET https://bitview.space/api/v1/validate-address/{address} +```bash +curl -s "https://bitview.space/api/blocks/" +``` - → {"isvalid": true, "address": "...", "scriptPubKey": "...", "isscript": false, "iswitness": true, "witness_version": 0, "witness_program": "..."} +#### GET `/api/v1/blocks` ---- +Recent blocks with extras -## Mempool +Retrieve the last 15 blocks with extended data including pool identification and fee statistics. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-blocks-v1)* -### GET https://bitview.space/api/mempool/price +Returns: JSON `BlockInfoV1[]` -Live BTC/USD price derived from on-chain round-dollar transaction patterns. +```bash +curl -s "https://bitview.space/api/v1/blocks" +``` - → 70817.64 +#### GET `/api/v1/blocks/{height}` -### GET https://bitview.space/api/mempool/info +Blocks from height with extras - → {"count": 24611, "vsize": 2185871, "total_fee": 6250465} +Retrieve up to 15 blocks with extended data going backwards from the given height. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-blocks-v1)* -### GET https://bitview.space/api/mempool/txids +Parameters: +- `height` (path, Height, required) -Array of all transaction IDs in the mempool. +Returns: JSON `BlockInfoV1[]` -### GET https://bitview.space/api/v1/fees/recommended +```bash +curl -s "https://bitview.space/api/v1/blocks/" +``` -Fee rate recommendations in sat/vB. +### Cpfp - → {"fastestFee": 3.0, "halfHourFee": 0.135, "hourFee": 0.111, "economyFee": 0.106, "minimumFee": 0.1} +#### GET `/api/v1/cpfp/{txid}` -### GET https://bitview.space/api/v1/fees/mempool-blocks +CPFP info -Projected mempool blocks. +Returns ancestors and descendants for a CPFP (Child Pays For Parent) transaction, including the effective fee rate of the package. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-children-pay-for-parent)* - → [{"blockSize": 3999892, "blockVSize": 999973.0, "nTx": 3743, "totalFees": 4148496, "medianFee": 3.0, "feeRange": [2.0, 2.0, 2.173, 3.0, 3.965, 5.969, 347.223]}] +Parameters: +- `txid` (path, Txid, required) ---- +Returns: JSON `CpfpInfo` -## Mining +```bash +curl -s "https://bitview.space/api/v1/cpfp/" +``` -Mempool.space compatible. Time periods: `24h`, `3d`, `1w`, `1m`, `3m`, `6m`, `1y`, `2y`, `3y`. +### Difficulty Adjustment -### GET https://bitview.space/api/v1/mining/pools +#### GET `/api/v1/difficulty-adjustment` -All known mining pools. +Difficulty adjustment -### GET https://bitview.space/api/v1/mining/pools/{time_period} +Get current difficulty adjustment progress and estimates. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-difficulty-adjustment)* -Pool statistics for a time period. +Returns: JSON `DifficultyAdjustment` -### GET https://bitview.space/api/v1/mining/pool/{slug} +```bash +curl -s "https://bitview.space/api/v1/difficulty-adjustment" +``` -Detailed info for a specific pool. +### Fees -### GET https://bitview.space/api/v1/difficulty-adjustment +#### GET `/api/v1/fees/mempool-blocks` -Current difficulty epoch: progress, estimated adjustment, remaining blocks/time. +Projected mempool blocks -### GET https://bitview.space/api/v1/mining/difficulty-adjustments +Projected blocks for fee estimation. Block 0 reflects Bitcoin Core's actual next-block selection; blocks 1+ are a fee-tier approximation. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-mempool-blocks-fees)* -All historical difficulty adjustments. +Returns: JSON `MempoolBlock[]` -### GET https://bitview.space/api/v1/mining/difficulty-adjustments/{time_period} +```bash +curl -s "https://bitview.space/api/v1/fees/mempool-blocks" +``` -Difficulty adjustments for a given time period. +#### GET `/api/v1/fees/precise` -### GET https://bitview.space/api/v1/mining/hashrate +Precise recommended fees -All-time hashrate and difficulty data. +Recommended fee rates with sub-integer precision. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-recommended-fees-precise)* -### GET https://bitview.space/api/v1/mining/hashrate/{time_period} +Returns: JSON `RecommendedFees` -Hashrate and difficulty for a given time period. +```bash +curl -s "https://bitview.space/api/v1/fees/precise" +``` -### GET https://bitview.space/api/v1/mining/blocks/fees/{time_period} +#### GET `/api/v1/fees/recommended` -Average block fees over time. +Recommended fees -### GET https://bitview.space/api/v1/mining/blocks/rewards/{time_period} +Recommended fee rates by confirmation target. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-recommended-fees)* -Average block rewards (subsidy + fees) over time. +Returns: JSON `RecommendedFees` -### GET https://bitview.space/api/v1/mining/blocks/sizes-weights/{time_period} +```bash +curl -s "https://bitview.space/api/v1/fees/recommended" +``` -Average block sizes and weights over time. +### Fullrbf -### GET https://bitview.space/api/v1/mining/reward-stats/{block_count} +#### GET `/api/v1/fullrbf/replacements` -Reward statistics for the last N blocks. +Recent full-RBF replacements ---- +Like `/api/v1/replacements`, but limited to trees where at least one predecessor was non-signaling (full-RBF). *[Mempool.space docs](https://mempool.space/docs/api/rest#get-fullrbf-replacements)* -## Series Categories +Returns: JSON `ReplacementNode[]` -49,000+ series across these categories. Use `/api/series/search?q={keyword}` to discover, or `/api/series` for the full tree. +```bash +curl -s "https://bitview.space/api/v1/fullrbf/replacements" +``` -- **Market**: price, market_cap, realized_cap, mvrv, nvt, thermocap, and variants (SMA, rolling) -- **Supply**: circulating, issued, inflation_rate, subsidy -- **Mining**: hashrate, difficulty, revenue, fees, block size/weight stats -- **Network activity**: transaction counts, volumes, active addresses -- **UTXO age bands**: HODL waves, realized cap by age cohort -- **Cointime economics**: liveliness, vaultedness, activity-to-vaultedness ratio -- **Holder cohorts**: by balance range (plankton to whale), by holding duration (short/long-term) -- **Cost basis**: UTXO realized price distributions by cohort -- **Addresses**: total, new, active, empty, by balance range, by type +### Health ---- +#### GET `/health` -## Client Libraries +Health check + +Liveness probe. Returns server identity, uptime, and indexed/computed heights from local state only (no bitcoind round-trip). For real chain-tip catch-up, see `/api/server/sync`. + +Returns: JSON `Health` + +```bash +curl -s "https://bitview.space/health" +``` + +### Historical Price + +#### GET `/api/v1/historical-price` + +Historical price + +Get historical BTC/USD price. Optionally specify a UNIX timestamp to get the price at that time. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-historical-price)* + +Parameters: +- `timestamp` (query, Timestamp, optional) + +Returns: JSON `HistoricalPrice` + +```bash +curl -s "https://bitview.space/api/v1/historical-price?timestamp=" +``` + +### Mempool + +#### GET `/api/mempool` + +Mempool statistics + +Get current mempool statistics including transaction count, total vsize, total fees, and fee histogram. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-mempool)* + +Returns: JSON `MempoolInfo` + +```bash +curl -s "https://bitview.space/api/mempool" +``` + +#### GET `/api/mempool/hash` + +Mempool content hash + +Returns an opaque hash that changes whenever the projected next block changes. Same value as the mempool ETag. Useful as a freshness/liveness signal: if it stays constant for tens of seconds on a live network, the mempool sync loop has stalled. + +Returns: JSON `NextBlockHash` + +```bash +curl -s "https://bitview.space/api/mempool/hash" +``` + +#### GET `/api/mempool/price` + +Live BTC/USD price + +Returns the current BTC/USD price in dollars, derived from on-chain round-dollar output patterns in the last 12 blocks plus mempool. + +Returns: JSON `Dollars` + +```bash +curl -s "https://bitview.space/api/mempool/price" +``` + +#### GET `/api/mempool/recent` + +Recent mempool transactions + +Get the last 10 transactions to enter the mempool. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-mempool-recent)* + +Returns: JSON `MempoolRecentTx[]` + +```bash +curl -s "https://bitview.space/api/mempool/recent" +``` + +#### GET `/api/mempool/txids` + +Mempool transaction IDs + +Get all transaction IDs currently in the mempool. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-mempool-transaction-ids)* + +Returns: JSON `Txid[]` + +```bash +curl -s "https://bitview.space/api/mempool/txids" +``` + +#### GET `/api/v1/mempool/block-template` + +Projected next block template + +Bitcoin Core's `getblocktemplate` selection: full transaction bodies in GBT order with aggregate stats. The returned `hash` is an opaque content token; pass it as `` on `/api/v1/mempool/block-template/diff/{hash}` to fetch deltas instead of refetching the whole template. + +Returns: JSON `BlockTemplate` + +```bash +curl -s "https://bitview.space/api/v1/mempool/block-template" +``` + +#### GET `/api/v1/mempool/block-template/diff/{hash}` + +Block template diff since hash + +Delta of the projected next block since ``. `order` is the full new template in order: each entry is either a number (index into the prior template the client cached at ``) or a transaction object (new body to insert at this position). Walk `order` once to rebuild; `removed` is a convenience list of txids that left so clients can evict cached bodies. After applying, use the response `hash` as `` on the next call to keep iterating. Returns `404` when `` has aged out of server history; clients should fall back to `/api/v1/mempool/block-template`. + +Parameters: +- `hash` (path, NextBlockHash, required) + +Returns: JSON `BlockTemplateDiff` + +```bash +curl -s "https://bitview.space/api/v1/mempool/block-template/diff/" +``` + +### Mining + +#### GET `/api/v1/mining/blocks/fee-rates/{time_period}` + +Block fee rates + +Get block fee rate percentiles (min, 10th, 25th, median, 75th, 90th, max) for a time period. Valid periods: `24h`, `3d`, `1w`, `1m`, `3m`, `6m`, `1y`, `2y`, `3y`. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-feerates)* + +Parameters: +- `time_period` (path, TimePeriod, required) + +Returns: JSON `BlockFeeRatesEntry[]` + +```bash +curl -s "https://bitview.space/api/v1/mining/blocks/fee-rates/" +``` + +#### GET `/api/v1/mining/blocks/fees/{time_period}` + +Block fees + +Get average total fees per block for a time period. Valid periods: `24h`, `3d`, `1w`, `1m`, `3m`, `6m`, `1y`, `2y`, `3y`. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-fees)* + +Parameters: +- `time_period` (path, TimePeriod, required) + +Returns: JSON `BlockFeesEntry[]` + +```bash +curl -s "https://bitview.space/api/v1/mining/blocks/fees/" +``` + +#### GET `/api/v1/mining/blocks/rewards/{time_period}` + +Block rewards + +Get average coinbase reward (subsidy + fees) per block for a time period. Valid periods: `24h`, `3d`, `1w`, `1m`, `3m`, `6m`, `1y`, `2y`, `3y`. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-rewards)* + +Parameters: +- `time_period` (path, TimePeriod, required) + +Returns: JSON `BlockRewardsEntry[]` + +```bash +curl -s "https://bitview.space/api/v1/mining/blocks/rewards/" +``` + +#### GET `/api/v1/mining/blocks/sizes-weights/{time_period}` + +Block sizes and weights + +Get average block sizes and weights for a time period. Valid periods: `24h`, `3d`, `1w`, `1m`, `3m`, `6m`, `1y`, `2y`, `3y`. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-sizes-weights)* + +Parameters: +- `time_period` (path, TimePeriod, required) + +Returns: JSON `BlockSizesWeights` + +```bash +curl -s "https://bitview.space/api/v1/mining/blocks/sizes-weights/" +``` + +#### GET `/api/v1/mining/blocks/timestamp/{timestamp}` + +Block by timestamp + +Find the block closest to a given UNIX timestamp. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-timestamp)* + +Parameters: +- `timestamp` (path, Timestamp, required) + +Returns: JSON `BlockTimestamp` + +```bash +curl -s "https://bitview.space/api/v1/mining/blocks/timestamp/" +``` + +#### GET `/api/v1/mining/difficulty-adjustments` + +Difficulty adjustments (all time) + +Get historical difficulty adjustments including timestamp, block height, difficulty value, and percentage change. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-difficulty-adjustments)* + +Returns: JSON `DifficultyAdjustmentEntry[]` + +```bash +curl -s "https://bitview.space/api/v1/mining/difficulty-adjustments" +``` + +#### GET `/api/v1/mining/difficulty-adjustments/{time_period}` + +Difficulty adjustments + +Get historical difficulty adjustments for a time period. Valid periods: `24h`, `3d`, `1w`, `1m`, `3m`, `6m`, `1y`, `2y`, `3y`. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-difficulty-adjustments)* + +Parameters: +- `time_period` (path, TimePeriod, required) + +Returns: JSON `DifficultyAdjustmentEntry[]` + +```bash +curl -s "https://bitview.space/api/v1/mining/difficulty-adjustments/" +``` + +#### GET `/api/v1/mining/hashrate` + +Network hashrate (all time) + +Get network hashrate and difficulty data for all time. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-hashrate)* + +Returns: JSON `HashrateSummary` + +```bash +curl -s "https://bitview.space/api/v1/mining/hashrate" +``` + +#### GET `/api/v1/mining/hashrate/pools` + +All pools hashrate (all time) + +Get hashrate data for all mining pools. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-mining-pool-hashrates)* + +Returns: JSON `PoolHashrateEntry[]` + +```bash +curl -s "https://bitview.space/api/v1/mining/hashrate/pools" +``` + +#### GET `/api/v1/mining/hashrate/pools/{time_period}` + +All pools hashrate + +Get hashrate data for all mining pools for a time period. Valid periods: `1m`, `3m`, `6m`, `1y`, `2y`, `3y`. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-mining-pool-hashrates)* + +Parameters: +- `time_period` (path, TimePeriod, required) + +Returns: JSON `PoolHashrateEntry[]` + +```bash +curl -s "https://bitview.space/api/v1/mining/hashrate/pools/" +``` + +#### GET `/api/v1/mining/hashrate/{time_period}` + +Network hashrate + +Get network hashrate and difficulty data for a time period. Valid periods: `24h`, `3d`, `1w`, `1m`, `3m`, `6m`, `1y`, `2y`, `3y`. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-hashrate)* + +Parameters: +- `time_period` (path, TimePeriod, required) + +Returns: JSON `HashrateSummary` + +```bash +curl -s "https://bitview.space/api/v1/mining/hashrate/" +``` + +#### GET `/api/v1/mining/pool/{slug}` + +Mining pool details + +Get detailed information about a specific mining pool including block counts and shares for different time periods. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-mining-pool)* + +Parameters: +- `slug` (path, PoolSlug, required) + +Returns: JSON `PoolDetail` + +```bash +curl -s "https://bitview.space/api/v1/mining/pool/" +``` + +#### GET `/api/v1/mining/pool/{slug}/blocks` + +Mining pool blocks + +Get the 10 most recent blocks mined by a specific pool. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-mining-pool-blocks)* + +Parameters: +- `slug` (path, PoolSlug, required) + +Returns: JSON `BlockInfoV1[]` + +```bash +curl -s "https://bitview.space/api/v1/mining/pool//blocks" +``` + +#### GET `/api/v1/mining/pool/{slug}/blocks/{height}` + +Mining pool blocks from height + +Get 10 blocks mined by a specific pool before (and including) the given height. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-mining-pool-blocks)* + +Parameters: +- `slug` (path, PoolSlug, required) +- `height` (path, Height, required) + +Returns: JSON `BlockInfoV1[]` + +```bash +curl -s "https://bitview.space/api/v1/mining/pool//blocks/" +``` + +#### GET `/api/v1/mining/pool/{slug}/hashrate` + +Mining pool hashrate + +Get hashrate history for a specific mining pool. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-mining-pool-hashrate)* + +Parameters: +- `slug` (path, PoolSlug, required) + +Returns: JSON `PoolHashrateEntry[]` + +```bash +curl -s "https://bitview.space/api/v1/mining/pool//hashrate" +``` + +#### GET `/api/v1/mining/pools` + +List all mining pools + +Get list of all known mining pools with their identifiers. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-mining-pools)* + +Returns: JSON `PoolInfo[]` + +```bash +curl -s "https://bitview.space/api/v1/mining/pools" +``` + +#### GET `/api/v1/mining/pools/{time_period}` + +Mining pool statistics + +Get mining pool statistics for a time period. Valid periods: `24h`, `3d`, `1w`, `1m`, `3m`, `6m`, `1y`, `2y`, `3y`. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-mining-pools)* + +Parameters: +- `time_period` (path, TimePeriod, required) + +Returns: JSON `PoolsSummary` + +```bash +curl -s "https://bitview.space/api/v1/mining/pools/" +``` + +#### GET `/api/v1/mining/reward-stats/{block_count}` + +Mining reward statistics + +Get mining reward statistics for the last N blocks including total rewards, fees, and transaction count. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-reward-stats)* + +Parameters: +- `block_count` (path, integer, required): Number of recent blocks to include + +Returns: JSON `RewardStats` + +```bash +curl -s "https://bitview.space/api/v1/mining/reward-stats/" +``` + +### Openapi.json + +#### GET `/openapi.json` + +OpenAPI specification + +Full OpenAPI 3.1 specification for this API. + +Returns: text + +```bash +curl -s "https://bitview.space/openapi.json" +``` + +### Oracle + +#### GET `/api/oracle/histogram/outputs/live` + +Live output value histogram + +Live unfiltered output value histogram for the forming mempool block. Every live output is binned by value on the oracle log scale; no oracle payment filters are applied. A flat array of log-scale bins, all zero when no mempool is configured. + +Returns: JSON `integer[]` + +```bash +curl -s "https://bitview.space/api/oracle/histogram/outputs/live" +``` + +#### GET `/api/oracle/histogram/outputs/{point}` + +Output value histogram at height or day + +Unfiltered output value histogram for a confirmed point. A block height (`840000`) gives every output in that block, coinbase included, binned by value on the oracle log scale; a calendar date (`YYYY-MM-DD`) sums every block that day. A flat array of log-scale bins. + +Parameters: +- `point` (path, string, required) + +Returns: JSON `integer[]` + +```bash +curl -s "https://bitview.space/api/oracle/histogram/outputs/" +``` + +#### GET `/api/oracle/histogram/payments/live` + +Live payment output histogram + +Live smoothed histogram of oracle-eligible payment outputs, binned by output value on the oracle log scale. It combines the committed oracle window with the forming mempool block. A flat array of log-scale bins. + +Returns: JSON `integer[]` + +```bash +curl -s "https://bitview.space/api/oracle/histogram/payments/live" +``` + +#### GET `/api/oracle/histogram/payments/{point}` + +Payment output histogram at height or day + +Smoothed histogram of oracle-eligible payment outputs for a confirmed point. A block height (`840000`) gives that block's oracle payment histogram; a calendar date (`YYYY-MM-DD`) gives the average of that day's per-block payment histograms. A flat array of log-scale bins. + +Parameters: +- `point` (path, string, required) + +Returns: JSON `integer[]` + +```bash +curl -s "https://bitview.space/api/oracle/histogram/payments/" +``` + +#### GET `/api/oracle/price` + +Live BTC/USD price + +Current BTC/USD price in dollars. Same value as `/api/mempool/price`. Confirmed per-height history is available at `/api/vecs/height-to-price`. + +Returns: JSON `Dollars` + +```bash +curl -s "https://bitview.space/api/oracle/price" +``` + +### Prices + +#### GET `/api/v1/prices` + +Current BTC price + +Returns bitcoin latest price (on-chain derived, USD only). *[Mempool.space docs](https://mempool.space/docs/api/rest#get-price)* + +Returns: JSON `Prices` + +```bash +curl -s "https://bitview.space/api/v1/prices" +``` + +### Replacements + +#### GET `/api/v1/replacements` + +Recent RBF replacements + +Returns up to 25 most-recent RBF replacement trees across the whole mempool. Each entry has the same shape as `tx_rbf().replacements`. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-replacements)* + +Returns: JSON `ReplacementNode[]` + +```bash +curl -s "https://bitview.space/api/v1/replacements" +``` + +### Series + +#### GET `/api/series` + +Series catalog + +Returns the complete hierarchical catalog of available series organized as a tree structure. Series are grouped by categories and subcategories. + +Returns: JSON `TreeNode` + +```bash +curl -s "https://bitview.space/api/series" +``` + +#### GET `/api/series/bulk` + +Bulk series data + +Fetch multiple series in a single request. Supports filtering by index and date range. Returns an array of SeriesData objects. For a single series, use `get_series` instead. + +Parameters: +- `series` (query, SeriesList, required): Requested series +- `index` (query, Index, required): Index to query +- `start` (query, RangeIndex, optional): Inclusive start: integer index, date (YYYY-MM-DD), or timestamp (ISO 8601). Negative integers count from end. Aliases: `from`, `f`, `s` +- `end` (query, RangeIndex, optional): Exclusive end: integer index, date (YYYY-MM-DD), or timestamp (ISO 8601). Negative integers count from end. Aliases: `to`, `t`, `e` +- `limit` (query, Limit, optional): Maximum number of values to return (ignored if `end` is set). Aliases: `count`, `c`, `l` +- `format` (query, Format, optional): Format of the output + +Returns: JSON `SeriesData[]` + +```bash +curl -s "https://bitview.space/api/series/bulk?series=&index=&start=&end=&limit=&format=" +``` + +#### GET `/api/series/count` + +Series count + +Returns the number of series available per index type. + +Returns: JSON `SeriesCount[]` + +```bash +curl -s "https://bitview.space/api/series/count" +``` + +#### GET `/api/series/indexes` + +List available indexes + +Returns all available indexes with their accepted query aliases. Use any alias when querying series. + +Returns: JSON `IndexInfo[]` + +```bash +curl -s "https://bitview.space/api/series/indexes" +``` + +#### GET `/api/series/list` + +Series list + +Paginated flat list of all available series names. Use `page` query param for pagination. + +Parameters: +- `page` (query, integer, optional): Pagination index +- `per_page` (query, integer, optional): Results per page (default: 1000, max: 1000) + +Returns: JSON `PaginatedSeries` + +```bash +curl -s "https://bitview.space/api/series/list?page=&per_page=" +``` + +#### GET `/api/series/search` + +Search series + +Fuzzy search for series by name. Supports partial matches and typos. + +Parameters: +- `q` (query, SeriesName, required): Search query string +- `limit` (query, Limit, optional): Maximum number of results + +Returns: JSON `string[]` + +```bash +curl -s "https://bitview.space/api/series/search?q=&limit=" +``` + +#### GET `/api/series/{series}` + +Get series info + +Returns the supported indexes and value type for the specified series. + +Parameters: +- `series` (path, SeriesName, required) + +Returns: JSON `SeriesInfo` + +```bash +curl -s "https://bitview.space/api/series/" +``` + +#### GET `/api/series/{series}/{index}` + +Get series data + +Fetch data for a specific series at the given index. Use query parameters to filter by date range and format (json/csv). + +Parameters: +- `series` (path, SeriesName, required): Series name +- `index` (path, Index, required): Aggregation index +- `start` (query, RangeIndex, optional): Inclusive start: integer index, date (YYYY-MM-DD), or timestamp (ISO 8601). Negative integers count from end. Aliases: `from`, `f`, `s` +- `end` (query, RangeIndex, optional): Exclusive end: integer index, date (YYYY-MM-DD), or timestamp (ISO 8601). Negative integers count from end. Aliases: `to`, `t`, `e` +- `limit` (query, Limit, optional): Maximum number of values to return (ignored if `end` is set). Aliases: `count`, `c`, `l` +- `format` (query, Format, optional): Format of the output + +Returns: JSON `SeriesData` + +```bash +curl -s "https://bitview.space/api/series//?start=&end=&limit=&format=" +``` + +#### GET `/api/series/{series}/{index}/data` + +Get raw series data + +Returns just the data array without the SeriesData wrapper. Supports the same range and format parameters as the standard endpoint. + +Parameters: +- `series` (path, SeriesName, required): Series name +- `index` (path, Index, required): Aggregation index +- `start` (query, RangeIndex, optional): Inclusive start: integer index, date (YYYY-MM-DD), or timestamp (ISO 8601). Negative integers count from end. Aliases: `from`, `f`, `s` +- `end` (query, RangeIndex, optional): Exclusive end: integer index, date (YYYY-MM-DD), or timestamp (ISO 8601). Negative integers count from end. Aliases: `to`, `t`, `e` +- `limit` (query, Limit, optional): Maximum number of values to return (ignored if `end` is set). Aliases: `count`, `c`, `l` +- `format` (query, Format, optional): Format of the output + +Returns: JSON `boolean[]` + +```bash +curl -s "https://bitview.space/api/series///data?start=&end=&limit=&format=" +``` + +#### GET `/api/series/{series}/{index}/latest` + +Get latest series value + +Returns the single most recent value for a series, unwrapped (not inside a SeriesData object). + +Parameters: +- `series` (path, SeriesName, required): Series name +- `index` (path, Index, required): Aggregation index + +Returns: JSON `*` + +```bash +curl -s "https://bitview.space/api/series///latest" +``` + +#### GET `/api/series/{series}/{index}/len` + +Get series data length + +Returns the total number of data points for a series at the given index. + +Parameters: +- `series` (path, SeriesName, required): Series name +- `index` (path, Index, required): Aggregation index + +Returns: JSON `integer` + +```bash +curl -s "https://bitview.space/api/series///len" +``` + +#### GET `/api/series/{series}/{index}/version` + +Get series version + +Returns the current version of a series. Changes when the series data is updated. + +Parameters: +- `series` (path, SeriesName, required): Series name +- `index` (path, Index, required): Aggregation index + +Returns: JSON `Version` + +```bash +curl -s "https://bitview.space/api/series///version" +``` + +### Server + +#### GET `/api/server/disk` + +Disk usage + +Returns the disk space used by BRK and Bitcoin data. + +Returns: JSON `DiskUsage` + +```bash +curl -s "https://bitview.space/api/server/disk" +``` + +#### GET `/api/server/sync` + +Sync status + +Returns the sync status of the indexer, including indexed height, tip height, blocks behind, and last indexed timestamp. + +Returns: JSON `SyncStatus` + +```bash +curl -s "https://bitview.space/api/server/sync" +``` + +### Transaction Times + +#### GET `/api/v1/transaction-times` + +Transaction first-seen times + +Returns timestamps when transactions were first seen in the mempool. Returns 0 for mined or unknown transactions. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction-times)* + +Parameters: +- `txId[]` (query, Txid[], required): Transaction IDs to look up (max 250 per request). + +Returns: JSON `integer[]` + +```bash +curl -s "https://bitview.space/api/v1/transaction-times?txId[]=" +``` + +### Tx + +#### POST `/api/tx` + +Broadcast transaction + +Broadcast a raw transaction to the network. The transaction should be provided as hex in the request body. The txid will be returned on success. *[Mempool.space docs](https://mempool.space/docs/api/rest#post-transaction)* + +Request body: `string` (required) + +Returns: JSON `Txid` + +```bash +curl -s -X POST --data '' "https://bitview.space/api/tx" +``` + +#### GET `/api/tx/{txid}` + +Transaction information + +Retrieve complete transaction data by transaction ID (txid). Returns inputs, outputs, fee, size, and confirmation status. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction)* + +Parameters: +- `txid` (path, Txid, required) + +Returns: JSON `Transaction` + +```bash +curl -s "https://bitview.space/api/tx/" +``` + +#### GET `/api/tx/{txid}/hex` + +Transaction hex + +Retrieve the raw transaction as a hex-encoded string. Returns the serialized transaction in hexadecimal format. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction-hex)* + +Parameters: +- `txid` (path, Txid, required) + +Returns: text `Hex` + +```bash +curl -s "https://bitview.space/api/tx//hex" +``` + +#### GET `/api/tx/{txid}/merkle-proof` + +Transaction merkle proof + +Get the merkle inclusion proof for a transaction. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction-merkle-proof)* + +Parameters: +- `txid` (path, Txid, required) + +Returns: JSON `MerkleProof` + +```bash +curl -s "https://bitview.space/api/tx//merkle-proof" +``` + +#### GET `/api/tx/{txid}/merkleblock-proof` + +Transaction merkleblock proof + +Get the merkleblock proof for a transaction (BIP37 format, hex encoded). *[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction-merkleblock-proof)* + +Parameters: +- `txid` (path, Txid, required) + +Returns: text `Hex` + +```bash +curl -s "https://bitview.space/api/tx//merkleblock-proof" +``` + +#### GET `/api/tx/{txid}/outspend/{vout}` + +Output spend status + +Get the spending status of a transaction output. Returns whether the output has been spent and, if so, the spending transaction details. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction-outspend)* + +Parameters: +- `txid` (path, Txid, required): Transaction ID +- `vout` (path, Vout, required): Output index + +Returns: JSON `TxOutspend` + +```bash +curl -s "https://bitview.space/api/tx//outspend/" +``` + +#### GET `/api/tx/{txid}/outspends` + +All output spend statuses + +Get the spending status of all outputs in a transaction. Returns an array with the spend status for each output. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction-outspends)* + +Parameters: +- `txid` (path, Txid, required) + +Returns: JSON `TxOutspend[]` + +```bash +curl -s "https://bitview.space/api/tx//outspends" +``` + +#### GET `/api/tx/{txid}/raw` + +Transaction raw + +Returns a transaction as binary data. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction-raw)* + +Parameters: +- `txid` (path, Txid, required) + +Returns: binary data + +```bash +curl -s "https://bitview.space/api/tx//raw" +``` + +#### GET `/api/tx/{txid}/status` + +Transaction status + +Retrieve the confirmation status of a transaction. Returns whether the transaction is confirmed and, if so, the block height, hash, and timestamp. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction-status)* + +Parameters: +- `txid` (path, Txid, required) + +Returns: JSON `TxStatus` + +```bash +curl -s "https://bitview.space/api/tx//status" +``` + +#### GET `/api/v1/tx/{txid}/rbf` + +RBF replacement history + +Returns the RBF replacement tree for a transaction, if any. Both `replacements` and `replaces` are null when the tx has no known RBF history within the mempool monitor's retention window. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction-rbf-history)* + +Parameters: +- `txid` (path, Txid, required) + +Returns: JSON `RbfResponse` + +```bash +curl -s "https://bitview.space/api/v1/tx//rbf" +``` + +### Tx Index + +#### GET `/api/tx-index/{index}` + +Txid by index + +Retrieve the transaction ID (txid) at a given global transaction index. Returns the txid as plain text. + +Parameters: +- `index` (path, TxIndex, required) + +Returns: text `Txid` + +```bash +curl -s "https://bitview.space/api/tx-index/" +``` + +### Urpd + +#### GET `/api/urpd` + +Available URPD cohorts + +Cohorts for which URPD data is available. Returns names like `all`, `sth`, `lth`, `utxos_under_1h_old`. + +Returns: JSON `Cohort[]` + +```bash +curl -s "https://bitview.space/api/urpd" +``` + +#### GET `/api/urpd/{cohort}` + +Latest URPD + +URPD for the most recent available date in the cohort. The response's `date` field echoes which date was served. See the URPD tag description for the response shape and `agg` options. + +Parameters: +- `cohort` (path, Cohort, required) +- `agg` (query, UrpdAggregation, optional): Aggregation strategy. Default: raw (no aggregation). Accepts `bucket` as alias. + +Returns: JSON `Urpd` + +```bash +curl -s "https://bitview.space/api/urpd/?agg=" +``` + +#### GET `/api/urpd/{cohort}/dates` + +Available URPD dates + +Dates for which a URPD snapshot is available for the cohort. One entry per UTC day, sorted ascending. + +Parameters: +- `cohort` (path, Cohort, required) + +Returns: JSON `Date[]` + +```bash +curl -s "https://bitview.space/api/urpd//dates" +``` + +#### GET `/api/urpd/{cohort}/{date}` + +URPD at date + +URPD for a (cohort, date) pair. Returns `{ cohort, date, aggregation, close, total_supply, buckets }` where each bucket is `{ price_floor, supply, realized_cap, unrealized_pnl }`. See the URPD tag description for unit conventions and `agg` options. + +Parameters: +- `cohort` (path, Cohort, required) +- `date` (path, string, required) +- `agg` (query, UrpdAggregation, optional): Aggregation strategy. Default: raw (no aggregation). Accepts `bucket` as alias. + +Returns: JSON `Urpd` + +```bash +curl -s "https://bitview.space/api/urpd//?agg=" +``` + +### Validate Address + +#### GET `/api/v1/validate-address/{address}` + +Validate address + +Validate a Bitcoin address and get information about its type and scriptPubKey. Returns `isvalid: false` with an error message for invalid addresses. *[Mempool.space docs](https://mempool.space/docs/api/rest#get-address-validate)* + +Parameters: +- `address` (path, string, required): Bitcoin address to validate (can be any string) + +Returns: JSON `AddrValidation` + +```bash +curl -s "https://bitview.space/api/v1/validate-address/
    " +``` + +### Version + +#### GET `/version` + +API version + +Returns the current version of the API server + +Returns: JSON `string` + +```bash +curl -s "https://bitview.space/version" +``` + +## Schemas + +### `Addr` + +`string` + +### `AddrChainStats` + +- `funded_txo_count`: `integer` (required) — Total number of transaction outputs that funded this address +- `funded_txo_sum`: `Sats` (required) — Total amount in satoshis received by this address across all funded outputs +- `spent_txo_count`: `integer` (required) — Total number of transaction outputs spent from this address +- `spent_txo_sum`: `Sats` (required) — Total amount in satoshis spent from this address +- `tx_count`: `integer` (required) — Total number of confirmed transactions involving this address +- `type_index`: `TypeIndex` (required) — Index of this address within its type on the blockchain +- `realized_price`: `Dollars` (required) — Realized price (average cost basis) in USD + +### `AddrHashPrefixMatches` + +- `addr_type`: `OutputType` (required) +- `prefix`: `string` (required) +- `truncated`: `boolean` (required) +- `addresses`: `Addr[]` (required) + +### `AddrMempoolStats` + +- `funded_txo_count`: `integer` (required) — Number of unconfirmed transaction outputs funding this address +- `funded_txo_sum`: `Sats` (required) — Total amount in satoshis being received in unconfirmed transactions +- `spent_txo_count`: `integer` (required) — Number of unconfirmed transaction inputs spending from this address +- `spent_txo_sum`: `Sats` (required) — Total amount in satoshis being spent in unconfirmed transactions +- `tx_count`: `integer` (required) — Number of unconfirmed transactions involving this address + +### `AddrStats` + +- `address`: `Addr` (required) — Bitcoin address string +- `addr_type`: `OutputType` (required) — Address type (p2pkh, p2sh, v0_p2wpkh, v0_p2wsh, v1_p2tr, etc.) +- `chain_stats`: `AddrChainStats` (required) — Statistics for confirmed transactions on the blockchain +- `mempool_stats`: `AddrMempoolStats` (required) — Statistics for unconfirmed transactions in the mempool +- `balance`: `Sats` (required) — Current balance in satoshis, including unconfirmed mempool changes + +### `AddrValidation` + +- `isvalid`: `boolean` (required) — Whether the address is valid +- `address`: `object` — The validated address +- `scriptPubKey`: `object` — The scriptPubKey in hex +- `isscript`: `object` — Whether this is a script address (P2SH) +- `iswitness`: `object` — Whether this is a witness address +- `witness_version`: `object` — Witness version (0 for P2WPKH/P2WSH, 1 for P2TR) +- `witness_program`: `object` — Witness program in hex +- `error_locations`: `object` — Error locations (empty array for most errors) +- `error`: `object` — Error message for invalid addresses + +### `Bitcoin` + +`number` + +### `BlockExtras` + +- `totalFees`: `Sats` (required) — Total fees in satoshis +- `medianFee`: `FeeRate` (required) — Median fee rate in sat/vB +- `feeRange`: `FeeRate[]` (required) — Fee rate range: [min, 10%, 25%, 50%, 75%, 90%, max] +- `reward`: `Sats` (required) — Total block reward (subsidy + fees) in satoshis +- `pool`: `BlockPool` (required) — Mining pool that mined this block +- `avgFee`: `Sats` (required) — Average fee per transaction in satoshis +- `avgFeeRate`: `FeeRate` (required) — Average fee rate in sat/vB +- `coinbaseRaw`: `string` (required) — Raw coinbase transaction scriptsig as hex +- `coinbaseAddress`: `object` — Primary coinbase output address +- `coinbaseAddresses`: `string[]` (required) — All coinbase output addresses +- `coinbaseSignature`: `string` (required) — Coinbase output script in ASM format +- `coinbaseSignatureAscii`: `string` (required) — Coinbase scriptsig decoded as ASCII +- `avgTxSize`: `number` (required) — Average transaction size in bytes +- `totalInputs`: `integer` (required) — Total number of inputs (excluding coinbase) +- `totalOutputs`: `integer` (required) — Total number of outputs +- `totalOutputAmt`: `Sats` (required) — Total output amount in satoshis +- `medianFeeAmt`: `Sats` (required) — Median fee amount in satoshis +- `feePercentiles`: `Sats[]` (required) — Fee amount percentiles in satoshis: [min, 10%, 25%, 50%, 75%, 90%, max] +- `segwitTotalTxs`: `integer` (required) — Number of segwit transactions +- `segwitTotalSize`: `integer` (required) — Total size of segwit transactions in bytes +- `segwitTotalWeight`: `Weight` (required) — Total weight of segwit transactions +- `header`: `string` (required) — Raw 80-byte block header as hex +- `utxoSetChange`: `integer` (required) — UTXO set change (total outputs - total inputs, includes unspendable like OP_RETURN). Note: intentionally differs from utxo_set_size diff which excludes unspendable outputs. Matches mempool.space/bitcoin-cli behavior. +- `utxoSetSize`: `integer` (required) — Total spendable UTXO set size at this height (excludes OP_RETURN and other unspendable outputs) +- `totalInputAmt`: `Sats` (required) — Total input amount in satoshis +- `virtualSize`: `number` (required) — Virtual size in vbytes +- `firstSeen`: `object` — Timestamp when the block was first seen (always null, not yet supported) +- `orphans`: `string[]` (required) — Orphaned blocks (always empty) +- `price`: `Dollars` (required) — USD price at block height + +### `BlockHash` + +`string` + +### `BlockInfo` + +- `id`: `BlockHash` (required) — Block hash +- `height`: `Height` (required) — Block height +- `version`: `integer` (required) — Block version +- `timestamp`: `Timestamp` (required) — Block timestamp (Unix time) +- `bits`: `integer` (required) — Compact target (bits) +- `nonce`: `integer` (required) — Nonce +- `difficulty`: `number` (required) — Block difficulty +- `merkle_root`: `string` (required) — Merkle root of the transaction tree +- `tx_count`: `integer` (required) — Number of transactions +- `size`: `integer` (required) — Block size in bytes +- `weight`: `Weight` (required) — Block weight in weight units +- `previousblockhash`: `BlockHash` (required) — Previous block hash +- `mediantime`: `Timestamp` (required) — Median time of the last 11 blocks + +### `BlockInfoV1` + +- `id`: `BlockHash` (required) — Block hash +- `height`: `Height` (required) — Block height +- `version`: `integer` (required) — Block version +- `timestamp`: `Timestamp` (required) — Block timestamp (Unix time) +- `bits`: `integer` (required) — Compact target (bits) +- `nonce`: `integer` (required) — Nonce +- `difficulty`: `number` (required) — Block difficulty +- `merkle_root`: `string` (required) — Merkle root of the transaction tree +- `tx_count`: `integer` (required) — Number of transactions +- `size`: `integer` (required) — Block size in bytes +- `weight`: `Weight` (required) — Block weight in weight units +- `previousblockhash`: `BlockHash` (required) — Previous block hash +- `mediantime`: `Timestamp` (required) — Median time of the last 11 blocks +- `stale`: `boolean` — Whether this block has been replaced by a longer chain +- `extras`: `BlockExtras` (required) — Extended block data + +### `BlockPool` + +- `id`: `integer` (required) — Unique pool identifier +- `name`: `string` (required) — Pool name +- `slug`: `PoolSlug` (required) — URL-friendly pool identifier +- `blockNumber`: `integer` (required) — This block's ordinal among blocks attributed to this pool +- `minerNames`: `object` — Miner name tags found in coinbase scriptsig + +### `BlockSizeEntry` + +- `avgHeight`: `Height` (required) — Average block height in this window +- `timestamp`: `Timestamp` (required) — Unix timestamp at the window midpoint +- `avgSize`: `integer` (required) — Rolling 24h median block size (bytes) + +### `BlockSizesWeights` + +- `sizes`: `BlockSizeEntry[]` (required) — Block size data points +- `weights`: `BlockWeightEntry[]` (required) — Block weight data points + +### `BlockStatus` + +- `in_best_chain`: `boolean` (required) — Whether this block is in the best chain +- `height`: `Height | null` — Block height (only if in best chain) +- `next_best`: `BlockHash | null` — Hash of the next block in the best chain (null if tip) + +### `BlockTemplate` + +- `hash`: `NextBlockHash` (required) — Pass back as `` on `/api/v1/mempool/block-template/diff/{hash}` to fetch deltas. +- `stats`: `MempoolBlock` (required) — Aggregate stats for this block (size, vsize, fee range, ...). +- `transactions`: `Transaction[]` (required) — Full transaction bodies in `getblocktemplate` order. + +### `BlockTemplateDiff` + +- `hash`: `NextBlockHash` (required) — Current next-block hash. Use as `since` on the next diff call. +- `since`: `NextBlockHash` (required) — Echoed prior hash the diff was computed against. +- `order`: `BlockTemplateDiffEntry[]` (required) — New template in order. Each entry is either an index into the prior template's transactions or a full transaction body. +- `removed`: `Txid[]` (required) — Txids that left the projected next block since `since` (confirmed, evicted, replaced, or pushed past block 0). + +### `BlockTemplateDiffEntry` + +`integer | Transaction` + +### `BlockTimestamp` + +- `height`: `Height` (required) — Block height +- `hash`: `BlockHash` (required) — Block hash +- `timestamp`: `string` (required) — Block timestamp in ISO 8601 format + +### `BlockWeightEntry` + +- `avgHeight`: `Height` (required) — Average block height in this window +- `timestamp`: `Timestamp` (required) — Unix timestamp at the window midpoint +- `avgWeight`: `Weight` (required) — Rolling 24h median block weight (weight units) + +### `Cohort` + +`all | sth | lth | utxos_under_1h_old | utxos_1h_to_1d_old | utxos_1d_to_1w_old | utxos_1w_to_1m_old | utxos_1m_to_2m_old | utxos_2m_to_3m_old | utxos_3m_to_4m_old | utxos_4m_to_5m_old | utxos_5m_to_6m_old | utxos_6m_to_1y_old | utxos_1y_to_2y_old | utxos_2y_to_3y_old | utxos_3y_to_4y_old | utxos_4y_to_5y_old | utxos_5y_to_6y_old | utxos_6y_to_7y_old | utxos_7y_to_8y_old | utxos_8y_to_10y_old | utxos_10y_to_12y_old | utxos_12y_to_15y_old | utxos_over_15y_old` + +### `CpfpCluster` + +- `txs`: `CpfpClusterTx[]` (required) — All txs in the cluster, in topological order (parents before children). +- `chunks`: `CpfpClusterChunk[]` (required) — SFL-emitted chunks ordered by descending feerate. +- `chunkIndex`: `integer` (required) — Index into `chunks` of the chunk containing the seed tx. + +### `CpfpClusterChunk` + +- `txs`: `CpfpClusterTxIndex[]` (required) +- `feerate`: `FeeRate` (required) + +### `CpfpClusterTx` + +- `txid`: `Txid` (required) +- `weight`: `Weight` (required) +- `fee`: `Sats` (required) +- `parents`: `CpfpClusterTxIndex[]` (required) — In-cluster parents of this tx. + +### `CpfpClusterTxIndex` + +`integer` + +### `CpfpEntry` + +- `txid`: `Txid` (required) +- `weight`: `Weight` (required) +- `fee`: `Sats` (required) + +### `CpfpInfo` + +- `ancestors`: `CpfpEntry[]` (required) — Ancestor transactions in the CPFP chain. +- `bestDescendant`: `CpfpEntry | null` — Best (highest fee rate) descendant, if any. +- `descendants`: `CpfpEntry[]` (required) — Descendant transactions in the CPFP chain. +- `effectiveFeePerVsize`: `FeeRate` (required) — Effective fee rate considering CPFP relationships (sat/vB). This is the seed's chunk feerate after lift-merging, i.e. the rate Core/mempool.space would surface for this tx. +- `sigops`: `SigOps` (required) — BIP-141 sigop cost for the seed tx (witness sigops count as 1, legacy and P2SH-redeem sigops count as 4). +- `fee`: `Sats` (required) — Transaction fee (sats). +- `vsize`: `VSize` (required) — Virtual size of the seed tx (vbytes). +- `adjustedVsize`: `VSize` (required) — Policy-adjusted virtual size: `max(vsize, sigops * 5)`. +- `cluster`: `CpfpCluster | null` — Cluster the seed belongs to: full tx list, SFL-linearized chunks, and the seed's chunk index. Omitted when the seed has no ancestors and no descendants (matches mempool.space). + +### `Date` + +`integer` + +### `DifficultyAdjustment` + +- `progressPercent`: `number` (required) — Progress through current difficulty epoch (0-100%) +- `difficultyChange`: `number` (required) — Estimated difficulty change at next retarget (%) +- `estimatedRetargetDate`: `integer` (required) — Estimated timestamp of next retarget (milliseconds) +- `remainingBlocks`: `integer` (required) — Blocks remaining until retarget +- `remainingTime`: `integer` (required) — Estimated time until retarget (milliseconds) +- `previousRetarget`: `number` (required) — Previous difficulty adjustment (%) +- `previousTime`: `Timestamp` (required) — Timestamp of most recent retarget (seconds) +- `nextRetargetHeight`: `Height` (required) — Height of next retarget +- `timeAvg`: `integer` (required) — Average block time in current epoch (milliseconds) +- `adjustedTimeAvg`: `integer` (required) — Time-adjusted average (milliseconds) +- `timeOffset`: `integer` (required) — Time offset from expected schedule (seconds) +- `expectedBlocks`: `number` (required) — Expected blocks based on wall clock time since epoch start + +### `DifficultyEntry` + +- `time`: `Timestamp` (required) — Unix timestamp of the difficulty adjustment +- `height`: `Height` (required) — Block height of the adjustment +- `difficulty`: `number` (required) — Difficulty value +- `adjustment`: `number` (required) — Adjustment ratio (new/previous, e.g. 1.068 = +6.8%) + +### `DiskUsage` + +- `brk`: `string` (required) — Human-readable brk data size (e.g., "48.8 GiB") +- `brk_bytes`: `integer` (required) — brk data size in bytes +- `bitcoin`: `string` (required) — Human-readable Bitcoin blocks directory size +- `bitcoin_bytes`: `integer` (required) — Bitcoin blocks directory size in bytes +- `ratio`: `number` (required) — brk as percentage of Bitcoin data + +### `Dollars` + +`number` + +### `ExchangeRates` + +`object` + +### `FeeRate` + +`number` + +### `HashrateEntry` + +- `timestamp`: `Timestamp` (required) — Unix timestamp +- `avgHashrate`: `integer` (required) — Average hashrate (H/s) + +### `HashrateSummary` + +- `hashrates`: `HashrateEntry[]` (required) — Historical hashrate data points +- `difficulty`: `DifficultyEntry[]` (required) — Historical difficulty adjustments +- `currentHashrate`: `integer` (required) — Current network hashrate (H/s) +- `currentDifficulty`: `number` (required) — Current network difficulty + +### `Health` + +- `status`: `string` (required) — Health status ("healthy") +- `service`: `string` (required) — Service name +- `version`: `string` (required) — Server version +- `timestamp`: `string` (required) — Current server time (ISO 8601) +- `started_at`: `string` (required) — Server start time (ISO 8601) +- `uptime_seconds`: `integer` (required) — Uptime in seconds +- `indexed_height`: `Height` (required) — Height of the last indexed block +- `computed_height`: `Height` (required) — Height of the last computed block (series) +- `tip_height`: `Height` (required) — Height of the chain tip (from Bitcoin node) +- `blocks_behind`: `Height` (required) — Number of blocks behind the tip +- `last_indexed_at`: `string` (required) — Human-readable timestamp of the last indexed block (ISO 8601) +- `last_indexed_at_unix`: `Timestamp` (required) — Unix timestamp of the last indexed block + +### `Height` + +`integer` + +### `Hex` + +`string` + +### `HistoricalPrice` + +- `prices`: `HistoricalPriceEntry[]` (required) — Price data points +- `exchangeRates`: `ExchangeRates` (required) — Exchange rates (currently empty) + +### `HistoricalPriceEntry` + +- `time`: `Timestamp` (required) — Unix timestamp +- `USD`: `Dollars` (required) — BTC/USD price + +### `Index` + +`minute10 | minute30 | hour1 | hour4 | hour12 | day1 | day3 | week1 | month1 | month3 | month6 | year1 | year10 | halving | epoch | height | tx_index | txin_index | txout_index | empty_output_index | op_return_index | p2a_addr_index | p2ms_output_index | p2pk33_addr_index | p2pk65_addr_index | p2pkh_addr_index | p2sh_addr_index | p2tr_addr_index | p2wpkh_addr_index | p2wsh_addr_index | unknown_output_index | funded_addr_index | empty_addr_index` + +### `MempoolBlock` + +- `blockSize`: `integer` (required) — Total serialized block size in bytes (witness + non-witness). +- `blockVSize`: `number` (required) — Total block virtual size in vbytes +- `nTx`: `integer` (required) — Number of transactions in the projected block +- `totalFees`: `Sats` (required) — Total fees in satoshis +- `medianFee`: `FeeRate` (required) — Median fee rate in sat/vB +- `feeRange`: `FeeRate[]` (required) — Fee rate range: [min, 10%, 25%, 50%, 75%, 90%, max] + +### `MempoolInfo` + +- `count`: `integer` (required) — Number of transactions in the mempool +- `vsize`: `VSize` (required) — Total virtual size of all transactions in the mempool (vbytes) +- `total_fee`: `Sats` (required) — Total fees of all transactions in the mempool (satoshis) +- `fee_histogram`: `object` (required) — Fee histogram: `[[fee_rate, vsize], ...]` sorted by descending fee rate + +### `MerkleProof` + +- `block_height`: `Height` (required) — Block height containing the transaction +- `merkle`: `string[]` (required) — Merkle proof path (hex-encoded hashes) +- `pos`: `integer` (required) — Transaction position in the block (0-indexed) + +### `NextBlockHash` + +`integer` + +### `OutputType` + +`p2pk | p2pk | p2pkh | multisig | p2sh | op_return | v0_p2wpkh | v0_p2wsh | v1_p2tr | p2a | empty | unknown` + +### `PaginatedSeries` + +- `current_page`: `integer` (required) — Current page number (0-indexed) +- `max_page`: `integer` (required) — Maximum valid page index (0-indexed) +- `total_count`: `integer` (required) — Total number of series +- `per_page`: `integer` (required) — Results per page +- `has_more`: `boolean` (required) — Whether more pages are available after the current one +- `series`: `string[]` (required) — List of series names + +### `PoolBlockCounts` + +- `all`: `integer` (required) — Total blocks mined (all time) +- `24h`: `integer` (required) — Blocks mined in last 24 hours +- `1w`: `integer` (required) — Blocks mined in last week + +### `PoolBlockShares` + +- `all`: `number` (required) — Share of all blocks (0.0 - 1.0) +- `24h`: `number` (required) — Share of blocks in last 24 hours (0.0 - 1.0) +- `1w`: `number` (required) — Share of blocks in last week (0.0 - 1.0) + +### `PoolDetail` + +- `pool`: `PoolDetailInfo` (required) — Pool information +- `blockCount`: `PoolBlockCounts` (required) — Block counts for different time periods +- `blockShare`: `PoolBlockShares` (required) — Pool's share of total blocks for different time periods +- `estimatedHashrate`: `integer` (required) — Estimated hashrate based on blocks mined (H/s) +- `reportedHashrate`: `object` — Self-reported hashrate (if available, H/s) +- `totalReward`: `Sats | null` — Total reward earned by this pool (sats, all time; None for minor pools) + +### `PoolDetailInfo` + +- `id`: `integer` (required) — Pool identifier +- `name`: `string` (required) — Pool name +- `link`: `string` (required) — Pool website URL +- `addresses`: `string[]` (required) — Known payout addresses +- `regexes`: `string[]` (required) — Coinbase tag patterns (regexes) +- `slug`: `PoolSlug` (required) — URL-friendly pool identifier +- `unique_id`: `integer` (required) — Unique pool identifier + +### `PoolSlug` + +`unknown | blockfills | ultimuspool | terrapool | luxor | 1thash | btccom | bitfarms | huobipool | wayicn | canoepool | btctop | bitcoincom | 175btc | gbminers | axbt | asicminer | bitminter | bitcoinrussia | btcserv | simplecoinus | btcguild | eligius | ozcoin | eclipsemc | maxbtc | triplemining | coinlab | 50btc | ghashio | stminingcorp | bitparking | mmpool | polmine | kncminer | bitalo | f2pool | hhtt | megabigpower | mtred | nmcbit | yourbtcnet | givemecoins | braiinspool | antpool | multicoinco | bcpoolio | cointerra | kanopool | solock | ckpool | nicehash | bitclub | bitcoinaffiliatenetwork | btcc | bwpool | exxbw | bitsolo | bitfury | 21inc | digitalbtc | 8baochi | mybtccoinpool | tbdice | hashpool | nexious | bravomining | hotpool | okexpool | bcmonster | 1hash | bixin | tatmaspool | viabtc | connectbtc | batpool | waterhole | dcexploration | dcex | btpool | 58coin | bitcoinindia | shawnp0wers | phashio | rigpool | haozhuzhu | 7pool | miningkings | hashbx | dpool | rawpool | haominer | helix | bitcoinukraine | poolin | secretsuperstar | tigerpoolnet | sigmapoolcom | okpooltop | hummerpool | tangpool | bytepool | spiderpool | novablock | miningcity | binancepool | minerium | lubiancom | okkong | aaopool | emcdpool | foundryusa | sbicrypto | arkpool | purebtccom | marapool | kucoinpool | entrustcharitypool | okminer | titan | pegapool | btcnuggets | cloudhashing | digitalxmintsy | telco214 | btcpoolparty | multipool | transactioncoinmining | btcdig | trickysbtcpool | btcmp | eobot | unomp | patels | gogreenlight | bitcoinindiapool | ekanembtc | canoe | tiger | 1m1x | zulupool | secpool | ocean | whitepool | wiz | wk057 | futurebitapollosolo | carbonnegative | portlandhodl | phoenix | neopool | maxipool | bitfufupool | gdpool | miningdutch | publicpool | miningsquared | innopolistech | btclab | parasite | redrockpool | est3lar | braiinssolo | solopoolcom | noderunners` + +### `PoolStats` + +- `poolId`: `integer` (required) — Unique pool identifier +- `name`: `string` (required) — Pool name +- `link`: `string` (required) — Pool website URL +- `blockCount`: `integer` (required) — Number of blocks mined in the time period +- `rank`: `integer` (required) — Pool ranking by block count (1 = most blocks) +- `emptyBlocks`: `integer` (required) — Number of empty blocks mined +- `slug`: `PoolSlug` (required) — URL-friendly pool identifier +- `share`: `number` (required) — Pool's share of total blocks (0.0 - 1.0) +- `poolUniqueId`: `integer` (required) — Unique pool identifier + +### `PoolsSummary` + +- `pools`: `PoolStats[]` (required) — List of pools sorted by block count descending +- `blockCount`: `integer` (required) — Total blocks in the time period +- `lastEstimatedHashrate`: `integer` (required) — Estimated network hashrate (H/s) +- `lastEstimatedHashrate3d`: `integer` (required) — Estimated network hashrate over last 3 days (H/s) +- `lastEstimatedHashrate1w`: `integer` (required) — Estimated network hashrate over last 1 week (H/s) + +### `Prices` + +- `time`: `Timestamp` (required) — Unix timestamp +- `USD`: `Dollars` (required) — BTC/USD price + +### `RawLockTime` + +`integer` + +### `RbfResponse` + +- `replacements`: `ReplacementNode | null` +- `replaces`: `object` + +### `RbfTx` + +- `txid`: `Txid` (required) +- `fee`: `Sats` (required) +- `vsize`: `VSize` (required) +- `value`: `Sats` (required) — Sum of output amounts. +- `rate`: `FeeRate` (required) +- `time`: `Timestamp` (required) +- `rbf`: `boolean` (required) — BIP-125 signaling: at least one input has sequence < 0xffffffff-1. +- `fullRbf`: `object` — Only populated on the root `tx` of an RBF response. `true` iff this tx displaced at least one non-signaling predecessor. + +### `RecommendedFees` + +- `fastestFee`: `FeeRate` (required) — Fee rate for fastest confirmation (next block) +- `halfHourFee`: `FeeRate` (required) — Fee rate for confirmation within ~30 minutes (3 blocks) +- `hourFee`: `FeeRate` (required) — Fee rate for confirmation within ~1 hour (6 blocks) +- `economyFee`: `FeeRate` (required) — Fee rate for economical confirmation +- `minimumFee`: `FeeRate` (required) — Minimum relay fee rate + +### `ReplacementNode` + +- `tx`: `RbfTx` (required) +- `time`: `Timestamp` (required) — First-seen timestamp, duplicated here to match mempool.space's on-the-wire shape. +- `fullRbf`: `boolean` (required) — Any predecessor in this subtree was non-signaling. +- `interval`: `object` — Seconds between this node's `time` and the successor that replaced it. Omitted on the root of an RBF response. +- `mined`: `object` — `Some(true)` iff this node's tx is currently confirmed. Absent on serialization otherwise. +- `replaces`: `ReplacementNode[]` (required) + +### `RewardStats` + +- `startBlock`: `Height` (required) — First block in the range +- `endBlock`: `Height` (required) — Last block in the range +- `totalReward`: `Sats` (required) — Total coinbase rewards (subsidy + fees) in sats +- `totalFee`: `Sats` (required) — Total transaction fees in sats +- `totalTx`: `integer` (required) — Total number of transactions + +### `Sats` + +`integer` + +### `SeriesData` + +- `version`: `Version` (required) — Version of the series data +- `index`: `Index` (required) — The index type used for this query +- `type`: `string` — Value type (e.g. "f32", "u64", "Sats") +- `start`: `integer` (required) — Start index (inclusive) of the returned range +- `end`: `integer` (required) — End index (exclusive) of the returned range +- `stamp`: `string` (required) — ISO 8601 timestamp of when the response was generated +- `data`: `object[]` (required) — The series data + +### `SeriesInfo` + +- `indexes`: `Index[]` (required) — Available indexes +- `type`: `string` (required) — Value type (e.g. "f32", "u64", "Sats") + +### `SeriesLeafWithSchema` + +- `name`: `string` (required) — The series name/identifier +- `kind`: `string` (required) — The Rust type (e.g., "Sats", "StoredF64") +- `indexes`: `Index[]` (required) — Available indexes for this series +- `type`: `string` (required) — JSON Schema type (e.g., "integer", "number", "string", "boolean", "array", "object") + +### `SigOps` + +`integer` + +### `SyncStatus` + +- `indexed_height`: `Height` (required) — Height of the last indexed block +- `computed_height`: `Height` (required) — Height of the last computed block (series) +- `tip_height`: `Height` (required) — Height of the chain tip (from Bitcoin node) +- `blocks_behind`: `Height` (required) — Number of blocks behind the tip +- `last_indexed_at`: `string` (required) — Human-readable timestamp of the last indexed block (ISO 8601) +- `last_indexed_at_unix`: `Timestamp` (required) — Unix timestamp of the last indexed block + +### `Timestamp` + +`integer` + +### `Transaction` + +- `index`: `TxIndex | null` — Internal transaction index (brk-specific, not in mempool.space) +- `txid`: `Txid` (required) — Transaction ID +- `version`: `TxVersionRaw` (required) — Transaction version (raw i32 from Bitcoin protocol, may contain non-standard values in coinbase txs) +- `locktime`: `RawLockTime` (required) — Transaction lock time +- `vin`: `TxIn[]` (required) — Transaction inputs +- `vout`: `TxOut[]` (required) — Transaction outputs +- `size`: `integer` (required) — Transaction size in bytes +- `weight`: `Weight` (required) — Transaction weight +- `sigops`: `SigOps` (required) — Number of signature operations +- `fee`: `Sats` (required) — Transaction fee in satoshis +- `status`: `TxStatus` (required) — Confirmation status (confirmed, block height/hash/time) + +### `TreeNode` + +`object | SeriesLeafWithSchema` + +### `TxIn` + +- `txid`: `Txid` (required) — Transaction ID of the output being spent +- `vout`: `Vout` (required) — Output index being spent (u16: coinbase is 65535, mempool.space uses u32: 4294967295) +- `prevout`: `TxOut | null` — Information about the previous output being spent +- `scriptsig`: `string` (required) — Signature script (hex, for non-SegWit inputs) +- `scriptsig_asm`: `string` (required) — Signature script in assembly format +- `witness`: `Witness` (required) — Witness data (stack items, present for SegWit inputs; hex-encoded on the wire) +- `is_coinbase`: `boolean` (required) — Whether this input is a coinbase (block reward) input +- `sequence`: `integer` (required) — Input sequence number +- `inner_redeemscript_asm`: `string` (required) — Inner redeemscript in assembly (for P2SH-wrapped SegWit: scriptsig + witness both present) +- `inner_witnessscript_asm`: `string` (required) — Inner witnessscript in assembly (for P2WSH: last witness item decoded as script) + +### `TxIndex` + +`integer` + +### `TxOut` + +- `scriptpubkey`: `string` (required) — Script pubkey (locking script) +- `value`: `Sats` (required) — Value of the output in satoshis + +### `TxOutspend` + +- `spent`: `boolean` (required) — Whether the output has been spent +- `txid`: `Txid | null` — Transaction ID of the spending transaction (only present if spent) +- `vin`: `Vin | null` — Input index in the spending transaction (only present if spent) +- `status`: `TxStatus | null` — Status of the spending transaction (only present if spent) + +### `TxStatus` + +- `confirmed`: `boolean` (required) — Whether the transaction is confirmed +- `block_height`: `Height | null` — Block height (only present if confirmed) +- `block_hash`: `BlockHash | null` — Block hash (only present if confirmed) +- `block_time`: `Timestamp | null` — Block timestamp (only present if confirmed) + +### `TxVersionRaw` + +`integer` + +### `Txid` + +`string` + +### `TypeIndex` + +`integer` + +### `Urpd` + +- `cohort`: `Cohort` (required) +- `date`: `Date` (required) +- `aggregation`: `UrpdAggregation` (required) — Aggregation strategy applied to the buckets. +- `close`: `Dollars` (required) — Close price on `date`, in USD. Anchor for `unrealized_pnl`. +- `total_supply`: `Bitcoin` (required) — Sum of `supply` across all buckets, in BTC. +- `buckets`: `UrpdBucket[]` (required) + +### `UrpdAggregation` + +`raw | lin200 | lin500 | lin1000 | log10 | log50 | log100 | log200 | log500 | log1000 | log2000` + +### `UrpdBucket` + +- `price_floor`: `Dollars` (required) — Lower bound of the bucket, in USD. Equals the exact realized price for `Raw`. +- `supply`: `Bitcoin` (required) — Supply held with a last-move price inside this bucket, in BTC. +- `realized_cap`: `Dollars` (required) — Realized cap contribution in USD: sum of `realized_price * supply` over the coins in this bucket. +- `unrealized_pnl`: `Dollars` (required) — Unrealized P&L in USD against the close on the snapshot date: `close * supply - realized_cap`. Can be negative. + +### `VSize` + +`integer` + +### `Version` + +`integer` + +### `Vin` + +`integer` + +### `Vout` + +`integer` + +### `Weight` + +`integer` + +### `Witness` + +`string[]` -- JavaScript: https://www.npmjs.com/package/brk-client -- Python: https://pypi.org/project/brk-client/ -- Rust: https://crates.io/crates/brk_client diff --git a/website_next/llms.txt b/website_next/llms.txt index 0014d735c..39c9700fd 100644 --- a/website_next/llms.txt +++ b/website_next/llms.txt @@ -1,32 +1,26 @@ # Bitcoin Research Kit (BRK) -> Free, open-source Bitcoin on-chain analytics API at https://bitview.space. 49,000+ time-series (price, hashrate, supply, MVRV, HODL waves, and more), block explorer, address index, mempool stats, mining data. No auth required. JSON and CSV output. +> Free, open-source Bitcoin analytics API and block explorer. 55667 on-chain time-series and 97 API operations. No authentication required. -## API Documentation +## API -- [Full API reference (plain text)](https://bitview.space/llms-full.txt): Every endpoint, parameter, and response shape -- [OpenAPI spec (compact, LLM-optimized)](https://bitview.space/api.json): Machine-readable, minimal spec for tool use -- [OpenAPI spec (full)](https://bitview.space/openapi.json): Complete OpenAPI 3.1 specification -- [Interactive docs](https://bitview.space/api): Scalar API explorer +- Version: `v0.3.6` +- Base URL: https://bitview.space +- [Full plain-text reference](https://bitview.space/llms-full.txt) +- [Compact OpenAPI](https://bitview.space/api.json) +- [Full OpenAPI](https://bitview.space/openapi.json) +- [Series catalog](https://bitview.space/api/series) +- [Interactive documentation](https://bitview.space/api) -## Quick Start +Use OpenAPI for tool construction, `/api/series` for complete series metadata, and `llms-full.txt` for a readable reference. -- [Search series](https://bitview.space/api/series/search?q=price): `GET /api/series/search?q={query}` -- [Get series data](https://bitview.space/api/series/price/day?start=-30): `GET /api/series/{name}/{index}?start=-30` -- [Latest value](https://bitview.space/api/series/price/day/latest): `GET /api/series/{name}/{index}/latest` -- [Bulk query](https://bitview.space/api/series/bulk?index=day&series=price,market_cap&start=-7): `GET /api/series/bulk?index={index}&series={s1},{s2}` -- [Block by height](https://bitview.space/api/block-height/0): `GET /api/block-height/{height}` -- [Transaction](https://bitview.space/api/tx/4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b): `GET /api/tx/{txid}` -- [Address](https://bitview.space/api/address/1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa): `GET /api/address/{address}` -- [Fee estimates](https://bitview.space/api/v1/fees/recommended): `GET /api/v1/fees/recommended` -- [Live price](https://bitview.space/api/mempool/price): `GET /api/mempool/price` +## Clients -## Client Libraries - -- [JavaScript](https://www.npmjs.com/package/brk-client): npm install brk-client -- [Python](https://pypi.org/project/brk-client/): pip install brk-client -- [Rust](https://crates.io/crates/brk_client): cargo add brk_client +- [JavaScript](https://www.npmjs.com/package/brk-client) +- [Python](https://pypi.org/project/brk-client/) +- [Rust](https://crates.io/crates/brk_client) ## Source -- [GitHub](https://github.com/bitcoinresearchkit/brk): MIT licensed +- [GitHub](https://github.com/bitcoinresearchkit/brk) +- MIT licensed diff --git a/website_next/utils/client.js b/website_next/utils/client.js index dd3a6ff1e..3e7278f45 100644 --- a/website_next/utils/client.js +++ b/website_next/utils/client.js @@ -1,3 +1,4 @@ import { BrkClient } from "../modules/brk-client/index.js"; -export const brk = new BrkClient("http://localhost:3110"); +export const BRK_BASE_URL = "http://localhost:3110"; +export const brk = new BrkClient(BRK_BASE_URL);

W&`#4eeDVy@0u3RM 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 MPy zO+zHSD3Z<}E_Li*9;cfY|!+v(4 zf-c%$3MjhhfE69sMYmbeZM*1jDLT_dcUjS0yJ&BhmF?}S!mA*r!EdD~!zb`t3ZbU| zPc>$L`{3Oa7VzFTnM z7Tk6V4&8#gZUN%`q-FSE!F0<}V8}iqW8u-$R`TSy0osAyEC&fNdFo0iP=kZGJkMvw zP2nl4Jbu2IJ8p1bdN)9vKzlKAN7O-OJhj!F1Flch0~U9$Qmx9@oKLMWZl}mZ`}nVy zs}QL{SKYhBntPW-#gSEU#4C>ciu+c@eO_^&sCZ~qJmeJ*iHbmNM%PQ;_0q4{u_|_W z#ST$%->SIJEAA5&53Gs@yy5{-@wQd*Hm`V_sCZ~qJmeJ*iHdivig$U%yF^9Y6$XBG z1%h_%x>rOz5o2?pGb6-$LEWR_1Rd}KJ>f*}i}KZU>qKbcec5!{qN`~73{_Bc8K|J? zF;GF%VW@41I>9y~ zNQ<#slf0yEwv5D}&L+uB_E|w{x>^aj8I{5$rz@3^ovu_udPa9)@-yZaCP8CNVKUT} zN=Q*xDj`Q>c43m#l}gCcK*4IHS@%w}Edxl{wZl^DUXxdEmC>TYDsl}zy|&vWPhb@E z8oK93dgCdM(rH%AxsO^CEF$_n6@FCBfDDu2gDoZOWfYx)2fBdhJUASDjvk{OGl| z_ht0n`*M7nG&vFXaX(W#kY-$7c_%Ns?q|ik?CQp14*6IX*V#kg!a2T{KXQ}I$#tWmOJ$GH* z)7%?v5G}f@G8&jwIHrtB+TLMQQ|QwbE&aZ^I~7)SUEAzYnY&&Fsk`_2^HHPaO)Q(8 zM_R3%wPJQ1iCq(`b`1ktzU@$f!FAN@XM=Dk!>0(lx?W0q3FGo$t8H!e`KM66U7=h) zl@CefjyT>MPKui1crnUaLKTjZc=(piYVs@ios!ESR=Uf?ySr7D_V!t=z5S|cojq2q zvsVd?-PQMZt7`2ZFkt%!Rn>0aX4P)ruAJr%FwY+9|KzD}e{HzI_DyvoQ`aEve^J<4s?Xa@bD&~;KF^4>kIplH7A&=ejdF-CgKNSYa6eo$#KN8t?P4y&zqKW_|^R5lTpS!<6iSWq&HrT7jt;q z#Fy76>@Qfnm;6CG{`1RVe*TIH%M*D!y;|4R?t1k@ZoDB#-Q$pC<2z91bn_3>nH$H) z(hhm3pwva*aV3-Qape$Xh#XNI9c9RWKnz95TKObD{r0UZi^3O>KLU;56K_Q6&Lr5h zm@H;o!z_!qJnMAED}U&u2gYkbd;=-TW9QJu+1 zbanQD!paXJwERGhd@nRp_(C-}2n`>;P^e_PpsU!Phm70uE8edN?-;VHCDl=&a%V}8 zDnM)Sg=laPfPN5w&RHG(fiV*b53EHn#~HqXz`gUN#@@;6?43NgcRGRE>_hBU%j<2m zJh;`^H6>8}Fm`9=wRUD+Z)fK9c4i*lnFpcKlx{Q^-IdqdU3tCTl@q(` zDqwO$%^U2Gt97OQ>wD_#bbM`AwaPcmr8k7w2hHM$uYA*te2ebO*0>|jimHeVD5@s% zo;aAJ$co5AqG}@hh@1Hj(Zk$}pV2||NI7SToBr+Ss=$8Yx?jeRGnSYRB4FAUFYtRu zyBg=Ftz?$Nbr6gAt;RG7YY{*`*tZ_73o9`GbG$--cpV}7W94i2$8VF){G8r|xDwab zRV2%J@)=o1=W{X_lxhA@Y-lUI<%?z*SDOs}owUw=c0Rrn+S?oHe zLG~f4fosEnHiPlli&Nm)Q7T810LLs;Eg)*bC~h0!i6 zN9!5L1gU$bDJVy+DX08~>wug{yOf)r!VR}Y0%zrG0l#v>f1Jz~!W%8g=9~esy?+7G z%0D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%0AWHHSYEVNtz1Ge}w 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