SPB Git

spb/search-box Public

Agentic web research engine — hypotheses, verbatim evidence, contradictions, sourced answers streamed live. Claude Opus 5 + Firecrawl + PostgreSQL.

TypeScript 76.9% CSS 18.7% SQL 2.1% JavaScript 1.8% Shell 0.5%
1.7 KB · 75 lines typescript
Raw Blame History
1/**2 * Search-box.ai3 * Author: Simon-Pierre Boucher4 * Contact: contact@spboucher.ai5 * File: packages/shared/src/research-types.ts6 * Description: Core research domain types (sources, evidence, claims, contradictions).7 */89import { z } from "zod";1011export const ClaimStatusSchema = z.enum(["exploring", "supported", "contradicted", "uncertain"]);12export type ClaimStatus = z.infer<typeof ClaimStatusSchema>;1314export const StanceSchema = z.enum(["supports", "contradicts", "context"]);15export type Stance = z.infer<typeof StanceSchema>;1617export interface Source {18  id: string;19  sessionId: string;20  url: string;21  title: string | null;22  domain: string;23  status: "found" | "fetched" | "failed";24  citationIndex: number | null;25  metadata: Record<string, unknown>;26  createdAt: string;27}2829export interface Evidence {30  id: string;31  sessionId: string;32  sourceId: string;33  claimId: string | null;34  quote: string;35  note: string | null;36  stance: Stance;37  createdAt: string;38}3940export interface Claim {41  id: string;42  sessionId: string;43  text: string;44  status: ClaimStatus;45  confidence: number; // 0..146  publicReason: string | null;47  createdAt: string;48  updatedAt: string;49}5051export interface Contradiction {52  id: string;53  sessionId: string;54  claimId: string;55  description: string;56  evidenceIds: string[];57  resolution: string | null;58  createdAt: string;59}6061export type SessionStatus = "pending" | "running" | "synthesizing" | "completed" | "failed";6263export interface ResearchSession {64  id: string;65  question: string;66  status: SessionStatus;67  answer: string | null;68  error: string | null;69  objectives: string[];70  budgets: Record<string, number>;71  meta: Record<string, unknown>;72  createdAt: string;73  updatedAt: string;74}75