research
Research — registry-driven research app with a native page and dataflow plus a canonical Research Block for optional composition.
BUSL-1.1 311 downloads
Updated 14 days ago Repository
kicksidespiralscoutresearchdataflowinbox
Run
wippy run kickside/researchResearch
A registry-driven research demo, self-contained as one module: a page web component, a dataflow, and a research-run thread kind with its own read model — each contributed through registry entries, no edits to the host.
Flow
- The Research page (
research-appweb component) takes a topic and POSTs/research. submitcalls thekickside.research:requestcontract, which ensures a canonical actor-scoped thread, appends therequestevent, and starts a dataflow: a web-research agent (kickside.research.agents:researcher, webscoutweb_researchertrait) →delivernode.delivernormalizes the agent's final answer, renders it to markdown, and appends thekickside.research.events:resultevent to the run thread. A blank report is not a result:deliverfails closed and the dataflow routes both agent failures and delivery failures todeliver_error, which appendskickside.research.events:failed. Every run ends on exactly one of the two.- The run projection folds those events into
kickside_research_run; the page loads that read model and follows the live thread events.
What it ships
- Page web component, built to
./static, served at/research-app. - The research-run thread kind, its read-model projection, and the
request/progress/result/failedevent vocabulary. submit(POST /research) + thedeliver/deliver_errordataflow terminals + theresearcheragent + theDeepResearchagent tool.- A strict
kickside.block/v1Research wait Block. Its arm calls the same package-owned request contract and its terminal projection resumes the parked Dataflow Signal throughkickside.blocks:resume.
Boundary
Threads, projections, and retention live in kickside/core; the dataflow engine
in wippy/dataflow. Visual Workflows may discover the Block but is not required
by this module. The native page, request contract, and dataflow remain first-class.