Omnigraph
그래프 엔진으로 컨텍스트를 조립하고, 객체 저장소 기반에서 에이전트가 코드처럼 그래프 데이터를 분기·타입·검토·병합·감사·거버넌스합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기🔄 GIGO - Garbage In, Gold Out | AI-powered JSON transformation SaaS
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
The AI-powered universal data adapter. Send any JSON to a webhook, get back a payload that matches your schema — renamed, retyped, restructured — and optionally forwarded straight to its destination.
No field-by-field mapping rules. You show GIGO one example of the output you want; the AI understands the meaning of incoming data and reshapes it accordingly.README 전문 보기 ↗The AI-powered universal data adapter. Send any JSON to a webhook, get back a payload that matches your schema — renamed, retyped, restructured — and optionally forwarded straight to its destination.
No field-by-field mapping rules. You show GIGO one example of the output you want; the AI understands the meaning of incoming data and reshapes it accordingly.
{ "user_first_name": "jean", { "first_name": "Jean",
"user_MAIL": "[email protected]", ──► "email": "[email protected]",
"amount": "49,90 €", "amount_cents": 4990,
"infos": { "ville": "Lyon" } } "city": "Lyon" }
Every service speaks its own dialect: firstName here, first_name there, amounts as strings, nested structures nobody agreed on. Connecting N sources to M destinations means writing and maintaining N×M brittle integrations. GIGO replaces them with a single hub: one webhook per target schema, AI does the translation, full audit trail included.
OPENAI_API_KEY / ANTHROPIC_API_KEY env vars as a server-wide fallbackgit clone <repo-url>
cd universal-data-adapter
bun install
cp .env.example .env # then fill in your values
bun run db:deploy # apply database migrations
bun run db:generate
bun run dev # → http://localhost:3000
ENCRYPTION_KEY(min 16 chars) is required — the app refuses to start without it. It encrypts destination credentials with AES-256-GCM.
docker compose up -d # see docker-compose.yml for configuration
curl -X POST https://your-instance/api/webhook/<ADAPTER_ID> \
-H "Content-Type: application/json" \
-H "X-Webhook-Secret: whsec_..." \
-d '{"any": "json", "shape": "works"}'
Response:
{
"status": "success",
"trace_id": "…",
"data": { "…": "transformed payload" },
"meta": {
"duration_ms": 1250, "transform_duration_ms": 1180,
"provider": "anthropic", "model": "claude-sonnet-5",
"input_tokens": 412, "output_tokens": 96
}
}
Errors are typed: 401 INVALID_SECRET, 413 PAYLOAD_TOO_LARGE, 429 RATE_LIMITED (+ Retry-After), 422 MAX_TOKENS, 504 TIMEOUT — always with a trace_id you can look up in the logs.
Sender ──POST──► /api/webhook/[id]
│ secret check (timing-safe) → rate limit → size cap
▼
shared pipeline (src/lib/pipeline.ts)
│ transform → validate → forward → log → usage
▼
provider layer (src/lib/providers/)
├─ openai.ts GPT-4o, strict structured outputs
└─ anthropic.ts Claude, forced strict tool use + prompt caching
The same pipeline powers the public webhook, the authenticated playground (POST /api/adapters/[id]/test) and log replay — three entry points, one behavior.
| Layer | Tech |
|---|---|
| Framework | Next.js 14 (App Router), TypeScript strict |
| Database | PostgreSQL + Prisma (versioned migrations) |
| Auth | Supabase Auth |
| AI | openai + @anthropic-ai/sdk behind a common TransformProvider interface |
| i18n | next-intl (cookie mode, no URL prefix) |
| Tests | Vitest — bun run test |
| Tooling | Bun |
timingSafeEqual).bun run test # 61 unit/integration tests
bun run test:watch
bunx tsc --noEmit # typecheck
bun run build # production build
bun run db:studio # browse the database
See CONTRIBUTING.md for guidelines.