update prompt controller and loader to use new prompt files #5

Merged
kjannette merged 1 commits from FEAT-update-prompt-config-loader into master 2026-08-12 00:53:20 +00:00
2 changed files with 122 additions and 128 deletions

View File

@@ -3,11 +3,13 @@ import { google, gmail_v1, sheets_v4, calendar_v3 } from "googleapis";
import { OAuth2Client } from "google-auth-library";
import fs from "fs";
import path from "path";
import { fileURLToPath } from "url";
// ---------------------------------------------------------------------------
// Paths
// ---------------------------------------------------------------------------
const __dirname = path.dirname(new URL(import.meta.url).pathname);
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
export const PROJECT_ROOT = path.resolve(__dirname, "..", "..");
const SECRETS_DIR = path.join(PROJECT_ROOT, "accountsAndCredentials");
const CREDENTIALS_PATH = path.join(SECRETS_DIR, "credentials.json");

View File

@@ -6,27 +6,23 @@ import {
} from "../loaders/prompt-config-loaders.js";
// ---------------------------------------------------------------------------
// Prompt: review_emails (work account)
// Prompt: Classify Emails (Phase 1)
// ---------------------------------------------------------------------------
server.registerPrompt(
"review_emails",
"classify-emails",
{
description:
`Review WORK inbox (${accounts.work?.label ?? "work"}): classify emails, delete A+C, summarize B+D, log B to spreadsheet, create calendar events.`,
description: "Phase 1: Organize, prioritize, and summarize incoming recruiter emails.",
},
() => {
const phase1 = loadClassificationPrompt();
const phase2 = loadActionPrompt();
return {
messages: [
{
role: "user" as const,
content: {
type: "text" as const,
text:
`ACCOUNT: Use account = "work" for ALL tool calls in this session.\n\n` +
(phase1 || "Review my new emails and classify them by job application category.") +
(phase2 ? `\n\n${phase2}` : ""),
text: `ACCOUNT: Use account = "work" for ALL tool calls in this session.\n\n` +
(phase1 || "Review my new emails and classify them by job application category.")
},
},
],
@@ -35,16 +31,14 @@ server.registerPrompt(
);
// ---------------------------------------------------------------------------
// Prompt: review_secondary_emails (secondary account)
// Prompt: Take Action on Emails (Phase 2)
// ---------------------------------------------------------------------------
server.registerPrompt(
"review_secondary_emails",
"take-action-on-emails",
{
description:
`Review SECONDARY inbox (${accounts.secondary?.label ?? "secondary"}): classify emails, delete A+C, summarize B+D, log B to spreadsheet, create calendar events.`,
description: "Phase 2: Log Category B recruiters to spreadsheet and create calendar events.",
},
() => {
const phase1 = loadClassificationPrompt();
const phase2 = loadActionPrompt();
return {
messages: [
@@ -52,10 +46,8 @@ server.registerPrompt(
role: "user" as const,
content: {
type: "text" as const,
text:
`ACCOUNT: Use account = "secondary" for ALL tool calls in this session.\n\n` +
(phase1 || "Review my new emails and classify them by job application category.") +
(phase2 ? `\n\n${phase2}` : ""),
text: `ACCOUNT: Use account = "work" for ALL tool calls in this session.\n\n` +
(phase2 || "Process remaining action items for flagged recruiters.")
},
},
],