Compare commits
12 Commits
rule-0.0.5
...
api-0.7.0
| Author | SHA1 | Date | |
|---|---|---|---|
| 8744bee2dd | |||
| 5f4d33f3ca | |||
| 767d3051a7 | |||
| b2e62dc60c | |||
| b0399a4e48 | |||
| ec2ab2f365 | |||
| fd4e67d4f7 | |||
| 3cb3160731 | |||
| dbcafd2869 | |||
| 3ecb2c9d66 | |||
| 9ad11fb97a | |||
| e158b0a7f0 |
+163
-32
@@ -2,8 +2,8 @@
|
||||
|
||||
> **Stack:** raw-http | none | unknown | scala
|
||||
|
||||
> 0 routes | 0 models | 0 components | 35 lib files | 0 env vars | 0 middleware
|
||||
> **Token savings:** this file is ~3.700 tokens. Without it, AI exploration would cost ~18.200 tokens. **Saves ~14.500 tokens per conversation.**
|
||||
> 0 routes | 0 models | 0 components | 63 lib files | 1 env vars | 1 middleware
|
||||
> **Token savings:** this file is ~0 tokens. Without it, AI exploration would cost ~0 tokens. **Saves ~0 tokens per conversation.**
|
||||
|
||||
---
|
||||
|
||||
@@ -60,6 +60,113 @@
|
||||
- class ApiResponse
|
||||
- function error
|
||||
- function totalPages
|
||||
- `modules/bot/python/nnue.py`
|
||||
- function get_weights_dir: ()
|
||||
- function get_data_dir: ()
|
||||
- function list_checkpoints: ()
|
||||
- function migrate_legacy_data: ()
|
||||
- function show_header: ()
|
||||
- function show_checkpoints_table: ()
|
||||
- _...10 more_
|
||||
- `modules/bot/python/src/dataset.py`
|
||||
- function get_datasets_dir: () -> Path
|
||||
- function next_dataset_version: () -> int
|
||||
- function list_datasets: () -> List[Tuple[int, Dict]]
|
||||
- function load_dataset_metadata: (version) -> Optional[Dict]
|
||||
- function save_dataset_metadata: (version, metadata) -> None
|
||||
- function create_dataset: (version, labeled_jsonl_path, sources, stockfish_depth) -> Path
|
||||
- _...4 more_
|
||||
- `modules/bot/python/src/export.py` — function export_to_nbai: (weights_file, output_file, trained_by, train_loss)
|
||||
- `modules/bot/python/src/generate.py` — function play_random_game_and_collect_positions: (output_file, total_positions, samples_per_game, min_move, max_move, num_workers)
|
||||
- `modules/bot/python/src/label.py` — function normalize_evaluation: (cp_value, method, scale), function label_positions_with_stockfish: (positions_file, output_file, stockfish_path, batch_size, depth, verbose, normalize, num_workers)
|
||||
- `modules/bot/python/src/tactical_positions_extractor.py`
|
||||
- function download_and_extract_puzzle_db: (url, output_dir)
|
||||
- function extract_puzzle_positions: (puzzle_csv, max_puzzles) -> Set[str]
|
||||
- function load_positions_from_file: (file_path) -> Set[str]
|
||||
- function merge_positions: (tactical, other, output_file)
|
||||
- function extract_tactical_only: (puzzle_csv, output_file, max_puzzles) -> int
|
||||
- function interactive_merge_positions: (puzzle_csv, output_file, max_puzzles)
|
||||
- `modules/bot/python/src/train.py`
|
||||
- function fen_to_features: (fen)
|
||||
- function find_next_version: (base_name)
|
||||
- function save_metadata: (weights_file, metadata)
|
||||
- function train_nnue: (data_file, output_file, epochs, batch_size, lr, checkpoint, stockfish_depth, use_versioning, early_stopping_patience, weight_decay, subsample_ratio)
|
||||
- function burst_train: (data_file, output_file, duration_minutes, epochs_per_season, early_stopping_patience, batch_size, lr, initial_checkpoint, stockfish_depth, use_versioning, weight_decay, subsample_ratio)
|
||||
- class NNUEDataset
|
||||
- _...1 more_
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/Bot.scala`
|
||||
- class Bot
|
||||
- function name
|
||||
- function nextMove
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/BotController.scala`
|
||||
- class BotController
|
||||
- function getBot
|
||||
- function listBots
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/BotMoveRepetition.scala`
|
||||
- class BotMoveRepetition
|
||||
- function blockedMoves
|
||||
- function repeatedMove
|
||||
- function filterAllowed
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/Config.scala` — class Config
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/ai/Evaluation.scala`
|
||||
- class Evaluation
|
||||
- class CHECKMATE_SCORE
|
||||
- class DRAW_SCORE
|
||||
- function evaluate
|
||||
- function initAccumulator
|
||||
- function copyAccumulator
|
||||
- _...2 more_
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/bots/classic/EvaluationClassic.scala`
|
||||
- class EvaluationClassic
|
||||
- function evaluate
|
||||
- function countRay
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/EvaluationNNUE.scala` — class EvaluationNNUE, function evaluate
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala`
|
||||
- class NNUE
|
||||
- function initAccumulator
|
||||
- function pushAccumulator
|
||||
- function copyAccumulator
|
||||
- function recomputeAccumulator
|
||||
- function validateAccumulator
|
||||
- _...4 more_
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NbaiLoader.scala`
|
||||
- class NbaiLoader
|
||||
- function load
|
||||
- function loadDefault
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NbaiMigrator.scala` — class NbaiMigrator, function migrateFromBin
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NbaiModel.scala`
|
||||
- function toJson
|
||||
- class NbaiMetadata
|
||||
- function fromJson
|
||||
- function str
|
||||
- function num
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NbaiWriter.scala` — class NbaiWriter, function write
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/logic/AlphaBetaSearch.scala`
|
||||
- function bestMove
|
||||
- function bestMove
|
||||
- function bestMoveWithTime
|
||||
- function bestMoveWithTime
|
||||
- function loop
|
||||
- function loop
|
||||
- _...2 more_
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/logic/MoveOrdering.scala`
|
||||
- class MoveOrdering
|
||||
- class OrderingContext
|
||||
- function addKillerMove
|
||||
- function getKillerMoves
|
||||
- function addHistory
|
||||
- function getHistory
|
||||
- _...3 more_
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala`
|
||||
- function probe
|
||||
- function store
|
||||
- function clear
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotBook.scala` — function probe, function select
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala` — class PolyglotHash, function hash
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/util/ZobristHash.scala`
|
||||
- class ZobristHash
|
||||
- function hash
|
||||
- function nextHash
|
||||
- `modules/core/src/main/scala/de/nowchess/chess/command/Command.scala`
|
||||
- class Command
|
||||
- function execute
|
||||
@@ -82,7 +189,7 @@
|
||||
- function turn
|
||||
- function context
|
||||
- function canUndo
|
||||
- _...10 more_
|
||||
- _...11 more_
|
||||
- `modules/core/src/main/scala/de/nowchess/chess/observer/Observer.scala`
|
||||
- function context
|
||||
- class Observer
|
||||
@@ -93,6 +200,13 @@
|
||||
- _...1 more_
|
||||
- `modules/io/src/main/scala/de/nowchess/io/GameContextExport.scala` — class GameContextExport, function exportGameContext
|
||||
- `modules/io/src/main/scala/de/nowchess/io/GameContextImport.scala` — class GameContextImport, function importGameContext
|
||||
- `modules/io/src/main/scala/de/nowchess/io/GameFileService.scala`
|
||||
- class GameFileService
|
||||
- function saveGameToFile
|
||||
- function loadGameFromFile
|
||||
- class FileSystemGameService
|
||||
- function saveGameToFile
|
||||
- function loadGameFromFile
|
||||
- `modules/io/src/main/scala/de/nowchess/io/fen/FenExporter.scala`
|
||||
- class FenExporter
|
||||
- function boardToFen
|
||||
@@ -114,6 +228,8 @@
|
||||
- function parseBoard
|
||||
- function importGameContext
|
||||
- `modules/io/src/main/scala/de/nowchess/io/fen/FenParserSupport.scala` — function buildSquares
|
||||
- `modules/io/src/main/scala/de/nowchess/io/json/JsonExporter.scala` — class JsonExporter, function exportGameContext
|
||||
- `modules/io/src/main/scala/de/nowchess/io/json/JsonParser.scala` — class JsonParser, function importGameContext
|
||||
- `modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala`
|
||||
- class PgnExporter
|
||||
- function exportGameContext
|
||||
@@ -160,43 +276,58 @@
|
||||
|
||||
---
|
||||
|
||||
# Config
|
||||
|
||||
## Environment Variables
|
||||
|
||||
- `STOCKFISH_PATH` **required** — modules/bot/python/nnue.py
|
||||
|
||||
---
|
||||
|
||||
# Middleware
|
||||
|
||||
## custom
|
||||
- generate — `modules/bot/python/src/generate.py`
|
||||
|
||||
---
|
||||
|
||||
# Dependency Graph
|
||||
|
||||
## Most Imported Files (change these carefully)
|
||||
|
||||
- `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala` — imported by **28** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Square.scala` — imported by **21** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Color.scala` — imported by **19** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/move/Move.scala` — imported by **14** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Board.scala` — imported by **13** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Piece.scala` — imported by **10** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/PieceType.scala` — imported by **9** files
|
||||
- `modules/io/src/main/scala/de/nowchess/io/fen/FenParser.scala` — imported by **9** files
|
||||
- `modules/rule/src/main/scala/de/nowchess/rules/sets/DefaultRules.scala` — imported by **8** files
|
||||
- `modules/io/src/main/scala/de/nowchess/io/GameContextImport.scala` — imported by **7** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala` — imported by **4** files
|
||||
- `modules/io/src/main/scala/de/nowchess/io/GameContextExport.scala` — imported by **4** files
|
||||
- `modules/rule/src/main/scala/de/nowchess/rules/RuleSet.scala` — imported by **4** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala` — imported by **60** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/move/Move.scala` — imported by **40** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Square.scala` — imported by **39** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Color.scala` — imported by **36** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Board.scala` — imported by **22** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/PieceType.scala` — imported by **21** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Piece.scala` — imported by **21** files
|
||||
- `modules/rule/src/main/scala/de/nowchess/rules/sets/DefaultRules.scala` — imported by **17** files
|
||||
- `modules/rule/src/main/scala/de/nowchess/rules/RuleSet.scala` — imported by **10** files
|
||||
- `modules/io/src/main/scala/de/nowchess/io/fen/FenParser.scala` — imported by **10** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala` — imported by **8** files
|
||||
- `modules/io/src/main/scala/de/nowchess/io/GameContextImport.scala` — imported by **8** files
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotBook.scala` — imported by **5** files
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/BotDifficulty.scala` — imported by **5** files
|
||||
- `modules/io/src/main/scala/de/nowchess/io/GameContextExport.scala` — imported by **5** files
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/bots/ClassicalBot.scala` — imported by **4** files
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/bots/classic/EvaluationClassic.scala` — imported by **4** files
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/logic/AlphaBetaSearch.scala` — imported by **4** files
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/Bot.scala` — imported by **4** files
|
||||
- `modules/core/src/main/scala/de/nowchess/chess/observer/Observer.scala` — imported by **4** files
|
||||
- `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala` — imported by **4** files
|
||||
- `modules/io/src/main/scala/de/nowchess/io/pgn/PgnParser.scala` — imported by **2** files
|
||||
- `modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala` — imported by **2** files
|
||||
- `modules/io/src/main/scala/de/nowchess/io/fen/FenExporter.scala` — imported by **2** files
|
||||
- `modules/io/src/main/scala/de/nowchess/io/fen/FenParserSupport.scala` — imported by **2** files
|
||||
- `modules/core/src/main/scala/de/nowchess/chess/controller/Parser.scala` — imported by **1** files
|
||||
|
||||
## Import Map (who imports what)
|
||||
|
||||
- `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala` ← `modules/core/src/main/scala/de/nowchess/chess/command/Command.scala`, `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/main/scala/de/nowchess/chess/observer/Observer.scala`, `modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerBranchTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala` +23 more
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Square.scala` ← `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/main/scala/de/nowchess/api/move/Move.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/api/src/test/scala/de/nowchess/api/move/MoveTest.scala`, `modules/core/src/main/scala/de/nowchess/chess/command/Command.scala` +16 more
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Color.scala` ← `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/main/scala/de/nowchess/chess/observer/Observer.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/EngineTestHelpers.scala` +14 more
|
||||
- `modules/api/src/main/scala/de/nowchess/api/move/Move.scala` ← `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/test/scala/de/nowchess/api/board/BoardTest.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineIntegrationTest.scala` +9 more
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Board.scala` ← `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/EngineTestHelpers.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineGameEndingTest.scala` +8 more
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Piece.scala` ← `modules/core/src/main/scala/de/nowchess/chess/command/Command.scala`, `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEnginePromotionTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala`, `modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala` +5 more
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/PieceType.scala` ← `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineIntegrationTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEnginePromotionTest.scala`, `modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala`, `modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesTest.scala` +4 more
|
||||
- `modules/io/src/main/scala/de/nowchess/io/fen/FenParser.scala` ← `modules/core/src/test/scala/de/nowchess/chess/engine/EngineTestHelpers.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEnginePromotionTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala` +4 more
|
||||
- `modules/rule/src/main/scala/de/nowchess/rules/sets/DefaultRules.scala` ← `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/EngineTestHelpers.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineIntegrationTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEnginePromotionTest.scala`, `modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala` +3 more
|
||||
- `modules/io/src/main/scala/de/nowchess/io/GameContextImport.scala` ← `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineIntegrationTest.scala`, `modules/io/src/main/scala/de/nowchess/io/fen/FenParser.scala`, `modules/io/src/main/scala/de/nowchess/io/fen/FenParserCombinators.scala`, `modules/io/src/main/scala/de/nowchess/io/fen/FenParserFastParse.scala` +2 more
|
||||
- `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala` ← `modules/bot/src/main/scala/de/nowchess/bot/Bot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/BotMoveRepetition.scala`, `modules/bot/src/main/scala/de/nowchess/bot/ai/Evaluation.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/ClassicalBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/HybridBot.scala` +55 more
|
||||
- `modules/api/src/main/scala/de/nowchess/api/move/Move.scala` ← `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/test/scala/de/nowchess/api/board/BoardTest.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/bot/src/main/scala/de/nowchess/bot/Bot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/BotMoveRepetition.scala` +35 more
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Square.scala` ← `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/main/scala/de/nowchess/api/move/Move.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/api/src/test/scala/de/nowchess/api/move/MoveTest.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/classic/EvaluationClassic.scala` +34 more
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Color.scala` ← `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/classic/EvaluationClassic.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/MoveOrdering.scala` +31 more
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Board.scala` ← `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/MoveOrdering.scala`, `modules/bot/src/test/scala/de/nowchess/bot/AlphaBetaSearchTest.scala` +17 more
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/PieceType.scala` ← `modules/bot/src/main/scala/de/nowchess/bot/bots/classic/EvaluationClassic.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/AlphaBetaSearch.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/MoveOrdering.scala`, `modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala` +16 more
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Piece.scala` ← `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/MoveOrdering.scala`, `modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala`, `modules/bot/src/main/scala/de/nowchess/bot/util/ZobristHash.scala`, `modules/bot/src/test/scala/de/nowchess/bot/AlphaBetaSearchTest.scala` +16 more
|
||||
- `modules/rule/src/main/scala/de/nowchess/rules/sets/DefaultRules.scala` ← `modules/bot/src/main/scala/de/nowchess/bot/bots/ClassicalBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/HybridBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/AlphaBetaSearch.scala`, `modules/bot/src/test/scala/de/nowchess/bot/AlphaBetaSearchTest.scala` +12 more
|
||||
- `modules/rule/src/main/scala/de/nowchess/rules/RuleSet.scala` ← `modules/bot/src/main/scala/de/nowchess/bot/bots/ClassicalBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/HybridBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/AlphaBetaSearch.scala`, `modules/bot/src/test/scala/de/nowchess/bot/AlphaBetaSearchTest.scala` +5 more
|
||||
- `modules/io/src/main/scala/de/nowchess/io/fen/FenParser.scala` ← `modules/bot/src/test/scala/de/nowchess/bot/PolyglotHashTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/EngineTestHelpers.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEnginePromotionTest.scala` +5 more
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# Config
|
||||
|
||||
## Environment Variables
|
||||
|
||||
- `STOCKFISH_PATH` **required** — modules/bot/python/nnue.py
|
||||
+29
-29
@@ -2,36 +2,36 @@
|
||||
|
||||
## Most Imported Files (change these carefully)
|
||||
|
||||
- `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala` — imported by **28** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Square.scala` — imported by **21** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Color.scala` — imported by **19** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/move/Move.scala` — imported by **14** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Board.scala` — imported by **13** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Piece.scala` — imported by **10** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/PieceType.scala` — imported by **9** files
|
||||
- `modules/io/src/main/scala/de/nowchess/io/fen/FenParser.scala` — imported by **9** files
|
||||
- `modules/rule/src/main/scala/de/nowchess/rules/sets/DefaultRules.scala` — imported by **8** files
|
||||
- `modules/io/src/main/scala/de/nowchess/io/GameContextImport.scala` — imported by **7** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala` — imported by **4** files
|
||||
- `modules/io/src/main/scala/de/nowchess/io/GameContextExport.scala` — imported by **4** files
|
||||
- `modules/rule/src/main/scala/de/nowchess/rules/RuleSet.scala` — imported by **4** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala` — imported by **60** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/move/Move.scala` — imported by **40** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Square.scala` — imported by **39** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Color.scala` — imported by **36** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Board.scala` — imported by **22** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/PieceType.scala` — imported by **21** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Piece.scala` — imported by **21** files
|
||||
- `modules/rule/src/main/scala/de/nowchess/rules/sets/DefaultRules.scala` — imported by **17** files
|
||||
- `modules/rule/src/main/scala/de/nowchess/rules/RuleSet.scala` — imported by **10** files
|
||||
- `modules/io/src/main/scala/de/nowchess/io/fen/FenParser.scala` — imported by **10** files
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala` — imported by **8** files
|
||||
- `modules/io/src/main/scala/de/nowchess/io/GameContextImport.scala` — imported by **8** files
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotBook.scala` — imported by **5** files
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/BotDifficulty.scala` — imported by **5** files
|
||||
- `modules/io/src/main/scala/de/nowchess/io/GameContextExport.scala` — imported by **5** files
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/bots/ClassicalBot.scala` — imported by **4** files
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/bots/classic/EvaluationClassic.scala` — imported by **4** files
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/logic/AlphaBetaSearch.scala` — imported by **4** files
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/Bot.scala` — imported by **4** files
|
||||
- `modules/core/src/main/scala/de/nowchess/chess/observer/Observer.scala` — imported by **4** files
|
||||
- `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala` — imported by **4** files
|
||||
- `modules/io/src/main/scala/de/nowchess/io/pgn/PgnParser.scala` — imported by **2** files
|
||||
- `modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala` — imported by **2** files
|
||||
- `modules/io/src/main/scala/de/nowchess/io/fen/FenExporter.scala` — imported by **2** files
|
||||
- `modules/io/src/main/scala/de/nowchess/io/fen/FenParserSupport.scala` — imported by **2** files
|
||||
- `modules/core/src/main/scala/de/nowchess/chess/controller/Parser.scala` — imported by **1** files
|
||||
|
||||
## Import Map (who imports what)
|
||||
|
||||
- `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala` ← `modules/core/src/main/scala/de/nowchess/chess/command/Command.scala`, `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/main/scala/de/nowchess/chess/observer/Observer.scala`, `modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerBranchTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala` +23 more
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Square.scala` ← `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/main/scala/de/nowchess/api/move/Move.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/api/src/test/scala/de/nowchess/api/move/MoveTest.scala`, `modules/core/src/main/scala/de/nowchess/chess/command/Command.scala` +16 more
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Color.scala` ← `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/main/scala/de/nowchess/chess/observer/Observer.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/EngineTestHelpers.scala` +14 more
|
||||
- `modules/api/src/main/scala/de/nowchess/api/move/Move.scala` ← `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/test/scala/de/nowchess/api/board/BoardTest.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineIntegrationTest.scala` +9 more
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Board.scala` ← `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/EngineTestHelpers.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineGameEndingTest.scala` +8 more
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Piece.scala` ← `modules/core/src/main/scala/de/nowchess/chess/command/Command.scala`, `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEnginePromotionTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala`, `modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala` +5 more
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/PieceType.scala` ← `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineIntegrationTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEnginePromotionTest.scala`, `modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala`, `modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesTest.scala` +4 more
|
||||
- `modules/io/src/main/scala/de/nowchess/io/fen/FenParser.scala` ← `modules/core/src/test/scala/de/nowchess/chess/engine/EngineTestHelpers.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEnginePromotionTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala` +4 more
|
||||
- `modules/rule/src/main/scala/de/nowchess/rules/sets/DefaultRules.scala` ← `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/EngineTestHelpers.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineIntegrationTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEnginePromotionTest.scala`, `modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala` +3 more
|
||||
- `modules/io/src/main/scala/de/nowchess/io/GameContextImport.scala` ← `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineIntegrationTest.scala`, `modules/io/src/main/scala/de/nowchess/io/fen/FenParser.scala`, `modules/io/src/main/scala/de/nowchess/io/fen/FenParserCombinators.scala`, `modules/io/src/main/scala/de/nowchess/io/fen/FenParserFastParse.scala` +2 more
|
||||
- `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala` ← `modules/bot/src/main/scala/de/nowchess/bot/Bot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/BotMoveRepetition.scala`, `modules/bot/src/main/scala/de/nowchess/bot/ai/Evaluation.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/ClassicalBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/HybridBot.scala` +55 more
|
||||
- `modules/api/src/main/scala/de/nowchess/api/move/Move.scala` ← `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/test/scala/de/nowchess/api/board/BoardTest.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/bot/src/main/scala/de/nowchess/bot/Bot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/BotMoveRepetition.scala` +35 more
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Square.scala` ← `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/main/scala/de/nowchess/api/move/Move.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/api/src/test/scala/de/nowchess/api/move/MoveTest.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/classic/EvaluationClassic.scala` +34 more
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Color.scala` ← `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/classic/EvaluationClassic.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/MoveOrdering.scala` +31 more
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Board.scala` ← `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/MoveOrdering.scala`, `modules/bot/src/test/scala/de/nowchess/bot/AlphaBetaSearchTest.scala` +17 more
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/PieceType.scala` ← `modules/bot/src/main/scala/de/nowchess/bot/bots/classic/EvaluationClassic.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/AlphaBetaSearch.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/MoveOrdering.scala`, `modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala` +16 more
|
||||
- `modules/api/src/main/scala/de/nowchess/api/board/Piece.scala` ← `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/MoveOrdering.scala`, `modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala`, `modules/bot/src/main/scala/de/nowchess/bot/util/ZobristHash.scala`, `modules/bot/src/test/scala/de/nowchess/bot/AlphaBetaSearchTest.scala` +16 more
|
||||
- `modules/rule/src/main/scala/de/nowchess/rules/sets/DefaultRules.scala` ← `modules/bot/src/main/scala/de/nowchess/bot/bots/ClassicalBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/HybridBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/AlphaBetaSearch.scala`, `modules/bot/src/test/scala/de/nowchess/bot/AlphaBetaSearchTest.scala` +12 more
|
||||
- `modules/rule/src/main/scala/de/nowchess/rules/RuleSet.scala` ← `modules/bot/src/main/scala/de/nowchess/bot/bots/ClassicalBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/HybridBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/AlphaBetaSearch.scala`, `modules/bot/src/test/scala/de/nowchess/bot/AlphaBetaSearchTest.scala` +5 more
|
||||
- `modules/io/src/main/scala/de/nowchess/io/fen/FenParser.scala` ← `modules/bot/src/test/scala/de/nowchess/bot/PolyglotHashTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/EngineTestHelpers.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEnginePromotionTest.scala` +5 more
|
||||
|
||||
+117
-1
@@ -51,6 +51,113 @@
|
||||
- class ApiResponse
|
||||
- function error
|
||||
- function totalPages
|
||||
- `modules/bot/python/nnue.py`
|
||||
- function get_weights_dir: ()
|
||||
- function get_data_dir: ()
|
||||
- function list_checkpoints: ()
|
||||
- function migrate_legacy_data: ()
|
||||
- function show_header: ()
|
||||
- function show_checkpoints_table: ()
|
||||
- _...10 more_
|
||||
- `modules/bot/python/src/dataset.py`
|
||||
- function get_datasets_dir: () -> Path
|
||||
- function next_dataset_version: () -> int
|
||||
- function list_datasets: () -> List[Tuple[int, Dict]]
|
||||
- function load_dataset_metadata: (version) -> Optional[Dict]
|
||||
- function save_dataset_metadata: (version, metadata) -> None
|
||||
- function create_dataset: (version, labeled_jsonl_path, sources, stockfish_depth) -> Path
|
||||
- _...4 more_
|
||||
- `modules/bot/python/src/export.py` — function export_to_nbai: (weights_file, output_file, trained_by, train_loss)
|
||||
- `modules/bot/python/src/generate.py` — function play_random_game_and_collect_positions: (output_file, total_positions, samples_per_game, min_move, max_move, num_workers)
|
||||
- `modules/bot/python/src/label.py` — function normalize_evaluation: (cp_value, method, scale), function label_positions_with_stockfish: (positions_file, output_file, stockfish_path, batch_size, depth, verbose, normalize, num_workers)
|
||||
- `modules/bot/python/src/tactical_positions_extractor.py`
|
||||
- function download_and_extract_puzzle_db: (url, output_dir)
|
||||
- function extract_puzzle_positions: (puzzle_csv, max_puzzles) -> Set[str]
|
||||
- function load_positions_from_file: (file_path) -> Set[str]
|
||||
- function merge_positions: (tactical, other, output_file)
|
||||
- function extract_tactical_only: (puzzle_csv, output_file, max_puzzles) -> int
|
||||
- function interactive_merge_positions: (puzzle_csv, output_file, max_puzzles)
|
||||
- `modules/bot/python/src/train.py`
|
||||
- function fen_to_features: (fen)
|
||||
- function find_next_version: (base_name)
|
||||
- function save_metadata: (weights_file, metadata)
|
||||
- function train_nnue: (data_file, output_file, epochs, batch_size, lr, checkpoint, stockfish_depth, use_versioning, early_stopping_patience, weight_decay, subsample_ratio)
|
||||
- function burst_train: (data_file, output_file, duration_minutes, epochs_per_season, early_stopping_patience, batch_size, lr, initial_checkpoint, stockfish_depth, use_versioning, weight_decay, subsample_ratio)
|
||||
- class NNUEDataset
|
||||
- _...1 more_
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/Bot.scala`
|
||||
- class Bot
|
||||
- function name
|
||||
- function nextMove
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/BotController.scala`
|
||||
- class BotController
|
||||
- function getBot
|
||||
- function listBots
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/BotMoveRepetition.scala`
|
||||
- class BotMoveRepetition
|
||||
- function blockedMoves
|
||||
- function repeatedMove
|
||||
- function filterAllowed
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/Config.scala` — class Config
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/ai/Evaluation.scala`
|
||||
- class Evaluation
|
||||
- class CHECKMATE_SCORE
|
||||
- class DRAW_SCORE
|
||||
- function evaluate
|
||||
- function initAccumulator
|
||||
- function copyAccumulator
|
||||
- _...2 more_
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/bots/classic/EvaluationClassic.scala`
|
||||
- class EvaluationClassic
|
||||
- function evaluate
|
||||
- function countRay
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/EvaluationNNUE.scala` — class EvaluationNNUE, function evaluate
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala`
|
||||
- class NNUE
|
||||
- function initAccumulator
|
||||
- function pushAccumulator
|
||||
- function copyAccumulator
|
||||
- function recomputeAccumulator
|
||||
- function validateAccumulator
|
||||
- _...4 more_
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NbaiLoader.scala`
|
||||
- class NbaiLoader
|
||||
- function load
|
||||
- function loadDefault
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NbaiMigrator.scala` — class NbaiMigrator, function migrateFromBin
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NbaiModel.scala`
|
||||
- function toJson
|
||||
- class NbaiMetadata
|
||||
- function fromJson
|
||||
- function str
|
||||
- function num
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NbaiWriter.scala` — class NbaiWriter, function write
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/logic/AlphaBetaSearch.scala`
|
||||
- function bestMove
|
||||
- function bestMove
|
||||
- function bestMoveWithTime
|
||||
- function bestMoveWithTime
|
||||
- function loop
|
||||
- function loop
|
||||
- _...2 more_
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/logic/MoveOrdering.scala`
|
||||
- class MoveOrdering
|
||||
- class OrderingContext
|
||||
- function addKillerMove
|
||||
- function getKillerMoves
|
||||
- function addHistory
|
||||
- function getHistory
|
||||
- _...3 more_
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala`
|
||||
- function probe
|
||||
- function store
|
||||
- function clear
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotBook.scala` — function probe, function select
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala` — class PolyglotHash, function hash
|
||||
- `modules/bot/src/main/scala/de/nowchess/bot/util/ZobristHash.scala`
|
||||
- class ZobristHash
|
||||
- function hash
|
||||
- function nextHash
|
||||
- `modules/core/src/main/scala/de/nowchess/chess/command/Command.scala`
|
||||
- class Command
|
||||
- function execute
|
||||
@@ -73,7 +180,7 @@
|
||||
- function turn
|
||||
- function context
|
||||
- function canUndo
|
||||
- _...10 more_
|
||||
- _...11 more_
|
||||
- `modules/core/src/main/scala/de/nowchess/chess/observer/Observer.scala`
|
||||
- function context
|
||||
- class Observer
|
||||
@@ -84,6 +191,13 @@
|
||||
- _...1 more_
|
||||
- `modules/io/src/main/scala/de/nowchess/io/GameContextExport.scala` — class GameContextExport, function exportGameContext
|
||||
- `modules/io/src/main/scala/de/nowchess/io/GameContextImport.scala` — class GameContextImport, function importGameContext
|
||||
- `modules/io/src/main/scala/de/nowchess/io/GameFileService.scala`
|
||||
- class GameFileService
|
||||
- function saveGameToFile
|
||||
- function loadGameFromFile
|
||||
- class FileSystemGameService
|
||||
- function saveGameToFile
|
||||
- function loadGameFromFile
|
||||
- `modules/io/src/main/scala/de/nowchess/io/fen/FenExporter.scala`
|
||||
- class FenExporter
|
||||
- function boardToFen
|
||||
@@ -105,6 +219,8 @@
|
||||
- function parseBoard
|
||||
- function importGameContext
|
||||
- `modules/io/src/main/scala/de/nowchess/io/fen/FenParserSupport.scala` — function buildSquares
|
||||
- `modules/io/src/main/scala/de/nowchess/io/json/JsonExporter.scala` — class JsonExporter, function exportGameContext
|
||||
- `modules/io/src/main/scala/de/nowchess/io/json/JsonParser.scala` — class JsonParser, function importGameContext
|
||||
- `modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala`
|
||||
- class PgnExporter
|
||||
- function exportGameContext
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
# Middleware
|
||||
|
||||
## custom
|
||||
- generate — `modules/bot/python/src/generate.py`
|
||||
@@ -0,0 +1,41 @@
|
||||
# Normalize text files in the repo
|
||||
* text=auto eol=lf
|
||||
|
||||
# Keep Windows command scripts in CRLF
|
||||
*.bat text eol=crlf
|
||||
*.cmd text eol=crlf
|
||||
|
||||
# Keep Unix shell scripts in LF
|
||||
*.sh text eol=lf
|
||||
|
||||
# Binary assets (no EOL normalization / textual diff)
|
||||
*.png binary
|
||||
*.jpg binary
|
||||
*.jpeg binary
|
||||
*.gif binary
|
||||
*.webp binary
|
||||
*.bmp binary
|
||||
*.ico binary
|
||||
|
||||
# ML / model / numeric artifacts
|
||||
*.bin binary
|
||||
*.pt binary
|
||||
*.pth binary
|
||||
*.onnx binary
|
||||
*.h5 binary
|
||||
*.hdf5 binary
|
||||
*.pb binary
|
||||
*.tflite binary
|
||||
*.npy binary
|
||||
*.npz binary
|
||||
*.safetensors binary
|
||||
|
||||
# Firmware / hex-like artifacts
|
||||
*.hex binary
|
||||
|
||||
# Packaged binaries
|
||||
*.jar binary
|
||||
*.zip binary
|
||||
*.7z binary
|
||||
*.gz binary
|
||||
|
||||
@@ -38,6 +38,8 @@ bin/
|
||||
|
||||
### VS Code ###
|
||||
.vscode/
|
||||
graphify-out/
|
||||
.graphify_*.json
|
||||
|
||||
### Mac OS ###
|
||||
.DS_Store
|
||||
|
||||
Generated
+2
@@ -8,3 +8,5 @@
|
||||
/dataSources.local.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
|
||||
sonarlint.xml
|
||||
|
||||
Generated
+133
@@ -0,0 +1,133 @@
|
||||
<component name="ProjectCodeStyleConfiguration">
|
||||
<code_scheme name="Project" version="173">
|
||||
<AndroidXmlCodeStyleSettings>
|
||||
<option name="USE_CUSTOM_SETTINGS" value="true" />
|
||||
</AndroidXmlCodeStyleSettings>
|
||||
<JetCodeStyleSettings>
|
||||
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
|
||||
</JetCodeStyleSettings>
|
||||
<ScalaCodeStyleSettings>
|
||||
<option name="FORMATTER" value="1" />
|
||||
</ScalaCodeStyleSettings>
|
||||
<XML>
|
||||
<option name="XML_KEEP_LINE_BREAKS" value="false" />
|
||||
<option name="XML_ALIGN_ATTRIBUTES" value="false" />
|
||||
<option name="XML_SPACE_INSIDE_EMPTY_TAG" value="true" />
|
||||
</XML>
|
||||
<codeStyleSettings language="XML">
|
||||
<option name="FORCE_REARRANGE_MODE" value="1" />
|
||||
<indentOptions>
|
||||
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
||||
</indentOptions>
|
||||
<arrangement>
|
||||
<rules>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>xmlns:android</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>xmlns:.*</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:id</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:name</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>name</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>style</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>.*</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
</rules>
|
||||
</arrangement>
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="kotlin">
|
||||
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
|
||||
</codeStyleSettings>
|
||||
</code_scheme>
|
||||
</component>
|
||||
Generated
+1
-1
@@ -1,5 +1,5 @@
|
||||
<component name="ProjectCodeStyleConfiguration">
|
||||
<state>
|
||||
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
|
||||
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
|
||||
</state>
|
||||
</component>
|
||||
Generated
+1
@@ -11,6 +11,7 @@
|
||||
<option value="$PROJECT_DIR$" />
|
||||
<option value="$PROJECT_DIR$/modules" />
|
||||
<option value="$PROJECT_DIR$/modules/api" />
|
||||
<option value="$PROJECT_DIR$/modules/bot" />
|
||||
<option value="$PROJECT_DIR$/modules/core" />
|
||||
<option value="$PROJECT_DIR$/modules/io" />
|
||||
<option value="$PROJECT_DIR$/modules/rule" />
|
||||
|
||||
Generated
+1
-1
@@ -5,7 +5,7 @@
|
||||
<option name="deprecationWarnings" value="true" />
|
||||
<option name="uncheckedWarnings" value="true" />
|
||||
</profile>
|
||||
<profile name="Gradle 2" modules="NowChessSystems.modules.core.main,NowChessSystems.modules.core.scoverage,NowChessSystems.modules.core.test,NowChessSystems.modules.io.main,NowChessSystems.modules.io.scoverage,NowChessSystems.modules.io.test,NowChessSystems.modules.rule.main,NowChessSystems.modules.rule.scoverage,NowChessSystems.modules.rule.test,NowChessSystems.modules.ui.main,NowChessSystems.modules.ui.scoverage,NowChessSystems.modules.ui.test">
|
||||
<profile name="Gradle 2" modules="NowChessSystems.modules.bot.main,NowChessSystems.modules.bot.scoverage,NowChessSystems.modules.bot.test,NowChessSystems.modules.core.main,NowChessSystems.modules.core.scoverage,NowChessSystems.modules.core.test,NowChessSystems.modules.io.main,NowChessSystems.modules.io.scoverage,NowChessSystems.modules.io.test,NowChessSystems.modules.rule.main,NowChessSystems.modules.rule.scoverage,NowChessSystems.modules.rule.test,NowChessSystems.modules.ui.main,NowChessSystems.modules.ui.scoverage,NowChessSystems.modules.ui.test">
|
||||
<option name="deprecationWarnings" value="true" />
|
||||
<option name="uncheckedWarnings" value="true" />
|
||||
<parameters>
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
rules = [
|
||||
DisableSyntax,
|
||||
LeakingImplicitClassVal,
|
||||
NoValInForComprehension,
|
||||
ProcedureSyntax,
|
||||
]
|
||||
|
||||
DisableSyntax.noVars = true
|
||||
DisableSyntax.noThrows = true
|
||||
DisableSyntax.noNulls = true
|
||||
DisableSyntax.noReturns = true
|
||||
DisableSyntax.noAsInstanceOf = true
|
||||
DisableSyntax.noIsInstanceOf = true
|
||||
DisableSyntax.noXml = true
|
||||
DisableSyntax.noFinalize = true
|
||||
@@ -0,0 +1,8 @@
|
||||
version = 3.8.1
|
||||
runner.dialect = scala3
|
||||
maxColumn = 120
|
||||
indent.main = 2
|
||||
align.preset = more
|
||||
trailingCommas = always
|
||||
rewrite.rules = [SortImports, RedundantBraces]
|
||||
rewrite.scala3.convertToNewSyntax = true
|
||||
@@ -1,7 +1,7 @@
|
||||
YOU CAN:
|
||||
- Edit and use the asset in any commercial or non commercial project
|
||||
- Use the asset in any commercial or non commercial project
|
||||
|
||||
YOU CAN'T:
|
||||
- Resell or distribute the asset to others
|
||||
YOU CAN:
|
||||
- Edit and use the asset in any commercial or non commercial project
|
||||
- Use the asset in any commercial or non commercial project
|
||||
|
||||
YOU CAN'T:
|
||||
- Resell or distribute the asset to others
|
||||
- Edit and resell the asset to others - - Credits required using This link: https://fatman200.itch.io/
|
||||
@@ -19,6 +19,7 @@ Try to stick to these commands for consistency.
|
||||
| `api` | Model / shared types | (none) |
|
||||
| `core` | Primary business logic | api, rule |
|
||||
| `rule` | Game rules | api |
|
||||
| `bot` | Bots and AI | api,rule,io |
|
||||
| `io` | Export formats | api, core |
|
||||
| `ui` | Entrypoint & UI | core, io |
|
||||
|
||||
@@ -37,11 +38,19 @@ Try to stick to these commands for consistency.
|
||||
|
||||
- **Coverage:** 100% condition coverage required in `api`, `core`, `rule`, `io` (mandatory); `ui` exempt.
|
||||
|
||||
### Linters
|
||||
|
||||
- **scalafmt** — enforces formatting; run `./gradlew spotlessScalaCheck` to check and `./gradlew spotlessScalaApply` to refactor.
|
||||
- **scalafix** — enforces style and detects unused imports/code; run `./gradlew scalafix` to apply rules.
|
||||
|
||||
## Architecture Decisions
|
||||
|
||||
- **Immutable state as primary model:** GameContext (api) holds board, history, player state — immutable, passed through the system. Each move creates a new GameContext, enabling undo/redo without side effects.
|
||||
- **Observer pattern for UI decoupling:** GameEngine publishes move/state events; CommandInvoker queues moves; UI listens to events, not polling. GameEngine never imports UI code.
|
||||
- **RuleSet trait encapsulates rules:** Move generation, check, castling, en passant all in RuleSet impl. GameEngine calls rules as a black box; rules don't know about the rest of core.
|
||||
- **Polyglot hash must follow spec index layout:** piece keys use interleaved mapping `(pieceType * 2 + colorBit)` with black=0/white=1, castling keys are `768..771`, en-passant file keys are `772..779` and are XORed only if side-to-move has a pawn that can capture en passant, side-to-move key is `780` for white.
|
||||
- **Alpha-beta uses sequential PV search by default:** parallel split was disabled because fixed-window futures removed pruning effectiveness; correctness and pruning quality take priority over speculative parallelism.
|
||||
- **Search hash is updated incrementally per move:** bot search now updates Zobrist keys from parent hash with move deltas instead of recomputing piece scans at every node.
|
||||
|
||||
## Rules
|
||||
|
||||
|
||||
+50
-1
@@ -1,6 +1,8 @@
|
||||
plugins {
|
||||
id("org.sonarqube") version "7.2.3.7755"
|
||||
id("org.scoverage") version "8.1" apply false
|
||||
id("com.diffplug.spotless") version "8.4.0" apply false
|
||||
id("io.github.cosmicsilence.scalafix") version "0.2.6" apply false
|
||||
}
|
||||
|
||||
group = "de.nowchess"
|
||||
@@ -20,6 +22,26 @@ sonar {
|
||||
}.joinToString(",")
|
||||
|
||||
property("sonar.scala.coverage.reportPaths", scoverageReports)
|
||||
property(
|
||||
"sonar.coverage.exclusions",
|
||||
// UI renders JavaFX components; headless test environments cannot exercise rendering paths
|
||||
"modules/ui/**," +
|
||||
// FastParse macro-generated combinators produce synthetic branches that scoverage marks as uncovered
|
||||
"modules/io/src/main/scala/de/nowchess/io/fen/FenParserFastParse*," +
|
||||
// NNUE inference pipeline — coverage requires a trained model file not present in CI
|
||||
"**/bot/**/NNUE.scala," +
|
||||
"**/bot/**/NNUEBot.scala," +
|
||||
"**/bot/**/EvaluationNNUE.scala," +
|
||||
// NBAI binary format loader/writer — error paths require crafted corrupt files; migrator is a one-shot tool
|
||||
"**/bot/**/NbaiLoader.scala," +
|
||||
"**/bot/**/NbaiModel.scala," +
|
||||
"**/bot/**/NbaiMigrator.scala," +
|
||||
"**/bot/**/NbaiWriter.scala," +
|
||||
// PolyglotBook — binary I/O and dead-code guards (bit-masked fields can never exceed valid range)
|
||||
"**/bot/**/PolyglotBook.scala," +
|
||||
"**/bot/**/MoveOrdering.scala," +
|
||||
"**/bot/**/AlphaBetaSearch.scala"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,8 +55,35 @@ val versions = mapOf(
|
||||
"SCALAFX" to "21.0.0-R32",
|
||||
"JAVAFX" to "21.0.1",
|
||||
"JUNIT_BOM" to "5.13.4",
|
||||
"ONNXRUNTIME" to "1.19.2",
|
||||
"SCALA_PARSER_COMBINATORS" to "2.4.0",
|
||||
"FASTPARSE" to "3.0.2"
|
||||
"FASTPARSE" to "3.0.2",
|
||||
"JACKSON" to "2.17.2",
|
||||
"JACKSON_SCALA" to "2.17.2"
|
||||
)
|
||||
extra["VERSIONS"] = versions
|
||||
|
||||
subprojects {
|
||||
apply(plugin = "com.diffplug.spotless")
|
||||
|
||||
pluginManager.withPlugin("scala") {
|
||||
configure<com.diffplug.gradle.spotless.SpotlessExtension> {
|
||||
scala {
|
||||
scalafmt().configFile(rootProject.file(".scalafmt.conf"))
|
||||
}
|
||||
}
|
||||
|
||||
apply(plugin = "io.github.cosmicsilence.scalafix")
|
||||
configure<io.github.cosmicsilence.scalafix.ScalafixExtension> {
|
||||
configFile.set(rootProject.file(".scalafix.conf"))
|
||||
}
|
||||
|
||||
// Disable SemanticDB config for the scoverage source set — it sets -sourceroot to
|
||||
// the root project dir, which conflicts with scoverage's own -sourceroot and causes
|
||||
// reportTestScoverage to fail with "No source root found".
|
||||
tasks.matching { it.name in setOf("configSemanticDBScoverage", "checkScalafixScoverage", "checkScalafixTest") }.configureEach {
|
||||
enabled = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,776 @@
|
||||
openapi: 3.0.3
|
||||
info:
|
||||
title: NowChess API
|
||||
description: |
|
||||
REST API for the NowChess application. Designed to feel familiar to users
|
||||
of the [lichess API](https://lichess.org/api).
|
||||
|
||||
## Authentication
|
||||
Most endpoints require a Bearer token:
|
||||
```
|
||||
Authorization: Bearer <token>
|
||||
```
|
||||
Authentication is reserved for future implementation — endpoints are currently
|
||||
open unless noted otherwise.
|
||||
|
||||
## Move notation
|
||||
Moves are expressed in **UCI notation**: `{from}{to}[promotion]`
|
||||
- Normal move: `e2e4`
|
||||
- Capture: `d5e6`
|
||||
- Promotion: `e7e8q` (q=queen, r=rook, b=bishop, n=knight)
|
||||
- Castling: `e1g1` (kingside white), `e1c1` (queenside white)
|
||||
|
||||
## Streaming
|
||||
Endpoints that support streaming return **NDJSON** (newline-delimited JSON).
|
||||
Request them with:
|
||||
```
|
||||
Accept: application/x-ndjson
|
||||
```
|
||||
Each line of the response is a complete JSON object. Empty lines are
|
||||
keep-alive heartbeats.
|
||||
|
||||
## Rate limiting
|
||||
Requests that exceed the rate limit receive `429 Too Many Requests`.
|
||||
Honour the `Retry-After` response header and wait before retrying.
|
||||
version: 1.0.0
|
||||
contact:
|
||||
name: NowChess
|
||||
license:
|
||||
name: MIT
|
||||
|
||||
servers:
|
||||
- url: http://localhost:8080
|
||||
description: Local development server
|
||||
|
||||
tags:
|
||||
- name: game
|
||||
description: Create and manage chess games
|
||||
- name: move
|
||||
description: Make moves and navigate game history
|
||||
- name: draw
|
||||
description: Draw offers and claims
|
||||
- name: import
|
||||
description: Load a game from FEN or PGN
|
||||
- name: export
|
||||
description: Export a game as FEN or PGN
|
||||
|
||||
paths:
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Game lifecycle
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
/api/board/game:
|
||||
post:
|
||||
operationId: createGame
|
||||
tags: [game]
|
||||
summary: Create a new game
|
||||
description: |
|
||||
Creates a new chess game starting from the initial position.
|
||||
Returns the full game state including the generated `gameId`.
|
||||
security:
|
||||
- bearerAuth: []
|
||||
requestBody:
|
||||
required: false
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/CreateGameRequest'
|
||||
responses:
|
||||
'201':
|
||||
description: Game created
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/GameFull'
|
||||
'400':
|
||||
$ref: '#/components/responses/BadRequest'
|
||||
'401':
|
||||
$ref: '#/components/responses/Unauthorized'
|
||||
'429':
|
||||
$ref: '#/components/responses/TooManyRequests'
|
||||
|
||||
/api/board/game/{gameId}:
|
||||
get:
|
||||
operationId: getGame
|
||||
tags: [game]
|
||||
summary: Get game state
|
||||
description: Returns the full current state of a game.
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/gameId'
|
||||
responses:
|
||||
'200':
|
||||
description: Current game state
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/GameFull'
|
||||
'404':
|
||||
$ref: '#/components/responses/NotFound'
|
||||
'429':
|
||||
$ref: '#/components/responses/TooManyRequests'
|
||||
|
||||
/api/board/game/{gameId}/stream:
|
||||
get:
|
||||
operationId: streamGame
|
||||
tags: [game]
|
||||
summary: Stream game events
|
||||
description: |
|
||||
Opens a persistent NDJSON stream for a game. The first object sent is
|
||||
a `gameFull` event containing the complete game state. Subsequent
|
||||
objects are `gameState` events sent whenever the game changes (move
|
||||
made, draw offered, game over, etc.).
|
||||
|
||||
Empty lines are heartbeats to keep the connection alive.
|
||||
|
||||
Connect with:
|
||||
```
|
||||
Accept: application/x-ndjson
|
||||
```
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/gameId'
|
||||
responses:
|
||||
'200':
|
||||
description: NDJSON event stream
|
||||
content:
|
||||
application/x-ndjson:
|
||||
schema:
|
||||
oneOf:
|
||||
- $ref: '#/components/schemas/GameFullEvent'
|
||||
- $ref: '#/components/schemas/GameStateEvent'
|
||||
- $ref: '#/components/schemas/ErrorEvent'
|
||||
'404':
|
||||
$ref: '#/components/responses/NotFound'
|
||||
'429':
|
||||
$ref: '#/components/responses/TooManyRequests'
|
||||
|
||||
/api/board/game/{gameId}/resign:
|
||||
post:
|
||||
operationId: resignGame
|
||||
tags: [game]
|
||||
summary: Resign the game
|
||||
description: The active player resigns. The game ends immediately.
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/gameId'
|
||||
responses:
|
||||
'200':
|
||||
description: Resignation accepted
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/OkResponse'
|
||||
'400':
|
||||
$ref: '#/components/responses/BadRequest'
|
||||
'404':
|
||||
$ref: '#/components/responses/NotFound'
|
||||
'429':
|
||||
$ref: '#/components/responses/TooManyRequests'
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Move-making
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
/api/board/game/{gameId}/move/{uci}:
|
||||
post:
|
||||
operationId: makeMove
|
||||
tags: [move]
|
||||
summary: Make a move
|
||||
description: |
|
||||
Submit a move in UCI notation. The move must be legal for the side
|
||||
currently to move.
|
||||
|
||||
For promotion moves include the target piece as the fifth character:
|
||||
`e7e8q`, `a2a1r`, etc.
|
||||
|
||||
If the move results in a pawn reaching the back rank and no promotion
|
||||
character is supplied, the game enters `promotionPending` status and
|
||||
the move is not yet applied — resubmit with the promotion character.
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/gameId'
|
||||
- name: uci
|
||||
in: path
|
||||
required: true
|
||||
description: Move in UCI notation (e.g. `e2e4`, `e7e8q`)
|
||||
schema:
|
||||
type: string
|
||||
pattern: '^[a-h][1-8][a-h][1-8][qrbn]?$'
|
||||
example: e2e4
|
||||
responses:
|
||||
'200':
|
||||
description: Move applied — returns updated game state
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/GameState'
|
||||
'400':
|
||||
$ref: '#/components/responses/BadRequest'
|
||||
'404':
|
||||
$ref: '#/components/responses/NotFound'
|
||||
'429':
|
||||
$ref: '#/components/responses/TooManyRequests'
|
||||
|
||||
/api/board/game/{gameId}/moves:
|
||||
get:
|
||||
operationId: getLegalMoves
|
||||
tags: [move]
|
||||
summary: Get legal moves
|
||||
description: |
|
||||
Returns all legal moves for the side currently to move.
|
||||
Optionally filter to moves originating from a single square.
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/gameId'
|
||||
- name: square
|
||||
in: query
|
||||
required: false
|
||||
description: Filter to moves from this square (e.g. `e2`)
|
||||
schema:
|
||||
type: string
|
||||
pattern: '^[a-h][1-8]$'
|
||||
example: e2
|
||||
responses:
|
||||
'200':
|
||||
description: List of legal moves
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/LegalMovesResponse'
|
||||
'404':
|
||||
$ref: '#/components/responses/NotFound'
|
||||
'429':
|
||||
$ref: '#/components/responses/TooManyRequests'
|
||||
|
||||
/api/board/game/{gameId}/undo:
|
||||
post:
|
||||
operationId: undoMove
|
||||
tags: [move]
|
||||
summary: Undo the last move
|
||||
description: Reverts the most recent move. Returns the updated game state.
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/gameId'
|
||||
responses:
|
||||
'200':
|
||||
description: Move undone
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/GameState'
|
||||
'400':
|
||||
description: No moves to undo
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/ApiError'
|
||||
'404':
|
||||
$ref: '#/components/responses/NotFound'
|
||||
'429':
|
||||
$ref: '#/components/responses/TooManyRequests'
|
||||
|
||||
/api/board/game/{gameId}/redo:
|
||||
post:
|
||||
operationId: redoMove
|
||||
tags: [move]
|
||||
summary: Redo a previously undone move
|
||||
description: Re-applies the next move in the undo stack. Returns the updated game state.
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/gameId'
|
||||
responses:
|
||||
'200':
|
||||
description: Move redone
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/GameState'
|
||||
'400':
|
||||
description: No moves to redo
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/ApiError'
|
||||
'404':
|
||||
$ref: '#/components/responses/NotFound'
|
||||
'429':
|
||||
$ref: '#/components/responses/TooManyRequests'
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Draw handling
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
/api/board/game/{gameId}/draw/{action}:
|
||||
post:
|
||||
operationId: drawAction
|
||||
tags: [draw]
|
||||
summary: Offer, accept, decline, or claim a draw
|
||||
description: |
|
||||
Perform a draw-related action:
|
||||
|
||||
| Action | Description |
|
||||
|-----------|-------------|
|
||||
| `offer` | Offer a draw to the opponent |
|
||||
| `accept` | Accept the opponent's draw offer |
|
||||
| `decline` | Decline the opponent's draw offer |
|
||||
| `claim` | Claim a draw under the fifty-move rule (only valid when `status` is `fiftyMoveAvailable`) |
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/gameId'
|
||||
- name: action
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
enum: [offer, accept, decline, claim]
|
||||
responses:
|
||||
'200':
|
||||
description: Action accepted
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/OkResponse'
|
||||
'400':
|
||||
$ref: '#/components/responses/BadRequest'
|
||||
'404':
|
||||
$ref: '#/components/responses/NotFound'
|
||||
'429':
|
||||
$ref: '#/components/responses/TooManyRequests'
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Import
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
/api/board/game/import/fen:
|
||||
post:
|
||||
operationId: importFen
|
||||
tags: [import]
|
||||
summary: Load a position from FEN
|
||||
description: |
|
||||
Creates a new game from a FEN string. The game starts at the position
|
||||
described by the FEN; move history prior to that position is not
|
||||
available.
|
||||
security:
|
||||
- bearerAuth: []
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/ImportFenRequest'
|
||||
responses:
|
||||
'201':
|
||||
description: Game created from FEN
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/GameFull'
|
||||
'400':
|
||||
$ref: '#/components/responses/BadRequest'
|
||||
'429':
|
||||
$ref: '#/components/responses/TooManyRequests'
|
||||
|
||||
/api/board/game/import/pgn:
|
||||
post:
|
||||
operationId: importPgn
|
||||
tags: [import]
|
||||
summary: Load a game from PGN
|
||||
description: |
|
||||
Creates a new game by replaying all moves in a PGN string. The game
|
||||
starts at the position after the final move in the PGN; undo is
|
||||
available for every replayed move.
|
||||
security:
|
||||
- bearerAuth: []
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/ImportPgnRequest'
|
||||
responses:
|
||||
'201':
|
||||
description: Game created from PGN
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/GameFull'
|
||||
'400':
|
||||
$ref: '#/components/responses/BadRequest'
|
||||
'429':
|
||||
$ref: '#/components/responses/TooManyRequests'
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Export
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
/api/board/game/{gameId}/export/fen:
|
||||
get:
|
||||
operationId: exportFen
|
||||
tags: [export]
|
||||
summary: Export current position as FEN
|
||||
description: Returns the FEN string representing the current board position.
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/gameId'
|
||||
responses:
|
||||
'200':
|
||||
description: FEN string
|
||||
content:
|
||||
text/plain:
|
||||
schema:
|
||||
type: string
|
||||
example: rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq e3 0 1
|
||||
'404':
|
||||
$ref: '#/components/responses/NotFound'
|
||||
'429':
|
||||
$ref: '#/components/responses/TooManyRequests'
|
||||
|
||||
/api/board/game/{gameId}/export/pgn:
|
||||
get:
|
||||
operationId: exportPgn
|
||||
tags: [export]
|
||||
summary: Export game as PGN
|
||||
description: Returns the full PGN for the game including headers and move text.
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/gameId'
|
||||
responses:
|
||||
'200':
|
||||
description: PGN text
|
||||
content:
|
||||
application/x-chess-pgn:
|
||||
schema:
|
||||
type: string
|
||||
example: |
|
||||
[Event "NowChess game"]
|
||||
[White "Player1"]
|
||||
[Black "Player2"]
|
||||
[Result "*"]
|
||||
|
||||
1. e4 e5 2. Nf3 *
|
||||
'404':
|
||||
$ref: '#/components/responses/NotFound'
|
||||
'429':
|
||||
$ref: '#/components/responses/TooManyRequests'
|
||||
|
||||
# =============================================================================
|
||||
# Components
|
||||
# =============================================================================
|
||||
|
||||
components:
|
||||
|
||||
securitySchemes:
|
||||
bearerAuth:
|
||||
type: http
|
||||
scheme: bearer
|
||||
description: 'Personal access token — `Authorization: Bearer <token>`'
|
||||
|
||||
parameters:
|
||||
gameId:
|
||||
name: gameId
|
||||
in: path
|
||||
required: true
|
||||
description: 8-character alphanumeric game ID (e.g. `Qa7FJNk2`)
|
||||
schema:
|
||||
type: string
|
||||
pattern: '^[A-Za-z0-9]{8}$'
|
||||
example: Qa7FJNk2
|
||||
|
||||
responses:
|
||||
BadRequest:
|
||||
description: Invalid input
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/ApiError'
|
||||
Unauthorized:
|
||||
description: Missing or invalid authentication token
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/ApiError'
|
||||
NotFound:
|
||||
description: Game not found
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/ApiError'
|
||||
TooManyRequests:
|
||||
description: Rate limit exceeded — see `Retry-After` header
|
||||
headers:
|
||||
Retry-After:
|
||||
description: Seconds to wait before retrying
|
||||
schema:
|
||||
type: integer
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/ApiError'
|
||||
|
||||
schemas:
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# Requests
|
||||
# -------------------------------------------------------------------------
|
||||
|
||||
CreateGameRequest:
|
||||
type: object
|
||||
description: Parameters for creating a new game. All fields are optional.
|
||||
properties:
|
||||
white:
|
||||
$ref: '#/components/schemas/PlayerInfo'
|
||||
black:
|
||||
$ref: '#/components/schemas/PlayerInfo'
|
||||
|
||||
ImportFenRequest:
|
||||
type: object
|
||||
required: [fen]
|
||||
properties:
|
||||
fen:
|
||||
type: string
|
||||
description: Complete FEN string (6 fields)
|
||||
example: rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
|
||||
white:
|
||||
$ref: '#/components/schemas/PlayerInfo'
|
||||
black:
|
||||
$ref: '#/components/schemas/PlayerInfo'
|
||||
|
||||
ImportPgnRequest:
|
||||
type: object
|
||||
required: [pgn]
|
||||
properties:
|
||||
pgn:
|
||||
type: string
|
||||
description: PGN text (headers and move list)
|
||||
example: "1. e4 e5 2. Nf3 Nc6 *"
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# Game state
|
||||
# -------------------------------------------------------------------------
|
||||
|
||||
GameFull:
|
||||
type: object
|
||||
description: Complete game information including players and current state.
|
||||
required: [gameId, white, black, state]
|
||||
properties:
|
||||
gameId:
|
||||
type: string
|
||||
description: Unique 8-character game identifier
|
||||
example: Qa7FJNk2
|
||||
white:
|
||||
$ref: '#/components/schemas/PlayerInfo'
|
||||
black:
|
||||
$ref: '#/components/schemas/PlayerInfo'
|
||||
state:
|
||||
$ref: '#/components/schemas/GameState'
|
||||
|
||||
GameState:
|
||||
type: object
|
||||
description: |
|
||||
The current game state. Included in `GameFull` and returned by move
|
||||
endpoints and stream events.
|
||||
required: [fen, pgn, turn, status, moves, undoAvailable, redoAvailable]
|
||||
properties:
|
||||
fen:
|
||||
type: string
|
||||
description: FEN string for the current position
|
||||
example: rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq e3 0 1
|
||||
pgn:
|
||||
type: string
|
||||
description: PGN move text for the full game so far
|
||||
example: "1. e4"
|
||||
turn:
|
||||
type: string
|
||||
enum: [white, black]
|
||||
description: The side to move
|
||||
status:
|
||||
$ref: '#/components/schemas/GameStatus'
|
||||
winner:
|
||||
type: string
|
||||
enum: [white, black]
|
||||
description: Set when `status` is `checkmate` or `resign`
|
||||
nullable: true
|
||||
moves:
|
||||
type: array
|
||||
description: All moves played so far, in UCI notation
|
||||
items:
|
||||
type: string
|
||||
example: [e2e4, e7e5, g1f3]
|
||||
undoAvailable:
|
||||
type: boolean
|
||||
description: Whether `POST /undo` is currently valid
|
||||
redoAvailable:
|
||||
type: boolean
|
||||
description: Whether `POST /redo` is currently valid
|
||||
|
||||
GameStatus:
|
||||
type: string
|
||||
description: |
|
||||
Current game status:
|
||||
|
||||
| Value | Meaning |
|
||||
|-------|---------|
|
||||
| `started` | Game in progress, no special condition |
|
||||
| `check` | Side to move is in check |
|
||||
| `checkmate` | Side to move is checkmated — game over |
|
||||
| `stalemate` | Side to move has no legal moves, not in check — game over (draw) |
|
||||
| `resign` | A player resigned — game over |
|
||||
| `draw` | Draw agreed or claimed — game over |
|
||||
| `drawOffered` | Waiting for the opponent to accept or decline a draw offer |
|
||||
| `fiftyMoveAvailable` | Fifty-move rule threshold reached; active player may claim draw |
|
||||
| `promotionPending` | A pawn reached the back rank; awaiting promotion piece selection |
|
||||
| `insufficientMaterial` | Neither side has enough pieces to deliver checkmate — game over (draw) |
|
||||
enum:
|
||||
- started
|
||||
- check
|
||||
- checkmate
|
||||
- stalemate
|
||||
- resign
|
||||
- draw
|
||||
- drawOffered
|
||||
- fiftyMoveAvailable
|
||||
- promotionPending
|
||||
- insufficientMaterial
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# Moves
|
||||
# -------------------------------------------------------------------------
|
||||
|
||||
LegalMovesResponse:
|
||||
type: object
|
||||
required: [moves]
|
||||
properties:
|
||||
moves:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/LegalMove'
|
||||
|
||||
LegalMove:
|
||||
type: object
|
||||
required: [from, to, uci, moveType]
|
||||
properties:
|
||||
from:
|
||||
type: string
|
||||
description: Origin square in algebraic notation
|
||||
example: e2
|
||||
to:
|
||||
type: string
|
||||
description: Destination square in algebraic notation
|
||||
example: e4
|
||||
uci:
|
||||
type: string
|
||||
description: Full move in UCI notation
|
||||
example: e2e4
|
||||
moveType:
|
||||
$ref: '#/components/schemas/MoveType'
|
||||
promotion:
|
||||
type: string
|
||||
enum: [queen, rook, bishop, knight]
|
||||
description: Target piece for promotion moves
|
||||
nullable: true
|
||||
|
||||
MoveType:
|
||||
type: string
|
||||
description: Classification of the move
|
||||
enum:
|
||||
- normal
|
||||
- capture
|
||||
- castleKingside
|
||||
- castleQueenside
|
||||
- enPassant
|
||||
- promotion
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# Streaming events
|
||||
# -------------------------------------------------------------------------
|
||||
|
||||
GameFullEvent:
|
||||
type: object
|
||||
description: |
|
||||
First event on a game stream. Contains the complete game snapshot.
|
||||
required: [type, game]
|
||||
properties:
|
||||
type:
|
||||
type: string
|
||||
enum: [gameFull]
|
||||
game:
|
||||
$ref: '#/components/schemas/GameFull'
|
||||
|
||||
GameStateEvent:
|
||||
type: object
|
||||
description: |
|
||||
Emitted on a game stream whenever the game state changes (move played,
|
||||
draw offered, game over, etc.).
|
||||
required: [type, state]
|
||||
properties:
|
||||
type:
|
||||
type: string
|
||||
enum: [gameState]
|
||||
state:
|
||||
$ref: '#/components/schemas/GameState'
|
||||
|
||||
ErrorEvent:
|
||||
type: object
|
||||
description: Emitted on a game stream when an error occurs.
|
||||
required: [type, error]
|
||||
properties:
|
||||
type:
|
||||
type: string
|
||||
enum: [error]
|
||||
error:
|
||||
$ref: '#/components/schemas/ApiError'
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# Shared types
|
||||
# -------------------------------------------------------------------------
|
||||
|
||||
PlayerInfo:
|
||||
type: object
|
||||
required: [id, displayName]
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
description: Unique player identifier
|
||||
example: player1
|
||||
displayName:
|
||||
type: string
|
||||
description: Human-readable display name
|
||||
example: Alice
|
||||
|
||||
OkResponse:
|
||||
type: object
|
||||
required: [ok]
|
||||
properties:
|
||||
ok:
|
||||
type: boolean
|
||||
enum: [true]
|
||||
|
||||
ApiError:
|
||||
type: object
|
||||
required: [code, message]
|
||||
properties:
|
||||
code:
|
||||
type: string
|
||||
description: Machine-readable error code
|
||||
example: INVALID_MOVE
|
||||
message:
|
||||
type: string
|
||||
description: Human-readable error description
|
||||
example: e2e5 is not a legal move
|
||||
field:
|
||||
type: string
|
||||
description: Request field that caused the error, if applicable
|
||||
example: uci
|
||||
nullable: true
|
||||
@@ -1,396 +0,0 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"id": "claude_md_project_instructions",
|
||||
"label": "Now-Chess Project Instructions (CLAUDE.md)",
|
||||
"file_type": "document",
|
||||
"source_file": "CLAUDE.md",
|
||||
"source_location": null,
|
||||
"source_url": null,
|
||||
"captured_at": null,
|
||||
"author": null,
|
||||
"contributor": null
|
||||
},
|
||||
{
|
||||
"id": "agents_md_config",
|
||||
"label": "Agents Configuration (AGENTS.md)",
|
||||
"file_type": "document",
|
||||
"source_file": "AGENTS.md",
|
||||
"source_location": null,
|
||||
"source_url": null,
|
||||
"captured_at": null,
|
||||
"author": null,
|
||||
"contributor": null
|
||||
},
|
||||
{
|
||||
"id": "api_changelog",
|
||||
"label": "API Module Changelog",
|
||||
"file_type": "document",
|
||||
"source_file": "modules/api/CHANGELOG.md",
|
||||
"source_location": null,
|
||||
"source_url": null,
|
||||
"captured_at": null,
|
||||
"author": null,
|
||||
"contributor": null
|
||||
},
|
||||
{
|
||||
"id": "ui_changelog",
|
||||
"label": "UI Module Changelog",
|
||||
"file_type": "document",
|
||||
"source_file": "modules/ui/CHANGELOG.md",
|
||||
"source_location": null,
|
||||
"source_url": null,
|
||||
"captured_at": null,
|
||||
"author": null,
|
||||
"contributor": null
|
||||
},
|
||||
{
|
||||
"id": "rule_changelog",
|
||||
"label": "Rule Module Changelog",
|
||||
"file_type": "document",
|
||||
"source_file": "modules/rule/CHANGELOG.md",
|
||||
"source_location": null,
|
||||
"source_url": null,
|
||||
"captured_at": null,
|
||||
"author": null,
|
||||
"contributor": null
|
||||
},
|
||||
{
|
||||
"id": "io_changelog",
|
||||
"label": "IO Module Changelog",
|
||||
"file_type": "document",
|
||||
"source_file": "modules/io/CHANGELOG.md",
|
||||
"source_location": null,
|
||||
"source_url": null,
|
||||
"captured_at": null,
|
||||
"author": null,
|
||||
"contributor": null
|
||||
},
|
||||
{
|
||||
"id": "core_changelog",
|
||||
"label": "Core Module Changelog",
|
||||
"file_type": "document",
|
||||
"source_file": "modules/core/CHANGELOG.md",
|
||||
"source_location": null,
|
||||
"source_url": null,
|
||||
"captured_at": null,
|
||||
"author": null,
|
||||
"contributor": null
|
||||
},
|
||||
{
|
||||
"id": "bot_python_readme",
|
||||
"label": "Bot Python Module README",
|
||||
"file_type": "document",
|
||||
"source_file": "modules/bot/python/README.md",
|
||||
"source_location": null,
|
||||
"source_url": null,
|
||||
"captured_at": null,
|
||||
"author": null,
|
||||
"contributor": null
|
||||
},
|
||||
{
|
||||
"id": "bot_python_requirements",
|
||||
"label": "Bot Python Requirements",
|
||||
"file_type": "document",
|
||||
"source_file": "modules/bot/python/requirements.txt",
|
||||
"source_location": null,
|
||||
"source_url": null,
|
||||
"captured_at": null,
|
||||
"author": null,
|
||||
"contributor": null
|
||||
},
|
||||
{
|
||||
"id": "bot_python_positions",
|
||||
"label": "Bot Python Positions Dataset",
|
||||
"file_type": "document",
|
||||
"source_file": "modules/bot/python/data/positions.txt",
|
||||
"source_location": null,
|
||||
"source_url": null,
|
||||
"captured_at": null,
|
||||
"author": null,
|
||||
"contributor": null
|
||||
},
|
||||
{
|
||||
"id": "security_doc",
|
||||
"label": "Security Documentation",
|
||||
"file_type": "document",
|
||||
"source_file": "docs/Security.md",
|
||||
"source_location": null,
|
||||
"source_url": null,
|
||||
"captured_at": null,
|
||||
"author": null,
|
||||
"contributor": null
|
||||
},
|
||||
{
|
||||
"id": "claude_skills_doc",
|
||||
"label": "Claude Skills Documentation",
|
||||
"file_type": "document",
|
||||
"source_file": "docs/Claude-Skills.md",
|
||||
"source_location": null,
|
||||
"source_url": null,
|
||||
"captured_at": null,
|
||||
"author": null,
|
||||
"contributor": null
|
||||
},
|
||||
{
|
||||
"id": "idea_doc",
|
||||
"label": "Idea Documentation",
|
||||
"file_type": "document",
|
||||
"source_file": "docs/idea.md",
|
||||
"source_location": null,
|
||||
"source_url": null,
|
||||
"captured_at": null,
|
||||
"author": null,
|
||||
"contributor": null
|
||||
},
|
||||
{
|
||||
"id": "arabian_chess_license",
|
||||
"label": "Arabian Chess License",
|
||||
"file_type": "document",
|
||||
"source_file": "ARABIAN CHESS/license.txt",
|
||||
"source_location": null,
|
||||
"source_url": null,
|
||||
"captured_at": null,
|
||||
"author": null,
|
||||
"contributor": null
|
||||
},
|
||||
{
|
||||
"id": "ui_board_sprite_black",
|
||||
"label": "UI Board Square Black Sprite",
|
||||
"file_type": "image",
|
||||
"source_file": "modules/ui/src/main/resources/sprites/board/board_square_black.png",
|
||||
"source_location": null,
|
||||
"source_url": null,
|
||||
"captured_at": null,
|
||||
"author": null,
|
||||
"contributor": null
|
||||
},
|
||||
{
|
||||
"id": "ui_board_sprite_white",
|
||||
"label": "UI Board Square White Sprite",
|
||||
"file_type": "image",
|
||||
"source_file": "modules/ui/src/main/resources/sprites/board/board_square_white.png",
|
||||
"source_location": null,
|
||||
"source_url": null,
|
||||
"captured_at": null,
|
||||
"author": null,
|
||||
"contributor": null
|
||||
},
|
||||
{
|
||||
"id": "ui_board_sprite_bottom",
|
||||
"label": "UI Board Bottom Sprite",
|
||||
"file_type": "image",
|
||||
"source_file": "modules/ui/src/main/resources/sprites/board/board_bottom.png",
|
||||
"source_location": null,
|
||||
"source_url": null,
|
||||
"captured_at": null,
|
||||
"author": null,
|
||||
"contributor": null
|
||||
},
|
||||
{
|
||||
"id": "ui_piece_sprite_black_rook",
|
||||
"label": "UI Black Rook Piece Sprite",
|
||||
"file_type": "image",
|
||||
"source_file": "modules/ui/src/main/resources/sprites/pieces/black_rook.png",
|
||||
"source_location": null,
|
||||
"source_url": null,
|
||||
"captured_at": null,
|
||||
"author": null,
|
||||
"contributor": null
|
||||
},
|
||||
{
|
||||
"id": "ui_piece_sprite_white_pawn",
|
||||
"label": "UI White Pawn Piece Sprite",
|
||||
"file_type": "image",
|
||||
"source_file": "modules/ui/src/main/resources/sprites/pieces/white_pawn.png",
|
||||
"source_location": null,
|
||||
"source_url": null,
|
||||
"captured_at": null,
|
||||
"author": null,
|
||||
"contributor": null
|
||||
},
|
||||
{
|
||||
"id": "ui_piece_sprite_white_knight",
|
||||
"label": "UI White Knight Piece Sprite",
|
||||
"file_type": "image",
|
||||
"source_file": "modules/ui/src/main/resources/sprites/pieces/white_knight.png",
|
||||
"source_location": null,
|
||||
"source_url": null,
|
||||
"captured_at": null,
|
||||
"author": null,
|
||||
"contributor": null
|
||||
},
|
||||
{
|
||||
"id": "ui_piece_sprite_black_knight",
|
||||
"label": "UI Black Knight Piece Sprite",
|
||||
"file_type": "image",
|
||||
"source_file": "modules/ui/src/main/resources/sprites/pieces/black_knight.png",
|
||||
"source_location": null,
|
||||
"source_url": null,
|
||||
"captured_at": null,
|
||||
"author": null,
|
||||
"contributor": null
|
||||
}
|
||||
],
|
||||
"edges": [
|
||||
{
|
||||
"source": "claude_md_project_instructions",
|
||||
"target": "agents_md_config",
|
||||
"relation": "references",
|
||||
"confidence": "EXTRACTED",
|
||||
"confidence_score": 1.0,
|
||||
"source_file": "CLAUDE.md",
|
||||
"source_location": null,
|
||||
"weight": 1.0
|
||||
},
|
||||
{
|
||||
"source": "bot_python_readme",
|
||||
"target": "bot_python_requirements",
|
||||
"relation": "references",
|
||||
"confidence": "INFERRED",
|
||||
"confidence_score": 0.85,
|
||||
"source_file": "modules/bot/python/README.md",
|
||||
"source_location": null,
|
||||
"weight": 1.0
|
||||
},
|
||||
{
|
||||
"source": "bot_python_readme",
|
||||
"target": "bot_python_positions",
|
||||
"relation": "references",
|
||||
"confidence": "INFERRED",
|
||||
"confidence_score": 0.8,
|
||||
"source_file": "modules/bot/python/README.md",
|
||||
"source_location": null,
|
||||
"weight": 1.0
|
||||
},
|
||||
{
|
||||
"source": "ui_changelog",
|
||||
"target": "ui_board_sprite_black",
|
||||
"relation": "references",
|
||||
"confidence": "INFERRED",
|
||||
"confidence_score": 0.75,
|
||||
"source_file": "modules/ui/CHANGELOG.md",
|
||||
"source_location": null,
|
||||
"weight": 1.0
|
||||
},
|
||||
{
|
||||
"source": "ui_changelog",
|
||||
"target": "ui_board_sprite_white",
|
||||
"relation": "references",
|
||||
"confidence": "INFERRED",
|
||||
"confidence_score": 0.75,
|
||||
"source_file": "modules/ui/CHANGELOG.md",
|
||||
"source_location": null,
|
||||
"weight": 1.0
|
||||
},
|
||||
{
|
||||
"source": "ui_changelog",
|
||||
"target": "ui_piece_sprite_black_rook",
|
||||
"relation": "references",
|
||||
"confidence": "INFERRED",
|
||||
"confidence_score": 0.75,
|
||||
"source_file": "modules/ui/CHANGELOG.md",
|
||||
"source_location": null,
|
||||
"weight": 1.0
|
||||
},
|
||||
{
|
||||
"source": "ui_changelog",
|
||||
"target": "ui_piece_sprite_white_pawn",
|
||||
"relation": "references",
|
||||
"confidence": "INFERRED",
|
||||
"confidence_score": 0.75,
|
||||
"source_file": "modules/ui/CHANGELOG.md",
|
||||
"source_location": null,
|
||||
"weight": 1.0
|
||||
},
|
||||
{
|
||||
"source": "ui_changelog",
|
||||
"target": "ui_piece_sprite_white_knight",
|
||||
"relation": "references",
|
||||
"confidence": "INFERRED",
|
||||
"confidence_score": 0.75,
|
||||
"source_file": "modules/ui/CHANGELOG.md",
|
||||
"source_location": null,
|
||||
"weight": 1.0
|
||||
},
|
||||
{
|
||||
"source": "ui_changelog",
|
||||
"target": "ui_piece_sprite_black_knight",
|
||||
"relation": "references",
|
||||
"confidence": "INFERRED",
|
||||
"confidence_score": 0.75,
|
||||
"source_file": "modules/ui/CHANGELOG.md",
|
||||
"source_location": null,
|
||||
"weight": 1.0
|
||||
},
|
||||
{
|
||||
"source": "ui_changelog",
|
||||
"target": "ui_board_sprite_bottom",
|
||||
"relation": "references",
|
||||
"confidence": "INFERRED",
|
||||
"confidence_score": 0.75,
|
||||
"source_file": "modules/ui/CHANGELOG.md",
|
||||
"source_location": null,
|
||||
"weight": 1.0
|
||||
},
|
||||
{
|
||||
"source": "claude_skills_doc",
|
||||
"target": "agents_md_config",
|
||||
"relation": "references",
|
||||
"confidence": "INFERRED",
|
||||
"confidence_score": 0.7,
|
||||
"source_file": "docs/Claude-Skills.md",
|
||||
"source_location": null,
|
||||
"weight": 1.0
|
||||
}
|
||||
],
|
||||
"hyperedges": [
|
||||
{
|
||||
"id": "module_changelogs",
|
||||
"label": "Module Changelog Documentation",
|
||||
"nodes": [
|
||||
"api_changelog",
|
||||
"ui_changelog",
|
||||
"rule_changelog",
|
||||
"io_changelog",
|
||||
"core_changelog"
|
||||
],
|
||||
"relation": "form",
|
||||
"confidence": "EXTRACTED",
|
||||
"confidence_score": 1.0,
|
||||
"source_file": "modules"
|
||||
},
|
||||
{
|
||||
"id": "ui_sprite_assets",
|
||||
"label": "UI Sprite Asset Collection",
|
||||
"nodes": [
|
||||
"ui_board_sprite_black",
|
||||
"ui_board_sprite_white",
|
||||
"ui_board_sprite_bottom",
|
||||
"ui_piece_sprite_black_rook",
|
||||
"ui_piece_sprite_white_pawn",
|
||||
"ui_piece_sprite_white_knight",
|
||||
"ui_piece_sprite_black_knight"
|
||||
],
|
||||
"relation": "participate_in",
|
||||
"confidence": "EXTRACTED",
|
||||
"confidence_score": 1.0,
|
||||
"source_file": "modules/ui/src/main/resources/sprites"
|
||||
},
|
||||
{
|
||||
"id": "bot_python_components",
|
||||
"label": "Bot Python Implementation Components",
|
||||
"nodes": [
|
||||
"bot_python_readme",
|
||||
"bot_python_requirements",
|
||||
"bot_python_positions"
|
||||
],
|
||||
"relation": "participate_in",
|
||||
"confidence": "EXTRACTED",
|
||||
"confidence_score": 1.0,
|
||||
"source_file": "modules/bot/python"
|
||||
}
|
||||
],
|
||||
"input_tokens": 0,
|
||||
"output_tokens": 0
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
/usr/bin/python
|
||||
@@ -1,413 +0,0 @@
|
||||
# Graph Report - . (2026-04-12)
|
||||
|
||||
## Corpus Check
|
||||
- 78 files · ~273,497 words
|
||||
- Verdict: corpus is large enough that graph structure adds value.
|
||||
|
||||
## Summary
|
||||
- 480 nodes · 549 edges · 74 communities detected
|
||||
- Extraction: 100% EXTRACTED · 0% INFERRED · 0% AMBIGUOUS
|
||||
- Token cost: 0 input · 0 output
|
||||
|
||||
## God Nodes (most connected - your core abstractions)
|
||||
1. `DefaultRules` - 35 edges
|
||||
2. `GameEngine` - 29 edges
|
||||
3. `ChessBoardView` - 17 edges
|
||||
4. `FenParserFastParse` - 17 edges
|
||||
5. `FenParserCombinators` - 16 edges
|
||||
6. `PgnParser` - 14 edges
|
||||
7. `FenParser` - 9 edges
|
||||
8. `CommandInvoker` - 9 edges
|
||||
9. `GameContext` - 8 edges
|
||||
10. `FenExporter` - 7 edges
|
||||
|
||||
## Surprising Connections (you probably didn't know these)
|
||||
- None detected - all connections are within the same source files.
|
||||
|
||||
## Communities
|
||||
|
||||
### Community 0 - "Community 0"
|
||||
Cohesion: 0.11
|
||||
Nodes (2): CastlingMove, DefaultRules
|
||||
|
||||
### Community 1 - "Community 1"
|
||||
Cohesion: 0.09
|
||||
Nodes (17): ClassGap, _compact_ranges(), _find_scoverage_xml(), format_agent(), format_json(), format_markdown(), format_module_gaps(), main() (+9 more)
|
||||
|
||||
### Community 2 - "Community 2"
|
||||
Cohesion: 0.11
|
||||
Nodes (2): GameEngine, PendingPromotion
|
||||
|
||||
### Community 3 - "Community 3"
|
||||
Cohesion: 0.09
|
||||
Nodes (4): FenParserCombinators, EmptyToken, FenParserSupport, PieceToken
|
||||
|
||||
### Community 4 - "Community 4"
|
||||
Cohesion: 0.14
|
||||
Nodes (9): format_module(), load_module(), main(), ModuleResult, parse_suite_xml(), run(), SuiteResult, TestCase (+1 more)
|
||||
|
||||
### Community 5 - "Community 5"
|
||||
Cohesion: 0.2
|
||||
Nodes (1): ChessBoardView
|
||||
|
||||
### Community 6 - "Community 6"
|
||||
Cohesion: 0.15
|
||||
Nodes (1): FenParserFastParse
|
||||
|
||||
### Community 7 - "Community 7"
|
||||
Cohesion: 0.12
|
||||
Nodes (7): InvalidFormat, InvalidMove, MoveCommand, MoveResult, QuitCommand, ResetCommand, Successful
|
||||
|
||||
### Community 8 - "Community 8"
|
||||
Cohesion: 0.12
|
||||
Nodes (12): BoardResetEvent, CheckDetectedEvent, CheckmateEvent, DrawClaimedEvent, FiftyMoveRuleAvailableEvent, InvalidMoveEvent, MoveExecutedEvent, MoveRedoneEvent (+4 more)
|
||||
|
||||
### Community 9 - "Community 9"
|
||||
Cohesion: 0.26
|
||||
Nodes (2): PgnGame, PgnParser
|
||||
|
||||
### Community 10 - "Community 10"
|
||||
Cohesion: 0.15
|
||||
Nodes (3): candidateMoves(), GameEngineIntegrationTest, legalMoves()
|
||||
|
||||
### Community 11 - "Community 11"
|
||||
Cohesion: 0.14
|
||||
Nodes (1): GameEnginePromotionTest
|
||||
|
||||
### Community 12 - "Community 12"
|
||||
Cohesion: 0.15
|
||||
Nodes (2): EngineTestHelpers, MockObserver
|
||||
|
||||
### Community 13 - "Community 13"
|
||||
Cohesion: 0.17
|
||||
Nodes (3): CommandInvokerBranchTest, ConditionalFailCommand, FailingCommand
|
||||
|
||||
### Community 14 - "Community 14"
|
||||
Cohesion: 0.36
|
||||
Nodes (1): FenParser
|
||||
|
||||
### Community 15 - "Community 15"
|
||||
Cohesion: 0.22
|
||||
Nodes (1): CommandInvoker
|
||||
|
||||
### Community 16 - "Community 16"
|
||||
Cohesion: 0.31
|
||||
Nodes (5): applyMove(), Board, removed(), updated(), withMove()
|
||||
|
||||
### Community 17 - "Community 17"
|
||||
Cohesion: 0.22
|
||||
Nodes (1): GameContext
|
||||
|
||||
### Community 18 - "Community 18"
|
||||
Cohesion: 0.25
|
||||
Nodes (6): ApiError, ApiResponse, Failure, PagedResponse, Pagination, Success
|
||||
|
||||
### Community 19 - "Community 19"
|
||||
Cohesion: 0.43
|
||||
Nodes (1): FenExporter
|
||||
|
||||
### Community 20 - "Community 20"
|
||||
Cohesion: 0.29
|
||||
Nodes (1): CastlingRights
|
||||
|
||||
### Community 21 - "Community 21"
|
||||
Cohesion: 0.4
|
||||
Nodes (2): ChessGUIApp, ChessGUILauncher
|
||||
|
||||
### Community 22 - "Community 22"
|
||||
Cohesion: 0.5
|
||||
Nodes (2): offset(), Square
|
||||
|
||||
### Community 23 - "Community 23"
|
||||
Cohesion: 0.4
|
||||
Nodes (2): PlayerId, PlayerInfo
|
||||
|
||||
### Community 24 - "Community 24"
|
||||
Cohesion: 0.5
|
||||
Nodes (2): PieceSprites, SquareColors
|
||||
|
||||
### Community 25 - "Community 25"
|
||||
Cohesion: 0.6
|
||||
Nodes (1): TerminalUI
|
||||
|
||||
### Community 26 - "Community 26"
|
||||
Cohesion: 0.6
|
||||
Nodes (1): PgnExporter
|
||||
|
||||
### Community 27 - "Community 27"
|
||||
Cohesion: 0.67
|
||||
Nodes (1): GUIObserver
|
||||
|
||||
### Community 28 - "Community 28"
|
||||
Cohesion: 0.5
|
||||
Nodes (1): DefaultRulesStateTransitionsTest
|
||||
|
||||
### Community 29 - "Community 29"
|
||||
Cohesion: 0.5
|
||||
Nodes (2): EndingMockObserver, GameEngineGameEndingTest
|
||||
|
||||
### Community 30 - "Community 30"
|
||||
Cohesion: 0.5
|
||||
Nodes (2): GameEngineLoadGameTest, MockObserver
|
||||
|
||||
### Community 31 - "Community 31"
|
||||
Cohesion: 0.5
|
||||
Nodes (1): CommandInvokerTest
|
||||
|
||||
### Community 32 - "Community 32"
|
||||
Cohesion: 0.67
|
||||
Nodes (1): Parser
|
||||
|
||||
### Community 33 - "Community 33"
|
||||
Cohesion: 0.67
|
||||
Nodes (0):
|
||||
|
||||
### Community 34 - "Community 34"
|
||||
Cohesion: 0.67
|
||||
Nodes (1): Main
|
||||
|
||||
### Community 35 - "Community 35"
|
||||
Cohesion: 0.67
|
||||
Nodes (1): Renderer
|
||||
|
||||
### Community 36 - "Community 36"
|
||||
Cohesion: 0.67
|
||||
Nodes (1): PgnExporterTest
|
||||
|
||||
### Community 37 - "Community 37"
|
||||
Cohesion: 0.67
|
||||
Nodes (1): FenExporterTest
|
||||
|
||||
### Community 38 - "Community 38"
|
||||
Cohesion: 0.67
|
||||
Nodes (1): GameEngineNotationTest
|
||||
|
||||
### Community 39 - "Community 39"
|
||||
Cohesion: 0.67
|
||||
Nodes (1): MoveCommandTest
|
||||
|
||||
### Community 40 - "Community 40"
|
||||
Cohesion: 1.0
|
||||
Nodes (1): PieceTest
|
||||
|
||||
### Community 41 - "Community 41"
|
||||
Cohesion: 1.0
|
||||
Nodes (1): PieceTypeTest
|
||||
|
||||
### Community 42 - "Community 42"
|
||||
Cohesion: 1.0
|
||||
Nodes (1): SquareTest
|
||||
|
||||
### Community 43 - "Community 43"
|
||||
Cohesion: 1.0
|
||||
Nodes (1): CastlingRightsTest
|
||||
|
||||
### Community 44 - "Community 44"
|
||||
Cohesion: 1.0
|
||||
Nodes (1): BoardTest
|
||||
|
||||
### Community 45 - "Community 45"
|
||||
Cohesion: 1.0
|
||||
Nodes (1): ColorTest
|
||||
|
||||
### Community 46 - "Community 46"
|
||||
Cohesion: 1.0
|
||||
Nodes (1): MoveTest
|
||||
|
||||
### Community 47 - "Community 47"
|
||||
Cohesion: 1.0
|
||||
Nodes (1): GameContextTest
|
||||
|
||||
### Community 48 - "Community 48"
|
||||
Cohesion: 1.0
|
||||
Nodes (1): ApiResponseTest
|
||||
|
||||
### Community 49 - "Community 49"
|
||||
Cohesion: 1.0
|
||||
Nodes (1): PlayerInfoTest
|
||||
|
||||
### Community 50 - "Community 50"
|
||||
Cohesion: 1.0
|
||||
Nodes (0):
|
||||
|
||||
### Community 51 - "Community 51"
|
||||
Cohesion: 1.0
|
||||
Nodes (1): Piece
|
||||
|
||||
### Community 52 - "Community 52"
|
||||
Cohesion: 1.0
|
||||
Nodes (1): Move
|
||||
|
||||
### Community 53 - "Community 53"
|
||||
Cohesion: 1.0
|
||||
Nodes (1): RendererAndUnicodeTest
|
||||
|
||||
### Community 54 - "Community 54"
|
||||
Cohesion: 1.0
|
||||
Nodes (0):
|
||||
|
||||
### Community 55 - "Community 55"
|
||||
Cohesion: 1.0
|
||||
Nodes (1): DefaultRulesTest
|
||||
|
||||
### Community 56 - "Community 56"
|
||||
Cohesion: 1.0
|
||||
Nodes (1): PgnParserTest
|
||||
|
||||
### Community 57 - "Community 57"
|
||||
Cohesion: 1.0
|
||||
Nodes (1): PgnValidatorTest
|
||||
|
||||
### Community 58 - "Community 58"
|
||||
Cohesion: 1.0
|
||||
Nodes (1): FenParserCombinatorsTest
|
||||
|
||||
### Community 59 - "Community 59"
|
||||
Cohesion: 1.0
|
||||
Nodes (1): FenParserTest
|
||||
|
||||
### Community 60 - "Community 60"
|
||||
Cohesion: 1.0
|
||||
Nodes (1): FenParserFastParseTest
|
||||
|
||||
### Community 61 - "Community 61"
|
||||
Cohesion: 1.0
|
||||
Nodes (1): ParserTest
|
||||
|
||||
### Community 62 - "Community 62"
|
||||
Cohesion: 1.0
|
||||
Nodes (1): GameEngineOutcomesTest
|
||||
|
||||
### Community 63 - "Community 63"
|
||||
Cohesion: 1.0
|
||||
Nodes (1): GameEngineSpecialMovesTest
|
||||
|
||||
### Community 64 - "Community 64"
|
||||
Cohesion: 1.0
|
||||
Nodes (1): GameEngineScenarioTest
|
||||
|
||||
### Community 65 - "Community 65"
|
||||
Cohesion: 1.0
|
||||
Nodes (1): CommandTest
|
||||
|
||||
### Community 66 - "Community 66"
|
||||
Cohesion: 1.0
|
||||
Nodes (0):
|
||||
|
||||
### Community 67 - "Community 67"
|
||||
Cohesion: 1.0
|
||||
Nodes (0):
|
||||
|
||||
### Community 68 - "Community 68"
|
||||
Cohesion: 1.0
|
||||
Nodes (0):
|
||||
|
||||
### Community 69 - "Community 69"
|
||||
Cohesion: 1.0
|
||||
Nodes (0):
|
||||
|
||||
### Community 70 - "Community 70"
|
||||
Cohesion: 1.0
|
||||
Nodes (0):
|
||||
|
||||
### Community 71 - "Community 71"
|
||||
Cohesion: 1.0
|
||||
Nodes (1): Strip the package prefix from the full method path.
|
||||
|
||||
### Community 72 - "Community 72"
|
||||
Cohesion: 1.0
|
||||
Nodes (1): Lines that are branch points and have at least one uncovered branch statement.
|
||||
|
||||
### Community 73 - "Community 73"
|
||||
Cohesion: 1.0
|
||||
Nodes (0):
|
||||
|
||||
## Knowledge Gaps
|
||||
- **55 isolated node(s):** `PieceTest`, `PieceTypeTest`, `SquareTest`, `CastlingRightsTest`, `BoardTest` (+50 more)
|
||||
These have ≤1 connection - possible missing edges or undocumented components.
|
||||
- **Thin community `Community 40`** (2 nodes): `PieceTest.scala`, `PieceTest`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 41`** (2 nodes): `PieceTypeTest.scala`, `PieceTypeTest`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 42`** (2 nodes): `SquareTest.scala`, `SquareTest`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 43`** (2 nodes): `CastlingRightsTest.scala`, `CastlingRightsTest`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 44`** (2 nodes): `BoardTest.scala`, `BoardTest`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 45`** (2 nodes): `ColorTest.scala`, `ColorTest`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 46`** (2 nodes): `MoveTest.scala`, `MoveTest`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 47`** (2 nodes): `GameContextTest.scala`, `GameContextTest`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 48`** (2 nodes): `ApiResponseTest.scala`, `ApiResponseTest`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 49`** (2 nodes): `PlayerInfoTest.scala`, `PlayerInfoTest`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 50`** (2 nodes): `PieceType.scala`, `label()`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 51`** (2 nodes): `Piece.scala`, `Piece`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 52`** (2 nodes): `Move.scala`, `Move`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 53`** (2 nodes): `RendererAndUnicodeTest.scala`, `RendererAndUnicodeTest`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 54`** (2 nodes): `PieceUnicode.scala`, `unicode()`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 55`** (2 nodes): `DefaultRulesTest.scala`, `DefaultRulesTest`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 56`** (2 nodes): `PgnParserTest.scala`, `PgnParserTest`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 57`** (2 nodes): `PgnValidatorTest.scala`, `PgnValidatorTest`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 58`** (2 nodes): `FenParserCombinatorsTest.scala`, `FenParserCombinatorsTest`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 59`** (2 nodes): `FenParserTest.scala`, `FenParserTest`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 60`** (2 nodes): `FenParserFastParseTest.scala`, `FenParserFastParseTest`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 61`** (2 nodes): `ParserTest.scala`, `ParserTest`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 62`** (2 nodes): `GameEngineOutcomesTest.scala`, `GameEngineOutcomesTest`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 63`** (2 nodes): `GameEngineSpecialMovesTest.scala`, `GameEngineSpecialMovesTest`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 64`** (2 nodes): `GameEngineScenarioTest.scala`, `GameEngineScenarioTest`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 65`** (2 nodes): `CommandTest.scala`, `CommandTest`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 66`** (1 nodes): `build.gradle.kts`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 67`** (1 nodes): `settings.gradle.kts`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 68`** (1 nodes): `RuleSet.scala`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 69`** (1 nodes): `GameContextImport.scala`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 70`** (1 nodes): `GameContextExport.scala`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 71`** (1 nodes): `Strip the package prefix from the full method path.`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 72`** (1 nodes): `Lines that are branch points and have at least one uncovered branch statement.`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 73`** (1 nodes): `test_counter.py`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
|
||||
## Suggested Questions
|
||||
_Questions this graph is uniquely positioned to answer:_
|
||||
|
||||
- **Why does `FenParserFastParse` connect `Community 6` to `Community 3`?**
|
||||
_High betweenness centrality (0.004) - this node is a cross-community bridge._
|
||||
- **What connects `PieceTest`, `PieceTypeTest`, `SquareTest` to the rest of the system?**
|
||||
_55 weakly-connected nodes found - possible documentation gaps or missing edges._
|
||||
- **Should `Community 0` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.11 - nodes in this community are weakly interconnected._
|
||||
- **Should `Community 1` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.09 - nodes in this community are weakly interconnected._
|
||||
- **Should `Community 2` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.11 - nodes in this community are weakly interconnected._
|
||||
- **Should `Community 3` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.09 - nodes in this community are weakly interconnected._
|
||||
- **Should `Community 4` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.14 - nodes in this community are weakly interconnected._
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "commandinvokertest", "label": "CommandInvokerTest.scala", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala", "source_location": "L1"}, {"id": "commandinvokertest_commandinvokertest", "label": "CommandInvokerTest", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala", "source_location": "L8"}, {"id": "commandinvokertest_commandinvokertest_sq", "label": ".sq()", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala", "source_location": "L10"}, {"id": "commandinvokertest_commandinvokertest_createmovecommand", "label": ".createMoveCommand()", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala", "source_location": "L12"}], "edges": [{"source": "commandinvokertest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "commandinvokertest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "commandinvokertest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "commandinvokertest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "commandinvokertest", "target": "commandinvokertest_commandinvokertest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala", "source_location": "L8", "weight": 1.0}, {"source": "commandinvokertest_commandinvokertest", "target": "commandinvokertest_commandinvokertest_sq", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala", "source_location": "L10", "weight": 1.0}, {"source": "commandinvokertest_commandinvokertest", "target": "commandinvokertest_commandinvokertest_createmovecommand", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala", "source_location": "L12", "weight": 1.0}]}
|
||||
-1
File diff suppressed because one or more lines are too long
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "build_gradle", "label": "build.gradle.kts", "file_type": "code", "source_file": "modules/ui/build.gradle.kts", "source_location": "L1"}], "edges": []}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "nnuebot", "label": "NNUEBot.scala", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala", "source_location": "L1"}, {"id": "nnuebot_nnuebot", "label": "NNUEBot", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala", "source_location": "L12"}, {"id": "nnuebot_nnuebot_nextmove", "label": ".nextMove()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala", "source_location": "L23"}], "edges": [{"source": "nnuebot", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala", "source_location": "L3", "weight": 1.0}, {"source": "nnuebot", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala", "source_location": "L4", "weight": 1.0}, {"source": "nnuebot", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala", "source_location": "L5", "weight": 1.0}, {"source": "nnuebot", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala", "source_location": "L6", "weight": 1.0}, {"source": "nnuebot", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala", "source_location": "L7", "weight": 1.0}, {"source": "nnuebot", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala", "source_location": "L8", "weight": 1.0}, {"source": "nnuebot", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala", "source_location": "L9", "weight": 1.0}, {"source": "nnuebot", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala", "source_location": "L10", "weight": 1.0}, {"source": "nnuebot", "target": "nnuebot_nnuebot", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala", "source_location": "L12", "weight": 1.0}, {"source": "nnuebot_nnuebot", "target": "nnuebot_nnuebot_nextmove", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala", "source_location": "L23", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "pgnexporter", "label": "PgnExporter.scala", "file_type": "code", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L1"}, {"id": "pgnexporter_pgnexporter", "label": "PgnExporter", "file_type": "code", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L9"}, {"id": "pgnexporter_pgnexporter_exportgamecontext", "label": ".exportGameContext()", "file_type": "code", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L12"}, {"id": "pgnexporter_pgnexporter_exportgame", "label": ".exportGame()", "file_type": "code", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L23"}, {"id": "pgnexporter_pgnexporter_movetoalgebraic", "label": ".moveToAlgebraic()", "file_type": "code", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L53"}], "edges": [{"source": "pgnexporter", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L3", "weight": 1.0}, {"source": "pgnexporter", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L4", "weight": 1.0}, {"source": "pgnexporter", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L5", "weight": 1.0}, {"source": "pgnexporter", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L6", "weight": 1.0}, {"source": "pgnexporter", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L7", "weight": 1.0}, {"source": "pgnexporter", "target": "pgnexporter_pgnexporter", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L9", "weight": 1.0}, {"source": "pgnexporter_pgnexporter", "target": "pgnexporter_pgnexporter_exportgamecontext", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L12", "weight": 1.0}, {"source": "pgnexporter_pgnexporter", "target": "pgnexporter_pgnexporter_exportgame", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L23", "weight": 1.0}, {"source": "pgnexporter_pgnexporter", "target": "pgnexporter_pgnexporter_movetoalgebraic", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L53", "weight": 1.0}, {"source": "pgnexporter_pgnexporter_exportgamecontext", "target": "pgnexporter_pgnexporter_exportgame", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L20", "weight": 1.0}, {"source": "pgnexporter_pgnexporter_exportgame", "target": "pgnexporter_pgnexporter_movetoalgebraic", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala", "source_location": "L32", "weight": 1.0}]}
|
||||
-1
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "piece", "label": "Piece.scala", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Piece.scala", "source_location": "L1"}, {"id": "piece_piece", "label": "Piece", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Piece.scala", "source_location": "L4"}], "edges": [{"source": "piece", "target": "piece_piece", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Piece.scala", "source_location": "L4", "weight": 1.0}, {"source": "piece", "target": "piece_piece", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Piece.scala", "source_location": "L6", "weight": 1.0}]}
|
||||
-1
File diff suppressed because one or more lines are too long
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "commandinvoker", "label": "CommandInvoker.scala", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L1"}, {"id": "commandinvoker_commandinvoker", "label": "CommandInvoker", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L4"}, {"id": "commandinvoker_commandinvoker_execute", "label": ".execute()", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L11"}, {"id": "commandinvoker_commandinvoker_undo", "label": ".undo()", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L24"}, {"id": "commandinvoker_commandinvoker_redo", "label": ".redo()", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L37"}, {"id": "commandinvoker_commandinvoker_history", "label": ".history()", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L50"}, {"id": "commandinvoker_commandinvoker_getcurrentindex", "label": ".getCurrentIndex()", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L55"}, {"id": "commandinvoker_commandinvoker_clear", "label": ".clear()", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L60"}, {"id": "commandinvoker_commandinvoker_canundo", "label": ".canUndo()", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L66"}, {"id": "commandinvoker_commandinvoker_canredo", "label": ".canRedo()", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L71"}], "edges": [{"source": "commandinvoker", "target": "commandinvoker_commandinvoker", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L4", "weight": 1.0}, {"source": "commandinvoker_commandinvoker", "target": "commandinvoker_commandinvoker_execute", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L11", "weight": 1.0}, {"source": "commandinvoker_commandinvoker", "target": "commandinvoker_commandinvoker_undo", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L24", "weight": 1.0}, {"source": "commandinvoker_commandinvoker", "target": "commandinvoker_commandinvoker_redo", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L37", "weight": 1.0}, {"source": "commandinvoker_commandinvoker", "target": "commandinvoker_commandinvoker_history", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L50", "weight": 1.0}, {"source": "commandinvoker_commandinvoker", "target": "commandinvoker_commandinvoker_getcurrentindex", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L55", "weight": 1.0}, {"source": "commandinvoker_commandinvoker", "target": "commandinvoker_commandinvoker_clear", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L60", "weight": 1.0}, {"source": "commandinvoker_commandinvoker", "target": "commandinvoker_commandinvoker_canundo", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L66", "weight": 1.0}, {"source": "commandinvoker_commandinvoker", "target": "commandinvoker_commandinvoker_canredo", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L71", "weight": 1.0}, {"source": "commandinvoker_commandinvoker_redo", "target": "commandinvoker_commandinvoker_execute", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala", "source_location": "L40", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "squaretest", "label": "SquareTest.scala", "file_type": "code", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/SquareTest.scala", "source_location": "L1"}, {"id": "squaretest_squaretest", "label": "SquareTest", "file_type": "code", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/SquareTest.scala", "source_location": "L6"}], "edges": [{"source": "squaretest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/SquareTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "squaretest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/SquareTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "squaretest", "target": "squaretest_squaretest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/SquareTest.scala", "source_location": "L6", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "guiobserver", "label": "GUIObserver.scala", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala", "source_location": "L1"}, {"id": "guiobserver_guiobserver", "label": "GUIObserver", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala", "source_location": "L13"}, {"id": "guiobserver_guiobserver_ongameevent", "label": ".onGameEvent()", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala", "source_location": "L15"}, {"id": "guiobserver_guiobserver_showalert", "label": ".showAlert()", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala", "source_location": "L73"}], "edges": [{"source": "guiobserver", "target": "scalafx", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala", "source_location": "L3", "weight": 1.0}, {"source": "guiobserver", "target": "scalafx", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala", "source_location": "L4", "weight": 1.0}, {"source": "guiobserver", "target": "scalafx", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala", "source_location": "L5", "weight": 1.0}, {"source": "guiobserver", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala", "source_location": "L6", "weight": 1.0}, {"source": "guiobserver", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala", "source_location": "L7", "weight": 1.0}, {"source": "guiobserver", "target": "guiobserver_guiobserver", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala", "source_location": "L13", "weight": 1.0}, {"source": "guiobserver_guiobserver", "target": "guiobserver_guiobserver_ongameevent", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala", "source_location": "L15", "weight": 1.0}, {"source": "guiobserver_guiobserver", "target": "guiobserver_guiobserver_showalert", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala", "source_location": "L73", "weight": 1.0}, {"source": "guiobserver_guiobserver_ongameevent", "target": "guiobserver_guiobserver_showalert", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/GUIObserver.scala", "source_location": "L31", "weight": 1.0}]}
|
||||
-1
File diff suppressed because one or more lines are too long
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "gamecontextexport", "label": "GameContextExport.scala", "file_type": "code", "source_file": "modules/io/src/main/scala/de/nowchess/io/GameContextExport.scala", "source_location": "L1"}], "edges": [{"source": "gamecontextexport", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/main/scala/de/nowchess/io/GameContextExport.scala", "source_location": "L3", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "apiresponsetest", "label": "ApiResponseTest.scala", "file_type": "code", "source_file": "modules/api/src/test/scala/de/nowchess/api/response/ApiResponseTest.scala", "source_location": "L1"}, {"id": "apiresponsetest_apiresponsetest", "label": "ApiResponseTest", "file_type": "code", "source_file": "modules/api/src/test/scala/de/nowchess/api/response/ApiResponseTest.scala", "source_location": "L6"}], "edges": [{"source": "apiresponsetest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/response/ApiResponseTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "apiresponsetest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/response/ApiResponseTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "apiresponsetest", "target": "apiresponsetest_apiresponsetest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/response/ApiResponseTest.scala", "source_location": "L6", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "gameenginewithbottest", "label": "GameEngineWithBotTest.scala", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L1"}, {"id": "gameenginewithbottest_gameenginewithbottest", "label": "GameEngineWithBotTest", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L14"}, {"id": "gameenginewithbottest_ongameevent", "label": "onGameEvent()", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L29"}], "edges": [{"source": "gameenginewithbottest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "gameenginewithbottest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "gameenginewithbottest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "gameenginewithbottest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "gameenginewithbottest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L7", "weight": 1.0}, {"source": "gameenginewithbottest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L8", "weight": 1.0}, {"source": "gameenginewithbottest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L9", "weight": 1.0}, {"source": "gameenginewithbottest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L10", "weight": 1.0}, {"source": "gameenginewithbottest", "target": "scala", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L11", "weight": 1.0}, {"source": "gameenginewithbottest", "target": "scala", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L12", "weight": 1.0}, {"source": "gameenginewithbottest", "target": "gameenginewithbottest_gameenginewithbottest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L14", "weight": 1.0}, {"source": "gameenginewithbottest", "target": "gameenginewithbottest_ongameevent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L29", "weight": 1.0}, {"source": "gameenginewithbottest", "target": "gameenginewithbottest_ongameevent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L75", "weight": 1.0}, {"source": "gameenginewithbottest", "target": "gameenginewithbottest_ongameevent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineWithBotTest.scala", "source_location": "L99", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "botdifficultytest", "label": "BotDifficultyTest.scala", "file_type": "code", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/BotDifficultyTest.scala", "source_location": "L1"}, {"id": "botdifficultytest_botdifficultytest", "label": "BotDifficultyTest", "file_type": "code", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/BotDifficultyTest.scala", "source_location": "L6"}], "edges": [{"source": "botdifficultytest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/BotDifficultyTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "botdifficultytest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/BotDifficultyTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "botdifficultytest", "target": "botdifficultytest_botdifficultytest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/BotDifficultyTest.scala", "source_location": "L6", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "gameengineloadgametest", "label": "GameEngineLoadGameTest.scala", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L1"}, {"id": "gameengineloadgametest_gameengineloadgametest", "label": "GameEngineLoadGameTest", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L14"}, {"id": "gameengineloadgametest_mockobserver", "label": "MockObserver", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L40"}, {"id": "gameengineloadgametest_mockobserver_ongameevent", "label": ".onGameEvent()", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L42"}], "edges": [{"source": "gameengineloadgametest", "target": "scala", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "gameengineloadgametest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "gameengineloadgametest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "gameengineloadgametest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "gameengineloadgametest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L7", "weight": 1.0}, {"source": "gameengineloadgametest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L8", "weight": 1.0}, {"source": "gameengineloadgametest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L9", "weight": 1.0}, {"source": "gameengineloadgametest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L10", "weight": 1.0}, {"source": "gameengineloadgametest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L11", "weight": 1.0}, {"source": "gameengineloadgametest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L12", "weight": 1.0}, {"source": "gameengineloadgametest", "target": "gameengineloadgametest_gameengineloadgametest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L14", "weight": 1.0}, {"source": "gameengineloadgametest", "target": "gameengineloadgametest_mockobserver", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L40", "weight": 1.0}, {"source": "gameengineloadgametest_mockobserver", "target": "gameengineloadgametest_mockobserver_ongameevent", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala", "source_location": "L42", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "gamecontextimport", "label": "GameContextImport.scala", "file_type": "code", "source_file": "modules/io/src/main/scala/de/nowchess/io/GameContextImport.scala", "source_location": "L1"}], "edges": [{"source": "gamecontextimport", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/main/scala/de/nowchess/io/GameContextImport.scala", "source_location": "L3", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "settings_gradle", "label": "settings.gradle.kts", "file_type": "code", "source_file": "settings.gradle.kts", "source_location": "L1"}], "edges": []}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "generate", "label": "generate.py", "file_type": "code", "source_file": "modules/bot/python/src/generate.py", "source_location": "L1"}, {"id": "generate_worker_generate_games", "label": "_worker_generate_games()", "file_type": "code", "source_file": "modules/bot/python/src/generate.py", "source_location": "L13"}, {"id": "generate_play_random_game_and_collect_positions", "label": "play_random_game_and_collect_positions()", "file_type": "code", "source_file": "modules/bot/python/src/generate.py", "source_location": "L64"}, {"id": "generate_rationale_14", "label": "Generate games for one worker. Returns: list of FENs generated by t", "file_type": "rationale", "source_file": "modules/bot/python/src/generate.py", "source_location": "L14"}, {"id": "generate_rationale_72", "label": "Generate positions using multiprocessing with multiple workers. Args:", "file_type": "rationale", "source_file": "modules/bot/python/src/generate.py", "source_location": "L72"}], "edges": [{"source": "generate", "target": "chess", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/generate.py", "source_location": "L4", "weight": 1.0}, {"source": "generate", "target": "random", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/generate.py", "source_location": "L5", "weight": 1.0}, {"source": "generate", "target": "sys", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/generate.py", "source_location": "L6", "weight": 1.0}, {"source": "generate", "target": "pathlib", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/generate.py", "source_location": "L7", "weight": 1.0}, {"source": "generate", "target": "tqdm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/generate.py", "source_location": "L8", "weight": 1.0}, {"source": "generate", "target": "multiprocessing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/generate.py", "source_location": "L9", "weight": 1.0}, {"source": "generate", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/generate.py", "source_location": "L10", "weight": 1.0}, {"source": "generate", "target": "time", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/generate.py", "source_location": "L11", "weight": 1.0}, {"source": "generate", "target": "generate_worker_generate_games", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/generate.py", "source_location": "L13", "weight": 1.0}, {"source": "generate", "target": "generate_play_random_game_and_collect_positions", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/generate.py", "source_location": "L64", "weight": 1.0}, {"source": "generate", "target": "argparse", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/generate.py", "source_location": "L144", "weight": 1.0}, {"source": "generate_rationale_14", "target": "generate_worker_generate_games", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/generate.py", "source_location": "L14", "weight": 1.0}, {"source": "generate_rationale_72", "target": "generate_play_random_game_and_collect_positions", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/generate.py", "source_location": "L72", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "config", "label": "Config.scala", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/Config.scala", "source_location": "L1"}, {"id": "config_config", "label": "Config", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/Config.scala", "source_location": "L3"}], "edges": [{"source": "config", "target": "config_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/Config.scala", "source_location": "L3", "weight": 1.0}]}
|
||||
-1
File diff suppressed because one or more lines are too long
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "pieceunicode", "label": "PieceUnicode.scala", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/utils/PieceUnicode.scala", "source_location": "L1"}, {"id": "pieceunicode_unicode", "label": "unicode()", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/utils/PieceUnicode.scala", "source_location": "L6"}], "edges": [{"source": "pieceunicode", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/utils/PieceUnicode.scala", "source_location": "L3", "weight": 1.0}, {"source": "pieceunicode", "target": "pieceunicode_unicode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/utils/PieceUnicode.scala", "source_location": "L6", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "test_counter", "label": "test_counter.py", "file_type": "code", "source_file": "jacoco-reporter/test_counter.py", "source_location": "L1"}], "edges": [{"source": "test_counter", "target": "glob", "relation": "imports", "confidence": "EXTRACTED", "source_file": "jacoco-reporter/test_counter.py", "source_location": "L1", "weight": 1.0}, {"source": "test_counter", "target": "re", "relation": "imports", "confidence": "EXTRACTED", "source_file": "jacoco-reporter/test_counter.py", "source_location": "L1", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "gamecontext", "label": "GameContext.scala", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L1"}, {"id": "gamecontext_gamecontext", "label": "GameContext", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L9"}, {"id": "gamecontext_gamecontext_withboard", "label": ".withBoard()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L18"}, {"id": "gamecontext_gamecontext_withturn", "label": ".withTurn()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L21"}, {"id": "gamecontext_gamecontext_withcastlingrights", "label": ".withCastlingRights()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L24"}, {"id": "gamecontext_gamecontext_withenpassantsquare", "label": ".withEnPassantSquare()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L27"}, {"id": "gamecontext_gamecontext_withhalfmoveclock", "label": ".withHalfMoveClock()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L30"}, {"id": "gamecontext_gamecontext_withmove", "label": ".withMove()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L33"}, {"id": "gamecontext_gamecontext_initial", "label": ".initial()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L37"}], "edges": [{"source": "gamecontext", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L3", "weight": 1.0}, {"source": "gamecontext", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L4", "weight": 1.0}, {"source": "gamecontext", "target": "gamecontext_gamecontext", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L9", "weight": 1.0}, {"source": "gamecontext_gamecontext", "target": "gamecontext_gamecontext_withboard", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L18", "weight": 1.0}, {"source": "gamecontext_gamecontext", "target": "gamecontext_gamecontext_withturn", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L21", "weight": 1.0}, {"source": "gamecontext_gamecontext", "target": "gamecontext_gamecontext_withcastlingrights", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L24", "weight": 1.0}, {"source": "gamecontext_gamecontext", "target": "gamecontext_gamecontext_withenpassantsquare", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L27", "weight": 1.0}, {"source": "gamecontext_gamecontext", "target": "gamecontext_gamecontext_withhalfmoveclock", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L30", "weight": 1.0}, {"source": "gamecontext_gamecontext", "target": "gamecontext_gamecontext_withmove", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L33", "weight": 1.0}, {"source": "gamecontext", "target": "gamecontext_gamecontext", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L35", "weight": 1.0}, {"source": "gamecontext_gamecontext", "target": "gamecontext_gamecontext_initial", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L37", "weight": 1.0}, {"source": "gamecontext_gamecontext_initial", "target": "gamecontext_gamecontext", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala", "source_location": "L37", "weight": 1.0}]}
|
||||
-1
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "chessgui", "label": "ChessGUI.scala", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L1"}, {"id": "chessgui_chessguiapp", "label": "ChessGUIApp", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L14"}, {"id": "chessgui_chessguiapp_start", "label": ".start()", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L16"}, {"id": "chessgui_chessguilauncher", "label": "ChessGUILauncher", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L51"}, {"id": "chessgui_chessguilauncher_getengine", "label": ".getEngine()", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L54"}, {"id": "chessgui_chessguilauncher_launch", "label": ".launch()", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L56"}], "edges": [{"source": "chessgui", "target": "javafx", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L3", "weight": 1.0}, {"source": "chessgui", "target": "javafx", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L4", "weight": 1.0}, {"source": "chessgui", "target": "scalafx", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L5", "weight": 1.0}, {"source": "chessgui", "target": "scalafx", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L6", "weight": 1.0}, {"source": "chessgui", "target": "scalafx", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L7", "weight": 1.0}, {"source": "chessgui", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L8", "weight": 1.0}, {"source": "chessgui", "target": "chessgui_chessguiapp", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L14", "weight": 1.0}, {"source": "chessgui_chessguiapp", "target": "chessgui_chessguiapp_start", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L16", "weight": 1.0}, {"source": "chessgui", "target": "chessgui_chessguilauncher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L51", "weight": 1.0}, {"source": "chessgui_chessguilauncher", "target": "chessgui_chessguilauncher_getengine", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L54", "weight": 1.0}, {"source": "chessgui_chessguilauncher", "target": "chessgui_chessguilauncher_launch", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L56", "weight": 1.0}, {"source": "chessgui_chessguilauncher_launch", "target": "chessgui_chessguiapp_start", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/gui/ChessGUI.scala", "source_location": "L63", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "nnue", "label": "NNUE.scala", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L1"}, {"id": "nnue_nnue", "label": "NNUE", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L8"}, {"id": "nnue_nnue_loadweights", "label": ".loadWeights()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L12"}, {"id": "nnue_nnue_readtensor", "label": ".readTensor()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L46"}, {"id": "nnue_nnue_positiontofeatures", "label": ".positionToFeatures()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L72"}, {"id": "nnue_nnue_evaluate", "label": ".evaluate()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L98"}, {"id": "nnue_nnue_benchmark", "label": ".benchmark()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L148"}], "edges": [{"source": "nnue", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L3", "weight": 1.0}, {"source": "nnue", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L4", "weight": 1.0}, {"source": "nnue", "target": "java", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L5", "weight": 1.0}, {"source": "nnue", "target": "java", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L6", "weight": 1.0}, {"source": "nnue", "target": "nnue_nnue", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L8", "weight": 1.0}, {"source": "nnue_nnue", "target": "nnue_nnue_loadweights", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L12", "weight": 1.0}, {"source": "nnue_nnue", "target": "nnue_nnue_readtensor", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L46", "weight": 1.0}, {"source": "nnue_nnue", "target": "nnue_nnue_positiontofeatures", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L72", "weight": 1.0}, {"source": "nnue_nnue", "target": "nnue_nnue_evaluate", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L98", "weight": 1.0}, {"source": "nnue_nnue", "target": "nnue_nnue_benchmark", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L148", "weight": 1.0}, {"source": "nnue_nnue_loadweights", "target": "nnue_nnue_readtensor", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L32", "weight": 1.0}, {"source": "nnue_nnue_evaluate", "target": "nnue_nnue_positiontofeatures", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L99", "weight": 1.0}, {"source": "nnue_nnue_benchmark", "target": "nnue_nnue_evaluate", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala", "source_location": "L154", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "pgnexportertest", "label": "PgnExporterTest.scala", "file_type": "code", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnExporterTest.scala", "source_location": "L1"}, {"id": "pgnexportertest_pgnexportertest", "label": "PgnExporterTest", "file_type": "code", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnExporterTest.scala", "source_location": "L9"}, {"id": "pgnexportertest_pgnexportertest_sq", "label": ".sq()", "file_type": "code", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnExporterTest.scala", "source_location": "L66"}], "edges": [{"source": "pgnexportertest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnExporterTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "pgnexportertest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnExporterTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "pgnexportertest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnExporterTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "pgnexportertest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnExporterTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "pgnexportertest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnExporterTest.scala", "source_location": "L7", "weight": 1.0}, {"source": "pgnexportertest", "target": "pgnexportertest_pgnexportertest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnExporterTest.scala", "source_location": "L9", "weight": 1.0}, {"source": "pgnexportertest_pgnexportertest", "target": "pgnexportertest_pgnexportertest_sq", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnExporterTest.scala", "source_location": "L66", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "test_counter", "label": "test_counter.py", "file_type": "code", "source_file": "jacoco-reporter/test_counter.py", "source_location": "L1"}], "edges": [{"source": "test_counter", "target": "glob", "relation": "imports", "confidence": "EXTRACTED", "source_file": "jacoco-reporter/test_counter.py", "source_location": "L1", "weight": 1.0}, {"source": "test_counter", "target": "re", "relation": "imports", "confidence": "EXTRACTED", "source_file": "jacoco-reporter/test_counter.py", "source_location": "L1", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "gameenginespecialmovestest", "label": "GameEngineSpecialMovesTest.scala", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineSpecialMovesTest.scala", "source_location": "L1"}, {"id": "gameenginespecialmovestest_gameenginespecialmovestest", "label": "GameEngineSpecialMovesTest", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineSpecialMovesTest.scala", "source_location": "L9"}], "edges": [{"source": "gameenginespecialmovestest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineSpecialMovesTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "gameenginespecialmovestest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineSpecialMovesTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "gameenginespecialmovestest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineSpecialMovesTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "gameenginespecialmovestest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineSpecialMovesTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "gameenginespecialmovestest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineSpecialMovesTest.scala", "source_location": "L7", "weight": 1.0}, {"source": "gameenginespecialmovestest", "target": "gameenginespecialmovestest_gameenginespecialmovestest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineSpecialMovesTest.scala", "source_location": "L9", "weight": 1.0}]}
|
||||
-1
File diff suppressed because one or more lines are too long
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "build_gradle", "label": "build.gradle.kts", "file_type": "code", "source_file": "modules/core/build.gradle.kts", "source_location": "L1"}], "edges": []}
|
||||
-1
File diff suppressed because one or more lines are too long
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "build_gradle", "label": "build.gradle.kts", "file_type": "code", "source_file": "modules/core/build.gradle.kts", "source_location": "L1"}], "edges": []}
|
||||
-1
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
-1
File diff suppressed because one or more lines are too long
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "label", "label": "label.py", "file_type": "code", "source_file": "modules/bot/python/src/label.py", "source_location": "L1"}, {"id": "label_normalize_evaluation", "label": "normalize_evaluation()", "file_type": "code", "source_file": "modules/bot/python/src/label.py", "source_location": "L14"}, {"id": "label_evaluate_fen_batch", "label": "_evaluate_fen_batch()", "file_type": "code", "source_file": "modules/bot/python/src/label.py", "source_location": "L32"}, {"id": "label_label_positions_with_stockfish", "label": "label_positions_with_stockfish()", "file_type": "code", "source_file": "modules/bot/python/src/label.py", "source_location": "L82"}, {"id": "label_rationale_15", "label": "Normalize centipawn evaluation to a bounded range. Args: cp_value:", "file_type": "rationale", "source_file": "modules/bot/python/src/label.py", "source_location": "L15"}, {"id": "label_rationale_33", "label": "Worker function to evaluate a batch of FENs with Stockfish threading. Args:", "file_type": "rationale", "source_file": "modules/bot/python/src/label.py", "source_location": "L33"}, {"id": "label_rationale_83", "label": "Read positions and label them with Stockfish evaluations. Args: pos", "file_type": "rationale", "source_file": "modules/bot/python/src/label.py", "source_location": "L83"}], "edges": [{"source": "label", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L4", "weight": 1.0}, {"source": "label", "target": "chess_engine", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L5", "weight": 1.0}, {"source": "label", "target": "sys", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L6", "weight": 1.0}, {"source": "label", "target": "os", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L7", "weight": 1.0}, {"source": "label", "target": "numpy", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L8", "weight": 1.0}, {"source": "label", "target": "pathlib", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L9", "weight": 1.0}, {"source": "label", "target": "tqdm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L10", "weight": 1.0}, {"source": "label", "target": "multiprocessing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L11", "weight": 1.0}, {"source": "label", "target": "functools", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L12", "weight": 1.0}, {"source": "label", "target": "label_normalize_evaluation", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L14", "weight": 1.0}, {"source": "label", "target": "label_evaluate_fen_batch", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L32", "weight": 1.0}, {"source": "label", "target": "label_label_positions_with_stockfish", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L82", "weight": 1.0}, {"source": "label", "target": "argparse", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L279", "weight": 1.0}, {"source": "label_evaluate_fen_batch", "target": "label_normalize_evaluation", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L70", "weight": 1.0}, {"source": "label_rationale_15", "target": "label_normalize_evaluation", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L15", "weight": 1.0}, {"source": "label_rationale_33", "target": "label_evaluate_fen_batch", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L33", "weight": 1.0}, {"source": "label_rationale_83", "target": "label_label_positions_with_stockfish", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "modules/bot/python/src/label.py", "source_location": "L83", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "movecommandtest", "label": "MoveCommandTest.scala", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/MoveCommandTest.scala", "source_location": "L1"}, {"id": "movecommandtest_movecommandtest", "label": "MoveCommandTest", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/MoveCommandTest.scala", "source_location": "L8"}, {"id": "movecommandtest_movecommandtest_sq", "label": ".sq()", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/MoveCommandTest.scala", "source_location": "L10"}], "edges": [{"source": "movecommandtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/MoveCommandTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "movecommandtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/MoveCommandTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "movecommandtest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/MoveCommandTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "movecommandtest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/MoveCommandTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "movecommandtest", "target": "movecommandtest_movecommandtest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/MoveCommandTest.scala", "source_location": "L8", "weight": 1.0}, {"source": "movecommandtest_movecommandtest", "target": "movecommandtest_movecommandtest_sq", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/command/MoveCommandTest.scala", "source_location": "L10", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "polyglothashtest", "label": "PolyglotHashTest.scala", "file_type": "code", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotHashTest.scala", "source_location": "L1"}, {"id": "polyglothashtest_polyglothashtest", "label": "PolyglotHashTest", "file_type": "code", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotHashTest.scala", "source_location": "L10"}], "edges": [{"source": "polyglothashtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotHashTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "polyglothashtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotHashTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "polyglothashtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotHashTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "polyglothashtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotHashTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "polyglothashtest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotHashTest.scala", "source_location": "L7", "weight": 1.0}, {"source": "polyglothashtest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotHashTest.scala", "source_location": "L8", "weight": 1.0}, {"source": "polyglothashtest", "target": "polyglothashtest_polyglothashtest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotHashTest.scala", "source_location": "L10", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "piecetest", "label": "PieceTest.scala", "file_type": "code", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/PieceTest.scala", "source_location": "L1"}, {"id": "piecetest_piecetest", "label": "PieceTest", "file_type": "code", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/PieceTest.scala", "source_location": "L6"}], "edges": [{"source": "piecetest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/PieceTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "piecetest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/PieceTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "piecetest", "target": "piecetest_piecetest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/PieceTest.scala", "source_location": "L6", "weight": 1.0}]}
|
||||
-1
File diff suppressed because one or more lines are too long
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "main", "label": "Main.scala", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/Main.scala", "source_location": "L1"}, {"id": "main_main", "label": "Main", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/Main.scala", "source_location": "L14"}, {"id": "main_main_main", "label": ".main()", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/Main.scala", "source_location": "L15"}], "edges": [{"source": "main", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/Main.scala", "source_location": "L3", "weight": 1.0}, {"source": "main", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/Main.scala", "source_location": "L4", "weight": 1.0}, {"source": "main", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/Main.scala", "source_location": "L5", "weight": 1.0}, {"source": "main", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/Main.scala", "source_location": "L6", "weight": 1.0}, {"source": "main", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/Main.scala", "source_location": "L7", "weight": 1.0}, {"source": "main", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/Main.scala", "source_location": "L8", "weight": 1.0}, {"source": "main", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/Main.scala", "source_location": "L9", "weight": 1.0}, {"source": "main", "target": "main_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/Main.scala", "source_location": "L14", "weight": 1.0}, {"source": "main_main", "target": "main_main_main", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/Main.scala", "source_location": "L15", "weight": 1.0}]}
|
||||
-1
File diff suppressed because one or more lines are too long
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "ruleset", "label": "RuleSet.scala", "file_type": "code", "source_file": "modules/rule/src/main/scala/de/nowchess/rules/RuleSet.scala", "source_location": "L1"}], "edges": [{"source": "ruleset", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/main/scala/de/nowchess/rules/RuleSet.scala", "source_location": "L3", "weight": 1.0}, {"source": "ruleset", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/main/scala/de/nowchess/rules/RuleSet.scala", "source_location": "L4", "weight": 1.0}, {"source": "ruleset", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/main/scala/de/nowchess/rules/RuleSet.scala", "source_location": "L5", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "gameenginescenariotest", "label": "GameEngineScenarioTest.scala", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala", "source_location": "L1"}, {"id": "gameenginescenariotest_gameenginescenariotest", "label": "GameEngineScenarioTest", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala", "source_location": "L11"}], "edges": [{"source": "gameenginescenariotest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "gameenginescenariotest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "gameenginescenariotest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "gameenginescenariotest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "gameenginescenariotest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala", "source_location": "L7", "weight": 1.0}, {"source": "gameenginescenariotest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala", "source_location": "L8", "weight": 1.0}, {"source": "gameenginescenariotest", "target": "scala", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala", "source_location": "L9", "weight": 1.0}, {"source": "gameenginescenariotest", "target": "gameenginescenariotest_gameenginescenariotest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineScenarioTest.scala", "source_location": "L11", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "pgnvalidatortest", "label": "PgnValidatorTest.scala", "file_type": "code", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnValidatorTest.scala", "source_location": "L1"}, {"id": "pgnvalidatortest_pgnvalidatortest", "label": "PgnValidatorTest", "file_type": "code", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnValidatorTest.scala", "source_location": "L8"}], "edges": [{"source": "pgnvalidatortest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnValidatorTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "pgnvalidatortest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnValidatorTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "pgnvalidatortest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnValidatorTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "pgnvalidatortest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnValidatorTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "pgnvalidatortest", "target": "pgnvalidatortest_pgnvalidatortest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnValidatorTest.scala", "source_location": "L8", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "fenexportertest", "label": "FenExporterTest.scala", "file_type": "code", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenExporterTest.scala", "source_location": "L1"}, {"id": "fenexportertest_fenexportertest", "label": "FenExporterTest", "file_type": "code", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenExporterTest.scala", "source_location": "L9"}, {"id": "fenexportertest_fenexportertest_context", "label": ".context()", "file_type": "code", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenExporterTest.scala", "source_location": "L11"}], "edges": [{"source": "fenexportertest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenExporterTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "fenexportertest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenExporterTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "fenexportertest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenExporterTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "fenexportertest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenExporterTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "fenexportertest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenExporterTest.scala", "source_location": "L7", "weight": 1.0}, {"source": "fenexportertest", "target": "fenexportertest_fenexportertest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenExporterTest.scala", "source_location": "L9", "weight": 1.0}, {"source": "fenexportertest_fenexportertest", "target": "fenexportertest_fenexportertest_context", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenExporterTest.scala", "source_location": "L11", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "weights", "label": "Weights.scala", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/ai/Weights.scala", "source_location": "L1"}], "edges": [{"source": "weights", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/ai/Weights.scala", "source_location": "L3", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "board", "label": "Board.scala", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L1"}, {"id": "board_board", "label": "Board", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L5"}, {"id": "board_board_apply", "label": ".apply()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L7"}, {"id": "board_pieceat", "label": "pieceAt()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L10"}, {"id": "board_updated", "label": "updated()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L11"}, {"id": "board_removed", "label": "removed()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L12"}, {"id": "board_withmove", "label": "withMove()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L13"}, {"id": "board_applymove", "label": "applyMove()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L17"}, {"id": "board_pieces", "label": "pieces()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L20"}], "edges": [{"source": "board", "target": "board_board", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L5", "weight": 1.0}, {"source": "board_board", "target": "board_board_apply", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L7", "weight": 1.0}, {"source": "board", "target": "board_pieceat", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L10", "weight": 1.0}, {"source": "board", "target": "board_updated", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L11", "weight": 1.0}, {"source": "board", "target": "board_removed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L12", "weight": 1.0}, {"source": "board", "target": "board_withmove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L13", "weight": 1.0}, {"source": "board", "target": "board_applymove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L17", "weight": 1.0}, {"source": "board", "target": "board_pieces", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L20", "weight": 1.0}, {"source": "board_withmove", "target": "board_updated", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L15", "weight": 1.0}, {"source": "board_withmove", "target": "board_removed", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L15", "weight": 1.0}, {"source": "board_applymove", "target": "board_withmove", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/Board.scala", "source_location": "L18", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "fenparsertest", "label": "FenParserTest.scala", "file_type": "code", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenParserTest.scala", "source_location": "L1"}, {"id": "fenparsertest_fenparsertest", "label": "FenParserTest", "file_type": "code", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenParserTest.scala", "source_location": "L7"}], "edges": [{"source": "fenparsertest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenParserTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "fenparsertest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenParserTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "fenparsertest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenParserTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "fenparsertest", "target": "fenparsertest_fenparsertest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/fen/FenParserTest.scala", "source_location": "L7", "weight": 1.0}]}
|
||||
-1
File diff suppressed because one or more lines are too long
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "rendererandunicodetest", "label": "RendererAndUnicodeTest.scala", "file_type": "code", "source_file": "modules/ui/src/test/scala/de/nowchess/ui/utils/RendererAndUnicodeTest.scala", "source_location": "L1"}, {"id": "rendererandunicodetest_rendererandunicodetest", "label": "RendererAndUnicodeTest", "file_type": "code", "source_file": "modules/ui/src/test/scala/de/nowchess/ui/utils/RendererAndUnicodeTest.scala", "source_location": "L7"}], "edges": [{"source": "rendererandunicodetest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/test/scala/de/nowchess/ui/utils/RendererAndUnicodeTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "rendererandunicodetest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/test/scala/de/nowchess/ui/utils/RendererAndUnicodeTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "rendererandunicodetest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/test/scala/de/nowchess/ui/utils/RendererAndUnicodeTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "rendererandunicodetest", "target": "rendererandunicodetest_rendererandunicodetest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/ui/src/test/scala/de/nowchess/ui/utils/RendererAndUnicodeTest.scala", "source_location": "L7", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "polyglotbooktest", "label": "PolyglotBookTest.scala", "file_type": "code", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L1"}, {"id": "polyglotbooktest_polyglotbooktest", "label": "PolyglotBookTest", "file_type": "code", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L16"}], "edges": [{"source": "polyglotbooktest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "polyglotbooktest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "polyglotbooktest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "polyglotbooktest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "polyglotbooktest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L7", "weight": 1.0}, {"source": "polyglotbooktest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L8", "weight": 1.0}, {"source": "polyglotbooktest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L9", "weight": 1.0}, {"source": "polyglotbooktest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L10", "weight": 1.0}, {"source": "polyglotbooktest", "target": "java", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L12", "weight": 1.0}, {"source": "polyglotbooktest", "target": "java", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L13", "weight": 1.0}, {"source": "polyglotbooktest", "target": "scala", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L14", "weight": 1.0}, {"source": "polyglotbooktest", "target": "polyglotbooktest_polyglotbooktest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/PolyglotBookTest.scala", "source_location": "L16", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "gameenginenotationtest", "label": "GameEngineNotationTest.scala", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala", "source_location": "L1"}, {"id": "gameenginenotationtest_gameenginenotationtest", "label": "GameEngineNotationTest", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala", "source_location": "L17"}, {"id": "gameenginenotationtest_gameenginenotationtest_captureevents", "label": ".captureEvents()", "file_type": "code", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala", "source_location": "L19"}], "edges": [{"source": "gameenginenotationtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "gameenginenotationtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "gameenginenotationtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "gameenginenotationtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "gameenginenotationtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala", "source_location": "L7", "weight": 1.0}, {"source": "gameenginenotationtest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala", "source_location": "L8", "weight": 1.0}, {"source": "gameenginenotationtest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala", "source_location": "L9", "weight": 1.0}, {"source": "gameenginenotationtest", "target": "gameenginenotationtest_gameenginenotationtest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala", "source_location": "L17", "weight": 1.0}, {"source": "gameenginenotationtest_gameenginenotationtest", "target": "gameenginenotationtest_gameenginenotationtest_captureevents", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala", "source_location": "L19", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "apiresponse", "label": "ApiResponse.scala", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L1"}, {"id": "apiresponse_apiresponse", "label": "ApiResponse", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L13"}, {"id": "apiresponse_success", "label": "Success", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L15"}, {"id": "apiresponse_failure", "label": "Failure", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L18"}, {"id": "apiresponse_apiresponse_error", "label": ".error()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L21"}, {"id": "apiresponse_apierror", "label": "ApiError", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L30"}, {"id": "apiresponse_pagination", "label": "Pagination", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L43"}, {"id": "apiresponse_pagination_totalpages", "label": ".totalPages()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L48"}, {"id": "apiresponse_pagedresponse", "label": "PagedResponse", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L59"}], "edges": [{"source": "apiresponse", "target": "apiresponse_apiresponse", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L13", "weight": 1.0}, {"source": "apiresponse", "target": "apiresponse_success", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L15", "weight": 1.0}, {"source": "apiresponse", "target": "apiresponse_failure", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L18", "weight": 1.0}, {"source": "apiresponse_apiresponse", "target": "apiresponse_apiresponse_error", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L21", "weight": 1.0}, {"source": "apiresponse", "target": "apiresponse_apierror", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L30", "weight": 1.0}, {"source": "apiresponse", "target": "apiresponse_pagination", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L43", "weight": 1.0}, {"source": "apiresponse_pagination", "target": "apiresponse_pagination_totalpages", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L48", "weight": 1.0}, {"source": "apiresponse", "target": "apiresponse_pagedresponse", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L59", "weight": 1.0}, {"source": "apiresponse_apiresponse_error", "target": "apiresponse_failure", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala", "source_location": "L21", "weight": 1.0}]}
|
||||
-1
File diff suppressed because one or more lines are too long
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "renderer", "label": "Renderer.scala", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/utils/Renderer.scala", "source_location": "L1"}, {"id": "renderer_renderer", "label": "Renderer", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/utils/Renderer.scala", "source_location": "L5"}, {"id": "renderer_renderer_render", "label": ".render()", "file_type": "code", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/utils/Renderer.scala", "source_location": "L13"}], "edges": [{"source": "renderer", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/utils/Renderer.scala", "source_location": "L3", "weight": 1.0}, {"source": "renderer", "target": "renderer_renderer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/utils/Renderer.scala", "source_location": "L5", "weight": 1.0}, {"source": "renderer_renderer", "target": "renderer_renderer_render", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/ui/src/main/scala/de/nowchess/ui/utils/Renderer.scala", "source_location": "L13", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "piecetypetest", "label": "PieceTypeTest.scala", "file_type": "code", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/PieceTypeTest.scala", "source_location": "L1"}, {"id": "piecetypetest_piecetypetest", "label": "PieceTypeTest", "file_type": "code", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/PieceTypeTest.scala", "source_location": "L6"}], "edges": [{"source": "piecetypetest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/PieceTypeTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "piecetypetest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/PieceTypeTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "piecetypetest", "target": "piecetypetest_piecetypetest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/PieceTypeTest.scala", "source_location": "L6", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "parser", "label": "Parser.scala", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/controller/Parser.scala", "source_location": "L1"}, {"id": "parser_parser", "label": "Parser", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/controller/Parser.scala", "source_location": "L5"}, {"id": "parser_parser_parsemove", "label": ".parseMove()", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/controller/Parser.scala", "source_location": "L10"}, {"id": "parser_parser_parsesquare", "label": ".parseSquare()", "file_type": "code", "source_file": "modules/core/src/main/scala/de/nowchess/chess/controller/Parser.scala", "source_location": "L18"}], "edges": [{"source": "parser", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/controller/Parser.scala", "source_location": "L3", "weight": 1.0}, {"source": "parser", "target": "parser_parser", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/controller/Parser.scala", "source_location": "L5", "weight": 1.0}, {"source": "parser_parser", "target": "parser_parser_parsemove", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/controller/Parser.scala", "source_location": "L10", "weight": 1.0}, {"source": "parser_parser", "target": "parser_parser_parsesquare", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/controller/Parser.scala", "source_location": "L18", "weight": 1.0}, {"source": "parser_parser_parsemove", "target": "parser_parser_parsesquare", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/core/src/main/scala/de/nowchess/chess/controller/Parser.scala", "source_location": "L14", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "castlingrightstest", "label": "CastlingRightsTest.scala", "file_type": "code", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/CastlingRightsTest.scala", "source_location": "L1"}, {"id": "castlingrightstest_castlingrightstest", "label": "CastlingRightsTest", "file_type": "code", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/CastlingRightsTest.scala", "source_location": "L6"}], "edges": [{"source": "castlingrightstest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/CastlingRightsTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "castlingrightstest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/CastlingRightsTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "castlingrightstest", "target": "castlingrightstest_castlingrightstest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/CastlingRightsTest.scala", "source_location": "L6", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "defaultrulesstatetransitionstest", "label": "DefaultRulesStateTransitionsTest.scala", "file_type": "code", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L1"}, {"id": "defaultrulesstatetransitionstest_defaultrulesstatetransitionstest", "label": "DefaultRulesStateTransitionsTest", "file_type": "code", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L11"}, {"id": "defaultrulesstatetransitionstest_defaultrulesstatetransitionstest_contextfromfen", "label": ".contextFromFen()", "file_type": "code", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L13"}, {"id": "defaultrulesstatetransitionstest_defaultrulesstatetransitionstest_sq", "label": ".sq()", "file_type": "code", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L16"}], "edges": [{"source": "defaultrulesstatetransitionstest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "defaultrulesstatetransitionstest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "defaultrulesstatetransitionstest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "defaultrulesstatetransitionstest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "defaultrulesstatetransitionstest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L7", "weight": 1.0}, {"source": "defaultrulesstatetransitionstest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L8", "weight": 1.0}, {"source": "defaultrulesstatetransitionstest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L9", "weight": 1.0}, {"source": "defaultrulesstatetransitionstest", "target": "defaultrulesstatetransitionstest_defaultrulesstatetransitionstest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L11", "weight": 1.0}, {"source": "defaultrulesstatetransitionstest_defaultrulesstatetransitionstest", "target": "defaultrulesstatetransitionstest_defaultrulesstatetransitionstest_contextfromfen", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L13", "weight": 1.0}, {"source": "defaultrulesstatetransitionstest_defaultrulesstatetransitionstest", "target": "defaultrulesstatetransitionstest_defaultrulesstatetransitionstest_sq", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesStateTransitionsTest.scala", "source_location": "L16", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "pgnparsertest", "label": "PgnParserTest.scala", "file_type": "code", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnParserTest.scala", "source_location": "L1"}, {"id": "pgnparsertest_pgnparsertest", "label": "PgnParserTest", "file_type": "code", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnParserTest.scala", "source_location": "L10"}], "edges": [{"source": "pgnparsertest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnParserTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "pgnparsertest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnParserTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "pgnparsertest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnParserTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "pgnparsertest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnParserTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "pgnparsertest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnParserTest.scala", "source_location": "L7", "weight": 1.0}, {"source": "pgnparsertest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnParserTest.scala", "source_location": "L8", "weight": 1.0}, {"source": "pgnparsertest", "target": "pgnparsertest_pgnparsertest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/io/src/test/scala/de/nowchess/io/pgn/PgnParserTest.scala", "source_location": "L10", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "defaultrulestest", "label": "DefaultRulesTest.scala", "file_type": "code", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesTest.scala", "source_location": "L1"}, {"id": "defaultrulestest_defaultrulestest", "label": "DefaultRulesTest", "file_type": "code", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesTest.scala", "source_location": "L11"}], "edges": [{"source": "defaultrulestest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "defaultrulestest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "defaultrulestest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "defaultrulestest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "defaultrulestest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesTest.scala", "source_location": "L7", "weight": 1.0}, {"source": "defaultrulestest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesTest.scala", "source_location": "L8", "weight": 1.0}, {"source": "defaultrulestest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesTest.scala", "source_location": "L9", "weight": 1.0}, {"source": "defaultrulestest", "target": "defaultrulestest_defaultrulestest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/rule/src/test/scala/de/nowchess/rule/DefaultRulesTest.scala", "source_location": "L11", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "polyglothash", "label": "PolyglotHash.scala", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L1"}, {"id": "polyglothash_polyglothash", "label": "PolyglotHash", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L6"}, {"id": "polyglothash_polyglothash_hash", "label": ".hash()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L208"}, {"id": "polyglothash_polyglothash_pieceindex", "label": ".pieceIndex()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L238"}, {"id": "polyglothash_polyglothash_squareindex", "label": ".squareIndex()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L249"}, {"id": "polyglothash_polyglothash_cancaptureenpassant", "label": ".canCaptureEnPassant()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L252"}], "edges": [{"source": "polyglothash", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L3", "weight": 1.0}, {"source": "polyglothash", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L4", "weight": 1.0}, {"source": "polyglothash", "target": "polyglothash_polyglothash", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L6", "weight": 1.0}, {"source": "polyglothash_polyglothash", "target": "polyglothash_polyglothash_hash", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L208", "weight": 1.0}, {"source": "polyglothash_polyglothash", "target": "polyglothash_polyglothash_pieceindex", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L238", "weight": 1.0}, {"source": "polyglothash_polyglothash", "target": "polyglothash_polyglothash_squareindex", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L249", "weight": 1.0}, {"source": "polyglothash_polyglothash", "target": "polyglothash_polyglothash_cancaptureenpassant", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L252", "weight": 1.0}, {"source": "polyglothash_polyglothash_hash", "target": "polyglothash_polyglothash_pieceindex", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L213", "weight": 1.0}, {"source": "polyglothash_polyglothash_hash", "target": "polyglothash_polyglothash_squareindex", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L213", "weight": 1.0}, {"source": "polyglothash_polyglothash_hash", "target": "polyglothash_polyglothash_cancaptureenpassant", "relation": "calls", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala", "source_location": "L228", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "colortest", "label": "ColorTest.scala", "file_type": "code", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/ColorTest.scala", "source_location": "L1"}, {"id": "colortest_colortest", "label": "ColorTest", "file_type": "code", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/ColorTest.scala", "source_location": "L6"}], "edges": [{"source": "colortest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/ColorTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "colortest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/ColorTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "colortest", "target": "colortest_colortest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/test/scala/de/nowchess/api/board/ColorTest.scala", "source_location": "L6", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "transpositiontable", "label": "TranspositionTable.scala", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala", "source_location": "L1"}, {"id": "transpositiontable_ttentry", "label": "TTEntry", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala", "source_location": "L10"}, {"id": "transpositiontable_transpositiontable", "label": "TranspositionTable", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala", "source_location": "L18"}, {"id": "transpositiontable_transpositiontable_probe", "label": ".probe()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala", "source_location": "L24"}, {"id": "transpositiontable_transpositiontable_store", "label": ".store()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala", "source_location": "L30"}, {"id": "transpositiontable_transpositiontable_clear", "label": ".clear()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala", "source_location": "L36"}], "edges": [{"source": "transpositiontable", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala", "source_location": "L3", "weight": 1.0}, {"source": "transpositiontable", "target": "transpositiontable_ttentry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala", "source_location": "L10", "weight": 1.0}, {"source": "transpositiontable", "target": "transpositiontable_transpositiontable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala", "source_location": "L18", "weight": 1.0}, {"source": "transpositiontable_transpositiontable", "target": "transpositiontable_transpositiontable_probe", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala", "source_location": "L24", "weight": 1.0}, {"source": "transpositiontable_transpositiontable", "target": "transpositiontable_transpositiontable_store", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala", "source_location": "L30", "weight": 1.0}, {"source": "transpositiontable_transpositiontable", "target": "transpositiontable_transpositiontable_clear", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala", "source_location": "L36", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "moveorderingtest", "label": "MoveOrderingTest.scala", "file_type": "code", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/MoveOrderingTest.scala", "source_location": "L1"}, {"id": "moveorderingtest_moveorderingtest", "label": "MoveOrderingTest", "file_type": "code", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/MoveOrderingTest.scala", "source_location": "L10"}], "edges": [{"source": "moveorderingtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/MoveOrderingTest.scala", "source_location": "L3", "weight": 1.0}, {"source": "moveorderingtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/MoveOrderingTest.scala", "source_location": "L4", "weight": 1.0}, {"source": "moveorderingtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/MoveOrderingTest.scala", "source_location": "L5", "weight": 1.0}, {"source": "moveorderingtest", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/MoveOrderingTest.scala", "source_location": "L6", "weight": 1.0}, {"source": "moveorderingtest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/MoveOrderingTest.scala", "source_location": "L7", "weight": 1.0}, {"source": "moveorderingtest", "target": "org", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/MoveOrderingTest.scala", "source_location": "L8", "weight": 1.0}, {"source": "moveorderingtest", "target": "moveorderingtest_moveorderingtest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/src/test/scala/de/nowchess/bot/MoveOrderingTest.scala", "source_location": "L10", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "start", "label": "start.ps1", "file_type": "code", "source_file": "modules/bot/python/start.ps1", "source_location": "L1"}], "edges": []}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "build_gradle", "label": "build.gradle.kts", "file_type": "code", "source_file": "modules/api/build.gradle.kts", "source_location": "L1"}], "edges": []}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "castlingrights", "label": "CastlingRights.scala", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L1"}, {"id": "castlingrights_castlingrights", "label": "CastlingRights", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L12"}, {"id": "castlingrights_castlingrights_hasanyrights", "label": ".hasAnyRights()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L21"}, {"id": "castlingrights_castlingrights_hasrights", "label": ".hasRights()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L27"}, {"id": "castlingrights_castlingrights_revokecolor", "label": ".revokeColor()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L34"}, {"id": "castlingrights_castlingrights_revokekingside", "label": ".revokeKingSide()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L41"}, {"id": "castlingrights_castlingrights_revokequeenside", "label": ".revokeQueenSide()", "file_type": "code", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L48"}], "edges": [{"source": "castlingrights", "target": "castlingrights_castlingrights", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L12", "weight": 1.0}, {"source": "castlingrights_castlingrights", "target": "castlingrights_castlingrights_hasanyrights", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L21", "weight": 1.0}, {"source": "castlingrights_castlingrights", "target": "castlingrights_castlingrights_hasrights", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L27", "weight": 1.0}, {"source": "castlingrights_castlingrights", "target": "castlingrights_castlingrights_revokecolor", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L34", "weight": 1.0}, {"source": "castlingrights_castlingrights", "target": "castlingrights_castlingrights_revokekingside", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L41", "weight": 1.0}, {"source": "castlingrights_castlingrights", "target": "castlingrights_castlingrights_revokequeenside", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L48", "weight": 1.0}, {"source": "castlingrights", "target": "castlingrights_castlingrights", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala", "source_location": "L52", "weight": 1.0}]}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{"nodes": [{"id": "evaluationnnue", "label": "EvaluationNNUE.scala", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/EvaluationNNUE.scala", "source_location": "L1"}, {"id": "evaluationnnue_evaluationnnue", "label": "EvaluationNNUE", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/EvaluationNNUE.scala", "source_location": "L6"}, {"id": "evaluationnnue_evaluationnnue_evaluate", "label": ".evaluate()", "file_type": "code", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/EvaluationNNUE.scala", "source_location": "L15"}], "edges": [{"source": "evaluationnnue", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/EvaluationNNUE.scala", "source_location": "L3", "weight": 1.0}, {"source": "evaluationnnue", "target": "de", "relation": "imports", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/EvaluationNNUE.scala", "source_location": "L4", "weight": 1.0}, {"source": "evaluationnnue", "target": "evaluationnnue_evaluationnnue", "relation": "contains", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/EvaluationNNUE.scala", "source_location": "L6", "weight": 1.0}, {"source": "evaluationnnue_evaluationnnue", "target": "evaluationnnue_evaluationnnue_evaluate", "relation": "method", "confidence": "EXTRACTED", "source_file": "modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/EvaluationNNUE.scala", "source_location": "L15", "weight": 1.0}]}
|
||||
-1
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user