Five tools under one repo, all docs organized per DOCS-GUIDE.md: - aalogcli: .NET 4.8 / x86 CliFx CLI for reading System Platform binary logs (*.aaLGX) for LLM debugging, built on aaOpenSource/aaLog. Commands: last, tail, range, unread, fields. Stable JSON envelope under --llm-json. Build template under lib/build/ for rebuilding aaLogReader.dll. - aot: ArchestrA Object Toolkit 2014 v4.0 reference material. Dev guide (Markdown converted from CHM), API reference for the ArchestrA.Toolkit namespace, and the Monitor / Watchdog VS sample solutions. - graccesscli: .NET 4.8 / x86 CliFx CLI that automates Galaxy configuration via the ArchestrA GRAccess COM interop. Includes session daemon, IPC protocol, and llm-json envelope contract. - grdb: SQL/DDL exploration of the Galaxy Repository database. DDL captures, reusable queries, hierarchy / contained-name <-> tag-name translation notes. - histdb: LLM-oriented reference for AVEVA Historian retrieval. INSQL linked-server, extension tables, every wwXxx time-domain extension, every retrieval mode, alarm/event SQL recipes, REST API. Distilled from the 243-page Historian Retrieval Guide. Root contains: - CLAUDE.md: thin index pointing into each tool's README. - DOCS-GUIDE.md: doctrine for organizing docs for LLM consumption. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
aaLogReader build template
Use these three files to rebuild aaLogReader.dll from upstream sources without depending on legacy MSBuild + packages.config. See ../../README.md "Provisioning aaLogReader.dll" for the full step-by-step.
Files
aaLogReader.csproj— SDK-style csproj targetingnet48, referencesNewtonsoft.Json 13.0.3andlog4net 2.0.15. Disables determinism (the upstreamAssemblyInfo.csuses a wildcarded[assembly: AssemblyVersion("1.0.*")]) and pulls in upstream source via relative<Compile Include="..\aaLog\aaLogReader\..." />globs. Two source files are excluded from those globs and replaced by the patched copies below.patched/LogRecord.cs— upstreamaaLogReader/Types/LogRecord.cswithusing System.Runtime.CompilerServices;added.patched/LogHeader.cs— same patch applied toaaLogReader/Types/LogHeader.cs.
Why the patches
The upstream files reference [CallerMemberName] inside an #if NET45_OR_GREATER branch but never using System.Runtime.CompilerServices;. The original csproj only defined NET45_OR_GREATER for TargetFrameworkVersion >= 4.5; targeting net40 left the branch dead and the compiler never tripped. When SDK-style projects target net48, the compiler reaches that branch and fails because the attribute can't be resolved. The patched copies add the missing using directive and otherwise match upstream byte-for-byte.
Layout the recipe expects
$env:TEMP\
aaLog\ (git clone https://github.com/aaOpenSource/aaLog.git)
aaLogReader\
aaLgxReader.cs
aaLogReader.cs
Enum\, Helpers\, Properties\, Struct\, Types\
aaLogReader-build\
aaLogReader.csproj (copied from this folder)
patched\
LogRecord.cs (copied from this folder)
LogHeader.cs (copied from this folder)
dotnet build -c Release from aaLogReader-build/ produces bin/Release/net48/aaLogReader.dll. Copy that into aalogcli/lib/aaLogReader.dll.