@bowmark/web 1.16.1 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,8 +5,8 @@
5
5
  // rather than imported. An `import` or `export` at the top level of this file would
6
6
  // turn it into a module and every declaration below would stop being global.
7
7
  //
8
- // Manifest version: ab1045c2b0a9094f69fd97b6a8be00087ae7b8871ef4e274bb3bb248203dbcea
9
- // 44 capabilities, 348 providers, 874 typed functions, 20 refused.
8
+ // Manifest version: c3b10cd54e186870ffdcb91995b4222605550dc2a437407330e776b47faaaf31
9
+ // 45 capabilities, 363 providers, 902 typed functions, 20 refused.
10
10
  // 51,715 family members, sharing 2 interface(s) — declared once and pointed at, never repeated per member.
11
11
  //
12
12
  // REFUSED — these functions are real and callable, and their declared arguments
@@ -2610,6 +2610,27 @@ interface ForecastResult {
2610
2610
  }
2611
2611
  }
2612
2612
 
2613
+ declare namespace BowmarkCapability_web_form_fields {
2614
+ // ── Inspect a web form and count its fields — the unit's own declarations, verbatim ──
2615
+
2616
+ interface FormField { name: string | null; label: string | null; type: string; required: boolean }
2617
+ interface InspectedForm { action: string | null; method: string; fields: FormField[] }
2618
+ interface FormInspectionResult { url: string; title: string | null; forms: InspectedForm[]; fieldCount: number; warnings: string[] }
2619
+
2620
+ /**
2621
+ * Fetches a public web page and inventories every visible form field: its label, name, type
2622
+ * and required-ness. Read-only: it never fills or submits a form.
2623
+ */
2624
+ interface Unit {
2625
+ /**
2626
+ * Reads a public page and returns its forms plus a total field count. Each field includes its
2627
+ * label when the markup supplies one, name, type and required-ness. It never fills, clicks or
2628
+ * submits anything; a page with client-rendered forms or no HTML form gets an honest warning.
2629
+ */
2630
+ getFields(url: string): Promise<FormInspectionResult>;
2631
+ }
2632
+ }
2633
+
2613
2634
  declare namespace BowmarkCapability_wireless {
2614
2635
  // ── wireless plan all-in price — the unit's own declarations, verbatim ──
2615
2636
  interface CarrierAllInPrice {
@@ -5323,6 +5344,47 @@ interface BcParksAvailabilityResult {
5323
5344
  }
5324
5345
  }
5325
5346
 
5347
+ declare namespace BowmarkProvider_beaconfunding {
5348
+ // ── Beacon Funding — the unit's own declarations, verbatim ──
5349
+ type BeaconfundingLoanType = "equipmentFinancing" | "preApproval" | "cashForBusiness";
5350
+
5351
+ interface BeaconfundingFieldOption {
5352
+ value: string;
5353
+ label: string;
5354
+ }
5355
+
5356
+ interface BeaconfundingApplicationField {
5357
+ name: string;
5358
+ label: string;
5359
+ inputType: "text" | "email" | "tel" | "textarea" | "select";
5360
+ required: boolean;
5361
+ maxLength: number | null;
5362
+ pattern: string | null;
5363
+ options: BeaconfundingFieldOption[] | null;
5364
+ }
5365
+
5366
+ interface BeaconfundingApplicationFields {
5367
+ loanType: BeaconfundingLoanType;
5368
+ helpPhone: string | null;
5369
+ fields: BeaconfundingApplicationField[];
5370
+ }
5371
+
5372
+ /**
5373
+ * Equipment-financing lender. getApplicationFields reads beaconfunding.com's own credit
5374
+ * application and returns, as typed data, exactly which fields it will ask for once a caller
5375
+ * picks a loan type — never fills or submits the application itself.
5376
+ */
5377
+ interface Unit {
5378
+ /**
5379
+ * Reads beaconfunding.com's own credit application and returns the fields it declares for one
5380
+ * loan type — "equipmentFinancing", "preApproval", or "cashForBusiness" — with each field's
5381
+ * label, whether it is required, its validation pattern/max length, and (for a select) every
5382
+ * option value+label. Never fills in or submits the application.
5383
+ */
5384
+ getApplicationFields(loanType: BeaconfundingLoanType): Promise<BeaconfundingApplicationFields>;
5385
+ }
5386
+ }
5387
+
5326
5388
  declare namespace BowmarkProvider_beatthebomb {
5327
5389
  // ── Beat The Bomb — the unit's own declarations, verbatim ──
5328
5390
  interface BeatthebombMission {
@@ -6149,6 +6211,46 @@ interface BluehavenSiteFeasibility {
6149
6211
  }
6150
6212
  }
6151
6213
 
6214
+ declare namespace BowmarkProvider_blueribbonhomewarranty_com {
6215
+ // ── Blue Ribbon Home Warranty — the unit's own declarations, verbatim ──
6216
+ interface blueribbonhomewarranty_comPage {
6217
+ url: string;
6218
+ title: string;
6219
+ }
6220
+ interface blueribbonhomewarranty_comPageContent {
6221
+ url: string;
6222
+ title: string | null;
6223
+ description: string | null;
6224
+ headings: string[];
6225
+ body: string;
6226
+ hasApplicationForm: boolean;
6227
+ applicationFormQuestions: string[];
6228
+ }
6229
+
6230
+ /**
6231
+ * Finds and reads Blue Ribbon Home Warranty's own public pages — the apply/quote, claim and
6232
+ * renewal flows, pricing and support pages — as clean structured content, including what a
6233
+ * page's own Gravity Forms application asks for.
6234
+ */
6235
+ interface Unit {
6236
+ /**
6237
+ * Finds Blue Ribbon Home Warranty's own pages by matching query words against the site's
6238
+ * sitemap (e.g. "apply online", "file a claim", "renew warranty", "pricing") — ranked by how
6239
+ * many words matched, up to 10 results. Returns [] when nothing matches.
6240
+ */
6241
+ search(query: string): Promise<blueribbonhomewarranty_comPage[]>;
6242
+
6243
+ /**
6244
+ * Reads one Blue Ribbon Home Warranty page (a url returned by search) and returns its title,
6245
+ * meta description, headings and clean body text. When the page embeds one of the site's
6246
+ * Gravity Forms application/claim/renewal flows, also returns that form's own section headings
6247
+ * and top-level question labels. THROWS if the page does not exist (404) or names a host other
6248
+ * than blueribbonhomewarranty.com.
6249
+ */
6250
+ getPage(url: string): Promise<blueribbonhomewarranty_comPageContent>;
6251
+ }
6252
+ }
6253
+
6152
6254
  declare namespace BowmarkProvider_bluesignal {
6153
6255
  // ── Blue Signal Search — the unit's own declarations, verbatim ──
6154
6256
  interface BlueSignalJobSummary {
@@ -8059,6 +8161,46 @@ interface CasaDragonesNearbyRetailers {
8059
8161
  }
8060
8162
  }
8061
8163
 
8164
+ declare namespace BowmarkProvider_cascadiaseniorliving_com {
8165
+ // ── Cascadia Senior Living — the unit's own declarations, verbatim ──
8166
+ interface cascadiaseniorliving_comPage {
8167
+ id: number;
8168
+ title: string;
8169
+ url: string;
8170
+ slug: string;
8171
+ parent: number; // parent page id, or 0 for a top-level page
8172
+ }
8173
+ interface cascadiaseniorliving_comPageDetail {
8174
+ id: number;
8175
+ title: string;
8176
+ url: string;
8177
+ slug: string;
8178
+ body: string; // plain text, markup stripped
8179
+ hasContactForm: boolean; // a Gravity Forms contact/inquiry form is embedded
8180
+ }
8181
+
8182
+ /**
8183
+ * Reads Cascadia Senior Living's own site (why-us, living options, communities overview,
8184
+ * contact) — a full page index and any one page's own content as plain text, off the site's
8185
+ * own WordPress REST API rather than a scrape.
8186
+ */
8187
+ interface Unit {
8188
+ /**
8189
+ * Lists every page cascadiaseniorliving.com publishes — title, url, slug and parent — off the
8190
+ * site's own WordPress REST API page index.
8191
+ */
8192
+ listSitePages(): Promise<cascadiaseniorliving_comPage[]>;
8193
+
8194
+ /**
8195
+ * Reads one page by its url (from a `listSitePages` result) or bare slug (e.g.
8196
+ * "living-options") and returns its title and body as plain text, plus whether it embeds one
8197
+ * of the site's own contact/inquiry forms. THROWS if no page matches, or if a url names a host
8198
+ * other than cascadiaseniorliving.com.
8199
+ */
8200
+ getSitePage(pageRef: string): Promise<cascadiaseniorliving_comPageDetail>;
8201
+ }
8202
+ }
8203
+
8062
8204
  declare namespace BowmarkProvider_cbhhomes {
8063
8205
  // ── CBH Homes — the unit's own declarations, verbatim ──
8064
8206
  interface CbhListing {
@@ -9227,6 +9369,25 @@ interface claudeMarketplacesListingLink {
9227
9369
  }
9228
9370
  }
9229
9371
 
9372
+ declare namespace BowmarkProvider_clboyd {
9373
+ // ── CL Boyd — the unit's own declarations, verbatim ──
9374
+ interface CLBoydSearchArgs { category: string; manufacturer?: string; minYear?: number; maxYear?: number; minPrice?: number; maxPrice?: number; minHours?: number; maxHours?: number; sort?: string; }
9375
+ interface CLBoydEquipment { id: string; name: string; url: string; price: number | null; location: string | null; year: number | null; hours: number | null; stockNumber: string | null; }
9376
+ interface CLBoydSearchResult { equipment: CLBoydEquipment[]; }
9377
+
9378
+ /**
9379
+ * CL Boyd's live used-equipment inventory filter with current price, hours, stock number and
9380
+ * detail-page handoff.
9381
+ */
9382
+ interface Unit {
9383
+ /**
9384
+ * Runs CL Boyd's live used-equipment filter and returns current matching machines with price,
9385
+ * hours, stock number and a detail-page handoff.
9386
+ */
9387
+ searchUsedEquipment(args: CLBoydSearchArgs): Promise<CLBoydSearchResult>;
9388
+ }
9389
+ }
9390
+
9230
9391
  declare namespace BowmarkProvider_cleanairlawncare {
9231
9392
  // ── Clean Air Lawn Care — the unit's own declarations, verbatim ──
9232
9393
  interface CleanAirEstimateAvailability {
@@ -9589,6 +9750,45 @@ interface CouponFollowOffer {
9589
9750
  }
9590
9751
  }
9591
9752
 
9753
+ declare namespace BowmarkProvider_credibly_com {
9754
+ // ── Credibly business-financing application — the unit's own declarations, verbatim ──
9755
+ interface CrediblyApplicationField {
9756
+ name: string;
9757
+ label: string;
9758
+ type: string;
9759
+ required: boolean;
9760
+ options: Array<{ label: string; value: string }>;
9761
+ }
9762
+ interface CrediblyApplicationForm {
9763
+ applicationUrl: string;
9764
+ submitText: string;
9765
+ fields: CrediblyApplicationField[];
9766
+ }
9767
+ interface CrediblyEligibilityRequirements {
9768
+ applicationUrl: string;
9769
+ requirements: string[];
9770
+ }
9771
+
9772
+ /**
9773
+ * Reads the public Credibly application form's visible questions and its published eligibility
9774
+ * requirements, without filling or submitting anything.
9775
+ */
9776
+ interface Unit {
9777
+ /**
9778
+ * Returns every visible question on Credibly's public business-financing application — label,
9779
+ * field type, required flag and select choices — plus the page URL and submit text. It only
9780
+ * reads the published form definition; it never fills or submits an application.
9781
+ */
9782
+ getApplicationForm(): Promise<CrediblyApplicationForm>;
9783
+
9784
+ /**
9785
+ * Returns Credibly's own published eligibility requirements for its small-business financing
9786
+ * (time in business, credit score, monthly revenue) from its public FAQ, verbatim.
9787
+ */
9788
+ getEligibilityRequirements(): Promise<CrediblyEligibilityRequirements>;
9789
+ }
9790
+ }
9791
+
9592
9792
  declare namespace BowmarkProvider_cruiselakegeneva {
9593
9793
  // ── Cruise Lake Geneva — the unit's own declarations, verbatim ──
9594
9794
  interface CruiseLakeGenevaTour {
@@ -9819,6 +10019,87 @@ interface CyberpowerpcPriceResult {
9819
10019
  }
9820
10020
  }
9821
10021
 
10022
+ declare namespace BowmarkProvider_dahlconsulting {
10023
+ // ── Dahl Consulting — the unit's own declarations, verbatim ──
10024
+ // Dahl Consulting's OWN shapes — not a capability contract.
10025
+
10026
+ interface dahlconsultingJobSummary {
10027
+ title: string;
10028
+ url: string; // the id getJob takes
10029
+ postId: string; // the numeric id every job URL ends with
10030
+ city: string; state: string;
10031
+ employmentType: string; // e.g. "CONTRACTOR"
10032
+ payMin: number | null; payMax: number | null; payUnit: string | null; // e.g. "HOUR"
10033
+ datePosted: string; // ISO date
10034
+ }
10035
+
10036
+ interface dahlconsultingJob extends dahlconsultingJobSummary {
10037
+ industry: string;
10038
+ validThrough: string; // ISO date the posting expires
10039
+ description: string; // the full posting text
10040
+ applyUrl: string; // Dahl's own quick-apply page for this job — never submitted by this provider
10041
+ }
10042
+
10043
+ interface dahlconsultingSearchFilters { query?: string; location?: string; limit?: number }
10044
+
10045
+ /**
10046
+ * Searches Dahl Consulting's own live job board and reads a job's full posting — real title,
10047
+ * location, pay range, employment type and description off the site's own structured data —
10048
+ * plus a ready-to-open apply link, the way ChatGPT's web_search can find the listing but
10049
+ * cannot fill or submit the form.
10050
+ */
10051
+ interface Unit {
10052
+ /**
10053
+ * Searches Dahl Consulting's live job board — every open role, optionally narrowed by keyword
10054
+ * and/or city/state — off the site's own sitemap and each matching posting's structured data.
10055
+ * Returns the url/postId getJob takes. No filter returns the most recently posted openings.
10056
+ */
10057
+ searchJobs(filters?: dahlconsultingSearchFilters): Promise<dahlconsultingJobSummary[]>;
10058
+
10059
+ /**
10060
+ * Reads one job posting's full detail off its own page — complete description, industry,
10061
+ * posted/expiry dates and pay — plus a ready-to-open applyUrl on Dahl's own careers site.
10062
+ * THROWS on an unknown/removed url — call searchJobs() first.
10063
+ */
10064
+ getJob(url: string): Promise<dahlconsultingJob>;
10065
+ }
10066
+ }
10067
+
10068
+ declare namespace BowmarkProvider_dansons {
10069
+ // ── Dansons (Pit Boss) — the unit's own declarations, verbatim ──
10070
+ interface dansonsRegisterableProduct {
10071
+ productId: string;
10072
+ title: string;
10073
+ sku: string;
10074
+ price: number;
10075
+ imageUrl: string | null;
10076
+ }
10077
+
10078
+ /**
10079
+ * Identifies which Pit Boss grill/smoker a free-text description matches, and lists the
10080
+ * products eligible for warranty registration — read live off Pit Boss's own registration-page
10081
+ * catalog.
10082
+ */
10083
+ interface Unit {
10084
+ /**
10085
+ * Lists every Pit Boss product eligible for warranty registration — the exact catalog the
10086
+ * registration page's own product-search reads from. Each row carries the real title, SKU,
10087
+ * current price and product image, direct from Pit Boss's Storefront API.
10088
+ */
10089
+ listRegisterableProducts(): Promise<dansonsRegisterableProduct[]>;
10090
+
10091
+ /**
10092
+ * Identifies which Pit Boss product(s) a free-text description matches — the same normalized
10093
+ * substring match the registration page's own typeahead performs when a shopper types e.g.
10094
+ * 'PB1230' or 'Lockhart Platinum'. Returns every registerable product whose title, SKU or
10095
+ * product id contains the (normalized) query; empty when nothing matches. Use this before
10096
+ * registering a product to confirm the exact model, without needing the shopper's serial
10097
+ * number or purchase info.
10098
+ */
10099
+ identifyProduct(query: string): Promise<dansonsRegisterableProduct[]>;
10100
+ }
10101
+ }
10102
+
9822
10103
  declare namespace BowmarkProvider_davidsonhomes {
9823
10104
  // ── Davidson Homes — the unit's own declarations, verbatim ──
9824
10105
  // Davidson Homes' OWN shapes — not a capability contract.
@@ -10208,6 +10489,175 @@ interface DdCartHandoff {
10208
10489
  }
10209
10490
  }
10210
10491
 
10492
+ declare namespace BowmarkProvider_deltadentalma {
10493
+ // ── Delta Dental of Massachusetts — the unit's own declarations, verbatim ──
10494
+ // Delta Dental of Massachusetts's OWN shapes — not a capability contract.
10495
+
10496
+ interface deltadentalmaDentist {
10497
+ providerServiceOfficeId: string; // the site's own composite id
10498
+ npi: string | null;
10499
+ firstName: string; lastName: string;
10500
+ specialty: string[]; // e.g. ["General Dentist"]
10501
+ languages: string[]; // e.g. ["English", "Portuguese"]
10502
+ acceptsNewPatients: boolean; // true on ANY in-network product returned
10503
+ networks: string[]; // in-network product names, e.g. ["Delta Dental PPO"]
10504
+ businessName: string; address: string; city: string; state: string; zip: string;
10505
+ phone: string | null;
10506
+ rating: number | null; // 1-5, the site's own patient-experience score
10507
+ distanceMiles: number | null;
10508
+ }
10509
+
10510
+ interface deltadentalmaSearchFilters {
10511
+ zip: string; // a ZIP or city/town, free text — the site's own field
10512
+ radiusMiles?: number; // default 25
10513
+ network?: string; // a network code, e.g. "PPOPlusPremier"; omit for all
10514
+ specialty?: string; // a specialty code, e.g. "000" (General Dentist); omit for all
10515
+ language?: string; // a language code, e.g. "POR" (Portuguese); omit for none
10516
+ gender?: "F" | "M";
10517
+ limit?: number; // default 20, max 100
10518
+ }
10519
+
10520
+ /**
10521
+ * Searches Delta Dental of Massachusetts's own Find-a-Dentist directory for in-network
10522
+ * dentists and clinics near a ZIP — the same live provider data the site's `/fad/search`
10523
+ * widget renders, filterable by network, specialty, language and gender.
10524
+ */
10525
+ interface Unit {
10526
+ /**
10527
+ * Searches Delta Dental of Massachusetts's live Find-a-Dentist directory near a ZIP, filtered
10528
+ * by network, specialty, language and/or gender. Returns real in-network providers with
10529
+ * address, phone, distance and accepts-new-patients status.
10530
+ */
10531
+ search(filters: deltadentalmaSearchFilters): Promise<deltadentalmaDentist[]>;
10532
+
10533
+ /**
10534
+ * Returns the ISO timestamp the directory data was last refreshed, so a caller can say how
10535
+ * fresh a search result set is.
10536
+ */
10537
+ lastUpdated(): Promise<{ lastUpdated: string }>;
10538
+ }
10539
+ }
10540
+
10541
+ declare namespace BowmarkProvider_dentalplans {
10542
+ // ── DentalPlans.com — the unit's own declarations, verbatim ──
10543
+ // DentalPlans.com's OWN shapes — not a capability contract.
10544
+
10545
+ interface DentalplansPlanListing {
10546
+ planId: string;
10547
+ name: string;
10548
+ carrier: string;
10549
+ planType: "savings" | "insurance";
10550
+ annualPrice: number;
10551
+ monthlyPrice: number;
10552
+ dentistsNearYou: number | null;
10553
+ detailUrl: string;
10554
+ }
10555
+
10556
+ interface DentalplansSearchResult {
10557
+ zip: string;
10558
+ plans: DentalplansPlanListing[];
10559
+ resultCount: number;
10560
+ }
10561
+
10562
+ interface DentalplansProcedureSaving {
10563
+ description: string;
10564
+ code: string;
10565
+ priceWithoutPlan: number;
10566
+ priceWithPlan: number;
10567
+ savingsPercent: number;
10568
+ }
10569
+
10570
+ interface DentalplansPlanDetail {
10571
+ name: string;
10572
+ description: string;
10573
+ url: string;
10574
+ procedures: DentalplansProcedureSaving[];
10575
+ }
10576
+
10577
+ /**
10578
+ * DentalPlans.com's own live, location-filtered plan search (/plan-search-results/?zip=) off
10579
+ * the site's server-rendered results — real matched dental savings plans and dental insurance
10580
+ * plans with real pricing and in-network dentist counts, not a stale mirror — plus one plan's
10581
+ * own full detail and sample procedure-savings table.
10582
+ */
10583
+ interface Unit {
10584
+ /**
10585
+ * Runs DentalPlans.com's own live plan search for a 5-digit US zip and returns the real
10586
+ * matched dental savings plans and dental insurance plans it currently lists, in the site's
10587
+ * own order, with real pricing and in-network dentist counts. The query ChatGPT's fit-check
10588
+ * (agents/prospector-2/packets/dentalplans.com/angle.md) could not actually run: it cannot
10589
+ * submit the site's own ZIP-entry form.
10590
+ */
10591
+ search(zip: string): Promise<DentalplansSearchResult>;
10592
+
10593
+ /**
10594
+ * Reads one plan's own detail page — its marketing description and the site's own 'Common
10595
+ * Procedures' sample savings table (real per-procedure price with vs. without the plan). `url`
10596
+ * is a plan URL from a `search` result.
10597
+ */
10598
+ getPlan(url: string): Promise<DentalplansPlanDetail>;
10599
+ }
10600
+ }
10601
+
10602
+ declare namespace BowmarkProvider_detailxperts {
10603
+ // ── DetailXPerts — the unit's own declarations, verbatim ──
10604
+ interface DetailxpertsServiceArea {
10605
+ serviced: boolean;
10606
+ driveTimeMinutes: number | null;
10607
+ driveDistanceMiles: number | null;
10608
+ driveFeeAmount: number | null;
10609
+ message: string | null;
10610
+ }
10611
+ interface DetailxpertsVehicleType {
10612
+ position: number;
10613
+ title: string;
10614
+ imageUrl: string;
10615
+ }
10616
+ interface DetailxpertsQuotePackage {
10617
+ title: string;
10618
+ points: string[];
10619
+ price: number;
10620
+ timeMinutes: number;
10621
+ }
10622
+ interface DetailxpertsQuote {
10623
+ vehicleTitle: string;
10624
+ dirtUpcharge: number;
10625
+ hairUpcharge: number;
10626
+ dirtInteriorUpcharge: number;
10627
+ packages: DetailxpertsQuotePackage[];
10628
+ }
10629
+
10630
+ /**
10631
+ * Whether an address falls inside a DetailXPerts mobile-detailing franchise's real service
10632
+ * area (with the site's own computed drive time/distance/fee), and a real, input-varying price
10633
+ * quote for a vehicle type and dirt/pet-hair/interior condition — read off the same
10634
+ * admin-ajax.php actions the site's own booking flow calls.
10635
+ */
10636
+ interface Unit {
10637
+ /**
10638
+ * Checks whether an address is inside a DetailXPerts franchise's real mobile service area, and
10639
+ * when it is, returns the site's own computed drive time (minutes), distance (miles) and drive
10640
+ * fee. Returns serviced: false with the site's own message when it's outside every franchise's
10641
+ * territory.
10642
+ */
10643
+ checkServiceArea(args: { address1: string; address2?: string; city: string; state: string; zip: string }): Promise<DetailxpertsServiceArea>;
10644
+
10645
+ /**
10646
+ * Lists the site's own vehicle-size categories (Micro, Hatchback, Sedan, SUV, Van, …), each
10647
+ * with the 1-based position getQuote's vehiclePosition takes.
10648
+ */
10649
+ listVehicleTypes(): Promise<DetailxpertsVehicleType[]>;
10650
+
10651
+ /**
10652
+ * Prices a mobile detail for one vehicle type and a dirt/pet-hair/interior-dirt condition (1
10653
+ * light to 3 heavy, per the site's own scale), returning the real 4-package ladder (title,
10654
+ * checklist, price, time) with the condition upcharges applied. Call listVehicleTypes() for
10655
+ * real vehiclePosition values.
10656
+ */
10657
+ getQuote(args: { vehiclePosition: number; dirtLevel: number; hairLevel: number; dirtInteriorLevel: number }): Promise<DetailxpertsQuote>;
10658
+ }
10659
+ }
10660
+
10211
10661
  declare namespace BowmarkProvider_developersopenai {
10212
10662
  // ── OpenAI Developer Docs — the unit's own declarations, verbatim ──
10213
10663
  interface DevelopersOpenaiDocPage {
@@ -11726,6 +12176,70 @@ interface FieldstonehomesPreparedAppointment { valid: boolean; errors: string[];
11726
12176
  }
11727
12177
  }
11728
12178
 
12179
+ declare namespace BowmarkProvider_firstamericahomes {
12180
+ // ── First America Homes — the unit's own declarations, verbatim ──
12181
+ // First America Homes' OWN shapes — not a capability contract.
12182
+
12183
+ interface FirstamericahomesCommunitySummary {
12184
+ name: string;
12185
+ url: string; // the key getCommunity takes
12186
+ city: string;
12187
+ state: string;
12188
+ zip: string;
12189
+ streetAddress: string;
12190
+ phone: string; // the community's own sales-office number, e.g. "+12106102362"
12191
+ description: string;
12192
+ priceFrom: number | null; // lowest currently-listed floor-plan price, or null
12193
+ }
12194
+
12195
+ interface FirstamericahomesFloorPlanRange { min: number; max: number }
12196
+
12197
+ interface FirstamericahomesFloorPlan {
12198
+ name: string;
12199
+ url: string;
12200
+ description: string;
12201
+ price: number | null;
12202
+ sqft: number | null;
12203
+ beds: FirstamericahomesFloorPlanRange | null;
12204
+ fullBaths: FirstamericahomesFloorPlanRange | null;
12205
+ halfBaths: FirstamericahomesFloorPlanRange | null;
12206
+ }
12207
+
12208
+ interface FirstamericahomesCommunityDetail extends FirstamericahomesCommunitySummary {
12209
+ latitude: number | null;
12210
+ longitude: number | null;
12211
+ floorPlans: FirstamericahomesFloorPlan[];
12212
+ }
12213
+
12214
+ interface FirstamericahomesSearchFilters {
12215
+ city?: string; state?: string; minPrice?: number; maxPrice?: number;
12216
+ }
12217
+
12218
+ /**
12219
+ * Reads First America Homes' own live community list across Houston and San Antonio — real
12220
+ * address, real sales-office phone number, real starting price and every current floor plan
12221
+ * (price, sqft, beds/baths) per community — the discoverable door into the site's
12222
+ * contact/tour/financing intake, which is keyed on a community rather than a single company
12223
+ * phone line.
12224
+ */
12225
+ interface Unit {
12226
+ /**
12227
+ * Searches First America Homes' current live community list (Houston and San Antonio metros)
12228
+ * by city, state, or price range. Real address, real sales-office phone number and real
12229
+ * starting price per community.
12230
+ */
12231
+ searchCommunities(filters?: FirstamericahomesSearchFilters): Promise<FirstamericahomesCommunitySummary[]>;
12232
+
12233
+ /**
12234
+ * Reads one community's full detail: address, sales-office phone, description,
12235
+ * geo-coordinates, and every floor plan it currently offers. `url` is a community's own url
12236
+ * from `searchCommunities()`. THROWS on an unknown url, naming `searchCommunities()` as the
12237
+ * way to find current ones.
12238
+ */
12239
+ getCommunity(url: string): Promise<FirstamericahomesCommunityDetail>;
12240
+ }
12241
+ }
12242
+
11729
12243
  declare namespace BowmarkProvider_firstdibs {
11730
12244
  // ── 1stDibs — the unit's own declarations, verbatim ──
11731
12245
  interface FirstdibsSearchResult {
@@ -15014,6 +15528,63 @@ interface HellotendService {
15014
15528
  }
15015
15529
  }
15016
15530
 
15531
+ declare namespace BowmarkProvider_highlandhomes {
15532
+ // ── Highland Homes — the unit's own declarations, verbatim ──
15533
+ interface HighlandHomesSearchFilter {
15534
+ city?: string;
15535
+ bedsMin?: number;
15536
+ bathsMin?: number;
15537
+ priceMin?: number;
15538
+ priceMax?: number;
15539
+ sqftMin?: number;
15540
+ sqftMax?: number;
15541
+ garageSpacesMin?: number;
15542
+ status?: string; // the site's own labels — read the values off a result, never guess one from prose
15543
+ hasDen?: boolean;
15544
+ hasLoft?: boolean;
15545
+ hasInLawSuite?: boolean;
15546
+ hasOwnersRetreat?: boolean;
15547
+ isOver55?: boolean;
15548
+ }
15549
+ interface HighlandHomesHome {
15550
+ id: number;
15551
+ lot: string;
15552
+ address: string;
15553
+ city: string;
15554
+ state: string;
15555
+ zip: string;
15556
+ beds: number;
15557
+ baths: number;
15558
+ halfBaths: number;
15559
+ garage: number;
15560
+ sqft: number;
15561
+ price: number;
15562
+ status: string; // the site's own labels — read the values off a result, never guess one from prose
15563
+ moveInDate: string | null;
15564
+ planName: string;
15565
+ planUrl: string;
15566
+ communityName: string;
15567
+ communityUrl: string;
15568
+ communityPhone: string | null;
15569
+ url: string;
15570
+ imageUrl: string | null;
15571
+ }
15572
+
15573
+ /**
15574
+ * Highland Homes' live new-construction inventory across Florida, filterable by city, price,
15575
+ * beds, sqft, garage spaces and build status — off the site's own undocumented filter-form
15576
+ * API.
15577
+ */
15578
+ interface Unit {
15579
+ /**
15580
+ * Searches Highland Homes' live new-construction inventory (Florida only) by city, price,
15581
+ * beds, sqft, garage spaces, status ("Move-In Ready" / "Under Construction") and a handful of
15582
+ * feature flags. Pass no filter to get the full live inventory.
15583
+ */
15584
+ search(filter?: HighlandHomesSearchFilter): Promise<HighlandHomesHome[]>;
15585
+ }
15586
+ }
15587
+
15017
15588
  declare namespace BowmarkProvider_hilton {
15018
15589
  // ── Hilton — the unit's own declarations, verbatim ──
15019
15590
  interface hiltonRoomOffer {
@@ -17447,6 +18018,32 @@ interface KayakCar {
17447
18018
  }
17448
18019
  }
17449
18020
 
18021
+ declare namespace BowmarkProvider_kbb {
18022
+ // ── Kelley Blue Book — the unit's own declarations, verbatim ──
18023
+ interface KbbTrimPricing {
18024
+ trimName: string;
18025
+ trimId: number;
18026
+ msrp: number;
18027
+ fairPurchasePrice: number;
18028
+ fairPurchasePriceRange: { low: number; high: number };
18029
+ }
18030
+
18031
+ /**
18032
+ * Reads kbb.com's own per-trim MSRP and Fair Purchase Price for a make/model/year — an
18033
+ * independent, browserless read on what a vehicle costs, for when the manufacturer's own site
18034
+ * is unreachable.
18035
+ */
18036
+ interface Unit {
18037
+ /**
18038
+ * Reads kbb.com's own per-trim MSRP and Fair Purchase Price for a make and model, e.g.
18039
+ * "Tesla", "Model 3" — kbb.com's own URL slugging, so a caller's ordinary make/model words
18040
+ * work directly. Optional model year defaults to kbb.com's current year. THROWS on a
18041
+ * make/model kbb.com has no page for, rather than returning an empty array.
18042
+ */
18043
+ getTrimPricing(make: string, model: string, year?: number): Promise<KbbTrimPricing[]>;
18044
+ }
18045
+ }
18046
+
17450
18047
  declare namespace BowmarkProvider_keepa {
17451
18048
  // ── Keepa — the unit's own declarations, verbatim ──
17452
18049
  interface KeepaProductResult { product: KeepaProduct; tokensLeft: number | null; tokensConsumed: number | null; refillRate: number | null; }
@@ -20553,6 +21150,62 @@ interface MixbookPromotion {
20553
21150
  }
20554
21151
  }
20555
21152
 
21153
+ declare namespace BowmarkProvider_modernize_com {
21154
+ // ── Modernize — the unit's own declarations, verbatim ──
21155
+ interface ModernizeProjectType {
21156
+ value: string; // the site's own POST value, e.g. "ROOFING"
21157
+ label: string;
21158
+ slug: string; // pass this as getQuoteFlow's projectType
21159
+ hasQuoteFlow: boolean;
21160
+ }
21161
+ interface ModernizeQuoteFlowOption {
21162
+ value: string;
21163
+ label: string;
21164
+ }
21165
+ interface ModernizeQuoteFlowField {
21166
+ name: string;
21167
+ label: string;
21168
+ inputType: "text" | "email" | "tel" | "textarea" | "select" | "radio";
21169
+ required: boolean;
21170
+ maxLength: number | null;
21171
+ options: ModernizeQuoteFlowOption[] | null; // present on select/radio only
21172
+ }
21173
+ interface ModernizeQuoteFlowStep {
21174
+ name: string;
21175
+ title: string;
21176
+ fields: ModernizeQuoteFlowField[];
21177
+ }
21178
+ interface ModernizeQuoteFlow {
21179
+ projectType: string;
21180
+ steps: ModernizeQuoteFlowStep[];
21181
+ }
21182
+
21183
+ /**
21184
+ * Home-improvement lead-gen site — listProjectTypes returns every trade its homeowner quote
21185
+ * flow covers (roofing, HVAC, windows, …), and getQuoteFlow reads the multi-step quote wizard
21186
+ * for one of them (project scope, address, personal/contact info) as typed steps and fields,
21187
+ * never fills or submits it.
21188
+ */
21189
+ interface Unit {
21190
+ /**
21191
+ * Reads modernize.com's own trade radio group — every home-improvement project type its quote
21192
+ * flow covers (roofing, HVAC, windows, solar, doors, …), each with the site's own value, label
21193
+ * and URL slug, and whether that trade also carries a dedicated quote wizard getQuoteFlow can
21194
+ * read.
21195
+ */
21196
+ listProjectTypes(): Promise<ModernizeProjectType[]>;
21197
+
21198
+ /**
21199
+ * Reads modernize.com's own multi-step homeowner quote wizard for one project type —
21200
+ * "roofing", "hvac", "windows", "siding", "solar", "doors", "home-security" or "home-warranty"
21201
+ * — and returns every step (ZIP, address, project scope, personal/contact info) with each
21202
+ * field's name, label, whether it is required, and (for a select or radio group) every option.
21203
+ * Never fills in or submits the wizard.
21204
+ */
21205
+ getQuoteFlow(projectType: string): Promise<ModernizeQuoteFlow>;
21206
+ }
21207
+ }
21208
+
20556
21209
  declare namespace BowmarkProvider_modularclosets {
20557
21210
  // ── Modular Closets — the unit's own declarations, verbatim ──
20558
21211
  // Modular Closets' OWN shapes — not a capability contract.
@@ -23668,6 +24321,50 @@ interface ProxmoxIsoDownload {
23668
24321
  }
23669
24322
  }
23670
24323
 
24324
+ declare namespace BowmarkProvider_puls_com {
24325
+ // ── Puls — the unit's own declarations, verbatim ──
24326
+ interface PulsApplianceCategory {
24327
+ deviceId: number;
24328
+ name: string;
24329
+ slug: string;
24330
+ }
24331
+
24332
+ interface GetRepairQuoteResult {
24333
+ device: PulsApplianceCategory;
24334
+ zipCode: string;
24335
+ isValidZipCode: boolean;
24336
+ marketId: number | null;
24337
+ marketName: string | null;
24338
+ serviceCallFee: number | null;
24339
+ }
24340
+
24341
+ /**
24342
+ * On-demand home-appliance and electronics repair booking. listApplianceCategories lists the
24343
+ * nine appliance categories the booking funnel offers; getRepairQuote checks whether Puls
24344
+ * services a ZIP and, if so, returns the real service-call (diagnostic) fee for an appliance
24345
+ * in that market — the same two facts the site's own /create-appointment form reveals after
24346
+ * picking an appliance and entering a ZIP.
24347
+ */
24348
+ interface Unit {
24349
+ /**
24350
+ * Lists the nine appliance categories Puls' booking funnel offers (Refrigerator, Dryer, Oven,
24351
+ * Washer, Dishwasher, Cooktop, Freezer, Microwave, Washer dryer combo) with each one's
24352
+ * site-internal deviceId, name and URL slug. Call this first — the deviceId (or the name) is
24353
+ * what getRepairQuote's `device` argument takes.
24354
+ */
24355
+ listApplianceCategories(): Promise<PulsApplianceCategory[]>;
24356
+
24357
+ /**
24358
+ * Checks whether Puls services a ZIP code and, if so, returns the real "Service Call Fee" (the
24359
+ * diagnostic fee a technician charges to show up) for the given appliance in that market.
24360
+ * `device` is an appliance name from listApplianceCategories (e.g. "Refrigerator") or its
24361
+ * numeric deviceId; `zipCode` is a 5-digit US ZIP. `serviceCallFee` and
24362
+ * `marketName`/`marketId` are `null` when the ZIP is outside Puls' service area.
24363
+ */
24364
+ getRepairQuote(args: { device: string | number, zipCode: string }): Promise<GetRepairQuoteResult>;
24365
+ }
24366
+ }
24367
+
23671
24368
  declare namespace BowmarkProvider_reddit {
23672
24369
  // ── Reddit — the unit's own declarations, verbatim ──
23673
24370
  interface RedditSearchPost {
@@ -30192,6 +30889,7 @@ interface BowmarkProviders {
30192
30889
  barnesfoundation: BowmarkProvider_barnesfoundation.Unit;
30193
30890
  baublebar: BowmarkProvider_baublebar.Unit;
30194
30891
  bcparkscamping: BowmarkProvider_bcparkscamping.Unit;
30892
+ beaconfunding: BowmarkProvider_beaconfunding.Unit;
30195
30893
  beatthebomb: BowmarkProvider_beatthebomb.Unit;
30196
30894
  bellwethercoffee: BowmarkProvider_bellwethercoffee.Unit;
30197
30895
  beltservice: BowmarkProvider_beltservice.Unit;
@@ -30207,6 +30905,7 @@ interface BowmarkProviders {
30207
30905
  blackstoneproducts: BowmarkProvider_blackstoneproducts.Unit;
30208
30906
  blenderseyewear: BowmarkProvider_blenderseyewear.Unit;
30209
30907
  bluehaven: BowmarkProvider_bluehaven.Unit;
30908
+ blueribbonhomewarranty_com: BowmarkProvider_blueribbonhomewarranty_com.Unit;
30210
30909
  bluesignal: BowmarkProvider_bluesignal.Unit;
30211
30910
  bmwusa: BowmarkProvider_bmwusa.Unit;
30212
30911
  boglewinery: BowmarkProvider_boglewinery.Unit;
@@ -30235,6 +30934,7 @@ interface BowmarkProviders {
30235
30934
  cars: BowmarkProvider_cars.Unit;
30236
30935
  carusohomes: BowmarkProvider_carusohomes.Unit;
30237
30936
  casadragones: BowmarkProvider_casadragones.Unit;
30937
+ cascadiaseniorliving_com: BowmarkProvider_cascadiaseniorliving_com.Unit;
30238
30938
  cbhhomes: BowmarkProvider_cbhhomes.Unit;
30239
30939
  champxpress: BowmarkProvider_champxpress.Unit;
30240
30940
  chantecaille: BowmarkProvider_chantecaille.Unit;
@@ -30251,20 +30951,27 @@ interface BowmarkProviders {
30251
30951
  claude_com: BowmarkProvider_claude_com.Unit;
30252
30952
  claude_support: BowmarkProvider_claude_support.Unit;
30253
30953
  claudemarketplaces_com: BowmarkProvider_claudemarketplaces_com.Unit;
30954
+ clboyd: BowmarkProvider_clboyd.Unit;
30254
30955
  cleanairlawncare: BowmarkProvider_cleanairlawncare.Unit;
30255
30956
  cloudflare: BowmarkProvider_cloudflare.Unit;
30256
30957
  clubchampion: BowmarkProvider_clubchampion.Unit;
30257
30958
  code_claude_com: BowmarkProvider_code_claude_com.Unit;
30258
30959
  consultnet: BowmarkProvider_consultnet.Unit;
30259
30960
  couponfollow: BowmarkProvider_couponfollow.Unit;
30961
+ credibly_com: BowmarkProvider_credibly_com.Unit;
30260
30962
  cruiselakegeneva: BowmarkProvider_cruiselakegeneva.Unit;
30261
30963
  culturefly: BowmarkProvider_culturefly.Unit;
30262
30964
  curiocity: BowmarkProvider_curiocity.Unit;
30263
30965
  cyberpowerpc: BowmarkProvider_cyberpowerpc.Unit;
30966
+ dahlconsulting: BowmarkProvider_dahlconsulting.Unit;
30967
+ dansons: BowmarkProvider_dansons.Unit;
30264
30968
  davidsonhomes: BowmarkProvider_davidsonhomes.Unit;
30265
30969
  deangroup: BowmarkProvider_deangroup.Unit;
30266
30970
  decked: BowmarkProvider_decked.Unit;
30267
30971
  decksdirect: BowmarkProvider_decksdirect.Unit;
30972
+ deltadentalma: BowmarkProvider_deltadentalma.Unit;
30973
+ dentalplans: BowmarkProvider_dentalplans.Unit;
30974
+ detailxperts: BowmarkProvider_detailxperts.Unit;
30268
30975
  developersopenai: BowmarkProvider_developersopenai.Unit;
30269
30976
  dice: BowmarkProvider_dice.Unit;
30270
30977
  dickssportinggoods: BowmarkProvider_dickssportinggoods.Unit;
@@ -30287,6 +30994,7 @@ interface BowmarkProviders {
30287
30994
  extraspace: BowmarkProvider_extraspace.Unit;
30288
30995
  facerealityskincare: BowmarkProvider_facerealityskincare.Unit;
30289
30996
  fieldstonehomes: BowmarkProvider_fieldstonehomes.Unit;
30997
+ firstamericahomes: BowmarkProvider_firstamericahomes.Unit;
30290
30998
  firstdibs: BowmarkProvider_firstdibs.Unit;
30291
30999
  fivebelow: BowmarkProvider_fivebelow.Unit;
30292
31000
  fivestarbathsolutions: BowmarkProvider_fivestarbathsolutions.Unit;
@@ -30321,6 +31029,7 @@ interface BowmarkProviders {
30321
31029
  heatherwood: BowmarkProvider_heatherwood.Unit;
30322
31030
  hellofresh: BowmarkProvider_hellofresh.Unit;
30323
31031
  hellotend: BowmarkProvider_hellotend.Unit;
31032
+ highlandhomes: BowmarkProvider_highlandhomes.Unit;
30324
31033
  hilton: BowmarkProvider_hilton.Unit;
30325
31034
  historymaker: BowmarkProvider_historymaker.Unit;
30326
31035
  hobie: BowmarkProvider_hobie.Unit;
@@ -30347,6 +31056,7 @@ interface BowmarkProviders {
30347
31056
  kaleidescape: BowmarkProvider_kaleidescape.Unit;
30348
31057
  kalshi: BowmarkProvider_kalshi.Unit;
30349
31058
  kayak: BowmarkProvider_kayak.Unit;
31059
+ kbb: BowmarkProvider_kbb.Unit;
30350
31060
  keepa: BowmarkProvider_keepa.Unit;
30351
31061
  kingsdown: BowmarkProvider_kingsdown.Unit;
30352
31062
  kitchentuneup: BowmarkProvider_kitchentuneup.Unit;
@@ -30382,6 +31092,7 @@ interface BowmarkProviders {
30382
31092
  minimax: BowmarkProvider_minimax.Unit;
30383
31093
  minted: BowmarkProvider_minted.Unit;
30384
31094
  mixbook: BowmarkProvider_mixbook.Unit;
31095
+ modernize_com: BowmarkProvider_modernize_com.Unit;
30385
31096
  modularclosets: BowmarkProvider_modularclosets.Unit;
30386
31097
  momondo: BowmarkProvider_momondo.Unit;
30387
31098
  mossyoak: BowmarkProvider_mossyoak.Unit;
@@ -30419,6 +31130,7 @@ interface BowmarkProviders {
30419
31130
  prose: BowmarkProvider_prose.Unit;
30420
31131
  provenwinners: BowmarkProvider_provenwinners.Unit;
30421
31132
  proxmox: BowmarkProvider_proxmox.Unit;
31133
+ puls_com: BowmarkProvider_puls_com.Unit;
30422
31134
  reddit: BowmarkProvider_reddit.Unit;
30423
31135
  reliancepartners: BowmarkProvider_reliancepartners.Unit;
30424
31136
  resy: BowmarkProvider_resy.Unit;
@@ -82262,6 +82974,7 @@ interface BowmarkLibrary {
82262
82974
  text_to_speech: BowmarkCapability_text_to_speech.Unit;
82263
82975
  theme_park_tickets: BowmarkCapability_theme_park_tickets.Unit;
82264
82976
  weather: BowmarkCapability_weather.Unit;
82977
+ web_form_fields: BowmarkCapability_web_form_fields.Unit;
82265
82978
  wireless: BowmarkCapability_wireless.Unit;
82266
82979
  yoga_outfit_shopping: BowmarkCapability_yoga_outfit_shopping.Unit;
82267
82980
  providers: BowmarkProviders;