From f91724ebfa6a21c13ca3f9eaee85dd31fbbbe2e9 Mon Sep 17 00:00:00 2001 From: Codex Date: Fri, 25 Sep 2026 18:32:31 -0700 Subject: [PATCH] Route dashboard settings and decisions through the Classic connector --- app/api/health/route.ts | 3 ++- app/page.tsx | 4 ++-- core/connectors/index.ts | 21 ++++++++++++++++++++- core/gm.ts | 2 +- core/service.ts | 2 +- core/types.ts | 2 +- 6 files changed, 27 insertions(+), 7 deletions(-) diff --git a/app/api/health/route.ts b/app/api/health/route.ts index abad6e9..8773274 100644 --- a/app/api/health/route.ts +++ b/app/api/health/route.ts @@ -15,7 +15,8 @@ export async function GET(){ ok:true, aleActiveRecently, lastAleAt, - bridgeConfigured:!!(c.BRIDGE_URL&&c.BRIDGE_TOKEN), + gameBackend:c.GAME_BACKEND??'azerothcore', + bridgeConfigured:c.GAME_BACKEND==='cmangos-classic'?!!c.ALE_BRIDGE_TOKEN:!!(c.BRIDGE_URL&&c.BRIDGE_TOKEN), aleConfigured:!!c.ALE_BRIDGE_TOKEN, aleOperatorConfigured:!!c.ALE_OPERATOR_TOKEN, aleRawEnabled:rawAleEnabled(c), diff --git a/app/page.tsx b/app/page.tsx index 84f79e5..74655f4 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -63,12 +63,12 @@ export default function Home({readOnly=false}:{readOnly?:boolean}){

AzerothAI shapes identity and intent. The game server owns the rules of the world.

Create a characterStart with an identity and recipe. Spawn when you’re ready.{state&&setCreateOpen(false)}/>} {readOnly?'Bot recipe':recipe?'Edit bot recipe':'Create bot recipe'}Traits guide high-level decisions. They never override game rules.
setRecipeOpen(false)}/>
- {if(!o)setBotId(null)}}>Bot profileIdentity, intent, and the story so far.{selected&&state&&} + {if(!o)setBotId(null)}}>Bot profileIdentity, intent, and the story so far.{selected&&state&&} {if(!o)setConfirm(null)}}>{confirm?.title}{confirm?.description}Cancel{if(confirm)perform(confirm.action);setConfirm(null)}}>Confirm; } function CreateBot({state,act,busy,close}:any){const [name,setName]=useState(''),[role,setRole]=useState('Priest'),[race,setRace]=useState('Human'),[recipeId,setRecipeId]=useState(state.recipes[0].id),[goal,setGoal]=useState(`Support ${state.director.experience.toLowerCase()} in ${state.director.zone}`);return
{e.preventDefault();try{await act({type:'createBot',name,role,race,recipeId,goal});toast.success('Character created');close();}catch{}}}>