{"schema":"lucentive-labs.catalogue.v1","checkedAt":"2026-08-10T22:05:06+01:00","identity":{"name":"Lucentive Labs open-source catalogue","description":"The Lucentive Labs catalogue indexes independent open-source libraries with current package facts, evidence, and links to their canonical repositories.","repository":"https://github.com/LucentiveLabs/lucentive-labs-monorepo","site":"https://labs.lucentive.io","contract":"https://labs.lucentive.io/catalogue.json","role":"catalogue"},"relationships":{"labs":"Lucentive Labs curates the catalogue, its website, catalogue fixtures, and read-only package mirrors; canonical library repositories own product definition and releases.","loupe":"Loupe is the decision-lock and build-brief tool: a typed configuration becomes reviewable choices and a deterministic Markdown/JSON brief for the next human or agent build pass.","ferry":"Ferry is the child-process secrets broker: declared secrets are resolved under command policy, injected into a child environment, redacted from output, and recorded in a value-free audit log.","futureLibraries":"A future library may join the catalogue without becoming part of Loupe or Ferry; its canonical repository remains authoritative for purpose, packages, lifecycle evidence, and releases."},"evidence":[{"id":"loupe-repository","kind":"canonical-repository","url":"https://github.com/LucentiveLabs/loupe/tree/4180ffc8b41add194fa64b5f095630f2fcfe3496","checkedAt":"2026-08-10T22:05:06+01:00","supports":"Public, unarchived MIT repository; package manifests and canonical example at the checked source ref."},{"id":"loupe-readme","kind":"canonical-documentation","url":"https://github.com/LucentiveLabs/loupe/blob/4180ffc8b41add194fa64b5f095630f2fcfe3496/README.md","checkedAt":"2026-08-10T22:05:06+01:00","supports":"Loupe decision-lock/build-brief purpose for visual choices and strategic calls, package roles, install path, and limitations."},{"id":"loupe-npm","kind":"npm-registry","url":"https://www.npmjs.com/org/lucentive-labs","checkedAt":"2026-08-10T22:05:06+01:00","supports":"The five recorded Loupe packages and their current per-package versions are public on npm."},{"id":"loupe-provenance-schema","kind":"npm-attestation","url":"https://registry.npmjs.org/-/npm/v1/attestations/@lucentive-labs%2Floupe-schema@0.2.1","checkedAt":"2026-08-10T22:05:06+01:00","supports":"@lucentive-labs/loupe-schema 0.2.1 carries SLSA provenance bound to the canonical Loupe release workflow and build commit 4180ffc8b41add194fa64b5f095630f2fcfe3496.","result":"present"},{"id":"loupe-provenance-core","kind":"npm-attestation","url":"https://registry.npmjs.org/-/npm/v1/attestations/@lucentive-labs%2Floupe-core@0.2.1","checkedAt":"2026-08-10T22:05:06+01:00","supports":"@lucentive-labs/loupe-core 0.2.1 carries SLSA provenance bound to the canonical Loupe release workflow and build commit 4180ffc8b41add194fa64b5f095630f2fcfe3496.","result":"present"},{"id":"loupe-provenance-dom","kind":"npm-attestation","url":"https://registry.npmjs.org/-/npm/v1/attestations/@lucentive-labs%2Floupe-dom@0.2.1","checkedAt":"2026-08-10T22:05:06+01:00","supports":"@lucentive-labs/loupe-dom 0.2.1 carries SLSA provenance bound to the canonical Loupe release workflow and build commit 4180ffc8b41add194fa64b5f095630f2fcfe3496.","result":"present"},{"id":"loupe-provenance-react","kind":"npm-attestation","url":"https://registry.npmjs.org/-/npm/v1/attestations/@lucentive-labs%2Floupe-react@0.1.2","checkedAt":"2026-08-10T22:05:06+01:00","supports":"@lucentive-labs/loupe-react 0.1.2 carries SLSA provenance bound to the canonical Loupe release workflow and build commit 4180ffc8b41add194fa64b5f095630f2fcfe3496.","result":"present"},{"id":"loupe-provenance-generator","kind":"npm-attestation","url":"https://registry.npmjs.org/-/npm/v1/attestations/@lucentive-labs%2Floupe-generator@0.1.2","checkedAt":"2026-08-10T22:05:06+01:00","supports":"@lucentive-labs/loupe-generator 0.1.2 carries SLSA provenance bound to the canonical Loupe release workflow and build commit 4180ffc8b41add194fa64b5f095630f2fcfe3496.","result":"present"},{"id":"loupe-labs-demo","kind":"catalogue-surface","url":"https://labs.lucentive.io/libraries/loupe","checkedAt":"2026-08-10T22:05:06+01:00","supports":"The Labs site operates a public interactive Loupe demo."},{"id":"labs-loupe-fixtures","kind":"catalogue-repository","url":"https://github.com/LucentiveLabs/lucentive-labs-monorepo/tree/main/examples","checkedAt":"2026-08-10T22:05:06+01:00","access":"authenticated","supports":"The private Labs repository contains the ias-control-plane and human-today catalogue fixtures; their source links require repository access."},{"id":"ferry-repository","kind":"canonical-repository","url":"https://github.com/LucentiveLabs/ferry/tree/363efa41a13791d2e0b53ea73a90dd4c2800877d","checkedAt":"2026-08-10T22:05:06+01:00","supports":"Public, unarchived MIT repository; package manifest and implementation at the checked source ref."},{"id":"ferry-readme","kind":"canonical-documentation","url":"https://github.com/LucentiveLabs/ferry/blob/363efa41a13791d2e0b53ea73a90dd4c2800877d/README.md","checkedAt":"2026-08-10T22:05:06+01:00","supports":"Ferry purpose, threat boundary, backends, headless prerequisites, and usage."},{"id":"ferry-npm","kind":"npm-registry","url":"https://www.npmjs.com/package/@lucentive-labs/ferry","checkedAt":"2026-08-10T22:05:06+01:00","supports":"@lucentive-labs/ferry 0.1.2 is public on npm with no declared runtime, optional, or peer dependencies."},{"id":"ferry-provenance","kind":"npm-attestation","url":"https://registry.npmjs.org/-/npm/v1/attestations/@lucentive-labs%2Fferry@0.1.2","checkedAt":"2026-08-10T22:05:06+01:00","supports":"@lucentive-labs/ferry 0.1.2 carries SLSA provenance bound to the canonical Ferry release workflow and build commit c655ef82afa3eec2d439b8074465182c45df19da.","result":"present"}],"libraries":[{"slug":"loupe","name":"Loupe","tagline":"Lock decisions in a reviewable interface; hand the build pass a deterministic brief.","purpose":"Loupe is a config-driven decision-lock tool for visual or strategic choices. It renders typed options, records locked selections, and exports deterministic Markdown and JSON build briefs for the next human or agent pass.","category":"design-tooling","license":"MIT","framework":"framework-agnostic + react","audience":"designers + developers + agents","docs":"/docs","playground":"/libraries/loupe","featured":true,"lifecycle":{"status":"active","authority":"lucentive-labs-catalogue","maturity":"pre-1.0","basis":["Public packages are available on npm.","The canonical repository is active and the Labs site runs a public demo.","The canonical repository does not publish a separate lifecycle declaration."],"evidence":["loupe-repository","loupe-npm","loupe-labs-demo"]},"source":{"canonicalRepository":"https://github.com/LucentiveLabs/loupe","defaultBranch":"main","sourceRef":"4180ffc8b41add194fa64b5f095630f2fcfe3496","readme":"https://github.com/LucentiveLabs/loupe/blob/4180ffc8b41add194fa64b5f095630f2fcfe3496/README.md","public":true,"archived":false,"vendoredMirrors":["packages/loupe-schema","packages/loupe-core","packages/loupe-dom","packages/loupe-react","packages/loupe-generator"],"evidence":["loupe-repository","loupe-readme"]},"primaryPackage":"@lucentive-labs/loupe-core","packages":[{"name":"@lucentive-labs/loupe-schema","role":"Typed config, validation, inferred types, and JSON Schema.","version":"0.2.1","npm":"https://www.npmjs.com/package/@lucentive-labs/loupe-schema","availability":"public","engines":{},"dependencies":{"zod":"^4.0.0"},"optionalDependencies":{},"peerDependencies":{},"provenance":"verified","releaseBuild":{"repository":"https://github.com/LucentiveLabs/loupe","workflow":".github/workflows/release.yml","workflowRef":"refs/heads/main","buildRef":"4180ffc8b41add194fa64b5f095630f2fcfe3496"},"evidence":["loupe-repository","loupe-npm","loupe-provenance-schema"]},{"name":"@lucentive-labs/loupe-core","role":"Framework-free headless state and deterministic brief derivation.","version":"0.2.1","npm":"https://www.npmjs.com/package/@lucentive-labs/loupe-core","availability":"public","engines":{},"dependencies":{"@lucentive-labs/loupe-schema":"0.2.1"},"optionalDependencies":{},"peerDependencies":{},"provenance":"verified","releaseBuild":{"repository":"https://github.com/LucentiveLabs/loupe","workflow":".github/workflows/release.yml","workflowRef":"refs/heads/main","buildRef":"4180ffc8b41add194fa64b5f095630f2fcfe3496"},"evidence":["loupe-repository","loupe-npm","loupe-provenance-core"]},{"name":"@lucentive-labs/loupe-dom","role":"Canonical browser renderer and stylesheet.","version":"0.2.1","npm":"https://www.npmjs.com/package/@lucentive-labs/loupe-dom","availability":"public","engines":{},"dependencies":{"@lucentive-labs/loupe-core":"0.2.1","@lucentive-labs/loupe-schema":"0.2.1"},"optionalDependencies":{},"peerDependencies":{},"provenance":"verified","releaseBuild":{"repository":"https://github.com/LucentiveLabs/loupe","workflow":".github/workflows/release.yml","workflowRef":"refs/heads/main","buildRef":"4180ffc8b41add194fa64b5f095630f2fcfe3496"},"evidence":["loupe-repository","loupe-npm","loupe-provenance-dom"]},{"name":"@lucentive-labs/loupe-react","role":"React adapter over the headless core.","version":"0.1.2","npm":"https://www.npmjs.com/package/@lucentive-labs/loupe-react","availability":"public","engines":{},"dependencies":{"@lucentive-labs/loupe-core":"0.2.1","@lucentive-labs/loupe-schema":"0.2.1"},"optionalDependencies":{},"peerDependencies":{"react":">=19","react-dom":">=19"},"provenance":"verified","releaseBuild":{"repository":"https://github.com/LucentiveLabs/loupe","workflow":".github/workflows/release.yml","workflowRef":"refs/heads/main","buildRef":"4180ffc8b41add194fa64b5f095630f2fcfe3496"},"evidence":["loupe-repository","loupe-npm","loupe-provenance-react"]},{"name":"@lucentive-labs/loupe-generator","role":"Node builder for portable static review artifacts.","version":"0.1.2","npm":"https://www.npmjs.com/package/@lucentive-labs/loupe-generator","availability":"public","engines":{},"dependencies":{"@lucentive-labs/loupe-core":"0.2.1","@lucentive-labs/loupe-dom":"0.2.1","@lucentive-labs/loupe-schema":"0.2.1","esbuild":"0.28.1"},"optionalDependencies":{},"peerDependencies":{},"provenance":"verified","releaseBuild":{"repository":"https://github.com/LucentiveLabs/loupe","workflow":".github/workflows/release.yml","workflowRef":"refs/heads/main","buildRef":"4180ffc8b41add194fa64b5f095630f2fcfe3496"},"evidence":["loupe-repository","loupe-npm","loupe-provenance-generator"]}],"examples":[{"label":"brand-starter","href":"https://github.com/LucentiveLabs/loupe/tree/main/examples/brand-starter","sourcePath":"examples/brand-starter","access":"public","ownership":"canonical","evidence":["loupe-repository"]},{"label":"ias-control-plane","sourcePath":"examples/ias-control-plane","access":"authenticated","ownership":"catalogue-fixture","evidence":["labs-loupe-fixtures"]},{"label":"human-today","sourcePath":"examples/human-today","access":"authenticated","ownership":"catalogue-fixture","evidence":["labs-loupe-fixtures"]}],"verifiedUses":[{"label":"Interactive Loupe demonstration on labs.lucentive.io","mode":"public-demo","publicClaimSafe":true,"evidence":["loupe-labs-demo"]}],"limitations":["Loupe locks decisions and exports a build brief; it does not define a general product-definition standard or implement the resulting product.","The package family is pre-1.0 and does not share one aggregate version; consumers must use each package's recorded version.","Portable output may include an index.html plus copied assets rather than one file when a config references assets."]},{"slug":"ferry","name":"Ferry","tagline":"Broker declared secrets into an authorized child process without printing their values.","purpose":"Ferry is a Node CLI and library that resolves declared secrets from configured backends, checks command arguments against policy, injects authorized values into a child environment, redacts those values from child output, and appends value-free JSONL audit records.","category":"agent-tooling","license":"MIT","framework":"node cli","audience":"developers + agents","docs":"https://github.com/LucentiveLabs/ferry/blob/363efa41a13791d2e0b53ea73a90dd4c2800877d/README.md","lifecycle":{"status":"beta","authority":"lucentive-labs-catalogue","maturity":"pre-1.0","basis":["Version 0.1.2 is public on npm with verified provenance.","The canonical repository is active.","The canonical repository does not publish a separate lifecycle declaration."],"evidence":["ferry-repository","ferry-npm"]},"source":{"canonicalRepository":"https://github.com/LucentiveLabs/ferry","defaultBranch":"main","sourceRef":"363efa41a13791d2e0b53ea73a90dd4c2800877d","readme":"https://github.com/LucentiveLabs/ferry/blob/363efa41a13791d2e0b53ea73a90dd4c2800877d/README.md","public":true,"archived":false,"vendoredMirrors":["packages/ferry"],"evidence":["ferry-repository","ferry-readme"]},"primaryPackage":"@lucentive-labs/ferry","packages":[{"name":"@lucentive-labs/ferry","role":"Node CLI and library for policy-scoped child-process secret injection.","version":"0.1.2","npm":"https://www.npmjs.com/package/@lucentive-labs/ferry","availability":"public","engines":{"node":">=20"},"dependencies":{},"optionalDependencies":{},"peerDependencies":{},"provenance":"verified","releaseBuild":{"repository":"https://github.com/LucentiveLabs/ferry","workflow":".github/workflows/release.yml","workflowRef":"refs/heads/main","buildRef":"c655ef82afa3eec2d439b8074465182c45df19da"},"evidence":["ferry-repository","ferry-npm","ferry-provenance"]}],"examples":[],"verifiedUses":[],"limitations":["Ferry requires Node.js 20 or newer.","Ferry governs only declared secrets; undeclared ambient environment variables remain inherited unless --clean-env is used.","An allowed child process, a compromised host, and trusted configuration remain outside Ferry's guarantee.","The file backend requires FERRY_FILE_KEY; the 1Password backend requires the external op CLI; TypeScript configuration requires consumer-installed tsx.","Headless no-prompt operation is available only after the relevant cache, decryption key, and backend setup have been completed."]}]}