Scan timing: clone 5.64s · analysis 24.56s · 1.2 MB · GitHub preflight 447ms
https://github.com/tailuge/billiards
· scanned 2026-06-05 15:20 UTC (5 days, 2 hours ago)
· 10 languages
245 raw signals (65 security + 180 graph) 68th percentile · Typescript · medium (20-100K LoC) System graph score 88 (lower by 12)
Last scanned 5 days, 2 hours ago · v2 · 128 actionable findings from 2 signal sources. 27 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
| Component | Sub-score | Weight | Contribution |
|---|---|---|---|
structure_score |
100.0 | 0.15 | 15.00 |
security_score |
55.0 | 0.25 | 13.75 |
testing_score |
100.0 | 0.20 | 20.00 |
documentation_score |
61.0 | 0.15 | 9.15 |
practices_score |
70.0 | 0.15 | 10.50 |
code_quality |
78.2 | 0.10 | 7.82 |
| Overall | 1.00 | 76.2 |
All 589 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 |
|---|---|---|---|
README.md |
software | healthy | README.md |
.stylelintrc.json |
software | healthy | .stylelintrc.json |
package.json |
software | healthy | package.json |
webpack.config.js |
software | warning | webpack.config.js |
REPLAYPLAN.md |
software | healthy | REPLAYPLAN.md |
tsconfig.json |
software | healthy | tsconfig.json |
.yarnrc.yml |
software | healthy | .yarnrc.yml |
AGENTS.md |
software | healthy | AGENTS.md |
jest.config.js |
software | warning | test/jest.config.js |
mocksound.ts |
software | healthy | test/mocks/mocksound.ts |
gltfexporter.ts |
software | healthy | test/mocks/gltfexporter.ts |
inmemorymessagerelay.ts |
software | healthy | test/mocks/inmemorymessagerelay.ts |
gltfloader.ts |
software | healthy | test/mocks/gltfloader.ts |
matchresult.spec.ts |
software | healthy | test/rules/matchresult.spec.ts |
threecushion.spec.ts |
software | warning | test/rules/threecushion.spec.ts |
eightball.spec.ts |
software | healthy | test/rules/eightball.spec.ts |
nineball.spec.ts |
software | healthy | test/rules/nineball.spec.ts |
snooker_concede_bug.spec.ts |
software | healthy | test/rules/snooker_concede_bug.spec.ts |
snooker.spec.ts |
software | healthy | test/rules/snooker.spec.ts |
throttle.spec.ts |
software | healthy | test/events/throttle.spec.ts |
notificationevent.spec.ts |
software | warning | test/events/notificationevent.spec.ts |
recorder.spec.ts |
software | warning | test/events/recorder.spec.ts |
recorder_hook.spec.ts |
software | warning | test/events/recorder_hook.spec.ts |
concedeevent.spec.ts |
software | warning | test/events/concedeevent.spec.ts |
eventutil.spec.ts |
software | warning | test/events/eventutil.spec.ts |
eventhandler.spec.ts |
software | healthy | test/network/bot/eventhandler.spec.ts |
threecushionstrategy.spec.ts |
software | warning | test/network/bot/threecushionstrategy.spec.ts |
logger.spec.ts |
software | warning | test/network/bot/logger.spec.ts |
botrelay.spec.ts |
software | warning | test/network/bot/botrelay.spec.ts |
aimcalculator.spec.ts |
software | warning | test/network/bot/aimcalculator.spec.ts |
scorereporter.spec.ts |
software | healthy | test/network/client/scorereporter.spec.ts |
nchanmessagerelay.spec.ts |
software | warning | test/network/client/nchanmessagerelay.spec.ts |
clienterrorreporter.spec.ts |
software | warning | test/network/client/clienterrorreporter.spec.ts |
realposition.spec.ts |
software | warning | test/diagram/realposition.spec.ts |
controller.spec.ts |
software | warning | test/controller/controller.spec.ts |
spectate_sniff.spec.ts |
software | warning | test/controller/spectate_sniff.spec.ts |
replay.spec.ts |
software | warning | test/controller/replay.spec.ts |
watchshot.spec.ts |
software | warning | test/controller/watchshot.spec.ts |
autoaim.spec.ts |
software | warning | test/controller/autoaim.spec.ts |
botmode.spec.ts |
software | warning | test/controller/botmode.spec.ts |
spectate.spec.ts |
software | warning | test/controller/spectate.spec.ts |
respot.spec.ts |
software | warning | test/utils/respot.spec.ts |
overlap.spec.ts |
software | warning | test/utils/overlap.spec.ts |
utils.spec.ts |
software | warning | test/utils/utils.spec.ts |
diamond.spec.ts |
software | warning | test/gen/diamond.spec.ts |
messagerelay.spec.ts |
software | warning | test/server/messagerelay.spec.ts |
session.spec.ts |
software | warning | test/server/session.spec.ts |
cue.spec.ts |
software | healthy | test/model/cue.spec.ts |
collision.spec.ts |
software | warning | test/model/collision.spec.ts |
table.spec.ts |
software | warning | test/model/table.spec.ts |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
createNineBallContainer |
software | healthy | test/rules/matchresult.spec.ts:createNineBallContainer |
setupNineBallTable |
software | healthy | test/rules/matchresult.spec.ts:setupNineBallTable |
getNineBallOutcome |
software | healthy | test/rules/matchresult.spec.ts:getNineBallOutcome |
result |
software | healthy | test/rules/matchresult.spec.ts:result |
endController |
software | healthy | test/rules/matchresult.spec.ts:endController |
initEightBall |
software | healthy | test/rules/eightball.spec.ts:initEightBall |
setupEndGameTable |
software | healthy | test/rules/nineball.spec.ts:setupEndGameTable |
getEndGameOutcome |
software | healthy | test/rules/nineball.spec.ts:getEndGameOutcome |
initNineBall |
software | healthy | test/rules/nineball.spec.ts:initNineBall |
verifyRerackEvent |
software | healthy | test/rules/nineball.spec.ts:verifyRerackEvent |
result |
software | healthy | test/rules/snooker_concede_bug.spec.ts:result |
markAllRedsPotted |
software | healthy | test/rules/snooker.spec.ts:markAllRedsPotted |
bringToAimMode |
software | healthy | test/rules/snooker.spec.ts:bringToAimMode |
setupTableWithPot |
software | healthy | test/rules/snooker.spec.ts:setupTableWithPot |
playShotWaitForOutcome |
software | healthy | test/rules/snooker.spec.ts:playShotWaitForOutcome |
setupCueballAndNineball |
software | healthy | test/network/bot/eventhandler.spec.ts:setupCueballAndNineba… |
createOutcomeWithPots |
software | healthy | test/network/bot/eventhandler.spec.ts:createOutcomeWithPots |
createBotEventHandler |
software | healthy | test/network/bot/eventhandler.spec.ts:createBotEventHandler |
publishFn |
software | healthy | test/network/bot/eventhandler.spec.ts:publishFn |
enqueueFn |
software | healthy | test/network/bot/eventhandler.spec.ts:enqueueFn |
mockEvent |
software | healthy | test/network/bot/eventhandler.spec.ts:mockEvent |
flushPromises |
software | healthy | test/network/client/scorereporter.spec.ts:flushPromises |
updateMatrix |
software | healthy | test/model/cue.spec.ts:updateMatrix |
createCueAndTable |
software | healthy | test/model/cue.spec.ts:createCueAndTable |
bounceInXWithSpin |
software | healthy | test/model/cushion.spec.ts:bounceInXWithSpin |
ballAtXCushion |
software | healthy | test/model/cushion.spec.ts:ballAtXCushion |
replayShot |
software | healthy | test/bug/advance_exception_repro.spec.ts:replayShot |
differingBallIndexes |
software | healthy | test/bug/advance_exception_repro.spec.ts:differingBallIndex… |
ballState |
software | healthy | test/bug/advance_exception_repro.spec.ts:ballState |
loadFixture |
software | healthy | test/bug/break_replay_regression.spec.ts:loadFixture |
directPhysicsDistanceBeforeSecondShot |
software | healthy | test/bug/break_replay_regression.spec.ts:directPhysicsDista… |
addMenu |
software | healthy | test/view/comment.spec.ts:addMenu |
mockLobby |
software | healthy | test/view/lobbyindicator.spec.ts:mockLobby |
t |
software | healthy | test/view/camera.spec.ts:t |
target |
software | healthy | test/view/camera.spec.ts:target |
initDom |
software | healthy | test/view/dom.ts:initDom |
instancedMesh |
software | healthy | test/view/particle-system.spec.ts:instancedMesh |
firstMesh |
software | healthy | test/view/particle-system.spec.ts:firstMesh |
secondMesh |
software | healthy | test/view/particle-system.spec.ts:secondMesh |
mesh |
software | healthy | test/view/particle-system.spec.ts:mesh |
initialise |
software | healthy | src/index.ts:initialise |
reportConstants |
software | healthy | src/diagrams.ts:reportConstants |
sets |
software | healthy | src/diagrams.ts:sets |
initialisePlots |
software | healthy | src/diagrams.ts:initialisePlots |
plotAll |
software | healthy | src/diagrams.ts:plotAll |
plotLineGraphs |
software | healthy | src/diagrams.ts:plotLineGraphs |
lineGraph1 |
software | healthy | src/diagrams.ts:lineGraph1 |
lineGraph2 |
software | healthy | src/diagrams.ts:lineGraph2 |
lineGraph3 |
software | healthy | src/diagrams.ts:lineGraph3 |
rad |
software | healthy | src/diagrams.ts:rad |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
Sound |
software | healthy | test/mocks/mocksound.ts:Sound |
GLTFExporter |
software | healthy | test/mocks/gltfexporter.ts:GLTFExporter |
InMemoryMessageRelay |
software | healthy | test/mocks/inmemorymessagerelay.ts:InMemoryMessageRelay |
GLTFLoader |
software | healthy | test/mocks/gltfloader.ts:GLTFLoader |
MockEvent |
software | healthy | test/events/throttle.spec.ts:MockEvent |
PlaceBallEvent |
software | healthy | src/events/placeballevent.ts:PlaceBallEvent |
Recorder |
software | healthy | src/events/recorder.ts:Recorder |
ChatEvent |
software | healthy | src/events/chatevent.ts:ChatEvent |
RerackEvent |
software | healthy | src/events/rerackevent.ts:RerackEvent |
BreakEvent |
software | healthy | src/events/breakevent.ts:BreakEvent |
ConcedeEvent |
software | healthy | src/events/concedeevent.ts:ConcedeEvent |
AbortEvent |
software | healthy | src/events/abortevent.ts:AbortEvent |
RejoinEvent |
software | healthy | src/events/rejoinevent.ts:RejoinEvent |
Keyboard |
software | healthy | src/events/keyboard.ts:Keyboard |
EventUtil |
software | healthy | src/events/eventutil.ts:EventUtil |
BeginEvent |
software | healthy | src/events/beginevent.ts:BeginEvent |
GameEvent |
software | healthy | src/events/gameevent.ts:GameEvent |
StartAimEvent |
software | healthy | src/events/startaimevent.ts:StartAimEvent |
NotificationEvent |
software | healthy | src/events/notificationevent.ts:NotificationEvent |
AimEvent |
software | healthy | src/events/aimevent.ts:AimEvent |
StationaryEvent |
software | healthy | src/events/stationaryevent.ts:StationaryEvent |
Input |
software | healthy | src/events/input.ts:Input |
HitEvent |
software | healthy | src/events/hitevent.ts:HitEvent |
WatchEvent |
software | healthy | src/events/watchevent.ts:WatchEvent |
Throttle |
software | healthy | src/events/throttle.ts:Throttle |
ScoreEvent |
software | healthy | src/events/scoreevent.ts:ScoreEvent |
BotContainer |
software | healthy | src/network/bot/boteventhandler.ts:BotContainer |
BotEventHandler |
software | healthy | src/network/bot/boteventhandler.ts:BotEventHandler |
AimCalculator |
software | healthy | src/network/bot/aimcalculator.ts:AimCalculator |
BotRelay |
software | healthy | src/network/bot/botrelay.ts:BotRelay |
Logger |
software | healthy | src/network/bot/logger.ts:Logger |
TheFarJaw |
software | healthy | src/network/bot/strategies/thefarjaw.ts:TheFarJaw |
ClawBreak |
software | healthy | src/network/bot/strategies/clawbreak.ts:ClawBreak |
ThreeStrategy |
software | healthy | src/network/bot/strategies/threecushionstrategy.ts:ThreeStr… |
ScoreReporter |
software | healthy | src/network/client/scorereporter.ts:ScoreReporter |
Session |
software | healthy | src/network/client/session.ts:Session |
NchanMessageRelay |
software | healthy | src/network/client/nchanmessagerelay.ts:NchanMessageRelay |
MatchResultHelper |
software | healthy | src/network/client/matchresult.ts:MatchResultHelper |
ClientErrorReporter |
software | healthy | src/network/client/clienterrorreporter.ts:ClientErrorReport… |
HistoryMathavan |
software | healthy | src/diagram/historymathavan.ts:HistoryMathavan |
Graph |
software | healthy | src/diagram/graph.ts:Graph |
CollisionThrowPlot |
software | healthy | src/diagram/throw_gpt4o.ts:CollisionThrowPlot |
DiagramContainer |
software | healthy | src/diagram/diagramcontainer.ts:DiagramContainer |
RollDiagram |
software | healthy | src/diagram/rolldiagram.ts:RollDiagram |
ImpulsePlot |
software | healthy | src/diagram/impulseplot.ts:ImpulsePlot |
CushionPlot |
software | healthy | src/diagram/cushionplot.ts:CushionPlot |
ReboundPlot |
software | healthy | src/diagram/reboundplot.ts:ReboundPlot |
StrongePlot |
software | healthy | src/diagram/strongeplot.ts:StrongePlot |
ThrowPlot |
software | healthy | src/diagram/throwplot.ts:ThrowPlot |
AimInputs |
software | healthy | src/diagram/real/aiminputs.ts:AimInputs |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
test |
software | healthy | test |
mocks |
software | healthy | test/mocks |
rules |
software | healthy | test/rules |
events |
software | healthy | test/events |
network |
software | healthy | test/network |
bot |
software | healthy | test/network/bot |
client |
software | healthy | test/network/client |
diagram |
software | healthy | test/diagram |
controller |
software | healthy | test/controller |
utils |
software | healthy | test/utils |
gen |
software | healthy | test/gen |
server |
software | healthy | test/server |
model |
software | healthy | test/model |
physics |
software | healthy | test/model/physics |
newrules |
software | healthy | test/newrules |
bug |
software | healthy | test/bug |
view |
software | healthy | test/view |
.github |
software | healthy | .github |
ISSUE_TEMPLATE |
software | healthy | .github/ISSUE_TEMPLATE |
workflows |
software | healthy | .github/workflows |
src |
software | healthy | src |
events |
software | healthy | src/events |
network |
software | healthy | src/network |
bot |
software | healthy | src/network/bot |
strategies |
software | healthy | src/network/bot/strategies |
client |
software | healthy | src/network/client |
diagram |
software | healthy | src/diagram |
real |
software | healthy | src/diagram/real |
controller |
software | healthy | src/controller |
rules |
software | healthy | src/controller/rules |
newrules |
software | healthy | src/controller/newrules |
utils |
software | healthy | src/utils |
container |
software | healthy | src/container |
model |
software | healthy | src/model |
physics |
software | healthy | src/model/physics |
view |
software | healthy | src/view |
dom |
software | healthy | src/view/dom |
| Label | Layer | Status | Path |
|---|---|---|---|
build |
cicd | healthy | .github/workflows/main.yml |
deploy |
cicd | healthy | .github/workflows/main.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-zh40c893 |
software | healthy | /tmp/repobility-clone-zh40c893 |
| Label | Layer | Status | Path |
|---|---|---|---|
port:8080 |
network | healthy | webpack.config.js |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | src/utils/usage.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
gpu (detected) |
hardware | healthy | src/view/ballmaterialfactory.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::main |
cicd | healthy | .github/workflows/main.yml |
This page is publicly accessible at:
https://repobility.com/scan/351d1050-179e-4361-b6c1-7e841150551e/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/351d1050-179e-4361-b6c1-7e841150551e/
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.