EPHEMERIS CORE MANAGER 0.2.1
=============================

Purpose
-------

The manager installs the published ephemeris calculation core in the
programming language selected by the user. On Windows it is a self-contained
native installation assistant. It starts no local web server and does not open
a browser when the application starts.

The assistant guides the user through four understandable steps:

1. Select the programming language, documentation language, and destination.
2. Find the required compiler or runtime automatically. If it is missing, the
   assistant offers, depending on the language, automatic free installation
   with Windows Package Manager, the official download page, or selection of
   an existing program folder.
   Fortran is installed automatically from the free WinLibs package. It
   contains GNU Fortran (gfortran), GCC, and MinGW-w64 and is the same
   toolchain used to test the Fortran calculation core on Windows.
3. Select shared planet and N16 data and the local calculation-core test. The
   expected test duration and possible N16 generation time are shown first.
4. Review a complete summary and start installation.

The graphical interface requires neither a command nor a typed “toolchain”
path. Toolchain is the technical collective term for a compiler, runtime, and
any additional programs needed to test the source. It remains only in the CLI
documentation. x64 and ARM64 are detected automatically. The manager never
installs into a programming-language directory.
Every button shows a short explanatory tooltip when the pointer rests on it.

Validation chain
----------------

1. The language package is obtained from a local offline source or over
   HTTPS.
2. Its complete SHA-256 value must match the release manifest.
3. Unsafe ZIP paths, symbolic links, and oversized archives are rejected.
4. Required files and the correctly localized help must exist.
5. The actual compiler or runtime on the target machine is executed, or
   safely checked for existence where the program is an IDE only.
6. Where a reliable command is recorded, a local compile or syntax check runs
   in a disposable directory. Before it starts, the manager gives an estimated
   duration. The user can run the self-test, skip it, or cancel installation.
7. Only then is the package activated. The previous version remains available
   for rollback.

Skipping omits only the optional compile or syntax commands. SHA-256,
archive-path, required-file, and toolchain checks are safety checks and cannot
be skipped. The installation record and target-system report explicitly state
whether the self-test passed, was skipped, or was not available for the
package. The estimated duration is a first-run guide. System load, antivirus
software, and initial toolchain setup can make it longer. Each individual
self-test stops after no more than ten minutes.

The SHA-256 value binds the installation to the exact source package that
passed 20 astronomical reference rows during release. The manager does not
silently repeat the complete run for every programming language.

Shared data
-----------

Planet data for 1850-01-01 through 2150-01-01 is installed once under
core-data/planets and shared by every language core. N16 is not distributed
as a prepared data table. The manager downloads the generator matching the
operating system and architecture, verifies its SHA-256 value, and creates
N16 locally under core-data/n16.

CLI
---

With no arguments, the native Windows installation assistant starts.

EphemerisCoreManager [gui] [common options]
EphemerisCoreManager list [common options]
EphemerisCoreManager status [common options]
EphemerisCoreManager probe --language ID [--toolchain PATH]
EphemerisCoreManager install --language ID [--toolchain PATH] [--skip-self-test]
EphemerisCoreManager verify --language ID
EphemerisCoreManager rollback --language ID
EphemerisCoreManager uninstall --language ID
EphemerisCoreManager planets
EphemerisCoreManager n16 [--start YYYY-MM-DD] [--stop YYYY-MM-DD]
EphemerisCoreManager report [--output FILE]
EphemerisCoreManager update

--root PATH
    Sets the data directory fully managed by the application.

--source-root PATH
    Uses a local offline source containing downloads/.

--locale de|en
    Selects the German or English language package.

--portable
    Places the data directory next to the program.

--language ID
    Selects the package ID or full language name.

--toolchain PATH
    Specifies a toolchain executable or its directory when normal path
    discovery cannot find it.

--skip-self-test
    Skips the announced optional local compile or syntax self-test during
    install. Mandatory safety and structure checks still run. Without this
    option, the CLI announces the estimated duration and runs the self-test.

--start and --stop
    Set the N16 period. The default and required minimum interval is
    1850-01-01 through 2150-01-01. An earlier start or later stop is accepted.
    A shorter interval is rejected before any download starts.

report --output FILE
    Creates a target-system report and a SHA-256 file. The report contains no
    installation ID, user name, computer name, managed root, or toolchain
    path. Linux and macOS users can return this report for later project
    verification.

--help and -h
    Display the complete command-line help.

Updates and privacy
-------------------

The at-most-daily update check sends only a randomly generated UUID4 as
installation_id. It contains no hardware, account, computer, email, or licence
data. On Windows it is stored in a file and mirrored per user in HKCU. A
network failure starts no deadline. Only successful detection of a newer
version starts the 90-day period. Package downloads contain no installation
ID.

Amrum Software is a project and collective name for the software offerings of
Jost Jahn.
