Add /ai persona command, debug logging toggle, context trimming, persona override

This commit is contained in:
2026-06-16 21:11:44 +02:00
parent 31a81fbfaa
commit f038316615
7 changed files with 254 additions and 44 deletions
+28 -21
View File
@@ -2,7 +2,7 @@
"id": "com.forkless.mattermore",
"name": "Matty",
"description": "AI chat agent powered by Ollama.",
"version": "0.1.0",
"version": "0.1.9",
"min_server_version": "11.6.1",
"server": {
"executables": {
@@ -44,27 +44,27 @@
"display_name": "Bot Persona",
"type": "dropdown",
"help_text": "The bot's character. Pick a persona or set a custom one in the config file.",
"default": "a helpful assistant. Be concise, 2-3 sentences max, never repeat yourself.",
"default": "assistant",
"options": [
{ "display_name": "D&D dungeon master", "value": "a Dungeons & Dragons dungeon master. Epic narrative, roll for initiative." },
{ "display_name": "Donald Trump", "value": "Donald Trump. Boastful, hyperbolic, third-person. Think: rally speech, not catchphrase list. Keep it to 2 sentences." },
{ "display_name": "Drunken Jeanine Pirro", "value": "a drunk Jeanine Pirro. Slur your words, repeat yourself, be loud and uncensored." },
{ "display_name": "French mime", "value": "a French mime. Respond with dramatic pauses and gestures described in asterisks. Minimal words." },
{ "display_name": "George Carlin", "value": "George Carlin. Acerbic, observational, profane comedy. Rant about the absurdity of everything. Use seven dirty words liberally. Keep it tight, one or two punchlines max." },
{ "display_name": "Gordon Ramsay (code review)", "value": "Gordon Ramsay but for code reviews. Aggressive chef. YELL. Brief." },
{ "display_name": "Grumpy sysadmin", "value": "a grumpy sysadmin who thinks every question is stupid. Be sarcastic, brief, and annoyed." },
{ "display_name": "Helpful assistant (concise)", "value": "a helpful assistant. Be concise, 2-3 sentences max, never repeat yourself." },
{ "display_name": "Infomercial host (1980s)", "value": "a 1980s TV infomercial host. Over-enthusiastic, loud, BUT WAIT THERE'S MORE." },
{ "display_name": "Medieval court jester", "value": "a medieval court jester who mocks everyone. Old-timey insults, brief." },
{ "display_name": "Motivational speaker", "value": "a motivational speaker who turns everything into a life lesson. Over-the-top positive but concise." },
{ "display_name": "Noir detective", "value": "a noir detective who answers every question with another question. Brooding, cryptic, short." },
{ "display_name": "Overly polite Canadian", "value": "an overly polite Canadian who apologises excessively. Sorry, eh, keep it short." },
{ "display_name": "Philosophical overthinker", "value": "a philosopher who overcomplicates everything. Pseudo-intellectual, wordy is the point." },
{ "display_name": "Pirate captain", "value": "a pirate captain. Use pirate slang, be theatrical, keep responses short." },
{ "display_name": "Shakespearean author", "value": "a Shakespearean author. Respond in eloquent old English, but keep it brief." },
{ "display_name": "Surfer dude", "value": "a surfer dude explaining complex topics badly. Chill, inaccurate, gnarly." },
{ "display_name": "Tech support scammer (2008)", "value": "a tech support scammer from 2008. Alarmist, pushy, uses ALL CAPS occasionally." },
{ "display_name": "Tired parent", "value": "a tired parent who's given up on life. Exhausted, relatable, monosyllabic when possible." }
{ "display_name": "D&D dungeon master", "value": "dnd" },
{ "display_name": "Donald Trump", "value": "trump" },
{ "display_name": "Drunken Jeanine Pirro", "value": "pirro" },
{ "display_name": "French mime", "value": "mime" },
{ "display_name": "George Carlin", "value": "carlin" },
{ "display_name": "Gordon Ramsay (code review)", "value": "ramsay" },
{ "display_name": "Grumpy sysadmin", "value": "sysadmin" },
{ "display_name": "Helpful assistant (concise)", "value": "assistant" },
{ "display_name": "Infomercial host (1980s)", "value": "infomercial" },
{ "display_name": "Medieval court jester", "value": "jester" },
{ "display_name": "Motivational speaker", "value": "motivational" },
{ "display_name": "Noir detective", "value": "noir" },
{ "display_name": "Overly polite Canadian", "value": "canadian" },
{ "display_name": "Philosophical overthinker", "value": "philosopher" },
{ "display_name": "Pirate captain", "value": "pirate" },
{ "display_name": "Shakespearean author", "value": "shakespeare" },
{ "display_name": "Surfer dude", "value": "surfer" },
{ "display_name": "Tech support scammer (2008)", "value": "scammer" },
{ "display_name": "Tired parent", "value": "tiredparent" }
]
},
{
@@ -96,6 +96,13 @@
{ "display_name": "Unlimited", "value": "0" }
]
},
{
"key": "DebugLogging",
"display_name": "Debug Logging",
"type": "bool",
"help_text": "Enable detailed request/response logging in the server logs.",
"default": false
},
{
"key": "CustomPersona",
"display_name": "Custom Persona (overrides dropdown)",