generated: '2026-08-12'
method: searched
source: >-
https://github.com/fodoole/qeen-mobile-sdk-ios (SwiftPM),
https://github.com/fodoole/qeen-maven (Maven), https://cdn.qeen.ai/ (GCS bucket "qeen-public")
note: >-
Qeen publishes no package on npm, PyPI, RubyGems, crates.io, Packagist, NuGet or Maven Central.
Its first-party client libraries are distributed from two places instead: two self-hosted
repositories under the "fodoole" GitHub organization (Fodoole is the company's earlier name — the
loader served from Qeen's own cdn.qeen.ai sets window.fodooleMutex and localStorage "fodoole_uid",
and the fodoole org publishes artifacts under the ai.qeen group id with tech@qeen.ai as contact),
and a public Google Cloud Storage bucket at cdn.qeen.ai for the browser SDK.
packages:
- language: swift
platform: ios
registry: swiftpm
name: Qeen
product: Qeen
namespace: QeenSDK
url: https://github.com/fodoole/qeen-mobile-sdk-ios
install: '.package(url: "https://github.com/fodoole/qeen-mobile-sdk-ios.git", from: "1.5.0")'
official: true
version: 1.5.0
published: '2026-08-12'
version_source: git tag 1.5.0 on fodoole/qeen-mobile-sdk-ios
distribution: binary XCFramework committed to the repo and referenced by a path-based binaryTarget
requirements: iOS 15+, Xcode 16+
interface: packages/qeenai-ios-sdk-interface.swiftinterface
note: >-
Not on any package index — SwiftPM resolves it straight from the public GitHub repo, so no
account is needed. Eight tagged releases 0.1.0 (2026-07-23) through 1.5.0 (2026-08-12);
actively shipping. The analytics engine is PostHog, compiled into the framework and hidden
(no importable PostHog module, no transitive SwiftPM dependency).
- language: kotlin
platform: android
registry: maven
name: ai.qeen:qeensdk
group_id: ai.qeen
artifact_id: qeensdk
url: https://github.com/fodoole/qeen-maven
repository: https://raw.githubusercontent.com/fodoole/qeen-maven/main
install: 'implementation("ai.qeen:qeensdk:1.5.0")'
official: true
version: 1.5.0
published: '2026-08-12'
version_source: >-
https://raw.githubusercontent.com/fodoole/qeen-maven/main/ai/qeen/qeensdk/maven-metadata.xml
(1.5.0, lastUpdated 20260812131316)
artifacts: [aar, sources.jar, pom, module]
checksums: [md5, sha1, sha256, sha512]
note: >-
Self-hosted Maven repository served from raw.githubusercontent.com, NOT Maven Central — a
consumer must add the custom repository URL to settings.gradle.kts. Six published versions:
0.1.0, 1.0.0, 1.2.0, 1.3.0, 1.4.0, 1.5.0. The repo README still shows 0.1.0 in its install
snippet while maven-metadata.xml resolves 1.5.0 as the release.
- language: javascript
platform: web
registry: cdn
name: qeen.js
url: https://cdn.qeen.ai/sdk/qeen.js
install: ''
official: true
version: '1.0'
published: '2025-10-29'
version_source: >-
qeen.sdkVersion = "1.0" in the shipped bundle; date from the object's Last-Modified header
(Wed, 29 Oct 2025 07:52:54 GMT)
global: window.qeen
size_bytes: 8105
note: >-
CDN-distributed, no registry metadata endpoint exists. Two paths serve the identical object
(same ETag 65139c7a0e95569fc465f19dcc5c4894): /sdk/qeen.js and /sdk/v1.0/qeen.js. Neither is
pinned to a patch version — "v1.0" is a major-line directory, so a consumer embedding either
URL cannot tell which build they are getting and will silently take any future 1.0.x change.
Cache-Control is public, max-age=3600.
- language: javascript
platform: web
registry: cdn
name: qeenSearch.js
url: https://cdn.qeen.ai/sdk/v1.0/qeenSearch.js
install: ''
official: true
version: null
published: '2025-02-05'
version_source: null
global: window.qeenSearch
size_bytes: 28486
note: >-
Checked, nothing to record — the bundle declares no version string and the CDN path pins only
the v1.0 major line, so there is no version a consumer can assert. Date is the object's
Last-Modified. Ships the embedded AI search widget (see components/).
- language: javascript
platform: web
registry: cdn
name: loader/main.js
url: https://cdn.qeen.ai/loader/main.js
install: ''
official: true
version: null
published: '2025-01-13'
version_source: null
size_bytes: 940
note: >-
Checked, nothing to record — unversioned tag-manager-style bootstrap. It hashes the page URL
and a persisted device id and injects the content-replacement script from
fodoole-web-analytics-qfan6cresq-ew.a.run.app/qeen-script/{hash}. Three per-merchant variants
exist alongside it (loader/custom/saco.js, dubaistore.js, thwifty.js), one of which reads a
SAP Spartacus locale key — evidence of bespoke per-customer builds rather than a single
configurable snippet.
registries_checked:
- {registry: npm, query: 'qeen / qeen-ai / qeenai', result: no first-party package}
- {registry: pypi, query: 'qeen / qeen-ai / qeenai', result: 404}
- {registry: maven-central, query: 'ai.qeen', result: not published to Central; self-hosted only}
- {registry: rubygems, result: not checked — no Ruby surface}
- {registry: crates.io, result: not checked — no Rust surface}
- {registry: nuget, result: not checked — no .NET surface}
- {registry: pkg.go.dev, result: not checked — no Go surface}
official_sdk_count: 3