Skip to content

Add Ligare demo: connect travel inventory to ChatGPT#113

Merged
telivity-otaip merged 1 commit into
mainfrom
claude/otaip-adoption-demo-fe4KJ
Jun 3, 2026
Merged

Add Ligare demo: connect travel inventory to ChatGPT#113
telivity-otaip merged 1 commit into
mainfrom
claude/otaip-adoption-demo-fe4KJ

Conversation

@telivity-otaip
Copy link
Copy Markdown
Collaborator

What

Ligare (examples/ligare/) exposes OTAIP's Duffel (Test) adapter as ChatGPT Custom GPT Actions, so flights can be searched and booked from inside a chat. It's a thin, Telivity-branded skin over existing, tested OTAIP code — no new travel domain logic.

Two demos, one codebase:

  • pnpm ligare — single-command, self-narrating developer demo: wraps Duffel as a ConnectAdapter, generates the ChatGPT/MCP tools from it, runs a live Duffel Test search, and serves the OpenAPI spec a GPT can import.
  • Hosted backend for a published "Telivity Ligare" GPT (zero-signup): GET /openapi.json (the Action), the booking routes, the landing page, and lead capture.

How it works

The published GPT runs on the user's own ChatGPT model, so this backend needs no OpenAI key and incurs no token cost — it only serves the Duffel Actions. The one piece of real glue is DuffelConnectAdapter, which bridges Duffel's low-level DistributionAdapter to OTAIP's high-level ConnectAdapter so the generated spec and the HTTP routes share a single source of truth.

ChatGPT (Telivity Ligare GPT) ──HTTPS──► Fastify
   (user's own model)                      ├─ GET  /openapi.json   (generated Action)
                                           ├─ POST /flights/search ─┐
                                           ├─ POST /flights/price   ├─► DuffelConnectAdapter ─► DuffelAdapter ─► Duffel TEST
                                           ├─ POST /bookings        ┘
                                           ├─ GET  /bookings/:id · /health
                                           ├─ GET  /              (Telivity landing)
                                           └─ POST /leads         (email capture)

Verified

  • typecheck clean; package build clean (no impact on repo-wide build).
  • GET /openapi.json → valid OpenAPI 3.1, correct title/server/paths (ticket & cancel intentionally omitted for the sandbox).
  • Landing page renders; /health degrades gracefully without a key; /leads persists; /go 302s to GPT_URL.
  • pnpm ligare narration confirmed end-to-end.

Not verified here

Live Duffel search/price/book — no DUFFEL_API_KEY was available in the build environment. The mapping compiles against the real adapter, but the sandbox round-trip is unproven until a test key is set:

cp examples/ligare/.env.example examples/ligare/.env   # DUFFEL_API_KEY=duffel_test_...
pnpm install && pnpm -r build && pnpm ligare

One-time manual step (OpenAI owns it)

Deploy to ligare.telivity.app, then in ChatGPT: Create a GPT → Actions → Import from URL …/openapi.json → Publish → paste the GPT link into GPT_URL. See examples/ligare/README.md.

Notes / scope

  • Sandbox only — Duffel Test, no real money; booking is sandbox-only.
  • getBookingStatus reads from an in-memory map (Duffel's adapter exposes no order-retrieval method) — fine for the search→price→book demo flow.
  • Out of scope (deferred to the real product): signup/auth, the supplier→Ligare→GPT configurator UI, live Sabre/Amadeus/Navitaire, BYO credentials.

https://claude.ai/code/session_01TwDq6fWRtNtPqxzYm4fshB


Generated by Claude Code

Ligare exposes OTAIP's Duffel (Test) adapter as ChatGPT Custom GPT
Actions, so flights can be searched and booked from inside a chat.
Two demos, one codebase:

- `pnpm ligare`: single-command, self-narrating developer demo that
  wraps Duffel as a ConnectAdapter, generates the ChatGPT/MCP tools
  from it, runs a live Duffel Test search, and serves the OpenAPI spec.
- Hosted backend for a published "Telivity Ligare" GPT (zero-signup).

The one piece of real glue is DuffelConnectAdapter, which bridges
Duffel's low-level DistributionAdapter to OTAIP's high-level
ConnectAdapter so the generated spec and the HTTP routes share a single
source of truth. Telivity-branded landing page + lead capture included.
Sandbox only — no OpenAI key, no real money.

https://claude.ai/code/session_01TwDq6fWRtNtPqxzYm4fshB
@telivity-otaip telivity-otaip merged commit 370892b into main Jun 3, 2026
1 check passed
@telivity-otaip telivity-otaip deleted the claude/otaip-adoption-demo-fe4KJ branch June 3, 2026 12:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants