Files
net/manual_jumpstart.ts

99 lines
3.4 KiB
TypeScript

// @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();