Files
codebase-memory-mcp/THIRD_PARTY.md
T
Thomas Dyar 4d6f2dd34a feat(objectscript): add InterSystems IRIS ObjectScript language support
Add ObjectScript (InterSystems IRIS / Caché) as a supported language,
covering the UDL class format (.cls), MAC/INT routines (.mac/.int/.rtn),
include/macro files (.inc), and IRIS Studio Export XML.

Definition extraction (extract_defs.c): Class, Method, ClassMethod,
Property, Parameter, Index, Trigger (with body text), XData, Storage,
and Query members as graph nodes; base classes from the Extends clause.

Call dispatch resolution (extract_calls.c) — four ObjectScript patterns
that are structurally invisible to text search:
  1. ##class(Pkg.Class).Method()    explicit cross-class call
  2. ..Method()                     relative-dot self-call (the dominant
                                    intra-class form; large impact on
                                    CALLS completeness)
  3. $$$Macro                       macro expansion via a per-project
                                    table built from .inc files
  4. type inference from %New/%OpenId + declared return types

Ensemble production topology (pass_ensemble_routing.c): EnsembleItem
nodes per production component and ROUTES_TO edges resolved from
ProductionDefinition XData, plus WorkMgr .Queue("##class(X).method")
dispatch — all parsed statically at index time, no live IRIS required.

Language detection (language.c): .mac/.int/.rtn map to ObjectScript
routine directly; .cls (shared with Apex) and .inc (shared with BitBake)
are disambiguated by content, defaulting to the existing language on any
doubt so neither Apex nor BitBake detection regresses.

The two new per-project tables (macros, return types) are threaded
through a new internal cbm_extract_file_ex() so the public
cbm_extract_file() signature is unchanged.

The tree-sitter grammars for ObjectScript UDL and routine are vendored
in internal/cbm/vendored/grammars/objectscript_{udl,routine}/ from
https://github.com/intersystems/tree-sitter-objectscript (MIT, ABI 15).

Refs #462

Signed-off-by: Thomas Dyar <tdyar@intersystems.com>
2026-07-11 19:09:43 -04:00

7.6 KiB
Raw Blame History

Third-Party Licenses

This project vendors third-party code. We are grateful to the authors and maintainers of these projects for making their work freely available. Every vendored component directory carries the upstream LICENSE (or COPYING / NOTICE) file alongside the sources.

Tree-sitter Runtime

The tree-sitter C runtime is vendored in internal/cbm/vendored/ts_runtime/.

  • Project: tree-sitter
  • License: MIT
  • Copyright: (c) 2018–2024 Max Brunsfeld

The shared scanner helpers in internal/cbm/vendored/common/ (scanner.h, tag.h) originate from tree-sitter-html (MIT, (c) 2014 Max Brunsfeld) and carry that project's LICENSE in internal/cbm/vendored/common/.

The core runtime headers in internal/cbm/vendored/common/tree_sitter/ (alloc.h, array.h, parser.h) are part of the tree-sitter C runtime (tree-sitter, MIT, (c) 2018 Max Brunsfeld) and carry their own LICENSE in that directory.

Tree-sitter Grammars

159 pre-generated parsers are vendored in internal/cbm/vendored/grammars/<lang>/ (generated parser.c plus scanner.c where applicable, compiled statically). Each grammar is the work of its upstream authors and each grammar directory contains the upstream LICENSE file.

The canonical provenance record — upstream repository, pinned commit, and cross-registry verification status for every grammar — is internal/cbm/vendored/grammars/MANIFEST.md.

License summary:

  • Nearly all grammars are MIT-licensed.
  • clojure (sogaiu/tree-sitter-clojure) is CC0-1.0; fennel is CC0-1.0; jinja2 and just are Apache-2.0; pine is ISC (declared by its upstream).
  • The grammars authored in-house for this project (cobol, form, janet, magma, protobuf, wolfram) are MIT under the project's own license, (c) DeusData. Six further grammars (assembly, cfml, cfscript, dotenv, pine, qml) are self-maintained forks that retain their original upstream authors' licenses — see the manifest for per-grammar provenance.

