import type { Learner, Artifact, OralDefense, Microcredential } from '@nextcraft/types'; export const primaryLearner: Learner = { id: 'learner-001', name: 'Alex Rivera', email: 'alex.rivera@example.com', avatar: 'https://i.pravatar.cc/150?img=16', ageGroup: '18+', enrolledStacks: ['stack-orchestration', 'stack-safety'], progress: { 'stack-orchestration': 62, 'stack-safety': 41, }, }; export const learnerMicrocredentials: Microcredential[] = [ { id: 'mc-001', competencyId: 'stack-orchestration-c001', issuedAt: '2026-07-12T00:00:00Z', verified: true, score: 94 }, { id: 'mc-002', competencyId: 'stack-orchestration-c004', issuedAt: '2026-07-28T00:00:00Z', verified: true, score: 91 }, { id: 'mc-003', competencyId: 'stack-orchestration-c006', issuedAt: '2026-08-04T00:00:00Z', verified: true, score: 88 }, { id: 'mc-004', competencyId: 'stack-safety-c021', issuedAt: '2026-08-20T00:00:00Z', verified: true, score: 90 }, { id: 'mc-005', competencyId: 'stack-orchestration-c003', issuedAt: null, verified: false, score: null }, ]; export const learnerArtifacts: Artifact[] = [ { id: 'art-001', name: 'Multi-agent research assistant', type: 'code', url: 'https://example.com/artifacts/research-assistant', description: 'A LangGraph-based assistant that plans, retrieves, and drafts cited literature reviews with an eval harness.', createdAt: '2026-08-22T14:30:00Z', }, { id: 'art-002', name: 'RAG retrieval quality dashboard', type: 'code', url: 'https://example.com/artifacts/rag-dashboard', description: 'Streamlit dashboard comparing chunking strategies and rerankers across 800 evaluation queries.', createdAt: '2026-08-15T09:12:00Z', }, { id: 'art-003', name: 'Model card for internal Q&A agent', type: 'document', url: 'https://example.com/artifacts/model-card', description: 'Capabilities, limitations, intended use, and red-team findings for a document-grounded Q&A agent.', createdAt: '2026-08-19T11:00:00Z', }, { id: 'art-004', name: 'Prompt regression suite', type: 'code', url: 'https://example.com/artifacts/prompt-regression', description: 'Pytest-based suite of 320 prompt assertions with LLM-as-judge scoring and CI integration.', createdAt: '2026-08-08T16:45:00Z', }, { id: 'art-005', name: 'Agent topology diagram', type: 'design', url: 'https://example.com/artifacts/topology', description: 'Architecture diagram for a plan-and-execute agent with reflection and tool-retrieval sub-graphs.', createdAt: '2026-07-30T10:20:00Z', }, ]; export const upcomingDefenses: OralDefense[] = [ { id: 'def-001', competencyId: 'stack-orchestration-c003', transcript: '', score: null, status: 'scheduled', }, { id: 'def-002', competencyId: 'stack-orchestration-c008', transcript: '', score: null, status: 'scheduled', }, { id: 'def-003', competencyId: 'stack-safety-c019', transcript: '', score: null, status: 'pending', }, ]; export const learnerSummary = { enrolledStacks: primaryLearner.enrolledStacks.length, microcredentialsEarned: learnerMicrocredentials.filter((m) => m.verified).length, artifactsSubmitted: learnerArtifacts.length, upcomingDefenses: upcomingDefenses.filter((d) => d.status === 'scheduled').length, averageScore: learnerMicrocredentials .filter((m) => m.score !== null) .reduce((acc, m) => acc + (m.score ?? 0), 0) / Math.max(1, learnerMicrocredentials.filter((m) => m.score !== null).length), };