VIBN Frontend for Coolify deployment

This commit is contained in:
2026-02-15 19:25:52 -08:00
commit 40bf8428cd
398 changed files with 76513 additions and 0 deletions

111
verify-handoff.sh Executable file
View File

@@ -0,0 +1,111 @@
#!/bin/bash
# Verify Collector Handoff Data
# This script checks if the collector handoff contract is properly persisted
set -e
# Colors
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m'
PROJECT_ID="lyOZxelSkjAB6XisIzup"
TOKEN="Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjM4MDI5MzRmZTBlZWM0NmE1ZWQwMDA2ZDE0YTFiYWIwMWUzNDUwODMiLCJ0eXAiOiJKV1QifQ.eyJuYW1lIjoiTWFyayBIZW5kZXJzb24iLCJwaWN0dXJlIjoiaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzUzOTU0MjEzP3Y9NCIsImlzcyI6Imh0dHBzOi8vc2VjdXJldG9rZW4uZ29vZ2xlLmNvbS9nZW4tbGFuZy1jbGllbnQtMDk4MDA3OTQxMCIsImF1ZCI6Imdlbi1sYW5nLWNsaWVudC0wOTgwMDc5NDEwIiwiYXV0aF90aW1lIjoxNzYzMzI1MDEyLCJ1c2VyX2lkIjoiMmhDdmdXQzJaV2RJMGVlTm5SQVM3SWVKcmg1MiIsInN1YiI6IjJoQ3ZnV0MyWldkSTBlZU5uUkFTN0llSnJoNTIiLCJpYXQiOjE3NjM0MjI1NDUsImV4cCI6MTc2MzQyNjE0NSwiZW1haWwiOiJtYXJrQGdldGFjcXVpcmVkLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwiZmlyZWJhc2UiOnsiaWRlbnRpdGllcyI6eyJnaXRodWIuY29tIjpbIjUzOTU0MjEzIl0sImVtYWlsIjpbIm1hcmtAZ2V0YWNxdWlyZWQuY29tIl19LCJzaWduX2luX3Byb3ZpZGVyIjoiZ2l0aHViLmNvbSJ9fQ.TpMOORDnPUKkbLlg-KtYBmbarEjAijJ3W4vN8tWT6OslOfwaeDJAtPXIahyQk38UvKY4ZGognQG6t-laSATB8yIC8IdkYbD699axfPSGQqC8Lbux1P6YrFKOPLGDD2XemBtJ-Gb5Ql-nK_DbXKAmygLxIwz019XpLJEucGkBPAN_Rj2xC7125DVexkDSIb6ZnbLiDgCpR_IkImyQb08tqlOoBiHVUa-4VGDhraoBPACJfQXwPToJ1W3nhBiVtMvSq7s_Ekd8Otn8AB_1teu5lxC-rhLdgJuNrmlxO-H6xIMBFZ72bwq7wrvdWd_EijqFQCU99oEhphTNoISoJ3wK-g"
echo -e "${BLUE}========================================${NC}"
echo -e "${BLUE} Verifying Collector Handoff Data${NC}"
echo -e "${BLUE}========================================${NC}\n"
# Create a temp Node.js script to check Firestore directly
cat > /tmp/check-handoff.js << 'EOFJS'
const admin = require('firebase-admin');
// Initialize Firebase Admin
const serviceAccount = require(process.env.HOME + '/ai-proxy/vibn-frontend/gen-lang-client-0980079410-firebase-adminsdk-fbsvc-c0e0cffc47.json');
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
storageBucket: 'gen-lang-client-0980079410.firebasestorage.app'
});
const db = admin.firestore();
async function checkHandoff() {
const projectId = process.argv[2];
console.log(`\nChecking project: ${projectId}\n`);
// 1. Check project document for phaseData
const projectDoc = await db.collection('projects').doc(projectId).get();
if (!projectDoc.exists) {
console.log('❌ Project not found');
process.exit(1);
}
const projectData = projectDoc.data();
console.log('📋 Project Phase Info:');
console.log(` Current Phase: ${projectData.currentPhase || 'not set'}`);
console.log(` Phase Status: ${projectData.phaseStatus || 'not set'}`);
// 2. Check for collector handoff data
if (projectData.phaseData && projectData.phaseData.phaseHandoffs && projectData.phaseData.phaseHandoffs.collector) {
const handoff = projectData.phaseData.phaseHandoffs.collector;
console.log('\n✅ Collector Handoff Data Found:');
console.log(JSON.stringify(handoff, null, 2));
// Verify the handoff contract
console.log('\n📊 Handoff Contract Status:');
console.log(` ✓ Has Documents: ${handoff.confirmed?.hasDocuments || false}`);
console.log(` ✓ Document Count: ${handoff.confirmed?.documentCount || 0}`);
console.log(` ✓ GitHub Connected: ${handoff.confirmed?.githubConnected || false}`);
console.log(` ✓ Extension Linked: ${handoff.confirmed?.extensionLinked || false}`);
console.log(` ✓ Ready for Extraction: ${handoff.readyForNextPhase || false}`);
if (handoff.readyForNextPhase) {
console.log('\n🎉 Collector phase is complete and ready for extraction!');
} else {
console.log('\n⏳ Collector phase is still in progress');
}
} else {
console.log('\n⚠ No collector handoff data found');
console.log(' This might be normal if the AI hasn\'t returned structured handoff data yet');
}
// 3. Check knowledge items
const knowledgeSnapshot = await db.collection('knowledge_items')
.where('projectId', '==', projectId)
.get();
console.log(`\n📚 Knowledge Items: ${knowledgeSnapshot.size} found`);
if (knowledgeSnapshot.size > 0) {
knowledgeSnapshot.forEach(doc => {
const data = doc.data();
console.log(` - ${data.title || 'Untitled'} (${data.sourceType})`);
});
}
process.exit(0);
}
checkHandoff().catch(err => {
console.error('Error:', err);
process.exit(1);
});
EOFJS
echo -e "${YELLOW}Checking Firestore for handoff data...${NC}\n"
# Run the Node.js script
cd /Users/markhenderson/ai-proxy/vibn-frontend && node /tmp/check-handoff.js "$PROJECT_ID"
# Clean up
rm -f /tmp/check-handoff.js
echo -e "\n${BLUE}========================================${NC}"