Skip to content

Commit 33d14d9

Browse files
hyperpolymathclaude
andcommitted
feat: Lua nested tables, enriched game clades, icon asset
Lua parser rewrite: - Handles deeply nested tables up to 8 levels (DST, Garry's Mod, Factorio) - Bracket-quoted keys: ["server-name"], [1] - Block comments: --[[ ... ]] - Proper brace-depth tracking with path stack - Type detection: bool, int, float, string, nil - 3 new integration tests (nested tables, bracket keys, block comments) Game profile clades (17 enriched): - Added [clade-game-specific]: primary port, probe protocol, config format - Added [clade-panel-customisation]: browser columns, editor format, dashboard metrics, log filter presets Icon: - assets/icon.svg: server rack with gamepad overlay (dark theme) - assets/icon-256.png: 256x256 export for .desktop entry Updated EXPLAINME.adoc: removed Lua nested table caveat, updated normalizer status to reflect real StorageRegenerator. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent f01edcd commit 33d14d9

22 files changed

Lines changed: 570 additions & 100 deletions

File tree

EXPLAINME.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ The probe engine uses table-driven port scanning with protocol-specific handshak
1212
Extracted configs are serialised into A2ML and stored in a dedicated VeriSimDB instance (port 8090) as octads with 8 modalities.
1313
See `src/interface/ffi/src/probe.zig` for the probe implementation and `profiles/*.a2ml` for game definitions.
1414

15-
**Caveat:** "Any" means any game with a known `.a2ml` profile -- unknown games get best-effort fingerprinting but no structured config extraction. Lua table parsing handles simple key-value patterns but not deeply nested tables. VeriSimDB normaliser regeneration uses a `SummaryRegenerator` dry-run stub (in `verisimdb/rust-core/verisim-normalizer/src/regeneration.rs`, not in this repo) -- production use requires wiring real storage backends for the 8 modality regenerators.
15+
**Caveat:** "Any" means any game with a known `.a2ml` profile -- unknown games get best-effort fingerprinting but no structured config extraction. Lua table parsing handles nested tables up to 8 levels deep (bracket-quoted keys, block comments, `local` prefixes) -- covers DST, Garry's Mod, and Factorio configs. VeriSimDB normaliser now uses a real `StorageRegenerator` with OctadStore-backed cross-modal regeneration (Document/Semantic/Graph/Vector transformations, cosine drift measurement).
1616

1717
[cols="1,2"]
1818
|===

assets/icon-256.png

24 KB
Loading

assets/icon.svg

Lines changed: 44 additions & 0 deletions
Loading

panel-clades/gsa-game-ark/GsaGameark.a2ml

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33

44
[clade-metadata]
55
id = "gsa-game-ark"
6-
name = "GSA ARK: Survival Evolved"
7-
short-name = "ARK: Survival Evolved"
6+
name = "GSA ark"
7+
short-name = "ark"
88
version = "1.0.0"
99
kind = "game-profile"
1010
icon = "gamepad"
11-
description = "Game profile clade for ARK: Survival Evolved — inherits from gsa-game"
11+
description = "Game profile clade for ark — inherits from gsa-game"
1212

1313
[clade-traits]
1414
has-backend = true
@@ -18,3 +18,15 @@ has-real-time = true
1818

1919
[clade-taxonomy]
2020
inherits-from = "gsa-game"
21+
22+
[clade-game-specific]
23+
primary-port = "7777/UDP"
24+
probe-protocol = "steam-query"
25+
config-format = "ini"
26+
27+
[clade-panel-customisation]
28+
# Panels inherited from gsa-game parent, with game-specific overrides:
29+
server-browser-columns = ["name", "players", "map", "version", "latency"]
30+
config-editor-format = "ini"
31+
health-dashboard-metrics = ["players", "tps", "memory", "cpu"]
32+
log-viewer-filter-presets = ["error", "warning", "chat", "join/leave"]

panel-clades/gsa-game-barotrauma/GsaGamebarotrauma.a2ml

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33

44
[clade-metadata]
55
id = "gsa-game-barotrauma"
6-
name = "GSA Barotrauma"
7-
short-name = "Barotrauma"
6+
name = "GSA barotrauma"
7+
short-name = "barotrauma"
88
version = "1.0.0"
99
kind = "game-profile"
1010
icon = "gamepad"
11-
description = "Game profile clade for Barotrauma — inherits from gsa-game"
11+
description = "Game profile clade for barotrauma — inherits from gsa-game"
1212

1313
[clade-traits]
1414
has-backend = true
@@ -18,3 +18,15 @@ has-real-time = true
1818

1919
[clade-taxonomy]
2020
inherits-from = "gsa-game"
21+
22+
[clade-game-specific]
23+
primary-port = "27015/TCP"
24+
probe-protocol = "steam-query"
25+
config-format = "xml"
26+
27+
[clade-panel-customisation]
28+
# Panels inherited from gsa-game parent, with game-specific overrides:
29+
server-browser-columns = ["name", "players", "map", "version", "latency"]
30+
config-editor-format = "xml"
31+
health-dashboard-metrics = ["players", "tps", "memory", "cpu"]
32+
log-viewer-filter-presets = ["error", "warning", "chat", "join/leave"]

panel-clades/gsa-game-burble/GsaGameburble.a2ml

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33

44
[clade-metadata]
55
id = "gsa-game-burble"
6-
name = "GSA Burble"
7-
short-name = "Burble"
6+
name = "GSA burble"
7+
short-name = "burble"
88
version = "1.0.0"
99
kind = "game-profile"
1010
icon = "gamepad"
11-
description = "Game profile clade for Burble — inherits from gsa-game"
11+
description = "Game profile clade for burble — inherits from gsa-game"
1212

1313
[clade-traits]
1414
has-backend = true
@@ -18,3 +18,15 @@ has-real-time = true
1818

1919
[clade-taxonomy]
2020
inherits-from = "gsa-game"
21+
22+
[clade-game-specific]
23+
primary-port = "4443/TCP"
24+
probe-protocol = "groove"
25+
config-format = "toml"
26+
27+
[clade-panel-customisation]
28+
# Panels inherited from gsa-game parent, with game-specific overrides:
29+
server-browser-columns = ["name", "players", "map", "version", "latency"]
30+
config-editor-format = "toml"
31+
health-dashboard-metrics = ["players", "tps", "memory", "cpu"]
32+
log-viewer-filter-presets = ["error", "warning", "chat", "join/leave"]

panel-clades/gsa-game-csgo-cs2/GsaGamecsgo-cs2.a2ml

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33

44
[clade-metadata]
55
id = "gsa-game-csgo-cs2"
6-
name = "GSA Counter-Strike 2"
7-
short-name = "Counter-Strike 2"
6+
name = "GSA csgo-cs2"
7+
short-name = "csgo-cs2"
88
version = "1.0.0"
99
kind = "game-profile"
1010
icon = "gamepad"
11-
description = "Game profile clade for Counter-Strike 2 — inherits from gsa-game"
11+
description = "Game profile clade for csgo-cs2 — inherits from gsa-game"
1212

1313
[clade-traits]
1414
has-backend = true
@@ -18,3 +18,15 @@ has-real-time = true
1818

1919
[clade-taxonomy]
2020
inherits-from = "gsa-game"
21+
22+
[clade-game-specific]
23+
primary-port = "27015/TCP"
24+
probe-protocol = "steam-query"
25+
config-format = "key-value"
26+
27+
[clade-panel-customisation]
28+
# Panels inherited from gsa-game parent, with game-specific overrides:
29+
server-browser-columns = ["name", "players", "map", "version", "latency"]
30+
config-editor-format = "key-value"
31+
health-dashboard-metrics = ["players", "tps", "memory", "cpu"]
32+
log-viewer-filter-presets = ["error", "warning", "chat", "join/leave"]

panel-clades/gsa-game-dayz/GsaGamedayz.a2ml

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33

44
[clade-metadata]
55
id = "gsa-game-dayz"
6-
name = "GSA DayZ"
7-
short-name = "DayZ"
6+
name = "GSA dayz"
7+
short-name = "dayz"
88
version = "1.0.0"
99
kind = "game-profile"
1010
icon = "gamepad"
11-
description = "Game profile clade for DayZ — inherits from gsa-game"
11+
description = "Game profile clade for dayz — inherits from gsa-game"
1212

1313
[clade-traits]
1414
has-backend = true
@@ -18,3 +18,15 @@ has-real-time = true
1818

1919
[clade-taxonomy]
2020
inherits-from = "gsa-game"
21+
22+
[clade-game-specific]
23+
primary-port = "2302/UDP"
24+
probe-protocol = "steam-query"
25+
config-format = "xml"
26+
27+
[clade-panel-customisation]
28+
# Panels inherited from gsa-game parent, with game-specific overrides:
29+
server-browser-columns = ["name", "players", "map", "version", "latency"]
30+
config-editor-format = "xml"
31+
health-dashboard-metrics = ["players", "tps", "memory", "cpu"]
32+
log-viewer-filter-presets = ["error", "warning", "chat", "join/leave"]

panel-clades/gsa-game-dst/GsaGamedst.a2ml

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33

44
[clade-metadata]
55
id = "gsa-game-dst"
6-
name = "GSA Don't Starve Together"
7-
short-name = "Don't Starve Together"
6+
name = "GSA dst"
7+
short-name = "dst"
88
version = "1.0.0"
99
kind = "game-profile"
1010
icon = "gamepad"
11-
description = "Game profile clade for Don't Starve Together — inherits from gsa-game"
11+
description = "Game profile clade for dst — inherits from gsa-game"
1212

1313
[clade-traits]
1414
has-backend = true
@@ -18,3 +18,15 @@ has-real-time = true
1818

1919
[clade-taxonomy]
2020
inherits-from = "gsa-game"
21+
22+
[clade-game-specific]
23+
primary-port = "10999/UDP"
24+
probe-protocol = "steam-query"
25+
config-format = "lua"
26+
27+
[clade-panel-customisation]
28+
# Panels inherited from gsa-game parent, with game-specific overrides:
29+
server-browser-columns = ["name", "players", "map", "version", "latency"]
30+
config-editor-format = "lua"
31+
health-dashboard-metrics = ["players", "tps", "memory", "cpu"]
32+
log-viewer-filter-presets = ["error", "warning", "chat", "join/leave"]

panel-clades/gsa-game-factorio/GsaGamefactorio.a2ml

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33

44
[clade-metadata]
55
id = "gsa-game-factorio"
6-
name = "GSA Factorio"
7-
short-name = "Factorio"
6+
name = "GSA factorio"
7+
short-name = "factorio"
88
version = "1.0.0"
99
kind = "game-profile"
1010
icon = "gamepad"
11-
description = "Game profile clade for Factorio — inherits from gsa-game"
11+
description = "Game profile clade for factorio — inherits from gsa-game"
1212

1313
[clade-traits]
1414
has-backend = true
@@ -18,3 +18,15 @@ has-real-time = true
1818

1919
[clade-taxonomy]
2020
inherits-from = "gsa-game"
21+
22+
[clade-game-specific]
23+
primary-port = "34197/UDP"
24+
probe-protocol = "factorio-rcon"
25+
config-format = "json"
26+
27+
[clade-panel-customisation]
28+
# Panels inherited from gsa-game parent, with game-specific overrides:
29+
server-browser-columns = ["name", "players", "map", "version", "latency"]
30+
config-editor-format = "json"
31+
health-dashboard-metrics = ["players", "tps", "memory", "cpu"]
32+
log-viewer-filter-presets = ["error", "warning", "chat", "join/leave"]

0 commit comments

Comments
 (0)