chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# Task Showcase — repeatable web-agent runs as a dashboard
|
||||
|
||||
A tiny Flask app that consolidates Webwright runs for **repeatable** odyssey
|
||||
tasks (those whose answer changes over time — deals, inventory, listings,
|
||||
job boards, weather, etc.) into a single dashboard.
|
||||
|
||||
Each task ships only two files:
|
||||
|
||||
```
|
||||
tasks/<short_id>/
|
||||
task.json – metadata (title, theme, cadence, level, prompt, website)
|
||||
report.json – curated, structured agent output: {sources, result.sections}
|
||||
```
|
||||
|
||||
The Flask app is fully generic: templates iterate `sources` and
|
||||
`result.sections` without any per-task branching, so adding a new task is
|
||||
just dropping in a new folder with those two files.
|
||||
|
||||
## Run
|
||||
|
||||
```bash
|
||||
pip install flask
|
||||
python app.py # serves http://127.0.0.1:5005
|
||||
```
|
||||
|
||||
To render JSON generated by a Webwright run without copying it back into this
|
||||
folder, point the app at that run's generated tasks directory:
|
||||
|
||||
```bash
|
||||
python app.py --tasks-dir ../../outputs/default/<run>/task_showcase/tasks
|
||||
```
|
||||
|
||||
The `task_showcase.yaml` runtime overlay writes the same directory shape under
|
||||
the run workspace and then smoke-tests this renderer against it.
|
||||
|
||||
## report.json shape
|
||||
|
||||
```jsonc
|
||||
{
|
||||
"sources": [
|
||||
{"name": "Slickdeals", "url": "https://slickdeals.net/", "note": "front-page best deal"}
|
||||
],
|
||||
"result": {
|
||||
"headline": "Today's bargain roundup",
|
||||
"sections": [
|
||||
{"type": "summary", "title": "...", "body": "..."},
|
||||
{"type": "table", "title": "...", "columns": [...], "rows": [[...], ...]},
|
||||
{"type": "list", "title": "...", "entries": ["..."]},
|
||||
{"type": "kv", "title": "...", "entries": [["k", "v"], ...]},
|
||||
{"type": "cards", "title": "...", "entries": [
|
||||
{"title": "...", "subtitle": "...", "fields": [["k","v"]], "url": "..."}
|
||||
]}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
The 6 included tasks (Slickdeals, Pokémon TCG, Austin apartments, The Ophelia
|
||||
Pittsburgh, NZ→AU legal roles, this-week driving weather) each map to an
|
||||
odyssey benchmark task whose underlying pages refresh on a schedule, so the
|
||||
dashboard makes sense to re-run repeatedly.
|
||||
Reference in New Issue
Block a user