Skip to content

feat: Add flight-booking-agent kit#271

Merged
akshatvirmani merged 89 commits into
Lamatic:mainfrom
Nhlalo:feat/flight-booking-agent
Jul 23, 2026
Merged

feat: Add flight-booking-agent kit#271
akshatvirmani merged 89 commits into
Lamatic:mainfrom
Nhlalo:feat/flight-booking-agent

Conversation

@Nhlalo

@Nhlalo Nhlalo commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

What This PR Does

Adds a Flight Booking Agent kit to AgentKit — an AI-powered flight search agent that finds budget-friendly flights using natural language.

Contribution Type

  • Kit (Full Next.js app + Lamatic flows)
  • Bundle (Multi-flow pipeline)
  • Template (Single flow)

Validation Checklist

  • Unique problem statement (not in existing kits)
  • Complete Next.js app with TypeScript
  • Lamatic flow exported
  • README.md with setup guide
  • lamatic.config.ts with valid schema
  • agent.md with identity and guardrails
  • apps/package.json with dependencies
  • apps/.env.example with all required variables
  • No secrets or API keys committed
  • No changes outside kits/ folder

Config & Flow Files

  • lamatic.config.ts
  • agent.md
  • flows/flight-search.json

Live Demo

Try it now: https://flight-booking-agent-pearl.vercel.app

Features

  • Natural language flight search
  • Real-time pricing via Duffel API
  • Currency conversion (USD → ZAR, NGN, EUR, GBP)
  • One-way and round-trip support
  • Cabin class filtering (economy, business, first)
  • Price range display
  • Vague request handling with helpful messages

Tech Stack

  • Lamatic.ai (AI workflow)
  • Duffel API (flight data)
  • Next.js 14
  • TypeScript
  • Tailwind CSS
  • Framer Motion

Files Added

  • kits/flight-booking-agent/ - Full kit structure
    • apps/ - Next.js frontend
    • flows/ - Lamatic flow export
    • lamatic.config.ts
    • agent.md
    • README.md

