Skip to content

Releases: netresearch/t3x-nr-llm-compat

v0.1.3

Choose a tag to compare

@github-actions github-actions released this 21 Aug 16:33
v0.1.3
e690aa3

Changes

  • Merge pull request #24 from netresearch/release/0.1.3
  • Merge pull request #23 from netresearch/chore/nr-llm-033

Installation

composer require netresearch/nr-llm-compat

Publication status

Security

All release artifacts are signed with Sigstore keyless signing.

Verify signatures

cosign verify-blob \
  --bundle nr-llm-compat-0.1.3.zip.sigstore.json \
  --certificate-identity-regexp "https://github.com/netresearch/.*" \
  --certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
  nr-llm-compat-0.1.3.zip

Verify checksums

sha256sum -c checksums.txt

Software Bill of Materials (SBOM)

SBOMs are provided in both SPDX and CycloneDX formats for supply chain transparency.

v0.1.2

Choose a tag to compare

@github-actions github-actions released this 21 Aug 06:57
v0.1.2
0d8288b

Changes

  • Merge pull request #22 from netresearch/release/0.1.2
  • Merge pull request #21 from netresearch/chore/nr-llm-032

Installation

composer require netresearch/nr-llm-compat

Publication status

Security

All release artifacts are signed with Sigstore keyless signing.

Verify signatures

cosign verify-blob \
  --bundle nr-llm-compat-0.1.2.zip.sigstore.json \
  --certificate-identity-regexp "https://github.com/netresearch/.*" \
  --certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
  nr-llm-compat-0.1.2.zip

Verify checksums

sha256sum -c checksums.txt

Software Bill of Materials (SBOM)

SBOMs are provided in both SPDX and CycloneDX formats for supply chain transparency.

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 20 Aug 16:54
v0.1.1
79f668b

Highlights

Requires nr-llm ^0.31, which is where the bridges' work becomes visible. Every bridge in this extension already tags the calls it reroutes with the extension key of the third-party extension it stands in for. Until nr-llm 0.31.0 that tag only reached the telemetry log; now it sits next to the money, and the Analytics module breaks usage and cost down per calling extension. This extension is what makes that column non-empty on a real installation, so it should not be the package holding an installation back from reading it (@CybotTM).

A constraint mismatch this bump surfaced. ext_emconf.php still declared nr_llm as 0.29.0-0.99.99 while composer.json required ^0.30. In Composer mode the emconf range is not what resolves, which is exactly why the two could drift apart unnoticed — a classic-mode installation would have accepted a version the Composer-mode one refused. They now say the same thing (@CybotTM).

Upgrading

A patch release: a dependency's minor is not this extension's minor. No bridge changed, no contract changed, nothing in the interception behaviour moved. Requires nr-llm ^0.31.

Installation

composer require netresearch/nr-llm-compat

Publication status

Security

All release artifacts are signed with Sigstore keyless signing.

Verify signatures

cosign verify-blob \
  --bundle nr-llm-compat-0.1.1.zip.sigstore.json \
  --certificate-identity-regexp "https://github.com/netresearch/.*" \
  --certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
  nr-llm-compat-0.1.1.zip

Verify checksums

sha256sum -c checksums.txt

Software Bill of Materials (SBOM)

SBOMs are provided in both SPDX and CycloneDX formats for supply chain transparency.

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 18 Aug 22:26
v0.1.0
132c7b8

Highlights

First release: third-party AI extensions run through nr-llm without being modified. A TYPO3 installation that uses several AI extensions ends up with several provider configurations, several API keys and several places where cost appears — one per extension. This extension removes that duplication from the outside: it intercepts the provider calls of supported third-party extensions at runtime and routes them through nr-llm, so the installation has one provider configuration, one key store and one usage log. The third-party packages stay exactly as they came from Packagist; nothing is forked, patched or vendored (@CybotTM).

Five integrations ship in 0.1.0:

Extension Package How it is intercepted
AI SEO Helper passionweb/ai-seo-helper DI class replacement
T3AI nitsan/ns-t3ai DI class replacement, both OpenAI-calling methods
AI File Metadata mfd/ai-filemetadata DI class replacement, vision path
Texter in2code/texter the extension's own provider hook
Exception Solver eliashaeussler/typo3-solver the extension's own provider setting

Nothing is intercepted until you say so, and a broken assumption disables rather than breaks. Every integration is opt-in per extension key. Before an interception is wired, the class, method and property contracts it depends on are verified by reflection against the version actually installed, and the Composer version range is checked. When an upstream refactoring invalidates a contract, the integration reports itself as inactive and the third-party extension keeps working as it always did — the alternative, a fatal error on a site whose only mistake was updating a dependency, is not an option. nrllm:compat:status prints the state of every known integration and exits non-zero when an enabled one cannot activate.

Fail closed. A bridge never falls back to the third-party extension's own provider, and it never reads that extension's API key. If nr-llm cannot serve the request, the request fails — silently spending on a second, unmanaged provider account would defeat the point of routing through nr-llm at all.

Notable details

  • Prompt construction stays original code wherever possible: the ai_seo_helper and ns_t3ai bridges call the third-party prompt builders rather than reimplementing them, so per-request overrides and placeholders behave as upstream.
  • ai_filemetadata's token usage is mirrored back into its own TokenUsageService, so its dashboard widgets keep showing numbers.
  • typo3-solver cannot share a Composer resolution with ai-filemetadata — their openai-php/client constraints are disjoint. Its integration is therefore tested in a dedicated environment under Tests/SolverEnvironment/ that installs the unmodified package, rather than being left untested or dropped.
  • TYPO3 13.4 and 14.3 are both supported. passionweb/ai-seo-helper has no v14 release, so on 14.3 its integration reports NOT INSTALLED — exactly as it would on a real site.

Requirements

TYPO3 ^13.4 || ^14.3, PHP ^8.2, and nr-llm ^0.30 (0.1.1 raises this to ^0.31).

Installation

composer require netresearch/nr-llm-compat

Publication status

Security

All release artifacts are signed with Sigstore keyless signing.

Verify signatures

cosign verify-blob \
  --bundle nr-llm-compat-0.1.0.zip.sigstore.json \
  --certificate-identity-regexp "https://github.com/netresearch/.*" \
  --certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
  nr-llm-compat-0.1.0.zip

Verify checksums

sha256sum -c checksums.txt

Software Bill of Materials (SBOM)

SBOMs are provided in both SPDX and CycloneDX formats for supply chain transparency.