feat(core): event queue, Ethernet, switch, ARP, IPv4, ICMP, routing and firewall

First slice of the TypeScript port of the filius-ipad runtime engine,
with 29 tests ported from the Swift suite. Parts not ported yet throw
NotPortedError instead of guessing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-29 19:22:57 +00:00
co-authored by Claude Opus 5.5
parent 7caee33b3d
commit 696334aa5a
29 changed files with 6199 additions and 11 deletions
+15
View File
@@ -0,0 +1,15 @@
# Words only this repository may use, in addition to the dashboard's
# scripts/code_language_allow.txt. Format: `path::word` (bound to one path or
# path prefix) or a bare word (anywhere). Each entry says why.
#
# The .fls format is Java's XMLEncoder output: its class and property names
# (filius.hardware.knoten.Vermittlungsrechner, GUIKnotenItem, ipAdresse …)
# are fields of a foreign API and keep their German names — in packages/fls
# only.
#
# Java FILIUS class and package names, cited in the provenance header of each
# ported file and in comments that point at the Java behaviour they copy.
vermittlungsrechner
verbindung
netzzugangsschicht
vermittlungsschicht
+22
View File
@@ -0,0 +1,22 @@
#!/bin/sh
# Keeps German code out of this repository — the same rule as in the dashboard
# (its CLAUDE.md). The checker is borrowed from the dashboard this repository is
# a submodule of; CODE_LANGUAGE_ROOT points it at our files, and words only we
# may use (the Java class names of the .fls format) stand in
# scripts/code_language_allow.txt.
#
# Enable: npm run hooks
# Bypass: git commit --no-verify
top="$(git rev-parse --show-toplevel)"
super="$(git rev-parse --show-superproject-working-tree 2>/dev/null)"
checker="$super/scripts/check_code_language.py"
if [ -z "$super" ] || [ ! -f "$checker" ]; then
echo "pre-commit: not inside the dashboard checkout, language check skipped"
exit 0
fi
CODE_LANGUAGE_ROOT="$top" python3 "$checker" --changed HEAD || {
echo
echo "German code in the commit. Glossary: knowledge/plans/CODE_ENGLISH_REFACTOR.md §3 (dashboard)"
echo "Commit anyway: git commit --no-verify"
exit 1
}