Notes

  • This is a demo booking flow (no real bookings)
  • Uses Duffel API for flight search
  • All prices converted to user's requested currency
  • Deployed on Vercel
  • Added Flight Booking Agent kit (docs/config/guardrails):

    • kits/flight-booking-agent/.env.example
    • kits/flight-booking-agent/.gitignore
    • kits/flight-booking-agent/README.md
    • kits/flight-booking-agent/agent.md
    • kits/flight-booking-agent/constitutions/default.md
    • kits/flight-booking-agent/lamatic.config.ts
  • Added Lamatic workflow wiring (nodes/references/prompts/models):

    • kits/flight-booking-agent/flows/flight-booking-agent.ts
    • kits/flight-booking-agent/model-configs/flight-booking-agent_llmnode-977_generative-model-name.ts
    • kits/flight-booking-agent/prompts/flight-booking-agent_llmnode-977_system_0.md
    • kits/flight-booking-agent/prompts/flight-booking-agent_llmnode-977_user_1.md
  • Added Lamatic code nodes (parameter extraction + search/pricing formatting):

    • kits/flight-booking-agent/scripts/flight-booking-agent_code-node-383_code.ts
    • kits/flight-booking-agent/scripts/flight-booking-agent_code-node-974_code.ts
  • Added Next.js 14 TypeScript frontend (Vercel demo + Lamatic-backed API route):

    • App/config:
      • kits/flight-booking-agent/apps/.env.example
      • kits/flight-booking-agent/apps/.gitignore
      • kits/flight-booking-agent/apps/.prettierignore
      • kits/flight-booking-agent/apps/.prettierrc
      • kits/flight-booking-agent/apps/AGENTS.md
      • kits/flight-booking-agent/apps/CLAUDE.md
      • kits/flight-booking-agent/apps/components.json
      • kits/flight-booking-agent/apps/eslint.config.mjs
      • kits/flight-booking-agent/apps/global.d.ts
      • kits/flight-booking-agent/apps/next.config.ts
      • kits/flight-booking-agent/apps/package.json
      • kits/flight-booking-agent/apps/package-lock.json
      • kits/flight-booking-agent/apps/postcss.config.mjs
      • kits/flight-booking-agent/apps/tsconfig.json
    • Static assets/styles:
      • kits/flight-booking-agent/apps/public/home.png
      • kits/flight-booking-agent/apps/src/app/globals.css
      • kits/flight-booking-agent/apps/src/app/layout.tsx
      • kits/flight-booking-agent/apps/src/app/page.tsx
      • kits/flight-booking-agent/apps/src/app/api/flights/route.ts
    • UI components:
      • kits/flight-booking-agent/apps/src/components/ClientOnly.tsx
      • kits/flight-booking-agent/apps/src/components/layout/Header.tsx
      • kits/flight-booking-agent/apps/src/components/layout/Footer.tsx
      • kits/flight-booking-agent/apps/src/components/booking/BookingHistory.tsx
      • kits/flight-booking-agent/apps/src/components/booking/BookingModal.tsx
      • kits/flight-booking-agent/apps/src/components/flights/SearchForm.tsx
      • kits/flight-booking-agent/apps/src/components/flights/Suggestions.tsx
      • kits/flight-booking-agent/apps/src/components/flights/FlightResults.tsx
      • kits/flight-booking-agent/apps/src/components/flights/FlightStats.tsx
      • kits/flight-booking-agent/apps/src/components/flights/FlightCard.tsx
      • kits/flight-booking-agent/apps/src/components/ui/Badge.tsx
      • kits/flight-booking-agent/apps/src/components/ui/Button.tsx
      • kits/flight-booking-agent/apps/src/components/ui/Card.tsx
      • kits/flight-booking-agent/apps/src/components/ui/ErrorAlert.tsx
      • kits/flight-booking-agent/apps/src/components/ui/Input.tsx
      • kits/flight-booking-agent/apps/src/components/ui/Pagination.tsx
      • kits/flight-booking-agent/apps/src/components/ui/Spinner.tsx
    • Hooks/libs/types:
      • kits/flight-booking-agent/apps/src/hooks/useFlights.ts
      • kits/flight-booking-agent/apps/src/hooks/useBookings.ts
      • kits/flight-booking-agent/apps/src/hooks/useLocalStorage.ts
      • kits/flight-booking-agent/apps/src/lib/constants.ts
      • kits/flight-booking-agent/apps/src/lib/formatters.ts
      • kits/flight-booking-agent/apps/src/lib/generators.ts
      • kits/flight-booking-agent/apps/src/lib/utils.ts
      • kits/flight-booking-agent/apps/src/types/index.ts
  • Flow overview (from kits/flight-booking-agent/flows/flight-booking-agent.ts; no separate flow.json found):

    • Node types used:
      • triggerNode (triggerNode_1): real-time GraphQL/API trigger accepting { "message": "string" }
      • dynamicNode:
        • LLMNode_977 (“Generate Text”): uses Groq-backed model ref plus the system/user prompt markdowns
        • codeNode_383: extracts/validates LLM JSON and builds Duffel offer-request parameters (or returns vague_request)
        • codeNode_974: fetches exchange rate, queries Duffel for offer pricing (search only), converts/filter by cabin + optional min/max, and normalizes the final flights + summary stats
      • responseNode (responseNode_triggerNode_1): maps codeNode_974.output fields into the API JSON response payload
    • High-level runtime behavior:
      • Receives the user’s flight request → LLM converts it into strict structured search params → code nodes handle validation/vague-request responses and perform Duffel pricing + currency conversion → response node returns a normalized result set for the Next.js demo UI (search + display + local booking history; no real bookings/payments).

Nhlalo added 30 commits July 17, 2026 13:21
@Nhlalo

Nhlalo commented Jul 22, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
kits/flight-booking-agent/scripts/flight-booking-agent_code-node-974_code.ts (1)

