Multi-stage LLM pipeline that produces structured analyses of Autotask tickets from local Postgres. Migration 069 + Zod schemas, Stage 0 preprocessor, IT Glue redaction + search, Anthropic SDK wrapper, Stages 1/3/4 (Haiku/Sonnet/Opus), pipeline + cost circuit breaker, job worker (opt-in autostart), 6 API routes, 3 frontend pages, share-row persistence (email send deferred to phase 7). 128 vitest tests, tsc clean. Build journal in docs/wulf-pulse-ticket-analyzer-build-notes.md. Sync: adds syncTicketNotes() + ticket_notes to ordered/date-filtered entities so the analyzer's local mirror stays current via scheduler. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
25 lines
727 B
TypeScript
25 lines
727 B
TypeScript
/**
|
|
* GET /api/analyzer/analyses/:id
|
|
*
|
|
* Fetch a specific analysis by id, including the full timeline / gaps /
|
|
* IT Glue references. Returns 404 if not found.
|
|
*/
|
|
|
|
import { NextResponse } from 'next/server';
|
|
import { requireAuth } from '@/lib/auth-utils';
|
|
import { getAnalysisById } from '@/lib/services/analyzer/persistence';
|
|
|
|
export async function GET(
|
|
_request: Request,
|
|
{ params }: { params: Promise<{ id: string }> }
|
|
) {
|
|
const { error } = await requireAuth();
|
|
if (error) return error;
|
|
|
|
const { id } = await params;
|
|
const analysis = await getAnalysisById(id);
|
|
if (!analysis) {
|
|
return NextResponse.json({ error: 'Analysis not found' }, { status: 404 });
|
|
}
|
|
return NextResponse.json({ analysis });
|
|
}
|