https://github.com/uptownnickbrown/agora
· scanned 2026-06-16 00:46 UTC (2 months, 1 week ago)
145 raw signals (0 security + 145 graph)
Last scanned 2 months, 1 week ago · v1 · 144 actionable findings from 1 signal source. 1 repeated signal grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 882 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
getToken |
software | healthy | frontend/src/api.ts:getToken |
setToken |
software | healthy | frontend/src/api.ts:setToken |
request |
software | healthy | frontend/src/api.ts:request |
PipDock |
software | healthy | frontend/src/pip.tsx:PipDock |
send |
software | healthy | frontend/src/pip.tsx:send |
loadCheck |
software | healthy | frontend/src/pip.tsx:loadCheck |
submitCheck |
software | healthy | frontend/src/pip.tsx:submitCheck |
Puzzle |
software | healthy | frontend/src/pip.tsx:Puzzle |
submit |
software | healthy | frontend/src/pip.tsx:submit |
heatClass |
software | healthy | frontend/src/pip.tsx:heatClass |
arrow |
software | healthy | frontend/src/pip.tsx:arrow |
eventArt |
software | healthy | frontend/src/town.tsx:eventArt |
Crier |
software | healthy | frontend/src/town.tsx:Crier |
Leaderboards |
software | healthy | frontend/src/town.tsx:Leaderboards |
podiumCls |
software | healthy | frontend/src/town.tsx:podiumCls |
medal |
software | healthy | frontend/src/town.tsx:medal |
GuildHall |
software | healthy | frontend/src/town.tsx:GuildHall |
act |
software | healthy | frontend/src/town.tsx:act |
Merchant |
software | healthy | frontend/src/town.tsx:Merchant |
setBuy |
software | healthy | frontend/src/town.tsx:setBuy |
submit |
software | healthy | frontend/src/town.tsx:submit |
Recap |
software | healthy | frontend/src/town.tsx:Recap |
MarketSquare |
software | healthy | frontend/src/places.tsx:MarketSquare |
place |
software | healthy | frontend/src/places.tsx:place |
cancel |
software | healthy | frontend/src/places.tsx:cancel |
Workshop |
software | healthy | frontend/src/places.tsx:Workshop |
gather |
software | healthy | frontend/src/places.tsx:gather |
craft |
software | healthy | frontend/src/places.tsx:craft |
build |
software | healthy | frontend/src/places.tsx:build |
facilityAction |
software | healthy | frontend/src/places.tsx:facilityAction |
ShopScreen |
software | healthy | frontend/src/places.tsx:ShopScreen |
list |
software | healthy | frontend/src/places.tsx:list |
Docks |
software | healthy | frontend/src/places.tsx:Docks |
cast |
software | healthy | frontend/src/places.tsx:cast |
Asset |
software | healthy | frontend/src/ui.tsx:Asset |
GoodIcon |
software | healthy | frontend/src/ui.tsx:GoodIcon |
Coins |
software | healthy | frontend/src/ui.tsx:Coins |
tick |
software | healthy | frontend/src/ui.tsx:tick |
EffortBar |
software | healthy | frontend/src/ui.tsx:EffortBar |
Toast |
software | healthy | frontend/src/ui.tsx:Toast |
Sparkline |
software | healthy | frontend/src/ui.tsx:Sparkline |
X |
software | healthy | frontend/src/ui.tsx:X |
Y |
software | healthy | frontend/src/ui.tsx:Y |
InlineMd |
software | healthy | frontend/src/ui.tsx:InlineMd |
Confetti |
software | healthy | frontend/src/ui.tsx:Confetti |
titleize |
software | healthy | frontend/src/instructor.tsx:titleize |
InstructorScreen |
software | healthy | frontend/src/instructor.tsx:InstructorScreen |
respond |
software | healthy | frontend/src/instructor.tsx:respond |
RulesChips |
software | healthy | frontend/src/instructor.tsx:RulesChips |
Dashboard |
software | healthy | frontend/src/instructor.tsx:Dashboard |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
README.md |
software | healthy | README.md |
.env.example |
software | healthy | .env.example |
docker-compose.yml |
software | healthy | docker-compose.yml |
vite.config.ts |
software | healthy | frontend/vite.config.ts |
package.json |
software | healthy | frontend/package.json |
index.html |
software | healthy | frontend/index.html |
Dockerfile |
software | healthy | frontend/Dockerfile |
package-lock.json |
software | healthy | frontend/package-lock.json |
tsconfig.json |
software | healthy | frontend/tsconfig.json |
manifest.json |
software | healthy | frontend/public/manifest.json |
index.html |
software | healthy | frontend/public/landing/index.html |
api.ts |
software | healthy | frontend/src/api.ts |
pip.tsx |
software | healthy | frontend/src/pip.tsx |
town.tsx |
software | healthy | frontend/src/town.tsx |
theme.css |
software | healthy | frontend/src/theme.css |
places.tsx |
software | healthy | frontend/src/places.tsx |
main.tsx |
software | healthy | frontend/src/main.tsx |
vite-env.d.ts |
software | healthy | frontend/src/vite-env.d.ts |
ui.tsx |
software | healthy | frontend/src/ui.tsx |
instructor.tsx |
software | healthy | frontend/src/instructor.tsx |
App.tsx |
software | healthy | frontend/src/App.tsx |
tour.tsx |
software | healthy | frontend/src/tour.tsx |
ASSET_WISHLIST.md |
software | healthy | docs/ASSET_WISHLIST.md |
ATTRIBUTION.md |
software | healthy | docs/ATTRIBUTION.md |
INSTRUCTOR_AUTOMATION.md |
software | healthy | docs/INSTRUCTOR_AUTOMATION.md |
SPEC.md |
software | healthy | docs/SPEC.md |
DEPLOY.md |
software | healthy | docs/DEPLOY.md |
DECISIONS.md |
software | healthy | docs/DECISIONS.md |
generate_assets3.py |
software | healthy | scripts/generate_assets3.py |
assetlib.py |
software | healthy | scripts/assetlib.py |
generate_assets2.py |
software | healthy | scripts/generate_assets2.py |
generate_assets.py |
software | healthy | scripts/generate_assets.py |
Dockerfile |
software | healthy | backend/Dockerfile |
pyproject.toml |
software | healthy | backend/pyproject.toml |
test_api_core.py |
software | healthy | backend/tests/test_api_core.py |
conftest.py |
software | healthy | backend/tests/conftest.py |
test_scenarios.py |
software | healthy | backend/tests/test_scenarios.py |
test_api_game.py |
software | healthy | backend/tests/test_api_game.py |
test_ws_admin.py |
software | healthy | backend/tests/test_ws_admin.py |
bots.py |
software | healthy | backend/tests/bots.py |
test_orderbook.py |
software | healthy | backend/tests/test_orderbook.py |
test_semester.py |
software | healthy | backend/tests/test_semester.py |
test_digest.py |
software | healthy | backend/tests/test_digest.py |
seed_midcourse.py |
software | healthy | backend/scripts/seed_midcourse.py |
reset_demo.py |
software | healthy | backend/scripts/reset_demo.py |
qa_interactions.py |
software | healthy | backend/scripts/qa_interactions.py |
qa_screenshots.py |
software | healthy | backend/scripts/qa_screenshots.py |
__init__.py |
software | healthy | backend/app/__init__.py |
worker.py |
software | healthy | backend/app/worker.py |
deps.py |
software | healthy | backend/app/deps.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
ApiError |
software | healthy | frontend/src/api.ts:ApiError |
activity |
software | healthy | frontend/src/instructor.tsx:activity |
summary |
software | healthy | frontend/src/instructor.tsx:summary |
Bot |
software | healthy | backend/tests/bots.py:27 |
Sweep |
software | healthy | backend/scripts/qa_screenshots.py:34 |
WorkerSettings |
software | healthy | backend/app/worker.py:95 |
Base |
software | healthy | backend/app/db.py:7 |
Settings |
software | healthy | backend/app/config.py:7 |
Good |
software | healthy | backend/app/template.py:16 |
Recipe |
software | healthy | backend/app/template.py:50 |
FacilityDef |
software | healthy | backend/app/template.py:76 |
TimestampMixin |
software | healthy | backend/app/models.py:41 |
Institution |
software | healthy | backend/app/models.py:49 |
User |
software | healthy | backend/app/models.py:55 |
AuthSession |
software | healthy | backend/app/models.py:66 |
MagicToken |
software | healthy | backend/app/models.py:73 |
Course |
software | healthy | backend/app/models.py:81 |
Section |
software | healthy | backend/app/models.py:89 |
World |
software | healthy | backend/app/models.py:97 |
Team |
software | healthy | backend/app/models.py:115 |
Player |
software | healthy | backend/app/models.py:123 |
Inventory |
software | healthy | backend/app/models.py:141 |
DbOrder |
software | healthy | backend/app/models.py:152 |
DbTrade |
software | healthy | backend/app/models.py:169 |
PriceSnapshot |
software | healthy | backend/app/models.py:182 |
NPCSchedule |
software | healthy | backend/app/models.py:198 |
Facility |
software | healthy | backend/app/models.py:220 |
ShopListing |
software | healthy | backend/app/models.py:232 |
GuildLoan |
software | healthy | backend/app/models.py:246 |
License |
software | healthy | backend/app/models.py:258 |
LicenseBid |
software | healthy | backend/app/models.py:269 |
Compact |
software | healthy | backend/app/models.py:279 |
CompactMember |
software | healthy | backend/app/models.py:292 |
EconEvent |
software | healthy | backend/app/models.py:304 |
ScheduledEvent |
software | healthy | backend/app/models.py:316 |
Intervention |
software | healthy | backend/app/models.py:328 |
CrierPost |
software | healthy | backend/app/models.py:338 |
DetectedMoment |
software | healthy | backend/app/models.py:349 |
EmailLog |
software | healthy | backend/app/models.py:361 |
PuzzleAttempt |
software | healthy | backend/app/models.py:382 |
FishingCatch |
software | healthy | backend/app/models.py:394 |
Streak |
software | healthy | backend/app/models.py:405 |
PlayerAchievement |
software | healthy | backend/app/models.py:417 |
PlayerCosmetic |
software | healthy | backend/app/models.py:427 |
MerchantRun |
software | healthy | backend/app/models.py:437 |
CheckAttempt |
software | healthy | backend/app/models.py:452 |
MasteryEstimate |
software | healthy | backend/app/models.py:465 |
TutorMessage |
software | healthy | backend/app/models.py:476 |
PlayerDayStat |
software | healthy | backend/app/models.py:489 |
WorldDayStat |
software | healthy | backend/app/models.py:501 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
Base |
data | healthy | backend/app/db.py |
Institution |
data | healthy | backend/app/models.py |
User |
data | healthy | backend/app/models.py |
AuthSession |
data | healthy | backend/app/models.py |
MagicToken |
data | healthy | backend/app/models.py |
Course |
data | healthy | backend/app/models.py |
Section |
data | healthy | backend/app/models.py |
World |
data | healthy | backend/app/models.py |
Team |
data | healthy | backend/app/models.py |
Player |
data | healthy | backend/app/models.py |
Inventory |
data | healthy | backend/app/models.py |
DbOrder |
data | healthy | backend/app/models.py |
DbTrade |
data | healthy | backend/app/models.py |
PriceSnapshot |
data | healthy | backend/app/models.py |
NPCSchedule |
data | healthy | backend/app/models.py |
Facility |
data | healthy | backend/app/models.py |
ShopListing |
data | healthy | backend/app/models.py |
GuildLoan |
data | healthy | backend/app/models.py |
License |
data | healthy | backend/app/models.py |
LicenseBid |
data | healthy | backend/app/models.py |
Compact |
data | healthy | backend/app/models.py |
CompactMember |
data | healthy | backend/app/models.py |
EconEvent |
data | healthy | backend/app/models.py |
ScheduledEvent |
data | healthy | backend/app/models.py |
Intervention |
data | healthy | backend/app/models.py |
CrierPost |
data | healthy | backend/app/models.py |
DetectedMoment |
data | healthy | backend/app/models.py |
EmailLog |
data | healthy | backend/app/models.py |
PuzzleAttempt |
data | healthy | backend/app/models.py |
FishingCatch |
data | healthy | backend/app/models.py |
Streak |
data | healthy | backend/app/models.py |
PlayerAchievement |
data | healthy | backend/app/models.py |
PlayerCosmetic |
data | healthy | backend/app/models.py |
MerchantRun |
data | healthy | backend/app/models.py |
CheckAttempt |
data | healthy | backend/app/models.py |
MasteryEstimate |
data | healthy | backend/app/models.py |
TutorMessage |
data | healthy | backend/app/models.py |
PlayerDayStat |
data | healthy | backend/app/models.py |
WorldDayStat |
data | healthy | backend/app/models.py |
institutions |
data | healthy | backend/app/models.py |
users |
data | healthy | backend/app/models.py |
auth_sessions |
data | healthy | backend/app/models.py |
magic_tokens |
data | healthy | backend/app/models.py |
courses |
data | healthy | backend/app/models.py |
sections |
data | healthy | backend/app/models.py |
worlds |
data | healthy | backend/app/models.py |
teams |
data | healthy | backend/app/models.py |
players |
data | healthy | backend/app/models.py |
inventories |
data | healthy | backend/app/models.py |
orders |
data | healthy | backend/app/models.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
GET /health |
api | healthy | backend/app/main.py |
POST /worlds/{world_id}/tutor/chat |
api | healthy | backend/app/api/tutor.py |
GET /worlds/{world_id}/tutor/history |
api | healthy | backend/app/api/tutor.py |
GET /worlds/{world_id}/tutor/check |
api | healthy | backend/app/api/tutor.py |
POST /worlds/{world_id}/tutor/check |
api | healthy | backend/app/api/tutor.py |
GET /worlds/{world_id}/tutor/mastery |
api | healthy | backend/app/api/tutor.py |
POST /join |
api | healthy | backend/app/api/student.py |
GET /worlds/{world_id}/state |
api | healthy | backend/app/api/student.py |
POST /worlds/{world_id}/gather |
api | healthy | backend/app/api/student.py |
POST /worlds/{world_id}/craft |
api | healthy | backend/app/api/student.py |
POST /worlds/{world_id}/facilities |
api | healthy | backend/app/api/student.py |
POST /worlds/{world_id}/facilities/{facility_id}/upgrade |
api | healthy | backend/app/api/student.py |
POST /worlds/{world_id}/facilities/{facility_id}/workers |
api | healthy | backend/app/api/student.py |
POST /worlds/{world_id}/facilities/{facility_id}/scrubber |
api | healthy | backend/app/api/student.py |
POST /worlds/{world_id}/shop |
api | healthy | backend/app/api/student.py |
GET /worlds/{world_id}/shop |
api | healthy | backend/app/api/student.py |
POST /worlds/{world_id}/fresh-start |
api | healthy | backend/app/api/student.py |
GET /worlds/{world_id}/crier |
api | healthy | backend/app/api/student.py |
GET /worlds/{world_id}/leaderboards |
api | healthy | backend/app/api/student.py |
GET /worlds/{world_id}/compacts |
api | healthy | backend/app/api/student.py |
POST /worlds/{world_id}/compacts |
api | healthy | backend/app/api/student.py |
POST /worlds/{world_id}/compacts/{compact_id}/join |
api | healthy | backend/app/api/student.py |
POST /worlds/{world_id}/compacts/{compact_id}/leave |
api | healthy | backend/app/api/student.py |
POST /worlds/{world_id}/license-bids |
api | healthy | backend/app/api/student.py |
GET /worlds/{world_id}/license-auctions |
api | healthy | backend/app/api/student.py |
GET /worlds/{world_id}/recap |
api | healthy | backend/app/api/student.py |
POST /register |
api | healthy | backend/app/api/auth.py |
POST /login |
api | healthy | backend/app/api/auth.py |
POST /magic/request |
api | healthy | backend/app/api/auth.py |
POST /magic/redeem |
api | healthy | backend/app/api/auth.py |
GET /me |
api | healthy | backend/app/api/auth.py |
POST /student |
api | healthy | backend/app/api/demo.py |
POST /instructor |
api | healthy | backend/app/api/demo.py |
GET /overview |
api | healthy | backend/app/api/admin.py |
GET /balance |
api | healthy | backend/app/api/admin.py |
GET /worlds/{world_id}/puzzle |
api | healthy | backend/app/api/fun.py |
POST /worlds/{world_id}/puzzle/guess |
api | healthy | backend/app/api/fun.py |
POST /worlds/{world_id}/fishing/cast |
api | healthy | backend/app/api/fun.py |
GET /worlds/{world_id}/merchant |
api | healthy | backend/app/api/fun.py |
POST /worlds/{world_id}/merchant/submit |
api | healthy | backend/app/api/fun.py |
GET /worlds/{world_id}/boutique |
api | healthy | backend/app/api/fun.py |
POST /worlds/{world_id}/boutique/buy |
api | healthy | backend/app/api/fun.py |
POST /worlds/{world_id}/orders |
api | healthy | backend/app/api/market.py |
DELETE /worlds/{world_id}/orders/{order_id} |
api | healthy | backend/app/api/market.py |
GET /worlds/{world_id}/markets/{good_id}/book |
api | healthy | backend/app/api/market.py |
GET /worlds/{world_id}/markets/{good_id}/history |
api | healthy | backend/app/api/market.py |
GET /worlds/{world_id}/markets/{good_id}/tape |
api | healthy | backend/app/api/market.py |
POST /instructor/worlds |
api | healthy | backend/app/api/instructor.py |
GET /worlds/{world_id}/instructor/dashboard |
api | healthy | backend/app/api/instructor.py |
GET /worlds/{world_id}/instructor/feed |
api | healthy | backend/app/api/instructor.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
frontend |
software | healthy | frontend |
public |
software | healthy | frontend/public |
landing |
software | healthy | frontend/public/landing |
src |
software | healthy | frontend/src |
docs |
software | healthy | docs |
scripts |
software | healthy | scripts |
backend |
software | healthy | backend |
tests |
software | healthy | backend/tests |
scripts |
software | healthy | backend/scripts |
app |
software | healthy | backend/app |
api |
software | healthy | backend/app/api |
pedagogy |
software | healthy | backend/app/pedagogy |
services |
software | healthy | backend/app/services |
engine |
software | healthy | backend/app/engine |
alembic |
software | healthy | backend/alembic |
versions |
software | healthy | backend/alembic/versions |
sim |
software | healthy | backend/sim |
| Label | Layer | Status | Path |
|---|---|---|---|
image::frontend/Dockerfile |
hardware | healthy | frontend/Dockerfile |
image::backend/Dockerfile |
hardware | healthy | backend/Dockerfile |
postgres |
hardware | healthy | docker-compose.yml |
redis |
hardware | healthy | docker-compose.yml |
migrate |
hardware | healthy | docker-compose.yml |
api |
hardware | healthy | docker-compose.yml |
worker |
hardware | healthy | docker-compose.yml |
frontend |
hardware | healthy | docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
port:5432 |
network | healthy | docker-compose.yml |
port:6379 |
network | healthy | docker-compose.yml |
port:8000 |
network | healthy | docker-compose.yml |
port:5173 |
network | healthy | docker-compose.yml |
port:80 |
network | healthy | docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
sqlite |
data | healthy | README.md |
postgres |
data | healthy | README.md |
redis |
data | healthy | README.md |
postgresql |
data | healthy | docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
password_literal::backend/scripts/seed_midcourse.py |
security | healthy | backend/scripts/seed_midcourse.py |
password_literal::backend/scripts/qa_interactions.py |
security | healthy | backend/scripts/qa_interactions.py |
password_literal::backend/scripts/qa_screenshots.py |
security | healthy | backend/scripts/qa_screenshots.py |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-y40afd4l |
software | healthy | /tmp/repobility-clone-y40afd4l |
| Label | Layer | Status | Path |
|---|---|---|---|
nginx |
network | healthy | README.md |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.11 |
network | healthy | frontend/Dockerfile |
| Label | Layer | Status | Path |
|---|---|---|---|
App |
frontend | healthy | frontend/src/App.tsx |
This page is publicly accessible at:
https://repobility.com/scan/1a4a6ce0-be10-4bb5-9cfb-79fc3d06e923/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/1a4a6ce0-be10-4bb5-9cfb-79fc3d06e923/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.