1-47: 🎯 Functional Correctness | 🔴 Critical | ⚡ Quick win

Mission-critical: read upstream data from the workflow object.

{{codeNode_383.output}} resolves to a literal template path inside Studio Code node scripts, so flightParams will not contain the extracted parameters and searches can fall through to vague_request. Use workflow.codeNode_383.output instead.

🔧 Proposed fix
-const flightParams = {{codeNode_383.output}};
+const flightParams = workflow.codeNode_383.output;

Based on learnings, Lamatic Studio Code node scripts must read upstream values through workflow.codeNode_383.output, not mustache expressions.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@kits/flight-booking-agent/scripts/flight-booking-agent_code-node-974_code.ts`
around lines 1 - 47, Update the flightParams initialization in the main flow to
read the upstream value from workflow.codeNode_383.output instead of the literal
mustache template expression. Keep the existing vague-request check and
downstream parameter extraction unchanged.

Source: Learnings

♻️ Duplicate comments (1)
kits/flight-booking-agent/scripts/flight-booking-agent_code-node-974_code.ts (1)

102-119: 🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

Keep the timeout active through response-body parsing.

The timer is cleared as soon as fetch() resolves, before response.json() completes. A response that sends headers but stalls while streaming its body can still hang the node indefinitely. Move clearTimeout(timeoutId) into a finally block after parsing.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@kits/flight-booking-agent/scripts/flight-booking-agent_code-node-974_code.ts`
around lines 102 - 119, Keep the timeout active through response-body parsing in
the exchange-rate fetch flow. Move clearTimeout(timeoutId) out of the block
immediately after fetch resolves and into a finally block that runs after
response.json() and all subsequent processing, while preserving the existing
success and error behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@kits/flight-booking-agent/scripts/flight-booking-agent_code-node-974_code.ts`:
- Line 62: Update the date generation near today so the example date reflects
the traveler’s request timezone rather than UTC; use the request timezone when
formatting the current date, or explicitly label the generated value as UTC if
timezone-aware formatting is unavailable.

---

Outside diff comments:
In
`@kits/flight-booking-agent/scripts/flight-booking-agent_code-node-974_code.ts`:
- Around line 1-47: Update the flightParams initialization in the main flow to
read the upstream value from workflow.codeNode_383.output instead of the literal
mustache template expression. Keep the existing vague-request check and
downstream parameter extraction unchanged.

---

Duplicate comments:
In
`@kits/flight-booking-agent/scripts/flight-booking-agent_code-node-974_code.ts`:
- Around line 102-119: Keep the timeout active through response-body parsing in
the exchange-rate fetch flow. Move clearTimeout(timeoutId) out of the block
immediately after fetch resolves and into a finally block that runs after
response.json() and all subsequent processing, while preserving the existing
success and error behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Pro

Run ID: 9dceb0e1-2149-469f-87ce-82cc5c1717c2

📥 Commits

Reviewing files that changed from the base of the PR and between 07eb1d2 and a05d3c8.

📒 Files selected for processing (3)
  • kits/flight-booking-agent/.env.example
  • kits/flight-booking-agent/apps/.env.example
  • kits/flight-booking-agent/scripts/flight-booking-agent_code-node-974_code.ts
💤 Files with no reviewable changes (2)
  • kits/flight-booking-agent/.env.example
  • kits/flight-booking-agent/apps/.env.example

Comment thread kits/flight-booking-agent/scripts/flight-booking-agent_code-node-974_code.ts Outdated
@Nhlalo

Nhlalo commented Jul 22, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@Nhlalo

Nhlalo commented Jul 22, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
kits/flight-booking-agent/apps/src/app/api/flights/route.ts (2)

6-14: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Mission critical: reject malformed search requests at the boundary.

request.json() failures, null, arrays, objects, and whitespace-only messages currently become a 500 or are sent to the workflow. Parse safely and require a trimmed string, returning 400 for invalid input.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@kits/flight-booking-agent/apps/src/app/api/flights/route.ts` around lines 6 -
14, Update the request parsing in the flights route to safely catch
request.json() failures and validate that the parsed body is a non-null,
non-array object with a message that is a string containing non-whitespace
characters. Return a 400 response for every invalid case, and pass only the
trimmed message to the workflow.

64-64: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Mission alert: keep exchangeRate aligned with the shared response contract.

This route emits null, but SearchResponse defines exchange-rate metadata as required numeric data and useFlights stores it as number | undefined. Either always normalize to a number or make the shared type and consumers explicitly null-aware.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@kits/flight-booking-agent/apps/src/app/api/flights/route.ts` at line 64,
Update the exchangeRate handling in the flights route so it matches the shared
SearchResponse contract and useFlights’s number | undefined expectation:
normalize missing values to a numeric value, or consistently change the shared
type and all consumers to explicitly support null. Prefer the smallest
contract-preserving change and keep route response typing aligned.
♻️ Duplicate comments (1)
kits/flight-booking-agent/apps/src/components/ui/Input.tsx (1)

12-13: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Preserve an explicitly supplied id.

Because id is not destructured, {...props} can overwrite the input’s generated id while the label still references the generated value. Destructure id, derive inputId = id ?? useId(), and use inputId for both htmlFor and the input.

🛠️ Proposed fix
-  ({ label, error, fullWidth = true, className = "", ...props }, ref) => {
-    const id = useId();
+  ({ label, error, fullWidth = true, className = "", id, ...props }, ref) => {
+    const generatedId = useId();
+    const inputId = id ?? generatedId;
...
-            htmlFor={id}
+            htmlFor={inputId}
...
-          id={id}
+          id={inputId}

Also applies to: 25-27, 36-36

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@kits/flight-booking-agent/apps/src/components/ui/Input.tsx` around lines 12 -
13, Update the Input component’s forwarded props destructuring to extract id,
derive inputId from the supplied id or useId() when absent, and use inputId
consistently for the label’s htmlFor and the input element’s id so explicit IDs
are preserved.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@kits/flight-booking-agent/apps/src/app/page.tsx`:
- Around line 67-72: Update handleBookingConfirm to accept the email argument
passed by BookingModal.onSubmit and thread it into the resulting booking, such
as assigning it to Booking.passengerEmail for display without changing
persistence. Ensure the collected and validated email is no longer silently
ignored while preserving the existing addBooking flow.

In `@kits/flight-booking-agent/apps/src/components/ui/Badge.tsx`:
- Around line 12-17: Restore the complete CSS-variable theme contract across the
affected components. In
kits/flight-booking-agent/apps/src/components/ui/Badge.tsx lines 12-17, replace
raw status colors with CSS-variable-backed semantic variants; define card and
card-foreground tokens for Card.tsx lines 15-16, destructive
background/border/text tokens for ErrorAlert.tsx line 24,
muted/border/destructive/primary tokens for Input.tsx lines 29-33,
muted/border/muted-foreground tokens for Suggestions.tsx line 25, and the border
token for Footer.tsx line 9. Ensure the corresponding --color-* theme
definitions exist in the supplied globals.css.

In `@kits/flight-booking-agent/apps/src/components/ui/ErrorAlert.tsx`:
- Around line 26-32: Add role="alert" to the animated container enclosing the
error message and dismiss button in ErrorAlert so dynamically mounted search
failures are announced to assistive technology.

In `@kits/flight-booking-agent/apps/src/hooks/useBookings.ts`:
- Around line 56-65: Wire the existing removeBooking callback into the booking
history flow so the History “Remove” action performs permanent deletion. Update
page.tsx to destructure and pass removeBooking, then update BookingHistory.tsx
to accept and invoke it for the Remove button instead of routing that action
through onCancel/cancelBooking.

In `@kits/flight-booking-agent/apps/src/types/index.ts`:
- Around line 58-60: Align the demo booking flow around the email submitted by
BookingModal: either remove data.email from the form and submission path,
including passengerEmail from the booking type, or propagate it through
Home.handleBookingConfirm into useBookings and retain it under an explicit
policy. Do not leave passengerEmail optional while the value is silently
discarded.

In `@kits/flight-booking-agent/README.md`:
- Around line 51-63: Change the “# Lamatic API” line in the Environment
Variables section to non-heading text, such as plain descriptive text, so it no
longer creates an H1 or disrupts the Markdown heading hierarchy.

---

Outside diff comments:
In `@kits/flight-booking-agent/apps/src/app/api/flights/route.ts`:
- Around line 6-14: Update the request parsing in the flights route to safely
catch request.json() failures and validate that the parsed body is a non-null,
non-array object with a message that is a string containing non-whitespace
characters. Return a 400 response for every invalid case, and pass only the
trimmed message to the workflow.
- Line 64: Update the exchangeRate handling in the flights route so it matches
the shared SearchResponse contract and useFlights’s number | undefined
expectation: normalize missing values to a numeric value, or consistently change
the shared type and all consumers to explicitly support null. Prefer the
smallest contract-preserving change and keep route response typing aligned.

---

Duplicate comments:
In `@kits/flight-booking-agent/apps/src/components/ui/Input.tsx`:
- Around line 12-13: Update the Input component’s forwarded props destructuring
to extract id, derive inputId from the supplied id or useId() when absent, and
use inputId consistently for the label’s htmlFor and the input element’s id so
explicit IDs are preserved.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Pro

Run ID: cbdefb09-603e-4ee2-881d-2489488bf0a2

📥 Commits

Reviewing files that changed from the base of the PR and between d6384d2 and be9fffc.

⛔ Files ignored due to path filters (1)
  • kits/flight-booking-agent/apps/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (23)
  • kits/flight-booking-agent/README.md
  • kits/flight-booking-agent/apps/next.config.ts
  • kits/flight-booking-agent/apps/package.json
  • kits/flight-booking-agent/apps/src/app/api/flights/route.ts
  • kits/flight-booking-agent/apps/src/app/globals.css
  • kits/flight-booking-agent/apps/src/app/page.tsx
  • kits/flight-booking-agent/apps/src/components/booking/BookingHistory.tsx
  • kits/flight-booking-agent/apps/src/components/booking/BookingModal.tsx
  • kits/flight-booking-agent/apps/src/components/flights/FlightCard.tsx
  • kits/flight-booking-agent/apps/src/components/flights/FlightResults.tsx
  • kits/flight-booking-agent/apps/src/components/flights/Suggestions.tsx
  • kits/flight-booking-agent/apps/src/components/layout/Footer.tsx
  • kits/flight-booking-agent/apps/src/components/ui/Badge.tsx
  • kits/flight-booking-agent/apps/src/components/ui/Button.tsx
  • kits/flight-booking-agent/apps/src/components/ui/Card.tsx
  • kits/flight-booking-agent/apps/src/components/ui/ErrorAlert.tsx
  • kits/flight-booking-agent/apps/src/components/ui/Input.tsx
  • kits/flight-booking-agent/apps/src/components/ui/Pagination.tsx
  • kits/flight-booking-agent/apps/src/hooks/useBookings.ts
  • kits/flight-booking-agent/apps/src/lib/formatters.ts
  • kits/flight-booking-agent/apps/src/lib/utils.ts
  • kits/flight-booking-agent/apps/src/types/index.ts
  • kits/flight-booking-agent/constitutions/default.md
💤 Files with no reviewable changes (1)
  • kits/flight-booking-agent/apps/next.config.ts

Comment thread kits/flight-booking-agent/apps/src/app/page.tsx
Comment thread kits/flight-booking-agent/apps/src/components/ui/Badge.tsx
Comment thread kits/flight-booking-agent/apps/src/components/ui/ErrorAlert.tsx
Comment thread kits/flight-booking-agent/apps/src/hooks/useBookings.ts
Comment thread kits/flight-booking-agent/apps/src/types/index.ts Outdated
Comment thread kits/flight-booking-agent/README.md
@Nhlalo

Nhlalo commented Jul 22, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@kits/flight-booking-agent/apps/src/components/ui/Pagination.tsx`:
- Around line 48-59: Update PaginationLink and its usage in FlightResults so
click-driven pagination renders a native button instead of an anchor without
href, preserving the existing active styling and click behavior. Pass disabled
to boundary controls such as previous/next when they cannot paginate; retain
anchor rendering only when a real navigable href is provided.
- Line 4: Align all Button imports with the canonical component casing. Update
the imports in
kits/flight-booking-agent/apps/src/components/ui/Pagination.tsx#L4-L4,
kits/flight-booking-agent/apps/src/components/flights/FlightCard.tsx#L6-L6,
kits/flight-booking-agent/apps/src/components/flights/SearchForm.tsx#L6-L6,
kits/flight-booking-agent/apps/src/components/layout/Header.tsx#L5-L5, and
kits/flight-booking-agent/apps/src/components/booking/BookingModal.tsx#L10-L10
to reference the Button module using the same casing as Button.tsx.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Pro

Run ID: aa9862b0-8ae4-4523-b213-31a3b4a9cf75

📥 Commits

Reviewing files that changed from the base of the PR and between be9fffc and c610a1b.

⛔ Files ignored due to path filters (1)
  • kits/flight-booking-agent/apps/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (16)
  • kits/flight-booking-agent/README.md
  • kits/flight-booking-agent/apps/components.json
  • kits/flight-booking-agent/apps/package.json
  • kits/flight-booking-agent/apps/src/app/globals.css
  • kits/flight-booking-agent/apps/src/app/page.tsx
  • kits/flight-booking-agent/apps/src/components/booking/BookingHistory.tsx
  • kits/flight-booking-agent/apps/src/components/booking/BookingModal.tsx
  • kits/flight-booking-agent/apps/src/components/flights/FlightCard.tsx
  • kits/flight-booking-agent/apps/src/components/flights/FlightResults.tsx
  • kits/flight-booking-agent/apps/src/components/flights/SearchForm.tsx
  • kits/flight-booking-agent/apps/src/components/layout/Header.tsx
  • kits/flight-booking-agent/apps/src/components/ui/Button.tsx
  • kits/flight-booking-agent/apps/src/components/ui/ErrorAlert.tsx
  • kits/flight-booking-agent/apps/src/components/ui/Pagination.tsx
  • kits/flight-booking-agent/apps/src/lib/utils.ts
  • kits/flight-booking-agent/apps/src/types/index.ts

Comment thread kits/flight-booking-agent/apps/src/components/ui/pagination.tsx Outdated
Comment thread kits/flight-booking-agent/apps/src/components/ui/pagination.tsx
@akshatvirmani

Copy link
Copy Markdown
Contributor

/validate

@github-actions

Copy link
Copy Markdown
Contributor

📡 Running Studio validation — results will appear here shortly.

@akshatvirmani

Copy link
Copy Markdown
Contributor

@Nhlalo LGTM!
One comment is left by coderabbit please solve that and we are ready to merge!

@Nhlalo

Nhlalo commented Jul 23, 2026

Copy link
Copy Markdown
Contributor Author

@akshatvirmani Fixed the last recommendation by coderabbit, awaiting the merge.

@akshatvirmani

Copy link
Copy Markdown
Contributor

/validate

@github-actions

Copy link
Copy Markdown
Contributor

📡 Running Studio validation — results will appear here shortly.

@akshatvirmani
akshatvirmani merged commit 7c6cdb7 into Lamatic:main Jul 23, 2026
2 checks passed
@akshatvirmani akshatvirmani added the tier-2 Consider label Jul 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants