Skip to content

Shan-Weaviate/foundry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Foundry

Foundry is a prototype search layer for messy creative archives. This first milestone scans an existing folder and produces a deterministic manifest plus a visual archive report. It does not move, rename, or alter source assets.

Prerequisite: Node.js 22 or newer.

Run the screenshot demo

npm run demo

This scans the current contents of demo-archive, generates the report, starts a local showcase server, and opens it in Google Chrome (falling back to the default browser). The generated manifest is at output/manifest.json.

The demo command does not reset the archive. Add images, videos, documents, and other test assets anywhere below demo-archive and run it again. To recreate the original fictional sample archive explicitly, run npm run demo:reset.

To run without opening a browser:

FOUNDRY_NO_OPEN=1 npm run demo

Before recording or publishing the demo, run the release check:

npm run release:check

This rebuilds the manifest and prepared import package, regenerates the report, checks the Node.js version and required files, and runs the test suite.

To scan another directory:

node src/scan.mjs /absolute/path/to/archive
node src/report.mjs

Milestone sequence

  1. Discover: recursively inventory the archive and generate stable records.
  2. Review: show what Foundry found, what it can preview, and what needs enrichment.
  3. Enrich: generate captions, extract document text, transcribe audio, and sample video keyframes.
  4. Ingest: create a Weaviate collection and batch-ingest manifest records.
  5. Retrieve: add keyword, vector, hybrid, and filtered search.

The raw creative files stay in their source storage. Weaviate receives searchable records, vectors, metadata, and a pointer back to each source.

Prepare Weaviate ingestion

Generate a safe, inspectable import package without contacting a cloud service:

npm run ingest:dry-run

This writes output/weaviate-import.json. Absolute local paths are replaced with portable foundry:// source identifiers before cloud ingestion.

To ingest into a free Weaviate Cloud cluster:

  1. Create a free cluster at console.weaviate.cloud.
  2. Copy .env.example to .env and add the cluster URL and a read-write API key.
  3. Review output/weaviate-import.json.
  4. Run npm run ingest:cloud.

The command creates a Foundry collection using Weaviate Embeddings and the free tier's HFresh vector index. Re-running it updates objects deterministically rather than duplicating them.

Complete local app flow

With .env configured, npm run demo now provides the complete MVP:

  1. Discover the local creative archive.
  2. Generate and review the portable manifest.
  3. Synchronise records with Weaviate from the browser interface.
  4. Compare keyword, semantic and hybrid retrieval.
  5. Filter results by project, asset type and relationship role.
  6. Preview matching local images and videos.

Cloud credentials remain inside the local Node process. They are never embedded in the generated HTML or sent to browser code.

Release notes

The current release is a deliberately small, inspectable prototype. The enrichment file contains deterministic demo descriptions and tags so the screenshots and search results are reproducible. Automatic image captioning, OCR, transcript extraction, incremental rescans, rights-aware filters, and feedback-driven ranking are planned follow-ups rather than hidden assumptions in this version.

About

Foundry is a prototype search layer for messy creative archives. This first milestone scans an existing folder and produces a deterministic manifest plus a visual archive report. It does not move, rename, or alter source assets.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors