Fix Jumpstart Dashboard, API, and Fetchers to support real-time generation
This commit is contained in:
98
manual_jumpstart.ts
Normal file
98
manual_jumpstart.ts
Normal file
@@ -0,0 +1,98 @@
|
||||
// @ts-nocheck
|
||||
import { WordPressClient } from './frontend/src/lib/wordpress/WordPressClient';
|
||||
|
||||
const SITE_URL = "https://chrisamaya.work";
|
||||
const USERNAME = "gatekeeper";
|
||||
const PASSWORD = "Idk@2025";
|
||||
|
||||
// Create Directus Client manually since we are in a script
|
||||
import { createDirectus, rest, authentication, readItems, createItem } from '@directus/sdk';
|
||||
const DIRECTUS_URL = "https://spark.jumpstartscaling.com";
|
||||
// const DIRECTUS_TOKEN = "SufWLAbsqmbbqF_gg5I70ng8wE1zXt-a"; // Lacking permissions
|
||||
|
||||
const client = createDirectus(DIRECTUS_URL).with(rest()).with(authentication('json'));
|
||||
|
||||
|
||||
|
||||
async function triggerPendingJobs() {
|
||||
console.log("🚀 Starting Manual Engine Trigger...");
|
||||
|
||||
// 0. Authenticate via Raw API
|
||||
try {
|
||||
const loginUrl = `${DIRECTUS_URL}/auth/login`;
|
||||
// Credentials from previous steps
|
||||
const email = "somescreenname@gmail.com";
|
||||
const password = "SLm03N8XWqMTeJK3Zo95ZknWuM7xYWPk";
|
||||
|
||||
const authRes = await fetch(loginUrl, {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({ email, password })
|
||||
});
|
||||
|
||||
if (!authRes.ok) {
|
||||
throw new Error(`Auth Failed: ${authRes.status} ${await authRes.text()}`);
|
||||
}
|
||||
|
||||
const authData = await authRes.json();
|
||||
await client.setToken(authData.data.access_token);
|
||||
console.log("🔐 Authenticated successfully.");
|
||||
|
||||
} catch (e) {
|
||||
console.error("❌ CRTICAL AUTH FAILURE:", e);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// 1. Fetch Pending Jobs
|
||||
console.log("🔍 Looking for Pending Refactor Jobs...");
|
||||
try {
|
||||
const pendingJobs = await client.request(
|
||||
readItems('generation_jobs', {
|
||||
filter: { status: { _eq: 'Pending' } },
|
||||
limit: 100
|
||||
})
|
||||
);
|
||||
|
||||
if (!pendingJobs || pendingJobs.length === 0) {
|
||||
console.log("✅ No pending jobs found. All caught up!");
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(`🔥 Found ${pendingJobs.length} Pending Jobs. Firing Engine...`);
|
||||
const FRONTEND_url = "https://launch.jumpstartscaling.com";
|
||||
|
||||
for (const job of pendingJobs) {
|
||||
console.log(`⚡️ Triggering Job #${job.id}...`);
|
||||
try {
|
||||
// We use the FRONTEND URL for the API
|
||||
const response = await fetch(`${FRONTEND_url}/api/generate-content`, {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({
|
||||
jobId: job.id,
|
||||
mode: 'refactor',
|
||||
batchSize: 5
|
||||
})
|
||||
});
|
||||
|
||||
const resText = await response.text();
|
||||
// Check if success
|
||||
if (response.ok) {
|
||||
console.log(`✅ Triggered: ${resText.substring(0, 50)}...`);
|
||||
} else {
|
||||
console.error(`❌ Failed Trigger: ${response.status} - ${resText}`);
|
||||
}
|
||||
} catch (err) {
|
||||
console.error(`❌ Network Error triggering job ${job.id}:`, err);
|
||||
}
|
||||
|
||||
// Wait a bit between triggers to not DOS ourselves?
|
||||
await new Promise(r => setTimeout(r, 500));
|
||||
}
|
||||
|
||||
} catch (e) {
|
||||
console.error("❌ Error fetching/processing jobs:", e);
|
||||
}
|
||||
}
|
||||
|
||||
triggerPendingJobs();
|
||||
Reference in New Issue
Block a user