vibe.review.web.routes¶
Review Workbench Routes.
Flask blueprint providing the web interface for document compliance review. All routes return server-rendered HTML for htmx-driven interactivity.
strip_markdown_filter ¶
strip_markdown_filter(text: str) -> str
Strip common markdown syntax for plain text display.
Removes: headings (#), bold/italic (*/_), links, code blocks.
download_document ¶
download_document(template_id: str, session_id: int, doc_id: int) -> ResponseReturnValue
Download the original uploaded binary for a document.
Uses ReviewService as the storage boundary and enforces session/document ownership (cannot download documents from other sessions).
template_sessions ¶
template_sessions(template_id: str, db_session: Session, service: ReviewService, template_info: TemplateInfo) -> ResponseReturnValue
List review sessions for a specific template.
delete_session ¶
delete_session(template_id: str, db_session: Session, service: ReviewService, session_id: int) -> Response
Delete a review session.
new_session_form ¶
new_session_form(template_id: str, db_session: Session, service: ReviewService, template_info: TemplateInfo) -> ResponseReturnValue
Display form for creating a new review session for a specific template.
create_session ¶
create_session(template_id: str) -> ResponseReturnValue
Create a new review session from uploaded document(s).
workbench ¶
workbench(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel) -> str
Render the main review workbench - three-pane layout with unified assessment stream.
questions_panel ¶
questions_panel(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel) -> str
Render the template questions panel (htmx partial).
save_question ¶
save_question(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel, question_id: str) -> Response
Persist a single review question answer into ReviewSessionModel.context.
suggest_question ¶
suggest_question(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel, question_id: str) -> Response
Get AI suggestion for a question and store it in QuestionReviewModel.
accept_suggestion ¶
accept_suggestion(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel, question_id: str) -> Response
Accept an AI suggestion and apply it to the session context.
ingest_session ¶
ingest_session(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel) -> str
Show ingestion progress UI (used for PDF/OCR ingestion).
ingest_stream ¶
ingest_stream(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel) -> Response
Stream ingestion progress via SSE.
start_review ¶
start_review(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel) -> ResponseReturnValue
Set session label, document order/labels, and redirect to workbench.
document_file ¶
document_file(template_id: str, session_id: int, doc_id: int) -> Response
Download/serve the original uploaded file for a document (if available).
document_pdf_page_png ¶
document_pdf_page_png(template_id: str, session_id: int, doc_id: int, page_number: int) -> Response
Render a single PDF page to PNG and serve it (cached on disk).
Supports: - PDFs (original uploaded PDF) - DOCX with derived PDF (layout-faithful view)
requirements_sidebar ¶
requirements_sidebar(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel) -> str
Render requirements sidebar (htmx partial).
assessment_sidebar ¶
assessment_sidebar(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel) -> str
Render unified assessment sidebar showing both questions and requirements.
requirement_detail ¶
requirement_detail(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel, req_id: str) -> ResponseReturnValue
Render requirement detail panel (htmx partial).
assessment_item_question ¶
assessment_item_question(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel, question_id: str) -> ResponseReturnValue
Render unified assessment item panel for a question (htmx partial).
assessment_item_requirement ¶
assessment_item_requirement(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel, requirement_id: str) -> ResponseReturnValue
Render unified assessment item panel for a requirement (htmx partial).
run_ai_classification ¶
run_ai_classification(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel, req_id: str) -> Response
Run AI classification for a single requirement (htmx partial + OOB swap).
ai_assessment_stream ¶
ai_assessment_stream(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel, item_type: str, item_id: str) -> Response
Unified SSE streaming endpoint for AI assessment.
Handles both questions and requirements through the same pipeline: search → rerank → assess.
URL: /review/
remove_matched_part ¶
remove_matched_part(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel, item_type: str, item_id: str, part_db_id: int) -> Response
Remove a matched part from an assessment item.
Returns updated assessment_item.html partial for HTMX swap.
add_matched_part ¶
add_matched_part(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel, item_type: str, item_id: str) -> Response
Add a matched part to an assessment item.
Expects form data: part_db_id Returns HX-Trigger header for UI update.
promote_part_to_example ¶
promote_part_to_example(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel, item_type: str, item_id: str, part_db_id: int) -> ResponseReturnValue
Promote a document part to an example for few-shot learning.
GET: Returns form page pre-filled with part content POST: Creates ExampleModel and shows success page
debug_prompt ¶
debug_prompt(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel, req_id: str) -> ResponseReturnValue
Show the AI classification prompt for debugging (dev mode only).
used_examples ¶
used_examples(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel, req_id: str) -> ResponseReturnValue
Show examples used during AI classification (dev mode only).
debug_question_prompt ¶
debug_question_prompt(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel, question_id: str) -> ResponseReturnValue
Show the AI question answering prompt for debugging (dev mode only).
classify_requirement ¶
classify_requirement(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel, req_id: str) -> ResponseReturnValue
Save classification for a requirement (htmx partial + OOB swap).
save_example ¶
save_example(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel, req_id: str) -> ResponseReturnValue
Save a requirement classification as a canonical example for few-shot learning.
Creates an ExampleModel record linked back to the source review and document. Only works for requirements that have been classified (not PENDING).
examples_list ¶
examples_list(template_id: str, db_session: Session, service: ReviewService) -> ResponseReturnValue
List examples for a template with optional filtering.
Query params
requirement_id: Filter by requirement ID classification: Filter by classification (yes/no/partial/not_applicable) min_quality: Minimum quality score (0.0-1.0) page: Page number (default 1)
example_detail ¶
example_detail(template_id: str, db_session: Session, service: ReviewService, example_id: int) -> ResponseReturnValue
Get example detail/edit form (HTMX partial).
update_example ¶
update_example(template_id: str, db_session: Session, service: ReviewService, example_id: int) -> ResponseReturnValue
Update an example.
delete_example ¶
delete_example(template_id: str, db_session: Session, service: ReviewService, example_id: int) -> ResponseReturnValue
Delete an example (two-step confirmation).
document_viewer ¶
document_viewer(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel) -> ResponseReturnValue
Render full document viewer (htmx partial).
Query parameters
doc_id: Optional document ID to show a specific document. If not provided, shows the first document. highlight: Optional part ID to highlight.
document_part ¶
document_part(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel, part_id: str) -> Response
Render document viewer scrolled to specific part (htmx partial).
Finds the document containing the part, renders only that document, and triggers a tab switch via HX-Trigger header.
document_parts_map ¶
document_parts_map(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel, doc_id: int) -> ResponseReturnValue
Return document parts for the dev mode document map dropdown.
Only available in dev mode. Returns a list of parts with their IDs and labels for navigation.
run_classification ¶
run_classification(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel) -> Response
Trigger batch AI classification with SSE progress updates.
progress_bar ¶
progress_bar(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel) -> str
Render progress bar with OOB swaps for progress text and assessment sidebar.
This endpoint consolidates multiple updates that trigger on the same events (classification-saved, context-saved) into a single response using htmx OOB swaps.
export_results ¶
export_results(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel) -> Response
Export review results as Excel file.
download_report ¶
download_report(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel) -> Response
Download the rendered compliance report.
Renders the template with the review context (classifications, questions) and returns the document for download.
Query parameters
type: Output format - "main" (markdown/html), "pdf" (future) draft: If "1", allow download even if not all requirements are classified
report_preview ¶
report_preview(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel) -> ResponseReturnValue
Render the compliance report preview.
Returns HTML content for display in the preview pane, allowing users to see how the final report will look as they work through classifications.
Unlike download_report, this always renders (no completion check) and returns inline HTML rather than a download attachment.
debug_session_context ¶
debug_session_context(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel) -> Response
Debug endpoint to inspect session context and question reviews.
Only available in dev mode.
debug_probe_requirements ¶
debug_probe_requirements(template_id: str, session_id: int, db_session: Session, service: ReviewService, review_session: ReviewSessionModel) -> Response
Debug endpoint to test requirement probing.
Only available in dev mode.
parsing_visualizer ¶
parsing_visualizer() -> ResponseReturnValue
Serve the parsing visualizer UI (dev mode only).
parsing_visualizer_upload ¶
parsing_visualizer_upload() -> Response
Handle parsing visualizer uploads (dev mode only).
parsing_visualizer_page_png ¶
parsing_visualizer_page_png(digest: str, page_number: int) -> Response
Serve a rendered PDF page PNG for the parsing visualizer (dev mode only).
parsing_visualizer_overlay ¶
parsing_visualizer_overlay() -> Response
Serve parsing overlay data for the visualizer (dev mode only).
parsing_visualizer_watch ¶
parsing_visualizer_watch() -> Response
Stream parsing visualizer updates (dev mode only).