promptPreprocessor.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.promptPreprocessor = promptPreprocessor;
const config_1 = require("./config");
const accounts_1 = require("./accounts");
const donations_1 = require("./donations");
const SYSTEM_RULES = `\
[System: Email Plugin — Multi-Account]
• email_accounts — list configured accounts and their slot numbers/labels
• email_list(account) — recent emails from a folder
• email_search(account, query/from/subject/since/...) — search emails
• email_read(uid, account) — full email body + attachments
• email_list_folders(account) — all mailbox folders for an account
• email_delete(uids, account) — move email(s) to Trash (recoverable, confirm first)
• email_send(account, to, subject, body) — send/reply via SMTP
account param: slot number ("1","2","3"), label ("Work","Personal"), or blank for first account.
Always confirm with user before email_send — it is irreversible.
On tool_error "not configured": tell the user to add credentials in plugin settings.`;
async function promptPreprocessor(ctl, userMessage) {
const history = await ctl.pullHistory();
if (history.length !== 0)
return userMessage;
const cfg = ctl.getPluginConfig(config_1.pluginConfigSchematics);
const accounts = (0, accounts_1.getConfiguredAccounts)(cfg);
let accountInfo;
if (accounts.length === 0) {
accountInfo = `\n\n[Setup required: No email accounts configured. Add IMAP Host, Email Address, and Password for at least one account in plugin settings.]`;
}
else {
const list = accounts.map(a => ` • ${a.slot} — ${a.label} (${a.imap.user})${a.smtp ? " [send enabled]" : " [read-only]"}`).join("\n");
accountInfo = `\n\n[Configured accounts:\n${list}]`;
}
let prompt = `${SYSTEM_RULES}${accountInfo}\n\n${userMessage.getText()}`;
if (donations_1.donationManager.shouldShowDonationPrompt()) {
prompt += `\n\n${donations_1.donationManager.getDonationPrompt()}`;
}
return prompt;
}
promptPreprocessor.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.promptPreprocessor = promptPreprocessor;
const config_1 = require("./config");
const accounts_1 = require("./accounts");
const donations_1 = require("./donations");
const SYSTEM_RULES = `\
[System: Email Plugin — Multi-Account]
• email_accounts — list configured accounts and their slot numbers/labels
• email_list(account) — recent emails from a folder
• email_search(account, query/from/subject/since/...) — search emails
• email_read(uid, account) — full email body + attachments
• email_list_folders(account) — all mailbox folders for an account
• email_delete(uids, account) — move email(s) to Trash (recoverable, confirm first)
• email_send(account, to, subject, body) — send/reply via SMTP
account param: slot number ("1","2","3"), label ("Work","Personal"), or blank for first account.
Always confirm with user before email_send — it is irreversible.
On tool_error "not configured": tell the user to add credentials in plugin settings.`;
async function promptPreprocessor(ctl, userMessage) {
const history = await ctl.pullHistory();
if (history.length !== 0)
return userMessage;
const cfg = ctl.getPluginConfig(config_1.pluginConfigSchematics);
const accounts = (0, accounts_1.getConfiguredAccounts)(cfg);
let accountInfo;
if (accounts.length === 0) {
accountInfo = `\n\n[Setup required: No email accounts configured. Add IMAP Host, Email Address, and Password for at least one account in plugin settings.]`;
}
else {
const list = accounts.map(a => ` • ${a.slot} — ${a.label} (${a.imap.user})${a.smtp ? " [send enabled]" : " [read-only]"}`).join("\n");
accountInfo = `\n\n[Configured accounts:\n${list}]`;
}
let prompt = `${SYSTEM_RULES}${accountInfo}\n\n${userMessage.getText()}`;
if (donations_1.donationManager.shouldShowDonationPrompt()) {
prompt += `\n\n${donations_1.donationManager.getDonationPrompt()}`;
}
return prompt;
}