gitextract_ov7oqzfx/ ├── .dockerignore ├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── .prettierrc ├── .vercelignore ├── .vscode/ │ ├── convex.code-snippets │ └── settings.json ├── ARCHITECTURE.md ├── Dockerfile ├── LICENSE ├── README.md ├── convex/ │ ├── _generated/ │ │ ├── api.d.ts │ │ ├── api.js │ │ ├── dataModel.d.ts │ │ ├── server.d.ts │ │ └── server.js │ ├── agent/ │ │ ├── conversation.ts │ │ ├── embeddingsCache.ts │ │ ├── memory.ts │ │ └── schema.ts │ ├── aiTown/ │ │ ├── agent.ts │ │ ├── agentDescription.ts │ │ ├── agentInputs.ts │ │ ├── agentOperations.ts │ │ ├── conversation.ts │ │ ├── conversationMembership.ts │ │ ├── game.ts │ │ ├── ids.ts │ │ ├── inputHandler.ts │ │ ├── inputs.ts │ │ ├── insertInput.ts │ │ ├── location.ts │ │ ├── main.ts │ │ ├── movement.ts │ │ ├── player.ts │ │ ├── playerDescription.ts │ │ ├── schema.ts │ │ ├── world.ts │ │ └── worldMap.ts │ ├── constants.ts │ ├── crons.ts │ ├── engine/ │ │ ├── abstractGame.ts │ │ ├── historicalObject.test.ts │ │ ├── historicalObject.ts │ │ └── schema.ts │ ├── http.ts │ ├── init.ts │ ├── messages.ts │ ├── music.ts │ ├── schema.ts │ ├── testing.ts │ ├── util/ │ │ ├── FastIntegerCompression.ts │ │ ├── assertNever.ts │ │ ├── asyncMap.test.ts │ │ ├── asyncMap.ts │ │ ├── compression.test.ts │ │ ├── compression.ts │ │ ├── geometry.test.ts │ │ ├── geometry.ts │ │ ├── isSimpleObject.ts │ │ ├── llm.ts │ │ ├── minheap.test.ts │ │ ├── minheap.ts │ │ ├── object.ts │ │ ├── sleep.ts │ │ ├── types.test.ts │ │ ├── types.ts │ │ └── xxhash.ts │ └── world.ts ├── data/ │ ├── animations/ │ │ ├── campfire.json │ │ ├── gentlesparkle.json │ │ ├── gentlesplash.json │ │ ├── gentlewaterfall.json │ │ └── windmill.json │ ├── characters.ts │ ├── convertMap.js │ ├── gentle.js │ └── spritesheets/ │ ├── f1.ts │ ├── f2.ts │ ├── f3.ts │ ├── f4.ts │ ├── f5.ts │ ├── f6.ts │ ├── f7.ts │ ├── f8.ts │ ├── p1.ts │ ├── p2.ts │ ├── p3.ts │ ├── player.ts │ └── types.ts ├── docker-compose.yml ├── fly/ │ ├── README.md │ ├── backend/ │ │ └── fly.toml │ └── dashboard/ │ └── fly.toml ├── index.html ├── jest.config.ts ├── package.json ├── postcss.config.js ├── public/ │ └── assets/ │ └── tilemap.json ├── src/ │ ├── App.tsx │ ├── components/ │ │ ├── Character.tsx │ │ ├── ConvexClientProvider.tsx │ │ ├── DebugPath.tsx │ │ ├── DebugTimeManager.tsx │ │ ├── FreezeButton.tsx │ │ ├── Game.tsx │ │ ├── MessageInput.tsx │ │ ├── Messages.tsx │ │ ├── PixiGame.tsx │ │ ├── PixiStaticMap.tsx │ │ ├── PixiViewport.tsx │ │ ├── Player.tsx │ │ ├── PlayerDetails.tsx │ │ ├── PositionIndicator.tsx │ │ ├── PoweredByConvex.tsx │ │ └── buttons/ │ │ ├── Button.tsx │ │ ├── InteractButton.tsx │ │ ├── LoginButton.tsx │ │ └── MusicButton.tsx │ ├── editor/ │ │ ├── README.md │ │ ├── campfire.json │ │ ├── eutils.js │ │ ├── gentlesparkle.json │ │ ├── gentlesplash.json │ │ ├── gentlewaterfall.json │ │ ├── index.html │ │ ├── le.html │ │ ├── le.js │ │ ├── leconfig.js │ │ ├── lecontext.js │ │ ├── lehtmlui.js │ │ ├── mapfile.js │ │ ├── maps/ │ │ │ ├── gentle-full.js │ │ │ ├── gentle.js │ │ │ ├── gentleanim.js │ │ │ ├── mage3.js │ │ │ └── serene.js │ │ ├── se.html │ │ ├── se.js │ │ ├── seconfig.js │ │ ├── secontext.js │ │ ├── sehtmlui.js │ │ ├── spritefile.js │ │ ├── undo.js │ │ └── windmill.json │ ├── hooks/ │ │ ├── sendInput.ts │ │ ├── serverGame.ts │ │ ├── useHistoricalTime.ts │ │ ├── useHistoricalValue.ts │ │ └── useWorldHeartbeat.ts │ ├── index.css │ ├── main.tsx │ ├── toasts.ts │ └── vite-env.d.ts ├── tailwind.config.js ├── tsconfig.json ├── vercel.json └── vite.config.ts