Stereom
Copyright (c) 2026 Laminar Engineering LLC. All rights reserved.

This product includes third-party software. The components below travel inside a
distributed Stereom build (the `.gha` plugin and the bundled `Stereom.Cli`); their
copyright and permission notices are reproduced or referenced here as their licenses
require. Build-time-only dependencies (the Grasshopper SDK, test frameworks) are
excluded from the shipped package and are not listed.

This file is a factual attribution record, not legal advice. The LGPL item below is
flagged for a professional review before the first commercial release (BRAND.md §9).

================================================================================
1. GhGL — vendored source
================================================================================
Upstream   https://github.com/mcneel/ghgl
Commit     3d34efa6d51828241b6fdda2883b35cdfbf08f6a (2024-04-12)
Vendored   src/Stereom.Gha/Ghost/vendor/ghgl/ (see ADR 0041, port-and-diverge)
Ships in   Stereom.Gha, net7.0-windows target only (net48 excludes the Ghost tree)
License    MIT

    MIT License

    Copyright (c) 2018 Robert McNeel & Associates

    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:

    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE.

================================================================================
2. CSparse.NET 4.4.0  —  *** LGPL: read before packaging ***
================================================================================
Package    CSparse 4.4.0 (NuGet)
Author     Christian Woltering
Copyright  Copyright Christian Woltering (c) 2012-2026
           The original CSparse C library: Copyright (c) 2006-2022, Timothy A. Davis (as the
           upstream CSparse.NET README carries it; docs/legal/lgpl-review.md §1.1, §2.5)
Project    https://github.com/wo80/CSparse.NET
License    LGPL-2.1. ⚠ The NuGet package metadata declares `LGPL-2.1-only`; the upstream
           repository declares `LGPL-2.1+` (or-later). The discrepancy is unresolved — AJ ruled
           2026-09-19 not to chase it, since ADR 0083 removes the dependency post-v1.
           https://licenses.nuget.org/LGPL-2.1-only  ·  https://github.com/wo80/CSparse.NET
Used by    Stereom.Core -> the multigrid coarsest-level solve when the in-house band
           Cholesky would exceed its memory cap (SPEC Chunk AW-b), and the verifier
           golden reference (ADR 0028). Ships with the bundled Stereom.Cli.

This is the only non-permissive dependency in the shipped set. LGPL-2.1 permits a
proprietary product to link the library, but conditions that permission on the user
being able to replace the library with their own build of it.

    CONSTRAINT ON YAK PACKAGING (v1 item 17 / S1): the Cli ships as separate,
    replaceable assemblies, CSparse.dll its own file beside Stereom.Cli.dll. A
    self-contained publish is allowed (every assembly stays its own file); do NOT
    enable PublishSingleFile, PublishTrimmed or any IL-merge step on Stereom.Cli —
    each one removes the separate, replaceable assembly the license expects. Since
    2026-09-24 scripts/package-yak.ps1 publishes the Cli self-contained and refuses
    a package whose cli\ folder lacks CSparse.dll or a notice (SPEC §Chunk BF).

The full LGPL-2.1 text ships beside this file in cli\ as LGPL-2.1.txt. CSparse.NET's
v4.4.0 source ships there too, as CSparse.NET-4.4.0.zip (LGPL-2.1 section 4): the upstream
archive of tag v4.4.0 (https://github.com/wo80/CSparse.NET, commit
b24fc6aeb59828ddb7727aed56e394f89cff125b), 213,152 bytes, SHA-256
f8f2ffe7f797beed556688d3637003af3000d641047a54f57afd35b70e54fc5b. How to
replace CSparse.dll with your own build: userdocs/third-party.md, published as the
"Third-party software" page of the Stereom docs. Professional review is owed before
commercial release (BRAND.md §9, FTO item).

CSPARSE SHIPS IN V1 (AJ, 2026-10-09; ADR 0083 amended): solve speed on the user's own
hardware outranks removing it now. C3 semi-coarsening removes it from the shipped package
after v1 (it stays in the test project as the verifier golden reference, which is never
distributed). Until that lands, everything in this section is live.

================================================================================
3. ILGPU 1.5.3 and ILGPU.Algorithms 1.5.3
================================================================================
Author     Marcel Koester / ILGPU Project
Copyright  Copyright (c) 2016-2025 ILGPU Project. All rights reserved.
Project    http://www.ilgpu.net/
License    University of Illinois/NCSA Open Source License (permissive)
Used by    Stereom.Solvers.Gpu -> CUDA-accelerated RAP-MG. Ships with Stereom.Cli.
Note       ILGPU carries its own LICENSE-3RD-PARTY.txt; include both files in the
           package.

================================================================================
4. ModelContextProtocol 2.2.0
================================================================================
Copyright  (c) Model Context Protocol, a Series of LF Projects, LLC.
Project    https://csharp.sdk.modelcontextprotocol.io/
License    Apache-2.0
Used by    Stereom.Mcp -> the read-only agent server (ADR 0054; Pro, ADR 0076).
Note       Apache-2.0 section 4(d): if the upstream package carries a NOTICE file,
           its contents must be reproduced in this one.

================================================================================
5. Microsoft packages
================================================================================
License    MIT, (c) Microsoft Corporation
  System.Text.Json 8.0.5                          Gha, Host, Licensing, Cli
  System.Security.Cryptography.ProtectedData 8.0.0  Gha (DPAPI credential store)
  Microsoft.Extensions.Hosting 10.0.11              Mcp

  The thirteen Microsoft DLLs beside the plug-ins (Stereom.Gha and Stereom.Rhp
  share each folder, one copy each). Listed from the plug-in's restored package
  graph (src/Stereom.Gha/obj/project.assets.json) and its build output folders,
  which package-yak.ps1 copies into net48\ and net7.0\ (docs/legal/lgpl-review.md
  §1.1 counts the same thirteen in the built package):
    net7.0\ (Rhino 8 on .NET), 3 files:
      System.Text.Json 8.0.5 · System.Text.Encodings.Web 8.0.0 ·
      System.Security.Cryptography.ProtectedData 8.0.0
    net48\ (Rhino 8 in .NET Framework mode), 10 files: the three above, and
      Microsoft.Bcl.AsyncInterfaces 8.0.0 · System.Buffers 4.5.1 ·
      System.Memory 4.5.5 · System.Numerics.Vectors 4.5.0 ·
      System.Runtime.CompilerServices.Unsafe 6.0.0 ·
      System.Threading.Tasks.Extensions 4.5.4 · System.ValueTuple 4.5.0
  The bundled Cli's .NET runtime files are covered by the runtime's own two
  notices below.
  .NET 8 runtime (Microsoft.NETCore.App, win-x64)   Cli, bundled self-contained (8.0.28 on
                                                    2026-09-24); MIT, (c) .NET Foundation and
                                                    Contributors. Its LICENSE.TXT and
                                                    THIRD-PARTY-NOTICES.TXT ship in cli\ as
                                                    DOTNET-LICENSE.txt and
                                                    DOTNET-THIRD-PARTY-NOTICES.txt.

================================================================================
Not third-party
================================================================================
MurexMesh (src/Stereom.Gha/MurexMesh/Core/) is vendored from C:\git\IsoMeshPlus,
a first-party R&D repo (ADR 0045). See its PROVENANCE.md. No external notice is
owed for it.
