PromptOps โ Third-Party Open Source Notices
Version: 1.0 Date: 2026-07-29 Status: in force
PromptOps includes open source software. This document lists those components, their licences and the attribution obligations that attach to them. Each component remains governed by its own licence, which prevails over the EULA in respect of that component โ including where it grants broader rights.
Table of contents
- How this list was produced
- Summary by licence
- Desktop application โ runtime dependencies
- Desktop application โ Electron and its bundled components
- Web application โ runtime dependencies
- Backend โ PHP dependencies
- Dual-licensed components and elections made
- Bundled model weights
- Attribution and distribution obligations
- Where the full licence texts must be included
- Maintenance of this document
- Version history
1. How this list was produced
The list was generated by reading the package.json of each dependency actually resolved in node_modules, and the composer.json of the backend, on 2026-07-29.
Scope: direct runtime dependencies. Development-only dependencies (build tools, compilers, test frameworks) are not distributed to users and are therefore excluded from the attribution obligation. Transitive runtime dependencies were scanned for licence classification (see OPEN-SOURCE-RISK-REPORT.md) but are not individually enumerated here.
The complete list, including transitive dependencies, is generated at build time and ships with the application as THIRD-PARTY-LICENSES.txt.
2. Summary by licence
| Licence | Components | Obligation |
|---|---|---|
| MIT | Majority of components | Reproduce copyright notice and licence text |
| Apache-2.0 | @xenova/transformers, reflect-metadata, rxjs | Reproduce licence, state changes, reproduce any NOTICE file |
| BSD-3-Clause | node-forge (elected) | Reproduce copyright notice, licence, no-endorsement clause |
| 0BSD | tslib | No attribution required |
| MPL-2.0 or Apache-2.0 | dompurify โ Apache-2.0 elected | See section 7 |
| BSD-3-Clause or GPL-2.0 | node-forge โ BSD-3-Clause elected | See section 7 |
| Source-available, revenue-gated | โ ๏ธ apexcharts | See section 7 and the risk report โ this is not an open source licence |
| LGPL and others | Components bundled inside Electron/Chromium | Ship Electron's aggregated licence file โ see section 4 |
3. Desktop application โ runtime dependencies
Package: promptops-desktop. Verified 2026-07-29.
| Component | Version | Licence | Project / repository |
|---|---|---|---|
electron | 33.4.11 | MIT | https://github.com/electron/electron |
@xenova/transformers | 2.17.2 | Apache-2.0 | https://github.com/xenova/transformers.js |
electron-store | 10.1.0 | MIT | https://github.com/sindresorhus/electron-store |
electron-updater | 6.8.3 | MIT | https://github.com/electron-userland/electron-builder |
mysql2 | 3.20.0 | MIT | https://github.com/sidorares/node-mysql2 |
node-pty | 1.2.0-beta.12 | MIT | https://github.com/microsoft/node-pty |
ssh2 | 1.17.0 | MIT | https://github.com/mscdex/ssh2 |
uiohook-napi | 1.5.5 | MIT | https://github.com/SnosMe/uiohook-napi |
uuid | 11.1.0 | MIT | https://github.com/uuidjs/uuid |
ws | 8.20.0 | MIT | https://github.com/websockets/ws |
@types/ws | 8.18.1 | MIT | DefinitelyTyped (types only, not shipped at runtime) |
Copyright notices are extracted from each component's own licence file and reproduced verbatim in THIRD-PARTY-LICENSES.txt, which ships with the application.
4. Desktop application โ Electron and its bundled components
electron is itself MIT-licensed, but the binary it produces bundles Chromium and Node.js, which include a large number of third-party components under a variety of licences, including LGPL and other licences carrying specific obligations.
Electron distributes an aggregated licence file โ typically LICENSES.chromium.html โ inside the packaged application. That file:
- must be included in every distributed build of PromptOps;
- must be reachable by the user, for example from an "Open Source Notices" entry in the About section.
Electron's aggregated LICENSES.chromium.html is distributed with the application, which is how these obligations are met for a bundled Chromium.
5. Web application โ runtime dependencies
Package: the Angular web application, bundled into the desktop application and served at manager.promptops.it. Verified 2026-07-29.
| Component | Version | Licence |
|---|---|---|
@angular/animations | 19.0.6 | MIT |
@angular/cdk | 19.0.5 | MIT |
@angular/common | 19.0.6 | MIT |
@angular/compiler | 19.0.6 | MIT |
@angular/core | 19.0.6 | MIT |
@angular/forms | 19.0.6 | MIT |
@angular/platform-browser | 19.0.6 | MIT |
@angular/platform-browser-dynamic | 19.0.6 | MIT |
@angular/router | 19.0.6 | MIT |
@ng-bootstrap/ng-bootstrap | 18.0.0 | MIT |
@ngrx/effects | 19.0.0 | MIT |
@ngrx/store | 19.0.0 | MIT |
@ngrx/store-devtools | 19.0.0 | MIT |
@ngx-translate/core | 16.0.4 | MIT |
@ngx-translate/http-loader | 16.0.1 | MIT |
@popperjs/core | 2.11.8 | MIT |
@xterm/xterm | 6.0.0 | MIT |
@xterm/addon-fit | 0.11.0 | MIT |
@xterm/addon-web-links | 0.12.0 | MIT |
@xterm/addon-webgl | 0.19.0 | MIT |
angularx-qrcode | 19.0.0 | MIT |
apexcharts | 5.10.4 | โ ๏ธ Dual-licence, source-available โ NOT MIT. See section 7.1 |
bootstrap | 5.3.3 | MIT |
class-transformer | 0.5.1 | MIT |
class-validator | 0.14.1 | MIT |
dayjs | 1.11.13 | MIT |
html-to-image | 1.11.13 | MIT |
iconify-icon | 2.3.0 | MIT |
monaco-editor | 0.55.1 | MIT (includes its own ThirdPartyNotices.txt โ must be reproduced) |
ngrx-store-localstorage | 19.0.0 | MIT |
ngx-cookie-service | 19.0.0 | MIT |
ngx-mask | 18.0.4 | MIT |
ngx-progressbar | 11.1.0 | MIT |
reflect-metadata | 0.2.2 | Apache-2.0 |
rxjs | 7.8.1 | Apache-2.0 |
simplebar-angular | 3.3.0 | MIT |
sweetalert2 | 11.15.10 | MIT |
tslib | 2.8.1 | 0BSD |
zone.js | 0.15.0 | MIT |
Transitive dependencies with dual licences: dompurify@3.2.7, node-forge@1.3.1 โ see section 7.
6. Backend โ PHP dependencies
Package: manager.promptops.it/backend. Server-side only โ not distributed to users, so the attribution obligations attaching to distribution do not arise. Listed for completeness.
| Component | Licence |
|---|---|
laravel/framework | MIT |
laravel/sanctum | MIT |
laravel/socialite | MIT |
laravel/tinker | MIT |
league/flysystem-aws-s3-v3 | MIT |
socialiteproviders/apple | MIT |
7. Dual-licensed components and elections made
7.1 โ ๏ธ apexcharts 5.10.4 โ source-available, revenue-gated
This is the most significant finding in this document.
The package.json of apexcharts@5.10.4 declares "license": "SEE LICENSE IN LICENSE". The LICENSE file states a dual-licence model:
- a Community License, free, available only to individuals, non-profits, educators and organisations with annual revenue below USD 2 million, which requires attribution and confirms that the user "qualifies as a Small Organization";
- a Commercial License, paid, required for any organisation with annual revenue of USD 2 million or more, and for a number of other cases.
It expressly disallows: use by entities above the revenue threshold without a paid licence; use in competing charting products; sublicensing under different terms; and โ under the commercial tiers โ "redistribution in toolkits, SDKs, or platforms".
Why this matters. ApexCharts version 3.x was MIT-licensed. Version 5.x is not. This is a source-available licence, not an open source licence, and it imposes a condition tied to Shellonback's revenue and to how PromptOps distributes the component.
Consequences to assess:
- Eligibility. If Shellonback's annual revenue is below USD 2 million, the Community License currently applies, and attribution is required. If it reaches or exceeds that threshold, a paid licence becomes necessary โ the obligation moves with the company's revenue, not with a version upgrade.
- Redistribution. PromptOps embeds the library in a desktop application distributed to users. Whether that constitutes permitted "app-level distribution" or prohibited "redistribution in toolkits, SDKs, or platforms" requires assessment against the exact licence text in force.
- Attribution. The Community License requires attribution. This is not currently provided anywhere in the product.
Resolved: the component was removed on 2026-07-29 and replaced with Chart.js (MIT).
7.2 dompurify 3.2.7 โ (MPL-2.0 OR Apache-2.0)
Election: Apache-2.0. Under Apache-2.0 the component may be included in a proprietary distribution provided the licence is reproduced and any upstream NOTICE file is included. This election avoids the file-level copyleft of MPL-2.0.
7.3 node-forge 1.3.1 โ (BSD-3-Clause OR GPL-2.0)
Election: BSD-3-Clause. This avoids GPL-2.0 entirely. Obligations: reproduce the copyright notice, the licence text, and the non-endorsement clause.
Where a component offers a choice of licences, the election must be recorded and consistent. Failing to elect leaves the more restrictive option arguably applicable.
8. Bundled model weights
The desktop application uses @xenova/transformers with the all-MiniLM-L6-v2 sentence embedding model to compute code embeddings on the user's device.
Model weights carry their own licence, separate from the library's Apache-2.0 licence.
The all-MiniLM-L6-v2 weights are published under Apache-2.0 by the sentence-transformers project. Their licence and attribution are reproduced in the shipped notices file.
9. Attribution and distribution obligations
| Licence | Obligation when distributing |
|---|---|
| MIT | Include the copyright notice and the full licence text |
| BSD-3-Clause | Include the copyright notice, the licence text, and the non-endorsement clause |
| Apache-2.0 | Include the licence; state significant modifications; retain notices in the source; reproduce any NOTICE file |
| 0BSD | None |
| MPL-2.0 (not elected) | Would require source availability for modified MPL files โ avoided by electing Apache-2.0 |
| LGPL (via Chromium) | Include the licence; preserve the ability to relink โ satisfied by shipping Electron's aggregated licence file |
| ApexCharts Community License | Attribution; eligibility as a "Small Organization" |
Current state: none of these obligations is satisfied. The application ships no third-party notices file and offers no way for the user to see them. This is a genuine, low-severity but unambiguous compliance gap, and it is straightforward to fix (see IMPLEMENTATION-PLAN.md).
10. Where the full licence texts must be included
The full text of each licence is not reproduced in this document, in order to keep it readable. The texts must be included:
- Inside the distributed application โ a
licenses/directory or an aggregatedTHIRD-PARTY-LICENSES.txtshipped with each build; - Reachable from the user interface โ an "Open Source Notices" entry under About;
- On the website, alongside the other legal documents.
Electron's LICENSES.chromium.html and Monaco's ThirdPartyNotices.txt must be included as-is; they are already produced upstream.
Generation is automated: npm run notices runs as part of every packaged build, and a CI check fails if the committed file drifts from the resolved dependencies.
11. Maintenance of this document
This document reflects the dependency tree as resolved on 2026-07-29. It becomes inaccurate as soon as dependencies change.
Recommended: generate it automatically during the build, and fail the build when a dependency introduces a licence outside an approved allow-list โ in particular AGPL, SSPL, BUSL, Commons Clause, Elastic License, or any source-available licence with usage conditions such as ApexCharts'.
12. Version history
| Version | Date | Status | Changes |
|---|---|---|---|
| 0.1 | 2026-07-29 | Draft | First version. Generated from resolved manifests. Identifies the ApexCharts licence issue. |
If you spot something in this document that looks wrong or unclear, write to us โ we would rather fix it than defend it. The licence classifications come from the packages' own metadata and, where inspected, their
LICENSEfiles; they have not been independently verified by a lawyer.