No description
  • TypeScript 90.6%
  • Shell 5.8%
  • CSS 1.8%
  • Dockerfile 1%
  • JavaScript 0.8%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
epistemophiliac a5ec978661 Reject caption/thought junk from inventory item names.
Lens social captions and model reasoning were landing in item_name; score
and sanitize titles so only product-like names are kept, otherwise fall
back to vision with a naming-only prompt.

Co-authored-by: Cursor <[email protected]>
2026-08-03 15:15:30 -04:00
docs Add free Yandex reverse-image cascade with SerpAPI Lens reserve. 2026-07-31 23:55:51 -04:00
jenkins Add Estate Inventory Scanner PWA with Authentik and ERPNext draft recon. 2026-07-31 21:56:38 -04:00
public Add Estate Inventory Scanner PWA with Authentik and ERPNext draft recon. 2026-07-31 21:56:38 -04:00
scripts Document Coolify/Authentik deploy steps and add ERPNext prove script. 2026-07-31 21:59:49 -04:00
src Reject caption/thought junk from inventory item names. 2026-08-03 15:15:30 -04:00
tests Auto-fill avg market price from vision; OpenRouter-ready identify URL. 2026-07-31 22:29:19 -04:00
.env.example Fix identify failures: lens-first path, Yandex retry, safer client errors. 2026-08-01 00:47:46 -04:00
.gitignore Bootstrap Node from official tarball in Jenkins CI. 2026-07-31 22:04:01 -04:00
docker-compose.yml Add BugSink logging, capture UX feedback, and faster vision identify. 2026-07-31 23:03:49 -04:00
Dockerfile Install Next/Tailwind devDependencies during Docker deps stage. 2026-07-31 22:38:46 -04:00
Jenkinsfile Use Node linux tarball .tar.gz in CI (no xz on Jenkins). 2026-07-31 22:05:42 -04:00
next.config.mjs Add BugSink logging, capture UX feedback, and faster vision identify. 2026-07-31 23:03:49 -04:00
package-lock.json Add BugSink logging, capture UX feedback, and faster vision identify. 2026-07-31 23:03:49 -04:00
package.json Add BugSink logging, capture UX feedback, and faster vision identify. 2026-07-31 23:03:49 -04:00
postcss.config.mjs Add Estate Inventory Scanner PWA with Authentik and ERPNext draft recon. 2026-07-31 21:56:38 -04:00
README.md Auto-fill avg market price from vision; OpenRouter-ready identify URL. 2026-07-31 22:29:19 -04:00
sentry.client.config.ts Add BugSink logging, capture UX feedback, and faster vision identify. 2026-07-31 23:03:49 -04:00
sentry.edge.config.ts Add BugSink logging, capture UX feedback, and faster vision identify. 2026-07-31 23:03:49 -04:00
sentry.server.config.ts Add BugSink logging, capture UX feedback, and faster vision identify. 2026-07-31 23:03:49 -04:00
tailwind.config.ts Add Estate Inventory Scanner PWA with Authentik and ERPNext draft recon. 2026-07-31 21:56:38 -04:00
tsconfig.json Fix Docker Next build path aliases and use npm ci. 2026-07-31 22:33:41 -04:00
VERSION Add Estate Inventory Scanner PWA with Authentik and ERPNext draft recon. 2026-07-31 21:56:38 -04:00

Estate Inventory Scanner

PWA that photographs tools, identifies them via Estate OpenWebUI/Ollama vision, creates ERPNext Items (Household, Maintain Stock), and appends lines to a draft Stock Reconciliation (default MAT-RECO-2026-00001 / SmallShedSR1 - TAE).

Secrets (Authentik client secret, ERPNext API key, OpenWebUI key) live only in Coolify env — never in the phone app.

Flow

  1. Authentik login
  2. Settings: warehouse + draft Stock Reconciliation
  3. Scan photo → AI returns item name, item code, avg market price
  4. You confirm qty (and optionally tweak fields) → Commit
  5. Server creates ERPNext Item (if new) and appends draft recon line — does not submit the recon

Local

cp .env.example .env
# fill secrets; ALLOW_DEV_LOGIN=true for local-only credentials provider
npm install
npm test
npm run dev

Coolify

Compose service scanner listens on 3000. Assign domain with port:

https://scanner.aexoradao.com:3000

Set env from .env.example. Deploy once after Authentik app + env are ready.

API

Route Auth Role
GET /api/health no liveness
GET/PUT /api/settings yes defaults
POST /api/identify yes vision → suggestion
POST /api/commit yes Item + draft recon line
GET /api/recon/summary yes draft totals

Jenkins

Job name Scanner. scripts/setup_jenkins_job.sh creates/updates from jenkins/scanner-job.xml. Publish gate reads ./VERSION.