feat: v4 — TUI fight loop, rate limiting, webhook tooling, expanded choreographies
- Fight loop CLI with TUI renderer (ink-style terminal UI) - Rate limiting middleware for API routes - Queue cooldowns wired into orchestrator after fights - Webhook test utility for bot debugging - API docs route - Expanded FightScene choreographies and weapon props - Fix Drizzle transaction execution in orchestrator - Schema additions, scoring/challenge/mock expansions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
2c0323d5fb
commit
4d8b18a58a
@@ -112,7 +112,7 @@ const TEMPLATES: ChallengeTemplate[] = [
|
||||
baseDamage: 22,
|
||||
prompts: [
|
||||
{ prompt: 'I have cities but no houses, forests but no trees, and water but no fish. What am I?', answers: ['map', 'a map'] },
|
||||
{ prompt: 'The more you take, the more you leave behind. What am I?', answers: ['footsteps', 'steps'] },
|
||||
{ prompt: 'The more you take, the more you leave behind. What am I?', answers: ['footsteps', 'steps', 'footstep'] },
|
||||
{ prompt: 'I speak without a mouth and hear without ears. I have no body, but I come alive with the wind. What am I?', answers: ['echo', 'an echo'] },
|
||||
{ prompt: 'What has keys but no locks, space but no room, and you can enter but can\'t go inside?', answers: ['keyboard', 'a keyboard'] },
|
||||
{ prompt: 'I am not alive, but I grow; I don\'t have lungs, but I need air; I don\'t have a mouth, but water kills me. What am I?', answers: ['fire', 'flame'] },
|
||||
@@ -207,9 +207,9 @@ const TEMPLATES: ChallengeTemplate[] = [
|
||||
{ prompt: 'I am an odd number. Take away a letter and I become even. What number am I?', answers: ['seven', '7'] },
|
||||
{ prompt: 'A farmer has 17 sheep. All but 9 run away. How many does the farmer have left?', answers: ['9', 'nine'] },
|
||||
{ prompt: 'How many times can you subtract 5 from 25?', answers: ['1', 'one', 'once'] },
|
||||
{ prompt: 'A rooster lays an egg on top of a barn roof. Which way does it roll?', answers: ['roosters don\'t lay eggs', 'it doesn\'t', 'nowhere', 'they don\'t', 'roosters can\'t lay eggs'] },
|
||||
{ prompt: 'A rooster lays an egg on top of a barn roof. Which way does it roll?', answers: ['roosters don\'t lay eggs', 'it doesn\'t', 'nowhere', 'they don\'t', 'roosters can\'t lay eggs', 'rooster doesn\'t lay eggs', 'a rooster can\'t lay eggs', 'roosters do not lay eggs'] },
|
||||
{ prompt: 'If it takes 5 machines 5 minutes to make 5 widgets, how long for 100 machines to make 100 widgets?', answers: ['5', 'five', '5 minutes'] },
|
||||
{ prompt: 'What weighs more: a pound of feathers or a pound of bricks?', answers: ['same', 'they weigh the same', 'neither', 'equal', 'the same'] },
|
||||
{ prompt: 'What weighs more: a pound of feathers or a pound of bricks?', answers: ['same', 'they weigh the same', 'neither', 'equal', 'the same', 'they are the same', 'both weigh the same', 'equally'] },
|
||||
{ prompt: 'If you overtake the person in second place, what place are you in?', answers: ['second', '2nd', '2'] },
|
||||
{ prompt: 'How many months have 28 days?', answers: ['12', 'all of them', 'all', 'twelve', 'every month'] },
|
||||
{ prompt: 'If a doctor gives you 3 pills and says take one every 30 minutes, how long until all pills are taken?', answers: ['60', '60 minutes', '1 hour', 'one hour'] },
|
||||
@@ -261,7 +261,7 @@ const TEMPLATES: ChallengeTemplate[] = [
|
||||
timeout_ms: 8000,
|
||||
baseDamage: 16,
|
||||
prompts: [
|
||||
{ prompt: 'What was the first mass-produced automobile?', answers: ['model t', 'ford model t'] },
|
||||
{ prompt: 'What was the first mass-produced automobile?', answers: ['model t', 'ford model t', 'the model t', 'the ford model t'] },
|
||||
{ prompt: 'How many wheels does a standard 18-wheeler actually have?', answers: ['18', 'eighteen'] },
|
||||
{ prompt: 'What car brand uses a prancing horse as its logo?', answers: ['ferrari'] },
|
||||
{ prompt: 'How many cylinders does a V8 engine have?', answers: ['8', 'eight'] },
|
||||
@@ -291,7 +291,7 @@ const TEMPLATES: ChallengeTemplate[] = [
|
||||
baseDamage: 20,
|
||||
prompts: [
|
||||
{ prompt: 'True or false: A group of flamingos is called a "flamboyance."', answers: ['true'] },
|
||||
{ prompt: 'What is the only mammal capable of true powered flight?', answers: ['bat', 'bats'] },
|
||||
{ prompt: 'What is the only mammal capable of true powered flight?', answers: ['bat', 'bats', 'a bat'] },
|
||||
{ prompt: 'True or false: Octopuses have three hearts.', answers: ['true'] },
|
||||
{ prompt: 'Is a tomato a fruit or a vegetable? (Botanically speaking)', answers: ['fruit'] },
|
||||
{ prompt: 'True or false: Honey never spoils if stored properly.', answers: ['true'] },
|
||||
@@ -301,7 +301,7 @@ const TEMPLATES: ChallengeTemplate[] = [
|
||||
{ prompt: 'What causes thunder?', answers: ['lightning', 'rapid heating of air', 'expansion of air', 'heated air expanding'] },
|
||||
{ prompt: 'True or false: Bananas are technically berries, but strawberries are not.', answers: ['true'] },
|
||||
{ prompt: 'True or false: Diamonds are made from compressed coal.', answers: ['false'] },
|
||||
{ prompt: 'What is the fastest land animal?', answers: ['cheetah'] },
|
||||
{ prompt: 'What is the fastest land animal?', answers: ['cheetah', 'the cheetah', 'a cheetah'] },
|
||||
{ prompt: 'What color is a polar bear\'s skin under its white fur?', answers: ['black'] },
|
||||
{ prompt: 'True or false: Lightning is hotter than the surface of the Sun.', answers: ['true'] },
|
||||
{ prompt: 'Name the only continent with no active volcanoes.', answers: ['australia'] },
|
||||
@@ -319,7 +319,7 @@ const TEMPLATES: ChallengeTemplate[] = [
|
||||
timeout_ms: 10000,
|
||||
baseDamage: 18,
|
||||
prompts: [
|
||||
{ prompt: 'What animal can survive in the vacuum of space?', answers: ['tardigrade', 'water bear', 'tardigrades'] },
|
||||
{ prompt: 'What animal can survive in the vacuum of space?', answers: ['tardigrade', 'tardigrades', 'water bear', 'water bears'] },
|
||||
{ prompt: 'What is the fastest animal on Earth?', answers: ['peregrine falcon', 'cheetah'] },
|
||||
{ prompt: 'How many stomachs does a cow have?', answers: ['4', 'four'] },
|
||||
{ prompt: 'Name the only bird that can fly backwards.', answers: ['hummingbird'] },
|
||||
@@ -330,7 +330,7 @@ const TEMPLATES: ChallengeTemplate[] = [
|
||||
{ prompt: 'True or false: Cows have best friends and get stressed when separated.', answers: ['true'] },
|
||||
{ prompt: 'True or false: An octopus has blue blood.', answers: ['true'] },
|
||||
{ prompt: 'How many hearts does an octopus have?', answers: ['3', 'three'] },
|
||||
{ prompt: 'What is the largest living land animal?', answers: ['african elephant', 'elephant'] },
|
||||
{ prompt: 'What is the largest living land animal?', answers: ['african elephant', 'elephant', 'elephants'] },
|
||||
{ prompt: 'True or false: A snail can sleep for 3 years.', answers: ['true'] },
|
||||
{ prompt: 'What animal has the strongest bite force?', answers: ['crocodile', 'saltwater crocodile', 'nile crocodile'] },
|
||||
{ prompt: 'How many legs does a lobster have?', answers: ['10', 'ten'] },
|
||||
@@ -349,7 +349,7 @@ const TEMPLATES: ChallengeTemplate[] = [
|
||||
baseDamage: 24,
|
||||
prompts: [
|
||||
{ prompt: 'What does SQL in "SQL injection" stand for?', answers: ['structured query language'] },
|
||||
{ prompt: 'What does HTTPS protect against that HTTP doesn\'t? (one word)', answers: ['eavesdropping', 'interception', 'sniffing', 'man-in-the-middle', 'mitm'] },
|
||||
{ prompt: 'What does HTTPS protect against that HTTP doesn\'t? (one word)', answers: ['eavesdropping', 'interception', 'sniffing', 'man-in-the-middle', 'mitm', 'encryption'] },
|
||||
{ prompt: 'What does the S in HTTPS stand for?', answers: ['secure'] },
|
||||
{ prompt: 'Name the three pillars of the CIA triad in information security.', answers: ['confidentiality integrity availability'] },
|
||||
{ prompt: 'What does VPN stand for?', answers: ['virtual private network'] },
|
||||
|
||||
Reference in New Issue
Block a user