ToolUp.Facts.Presentation
0.38.1
Prefix Reserved
dotnet add package ToolUp.Facts.Presentation --version 0.38.1
NuGet\Install-Package ToolUp.Facts.Presentation -Version 0.38.1
<PackageReference Include="ToolUp.Facts.Presentation" Version="0.38.1" />
<PackageVersion Include="ToolUp.Facts.Presentation" Version="0.38.1" />
<PackageReference Include="ToolUp.Facts.Presentation" />
paket add ToolUp.Facts.Presentation --version 0.38.1
#r "nuget: ToolUp.Facts.Presentation, 0.38.1"
#:package ToolUp.Facts.Presentation@0.38.1
#addin nuget:?package=ToolUp.Facts.Presentation&version=0.38.1
#tool nuget:?package=ToolUp.Facts.Presentation&version=0.38.1
ToolUp.Facts.Presentation
From a gated fact series to a Fuaran-UI node. A
presentation request says what to draw — a trend, a breakdown, a comparison or a table of one
fact table's metric(s) over a period — and a pure builder draws the series the fact browse's series
read answered as a validated Fuaran-UI node, with the BlockProvenance that produced it.
The request is the whole of what an author (a person or a model) writes for a block. It carries no number: every number on the page comes from the series read, under the disclosure gate the facts are published under.
Compiled by both compilers (the sources ship under fable/), so a browser rebuilds exactly the node
a server built.
What it gives you
PresentationRequest— kind, table id, metrics, subject prefix and level, period ({ day; rangeDays }or{ from; to }), compare-to, title and annotations — with a JSON codec (PresentationRequest.toJson/ofJson) that refuses a malformed request by name: the field it is missing, the kind it does not know.PresentationRequest.toQueriesgives the series reads the request asks for.Presentation.build— from a request and oneSeriesAnswerper metric (the gatedFactSeries, or the read's refusal) to aPresentationBlock: the node, its provenance and its notes.- The gap discipline. Fuaran-UI's chart lowering reads a missing cell as 0, so a withheld or absent point is never left in a chart's rows: a trend drops the day and marks it on the axis, a breakdown and a comparison drop the subject, a table drops the cell. Each is named, with its reason, beside the block. A refused read is a callout naming the refusal.
- Validated before it leaves. Every chart is drawn from a canonical columnar table, so the
Fuaran-UI pre-emit validator grounds every field it names; a node the validator refuses is a
builder defect (
PresentationDefect.NodeRefused), never emitted. - Fact cells. A table cell is a Fact node carrying its fact id as
data-fact.
open ToolUp.Facts.Presentation
match PresentationRequest.ofJson requestJson with
| Error e -> Error(PresentationRequestError.describe e)
| Ok request ->
// run PresentationRequest.toQueries through IFactBrowseApi.QuerySeries, then:
Presentation.build request [ SeriesAnswer.Answered series ]
Dependencies
ToolUp.Facts.Shared, ToolUp.AI.Wire, and the published Apache-2.0 Fuaran.UI,
Fuaran.UI.Charts and Fuaran.Core.Column packages from nuget.org.
Apache-2.0.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- FSharp.Core (>= 10.1.300)
- Fuaran.Core.Column (>= 0.40.2)
- Fuaran.UI (>= 0.98.1)
- Fuaran.UI.Charts (>= 0.98.1)
- ToolUp.AI.Wire (>= 0.38.1)
- ToolUp.Facts.Shared (>= 0.38.1)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on ToolUp.Facts.Presentation:
| Package | Downloads |
|---|---|
|
ToolUp.AI.Client
ToolUp.AI Client — Fable + Elmish + Feliz AI surface: side-panel MVU, SSE client, AI assistant UI, AISettings UI, AIClientConfig wrapper. Depends on ToolUp.Platform.Client + ToolUp.AI.Core. |
|
|
ToolUp.Facts.Presentation.Server
ToolUp.Facts.Presentation Server — the render_chart and render_table AI tools: the model writes a presentation request, the server reads the series it names under the disclosure gate at the tool-result door, draws it with the presentation builders and answers with a text summary the model reads and the block the assistant message carries. And evaluate_pipeline in the same answering form: the summary the model reads and a pipeline block part carrying the request and never a row, with the re-run endpoint a reader's panel draws the block from under the reader's own gate. Composed opt-in with PresentationCompose.withRenderTools and PresentationCompose.withPipelineTool; a deployment that composes neither carries no Fuaran-UI dependency. And the page request resolvers a stored page renders through, a presentation request and a pipeline request answered under the reader's gate and cached per session, composed with PresentationCompose.withPageRequests under a composed fact store. |
GitHub repositories
This package is not used by any popular GitHub repositories.