tree-sitter-objectscript (UDL + routine)

  • Project: intersystems/tree-sitter-objectscript
  • License: MIT
  • Copyright: (c) 2025 InterSystems Corporation
  • Vendored at: internal/cbm/vendored/grammars/objectscript_udl/, internal/cbm/vendored/grammars/objectscript_routine/
  • Pinned commit: a7ffcdf
  • Notes: InterSystems-maintained grammar for the ObjectScript language (InterSystems IRIS / Caché). Vendor-maintained; not in nvim-treesitter or Helix registries. Each scanner.c's upstream #include "../../common/scanner.h" is repointed to a per-directory objectscript_common.h (verbatim copy of upstream common/scanner.h).

Vendored C/C++ Libraries

Library Path License Project
SQLite 3 vendored/sqlite3/ Public Domain sqlite.org
mimalloc vendored/mimalloc/ MIT microsoft/mimalloc
yyjson vendored/yyjson/ MIT ibireme/yyjson
xxHash vendored/xxhash/ BSD-2-Clause Cyan4973/xxHash
TRE vendored/tre/ BSD-2-Clause laurikari/tre
LZ4 internal/cbm/vendored/lz4/ BSD-2-Clause (library files) lz4/lz4
Zstandard internal/cbm/vendored/zstd/ BSD-3-Clause (dual BSD / GPLv2 — BSD selected) facebook/zstd
simplecpp internal/cbm/vendored/simplecpp/ 0BSD danmar/simplecpp
Verstable internal/cbm/vendored/verstable/ MIT JacksonAllan/Verstable
wyhash internal/cbm/vendored/wyhash/ Unlicense (public domain) wangyi-fudan/wyhash

The graph-UI HTTP server is a first-party implementation (src/ui/httpd.c + src/ui/http_server.c) — no third-party HTTP library is used.

Embedded Model Data

Semantic vector search uses static token embeddings derived from the nomic-embed-code model, vendored in vendored/nomic/:

See vendored/nomic/NOTICE for the exact derivation procedure (per-token inference + int8 quantization via scripts/extract_nomic_vectors.py).

Hybrid LSP — Reference Language Servers

The Hybrid LSP layer (internal/cbm/lsp/) is an original C implementation written for this project. It contains no source code from any language server. Its type-resolution behavior is structurally inspired by, and validated for output compatibility against, the published behavior of the following language servers and language specifications. They are listed here as acknowledgment; their licenses are noted for reference:

Language Reference implementation / specification Upstream license
TypeScript / JavaScript tsserver (microsoft/TypeScript), typescript-go Apache-2.0
Python pyright MIT
Go gopls (golang/tools) BSD-3-Clause
PHP PHP language reference + Composer PSR-4 autoloading specification —
C# Roslyn (dotnet/roslyn) MIT
C / C++ clangd (llvm/llvm-project) Apache-2.0 WITH LLVM-exception
Java Java Language Specification; output parity with Eclipse JDT LS EPL-2.0 (reference only)
Kotlin Kotlin language specification; fwcd/kotlin-language-server MIT
Rust rust-analyzer MIT OR Apache-2.0

Standard-library type data

The stdlib type registries in internal/cbm/lsp/generated/ were produced as follows:

  • Python (python_stdlib_data.c) — generated from python/typeshed type stubs (commit a7912d521e16ff63caf7a8b64b9072542be36777), Apache-2.0, (c) the typeshed contributors. The generator is scripts/gen-py-stdlib.py.
  • Go (go_stdlib_data.c) — generated by introspecting the public API of the Go standard library (golang/go, BSD-3-Clause).
  • Java, Kotlin, C#, PHP, C/C++, Rust — hand-curated from public API documentation and language specifications; no upstream source code was extracted or transcribed.

Embedded Graph UI

Release binaries built with --with-ui embed the compiled graph-ui/ frontend bundle. Its npm dependencies (React, three.js, @react-three/*, radix-ui, lucide-react, tailwindcss, and friends) are all under permissive licenses (MIT / ISC / Apache-2.0 / Zlib); the exact set is recorded in graph-ui/package.json and graph-ui/package-lock.json, and the per-package license texts of the production bundle are appended to the THIRD_PARTY_NOTICES.md shipped inside the -ui release archives (generated by scripts/gen-ui-licenses.py).