Skip to content

happyvertical/ergot.io

Repository files navigation

Ergot

Ergot is the product brand for this repository's capture and asset-management work. The repository still uses historical imago-* app, package, and agent identifiers while the technical rename is deferred.

This repo currently centers on the unified Ergot MAM product, with today's implementation emphasis on local-first capture and processing foundations:

  • apps/imago-dashboard: SvelteKit control plane
  • apps/imago-capture-ui: browser-based capture workspace
  • packages/imago-core: shared domain models, asset helpers, and metadata export
  • packages/imago-ui: shared UI components for the dashboard and capture workspace
  • agents/imago-capture: local-first capture daemon and simulator-first capture agent
  • agents/imago-pipeline: placeholder processing pipeline agent

Product docs

PRD.md is the active primary PRD for the work happening in this repository now. It defines one tenant-aware Ergot MAM product that can be deployed as a hosted service or a self-hosted Community Edition, using smrt-users and @happyvertical/smrt-tenancy as the identity and tenancy foundation.

Local development

  1. Copy .env.example to .env.
  2. Configure GitHub Packages read access for the @happyvertical scope in your npm config.
  3. Install dependencies with pnpm install.
  4. Start local infrastructure with pnpm infra:up.
  5. Apply schema migrations with pnpm db:migrate.
  6. Start the dashboard and background workers with pnpm dev:dashboard.
  7. Start the capture daemon and local capture workspace with pnpm dev:capture.
  8. Seed the end-to-end phase-1 flow with pnpm happy-path.

The repo pins @happyvertical packages to GitHub Packages in .npmrc, so fresh installs need a token with package read access available through your user npm config. pnpm install also configures the repo-local git hooks, including conventional commit message validation.

pnpm happy-path exercises the same SMRT background-job path the dashboard uses: it creates a project, queues a capture job, waits for queued work to complete, queues a pipeline run, waits for derived assets to land in MinIO, and prints the exported metadata.json.

pnpm dev:capture starts the local capture daemon on http://127.0.0.1:47891 and the browser-based capture workspace on http://127.0.0.1:47892. The capture node writes to local SQLite + filesystem storage first, then can sync sessions back into the central database.

The default motion path is Flipper Zero over USB for MVP turntable control. Ergot learns the remote locally and uses timed local pulses for open-loop motion during capture runs.

Current implementation shape

  • SMRT models define generated REST, MCP, and CLI surfaces.
  • Capture nodes run local-first: SQLite + filesystem locally, then session-first sync into central services.
  • Capture and pipeline workers start simulator-first so the end-to-end slice lands before hardware and real reconstruction integrations.
  • The dashboard starts the SMRT task runner locally so capture and pipeline queues execute through the same path used by the scripted happy path.
  • The product direction is now broader than photogrammetry alone, but object photogrammetry remains the first implemented workflow.

About

asset harvesting and management

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors