#967 by GitHub stars

borski/travel-hacking-toolkit

AI-powered travel hacking and search with cash, points, miles, and award flights. Drop-in skills and MCP servers for Claude, Codex, and OpenCode.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

plugins/travel-hacking-toolkit/skills/alliances/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/american-airlines/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Local scripts

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/amex-travel/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Local scripts

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/atlas-obscura/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Local scripts

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/award-calendar/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/award-holds/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/award-sweet-spots/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/awardwallet/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/bilt/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/booking-guidance/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/cabin-codes/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/chase-travel/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/compare-flights/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/compare-hotels/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/deutsche-bahn/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/duffel/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/fallback-and-resilience/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/flight-search-strategy/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/gardening/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/getting-started/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/google-flights/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/hotel-chains/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/ignav/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/lessons-learned/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/partner-awards/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/plan-trip/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/points-valuations/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/premium-hotels/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/rapidapi/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/round-the-world/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Local scripts

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/scandinavia-transit/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/seatmaps/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/seats-aero/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/serpapi/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/southwest/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/status-match/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/stopovers/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/sutochno/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Local scripts

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/ticketsatwork/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/transfer-bonuses/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/transfer-partners/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/trip-calculator/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/trip-log/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/trip-planner/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/tripadvisor/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/vrbo/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Local scripts

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/wheretocredit/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-hacking-toolkit/skills/wikipedia-airports/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

b46172deee14 → 07bf2bd4b798

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → b46172deee14

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 07bf2bd4b798f25799125b20e546f390ab1e954d

git clone --filter=blob:none --no-checkout https://github.com/borski/travel-hacking-toolkit.git .hotskills/borski-travel-hacking-toolkit && git -C .hotskills/borski-travel-hacking-toolkit checkout --detach 07bf2bd4b798f25799125b20e546f390ab1e954d # Copy each selected skill directory from .hotskills/borski-travel-hacking-toolkit into .claude/skills/<skill-name>/
git clone --filter=blob:none --no-checkout https://github.com/borski/travel-hacking-toolkit.git .hotskills/borski-travel-hacking-toolkit && git -C .hotskills/borski-travel-hacking-toolkit checkout --detach 07bf2bd4b798f25799125b20e546f390ab1e954d # Copy each selected skill directory from .hotskills/borski-travel-hacking-toolkit into .agents/skills/<skill-name>/
git clone --filter=blob:none --no-checkout https://github.com/borski/travel-hacking-toolkit.git .hotskills/borski-travel-hacking-toolkit && git -C .hotskills/borski-travel-hacking-toolkit checkout --detach 07bf2bd4b798f25799125b20e546f390ab1e954d # Copy each selected skill directory from .hotskills/borski-travel-hacking-toolkit into .opencode/skills/<skill-name>/
905GitHub stars
79stars in 7 days
48skills in this repository
7commits in 30 days

Heat

7.9
  • Star growth, last 7 daysAhead of 98% of tracked repositories
  • Star growth, last 24 hoursAhead of 98% of tracked repositories
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysAhead of 73% of tracked repositories
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekAhead of 0% of tracked repositories

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Aug 2, 2026Nov 7, 2026905

Individual skills in this repository

  • alliances plugins/travel-hacking-toolkit/skills/alliances
  • american-airlines plugins/travel-hacking-toolkit/skills/american-airlines
  • amex-travel plugins/travel-hacking-toolkit/skills/amex-travel
  • atlas-obscura plugins/travel-hacking-toolkit/skills/atlas-obscura
  • award-calendar plugins/travel-hacking-toolkit/skills/award-calendar
  • award-holds plugins/travel-hacking-toolkit/skills/award-holds
  • award-sweet-spots plugins/travel-hacking-toolkit/skills/award-sweet-spots
  • awardwallet plugins/travel-hacking-toolkit/skills/awardwallet
  • bilt plugins/travel-hacking-toolkit/skills/bilt
  • booking-guidance plugins/travel-hacking-toolkit/skills/booking-guidance
  • cabin-codes plugins/travel-hacking-toolkit/skills/cabin-codes
  • chase-travel plugins/travel-hacking-toolkit/skills/chase-travel
  • compare-flights plugins/travel-hacking-toolkit/skills/compare-flights
  • compare-hotels plugins/travel-hacking-toolkit/skills/compare-hotels
  • deutsche-bahn plugins/travel-hacking-toolkit/skills/deutsche-bahn
  • duffel plugins/travel-hacking-toolkit/skills/duffel
  • fallback-and-resilience plugins/travel-hacking-toolkit/skills/fallback-and-resilience
  • flight-search-strategy plugins/travel-hacking-toolkit/skills/flight-search-strategy
  • gardening plugins/travel-hacking-toolkit/skills/gardening
  • getting-started plugins/travel-hacking-toolkit/skills/getting-started
  • google-flights plugins/travel-hacking-toolkit/skills/google-flights
  • hotel-chains plugins/travel-hacking-toolkit/skills/hotel-chains
  • ignav plugins/travel-hacking-toolkit/skills/ignav
  • lessons-learned plugins/travel-hacking-toolkit/skills/lessons-learned
  • partner-awards plugins/travel-hacking-toolkit/skills/partner-awards
  • plan-trip plugins/travel-hacking-toolkit/skills/plan-trip
  • points-valuations plugins/travel-hacking-toolkit/skills/points-valuations
  • premium-hotels plugins/travel-hacking-toolkit/skills/premium-hotels
  • rapidapi plugins/travel-hacking-toolkit/skills/rapidapi
  • round-the-world plugins/travel-hacking-toolkit/skills/round-the-world
  • scandinavia-transit plugins/travel-hacking-toolkit/skills/scandinavia-transit
  • seatmaps plugins/travel-hacking-toolkit/skills/seatmaps
  • seats-aero plugins/travel-hacking-toolkit/skills/seats-aero
  • serpapi plugins/travel-hacking-toolkit/skills/serpapi
  • southwest plugins/travel-hacking-toolkit/skills/southwest
  • status-match plugins/travel-hacking-toolkit/skills/status-match
  • stopovers plugins/travel-hacking-toolkit/skills/stopovers
  • sutochno plugins/travel-hacking-toolkit/skills/sutochno
  • ticketsatwork plugins/travel-hacking-toolkit/skills/ticketsatwork
  • transfer-bonuses plugins/travel-hacking-toolkit/skills/transfer-bonuses
  • transfer-partners plugins/travel-hacking-toolkit/skills/transfer-partners
  • trip-calculator plugins/travel-hacking-toolkit/skills/trip-calculator
  • trip-log plugins/travel-hacking-toolkit/skills/trip-log
  • trip-planner plugins/travel-hacking-toolkit/skills/trip-planner
  • tripadvisor plugins/travel-hacking-toolkit/skills/tripadvisor
  • vrbo plugins/travel-hacking-toolkit/skills/vrbo
  • wheretocredit plugins/travel-hacking-toolkit/skills/wheretocredit
  • wikipedia-airports plugins/travel-hacking-toolkit/skills/wikipedia-airports

How it works

alliances

When your agent uses it

Airline alliance membership (Star Alliance, oneworld, SkyTeam) and cross-alliance booking relationships. Maps which loyalty programs book which airlines, including bilateral partnerships outside alliances.

What it loads into context

Frontmatter

87 tokens

Always available to the agent

SKILL.md

546 tokens

When the skill is activated

Reference documents

0 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Key Booking Relationships
  2. Recent Alliance Changes
  3. Cross-Alliance Bookings Are Where Real Value Hides
  4. Partner Awards Reference

Files

  • ../../../../.claude-plugin/marketplace.jsonasset1,005 bytes
  • ../../../../.claude-plugin/plugin.jsonasset1,014 bytes
  • SKILL.mdcore2,420 bytes
Read SKILL.md

# Alliance Awareness

**Reference data:** `data/alliances.json`

Star Alliance, oneworld, and SkyTeam determine which loyalty programs can book which airlines. This is fundamental to award travel. When recommending an award booking, always verify the airline and the booking program are in the same alliance (or have a bilateral partnership).

## Key Booking Relationships

- **United MileagePlus** books Star Alliance (ANA, Lufthansa, Singapore, Turkish, etc.)
- **Aeroplan** books Star Alliance plus extended partners (including Etihad, Emirates on some routes)
- **Virgin Atlantic Flying Club** books ANA, Delta, Air France, KLM (cross-alliance)
- **AAdvantage** books oneworld (Cathay, JAL, Qantas, Qatar, BA, etc.)
- **Flying Blue** books SkyTeam (Air France, KLM, Delta, Korean Air, etc.)
- **Korean Air SKYPASS** books SkyTeam
View the complete source on GitHub

Skills included

  • alliances
  • american-airlines
  • amex-travel
  • atlas-obscura
  • award-calendar
  • award-holds
  • award-sweet-spots
  • awardwallet
  • bilt
  • booking-guidance
  • cabin-codes
  • chase-travel
  • compare-flights
  • compare-hotels
  • deutsche-bahn
  • duffel
  • fallback-and-resilience
  • flight-search-strategy
  • gardening
  • getting-started
  • google-flights
  • hotel-chains
  • ignav
  • lessons-learned
  • partner-awards
  • plan-trip
  • points-valuations
  • premium-hotels
  • rapidapi
  • round-the-world
  • scandinavia-transit
  • seatmaps
  • seats-aero
  • serpapi
  • southwest
  • status-match
  • stopovers
  • sutochno
  • ticketsatwork
  • transfer-bonuses
  • transfer-partners
  • trip-calculator
  • trip-log
  • trip-planner
  • tripadvisor
  • vrbo
  • wheretocredit
  • wikipedia-airports

Repository facts

License
MIT
Created
Mar 21, 2026
Last pushed
Nov 6, 2026
Forks
108
Open issues
3
Project activity
Active

Rank over the last 12 weeks

Now #967 · best #756 · down 123 in 30 days

  1. #992 on Nov 2
  2. #983 on Nov 3
  3. #978 on Nov 4
  4. #973 on Nov 5
  5. #971 on Nov 6
  6. #967 since Nov 7
56 earlier periods
  1. #730 on Aug 2
  2. #778 on Aug 6
  3. #738 on Aug 8
  4. #774 on Aug 10
  5. #772 on Aug 11
  6. #777 on Aug 13
  7. #758 on Aug 14
  8. #733 on Aug 15
  9. #756 on Aug 16
  10. #768 on Aug 17
  11. #772 on Aug 20
  12. #776 on Aug 21
  13. #786 on Aug 23
  14. #819 on Aug 25
  15. #800 on Aug 26
  16. #838 on Aug 28
  17. #768 on Aug 29
  18. #773 on Aug 30
  19. #813 on Aug 31
  20. #814 on Sep 2
  21. #777 on Sep 5
  22. #806 on Sep 6
  23. #825 on Sep 7
  24. #849 on Sep 8
  25. #830 on Sep 9
  26. #809 on Sep 12
  27. #806 on Sep 13
  28. #827 on Sep 15
  29. #843 on Sep 16
  30. #840 on Sep 17
  31. #825 on Sep 18
  32. #802 on Sep 19
  33. #818 on Sep 20
  34. #829 on Sep 21
  35. #855 on Sep 22
  36. #838 on Sep 23
  37. #774 on Sep 25
  38. #787 on Sep 26
  39. #813 on Sep 27
  40. #810 on Oct 2
  41. #827 on Oct 4
  42. #844 on Oct 5
  43. #852 on Oct 10
  44. #857 on Oct 11
  45. #880 on Oct 12
  46. #887 on Oct 13
  47. #901 on Oct 14
  48. #891 on Oct 15
  49. #894 on Oct 16
  50. #860 on Oct 18
  51. #901 on Oct 19
  52. #910 on Oct 20
  53. #929 on Oct 21
  54. #894 on Oct 22
  55. #858 on Oct 24
  56. #999 on Nov 1

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 4, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 228 notes
  • plugins/travel-hacking-toolkit/skills/american-airlines/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/travel-hacking-toolkit/skills/american-airlines/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/travel-hacking-toolkit/skills/american-airlines/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/travel-hacking-toolkit/skills/american-airlines/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/travel-hacking-toolkit/skills/amex-travel/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/travel-hacking-toolkit/skills/amex-travel/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/travel-hacking-toolkit/skills/amex-travel/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/travel-hacking-toolkit/skills/amex-travel/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/travel-hacking-toolkit/skills/amex-travel/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/travel-hacking-toolkit/skills/amex-travel/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/travel-hacking-toolkit/skills/amex-travel/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/travel-hacking-toolkit/skills/amex-travel/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/travel-hacking-toolkit/skills/atlas-obscura/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/travel-hacking-toolkit/skills/atlas-obscura/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/travel-hacking-toolkit/skills/atlas-obscura/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/travel-hacking-toolkit/skills/atlas-obscura/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/travel-hacking-toolkit/skills/atlas-obscura/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/travel-hacking-toolkit/skills/atlas-obscura/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/travel-hacking-toolkit/skills/atlas-obscura/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/travel-hacking-toolkit/skills/atlas-obscura/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 1,340 signals by file

.claude-plugin/marketplace.json

  • Network accessline 1
    {   "$schema": "https://json.schemastore.org/claude-code-marketplace.json",
  • Network accessline 2
    "$schema": "https://json.schemastore.org/claude-code-marketplace.json",
  • Network accessline 14
    "name": "Michael Borohovski"       },       "homepage": "https://github.com/borski/travel-hacking-toolkit",
  • Network accessline 15
    },       "homepage": "https://github.com/borski/travel-hacking-toolkit",       "repository": "https://github.com/borski/travel-hacking-toolkit",
  • Network accessline 16
    "homepage": "https://github.com/borski/travel-hacking-toolkit",
  • Network accessline 17
    "repository": "https://github.com/borski/travel-hacking-toolkit",

.claude-plugin/plugin.json

  • Network accessline 1
    {   "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
  • Network accessline 2
    "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
  • Network accessline 6
    "author": {     "name": "Michael Borohovski",     "url": "https://github.com/borski"
  • Network accessline 7
    "name": "Michael Borohovski",     "url": "https://github.com/borski"   },
  • Network accessline 8
    "url": "https://github.com/borski"
  • Network accessline 9
    },   "homepage": "https://github.com/borski/travel-hacking-toolkit",   "repository": "https://github.com/borski/travel-hacking-toolkit",
  • Network accessline 10
    "homepage": "https://github.com/borski/travel-hacking-toolkit",
  • Network accessline 11
    "repository": "https://github.com/borski/travel-hacking-toolkit",

plugins/travel-hacking-toolkit/skills/american-airlines/Dockerfile

  • Executable scriptline 1
    Executable file

plugins/travel-hacking-toolkit/skills/american-airlines/SKILL.md

  • Access to secretsline 6
    [Credential-related source omitted]
  • Access to secretsline 61
    [Credential-related source omitted]

plugins/travel-hacking-toolkit/skills/american-airlines/scripts/check_balance.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 35
    [Credential-related source omitted]
  • Access to secretsline 38
    [Credential-related source omitted]
  • Access to secretsline 58
    [Credential-related source omitted]
  • Network accessline 419
    log("Navigating to aa.com...")             page.goto("https://www.aa.com/", wait_until="networkidle", timeout=30000)
  • Network accessline 420
    page.goto("https://www.aa.com/", wait_until="networkidle", timeout=30000)
  • Network accessline 531
    log("Navigating to account summary...")             page.goto(                 "https://www.aa.com/aadvantage-program/profile/account-summary",
  • Network accessline 532
    page.goto(                 "https://www.aa.com/aadvantage-program/profile/account-summary",                 wait_until="networkidle",
  • Network accessline 533
    "https://www.aa.com/aadvantage-program/profile/account-summary",

plugins/travel-hacking-toolkit/skills/amex-travel/Dockerfile

  • Executable scriptline 1
    Executable file

plugins/travel-hacking-toolkit/skills/amex-travel/SKILL.md

  • Access to secretsline 6
    [Credential-related source omitted]
  • Access to secretsline 6
    [Credential-related source omitted]

plugins/travel-hacking-toolkit/skills/amex-travel/scripts/refresh_login.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 33
    AMEX_TRAVEL_GATE_URL = "https://www.americanexpress.com/en-us/account/travel/login"
  • Access to secretsline 46
    [Credential-related source omitted]

plugins/travel-hacking-toolkit/skills/amex-travel/scripts/search_flights.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 43
    AMEX_LOGIN_URL = "https://www.americanexpress.com/en-us/account/login"
  • Network accessline 44
    AMEX_TRAVEL_URL = "https://www.americanexpress.com/en-us/travel"
  • Network accessline 45
    AMEX_FLIGHTS_URL = "https://www.americanexpress.com/en-us/travel/flights"
  • Network accessline 46
    AMEX_HOTELS_URL = "https://www.americanexpress.com/en-us/travel/hotels"
  • Access to secretsline 55
    [Credential-related source omitted]
  • Access to secretsline 123
    [Credential-related source omitted]
  • Access to secretsline 411
    [Credential-related source omitted]
  • Access to secretsline 412
    [Credential-related source omitted]
  • Access to secretsline 2488
    [Credential-related source omitted]
  • Access to secretsline 2489
    [Credential-related source omitted]
  • Access to secretsline 2495
    [Credential-related source omitted]

plugins/travel-hacking-toolkit/skills/amex-travel/tests/test_search_flights.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/travel-hacking-toolkit/skills/atlas-obscura/SKILL.md

  • Access to secretsline 6
    [Credential-related source omitted]
  • Network accessline 14
    No API key needed. Uses the [`atlas-obscura-api`](https://github.com/bartholomej/atlas-obscura-api) npm scraper.

plugins/travel-hacking-toolkit/skills/atlas-obscura/ao.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 3
    // Atlas Obscura hidden gem finder // Uses: https://github.com/bartholomej/atlas-obscura-api
  • Network accessline 4
    // Uses: https://github.com/bartholomej/atlas-obscura-api
  • Network accessline 63
    subtitle: p.subtitle,     location: p.location || `${p.city || ''}, ${p.country || ''}`.replace(/^, |, $/g, ''),     url: p.url?.startsWith('http') ? p.url : `https://www.atlasobscura.com${p.url || ''}`,
  • Network accessline 64
    location: p.location || `${p.city || ''}, ${p.country || ''}`.replace(/^, |, $/g, ''),     url: p.url?.startsWith('http') ? p.url : `https://www.atlasobscura.com${p.url || ''}`,     coordinates: p.coordinates
  • Network accessline 65
    url: p.url?.startsWith('http') ? p.url : `https://www.atlasobscura.com${p.url || ''}`,

plugins/travel-hacking-toolkit/skills/atlas-obscura/package-lock.json

  • Network accessline 12
    "node_modules/@keyv/serialize": {       "version": "1.1.1",       "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.1.tgz",
  • Network accessline 13
    "version": "1.1.1",       "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.1.tgz",       "integrity": "sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==",
  • Network accessline 14
    "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.1.tgz",
  • Network accessline 18
    "node_modules/@sec-ant/readable-stream": {       "version": "0.4.1",       "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz",
  • Network accessline 19
    "version": "0.4.1",       "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz",       "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==",
  • Network accessline 20
    "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz",
  • Network accessline 24
    "node_modules/@sindresorhus/is": {       "version": "7.2.0",       "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.2.0.tgz",
  • Network accessline 25
    "version": "7.2.0",       "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.2.0.tgz",       "integrity": "sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==",
  • Network accessline 26
    "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.2.0.tgz",
  • Network accessline 31
    },       "funding": {         "url": "https://github.com/sindresorhus/is?sponsor=1"
  • Network accessline 32
    "funding": {         "url": "https://github.com/sindresorhus/is?sponsor=1"       }
  • Network accessline 33
    "url": "https://github.com/sindresorhus/is?sponsor=1"
  • Network accessline 36
    "node_modules/@types/http-cache-semantics": {       "version": "4.2.0",       "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz",
  • Network accessline 37
    "version": "4.2.0",       "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz",       "integrity": "sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e
  • Network accessline 38
    "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz",
  • Network accessline 42
    "node_modules/adm-zip": {       "version": "0.5.16",       "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.16.tgz",
  • Network accessline 43
    "version": "0.5.16",       "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.16.tgz",       "integrity": "sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==",
  • Network accessline 44
    "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.16.tgz",
  • Network accessline 51
    "node_modules/atlas-obscura-api": {       "version": "5.0.3",       "resolved": "https://registry.npmjs.org/atlas-obscura-api/-/atlas-obscura-api-5.0.3.tgz",
  • Network accessline 52
    "version": "5.0.3",       "resolved": "https://registry.npmjs.org/atlas-obscura-api/-/atlas-obscura-api-5.0.3.tgz",       "integrity": "sha512-Oh70FJp20Qjld1pSb4bG4Csqt5x9jaEl49WP5eKbm72y1RB+474u7+lwDT9QtTMZ2lYFT7Lyr1L5uqXRmdW/Eg==",
  • Network accessline 53
    "resolved": "https://registry.npmjs.org/atlas-obscura-api/-/atlas-obscura-api-5.0.3.tgz",
  • Network accessline 64
    "node_modules/baseline-browser-mapping": {       "version": "2.10.9",       "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.9.tgz",
  • Network accessline 65
    "version": "2.10.9",       "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.9.tgz",       "integrity": "sha512-OZd0e2mU11ClX8+IdXe3r0dbqMEznRiT4TfbhYIbcRPZkqJ7Qwer8ij3GZAmLsRKa+II9V1v5czCkvmHH
  • Network accessline 66
    "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.9.tgz",
  • Network accessline 76
    "node_modules/boolbase": {       "version": "1.0.0",       "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
  • Network accessline 77
    "version": "1.0.0",       "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",       "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
  • Network accessline 78
    "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
  • Network accessline 82
    "node_modules/browserslist": {       "version": "4.28.1",       "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",
  • Network accessline 83
    "version": "4.28.1",       "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",       "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==",
  • Network accessline 84
    "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",
  • Network accessline 87
    {           "type": "opencollective",           "url": "https://opencollective.com/browserslist"
  • Network accessline 88
    "type": "opencollective",           "url": "https://opencollective.com/browserslist"         },
  • Network accessline 89
    "url": "https://opencollective.com/browserslist"
  • Network accessline 91
    {           "type": "tidelift",           "url": "https://tidelift.com/funding/github/npm/browserslist"
  • Network accessline 92
    "type": "tidelift",           "url": "https://tidelift.com/funding/github/npm/browserslist"         },
  • Network accessline 93
    "url": "https://tidelift.com/funding/github/npm/browserslist"
  • Network accessline 95
    {           "type": "github",           "url": "https://github.com/sponsors/ai"
  • Network accessline 96
    "type": "github",           "url": "https://github.com/sponsors/ai"         }
  • Network accessline 97
    "url": "https://github.com/sponsors/ai"
  • Network accessline 115
    "node_modules/byte-counter": {       "version": "0.1.0",       "resolved": "https://registry.npmjs.org/byte-counter/-/byte-counter-0.1.0.tgz",
  • Network accessline 116
    "version": "0.1.0",       "resolved": "https://registry.npmjs.org/byte-counter/-/byte-counter-0.1.0.tgz",       "integrity": "sha512-jheRLVMeUKrDBjVw2O5+k4EvR4t9wtxHL+bo/LxfkxsVeuGMy3a5SEGgXdAFA4FSzTrU8rQXQIrsZ3oBq5a0pQ==",
  • Network accessline 117
    "resolved": "https://registry.npmjs.org/byte-counter/-/byte-counter-0.1.0.tgz",
  • Network accessline 122
    },       "funding": {         "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 123
    "funding": {         "url": "https://github.com/sponsors/sindresorhus"       }
  • Network accessline 124
    "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 127
    "node_modules/cacheable-lookup": {       "version": "7.0.0",       "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz",
  • Network accessline 128
    "version": "7.0.0",       "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz",       "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==",
  • Network accessline 129
    "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz",
  • Network accessline 136
    "node_modules/cacheable-request": {       "version": "13.0.18",       "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-13.0.18.tgz",
  • Network accessline 137
    "version": "13.0.18",       "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-13.0.18.tgz",       "integrity": "sha512-rFWadDRKJs3s2eYdXlGggnBZKG7MTblkFBB0YllFds+UYnfogDp2wcR6JN97FhRkHTvq59n2vhNoHNZn29dh/Q==",
  • Network accessline 138
    "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-13.0.18.tgz",
  • Network accessline 154
    "node_modules/callsites": {       "version": "4.2.0",       "resolved": "https://registry.npmjs.org/callsites/-/callsites-4.2.0.tgz",
  • Network accessline 155
    "version": "4.2.0",       "resolved": "https://registry.npmjs.org/callsites/-/callsites-4.2.0.tgz",       "integrity": "sha512-kfzR4zzQtAE9PC7CzZsjl3aBNbXWuXiSeOCdLcPpBfGW8YuCqQHcRPFDbr/BPVmd3EEPVpuFzLyuT/cUhPr4OQ==",
  • Network accessline 156
    "resolved": "https://registry.npmjs.org/callsites/-/callsites-4.2.0.tgz",
  • Network accessline 161
    },       "funding": {         "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 162
    "funding": {         "url": "https://github.com/sponsors/sindresorhus"       }
  • Network accessline 163
    "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 166
    "node_modules/caniuse-lite": {       "version": "1.0.30001780",       "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001780.tgz",
  • Network accessline 167
    "version": "1.0.30001780",       "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001780.tgz",       "integrity": "sha512-llngX0E7nQci5BPJDqoZSbuZ5Bcs9F5db7EtgfwBerX9XGtkkiO4NwfDDIRzHTTwcYC8vC7bmeUEPGrKlR/TkQ==",
  • Network accessline 168
    "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001780.tgz",
  • Network accessline 171
    {           "type": "opencollective",           "url": "https://opencollective.com/browserslist"
  • Network accessline 172
    "type": "opencollective",           "url": "https://opencollective.com/browserslist"         },
  • Network accessline 173
    "url": "https://opencollective.com/browserslist"
  • Network accessline 175
    {           "type": "tidelift",           "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
  • Network accessline 176
    "type": "tidelift",           "url": "https://tidelift.com/funding/github/npm/caniuse-lite"         },
  • Network accessline 177
    "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
  • Network accessline 179
    {           "type": "github",           "url": "https://github.com/sponsors/ai"
  • Network accessline 180
    "type": "github",           "url": "https://github.com/sponsors/ai"         }
  • Network accessline 181
    "url": "https://github.com/sponsors/ai"
  • Network accessline 186
    "node_modules/css-select": {       "version": "5.2.2",       "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz",
  • Network accessline 187
    "version": "5.2.2",       "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz",       "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==",
  • Network accessline 188
    "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz",
  • Network accessline 197
    },       "funding": {         "url": "https://github.com/sponsors/fb55"
  • Network accessline 198
    "funding": {         "url": "https://github.com/sponsors/fb55"       }
  • Network accessline 199
    "url": "https://github.com/sponsors/fb55"
  • Network accessline 202
    "node_modules/css-what": {       "version": "6.2.2",       "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz",
  • Network accessline 203
    "version": "6.2.2",       "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz",       "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==",
  • Network accessline 204
    "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz",
  • Network accessline 209
    },       "funding": {         "url": "https://github.com/sponsors/fb55"
  • Network accessline 210
    "funding": {         "url": "https://github.com/sponsors/fb55"       }
  • Network accessline 211
    "url": "https://github.com/sponsors/fb55"
  • Network accessline 214
    "node_modules/decompress-response": {       "version": "10.0.0",       "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-10.0.0.tgz",
  • Network accessline 215
    "version": "10.0.0",       "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-10.0.0.tgz",       "integrity": "sha512-oj7KWToJuuxlPr7VV0vabvxEIiqNMo+q0NueIiL3XhtwC6FVOX7Hr1c0C4eD0bmf7Zr+S/dSf2xvkH3Ad6sU3Q==",
  • Network accessline 216
    "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-10.0.0.tgz",
  • Network accessline 224
    },       "funding": {         "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 225
    "funding": {         "url": "https://github.com/sponsors/sindresorhus"       }
  • Network accessline 226
    "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 229
    "node_modules/dom-serializer": {       "version": "2.0.0",       "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
  • Network accessline 230
    "version": "2.0.0",       "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",       "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
  • Network accessline 231
    "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
  • Network accessline 238
    },       "funding": {         "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
  • Network accessline 239
    "funding": {         "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"       }
  • Network accessline 240
    "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
  • Network accessline 243
    "node_modules/domelementtype": {       "version": "2.3.0",       "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
  • Network accessline 244
    "version": "2.3.0",       "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",       "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
  • Network accessline 245
    "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
  • Network accessline 248
    {           "type": "github",           "url": "https://github.com/sponsors/fb55"
  • Network accessline 249
    "type": "github",           "url": "https://github.com/sponsors/fb55"         }
  • Network accessline 250
    "url": "https://github.com/sponsors/fb55"
  • Network accessline 255
    "node_modules/domhandler": {       "version": "5.0.3",       "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
  • Network accessline 256
    "version": "5.0.3",       "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",       "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
  • Network accessline 257
    "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
  • Network accessline 265
    },       "funding": {         "url": "https://github.com/fb55/domhandler?sponsor=1"
  • Network accessline 266
    "funding": {         "url": "https://github.com/fb55/domhandler?sponsor=1"       }
  • Network accessline 267
    "url": "https://github.com/fb55/domhandler?sponsor=1"
  • Network accessline 270
    "node_modules/domutils": {       "version": "3.2.2",       "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz",
  • Network accessline 271
    "version": "3.2.2",       "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz",       "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==",
  • Network accessline 272
    "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz",
  • Network accessline 279
    },       "funding": {         "url": "https://github.com/fb55/domutils?sponsor=1"
  • Network accessline 280
    "funding": {         "url": "https://github.com/fb55/domutils?sponsor=1"       }
  • Network accessline 281
    "url": "https://github.com/fb55/domutils?sponsor=1"
  • Network accessline 284
    "node_modules/dot-prop": {       "version": "7.2.0",       "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-7.2.0.tgz",
  • Network accessline 285
    "version": "7.2.0",       "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-7.2.0.tgz",       "integrity": "sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA==",
  • Network accessline 286
    "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-7.2.0.tgz",
  • Network accessline 294
    },       "funding": {         "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 295
    "funding": {         "url": "https://github.com/sponsors/sindresorhus"       }
  • Network accessline 296
    "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 299
    "node_modules/dot-prop/node_modules/type-fest": {       "version": "2.19.0",       "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
  • Network accessline 300
    "version": "2.19.0",       "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",       "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
  • Network accessline 301
    "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
  • Network accessline 306
    },       "funding": {         "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 307
    "funding": {         "url": "https://github.com/sponsors/sindresorhus"       }
  • Network accessline 308
    "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 311
    "node_modules/electron-to-chromium": {       "version": "1.5.321",       "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.321.tgz",
  • Network accessline 312
    "version": "1.5.321",       "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.321.tgz",       "integrity": "sha512-L2C7Q279W2D/J4PLZLk7sebOILDSWos7bMsMNN06rK482umHUrh/3lM8G7IlHFOYip2oAg5nha1rCMxr/rs6ZQ=
  • Network accessline 313
    "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.321.tgz",
  • Network accessline 317
    "node_modules/entities": {       "version": "4.5.0",       "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
  • Network accessline 318
    "version": "4.5.0",       "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",       "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
  • Network accessline 319
    "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
  • Network accessline 324
    },       "funding": {         "url": "https://github.com/fb55/entities?sponsor=1"
  • Network accessline 325
    "funding": {         "url": "https://github.com/fb55/entities?sponsor=1"       }
  • Network accessline 326
    "url": "https://github.com/fb55/entities?sponsor=1"
  • Network accessline 329
    "node_modules/escalade": {       "version": "3.2.0",       "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
  • Network accessline 330
    "version": "3.2.0",       "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",       "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
  • Network accessline 331
    "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
  • Network accessline 338
    "node_modules/form-data-encoder": {       "version": "4.1.0",       "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-4.1.0.tgz",
  • Network accessline 339
    "version": "4.1.0",       "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-4.1.0.tgz",       "integrity": "sha512-G6NsmEW15s0Uw9XnCg+33H3ViYRyiM0hMrMhhqQOR8NFc5GhYrI+6I3u7OTw7b91J2g8rtvMBZJDbcGb2YUniw==",
  • Network accessline 340
    "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-4.1.0.tgz",
  • Network accessline 347
    "node_modules/generative-bayesian-network": {       "version": "2.1.81",       "resolved": "https://registry.npmjs.org/generative-bayesian-network/-/generative-bayesian-network-2.1.81.tgz",
  • Network accessline 348
    "version": "2.1.81",       "resolved": "https://registry.npmjs.org/generative-bayesian-network/-/generative-bayesian-network-2.1.81.tgz",       "integrity": "sha512-LrYK+CY5n21p437oahz8jRqTgw0i+S08H+ypag1sgZilfCj33k8Tp8kcFtPiWKsEEJ6niN9gRFP
  • Network accessline 349
    "resolved": "https://registry.npmjs.org/generative-bayesian-network/-/generative-bayesian-network-2.1.81.tgz",
  • Network accessline 357
    "node_modules/get-stream": {       "version": "9.0.1",       "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz",
  • Network accessline 358
    "version": "9.0.1",       "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz",       "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==",
  • Network accessline 359
    "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz",
  • Network accessline 368
    },       "funding": {         "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 369
    "funding": {         "url": "https://github.com/sponsors/sindresorhus"       }
  • Network accessline 370
    "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 373
    "node_modules/got": {       "version": "14.6.6",       "resolved": "https://registry.npmjs.org/got/-/got-14.6.6.tgz",
  • Network accessline 374
    "version": "14.6.6",       "resolved": "https://registry.npmjs.org/got/-/got-14.6.6.tgz",       "integrity": "sha512-QLV1qeYSo5l13mQzWgP/y0LbMr5Plr5fJilgAIwgnwseproEbtNym8xpLsDzeZ6MWXgNE6kdWGBjdh3zT/Qerg==",
  • Network accessline 375
    "resolved": "https://registry.npmjs.org/got/-/got-14.6.6.tgz",
  • Network accessline 394
    },       "funding": {         "url": "https://github.com/sindresorhus/got?sponsor=1"
  • Network accessline 395
    "funding": {         "url": "https://github.com/sindresorhus/got?sponsor=1"       }
  • Network accessline 396
    "url": "https://github.com/sindresorhus/got?sponsor=1"
  • Network accessline 399
    "node_modules/got-scraping": {       "version": "4.2.1",       "resolved": "https://registry.npmjs.org/got-scraping/-/got-scraping-4.2.1.tgz",
  • Network accessline 400
    "version": "4.2.1",       "resolved": "https://registry.npmjs.org/got-scraping/-/got-scraping-4.2.1.tgz",       "integrity": "sha512-rhOlO1L4H4Cm31smHJqPtAaXOUrhSKsiTrbZSHKFQW1E/mkTDopnHHpRnXJpqzE0faj+zPsVQnyifIqO+K+cLQ==",
  • Network accessline 401
    "resolved": "https://registry.npmjs.org/got-scraping/-/got-scraping-4.2.1.tgz",
  • Network accessline 417
    "node_modules/he": {       "version": "1.2.0",       "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
  • Network accessline 418
    "version": "1.2.0",       "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",       "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
  • Network accessline 419
    "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
  • Network accessline 426
    "node_modules/header-generator": {       "version": "2.1.81",       "resolved": "https://registry.npmjs.org/header-generator/-/header-generator-2.1.81.tgz",
  • Network accessline 427
    "version": "2.1.81",       "resolved": "https://registry.npmjs.org/header-generator/-/header-generator-2.1.81.tgz",       "integrity": "sha512-6+27UuqCHFx4xrTWIgcSF/x2WJ+PuVLxziXfPaVLRXi1lXIbTkXO+ffHJefVrdRT5/XEeWfJHrSIE2m1hAdWxw==",
  • Network accessline 428
    "resolved": "https://registry.npmjs.org/header-generator/-/header-generator-2.1.81.tgz",
  • Network accessline 441
    "node_modules/header-generator/node_modules/@sindresorhus/is": {       "version": "4.6.0",       "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
  • Network accessline 442
    "version": "4.6.0",       "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",       "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
  • Network accessline 443
    "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
  • Network accessline 448
    },       "funding": {         "url": "https://github.com/sindresorhus/is?sponsor=1"
  • Network accessline 449
    "funding": {         "url": "https://github.com/sindresorhus/is?sponsor=1"       }
  • Network accessline 450
    "url": "https://github.com/sindresorhus/is?sponsor=1"
  • Network accessline 453
    "node_modules/header-generator/node_modules/callsites": {       "version": "3.1.0",       "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
  • Network accessline 454
    "version": "3.1.0",       "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",       "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
  • Network accessline 455
    "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
  • Network accessline 462
    "node_modules/header-generator/node_modules/dot-prop": {       "version": "6.0.1",       "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz",
  • Network accessline 463
    "version": "6.0.1",       "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz",       "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==",
  • Network accessline 464
    "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz",
  • Network accessline 472
    },       "funding": {         "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 473
    "funding": {         "url": "https://github.com/sponsors/sindresorhus"       }
  • Network accessline 474
    "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 477
    "node_modules/header-generator/node_modules/ow": {       "version": "0.28.2",       "resolved": "https://registry.npmjs.org/ow/-/ow-0.28.2.tgz",
  • Network accessline 478
    "version": "0.28.2",       "resolved": "https://registry.npmjs.org/ow/-/ow-0.28.2.tgz",       "integrity": "sha512-dD4UpyBh/9m4X2NVjA+73/ZPBRF+uF4zIMFvvQsabMiEK8x41L3rQ8EENOi35kyyoaJwNxEeJcP6Fj1H4U409Q==",
  • Network accessline 479
    "resolved": "https://registry.npmjs.org/ow/-/ow-0.28.2.tgz",
  • Network accessline 491
    },       "funding": {         "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 492
    "funding": {         "url": "https://github.com/sponsors/sindresorhus"       }
  • Network accessline 493
    "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 496
    "node_modules/http-cache-semantics": {       "version": "4.2.0",       "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz",
  • Network accessline 497
    "version": "4.2.0",       "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz",       "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==",
  • Network accessline 498
    "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz",
  • Network accessline 502
    "node_modules/http2-wrapper": {       "version": "2.2.1",       "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz",
  • Network accessline 503
    "version": "2.2.1",       "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz",       "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==",
  • Network accessline 504
    "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz",
  • Network accessline 515
    "node_modules/http2-wrapper/node_modules/quick-lru": {       "version": "5.1.1",       "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
  • Network accessline 516
    "version": "5.1.1",       "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",       "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
  • Network accessline 517
    "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
  • Network accessline 522
    },       "funding": {         "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 523
    "funding": {         "url": "https://github.com/sponsors/sindresorhus"       }
  • Network accessline 524
    "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 527
    "node_modules/is-obj": {       "version": "2.0.0",       "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
  • Network accessline 528
    "version": "2.0.0",       "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",       "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
  • Network accessline 529
    "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
  • Network accessline 536
    "node_modules/is-stream": {       "version": "4.0.1",       "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz",
  • Network accessline 537
    "version": "4.0.1",       "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz",       "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==",
  • Network accessline 538
    "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz",
  • Network accessline 543
    },       "funding": {         "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 544
    "funding": {         "url": "https://github.com/sponsors/sindresorhus"       }
  • Network accessline 545
    "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 548
    "node_modules/keyv": {       "version": "5.6.0",       "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz",
  • Network accessline 549
    "version": "5.6.0",       "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz",       "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==",
  • Network accessline 550
    "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz",
  • Network accessline 557
    "node_modules/lodash.isequal": {       "version": "4.5.0",       "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
  • Network accessline 558
    "version": "4.5.0",       "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",       "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
  • Network accessline 559
    "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
  • Network accessline 564
    "node_modules/lowercase-keys": {       "version": "3.0.0",       "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz",
  • Network accessline 565
    "version": "3.0.0",       "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz",       "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==",
  • Network accessline 566
    "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz",
  • Network accessline 571
    },       "funding": {         "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 572
    "funding": {         "url": "https://github.com/sponsors/sindresorhus"       }
  • Network accessline 573
    "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 576
    "node_modules/mimic-response": {       "version": "4.0.0",       "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz",
  • Network accessline 577
    "version": "4.0.0",       "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz",       "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==",
  • Network accessline 578
    "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz",
  • Network accessline 583
    },       "funding": {         "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 584
    "funding": {         "url": "https://github.com/sponsors/sindresorhus"       }
  • Network accessline 585
    "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 588
    "node_modules/node-html-parser": {       "version": "7.1.0",       "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-7.1.0.tgz",
  • Network accessline 589
    "version": "7.1.0",       "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-7.1.0.tgz",       "integrity": "sha512-iJo8b2uYGT40Y8BTyy5ufL6IVbN8rbm/1QK2xffXU/1a/v3AAa0d1YAoqBNYqaS4R/HajkWIpIfdE6KcyFh1AQ==",
  • Network accessline 590
    "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-7.1.0.tgz",
  • Network accessline 598
    "node_modules/node-releases": {       "version": "2.0.36",       "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz",
  • Network accessline 599
    "version": "2.0.36",       "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz",       "integrity": "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==",
  • Network accessline 600
    "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz",
  • Network accessline 604
    "node_modules/normalize-url": {       "version": "8.1.1",       "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.1.1.tgz",
  • Network accessline 605
    "version": "8.1.1",       "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.1.1.tgz",       "integrity": "sha512-JYc0DPlpGWB40kH5g07gGTrYuMqV653k3uBKY6uITPWds3M0ov3GaWGp9lbE3Bzngx8+XkfzgvASb9vk9JDFXQ==",
  • Network accessline 606
    "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.1.1.tgz",
  • Network accessline 611
    },       "funding": {         "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 612
    "funding": {         "url": "https://github.com/sponsors/sindresorhus"       }
  • Network accessline 613
    "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 616
    "node_modules/nth-check": {       "version": "2.1.1",       "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
  • Network accessline 617
    "version": "2.1.1",       "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",       "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
  • Network accessline 618
    "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
  • Network accessline 623
    },       "funding": {         "url": "https://github.com/fb55/nth-check?sponsor=1"
  • Network accessline 624
    "funding": {         "url": "https://github.com/fb55/nth-check?sponsor=1"       }
  • Network accessline 625
    "url": "https://github.com/fb55/nth-check?sponsor=1"
  • Network accessline 628
    "node_modules/ow": {       "version": "1.1.1",       "resolved": "https://registry.npmjs.org/ow/-/ow-1.1.1.tgz",
  • Network accessline 629
    "version": "1.1.1",       "resolved": "https://registry.npmjs.org/ow/-/ow-1.1.1.tgz",       "integrity": "sha512-sJBRCbS5vh1Jp9EOgwp1Ws3c16lJrUkJYlvWTYC03oyiYVwS/ns7lKRWow4w4XjDyTrA2pplQv4B2naWSR6yDA==",
  • Network accessline 630
    "resolved": "https://registry.npmjs.org/ow/-/ow-1.1.1.tgz",
  • Network accessline 642
    },       "funding": {         "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 643
    "funding": {         "url": "https://github.com/sponsors/sindresorhus"       }
  • Network accessline 644
    "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 647
    "node_modules/ow/node_modules/@sindresorhus/is": {       "version": "5.6.0",       "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz",
  • Network accessline 648
    "version": "5.6.0",       "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz",       "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==",
  • Network accessline 649
    "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz",
  • Network accessline 654
    },       "funding": {         "url": "https://github.com/sindresorhus/is?sponsor=1"
  • Network accessline 655
    "funding": {         "url": "https://github.com/sindresorhus/is?sponsor=1"       }
  • Network accessline 656
    "url": "https://github.com/sindresorhus/is?sponsor=1"
  • Network accessline 659
    "node_modules/p-cancelable": {       "version": "4.0.1",       "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-4.0.1.tgz",
  • Network accessline 660
    "version": "4.0.1",       "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-4.0.1.tgz",       "integrity": "sha512-wBowNApzd45EIKdO1LaU+LrMBwAcjfPaYtVzV3lmfM3gf8Z4CHZsiIqlM8TZZ8okYvh5A1cP6gTfCRQtwUpaUg==",
  • Network accessline 661
    "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-4.0.1.tgz",
  • Network accessline 668
    "node_modules/picocolors": {       "version": "1.1.1",       "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
  • Network accessline 669
    "version": "1.1.1",       "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",       "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
  • Network accessline 670
    "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
  • Network accessline 674
    "node_modules/quick-lru": {       "version": "7.3.0",       "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-7.3.0.tgz",
  • Network accessline 675
    "version": "7.3.0",       "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-7.3.0.tgz",       "integrity": "sha512-k9lSsjl36EJdK7I06v7APZCbyGT2vMTsYSRX1Q2nbYmnkBqgUhRkAuzH08Ciotteu/PLJmIF2+tti7o3C/ts2g==",
  • Network accessline 676
    "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-7.3.0.tgz",
  • Network accessline 681
    },       "funding": {         "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 682
    "funding": {         "url": "https://github.com/sponsors/sindresorhus"       }
  • Network accessline 683
    "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 686
    "node_modules/resolve-alpn": {       "version": "1.2.1",       "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
  • Network accessline 687
    "version": "1.2.1",       "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",       "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==",
  • Network accessline 688
    "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
  • Network accessline 692
    "node_modules/responselike": {       "version": "4.0.2",       "resolved": "https://registry.npmjs.org/responselike/-/responselike-4.0.2.tgz",
  • Network accessline 693
    "version": "4.0.2",       "resolved": "https://registry.npmjs.org/responselike/-/responselike-4.0.2.tgz",       "integrity": "sha512-cGk8IbWEAnaCpdAt1BHzJ3Ahz5ewDJa0KseTsE3qIRMJ3C698W8psM7byCeWVpd/Ha7FUYzuRVzXoKoM6nRUbA==",
  • Network accessline 694
    "resolved": "https://registry.npmjs.org/responselike/-/responselike-4.0.2.tgz",
  • Network accessline 702
    },       "funding": {         "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 703
    "funding": {         "url": "https://github.com/sponsors/sindresorhus"       }
  • Network accessline 704
    "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 707
    "node_modules/tslib": {       "version": "2.8.1",       "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
  • Network accessline 708
    "version": "2.8.1",       "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",       "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
  • Network accessline 709
    "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
  • Network accessline 713
    "node_modules/type-fest": {       "version": "4.41.0",       "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz",
  • Network accessline 714
    "version": "4.41.0",       "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz",       "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==",
  • Network accessline 715
    "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz",
  • Network accessline 720
    },       "funding": {         "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 721
    "funding": {         "url": "https://github.com/sponsors/sindresorhus"       }
  • Network accessline 722
    "url": "https://github.com/sponsors/sindresorhus"
  • Network accessline 725
    "node_modules/update-browserslist-db": {       "version": "1.2.3",       "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
  • Network accessline 726
    "version": "1.2.3",       "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",       "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w=
  • Network accessline 727
    "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
  • Network accessline 730
    {           "type": "opencollective",           "url": "https://opencollective.com/browserslist"
  • Network accessline 731
    "type": "opencollective",           "url": "https://opencollective.com/browserslist"         },
  • Network accessline 732
    "url": "https://opencollective.com/browserslist"
  • Network accessline 734
    {           "type": "tidelift",           "url": "https://tidelift.com/funding/github/npm/browserslist"
  • Network accessline 735
    "type": "tidelift",           "url": "https://tidelift.com/funding/github/npm/browserslist"         },
  • Network accessline 736
    "url": "https://tidelift.com/funding/github/npm/browserslist"
  • Network accessline 738
    {           "type": "github",           "url": "https://github.com/sponsors/ai"
  • Network accessline 739
    "type": "github",           "url": "https://github.com/sponsors/ai"         }
  • Network accessline 740
    "url": "https://github.com/sponsors/ai"
  • Network accessline 755
    "node_modules/vali-date": {       "version": "1.0.0",       "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz",
  • Network accessline 756
    "version": "1.0.0",       "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz",       "integrity": "sha512-sgECfZthyaCKW10N0fm27cg8HYTFK5qMWgypqkXMQ4Wbl/zZKx7xZICgcoxIIE+WFAP/MBL2EFwC/YvLxw3Zeg==",
  • Network accessline 757
    "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz",

plugins/travel-hacking-toolkit/skills/atlas-obscura/package.json

  • Executable scriptline 1
    Executable file

plugins/travel-hacking-toolkit/skills/award-calendar/SKILL.md

  • Access to secretsline 6
    [Credential-related source omitted]
  • Network accessline 37
    [Credential-related source omitted]
  • Access to secretsline 37
    [Credential-related source omitted]
  • Network accessline 38
    "https://seats.aero/partnerapi/search?origin_airport={ORIGIN}&destination_airport={DEST}&start_date={START}&end_date={END}&cabin={CABIN}"

plugins/travel-hacking-toolkit/skills/awardwallet/SKILL.md

  • Access to secretsline 6
    [Credential-related source omitted]
  • Access to secretsline 6
    [Credential-related source omitted]
  • Network accessline 14
    **Source:** [business.awardwallet.com](https://business.awardwallet.com) — Requires a Business account.
  • Network accessline 14
    **Source:** [business.awardwallet.com](https://business.awardwallet.com) — Requires a Business account.
  • Network accessline 18
    Set these in your `.env` file: - `AWARDWALLET_API_KEY` — Get from https://business.awardwallet.com/profile/api
  • Network accessline 18
    Set these in your `.env` file: - `AWARDWALLET_API_KEY` — Get from https://business.awardwallet.com/profile/api
  • Network accessline 19
    [Credential-related source omitted]
  • Network accessline 19
    [Credential-related source omitted]
  • Access to secretsline 19
    [Credential-related source omitted]
  • Access to secretsline 19
    [Credential-related source omitted]
  • Network accessline 24
    > **First-time setup gotcha:** AwardWallet enforces an IP allowlist on Business API keys. Without your IP whitelisted, every call returns `{"error": "access_denied", "code": "IP_DENIED"}`. **Whitelist before troubleshooting.** > > - **Where
  • Network accessline 24
    > **First-time setup gotcha:** AwardWallet enforces an IP allowlist on Business API keys. Without your IP whitelisted, every call returns `{"error": "access_denied", "code": "IP_DENIED"}`. **Whitelist before troubleshooting.** > > - **Where
  • Network accessline 25
    > > - **Where to whitelist:** https://business.awardwallet.com/profile/api > - **How to find your IP:** `curl ifconfig.me`
  • Network accessline 25
    > > - **Where to whitelist:** https://business.awardwallet.com/profile/api > - **How to find your IP:** `curl ifconfig.me`
  • Network accessline 26
    > - **Where to whitelist:** https://business.awardwallet.com/profile/api > - **How to find your IP:** `curl ifconfig.me` > - **Multi-IP:** home, office, hotspot, VPN exit nodes, and any travel locations each need their own entry. Easiest is
  • Network accessline 26
    > - **Where to whitelist:** https://business.awardwallet.com/profile/api > - **How to find your IP:** `curl ifconfig.me` > - **Multi-IP:** home, office, hotspot, VPN exit nodes, and any travel locations each need their own entry. Easiest is
  • Network accessline 27
    > - **How to find your IP:** `curl ifconfig.me`
  • Network accessline 27
    > - **How to find your IP:** `curl ifconfig.me`
  • Network accessline 41
    https://business.awardwallet.com/api/export/v1
  • Network accessline 41
    https://business.awardwallet.com/api/export/v1
  • Network accessline 47
    [Credential-related source omitted]
  • Network accessline 47
    [Credential-related source omitted]
  • Access to secretsline 47
    [Credential-related source omitted]
  • Access to secretsline 47
    [Credential-related source omitted]
  • Network accessline 48
    "https://business.awardwallet.com/api/export/v1/connectedUser/$AWARDWALLET_USER_ID" | jq '.accounts'
  • Network accessline 48
    "https://business.awardwallet.com/api/export/v1/connectedUser/$AWARDWALLET_USER_ID" | jq '.accounts'
  • Network accessline 69
    All filters below assume the curl output is piped in. Replace `...` with the full curl command above.
  • Network accessline 69
    All filters below assume the curl output is piped in. Replace `...` with the full curl command above.
  • Network accessline 99
    [Credential-related source omitted]
  • Network accessline 99
    [Credential-related source omitted]
  • Access to secretsline 99
    [Credential-related source omitted]
  • Access to secretsline 99
    [Credential-related source omitted]
  • Network accessline 100
    "https://business.awardwallet.com/api/export/v1/account/{accountId}" | jq '.account[0].history'
  • Network accessline 100
    "https://business.awardwallet.com/api/export/v1/account/{accountId}" | jq '.account[0].history'
  • Network accessline 108
    [Credential-related source omitted]
  • Network accessline 108
    [Credential-related source omitted]
  • Access to secretsline 108
    [Credential-related source omitted]
  • Access to secretsline 108
    [Credential-related source omitted]
  • Network accessline 110
    -H "Content-Type: application/json" \   -d '{"start": "2026-01-01", "end": "2027-01-01"}' \   "https://business.awardwallet.com/api/export/v1/travel-timeline/$AWARDWALLET_USER_ID" | jq '.itineraries'
  • Network accessline 110
    -H "Content-Type: application/json" \   -d '{"start": "2026-01-01", "end": "2027-01-01"}' \   "https://business.awardwallet.com/api/export/v1/travel-timeline/$AWARDWALLET_USER_ID" | jq '.itineraries'
  • Network accessline 112
    "https://business.awardwallet.com/api/export/v1/travel-timeline/$AWARDWALLET_USER_ID" | jq '.itineraries'
  • Network accessline 112
    "https://business.awardwallet.com/api/export/v1/travel-timeline/$AWARDWALLET_USER_ID" | jq '.itineraries'
  • Network accessline 118
    [Credential-related source omitted]
  • Network accessline 118
    [Credential-related source omitted]
  • Access to secretsline 118
    [Credential-related source omitted]
  • Access to secretsline 118
    [Credential-related source omitted]
  • Network accessline 119
    "https://business.awardwallet.com/api/export/v1/providers/list" | jq '.'
  • Network accessline 119
    "https://business.awardwallet.com/api/export/v1/providers/list" | jq '.'

plugins/travel-hacking-toolkit/skills/bilt/SKILL.md

  • Broad permissionsline 1
    Bash(curl *), Bash(jq *)
  • Network accessline 5
    [Credential-related source omitted]
  • Network accessline 6
    [Credential-related source omitted]
  • Access to secretsline 6
    [Credential-related source omitted]
  • Network accessline 7
    allowed-tools: Bash(curl *), Bash(jq *)
  • Network accessline 12
    Search [Bilt Rewards](https://www.bilt.com) travel portal via the public REST API. No authentication required for search. Returns both cash prices in USD and Bilt Points cost for hotels and flights.
  • Network accessline 16
    Bilt's travel search is built directly on top of [Duffel](https://duffel.com). All evidence points to a complete white-label arrangement, not a partial integration:
  • Network accessline 71
    https://api.biltrewards.com/public/travel
  • Network accessline 81
    curl -s "https://api.biltrewards.com/public/travel/hotels/auto-complete?query=New+York" \
  • Network accessline 100
    curl -s "https://api.biltrewards.com/public/travel/hotels/search" \
  • Network accessline 165
    curl -s "https://api.biltrewards.com/public/travel/hotels/acc_0000AWPt2s3aNc1GpC5bmU?checkInDate=2026-08-15&checkOutDate=2026-08-18&numGuestAdults=2&numRooms=1" \
  • Network accessline 174
    # Top 10 cheapest hotels with HaFH flag and CPP rounded to 2 decimals curl -s "$URL" | jq '
  • Network accessline 175
    curl -s "$URL" | jq '
  • Network accessline 185
    # Only HaFH properties (worth $300+ benefits if Gold/Platinum) curl -s "$URL" | jq '
  • Network accessline 186
    curl -s "$URL" | jq '
  • Network accessline 198
    curl -s "https://api.biltrewards.com/public/travel/flights/search" \
  • Network accessline 224
    curl -s "https://api.biltrewards.com/public/travel/flights/search/$ID"
  • Network accessline 230
    # Polling loop for i in 1 2 3 4 5; do   RESP=$(curl -s "https://api.biltrewards.com/public/travel/flights/search/$ID")
  • Network accessline 231
    for i in 1 2 3 4 5; do   RESP=$(curl -s "https://api.biltrewards.com/public/travel/flights/search/$ID")   REMAINING=$(echo "$RESP" | jq -r '.data.remainingBatches')
  • Network accessline 232
    RESP=$(curl -s "https://api.biltrewards.com/public/travel/flights/search/$ID")

plugins/travel-hacking-toolkit/skills/chase-travel/Dockerfile

  • Executable scriptline 1
    Executable file

plugins/travel-hacking-toolkit/skills/chase-travel/SKILL.md

  • Access to secretsline 6
    [Credential-related source omitted]
  • Access to secretsline 6
    [Credential-related source omitted]

plugins/travel-hacking-toolkit/skills/chase-travel/scripts/record_search.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 38
    [Credential-related source omitted]
  • Access to secretsline 39
    [Credential-related source omitted]

plugins/travel-hacking-toolkit/skills/chase-travel/scripts/search_flights.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 50
    SECURE_BASE = "https://secure.chase.com/svc/wr/profile/l4/gateway/chase-travel/loyalty/bank-rewards/cte-app/v1"
  • Network accessline 51
    TRAVEL_BASE = "https://travelsecure.chase.com/api/air/v1.0"
  • Network accessline 59
    base = f"https://ultimaterewardspoints.chase.com/{path}"
  • Access to secretsline 115
    [Credential-related source omitted]
  • Access to secretsline 132
    [Credential-related source omitted]
  • Access to secretsline 141
    [Credential-related source omitted]
  • Access to secretsline 179
    [Credential-related source omitted]
  • Access to secretsline 482
    [Credential-related source omitted]
  • Network accessline 498
    if in_docker:         page.goto("https://www.chase.com", timeout=30000)
  • Network accessline 499
    page.goto("https://www.chase.com", timeout=30000)
  • Network accessline 506
    else:         page.goto(             "https://secure01ea.chase.com/web/auth/#/logon/logon/chaseOnline",
  • Network accessline 507
    page.goto(             "https://secure01ea.chase.com/web/auth/#/logon/logon/chaseOnline",             timeout=30000,
  • Network accessline 508
    "https://secure01ea.chase.com/web/auth/#/logon/logon/chaseOnline",
  • Network accessline 578
    print("Navigating to UR account selector...", file=sys.stderr)     page.goto("https://ultimaterewardspoints.chase.com/account-selector", timeout=30000)
  • Network accessline 579
    page.goto("https://ultimaterewardspoints.chase.com/account-selector", timeout=30000)
  • Network accessline 607
    # Navigate to the travel portal on secure.chase.com (embedded).     # API calls must be same-origin with secure.chase.com, so the standalone     # ultimaterewardspoints.chase.com portal won't work for fetch() calls.
  • Network accessline 609
    # ultimaterewardspoints.chase.com portal won't work for fetch() calls.
  • Network accessline 610
    dashboard_travel = "https://secure.chase.com/web/auth/dashboard#/dashboard/travel"
  • Network accessline 642
    print(f"Not on portal yet ({url}), retrying via dashboard...", file=sys.stderr)         page.goto(             "https://secure.chase.com/web/auth/dashboard#/dashboard/travel",
  • Network accessline 643
    page.goto(             "https://secure.chase.com/web/auth/dashboard#/dashboard/travel",             timeout=30000,
  • Network accessline 644
    "https://secure.chase.com/web/auth/dashboard#/dashboard/travel",
  • Possible obfuscationline 704
    decoded = base64.b64decode(payload_b64).decode("utf-8")
  • Possible obfuscationline 711
    decoded = base64.b64decode(value).decode("utf-8")
  • Network accessline 871
    js = f"""         async () => {{             const resp = await fetch("{url}", {{
  • Network accessline 872
    async () => {{             const resp = await fetch("{url}", {{                 method: "{method}",
  • Network accessline 873
    const resp = await fetch("{url}", {{
  • Network accessline 884
    js = f"""         async () => {{             const resp = await fetch("{url}", {{
  • Network accessline 885
    async () => {{             const resp = await fetch("{url}", {{                 method: "{method}",
  • Network accessline 886
    const resp = await fetch("{url}", {{
  • Network accessline 1225
    results_url = f"https://travelsecure.chase.com/results/flights/outbound?ssid={ssid}&cnx-onprem=false"
  • Network accessline 2450
    encoded_sid = urllib.parse.quote(ssid, safe="")     results_url = f"https://travelsecure.chase.com/results/hotels?h.s.sid={encoded_sid}&cnx-onprem=false"
  • Network accessline 2451
    results_url = f"https://travelsecure.chase.com/results/hotels?h.s.sid={encoded_sid}&cnx-onprem=false"
  • Network accessline 3512
    type=int,         default=100,         help="Max hotels to fetch (default 100, 0=all)",
  • Network accessline 3513
    default=100,         help="Max hotels to fetch (default 100, 0=all)",     )
  • Network accessline 3514
    help="Max hotels to fetch (default 100, 0=all)",
  • Access to secretsline 3534
    [Credential-related source omitted]
  • Access to secretsline 3535
    [Credential-related source omitted]
  • Access to secretsline 3541
    [Credential-related source omitted]

plugins/travel-hacking-toolkit/skills/chase-travel/tests/test_2fa_method.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/travel-hacking-toolkit/skills/compare-flights/SKILL.md

  • Access to secretsline 6
    [Credential-related source omitted]
  • Access to secretsline 6
    [Credential-related source omitted]

plugins/travel-hacking-toolkit/skills/compare-hotels/SKILL.md

  • Access to secretsline 6
    [Credential-related source omitted]

plugins/travel-hacking-toolkit/skills/deutsche-bahn/SKILL.md

  • Network accessline 15
    **Source:** [db-vendo-client](https://github.com/public-transport/db-vendo-client) — wraps bahn.de's internal APIs.

plugins/travel-hacking-toolkit/skills/deutsche-bahn/package-lock.json

  • Network accessline 14
    "node_modules/agent-base": {       "version": "7.1.4",       "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
  • Network accessline 15
    "version": "7.1.4",       "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",       "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
  • Network accessline 16
    "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
  • Network accessline 22
    "node_modules/call-bind-apply-helpers": {       "version": "1.0.2",       "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
  • Network accessline 23
    "version": "1.0.2",       "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",       "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuM
  • Network accessline 24
    "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
  • Network accessline 34
    "node_modules/call-bound": {       "version": "1.0.4",       "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
  • Network accessline 35
    "version": "1.0.4",       "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",       "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
  • Network accessline 36
    "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
  • Network accessline 44
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 45
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 46
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 49
    "node_modules/content-type": {       "version": "1.0.5",       "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
  • Network accessline 50
    "version": "1.0.5",       "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",       "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
  • Network accessline 51
    "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
  • Network accessline 57
    "node_modules/cross-fetch": {       "version": "4.1.0",       "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.1.0.tgz",
  • Network accessline 58
    "version": "4.1.0",       "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.1.0.tgz",       "integrity": "sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==",
  • Network accessline 59
    "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.1.0.tgz",
  • Network accessline 65
    "node_modules/db-hafas-stations": {       "version": "2.0.0",       "resolved": "https://registry.npmjs.org/db-hafas-stations/-/db-hafas-stations-2.0.0.tgz",
  • Network accessline 66
    "version": "2.0.0",       "resolved": "https://registry.npmjs.org/db-hafas-stations/-/db-hafas-stations-2.0.0.tgz",       "integrity": "sha512-GjcqpZhs+HeOvc2dnAJs2Uy3/b8zRNlvTfLCvqFe9J2JYOlQVyuYCjjdsPBTOmJol42sPToPs71wr03kTMVJDw==",
  • Network accessline 67
    "resolved": "https://registry.npmjs.org/db-hafas-stations/-/db-hafas-stations-2.0.0.tgz",
  • Network accessline 77
    "node_modules/db-vendo-client": {       "version": "6.10.8",       "resolved": "https://registry.npmjs.org/db-vendo-client/-/db-vendo-client-6.10.8.tgz",
  • Network accessline 78
    "version": "6.10.8",       "resolved": "https://registry.npmjs.org/db-vendo-client/-/db-vendo-client-6.10.8.tgz",       "integrity": "sha512-MrARSEhIhNca2dTBPrAUW5E5TX2plJLfcJTfKcbsCcAXH+glDjNWf2IWb7kJybSxYxELdJAWBR5DYO0+HjC7Og==",
  • Network accessline 79
    "resolved": "https://registry.npmjs.org/db-vendo-client/-/db-vendo-client-6.10.8.tgz",
  • Network accessline 94
    },       "funding": {         "url": "https://github.com/sponsors/derhuerst"
  • Network accessline 95
    "funding": {         "url": "https://github.com/sponsors/derhuerst"       }
  • Network accessline 96
    "url": "https://github.com/sponsors/derhuerst"
  • Network accessline 99
    "node_modules/debug": {       "version": "4.4.3",       "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
  • Network accessline 100
    "version": "4.4.3",       "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",       "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
  • Network accessline 101
    "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
  • Network accessline 115
    "node_modules/dunder-proto": {       "version": "1.0.1",       "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
  • Network accessline 116
    "version": "1.0.1",       "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",       "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
  • Network accessline 117
    "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
  • Network accessline 128
    "node_modules/es-define-property": {       "version": "1.0.1",       "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
  • Network accessline 129
    "version": "1.0.1",       "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",       "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
  • Network accessline 130
    "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
  • Network accessline 136
    "node_modules/es-errors": {       "version": "1.3.0",       "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
  • Network accessline 137
    "version": "1.3.0",       "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",       "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
  • Network accessline 138
    "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
  • Network accessline 144
    "node_modules/es-object-atoms": {       "version": "1.1.1",       "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
  • Network accessline 145
    "version": "1.1.1",       "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",       "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
  • Network accessline 146
    "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
  • Network accessline 155
    "node_modules/function-bind": {       "version": "1.1.2",       "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
  • Network accessline 156
    "version": "1.1.2",       "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",       "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
  • Network accessline 157
    "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
  • Network accessline 158
    "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 159
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 160
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 163
    "node_modules/get-intrinsic": {       "version": "1.3.0",       "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
  • Network accessline 164
    "version": "1.3.0",       "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",       "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
  • Network accessline 165
    "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
  • Network accessline 181
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 182
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 183
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 186
    "node_modules/get-proto": {       "version": "1.0.1",       "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
  • Network accessline 187
    "version": "1.0.1",       "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",       "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
  • Network accessline 188
    "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
  • Network accessline 198
    "node_modules/gopd": {       "version": "1.2.0",       "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
  • Network accessline 199
    "version": "1.2.0",       "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",       "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
  • Network accessline 200
    "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
  • Network accessline 204
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 205
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 206
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 209
    "node_modules/gps-distance": {       "version": "0.0.4",       "resolved": "https://registry.npmjs.org/gps-distance/-/gps-distance-0.0.4.tgz",
  • Network accessline 210
    "version": "0.0.4",       "resolved": "https://registry.npmjs.org/gps-distance/-/gps-distance-0.0.4.tgz",       "integrity": "sha512-A0Y86IZW5xlozayFdF/trgWir9h3b4cU4e36llhTKzp2uDCxdZijA4ZXSYElfTdYd7fSImWVgIR3Zf0b6adrvg==",
  • Network accessline 211
    "resolved": "https://registry.npmjs.org/gps-distance/-/gps-distance-0.0.4.tgz",
  • Network accessline 218
    "node_modules/has-symbols": {       "version": "1.1.0",       "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
  • Network accessline 219
    "version": "1.1.0",       "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",       "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
  • Network accessline 220
    "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
  • Network accessline 224
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 225
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 226
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 229
    "node_modules/hasown": {       "version": "2.0.2",       "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
  • Network accessline 230
    "version": "2.0.2",       "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",       "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
  • Network accessline 231
    "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
  • Network accessline 240
    "node_modules/https-proxy-agent": {       "version": "7.0.6",       "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
  • Network accessline 241
    "version": "7.0.6",       "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",       "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
  • Network accessline 242
    "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
  • Network accessline 252
    "node_modules/inherits": {       "version": "2.0.4",       "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
  • Network accessline 253
    "version": "2.0.4",       "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",       "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
  • Network accessline 254
    "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
  • Network accessline 257
    "node_modules/json-stringify-safe": {       "version": "5.0.1",       "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
  • Network accessline 258
    "version": "5.0.1",       "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",       "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
  • Network accessline 259
    "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
  • Network accessline 262
    "node_modules/luxon": {       "version": "3.7.2",       "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz",
  • Network accessline 263
    "version": "3.7.2",       "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz",       "integrity": "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==",
  • Network accessline 264
    "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz",
  • Network accessline 270
    "node_modules/math-intrinsics": {       "version": "1.1.0",       "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
  • Network accessline 271
    "version": "1.1.0",       "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",       "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
  • Network accessline 272
    "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
  • Network accessline 278
    "node_modules/minimist": {       "version": "1.2.8",       "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
  • Network accessline 279
    "version": "1.2.8",       "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",       "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
  • Network accessline 280
    "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
  • Network accessline 281
    "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 282
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 283
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 286
    "node_modules/ms": {       "version": "2.1.3",       "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
  • Network accessline 287
    "version": "2.1.3",       "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",       "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
  • Network accessline 288
    "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
  • Network accessline 291
    "node_modules/ndjson": {       "version": "2.0.0",       "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-2.0.0.tgz",
  • Network accessline 292
    "version": "2.0.0",       "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-2.0.0.tgz",       "integrity": "sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==",
  • Network accessline 293
    "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-2.0.0.tgz",
  • Network accessline 309
    "node_modules/node-fetch": {       "version": "2.7.0",       "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
  • Network accessline 310
    "version": "2.7.0",       "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",       "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
  • Network accessline 311
    "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
  • Network accessline 328
    "node_modules/object-inspect": {       "version": "1.13.4",       "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
  • Network accessline 329
    "version": "1.13.4",       "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",       "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
  • Network accessline 330
    "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
  • Network accessline 334
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 335
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 336
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 339
    "node_modules/qs": {       "version": "6.15.1",       "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.1.tgz",
  • Network accessline 340
    "version": "6.15.1",       "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.1.tgz",       "integrity": "sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==",
  • Network accessline 341
    "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.1.tgz",
  • Network accessline 348
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 349
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 350
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 353
    "node_modules/readable-stream": {       "version": "3.6.2",       "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
  • Network accessline 354
    "version": "3.6.2",       "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",       "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
  • Network accessline 355
    "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
  • Network accessline 366
    "node_modules/safe-buffer": {       "version": "5.2.1",       "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
  • Network accessline 367
    "version": "5.2.1",       "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",       "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
  • Network accessline 368
    "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
  • Network accessline 371
    {           "type": "github",           "url": "https://github.com/sponsors/feross"
  • Network accessline 372
    "type": "github",           "url": "https://github.com/sponsors/feross"         },
  • Network accessline 373
    "url": "https://github.com/sponsors/feross"
  • Network accessline 375
    {           "type": "patreon",           "url": "https://www.patreon.com/feross"
  • Network accessline 376
    "type": "patreon",           "url": "https://www.patreon.com/feross"         },
  • Network accessline 377
    "url": "https://www.patreon.com/feross"
  • Network accessline 379
    {           "type": "consulting",           "url": "https://feross.org/support"
  • Network accessline 380
    "type": "consulting",           "url": "https://feross.org/support"         }
  • Network accessline 381
    "url": "https://feross.org/support"
  • Network accessline 385
    "node_modules/side-channel": {       "version": "1.1.0",       "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
  • Network accessline 386
    "version": "1.1.0",       "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",       "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
  • Network accessline 387
    "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
  • Network accessline 398
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 399
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 400
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 403
    "node_modules/side-channel-list": {       "version": "1.0.1",       "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz",
  • Network accessline 404
    "version": "1.0.1",       "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz",       "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==",
  • Network accessline 405
    "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz",
  • Network accessline 413
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 414
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 415
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 418
    "node_modules/side-channel-map": {       "version": "1.0.1",       "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
  • Network accessline 419
    "version": "1.0.1",       "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",       "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
  • Network accessline 420
    "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
  • Network accessline 430
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 431
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 432
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 435
    "node_modules/side-channel-weakmap": {       "version": "1.0.2",       "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
  • Network accessline 436
    "version": "1.0.2",       "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",       "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
  • Network accessline 437
    "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
  • Network accessline 448
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 449
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 450
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 453
    "node_modules/slugg": {       "version": "1.2.1",       "resolved": "https://registry.npmjs.org/slugg/-/slugg-1.2.1.tgz",
  • Network accessline 454
    "version": "1.2.1",       "resolved": "https://registry.npmjs.org/slugg/-/slugg-1.2.1.tgz",       "integrity": "sha512-yzUY7d53sdY3wp6rGCc54fn+cel0aNsdG5lvRVN8bvlAXYQI2fIo36AAOVjArOaMzlidHYyAYqriHzuos93h+Q=="
  • Network accessline 455
    "resolved": "https://registry.npmjs.org/slugg/-/slugg-1.2.1.tgz",
  • Network accessline 458
    "node_modules/split2": {       "version": "3.2.2",       "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
  • Network accessline 459
    "version": "3.2.2",       "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",       "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
  • Network accessline 460
    "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
  • Network accessline 466
    "node_modules/string_decoder": {       "version": "1.3.0",       "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
  • Network accessline 467
    "version": "1.3.0",       "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",       "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
  • Network accessline 468
    "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
  • Network accessline 474
    "node_modules/through2": {       "version": "4.0.2",       "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz",
  • Network accessline 475
    "version": "4.0.2",       "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz",       "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==",
  • Network accessline 476
    "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz",
  • Network accessline 482
    "node_modules/tr46": {       "version": "0.0.3",       "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
  • Network accessline 483
    "version": "0.0.3",       "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",       "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
  • Network accessline 484
    "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
  • Network accessline 487
    "node_modules/util-deprecate": {       "version": "1.0.2",       "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
  • Network accessline 488
    "version": "1.0.2",       "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",       "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
  • Network accessline 489
    "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
  • Network accessline 492
    "node_modules/uuid": {       "version": "11.1.0",       "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz",
  • Network accessline 493
    "version": "11.1.0",       "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz",       "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==",
  • Network accessline 494
    "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz",
  • Network accessline 495
    "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==",       "funding": [         "https://github.com/sponsors/broofa",
  • Network accessline 496
    "funding": [         "https://github.com/sponsors/broofa",         "https://github.com/sponsors/ctavan"
  • Network accessline 497
    "https://github.com/sponsors/broofa",
  • Network accessline 498
    "https://github.com/sponsors/ctavan"
  • Network accessline 504
    "node_modules/webidl-conversions": {       "version": "3.0.1",       "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
  • Network accessline 505
    "version": "3.0.1",       "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",       "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
  • Network accessline 506
    "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
  • Network accessline 509
    "node_modules/whatwg-url": {       "version": "5.0.0",       "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
  • Network accessline 510
    "version": "5.0.0",       "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",       "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
  • Network accessline 511
    "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",

plugins/travel-hacking-toolkit/skills/deutsche-bahn/package.json

  • Executable scriptline 1
    Executable file

plugins/travel-hacking-toolkit/skills/deutsche-bahn/scripts/search_trains.mjs

  • Executable scriptline 1
    Executable file

plugins/travel-hacking-toolkit/skills/duffel/SKILL.md

  • Broad permissionsline 1
    Bash(curl *)
  • Broad permissionsline 1
    Bash(curl *)
  • Network accessline 5
    [Credential-related source omitted]
  • Network accessline 5
    [Credential-related source omitted]
  • Network accessline 6
    [Credential-related source omitted]
  • Network accessline 6
    [Credential-related source omitted]
  • Access to secretsline 6
    [Credential-related source omitted]
  • Access to secretsline 6
    [Credential-related source omitted]
  • Network accessline 7
    allowed-tools: Bash(curl *)
  • Network accessline 7
    allowed-tools: Bash(curl *)
  • Network accessline 12
    Search for real-time flight offers across airlines via the [Duffel API](https://duffel.com/docs/api). Returns live pricing, cabin details, baggage info, and booking links. Supports one-way, round-trip, and multi-city searches.
  • Network accessline 12
    Search for real-time flight offers across airlines via the [Duffel API](https://duffel.com/docs/api). Returns live pricing, cabin details, baggage info, and booking links. Supports one-way, round-trip, and multi-city searches.
  • Network accessline 14
    **Source:** [duffel.com](https://duffel.com)
  • Network accessline 14
    **Source:** [duffel.com](https://duffel.com)
  • Network accessline 23
    - **Base URL:** `https://api.duffel.com`
  • Network accessline 23
    - **Base URL:** `https://api.duffel.com`
  • Network accessline 32
    curl -s -X POST "https://api.duffel.com/air/offer_requests?return_offers=true&supplier_timeout=15000" \
  • Network accessline 32
    curl -s -X POST "https://api.duffel.com/air/offer_requests?return_offers=true&supplier_timeout=15000" \
  • Network accessline 55
    curl -s -X POST "https://api.duffel.com/air/offer_requests?return_offers=true&supplier_timeout=15000" \
  • Network accessline 55
    curl -s -X POST "https://api.duffel.com/air/offer_requests?return_offers=true&supplier_timeout=15000" \
  • Network accessline 85
    curl -s -X POST "https://api.duffel.com/air/offer_requests?return_offers=true&supplier_timeout=15000" \
  • Network accessline 85
    curl -s -X POST "https://api.duffel.com/air/offer_requests?return_offers=true&supplier_timeout=15000" \
  • Network accessline 108
    curl -s -X POST "https://api.duffel.com/air/offer_requests?return_offers=true&supplier_timeout=15000" \
  • Network accessline 108
    curl -s -X POST "https://api.duffel.com/air/offer_requests?return_offers=true&supplier_timeout=15000" \
  • Network accessline 199
    curl -s "https://api.duffel.com/air/offers/$OFFER_ID" \
  • Network accessline 199
    curl -s "https://api.duffel.com/air/offers/$OFFER_ID" \

plugins/travel-hacking-toolkit/skills/fallback-and-resilience/SKILL.md

  • Network accessline 51
    | API | Error Signature | Whitelist Page | |---|---|---| | AwardWallet | `{"error": "access_denied", "code": "IP_DENIED"}` | https://business.awardwallet.com/profile/api |
  • Network accessline 52
    |---|---|---| | AwardWallet | `{"error": "access_denied", "code": "IP_DENIED"}` | https://business.awardwallet.com/profile/api | | TripAdvisor | `User is not authorized to access this resource with an explicit deny` | https://www.tripadviso
  • Network accessline 53
    | AwardWallet | `{"error": "access_denied", "code": "IP_DENIED"}` | https://business.awardwallet.com/profile/api |
  • Network accessline 54
    | TripAdvisor | `User is not authorized to access this resource with an explicit deny` | https://www.tripadvisor.com/developers |
  • Network accessline 58
    1. Run `curl ifconfig.me` to get the user's current outbound IP.

plugins/travel-hacking-toolkit/skills/gardening/SKILL.md

  • Access to secretsline 6
    [Credential-related source omitted]

plugins/travel-hacking-toolkit/skills/getting-started/SKILL.md

  • Access to secretsline 25
    [Credential-related source omitted]
  • Access to secretsline 33
    [Credential-related source omitted]
  • Access to secretsline 42
    [Credential-related source omitted]
  • Access to secretsline 44
    [Credential-related source omitted]
  • Access to secretsline 46
    [Credential-related source omitted]
  • Network accessline 63
    > > ```bash > bash <(curl -fsSL https://raw.githubusercontent.com/borski/travel-hacking-toolkit/main/scripts/setup-keys.sh)
  • Network accessline 64
    > ```bash > bash <(curl -fsSL https://raw.githubusercontent.com/borski/travel-hacking-toolkit/main/scripts/setup-keys.sh) > ```
  • Dangerous shell operationline 65
    > bash <(curl -fsSL https://raw.githubusercontent.com/borski/travel-hacking-toolkit/main/scripts/setup-keys.sh)
  • Network accessline 65
    > bash <(curl -fsSL https://raw.githubusercontent.com/borski/travel-hacking-toolkit/main/scripts/setup-keys.sh)
  • Network accessline 75
    > > ```powershell > iwr https://raw.githubusercontent.com/borski/travel-hacking-toolkit/main/scripts/setup-keys.ps1 -OutFile $env:TEMP\setup-keys.ps1
  • Network accessline 76
    > ```powershell > iwr https://raw.githubusercontent.com/borski/travel-hacking-toolkit/main/scripts/setup-keys.ps1 -OutFile $env:TEMP\setup-keys.ps1 > powershell -NoProfile -ExecutionPolicy Bypass -File $env:TEMP\setup-keys.ps1
  • Network accessline 77
    > iwr https://raw.githubusercontent.com/borski/travel-hacking-toolkit/main/scripts/setup-keys.ps1 -OutFile $env:TEMP\setup-keys.ps1
  • Access to secretsline 89
    [Credential-related source omitted]
  • Network accessline 97
    > "If you keep secrets in 1Password, you can use `op run` to resolve them at launch instead of writing to your shell rc. The toolkit has an `.env.example` that uses `op://` references. See https://developer.1password.com/docs/cli/secrets-en
  • Network accessline 140
    - **User uses 1Password:** Mention `op run --env-file=.env -- claude` as the alternative. - **User on Windows asks about WSL/Git Bash:** Tell them to use the macOS/Linux instructions, not the PowerShell ones. The bash script works the same 
  • Network accessline 142
    - **User asks "can't you just collect the keys from me directly?"**: Refuse. Explain why (chat logs). Point them at the script. If they really insist, point them at the [README manual setup section](https://github.com/borski/travel-hacking-

plugins/travel-hacking-toolkit/skills/google-flights/SKILL.md

  • Access to secretsline 6
    [Credential-related source omitted]
  • Network accessline 48
    https://www.google.com/travel/flights?q=Flights+from+{ORIGIN}+to+{DEST}+on+{DATE}[+returning+{DATE}][+one+way][+business+class][+N+passengers][&gl=XX]
  • Network accessline 56
    # Launch both in parallel agent-browser --session econ open "https://www.google.com/travel/flights?q=Flights+from+BKK+to+NRT+on+2026-03-20+returning+2026-03-27" &
  • Network accessline 57
    agent-browser --session econ open "https://www.google.com/travel/flights?q=Flights+from+BKK+to+NRT+on+2026-03-20+returning+2026-03-27" &
  • Network accessline 58
    agent-browser --session biz open "https://www.google.com/travel/flights?q=Flights+from+BKK+to+NRT+on+2026-03-20+returning+2026-03-27+business+class" &
  • Network accessline 79
    agent-browser --session flights open "https://www.google.com/travel/flights?q=Flights+from+LAX+to+LHR+on+2026-04-15+one+way"

plugins/travel-hacking-toolkit/skills/ignav/SKILL.md

  • Broad permissionsline 1
    Bash(curl *)
  • Network accessline 5
    [Credential-related source omitted]
  • Network accessline 6
    [Credential-related source omitted]
  • Access to secretsline 6
    [Credential-related source omitted]
  • Network accessline 7
    allowed-tools: Bash(curl *)
  • Network accessline 12
    Fast REST API flight search at `https://ignav.com`. Returns structured JSON with prices, itineraries, and booking links. 1,000 free requests, no rate limit.
  • Network accessline 16
    Get a free API key at https://ignav.com/signup (1,000 requests, no credit card).
  • Access to secretsline 18
    [Credential-related source omitted]
  • Network accessline 33
    [Credential-related source omitted]
  • Access to secretsline 33
    [Credential-related source omitted]
  • Access to secretsline 34
    [Credential-related source omitted]
  • Network accessline 40
    [Credential-related source omitted]
  • Access to secretsline 40
    [Credential-related source omitted]
  • Access to secretsline 41
    [Credential-related source omitted]
  • Network accessline 55
    [Credential-related source omitted]
  • Access to secretsline 55
    [Credential-related source omitted]
  • Access to secretsline 56
    [Credential-related source omitted]
  • Network accessline 71
    [Credential-related source omitted]
  • Access to secretsline 71
    [Credential-related source omitted]
  • Access to secretsline 72
    [Credential-related source omitted]

plugins/travel-hacking-toolkit/skills/premium-hotels/SKILL.md

  • Access to secretsline 6
    [Credential-related source omitted]
  • Access to secretsline 6
    [Credential-related source omitted]
  • Network accessline 32
    Hotels in BOTH FHR/THC AND Chase Edit can stack benefits. Book through one program and use the other card's credits separately. Look for hotels that appear in multiple programs. Use [awardhelper.com/csr-hotels](https://www.awardhelper.com/c
  • Network accessline 32
    Hotels in BOTH FHR/THC AND Chase Edit can stack benefits. Book through one program and use the other card's credits separately. Look for hotels that appear in multiple programs. Use [awardhelper.com/csr-hotels](https://www.awardhelper.com/c
  • Network accessline 173
    **Data source:** 美卡指南 (US Card Guide) Google My Maps, maintained by Scott. To refresh, re-pull the KML files: - FHR/THC: `https://www.google.com/maps/d/kml?mid=1HygPCP9ghtDptTNnpUpd_C507Mq_Fhec&forcekml=1`
  • Network accessline 173
    **Data source:** 美卡指南 (US Card Guide) Google My Maps, maintained by Scott. To refresh, re-pull the KML files: - FHR/THC: `https://www.google.com/maps/d/kml?mid=1HygPCP9ghtDptTNnpUpd_C507Mq_Fhec&forcekml=1`
  • Network accessline 174
    - FHR/THC: `https://www.google.com/maps/d/kml?mid=1HygPCP9ghtDptTNnpUpd_C507Mq_Fhec&forcekml=1`
  • Network accessline 174
    - FHR/THC: `https://www.google.com/maps/d/kml?mid=1HygPCP9ghtDptTNnpUpd_C507Mq_Fhec&forcekml=1`
  • Network accessline 175
    - Chase Edit: `https://www.google.com/maps/d/kml?mid=1Ickidw1Z6ACres9EnbM2CmPObYsuijM&forcekml=1`
  • Network accessline 175
    - Chase Edit: `https://www.google.com/maps/d/kml?mid=1Ickidw1Z6ACres9EnbM2CmPObYsuijM&forcekml=1`

plugins/travel-hacking-toolkit/skills/rapidapi/SKILL.md

  • Access to secretsline 6
    [Credential-related source omitted]
  • Network accessline 14
    **Sources:** - [Google Flights Live API on RapidAPI](https://rapidapi.com/apiheya/api/google-flights-live-api)
  • Network accessline 15
    - [Google Flights Live API on RapidAPI](https://rapidapi.com/apiheya/api/google-flights-live-api)
  • Network accessline 16
    - [Booking.com Live API on RapidAPI](https://rapidapi.com/apiheya/api/booking-live-api)
  • Network accessline 29
    [Credential-related source omitted]
  • Access to secretsline 29
    [Credential-related source omitted]
  • Access to secretsline 30
    [Credential-related source omitted]
  • Network accessline 46
    [Credential-related source omitted]
  • Access to secretsline 46
    [Credential-related source omitted]
  • Access to secretsline 47
    [Credential-related source omitted]
  • Network accessline 82
    [Credential-related source omitted]
  • Access to secretsline 82
    [Credential-related source omitted]
  • Access to secretsline 83
    [Credential-related source omitted]
  • Network accessline 106
    [Credential-related source omitted]
  • Access to secretsline 106
    [Credential-related source omitted]
  • Access to secretsline 107
    [Credential-related source omitted]

plugins/travel-hacking-toolkit/skills/round-the-world/SKILL.md

  • Network accessline 94
    **Source:** primary `rtw.oneworld.com` for the structure; secondary [Upgraded Points 2026 RTW guide](https://upgradedpoints.com/travel/airlines/best-round-the-world-tickets/) for the specific economy rates above. Business and First class ra
  • Network accessline 94
    **Source:** primary `rtw.oneworld.com` for the structure; secondary [Upgraded Points 2026 RTW guide](https://upgradedpoints.com/travel/airlines/best-round-the-world-tickets/) for the specific economy rates above. Business and First class ra
  • Network accessline 94
    **Source:** primary `rtw.oneworld.com` for the structure; secondary [Upgraded Points 2026 RTW guide](https://upgradedpoints.com/travel/airlines/best-round-the-world-tickets/) for the specific economy rates above. Business and First class ra
  • Network accessline 94
    **Source:** primary `rtw.oneworld.com` for the structure; secondary [Upgraded Points 2026 RTW guide](https://upgradedpoints.com/travel/airlines/best-round-the-world-tickets/) for the specific economy rates above. Business and First class ra

plugins/travel-hacking-toolkit/skills/scandinavia-transit/SKILL.md

  • Access to secretsline 6
    [Credential-related source omitted]
  • Network accessline 14
    **Sources:** - [Entur (Norway)](https://developer.entur.org) — Open GraphQL API for all Norwegian transit
  • Network accessline 15
    - [Entur (Norway)](https://developer.entur.org) — Open GraphQL API for all Norwegian transit
  • Network accessline 16
    - [ResRobot (Sweden)](https://www.trafiklab.se/api/trafiklab-apis/resrobot-v21/) — REST API via Trafiklab for all Swedish transit
  • Network accessline 17
    - [Rejseplanen (Denmark)](https://labs.rejseplanen.dk) — REST API (HAFAS) for all Danish transit including pricing
  • Network accessline 26
    curl -s -X POST "https://api.entur.io/journey-planner/v3/graphql" \
  • Network accessline 37
    curl -s "https://api.entur.io/geocoder/v1/autocomplete?text=Oslo%20S&size=3" \
  • Network accessline 56
    curl -s -X POST "https://api.entur.io/journey-planner/v3/graphql" \
  • Network accessline 62
    ### Notes - GraphQL API. POST only. One endpoint: `https://api.entur.io/journey-planner/v3/graphql` - Set `ET-Client-Name` header on all requests.
  • Network accessline 63
    - GraphQL API. POST only. One endpoint: `https://api.entur.io/journey-planner/v3/graphql` - Set `ET-Client-Name` header on all requests. - No rate limit key, but respectful usage expected.
  • Network accessline 64
    - Set `ET-Client-Name` header on all requests. - No rate limit key, but respectful usage expected. - Schema explorer: https://api.entur.io/graphql-explorer/journey-planner-v3
  • Network accessline 65
    - No rate limit key, but respectful usage expected. - Schema explorer: https://api.entur.io/graphql-explorer/journey-planner-v3 - Covers some cross-border routes into Sweden via Vy and SJ Nord.
  • Network accessline 66
    - Schema explorer: https://api.entur.io/graphql-explorer/journey-planner-v3
  • Network accessline 75
    [Credential-related source omitted]
  • Access to secretsline 75
    [Credential-related source omitted]
  • Network accessline 80
    [Credential-related source omitted]
  • Access to secretsline 80
    [Credential-related source omitted]
  • Network accessline 86
    [Credential-related source omitted]
  • Access to secretsline 86
    [Credential-related source omitted]
  • Network accessline 111
    ### Notes - REST API. Base: `https://api.resrobot.se/v2.1/`
  • Network accessline 112
    - REST API. Base: `https://api.resrobot.se/v2.1/`
  • Network accessline 120
    Docs: https://labs.rejseplanen.dk (login required). XSD schemas: https://www.rejseplanen.dk/api/xsd
  • Network accessline 124
    [Credential-related source omitted]
  • Access to secretsline 124
    [Credential-related source omitted]
  • Network accessline 171
    [Credential-related source omitted]
  • Access to secretsline 171
    [Credential-related source omitted]
  • Network accessline 185
    [Credential-related source omitted]
  • Access to secretsline 185
    [Credential-related source omitted]
  • Network accessline 217
    [Credential-related source omitted]
  • Access to secretsline 217
    [Credential-related source omitted]
  • Network accessline 266
    [Credential-related source omitted]
  • Access to secretsline 266
    [Credential-related source omitted]
  • Network accessline 359
    [Credential-related source omitted]
  • Access to secretsline 359
    [Credential-related source omitted]
  • Network accessline 414
    # Norway curl -s "https://api.entur.io/geocoder/v1/autocomplete?text=Flåm&size=3" \
  • Network accessline 415
    curl -s "https://api.entur.io/geocoder/v1/autocomplete?text=Flåm&size=3" \
  • Network accessline 418
    # Sweden curl -s "https://api.resrobot.se/v2.1/location.name?input=Malmö&format=json&accessId=$RESROBOT_API_KEY" | jq '[.stopLocationOrCoordLocation[] | .StopLocation | {name: .name, id: .extId}] | .[0:5]'
  • Network accessline 419
    [Credential-related source omitted]
  • Access to secretsline 419
    [Credential-related source omitted]
  • Network accessline 421
    # Denmark curl -s "https://www.rejseplanen.dk/api/location.name?accessId=$REJSEPLANEN_API_KEY&input=Svendborg&format=json&type=S&lang=en" | jq '[.stopLocationOrCoordLocation[] | .StopLocation | {name: .name, id: .extId}] | .[0:5]'
  • Network accessline 422
    [Credential-related source omitted]
  • Access to secretsline 422
    [Credential-related source omitted]
  • Network accessline 430
    [Credential-related source omitted]
  • Access to secretsline 430
    [Credential-related source omitted]
  • Network accessline 436
    [Credential-related source omitted]
  • Access to secretsline 436
    [Credential-related source omitted]
  • Network accessline 444
    [Credential-related source omitted]
  • Access to secretsline 444
    [Credential-related source omitted]
  • Network accessline 454
    [Credential-related source omitted]
  • Access to secretsline 454
    [Credential-related source omitted]
  • Network accessline 460
    [Credential-related source omitted]
  • Access to secretsline 460
    [Credential-related source omitted]

plugins/travel-hacking-toolkit/skills/seatmaps/SKILL.md

  • Access to secretsline 6
    [Credential-related source omitted]
  • Network accessline 12
    Look up aircraft seat maps, cabin dimensions (pitch, width, recline), seat recommendations, and flight reviews. Uses [SeatMaps.com](https://seatmaps.com) (browser automation) as the primary data source and [AeroLOPA](https://www.aerolopa.co
  • Network accessline 51
    agent-browser open "https://seatmaps.com/"
  • Network accessline 144
    https://seatmaps.com/airlines/{iata-code}-{airline-name-slug}/{aircraft-slug}/
  • Network accessline 160
    https://seatmaps.com/airlines/{iata-code}-{airline-name-slug}/
  • Network accessline 170
    https://www.aerolopa.com/
  • Network accessline 176
    For geeky detail (window positions, to-scale layout): https://www.aerolopa.com/

plugins/travel-hacking-toolkit/skills/seats-aero/SKILL.md

  • Access to secretsline 6
    [Credential-related source omitted]
  • Access to secretsline 6
    [Credential-related source omitted]
  • Access to secretsline 6
    [Credential-related source omitted]
  • Access to secretsline 6
    [Credential-related source omitted]
  • Access to secretsline 6
    [Credential-related source omitted]
  • Network accessline 14
    **Source:** [seats.aero](https://seats.aero) | [API Docs](https://developers.seats.aero) | [Knowledge Base](https://docs.seats.aero)
  • Network accessline 14
    **Source:** [seats.aero](https://seats.aero) | [API Docs](https://developers.seats.aero) | [Knowledge Base](https://docs.seats.aero)
  • Network accessline 14
    **Source:** [seats.aero](https://seats.aero) | [API Docs](https://developers.seats.aero) | [Knowledge Base](https://docs.seats.aero)
  • Network accessline 14
    **Source:** [seats.aero](https://seats.aero) | [API Docs](https://developers.seats.aero) | [Knowledge Base](https://docs.seats.aero)
  • Network accessline 14
    **Source:** [seats.aero](https://seats.aero) | [API Docs](https://developers.seats.aero) | [Knowledge Base](https://docs.seats.aero)
  • Network accessline 18
    [Credential-related source omitted]
  • Network accessline 18
    [Credential-related source omitted]
  • Network accessline 18
    [Credential-related source omitted]
  • Network accessline 18
    [Credential-related source omitted]
  • Network accessline 18
    [Credential-related source omitted]
  • Access to secretsline 18
    [Credential-related source omitted]
  • Access to secretsline 18
    [Credential-related source omitted]
  • Access to secretsline 18
    [Credential-related source omitted]
  • Access to secretsline 18
    [Credential-related source omitted]
  • Access to secretsline 18
    [Credential-related source omitted]
  • Network accessline 25
    https://seats.aero/partnerapi
  • Network accessline 25
    https://seats.aero/partnerapi
  • Network accessline 25
    https://seats.aero/partnerapi
  • Network accessline 25
    https://seats.aero/partnerapi
  • Network accessline 25
    https://seats.aero/partnerapi
  • Network accessline 71
    Airlines release award seats at different advance windows (e.g., Aeroplan releases up to 358 days out). Check [seats.aero/tools/releases](https://seats.aero/tools/releases) to see the maximum days out for each airline by program. Useful for
  • Network accessline 71
    Airlines release award seats at different advance windows (e.g., Aeroplan releases up to 358 days out). Check [seats.aero/tools/releases](https://seats.aero/tools/releases) to see the maximum days out for each airline by program. Useful for
  • Network accessline 71
    Airlines release award seats at different advance windows (e.g., Aeroplan releases up to 358 days out). Check [seats.aero/tools/releases](https://seats.aero/tools/releases) to see the maximum days out for each airline by program. Useful for
  • Network accessline 71
    Airlines release award seats at different advance windows (e.g., Aeroplan releases up to 358 days out). Check [seats.aero/tools/releases](https://seats.aero/tools/releases) to see the maximum days out for each airline by program. Useful for
  • Network accessline 71
    Airlines release award seats at different advance windows (e.g., Aeroplan releases up to 358 days out). Check [seats.aero/tools/releases](https://seats.aero/tools/releases) to see the maximum days out for each airline by program. Useful for
  • Network accessline 119
    [Credential-related source omitted]
  • Network accessline 119
    [Credential-related source omitted]
  • Network accessline 119
    [Credential-related source omitted]
  • Network accessline 119
    [Credential-related source omitted]
  • Network accessline 119
    [Credential-related source omitted]
  • Access to secretsline 119
    [Credential-related source omitted]
  • Access to secretsline 119
    [Credential-related source omitted]
  • Access to secretsline 119
    [Credential-related source omitted]
  • Access to secretsline 119
    [Credential-related source omitted]
  • Access to secretsline 119
    [Credential-related source omitted]
  • Network accessline 120
    "https://seats.aero/partnerapi/search?origin_airport=SFO&destination_airport=NRT&start_date=2026-08-01&end_date=2026-08-31" | jq '.'
  • Network accessline 120
    "https://seats.aero/partnerapi/search?origin_airport=SFO&destination_airport=NRT&start_date=2026-08-01&end_date=2026-08-31" | jq '.'
  • Network accessline 120
    "https://seats.aero/partnerapi/search?origin_airport=SFO&destination_airport=NRT&start_date=2026-08-01&end_date=2026-08-31" | jq '.'
  • Network accessline 120
    "https://seats.aero/partnerapi/search?origin_airport=SFO&destination_airport=NRT&start_date=2026-08-01&end_date=2026-08-31" | jq '.'
  • Network accessline 120
    "https://seats.aero/partnerapi/search?origin_airport=SFO&destination_airport=NRT&start_date=2026-08-01&end_date=2026-08-31" | jq '.'
  • Network accessline 166
    [Credential-related source omitted]
  • Network accessline 166
    [Credential-related source omitted]
  • Network accessline 166
    [Credential-related source omitted]
  • Network accessline 166
    [Credential-related source omitted]
  • Network accessline 166
    [Credential-related source omitted]
  • Access to secretsline 166
    [Credential-related source omitted]
  • Access to secretsline 166
    [Credential-related source omitted]
  • Access to secretsline 166
    [Credential-related source omitted]
  • Access to secretsline 166
    [Credential-related source omitted]
  • Access to secretsline 166
    [Credential-related source omitted]
  • Network accessline 167
    "https://seats.aero/partnerapi/trips/{availability_id}" | jq '.'
  • Network accessline 167
    "https://seats.aero/partnerapi/trips/{availability_id}" | jq '.'
  • Network accessline 167
    "https://seats.aero/partnerapi/trips/{availability_id}" | jq '.'
  • Network accessline 167
    "https://seats.aero/partnerapi/trips/{availability_id}" | jq '.'
  • Network accessline 167
    "https://seats.aero/partnerapi/trips/{availability_id}" | jq '.'
  • Network accessline 222
    [Credential-related source omitted]
  • Network accessline 222
    [Credential-related source omitted]
  • Network accessline 222
    [Credential-related source omitted]
  • Network accessline 222
    [Credential-related source omitted]
  • Network accessline 222
    [Credential-related source omitted]
  • Access to secretsline 222
    [Credential-related source omitted]
  • Access to secretsline 222
    [Credential-related source omitted]
  • Access to secretsline 222
    [Credential-related source omitted]
  • Access to secretsline 222
    [Credential-related source omitted]
  • Access to secretsline 222
    [Credential-related source omitted]
  • Network accessline 223
    "https://seats.aero/partnerapi/availability?source=united&origin_region=North%20America&destination_region=Europe&cabin=business&start_date=2026-08-01&end_date=2026-09-30" | jq '.'
  • Network accessline 223
    "https://seats.aero/partnerapi/availability?source=united&origin_region=North%20America&destination_region=Europe&cabin=business&start_date=2026-08-01&end_date=2026-09-30" | jq '.'
  • Network accessline 223
    "https://seats.aero/partnerapi/availability?source=united&origin_region=North%20America&destination_region=Europe&cabin=business&start_date=2026-08-01&end_date=2026-09-30" | jq '.'
  • Network accessline 223
    "https://seats.aero/partnerapi/availability?source=united&origin_region=North%20America&destination_region=Europe&cabin=business&start_date=2026-08-01&end_date=2026-09-30" | jq '.'
  • Network accessline 223
    "https://seats.aero/partnerapi/availability?source=united&origin_region=North%20America&destination_region=Europe&cabin=business&start_date=2026-08-01&end_date=2026-09-30" | jq '.'
  • Network accessline 246
    [Credential-related source omitted]
  • Network accessline 246
    [Credential-related source omitted]
  • Network accessline 246
    [Credential-related source omitted]
  • Network accessline 246
    [Credential-related source omitted]
  • Network accessline 246
    [Credential-related source omitted]
  • Access to secretsline 246
    [Credential-related source omitted]
  • Access to secretsline 246
    [Credential-related source omitted]
  • Access to secretsline 246
    [Credential-related source omitted]
  • Access to secretsline 246
    [Credential-related source omitted]
  • Access to secretsline 246
    [Credential-related source omitted]
  • Network accessline 247
    "https://seats.aero/partnerapi/routes?source=united" | jq '.'
  • Network accessline 247
    "https://seats.aero/partnerapi/routes?source=united" | jq '.'
  • Network accessline 247
    "https://seats.aero/partnerapi/routes?source=united" | jq '.'
  • Network accessline 247
    "https://seats.aero/partnerapi/routes?source=united" | jq '.'
  • Network accessline 247
    "https://seats.aero/partnerapi/routes?source=united" | jq '.'
  • Network accessline 269
    [Credential-related source omitted]
  • Network accessline 269
    [Credential-related source omitted]
  • Network accessline 269
    [Credential-related source omitted]
  • Network accessline 269
    [Credential-related source omitted]
  • Network accessline 269
    [Credential-related source omitted]
  • Access to secretsline 269
    [Credential-related source omitted]
  • Access to secretsline 269
    [Credential-related source omitted]
  • Access to secretsline 269
    [Credential-related source omitted]
  • Access to secretsline 269
    [Credential-related source omitted]
  • Access to secretsline 269
    [Credential-related source omitted]
  • Network accessline 270
    -H "Content-Type: application/json" \   -d '{"origin_airport":"SFO","destination_airport":"NRT","departure_date":"2026-08-15","source":"united","seat_count":2}' \   "https://seats.aero/partnerapi/live" | jq '.'
  • Network accessline 270
    -H "Content-Type: application/json" \   -d '{"origin_airport":"SFO","destination_airport":"NRT","departure_date":"2026-08-15","source":"united","seat_count":2}' \   "https://seats.aero/partnerapi/live" | jq '.'
  • Network accessline 270
    -H "Content-Type: application/json" \   -d '{"origin_airport":"SFO","destination_airport":"NRT","departure_date":"2026-08-15","source":"united","seat_count":2}' \   "https://seats.aero/partnerapi/live" | jq '.'
  • Network accessline 270
    -H "Content-Type: application/json" \   -d '{"origin_airport":"SFO","destination_airport":"NRT","departure_date":"2026-08-15","source":"united","seat_count":2}' \   "https://seats.aero/partnerapi/live" | jq '.'
  • Network accessline 270
    -H "Content-Type: application/json" \   -d '{"origin_airport":"SFO","destination_airport":"NRT","departure_date":"2026-08-15","source":"united","seat_count":2}' \   "https://seats.aero/partnerapi/live" | jq '.'
  • Network accessline 272
    "https://seats.aero/partnerapi/live" | jq '.'
  • Network accessline 272
    "https://seats.aero/partnerapi/live" | jq '.'
  • Network accessline 272
    "https://seats.aero/partnerapi/live" | jq '.'
  • Network accessline 272
    "https://seats.aero/partnerapi/live" | jq '.'
  • Network accessline 272
    "https://seats.aero/partnerapi/live" | jq '.'
  • Network accessline 349
    [Credential-related source omitted]
  • Network accessline 349
    [Credential-related source omitted]
  • Network accessline 349
    [Credential-related source omitted]
  • Network accessline 349
    [Credential-related source omitted]
  • Network accessline 349
    [Credential-related source omitted]
  • Access to secretsline 349
    [Credential-related source omitted]
  • Access to secretsline 349
    [Credential-related source omitted]
  • Access to secretsline 349
    [Credential-related source omitted]
  • Access to secretsline 349
    [Credential-related source omitted]
  • Access to secretsline 349
    [Credential-related source omitted]
  • Network accessline 350
    "https://seats.aero/partnerapi/trips/{id}" | jq '
  • Network accessline 350
    "https://seats.aero/partnerapi/trips/{id}" | jq '
  • Network accessline 350
    "https://seats.aero/partnerapi/trips/{id}" | jq '
  • Network accessline 350
    "https://seats.aero/partnerapi/trips/{id}" | jq '
  • Network accessline 350
    "https://seats.aero/partnerapi/trips/{id}" | jq '
  • Network accessline 369
    2. **Elite/status restrictions.** Some seats only visible to elite members or cardholders. 3. **Route not monitored.** If the route isn't in Get Routes, cached search won't have it. Live search can check any route. 4. **Search window limits
  • Network accessline 369
    2. **Elite/status restrictions.** Some seats only visible to elite members or cardholders. 3. **Route not monitored.** If the route isn't in Get Routes, cached search won't have it. Live search can check any route. 4. **Search window limits
  • Network accessline 369
    2. **Elite/status restrictions.** Some seats only visible to elite members or cardholders. 3. **Route not monitored.** If the route isn't in Get Routes, cached search won't have it. Live search can check any route. 4. **Search window limits
  • Network accessline 369
    2. **Elite/status restrictions.** Some seats only visible to elite members or cardholders. 3. **Route not monitored.** If the route isn't in Get Routes, cached search won't have it. Live search can check any route. 4. **Search window limits
  • Network accessline 369
    2. **Elite/status restrictions.** Some seats only visible to elite members or cardholders. 3. **Route not monitored.** If the route isn't in Get Routes, cached search won't have it. Live search can check any route. 4. **Search window limits
  • Network accessline 370
    3. **Route not monitored.** If the route isn't in Get Routes, cached search won't have it. Live search can check any route. 4. **Search window limits.** Airlines release awards at different advance windows. Check [release dates tool](https:
  • Network accessline 370
    3. **Route not monitored.** If the route isn't in Get Routes, cached search won't have it. Live search can check any route. 4. **Search window limits.** Airlines release awards at different advance windows. Check [release dates tool](https:
  • Network accessline 370
    3. **Route not monitored.** If the route isn't in Get Routes, cached search won't have it. Live search can check any route. 4. **Search window limits.** Airlines release awards at different advance windows. Check [release dates tool](https:
  • Network accessline 370
    3. **Route not monitored.** If the route isn't in Get Routes, cached search won't have it. Live search can check any route. 4. **Search window limits.** Airlines release awards at different advance windows. Check [release dates tool](https:
  • Network accessline 370
    3. **Route not monitored.** If the route isn't in Get Routes, cached search won't have it. Live search can check any route. 4. **Search window limits.** Airlines release awards at different advance windows. Check [release dates tool](https:
  • Network accessline 371
    4. **Search window limits.** Airlines release awards at different advance windows. Check [release dates tool](https://seats.aero/tools/releases).
  • Network accessline 371
    4. **Search window limits.** Airlines release awards at different advance windows. Check [release dates tool](https://seats.aero/tools/releases).
  • Network accessline 371
    4. **Search window limits.** Airlines release awards at different advance windows. Check [release dates tool](https://seats.aero/tools/releases).
  • Network accessline 371
    4. **Search window limits.** Airlines release awards at different advance windows. Check [release dates tool](https://seats.aero/tools/releases).
  • Network accessline 371
    4. **Search window limits.** Airlines release awards at different advance windows. Check [release dates tool](https://seats.aero/tools/releases).
  • Network accessline 378
    - **Alaska Upgrade Finder** ([seats.aero/alaska/upgrades](https://seats.aero/alaska/upgrades)): Find confirmable upgrade space for Alaska elites using Atmos Gold Guest Upgrade certificates. Dedicated tool for scanning upgrade availability.
  • Network accessline 378
    - **Alaska Upgrade Finder** ([seats.aero/alaska/upgrades](https://seats.aero/alaska/upgrades)): Find confirmable upgrade space for Alaska elites using Atmos Gold Guest Upgrade certificates. Dedicated tool for scanning upgrade availability.
  • Network accessline 378
    - **Alaska Upgrade Finder** ([seats.aero/alaska/upgrades](https://seats.aero/alaska/upgrades)): Find confirmable upgrade space for Alaska elites using Atmos Gold Guest Upgrade certificates. Dedicated tool for scanning upgrade availability.
  • Network accessline 378
    - **Alaska Upgrade Finder** ([seats.aero/alaska/upgrades](https://seats.aero/alaska/upgrades)): Find confirmable upgrade space for Alaska elites using Atmos Gold Guest Upgrade certificates. Dedicated tool for scanning upgrade availability.
  • Network accessline 378
    - **Alaska Upgrade Finder** ([seats.aero/alaska/upgrades](https://seats.aero/alaska/upgrades)): Find confirmable upgrade space for Alaska elites using Atmos Gold Guest Upgrade certificates. Dedicated tool for scanning upgrade availability.
  • Network accessline 379
    - **Etihad First Class Finder** ([seats.aero/etihad/first](https://seats.aero/etihad/first)): Dedicated tracker for newly available Etihad First Class seats. Etihad F is rare and highly sought after. This tool surfaces new availability fast
  • Network accessline 379
    - **Etihad First Class Finder** ([seats.aero/etihad/first](https://seats.aero/etihad/first)): Dedicated tracker for newly available Etihad First Class seats. Etihad F is rare and highly sought after. This tool surfaces new availability fast
  • Network accessline 379
    - **Etihad First Class Finder** ([seats.aero/etihad/first](https://seats.aero/etihad/first)): Dedicated tracker for newly available Etihad First Class seats. Etihad F is rare and highly sought after. This tool surfaces new availability fast
  • Network accessline 379
    - **Etihad First Class Finder** ([seats.aero/etihad/first](https://seats.aero/etihad/first)): Dedicated tracker for newly available Etihad First Class seats. Etihad F is rare and highly sought after. This tool surfaces new availability fast
  • Network accessline 379
    - **Etihad First Class Finder** ([seats.aero/etihad/first](https://seats.aero/etihad/first)): Dedicated tracker for newly available Etihad First Class seats. Etihad F is rare and highly sought after. This tool surfaces new availability fast

plugins/travel-hacking-toolkit/skills/serpapi/SKILL.md

  • Access to secretsline 6
    [Credential-related source omitted]
  • Access to secretsline 6
    [Credential-related source omitted]
  • Network accessline 14
    **Source:** [serpapi.com](https://serpapi.com) — Free tier available, paid plans for higher volume.
  • Network accessline 14
    **Source:** [serpapi.com](https://serpapi.com) — Free tier available, paid plans for higher volume.
  • Access to secretsline 18
    [Credential-related source omitted]
  • Access to secretsline 18
    [Credential-related source omitted]
  • Network accessline 23
    https://serpapi.com/search
  • Network accessline 23
    https://serpapi.com/search
  • Network accessline 33
    [Credential-related source omitted]
  • Network accessline 33
    [Credential-related source omitted]
  • Access to secretsline 33
    [Credential-related source omitted]
  • Access to secretsline 33
    [Credential-related source omitted]
  • Network accessline 63
    [Credential-related source omitted]
  • Network accessline 63
    [Credential-related source omitted]
  • Access to secretsline 63
    [Credential-related source omitted]
  • Access to secretsline 63
    [Credential-related source omitted]
  • Network accessline 101
    [Credential-related source omitted]
  • Network accessline 101
    [Credential-related source omitted]
  • Access to secretsline 101
    [Credential-related source omitted]
  • Access to secretsline 101
    [Credential-related source omitted]
  • Network accessline 126
    [Credential-related source omitted]
  • Network accessline 126
    [Credential-related source omitted]
  • Access to secretsline 126
    [Credential-related source omitted]
  • Access to secretsline 126
    [Credential-related source omitted]

plugins/travel-hacking-toolkit/skills/southwest/Dockerfile

  • Executable scriptline 1
    Executable file

plugins/travel-hacking-toolkit/skills/southwest/SKILL.md

  • Broad permissionsline 1
    Bash(python3 *), Bash(docker *)
  • Access to secretsline 6
    [Credential-related source omitted]

plugins/travel-hacking-toolkit/skills/southwest/scripts/check_change.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 37
    HOMEPAGE = "https://www.southwest.com"
  • Network accessline 303
    change_url = "https://www.southwest.com/air/change/"
  • Access to secretsline 745
    [Credential-related source omitted]
  • Access to secretsline 746
    [Credential-related source omitted]
  • Network accessline 779
    log("Navigating to My Account...")             account_urls = [                 "https://www.southwest.com/myaccount",
  • Network accessline 780
    account_urls = [                 "https://www.southwest.com/myaccount",                 "https://www.southwest.com/account",
  • Network accessline 781
    "https://www.southwest.com/myaccount",
  • Network accessline 782
    "https://www.southwest.com/account",
  • Access to secretsline 966
    [Credential-related source omitted]
  • Access to secretsline 967
    [Credential-related source omitted]

plugins/travel-hacking-toolkit/skills/southwest/scripts/entrypoint.sh

  • Executable scriptline 1
    #!/bin/bash

plugins/travel-hacking-toolkit/skills/southwest/scripts/monitor.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/travel-hacking-toolkit/skills/southwest/scripts/search_fares.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 21
    RESULTS_URL = "https://www.southwest.com/air/booking/select.html"
  • Network accessline 22
    HOMEPAGE = "https://www.southwest.com"

plugins/travel-hacking-toolkit/skills/status-match/SKILL.md

  • Network accessline 144
    For grants/denials in the past 6 months, point at [statusmatcher.com](https://statusmatcher.com/). Useful for confirming the program is currently accepting matches and what proof is being accepted.
  • Network accessline 144
    For grants/denials in the past 6 months, point at [statusmatcher.com](https://statusmatcher.com/). Useful for confirming the program is currently accepting matches and what proof is being accepted.

plugins/travel-hacking-toolkit/skills/stopovers/SKILL.md

  • Network accessline 94
    Primary source: [icelandair.com/flights/stopover](https://www.icelandair.com/flights/stopover/)
  • Network accessline 94
    Primary source: [icelandair.com/flights/stopover](https://www.icelandair.com/flights/stopover/)
  • Network accessline 94
    Primary source: [icelandair.com/flights/stopover](https://www.icelandair.com/flights/stopover/)
  • Network accessline 94
    Primary source: [icelandair.com/flights/stopover](https://www.icelandair.com/flights/stopover/)
  • Network accessline 144
    4. **Flying Blue allows unlimited stopovers** but requires phone booking. Some agents incorrectly say only AMS/CDG hub stopovers — cite the FAQ at [flyingblue.us/en/spend/flights/rewards](https://www.flyingblue.us/en/spend/flights/rewards) 
  • Network accessline 144
    4. **Flying Blue allows unlimited stopovers** but requires phone booking. Some agents incorrectly say only AMS/CDG hub stopovers — cite the FAQ at [flyingblue.us/en/spend/flights/rewards](https://www.flyingblue.us/en/spend/flights/rewards) 
  • Network accessline 144
    4. **Flying Blue allows unlimited stopovers** but requires phone booking. Some agents incorrectly say only AMS/CDG hub stopovers — cite the FAQ at [flyingblue.us/en/spend/flights/rewards](https://www.flyingblue.us/en/spend/flights/rewards) 
  • Network accessline 144
    4. **Flying Blue allows unlimited stopovers** but requires phone booking. Some agents incorrectly say only AMS/CDG hub stopovers — cite the FAQ at [flyingblue.us/en/spend/flights/rewards](https://www.flyingblue.us/en/spend/flights/rewards) 

plugins/travel-hacking-toolkit/skills/sutochno/Dockerfile

  • Executable scriptline 1
    Executable file

plugins/travel-hacking-toolkit/skills/sutochno/SKILL.md

  • Access to secretsline 6
    [Credential-related source omitted]
  • Network accessline 35
    **City results live on SUBDOMAINS.** Each city has its own host: `https://tbilisi.sutochno.ru/`, `https://batumi.sutochno.ru/`,
  • Network accessline 36
    `https://tbilisi.sutochno.ru/`, `https://batumi.sutochno.ru/`,
  • Network accessline 37
    `https://kutaisi.sutochno.ru/`, etc. The country directory
  • Network accessline 38
    `https://sutochno.ru/georgia` lists the supported Georgian cities and links out
  • Network accessline 39
    to `https://{city}.sutochno.ru/<listingId>` cards. Pass the city as a
  • Network accessline 85
    # Explicit full URL (e.g. a city page with query filters already applied) python3 skills/sutochno/scripts/search_sutochno.py \   --url "https://kutaisi.sutochno.ru/" --json
  • Network accessline 86
    python3 skills/sutochno/scripts/search_sutochno.py    --url "https://kutaisi.sutochno.ru/" --json
  • Network accessline 87
    --url "https://kutaisi.sutochno.ru/" --json
  • Network accessline 95
    | Flag | Default | Notes | |------|---------|-------| | `--city` | one of city/url required | City **subdomain** keyword, e.g. `tbilisi`, `batumi`. Resolves to `https://{city}.sutochno.ru/`. |
  • Network accessline 96
    |------|---------|-------| | `--city` | one of city/url required | City **subdomain** keyword, e.g. `tbilisi`, `batumi`. Resolves to `https://{city}.sutochno.ru/`. | | `--url` | one of city/url required | Full city URL — use instead of `--c
  • Network accessline 97
    | `--city` | one of city/url required | City **subdomain** keyword, e.g. `tbilisi`, `batumi`. Resolves to `https://{city}.sutochno.ru/`. |
  • Network accessline 109
    | Field | Selector | Raw shape | Extraction | |-------|----------|-----------|------------| | name + link | `.card-content__object-type` (an `<a>`) | text + `href` → `https://{city}.sutochno.ru/<id>` (or `/hotels/<id>`) | name text; id = tr
  • Network accessline 110
    |-------|----------|-----------|------------| | name + link | `.card-content__object-type` (an `<a>`) | text + `href` → `https://{city}.sutochno.ru/<id>` (or `/hotels/<id>`) | name text; id = trailing digits of href | | price | `.card-price
  • Network accessline 111
    | name + link | `.card-content__object-type` (an `<a>`) | text + `href` → `https://{city}.sutochno.ru/<id>` (or `/hotels/<id>`) | name text; id = trailing digits of href |
  • Network accessline 134
    {   "source": "sutochno",   "searchUrl": "https://tbilisi.sutochno.ru/",
  • Network accessline 135
    "source": "sutochno",   "searchUrl": "https://tbilisi.sutochno.ru/",   "query": { "city": "tbilisi", "url": null, "min_rating": 9.0, "max_price": 8000 },
  • Network accessline 136
    "searchUrl": "https://tbilisi.sutochno.ru/",
  • Network accessline 145
    "rating": 9.8,       "reviews": 10,       "url": "https://tbilisi.sutochno.ru/1234567"
  • Network accessline 146
    "reviews": 10,       "url": "https://tbilisi.sutochno.ru/1234567"     }
  • Network accessline 147
    "url": "https://tbilisi.sutochno.ru/1234567"

plugins/travel-hacking-toolkit/skills/sutochno/scripts/entrypoint.sh

  • Executable scriptline 1
    #!/bin/bash

plugins/travel-hacking-toolkit/skills/sutochno/scripts/search_sutochno.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 22
    2. The JSON API is auth-walled. `https://sutochno.ru/api/geo/suggest` (and the
  • Network accessline 28
    City results live on SUBDOMAINS, one per city:     https://tbilisi.sutochno.ru/      https://batumi.sutochno.ru/    etc.
  • Network accessline 29
    https://tbilisi.sutochno.ru/      https://batumi.sutochno.ru/    etc.
  • Network accessline 30
    The country directory `https://sutochno.ru/georgia` lists the supported Georgian
  • Network accessline 31
    cities and links out to `https://{city}.sutochno.ru/<listingId>` cards.
  • Network accessline 46
    # Explicit full URL (e.g. a city page with query filters already applied)     python3 search_sutochno.py --url "https://kutaisi.sutochno.ru/" --json
  • Network accessline 47
    python3 search_sutochno.py --url "https://kutaisi.sutochno.ru/" --json
  • Access to secretsline 71
    [Credential-related source omitted]
  • Network accessline 77
    `tbilisi` -> https://tbilisi.sutochno.ru/
  • Network accessline 93
    host = f"{city}.{BASE_DOMAIN}"     return f"https://{host}/"
  • Network accessline 94
    return f"https://{host}/"
  • Network accessline 147
    `https://tbilisi.sutochno.ru/1234567`            -> "1234567"
  • Network accessline 148
    `https://tbilisi.sutochno.ru/hotels/9876543?x=1` -> "9876543"
  • Network accessline 356
    g = ap.add_mutually_exclusive_group(required=True)     g.add_argument("--city", help='City subdomain keyword, e.g. "tbilisi", "batumi"')     g.add_argument("--url", help="Full city URL, e.g. https://tbilisi.sutochno.ru/")
  • Network accessline 357
    g.add_argument("--city", help='City subdomain keyword, e.g. "tbilisi", "batumi"')     g.add_argument("--url", help="Full city URL, e.g. https://tbilisi.sutochno.ru/")     ap.add_argument("--min-rating", type=float, default=0.0, dest="min_ra
  • Network accessline 358
    g.add_argument("--url", help="Full city URL, e.g. https://tbilisi.sutochno.ru/")

plugins/travel-hacking-toolkit/skills/sutochno/tests/test_search_sutochno.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 48
    class BuildCityUrlTests(unittest.TestCase):     def test_bare_subdomain(self):         self.assertEqual(ss.build_city_url("tbilisi"), "https://tbilisi.sutochno.ru/")
  • Network accessline 49
    def test_bare_subdomain(self):         self.assertEqual(ss.build_city_url("tbilisi"), "https://tbilisi.sutochno.ru/")         self.assertEqual(ss.build_city_url("batumi"), "https://batumi.sutochno.ru/")
  • Network accessline 50
    self.assertEqual(ss.build_city_url("tbilisi"), "https://tbilisi.sutochno.ru/")
  • Network accessline 51
    self.assertEqual(ss.build_city_url("batumi"), "https://batumi.sutochno.ru/")
  • Network accessline 53
    def test_case_and_whitespace_insensitive(self):         self.assertEqual(ss.build_city_url("  Tbilisi  "), "https://tbilisi.sutochno.ru/")
  • Network accessline 54
    self.assertEqual(ss.build_city_url("  Tbilisi  "), "https://tbilisi.sutochno.ru/")
  • Network accessline 56
    def test_full_host_passthrough(self):         self.assertEqual(             ss.build_city_url("kutaisi.sutochno.ru"), "https://kutaisi.sutochno.ru/"
  • Network accessline 57
    self.assertEqual(             ss.build_city_url("kutaisi.sutochno.ru"), "https://kutaisi.sutochno.ru/"         )
  • Network accessline 58
    ss.build_city_url("kutaisi.sutochno.ru"), "https://kutaisi.sutochno.ru/"
  • Network accessline 61
    def test_strips_scheme_and_path(self):         self.assertEqual(             ss.build_city_url("https://batumi.sutochno.ru/foo"),
  • Network accessline 62
    self.assertEqual(             ss.build_city_url("https://batumi.sutochno.ru/foo"),             "https://batumi.sutochno.ru/",
  • Network accessline 63
    ss.build_city_url("https://batumi.sutochno.ru/foo"),
  • Network accessline 64
    "https://batumi.sutochno.ru/",
  • Network accessline 116
    def test_simple_id(self):         self.assertEqual(             ss.listing_id_from_url("https://tbilisi.sutochno.ru/1234567"), "1234567"
  • Network accessline 117
    self.assertEqual(             ss.listing_id_from_url("https://tbilisi.sutochno.ru/1234567"), "1234567"         )
  • Network accessline 118
    ss.listing_id_from_url("https://tbilisi.sutochno.ru/1234567"), "1234567"
  • Network accessline 121
    def test_hotels_path_with_query(self):         self.assertEqual(             ss.listing_id_from_url("https://tbilisi.sutochno.ru/hotels/9876543?x=1"),
  • Network accessline 122
    self.assertEqual(             ss.listing_id_from_url("https://tbilisi.sutochno.ru/hotels/9876543?x=1"),             "9876543",
  • Network accessline 123
    ss.listing_id_from_url("https://tbilisi.sutochno.ru/hotels/9876543?x=1"),
  • Network accessline 127
    def test_trailing_slash(self):         self.assertEqual(             ss.listing_id_from_url("https://batumi.sutochno.ru/555000/"), "555000"
  • Network accessline 128
    self.assertEqual(             ss.listing_id_from_url("https://batumi.sutochno.ru/555000/"), "555000"         )
  • Network accessline 129
    ss.listing_id_from_url("https://batumi.sutochno.ru/555000/"), "555000"
  • Network accessline 132
    def test_no_id(self):         self.assertIsNone(ss.listing_id_from_url("https://batumi.sutochno.ru/about"))
  • Network accessline 133
    self.assertIsNone(ss.listing_id_from_url("https://batumi.sutochno.ru/about"))
  • Network accessline 139
    raw = {             "name": "Уютная студия в центре",             "href": "https://tbilisi.sutochno.ru/1234567",
  • Network accessline 140
    "name": "Уютная студия в центре",             "href": "https://tbilisi.sutochno.ru/1234567",             "priceText": "4 890 ₽ за сутки",
  • Network accessline 141
    "href": "https://tbilisi.sutochno.ru/1234567",
  • Network accessline 151
    self.assertEqual(l["reviews"], 10)         self.assertEqual(l["area"], "Тбилиси, Старый город")         self.assertEqual(l["url"], "https://tbilisi.sutochno.ru/1234567")
  • Network accessline 153
    self.assertEqual(l["url"], "https://tbilisi.sutochno.ru/1234567")
  • Network accessline 155
    def test_missing_fields(self):         l = ss.normalize_listing({"href": "https://batumi.sutochno.ru/9001"})
  • Network accessline 156
    l = ss.normalize_listing({"href": "https://batumi.sutochno.ru/9001"})
  • Network accessline 174
    def _raw(self):         return [             {"name": "A", "href": "https://tbilisi.sutochno.ru/1001",
  • Network accessline 175
    return [             {"name": "A", "href": "https://tbilisi.sutochno.ru/1001",              "priceText": "4 890 ₽ за сутки", "ratingText": "10 отзывов 9,8 (10)"},
  • Network accessline 176
    {"name": "A", "href": "https://tbilisi.sutochno.ru/1001",
  • Network accessline 177
    "priceText": "4 890 ₽ за сутки", "ratingText": "10 отзывов 9,8 (10)"},             {"name": "A-dup", "href": "https://tbilisi.sutochno.ru/1001",  # dup id 1001              "priceText": "9 000 ₽ за сутки", "ratingText": "2 отзыва 7,0 (2)"},
  • Network accessline 178
    {"name": "A-dup", "href": "https://tbilisi.sutochno.ru/1001",  # dup id 1001
  • Network accessline 179
    "priceText": "9 000 ₽ за сутки", "ratingText": "2 отзыва 7,0 (2)"},             {"name": "B", "href": "https://tbilisi.sutochno.ru/1002",              "priceText": "3 000 ₽ за сутки", "ratingText": "5 отзывов 9,8 (5)"},
  • Network accessline 180
    {"name": "B", "href": "https://tbilisi.sutochno.ru/1002",
  • Network accessline 181
    "priceText": "3 000 ₽ за сутки", "ratingText": "5 отзывов 9,8 (5)"},             {"name": "C", "href": "https://tbilisi.sutochno.ru/1003",              "priceText": "12 000 ₽ за сутки", "ratingText": "1 отзыв 6,0"},
  • Network accessline 182
    {"name": "C", "href": "https://tbilisi.sutochno.ru/1003",

plugins/travel-hacking-toolkit/skills/ticketsatwork/Dockerfile

  • Executable scriptline 1
    Executable file

plugins/travel-hacking-toolkit/skills/ticketsatwork/SKILL.md

  • Broad permissionsline 1
    Bash(docker *), Bash(python3 *)
  • Access to secretsline 6
    [Credential-related source omitted]
  • Network accessline 13
    Scrapes inventory from [ticketsatwork.com](https://www.ticketsatwork.com), a corporate employee perks platform operated by Entertainment Benefits Group (EBG). Members access negotiated rates through their employer's account.
  • Network accessline 152
    "featured": false,       "discount_ranking": 717.95,       "detail_url": "https://www.ticketsatwork.com/tickets/hotels.php?sub=details&id=NNNNNN_x"
  • Network accessline 153
    "discount_ranking": 717.95,       "detail_url": "https://www.ticketsatwork.com/tickets/hotels.php?sub=details&id=NNNNNN_x"     }
  • Network accessline 154
    "detail_url": "https://www.ticketsatwork.com/tickets/hotels.php?sub=details&id=NNNNNN_x"
  • Network accessline 209
    "category": "disneyland",   "keyword": null,   "landed_url": "https://www.ticketsatwork.com/tickets/pages.php?sub=disneyland",
  • Network accessline 210
    "keyword": null,   "landed_url": "https://www.ticketsatwork.com/tickets/pages.php?sub=disneyland",   "deal_count": 6,
  • Network accessline 211
    "landed_url": "https://www.ticketsatwork.com/tickets/pages.php?sub=disneyland",
  • Network accessline 218
    "subtitle": "Save up to $65 on Multi-Day Tickets",       "description": "Explore 1-5 Day Disneyland Resort theme park tickets...",       "image_url": "https://www.ticketsatwork.com/common_resources/...",
  • Network accessline 219
    "description": "Explore 1-5 Day Disneyland Resort theme park tickets...",       "image_url": "https://www.ticketsatwork.com/common_resources/...",       "detail_url": "https://www.ticketsatwork.com/tickets/packages.php?sub=packages&action=v
  • Network accessline 220
    "image_url": "https://www.ticketsatwork.com/common_resources/...",
  • Network accessline 221
    "detail_url": "https://www.ticketsatwork.com/tickets/packages.php?sub=packages&action=view&id=4704"

plugins/travel-hacking-toolkit/skills/ticketsatwork/scripts/browse_tickets.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 304
    [Credential-related source omitted]
  • Access to secretsline 305
    [Credential-related source omitted]

plugins/travel-hacking-toolkit/skills/ticketsatwork/scripts/entrypoint.sh

  • Executable scriptline 1
    #!/bin/bash

plugins/travel-hacking-toolkit/skills/ticketsatwork/scripts/search_cars.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 444
    [Credential-related source omitted]
  • Access to secretsline 445
    [Credential-related source omitted]

plugins/travel-hacking-toolkit/skills/ticketsatwork/scripts/search_hotels.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 272
    [Credential-related source omitted]
  • Access to secretsline 273
    [Credential-related source omitted]

plugins/travel-hacking-toolkit/skills/ticketsatwork/scripts/taw_common.py

  • Executable scriptline 1
    Executable file
  • Network accessline 24
    HOMEPAGE = "https://www.ticketsatwork.com"

plugins/travel-hacking-toolkit/skills/transfer-partners/SKILL.md

  • Access to secretsline 6
    [Credential-related source omitted]
  • Access to secretsline 6
    [Credential-related source omitted]
  • Access to secretsline 6
    [Credential-related source omitted]
  • Access to secretsline 6
    [Credential-related source omitted]
  • Access to secretsline 6
    [Credential-related source omitted]

plugins/travel-hacking-toolkit/skills/trip-calculator/SKILL.md

  • Access to secretsline 6
    [Credential-related source omitted]
  • Access to secretsline 6
    [Credential-related source omitted]

plugins/travel-hacking-toolkit/skills/trip-log/SKILL.md

  • Access to secretsline 5
    [Credential-related source omitted]

plugins/travel-hacking-toolkit/skills/trip-planner/SKILL.md

  • Access to secretsline 6
    [Credential-related source omitted]

plugins/travel-hacking-toolkit/skills/tripadvisor/SKILL.md

  • Access to secretsline 6
    [Credential-related source omitted]
  • Network accessline 18
    **Base URL:** `https://api.content.tripadvisor.com/api/v1`
  • Network accessline 22
    **Monthly quota:** 5,000 API calls per month. Each curl request = 1 call. A full hotel lookup (search + details + reviews + photos) = 4 calls. Budget accordingly. Prefer search + details (2 calls) and only fetch reviews/photos when specific
  • Network accessline 28
    > **First-time setup gotcha:** TripAdvisor requires whitelisting your outbound IP at https://www.tripadvisor.com/developers before the key works. Without this, every call returns `User is not authorized to access this resource with an expli
  • Network accessline 29
    > > - **How to find your current IP:** `curl ifconfig.me` > - **Propagation:** changes take 1-5 minutes (AWS edge cache).
  • Network accessline 30
    > - **How to find your current IP:** `curl ifconfig.me`
  • Access to secretsline 36
    [Credential-related source omitted]
  • Access to secretsline 39
    [Credential-related source omitted]
  • Access to secretsline 40
    [Credential-related source omitted]
  • Access to secretsline 46
    [Credential-related source omitted]
  • Network accessline 64
    [Credential-related source omitted]
  • Access to secretsline 64
    [Credential-related source omitted]
  • Network accessline 105
    [Credential-related source omitted]
  • Access to secretsline 105
    [Credential-related source omitted]
  • Network accessline 139
    [Credential-related source omitted]
  • Access to secretsline 139
    [Credential-related source omitted]
  • Network accessline 180
    [Credential-related source omitted]
  • Access to secretsline 180
    [Credential-related source omitted]
  • Network accessline 206
    [Credential-related source omitted]
  • Access to secretsline 206
    [Credential-related source omitted]
  • Network accessline 228
    # 1. Search for hotel curl -s "https://api.content.tripadvisor.com/api/v1/location/search?key=$TRIPADVISOR_API_KEY&searchQuery=Amerikalinjen+Oslo&category=hotels" | python3 -m json.tool
  • Dangerous shell operationline 229
    [Credential-related source omitted]
  • Network accessline 229
    [Credential-related source omitted]
  • Access to secretsline 229
    [Credential-related source omitted]
  • Network accessline 231
    # 2. Get details with location_id from step 1 curl -s "https://api.content.tripadvisor.com/api/v1/location/1234567/details?key=$TRIPADVISOR_API_KEY&currency=USD" | python3 -m json.tool
  • Dangerous shell operationline 232
    [Credential-related source omitted]
  • Network accessline 232
    [Credential-related source omitted]
  • Access to secretsline 232
    [Credential-related source omitted]
  • Network accessline 234
    # 3. Get reviews (optional, costs 1 call) curl -s "https://api.content.tripadvisor.com/api/v1/location/1234567/reviews?key=$TRIPADVISOR_API_KEY" | python3 -m json.tool
  • Dangerous shell operationline 235
    [Credential-related source omitted]
  • Network accessline 235
    [Credential-related source omitted]
  • Access to secretsline 235
    [Credential-related source omitted]
  • Network accessline 237
    # 4. Get photos (optional, costs 1 call) curl -s "https://api.content.tripadvisor.com/api/v1/location/1234567/photos?key=$TRIPADVISOR_API_KEY" | python3 -m json.tool
  • Dangerous shell operationline 238
    [Credential-related source omitted]
  • Network accessline 238
    [Credential-related source omitted]
  • Access to secretsline 238
    [Credential-related source omitted]
  • Network accessline 244
    # Search all hotels in city curl -s "https://api.content.tripadvisor.com/api/v1/location/search?key=$TRIPADVISOR_API_KEY&searchQuery=hotels+Copenhagen&category=hotels"
  • Network accessline 245
    [Credential-related source omitted]
  • Access to secretsline 245
    [Credential-related source omitted]
  • Network accessline 254
    # Use hotel's lat/long from details response curl -s "https://api.content.tripadvisor.com/api/v1/location/nearby_search?key=$TRIPADVISOR_API_KEY&latLong=59.31555,18.078924&category=restaurants"
  • Network accessline 255
    [Credential-related source omitted]
  • Access to secretsline 255
    [Credential-related source omitted]
  • Network accessline 261
    # Search for attractions curl -s "https://api.content.tripadvisor.com/api/v1/location/search?key=$TRIPADVISOR_API_KEY&searchQuery=things+to+do+Stockholm&category=attractions"
  • Network accessline 262
    [Credential-related source omitted]
  • Access to secretsline 262
    [Credential-related source omitted]
  • Network accessline 264
    # Nearby attractions from a point curl -s "https://api.content.tripadvisor.com/api/v1/location/nearby_search?key=$TRIPADVISOR_API_KEY&latLong=59.3293,18.0686&category=attractions"
  • Network accessline 265
    [Credential-related source omitted]
  • Access to secretsline 265
    [Credential-related source omitted]

plugins/travel-hacking-toolkit/skills/vrbo/Dockerfile

  • Executable scriptline 1
    Executable file

plugins/travel-hacking-toolkit/skills/vrbo/SKILL.md

  • Access to secretsline 6
    [Credential-related source omitted]
  • Network accessline 100
    "source": "vrbo",   "extractor": "__PLUS_REDUX_STORE__ | dom:lodging-card | dom:anchors",   "searchUrl": "https://www.vrbo.com/search?...",
  • Network accessline 101
    "extractor": "__PLUS_REDUX_STORE__ | dom:lodging-card | dom:anchors",   "searchUrl": "https://www.vrbo.com/search?...",   "count": 12,
  • Network accessline 102
    "searchUrl": "https://www.vrbo.com/search?...",
  • Network accessline 111
    "pricePerNight": 312, "priceTotal": 2184, "priceIncludesTaxes": true,       "lat": 51.08, "lng": -115.35,       "url": "https://www.vrbo.com/en-ca/cottage-rental/p1234567?..."
  • Network accessline 112
    "lat": 51.08, "lng": -115.35,       "url": "https://www.vrbo.com/en-ca/cottage-rental/p1234567?..."     }
  • Network accessline 113
    "url": "https://www.vrbo.com/en-ca/cottage-rental/p1234567?..."

plugins/travel-hacking-toolkit/skills/vrbo/scripts/entrypoint.sh

  • Executable scriptline 1
    #!/bin/bash

plugins/travel-hacking-toolkit/skills/vrbo/scripts/search_vrbo.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 51
    SEARCH_URL = "https://www.vrbo.com/search"
  • Network accessline 52
    HOME_URL = "https://www.vrbo.com/"
  • Access to secretsline 71
    [Credential-related source omitted]
  • Access to secretsline 77
    [Credential-related source omitted]
  • Network accessline 219
    lat: node.latitude ?? node.lat ?? (node.geoLocation && node.geoLocation.latitude) ?? null,             lng: node.longitude ?? node.lng ?? (node.geoLocation && node.geoLocation.longitude) ?? null,             url: id ? `https://www.vrbo.com/
  • Network accessline 220
    lng: node.longitude ?? node.lng ?? (node.geoLocation && node.geoLocation.longitude) ?? null,             url: id ? `https://www.vrbo.com/${String(id)}` : null,           });
  • Network accessline 221
    url: id ? `https://www.vrbo.com/${String(id)}` : null,
  • Network accessline 261
    priceText,         rating: ratingEl ? (ratingEl.getAttribute('aria-label') || ratingEl.innerText) : null,         url: href ? (href.startsWith('http') ? href : `https://www.vrbo.com${href}`) : null,
  • Network accessline 262
    rating: ratingEl ? (ratingEl.getAttribute('aria-label') || ratingEl.innerText) : null,         url: href ? (href.startsWith('http') ? href : `https://www.vrbo.com${href}`) : null,       });
  • Network accessline 263
    url: href ? (href.startsWith('http') ? href : `https://www.vrbo.com${href}`) : null,
  • Network accessline 270
    const anchors = Array.from(document.querySelectorAll('a[href*="/"]'))     .map(a => a.getAttribute('href'))     .filter(h => h && /^\/?\d{5,}/.test(h.replace('https://www.vrbo.com', '')));
  • Network accessline 271
    .map(a => a.getAttribute('href'))     .filter(h => h && /^\/?\d{5,}/.test(h.replace('https://www.vrbo.com', '')));   if (anchors.length) {
  • Network accessline 272
    .filter(h => h && /^\/?\d{5,}/.test(h.replace('https://www.vrbo.com', '')));
  • Network accessline 278
    if (seen.has(id)) return;       seen.add(id);       out.listings.push({ id, name: null, priceText: null, url: h.startsWith('http') ? h : `https://www.vrbo.com${h}` });
  • Network accessline 279
    seen.add(id);       out.listings.push({ id, name: null, priceText: null, url: h.startsWith('http') ? h : `https://www.vrbo.com${h}` });     });
  • Network accessline 280
    out.listings.push({ id, name: null, priceText: null, url: h.startsWith('http') ? h : `https://www.vrbo.com${h}` });

plugins/travel-hacking-toolkit/skills/vrbo/tests/test_search_vrbo.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 25
    def test_includes_core_params(self):         url = sv.build_search_url("Canmore, Alberta, Canada", "2026-06-26", "2026-07-02", 3, 0, False)         self.assertTrue(url.startswith("https://www.vrbo.com/search?"))
  • Network accessline 26
    url = sv.build_search_url("Canmore, Alberta, Canada", "2026-06-26", "2026-07-02", 3, 0, False)         self.assertTrue(url.startswith("https://www.vrbo.com/search?"))         self.assertIn("startDate=2026-06-26", url)
  • Network accessline 27
    self.assertTrue(url.startswith("https://www.vrbo.com/search?"))
  • Network accessline 98
    self.assertFalse(sv.is_skeleton({"id": "p123", "name": None, "url": None}))         self.assertFalse(sv.is_skeleton({"id": None, "name": "Cabin", "url": None}))         self.assertFalse(sv.is_skeleton({"id": None, "name": None, "url": "http
  • Network accessline 100
    self.assertFalse(sv.is_skeleton({"id": None, "name": None, "url": "https://vrbo.com/p1"}))

plugins/travel-hacking-toolkit/skills/wheretocredit/SKILL.md

  • Access to secretsline 6
    [Credential-related source omitted]
  • Network accessline 14
    **Source:** [wheretocredit.com](https://www.wheretocredit.com) — No API key required. Data is scraped via webfetch.
  • Network accessline 22
    https://www.wheretocredit.com/en/{IATA_CODE}/{BOOKING_CLASS}
  • Network accessline 26
    Example: `https://www.wheretocredit.com/en/AY/Z` (Finnair class Z)
  • Network accessline 30
    https://www.wheretocredit.com/en/{IATA_CODE}
  • Network accessline 34
    Example: `https://www.wheretocredit.com/en/AY` (all Finnair classes)
  • Network accessline 38
    https://www.wheretocredit.com/en/programs/{PROGRAM_CODE}
  • Network accessline 42
    Example: `https://www.wheretocredit.com/en/programs/AA` (AA AAdvantage partners)
  • Network accessline 149
    ### Step 2: Fetch earning rates - Fetch `https://www.wheretocredit.com/en/{IATA}/{CLASS}`
  • Network accessline 150
    - Fetch `https://www.wheretocredit.com/en/{IATA}/{CLASS}`
  • Network accessline 201
    1. Fetch `https://www.wheretocredit.com/en/{IATA}/{CLASS}`
  • Network accessline 207
    1. Fetch `https://www.wheretocredit.com/en/programs/{CODE}`

plugins/travel-hacking-toolkit/skills/wikipedia-airports/SKILL.md

  • Network accessline 33
    curl -s "https://en.wikipedia.org/w/api.php?action=query&list=search&srsearch=SAN+airport&format=json" \
  • Network accessline 44
    curl -s "https://en.wikipedia.org/w/api.php?action=parse&page=San_Diego_International_Airport&prop=wikitext&formatversion=2&format=json" \
  • Network accessline 51
    curl -Ls "https://en.wikipedia.org/wiki/San_Diego_International_Airport"
  • Network accessline 66
    curl -s "https://en.wikipedia.org/w/api.php?action=parse&page=San_Diego_International_Airport&prop=wikitext&formatversion=2&format=json" \
  • Network accessline 78
    curl -Ls "https://www.southwest.com/en/flights/flights-from-portland-or-to-san-diego" | rg "PDX|SAN|Portland|San Diego"
  • Network accessline 79
    curl -Ls "https://www.southwest.com/en/flights/flights-from-portland-or-to-orange-county-santa-ana" | rg "PDX|SNA|Portland|Orange County"
  • Network accessline 127
    CODE=SAN curl -s "https://en.wikipedia.org/w/api.php?action=query&list=search&srsearch=${CODE}+airport&format=json" \
  • Network accessline 128
    curl -s "https://en.wikipedia.org/w/api.php?action=query&list=search&srsearch=${CODE}+airport&format=json" \
  • Network accessline 135
    PAGE="San_Diego_International_Airport" curl -s "https://en.wikipedia.org/w/api.php?action=parse&page=${PAGE}&prop=wikitext&formatversion=2&format=json" \
  • Network accessline 136
    curl -s "https://en.wikipedia.org/w/api.php?action=parse&page=${PAGE}&prop=wikitext&formatversion=2&format=json" \
  • Network accessline 144
    PAGE="San_Diego_International_Airport" curl -s "https://en.wikipedia.org/w/api.php?action=parse&page=${PAGE}&prop=wikitext&formatversion=2&format=json" \
  • Network accessline 145
    curl -s "https://en.wikipedia.org/w/api.php?action=parse&page=${PAGE}&prop=wikitext&formatversion=2&format=json" \

scripts/calc_distance.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/check-data-freshness.sh

  • Executable scriptline 1
    #!/usr/bin/env bash

scripts/refresh-transfer-bonuses.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    Executable file; content unavailable
  • Network accessline 4
    Scrapes https://frequentmiler.com/current-point-transfer-bonuses/ and updates
  • Network accessline 36
    FM_URL = "https://frequentmiler.com/current-point-transfer-bonuses/"
  • Network accessline 37
    AW_URL = "https://awardwallet.com/news/credit-card-transfer-bonuses/"
  • Network accessline 47
    def fetch(url, timeout=20):
  • Network accessline 48
    req = urllib.request.Request(
  • Network accessline 57
    },     )     with urllib.request.urlopen(req, timeout=timeout) as resp:
  • Network accessline 58
    )     with urllib.request.urlopen(req, timeout=timeout) as resp:         return resp.read().decode("utf-8", errors="replace")
  • Network accessline 59
    with urllib.request.urlopen(req, timeout=timeout) as resp:
  • Network accessline 104
    link_match = re.search(             r"<a[^>]+href=['\"](https://frequentmiler\.com/[^'\"]+)['\"][^>]*>([^<]+)</a>",
  • Network accessline 105
    r"<a[^>]+href=['\"](https://frequentmiler\.com/[^'\"]+)['\"][^>]*>([^<]+)</a>",
  • Network accessline 269
    log(f"fetching {FM_URL}")     try:         fm_html = fetch(FM_URL)
  • Network accessline 270
    try:         fm_html = fetch(FM_URL)     except Exception as e:
  • Network accessline 271
    fm_html = fetch(FM_URL)
  • Network accessline 296
    aw_html = ""     try:         aw_html = fetch(AW_URL)
  • Network accessline 297
    try:         aw_html = fetch(AW_URL)     except Exception as e:
  • Network accessline 298
    aw_html = fetch(AW_URL)

scripts/setup-keys.ps1

  • Executable scriptline 1
    Executable file
  • Network accessline 111
    [Credential-related source omitted]
  • Access to secretsline 111
    [Credential-related source omitted]
  • Network accessline 113
    'https://seats.aero/profile (Pro ~$8/mo)'
  • Network accessline 115
    Prompt-Key 'DUFFEL_API_KEY_LIVE' `     'Real GDS cash flight prices. Free to search, pay per booking.' `     'https://duffel.com (use the LIVE key, not test)'
  • Network accessline 117
    'https://duffel.com (use the LIVE key, not test)'
  • Network accessline 119
    [Credential-related source omitted]
  • Access to secretsline 119
    [Credential-related source omitted]
  • Network accessline 121
    'https://ignav.com (1,000 free requests/month)'
  • Network accessline 123
    [Credential-related source omitted]
  • Access to secretsline 123
    [Credential-related source omitted]
  • Network accessline 125
    'https://business.awardwallet.com/profile/api (Business account required)'
  • Network accessline 135
    $more = Read-Host "Continue with Tier 2 (SerpAPI, RapidAPI, LiteAPI, TripAdvisor)? [y/N]" if ($more -match '^[Yy]') {     Prompt-Key 'SERPAPI_API_KEY' 'Google Flights/Hotels comparison data.' 'https://serpapi.com (100 searches/mo free)'
  • Network accessline 136
    if ($more -match '^[Yy]') {     Prompt-Key 'SERPAPI_API_KEY' 'Google Flights/Hotels comparison data.' 'https://serpapi.com (100 searches/mo free)'     Prompt-Key 'RAPIDAPI_KEY'    'Booking.com Live + Google Flights Live as fallback sources.
  • Network accessline 137
    [Credential-related source omitted]
  • Access to secretsline 137
    [Credential-related source omitted]
  • Network accessline 138
    Prompt-Key 'RAPIDAPI_KEY'    'Booking.com Live + Google Flights Live as fallback sources.' 'https://rapidapi.com'
  • Network accessline 139
    [Credential-related source omitted]
  • Access to secretsline 139
    [Credential-related source omitted]
  • Network accessline 140
    [Credential-related source omitted]
  • Access to secretsline 140
    [Credential-related source omitted]
  • Network accessline 147
    if ($more -match '^[Yy]') {     Prompt-Key 'ENTUR_CLIENT_NAME' "Norway transit search. Free, no signup. Format: 'yourcompany-app'." '' 3     Prompt-Key 'RESROBOT_API_KEY'  'Sweden rail/bus search.' 'https://www.trafiklab.se (30K calls/mo fr
  • Network accessline 148
    Prompt-Key 'ENTUR_CLIENT_NAME' "Norway transit search. Free, no signup. Format: 'yourcompany-app'." '' 3     Prompt-Key 'RESROBOT_API_KEY'  'Sweden rail/bus search.' 'https://www.trafiklab.se (30K calls/mo free)'     Prompt-Key 'REJSEPLANEN
  • Network accessline 149
    [Credential-related source omitted]
  • Access to secretsline 149
    [Credential-related source omitted]
  • Network accessline 150
    [Credential-related source omitted]
  • Access to secretsline 150
    [Credential-related source omitted]

scripts/setup-keys.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Network accessline 7
    # # Or download and run in one shot: #   bash <(curl -fsSL https://raw.githubusercontent.com/borski/travel-hacking-toolkit/main/scripts/setup-keys.sh)
  • Network accessline 8
    # Or download and run in one shot: #   bash <(curl -fsSL https://raw.githubusercontent.com/borski/travel-hacking-toolkit/main/scripts/setup-keys.sh) #
  • Dangerous shell operationline 9
    #   bash <(curl -fsSL https://raw.githubusercontent.com/borski/travel-hacking-toolkit/main/scripts/setup-keys.sh)
  • Network accessline 9
    #   bash <(curl -fsSL https://raw.githubusercontent.com/borski/travel-hacking-toolkit/main/scripts/setup-keys.sh)
  • Network accessline 161
    [Credential-related source omitted]
  • Access to secretsline 161
    [Credential-related source omitted]
  • Network accessline 163
    "https://seats.aero/profile (Pro ~\$8/mo)"
  • Network accessline 165
    prompt_key DUFFEL_API_KEY_LIVE \   "Real GDS cash flight prices. Free to search, pay per booking." \   "https://duffel.com (use the LIVE key, not test)"
  • Network accessline 167
    "https://duffel.com (use the LIVE key, not test)"
  • Network accessline 169
    [Credential-related source omitted]
  • Access to secretsline 169
    [Credential-related source omitted]
  • Network accessline 171
    "https://ignav.com (1,000 free requests/month)"
  • Network accessline 173
    [Credential-related source omitted]
  • Access to secretsline 173
    [Credential-related source omitted]
  • Network accessline 175
    "https://business.awardwallet.com/profile/api (Business account required)"
  • Network accessline 187
    [Credential-related source omitted]
  • Access to secretsline 187
    [Credential-related source omitted]
  • Network accessline 188
    "Google Flights/Hotels comparison data." \       "https://serpapi.com (100 searches/mo free)"     prompt_key RAPIDAPI_KEY \
  • Network accessline 189
    "https://serpapi.com (100 searches/mo free)"
  • Network accessline 190
    prompt_key RAPIDAPI_KEY \       "Booking.com Live + Google Flights Live as fallback sources." \       "https://rapidapi.com"
  • Network accessline 191
    "Booking.com Live + Google Flights Live as fallback sources." \       "https://rapidapi.com"     prompt_key LITEAPI_API_KEY \
  • Network accessline 192
    "https://rapidapi.com"
  • Network accessline 193
    [Credential-related source omitted]
  • Access to secretsline 193
    [Credential-related source omitted]
  • Network accessline 194
    "Hotel rate inventory via LiteAPI MCP." \       "https://liteapi.travel"     prompt_key TRIPADVISOR_API_KEY \
  • Network accessline 195
    "https://liteapi.travel"
  • Network accessline 196
    [Credential-related source omitted]
  • Access to secretsline 196
    [Credential-related source omitted]
  • Network accessline 197
    "Hotel ratings, reviews, and rankings." \       "https://tripadvisor-content-api.readme.io (5K calls/mo free)"     ;;
  • Network accessline 198
    "https://tripadvisor-content-api.readme.io (5K calls/mo free)"
  • Network accessline 211
    [Credential-related source omitted]
  • Access to secretsline 211
    [Credential-related source omitted]
  • Network accessline 212
    "Sweden rail/bus search." \       "https://www.trafiklab.se (30K calls/mo free)"     prompt_key REJSEPLANEN_API_KEY \
  • Network accessline 213
    "https://www.trafiklab.se (30K calls/mo free)"
  • Network accessline 214
    [Credential-related source omitted]
  • Access to secretsline 214
    [Credential-related source omitted]
  • Network accessline 215
    "Denmark rail/bus search." \       "https://help.rejseplanen.dk"     ;;
  • Network accessline 216
    "https://help.rejseplanen.dk"

scripts/smoke-test.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Dangerous shell operationline 100
    # 1b. setup-keys.sh syntax (security-sensitive, used by curl|bash one-liner)

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Signal confidence: 500 facts

and 450 more

Only the first 500 facts are listed.

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexNativeManifest AGENTS.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md plugins/travel-hacking-toolkit/skills/alliances/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md plugins/travel-hacking-toolkit/skills/alliances/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md plugins/travel-hacking-toolkit/skills/alliances/SKILL.md.github/skills/<skill-name>/
OpenCodeNativeManifest opencode.json.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.

Explore alternatives and comparisons

Add this badge to your README

It updates every night and links to this page.

borski/travel-hacking-toolkit: #967 on hotskills, 905 stars

[![borski/travel-hacking-toolkit on hotskills](https://hotskills.dev/badge/borski-travel-hacking-toolkit.svg)](https://hotskills.dev/skill/borski-travel-hacking-toolkit/)